/* site.css — shared parts only: reset, type, links/focus, buttons, forms, tables, header, footer, payment strip,
   legal document layout, small utilities. Tokens come from tokens.css. Page agents keep their own page CSS.
   Sections at the bottom (.ct-* contact, .nf-* 404) belong to the pages owned by the base agent. */

/* ------------------------------------------------------------------ 1. reset + base */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:16px}
body{margin:0;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg);color:var(--ink);
  font-family:var(--font);font-size:clamp(1rem,.96rem + .15vw,1.0625rem);line-height:1.6;font-weight:400;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
main{display:block;flex:1 0 auto;min-width:0}
img,svg,video,canvas{max-width:100%}
img{height:auto;vertical-align:middle}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
::selection{background:var(--lime);color:var(--ink)}
hr{border:0;border-top:1px solid var(--line);margin:2rem 0}

/* ------------------------------------------------------------------ 2. typography */
h1,h2,h3,h4{margin:0 0 .5em;font-weight:700;line-height:1.12;letter-spacing:-.015em;text-wrap:balance}
h1{font-size:clamp(2.1rem,1.35rem + 3.4vw,4rem);font-weight:800;letter-spacing:-.025em;line-height:1.04}
h2{font-size:clamp(1.65rem,1.2rem + 1.9vw,2.6rem);letter-spacing:-.02em}
h3{font-size:clamp(1.2rem,1.05rem + .6vw,1.5rem)}
h4{font-size:1.0625rem;letter-spacing:0}
p{margin:0 0 1em;text-wrap:pretty}
p:last-child{margin-bottom:0}
ul,ol{margin:0 0 1em;padding-left:1.25em}
li{margin:.2em 0}
small{font-size:.8125rem}
strong,b{font-weight:700}
code,kbd,samp{font-family:var(--mono);font-size:.92em}
.mono{font-family:var(--mono)}
.muted{color:var(--muted)}
.nolist{list-style:none;margin:0;padding:0}

/* ------------------------------------------------------------------ 3. links + focus */
a{color:var(--blue-d);text-decoration-thickness:1px;text-underline-offset:.18em}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.on-navy :focus-visible,.site-footer :focus-visible,.ct-chat :focus-visible,.nf-code :focus-visible{outline-color:var(--lime)}
.skip{position:absolute;left:12px;top:-80px;z-index:200;padding:12px 18px;border-radius:12px;background:var(--ink);color:#fff;
  font-weight:600;text-decoration:none;transition:top .15s var(--ease)}
.skip:focus{top:12px;outline:3px solid var(--lime);outline-offset:2px}
.link-arrow{display:inline-flex;align-items:center;gap:.45em;font-weight:600;color:inherit;text-decoration:none}
.link-arrow .ic{transition:translate .2s var(--ease)}
a:hover .link-arrow .ic,.link-arrow:hover .ic{translate:4px 0}

/* icons */
.ic{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}

/* ------------------------------------------------------------------ 4. buttons */
.btn{--b-bg:var(--blue);--b-fg:#fff;--b-bd:var(--blue);--b-hbg:var(--blue-d);--b-hbd:var(--blue-d);--b-hfg:#fff;
  display:inline-flex;align-items:center;justify-content:center;gap:.55em;min-height:48px;padding:.7em 1.4em;
  border:1.5px solid var(--b-bd);border-radius:14px;background:var(--b-bg);color:var(--b-fg);
  font-family:var(--font);font-size:1rem;font-weight:600;line-height:1.2;text-align:center;text-decoration:none;cursor:pointer;
  -webkit-appearance:none;appearance:none;
  transition:translate .2s var(--ease),box-shadow .2s var(--ease),background-color .2s,color .2s,border-color .2s}
