/* Rules for the small utility pages: contact, privacy, terms, 404.
   Everything shared comes from /shared/site.css. Nothing here redefines a shared selector. */

.hero{padding:136px 0 64px;background:var(--basemap);
      background-image:linear-gradient(rgba(12,46,28,.045) 1px, transparent 1px),linear-gradient(90deg, rgba(12,46,28,.045) 1px, transparent 1px);
      background-size:44px 44px;border-bottom:1px solid var(--line)}
.hero .kick{font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:600;letter-spacing:.2em;color:var(--field)}
.hero h1{font-size:clamp(40px,4.6vw,64px);font-weight:900;letter-spacing:-.025em;line-height:1.02;color:var(--pine);margin-top:18px;max-width:13em}
.hero h1 .hl{color:var(--field);background:linear-gradient(var(--lime),var(--lime)) no-repeat left 94%/100% .13em}
.hero .lede{font-size:clamp(17px,1.4vw,20px);color:var(--slate);margin-top:22px;max-width:34em;line-height:1.5}
.wrap.narrow{max-width:860px}

/* contact */
.ways{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:48px}
.ways .tk-body{gap:12px}
.ways .go{display:inline-flex;align-items:center;gap:6px;margin-top:auto;padding-top:10px;font-size:15px;font-weight:700;color:var(--field)}
.ways .go svg{transition:transform .18s ease}
a.tk:hover .go svg{transform:translateX(3px)}
.offices{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:40px;max-width:820px}
.office{background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px 26px}
.office .olab{font-family:'IBM Plex Mono',monospace;font-size:11.5px;font-weight:600;letter-spacing:.14em;color:var(--field)}
.office .oaddr{font-size:17px;line-height:1.55;color:var(--pine);font-weight:600;margin-top:10px}

/* sample plan */
.sphero{padding-bottom:88px}
.sphero .wrap{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:56px;align-items:start}
.sptop{grid-column:1;grid-row:1}
.spmore{grid-column:1;grid-row:2}
.sphero .spcard{grid-column:2;grid-row:1 / span 2}
.spin{list-style:none;margin-top:26px;max-width:34em}
.spin li{padding:12px 0 12px 26px;border-top:1px solid var(--line);font-size:16px;line-height:1.5;color:var(--slate);position:relative}
.spin li:last-child{border-bottom:1px solid var(--line)}
.spin li::before{content:"";position:absolute;left:2px;top:19px;width:10px;height:10px;border-radius:3px;background:var(--green)}
.spin b{color:var(--pine)}
.spshot{margin-top:34px;border-radius:12px;overflow:hidden;border:1px solid var(--line);box-shadow:0 18px 44px rgba(12,46,28,.12);background:#fff}
.spshot img{display:block;width:100%;height:auto}
.spcard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:32px;box-shadow:0 14px 34px rgba(12,46,28,.08);position:sticky;top:96px}
.spcard h2{font-size:clamp(24px,2.4vw,30px);font-weight:800;letter-spacing:-.02em;line-height:1.1;color:var(--pine);margin-top:8px}
.spcard .spsub{color:var(--slate);margin-top:10px;line-height:1.55;font-size:15.5px}
@media (max-width:960px){
  .sphero .wrap{grid-template-columns:1fr;row-gap:32px}
  .sptop, .spmore, .sphero .spcard{grid-column:1}
  .sphero .spcard{grid-row:2}
  .spmore{grid-row:3}
  .spcard{position:static;padding:24px}
  .spin{margin-top:0}
}

/* legal text */
.docsec{padding:56px 0 104px}
.doc{font-size:17px;line-height:1.7;color:var(--slate)}
.doc > * + *{margin-top:1.1em}
.doc > :first-child{margin-top:0}
.doc h2{font-size:22px;font-weight:800;line-height:1.25;letter-spacing:-.01em;color:var(--pine);margin-top:2em}
.doc h2 + *{margin-top:.6em}
.doc ul, .doc ol{padding-left:1.3em}
.doc li + li{margin-top:.4em}
.doc li::marker{color:var(--field)}
.doc strong{color:var(--ink);font-weight:700}
.doc a{font-weight:600;text-underline-offset:3px}
.doclinks{display:flex;flex-wrap:wrap;gap:6px 28px;margin-top:56px;padding-top:22px;border-top:1px solid var(--line)}

