/* ═══════════════════════════════════════════════
   LEX LIFT — shared.css
   All pages share this stylesheet
═══════════════════════════════════════════════ */
:root {
  --monarch:   #9B7EC8;
  --chrysalis: #C9B1D4;
  --wingspan:  #89CBD4;
  --blossom:   #FBB6CC;
  --canopy:    #86B49A;
  --deep:      #5a3d8a;
  --ink:       #2d2040;
  --muted:     #7a6b8a;
  --lavender:  #f3eeff;
  --blush:     #fce8f0;
  --pp-pink:   #fde8f0;
  --pp-bottom: #f4a0b8;
  --white:     #ffffff;
  --soft:      #faf8ff;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Nunito',sans-serif;background:var(--white);color:var(--ink);overflow-x:hidden;line-height:1.75}
img{max-width:100%;height:auto;display:block}
a{text-decoration:none;color:inherit}
h1,h2,h3{font-family:'Libre Baskerville',serif;line-height:1.2}
h4{font-family:'Nunito',sans-serif;font-weight:800}
em{font-style:italic}
strong{font-weight:700}
p{color:var(--muted);line-height:1.8}

/* ── ANNOUNCE BAR ── */
.announce-bar{background:var(--pp-pink);color:#d4607a;text-align:center;padding:10px 20px;font-size:0.72rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase}

/* ── NAV ── */
#nav{background:var(--white);border-bottom:1px solid rgba(201,177,212,0.2);position:sticky;top:0;z-index:999;box-shadow:0 2px 12px rgba(90,61,138,0.06)}
.nav-top{display:flex;align-items:center;justify-content:space-between;padding:14px 5%;max-width:1300px;margin:0 auto}
.nav-logo{display:flex;align-items:center;gap:10px}
.nav-logo-text{text-align:center;line-height:1;display:flex;flex-direction:column;align-items:center}
.ls{font-family:'Dancing Script',cursive;font-size:1.9rem;color:var(--ink);line-height:0.95}
.lf{font-family:'Libre Baskerville',serif;font-size:1.1rem;color:var(--monarch);font-weight:700;letter-spacing:0.14em}
.nav-logo-text small{font-size:0.55rem;letter-spacing:0.2em;color:var(--muted);text-transform:uppercase;margin-top:2px}
.nav-logo-img{height:58px;width:auto;display:block;max-width:220px;object-fit:contain}

.nav-right{display:flex;align-items:center;gap:16px}
.nav-social{display:flex;gap:8px}
.s-ico{width:32px;height:32px;background:#f3eeff;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--monarch);transition:all 0.2s}
.s-ico:hover{background:var(--monarch);color:white}
.s-ico svg{width:16px;height:16px}
.portal-nav-btn{background:var(--deep);color:white!important;padding:9px 18px;border-radius:4px;font-size:0.78rem;font-weight:800;letter-spacing:0.06em;transition:all 0.2s;white-space:nowrap}
.portal-nav-btn:hover{background:var(--monarch);transform:translateY(-1px)}

.ham-btn{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px}
.ham-btn span{display:block;width:22px;height:2px;background:var(--ink);border-radius:2px;transition:all 0.3s}

/* Nav links row */
.nav-links-row{border-top:1px solid rgba(201,177,212,0.15);background:var(--white)}
.nav-links-row ul{display:flex;align-items:center;justify-content:center;gap:36px;list-style:none;padding:11px 5%;max-width:1300px;margin:0 auto;flex-wrap:wrap}
.nav-links-row a{font-size:0.76rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink);transition:color 0.2s;padding:2px 0;border-bottom:2px solid transparent}
.nav-links-row a:hover{color:var(--monarch)}
.nav-links-row a.active{color:var(--monarch);border-bottom-color:var(--monarch)}

/* ── BUTTONS ── */
.btn-primary{display:inline-block;background:var(--monarch);color:white;padding:13px 30px;border-radius:4px;font-weight:800;font-size:0.9rem;letter-spacing:0.04em;box-shadow:0 4px 16px rgba(155,126,200,0.35);transition:all 0.25s;border:none;cursor:pointer;font-family:'Nunito',sans-serif}
.btn-primary:hover{background:var(--deep);transform:translateY(-2px)}
.btn-outline{display:inline-block;background:transparent;color:var(--monarch);padding:13px 30px;border-radius:4px;font-weight:800;font-size:0.9rem;letter-spacing:0.04em;border:2px solid var(--monarch);transition:all 0.25s;cursor:pointer;font-family:'Nunito',sans-serif}
.btn-outline:hover{background:var(--monarch);color:white;transform:translateY(-2px)}
.btn-white{display:inline-block;background:white;color:var(--monarch);padding:13px 30px;border-radius:4px;font-weight:800;font-size:0.9rem;box-shadow:0 4px 16px rgba(0,0,0,0.15);transition:all 0.25s}
.btn-white:hover{background:var(--deep);color:white;transform:translateY(-2px)}

/* ── PAGE HERO (inner pages) ── */
.page-hero{background:linear-gradient(135deg,var(--deep) 0%,#3d1f70 100%);padding:72px 5% 64px;text-align:center}
.page-hero h1{color:white;font-size:clamp(2rem,4vw,3.2rem);margin-bottom:14px}
.page-hero h1 em{color:var(--blossom)}
.page-hero p{color:rgba(255,255,255,0.78);font-size:1.02rem;max-width:560px;margin:0 auto}
.page-hero-pill{display:inline-block;background:rgba(255,255,255,0.15);border:1px solid rgba(255,255,255,0.25);color:rgba(255,255,255,0.8);padding:5px 16px;border-radius:50px;font-size:0.72rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;margin-bottom:16px}

/* ── SECTION HELPERS ── */
.section{padding:80px 5%}
.section-sm{padding:56px 5%}
.container{max-width:1100px;margin:0 auto}
.centered{text-align:center}
.sec-eyebrow{display:block;font-size:0.7rem;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:var(--monarch);margin-bottom:10px}
.sec-h2{font-family:'Libre Baskerville',serif;font-size:clamp(1.8rem,3vw,2.8rem);color:var(--ink);margin-bottom:14px}
.sec-h2 em{color:var(--monarch)}
.sec-desc{font-size:0.97rem;max-width:520px;margin:0 auto}
.bg-soft{background:var(--soft)}
.bg-blush{background:var(--pp-pink)}
.bg-deep{background:linear-gradient(135deg,var(--deep) 0%,#3d1f70 100%)}

/* ── FADE IN ── */
.fade{opacity:0;transform:translateY(22px);transition:opacity 0.65s ease,transform 0.65s ease}
.fade.in{opacity:1;transform:translateY(0)}
.fade.visible{opacity:1;transform:translateY(0)}

/* ── FOOTER ── */
footer{background:var(--pp-pink);padding:60px 5% 36px}
.ft-grid{max-width:1100px;margin:0 auto 36px;display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1.2fr;gap:36px}
.ft-logo{line-height:1;margin-bottom:8px;display:flex;flex-direction:column;align-items:flex-start}
.ft-tagline{font-style:italic;font-size:0.82rem;color:var(--muted);margin-top:4px}
.ft-col h5{font-size:0.67rem;font-weight:800;letter-spacing:0.18em;text-transform:uppercase;color:var(--monarch);margin-bottom:14px}
.ft-col a{display:block;font-size:0.83rem;color:var(--muted);font-weight:600;margin-bottom:9px;transition:color 0.2s}
.ft-col a:hover{color:var(--monarch)}
.ft-col p{font-size:0.82rem;line-height:1.75;color:var(--muted)}
.ft-social-row{display:flex;align-items:center;justify-content:center;gap:12px;max-width:1100px;margin:0 auto;padding-top:28px;border-top:1px solid rgba(201,177,212,0.28)}
.ft-soc{width:38px;height:38px;border-radius:50%;background:var(--wingspan);color:white;display:flex;align-items:center;justify-content:center;transition:all 0.2s}
.ft-soc:hover{background:var(--monarch);transform:translateY(-2px)}
.ft-soc svg{width:18px;height:18px}
.ft-bar{background:var(--pp-bottom);padding:13px 5%;text-align:center}
.ft-bar p{font-size:0.68rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:white;margin:0}

/* ── NEWSLETTER ── */
.nl-band{background:var(--pp-pink);padding:48px 5%;text-align:center}
.nl-band p{font-size:0.84rem;color:var(--muted);margin-bottom:6px}
.nl-band h3{font-family:'Libre Baskerville',serif;font-size:1.5rem;color:var(--ink);font-style:italic;margin-bottom:20px}
.nl-form{display:flex;max-width:420px;margin:0 auto;border:1.5px solid rgba(201,177,212,0.5);border-radius:4px;overflow:hidden;background:white}
.nl-form input{flex:1;border:none;padding:12px 16px;font-family:'Nunito',sans-serif;font-size:0.9rem;color:var(--ink);outline:none}
.nl-form input::placeholder{color:rgba(122,107,154,0.4)}
.nl-form button{background:none;border:none;padding:12px 18px;font-size:1.1rem;color:var(--monarch);cursor:pointer;border-left:1px solid rgba(201,177,212,0.4);transition:background 0.2s}
.nl-form button:hover{background:var(--lavender)}

/* ── RESPONSIVE ── */
@media(max-width:900px){
  .ft-grid{grid-template-columns:1fr 1fr;gap:28px}
}

@media(max-width:768px){
  /* NAV — hide social icons, shrink portal btn */
  .nav-social{display:none}
  .nav-phone{font-size:0.75rem}
  .portal-nav-btn{padding:7px 12px;font-size:0.72rem}
  .nav-logo-img{height:46px}
}

@media(max-width:640px){
  /* NAV */
  .nav-links-row{display:none}
  .nav-links-row.open{display:block;padding:14px 5% 18px}
  .nav-links-row.open ul{flex-direction:column;gap:0;align-items:stretch}
  .nav-links-row.open li{border-bottom:1px solid rgba(201,177,212,0.15)}
  .nav-links-row.open a{display:block;padding:12px 0;font-size:0.82rem}
  .ham-btn{display:flex}

  /* NAV RIGHT — phone stays, hide EN/ES label text, shrink portal */
  .nav-right{gap:10px}
  .nav-phone{font-size:0.78rem;letter-spacing:0}
  .lang-div{display:none}
  .lang-btn{font-size:0.72rem;padding:2px 3px}
  .portal-nav-btn{padding:7px 11px;font-size:0.7rem;letter-spacing:0}
  .nav-logo-img{height:42px}

  /* ANNOUNCE BAR */
  .announce-bar{font-size:0.65rem;padding:8px 16px}

  /* FOOTER */
  .ft-grid{grid-template-columns:1fr 1fr;gap:20px}
  .ft-grid > div:first-child{grid-column:1/-1}

  /* SECTIONS */
  .section{padding:48px 5%}
  .section-sm{padding:40px 5%}

  /* BUTTONS */
  .btn-primary,.btn-outline,.btn-white{padding:12px 22px;font-size:0.85rem}

  /* NEWSLETTER */
  .nl-band{padding:40px 5%}
  .nl-band h3{font-size:1.25rem}
}

@media(max-width:420px){
  /* Very small phones */
  .nav-phone{display:none} /* too cramped — phone is in footer */
  .nav-right{gap:8px}
  .ft-grid{grid-template-columns:1fr}
  .ft-grid > div:first-child{grid-column:auto}
}

/* ── Phone + Language Toggle ── */
.nav-phone {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--deep);
  text-decoration: none;
  letter-spacing: 0.02em;
  transition: color 0.2s;
}
.nav-phone:hover { color: var(--monarch); }
.nav-lang {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 0.75rem;
  font-weight: 700;
}
.lang-btn {
  color: var(--muted);
  text-decoration: none;
  padding: 2px 4px;
  border-radius: 4px;
  transition: all 0.2s;
  letter-spacing: 0.06em;
}
.lang-btn.active {
  color: var(--monarch);
}
.lang-btn:hover { color: var(--monarch); }
.lang-div { color: rgba(201,177,212,0.6); font-size: 0.7rem; }

/* ══════════════════════════════════════════
   MOBILE — PAGE-LEVEL GRIDS & SPLITS
   Targets all two-column splits across pages
══════════════════════════════════════════ */
@media(max-width:768px){
  /* All two-column hero splits → stack */
  .hero, .story-section, .what-split, .ct-split,
  .bk-split, .camp-inner, .vision-soft-inner,
  .founder-hero, .press-grid, .personal-grid,
  .bf-inner, .compare-grid, .start-grid,
  .apart-inner, .orgs-inner .org-row,
  .svc-featured, .review-grid {
    grid-template-columns: 1fr !important;
  }

  /* Hero right padding */
  .hero-right, .story-right, .fh-right,
  .ct-left, .ct-right, .bk-left,
  .camp-copy, .vs-copy { padding: 44px 5% !important; }

  /* Hero left min-height */
  .hero-left, .story-left, .fh-left { min-height: 280px; }

  /* Founder hero — photo on top */
  .fh-left { min-height: 360px; }
  .fh-cred-pill { position:relative; bottom:auto; left:auto; right:auto; margin:16px; }

  /* Org rows — stack internally */
  .org-row { grid-template-columns: 1fr !important; gap:10px !important; }
  .org-link { align-self: flex-start; }

  /* Service + tool grids */
  .svc-grid, .tools-grid, .facts-grid,
  .before-inner, .faq-grid, .signs-grid,
  .brain-grid, .cred-grid { grid-template-columns: 1fr !important; }

  /* Facts — 2 cols on tablet */
  .facts-grid { grid-template-columns: 1fr 1fr !important; }

  /* Process steps — 2 cols */
  .process-row { grid-template-columns: 1fr 1fr !important; gap: 28px !important; }

  /* Tiles — 2×2 */
  .tiles-grid { grid-template-columns: 1fr 1fr !important; }

  /* Split flip — reset order on mobile */
  .split.flip .split-art { order: 0 !important; }
  .split.flip .split-text { order: 0 !important; }

  /* Camp details */
  .camp-details { margin-top: 24px; }

  /* Reviews */
  .review-grid { grid-template-columns: 1fr !important; }

  /* Sections padding */
  .core-section, .orgs-section, .tools-section,
  .facts-section, .signs-section, .brain-section,
  .res-cta, .svc-cta, .dys-cta, .before-section,
  .start-section, .camp-section, .process-section,
  .bk-hero, .ct-hero, .res-hero, .svc-hero,
  .ab-hero, .dys-hero, .founder-section,
  .cred-band, .press-band, .personal-band,
  .story-band, .vision-soft, .apart-section,
  .cta-deep { padding: 56px 5% !important; }

  /* Typography scale down on mobile */
  .hero-right h1 { font-size: 2rem !important; }
  .bf-copy h2 { font-size: 1.8rem !important; }
}

@media(max-width:480px){
  /* Small phones — single column everything */
  .facts-grid { grid-template-columns: 1fr !important; }
  .process-row { grid-template-columns: 1fr !important; }
  .tiles-grid { grid-template-columns: 1fr 1fr !important; }
  .hero-btns, .btn-row, .camp-btns { flex-direction: column; align-items: stretch; gap: 10px; }
  .btn-primary, .btn-outline { text-align: center; }

  /* Org row link */
  .org-link { display: inline-block; margin-top: 4px; }

  /* Apart items */
  .apart-item { grid-template-columns: 40px 1fr !important; gap: 14px !important; }
  .apart-num { font-size: 2rem !important; }

  /* Founder credential pill badges — wrap */
  .fh-cred-pill { flex-wrap: wrap; }
}

/* Prevent phone number wrapping */
.nav-phone {
  white-space: nowrap;
}

/* Mobile split sections — ensure text always shows */
@media(max-width:768px) {
  .split {
    display: flex !important;
    flex-direction: column !important;
  }
  .split-art {
    min-height: 280px !important;
    width: 100% !important;
  }
  .split-text {
    width: 100% !important;
    padding: 40px 5% !important;
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
  }
  .split.flip {
    flex-direction: column !important;
  }
  .split.flip .split-art { order: 0 !important; }
  .split.flip .split-text { order: 1 !important; }
  
  /* Butterfly section inner */
  .bf-inner {
    display: flex !important;
    flex-direction: column !important;
    gap: 32px !important;
    text-align: center !important;
  }
  .bf-art img { max-width: 220px !important; margin: 0 auto !important; }
  .bf-copy { padding: 0 5% !important; }
  .bf-copy h2 { font-size: 1.8rem !important; }
}

/* ── Phone icon vs text on mobile ── */
.nav-phone-icon {
  display: none;
  color: var(--deep);
  background: #f3eeff;
  border-radius: 50%;
  width: 36px;
  height: 36px;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.nav-phone-icon svg { stroke: var(--monarch); }
.nav-phone-icon:hover { background: var(--monarch); }
.nav-phone-icon:hover svg { stroke: white; }

@media(max-width:768px) {
  .nav-phone-desktop { display: none !important; }
  .nav-phone-icon { display: flex !important; }
  .portal-nav-btn { display: none !important; }
}

/* ── MOBILE BREATHING ROOM ── */
@media(max-width:768px) {
  /* Section padding */
  .section, .core-section, .orgs-section, .tools-section,
  .facts-section, .signs-section, .brain-section,
  .res-cta, .svc-cta, .dys-cta, .before-section,
  .start-section, .camp-section, .process-section,
  .ab-hero, .bk-hero, .ct-hero, .res-hero,
  .svc-hero, .dys-hero, .founder-section,
  .cred-band, .press-band, .personal-band,
  .story-band, .vision-soft, .apart-section,
  .cta-deep, .nl-band { padding-top: 56px !important; padding-bottom: 56px !important; }

  /* Cards spacing */
  .svc-card, .tool-card, .fact-card, .faq-card,
  .r-card, .before-card, .start-card, .apart-item,
  .signs-card, .brain-card, .org-row, .press-item,
  .p-card, .vs-pill, .cred-card { margin-bottom: 16px; }

  /* Grid gaps */
  .svc-grid, .tools-grid, .facts-grid, .faq-grid,
  .review-grid, .before-inner, .start-grid,
  .signs-grid, .brain-grid, .cred-grid,
  .personal-grid, .press-grid { gap: 16px !important; }

  /* Split sections gap */
  .split, .bf-inner { gap: 0 !important; }

  /* Stage sections — clear separation */
  .split + .split,
  .split + div { border-top: none; }
  
  /* Process steps */
  .process-row { gap: 32px !important; }
  .proc-step { padding-bottom: 8px; }
}

/* ── Credential badges — clean strip, not overlay ── */
.fh-cred-pill {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  background: var(--lavender);
  padding: 16px 5%;
  justify-content: center;
  border-bottom: 1px solid rgba(201,177,212,0.2);
}
.fh-badge {
  background: white;
  border-radius: 8px;
  padding: 10px 16px;
  text-align: center;
  box-shadow: 0 2px 8px rgba(90,61,138,0.08);
  min-width: 90px;
}
.fh-badge strong {
  display: block;
  color: var(--deep);
  font-size: 0.9rem;
  font-weight: 800;
}
.fh-badge span {
  display: block;
  color: var(--muted);
  font-size: 0.65rem;
  margin-top: 2px;
  letter-spacing: 0.04em;
}
/* Founder hero — zoom out photo more */
.fh-left img {
  object-position: center 15% !important;
}
@media(max-width:768px) {
  .fh-left { min-height: 400px; }
  .fh-left img { object-position: center 10% !important; }
  .fh-cred-pill { padding: 14px 5%; gap: 8px; }
  .fh-badge { min-width: 80px; padding: 8px 12px; }
}

/* ── MOBILE SECTION SEPARATION ── */
@media(max-width:768px) {

  /* Clear visual break after hero gradient sections */
  .svc-hero + .core-section,
  .res-hero + .orgs-section,
  .bk-hero + .bk-split,
  .ct-hero + .ct-split,
  .ab-hero + .story-section,
  .dys-hero + .what-split,
  .hero + .tiles-wrap,
  .founder-hero + .fh-cred-pill,
  .fh-cred-pill + .story-band {
    border-top: 6px solid white;
  }

  /* White gap between ALL adjacent sections on mobile */
  .tiles-wrap + div,
  .section + .section,
  .split + .split,
  .split + section,
  section + section,
  section + div,
  div.core-section + div,
  div.start-section + div,
  div.camp-section + div,
  div.process-section + div,
  div.orgs-section + div,
  div.tools-section + div,
  div.facts-section + div,
  div.vision-soft + div,
  div.apart-section + div,
  div.story-band + div,
  div.cred-band + div,
  div.press-band + div,
  div.personal-band + div,
  div.before-section + div,
  div.bk-split + div,
  div.ct-split + div {
    border-top: 8px solid white;
  }

  /* Extra breathing room — increase section padding on mobile */
  .core-section,
  .start-section,
  .camp-section,
  .process-section,
  .svc-cta,
  .res-cta,
  .ct-hero,
  .bk-hero,
  .ab-hero,
  .svc-hero,
  .res-hero,
  .dys-hero,
  .orgs-section,
  .tools-section,
  .facts-section,
  .faq-section,
  .before-section,
  .apart-section,
  .vision-soft,
  .cta-deep,
  .story-band,
  .cred-band,
  .press-band,
  .personal-band,
  .founder-section {
    padding-top: 64px !important;
    padding-bottom: 64px !important;
  }

  /* Announce bar — smaller on mobile */
  .announce-bar {
    font-size: 0.62rem;
    padding: 9px 16px;
    line-height: 1.5;
  }
}

/* ── Mobile hamburger social links ── */
.nav-mobile-socials { display: none; }
@media(max-width:640px) {
  .nav-mobile-socials {
    display: flex;
    flex-direction: column;
    gap: 0;
    border-top: 1px solid rgba(201,177,212,0.2);
    margin-top: 8px;
    padding-top: 8px;
  }
  .nav-mobile-socials a {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 0;
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--ink);
    text-decoration: none;
    border-bottom: 1px solid rgba(201,177,212,0.15);
    letter-spacing: 0.04em;
    text-transform: none;
  }
  .nav-mobile-socials a:last-child { border-bottom: none; }
  .nav-mobile-socials a svg { width: 18px; height: 18px; flex-shrink: 0; }
}

/* ── Camp Registration Modal ── */
.camp-modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(42,32,64,0.65);
  z-index: 9999;
  align-items: center;
  justify-content: center;
  padding: 16px;
  backdrop-filter: blur(4px);
}
.camp-modal-overlay.open { display: flex; }
.camp-modal {
  background: white;
  border-radius: 20px;
  width: 100%;
  max-width: 680px;
  max-height: 90vh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 60px rgba(42,32,64,0.3);
  animation: modalSlideUp 0.3s ease;
}
@keyframes modalSlideUp {
  from { transform: translateY(30px); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}
.camp-modal-header {
  background: linear-gradient(150deg, #faf5ff 0%, #fce8f0 55%, #f3eeff 100%);
  padding: 20px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid rgba(201,177,212,0.2);
  flex-shrink: 0;
}
.camp-modal-header h4 {
  font-family: "Libre Baskerville", serif;
  font-size: 1.05rem;
  color: var(--deep);
}
.camp-modal-header h4 em { color: var(--monarch); font-style: italic; }
.camp-modal-close {
  width: 32px;
  height: 32px;
  background: white;
  border: none;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  color: var(--muted);
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(90,61,138,0.12);
  transition: all 0.2s;
}
.camp-modal-close:hover { background: var(--monarch); color: white; }
.camp-modal-body {
  flex: 1;
  overflow: hidden;
}
.camp-modal-body iframe {
  width: 100%;
  height: 100%;
  min-height: 500px;
  border: none;
  display: block;
}
@media(max-width:640px) {
  .camp-modal { max-height: 95vh; border-radius: 14px; }
  .camp-modal-body iframe { min-height: 420px; }
}
