:root{
  --paper:#F3F4EF;
  --paper-deep:#E9EBE3;
  --ink:#1B1E19;
  --ink-soft:#4C5349;
  --stem:#3F5233;
  --bloom:#A3336A;
  --iris:#7C6BA6;
  --rule:#C9CFBF;
  --measure:68ch;
  --pad:clamp(1.25rem,5vw,4rem);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation:none!important;transition:none!important}
}
.masthead-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 20px;
}

.mark {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
}

.mark-logo {
  display: block;
  width: 42px;
  height: 42px;
  object-fit: contain;
  flex-shrink: 0;
}

.nav {
  display: flex;
  align-items: center;
  gap: 24px;
}

@media (max-width: 780px) {
  .mark-logo { width: 52px; height: 52px; }
  .mark { gap: 10px; }
  .nav { flex: 1 1 100%; justify-content: flex-end; flex-wrap: wrap; gap: 18px; }
}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:Karla,system-ui,sans-serif;
  font-size:clamp(1rem,.55vw + .9rem,1.09rem);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:400;line-height:1.08;margin:0}
h1{font-size:clamp(2.6rem,7vw,5.2rem);letter-spacing:-.02em}
h2{font-size:clamp(1.9rem,3.6vw,3rem);letter-spacing:-.015em}
h3{font-size:1.15rem;font-weight:600;letter-spacing:.005em;line-height:1.35}
p{margin:0 0 1rem;max-width:var(--measure)}
a{color:var(--stem);text-decoration:underline;text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{color:var(--bloom)}
:focus-visible{outline:2.5px solid var(--bloom);outline-offset:3px;border-radius:2px}
.wrap{max-width:1180px;margin:0 auto;padding-inline:var(--pad)}
.eyebrow{
  font-size:.72rem;text-transform:uppercase;letter-spacing:.19em;
  font-weight:600;color:var(--stem);margin:0 0 .9rem;
}
.skip{position:absolute;left:-9999px}
.skip:focus{
  left:var(--pad);top:.6rem;z-index:20;position:fixed;background:var(--stem);
  color:var(--paper);padding:.6rem 1rem;border-radius:3px;text-decoration:none;
}

/* ---------- masthead ---------- */
.masthead{padding:1.5rem 0 0}
.masthead-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.mark{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--ink)}
.mark svg{display:block}
.mark-name{font-family:Fraunces,serif;font-size:1.02rem;letter-spacing:.16em;text-transform:uppercase}
.mark-sub{display:block;font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);margin-top:.15rem}
.nav{display:flex;gap:1.4rem;flex-wrap:wrap}
.nav a{font-size:.83rem;letter-spacing:.04em;text-decoration:none;color:var(--ink-soft)}
.nav a:hover{color:var(--bloom)}
.nav a[aria-current="page"]{color:var(--stem);font-weight:600}

/* ---------- hero ---------- */
.hero{padding:clamp(3rem,9vw,7rem) 0 clamp(2.5rem,6vw,4.5rem)}
.hero h1{max-width:15ch}
.hero h1 em{font-style:italic;color:var(--stem)}
.lede{font-size:clamp(1.08rem,1.1vw + .9rem,1.32rem);color:var(--ink-soft);max-width:52ch;margin-top:1.6rem}
.hero-actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:2.2rem}
.btn{
  display:inline-block;padding:.82rem 1.6rem;border-radius:999px;
  font-size:.9rem;font-weight:600;letter-spacing:.03em;text-decoration:none;
  border:1.5px solid var(--stem);transition:background .18s,color .18s;
}
.btn-solid{background:var(--stem);color:var(--paper)}
.btn-solid:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.btn-line{color:var(--stem);background:transparent}
.btn-line:hover{background:var(--stem);color:var(--paper)}

/* ---------- interior page header ---------- */
.page-head{
  padding:clamp(2.5rem,6vw,4.5rem) 0 clamp(2rem,4vw,3rem);
  border-bottom:1px solid var(--rule);
}
.page-head h1{font-size:clamp(2.2rem,5.5vw,4rem);max-width:18ch}
.page-head .lede{margin-top:1.2rem}
.updated{font-size:.8rem;color:var(--ink-soft);margin-top:1.6rem;letter-spacing:.02em}
.doc{padding:clamp(2.5rem,6vw,4.5rem) 0}
.doc .wrap{max-width:820px}
.doc h2{font-size:clamp(1.5rem,2.6vw,2rem);margin-top:3rem;padding-bottom:.6rem;border-bottom:1.5px solid var(--stem)}
.doc h2:first-of-type{margin-top:0}
.doc h3{margin-top:2rem;margin-bottom:.4rem}
.doc p,.doc li{color:var(--ink-soft)}
.doc ul{padding-left:1.15rem;margin:0 0 1.1rem;max-width:var(--measure)}
.doc li{margin-bottom:.5rem}
.doc .lede-doc{margin-top:1.4rem;color:var(--ink)}

