/* ============================================================
   REEF Program Pages — shared style shell
   Used by every booking page (Ocean Explorers Expeditions and
   Facility Rentals alike). Do not fork per booking — edit here
   so every page stays visually consistent.
   ============================================================ */

:root{
  --navy-deep:#0F2A4E;
  --navy:#1B3C74;
  --reef-blue:#24408E;
  --teal:#00A79D;
  --teal-text:#00736C;
  --yellow:#FFDD00;
  --ink:#152436;
  --slate:#4E5E6E;
  --slate-soft:#7A8896;
  --hairline:#DCE3E9;
  --well:#F4F7F9;
  --sand:#FBF7EE;
  --paper:#FFFFFF;
  --card-shadow:0 1px 2px rgba(15,42,78,.06),0 8px 24px -12px rgba(15,42,78,.18);
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--well);
  color:var(--ink);
  font-family:'Public Sans','Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
.page{
  max-width:920px;
  margin:0 auto;
  background:var(--paper);
  box-shadow:0 0 0 1px var(--hairline);
}
h1,h2,h3,h4{
  font-family:'Fraunces',Georgia,'Times New Roman',serif;
  font-weight:600;
  color:var(--navy-deep);
  text-wrap:balance;
  margin:0;
}
p{margin:0;}
img{max-width:100%;display:block;}
a{color:var(--teal-text);}
ul{margin:0;padding:0;}
li{margin:0;}

