:root{
  --bg:#f6f1e7;
  --bg-alt:#ece4d6;
  --bg-dark:#1a2340;
  --ink:#12182b;
  --ink-soft:#6b6858;
  --ink-invert:#f6f1e7;
  --accent:#e2a93b;
  --accent-2:#b4472f;
  --mark:#b4472f;
  --rhythm:84px;
  --gap:24px;
  --serif:Georgia,'Times New Roman',serif;
  --sans:system-ui,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.8;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}

.wrap{max-width:1160px;margin:0 auto;padding:0 28px}
.grid{display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gap)}

h1,h2,h3{font-family:var(--serif);line-height:1.05;font-weight:600;margin:0}
h1{font-size:clamp(2.3rem,5.4vw,4.05rem);letter-spacing:-.01em}
h2{font-size:clamp(1.5rem,2.7vw,2.05rem);margin-bottom:.7rem}
h3{font-size:1.18rem;line-height:1.25;margin:2.1rem 0 .5rem}
p{margin:0 0 1.15rem}
p:last-child{margin-bottom:0}

a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--accent)}
a:hover{color:var(--accent-2)}
a:focus-visible,
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

/* registration mark */
.rm{
  position:absolute;width:22px;height:22px;pointer-events:none;
  background:radial-gradient(circle at center,transparent 0 5.4px,var(--mark) 5.4px 6.4px,transparent 6.5px);
}
.rm::before,.rm::after{content:"";position:absolute;background:var(--mark)}
.rm::before{left:0;right:0;top:10.5px;height:1px}
.rm::after{top:0;bottom:0;left:10.5px;width:1px}

/* header */
.site-head{padding:26px 0 18px;border-bottom:1px solid rgba(18,24,43,.18)}
.head-inner{display:flex;flex-wrap:wrap;align-items:baseline;gap:14px 34px;justify-content:space-between}
.brand{font-family:var(--serif);font-size:1.45rem;letter-spacing:.02em;border:0}
.brand:hover{color:var(--accent-2)}
.site-nav ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px 22px;margin:0;padding:0}
.site-nav a{font-size:14.5px;border-bottom:1px solid transparent;padding-bottom:2px}
.site-nav a:hover,.site-nav a[aria-current="page"]{border-bottom-color:var(--accent)}
.site-nav a[aria-current="page"]{color:var(--accent-2)}

/* separators */
.sep{margin:calc(var(--rhythm) / 2) 0}
.sep span{display:block;height:2px;background:var(--accent);max-width:560px}
.sep span+span{background:var(--accent-2);margin:6px 0 0 24px;max-width:420px}

/* hero */
.hero{padding:calc(var(--rhythm) - 20px) 0 0}
.hero-frame{position:relative;border:1px solid rgba(18,24,43,.16);padding:52px 40px 46px}
.hero-frame .rm{--mark:var(--accent-2)}
.rm.tl{top:-11px;left:-11px}
.rm.tr{top:-11px;right:-11px}
.rm.bl{bottom:-11px;left:-11px}
.rm.br{bottom:-11px;right:-11px}
.hero h1{grid-column:1 / span 9}
.hero h1 .l2{position:relative;display:inline-block}
.hero h1 .l2::after{content:"";position:absolute;left:-8px;right:14%;bottom:.24em;height:3px;background:var(--accent)}
.hero-lead{grid-column:1 / span 5;margin-top:38px}
.hero-lead p{font-size:1.06rem}
.hero-topics{grid-column:8 / span 4;margin-top:38px}
.hero-topics h2{font-size:.82rem;font-family:var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-2);line-height:1.4;margin-bottom:.9rem}
.hero-topics ul{list-style:none;margin:0;padding:0;font-size:15px;line-height:1.6}
.hero-topics li{position:relative;padding-left:18px;margin-bottom:.62rem;color:var(--ink)}
.hero-topics li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:7px;background:var(--accent)}

/* figures */
figure{margin:0}
.fig-main{grid-column:3 / span 8;position:relative;margin-top:var(--rhythm)}
.fig-main .frame{position:relative}
.fig-main img{width:100%;aspect-ratio:3 / 2;object-fit:cover}
figcaption{font-size:13px;line-height:1.55;color:var(--ink-soft);margin-top:14px;max-width:46ch}

/* text sections */
main section{margin-top:var(--rhythm)}
.t1{grid-column:1 / span 7}
.t2{grid-column:2 / span 7}
.t3{grid-column:3 / span 7}
.t4{grid-column:4 / span 7}
.sec-num{display:block;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-2);margin-bottom:.6rem}