.btn:hover{translate:0 -2px;box-shadow:var(--shadow-up);background:var(--b-hbg);border-color:var(--b-hbd);color:var(--b-hfg);text-decoration:none}
.btn:active{translate:0 0;box-shadow:none}
.btn-ink{--b-bg:var(--navy);--b-bd:var(--navy);--b-fg:var(--on-navy);--b-hbg:var(--navy-2);--b-hbd:var(--navy-2);--b-hfg:#fff}
.btn-lime{--b-bg:var(--lime);--b-bd:var(--lime);--b-fg:var(--ink);--b-hbg:var(--lime-d);--b-hbd:var(--lime-d);--b-hfg:var(--ink)}
.btn-ghost{--b-bg:transparent;--b-bd:var(--line-strong);--b-fg:var(--ink);--b-hbg:var(--surface);--b-hbd:var(--ink);--b-hfg:var(--ink)}
.on-navy .btn-ghost,.ct-chat .btn-ghost{--b-fg:var(--on-navy);--b-bd:rgba(241,240,235,.4);--b-hbg:rgba(241,240,235,.1);--b-hbd:var(--on-navy);--b-hfg:#fff}
.btn-sm{min-height:44px;padding:.5em 1.1em;font-size:.9375rem}
.btn-lg{min-height:56px;padding:.85em 1.8em;font-size:1.0625rem}
.btn-block{display:flex;width:100%}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.55;pointer-events:none;box-shadow:none}

/* lift: tiles that rise 4px on hover (uses `translate`, so it never fights the .reveal transform) */
.lift{transition:translate .25s var(--ease),box-shadow .25s var(--ease),background-color .25s,border-color .25s}
.lift:hover{translate:0 -4px;box-shadow:var(--shadow-up)}
html.js .reveal{transition-property:opacity,transform,translate,box-shadow,background-color,border-color;transition-duration:.6s,.6s,.25s,.25s,.25s,.25s}

/* ------------------------------------------------------------------ 5. forms */
label,.label{display:block;margin:0 0 6px;font-size:.9375rem;font-weight:600;line-height:1.35}
input[type=text],input[type=email],input[type=tel],input[type=url],input[type=search],input[type=number],input[type=password],select,textarea{
  display:block;width:100%;min-height:48px;padding:11px 14px;border:1.5px solid var(--line-strong);border-radius:var(--r-s);
  background:var(--surface);color:var(--ink);font-family:var(--font);font-size:1rem;line-height:1.4;
  -webkit-appearance:none;appearance:none;transition:border-color .15s,box-shadow .15s}
textarea{min-height:150px;resize:vertical;line-height:1.55}
::placeholder{color:var(--muted);opacity:1}
input:hover,select:hover,textarea:hover{border-color:var(--ink-2)}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(35,71,240,.22)}
select{padding-right:42px;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E1A3A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 13px center;background-size:18px}
input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}
.field{display:grid;gap:0;min-width:0;margin-bottom:18px}
.field-row{display:grid;gap:0 16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}
.field-row > *{min-width:0}
.help{margin:6px 0 0;font-size:.8125rem;line-height:1.45;color:var(--muted)}
.field-error{margin:6px 0 0;font-size:.875rem;font-weight:500;line-height:1.4;color:var(--danger)}
.is-invalid,[aria-invalid="true"]{border-color:var(--danger)!important}
[aria-invalid="true"]:focus-visible,.is-invalid:focus-visible{box-shadow:0 0 0 3px rgba(179,38,30,.2)}
.req{color:var(--danger);font-weight:700}

.check{display:flex;align-items:flex-start;gap:12px;min-height:44px;margin:0;padding:10px 0;font-weight:400;font-size:1rem;cursor:pointer}
.check input{-webkit-appearance:none;appearance:none;flex:none;display:grid;place-content:center;width:24px;height:24px;margin:1px 0 0;
  border:1.5px solid var(--line-strong);border-radius:7px;background:var(--surface);cursor:pointer;transition:background-color .15s,border-color .15s}
.check input::after{content:"";width:12px;height:7px;margin-top:-2px;border:solid #fff;border-width:0 0 2.5px 2.5px;
  transform:rotate(-45deg) scale(0);transition:transform .15s var(--ease)}
