/*
Theme Name: Indonesia Shipyard — Galangan Register
Theme URI: https://indonesiashipyard.com/
Description: Purpose-built classic theme for Indonesia Shipyard, the national yard register and owner-side desk. Register-book typography, mono data columns, long-form technical prose and wide capacity tables that stay readable at 390px.
Author: Indonesia Shipyard Build Desk
Version: 1.0.0
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: galangan-register
*/

/* ============================================================ fonts (self-hosted) */
@font-face{
  font-family:'ArchivoISY';
  src:url('/wp-content/uploads/fonts-isy/archivo-var-latin.woff2') format('woff2');
  font-weight:400 800;font-style:normal;font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'SplineMonoISY';
  src:url('/wp-content/uploads/fonts-isy/splinemono-var-latin.woff2') format('woff2');
  font-weight:400 600;font-style:normal;font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* ============================================================ tokens */
:root{
  --gr-ink:#0f1419;
  --gr-graphite:#181d23;
  --gr-graphite-2:#232a32;
  --gr-graphite-3:#2f3841;
  --gr-cobalt:#1f4e8c;
  --gr-cobalt-lt:#2f6fbe;
  --gr-cobalt-pale:#e7eef7;
  --gr-amber:#e0a133;
  --gr-amber-dk:#a9741a;
  --gr-paper:#f1f3f5;
  --gr-paper-2:#e6eaee;
  --gr-white:#ffffff;
  --gr-line:#ccd4db;
  --gr-line-dk:#39434d;
  --gr-mute:#57646e;
  --gr-max:1220px;
  --gr-read:45rem;
  --gr-sans:'ArchivoISY',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --gr-mono:'SplineMonoISY',ui-monospace,SFMono-Regular,'SF Mono',Menlo,Consolas,monospace;
}

/* ============================================================ base */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:clip;}
body{
  margin:0;background:var(--gr-paper);color:var(--gr-ink);
  font-family:var(--gr-sans);font-size:17px;line-height:1.72;font-weight:400;
  -webkit-font-smoothing:antialiased;overflow-x:clip;
}
img,svg,video{max-width:100%;height:auto;display:block;}
a{color:var(--gr-cobalt);text-underline-offset:2px;}
a:hover{color:var(--gr-amber-dk);}
h1,h2,h3,h4{font-family:var(--gr-sans);font-weight:700;letter-spacing:-.012em;line-height:1.22;color:var(--gr-ink);}
hr{border:0;border-top:1px solid var(--gr-line);margin:2.4em 0;}
:focus-visible{outline:2px solid var(--gr-amber);outline-offset:2px;}
.gr-wrap{max-width:var(--gr-max);margin:0 auto;padding:0 20px;width:100%;}
.gr-skip{position:absolute;left:-9999px;}
.gr-skip:focus{left:12px;top:12px;z-index:999;background:var(--gr-amber);color:var(--gr-ink);padding:8px 14px;border-radius:2px;}

/* mono label (the register signature) */
.gr-tag{
  font-family:var(--gr-mono);font-size:.7rem;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:var(--gr-amber-dk);
  display:block;margin:0 0 .55rem;
}
.gr-tag--onDark{color:var(--gr-amber);}

