/* Cruising Cove — sitewide cream / navy / gold design system */
:root{
  --navy:#1a2a4a;
  --navy-deep:#0f1c33;
  --cream:#f5f0e1;
  --cream-2:#faf7ee;
  --teal:#1e5c5c;
  --gold:#c9a24b;
  --gold-light:#d4b05a;
  --ink:#2c2c2a;
  --muted:#6b6b62;
  --font-serif:'Cormorant Garamond',Georgia,serif;
  --font-sans:'Source Sans 3',system-ui,sans-serif;

  /* Aliases so legacy article markup keeps working */
  --water-deep:var(--navy);
  --water-ink:var(--ink);
  --sand:var(--cream-2);
  --foam:var(--cream);
  --sunset:var(--gold);
  --tide:var(--muted);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream-2);
  color:var(--ink);
  font-family:var(--font-sans);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
img,svg{display:block;max-width:100%;}
.wrap{max-width:1200px;margin:0 auto;padding:0 40px;}
@media (max-width:700px){ .wrap{padding:0 22px;} }

.display{font-family:var(--font-serif);font-weight:600;letter-spacing:0.01em;}
.mono{font-family:var(--font-sans);letter-spacing:0.08em;text-transform:uppercase;font-size:0.72rem;font-weight:600;}

/* ---------- Buttons ---------- */
.btn{
  padding:10px 18px;border-radius:2px;font-size:0.85rem;font-weight:600;
  letter-spacing:.02em;display:inline-block;cursor:pointer;white-space:nowrap;
  transition:background .2s ease,border-color .2s ease,color .2s ease,transform .15s ease;
  border:1px solid transparent;font-family:var(--font-sans);
}
.btn:hover{transform:translateY(-1px);}
.btn-gold{background:var(--gold);color:var(--navy);border-color:var(--gold);}
.btn-gold:hover{background:var(--gold-light);}
.btn-outline{border:1px solid var(--navy);color:var(--navy);background:transparent;}
.btn-outline:hover{background:rgba(26,42,74,.05);}
.btn-outline-light{border:1px solid rgba(245,240,225,.5);color:var(--cream);background:transparent;}
.btn-outline-light:hover{border-color:var(--cream);background:rgba(245,240,225,.08);}

/* ---------- Admin bar (visible only when site-admin session is active) ---------- */
.cc-admin-bar{
  position:fixed;top:0;left:0;right:0;z-index:90;
  background:var(--navy-deep);color:var(--cream);
  border-bottom:1px solid rgba(201,162,75,.35);
  font-size:0.84rem;
}
.cc-admin-bar-inner{
  max-width:1180px;margin:0 auto;padding:8px 20px;
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
}
.cc-admin-bar-brand{
  font-family:var(--font-serif);font-weight:600;color:var(--gold);
  text-decoration:none;letter-spacing:0.02em;
}
.cc-admin-bar-links{
  display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;flex:1;
}
.cc-admin-bar-links a{
  color:rgba(245,240,225,.82);text-decoration:none;border-bottom:1px solid transparent;
  padding-bottom:1px;
}
.cc-admin-bar-links a:hover{color:var(--cream);}
.cc-admin-bar-links a.is-current{color:var(--gold);border-bottom-color:var(--gold);}
.cc-admin-bar-logout{
  appearance:none;border:1px solid rgba(245,240,225,.35);background:transparent;
  color:var(--cream);font:inherit;font-size:0.82rem;padding:4px 10px;cursor:pointer;
}
.cc-admin-bar-logout:hover{border-color:var(--gold);color:var(--gold);}
body.cc-admin-logged-in{padding-top:42px;}
body.cc-admin-logged-in .site-header{top:42px;}
@media (max-width:700px){
  body.cc-admin-logged-in{padding-top:0;}
  .cc-admin-bar{position:sticky;}
  body.cc-admin-logged-in .site-header{top:0;}
}

