@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Zen+Kaku+Gothic+New:wght@400;500;700;900&display=swap');
:root{
  --paper:#f2eee4;--paper-deep:#e8e1d3;--ink:#20241f;--forest:#173c31;
  --orange:#df5a22;--rule:#9f9b8f;--muted:#66675f;--maxw:1240px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;background:var(--paper)}
body{background:var(--paper);color:var(--ink);font-family:'Zen Kaku Gothic New','Yu Gothic',Meiryo,sans-serif;font-size:16px;line-height:1.9;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.18;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.08'/%3E%3C/svg%3E");z-index:10}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.25em}
.wrap{width:min(calc(100% - 48px),var(--maxw));margin-inline:auto}
a:hover{color:var(--forest)}
img{display:block;max-width:100%;height:auto}
.grad-text{color:var(--forest)}
:focus-visible{outline:2px solid var(--forest);outline-offset:4px}
.nav-check{display:none}
.nav-check:focus-visible~.nav-toggle{outline:2px solid var(--forest);outline-offset:4px}
.nav-toggle{min-width:44px;min-height:44px}
.record-grid{display:grid;border-top:1px solid var(--rule);border-left:1px solid var(--rule)}
.record-row{display:grid;grid-template-columns:minmax(96px,.25fr) minmax(0,1fr);min-width:0;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.record-row>*{min-width:0;padding:16px 18px}
.record-row>*+*{border-left:1px solid var(--rule)}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.btn:hover,.btn:active,a.card:hover{transform:none!important}}

/* Header */
header{position:sticky;top:0;z-index:20;background:var(--paper);border-top:1px solid var(--forest);border-bottom:1px solid var(--forest)}
.nav{display:flex;align-items:center;gap:28px;min-height:72px}
.logo{color:var(--forest);font-size:1.4rem;font-weight:900;letter-spacing:.045em;text-decoration:none;white-space:nowrap}
.logo span{color:var(--forest)}
.nav-toggle{display:none}
.nav-links{display:flex;align-items:center;gap:32px;margin-left:auto;font-size:.94rem;font-weight:500}
.nav-links a{color:var(--ink);text-decoration:none;white-space:nowrap}
.nav-links a:hover,.nav-links a[aria-current]{color:var(--forest);text-decoration:underline}
.nav-cta{white-space:nowrap}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 24px;border:1px solid var(--forest);border-radius:0;font-size:.95rem;font-weight:700;line-height:1.4;text-align:center;text-decoration:none;transition:background-color .15s,color .15s,border-color .15s,transform .15s}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(1px)}
.btn-primary{border-color:var(--orange);background:var(--forest);color:var(--paper)}
.btn-primary:hover{border-color:var(--orange);background:var(--ink);color:var(--paper)}
.btn-ghost{background:var(--paper);color:var(--forest)}
.btn-ghost:hover{border-color:var(--orange);color:var(--forest)}
.btn-sm{min-height:42px;padding:8px 18px;font-size:.88rem}