/* ============================================================ header / nav */
.gr-head{
  position:sticky;top:0;z-index:950;
  background:var(--gr-graphite);color:#e8edf2;
  border-bottom:1px solid var(--gr-line-dk);
  box-shadow:0 1px 0 rgba(0,0,0,.25);
}
.gr-head a{color:#e8edf2;text-decoration:none;}
.gr-head-in{display:flex;align-items:center;gap:16px;min-height:62px;}
.gr-brand{display:flex;flex-direction:column;line-height:1.1;margin-right:auto;padding:8px 0;}
.gr-brand b{font-size:15px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;}
.gr-brand span{font-family:var(--gr-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#9fb0bf;margin-top:3px;}
.gr-nav{display:flex;align-items:center;gap:2px;}
.gr-nav a{
  font-size:13.5px;font-weight:600;letter-spacing:.01em;
  padding:9px 10px;border-radius:2px;white-space:nowrap;
}
.gr-nav a:hover{background:var(--gr-graphite-2);color:var(--gr-amber);}
.gr-nav .gr-navcta{
  background:var(--gr-amber);color:var(--gr-ink);font-weight:700;
  padding:9px 15px;margin-left:8px;
}
.gr-nav .gr-navcta:hover{background:#f2b755;color:var(--gr-ink);}
.gr-burger{
  display:none;background:transparent;border:1px solid #45525e;color:#e8edf2;
  font-family:var(--gr-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  padding:9px 13px;border-radius:2px;cursor:pointer;
}
.gr-burger:hover{border-color:var(--gr-amber);color:var(--gr-amber);}

@media (max-width:980px){
  .gr-burger{display:block;}
  .gr-nav{
    display:none;position:absolute;left:0;right:0;top:100%;
    flex-direction:column;align-items:stretch;gap:0;
    background:var(--gr-graphite);border-bottom:3px solid var(--gr-amber);
    padding:6px 0 12px;z-index:960;max-height:78vh;overflow-y:auto;
    box-shadow:0 14px 26px rgba(0,0,0,.35);
  }
  .gr-nav.gr-open{display:flex;}
  .gr-nav a{padding:12px 20px;border-radius:0;border-top:1px solid #2b333c;font-size:15px;}
  .gr-nav .gr-navcta{margin:10px 20px 0;text-align:center;border-top:0;}
}

/* ============================================================ breadcrumb rail */
.gr-rail{background:var(--gr-white);border-bottom:1px solid var(--gr-line);}
.gr-crumbs{
  font-family:var(--gr-mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--gr-mute);padding:11px 0;overflow-x:auto;white-space:nowrap;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;
}
.gr-crumbs::-webkit-scrollbar{display:none;}
.gr-crumbs a{color:var(--gr-cobalt);text-decoration:none;}
.gr-crumbs a:hover{color:var(--gr-amber-dk);}

/* ============================================================ page shell */
.gr-main{padding:34px 0 56px;}
.gr-cols{display:grid;grid-template-columns:minmax(0,1fr) 296px;gap:46px;align-items:start;}
@media (max-width:1080px){.gr-cols{grid-template-columns:minmax(0,1fr);gap:34px;}}

.gr-article{min-width:0;}
.gr-title{font-size:2.15rem;line-height:1.16;margin:0 0 .5rem;letter-spacing:-.022em;}
.gr-title-sub{font-family:var(--gr-mono);font-size:.76rem;letter-spacing:.13em;text-transform:uppercase;color:var(--gr-amber-dk);margin:0 0 .7rem;}
.gr-hero-img{margin:0 0 1.9rem;border:1px solid var(--gr-line);background:var(--gr-paper-2);}
.gr-hero-img img{width:100%;}

/* ============================================================ prose */
.gr-prose{max-width:var(--gr-read);}
.gr-prose.gr-prose--wide{max-width:none;}
.gr-prose p{margin:0 0 1.15em;}
.gr-prose h2{
  font-size:1.5rem;line-height:1.24;margin:2.3em 0 .55em;color:var(--gr-ink);
  padding-top:.8em;border-top:2px solid var(--gr-graphite);
}
.gr-prose h2:first-child{margin-top:.6em;}
.gr-prose h3{font-size:1.16rem;margin:1.75em 0 .4em;color:var(--gr-graphite-3);}
.gr-prose h4{font-size:1rem;margin:1.5em 0 .35em;color:var(--gr-graphite-3);}
.gr-prose ul,.gr-prose ol{margin:0 0 1.25em;padding-left:1.25em;}
.gr-prose li{margin-bottom:.5em;}
.gr-prose li::marker{color:var(--gr-amber-dk);}
.gr-prose a{color:var(--gr-cobalt);text-decoration:underline;text-decoration-thickness:1px;}
.gr-prose a:hover{color:var(--gr-amber-dk);}
.gr-prose strong{font-weight:700;}
.gr-prose blockquote{
  margin:1.6em 0;padding:.2em 0 .2em 1.15em;border-left:3px solid var(--gr-amber);
  color:var(--gr-graphite-3);font-size:1.04rem;
}
.gr-prose code{font-family:var(--gr-mono);font-size:.9em;background:var(--gr-paper-2);padding:.12em .35em;border-radius:2px;}

/* lede — the opening claim, register-card style */
.gr-prose p.isy-lede{
  font-size:1.12rem;line-height:1.62;color:var(--gr-ink);
  background:var(--gr-white);border:1px solid var(--gr-line);border-left:4px solid var(--gr-amber);
  padding:1.1em 1.25em;margin:0 0 1.9em;border-radius:2px;
}

/* byline strip */
.isy-byline{
  font-family:var(--gr-mono);font-size:.7rem;font-weight:500;letter-spacing:.13em;text-transform:uppercase;
  color:var(--gr-mute);border-top:1px solid var(--gr-line);border-bottom:1px solid var(--gr-line);
  padding:.72em 0;margin:0 0 1.7em;
}
.isy-byline strong{color:var(--gr-graphite);font-weight:600;}

/* tables — the signature register block */
.gr-tablewrap{
  overflow-x:auto;-webkit-overflow-scrolling:touch;
  margin:1.7em 0;border:1px solid var(--gr-line);background:var(--gr-white);
  max-width:100%;
}
.gr-prose table,.gr-tablewrap table{
  width:100%;border-collapse:collapse;margin:0;
  font-size:.9rem;line-height:1.5;min-width:520px;
}
.gr-prose th,.gr-prose td,.gr-tablewrap th,.gr-tablewrap td{
  border-bottom:1px solid var(--gr-line);padding:.68em .85em;text-align:left;vertical-align:top;
}
.gr-prose thead th,.gr-tablewrap thead th{
  background:var(--gr-graphite);color:#eef2f6;font-weight:600;
  font-family:var(--gr-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
  border-bottom:0;position:sticky;top:0;
}
.gr-prose tbody tr:nth-child(even),.gr-tablewrap tbody tr:nth-child(even){background:var(--gr-paper);}
.gr-prose tbody tr:last-child td,.gr-tablewrap tbody tr:last-child td{border-bottom:0;}
.gr-prose td:first-child{font-weight:600;}

/* FAQ */
.isy-faq{margin:.5em 0 1.6em;border-top:2px solid var(--gr-graphite);}
.isy-faq-item{border-bottom:1px solid var(--gr-line);padding:.9em 0;}
.isy-faq-item summary{
  cursor:pointer;font-weight:700;color:var(--gr-graphite);list-style:none;
  display:flex;gap:.6em;align-items:flex-start;
}
.isy-faq-item summary::-webkit-details-marker{display:none;}
.isy-faq-item summary::before{
  content:"+";font-family:var(--gr-mono);color:var(--gr-amber-dk);font-weight:600;
  flex:0 0 auto;line-height:1.5;
}
.isy-faq-item[open] summary::before{content:"\2212";}
.isy-faq-item[open] summary{color:var(--gr-cobalt);}
.isy-faq-item p{margin:.7em 0 0 1.5em;color:var(--gr-graphite-3);font-size:.98rem;}

/* related block */
.isy-related{
  margin:2.6em 0 0;padding:1.35em 1.4em;background:var(--gr-white);
  border:1px solid var(--gr-line);border-top:3px solid var(--gr-cobalt);border-radius:2px;
}
.isy-related h2{
  margin:0 0 .55em;border:0;padding:0;
  font-family:var(--gr-mono);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gr-mute);
}
.isy-related ul{margin:0 0 .9em;padding-left:1.1em;}
.isy-related li{margin-bottom:.4em;font-weight:600;}
.isy-related-cta{margin:0;font-size:.92rem;color:var(--gr-mute);}

/* inline desk CTA inside long pages */
.gr-inline-cta{
  margin:2.2em 0;padding:1.3em 1.4em;background:var(--gr-graphite);color:#dfe6ec;border-radius:2px;
}
.gr-inline-cta p{margin:0 0 .6em;}
.gr-inline-cta p:last-child{margin:0;}
.gr-inline-cta a{color:var(--gr-amber);}

/* ============================================================ aside desk card */
.gr-aside{position:sticky;top:86px;font-size:.93rem;}
.gr-card{background:var(--gr-white);border:1px solid var(--gr-line);border-top:3px solid var(--gr-amber);padding:1.15em 1.25em;margin-bottom:18px;border-radius:2px;}
.gr-card h2,.gr-card h3{
  font-family:var(--gr-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--gr-mute);margin:0 0 .7em;border:0;padding:0;font-weight:500;
}
.gr-card ul{list-style:none;margin:0;padding:0;}
.gr-card li{border-top:1px solid var(--gr-paper-2);}
.gr-card li:first-child{border-top:0;}
.gr-card li a{display:block;padding:.5em 0;text-decoration:none;font-weight:600;color:var(--gr-graphite);}
.gr-card li a:hover{color:var(--gr-cobalt);}
.gr-card--desk{background:var(--gr-graphite);border-color:var(--gr-graphite);color:#dbe3ea;border-top-color:var(--gr-amber);}
.gr-card--desk h3{color:#94a5b3;}
.gr-card--desk p{margin:0 0 .8em;font-size:.92rem;line-height:1.6;}
.gr-btn{
  display:block;text-align:center;text-decoration:none;font-weight:700;font-size:.94rem;
  padding:.72em 1em;border-radius:2px;margin-bottom:8px;
}
.gr-btn--wa{background:var(--gr-amber);color:var(--gr-ink);}
.gr-btn--wa:hover{background:#f2b755;color:var(--gr-ink);}
.gr-btn--mail{background:transparent;color:#dbe3ea;border:1px solid #46525e;}
.gr-btn--mail:hover{border-color:var(--gr-amber);color:var(--gr-amber);}
.gr-note{font-family:var(--gr-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:#8a9aa8;margin:.6em 0 0;}

/* ============================================================ archive / index */
.gr-arch-list{list-style:none;margin:0;padding:0;}
.gr-arch-item{border-top:1px solid var(--gr-line);padding:1.5em 0;display:grid;grid-template-columns:180px minmax(0,1fr);gap:22px;align-items:start;}
.gr-arch-item:first-child{border-top:0;padding-top:.4em;}
.gr-arch-thumb{border:1px solid var(--gr-line);background:var(--gr-paper-2);}
.gr-arch-thumb img{width:100%;}
.gr-arch-body h2{margin:0 0 .3em;font-size:1.22rem;line-height:1.3;border:0;padding:0;}
.gr-arch-body h2 a{text-decoration:none;color:var(--gr-ink);}
.gr-arch-body h2 a:hover{color:var(--gr-cobalt);}
.gr-arch-meta{font-family:var(--gr-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gr-mute);margin:0 0 .5em;}
.gr-arch-body p{margin:0;color:var(--gr-graphite-3);font-size:.96rem;}
@media (max-width:760px){
  .gr-arch-item{grid-template-columns:104px minmax(0,1fr);gap:14px;padding:1.15em 0;}
  .gr-arch-thumb img{aspect-ratio:4/3;object-fit:cover;}
  .gr-arch-body h2{font-size:1.06rem;}
  .gr-arch-body p{font-size:.9rem;}
}
@media (max-width:380px){
  .gr-arch-item{grid-template-columns:84px minmax(0,1fr);gap:11px;}
}
.isy-archive-head{margin:0 0 1.6em;padding-bottom:1.1em;border-bottom:2px solid var(--gr-graphite);}
.isy-archive-head h1{margin:0 0 .35em;font-size:2rem;line-height:1.18;}
.isy-archive-head p{margin:0 0 .4em;color:var(--gr-mute);}
.isy-archive-head .isy-archive-nav{font-family:var(--gr-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;}
.gr-pager{display:flex;gap:10px;flex-wrap:wrap;margin-top:2.2em;font-weight:600;}
.gr-pager a,.gr-pager span{padding:.5em .85em;border:1px solid var(--gr-line);background:var(--gr-white);text-decoration:none;border-radius:2px;}
.gr-pager .current{background:var(--gr-graphite);color:#fff;border-color:var(--gr-graphite);}

/* ============================================================ footer */
.gr-foot{background:var(--gr-graphite);color:#c3cfd9;padding:44px 0 8px;font-size:.93rem;}
.gr-foot a{color:#c3cfd9;text-decoration:none;}
.gr-foot a:hover{color:var(--gr-amber);}
.gr-foot-top{display:grid;grid-template-columns:1.35fr repeat(3,1fr);gap:30px;padding-bottom:30px;border-bottom:1px solid var(--gr-line-dk);}
.gr-foot-top h4{
  font-family:var(--gr-mono);font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;
  color:var(--gr-amber);margin:0 0 .9em;font-weight:500;
}
.gr-foot-top ul{list-style:none;margin:0;padding:0;}
.gr-foot-top li{margin-bottom:.5em;}
.gr-foot-brand b{display:block;font-size:15px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#fff;margin-bottom:6px;}
.gr-foot-brand span{font-family:var(--gr-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#8fa1af;}
.gr-foot-brand p{margin:.9em 0 0;color:#a8b6c2;font-size:.9rem;line-height:1.6;}
.gr-foot-contact{margin-top:1em;font-weight:600;}
.gr-foot-contact a{color:var(--gr-amber);}
@media (max-width:900px){.gr-foot-top{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;}}
@media (max-width:520px){.gr-foot-top{grid-template-columns:minmax(0,1fr);}}

/* fleet disclosure block (injected by the canon mu-plugin) — restyled to sit inside our footer */
.isy-disclosure{background:var(--gr-graphite);color:#8d9daa;padding:22px 20px 30px;font-size:.79rem;line-height:1.65;}
.isy-disclosure-inner{max-width:var(--gr-max);margin:0 auto;padding:0;}
.isy-disclosure p{margin:0 0 .3em;}
.isy-disclosure a{color:var(--gr-amber);text-decoration:none;}
.isy-disclosure .isy-contact{
  font-size:.88rem;color:#dbe3ea;margin-bottom:.9em;padding-bottom:.85em;border-bottom:1px solid var(--gr-line-dk);
}
.isy-disclosure .isy-nav-mini{
  margin-top:1em;padding-top:.85em;border-top:1px solid var(--gr-line-dk);
  font-family:var(--gr-mono);font-size:.68rem;letter-spacing:.09em;text-transform:uppercase;
}
.gr-copy{
  max-width:var(--gr-max);margin:0 auto;padding:14px 20px 22px;
  font-family:var(--gr-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:#7d8d9a;
  background:var(--gr-graphite);
}

/* ============================================================ sticky mobile CTA */
.gr-sticky{
  display:none;position:fixed;left:0;right:0;bottom:0;z-index:940;
  background:var(--gr-graphite);border-top:2px solid var(--gr-amber);
  padding:8px 10px calc(8px + env(safe-area-inset-bottom));
  gap:8px;box-shadow:0 -6px 18px rgba(0,0,0,.28);
}
.gr-sticky a{
  flex:1 1 0;text-align:center;text-decoration:none;font-weight:700;font-size:.88rem;
  padding:.68em .4em;border-radius:2px;white-space:nowrap;
}
.gr-sticky .gr-s-wa{background:var(--gr-amber);color:var(--gr-ink);}
.gr-sticky .gr-s-mail{background:transparent;color:#dfe6ec;border:1px solid #4c5a66;}
@media (max-width:980px){
  .gr-sticky{display:flex;}
  body{padding-bottom:64px;}
}

/* ============================================================ front page */
.gr-hero{position:relative;background:var(--gr-ink);color:#e9eef3;overflow:hidden;}
.gr-hero-bg{position:absolute;inset:0;}
.gr-hero-bg img{width:100%;height:100%;object-fit:cover;opacity:.42;}
.gr-hero-bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(105deg,rgba(15,20,25,.94) 0%,rgba(15,20,25,.80) 46%,rgba(15,20,25,.42) 100%);
}
.gr-hero-in{position:relative;z-index:2;padding:58px 0 44px;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.95fr);gap:44px;align-items:start;}
.gr-hero h1{font-size:2.75rem;line-height:1.08;letter-spacing:-.028em;margin:0 0 .55rem;color:#fff;}
.gr-hero h1 em{font-style:normal;color:var(--gr-amber);}
.gr-hero-lede{font-size:1.06rem;line-height:1.66;color:#c2cfda;margin:0 0 1.5rem;max-width:36rem;}
.gr-hero-btns{display:flex;flex-wrap:wrap;gap:10px;}
.gr-hero-btns a{text-decoration:none;font-weight:700;font-size:.95rem;padding:.78em 1.35em;border-radius:2px;}
.gr-hb1{background:var(--gr-amber);color:var(--gr-ink);}
.gr-hb1:hover{background:#f2b755;color:var(--gr-ink);}
.gr-hb2{border:1px solid #4d5a66;color:#e0e7ed;}
.gr-hb2:hover{border-color:var(--gr-amber);color:var(--gr-amber);}

/* capacity ledger — vertical mono data column, the domain signature */
.gr-ledger{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.14);border-top:3px solid var(--gr-amber);padding:16px 18px 6px;}
.gr-ledger-h{font-family:var(--gr-mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gr-amber);margin:0 0 .9em;}
.gr-ledger-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;padding:.62em 0;border-top:1px solid rgba(255,255,255,.1);}
.gr-ledger-row:first-of-type{border-top:0;}
.gr-ledger-k{font-weight:700;font-size:.9rem;color:#fff;}
.gr-ledger-k small{display:block;font-weight:400;font-size:.74rem;color:#9dadba;letter-spacing:.01em;margin-top:2px;}
.gr-ledger-v{font-family:var(--gr-mono);font-size:.78rem;line-height:1.45;color:var(--gr-amber);text-align:right;white-space:nowrap;}
.gr-ledger-v span{display:block;color:#b9c7d3;}
.gr-ledger-note{font-family:var(--gr-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:#8496a4;margin:.9em 0 1em;}
@media (max-width:900px){
  .gr-hero-in{grid-template-columns:minmax(0,1fr);gap:28px;padding:38px 0 34px;}
  .gr-hero h1{font-size:2.05rem;}
}
@media (max-width:400px){
  .gr-hero h1{font-size:1.82rem;}
  .gr-ledger-row{grid-template-columns:minmax(0,1fr);}
  .gr-ledger-v{text-align:left;white-space:normal;}
}

/* front sections */
.gr-sec{padding:52px 0;border-top:1px solid var(--gr-line);}
.gr-sec--white{background:var(--gr-white);}
.gr-sec--dark{background:var(--gr-graphite);color:#d3dde5;border-top:0;}
.gr-sec--dark h2,.gr-sec--dark h3{color:#fff;}
.gr-sec--dark a{color:var(--gr-amber);}
.gr-sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:30px;align-items:end;margin-bottom:26px;}
.gr-sec-head h2{font-size:1.85rem;line-height:1.18;margin:0;letter-spacing:-.02em;}
.gr-sec-head p{margin:0;color:var(--gr-mute);font-size:.98rem;line-height:1.65;}
.gr-sec--dark .gr-sec-head p{color:#a5b3bf;}
@media (max-width:800px){.gr-sec-head{grid-template-columns:minmax(0,1fr);gap:12px;}.gr-sec-head h2{font-size:1.55rem;}}

/* numbered protocol — vertical stepped rail */
.gr-steps{counter-reset:grstep;border-top:2px solid var(--gr-graphite);}
.gr-step{display:grid;grid-template-columns:74px minmax(0,1fr);gap:20px;padding:1.4em 0;border-bottom:1px solid var(--gr-line);}
.gr-step-n{font-family:var(--gr-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gr-amber-dk);padding-top:.25em;}
.gr-step h3{margin:0 0 .3em;font-size:1.1rem;}
.gr-step p{margin:0;color:var(--gr-mute);font-size:.96rem;}
@media (max-width:600px){.gr-step{grid-template-columns:minmax(0,1fr);gap:6px;}}

/* desk cards row */
.gr-desks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
.gr-desk{background:var(--gr-white);border:1px solid var(--gr-line);border-top:3px solid var(--gr-cobalt);padding:1.25em 1.3em;border-radius:2px;display:flex;flex-direction:column;}
.gr-sec--dark .gr-desk{background:var(--gr-graphite-2);border-color:var(--gr-line-dk);border-top-color:var(--gr-amber);}
.gr-desk h3{margin:0 0 .45em;font-size:1.08rem;}
.gr-desk p{margin:0 0 1em;font-size:.95rem;color:var(--gr-mute);flex:1 1 auto;}
.gr-sec--dark .gr-desk p{color:#a8b6c2;}
.gr-desk a{font-family:var(--gr-mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;font-weight:600;}
@media (max-width:860px){.gr-desks{grid-template-columns:minmax(0,1fr);}}

/* survey cycle rail */
.gr-cycle{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:3px solid var(--gr-amber);}
.gr-cycle div{padding:1.25em 1.2em;border-right:1px solid var(--gr-line-dk);}
.gr-cycle div:last-child{border-right:0;}
.gr-cycle b{display:block;font-family:var(--gr-mono);font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:var(--gr-amber);margin-bottom:.5em;}
.gr-cycle h3{font-size:1rem;margin:0 0 .35em;}
.gr-cycle p{margin:0;font-size:.9rem;color:#a5b3bf;}
@media (max-width:860px){
  .gr-cycle{grid-template-columns:repeat(2,minmax(0,1fr));}
  .gr-cycle div{border-bottom:1px solid var(--gr-line-dk);}
}
@media (max-width:480px){.gr-cycle{grid-template-columns:minmax(0,1fr);}.gr-cycle div{border-right:0;}}

/* journal strip */
.gr-journal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;}
.gr-jitem{background:var(--gr-white);border:1px solid var(--gr-line);border-radius:2px;overflow:hidden;display:flex;flex-direction:column;}
.gr-jitem img{width:100%;aspect-ratio:16/9;object-fit:cover;}
.gr-jbody{padding:1em 1.1em 1.2em;}
.gr-jitem .gr-arch-meta{margin-bottom:.4em;}
.gr-jitem h3{margin:0;font-size:1.02rem;line-height:1.35;}
.gr-jitem h3 a{text-decoration:none;color:var(--gr-ink);}
.gr-jitem h3 a:hover{color:var(--gr-cobalt);}
@media (max-width:860px){.gr-journal{grid-template-columns:minmax(0,1fr);}}

/* closing contact band */
.gr-band{background:var(--gr-cobalt);color:#eaf1f9;padding:42px 0;}
.gr-band-in{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:34px;align-items:center;}
.gr-band h2{color:#fff;font-size:1.7rem;margin:0 0 .5em;line-height:1.2;}
.gr-band p{margin:0;color:#cfe0f2;font-size:1rem;line-height:1.65;}
.gr-band-btns{display:flex;flex-direction:column;gap:10px;}
.gr-band-btns a{text-align:center;text-decoration:none;font-weight:700;padding:.8em 1.2em;border-radius:2px;}
.gr-bb1{background:var(--gr-amber);color:var(--gr-ink);}
.gr-bb2{border:1px solid rgba(255,255,255,.5);color:#fff;}
.gr-bb2:hover{border-color:var(--gr-amber);color:var(--gr-amber);}
@media (max-width:800px){.gr-band-in{grid-template-columns:minmax(0,1fr);gap:20px;}.gr-band h2{font-size:1.42rem;}}

/* 404 */
.gr-404{padding:64px 0;text-align:left;}
.gr-404 h1{font-size:2.2rem;margin:0 0 .5em;}
.gr-404 ul{padding-left:1.2em;}

/* print */
@media print{.gr-head,.gr-sticky,.gr-aside,.gr-foot,.isy-disclosure{display:none !important;}body{background:#fff;}}

/* hero service chips - main service families kept above the fold on phone and desktop */
.gr-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:1.35rem;}
.gr-chips a{
  font-family:var(--gr-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;
  text-decoration:none;color:#cdd9e3;border:1px solid rgba(255,255,255,.22);
  padding:.5em .78em;border-radius:2px;background:rgba(255,255,255,.05);
}
.gr-chips a:hover{border-color:var(--gr-amber);color:var(--gr-amber);background:rgba(224,161,51,.08);}
.gr-sec--dark .gr-note{color:#8fa0ad;}
.gr-sec--white .gr-tablewrap{border-color:var(--gr-line);}
.gr-sec p a{font-weight:600;}

/* table scroll affordance - wide capacity tables scroll inside their own box on phones */
.gr-tablehint{
  display:none;font-family:var(--gr-mono);font-size:.66rem;letter-spacing:.11em;text-transform:uppercase;
  color:var(--gr-mute);margin:-1.2em 0 1.7em;
}
@media (max-width:760px){
  .gr-tablehint{display:block;}
  .gr-prose th,.gr-prose td,.gr-tablewrap th,.gr-tablewrap td{padding:.6em .6em;}
  .gr-prose table,.gr-tablewrap table{font-size:.86rem;}
}

/* full-bleed photographic plate between sections */
.gr-plate{position:relative;background:var(--gr-ink);overflow:hidden;}
.gr-plate img{width:100%;height:clamp(220px,34vw,400px);object-fit:cover;opacity:.88;}
.gr-plate figcaption{
  position:absolute;left:0;right:0;bottom:0;
  background:linear-gradient(to top,rgba(15,20,25,.97) 0%,rgba(15,20,25,.90) 45%,rgba(15,20,25,.55) 75%,rgba(15,20,25,0) 100%);
  color:#dfe7ee;padding:2.4em 20px 1.1em;
}
.gr-plate .gr-wrap{padding:0 20px;}
.gr-plate b{display:block;font-family:var(--gr-mono);font-size:.66rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gr-amber);margin-bottom:.35em;}
.gr-plate span{font-size:.95rem;line-height:1.55;display:block;max-width:46rem;}
@media (max-width:760px){
  /* overlay text over water is unreadable at phone width - drop the caption to a solid band */
  .gr-plate figcaption{position:static;background:var(--gr-graphite);padding:1.05em 0 1.15em;}
  .gr-plate img{height:200px;}
  .gr-plate span{font-size:.88rem;}
}

/* photographic wash behind the supervision band */
.gr-sec--photo{position:relative;isolation:isolate;}
.gr-sec--photo>.gr-photo-bg{position:absolute;inset:0;z-index:-1;}
.gr-sec--photo>.gr-photo-bg img{width:100%;height:100%;object-fit:cover;opacity:.20;}
.gr-sec--photo>.gr-photo-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(24,29,35,.92),rgba(24,29,35,.86));}
