/*
Theme Name: Kennedy Properties
Theme URI: https://kennedyproperties.com
Author: Kennedy Properties
Description: Custom theme for Kennedy Properties, a Vero Beach real estate brokerage.
Version: 1.0
Text Domain: kennedy-properties
*/

  /* ===================== TOKENS ===================== */
  :root{
    --bg:#EFF3F1;
    --surface:#FFFFFF;
    --surface-alt:#E9E4D6;
    --ink:#13293F;
    --ink-soft:#48575F;
    --stone:#6E6A62;
    --border:#D9D3C6;
    --focus:#4C8B84;

    --brand-navy:#1F3F63;
    --brand-navy-deep:#0F2135;
    --brand-teal:#4C8B84;
    --brand-teal-soft:#D8E8E4;

    --on-navy-ink:#F4F6F5;
    --on-navy-soft:rgba(244,246,245,0.72);
    --on-navy-border:rgba(244,246,245,0.18);

    --motif-water-a:#3E7A78;
    --motif-water-b:#1F3F63;
    --motif-sand:#E4DCC8;
    --motif-roof:#1F3F63;
    --motif-tree:#5C6B4F;
    --motif-pool:#8FC7C0;

    --font-display:'Cormorant Garamond', Georgia, 'Iowan Old Style', serif;
    --font-body:'Libre Franklin', 'Helvetica Neue', Arial, sans-serif;

    --shadow-card:0 1px 2px rgba(19,41,63,0.06), 0 8px 24px -12px rgba(19,41,63,0.18);
  }

  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --bg:#0C1826;
      --surface:#12233A;
      --surface-alt:#0F1D2E;
      --ink:#E9EDEA;
      --ink-soft:#AEBBBC;
      --stone:#9C9689;
      --border:rgba(244,246,245,0.12);
      --focus:#7FC6BC;

      --motif-water-a:#2A5451;
      --motif-water-b:#12253A;
      --motif-sand:#3A4636;
      --motif-roof:#7FA8CC;
      --motif-tree:#3F4B36;
      --motif-pool:#3E7A78;
    }
  }
  :root[data-theme="dark"]{
    --bg:#0C1826;
    --surface:#12233A;
    --surface-alt:#0F1D2E;
    --ink:#E9EDEA;
    --ink-soft:#AEBBBC;
    --stone:#9C9689;
    --border:rgba(244,246,245,0.12);
    --focus:#7FC6BC;

    --motif-water-a:#2A5451;
    --motif-water-b:#12253A;
    --motif-sand:#3A4636;
    --motif-roof:#7FA8CC;
    --motif-tree:#3F4B36;
    --motif-pool:#3E7A78;
  }

  /* ===================== RESET / BASE ===================== */
  *,*::before,*::after{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *,*::before,*::after{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
  }
  body{
    margin:0;
    background:var(--bg);
    color:var(--ink);
    font-family:var(--font-body);
    font-size:17px;
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }
  img,svg{display:block; max-width:100%;}
  a{color:inherit;}
  h1,h2,h3,h4{font-family:var(--font-display); font-weight:500; line-height:1.15; margin:0; text-wrap:balance;}
  p{margin:0;}
  ul{margin:0; padding:0; list-style:none;}
  button{font-family:inherit; cursor:pointer;}
  input,select,textarea{font-family:inherit; font-size:1rem;}
  :focus-visible{outline:2.5px solid var(--focus); outline-offset:3px;}
  .sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}

  .eyebrow{
    font-family:var(--font-body);
    font-size:0.78rem;
    font-weight:600;
    letter-spacing:0.16em;
    text-transform:uppercase;
    color:var(--brand-teal);
  }
  .lede{font-size:1.15rem; color:var(--ink-soft); max-width:60ch;}

  .wrap{max-width:1180px; margin:0 auto; padding:0 clamp(1.25rem,4vw,3rem);}

  .btn{
    display:inline-flex; align-items:center; gap:0.5rem;
    padding:0.85rem 1.6rem;
    border-radius:999px;
    font-size:0.92rem; font-weight:600; letter-spacing:0.02em;
    text-decoration:none;
    border:1.5px solid transparent;
    transition:transform 0.18s ease, background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
  }
  .btn:hover{transform:translateY(-1px);}
  .btn-primary{background:var(--brand-navy); color:#fff;}
  .btn-primary:hover{background:var(--brand-navy-deep);}
  .btn-outline{border-color:var(--ink); color:var(--ink);}
  .btn-outline:hover{border-color:var(--brand-teal); color:var(--brand-teal);}
  .btn-on-navy{border-color:var(--on-navy-border); color:var(--on-navy-ink);}
  .btn-on-navy:hover{border-color:var(--on-navy-ink);}

  .tag{
    display:inline-block;
    font-size:0.72rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase;
    padding:0.3rem 0.65rem;
    border-radius:999px;
    background:var(--brand-teal-soft);
    color:var(--brand-navy);
  }
  :root[data-theme="dark"] .tag, @supports (color:red){ }
  .tag.sold{background:var(--surface-alt); color:var(--stone);}

  /* ===================== HEADER ===================== */
  header.site{
    position:sticky; top:0; z-index:50;
    background:var(--bg);
    border-bottom:1px solid var(--border);
  }
  .nav-row{
    display:flex; align-items:center; justify-content:space-between;
    padding:1rem clamp(1.25rem,4vw,3rem);
    max-width:1180px; margin:0 auto;
    gap:1.5rem;
  }
  .brand{display:flex; align-items:center; gap:0.7rem; text-decoration:none;}
  .brand-logo{height:38px; width:auto; display:block;}

  nav.primary{display:flex; align-items:center; gap:2rem;}
  nav.primary a{
    text-decoration:none; font-size:0.86rem; font-weight:600; letter-spacing:0.04em; text-transform:uppercase;
    color:var(--ink-soft);
    padding-bottom:4px;
    border-bottom:2px solid transparent;
    transition:color 0.15s ease, border-color 0.15s ease;
  }
  nav.primary a:hover{color:var(--ink);}
  nav.primary a.active{color:var(--ink); border-color:var(--brand-teal);}
  .nav-cta{display:flex; align-items:center; gap:1rem;}
  .menu-toggle{display:none; background:none; border:1px solid var(--border); border-radius:8px; padding:0.5rem 0.6rem;}
  .menu-toggle span{display:block; width:20px; height:2px; background:var(--ink); margin:4px 0; border-radius:2px;}

  @media (max-width:820px){
    nav.primary{
      position:fixed; inset:65px 0 0 0; background:var(--bg);
      flex-direction:column; align-items:flex-start; gap:0; padding:1rem clamp(1.25rem,4vw,3rem);
      transform:translateX(100%); transition:transform 0.25s ease;
      overflow-y:auto;
    }
    nav.primary.open{transform:translateX(0);}
    nav.primary a{width:100%; padding:1rem 0; border-bottom:1px solid var(--border);}
    .nav-cta .btn-outline{display:none;}
    .menu-toggle{display:block;}
  }

  /* ===================== ROUTES / SECTIONS ===================== */
  main{display:block;}
  .route{display:none; padding:0;}
  .route.active{display:block; animation:fade-in 0.35s ease;}
  @keyframes fade-in{from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:none;}}

  section{padding:clamp(3.5rem,8vw,6.5rem) 0;}
  section.alt{background:var(--surface-alt);}

  /* ---- Hero (full-bleed, Haven-style) ---- */
  .hero{
    position:relative; overflow:hidden;
    min-height:92vh; display:flex; align-items:center; justify-content:center;
    margin-top:calc(-1px); /* sit flush under header hairline */
  }
  .hero-media{position:absolute; inset:0; z-index:0; background:var(--brand-navy-deep);}
  .hero-media svg, .hero-media video{width:100%; height:100%; object-fit:cover;}
  .hero-scrim{
    position:absolute; inset:0;
    /* flat ~0.5 through the text zone (content is vertically centered) so contrast
       holds against both the light sand and dark water halves of the illustration */
    background:
      linear-gradient(180deg, rgba(8,18,29,0.50) 0%, rgba(8,18,29,0.50) 40%, rgba(8,18,29,0.58) 60%, rgba(8,18,29,0.78) 100%);
  }
  .hero-content{
    position:relative; z-index:1; text-align:center; color:#fdfaf4;
    display:flex; flex-direction:column; align-items:center;
    padding:6rem 0 5rem;
  }
  .hero-content .eyebrow{color:#DCEFEA; text-shadow:0 1px 12px rgba(0,0,0,0.25);}
  .hero h1{
    font-size:clamp(2.75rem,6.5vw,5rem); margin-top:0.7rem; color:#fff; max-width:16ch;
    text-shadow:0 2px 24px rgba(0,0,0,0.28);
  }
  .hero h1 em{font-style:italic; font-weight:400; color:#BFE3DC;}
  .hero .lede{margin:1.5rem auto 0; color:rgba(253,250,244,0.88); max-width:56ch;}
  .hero .actions{display:flex; flex-wrap:wrap; justify-content:center; gap:1rem; margin-top:2.4rem;}
  .hero .btn-outline{border-color:rgba(253,250,244,0.6); color:#fdfaf4;}
  .hero .btn-outline:hover{border-color:#fff; color:#fff;}
  @media (max-width:640px){ .hero{min-height:82vh;} }

  /* ---- Section headings ---- */
  .section-head{max-width:640px; margin-bottom:2.6rem;}
  .section-head h2{font-size:clamp(1.9rem,3.4vw,2.6rem); margin-top:0.5rem;}
  .section-head.split{
    display:flex; justify-content:space-between; align-items:flex-end; gap:2rem; max-width:none;
  }
  .section-head.center{
    max-width:680px; margin-left:auto; margin-right:auto; text-align:center;
  }
  .section-head.center .lede{margin-left:auto; margin-right:auto;}
  .office-video{width:100%; max-width:900px; margin:0 auto; display:block; border-radius:10px; background:#000; box-shadow:var(--shadow-card);}
  .comm-icon{width:104px; height:auto; margin:1.1rem auto 0; display:block; opacity:0.82;}
  @media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .comm-icon{filter:invert(1) brightness(1.15);} }
  :root[data-theme="dark"] .comm-icon{filter:invert(1) brightness(1.15);}
  .section-cta{display:flex; justify-content:center; margin-top:3rem;}

  /* ---- Story / editorial block (centered, Haven-style) ---- */
  .story{max-width:660px; margin:0 auto; text-align:center;}
  .story p + p{margin-top:1.1rem;}
  .story p{font-size:1.1rem; color:var(--ink-soft);}
  .story .story-headline{
    font-family:var(--font-display); font-style:italic; font-weight:400; font-size:clamp(1.5rem,2.6vw,2.1rem); color:var(--ink);
    margin:1.4rem 0 2rem; line-height:1.35;
  }

  /* ---- Full-bleed image band ---- */
  .image-band{
    position:relative; height:clamp(320px,46vw,520px); overflow:hidden;
  }
  .image-band svg, .image-band img{width:100%; height:100%; object-fit:cover; display:block;}
  .image-band .band-scrim{
    position:absolute; inset:0; background:linear-gradient(90deg, rgba(8,18,29,0.6) 0%, rgba(8,18,29,0.45) 55%, rgba(8,18,29,0.1) 80%);
  }
  .image-band .band-copy{
    position:absolute; inset:0; display:flex; align-items:center;
    padding:0 clamp(1.25rem,4vw,3rem);
  }
  .image-band .band-copy .inner{max-width:420px; color:#fdfaf4;}
  .image-band .band-copy .eyebrow{color:#DCEFEA;}
  .image-band .band-copy h2{color:#fff; font-size:clamp(1.9rem,3.2vw,2.5rem); margin-top:0.6rem;}
  .image-band .band-copy p{color:rgba(253,250,244,0.88); margin-top:1rem; font-size:1.05rem;}
  @media (max-width:700px){
    .image-band{height:auto; min-height:420px;}
    .image-band .band-scrim{background:linear-gradient(180deg, rgba(8,18,29,0.35) 0%, rgba(8,18,29,0.75) 75%);}
    .image-band .band-copy{align-items:flex-end; padding-bottom:2.5rem;}
  }
  .image-band.right .band-copy{justify-content:flex-end;}
  .image-band.right .band-scrim{background:linear-gradient(270deg, rgba(8,18,29,0.6) 0%, rgba(8,18,29,0.45) 55%, rgba(8,18,29,0.1) 80%);}
  @media (max-width:700px){
    .image-band.right .band-scrim{background:linear-gradient(180deg, rgba(8,18,29,0.35) 0%, rgba(8,18,29,0.75) 75%);}
  }

  /* ---- Service lines strip ---- */
  .service-strip{display:grid; grid-template-columns:1fr 1fr; gap:1.75rem;}
  .service-card{
    background:var(--surface); border:1px solid var(--border); border-radius:6px;
    padding:clamp(1.5rem,3vw,2.25rem); display:flex; flex-direction:column; gap:0.7rem;
  }
  .service-card h3{font-size:1.4rem;}
  .service-card p{color:var(--ink-soft); font-size:0.98rem;}
  @media (max-width:700px){ .service-strip{grid-template-columns:1fr;} }

  /* ---- Cards: listings ---- */
  .card-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:1.75rem;}
  .listing-card{
    background:var(--surface); border:1px solid var(--border); border-radius:6px; overflow:hidden;
    display:flex; flex-direction:column; transition:transform 0.2s ease, box-shadow 0.2s ease;
  }
  .listing-card:hover{transform:translateY(-3px); box-shadow:var(--shadow-card);}
  .listing-media{aspect-ratio:4/3; background:var(--surface-alt); width:100%; object-fit:cover; display:block;}
  .listing-body{padding:1.5rem; display:flex; flex-direction:column; gap:0.6rem; flex:1;}
  .listing-price{font-family:var(--font-display); font-size:1.3rem; margin-top:0.2rem;}
  .listing-addr{font-weight:600; font-size:0.95rem; color:var(--ink-soft);}
  .listing-body p{font-size:0.94rem; color:var(--ink-soft);}
  .listing-facts{display:flex; flex-wrap:wrap; gap:0.5rem 1rem; font-size:0.82rem; color:var(--stone); margin-top:0.3rem;}

  /* ---- Team ---- */
  .team-strip{display:flex; flex-wrap:wrap; justify-content:center; gap:1.5rem;}
  .team-strip .team-mini{flex:1 1 300px; max-width:340px;}
  .team-mini{
    background:var(--surface); border:1px solid var(--border); border-radius:6px; padding:1.6rem;
    display:flex; flex-direction:column; align-items:flex-start; gap:0.9rem; text-decoration:none;
    transition:transform 0.2s ease, box-shadow 0.2s ease;
  }
  .team-mini:hover{transform:translateY(-3px); box-shadow:var(--shadow-card);}
  .avatar{
    width:64px; height:64px; border-radius:50%; background:var(--brand-navy); color:#fff;
    display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-size:1.3rem;
    flex-shrink:0; overflow:hidden;
  }
  .avatar img{width:100%; height:100%; object-fit:cover; display:block;}
  .team-mini h3, .team-card h3{font-size:1.2rem; color:var(--ink);}
  .team-mini .role, .team-card .role{font-size:0.8rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--brand-teal); font-weight:600;}

  .team-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:2rem;}
  .team-card{background:var(--surface); border:1px solid var(--border); border-radius:6px; padding:2rem; display:flex; flex-direction:column; gap:1rem;}
  .team-card .avatar{width:84px; height:84px; font-size:1.6rem;}
  .team-card .bio p{color:var(--ink-soft); font-size:0.97rem;}
  .team-card .bio p + p{margin-top:0.8rem;}
  .team-card .contact-line{display:flex; flex-wrap:wrap; gap:0.9rem; margin-top:0.3rem;}
  .team-card .contact-line a{font-size:0.88rem; font-weight:600; color:var(--brand-navy); text-decoration:none; border-bottom:1px solid var(--border);}
  :root[data-theme="dark"] .team-card .contact-line a{color:var(--focus);}
  @media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .team-card .contact-line a{color:var(--focus);} }

  /* ---- Search / IDX panel ---- */
  .search-panel{
    background:var(--brand-navy-deep); color:var(--on-navy-ink); border-radius:8px;
    padding:clamp(1.75rem,4vw,2.75rem); margin-bottom:3.5rem;
  }
  .search-panel .eyebrow{color:var(--on-navy-soft);}
  .search-panel h2{color:var(--on-navy-ink); margin-top:0.4rem; font-size:1.7rem;}
  .search-panel p.lede{color:var(--on-navy-soft); margin-top:0.5rem;}
  .search-fields{display:grid; grid-template-columns:2fr 1fr 1fr 1fr 1fr auto; gap:0.9rem; margin-top:1.75rem; align-items:end;}
  .field label{display:block; font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--on-navy-soft); margin-bottom:0.4rem;}
  .field input, .field select{
    width:100%; padding:0.65rem 0.75rem; border-radius:6px; border:1px solid var(--on-navy-border);
    background:rgba(244,246,245,0.06); color:var(--on-navy-ink);
  }
  .field input::placeholder{color:var(--on-navy-soft);}
  @media (max-width:900px){ .search-fields{grid-template-columns:1fr 1fr;} }

  /* ---- Contact page ---- */
  .contact-grid{display:grid; grid-template-columns:0.85fr 1.15fr; gap:clamp(2rem,5vw,4rem); align-items:start;}
  .info-list{display:flex; flex-direction:column; gap:1.6rem; margin-top:2rem;}
  .info-item .eyebrow{display:block; margin-bottom:0.4rem;}
  .info-item p{font-size:1.05rem;}
  .info-item a{text-decoration:none; color:var(--ink); border-bottom:1px solid var(--border);}
  .map-art{border-radius:6px; overflow:hidden; border:1px solid var(--border);}

  /* ---- Office circle-zoom trigger ---- */
  .office-trigger{
    display:flex; flex-direction:column; align-items:center; gap:0.9rem;
    margin:2.5rem auto 0; background:none; border:none; padding:0; cursor:pointer; font-family:inherit;
  }
  .office-trigger .circle-photo{
    position:relative; width:190px; height:190px; border-radius:50%; overflow:hidden;
    border:5px solid var(--surface); box-shadow:var(--shadow-card);
    transition:transform 0.3s ease, box-shadow 0.3s ease;
  }
  .office-trigger:hover .circle-photo, .office-trigger:focus-visible .circle-photo{transform:scale(1.05);}
  .office-trigger .circle-photo img{width:100%; height:100%; object-fit:cover; display:block;}
  .office-trigger .circle-hint{
    position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
    background:rgba(15,33,53,0); opacity:0; transition:opacity 0.25s ease, background 0.25s ease; color:#fff;
  }
  .office-trigger:hover .circle-hint, .office-trigger:focus-visible .circle-hint{opacity:1; background:rgba(15,33,53,0.4);}
  .office-trigger .circle-hint svg{width:26px; height:26px;}
  .office-trigger .trigger-label{font-size:0.86rem; font-weight:600; letter-spacing:0.04em; text-transform:uppercase; color:var(--ink-soft);}

  .office-modal{
    position:fixed; inset:0; z-index:300;
    display:flex; align-items:center; justify-content:center; padding:2rem;
    clip-path:circle(0% at var(--ox,50%) var(--oy,50%));
    pointer-events:none;
    transition:clip-path 0.65s cubic-bezier(.65,0,.35,1);
  }
  .office-modal.open{clip-path:circle(150% at var(--ox,50%) var(--oy,50%)); pointer-events:auto;}
  .office-modal .modal-backdrop{position:absolute; inset:0; background:var(--brand-navy-deep);}
  .office-modal .modal-inner{position:relative; z-index:1; width:100%; max-width:900px;}
  .office-modal .modal-inner img{width:100%; max-height:80vh; object-fit:cover; border-radius:10px; display:block;}
  .office-modal .modal-caption{color:var(--on-navy-soft); margin-top:1rem; text-align:center; font-size:0.95rem;}
  .office-modal .modal-close{
    position:absolute; top:-52px; right:0; width:38px; height:38px; border-radius:50%;
    background:none; border:1.5px solid rgba(255,255,255,0.5); color:#fff; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
  }
  .office-modal .modal-close:hover{border-color:#fff;}
  .office-modal .modal-inner .modal-video{width:100%; max-height:80vh; border-radius:10px; display:block; background:#000;}
  @media (prefers-reduced-motion: reduce){ .office-modal{transition:none;} }

  /* ---- KP seal: floating circular brand-video trigger ---- */
  .kp-seal{
    position:fixed; right:clamp(1rem,3vw,2.25rem); bottom:clamp(1rem,3vw,2.25rem); z-index:120;
    width:96px; height:96px; border-radius:50%; padding:0; border:none; background:none; cursor:pointer;
    filter:drop-shadow(0 10px 22px rgba(15,33,53,0.35));
    transition:transform 0.3s ease;
  }
  .kp-seal:hover, .kp-seal:focus-visible{transform:scale(1.07);}
  .kp-seal img{width:100%; height:100%; border-radius:50%; display:block;}
  .kp-seal-icon{
    position:absolute; inset:6px; display:flex; align-items:center; justify-content:center; border-radius:50%;
    background:rgba(15,33,53,0); opacity:0; color:#fff;
    transition:opacity 0.25s ease, background 0.25s ease;
  }
  .kp-seal:hover .kp-seal-icon, .kp-seal:focus-visible .kp-seal-icon{opacity:1; background:rgba(15,33,53,0.5);}
  @media (max-width:640px){ .kp-seal{width:72px; height:72px; right:0.85rem; bottom:0.85rem;} }
  form.panel-form{background:var(--surface); border:1px solid var(--border); border-radius:8px; padding:clamp(1.5rem,3vw,2.25rem); display:flex; flex-direction:column; gap:1.1rem;}
  form.panel-form .row2{display:grid; grid-template-columns:1fr 1fr; gap:1rem;}
  form.panel-form label{display:block; font-size:0.78rem; font-weight:600; letter-spacing:0.04em; text-transform:uppercase; color:var(--stone); margin-bottom:0.4rem;}
  form.panel-form input, form.panel-form textarea{
    width:100%; padding:0.75rem 0.85rem; border-radius:6px; border:1px solid var(--border); background:var(--bg); color:var(--ink);
  }
  form.panel-form textarea{min-height:110px; resize:vertical;}
  .form-note{font-size:0.8rem; color:var(--stone);}
  .form-success{display:none; text-align:center; padding:1.2rem 0; font-family:var(--font-display); font-size:1.2rem;}
  @media (max-width:760px){ .contact-grid{grid-template-columns:1fr;} form.panel-form .row2{grid-template-columns:1fr;} }

  /* ---- Divider motif strip ---- */
  .motif-strip{height:110px; overflow:hidden; border-top:1px solid var(--border); border-bottom:1px solid var(--border);}
  .motif-strip svg{width:100%; height:100%;}

  /* ===================== FOOTER ===================== */
  footer.site{background:var(--brand-navy-deep); color:var(--on-navy-ink); padding:clamp(3rem,6vw,4.5rem) 0 2rem;}
  .footer-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:2.5rem;}
  .footer-grid h4{color:var(--on-navy-ink); font-size:0.78rem; letter-spacing:0.1em; text-transform:uppercase; font-family:var(--font-body); font-weight:700; margin-bottom:1rem;}
  .footer-grid p, .footer-grid a{color:var(--on-navy-soft); font-size:0.94rem; text-decoration:none; line-height:1.9;}
  .footer-grid a:hover{color:var(--on-navy-ink);}
  .footer-logo{height:46px; filter:brightness(0) invert(1);}
  .footer-brand p{margin-top:1rem; max-width:32ch;}
  .footer-bottom{
    margin-top:3rem; padding-top:1.75rem; border-top:1px solid var(--on-navy-border);
    display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem;
    font-size:0.8rem; color:var(--on-navy-soft);
  }
  @media (max-width:760px){ .footer-grid{grid-template-columns:1fr; gap:2rem;} }

  /* ===================== INNER CIRCLE NEWSLETTER ===================== */
  .inner-circle-wrap{max-width:520px; text-align:center; display:flex; flex-direction:column; align-items:center;}
  .inner-circle-badge{position:relative; width:112px; height:112px; margin-bottom:1.5rem; display:flex; align-items:center; justify-content:center;}
  .inner-circle-badge img{width:52px; height:52px; object-fit:contain; position:relative; z-index:2;}
  .inner-circle-ring{position:absolute; inset:0; border-radius:50%; border:1.5px solid var(--brand-teal); opacity:0.55;}
  .inner-circle-ring.ring-2{inset:13px; border-color:var(--brand-navy); border-style:dashed; opacity:0.4; animation:inner-circle-spin 22s linear infinite;}
  @keyframes inner-circle-spin{ to{ transform:rotate(360deg); } }
  .inner-circle h2{margin-top:0.6rem;}
  .inner-circle .lede{margin:0.8rem auto 0;}
  .inner-circle-form{display:flex; flex-direction:column; align-items:center; gap:0.85rem; margin-top:1.85rem; width:100%; max-width:380px;}
  .inner-circle-form .mc-row{width:100%;}
  .inner-circle-form .mc-row-2{display:flex; gap:0.7rem;}
  .inner-circle-form .mc-row-2 > div{flex:1;}
  .inner-circle-form input{
    width:100%; padding:0.75rem 1.1rem; border-radius:999px; border:1px solid var(--border);
    background:var(--surface); color:var(--ink); font-size:0.95rem;
  }
  .inner-circle-form input::placeholder{color:var(--ink-soft);}
  .inner-circle-form .btn{margin-top:0.3rem;}
  .inner-circle-form .form-note{font-size:0.78rem; color:var(--ink-soft); margin-top:0.2rem;}
  @media (prefers-reduced-motion: reduce){ .inner-circle-ring.ring-2{animation:none;} }

  /* ===================== ZOOM STORY ===================== */
  .zoom-story{position:relative; height:220vh; background:var(--brand-navy-deep);}
  .zoom-sticky{position:sticky; top:0; height:88vh; overflow:hidden;}
  .zoom-layer{position:absolute; inset:0;}
  .zoom-layer img{width:100%; height:100%; object-fit:cover; display:block; transform:scale(var(--zoom-scale,1)); transform-origin:50% 50%;}
  .zoom-layer[data-layer="0"]{clip-path:none;}
  .zoom-layer:not([data-layer="0"]){clip-path:circle(var(--zoom-r,0%) at 50% 50%);}
  .zoom-layer::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(15,33,53,0) 45%, rgba(15,33,53,0.75) 100%);}
  .zoom-caption{
    position:absolute; left:0; right:0; bottom:0; display:flex; flex-direction:column; align-items:center;
    text-align:center; gap:0.9rem; padding:0 1.5rem clamp(3rem,8vh,5rem); opacity:0; transition:opacity 0.4s ease;
    pointer-events:none;
  }
  .zoom-caption.is-active{opacity:1; pointer-events:auto;}
  .zoom-caption .eyebrow{color:var(--on-navy-soft);}
  .zoom-caption h2{color:var(--on-navy-ink); font-size:clamp(1.7rem,4vw,2.8rem); max-width:34rem;}
  .zoom-scroll-cue{
    position:absolute; bottom:1.5rem; left:50%; transform:translateX(-50%); z-index:5;
    font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--on-navy-soft);
    display:flex; flex-direction:column; align-items:center; gap:0.5rem; opacity:1; transition:opacity 0.3s ease;
  }
  .zoom-scroll-cue span{width:1px; height:28px; background:var(--on-navy-border);}
  .zoom-scroll-cue.is-hidden{opacity:0;}
  @media (prefers-reduced-motion: reduce){
    .zoom-story{height:100vh;}
    .zoom-layer{clip-path:none !important; opacity:0;}
    .zoom-layer[data-layer="8"]{opacity:1;}
    .zoom-caption{opacity:0;}
    .zoom-caption[data-cap="2"]{opacity:1; pointer-events:auto;}
    .zoom-scroll-cue{display:none;}
  }