/* ---------- Shared header ---------- */
.site-header{
  position:sticky;top:0;z-index:50;
  background:var(--cream-2);
  border-bottom:1px solid rgba(26,42,74,.08);
}
/* Protect header/footer from page-level .wrap overrides (e.g. form pages). */
.site-header > .wrap,
.site-footer > .wrap,
.site-legal > .wrap{
  max-width:1200px;
  margin-left:auto;
  margin-right:auto;
  padding-left:40px;
  padding-right:40px;
}
@media (max-width:700px){
  .site-header > .wrap,
  .site-footer > .wrap,
  .site-legal > .wrap{padding-left:22px;padding-right:22px;}
}
.site-nav-bar{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 0 10px;gap:10px 14px;
  min-width:0;
  flex-wrap:wrap;
  align-content:flex-start;
}
.site-nav-top{
  display:flex;align-items:center;justify-content:space-between;
  gap:12px;flex:1 1 100%;width:100%;min-width:0;
  order:1;
}
.site-nav-top > .brand{
  flex:1 1 auto;min-width:0;justify-content:space-between;
}
.logo{
  display:flex;align-items:center;gap:10px;
  font-family:var(--font-serif);font-size:1.25rem;font-weight:700;
  color:var(--navy);flex-shrink:0;letter-spacing:0.01em;
  max-width:min(100%, 200px);
}
.brand{
  display:flex;align-items:center;gap:10px;flex-shrink:0;z-index:2;
}
.logo-mail{
  display:inline-flex;align-items:center;justify-content:center;
  width:28px;height:28px;color:var(--navy);
  border:1px solid rgba(26,42,74,.18);border-radius:50%;
  transition:color .15s ease,border-color .15s ease,background .15s ease;
}
.logo-mail:hover{
  color:var(--gold);border-color:var(--gold);
  background:rgba(201,162,75,.08);
}
.logo-mail svg{width:14px;height:14px;display:block;}
.logo .mark{
  width:26px;height:26px;border:2px solid var(--gold);border-radius:50%;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.logo .mark svg{width:14px;height:14px;}
.cc-nav-first-mate{
  display:inline-flex;align-items:center;gap:8px;
  margin:0;padding:4px 10px 4px 4px;
  border:1px solid rgba(26,42,74,.14);
  border-radius:999px;
  background:rgba(15,28,51,.04);
  color:var(--navy);
  font-family:var(--font-sans);
  font-size:0.78rem;
  font-weight:600;
  letter-spacing:0.02em;
  line-height:1;
  cursor:pointer;
  flex-shrink:0;
  transition:border-color .15s ease, background .15s ease, color .15s ease, transform .15s ease;
}
.cc-nav-first-mate:hover{
  border-color:var(--gold);
  background:rgba(201,162,75,.12);
  color:var(--navy);
}
.cc-nav-first-mate:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:2px;
}
.cc-nav-first-mate-icon{
  width:28px;height:28px;border-radius:50%;
  display:block;object-fit:cover;
  box-shadow:0 0 0 1px rgba(201,162,75,.35);
}
.cc-nav-first-mate-label{white-space:nowrap;}
.site-nav-bar .nav-links{
  display:none;width:100%;order:3;
  flex-direction:column;align-items:stretch;gap:4px;
  padding:12px 0 6px;flex-wrap:nowrap;flex:1 1 100%;
  font-size:0.92rem;font-weight:500;color:var(--navy);
  min-width:0;justify-content:flex-start;overflow:visible;
  border-top:1px solid rgba(26,42,74,.08);margin-top:4px;
}
.site-nav-bar .nav-links.open{display:flex;}
.site-nav-bar .nav-links > a{
  white-space:nowrap;transition:color .2s ease, background .15s ease;
  border-bottom:0;padding:10px 4px;border-radius:2px;
}
.site-nav-bar .nav-links > a:hover{color:var(--gold);background:rgba(26,42,74,.04);}
.site-nav-bar .nav-links > a.current{color:var(--gold);}
.site-nav-bar .nav-links > button.cc-nav-feedback{
  appearance:none;background:none;border:0;margin:0;font:inherit;font-size:inherit;
  font-weight:inherit;color:inherit;text-align:left;cursor:pointer;
  white-space:nowrap;transition:color .2s ease, background .15s ease;
  border-bottom:0;padding:10px 4px;border-radius:2px;width:100%;
}
.site-nav-bar .nav-links > button.cc-nav-feedback:hover{
  color:var(--gold);background:rgba(26,42,74,.04);
}
.nav-visitor-count,
.site-visitor-count{
  margin:0 0 8px;
  padding:0 4px 10px;
  border-bottom:1px solid rgba(26,42,74,.08);
  font-family:var(--font-serif);
  font-size:1.05rem;
  font-weight:700;
  line-height:1.35;
  letter-spacing:0.01em;
  color:rgba(26,42,74,.82);
  max-width:100%;
}
.nav-visitor-count strong,
.site-visitor-count strong{
  color:var(--navy);
  font-weight:800;
}
.site-visitor-count{
  display:block;
  width:100%;
  order:2;
  flex:1 1 100%;
  margin:0;
  padding:10px 0 12px;
  border-bottom:0;
  border-top:1px solid rgba(26,42,74,.08);
  font-size:1rem;
  color:var(--navy);
}
.site-nav-bar .nav-cta{
  display:flex;align-items:center;gap:10px;flex:0 0 auto;
  position:relative;z-index:3;margin-left:auto;order:2;
  background:transparent;box-shadow:none;
}
.site-nav-bar .nav-cta .btn{white-space:nowrap;}
.cc-nav-account{
  display:flex;align-items:center;gap:10px;flex:0 0 auto;
  font-size:0.85rem;font-weight:600;color:var(--navy);
}
.cc-nav-account-who{
  white-space:nowrap;max-width:12rem;overflow:hidden;text-overflow:ellipsis;
}
.cc-nav-account-who strong{font-weight:700;}
.cc-nav-account-signin,
.cc-nav-account-out{
  appearance:none;background:none;border:0;margin:0;padding:0;
  font:inherit;font-size:inherit;font-weight:700;color:var(--teal);
  cursor:pointer;text-decoration:underline;text-underline-offset:2px;
  white-space:nowrap;
}
.cc-nav-account-signin:hover,
.cc-nav-account-out:hover{color:var(--gold);}
.site-nav-bar .nav-links .cc-nav-account{
  width:100%;padding:8px 4px 4px;margin-top:4px;
  border-top:1px solid rgba(26,42,74,.08);
}
@media (min-width:980px){
  .site-nav-bar .nav-links .cc-nav-account{
    width:auto;margin:0;padding:0;border:0;
  }
}

.nav-dropdown{position:relative;width:100%;}
.nav-dropdown-toggle{
  background:none;border:0;padding:10px 4px;margin:0;cursor:pointer;
  font:inherit;font-size:inherit;font-weight:500;color:var(--navy);
  border-bottom:0;white-space:nowrap;width:100%;text-align:left;
  border-radius:2px;
}
.nav-dropdown-toggle:hover,
.nav-dropdown-toggle.current,
.nav-dropdown.current > .nav-dropdown-toggle{color:var(--gold);}
.nav-dropdown-toggle::after{
  content:"";display:inline-block;margin-left:6px;
  border:4px solid transparent;border-top-color:currentColor;
  transform:translateY(2px);
}
.nav-dropdown-menu{
  display:none;position:static;transform:none;min-width:0;
  padding:2px 0 8px 10px;background:transparent;border:0;
  box-shadow:none;border-radius:0;z-index:70;
}
.nav-dropdown.open .nav-dropdown-menu{display:flex;flex-direction:column;gap:1px;}
.nav-dropdown-menu a{
  display:block;padding:9px 12px;border-bottom:0 !important;border-radius:2px;
  color:var(--navy);font-size:0.9rem;white-space:nowrap;
}
.nav-dropdown-menu a:hover,
.nav-dropdown-menu a.current{background:rgba(26,42,74,.06);color:var(--navy);}
.nav-menu-label{
  margin:10px 12px 2px;padding:0;
  font-size:0.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--gold);line-height:1.3;
}
.nav-menu-label:first-child{margin-top:4px;}
.nav-dropdown-menu a.nav-menu-footer{
  margin-top:8px;padding-top:12px;
  border-top:1px solid rgba(26,42,74,.1) !important;border-radius:0;
  color:var(--teal);font-weight:600;font-size:0.88rem;
}
.nav-dropdown-menu a.nav-menu-footer:hover{color:var(--gold);background:transparent;}