.check input:checked{background:var(--blue);border-color:var(--blue)}
.check input:checked::after{transform:rotate(-45deg) scale(1)}
.check input[type=radio]{border-radius:50%}
.check input[type=radio]::after{width:10px;height:10px;margin:0;border:0;border-radius:50%;background:#fff;transform:scale(0)}
.check input[type=radio]:checked::after{transform:scale(1)}
.check input:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

.notice{display:flex;gap:12px;align-items:flex-start;margin:0 0 20px;padding:14px 16px;border:1.5px solid;border-radius:var(--r-m);font-size:.9375rem;line-height:1.5}
.notice:focus{outline:none}
.notice:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.notice-ok{background:#E3F4EA;border-color:#8FCDAA;color:#0A4D31}
.notice-err{background:#FBE9E7;border-color:#E4A19A;color:#7A1812}
.notice p{margin:0}
.jh-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ------------------------------------------------------------------ 6. tables (base) */
table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
caption{padding-bottom:.6em;text-align:left;font-weight:600}
th,td{padding:.75em 1em .75em 0;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
th{font-weight:600}
thead th,th[scope=col]{font-size:.8125rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}
.table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}

/* ------------------------------------------------------------------ 7. small components + utilities */
.eyebrow{display:inline-flex;align-items:center;gap:.6em;margin:0 0 .9em;font-family:var(--mono);font-size:.8125rem;font-weight:500;
  letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.eyebrow::before{content:"";width:9px;height:9px;border-radius:2px;background:var(--blue);flex:none}
.on-navy .eyebrow,.ct-chat .eyebrow{color:var(--on-navy-muted)}
.on-navy .eyebrow::before,.ct-chat .eyebrow::before{background:var(--lime)}
.tag{display:inline-flex;align-items:center;gap:.4em;padding:3px 10px;border-radius:8px;background:var(--sky);color:var(--ink);
  font-family:var(--mono);font-size:.78125rem;font-weight:500;line-height:1.5;white-space:nowrap}
.tag-lime{background:var(--lime)}
.tag-ink{background:var(--navy);color:var(--on-navy)}
.tag-line{background:transparent;box-shadow:inset 0 0 0 1.5px var(--line-strong)}
.stack > * + *{margin-top:var(--s,1rem)}
.stack-sm{--s:.5rem}
.stack-lg{--s:1.75rem}
.cluster{display:flex;flex-wrap:wrap;align-items:center;gap:var(--g,.75rem)}
.cluster-lg{--g:1.25rem}

/* ------------------------------------------------------------------ 8. site header */
.site-header{position:relative;z-index:60;background:var(--surface);border-bottom:1px solid var(--line)}
.hdr{display:flex;align-items:center;flex-wrap:wrap;column-gap:8px;min-height:68px;padding-top:8px;padding-bottom:8px}
.brand{display:inline-flex;align-items:center;gap:10px;min-height:48px;margin-right:auto;color:var(--ink);text-decoration:none}
.brand img{height:34px;width:auto;flex:none}
.brand-word{display:grid;gap:4px;line-height:1}
.brand-word b{font-size:1.3rem;font-weight:800;letter-spacing:.05em}
.brand-word i{font-style:normal;font-size:.75rem;font-weight:600;letter-spacing:.3em;color:var(--blue-d)}
.hdr-actions{display:flex;align-items:center;gap:6px}
.hbtn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:44px;height:44px;padding:0 10px;
  border:1.5px solid transparent;border-radius:12px;background:none;color:var(--ink);font-family:var(--font);font-size:.9375rem;font-weight:600;
  text-decoration:none;cursor:pointer;transition:background-color .15s,border-color .15s}
.hbtn:hover{background:var(--bg);text-decoration:none}
.hcart{border-color:var(--line-strong)}
.hcart:hover{border-color:var(--ink)}
.hcart[aria-current]{background:var(--sky);border-color:var(--sky-d)}
.hcart-t{display:none}
.hcart-n{position:absolute;top:-8px;right:-8px;min-width:22px;height:22px;padding:0 5px;border:2px solid var(--surface);border-radius:11px;
  background:var(--blue);color:#fff;font-family:var(--mono);font-size:.75rem;font-weight:500;line-height:18px;text-align:center}
.hburger{display:none}
.hburger .ic-close{display:none}
.site-header.is-open .hburger .ic-open{display:none}
.site-header.is-open .hburger .ic-close{display:block}

/* panel = nav + search. Without JS on small screens it is a plain row of links below the bar. */
.hdr-panel{order:3;flex:1 0 100%;display:flex;flex-direction:column;gap:4px;padding:2px 0 10px}
.hnav{display:flex;flex-wrap:wrap;gap:2px 4px;margin:0;padding:0;list-style:none}
.hnav li{margin:0}
.hnav a{display:flex;align-items:center;min-height:44px;padding:0 13px;border-radius:12px;color:var(--ink);font-size:.9375rem;font-weight:600;text-decoration:none;transition:background-color .15s}
.hnav a:hover{background:var(--bg)}
.hnav a[aria-current]{background:var(--sky)}
.hsearch{display:none;align-items:center;height:44px;padding-left:12px;border:1.5px solid var(--line-strong);border-radius:12px;background:var(--surface)}
.hsearch:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px rgba(35,71,240,.18)}
.hsearch input[type=search]{flex:1;width:auto;min-width:0;min-height:0;height:100%;padding:0 8px;border:0;border-radius:0;background:transparent;box-shadow:none;font-size:.9375rem;font-weight:500}
.hsearch input[type=search]:focus-visible{outline:none;box-shadow:none}
.hsearch button{flex:none;display:grid;place-items:center;width:44px;height:100%;padding:0;border:0;border-radius:0 10px 10px 0;background:none;color:var(--ink)}
.hsearch button:hover{background:var(--bg)}

html.js .hburger{display:inline-flex}
html.js .hdr-panel{display:none;position:absolute;left:0;right:0;top:100%;z-index:70;gap:12px;padding:14px var(--gutter) 20px;
  background:var(--surface);border-bottom:1px solid var(--line);box-shadow:0 18px 30px rgba(14,26,58,.12)}
html.js .site-header.is-open .hdr-panel{display:flex}
html.js .hsearch{display:flex;order:-1}
html.js .hnav{flex-direction:column;gap:2px}
html.js .hnav a{min-height:48px;padding:0 12px;font-size:1.0625rem}
html.js .hsearch-link{display:inline-flex}

@media (min-width:520px){
  .hcart-t{display:inline}
  .hcart{padding:0 14px 0 12px}
}
@media (min-width:1200px){
  .hdr{flex-wrap:nowrap;column-gap:20px;min-height:76px}
  .brand{margin-right:0}
  .hdr-panel,html.js .hdr-panel,html.js .site-header.is-open .hdr-panel{order:0;flex:1 1 auto;min-width:0;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:20px;
    position:static;padding:0;background:none;border:0;box-shadow:none}
  .hnav,html.js .hnav{flex-direction:row;flex-wrap:nowrap;gap:2px;justify-content:center}
  .hnav a,html.js .hnav a{min-height:44px;padding:0 11px;font-size:.9375rem}
  .hsearch,html.js .hsearch{display:flex;order:0;flex:0 0 190px;width:190px}
  .hsearch-link,html.js .hsearch-link,.hburger,html.js .hburger{display:none}
}
@media (min-width:1360px){
  .hsearch,html.js .hsearch{flex-basis:230px;width:230px}
  .hnav a,html.js .hnav a{padding:0 14px}
}

/* ------------------------------------------------------------------ 9. site footer (navy tile) */
.site-footer{padding:clamp(40px,6vw,80px) var(--gutter) var(--gutter)}
.ft-tile{max-width:calc(var(--wrap) - 2 * var(--gutter));margin:0 auto;padding:clamp(24px,4vw,52px);border-radius:var(--r-l);
  background:var(--navy);color:var(--on-navy)}
.ft-top{display:grid;gap:32px 48px;grid-template-columns:minmax(0,1fr)}
.ft-top > *{min-width:0}
.ft-logo{display:inline-grid;place-items:center;padding:12px 16px;border-radius:var(--r-m);background:#fff}
.ft-logo img{width:70px;height:auto}
.ft-brand p{max-width:34ch;margin:16px 0 0;color:var(--on-navy-muted);font-size:.9375rem}
.ft-cols{display:grid;gap:28px 20px;grid-template-columns:repeat(2,minmax(0,1fr))}
.ft-col{min-width:0}
.ft-col:last-child{grid-column:1 / -1}
.ft-h{margin:0 0 12px;font-family:var(--mono);font-size:.8125rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--on-navy-muted)}
.ft-col ul{margin:0;padding:0;list-style:none}
.ft-col li{margin:0}
.ft-col a{display:inline-flex;align-items:center;min-height:36px;padding:4px 0;color:var(--on-navy);font-size:.9375rem;text-decoration:none;overflow-wrap:anywhere}
.ft-col a:hover,.ft-legal a:hover{color:var(--lime);text-decoration:underline;text-underline-offset:.2em}
.ft-pay{display:flex;flex-direction:column;gap:12px;margin-top:clamp(28px,4vw,48px);padding-top:clamp(20px,3vw,28px);border-top:1px solid rgba(241,240,235,.16)}
.ft-pay-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;align-self:flex-start;max-width:100%;margin:0;padding:10px 14px;list-style:none;border-radius:var(--r-m);background:#fff}
.ft-pay-row li{display:flex;margin:0}
.ft-pay-row img{height:26px;width:auto}
.ft-pay p{margin:0;color:var(--on-navy-muted);font-size:.875rem}
.ft-legal{display:flex;flex-direction:column;gap:6px 24px;margin-top:clamp(20px,3vw,28px);padding-top:clamp(16px,2.4vw,22px);border-top:1px solid rgba(241,240,235,.16);font-size:.875rem;color:var(--on-navy-muted)}
.ft-legal p{margin:0}
.ft-legal ul{display:flex;flex-wrap:wrap;gap:0 18px;margin:0;padding:0;list-style:none}
.ft-legal li{margin:0}
.ft-legal a{display:inline-flex;align-items:center;min-height:44px;color:var(--on-navy);text-decoration:none}

@media (max-width:719px){
  .site-footer{padding-bottom:calc(var(--gutter) + 40px)}
}
@media (min-width:720px){
  .ft-cols{grid-template-columns:repeat(4,minmax(0,1fr))}
  .ft-col:last-child{grid-column:auto}
  .ft-pay{flex-direction:row;align-items:center;gap:20px}
  .ft-legal{flex-direction:row;align-items:center;justify-content:space-between}
}
@media (min-width:1000px){
  .ft-top{grid-template-columns:minmax(0,.9fr) minmax(0,2.4fr)}
}

/* ------------------------------------------------------------------ 10. legal document (.doc) */
.doc-page{padding-top:clamp(28px,5vw,64px);padding-bottom:clamp(48px,7vw,104px)}
.doc{display:grid;gap:0 clamp(32px,6vw,96px);grid-template-columns:minmax(0,1fr)}
.doc > *{min-width:0}
.doc-head{padding-bottom:clamp(20px,3vw,36px);margin-bottom:clamp(20px,3vw,36px);border-bottom:1px solid var(--line-strong)}
.doc-head h1{max-width:18ch;margin-bottom:.35em}
.doc-lede{max-width:56ch;margin:0;font-size:clamp(1.0625rem,1rem + .4vw,1.25rem);line-height:1.55;color:var(--ink-2)}
.doc-side{margin-bottom:28px;font-size:.9375rem;color:var(--ink-2)}
.doc-side p{margin:0 0 .35em}
.doc-updated{font-family:var(--mono);font-size:.8125rem;letter-spacing:.02em;color:var(--ink-2)}
.doc-side-h{margin:1.4em 0 .4em!important;font-family:var(--mono);font-size:.75rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.doc-side ul{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:0 18px}
.doc-side li{margin:0}
.doc-side a{display:inline-flex;align-items:center;min-height:44px;font-weight:600}
.doc-side a[aria-current]{color:var(--ink);text-decoration:none;box-shadow:inset 0 -3px 0 var(--lime-d)}

.doc-body{max-width:70ch;font-size:1.0625rem;line-height:1.7;counter-reset:doc;overflow-wrap:break-word}
.doc-body > :first-child{margin-top:0}
.doc-body h2{display:flex;align-items:baseline;gap:.6em;margin:2.1em 0 .6em;font-size:clamp(1.35rem,1.2rem + .7vw,1.65rem);line-height:1.25;letter-spacing:-.01em;text-wrap:pretty}
.doc-body h2::before{counter-increment:doc;content:counter(doc);flex:none;min-width:1.6em;font-family:var(--mono);font-size:.7em;font-weight:500;color:var(--blue-d)}
.doc-body h2:first-child{margin-top:0}
.doc-body h3{margin:1.7em 0 .4em;font-size:1.125rem;line-height:1.35;letter-spacing:0}
.doc-body p,.doc-body ul,.doc-body ol{margin:0 0 1em}
.doc-body ul,.doc-body ol{padding-left:1.3em}
.doc-body li{margin:.35em 0;padding-left:.2em}
.doc-body li::marker{color:var(--ink-2)}
.doc-body a{overflow-wrap:anywhere}
.doc-body strong{font-weight:650}
.doc-body .doc-key{padding-left:16px;border-left:3px solid var(--blue)}

.doc-facts{margin:1.2em 0 1.6em;padding:0}
.doc-facts > div{display:grid;gap:2px 24px;grid-template-columns:minmax(0,1fr);padding:11px 0;border-top:1px solid var(--line)}
.doc-facts > div:last-child{border-bottom:1px solid var(--line)}
.doc-facts dt{font-size:.875rem;font-weight:600;color:var(--ink-2)}
.doc-facts dd{margin:0;overflow-wrap:anywhere}

.doc-body table{margin:1.3em 0 1.8em;font-size:.9375rem;line-height:1.55}
.doc-body th,.doc-body td{padding:.8em 1.1em .8em 0}
.doc-body tbody th{font-family:var(--mono);font-size:.875rem;font-weight:500;overflow-wrap:anywhere}
.doc-body td{color:var(--ink)}

@media (min-width:1000px){
  .doc{grid-template-columns:minmax(0,220px) minmax(0,70ch)}
  .doc-head{grid-column:1 / -1}
  .doc-side{margin-bottom:0}
  .doc-side ul{display:block}
}
@media (max-width:639px){
  .doc-body table,.doc-body tbody,.doc-body tr,.doc-body td,.doc-body th{display:block}
  .doc-body thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .doc-body tr{padding:.85em 0;border-bottom:1px solid var(--line)}
  .doc-body th,.doc-body td{padding:.15em 0;border:0}
  .doc-body td{display:grid;gap:.6em;grid-template-columns:6.5rem minmax(0,1fr)}
  .doc-body td::before{content:attr(data-label);font-size:.875rem;font-weight:600;color:var(--ink-2)}
}
@media (min-width:640px){
  .doc-facts > div{grid-template-columns:minmax(0,11rem) minmax(0,1fr)}
}

/* ------------------------------------------------------------------ 11. contact page (.ct-*) */
.ct-page{padding-top:clamp(16px,2.4vw,32px);padding-bottom:clamp(8px,2vw,24px)}
.ct-grid{display:grid;gap:14px;grid-template-columns:minmax(0,1fr)}
.ct-grid > *{min-width:0}
.ct-t{position:relative;margin:0;padding:clamp(22px,2.8vw,34px);border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface);overflow:hidden}
.ct-t h2{margin:0 0 .4em;font-size:clamp(1.25rem,1.1rem + .6vw,1.6rem);letter-spacing:-.01em}
.ct-t p{margin:0 0 .8em;font-size:.9375rem}
.ct-t p:last-child{margin-bottom:0}
.ct-form h1{margin-bottom:.3em;font-size:clamp(2.2rem,1.5rem + 3vw,3.75rem)}
.ct-lead{max-width:46ch;margin-bottom:1.6em!important;font-size:1.0625rem!important;color:var(--ink-2)}
.ct-form form{margin:0}
.ct-form .btn{margin-top:4px}
.ct-form .help{margin-top:14px}
.ct-photo{width:100%;padding:0;min-height:220px;aspect-ratio:16 / 9;background:var(--navy)}
.ct-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ct-cap{position:absolute;left:14px;bottom:14px;max-width:calc(100% - 28px);padding:8px 12px;border-radius:var(--r-s);background:#fff;color:var(--ink);font-size:.875rem;font-weight:600;line-height:1.3}
.ct-mail .eyebrow{display:flex}
.ct-mail{background:var(--lime);border-color:var(--lime-d);color:var(--ink)}
.ct-mail-link{display:inline-block;margin:.1em 0 .5em;padding:2px 0;color:var(--ink);font-size:clamp(1.05rem,.8rem + 1.5vw,1.5rem);font-weight:700;letter-spacing:-.01em;overflow-wrap:anywhere;text-decoration-thickness:2px;text-underline-offset:.2em}
.ct-mail-link:hover{text-decoration-thickness:3px}
.ct-chat{background:var(--navy);border-color:var(--navy);color:var(--on-navy)}
.ct-chat p{color:var(--on-navy-muted)}
.ct-chat .btn{margin-top:14px;display:none}
html.js .ct-chat .btn{display:inline-flex}
.ct-tips{background:var(--sky);border-color:var(--sky-d);color:var(--ink)}
.ct-tips ul{margin:0;padding-left:1.1em;font-size:.9375rem}
.ct-tips li{margin:.3em 0}
.ct-refund{display:grid;gap:14px 28px;align-items:center}
.ct-refund h2{margin-bottom:.25em}
.ct-refund p{max-width:62ch}
.ct-refund .link-arrow{color:var(--blue-d);min-height:44px}

@media (min-width:700px){
  .ct-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
  .ct-form,.ct-photo,.ct-tips,.ct-refund{grid-column:1 / -1}
  .ct-photo{aspect-ratio:21 / 8}
  .ct-mail{grid-column:1 / 4}
  .ct-chat{grid-column:4 / 7}
  .ct-refund{grid-template-columns:minmax(0,1fr) auto}
}
@media (min-width:1024px){
  .ct-grid{grid-template-columns:repeat(12,minmax(0,1fr))}
  .ct-form{grid-column:1 / 8;grid-row:1 / 5}
  .ct-photo{grid-column:8 / 13;grid-row:1;aspect-ratio:auto;min-height:260px}
  .ct-mail{grid-column:8 / 13;grid-row:2}
  .ct-chat{grid-column:8 / 13;grid-row:3}
  .ct-tips{grid-column:8 / 13;grid-row:4}
  .ct-refund{grid-column:1 / -1;grid-row:5}
}

/* ------------------------------------------------------------------ 12. 404 page (.nf-*) */
.nf-page{padding-top:clamp(16px,2.4vw,32px);padding-bottom:clamp(8px,2vw,24px)}
.nf-grid{display:grid;gap:14px;grid-template-columns:minmax(0,1fr)}
.nf-grid > *{min-width:0}
.nf-t{position:relative;display:block;margin:0;padding:clamp(22px,2.8vw,34px);border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface);color:var(--ink);text-decoration:none;overflow:hidden}
.nf-t h2{margin:0 0 .3em;font-size:clamp(1.25rem,1.1rem + .6vw,1.6rem);letter-spacing:-.01em}
.nf-t p{margin:0 0 .8em;font-size:.9375rem;color:var(--ink-2)}
.nf-main h1{max-width:12ch;margin-bottom:.4em}
.nf-main p{max-width:48ch;font-size:1.0625rem}
.nf-search{display:flex;flex-wrap:wrap;gap:10px;max-width:520px;margin:1.4em 0 0}
.nf-search input{flex:1 1 220px;width:auto}
.nf-search .btn{flex:0 0 auto}
.nf-actions{margin-top:1.4em}
.nf-code{display:none;align-content:end;background:var(--navy);border-color:var(--navy);color:var(--on-navy);min-height:200px}
.nf-code::before{content:"";position:absolute;width:70%;aspect-ratio:1;right:-18%;top:-24%;border-radius:50%;background:radial-gradient(closest-side,rgba(35,71,240,.7),rgba(35,71,240,0));animation:jh-drift 14s ease-in-out infinite}
.nf-code b{position:relative;font-family:var(--mono);font-size:clamp(4.5rem,3rem + 8vw,9rem);font-weight:500;line-height:.9;letter-spacing:-.04em}
.nf-code span{position:relative;margin-top:.8em;font-family:var(--mono);font-size:.8125rem;letter-spacing:.08em;text-transform:uppercase;color:var(--on-navy-muted)}
.nf-line{display:flex;flex-direction:column;justify-content:space-between;min-height:160px;transition:translate .25s var(--ease),box-shadow .25s var(--ease)}
.nf-line:hover{translate:0 -4px;box-shadow:var(--shadow-up)}
.nf-n{margin-bottom:1.2em;font-family:var(--mono);font-size:.8125rem;letter-spacing:.04em;color:var(--ink-2)}
.nf-line .link-arrow{margin-top:auto;color:var(--blue-d);min-height:28px}
.nf-sky{background:var(--sky);border-color:var(--sky-d)}
.nf-sky p,.nf-sky .nf-n,.nf-lime p,.nf-lime .nf-n{color:var(--ink)}
.nf-sky .link-arrow,.nf-lime .link-arrow{color:var(--ink)}
.nf-lime{background:var(--lime);border-color:var(--lime-d)}

@media (min-width:700px){
  .nf-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
  .nf-main,.nf-code{grid-column:1 / -1}
  .nf-code{display:grid;min-height:150px}
  .nf-l1,.nf-l2,.nf-l3,.nf-l4{grid-column:span 3}
  .nf-l5{grid-column:1 / -1}
}
@media (min-width:1024px){
  .nf-grid{grid-template-columns:repeat(12,minmax(0,1fr))}
  .nf-main{grid-column:1 / 9}
  .nf-code{grid-column:9 / 13;min-height:0}
  .nf-l1{grid-column:1 / 6}
  .nf-l2{grid-column:6 / 10}
  .nf-l3{grid-column:10 / 13}
  .nf-l4{grid-column:1 / 5}
  .nf-l5{grid-column:5 / 13}
}
