@font-face{
    font-family:'IvyPresto Display';
    src:url('../assets/fonts/IvyPrestoDisplay-Light.otf') format('opentype');
    font-weight:300;
    font-style:normal;
    font-display:swap;
  }
  @font-face{
    font-family:'Neue Haas Grotesk Text';
    src:url('../assets/fonts/NeueHaasGroteskText-Roman.ttf') format('truetype');
    font-weight:400;
    font-style:normal;
    font-display:swap;
  }

  :root{
    --white:#FFFFFF;
    --ecru:#F3F1EF;
    --black:#000000;
    --ink-80: rgba(0,0,0,0.8);
    --ink-55: rgba(0,0,0,0.55);
    --ink-38: rgba(0,0,0,0.38);
    --line: rgba(0,0,0,0.14);
    --line-soft: rgba(0,0,0,0.08);
    --radius-pill: 0px;
    --font-display:'IvyPresto Display', Georgia, serif;
    --font-body:'Neue Haas Grotesk Text', Helvetica, Arial, sans-serif;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--white);
    color:var(--black);
    font-family:var(--font-body);
    -webkit-font-smoothing:antialiased;
    line-height:1.5;
    font-size:16px;
  }

  ::selection{background:var(--black); color:var(--white);}
  a{color:inherit;}
  img,svg{display:block; max-width:100%;}

  :focus-visible{
    outline:2px solid var(--black);
    outline-offset:3px;
  }

  .eyebrow{
    font-family:var(--font-body);
    font-size:11.5px;
    letter-spacing:0.16em;
    text-transform:uppercase;
    color:var(--ink-55);
    font-weight:400;
  }

  h1,h2,h3{
    font-family:var(--font-display);
    font-weight:300;
    letter-spacing:0;
    margin:0;
  }

  .wrap{
    max-width:1180px;
    margin:0 auto;
    padding:0 32px;
  }

  /* ---------- NAV ---------- */
  header.site{
    position:sticky;
    top:0;
    z-index:50;
    background:var(--white);
  }
  .announce{
    background:var(--black);
    color:var(--white);
    text-align:center;
    font-size:12px;
    letter-spacing:0.06em;
    text-transform:uppercase;
    padding:12px 16px;
  }
  .announce a{ text-decoration:underline; text-underline-offset:3px; }
  @media (max-width:479px){
    .announce{ font-size:10.5px; padding:10px 12px; letter-spacing:0.03em; }
  }
  .nav-inner{
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    gap:12px;
    padding:16px 20px;
    max-width:1280px;
    margin:0 auto;
    border-bottom:1px solid var(--line);
  }
  @media (min-width:860px){
    .nav-inner{ gap:16px; padding:22px 32px; }
  }
  .nav-left{ grid-column:1; display:flex; align-items:center; }
  .brand-col{ grid-column:2; display:flex; align-items:center; justify-content:center; }
  .nav-utility{ grid-column:3; }

  .brand{
    font-family:var(--font-display);
    font-size:22px;
    font-weight:300;
    letter-spacing:0.02em;
    text-decoration:none;
    text-align:center;
    line-height:1;
    white-space:nowrap;
  }
  @media (min-width:860px){ .brand{ font-size:30px; } }
  .brand .sub{
    display:none;
    font-family:var(--font-body);
    font-size:9.5px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--ink-55);
    margin-top:6px;
    white-space:nowrap;
  }
  @media (min-width:640px){ .brand .sub{ display:block; } }

  /* mobile hamburger */
  .nav-hamburger{
    display:flex;
    align-items:center;
    justify-content:center;
    width:32px; height:32px;
    background:none;
    border:none;
    cursor:pointer;
    padding:0;
  }
  @media (min-width:860px){ .nav-hamburger{ display:none; } }
  .nav-hamburger svg{ width:20px; height:20px; stroke:var(--black); stroke-width:1.4; }

  nav.links{
    display:none;
    gap:26px;
    font-size:12px;
    letter-spacing:0.05em;
    text-transform:uppercase;
  }
  nav.links a{
    text-decoration:none;
    color:var(--black);
    display:inline-flex;
    align-items:center;
    gap:4px;
    transition:opacity .15s ease;
  }
  nav.links a:hover{ opacity:0.55; }
  nav.links a .caret{ font-size:9px; color:var(--ink-38); }
  @media (min-width:860px){
    nav.links{display:flex;}
  }

  /* mobile dropdown menu */
  .mobile-menu{
    display:none;
    flex-direction:column;
    border-bottom:1px solid var(--line);
    background:var(--white);
  }
  .mobile-menu.open{ display:flex; }
  @media (min-width:860px){ .mobile-menu{ display:none !important; } }
  .mobile-menu a{
    padding:16px 20px;
    border-top:1px solid var(--line);
    text-decoration:none;
    color:var(--black);
    font-size:14px;
    letter-spacing:0.04em;
    text-transform:uppercase;
  }
  .mobile-menu a:first-child{ border-top:none; }

  .nav-utility{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:16px;
  }
  @media (min-width:860px){ .nav-utility{ gap:22px; } }
  .nav-utility .keep-in-touch{
    display:none;
    font-size:12px;
    letter-spacing:0.05em;
    text-transform:uppercase;
    text-decoration:none;
    color:var(--black);
  }
  @media (min-width:860px){
    .nav-utility .keep-in-touch{ display:inline; }
  }
  .nav-cta{
    display:inline-flex;
    padding:10px 16px;
    font-size:11px;
  }
  @media (min-width:480px){ .nav-cta{ padding:12px 20px; font-size:12px; } }
  @media (min-width:860px){
    .nav-cta{ padding:13px 24px; font-size:12.5px; }
  }
  .nav-search{
    width:17px; height:17px;
    color:var(--black);
    flex-shrink:0;
  }

  .btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    font-family:var(--font-body);
    font-weight:400;
    font-size:12.5px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    padding:16px 30px;
    border-radius:var(--radius-pill);
    text-decoration:none;
    border:1px solid var(--black);
    cursor:pointer;
    transition:background .18s ease, color .18s ease, transform .15s ease;
    white-space:nowrap;
  }
  .btn:hover{transform:translateY(-1px);}
  .btn-primary{
    background:var(--black);
    color:var(--white);
  }
  .btn-primary:hover{background:var(--white); color:var(--black);}
  .btn-ghost{
    background:transparent;
    color:var(--black);
    border-color:var(--black);
  }
  .btn-ghost:hover{background:var(--black); color:var(--white);}

  /* ---------- HERO ---------- */
  .hero{
    padding:64px 0 100px;
  }
  .hero-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:60px;
    align-items:center;
  }
  @media (min-width:960px){
    .hero-grid{grid-template-columns:1.1fr 0.9fr;}
  }
  .hero h1{
    font-size:clamp(40px, 6vw, 72px);
    line-height:1.02;
    margin-top:24px;
    letter-spacing:-0.01em;
  }
  .hero h1 em{
    font-style:italic;
    font-weight:300;
  }
  .hero p.lede{
    font-size:17px;
    color:var(--ink-55);
    max-width:460px;
    margin-top:26px;
    font-weight:400;
  }
  .hero-ctas{
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    margin-top:36px;
  }
  .hero-trust{
    margin-top:28px;
    font-size:11.5px;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:var(--ink-38);
  }

  /* ---------- VESSEL DIAGRAM ---------- */
  .vessel-card{
    background:var(--ecru);
    border-radius:2px;
    padding:38px 30px 30px;
    position:relative;
  }
  .vessel-head{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    margin-bottom:6px;
  }
  .vessel-total{
    font-size:11px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--ink-38);
  }

  .drip{ animation:drip 3.2s ease-in infinite; }
  .drip.d2{animation-delay:.5s;}
  .drip.d3{animation-delay:1.1s;}
  .drip.d4{animation-delay:1.7s;}
  .drip.d5{animation-delay:2.3s;}
  @keyframes drip{
    0%{ transform:translate(0,0); opacity:0; }
    12%{ opacity:1; }
    70%{ opacity:.5; }
    100%{ transform:translate(24px,32px); opacity:0; }
  }
  @media (prefers-reduced-motion:reduce){ .drip{animation:none; opacity:.5;} }

  .band-label{
    font-family:var(--font-body);
    font-size:10px;
    letter-spacing:0.1em;
    fill:var(--black);
  }
  .band-loss{
    font-family:var(--font-display);
    font-style:italic;
    font-size:12.5px;
    fill:var(--ink-55);
  }

  .vessel-foot{
    margin-top:10px;
    font-size:13px;
    color:var(--ink-55);
    max-width:340px;
  }

  /* ---------- SECTION SHELLS ---------- */
  section{padding:104px 0;}
  @media (max-width:640px){
    section{padding:64px 0;}
  }
  .pt-section{ padding-top:104px; padding-bottom:56px; }
  .pt-section.tight-bottom{ padding-bottom:0; margin-bottom:56px; }
  @media (max-width:640px){
    .pt-section{ padding-top:64px; padding-bottom:40px; }
    .pt-section.tight-bottom{ margin-bottom:40px; }
  }
  .section-head{
    max-width:620px;
    margin-bottom:56px;
  }
  .section-head h2{
    font-size:clamp(30px, 3.6vw, 46px);
    margin-top:18px;
    line-height:1.08;
  }
  .section-head p{
    color:var(--ink-55);
    font-size:16px;
    margin-top:16px;
  }
  .section-ecru{ background:var(--ecru); }

  /* ---------- LEAK CHECK LIST ---------- */
  .leak-list{
    border-top:1px solid var(--black);
  }
  .leak-item{
    border-bottom:1px solid var(--line);
    padding:30px 0;
    display:grid;
    grid-template-columns:auto 1fr;
    gap:24px;
    align-items:start;
  }
  .leak-item .idx{
    font-family:var(--font-display);
    font-size:26px;
    font-style:italic;
    color:var(--ink-38);
    min-width:34px;
  }
  .leak-item h3{
    font-size:19px;
    font-family:var(--font-display);
    font-weight:300;
  }
  .leak-item p{
    margin:8px 0 0;
    font-size:14.5px;
    color:var(--ink-55);
  }

  /* ---------- SYSTEMS ---------- */
  .system{
    display:grid;
    grid-template-columns:1fr;
    gap:24px;
    padding:48px 0;
    border-top:1px solid var(--line);
  }
  .system:last-child{border-bottom:1px solid var(--line);}
  @media (min-width:860px){
    .system{grid-template-columns:120px 160px 1fr 220px; gap:32px; align-items:start;}
  }
  .system-num{
    font-family:var(--font-display);
    font-size:52px;
    font-weight:300;
    font-style:italic;
    color:var(--ink-38);
    line-height:1;
  }
  .system-body h3{
    font-size:26px;
    margin-bottom:12px;
  }
  .system-body .q{
    color:var(--black);
    font-family:var(--font-body);
    font-size:13px;
    letter-spacing:0.06em;
    text-transform:uppercase;
    margin-bottom:12px;
  }
  .system-body p.desc{
    color:var(--ink-55);
    font-size:15px;
    max-width:60ch;
  }
  .system-tags{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:18px;
  }
  .system-tags span{
    font-size:11px;
    letter-spacing:0.05em;
    text-transform:uppercase;
    color:var(--ink-55);
    border:1px solid var(--line);
    padding:6px 12px;
    border-radius:var(--radius-pill);
  }
  .system-cta{ align-self:start; }
  @media (min-width:860px){
    .system-cta{justify-self:end; text-align:right;}
  }
  .system-cta a{
    font-size:12px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    text-decoration:none;
    color:var(--black);
    display:inline-flex;
    gap:6px;
    align-items:center;
    border-bottom:1px solid var(--black);
    padding-bottom:2px;
  }

  /* ---------- JOURNEY FLOW (alternating color bands) ---------- */
  .bleed-contain{
    max-width:1180px;
    margin:0 auto;
  }
  .band-flow{
    display:grid;
    grid-template-columns:1fr;
  }
  @media (min-width:760px){
    .band-flow{ grid-template-columns:repeat(5, 1fr); }
  }
  .band{
    padding:52px 30px;
    min-height:300px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
  }
  .band:nth-child(odd){ background:var(--black); color:var(--white); }
  .band:nth-child(even){ background:var(--ecru); color:var(--black); }
  .band .fnum{
    font-family:var(--font-body);
    font-size:11px;
    letter-spacing:0.12em;
  }
  .band:nth-child(odd) .fnum{ color:rgba(255,255,255,0.45); }
  .band:nth-child(even) .fnum{ color:var(--ink-38); }
  .band h4{
    font-family:var(--font-display);
    font-size:36px;
    font-weight:300;
    margin:28px 0 14px;
  }
  .band p{
    font-size:13.5px;
    max-width:20ch;
  }
  .band:nth-child(odd) p{ color:rgba(255,255,255,0.6); }
  .band:nth-child(even) p{ color:var(--ink-55); }

  /* ---------- HOW IT WORKS (zig-zag editorial feature) ---------- */
  .feature-steps{
    display:flex;
    flex-direction:column;
    gap:96px;
  }
  .feature-step{
    display:grid;
    grid-template-columns:1fr;
    gap:36px;
    align-items:center;
  }
  @media (min-width:860px){
    .feature-step{ grid-template-columns:1fr 1fr; gap:80px; }
    .feature-step:nth-child(even) .feature-media{ order:2; }
  }
  .feature-media{ aspect-ratio:6/5; }
  .feature-text .fnum{
    font-family:var(--font-display);
    font-style:italic;
    font-weight:300;
    font-size:60px;
    color:var(--ink-38);
    line-height:1;
    display:block;
    margin-bottom:20px;
  }
  .feature-text h4{
    font-family:var(--font-body);
    font-size:15px;
    letter-spacing:0.04em;
    text-transform:uppercase;
    font-weight:400;
    margin-bottom:14px;
  }
  .feature-text p{
    font-family:var(--font-display);
    font-weight:300;
    font-size:24px;
    line-height:1.3;
    color:var(--black);
    max-width:20ch;
  }

  /* ---------- THE AUDIT (stat block + criteria) ---------- */
  .audit-grid{
    display:grid;
    grid-template-columns:1fr;
  }
  @media (min-width:900px){
    .audit-grid{ grid-template-columns:0.5fr 1fr; }
  }
  .audit-stat{
    background:var(--black);
    color:var(--white);
    padding:64px 48px;
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
  .audit-stat .num{
    font-family:var(--font-display);
    font-style:italic;
    font-weight:300;
    font-size:clamp(80px,10vw,128px);
    line-height:0.86;
  }
  .audit-stat .lbl{
    margin-top:20px;
    font-size:12.5px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:rgba(255,255,255,0.55);
    max-width:20ch;
  }
  .audit-content{
    background:var(--ecru);
    padding:56px 48px;
  }
  .audit-content h3{
    font-family:var(--font-body);
    font-size:11px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--ink-38);
    font-weight:400;
    margin-bottom:20px;
  }
  .criteria-tags{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-bottom:44px;
  }
  .criteria-tags span{
    font-size:13px;
    letter-spacing:0.02em;
    color:var(--black);
    background:var(--white);
    padding:11px 18px;
  }
  .criteria-next{ border-top:1px solid var(--black); }
  .criteria-next li{
    display:flex;
    padding:16px 0;
    border-bottom:1px solid var(--line);
    font-size:14.5px;
    color:var(--ink-55);
    list-style:none;
  }
  .criteria-next li .sn{
    font-family:var(--font-display);
    font-style:italic;
    color:var(--ink-38);
    font-size:16px;
    flex-shrink:0;
    margin-right:14px;
  }

  /* ---------- WE HANDLE / YOU PROVIDE (paired tone rows w/ icons) ---------- */
  .provide-grid{
    display:grid;
    grid-template-columns:1fr;
  }
  @media (min-width:860px){
    .provide-grid{ grid-template-columns:1fr 1fr; }
  }
  .provide-col{ padding:48px; }
  .provide-col.we{ background:var(--white); }
  .provide-col.you{ background:var(--ecru); }
  .provide-col h3{
    font-family:var(--font-display);
    font-style:italic;
    font-weight:300;
    font-size:28px;
    margin-bottom:30px;
  }
  .provide-items{ display:grid; grid-template-columns:1fr 1fr; gap:28px; }
  .provide-item .ic{
    width:26px; height:26px;
    stroke:var(--black);
    fill:none;
    stroke-width:1.3;
    stroke-linecap:round;
    stroke-linejoin:round;
    margin-bottom:14px;
  }
  .provide-item span{
    display:block;
    font-size:14px;
    color:var(--ink-55);
    line-height:1.4;
  }

  /* ---------- FIT (full-bleed contrast blocks) ---------- */
  .fit-grid{
    display:grid;
    grid-template-columns:1fr;
  }
  @media (min-width:860px){
    .fit-grid{grid-template-columns:1fr 1fr;}
  }
  .fit-card{ padding:72px 52px; }
  .fit-card.yes{ background:var(--white); color:var(--black); }
  .fit-card.no{ background:var(--black); color:var(--white); }
  .fit-card h3{
    font-family:var(--font-display);
    font-style:italic;
    font-weight:300;
    font-size:30px;
    margin-bottom:32px;
    text-transform:none;
    letter-spacing:0;
  }
  .fit-card ul{ list-style:none; margin:0; padding:0; }
  .fit-card li{
    display:flex; align-items:flex-start;
    font-size:15.5px;
    padding:15px 0;
  }
  .fit-card .ic{
    width:18px; height:18px; flex-shrink:0; margin-top:2px; margin-right:16px;
    stroke-width:1.4; fill:none;
    stroke-linecap:round;
    stroke-linejoin:round;
  }
  .fit-card.yes li{ border-top:1px solid var(--line-soft); color:var(--ink-55); }
  .fit-card.yes li:first-child{ border-top:none; }
  .fit-card.yes .ic{ stroke:var(--black); }
  .fit-card.no li{ border-top:1px solid rgba(255,255,255,0.14); color:rgba(255,255,255,0.68); }
  .fit-card.no li:first-child{ border-top:none; }
  .fit-card.no .ic{ stroke:rgba(255,255,255,0.55); }

  /* ---------- ABOUT / FOUNDER ---------- */
  .about-section{
    display:grid;
    grid-template-columns:1fr;
  }
  @media (min-width:900px){
    .about-section{ grid-template-columns:1fr 1fr; }
  }
  .about-photo{
    aspect-ratio:4/5;
  }
  @media (min-width:900px){
    .about-photo{ aspect-ratio:auto; min-height:100%; }
  }
  .about-panel{
    background:var(--black);
    color:var(--white);
    padding:72px 56px;
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
  .about-panel .eyebrow{
    color:rgba(255,255,255,0.5);
    margin-bottom:22px;
  }
  .about-panel .letter{
    font-family:var(--font-body);
    font-size:17px;
    line-height:1.62;
    color:rgba(255,255,255,0.92);
    max-width:52ch;
  }
  .about-panel .letter p{ margin:0 0 22px; }
  .about-panel .letter p:last-child{ margin-bottom:0; }
  .about-signoff{
    margin-top:34px;
    font-family:var(--font-display);
    font-style:italic;
    font-size:26px;
    color:var(--white);
  }
  .about-signoff span{
    display:block;
    font-family:var(--font-body);
    font-style:normal;
    font-size:11px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:rgba(255,255,255,0.5);
    margin-top:8px;
  }

  /* ---------- FAQ ---------- */
  .faq{ border-top:1px solid var(--black); }
  details{
    border-bottom:1px solid var(--line);
    padding:24px 0;
  }
  summary{
    cursor:pointer;
    list-style:none;
    display:flex;
    justify-content:space-between;
    align-items:center;
    font-family:var(--font-display);
    font-size:19px;
    font-weight:300;
    gap:20px;
  }
  summary::-webkit-details-marker{display:none;}
  summary .plus{
    font-family:var(--font-body);
    font-size:18px;
    color:var(--black);
    transition:transform .2s ease;
    flex-shrink:0;
  }
  details[open] summary .plus{transform:rotate(45deg);}
  details p{
    margin:16px 0 0;
    color:var(--ink-55);
    font-size:15px;
    max-width:70ch;
  }

  /* ---------- FINAL CTA ---------- */
  .final-cta{
    background:var(--black);
    color:var(--white);
    padding:0;
    overflow:hidden;
  }
  .final-cta-grid{
    display:grid;
    grid-template-columns:1fr;
  }
  @media (min-width:900px){
    .final-cta-grid{ grid-template-columns:1fr 1fr; align-items:stretch; }
  }
  .final-cta-copy{
    padding:90px 32px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    max-width:560px;
    margin:0 auto;
  }
  .final-cta .eyebrow{ color:rgba(255,255,255,0.55); }
  .final-cta h2{
    font-size:clamp(34px,4.6vw,52px);
    margin-top:18px;
    line-height:1.06;
  }
  .final-cta p{
    color:rgba(255,255,255,0.68);
    margin-top:18px;
    max-width:440px;
    font-size:15.5px;
  }
  .final-cta .hero-ctas{ margin-top:36px; }
  .final-cta .btn-primary{ background:var(--white); color:var(--black); border-color:var(--white); }
  .final-cta .btn-primary:hover{ background:transparent; color:var(--white); }
  .final-cta .btn-ghost{ border-color:rgba(255,255,255,0.4); color:var(--white); }
  .final-cta .btn-ghost:hover{ background:var(--white); color:var(--black); }
  .final-cta-stats{
    display:flex;
    flex-wrap:wrap;
    margin-top:44px;
  }
  .final-cta-stats > div{ margin-right:36px; }
  .final-cta-stats .num{
    font-family:var(--font-display);
    font-style:italic;
    font-size:30px;
    display:block;
  }
  .final-cta-stats .lbl{
    font-size:10.5px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:rgba(255,255,255,0.5);
    display:block;
    margin-top:4px;
  }
  .final-cta-image{
    position:relative;
    aspect-ratio:4/3;
    overflow:hidden;
  }
  @media (min-width:900px){ .final-cta-image{ aspect-ratio:auto; height:100%; } }
  .final-cta-image .img-ph{
    position:absolute;
    inset:0;
  }

  /* ---------- FOOTER ---------- */
  .footer-about{
    background:var(--black);
    color:var(--white);
    padding:80px 0 64px;
  }
  .footer-about h2{
    font-size:clamp(28px,3.4vw,40px);
    font-weight:300;
  }
  .footer-about p{
    margin-top:22px;
    max-width:900px;
    color:rgba(255,255,255,0.72);
    font-size:16px;
    line-height:1.6;
  }
  .footer-bottom{
    background:var(--ecru);
    padding:56px 0 40px;
  }
  .footer-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:40px;
  }
  @media (min-width:760px){
    .footer-grid{ grid-template-columns:1fr 1fr 1fr auto; gap:24px; }
  }
  .footer-col h4{
    font-size:11px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    font-weight:400;
    color:var(--ink-38);
    margin:0 0 16px;
  }
  .footer-col ul{ list-style:none; margin:0; padding:0; }
  .footer-col li{ margin-bottom:12px; }
  .footer-col a{
    text-decoration:none;
    color:var(--black);
    font-size:13px;
    letter-spacing:0.03em;
    text-transform:uppercase;
  }
  .footer-social{ display:flex; gap:16px; margin-top:4px; }
  .footer-social a{
    width:30px; height:30px;
    display:inline-flex; align-items:center; justify-content:center;
    border:1px solid var(--line);
    color:var(--black);
  }
  .footer-social svg{ width:14px; height:14px; }
  .footer-newsletter{ margin-top:22px; }
  .footer-newsletter form{
    display:flex;
    align-items:center;
    border-bottom:1px solid var(--black);
    padding-bottom:8px;
    max-width:260px;
  }
  .footer-newsletter input{
    border:none;
    background:transparent;
    font-family:var(--font-body);
    font-size:12px;
    letter-spacing:0.05em;
    text-transform:uppercase;
    color:var(--black);
    flex:1;
    outline:none;
    padding:4px 0;
  }
  .footer-newsletter input::placeholder{ color:var(--ink-38); }
  .footer-newsletter button{
    background:none; border:none; cursor:pointer;
    font-size:16px; color:var(--black);
    line-height:1;
  }
  .footer-brand-col{ text-align:left; }
  @media (min-width:760px){ .footer-brand-col{ text-align:right; } }
  .footer-brand-col .brand{
    font-size:22px;
    text-decoration:none;
    color:var(--black);
  }
  .footer-legal{
    margin-top:36px;
    padding-top:28px;
    border-top:1px solid var(--line);
    display:flex;
    flex-wrap:wrap;
    justify-content:space-between;
    gap:12px;
    font-size:11.5px;
    letter-spacing:0.04em;
    color:var(--ink-55);
  }

  /* ---------- IMAGE PLACEHOLDERS ---------- */
  .img-ph{
    position:relative;
    overflow:hidden;
    background:
      radial-gradient(circle at 26% 22%, rgba(255,255,255,0.5), transparent 55%),
      linear-gradient(135deg, #DCD8CC 0%, #C7C0AC 45%, #A9A08A 100%);
    display:flex;
    align-items:flex-end;
    justify-content:flex-start;
    padding:22px;
    width:100%;
    height:100%;
  }
  .img-ph::after{
    content:"";
    position:absolute;
    inset:0;
    background:radial-gradient(circle at 78% 85%, rgba(0,0,0,0.14), transparent 60%);
  }
  .img-ph span{
    position:relative;
    z-index:1;
    max-width:22ch;
    font-size:10px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:rgba(0,0,0,0.5);
    text-align:left;
  }
  .img-ph .real-img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    z-index:0;
  }
  .img-ph.dark{
    background:
      radial-gradient(circle at 74% 20%, rgba(255,255,255,0.08), transparent 55%),
      linear-gradient(135deg, #1c1c1c 0%, #000 70%);
  }
  .img-ph.dark span{ color:rgba(255,255,255,0.4); }
  .img-strip{
    display:grid;
    grid-template-columns:1fr;
    gap:2px;
  }
  @media (min-width:760px){
    .img-strip{ grid-template-columns:1.3fr 1fr 1fr; }
  }
  .img-strip .img-ph{ aspect-ratio:4/5; }
  .img-strip .img-ph.landscape{ aspect-ratio:5/4; }

  /* ---------- PULL QUOTE ---------- */
  .pull-quote{
    padding:100px 0;
    text-align:center;
  }
  .pull-quote blockquote{
    margin:0 auto;
    max-width:840px;
    font-family:var(--font-display);
    font-style:italic;
    font-weight:300;
    font-size:clamp(26px, 4vw, 44px);
    line-height:1.28;
    color:var(--black);
  }
  .pull-quote cite{
    display:block;
    margin-top:26px;
    font-style:normal;
    font-family:var(--font-body);
    font-size:11.5px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--ink-38);
  }

  .system-thumb{
    width:100%;
    aspect-ratio:1/1;
  }
  @media (min-width:860px){
    .system-thumb{ width:160px; }
  }

  /* ---------- MOBILE PADDING PASS ---------- */
  @media (max-width:640px){
    .wrap{ padding:0 20px; }
    .hero{ padding:40px 0 48px; }
    .hero-grid{ gap:36px; }
    .vessel-card{ padding:26px 20px 20px; }
    .band{ padding:36px 22px; min-height:0; }
    .band h4{ font-size:28px; margin:18px 0 10px; }
    .audit-stat{ padding:40px 24px; }
    .audit-stat .num{ font-size:64px; }
    .audit-content{ padding:36px 24px; }
    .provide-col{ padding:32px 24px; }
    .provide-items{ gap:22px; }
    .fit-card{ padding:44px 24px; }
    .fit-card .wrap{ max-width:none !important; margin:0 !important; }
    .about-panel{ padding:44px 24px; }
    .about-panel .letter{ font-size:15.5px; line-height:1.55; }
    .final-cta-copy{ padding:56px 24px; }
    .footer-about{ padding:48px 0 40px; }
    .footer-about .wrap{ padding:0 20px; }
    .footer-bottom{ padding:40px 0 28px; }
    .section-head{ margin-bottom:36px; }
    .system{ padding:36px 0; }
    .feature-steps{ gap:56px; }
    .final-cta-stats{ gap:24px; flex-wrap:wrap; }
  }