.cc-site-search{
  position:relative;
  flex:0 1 180px;
  width:180px;
  min-width:120px;
  max-width:200px;
}
.cc-site-search-label{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
.cc-site-search-box{
  display:flex;align-items:center;gap:8px;
  background:rgba(26,42,74,.04);
  border:1px solid rgba(26,42,74,.14);
  border-radius:2px;
  padding:7px 10px;
  transition:border-color .15s ease, background .15s ease;
}
.cc-site-search-box:focus-within{
  border-color:var(--gold);
  background:#fff;
}
.cc-site-search-icon{
  width:15px;height:15px;color:var(--muted);flex-shrink:0;
}
.cc-site-search-box input{
  border:0;outline:0;background:transparent;width:100%;
  font:inherit;font-size:0.88rem;color:var(--navy);
  min-width:0;
}
.cc-site-search-box input::placeholder{color:var(--muted);}
.cc-site-search-results{
  position:absolute;top:calc(100% + 8px);right:0;left:auto;
  width:min(360px, calc(100vw - 32px));
  background:var(--cream);
  border:1px solid rgba(26,42,74,.12);
  border-radius:2px;
  box-shadow:0 16px 40px -18px rgba(15,28,51,.45);
  padding:6px;
  z-index:60;
  max-height:min(70vh, 420px);
  overflow:auto;
}
.cc-site-search-item{
  display:block;padding:10px 12px;border-radius:2px;
  color:var(--navy);
}
.cc-site-search-item:hover,
.cc-site-search-item:focus{
  background:rgba(26,42,74,.06);outline:none;
}
.cc-site-search-item strong{
  display:block;font-size:0.92rem;font-weight:600;margin-bottom:2px;
}
.cc-site-search-item span{
  display:block;font-size:0.8rem;line-height:1.4;color:var(--muted);
}
.cc-site-search-empty{
  margin:0;padding:12px;font-size:0.88rem;color:var(--muted);
}

.nav-toggle{
  display:inline-flex;align-items:center;gap:8px;
  background:none;border:1px solid rgba(26,42,74,.16);border-radius:2px;
  cursor:pointer;padding:7px 10px;margin-left:4px;flex-shrink:0;order:3;
  color:var(--navy);font:inherit;font-size:0.82rem;font-weight:600;
  letter-spacing:.02em;
}
.nav-toggle:hover{border-color:var(--gold);color:var(--gold);}
.nav-toggle[aria-expanded="true"]{border-color:var(--gold);color:var(--gold);}
.nav-toggle-bars{
  display:flex;flex-direction:column;gap:4px;
}
.nav-toggle-bars span,
.nav-toggle > span:not(.nav-toggle-bars):not(.nav-toggle-label){
  width:18px;height:2px;background:currentColor;display:block;
}
.nav-toggle-label{line-height:1;}

/* Desktop: brand + search/CTA on row 1; primary links on row 2 (no overlap). */
@media (min-width:980px){
  .site-nav-bar{
    flex-wrap:wrap;gap:10px 20px;align-items:center;
  }
  .site-nav-bar .nav-toggle{display:none;}
  .site-nav-bar > .brand,
  .site-nav-bar > .logo{order:1;flex:0 0 auto;}
  .site-nav-bar > .cc-nav-first-mate{order:1;flex:0 0 auto;}
  .site-nav-bar .nav-cta{
    order:2;margin-left:auto;flex:0 0 auto;gap:12px;
  }
  .site-nav-bar .nav-links,
  .site-nav-bar .nav-links.open{
    display:flex;order:3;flex:1 1 100%;width:100%;
    flex-direction:row;align-items:center;justify-content:flex-end;
    gap:6px 16px;padding:10px 0 2px;margin:0;
    border:0;border-top:1px solid rgba(26,42,74,.08);
    flex-wrap:wrap;font-size:0.88rem;
    min-width:0;
  }
  .site-nav-top{
    order:1;
    flex:1 1 100%;
    width:100%;
  }
  .site-visitor-count{
    order:2;
    flex:1 1 100%;
    width:100%;
    max-width:none;
    margin:0;
    padding:8px 0 10px;
    border-top:1px solid rgba(26,42,74,.08);
    border-bottom:1px solid rgba(26,42,74,.08);
    border-right:0;
    font-size:0.95rem;
    font-weight:700;
    line-height:1.3;
    color:rgba(26,42,74,.82);
  }
  .site-nav-bar .nav-links > a{
    padding:4px 0 6px;
    border-bottom:2px solid transparent;
    background:transparent;
  }
  .site-nav-bar .nav-links > a:hover{background:transparent;}
  .site-nav-bar .nav-links > a.current{border-bottom-color:var(--gold);}
  .site-nav-bar .nav-links > button.cc-nav-feedback{
    width:auto;padding:4px 0 6px;
    border-bottom:2px solid transparent;background:transparent;
  }
  .site-nav-bar .nav-links > button.cc-nav-feedback:hover{background:transparent;}
  .nav-dropdown{width:auto;}
  .nav-dropdown-toggle{
    width:auto;padding:4px 0 6px;
    border-bottom:2px solid transparent;
  }
  .nav-dropdown-toggle.current,
  .nav-dropdown.current > .nav-dropdown-toggle{border-bottom-color:var(--gold);}
  .nav-dropdown-menu{
    position:absolute;top:calc(100% + 10px);left:0;
    min-width:220px;padding:8px;
    background:var(--cream);
    border:1px solid rgba(26,42,74,.12);
    border-radius:2px;
    box-shadow:0 16px 40px -18px rgba(15,28,51,.45);
  }
  .nav-dropdown-menu--plan{
    min-width:min(520px, calc(100vw - 32px));
    display:none;
    grid-template-columns:1fr 1fr;
    gap:2px 18px;
    padding:12px 14px 10px;
  }
  .nav-dropdown.open .nav-dropdown-menu--plan{display:grid;}
  .nav-dropdown-menu--plan .nav-menu-label{
    grid-column:1 / -1;
    margin:12px 4px 4px;
  }
  .nav-dropdown-menu--plan .nav-menu-label:first-child{margin-top:0;}
  .nav-dropdown-menu--plan a{white-space:normal;}
  .nav-dropdown-menu--plan a.nav-menu-footer{
    grid-column:1 / -1;
    margin-top:10px;
  }
  .cc-site-search{
    flex:0 1 168px;width:168px;min-width:140px;max-width:200px;
  }
}

@media (max-width:700px){
  .cc-site-search{
    order:5;flex:1 1 100%;max-width:none;width:100%;
  }
  .cc-site-search-results{left:0;right:0;width:100%;}
  .site-nav-bar .nav-cta{
    margin-left:0;flex-wrap:wrap;justify-content:flex-end;
  }
  .site-nav-bar .nav-cta .btn{padding:9px 12px;font-size:0.8rem;}
  .cc-nav-first-mate{
    padding:3px 8px 3px 3px;font-size:0.72rem;gap:6px;
  }
  .cc-nav-first-mate-icon{width:26px;height:26px;}
}

/* ---------- Shared footer ---------- */
.site-footer{background:var(--navy-deep);color:#8b93a8;padding:50px 0 40px;}
.site-footer .foot-top{
  display:flex;justify-content:space-between;align-items:center;
  padding-bottom:28px;border-bottom:1px solid rgba(255,255,255,.08);gap:20px;flex-wrap:wrap;
}
.site-footer .logo{color:var(--cream);}
.site-footer .logo-mail{
  color:var(--cream);border-color:rgba(245,240,225,.28);
}
.site-footer .logo-mail:hover{
  color:var(--gold);border-color:var(--gold);background:rgba(201,162,75,.12);
}
.site-footer .foot-links{display:flex;gap:22px;font-size:0.875rem;color:#c7cbd6;flex-wrap:wrap;}
.site-footer .foot-links a:hover{color:var(--gold);}
.site-footer .disclaimer{font-size:0.8rem;line-height:1.6;padding-top:24px;max-width:900px;margin:0;}

/* ---------- Eyebrows / labels ---------- */
.eyebrow,.section-label{
  font-size:0.75rem;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--gold);margin:0 0 14px;
}
.page-hero .eyebrow,
.page-hero .eyebrow.mono{
  display:inline-block;
  font-size:0.72rem;
  color:var(--gold);
  border:1px solid rgba(201,162,75,.4);
  border-radius:2px;
  padding:0.35rem 0.85rem;
  margin-bottom:1.2rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  font-weight:700;
  font-family:var(--font-sans);
}

/* ---------- Hub / content page hero ---------- */
.hub-hero{
  max-width:900px;margin:0 auto;padding:56px 40px 20px;text-align:left;
}
.hub-hero h1{
  font-family:var(--font-serif);font-size:clamp(2rem,4vw,2.7rem);
  margin:0 0 14px;font-weight:400;color:var(--navy);line-height:1.15;
}
.hub-hero p{color:var(--muted);font-size:1.05rem;line-height:1.6;max-width:60ch;margin:0;}
@media (max-width:700px){ .hub-hero{padding:40px 22px 12px;} }

.page-hero{
  background:
    linear-gradient(100deg, rgba(15,28,51,.96) 0%, rgba(15,28,51,.88) 55%, rgba(26,42,74,.82) 100%);
  color:var(--cream);
  padding-bottom:0;
  position:relative;
  overflow:hidden;
}
.page-hero-inner{
  max-width:860px;
  margin:0 auto;
  padding:2.5rem clamp(1.2rem, 5vw, 4rem) 1.5rem;
}
.page-hero h1{
  font-family:var(--font-serif);
  font-weight:400;
  text-transform:none;
  font-size:clamp(2.2rem, 5vw, 3.2rem);
  line-height:1.08;
  margin:0 0 1rem;
  color:var(--cream);
  letter-spacing:0;
}
.page-hero h1 em{
  font-style:italic;
  color:var(--gold);
}
.page-hero .lede{
  font-size:1.05rem;
  max-width:60ch;
  color:#d7dae3;
  margin:0;
  font-family:var(--font-sans);
}
.tide{
  position:relative;
  width:100%;
  height:56px;
  margin-top:-1px;
  display:block;
}
.tide svg{display:block;width:100%;height:100%;}

/* ---------- Article content ---------- */
main{
  max-width:860px;
  margin:0 auto;
  padding:0 clamp(1.2rem, 5vw, 4rem) 1rem;
}
main section{
  padding:2.6rem 0;
  border-bottom:1px solid rgba(26,42,74,.1);
}
main section:last-of-type{border-bottom:none;}
section .label{
  font-size:0.72rem;
  color:var(--gold);
  margin-bottom:0.9rem;
  display:block;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:700;
}
main h2, .article h2{
  font-family:var(--font-serif);
  font-weight:500;
  text-transform:none;
  font-size:clamp(1.5rem,2.5vw,1.85rem);
  letter-spacing:0;
  margin:0 0 1.1rem;
  color:var(--navy);
}
main p{margin:0 0 1rem;max-width:66ch;}
main p:last-child{margin-bottom:0;}
ul.plain{margin:0.8rem 0 0;padding:0 0 0 1.2rem;}
ul.plain li{margin-bottom:0.5rem;}
ul.plain li:last-child{margin-bottom:0;}

.stat-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(140px, 1fr));
  gap:12px;
  background:transparent;
  border:none;
  border-radius:0;
  overflow:visible;
  margin:1.6rem 0;
}
.stat-grid .stat{
  background:var(--cream);
  border:1px solid rgba(26,42,74,.1);
  border-radius:4px;
  padding:1.1rem 1.2rem;
}
.stat-grid .stat .k{
  font-family:var(--font-sans);
  font-size:0.65rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--muted);
  display:block;
  margin-bottom:0.3rem;
  font-weight:600;
}
.stat-grid .stat .v{
  font-family:var(--font-serif);
  font-weight:600;
  font-size:1.25rem;
  color:var(--navy);
  display:block;
  line-height:1.2;
}
.stat-grid .stat .note{
  display:block;
  margin-top:0.35rem;
  font-size:0.8rem;
  color:var(--muted);
  line-height:1.35;
  font-weight:400;
  text-transform:none;
  letter-spacing:0;
}