.band{background:var(--bg-alt);padding:var(--rhythm) 0;margin-top:var(--rhythm)}
.band section:first-of-type{margin-top:0}

ul.checks,ol.steps{margin:1.2rem 0 0;padding:0;list-style:none}
ul.checks li{position:relative;padding-left:22px;margin-bottom:.6rem}
ul.checks li::before{content:"";position:absolute;left:0;top:.68em;width:8px;height:8px;background:var(--accent)}
ol.steps{counter-reset:s}
ol.steps li{position:relative;padding-left:34px;margin-bottom:.75rem;counter-increment:s}
ol.steps li::before{content:counter(s,decimal-leading-zero);position:absolute;left:0;top:.12em;font-size:13px;letter-spacing:.06em;color:var(--accent-2);font-family:var(--serif)}

/* dark section */
.sec-dark{background:var(--bg-dark);color:var(--ink-invert);padding:var(--rhythm) 0;margin-top:var(--rhythm)}
.sec-dark h2,.sec-dark h3{color:var(--ink-invert)}
.sec-dark a{color:var(--ink-invert);border-bottom-color:var(--accent)}
.sec-dark a:hover{color:var(--accent)}
.sec-dark figcaption{color:#b9b6a6}
.sec-dark .sec-num{color:var(--accent)}
.fig-detail{grid-column:1 / span 5;position:relative}
.fig-detail .frame{position:relative}
.fig-detail .rm{--mark:var(--accent)}
.fig-detail img{width:100%;aspect-ratio:4 / 5;object-fit:cover}
.dark-text{grid-column:7 / span 6}
.sec-dark ul.checks li::before{background:var(--accent)}

/* about */
.about-row{display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gap);margin-top:var(--rhythm);position:relative}
.about-rail{grid-column:1 / span 1;position:relative;min-height:24px}
.about-rail .rm{top:8px;left:0}
.about-body{grid-column:3 / span 7}

/* legal pages */
.legal-head{padding:calc(var(--rhythm) - 24px) 0 0}
.legal-head h1{grid-column:1 / span 9;position:relative}
.legal-head .lead{grid-column:1 / span 7;margin-top:26px;color:var(--ink-soft);font-size:1.02rem}
.legal-body section{margin-top:calc(var(--rhythm) - 20px)}
.legal-body .t1,.legal-body .t2,.legal-body .t3,.legal-body .t4{grid-column:2 / span 8}

/* contact block */
.contact-lines{margin-top:1rem;font-size:1.02rem}
.contact-lines strong{font-family:var(--serif);font-weight:600}

/* footer */
.site-foot{background:var(--bg-dark);color:var(--ink-invert);margin-top:var(--rhythm);padding:44px 0 52px}
.foot-rule{max-width:1160px;margin:0 auto 34px;padding:0 28px}
.foot-rule span{display:block;height:2px;background:var(--accent);max-width:520px}
.foot-rule span+span{background:var(--accent-2);margin:6px 0 0 24px;max-width:380px}
.foot-a{grid-column:1 / span 7}
.foot-b{grid-column:9 / span 4}
.site-foot .name{font-family:var(--serif);font-size:1.35rem;margin-bottom:.5rem}
.site-foot p{font-size:14.5px;line-height:1.7;color:#cfcabb}
.site-foot a{color:var(--ink-invert);border-bottom-color:var(--accent)}
.site-foot a:hover{color:var(--accent)}
.foot-nav ul{list-style:none;margin:0 0 1rem;padding:0;font-size:14.5px}
.foot-nav li{margin-bottom:.45rem}
.foot-mail{font-size:14.5px}

@media (max-width:900px){
  :root{--rhythm:60px;--gap:18px}
  .hero h1,.hero-lead,.hero-topics,.fig-main,.fig-detail,.dark-text,
  .t1,.t2,.t3,.t4,.about-body,.foot-a,.foot-b,
  .legal-head h1,.legal-head .lead,
  .legal-body .t1,.legal-body .t2,.legal-body .t3,.legal-body .t4{grid-column:1 / -1}
  .hero-frame{padding:34px 22px 32px}
  .hero-topics{margin-top:30px}
  .fig-detail{margin-bottom:34px}
  .about-rail{display:none}
  .foot-b{margin-top:30px}
}

@media (max-width:600px){
  :root{--rhythm:50px}
  body{font-size:16.5px}
  .wrap{padding:0 20px}
  .foot-rule{padding:0 20px}
  .hero h1 .l2::after{height:2px;right:8%}
  .site-nav ul{gap:6px 16px}
}