/* Hero */
.hero{position:relative;overflow:hidden;padding:96px 0 72px;border-bottom:1px solid var(--forest)}
.hero::before{content:"";position:absolute;top:24px;right:0;left:0;border-top:1px solid var(--rule);pointer-events:none}
.hero::after{content:"";position:absolute;right:0;bottom:24px;left:0;border-top:1px solid var(--rule);pointer-events:none}
.hero .wrap{position:relative;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:clamp(36px,5vw,72px)}
.hero .wrap>*{min-width:0}
.hero h1{grid-column:1;grid-row:1;max-width:12ch;color:var(--ink);font-size:clamp(3rem,5.2vw,4.7rem);font-weight:900;letter-spacing:-.04em;line-height:1.22}
.hero p.lead{grid-column:1;grid-row:2;max-width:65ch;margin:28px 0 32px;color:var(--muted);font-size:1.06rem}
.hero .cta{grid-column:1;grid-row:3;display:flex;flex-wrap:wrap;gap:12px}
.chips{grid-column:1/-1;grid-row:4;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:40px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.chip{min-width:0;padding:11px 14px;border-left:1px solid var(--rule);border-radius:0;color:var(--forest);font-family:'IBM Plex Mono','Courier New',monospace;font-size:.72rem;letter-spacing:.02em}
.chip:last-child{border-right:1px solid var(--rule)}
.hero-schematic{grid-column:2;grid-row:1/span 3;display:grid;grid-template-columns:clamp(50px,5vw,72px) minmax(32px,1fr) clamp(50px,5vw,72px);grid-template-rows:clamp(50px,5vw,72px) minmax(32px,1fr) clamp(50px,5vw,72px);align-self:stretch;min-height:340px;padding:18px 0 18px clamp(24px,3vw,44px);border-left:1px solid var(--rule)}
.schematic-node{z-index:1;width:clamp(50px,5vw,72px);aspect-ratio:1;border:1px solid var(--forest);border-radius:0;background:var(--paper)}
.schematic-node-a{grid-column:1;grid-row:1;align-self:start;justify-self:start}
.schematic-node-b{grid-column:3;grid-row:1;align-self:start;justify-self:end}
.schematic-node-c{grid-column:3;grid-row:3;align-self:end;justify-self:end}
.schematic-node-d{grid-column:1;grid-row:3;align-self:end;justify-self:start;border-color:var(--orange)}
.schematic-line{z-index:0;display:block;align-self:stretch;justify-self:stretch}
.schematic-line-a{grid-column:1/-1;grid-row:1;align-self:center;border-top:1px solid var(--forest)}
.schematic-line-b{grid-column:3;grid-row:1/-1;justify-self:center;border-left:1px solid var(--forest)}
.schematic-line-c{grid-column:1/-1;grid-row:3;align-self:center;border-top:1px solid var(--forest)}

/* Sections */
section{padding:88px 0}
.sec-alt{background:var(--paper-deep);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.sec-label{margin-bottom:12px;color:var(--forest);font-family:'IBM Plex Mono','Courier New',monospace;font-size:.76rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase}
h2.sec-title{max-width:24ch;margin-bottom:18px;color:var(--ink);font-size:clamp(1.75rem,3.2vw,2.65rem);font-weight:900;letter-spacing:-.025em;line-height:1.35}
.sec-desc{max-width:65ch;margin-bottom:44px;color:var(--muted)}
.sec-alt .sec-desc{color:var(--forest)}
.sec-alt .card p{color:var(--forest)}

/* Cards and directories */
.grid{display:grid;gap:16px}
.grid>*{min-width:0}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.card{padding:28px 26px;border:1px solid var(--rule);border-radius:2px;background:var(--paper)}
a.card{display:block;color:var(--ink);text-decoration:none;transition:border-color .15s,transform .15s}
a.card:hover{transform:translateY(-1px);border-color:var(--orange);color:var(--ink)}
.card .icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin-bottom:18px;border:1px solid var(--rule);border-radius:0;background:var(--paper-deep)}
.card .icon svg{width:22px;height:22px;stroke:var(--forest)}
.card h2,.card h3{margin-bottom:10px;color:var(--ink);font-size:1.08rem;font-weight:700;line-height:1.55}
.card p{color:var(--muted);font-size:.95rem}
.card .more{display:inline-block;margin-top:15px;color:var(--forest);font-family:'IBM Plex Mono','Courier New',monospace;font-size:.78rem;font-weight:600}
.num{margin-bottom:10px;color:var(--forest);font-family:'IBM Plex Mono','Courier New',monospace;font-size:.78rem;font-weight:600;letter-spacing:.1em}

/* Service directory */
#services .grid-3{grid-template-columns:1fr;gap:0;border-top:1px solid var(--rule)}
#services .card{display:grid;grid-template-columns:64px minmax(190px,.7fr) minmax(0,1fr) minmax(116px,.35fr);align-items:center;padding:16px 0;border:0;border-bottom:1px solid var(--rule);border-radius:0;background:transparent}
#services .card>*{min-width:0}
#services .card .icon{margin:0}
#services .card h3,#services .card p,#services .card .more{align-self:stretch;display:flex;align-items:center;margin:0;padding:8px 22px;border-left:1px solid var(--rule)}
#services .card .more{justify-content:flex-end;white-space:nowrap}
#services a.card:hover{transform:none;border-color:var(--orange)}

/* Service records */
.grid.service-directory,.grid.offer-records,.grid.related-directory{grid-template-columns:1fr;gap:0;border-top:1px solid var(--rule)}
.service-directory .card,.offer-records .card,.related-directory .card{padding:0;border:0;border-bottom:1px solid var(--rule);border-radius:0;background:transparent}
.service-directory .card{display:grid;grid-template-columns:64px minmax(190px,.7fr) minmax(0,1fr) minmax(116px,.35fr);align-items:center}
.service-directory .card>*{min-width:0}
.service-directory .card .icon{margin:16px 0}
.service-directory .card h2,.service-directory .card p,.service-directory .card .more{align-self:stretch;display:flex;align-items:center;margin:0;padding:16px 22px;border-left:1px solid var(--rule)}
.service-directory .card .more{justify-content:flex-end;white-space:nowrap}
.service-directory a.card:hover,.related-directory a.card:hover{transform:none;border-color:var(--orange)}
.problem-records{display:grid;grid-template-columns:1fr;gap:0}
.offer-records .card{display:grid;grid-template-columns:minmax(180px,.6fr) minmax(0,1.4fr)}
.offer-records .card>*{min-width:0;margin:0;padding:18px 22px}
.offer-records .card>*+*{border-left:1px solid var(--rule)}
.offer-records .card h3{margin:0}
.offer-records .card p{color:var(--ink)}
.related-directory .card{display:grid;grid-template-columns:64px minmax(190px,.7fr) minmax(0,1fr);align-items:center}
.related-directory .card>*{min-width:0}
.related-directory .card .icon{margin:16px 0}
.related-directory .card h3,.related-directory .card p{align-self:stretch;display:flex;align-items:center;margin:0;padding:16px 22px;border-left:1px solid var(--rule)}

/* Strength records */
.strength .grid{grid-template-columns:1fr;gap:0;border-top:1px solid var(--rule)}
.strength .card{position:relative;display:grid;grid-template-columns:minmax(180px,.7fr) minmax(180px,.65fr) minmax(0,1.65fr);overflow:hidden;padding:0;border:0;border-bottom:1px solid var(--rule);border-radius:0;background:transparent}
.strength .card>*{min-width:0;margin:0;padding:20px 22px}
.strength .card>*+*{border-left:1px solid var(--rule)}
.strength .q{margin:0;color:var(--muted);font-size:.88rem}
.strength .card h3{margin:0;color:var(--forest)}
.strength .card>p:last-child{color:var(--ink)}

/* Comparison ledger */
.compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;align-items:stretch;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.compare>*{min-width:0}
.compare .card{display:grid;grid-template-rows:auto 1fr;padding:0;border:0;border-radius:0;background:transparent}
.compare .card+.card{border-left:1px solid var(--rule)}
.compare .card h3{margin:0;padding:18px 20px;border-bottom:1px solid var(--rule)}
.compare .card ul{display:grid;grid-template-rows:repeat(4,1fr);margin:0;list-style:none;border-top:0}
.compare .card li{position:relative;display:flex;align-items:center;padding:13px 20px 13px 40px;border-bottom:1px solid var(--rule);color:var(--ink);font-size:.94rem}
.compare .card li:last-child{border-bottom:0}
.compare .card li::before{content:"";position:absolute;top:50%;left:20px;width:7px;border-top:1px solid var(--rule)}
.compare .bad li::before{border-color:var(--muted)}
.compare .good{background:transparent}
.compare .good li{color:var(--ink)}
.compare .good li::before{top:calc(50% - 3px);width:6px;height:6px;border:1px solid var(--forest);background:var(--forest)}

/* Figures */
.fig{max-width:100%;margin-top:44px;overflow-x:auto;padding:28px 26px 20px;border:1px solid var(--forest);border-radius:0;background:var(--paper-deep)}
.fig svg{display:block;width:100%;min-width:560px;height:auto;font-family:'Zen Kaku Gothic New','Yu Gothic',Meiryo,sans-serif}
.fig rect{rx:2px}
.fig figcaption{margin-top:16px;padding-top:12px;border-top:1px solid var(--forest);color:var(--forest);font-size:.82rem;text-align:left}
.fig [fill="#151b2c"]{fill:var(--paper-deep)}
.fig [fill="#eef1f8"]{fill:var(--ink)}
.fig [fill="#939db8"]{fill:var(--forest)}
.fig [fill="#22d3ee"],.fig [fill="#5eead4"]{fill:var(--forest)}
.fig [fill="#818cf8"]{fill:var(--forest)}
.fig [stroke="#22d3ee"],.fig [stroke="#5eead4"]{stroke:var(--forest)}
.fig [stroke="#3a466b"],.fig [stroke="#939db8"]{stroke:var(--forest)}
.fig [fill="#55617f"],.fig [fill="#67729a"]{fill:var(--forest)}
.fig rect[fill="#55617f"]+text[fill="#eef1f8"],.fig rect[fill="#67729a"]+text[fill="#eef1f8"]{fill:var(--paper)}
.fig [fill="#0d1130"]{fill:var(--paper)}
.fig [fill="#062430"]{fill:var(--paper)}

/* Process records */
.timeline{position:relative;max-width:none;margin:0;border-top:1px solid var(--rule)}
.timeline::before{content:"";display:none}
.tl-item{display:grid;grid-template-columns:72px minmax(180px,.55fr) minmax(0,1.45fr);column-gap:0;align-items:stretch;padding:0;border-bottom:1px solid var(--rule)}
.tl-item>*{min-width:0}
.tl-item:last-child{padding-bottom:0}
.tl-num{grid-row:auto;align-self:center;justify-self:start;display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid var(--forest);border-radius:0;background:var(--paper);color:var(--forest);font-family:'IBM Plex Mono','Courier New',monospace;font-size:.84rem;font-weight:600}
.tl-item h3{display:flex;align-items:center;margin:0;padding:20px 22px;border-left:1px solid var(--rule);font-size:1.05rem;line-height:1.5}
.tl-item p{display:flex;align-items:center;padding:20px 22px;border-left:1px solid var(--rule);color:var(--ink);font-size:.95rem}

/* Detail-page stepper */
.stepper{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:14px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.stepper>*{min-width:0}
.step{position:relative;padding:24px;border-right:1px solid var(--rule);text-align:left}
.step:last-child{border-right:0}
.step::before{content:"";display:none}
.step:first-child::before{display:none}
.step-dot{display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin:0 0 16px;border:1px solid var(--forest);border-radius:0;background:var(--paper);color:var(--forest);font-family:'IBM Plex Mono','Courier New',monospace;font-size:.82rem;font-weight:600}
.step h3{margin-bottom:7px;font-size:1rem}
.step p{color:var(--muted);font-size:.9rem}

/* Check records */
ul.checks{list-style:none;border-top:1px solid var(--rule)}
ul.checks li{position:relative;padding:12px 12px 12px 30px;border-bottom:1px solid var(--rule);color:var(--muted)}
ul.checks li::before{content:"";position:absolute;top:1.15rem;left:4px;width:8px;height:8px;border:1px solid var(--forest);background:var(--paper)}
ul.checks li strong{color:var(--ink)}

/* Closing record */
.cta-band{position:relative;overflow:hidden;padding:0;border-top:1px solid var(--forest);border-bottom:1px solid var(--forest);background:var(--paper-deep);text-align:left}
.cta-band::before{content:"";display:none}
.cta-band .wrap{position:relative;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.25fr) auto;grid-template-rows:auto auto;align-items:stretch}
.cta-band .wrap>*{min-width:0}
.cta-band h2{grid-column:1;grid-row:1/3;display:flex;align-items:center;max-width:none;margin:0;padding:40px 28px 40px 0;border-right:1px solid var(--rule);font-size:clamp(1.75rem,3.2vw,2.65rem);font-weight:900;letter-spacing:-.025em;line-height:1.35}
.cta-band p{grid-column:2;grid-row:1;max-width:none;margin:0;padding:22px 24px;border-bottom:1px solid var(--rule);color:var(--ink)}
.cta-band .btn{grid-column:3;grid-row:1/3;align-self:center;margin-left:28px}
.cta-band .note{grid-column:2;grid-row:2;margin:0;padding:16px 24px;border-bottom:0;color:var(--forest);font-family:'IBM Plex Mono','Courier New',monospace;font-size:.76rem}

/* Detail-page header */
.page-hero{position:relative;overflow:hidden;padding:72px 0 56px;border-top:1px solid var(--rule);border-bottom:1px solid var(--forest);background:var(--paper-deep)}
.page-hero::before{content:"";display:none}
.page-hero .wrap{position:relative}
.crumb{margin-bottom:18px;color:var(--forest);font-family:'IBM Plex Mono','Courier New',monospace;font-size:.76rem}
.crumb a{color:var(--forest)}
.crumb a:hover{color:var(--forest)}
.page-hero h1{max-width:22ch;font-size:clamp(2.2rem,4.6vw,4rem);font-weight:900;letter-spacing:-.035em;line-height:1.3}
.page-hero p.lead{max-width:65ch;margin-top:20px;color:var(--forest)}

/* Information table */
table.info.record-grid{display:table;width:100%;margin-top:10px;border-collapse:collapse;border-top:1px solid var(--rule);table-layout:fixed}
table.info .record-row{display:table-row;border:0}
table.info th,table.info td{padding:16px 14px;border-bottom:1px solid var(--rule);font-size:.95rem;text-align:left;vertical-align:top;overflow-wrap:anywhere}
table.info th{width:28%;border-right:1px solid var(--rule);color:var(--forest);font-family:'IBM Plex Mono','Courier New',monospace;font-weight:500;white-space:normal}
table.info .record-row>*+*{border-left:0}

/* Stance records */
.stance-records{grid-template-columns:1fr;gap:0}
.stance-records .card{grid-template-columns:minmax(180px,.6fr) minmax(0,1.4fr);padding:0;border:0;border-radius:0;background:transparent}
.stance-records .card>*{margin:0}
.stance-records .card h3{color:var(--forest)}
.stance-records .card p{color:var(--ink)}

/* Contact */
.contact-box{display:grid;grid-template-columns:minmax(150px,.35fr) minmax(0,1fr) auto;padding:0;border-top:1px solid var(--forest);border-bottom:1px solid var(--forest);background:transparent;text-align:left}
.contact-box>*{min-width:0;margin:0}
.contact-box .sec-label{grid-column:1;grid-row:1/4;padding:20px 22px;border-right:1px solid var(--rule)}
.contact-intro{grid-column:2;grid-row:1;padding:16px 22px;border-bottom:1px solid var(--rule)}
.contact-mail-link{grid-column:2;grid-row:2;padding:14px 22px;border-bottom:1px solid var(--rule);color:var(--forest);font-family:'IBM Plex Mono','Courier New',monospace;font-size:1.2rem;font-weight:600;word-break:break-all}
.contact-note{grid-column:2;grid-row:3;padding:14px 22px;color:var(--muted);font-size:.88rem}
.contact-subject{grid-column:3;grid-row:1/4;align-self:center;margin-left:28px}
.contact-card{display:grid;grid-template-columns:minmax(180px,.45fr) minmax(0,1fr);margin-top:28px;padding:0;border:0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);border-radius:0;background:transparent}
.contact-card h2{display:flex;align-items:center;margin:0;padding:20px 22px;border-right:1px solid var(--rule)}
.contact-card ul.checks{border-top:0}