.callout{
  background:var(--cream);
  border-left:3px solid var(--teal);
  border-radius:0 4px 4px 0;
  padding:1.1rem 1.4rem;
  margin-top:1.2rem;
  font-size:0.95rem;
}
.callout .label{margin-bottom:0.4rem;}
.callout p{margin:0;}

/* Inline gallery photos on guides */
.cc-photo{
  margin:1.25rem 0 0.35rem;
}
.cc-photo img{
  width:100%;
  height:auto;
  border-radius:2px;
  display:block;
  background:#e8e2d2;
  object-fit:cover;
}
.cc-photo figcaption{
  margin-top:0.55rem;
  font-size:0.88rem;
  color:var(--muted);
  line-height:1.45;
}
.cc-photo figcaption a{color:var(--teal);}
.cc-photo-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:1.25rem 0 0.35rem;
}
@media (max-width:640px){
  .cc-photo-grid{grid-template-columns:1fr;}
}
.cc-photo-grid .cc-photo{margin:0;}
.cc-photo--square img{aspect-ratio:1;object-fit:cover;}
.cc-photo--wide img{aspect-ratio:16/10;object-fit:cover;}

.table-wrap{
  overflow-x:auto;
  margin:1.4rem 0;
  border:1px solid rgba(26,42,74,.12);
  border-radius:4px;
  -webkit-overflow-scrolling:touch;
}
.compare-table{
  width:100%;
  border-collapse:collapse;
  font-size:0.9rem;
  min-width:520px;
}
.compare-table th,
.compare-table td{
  padding:0.75rem 1rem;
  text-align:left;
  vertical-align:top;
  border-bottom:1px solid rgba(26,42,74,.1);
}
.compare-table th{
  font-family:var(--font-sans);
  font-size:0.68rem;
  letter-spacing:.07em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--muted);
  background:rgba(26,42,74,.04);
  white-space:nowrap;
}
.compare-table td{color:var(--ink);}
.compare-table tr:last-child td{border-bottom:none;}
.compare-table .num{font-variant-numeric:tabular-nums;white-space:nowrap;}
.compare-table .note{
  display:block;
  margin-top:0.25rem;
  font-size:0.8rem;
  color:var(--muted);
}
.fine-print{
  font-size:0.82rem;
  color:var(--muted);
  margin:0.4rem 0 0;
  max-width:70ch;
}
.last-updated{
  font-size:0.82rem;color:var(--muted);margin:10px 0 0;letter-spacing:.02em;
}
.last-updated time{font-weight:600;color:var(--navy);}
.page-hero .last-updated{color:rgba(245,240,225,.72);margin-top:14px;}
.page-hero .last-updated time{color:var(--gold);}
.save-section .last-updated{margin-top:8px;}