/* 404 */
.lost{padding-bottom:120px;border-bottom:0;min-height:72vh}
.lost .ctas{display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px;margin-top:34px}

/* crew scheduling page */
.crewhero{padding-bottom:80px}
.crewhero .wrap{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:56px;align-items:center}
.crewhero h1{max-width:12em}
.crewhero .lede + .lede{margin-top:14px}
.crewhero .ctas{display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px;margin-top:32px}
.cvis{position:relative;min-height:470px}
.ccard{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 4px 14px rgba(12,46,28,.06),0 30px 70px rgba(12,46,28,.14)}
.ccard img{display:block;width:100%;height:auto}
.cmap{position:absolute;right:0;top:0;width:78%}
.ctl{position:absolute;left:0;bottom:0;width:96%}
.ccard figcaption{padding:12px 18px;border-top:1px solid var(--line);font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:600;letter-spacing:.12em;color:var(--grey)}
.split{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:56px;align-items:start;margin-top:40px}
.prose2{font-size:17.5px;line-height:1.65;color:var(--slate);max-width:36em}
.prose2 p + p{margin-top:1em}
.prose2 b{color:var(--ink)}
.prose2 .pull{font-size:clamp(22px,2vw,27px);font-weight:800;line-height:1.3;letter-spacing:-.01em;color:var(--pine);border-left:3px solid var(--green);padding-left:20px}
.vs{display:grid;gap:16px}
.vsc{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px 24px}
.vsc.on{border:2px solid var(--green)}
.vsl{font-family:'IBM Plex Mono',monospace;font-size:11.5px;font-weight:600;letter-spacing:.14em;color:var(--grey)}
.vsc.on .vsl{color:var(--field)}
.vsc ul{list-style:none;margin-top:12px}
.vsc li{display:flex;gap:12px;align-items:flex-start;padding:9px 0;border-top:1px solid #E4EBE6;font-size:15.5px;color:var(--slate)}
.vsc li:first-child{border-top:0;padding-top:0}
.vsc li svg{flex:0 0 auto;margin-top:5px}
.jp{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:56px;align-items:center;margin-top:40px}
.jptext{font-size:17.5px;line-height:1.65;color:var(--slate);max-width:36em}
.jptext p + p{margin-top:1em}
.jptl{margin-top:40px}
.changes{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:44px}
.changes .tk-body{padding:26px 28px 28px}
.stackrow{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.stackrow .sectionsub{margin-top:0;font-size:18px}
.fitcopy{max-width:46em;margin-top:28px;font-size:18px;line-height:1.65;color:var(--slate)}
.fitcopy p + p{margin-top:1em}
.fitcopy b{color:var(--ink)}
.crewproof .ps-grid{margin-top:44px}
@media (max-width:960px){
  .crewhero .wrap{grid-template-columns:1fr;gap:40px}
  .cvis{min-height:0;display:grid;gap:16px}
  .cmap,.ctl{position:static;width:100%}
  .cmap{max-width:420px}
  .split,.jp{grid-template-columns:1fr;gap:32px}
  .changes,.stackrow{grid-template-columns:1fr;gap:16px}
}

@media (max-width:960px){
  .hero{padding:110px 0 48px}
  .ways{grid-template-columns:1fr;gap:16px}
  .offices{grid-template-columns:1fr;gap:16px}
  .docsec{padding:40px 0 72px}
  .lost{padding-bottom:80px;min-height:60vh}
}
@media (max-width:640px){
  .hero h1{font-size:38px}
  .doc{font-size:16.5px}
}