/* ---------- generic section ---------- */
.band{padding:clamp(3rem,7vw,5.5rem) 0;border-bottom:1px solid var(--rule)}
.band-tint{background:var(--paper-deep)}
.band > .wrap > h2{max-width:18ch}
.intro{margin-top:1.2rem}

/* ---------- cards ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.6rem;margin-top:2.6rem}
.card{background:var(--paper);border:1px solid var(--rule);border-radius:3px;padding:1.5rem 1.4rem}
.band-tint .card{background:var(--paper)}
.card h3{margin-bottom:.5rem}
.card p{font-size:.94rem;color:var(--ink-soft);margin-bottom:0}

/* ---------- ordered steps ---------- */
.steps{list-style:none;padding:0;margin:2.6rem 0 0;display:grid;gap:1.6rem}
.step{display:grid;grid-template-columns:2.6rem 1fr;gap:1.1rem;align-items:start}
.step-n{
  font-family:Fraunces,serif;font-size:1.5rem;color:var(--bloom);
  line-height:1;padding-top:.1rem;font-variant-numeric:tabular-nums;
}
.step p{font-size:.95rem;color:var(--ink-soft);margin:.35rem 0 0}

/* ---------- policy blocks ---------- */
.policy{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2.4rem;margin-top:2.6rem}
.policy h3{padding-bottom:.55rem;border-bottom:1.5px solid var(--stem);margin-bottom:.9rem}
.policy p, .policy li{font-size:.94rem;color:var(--ink-soft)}
.policy ul{padding-left:1.1rem;margin:0 0 1rem}
.policy li{margin-bottom:.45rem}
.note{
  border-left:3px solid var(--iris);padding:.15rem 0 .15rem 1rem;
  font-size:.9rem;color:var(--ink-soft);margin:1.2rem 0 0;
}
.more{margin-top:1.9rem;font-size:.92rem;font-weight:600}

/* ---------- faq ---------- */
.faq{margin-top:2.4rem;max-width:var(--measure)}
.faq details{border-bottom:1px solid var(--rule);padding:.15rem 0}
.faq summary{
  cursor:pointer;list-style:none;padding:1.05rem 2rem 1.05rem 0;position:relative;
  font-weight:600;font-size:1rem;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"";position:absolute;right:.35rem;top:50%;width:9px;height:9px;
  border-right:1.5px solid var(--stem);border-bottom:1.5px solid var(--stem);
  transform:translateY(-70%) rotate(45deg);transition:transform .2s;
}
.faq details[open] summary::after{transform:translateY(-30%) rotate(225deg)}
.faq details p{font-size:.94rem;color:var(--ink-soft);padding-bottom:1.1rem;margin:0}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,5vw,4rem);margin-top:2.6rem;align-items:start}
@media (max-width:800px){.contact-grid{grid-template-columns:1fr}}
.field{margin-bottom:1.15rem}
.field label{display:block;font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;margin-bottom:.4rem}
.field input,.field textarea,.field select{
  width:100%;padding:.75rem .85rem;font:inherit;font-size:.95rem;color:var(--ink);
  background:var(--paper);border:1.5px solid var(--rule);border-radius:2px;
}
.band-tint .field input,.band-tint .field textarea,.band-tint .field select{background:var(--paper)}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--stem);outline:none}
.field textarea{min-height:130px;resize:vertical}
.hp{position:absolute;left:-9999px}
.form-status{margin:1.1rem 0 0;font-size:.92rem;max-width:var(--measure)}
.form-status[data-state="error"]{color:var(--bloom);font-weight:500}
.form-sent{
  border:1.5px solid var(--stem);border-radius:3px;padding:1.6rem 1.5rem;background:var(--paper);
}
.form-sent h3{margin-bottom:.45rem}
.form-sent p{font-size:.94rem;color:var(--ink-soft);margin:0}
button[disabled]{opacity:.55;cursor:progress}
.detail-list{list-style:none;padding:0;margin:0}
.detail-list li{padding:.9rem 0;border-bottom:1px solid var(--rule)}
.detail-list .k{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.15em;color:var(--stem);font-weight:600;margin-bottom:.25rem}
.detail-list .v{font-size:1rem}
.detail-list address{font-style:normal}

/* ---------- footer ---------- */
.foot{padding:2.6rem 0 3.5rem;font-size:.85rem;color:var(--ink-soft);border-top:1px solid var(--rule)}
.foot-row{display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;align-items:baseline}
.foot p{margin:0;font-size:.85rem}
.foot-links{display:flex;gap:1.2rem;flex-wrap:wrap;margin-top:1.4rem;padding-top:1.4rem;border-top:1px solid var(--rule)}
.foot-links a{font-size:.83rem;text-decoration:none;color:var(--ink-soft)}
.foot-links a:hover{color:var(--bloom)}
.foot-contact{margin-top:1.4rem;font-size:.83rem}