.fleet-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(240px, 1fr));
  gap:1.1rem;
  margin-top:1.6rem;
}
.fleet-card{
  display:block;
  background:var(--cream);
  border:1px solid rgba(26,42,74,.1);
  border-top:3px solid var(--teal);
  border-radius:2px;
  padding:1.3rem 1.4rem;
  text-decoration:none;
  color:var(--ink);
  transition:transform 0.15s ease, box-shadow 0.15s ease;
}
/* Only linked fleet cards should look clickable (avoid Clarity dead clicks on info tiles). */
a.fleet-card{cursor:pointer;}
a.fleet-card:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 24px -16px rgba(15,28,51,.35);
}
.fleet-card .class-tag{
  font-size:0.65rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--gold);
  display:block;
  margin-bottom:0.5rem;
  font-weight:700;
}
.fleet-card h3{
  font-family:var(--font-serif);
  font-weight:500;
  text-transform:none;
  font-size:1.3rem;
  margin:0 0 0.4rem;
  color:var(--navy);
}
.fleet-card p{
  font-size:0.9rem;
  margin:0;
  color:var(--muted);
}

/* ---------- Hub cards ---------- */
.grid-wrap{max-width:1180px;margin:0 auto;padding:36px 40px 90px;}
@media (max-width:700px){ .grid-wrap{padding:28px 22px 70px;} }
.card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
@media (max-width:960px){ .card-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .card-grid{grid-template-columns:1fr;} }

.hub-card,
.ship-card,
.port-card,
.ent-card,
.dining-card{
  background:var(--cream);
  border-radius:2px;
  overflow:hidden;
  border:1px solid rgba(26,42,74,.08);
  border-top:3px solid var(--teal);
  display:flex;
  flex-direction:column;
  transition:transform .18s ease, box-shadow .18s ease;
  color:inherit;
  text-decoration:none;
}
a.hub-card,
a.ship-card,
a.port-card,
a.ent-card,
a.dining-card{cursor:pointer;}
a.hub-card:hover,
a.ship-card:hover,
a.port-card:hover,
a.ent-card:hover,
a.dining-card:hover{
  transform:translateY(-3px);
  box-shadow:0 16px 28px -18px rgba(15,28,51,.35);
}
.ship-card-top,
.hub-card-top,
.port-card-top,
.ent-card-top{
  background:linear-gradient(135deg, var(--navy), var(--navy-deep));
  padding:26px 20px 20px;
  color:var(--cream);
}
.ship-card-top svg,
.hub-card-top svg,
.port-card-top svg,
.ent-card-top svg{width:38px;height:38px;color:var(--gold);margin-bottom:10px;}
.ship-card-top h3,
.hub-card-top h3,
.port-card-top h3,
.ent-card-top h3{
  color:var(--cream);font-family:var(--font-serif);font-size:1.25rem;font-weight:500;margin:0;
}
.ship-card-body,
.hub-card-body,
.port-card-body,
.ent-card-body{
  padding:16px 20px 20px;flex:1;display:flex;flex-direction:column;
}
.ship-card-body p,
.hub-card-body p,
.port-card-body p,
.ent-card-body p{
  font-size:0.92rem;color:var(--muted);line-height:1.55;margin:0 0 14px;flex:1;
}
.ship-card-cta,
.hub-card-cta,
.port-card-cta,
.ent-card-cta{
  font-weight:700;font-size:0.82rem;letter-spacing:0.04em;
  text-transform:uppercase;color:var(--teal);
}
.ship-card-cta::after,
.hub-card-cta::after,
.port-card-cta::after,
.ent-card-cta::after{content:' →';}

/* Legacy minimal footers inside article pages get site-footer instead */
footer:not(.site-footer){
  max-width:860px;
  margin:0 auto;
  padding:2.5rem clamp(1.2rem, 5vw, 4rem) 3.5rem;
  font-size:0.8rem;
  color:var(--muted);
}
footer:not(.site-footer) .disclaimer{
  padding-top:1.4rem;
  border-top:1px solid rgba(26,42,74,.1);
  line-height:1.55;
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .btn:hover{transform:none;}
}


/* Slim legal strip (no nav footer) */
.site-legal{
  background:var(--navy-deep);
  color:#8b93a8;
  padding:28px 0 32px;
  margin-top:48px;
}
.site-legal .disclaimer{
  font-size:0.8rem;
  line-height:1.6;
  max-width:900px;
  margin:0;
}
.site-legal .disclaimer + .disclaimer,
.site-legal .privacy-note,
.site-footer .privacy-note{
  margin-top:14px;
}
.site-legal .privacy-note a,
.site-footer .privacy-note a{
  color:#c7cbd6;
  text-decoration:underline;
  text-underline-offset:2px;
}
.site-legal .privacy-note a:hover,
.site-footer .privacy-note a:hover{
  color:var(--gold);
}

.cc-page-actions{
  background:var(--cream);
  border-top:1px solid rgba(26,42,74,.08);
  padding:36px 0 8px;
  margin-top:40px;
}
.cc-page-actions-label{
  margin:0 0 14px;
  font-family:var(--font-serif);
  font-size:1.35rem;
  font-weight:500;
  color:var(--navy);
}
.cc-page-actions-row{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:center;
}
.cc-page-actions .btn{
  text-decoration:none;
}