.eyebrow{
  text-transform:uppercase;
  letter-spacing:.11em;
  font-size:11.5px;
  font-weight:700;
  color:var(--teal-text);
}
.eyebrow.on-navy{color:#8FD9D2;}
.container{padding:0 56px;}
.section{padding:48px 0;}
.section + .section{border-top:1px solid var(--hairline);}
.section-head{margin-bottom:24px;}
.section-head .eyebrow{margin-bottom:8px;display:block;}
.section-head p.dek{color:var(--slate);margin-top:10px;max-width:64ch;}
.divider-mark{
  width:32px;height:3px;background:var(--teal);border-radius:2px;
  margin-bottom:18px;
}

/* ---------- SAMPLE / DRAFT RIBBON ---------- */
.sample-flag{
  background:var(--navy-deep);
  color:#CBD9EA;
  font-size:12.5px;
  letter-spacing:.04em;
  text-align:center;
  padding:8px 20px;
  font-family:'Public Sans',sans-serif;
}
.sample-flag strong{color:#fff;}

/* ---------- HERO ---------- */
.hero{
  position:relative;
  background:
    radial-gradient(120% 140% at 85% -10%, rgba(0,167,157,.35), transparent 55%),
    linear-gradient(165deg, var(--navy) 0%, var(--navy-deep) 62%, #081A33 100%);
  color:#fff;
  padding:44px 56px 52px;
  overflow:hidden;
}
.hero::after{
  content:"";
  position:absolute;
  right:-60px; bottom:-90px;
  width:340px; height:340px;
  border-radius:50%;
  background:radial-gradient(circle at 35% 35%, rgba(255,255,255,.10), transparent 65%);
}
.hero-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  position:relative;
  z-index:2;
}
.hero-logo{height:40px;}
.hero-kicker{
  font-family:'Public Sans',sans-serif;
  font-size:12px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#8FD9D2;
  text-align:right;
}
.hero-body{
  position:relative; z-index:2;
  margin-top:56px;
  max-width:640px;
}
.hero-eyebrow{
  display:inline-block;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.22);
  color:#fff;
  font-size:11.5px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  padding:6px 12px;
  border-radius:999px;
  margin-bottom:18px;
}
.hero h1{color:#fff;font-size:34px;line-height:1.15;margin-bottom:14px;}
.hero .promise{
  font-family:'Fraunces',Georgia,serif;
  font-style:italic;
  font-size:18px;
  line-height:1.5;
  color:#D9E6F2;
  max-width:56ch;
}
.hero-meta{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:32px;
  position:relative;
  z-index:2;
}
.hero-meta .chip{
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.16);
  border-radius:10px;
  padding:10px 16px;
  min-width:140px;
}
.hero-meta .chip .eyebrow{color:#8FD9D2;font-size:10.5px;margin-bottom:4px;}
.hero-meta .chip .value{color:#fff;font-weight:600;font-size:14.5px;}

/* ---------- HERO PHOTO TREATMENT (optional, when hero.imageUrl is set) ---------- */
.hero.hero-has-image{
  background-size:cover;
  background-position:50% 38%;
  background-repeat:no-repeat;
}
.hero.hero-has-image::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(120% 140% at 85% -10%, rgba(0,167,157,.25), transparent 55%),
    linear-gradient(165deg, rgba(15,42,78,.55) 0%, rgba(8,26,51,.74) 58%, rgba(8,26,51,.90) 100%);
  z-index:1;
}
.hero.hero-has-image::after{display:none;}
.hero.hero-has-image .hero-top,
.hero.hero-has-image .hero-body,
.hero.hero-has-image .hero-meta{position:relative;z-index:2;}
.hero-photo-credit{
  position:relative;
  z-index:2;
  margin-top:14px;
  font-size:10.5px;
  color:rgba(255,255,255,.55);
  text-align:right;
}

/* ---------- MINI NAV (persistent wayfinding) ---------- */
.mini-nav{
  position:sticky;
  top:0;
  z-index:10;
  background:var(--paper);
  border-bottom:1px solid var(--hairline);
  box-shadow:0 2px 8px rgba(15,42,78,.06);
}
.mini-nav-inner{
  display:flex;
  gap:4px;
  overflow-x:auto;
  padding:0 56px;
}
.mini-nav-link{
  display:inline-block;
  padding:14px 16px;
  font-family:'Public Sans',sans-serif;
  font-size:13px;
  font-weight:600;
  color:var(--slate);
  text-decoration:none;
  white-space:nowrap;
  border-bottom:2px solid transparent;
}
.mini-nav-link:hover{color:var(--teal-text);border-bottom-color:var(--teal);}

/* ---------- ACTION NEEDED BANNER ---------- */
.action-needed{
  display:flex;
  align-items:center;
  gap:16px;
  background:#FFF8E6;
  border-bottom:1px solid #F0DFA0;
  padding:18px 56px;
}
.action-needed-icon{
  flex:none;
  width:28px;height:28px;
  border-radius:50%;
  background:#E8A400;
  color:#fff;
  font-family:'Public Sans',sans-serif;
  font-weight:800;
  font-size:15px;
  display:flex;align-items:center;justify-content:center;
}
.action-needed-body{flex:1 1 auto;}
.action-needed-headline{font-weight:700;color:#6B5107;font-size:15px;}
.action-needed-detail{color:#6B5107;font-size:13.5px;margin-top:2px;}
.action-needed-cta{
  flex:none;
  background:var(--navy-deep);
  color:#fff;
  font-weight:700;
  font-size:13.5px;
  text-decoration:none;
  padding:10px 18px;
  border-radius:8px;
  white-space:nowrap;
}
.action-needed-cta:hover{background:var(--navy);}

/* ---------- TRIP SNAPSHOT BAR ---------- */
.snapshot-bar{
  background:var(--sand);
  border-bottom:1px solid var(--hairline);
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:18px 32px;
  padding:24px 56px;
}
.snapshot-bar .eyebrow{color:var(--teal-text);font-size:10.5px;margin-bottom:4px;}
.snapshot-bar .value{font-weight:600;font-size:14.5px;color:var(--navy-deep);}

/* ---------- GLANCE TABLE ---------- */
/* Scrolls on its own on narrow viewports instead of stretching the whole
   page sideways — fixes a pre-existing mobile horizontal-scroll bug. */
.table-scroll{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.glance-table{
  width:100%;
  min-width:520px;
  border-collapse:collapse;
  font-size:14.5px;
}
.glance-table thead th{
  text-align:left;
  background:var(--navy);
  color:#fff;
  font-family:'Public Sans',sans-serif;
  font-weight:700;
  font-size:11.5px;
  letter-spacing:.06em;
  text-transform:uppercase;
  padding:12px 16px;
}
.glance-table tbody td{
  padding:16px;
  border-bottom:1px solid var(--hairline);
  vertical-align:top;
}
.glance-table tbody tr:last-child td{border-bottom:none;}
.glance-table .day-cell{font-weight:700;color:var(--navy-deep);white-space:nowrap;}
.glance-table .theme-cell{font-weight:600;color:var(--teal-text);}

/* ---------- DAY CARD ---------- */
.day-card{
  border:1px solid var(--hairline);
  border-radius:14px;
  overflow:hidden;
  box-shadow:var(--card-shadow);
  margin-bottom:24px;
}
.day-card-head{
  background:linear-gradient(120deg, var(--navy) 0%, var(--navy-deep) 100%);
  color:#fff;
  padding:22px 28px;
}
.day-card-head .day-of{
  font-family:'Public Sans',sans-serif;
  font-size:11px;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:#8FD9D2;
  margin-bottom:6px;
}
.day-card-head h3{color:#fff;font-size:22px;margin-bottom:8px;}
.day-card-head .theme-line{
  font-family:'Fraunces',Georgia,serif;
  font-style:italic;
  color:#D9E6F2;
  font-size:15px;
}
.time-block{
  display:grid;
  grid-template-columns:96px 1fr;
  gap:20px;
  padding:20px 28px;
  border-bottom:1px solid var(--hairline);
}
.time-block:last-of-type{border-bottom:none;}
.time-block .time{
  font-weight:700;
  color:var(--navy-deep);
  font-size:13.5px;
  padding-top:2px;
}
.time-block .tag{
  display:inline-block;
  background:var(--well);
  border:1px solid var(--hairline);
  color:var(--teal-text);
  font-size:10.5px;
  font-weight:700;
  letter-spacing:.05em;
  text-transform:uppercase;
  padding:3px 9px;
  border-radius:6px;
  margin-bottom:8px;
}
.time-block h4{font-size:16px;margin-bottom:6px;}
.time-block .desc{color:var(--slate);font-size:14.5px;}

.outcomes-box{
  background:var(--well);
  border-left:3px solid var(--teal);
  padding:18px 28px;
  margin:0 28px 20px;
  border-radius:0 8px 8px 0;
}
.outcomes-box .eyebrow{color:var(--teal-text);font-size:10.5px;margin-bottom:10px;display:block;}
.outcomes-box ul{list-style:none;}
.outcomes-box li{
  position:relative;
  padding-left:18px;
  margin-bottom:6px;
  font-size:14.5px;
  color:var(--ink);
}
.outcomes-box li:last-child{margin-bottom:0;}
.outcomes-box li::before{
  content:"";
  position:absolute;left:0;top:8px;
  width:6px;height:6px;border-radius:50%;
  background:var(--teal);
}
.day-footer{
  padding:14px 28px 22px;
  font-size:13.5px;
  color:var(--slate-soft);
  border-top:1px dashed var(--hairline);
  margin-top:4px;
}
.day-footer strong{color:var(--ink);}
.day-footer .bring-line{margin-bottom:4px;}

/* ---------- STUDENTS-WILL CARDS ---------- */
.will-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:16px;
}
.will-card{
  border:1px solid var(--hairline);
  border-radius:10px;
  padding:18px;
}
.will-card .verb{
  font-family:'Fraunces',Georgia,serif;
  font-weight:600;
  color:var(--teal-text);
  font-size:15px;
  margin-bottom:8px;
  display:block;
}
.will-card p{font-size:14px;color:var(--slate);}

/* ---------- GEAR CARDS ---------- */
.gear-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:16px;
}
.gear-card{
  border:1px solid var(--hairline);
  border-radius:10px;
  padding:18px 20px;
}
.gear-card h4{font-size:15px;margin-bottom:12px;}
.gear-card ul{list-style:none;}
.gear-card li{font-size:14px;color:var(--slate);margin-bottom:8px;padding-left:0;}
.gear-card li:last-child{margin-bottom:0;}
.badge{
  display:inline-block;
  font-size:9.5px;
  font-weight:700;
  letter-spacing:.05em;
  text-transform:uppercase;
  padding:2px 7px;
  border-radius:5px;
  margin-right:6px;
  vertical-align:middle;
}
.badge.required{background:#FDEEEC;color:#B3402E;}
.badge.recommended{background:#E9F3FB;color:#2E6FA3;}

/* ---------- CALLOUT ---------- */
.callout{
  background:var(--sand);
  border:1px solid #EDE2C8;
  border-radius:10px;
  padding:18px 22px;
  font-size:14.5px;
  color:#6B5A32;
  font-style:italic;
}
.callout .mark{color:#C7A94A;font-size:20px;font-style:normal;margin-right:6px;}

/* ---------- FINAL REMINDERS GRID ---------- */
.reminders-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:16px;
  margin-top:20px;
}
.reminders-grid .field{
  border:1px solid var(--hairline);
  border-radius:10px;
  padding:16px 18px;
}
.reminders-grid .eyebrow{font-size:10px;color:var(--slate-soft);margin-bottom:6px;}
.reminders-grid .value{font-weight:600;color:var(--navy-deep);font-size:14.5px;}
.reminders-grid .value.placeholder{color:var(--slate-soft);font-weight:500;font-style:italic;}

/* ---------- AGREEMENT STATUS + NEXT STEPS ---------- */
.agreement-block{
  border:1px solid var(--hairline);
  border-radius:10px;
  padding:18px 20px;
  margin-bottom:24px;
  background:var(--well);
}
.agreement-status-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.agreement-status-row .eyebrow{margin-right:2px;}
.agreement-pill{
  display:inline-block;
  font-size:12px;
  font-weight:700;
  padding:4px 12px;
  border-radius:999px;
}
.agreement-pill-notsent{background:#EDEFF1;color:var(--slate);}
.agreement-pill-sent{background:#FFF1CC;color:#8A6300;}
.agreement-pill-signed{background:#DFF3E9;color:#1D7A4C;}
.agreement-pill-declined{background:#FDEEEC;color:#B3402E;}
.agreement-updated{font-size:12.5px;color:var(--slate-soft);}
.agreement-cta{
  display:inline-block;
  margin-top:14px;
  background:var(--teal);
  color:#fff;
  font-weight:700;
  font-size:14px;
  text-decoration:none;
  padding:11px 20px;
  border-radius:8px;
}
.agreement-cta:hover{background:var(--teal-text);}
.next-steps-list{margin-bottom:8px;}
.next-steps-list .eyebrow{display:block;margin-bottom:10px;}
.next-steps-list ul{list-style:none;}
.next-steps-list li{
  position:relative;
  padding-left:22px;
  margin-bottom:10px;
  font-size:14.5px;
  color:var(--ink);
}
.next-steps-list li::before{
  content:"→";
  position:absolute;left:0;top:0;
  color:var(--teal);
  font-weight:700;
}

/* ---------- CLOSING CTA ---------- */
.closing-cta{
  background:linear-gradient(120deg, var(--navy) 0%, var(--navy-deep) 100%);
  color:#fff;
  padding:36px 56px;
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  align-items:center;
  gap:20px;
}
.closing-cta h3{color:#fff;font-size:20px;margin-bottom:8px;}
.closing-cta p{color:#C7D6E6;font-size:14.5px;max-width:48ch;}
.closing-cta .contact{text-align:right;}
.closing-cta .contact .eyebrow{color:#8FD9D2;margin-bottom:6px;}
.closing-cta .contact a{color:#fff;font-weight:600;}

/* ---------- FOOTER ---------- */
.site-footer{
  padding:28px 56px;
  text-align:center;
  color:var(--slate-soft);
  font-size:12.5px;
}
.site-footer a{color:var(--slate-soft);text-decoration:underline;}

/* ---------- INDEX / LANDING LIST ---------- */
.index-list{list-style:none;padding:0 56px 48px;}
.index-list li{
  border:1px solid var(--hairline);
  border-radius:10px;
  padding:16px 20px;
  margin-bottom:12px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
}
.index-list a{font-weight:600;text-decoration:none;}
.index-list .meta{color:var(--slate-soft);font-size:13px;}

@media (max-width:600px){
  .container{padding:0 20px;}
  .hero{padding:32px 20px 40px;}
  .snapshot-bar{padding:20px;}
  .closing-cta{padding:28px 20px;flex-direction:column;align-items:flex-start;}
  .closing-cta .contact{text-align:left;}
  .time-block{grid-template-columns:1fr;gap:6px;}
  .index-list{padding:0 20px 32px;}
  .mini-nav-inner{padding:0 20px;}
  .action-needed{padding:16px 20px;flex-wrap:wrap;}
}

@media print{
  body{background:#fff;}
  .page{box-shadow:none;}
  .sample-flag{display:none;}
  .mini-nav{display:none;}
  .action-needed{display:none;}
}

/* ============================================================
   PROPOSAL MODE (docType: "proposal") — advanced six-section
   customer proposal experience, ported from the Dropbox review
   build (ocean-explorers-proposal-riverside-academy.html,
   Sprint 2/3, Customer Page Polish sprint, Sept 2026).

   Everything below is scoped under .proposal-shell (the class
   render.js adds to .page when docType is "proposal") so it can
   never collide with or alter the confirmed/pre-trip styles
   above — the two modes share this one stylesheet but never
   share a page, so scoping is purely a safety measure, not a
   design change from the original file. Every rule, class name,
   and pixel value below is carried over from the Dropbox build
   as-is; do not simplify or merge these with the pre-trip rules.
   ============================================================ */

.proposal-shell{
  --p-bg:#F4F7F9;
  --p-paper:#FFFFFF;
  --p-paper-raised:#FBF7EE;
  --p-ink:#152436;
  --p-slate:#4E5E6E;
  --p-slate-soft:#7A8896;
  --p-hairline:#DCE3E9;
  --p-hairline-strong:#C4D0D9;
  --p-shadow:0 1px 2px rgba(15,42,78,.06),0 12px 28px -16px rgba(15,42,78,.22);
  --p-focus:#0B84FF;
  background:var(--p-bg);
  color:var(--p-ink);
  font-family:'Public Sans','Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
  font-size:16px;
  line-height:1.6;
  max-width:none;
  margin:0;
  box-shadow:none;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .proposal-shell{
    --p-bg:#0A1826;
    --p-paper:#122036;
    --p-paper-raised:#16283F;
    --p-ink:#EAF1F7;
    --p-slate:#B7C6D4;
    --p-slate-soft:#8CA0B2;
    --p-hairline:#25384E;
    --p-hairline-strong:#33495F;
    --p-shadow:0 1px 2px rgba(0,0,0,.35),0 16px 32px -18px rgba(0,0,0,.55);
  }
}
:root[data-theme="dark"] .proposal-shell{
  --p-bg:#0A1826;
  --p-paper:#122036;
  --p-paper-raised:#16283F;
  --p-ink:#EAF1F7;
  --p-slate:#B7C6D4;
  --p-slate-soft:#8CA0B2;
  --p-hairline:#25384E;
  --p-hairline-strong:#33495F;
  --p-shadow:0 1px 2px rgba(0,0,0,.35),0 16px 32px -18px rgba(0,0,0,.55);
}

.proposal-shell *{box-sizing:border-box;}
.proposal-shell h1,.proposal-shell h2,.proposal-shell h3,.proposal-shell h4{margin:0;text-wrap:balance;font-weight:800;color:var(--p-ink);}
.proposal-shell p{margin:0;}
.proposal-shell ul{margin:0;padding:0;list-style:none;}
.proposal-shell button{font-family:inherit;}
.proposal-shell :focus-visible{outline:3px solid var(--p-focus);outline-offset:2px;}
.proposal-shell .mono{font-variant-numeric:tabular-nums;letter-spacing:.01em;}
.proposal-shell .container{max-width:840px;margin:0 auto;padding:0 20px;}
@media (min-width:720px){ .proposal-shell .container{padding:0 40px;} }

.proposal-shell .eyebrow{
  text-transform:uppercase;letter-spacing:.11em;font-size:11.5px;font-weight:700;
  color:var(--teal-text);
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .proposal-shell .eyebrow{color:#6FE0D6;} }
:root[data-theme="dark"] .proposal-shell .eyebrow{color:#6FE0D6;}
.proposal-shell .eyebrow.on-dark{color:#8FE3DB;}
.proposal-shell .rule{width:34px;height:3px;background:var(--teal);border-radius:2px;margin-bottom:16px;}

/* ---------------- TOP BAR ---------------- */
.proposal-shell #topbar{
  position:sticky;top:0;z-index:40;
  background:rgba(15,42,78,.97);
  backdrop-filter:blur(6px);
  color:#fff;
}
.proposal-shell .topbar-row{
  max-width:960px;margin:0 auto;padding:10px 16px;
  display:flex;align-items:center;gap:16px;
}
.proposal-shell .topbar-brand{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.proposal-shell .topbar-brand .mark{width:28px;height:28px;object-fit:contain;display:block;}
.proposal-shell .topbar-brand .word{font-weight:800;font-size:14.5px;letter-spacing:.02em;color:#fff;}
.proposal-shell .topbar-brand .word small{display:block;font-weight:500;font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:#9FC3E0;}
.proposal-shell #chapter-nav{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;flex:1;}
.proposal-shell #chapter-nav::-webkit-scrollbar{display:none;}
/* Mobile-only "2 / 6" counter (QA walkthrough, 2026-09-09): the chapter
   nav becomes a horizontal scroller on narrow screens showing only a
   couple of items, so it wasn't obvious there were six sections at all.
   Hidden by default (desktop shows every chapter-link already). */
.proposal-shell .chapter-counter{
  display:none;flex-shrink:0;font-size:10.5px;font-weight:800;letter-spacing:.04em;
  color:#9FE3DB;background:rgba(255,255,255,.1);border-radius:20px;padding:4px 10px;
  white-space:nowrap;
}
.proposal-shell .chapter-link{
  flex-shrink:0;
  appearance:none;border:none;background:transparent;color:#B7C9DE;
  font-size:12.5px;font-weight:600;letter-spacing:.01em;
  padding:8px 11px;border-radius:7px;cursor:pointer;white-space:nowrap;
}
.proposal-shell .chapter-link:hover{color:#fff;background:rgba(255,255,255,.06);}
.proposal-shell .chapter-link[aria-current="true"]{color:#fff;background:rgba(0,167,157,.28);}
.proposal-shell .chapter-num{font-size:10.5px;font-weight:800;letter-spacing:.04em;opacity:.75;margin-right:5px;}

/* ---------------- HERO (per-section) ---------------- */
.proposal-shell .hero{position:relative;color:#fff;overflow:hidden;padding:46px 0 34px;background:none;}
/* Cancel the confirmed-page .hero::after decorative circle -- it's not
   part of this design (which layers its own SVG/photo via .hero-art)
   and, being an unscoped pseudo-element, would otherwise paint on top
   of every proposal hero regardless of the .proposal-shell scoping. */
.proposal-shell .hero::after{content:none;}
.proposal-shell .hero-art{position:absolute;inset:0;z-index:0;}
.proposal-shell .hero-art svg{width:100%;height:100%;display:block;}
.proposal-shell .hero-art img.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.proposal-shell .hero-scrim{position:absolute;inset:0;background:linear-gradient(100deg, rgba(9,20,33,.86) 0%, rgba(15,42,78,.58) 48%, rgba(15,42,78,.74) 100%);}
.proposal-shell .hero-inner{position:relative;z-index:1;}
.proposal-shell .hero .container{display:flex;flex-direction:column;gap:14px;}
/* Reset explicitly: the confirmed-page .hero-eyebrow is a pill badge
   (background/border/padding/border-radius) — this design's version is
   a plain inline-block label, and since a same-specificity rule only
   overrides the properties it names, every one of those has to be
   named here or the pretrip pill styling bleeds through. */
.proposal-shell .hero-eyebrow{
  display:inline-block;background:none;border:none;padding:0;margin-bottom:0;border-radius:0;
  color:#9FE3DB;text-transform:uppercase;letter-spacing:.13em;font-size:11.5px;font-weight:700;
}
.proposal-shell .hero h1{font-size:clamp(28px,6vw,44px);line-height:1.08;color:#fff;letter-spacing:-.01em;}
.proposal-shell .hero .lede{font-size:clamp(15px,2.6vw,18px);color:#D9E7F2;max-width:56ch;font-weight:500;line-height:1.5;}
.proposal-shell .hero-chips{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:6px;}
.proposal-shell .hero-chip .k{font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;color:#8FB3D6;font-weight:700;}
.proposal-shell .hero-chip .v{font-size:14px;font-weight:700;color:#fff;}
.proposal-shell .hero-credit{position:absolute;right:16px;bottom:8px;z-index:2;font-size:10px;color:rgba(255,255,255,.6);letter-spacing:.02em;}

/* ---------------- SECTIONS / PAGES ---------------- */
.proposal-shell .page-section{display:none;}
.proposal-shell .page-section.is-active{display:block;animation:proposalFadein .25s ease both;}
@media (prefers-reduced-motion:reduce){ .proposal-shell .page-section.is-active{animation:none;} }
@keyframes proposalFadein{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}

/* 2026-09-28: was "padding:40px 0", which silently zeroed .container's side
   padding on every ".container.block" (content ran edge-to-edge on phones). */
.proposal-shell .block{padding-top:40px;padding-bottom:40px;}
.proposal-shell .block + .block{border-top:1px solid var(--p-hairline);}
.proposal-shell .block-head{margin-bottom:20px;max-width:64ch;}
.proposal-shell .block-head h2{font-size:clamp(22px,4vw,28px);}
.proposal-shell .block-head .dek{color:var(--p-slate);margin-top:8px;font-size:15.5px;font-weight:500;}

/* ---------------- ROADMAP STEPPER ---------------- */
.proposal-shell .roadmap{display:flex;flex-direction:column;gap:0;background:var(--p-paper);border:1px solid var(--p-hairline);border-left:3px solid var(--teal);border-radius:12px;padding:18px 16px;box-shadow:var(--p-shadow);}
/* Badge that names this widget as a status tracker, distinct from the
   six-chapter proposal nav in the topbar (QA walkthrough, 2026-09-09 —
   the two were being confused with each other). */
.proposal-shell .roadmap-badge{
  display:inline-block;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  color:var(--teal-text);background:rgba(0,167,157,.12);border-radius:20px;padding:3px 10px;
  margin-bottom:10px;width:fit-content;
}
.proposal-shell .roadmap-title{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--p-slate-soft);margin-bottom:14px;}
.proposal-shell .roadmap-steps{display:flex;gap:6px;}
.proposal-shell .rstep{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;gap:7px;position:relative;}
.proposal-shell .rstep-line{position:absolute;top:13px;left:-50%;width:100%;height:2px;background:var(--p-hairline-strong);z-index:0;}
.proposal-shell .rstep:first-child .rstep-line{display:none;}
.proposal-shell .rstep.is-done .rstep-line{background:var(--teal);}
.proposal-shell .rstep-dot{
  width:26px;height:26px;border-radius:50%;background:var(--p-paper);border:2px solid var(--p-hairline-strong);
  display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;
  color:var(--p-slate-soft);z-index:1;
}
.proposal-shell .rstep.is-done .rstep-dot{background:var(--teal);border-color:var(--teal);color:#fff;}
.proposal-shell .rstep.is-current .rstep-dot{background:var(--navy-deep);border-color:var(--navy-deep);color:#fff;box-shadow:0 0 0 4px rgba(0,167,157,.22);}
.proposal-shell .rstep-label{font-size:11px;font-weight:600;color:var(--p-slate-soft);line-height:1.25;max-width:12ch;}
.proposal-shell .rstep.is-current .rstep-label{color:var(--p-ink);}
.proposal-shell .rstep-here{font-size:9.5px;font-weight:800;letter-spacing:.07em;color:var(--teal-text);text-transform:uppercase;margin-top:1px;}
@media (max-width:600px){
  .proposal-shell .rstep-label{font-size:9px;max-width:8ch;}
  .proposal-shell .roadmap-steps{gap:2px;}
}

/* ---------------- NEXT-STEP / CTA MODULE ---------------- */
.proposal-shell .cta-module{
  background:linear-gradient(155deg,var(--navy-deep),var(--reef-blue) 78%);
  border-radius:14px;padding:26px 24px;color:#fff;
  display:flex;flex-direction:column;gap:14px;
}
.proposal-shell .cta-module h3{color:#fff;font-size:20px;}
.proposal-shell .cta-module p{color:#D9E7F2;font-size:14.5px;max-width:56ch;line-height:1.55;}
.proposal-shell .btn{
  appearance:none;border:none;cursor:pointer;font-weight:700;font-size:15px;
  border-radius:9px;padding:13px 22px;display:inline-flex;align-items:center;gap:8px;
  text-decoration:none;line-height:1;
}
.proposal-shell .btn-primary{background:var(--teal);color:#04211E;}
.proposal-shell .btn-primary:hover{background:#03BDB1;}
.proposal-shell .btn-primary:focus-visible{outline-color:#fff;}
.proposal-shell .btn-primary:disabled{opacity:.6;cursor:default;}
.proposal-shell .btn-ghost{background:transparent;color:#D9E7F2;border:1px solid rgba(255,255,255,.35);}
.proposal-shell .btn-ghost:hover{background:rgba(255,255,255,.08);}
.proposal-shell .cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:16px;}
.proposal-shell .cta-secondary-link{
  appearance:none;border:none;background:none;cursor:pointer;font-family:inherit;
  color:#BFE0FF;font-size:13.5px;font-weight:600;text-decoration:underline;text-underline-offset:3px;padding:0;
}
.proposal-shell .cta-fine{color:#8FAFCB;font-size:12px;max-width:60ch;}
.proposal-shell .cta-textarea-label{display:block;color:#D9E7F2;font-size:13.5px;font-weight:600;margin-bottom:8px;}
.proposal-shell .cta-textarea{
  width:100%;border-radius:9px;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.08);
  color:#fff;padding:10px 12px;font:inherit;font-size:14px;resize:vertical;
}
.proposal-shell .cta-textarea::placeholder{color:#B7CBE0;}
.proposal-shell .cta-textarea:focus-visible{outline:2px solid #fff;}
.proposal-shell .cta-confirm-icon{
  display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;
  background:var(--teal);color:#04211E;font-size:13px;font-weight:800;margin-right:7px;
}

/* ---------------- STAT / AT-A-GLANCE STRIP ---------------- */
.proposal-shell .glance-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--p-hairline);border:1px solid var(--p-hairline);border-radius:12px;overflow:hidden;}
.proposal-shell .glance-cell{background:var(--p-paper);padding:16px 14px;display:flex;flex-direction:column;gap:4px;}
.proposal-shell .glance-cell .k{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--p-slate-soft);}
.proposal-shell .glance-cell .v{font-size:16.5px;font-weight:700;color:var(--p-ink);}
@media (min-width:640px){ .proposal-shell .glance-grid{grid-template-columns:repeat(4,1fr);} }

/* ---------------- WELCOME / PROSE ---------------- */
.proposal-shell .prose p{margin-bottom:14px;color:var(--p-ink);font-size:15.5px;line-height:1.65;max-width:66ch;}
.proposal-shell .prose p:last-child{margin-bottom:0;}
.proposal-shell .signoff{font-style:italic;color:var(--p-slate);margin-top:16px;font-size:14.5px;}

/* ---------------- CONTACT CARD ---------------- */
.proposal-shell .contact-card{
  display:flex;gap:16px;align-items:center;background:var(--p-paper);border:1px solid var(--p-hairline);
  border-radius:12px;padding:18px;box-shadow:var(--p-shadow);
}
.proposal-shell .contact-avatar{
  width:58px;height:58px;border-radius:50%;flex-shrink:0;overflow:hidden;
  background:linear-gradient(160deg,var(--teal),var(--reef-blue));
  display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:19px;
}
.proposal-shell .contact-avatar img{width:100%;height:100%;object-fit:cover;}
.proposal-shell .contact-body{flex:1;min-width:0;}
.proposal-shell .contact-name{font-size:16px;font-weight:700;color:var(--p-ink);}
.proposal-shell .contact-role{font-size:12.5px;color:var(--teal-text);font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-top:1px;}
.proposal-shell .contact-blurb{font-size:14px;color:var(--p-slate);margin-top:6px;line-height:1.5;}
.proposal-shell .contact-links{margin-top:8px;display:flex;gap:14px;flex-wrap:wrap;font-size:13px;font-weight:600;}

/* ---------------- PILLAR / WILL CARDS ---------------- */
.proposal-shell .card-grid{display:grid;grid-template-columns:1fr;gap:14px;}
@media (min-width:640px){ .proposal-shell .card-grid.cols-2{grid-template-columns:1fr 1fr;} }
.proposal-shell .pillar-card{
  background:var(--p-paper);border:1px solid var(--p-hairline);border-left:4px solid var(--teal);
  border-radius:10px;padding:18px 18px;box-shadow:var(--p-shadow);
}
.proposal-shell .pillar-card h4{font-size:15.5px;margin-bottom:6px;}
.proposal-shell .pillar-card p{font-size:14px;color:var(--p-slate);line-height:1.55;}

/* ---------------- TEAM GRID ---------------- */
.proposal-shell .team-note{
  font-size:13px;color:var(--p-slate-soft);background:var(--p-paper-raised);border:1px dashed var(--p-hairline-strong);
  border-radius:10px;padding:12px 14px;margin-bottom:16px;
}
.proposal-shell .team-grid{display:grid;grid-template-columns:1fr;gap:14px;}
@media (min-width:640px){ .proposal-shell .team-grid{grid-template-columns:repeat(3,1fr);} }
.proposal-shell .team-card{background:var(--p-paper);border:1px solid var(--p-hairline);border-radius:10px;padding:16px;text-align:center;box-shadow:var(--p-shadow);}
.proposal-shell .team-avatar{
  /* Per-person initials instead of one repeated generic glyph (QA
     walkthrough, 2026-09-09) -- same teal gradient treatment as the
     REEF-contact avatar so team cards read as personal, not decorative. */
  width:52px;height:52px;border-radius:50%;margin:0 auto 10px;
  background:linear-gradient(160deg,var(--teal),var(--reef-blue));
  display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;font-weight:800;
}
.proposal-shell .team-card .name{font-weight:700;font-size:14px;color:var(--p-ink);}
.proposal-shell .team-card .role{font-size:11.5px;color:var(--teal-text);font-weight:700;text-transform:uppercase;letter-spacing:.03em;margin:2px 0 6px;}
.proposal-shell .team-card .bio{font-size:12.5px;color:var(--p-slate);line-height:1.5;}

/* ---------------- DAY CARDS (proposal-mode variant) ---------------- */
.proposal-shell .day-card{background:var(--p-paper);border:1px solid var(--p-hairline);border-radius:14px;overflow:hidden;box-shadow:var(--p-shadow);margin-bottom:20px;}
.proposal-shell .day-card:last-child{margin-bottom:0;}
.proposal-shell .day-card-head{
  display:flex;gap:14px;align-items:center;padding:18px 20px;color:#fff;
  background:linear-gradient(120deg,var(--navy-deep),var(--navy) 90%);
}
.proposal-shell .day-swatch{width:44px;height:44px;border-radius:9px;flex-shrink:0;}
.proposal-shell .day-card-head .of{font-size:11px;font-weight:800;letter-spacing:.08em;color:#9FE3DB;text-transform:uppercase;}
.proposal-shell .day-card-head h3{color:#fff;font-size:18px;margin-top:2px;}
.proposal-shell .day-card-head .theme{color:#C9DCEE;font-size:13px;margin-top:3px;max-width:52ch;}
.proposal-shell .day-body{padding:6px 20px 18px;}
.proposal-shell .day-body .time-block{display:flex;gap:14px;padding:14px 0;border-top:1px solid var(--p-hairline);border-bottom:none;}
.proposal-shell .day-body .time-block:first-child{border-top:none;}
.proposal-shell .day-body .time-block .time{font-size:12.5px;font-weight:700;color:var(--teal-text);flex-shrink:0;width:64px;padding-top:2px;}
.proposal-shell .day-body .time-block .tag{
  display:inline-block;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  color:var(--p-slate-soft);background:var(--p-paper-raised);border:1px solid var(--p-hairline);border-radius:5px;
  padding:2px 6px;margin-bottom:4px;
}
.proposal-shell .day-body .time-block h4{font-size:14.5px;margin-bottom:3px;}
.proposal-shell .day-body .time-block .desc{font-size:13.5px;color:var(--p-slate);line-height:1.55;}
.proposal-shell .day-body .outcomes-box{
  margin:8px 0 0;background:var(--p-paper-raised);border:1px solid var(--p-hairline);border-radius:10px;padding:14px 16px;
}
.proposal-shell .day-body .outcomes-box .eyebrow{display:block;margin-bottom:8px;}
.proposal-shell .day-body .outcomes-box li{font-size:13.5px;color:var(--p-ink);padding-left:18px;position:relative;margin-bottom:6px;line-height:1.5;}
.proposal-shell .day-body .outcomes-box li:last-child{margin-bottom:0;}
.proposal-shell .day-body .outcomes-box li::before{content:"—";position:absolute;left:0;color:var(--teal-text);font-weight:700;}
.proposal-shell .outcomes-note{font-size:11.5px;color:var(--p-slate-soft);margin-top:9px;font-style:italic;}

/* ---------------- INCLUDED GROUPS ---------------- */
.proposal-shell .included-grid{display:grid;grid-template-columns:1fr;gap:16px;}
@media (min-width:640px){ .proposal-shell .included-grid{grid-template-columns:1fr 1fr;} }
.proposal-shell .included-card{background:var(--p-paper);border:1px solid var(--p-hairline);border-radius:12px;padding:18px;box-shadow:var(--p-shadow);}
.proposal-shell .included-card h4{font-size:14.5px;margin-bottom:12px;display:flex;align-items:center;gap:8px;}
.proposal-shell .included-card h4 .dot{width:9px;height:9px;border-radius:50%;background:var(--teal);flex-shrink:0;}
.proposal-shell .included-card li{font-size:14px;color:var(--p-ink);padding-left:20px;position:relative;margin-bottom:9px;line-height:1.5;}
.proposal-shell .included-card li:last-child{margin-bottom:0;}
.proposal-shell .included-card li::before{content:"✓";position:absolute;left:0;color:var(--teal-text);font-weight:700;}
.proposal-shell .not-included h4 .dot{background:var(--p-slate-soft);}
.proposal-shell .not-included li::before{content:"–";color:var(--p-slate-soft);}

/* ---------------- PRICING (two-tile pattern, not an invoice) ---------------- */
.proposal-shell .price-tiles{display:grid;grid-template-columns:1fr;gap:14px;}
@media (min-width:560px){ .proposal-shell .price-tiles{grid-template-columns:1fr 1fr;} }
.proposal-shell .price-tile{background:var(--p-paper);border:1px solid var(--p-hairline);border-radius:14px;padding:24px 20px;box-shadow:var(--p-shadow);text-align:center;}
.proposal-shell .price-tile .tile-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--p-slate-soft);margin-bottom:10px;}
.proposal-shell .price-tile .tile-num{font-size:36px;font-weight:800;color:var(--navy-deep);line-height:1;}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .proposal-shell .price-tile .tile-num{color:#7FD6CE;} }
:root[data-theme="dark"] .proposal-shell .price-tile .tile-num{color:#7FD6CE;}
.proposal-shell .price-tile .tile-unit{font-size:13.5px;color:var(--p-slate);margin-top:6px;}
.proposal-shell .price-ratio-note{font-size:14px;color:var(--p-ink);line-height:1.6;max-width:66ch;margin-top:16px;}
.proposal-shell .price-total-note{font-size:13px;color:var(--p-slate-soft);line-height:1.6;max-width:66ch;margin-top:14px;padding-top:14px;border-top:1px dashed var(--p-hairline-strong);}
.proposal-shell .price-total-note strong{color:var(--p-slate);}
.proposal-shell .assumptions-list li{font-size:13.5px;color:var(--p-slate);padding-left:16px;position:relative;margin-bottom:8px;line-height:1.5;}
.proposal-shell .assumptions-list li::before{content:"•";position:absolute;left:0;color:var(--p-slate-soft);}

/* ---------------- BOTTOM NAV ---------------- */
.proposal-shell .section-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:22px 0 44px;}
.proposal-shell .nav-prev,.proposal-shell .nav-next{
  display:flex;flex-direction:column;gap:2px;text-decoration:none;cursor:pointer;border:none;background:none;
  appearance:none;font-family:inherit;
}
.proposal-shell .nav-prev{
  /* QA walkthrough (2026-09-09): "previous" read as plain text next to a
     button-styled "next" -- gave it the same border/padding/radius
     treatment (lighter weight than .nav-next, which stays the primary
     action) so both are recognizable as clickable buttons. */
  color:var(--p-slate-soft);align-items:flex-start;
  border:1px solid var(--p-hairline-strong);border-radius:11px;padding:12px 18px;
}
.proposal-shell .nav-prev:hover{background:var(--p-paper);border-color:var(--p-slate-soft);}
.proposal-shell .nav-prev .lbl,.proposal-shell .nav-next .lbl{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;}
.proposal-shell .nav-prev .name{font-size:14px;font-weight:600;color:var(--p-slate);}
.proposal-shell .nav-prev:hover .name{color:var(--p-ink);}
.proposal-shell .nav-next{
  align-items:flex-end;text-align:right;background:var(--navy-deep);color:#fff;border-radius:11px;
  padding:12px 20px;box-shadow:var(--p-shadow);
}
.proposal-shell .nav-next .lbl{color:#8FE3DB;}
.proposal-shell .nav-next .name{font-size:15.5px;font-weight:700;display:flex;align-items:center;gap:8px;}
.proposal-shell .nav-next:hover{background:var(--reef-blue);}
.proposal-shell .nav-spacer{flex:1;}

/* ---------------- FOOTER ---------------- */
.proposal-shell #site-footer{background:var(--navy-deep);color:#B7CBE0;padding:28px 0;font-size:12.5px;text-align:center;}
.proposal-shell #site-footer a{color:#9FE3DB;}
.proposal-shell #site-footer .tag{color:#fff;font-weight:700;margin-top:4px;display:block;}

/* ---------------- MISC ---------------- */
.proposal-shell .skiplink{position:absolute;left:-999px;top:0;background:#fff;color:#000;padding:8px;z-index:100;}
.proposal-shell .skiplink:focus{left:8px;top:8px;}

@media (max-width:600px){
  .proposal-shell .hero{padding:32px 0 26px;}
  .proposal-shell #topbar .topbar-row{padding:8px 12px;}
  .proposal-shell .chapter-counter{display:block;}
  /* QA walkthrough (2026-09-09): the long "Focus" value in particular
     felt cramped in a 2-column grid on phone-width screens. */
  .proposal-shell .glance-grid{grid-template-columns:1fr;}
  .proposal-shell .section-nav{flex-direction:column;align-items:stretch;}
  .proposal-shell .nav-next{text-align:left;}
}

/* ================================================================
   2026-09-28 — System-wide proposal copy review + ROTATION SCHEDULE
   component (concurrent cohorts). Reusable across bookings; driven by
   data.proposal.rotation. See render.js "ROTATION SCHEDULE".
   ================================================================ */

/* Glance cells that need a full row (Format, Focus) */
.proposal-shell .glance-cell.is-wide{grid-column:1 / -1;}

/* Three-tile pricing row: Estimated Total, Per Student, Chaperones */
@media (min-width:720px){ .proposal-shell .price-tiles.cols-3{grid-template-columns:1.25fr 1fr 1fr;} }
.proposal-shell .price-tile.is-primary{background:linear-gradient(150deg,var(--navy-deep),var(--navy));border-color:transparent;}
.proposal-shell .price-tile.is-primary .tile-label{color:#8FE3DB;}
.proposal-shell .price-tile.is-primary .tile-num{color:#fff;}
.proposal-shell .price-tile.is-primary .tile-unit{color:#C9DCEE;}
.proposal-shell .price-tile .tile-num{font-size:clamp(28px,6vw,36px);}

/* Optional add-ons card */
.proposal-shell .optional-card h4 .dot{background:var(--yellow);}
.proposal-shell .optional-card li::before{content:"+";color:var(--p-slate-soft);}

/* Approval summary (inside the dark CTA card, and on-light in Next Steps) */
.proposal-shell .confirm-summary{margin:14px 0 16px;display:grid;gap:0;border-radius:10px;overflow:hidden;}
.proposal-shell .confirm-summary .cs-row{display:grid;grid-template-columns:minmax(110px,34%) 1fr;gap:12px;padding:9px 12px;}
.proposal-shell .confirm-summary dt{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;}
.proposal-shell .confirm-summary dd{margin:0;font-size:14px;font-weight:600;line-height:1.45;}
.proposal-shell .cta-module .confirm-summary{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);}
.proposal-shell .cta-module .confirm-summary .cs-row + .cs-row{border-top:1px solid rgba(255,255,255,.1);}
.proposal-shell .cta-module .confirm-summary dt{color:#8FE3DB;}
.proposal-shell .cta-module .confirm-summary dd{color:#fff;}
.proposal-shell .confirm-summary.on-light{background:var(--p-paper);border:1px solid var(--p-hairline);box-shadow:var(--p-shadow);margin:0;}
.proposal-shell .confirm-summary.on-light .cs-row + .cs-row{border-top:1px solid var(--p-hairline);}
.proposal-shell .confirm-summary.on-light dt{color:var(--p-slate-soft);}
.proposal-shell .confirm-summary.on-light dd{color:var(--p-ink);}
@media (max-width:520px){ .proposal-shell .confirm-summary .cs-row{grid-template-columns:1fr;gap:2px;} }

/* Next steps numbered list */
.proposal-shell .next-steps-ol{counter-reset:ns;margin:0;padding:0;list-style:none;}
.proposal-shell .next-steps-ol li{counter-increment:ns;position:relative;padding:0 0 12px 38px;font-size:14.5px;line-height:1.55;color:var(--p-ink);}
.proposal-shell .next-steps-ol li::before{content:counter(ns);position:absolute;left:0;top:0;width:26px;height:26px;border-radius:50%;background:var(--teal);color:#04211E;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center;}

/* Pending schedule state */
.proposal-shell .pending-panel{background:var(--p-paper-raised);border:1px dashed var(--p-hairline-strong);border-radius:12px;padding:18px 20px;}
.proposal-shell .pending-panel .eyebrow{display:block;margin-bottom:6px;}
.proposal-shell .pending-panel p{font-size:14.5px;color:var(--p-ink);max-width:62ch;}

/* ---------------- ROTATION SCHEDULE ---------------- */
.proposal-shell{
  /* Activity palette: soft tint + strong edge + dark ink (AA on tint). */
  --rot-0-bg:#D5F1EE; --rot-0-edge:#00A79D; --rot-0-ink:#0B4F4A;
  --rot-1-bg:#DCE7F6; --rot-1-edge:#3A6EA5; --rot-1-ink:#16335F;
  --rot-2-bg:#FBE3CF; --rot-2-edge:#D9822B; --rot-2-ink:#6E3809;
  --rot-3-bg:#FFF4C2; --rot-3-edge:#C9A600; --rot-3-ink:#4F4000;
  --rot-4-bg:#E9E1F5; --rot-4-edge:#7B5EA7; --rot-4-ink:#3F2A66;
  --rot-5-bg:#DDEFD9; --rot-5-edge:#4F9A45; --rot-5-ink:#25531F;
  
  --rot-label:108px; --rot-dep:74px; --rot-time:58px; --rot-slot-h:22px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .proposal-shell{
    --rot-0-bg:rgba(0,167,157,.22); --rot-0-edge:#2FC4B8; --rot-0-ink:#C6F3EF;
    --rot-1-bg:rgba(58,110,165,.30); --rot-1-edge:#6F9FD6; --rot-1-ink:#D8E6F7;
    --rot-2-bg:rgba(217,130,43,.24); --rot-2-edge:#E9A15A; --rot-2-ink:#FBE0C6;
    --rot-3-bg:rgba(201,166,0,.22);  --rot-3-edge:#E3C43A; --rot-3-ink:#FFF1B8;
    --rot-4-bg:rgba(123,94,167,.28); --rot-4-edge:#A88BD4; --rot-4-ink:#EBE1FA;
    --rot-5-bg:rgba(79,154,69,.26);  --rot-5-edge:#7CC271; --rot-5-ink:#DDF2D9;
  }
}
:root[data-theme="dark"] .proposal-shell{
  --rot-0-bg:rgba(0,167,157,.22); --rot-0-edge:#2FC4B8; --rot-0-ink:#C6F3EF;
  --rot-1-bg:rgba(58,110,165,.30); --rot-1-edge:#6F9FD6; --rot-1-ink:#D8E6F7;
  --rot-2-bg:rgba(217,130,43,.24); --rot-2-edge:#E9A15A; --rot-2-ink:#FBE0C6;
  --rot-3-bg:rgba(201,166,0,.22);  --rot-3-edge:#E3C43A; --rot-3-ink:#FFF1B8;
  --rot-4-bg:rgba(123,94,167,.28); --rot-4-edge:#A88BD4; --rot-4-ink:#EBE1FA;
  --rot-5-bg:rgba(79,154,69,.26);  --rot-5-edge:#7CC271; --rot-5-ink:#DDF2D9;
}
.proposal-shell .rot-c0{--c-bg:var(--rot-0-bg);--c-edge:var(--rot-0-edge);--c-ink:var(--rot-0-ink);}
.proposal-shell .rot-c1{--c-bg:var(--rot-1-bg);--c-edge:var(--rot-1-edge);--c-ink:var(--rot-1-ink);}
.proposal-shell .rot-c2{--c-bg:var(--rot-2-bg);--c-edge:var(--rot-2-edge);--c-ink:var(--rot-2-ink);}
.proposal-shell .rot-c3{--c-bg:var(--rot-3-bg);--c-edge:var(--rot-3-edge);--c-ink:var(--rot-3-ink);}
.proposal-shell .rot-c4{--c-bg:var(--rot-4-bg);--c-edge:var(--rot-4-edge);--c-ink:var(--rot-4-ink);}
.proposal-shell .rot-c5{--c-bg:var(--rot-5-bg);--c-edge:var(--rot-5-edge);--c-ink:var(--rot-5-ink);}

.proposal-shell .rot-intro{font-size:15px;color:var(--p-ink);line-height:1.6;max-width:68ch;margin-bottom:18px;}
.proposal-shell .rot-frame{background:var(--p-paper);border:1px solid var(--p-hairline);border-radius:14px;box-shadow:var(--p-shadow);padding:12px;}
.proposal-shell .rot-grid{gap:4px;}
.proposal-shell .rot-desktop{display:grid;}
.proposal-shell .rot-mobile{display:none;}
.proposal-shell .rot-corner{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--p-slate-soft);align-self:end;padding:0 4px 4px;}
.proposal-shell .rot-tick{font-size:11px;font-weight:700;color:var(--p-slate);border-left:1px solid var(--p-hairline-strong);padding:0 0 4px 5px;white-space:nowrap;overflow:hidden;font-variant-numeric:tabular-nums;}
.proposal-shell .rot-tick-dep{border-left:none;text-align:center;padding-left:0;}
.proposal-shell .rot-rowlabel{display:flex;flex-direction:column;justify-content:center;padding:8px 6px;background:var(--p-paper-raised);border-radius:8px;}
.proposal-shell .rl-name{font-weight:800;font-size:14px;color:var(--p-ink);line-height:1.2;}
.proposal-shell .rl-size{font-size:11px;color:var(--p-slate);line-height:1.3;margin-top:2px;}
.proposal-shell .rot-cell{
  min-width:0;min-height:70px;border-radius:8px;padding:7px 8px;display:flex;flex-direction:column;justify-content:center;gap:2px;
  background:var(--c-bg);color:var(--c-ink);border-left:4px solid var(--c-edge);overflow:hidden;
}
.proposal-shell .rc-name{font-weight:800;font-size:12.5px;line-height:1.2;}
.proposal-shell .rc-time{font-size:11px;font-weight:600;line-height:1.25;opacity:.92;}
.proposal-shell .rc-loc{font-size:10.5px;line-height:1.25;opacity:.85;}
/* 2026-11-07: no hatched / idle cells. A long gap shows a "settle in" block that borrows the
   colour of the meal / lodging block after it (rot-cN), or this neutral fill when there is none. */
.proposal-shell .rot-neutral{--c-bg:#EEF2F5;--c-edge:#9AA8B5;--c-ink:#33414E;}
.proposal-shell .rot-settle .rc-name{font-weight:600;}
.proposal-shell .rot-dep{
  border-radius:8px;display:flex;align-items:center;justify-content:center;text-align:center;
  background:var(--navy-deep);color:#fff;padding:6px;
}
.proposal-shell .rot-dep .rc-name{font-size:12px;}
.proposal-shell .rot-legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin:14px 2px 0;}
.proposal-shell .rot-legend li{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--p-ink);}
.proposal-shell .rot-swatch{width:14px;height:14px;border-radius:4px;background:var(--c-bg);border:2px solid var(--c-edge);flex-shrink:0;}
.proposal-shell .lg-name{font-weight:700;}
.proposal-shell .lg-loc{color:var(--p-slate);}
.proposal-shell .lg-loc::before{content:"· ";}
.proposal-shell .rot-note{font-size:13.5px;color:var(--p-slate);margin-top:12px;max-width:70ch;}
.proposal-shell .rot-note-strong{color:var(--p-ink);font-weight:600;}
.proposal-shell .rot-notes{margin-top:8px;}
.proposal-shell .rot-notes li{font-size:13.5px;color:var(--p-slate);padding-left:16px;position:relative;margin-bottom:6px;line-height:1.5;}
.proposal-shell .rot-notes li::before{content:"•";position:absolute;left:0;color:var(--p-slate-soft);}
.proposal-shell .rot-list{margin-top:14px;border-top:1px solid var(--p-hairline);padding-top:10px;}
.proposal-shell .rot-list summary{cursor:pointer;font-size:13.5px;font-weight:700;color:var(--teal-text);}
.proposal-shell .rot-list-grid{display:grid;grid-template-columns:1fr;gap:14px;margin-top:12px;}
@media (min-width:640px){ .proposal-shell .rot-list-grid{grid-template-columns:1fr 1fr;} }
.proposal-shell .rot-list-col h4{font-size:14px;margin-bottom:6px;}
/* Multi-day rotation: one grid per day (2026-11-04). */
.proposal-shell .rot-day{margin-top:22px;}
.proposal-shell .rot-day:first-child{margin-top:0;}
.proposal-shell .rot-day-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin-bottom:8px;}
.proposal-shell .rot-day-title{font-size:18px;margin:0;}
.proposal-shell .rot-day-sub{font-size:13px;color:var(--p-slate);}
.proposal-shell .rot-list-day{font-size:15px;margin:14px 0 4px;}
.proposal-shell .rot-list-col li{font-size:13.5px;color:var(--p-ink);margin-bottom:4px;line-height:1.45;}
.proposal-shell .rot-list-col li .mono{display:inline-block;min-width:9.5em;color:var(--teal-text);font-weight:700;}

/* Phone: transpose -- time runs down, cohorts run across. */
@media (max-width:899px){
  .proposal-shell .rot-desktop{display:none;}
  .proposal-shell .rot-mobile{display:grid;}
  .proposal-shell .rot-frame{padding:8px;}
  .proposal-shell .rot-grid{gap:3px;}
  .proposal-shell .rot-colhead{display:flex;flex-direction:column-reverse;align-items:center;justify-content:flex-end;padding:6px 2px;background:var(--p-paper-raised);border-radius:8px;}
  .proposal-shell .rot-colhead .rl-name{font-size:17px;}
  .proposal-shell .rl-kicker{font-size:9.5px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--p-slate-soft);}
  .proposal-shell .rot-vtick{font-size:10.5px;font-weight:700;color:var(--p-slate);border-top:1px solid var(--p-hairline-strong);padding:2px 4px 0 0;line-height:1.2;}
  .proposal-shell .rot-cell{min-height:0;padding:4px 6px;border-left:none;border-top:4px solid var(--c-edge);justify-content:flex-start;}
  .proposal-shell .rc-name{font-size:12px;}
  .proposal-shell .rc-time{font-size:10px;}
  .proposal-shell .rot-dep-row{padding:8px;}
}

/* Activity detail cards below the matrix */
.proposal-shell .station-grid{display:grid;grid-template-columns:1fr;gap:14px;}
@media (min-width:640px){ .proposal-shell .station-grid{grid-template-columns:1fr 1fr;} }
.proposal-shell .station-card{background:var(--p-paper);border:1px solid var(--p-hairline);border-radius:12px;padding:16px 18px;box-shadow:var(--p-shadow);border-top:4px solid var(--p-hairline-strong);}
.proposal-shell .station-card.rot-edge-c0{border-top-color:var(--rot-0-edge);}
.proposal-shell .station-card.rot-edge-c1{border-top-color:var(--rot-1-edge);}
.proposal-shell .station-card.rot-edge-c2{border-top-color:var(--rot-2-edge);}
.proposal-shell .station-card.rot-edge-c3{border-top-color:var(--rot-3-edge);}
.proposal-shell .station-card.rot-edge-c4{border-top-color:var(--rot-4-edge);}
.proposal-shell .station-card.rot-edge-c5{border-top-color:var(--rot-5-edge);}
.proposal-shell .station-card .tag{
  display:inline-block;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  color:var(--p-slate-soft);background:var(--p-paper-raised);border:1px solid var(--p-hairline);border-radius:5px;padding:2px 6px;margin-bottom:6px;
}
.proposal-shell .station-card h4{font-size:15px;margin-bottom:6px;}
.proposal-shell .sc-when{font-size:12.5px;font-weight:700;color:var(--teal-text);line-height:1.5;margin-bottom:2px;}
.proposal-shell .sc-loc{font-size:12px;color:var(--p-slate-soft);margin-bottom:8px;}
.proposal-shell .station-card .desc{font-size:13.5px;color:var(--p-slate);line-height:1.55;}
.proposal-shell .outcomes-box.standalone{margin-top:16px;background:var(--p-paper-raised);border:1px solid var(--p-hairline);border-radius:10px;padding:14px 16px;}
.proposal-shell .outcomes-box.standalone .eyebrow{display:block;margin-bottom:8px;}
.proposal-shell .outcomes-box.standalone li{font-size:13.5px;color:var(--p-ink);padding-left:18px;position:relative;margin-bottom:6px;line-height:1.5;}
.proposal-shell .outcomes-box.standalone li::before{content:"—";position:absolute;left:0;color:var(--teal-text);font-weight:700;}
@media print{
  .proposal-shell .rot-desktop{display:grid !important;}
  .proposal-shell .rot-mobile{display:none !important;}
}

/* Wide screens: let the matrix break out of the 840px reading column so
   30-minute cells stay legible. */
@media (min-width:1100px){
  .proposal-shell .rot-frame{width:min(1120px, calc(100vw - 64px));position:relative;left:50%;transform:translateX(-50%);}
}
.proposal-shell .rot-cell.is-narrow{padding:5px 5px;}
.proposal-shell .rot-cell.is-narrow .rc-name{font-size:11px;}
.proposal-shell .rot-cell.is-narrow .rc-time{font-size:10px;}
.proposal-shell .outcomes-box.standalone{margin:16px 0 0;max-width:none;}
.proposal-shell .outcomes-box.standalone li::before{content:"—";background:none;border:none;width:auto;height:auto;top:0;}
.proposal-shell .cta-module .cta-row{margin-top:18px;}
.proposal-shell .cta-textarea-label{margin-top:14px;}
/* 2026-09-28: the pre-trip dot bullet (6px teal circle) was bleeding into the
   proposal's "—" outcome bullets, drawing a dot-plus-underline glyph. */
.proposal-shell .outcomes-box li::before{width:auto;height:auto;background:none;border-radius:0;top:0;}

/* ============================================================
   APPROVE & SHARE + AUDIENCE VIEWS (2026-09-28)
   Share cards / needs picker (proposal step 6 and the pre-trip page)
   and the four printable audience views (docType "audience",
   rendered as .proposal-shell.audience-shell).
   ============================================================ */
.proposal-shell.embed{background:transparent;font-size:inherit;}
.proposal-shell.embed .rot-frame{left:auto;transform:none;width:auto;}
.proposal-shell .needs-picker{border:1px solid var(--p-hairline);border-radius:12px;background:var(--p-paper);padding:18px 18px 12px;margin:0;box-shadow:var(--p-shadow);}
.proposal-shell .needs-picker legend{font-weight:800;font-size:clamp(18px,3.4vw,22px);padding:0 6px;color:var(--p-ink);line-height:1.3;}
.proposal-shell .needs-dek{color:var(--p-slate);font-size:14px;margin:2px 0 12px !important;}
.proposal-shell .need-chip{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--p-hairline);border-radius:9px;margin-bottom:8px;cursor:pointer;font-size:14.5px;font-weight:600;color:var(--p-ink);background:var(--p-bg);}
.proposal-shell .need-chip input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--teal);flex-shrink:0;}
.proposal-shell .need-chip:has(input:checked){border-color:var(--teal);background:rgba(0,167,157,.08);}
.proposal-shell .share-hint{color:var(--p-slate);font-size:14px;font-style:italic;margin-bottom:12px !important;}
.proposal-shell .share-grid{display:grid;grid-template-columns:1fr;gap:14px;}
@media (min-width:640px){ .proposal-shell .share-grid{grid-template-columns:1fr 1fr;} }
.proposal-shell .share-card{background:var(--p-paper);border:1px solid var(--p-hairline);border-top:4px solid var(--teal);border-radius:12px;padding:16px 18px;box-shadow:var(--p-shadow);display:flex;flex-direction:column;gap:6px;}
.proposal-shell .share-card[hidden]{display:none;}
.proposal-shell .share-card h4{font-size:17px;}
.proposal-shell .share-card-top{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.proposal-shell .share-status{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;border-radius:20px;padding:3px 9px;background:#FFF4C2;color:#4F4000;}
.proposal-shell .share-status.is-confirmed{background:rgba(0,167,157,.14);color:var(--teal-text);}
.proposal-shell .share-flag{font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--p-slate);border:1px solid var(--p-hairline-strong);border-radius:20px;padding:2px 8px;}
.proposal-shell .share-aud{font-size:13px;font-weight:700;color:var(--teal-text);}
.proposal-shell .share-desc{font-size:14px;color:var(--p-slate);line-height:1.5;}
.proposal-shell .share-includes li{font-size:13px;color:var(--p-ink);padding-left:14px;position:relative;line-height:1.45;margin-bottom:2px;}
.proposal-shell .share-includes li::before{content:"·";position:absolute;left:2px;color:var(--p-slate-soft);font-weight:800;}
.proposal-shell .share-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:10px;}
.proposal-shell .share-btn{appearance:none;cursor:pointer;font:inherit;font-size:13px;font-weight:700;border-radius:8px;padding:8px 12px;border:1px solid var(--p-hairline-strong);background:var(--p-paper);color:var(--p-ink);text-decoration:none;line-height:1.2;display:inline-flex;align-items:center;}
.proposal-shell .share-btn:hover{border-color:var(--teal);}
.proposal-shell .share-btn.is-primary{background:var(--teal);border-color:var(--teal);color:#04211E;}
.proposal-shell .share-btn.on-dark{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.3);color:#fff;}
.proposal-shell .share-foot{margin-top:10px;}
.proposal-shell .cta-secondary-link.on-light{color:var(--teal-text);}
.proposal-shell .share-self{margin-top:16px;font-size:14px;color:var(--p-ink);background:var(--p-paper-raised);border:1px solid var(--p-hairline);border-radius:10px;padding:12px 14px;line-height:1.5;}
.proposal-shell .share-preview-note{color:#b3261e;font-weight:600;}
.proposal-shell .share-privacy{margin-top:10px !important;font-size:12.5px;color:var(--p-slate);max-width:70ch;}
.proposal-shell .roles-panel{margin-top:16px;border:1px solid var(--p-hairline);border-radius:10px;padding:12px 14px;background:var(--p-paper);}
.proposal-shell .roles-panel .eyebrow{display:block;margin-bottom:8px;}
.proposal-shell .roles-panel li{display:flex;flex-wrap:wrap;gap:2px 10px;padding:6px 0;border-top:1px solid var(--p-hairline);font-size:14px;}
.proposal-shell .roles-panel li:first-child{border-top:none;}
.proposal-shell .role-who{font-weight:700;color:var(--p-ink);}
.proposal-shell .role-what{color:var(--p-slate);font-size:13px;}

/* ---- audience view shell ---- */
.audience-shell .a-top-actions{margin-left:auto;display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;}
.audience-shell .a-status-ribbon{text-align:center;font-size:12.5px;font-weight:700;letter-spacing:.02em;padding:7px 16px;}
.audience-shell .a-status-ribbon.is-draft{background:#FFF4C2;color:#4F4000;}
.audience-shell .a-status-ribbon.is-confirmed{background:#D5F1EE;color:#0B4F4A;}
.audience-shell .a-hero{padding:34px 0 28px;}
.audience-shell .a-hero h1{font-size:clamp(26px,5.4vw,40px);}
.audience-shell .a-main{padding-bottom:30px;}
.audience-shell .a-sec{padding-top:30px;padding-bottom:30px;}
.audience-shell .a-lead{font-size:16.5px;line-height:1.6;max-width:68ch;margin-bottom:16px !important;}
.audience-shell .a-h3{font-size:15px;margin:14px 0 6px;}
.audience-shell .a-fine{font-size:13px;color:var(--p-slate);margin-top:10px !important;max-width:70ch;}
.audience-shell .a-list li{font-size:14.5px;color:var(--p-ink);padding-left:18px;position:relative;margin-bottom:7px;line-height:1.5;max-width:72ch;}
.audience-shell .a-list li::before{content:"•";position:absolute;left:2px;color:var(--teal-text);font-weight:800;}
.audience-shell .a-list.dash li::before{content:"—";left:0;}
.audience-shell .confirm-summary.on-light{border:1px solid var(--p-hairline);background:var(--p-paper);}
.audience-shell .confirm-summary.on-light .cs-row + .cs-row{border-top:1px solid var(--p-hairline);}
.audience-shell .confirm-summary.on-light dt{color:var(--p-slate-soft);}
.audience-shell .a-table-wrap{overflow-x:auto;border:1px solid var(--p-hairline);border-radius:10px;background:var(--p-paper);}
.audience-shell .a-table{width:100%;border-collapse:collapse;font-size:14px;}
.audience-shell .a-table th,.audience-shell .a-table td{text-align:left;padding:10px 12px;border-top:1px solid var(--p-hairline);vertical-align:top;line-height:1.45;}
.audience-shell .a-table thead th{border-top:none;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--p-slate-soft);background:var(--p-paper-raised);}
.audience-shell .a-table tbody th{white-space:nowrap;font-weight:800;}
.audience-shell .a-fill td{min-width:120px;}
.audience-shell .a-blank{height:40px;background:repeating-linear-gradient(0deg,transparent 0 30px,var(--p-hairline) 30px 31px,transparent 31px 40px);}
.audience-shell .a-timeline{list-style:none;margin:14px 0 0;padding:0;border-left:3px solid var(--teal);}
.audience-shell .a-timeline li{display:grid;grid-template-columns:minmax(120px,30%) 1fr;gap:10px;padding:8px 0 8px 14px;font-size:14.5px;line-height:1.45;}
.audience-shell .a-timeline .mono{font-weight:800;color:var(--teal-text);}
@media (max-width:520px){ .audience-shell .a-timeline li{grid-template-columns:1fr;gap:2px;} }
.audience-shell .a-num{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--teal);color:#04211E;font-weight:800;margin-bottom:8px;}
.audience-shell .a-chips{display:flex;flex-wrap:wrap;gap:8px;}
.audience-shell .a-chips span{background:rgba(0,167,157,.1);color:var(--teal-text);border:1px solid rgba(0,167,157,.3);border-radius:20px;padding:5px 12px;font-size:13.5px;font-weight:700;}
.audience-shell.view-student .station-card h4{font-size:18px;}
.audience-shell.view-student .station-card .desc{font-size:15px;color:var(--p-ink);}
.audience-shell .a-approve{margin-top:16px;}
.audience-shell .a-field{display:flex;flex-direction:column;gap:4px;max-width:420px;}
.audience-shell .a-field label{font-size:13px;font-weight:600;color:#D9E7F2;}
.audience-shell .a-field input{border-radius:8px;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.08);color:#fff;padding:9px 11px;font:inherit;font-size:14.5px;}
.audience-shell .a-err{color:#FFD2CC;min-height:1em;}
.audience-shell .contact-card{margin-top:16px;}
.audience-shell #site-footer .tag{display:block;margin-top:6px;}

@media print{
  .proposal-shell.audience-shell{background:#fff;color:#111;font-size:12.5px;
    --p-bg:#fff;--p-paper:#fff;--p-paper-raised:#f6f6f2;--p-ink:#111;--p-slate:#333;--p-slate-soft:#555;--p-hairline:#ccc;--p-hairline-strong:#aaa;--p-shadow:none;}
  .audience-shell .no-print,.audience-shell .a-top-actions{display:none !important;}
  .audience-shell #topbar{position:static;background:#0F2A4E !important;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .audience-shell .a-hero,.audience-shell .a-status-ribbon,.audience-shell .rot-cell,.audience-shell .rot-dep,.audience-shell .share-status{-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .audience-shell .a-hero{padding:18px 0 14px;}
  .audience-shell .a-sec{padding-top:14px;padding-bottom:14px;break-inside:auto;}
  .audience-shell .block-head,.audience-shell .station-card,.audience-shell .included-card,.audience-shell .pillar-card,.audience-shell .rot-frame,.audience-shell tr{break-inside:avoid;}
  .audience-shell .rot-frame{width:auto !important;left:auto !important;transform:none !important;box-shadow:none;}
  .audience-shell .rot-list{display:none;}
  .audience-shell .container{max-width:none;padding:0 6mm;}
  .audience-shell a{color:inherit;}
  @page{margin:12mm;}
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .proposal-shell .share-status:not(.is-confirmed){background:rgba(201,166,0,.22);color:#FFF1B8;}
  :root:not([data-theme="light"]) .audience-shell .a-status-ribbon.is-draft{background:#3A3200;color:#FFF1B8;}
}

/* Draft Program Schedule notice (2026-09-30) */
.proposal-shell .draft-wrap{margin-top:20px;margin-bottom:0;}
.proposal-shell .draft-banner{display:flex;gap:12px;align-items:flex-start;background:#FFF4D6;border:2px solid #D99A00;border-left-width:8px;color:#4A3500;border-radius:12px;padding:14px 16px;font-size:15px;line-height:1.5;}
.proposal-shell .draft-banner .draft-badge{flex-shrink:0;background:#D99A00;color:#2B1D00;font-weight:800;font-size:12px;letter-spacing:.12em;text-transform:uppercase;border-radius:6px;padding:4px 9px;margin-top:1px;}
.proposal-shell .draft-banner strong{font-weight:800;}
.proposal-shell .draft-banner.is-compact{font-size:14px;padding:10px 14px;}
.proposal-shell .rot-list-draft{font-size:13px;font-weight:600;color:#7A5600;margin:10px 0 0;}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .proposal-shell .draft-banner{background:rgba(255,200,60,.14);color:#FFE7A3;border-color:#E0A800;} :root:not([data-theme="light"]) .proposal-shell .rot-list-draft{color:#FFD766;} }
:root[data-theme="dark"] .proposal-shell .draft-banner{background:rgba(255,200,60,.14);color:#FFE7A3;border-color:#E0A800;}
:root[data-theme="dark"] .proposal-shell .rot-list-draft{color:#FFD766;}
@media (max-width:520px){ .proposal-shell .draft-banner{flex-direction:column;gap:8px;} }

/* Stale-version banner (render.js checkProposalVersion) */
.stale-banner{background:#e8f4f6;color:#0b2a4a;border-bottom:1px solid #b8dde3;padding:14px 20px;font-size:15px;line-height:1.5;text-align:center;}
.stale-banner a{color:inherit;text-decoration:underline;}
.stale-hide{display:none !important;}

/* Get Ready checklist (audience views) */
.audience-shell .gr-group{font-size:15px;margin:18px 0 6px;color:var(--p-ink);}
.audience-shell .gr-list{list-style:none;margin:0;padding:0;}
.audience-shell .gr-item{display:flex;gap:12px;padding:9px 0;border-bottom:1px solid rgba(11,42,74,.12);font-size:14.5px;line-height:1.45;}
.audience-shell .gr-state{flex:0 0 96px;font-weight:700;font-size:12.5px;text-transform:uppercase;letter-spacing:.03em;}
.audience-shell .gr-item.is-complete .gr-state{color:#1b6b3a;}
.audience-shell .gr-item.is-overdue .gr-state{color:#a11;}
.audience-shell .gr-item.is-outstanding .gr-state{color:#8a5a00;}
.audience-shell .gr-tag{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:10px;background:#fff6dc;border:1px solid #e6c766;font-size:12px;}
.audience-shell .gr-money{font-weight:600;}
@media (max-width:520px){.audience-shell .gr-item{flex-direction:column;gap:2px;}.audience-shell .gr-state{flex-basis:auto;}}

/* 2026-11-05: REEF contact note inside the contact card; per-day sub-heads for the stops list */
.proposal-shell .contact-note{margin:10px 0 12px;}
.proposal-shell .contact-note-title{font-weight:700;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--p-slate);margin-bottom:4px;}
.proposal-shell .contact-note .contact-blurb{margin:0 0 6px;}
.proposal-shell .stop-day{margin-top:22px;}
.proposal-shell .stop-day:first-of-type{margin-top:8px;}
.proposal-shell .stop-day-title{margin:0 0 10px;font-size:18px;}
.proposal-shell .rot-locations{margin-bottom:4px;}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .proposal-shell .rot-neutral{--c-bg:#152A42;--c-edge:#6B7F93;--c-ink:#D5DEE8;}
}
:root[data-theme="dark"] .proposal-shell .rot-neutral{--c-bg:#152A42;--c-edge:#6B7F93;--c-ink:#D5DEE8;}


/* ---------- PHOTOS (shared set in assets/photos/) and CONTACT ROWS (2026-11-10) ---------- */
.photo-band{margin:22px 0 0;border-radius:14px;overflow:hidden;background:#dfe9ef;}
.photo-band img{display:block;width:100%;height:clamp(180px,34vw,340px);object-fit:cover;}
.audience-shell .a-photo-wrap{margin-top:18px;}
.audience-shell .photo-band.a-photo{margin:0;}
.container .photo-band.in-page{max-width:880px;}
.contact-rows{margin:6px 0 0;padding:0;}
.contact-rows .contact-row{display:grid;grid-template-columns:84px 1fr;gap:10px;padding:6px 0;border-top:1px solid var(--p-hairline,#d8e1e8);font-size:14px;line-height:1.4;}
.contact-rows .contact-row:first-child{border-top:none;}
.contact-rows dt{margin:0;font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--p-slate-soft,#5a6b7b);padding-top:2px;}
.contact-rows dd{margin:0;font-weight:600;color:var(--p-ink,#0b2a4a);overflow-wrap:anywhere;}
.contact-rows-card{display:block !important;}
.contact-rows-title{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--teal-text,#0b6b66);margin-bottom:4px;}
.closing-cta .contact.contact-rows-cta{text-align:left;min-width:260px;}
.closing-cta .contact-rows .contact-row{border-top-color:rgba(255,255,255,.18);}
.closing-cta .contact-rows dt{color:#8FD9D2;}
.closing-cta .contact-rows dd,.closing-cta .contact-rows dd a{color:#fff;}
@media print{
  .photo-band{break-inside:avoid;page-break-inside:avoid;border-radius:0;}
  .photo-band img{height:auto;max-height:55mm;object-fit:cover;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .contact-rows-card{break-inside:avoid;}
}