/* Footer */
footer{padding:44px 0 28px;border-top:1px solid var(--forest);background:var(--paper-deep)}
.foot{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.foot>*{min-width:0;padding:24px 28px}
.foot>div:first-child{padding-left:0}
.foot>div+div{border-left:1px solid var(--rule)}
.foot h3{margin-bottom:15px;color:var(--forest);font-family:'IBM Plex Mono','Courier New',monospace;font-size:.76rem;font-weight:600;letter-spacing:.12em}
.foot ul{list-style:none;border-top:1px solid var(--rule)}
.foot li{border-bottom:1px solid var(--rule)}
.foot a{display:inline-block;padding:7px 0;color:var(--ink);font-size:.88rem}
.foot .logo{padding:0;color:var(--forest);font-size:1.25rem}
.foot a:hover{color:var(--forest)}
.foot .tagline{max-width:38ch;margin-top:14px;color:var(--ink);font-size:.88rem}
.copy{margin-top:28px;color:var(--forest);font-family:'IBM Plex Mono','Courier New',monospace;font-size:.72rem;text-align:left}

@media(max-width:900px){
  .hero .wrap{grid-template-columns:minmax(0,1fr);column-gap:0}
  .hero h1{grid-column:1;grid-row:1}
  .hero-schematic{grid-column:1;grid-row:2;min-height:280px;margin-top:32px;padding:24px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);border-left:0}
  .hero p.lead{grid-column:1;grid-row:3}
  .hero .cta{grid-column:1;grid-row:4}
  .chips{grid-column:1;grid-row:5}
}
@media(max-width:860px){
  .grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .compare{grid-template-columns:1fr}
  .compare .card+.card{border-top:1px solid var(--forest);border-left:0}
  .foot{grid-template-columns:repeat(2,minmax(0,1fr))}
  .foot>div:first-child{grid-column:1/-1;padding-left:0;border-bottom:1px solid var(--rule)}
  .foot>div:nth-child(2){padding-left:0;border-left:0}
  .chips{grid-template-columns:repeat(2,minmax(0,1fr))}
  .chip:nth-child(3){border-top:1px solid var(--rule)}
  .chip:nth-child(4){border-top:1px solid var(--rule)}
}
@media(max-width:720px){
  .nav{min-height:62px;gap:12px}
  .nav-check{display:block;position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .nav-toggle{display:flex;flex:none;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:44px;height:44px;border:1px solid var(--forest);border-radius:0;cursor:pointer}
  .nav-toggle span{display:block;width:18px;height:1px;border-radius:0;background:var(--forest);transition:transform .2s,opacity .2s}
  .nav-cta{margin-left:auto}
  .nav-links{position:absolute;top:100%;right:0;left:0;display:none;flex-direction:column;align-items:stretch;gap:0;margin:0;padding:6px 24px 14px;border-bottom:1px solid var(--forest);background:var(--paper-deep)}
  .nav-links a{padding:13px 2px;border-bottom:1px solid var(--rule);font-size:1rem}
  .nav-links a:last-child{border-bottom:0}
  .nav-check:checked~.nav-links{display:flex}
  .nav-check:checked~.nav-toggle span:nth-child(1){transform:translateY(6px) rotate(45deg)}
  .nav-check:checked~.nav-toggle span:nth-child(2){opacity:0}
  .nav-check:checked~.nav-toggle span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
}
@media(max-width:600px){
  .grid-3,.grid-2{grid-template-columns:1fr}
  .hero{padding:72px 0 56px}
  .hero h1{font-size:clamp(2.35rem,12vw,4rem)}
  .hero-schematic{grid-template-columns:50px minmax(24px,1fr) 50px;grid-template-rows:50px minmax(24px,1fr) 50px;min-height:230px;margin-top:26px;padding:18px}
  .schematic-node{width:50px}
  .hero p.lead{margin:22px 0 28px;font-size:1rem}
  .hero .cta{align-items:stretch;flex-direction:column}
  .hero .btn{width:100%}
  .chips{grid-template-columns:1fr;margin-top:32px}
  .chip,.chip:nth-child(3),.chip:nth-child(4){border-top:1px solid var(--rule);border-right:1px solid var(--rule)}
  .chip:first-child{border-top:0}
  section{padding:64px 0}
  .card{padding:24px 20px}
  .strength .card{grid-template-columns:1fr}
  .strength .card>*{padding:16px 0}
  .strength .card>*+*{border-top:1px solid var(--rule);border-left:0}
  #services .card{grid-template-columns:52px minmax(0,1fr);align-items:start;padding:18px 0}
  #services .card .icon{grid-column:1;grid-row:1/span 3;margin-top:4px}
  #services .card h3,#services .card p,#services .card .more{grid-column:2;padding:4px 0 4px 16px;border-left:1px solid var(--rule)}
  #services .card h3{grid-row:1}
  #services .card p{grid-row:2}
  #services .card .more{grid-row:3;justify-content:flex-start;padding-top:10px}
  .service-directory .card,.related-directory .card{grid-template-columns:52px minmax(0,1fr);align-items:start;padding:18px 0}
  .service-directory .card .icon,.related-directory .card .icon{grid-column:1;margin:4px 0 0}
  .service-directory .card .icon{grid-row:1/span 3}
  .related-directory .card .icon{grid-row:1/span 2}
  .service-directory .card h2,.service-directory .card p,.service-directory .card .more,.related-directory .card h3,.related-directory .card p{grid-column:2;padding:4px 0 4px 16px;border-left:1px solid var(--rule)}
  .service-directory .card h2,.related-directory .card h3{grid-row:1}
  .service-directory .card p,.related-directory .card p{grid-row:2}
  .service-directory .card .more{grid-row:3;justify-content:flex-start;padding-top:10px}
  .offer-records .card{grid-template-columns:1fr}
  .offer-records .card>*{padding:16px 0}
  .offer-records .card>*+*{padding-top:0;border-left:0}
  .compare .card ul{grid-template-rows:repeat(4,auto)}
  .fig{padding:18px 14px 14px}
  .tl-item{grid-template-columns:52px minmax(0,1fr);column-gap:0}
  .tl-num{grid-row:1/span 2;justify-self:start;width:42px;height:42px;margin:18px 0}
  .tl-item h3{padding:18px 16px 4px}
  .tl-item p{padding:4px 16px 18px}
  .stepper{grid-template-columns:1fr}
  .step{display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:14px;padding:20px 0;border-right:0;border-bottom:1px solid var(--rule)}
  .step:last-child{border-bottom:0}
  .step-dot{grid-row:1/span 2;margin:0}
  .step h3{align-self:end}
  .page-hero{padding:56px 0 44px}
  .page-hero h1{font-size:clamp(2rem,11vw,3rem)}
  .stance-records .card{grid-template-columns:1fr}
  .stance-records .card>*+*{border-top:1px solid var(--rule);border-left:0}
  .contact-box{grid-template-columns:1fr}
  .contact-box .sec-label,.contact-intro,.contact-mail-link,.contact-note,.contact-subject{grid-column:1;grid-row:auto}
  .contact-box .sec-label{padding:14px 0;border-right:0;border-bottom:1px solid var(--rule)}
  .contact-intro,.contact-mail-link,.contact-note{padding-right:0;padding-left:0}
  .contact-subject{width:100%;margin:20px 0}
  .contact-card{grid-template-columns:1fr}
  .contact-card h2{padding:18px 0;border-right:0;border-bottom:1px solid var(--rule)}
  .cta-band{padding:48px 0}
  .cta-band .wrap{grid-template-columns:minmax(0,1fr);grid-template-rows:auto}
  .cta-band h2{grid-column:1;grid-row:1;padding:0 0 20px;border-right:0;border-bottom:1px solid var(--rule)}
  .cta-band p{grid-column:1;grid-row:2;padding:20px 0}
  .cta-band .btn{grid-column:1;grid-row:3;width:100%;margin:22px 0 0}
  .cta-band .note{grid-column:1;grid-row:4;padding:14px 0 0}
  .foot{grid-template-columns:1fr}
  .foot>div,.foot>div:first-child{grid-column:auto;padding:22px 0;border-right:0;border-bottom:1px solid var(--rule);border-left:0}
  .foot>div:last-child{border-bottom:0}
  table.info th,table.info td{padding:13px 10px}
}
@media(max-width:420px){
  .logo{font-size:1.18rem}
  .nav-cta{min-height:40px;padding:7px 10px;font-size:.78rem}
  .record-row{grid-template-columns:1fr}
  .record-row>*+*{border-top:1px solid var(--rule);border-left:0}
  table.info .record-row>*+*{border-top:0}
}
@media(max-width:360px){
  body{overflow-x:clip}
  .hero .wrap>*,.strength .grid>*,.strength .card>*,.compare>*,.compare .card>*,#services .grid-3>*,#services .card>*,.service-directory>*,.service-directory .card>*,.offer-records>*,.offer-records .card>*,.related-directory>*,.related-directory .card>*,.timeline>*,.tl-item>*,.cta-band .wrap>*,.foot>*{min-width:0}
}