/* Related / next-page engagement (articles + ships) */
.cc-related{
  background:var(--cream-2);
  border-top:1px solid rgba(26,42,74,.08);
  padding:40px 0 12px;
  margin-top:8px;
}
.cc-related-label{
  margin:0 0 16px;
  font-family:var(--font-serif);
  font-size:1.45rem;
  font-weight:500;
  color:var(--navy);
}
.cc-related-list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:0;
  border-top:1px solid rgba(26,42,74,.1);
}
.cc-related-item a{
  display:grid;
  grid-template-columns:5.5rem 1fr;
  gap:12px 18px;
  align-items:baseline;
  padding:14px 0;
  border-bottom:1px solid rgba(26,42,74,.1);
  color:var(--navy);
  text-decoration:none;
}
.cc-related-item a:hover .cc-related-title{color:var(--gold);}
.cc-related-meta{
  font-size:0.72rem;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--teal);
}
.cc-related-title{
  font-family:var(--font-serif);
  font-size:1.12rem;
  font-weight:500;
  line-height:1.3;
  color:var(--navy);
  transition:color .15s ease;
}
@media (max-width:560px){
  .cc-related-item a{
    grid-template-columns:1fr;
    gap:4px;
    padding:12px 0;
  }
}

/* Sailing timeline */
.cc-timeline{
  list-style:none;
  margin:1.6rem 0 0;
  padding:0;
  border-left:2px solid rgba(26,42,74,.12);
}
.cc-timeline-item{
  position:relative;
  padding:0 0 1.6rem 1.35rem;
}
.cc-timeline-item:last-child{padding-bottom:0;}
.cc-timeline-marker{
  position:absolute;left:-7px;top:6px;
  width:12px;height:12px;border-radius:50%;
  background:var(--cream);
  border:2px solid var(--teal);
}
.cc-timeline-item.status-passed .cc-timeline-marker{border-color:var(--gold);background:var(--gold);}
.cc-timeline-item.status-today .cc-timeline-marker{border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,162,75,.25);}
.cc-timeline-item.status-upcoming .cc-timeline-marker{border-color:var(--navy);}
.cc-timeline-body h3{
  font-family:var(--font-serif);font-size:1.25rem;font-weight:500;
  color:var(--navy);margin:0 0 0.35rem;
}
.cc-timeline-date{margin:0 0 0.45rem;font-size:0.92rem;color:var(--muted);}
.cc-timeline-status{color:var(--teal);font-weight:600;}
.cc-timeline-body p{margin:0 0 0.45rem;}
.cc-timeline-body a{color:var(--teal);text-decoration:underline;}

/* First-cruise path */
.cc-first-path{
  list-style:none;margin:0;padding:0;
  display:grid;gap:1.25rem;
}
.cc-first-path > li{
  background:var(--cream);
  border:1px solid rgba(26,42,74,.08);
  border-left:3px solid var(--gold);
  padding:1.25rem 1.35rem 1.35rem;
}
.cc-first-path h3{
  font-family:var(--font-serif);font-size:1.35rem;font-weight:500;
  color:var(--navy);margin:0 0 0.5rem;
}
.cc-first-path p{margin:0 0 0.85rem;line-height:1.55;}
.cc-first-path p:last-child{margin-bottom:0;}

/* Printable checklists */
.cc-print-bar{
  display:flex;flex-wrap:wrap;gap:10px;align-items:center;
  margin:0 0 1.2rem;
}
@media print{
  .site-header,
  .site-legal,
  .nav-toggle,
  .cc-site-search,
  .cc-page-actions,
  .cc-related,
  .cc-print-bar,
  .page-hero .tide,
  #chat-widget,
  .chat-launcher,
  [class*="cc-chat"]{display:none !important;}
  .page-hero{padding:0 0 12px;background:#fff !important;color:#000 !important;}
  .page-hero h1,.page-hero .lede,.page-hero .eyebrow{color:#000 !important;}
  body{background:#fff;color:#000;}
  main{max-width:100%;}
  a{color:#000;text-decoration:none;}
}

/* Cost calculator + booking window forms */
.cc-calc,.cc-booking-form{
  background:var(--cream);
  border:1px solid rgba(26,42,74,.1);
  border-radius:4px;
  padding:1.4rem 1.5rem 1.6rem;
  margin:1.4rem 0 1.2rem;
  max-width:720px;
}
.cc-calc-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem 1.1rem;
  margin-bottom:1.15rem;
}
@media (max-width:640px){
  .cc-calc-grid{grid-template-columns:1fr;}
}
.cc-field{display:flex;flex-direction:column;gap:0.35rem;margin:0;}
.cc-label{
  font-family:var(--font-sans);
  font-size:0.68rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
}
.cc-calc select,.cc-calc input,.cc-booking-form select,.cc-booking-form input{
  font:inherit;
  font-size:0.95rem;
  color:var(--ink);
  background:#fff;
  border:1px solid rgba(26,42,74,.2);
  border-radius:2px;
  padding:0.55rem 0.7rem;
  width:100%;
}
.cc-calc select:focus,.cc-calc input:focus,.cc-booking-form select:focus,.cc-booking-form input:focus{
  outline:2px solid rgba(201,162,75,.45);
  border-color:var(--gold);
}
.cc-calc-result{margin-top:0.5rem;max-width:720px;}

/* ---------- Deck plans (ship pages) ---------- */
.cc-deck-plans{margin-top:0.5rem;}
.cc-deck-meta{margin-bottom:1rem;}
.cc-deck-class{
  font-family:var(--font-sans);font-size:0.72rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin:0 0 .35rem;
}
.cc-deck-note{margin:0;color:var(--muted);font-size:0.95rem;max-width:52ch;}
.cc-deck-filters,.cc-deck-tabs{
  display:flex;flex-wrap:wrap;gap:0.45rem;margin:0 0 1rem;
}
.cc-deck-filter,.cc-deck-tab{
  font-family:var(--font-sans);font-size:0.78rem;font-weight:600;
  letter-spacing:.02em;padding:0.45rem 0.8rem;border-radius:2px;
  border:1px solid rgba(26,42,74,.18);background:var(--cream);
  color:var(--navy);cursor:pointer;transition:background .15s,border-color .15s,color .15s;
}
.cc-deck-filter:hover,.cc-deck-tab:hover{border-color:var(--gold);}
.cc-deck-filter.is-active,.cc-deck-tab.is-active{
  background:var(--navy);color:var(--cream);border-color:var(--navy);
}
.cc-deck-tab.is-empty{opacity:.4;cursor:default;}
.cc-deck-count{
  display:inline-block;margin-left:0.35rem;font-size:0.68rem;
  background:rgba(201,162,75,.25);color:var(--gold-light);
  padding:0.05rem 0.35rem;border-radius:2px;
}
.cc-deck-tab.is-active .cc-deck-count{background:rgba(245,240,225,.2);color:var(--cream);}
.cc-deck-panel{
  background:linear-gradient(165deg, var(--navy-deep) 0%, var(--navy) 55%, #24365c 100%);
  color:var(--cream);padding:1.35rem 1.4rem 1.5rem;border-radius:4px;
  border:1px solid rgba(201,162,75,.22);
}
.cc-deck-panel h3{
  font-family:var(--font-serif);font-size:1.55rem;font-weight:600;
  margin:0 0 .35rem;color:var(--cream);
}
.cc-deck-blurb{margin:0 0 1rem;color:rgba(245,240,225,.78);font-size:0.95rem;max-width:48ch;}
.cc-deck-map{margin:0 0 1.15rem;}
.cc-deck-hull{
  display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:0.55rem;
  background:rgba(15,28,51,.45);border:1px solid rgba(245,240,225,.12);
  border-radius:999px 999px 12px 12px;padding:0.85rem 0.75rem 0.95rem;
  position:relative;
}
.cc-deck-hull::before{
  content:"";position:absolute;left:50%;top:-6px;transform:translateX(-50%);
  width:28%;height:10px;background:rgba(201,162,75,.35);border-radius:8px 8px 0 0;
}
.cc-deck-zone{text-align:center;min-height:4.2rem;}
.cc-deck-zone-label{
  display:block;font-size:0.65rem;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:rgba(201,162,75,.9);margin-bottom:0.45rem;
}
.cc-deck-dots{display:flex;flex-wrap:wrap;justify-content:center;gap:0.35rem;min-height:1.5rem;}
.cc-deck-dot{
  width:11px;height:11px;border-radius:50%;
  box-shadow:0 0 0 2px rgba(245,240,225,.15);
}
.cc-deck-dot.cat-dining{background:#e8c36a;}
.cc-deck-dot.cat-pool{background:#5eb7c9;}
.cc-deck-dot.cat-entertainment{background:#c97bb5;}
.cc-deck-dot.cat-kids{background:#7ec98a;}
.cc-deck-dot.cat-adults{background:#d4836a;}
.cc-deck-dot.cat-spa{background:#9b8fd4;}
.cc-deck-dot.cat-laundry{background:#6ec4b8;}
.cc-deck-dot.cat-service{background:#a8b0bc;}
.cc-deck-empty{color:rgba(245,240,225,.35);font-size:0.85rem;}
.cc-deck-map-caption{
  margin:0.55rem 0 0;font-size:0.72rem;letter-spacing:.04em;
  text-transform:uppercase;color:rgba(245,240,225,.45);text-align:center;
}
.cc-deck-venue-list{list-style:none;margin:0;padding:0;display:grid;gap:0.75rem;}
@media (min-width:720px){
  .cc-deck-venue-list{grid-template-columns:1fr 1fr;}
}
.cc-deck-venue-list li{
  background:rgba(245,240,225,.06);border:1px solid rgba(245,240,225,.1);
  border-radius:3px;padding:0.85rem 0.95rem;
}
.cc-deck-venue-top{display:flex;flex-wrap:wrap;gap:0.4rem;margin-bottom:0.35rem;}
.cc-deck-cat,.cc-deck-zone-chip{
  font-size:0.65rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  padding:0.2rem 0.45rem;border-radius:2px;
}
.cc-deck-zone-chip{background:rgba(245,240,225,.1);color:rgba(245,240,225,.75);}
.cc-deck-cat.cat-dining{background:rgba(232,195,106,.2);color:#e8c36a;}
.cc-deck-cat.cat-pool{background:rgba(94,183,201,.2);color:#5eb7c9;}
.cc-deck-cat.cat-entertainment{background:rgba(201,123,181,.2);color:#e0a8d0;}
.cc-deck-cat.cat-kids{background:rgba(126,201,138,.2);color:#7ec98a;}
.cc-deck-cat.cat-adults{background:rgba(212,131,106,.2);color:#e0a090;}
.cc-deck-cat.cat-spa{background:rgba(155,143,212,.2);color:#b8aee0;}
.cc-deck-cat.cat-laundry{background:rgba(110,196,184,.22);color:#6ec4b8;}
.cc-deck-cat.cat-service{background:rgba(168,176,188,.2);color:#c5cad3;}
.cc-deck-venue-list strong{
  display:block;font-family:var(--font-serif);font-size:1.12rem;
  font-weight:600;color:var(--cream);margin-bottom:0.2rem;
}
.cc-deck-venue-list p{margin:0;font-size:0.88rem;line-height:1.45;color:rgba(245,240,225,.72);}
.cc-deck-empty-msg{margin:0;color:rgba(245,240,225,.65);}
.cc-deck-official{margin:1.15rem 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:0.75rem;}
.cc-deck-official .fine-print{margin:0;color:var(--muted);}
@media (max-width:560px){
  .cc-deck-hull{border-radius:18px 18px 10px 10px;grid-template-columns:1fr;}
  .cc-deck-hull::before{display:none;}
  .cc-deck-zone{min-height:auto;padding:0.35rem 0;border-bottom:1px solid rgba(245,240,225,.08);}
  .cc-deck-zone:last-child{border-bottom:none;}
}

/* ---------- Feedback modal (site-nav.js) ---------- */
body.cc-feedback-open{overflow:hidden;}
.cc-feedback-modal{
  position:fixed;inset:0;z-index:1200;
  display:flex;align-items:center;justify-content:center;
  padding:max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));
}
.cc-feedback-modal[hidden]{display:none !important;}
.cc-feedback-backdrop{
  position:absolute;inset:0;
  background:rgba(15,28,51,.55);
}
.cc-feedback-panel{
  position:relative;z-index:1;
  width:min(440px,100%);
  max-height:min(92vh,720px);
  overflow:auto;
  background:var(--cream);
  color:var(--ink);
  border:1px solid rgba(26,42,74,.12);
  border-radius:4px;
  box-shadow:0 18px 48px rgba(15,28,51,.28);
  padding:28px 24px 22px;
}
.cc-feedback-close{
  position:absolute;top:8px;right:12px;
  background:transparent;border:0;color:var(--navy);
  font-size:1.8rem;line-height:1;cursor:pointer;padding:4px 8px;
  opacity:.7;
}
.cc-feedback-close:hover{opacity:1;color:var(--gold);}
.cc-feedback-panel h2{
  margin:0 0 8px;font-size:1.85rem;color:var(--navy);line-height:1.15;
  padding-right:28px;
}
.cc-feedback-lead{
  margin:0 0 18px;font-size:0.95rem;color:var(--muted);line-height:1.45;
}
.cc-feedback-form label{
  display:block;font-size:0.82rem;font-weight:600;color:var(--navy);
  margin:0 0 6px;
}
.cc-feedback-optional{font-weight:500;color:var(--muted);}
.cc-feedback-required{color:var(--gold);}
.cc-feedback-form input,
.cc-feedback-form textarea{
  width:100%;
  font:inherit;font-size:0.95rem;color:var(--ink);
  background:#fff;
  border:1px solid rgba(26,42,74,.18);
  border-radius:2px;
  padding:10px 12px;
  margin:0 0 14px;
}
.cc-feedback-form input:focus,
.cc-feedback-form textarea:focus{
  outline:2px solid rgba(201,162,75,.45);
  outline-offset:1px;
  border-color:var(--gold);
}
.cc-feedback-form textarea{resize:vertical;min-height:110px;}
.cc-feedback-status{
  margin:0 0 12px;font-size:0.92rem;line-height:1.4;
}
.cc-feedback-status.ok{color:var(--teal);}
.cc-feedback-status.err{color:#8a3a2a;}
.cc-feedback-actions{
  display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;
  margin-top:4px;
}
.cc-feedback-actions .btn{min-width:7.5rem;text-align:center;}
@media (max-width:480px){
  .cc-feedback-panel{padding:24px 18px 18px;}
  .cc-feedback-actions{flex-direction:column-reverse;}
  .cc-feedback-actions .btn{width:100%;}
}

/* ---------- Newsletter signup (site-nav.js) ---------- */
.cc-newsletter-band{
  background:
    linear-gradient(180deg, rgba(245,240,225,.96), rgba(250,247,238,.98)),
    radial-gradient(ellipse 80% 60% at 10% 0%, rgba(201,162,75,.14), transparent 55%),
    var(--cream);
  border-top:1px solid rgba(26,42,74,.08);
  padding:42px 0 40px;
}
.cc-newsletter-band-inner{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);
  gap:36px 48px;
  align-items:start;
}
.cc-newsletter-band-inner-cta{
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:24px 36px;
}
.cc-newsletter-cta{flex-shrink:0;}
.cc-newsletter-cta .btn{white-space:nowrap;}
.cc-newsletter-eyebrow{
  margin:0 0 8px;
  font-size:0.72rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--gold);
}
.cc-newsletter-copy h2{
  margin:0 0 12px;
  font-family:var(--font-serif);
  font-size:clamp(1.65rem,2.6vw,2.1rem);
  font-weight:600;color:var(--navy);line-height:1.15;
}
.cc-newsletter-copy p{
  margin:0;max-width:34rem;
  font-size:0.98rem;line-height:1.55;color:var(--muted);
}
.cc-newsletter-callout{
  background:var(--cream-2);
  border-top:1px solid rgba(26,42,74,.06);
  border-bottom:1px solid rgba(26,42,74,.06);
  padding:48px 0;
}
.cc-newsletter-callout .cc-newsletter-callout-inner{
  max-width:720px;
}
.cc-newsletter-callout .cc-newsletter-eyebrow{color:var(--teal);}
.cc-newsletter-callout h2{
  margin:0 0 10px;
  font-family:var(--font-serif);
  font-size:clamp(1.55rem,2.4vw,1.95rem);
  font-weight:600;color:var(--navy);line-height:1.15;
}
.cc-newsletter-callout > .wrap > p,
.cc-newsletter-callout .cc-newsletter-lede{
  margin:0 0 22px;max-width:36rem;
  font-size:1rem;line-height:1.55;color:var(--muted);
}
.cc-newsletter-form label{
  display:block;font-size:0.82rem;font-weight:600;color:var(--navy);
  margin:0 0 6px;
}
.cc-newsletter-optional{font-weight:500;color:var(--muted);}
.cc-newsletter-required{color:var(--gold);}
.cc-newsletter-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px 14px;
  margin:0 0 4px;
}
.cc-newsletter-field{min-width:0;}
.cc-newsletter-form input,
.cc-newsletter-form select{
  width:100%;
  font:inherit;font-size:0.95rem;color:var(--ink);
  background:#fff;
  border:1px solid rgba(26,42,74,.18);
  border-radius:2px;
  padding:10px 12px;
  margin:0 0 12px;
}
.cc-newsletter-form select{
  appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--navy) 50%),linear-gradient(135deg,var(--navy) 50%,transparent 50%);
  background-position:calc(100% - 16px) calc(50% - 2px),calc(100% - 11px) calc(50% - 2px);
  background-size:5px 5px,5px 5px;
  background-repeat:no-repeat;
  padding-right:28px;
}
.cc-newsletter-form input:focus,
.cc-newsletter-form select:focus{
  outline:2px solid rgba(201,162,75,.45);
  outline-offset:1px;
  border-color:var(--gold);
}
.cc-newsletter-check{
  display:flex;align-items:flex-start;gap:10px;
  margin:2px 0 14px;
  font-size:0.9rem;font-weight:500;color:var(--navy);line-height:1.4;
  cursor:pointer;
}
.cc-newsletter-check input{
  width:auto;margin:3px 0 0;flex-shrink:0;
  accent-color:var(--teal);
}
.cc-newsletter-status{
  margin:0 0 12px;font-size:0.92rem;line-height:1.4;
}
.cc-newsletter-status.ok{color:var(--teal);}
.cc-newsletter-status.err{color:#8a3a2a;}
.cc-newsletter-actions{margin-top:2px;}
.cc-newsletter-actions .btn{min-width:10rem;}
@media (max-width:860px){
  .cc-newsletter-band-inner{grid-template-columns:1fr;gap:22px;}
  .cc-newsletter-band-inner-cta{grid-template-columns:1fr;gap:18px;}
}
@media (max-width:560px){
  .cc-newsletter-band{padding:34px 0 32px;}
  .cc-newsletter-row{grid-template-columns:1fr;}
  .cc-newsletter-actions .btn{width:100%;}
  .cc-newsletter-cta .btn{width:100%;}
}
