/* ===================================================
   SWS.TRAVEL — Sports World Solutions
   Palette: purple #5D38BC / #371F76, green #4D7F45 / #385E33 / #62A25C, near-black #100F1C
=================================================== */

:root{
  --purple: #5D38BC;
  --purple-dark: #371F76;
  --green: #4D7F45;
  --green-dark: #385E33;
  --green-bright: #62A25C;
  --near-black: #100F1C;
  --white: #FFFFFF;
  --off-white: #F5F3FA;
  --gray-text: #A79FC0;
  --font-head: 'Poppins', sans-serif;
  --font-body: 'Inter', sans-serif;
}

*{ margin:0; padding:0; box-sizing:border-box; }

html{ scroll-behavior:smooth; }

body{
  font-family: var(--font-body);
  color: var(--near-black);
  background: var(--white);
  line-height:1.5;
  overflow-x:hidden;
}

img{ max-width:100%; display:block; }
a{ text-decoration:none; color:inherit; }
ul{ list-style:none; }
button{ font-family:inherit; cursor:pointer; border:none; }

.container{
  max-width:1240px;
  margin:0 auto;
  padding:0 24px;
}

.eyebrow{
  display:inline-block;
  font-family: var(--font-head);
  font-weight:700;
  font-size:13px;
  letter-spacing:2.5px;
  text-transform:uppercase;
  color: var(--green-bright);
  margin-bottom:14px;
}

h1,h2,h3,h4{
  font-family: var(--font-head);
  font-weight:900;
  line-height:1.08;
  letter-spacing:-0.5px;
  text-transform:uppercase;
}

h2{ font-size:clamp(28px,4vw,44px); }

.section-title{ text-align:center; max-width:680px; margin:0 auto 48px; }
.section-title p{ color:#5C5470; font-size:16px; margin-top:12px; }

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:15px 30px;
  border-radius:8px;
  font-family: var(--font-head);
  font-weight:700;
  font-size:14px;
  letter-spacing:0.5px;
  text-transform:uppercase;
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}
.btn:hover{ transform: translateY(-3px); }
.btn-green{ background: var(--green); color:var(--white); box-shadow:0 8px 24px rgba(77,127,69,.35); }
.btn-green:hover{ background:#436d3c; box-shadow:0 12px 28px rgba(77,127,69,.45); }
.btn-outline{ background:transparent; color:var(--white); border:2px solid rgba(255,255,255,.55); }
.btn-outline:hover{ background:rgba(255,255,255,.12); border-color:#fff; }
.btn-white{ background:var(--white); color:var(--purple-dark); }
.btn-white:hover{ box-shadow:0 12px 28px rgba(0,0,0,.2); }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}

/* ===== HEADER ===== */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:1150;
  background: rgba(16,15,28,0);
  transition: background .3s ease, box-shadow .3s ease, padding .3s ease;
  padding:22px 0;
}
.site-header.scrolled{
  background: rgba(16,15,28,.92);
  backdrop-filter: blur(10px);
  box-shadow:0 4px 20px rgba(0,0,0,.25);
  padding:14px 0;
}
.header-inner{ display:flex; align-items:center; justify-content:space-between; }
.logo{
      font-family: var(--font-head);
  font-weight:900;
  font-size:20px;
  letter-spacing:0.5px;
  color:var(--white);
  display:flex; align-items:center; gap:10px;
  white-space:nowrap;
}
.logo span{ color: var(--green-bright); }
.logo-mark{
  width:36px; height:36px; border-radius:8px;
  background: linear-gradient(135deg, var(--purple), var(--green));
  display:flex; align-items:center; justify-content:center;
  font-size:16px; font-weight:900; color:#fff;
}
.logo .logo-image{ height:46px; transition: height .3s ease; }
.site-header.scrolled .logo .logo-image{ height:30px; }
.main-nav{ display:flex; align-items:center; gap:36px; }
.main-nav a{
  color: rgba(255,255,255,.85);
  font-family: var(--font-head);
  font-weight:600;
  font-size:14px;
  letter-spacing:0.3px;
  text-transform:uppercase;
  position:relative;
  padding:4px 0;
}
.main-nav > a::after{
  content:''; position:absolute; left:0; bottom:-2px; width:0; height:2px;
  background:var(--green-bright); transition:width .25s ease;
}
.main-nav > a:hover::after{ width:100%; }
.header-cta{ display:flex; align-items:center; gap:18px; }
.header-cta .btn{ padding:11px 22px; font-size:12px; }
.nav-close{ display:none; }
.nav-toggle{
  display:none; background:none; border:none; padding:6px;
  width:40px; height:40px; flex-direction:column; align-items:center; justify-content:center;
  gap:5px; cursor:pointer; flex-shrink:0;
}
.nav-toggle span{
  display:block; width:24px; height:2px; background:#fff; border-radius:2px;
  transition: transform .3s ease, opacity .3s ease;
}
.nav-toggle.active span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
.nav-toggle.active span:nth-child(2){ opacity:0; }
.nav-toggle.active span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }

.nav-overlay{
  position:fixed; inset:0; background:rgba(10,9,20,.6); z-index:1099;
  opacity:0; pointer-events:none; transition:opacity .3s ease;
}
.nav-overlay.show{ opacity:1; pointer-events:auto; }

@media (max-width:900px){
  .header-cta{ display:none; }
  .main-nav{
    position:fixed; top:0; right:-100%; width:82%; max-width:340px; height:100vh; height:100dvh;
    background: var(--near-black); flex-direction:column; align-items:flex-start; justify-content:flex-start;
    gap:22px; transition:right .35s ease; padding:100px 32px 40px; z-index:1100;
    overflow-y:auto; box-shadow:-10px 0 30px rgba(0,0,0,.35);
  }
  .main-nav a{ font-size:17px; width:100%; }
  .main-nav.open{ right:0; }
  .main-nav .header-cta{
    display:flex; flex-direction:column; align-items:stretch; gap:12px; width:100%;
    margin-top:14px; padding-top:24px; border-top:1px solid rgba(255,255,255,.14);
  }
  .main-nav .header-cta .btn{ width:100%; justify-content:center; text-align:center; padding:13px 22px; font-size:13px; }
  .main-nav .lang-switch{ margin:2px 0 0 0; }
  .nav-toggle{ display:flex; }
  body.nav-open{ overflow:hidden; }
  .nav-close{
    display:flex; align-items:center; justify-content:center;
    position:absolute; top:24px; right:24px; width:40px; height:40px;
    background:rgba(255,255,255,.08); border:none; border-radius:50%;
    color:#fff; font-size:22px; line-height:1; cursor:pointer;
    transition: background .2s ease, transform .2s ease;
  }
  .main-nav .nav-close{ display:flex; }
  .nav-close:hover{ background:rgba(255,255,255,.16); transform:rotate(90deg); }
}

@media (max-width:480px){
  .logo{ font-size:14px; gap:7px; }
  .logo-mark{ width:30px; height:30px; font-size:13px; border-radius:7px; }
}

@media (max-width:900px){
  .pkg-hero .split-media{ display:none; }
  .pkg-hero .hero-caption{ display:none !important; }
  .pkg-hero .split-badge{ display:none; }
}

/* ===== HERO ===== */
.hero{
  position:relative; height:100vh; min-height:640px;
  display:flex; align-items:flex-end;
  overflow:hidden;
  background: var(--near-black);
}
.hero-slide{
  position:absolute; inset:0; opacity:0; transition:opacity 1.1s ease;
}
.hero-slide.active{ opacity:1; }
.hero-slide img{ width:100%; height:100%; object-fit:cover; }
.hero-slide::after{
  content:''; position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(16,15,28,.35) 0%, rgba(16,15,28,.55) 55%, rgba(16,15,28,.94) 100%),
              linear-gradient(90deg, rgba(93,56,188,.35), rgba(16,15,28,0) 55%);
}
.hero-content{
  position:relative; z-index:2; color:#fff;
  padding-bottom:110px; width:100%;
}
.hero-content .eyebrow{ color:var(--green-bright); }
.hero-content h1{
  font-size:clamp(38px,6vw,68px);
  color:#fff; max-width:820px; margin-bottom:20px;
}
.hero-content p{
  font-size:17px; color:rgba(255,255,255,.85); max-width:540px; margin-bottom:34px;
}
.hero-actions{ display:flex; gap:16px; flex-wrap:wrap; }
.hero-nav{
  position:absolute; bottom:110px; right:24px; z-index:3;
  display:flex; align-items:center; gap:14px; color:#fff;
  font-family:var(--font-head); font-weight:700; font-size:13px;
}
.hero-arrows{ display:flex; gap:8px; }
.hero-arrow{
  width:42px; height:42px; border-radius:50%; border:1px solid rgba(255,255,255,.4);
  background:rgba(255,255,255,.06); color:#fff; display:flex; align-items:center; justify-content:center;
  font-size:16px; transition: background .25s ease, transform .25s ease, border-color .25s ease;
}
.hero-arrow:hover{ background:var(--green); border-color:var(--green); transform:scale(1.06); }
.hero-count{ letter-spacing:1px; opacity:.85; }
.hero-count b{ color:var(--green-bright); font-size:16px; }

@media (max-width:640px){
  .hero-nav{ display:none; }
  .hero-content{ padding-bottom:70px; }
}

/* ===== STATS ===== */
.stats-bar{
  background: var(--near-black);
  padding:44px 0;
  position:relative;
}
.stats-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:24px;
}
.stat{ text-align:center; }
.stat b{
  display:block; font-family:var(--font-head); font-weight:900;
  font-size:clamp(28px,3.2vw,42px); color:#fff;
  background: linear-gradient(90deg, var(--green-bright), var(--purple));
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
.stat span{ font-size:13px; letter-spacing:1px; text-transform:uppercase; color:var(--gray-text); }
@media (max-width:700px){ .stats-grid{ grid-template-columns:repeat(2,1fr); row-gap:28px; } }

/* ===== TICKER ===== */
.ticker-wrap{
  background: var(--purple);
  overflow:hidden; padding:14px 0;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.ticker-track{
  display:flex; gap:48px; width:max-content;
  animation: ticker-scroll 32s linear infinite;
}
.ticker-track span{
  color:#fff; font-family:var(--font-head); font-weight:700; font-size:13px;
  letter-spacing:.5px; text-transform:uppercase; white-space:nowrap;
  display:flex; align-items:center; gap:10px;
}
.ticker-track span::before{ content:'●'; color:var(--green-bright); font-size:8px; }
@keyframes ticker-scroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* ===== FILTER PILLS ===== */
.filters-section{ padding:40px 0 60px; }
.filter-pills{
  display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-bottom:56px;
}
.pill{
  padding:11px 22px; border-radius:30px; border:1.5px solid #E4DFF2;
  font-family:var(--font-head); font-weight:600; font-size:13px;
  text-transform:uppercase; letter-spacing:.4px; color:var(--purple-dark);
  background:#fff; transition: all .25s ease;
}
.pill:hover{ border-color:var(--purple); }
.pill.active{ background:var(--purple); border-color:var(--purple); color:#fff; box-shadow:0 8px 20px rgba(93,56,188,.3); }

/* ===== PACKAGES GRID ===== */
.packages-section{ padding:0 0 100px; }
.packages-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:28px;
}
.pkg-card{
  border-radius:16px; overflow:hidden; background:#fff;
  box-shadow:0 6px 24px rgba(16,15,28,.08);
  transition: transform .3s ease, box-shadow .3s ease;
  display:flex; flex-direction:column;
}
.pkg-card:hover{ transform:translateY(-6px); box-shadow:0 18px 36px rgba(16,15,28,.14); }
.pkg-media{ position:relative; height:220px; overflow:hidden; }
.pkg-media img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.pkg-card:hover .pkg-media img{ transform:scale(1.08); }
.pkg-tag{
  position:absolute; top:16px; left:16px;
  background:var(--green); color:#fff; font-family:var(--font-head); font-weight:700;
  font-size:11px; letter-spacing:.5px; text-transform:uppercase;
  padding:7px 14px; border-radius:20px;
}
.pkg-date{
  position:absolute; top:16px; right:16px; background:rgba(16,15,28,.75); color:#fff;
  font-family:var(--font-head); font-weight:700; font-size:11px; padding:7px 12px; border-radius:8px;
}
.pkg-body{ padding:24px; flex:1; display:flex; flex-direction:column; }
.pkg-body h3{ font-size:19px; text-transform:none; letter-spacing:0; margin-bottom:8px; }
.pkg-body p{ font-size:14px; color:#5C5470; margin-bottom:18px; flex:1; }
.pkg-footer{ display:flex; align-items:center; justify-content:space-between; padding-top:16px; border-top:1px solid #EEE9F7; }
.pkg-price b{ font-family:var(--font-head); font-weight:900; font-size:20px; color:var(--purple-dark); }
.pkg-price span{ font-size:12px; color:#8B84A0; display:block; }
.pkg-link{
  font-family:var(--font-head); font-weight:700; font-size:12px; color:var(--green);
  text-transform:uppercase; letter-spacing:.5px;
}

@media (max-width:960px){ .packages-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .packages-grid{ grid-template-columns:1fr; } }

/* ===== CALENDAR ===== */
.calendar-section{ padding:100px 0; background:var(--off-white); }
.calendar-table{ display:flex; flex-direction:column; gap:14px; }
.cal-row{
  display:grid; grid-template-columns:90px 1fr auto auto; align-items:center; gap:24px;
  background:#fff; border-radius:14px; padding:18px 22px;
  box-shadow:0 4px 16px rgba(16,15,28,.06);
  transition: transform .25s ease, box-shadow .25s ease;
}
.cal-row:hover{ transform:translateX(6px); box-shadow:0 10px 24px rgba(16,15,28,.1); }
.cal-date{
  background: var(--purple-dark); color:#fff; border-radius:10px; text-align:center; padding:10px 6px;
  font-family:var(--font-head);
}
.cal-date b{ display:block; font-size:22px; font-weight:900; }
.cal-date span{ font-size:10px; letter-spacing:1px; text-transform:uppercase; opacity:.8; }
.cal-info h4{ text-transform:none; letter-spacing:0; font-size:16px; margin-bottom:4px; }
.cal-info span{ font-size:13px; color:#8B84A0; }
.cal-sport{
  font-family:var(--font-head); font-weight:700; font-size:11px; text-transform:uppercase;
  letter-spacing:.5px; color:var(--green-dark); background:#E4F0E1; padding:6px 12px; border-radius:20px;
  justify-self:start;
}
.cal-price{ font-family:var(--font-head); font-weight:900; font-size:18px; color:var(--purple-dark); text-align:right; }
.cal-price span{ display:block; font-size:10px; font-weight:600; color:#8B84A0; text-transform:uppercase; }

@media (max-width:700px){
  .cal-row{ grid-template-columns:70px 1fr; row-gap:10px; }
  .cal-sport, .cal-price{ grid-column:2; justify-self:start; text-align:left; }
}

/* ===== EXPERIENCE 3-CARD ===== */
.experience-section{ padding:100px 0; }
.experience-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-bottom:64px; }
.exp-card{
  border-radius:18px; padding:40px 32px; color:#fff; min-height:290px;
  display:flex; flex-direction:column; justify-content:flex-end;
  position:relative; overflow:hidden;
  transition: transform .3s ease;
}
.exp-card:hover{ transform:translateY(-8px); }
.exp-card.black{ background: var(--near-black); }
.exp-card.green{ background: var(--green-dark); }
.exp-card.purple{ background: var(--purple-dark); }
.exp-num{
  position:absolute; top:24px; right:28px; font-family:var(--font-head); font-weight:900;
  font-size:60px; color:rgba(255,255,255,.08);
}
.exp-card h3{ font-size:22px; text-transform:none; letter-spacing:0; margin-bottom:10px; }
.exp-card p{ font-size:14px; color:rgba(255,255,255,.75); }

.feature-row{
  display:grid; grid-template-columns:repeat(6,1fr); gap:20px; margin-bottom:60px;
}
.feature-item{ text-align:center; }
.feature-item .icon{
  width:56px; height:56px; border-radius:14px; margin:0 auto 14px;
  background: linear-gradient(135deg, var(--purple), var(--green));
  display:flex; align-items:center; justify-content:center; font-size:22px; color:#fff;
}
.feature-item span{ font-size:12px; font-weight:600; color:#5C5470; }

@media (max-width:960px){ .experience-grid{ grid-template-columns:1fr; } .feature-row{ grid-template-columns:repeat(3,1fr); row-gap:26px; } }
@media (max-width:520px){ .feature-row{ grid-template-columns:repeat(2,1fr); } }

/* ===== CTA ===== */
.cta-section{
  position:relative; overflow:hidden;
  background: linear-gradient(135deg, var(--purple) 0%, var(--purple-dark) 100%);
  padding:110px 0; text-align:center; color:#fff;
}
.cta-blob{ position:absolute; border-radius:50%; opacity:.35; filter:blur(10px); }
.cta-blob.b1{ width:340px; height:340px; background:var(--green); top:-120px; left:-100px; }
.cta-blob.b2{ width:260px; height:260px; background:var(--green-bright); bottom:-100px; right:-60px; }
.cta-section .container{ position:relative; z-index:2; }
.cta-section h2{ color:#fff; margin-bottom:18px; }
.cta-section p{ color:rgba(255,255,255,.82); max-width:520px; margin:0 auto 40px; font-size:16px; }
.cta-actions{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }

/* ===== FOOTER ===== */
.site-footer{ background: var(--near-black); color:rgba(255,255,255,.7); padding:80px 0 0; }
.footer-grid{
  display:grid; grid-template-columns:1.5fr 0.8fr 0.8fr 0.9fr 1.3fr; gap:32px; padding-bottom:56px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.logo-image{ height:34px; width:auto; display:block; }
.footer-brand .logo-image{ height:40px; }
.footer-entity h5{
  font-family:var(--font-head); font-weight:700; font-size:13px; letter-spacing:1px;
  text-transform:uppercase; color:#fff; margin-bottom:14px;
}
.footer-entity p{ font-size:13px; color:rgba(255,255,255,.55); line-height:1.6; margin-bottom:18px; }
.footer-latam-badge{ max-width:150px; height:auto; display:block; }
.footer-brand .logo{ margin-bottom:16px; }
.footer-brand p{ font-size:14px; color:rgba(255,255,255,.55); max-width:280px; margin-bottom:20px; }
.social-row{ display:flex; gap:10px; }
.social-row a{
  width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,.18);
  display:flex; align-items:center; justify-content:center; font-size:14px;
  transition: all .25s ease;
}
.social-row a:hover{ background:var(--green); border-color:var(--green); }
.footer-col h5{
  font-family:var(--font-head); font-weight:700; font-size:13px; letter-spacing:1px;
  text-transform:uppercase; color:#fff; margin-bottom:20px;
}
.footer-col li{ margin-bottom:12px; font-size:14px; }
.footer-col a:hover{ color:var(--green-bright); }
.footer-bottom{
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px;
  padding:26px 0; font-size:12.5px; color:rgba(255,255,255,.4);
}
.footer-bottom a:hover{ color:#fff; }

.whatsapp-float{
  position:fixed; bottom:26px; right:26px; z-index:900;
  width:58px; height:58px; border-radius:50%;
  background:var(--green); color:#fff; display:flex; align-items:center; justify-content:center;
  font-size:26px; box-shadow:0 10px 26px rgba(77,127,69,.5);
  transition: transform .25s ease;
}
.whatsapp-float:hover{ transform:scale(1.08); }

@media (max-width:900px){
  .footer-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:560px){
  .footer-grid{ grid-template-columns:1fr; }
  .footer-bottom{ flex-direction:column; text-align:center; }
}

/* ===== REVEAL ON SCROLL ===== */
.reveal{ opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in{ opacity:1; transform:translateY(0); }

/* ===== PAGE HERO (inner pages) ===== */
.page-hero{
  background: linear-gradient(135deg, var(--purple) 0%, var(--purple-dark) 100%);
  padding:170px 0 70px; color:#fff; text-align:center;
}
.page-hero .eyebrow{ color:var(--green-bright); }
.page-hero h1{ color:#fff; margin-bottom:14px; }
.page-hero p{ color:rgba(255,255,255,.8); max-width:560px; margin:0 auto; font-size:16px; }

/* ===== CALENDAR PAGE (live feed) ===== */
.cal-filters{ background:#fff; border-bottom:1px solid #EEE9F7; padding:22px 0; position:sticky; top:0; z-index:50; }
.cal-filters .filter-row{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.cal-date-filter{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-left:auto; padding-left:16px; border-left:1px solid #EEE9F7; }
@media (max-width:760px){ .cal-date-filter{ margin-left:0; padding-left:0; border-left:none; width:100%; } }
.cal-date-filter label{ display:flex; align-items:center; gap:7px; font-family:var(--font-head); font-weight:600; font-size:11px; letter-spacing:.4px; text-transform:uppercase; color:#5C5470; }
.cal-date-filter input[type="date"]{ font-family:var(--font-body); font-weight:600; font-size:12.5px; color:var(--purple-dark); background:var(--off-white); border:1px solid #E4DFF2; border-radius:20px; padding:9px 14px; }
.cal-date-clear{ font-family:var(--font-head); font-weight:600; font-size:11px; letter-spacing:.4px; text-transform:uppercase; color:#5C5470; background:none; border:none; cursor:pointer; text-decoration:underline; padding:9px 4px; }
.cal-date-clear:hover{ color:var(--purple-dark); }

.cal-list-section{ max-width:1000px; margin:0 auto; padding:56px 24px 100px; }
.month-head{ font-family:var(--font-head); font-weight:700; font-size:12px; letter-spacing:2px; text-transform:uppercase; color:var(--green-dark); margin:0 0 16px; padding-top:36px; border-top:1px solid #EEE9F7; }
.month-head:first-child{ padding-top:0; border-top:none; }
.event-row{ display:grid; grid-template-columns:64px 1fr auto auto; align-items:center; gap:22px; padding:18px 20px; border-radius:14px; margin-bottom:8px; transition:background-color .25s ease; }
.event-row:hover{ background:var(--off-white); }
.event-row .ev-date{ text-align:center; }
.event-row .ev-date .ev-d{ display:block; font-family:var(--font-head); font-weight:900; font-size:22px; color:var(--purple-dark); }
.event-row .ev-date .ev-m{ display:block; font-family:var(--font-head); font-weight:700; font-size:10px; letter-spacing:1px; text-transform:uppercase; color:#8B84A0; margin-top:2px; }
.event-row .ev-info .ev-cat{ font-family:var(--font-head); font-weight:700; font-size:10.5px; letter-spacing:.5px; text-transform:uppercase; color:var(--green-dark); margin:0 0 4px; }
.event-row .ev-info h3{ font-size:15.5px; text-transform:none; letter-spacing:0; margin:0 0 4px; }
.event-row .ev-info .ev-meta{ font-family:var(--font-body); font-size:12.5px; color:#8B84A0; margin:0; }
.event-row .ev-price{ font-family:var(--font-head); font-weight:900; font-size:15px; color:var(--purple-dark); white-space:nowrap; }
.event-row .ev-cta{ font-family:var(--font-head); font-weight:700; font-size:11px; letter-spacing:.4px; text-transform:uppercase; color:var(--purple-dark); border:1.5px solid var(--purple-dark); border-radius:20px; padding:9px 16px; white-space:nowrap; transition:.25s ease; }
.event-row .ev-cta:hover{ background:var(--purple-dark); color:#fff; }
@media (max-width:700px){
  .event-row{ grid-template-columns:52px 1fr; row-gap:8px; }
  .event-row .ev-price, .event-row .ev-cta{ grid-column:2; justify-self:start; }
}
.cal-loading{ text-align:center; padding:50px 0; font-family:var(--font-head); font-weight:600; font-size:13px; letter-spacing:.5px; color:#8B84A0; }
.cal-loadmore{ text-align:center; margin-top:24px; }
.cal-note{ font-size:12.5px; color:#8B84A0; margin-top:14px; display:none; }
.cal-note.show{ display:block; }

/* ===== CALENDAR TEASER (home) ===== */
.cal-teaser{ padding:100px 0; background:var(--off-white); }
.cal-teaser-grid{ display:grid; grid-template-columns:1fr 1.1fr; gap:56px; align-items:center; }
@media (max-width:900px){ .cal-teaser-grid{ grid-template-columns:1fr; gap:36px; } }
.cal-teaser-text .section-title{ text-align:left; margin:0 0 26px; }
.cal-teaser-table{ background:#fff; border-radius:16px; overflow:hidden; box-shadow:0 10px 30px rgba(16,15,28,.08); }
.cal-teaser-head{ display:flex; align-items:center; justify-content:space-between; background:var(--purple); color:#fff; padding:16px 22px; font-family:var(--font-head); font-weight:700; font-size:11px; letter-spacing:1px; text-transform:uppercase; }
.cal-teaser-row{ display:flex; align-items:center; gap:16px; padding:16px 22px; border-bottom:1px solid #F0ECFA; }
.cal-teaser-row:last-child{ border-bottom:none; }
.cal-teaser-row .tz-date{ background:var(--purple-dark); color:#fff; border-radius:8px; text-align:center; padding:8px 10px; min-width:52px; font-family:var(--font-head); }
.cal-teaser-row .tz-date b{ display:block; font-size:17px; font-weight:900; line-height:1; }
.cal-teaser-row .tz-date span{ font-size:9px; letter-spacing:.5px; text-transform:uppercase; opacity:.8; }
.cal-teaser-row .tz-info{ flex:1; min-width:0; }
.cal-teaser-row .tz-info h4{ font-size:14.5px; text-transform:none; letter-spacing:0; margin:0 0 3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cal-teaser-row .tz-info span{ font-size:12px; color:#8B84A0; }
.cal-teaser-row .tz-price{ font-family:var(--font-head); font-weight:900; font-size:14px; color:var(--purple-dark); white-space:nowrap; }

/* ===== NUESTRA HISTORIA (home) ===== */
.story-section{ padding:100px 0 50px; }
.story-grid{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
@media (max-width:900px){ .story-grid{ grid-template-columns:1fr; gap:40px; } }
.story-text p{ color:#5C5470; font-size:16px; margin:0 0 28px; max-width:480px; }
.story-tags{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:30px; }
.story-tag{ display:flex; align-items:center; gap:8px; font-family:var(--font-body); font-weight:600; font-size:13px; color:var(--purple-dark); background:var(--off-white); border:1px solid #E4DFF2; border-radius:10px; padding:10px 16px; }
.story-stats{ display:grid; grid-template-columns:1fr 1fr; gap:4px; border-radius:18px; overflow:hidden; }
.story-stat{ padding:34px 26px; color:#fff; }
.story-stat b{ display:block; font-family:var(--font-head); font-weight:900; font-size:38px; margin-bottom:6px; }
.story-stat span{ font-size:12px; letter-spacing:1px; text-transform:uppercase; opacity:.85; }
.story-stat.c1{ background:var(--purple); }
.story-stat.c2{ background:var(--green); }
.story-stat.c3{ background:var(--green-dark); }
.story-stat.c4{ background:var(--purple-dark); }

/* ===== CONTACT PAGE ===== */
.contact-section{ padding:150px 0 100px; }
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
@media (max-width:900px){ .contact-grid{ grid-template-columns:1fr; gap:44px; } }
.contact-info h1{ margin-bottom:18px; }
.contact-info p.lede{ color:#5C5470; font-size:16px; max-width:460px; margin-bottom:30px; }
.contact-channels{ display:flex; flex-direction:column; gap:12px; margin-top:36px; }
.contact-channel{ display:flex; align-items:center; gap:14px; padding:16px 18px; background:#fff; border:1px solid #EEE9F7; border-radius:14px; transition:.25s ease; }
.contact-channel:hover{ border-color:var(--purple); box-shadow:0 10px 24px rgba(93,56,188,.1); transform:translateY(-2px); }
.contact-channel .ch-ic{ width:38px; height:38px; border-radius:50%; background:var(--off-white); display:flex; align-items:center; justify-content:center; flex-shrink:0; color:var(--purple-dark); }
.contact-channel .ch-label{ font-family:var(--font-head); font-weight:700; font-size:10.5px; letter-spacing:.5px; text-transform:uppercase; color:#8B84A0; margin-bottom:4px; }
.contact-channel .ch-value{ font-family:var(--font-head); font-weight:700; font-size:14.5px; color:var(--near-black); }

.contact-form-card{ background:var(--near-black); border-radius:20px; padding:44px; }
@media (max-width:600px){ .contact-form-card{ padding:28px 22px; } }
.contact-form-card .form-title{ font-family:var(--font-head); font-weight:800; font-size:19px; text-transform:uppercase; color:#fff; margin:0 0 8px; }
.contact-form-card .form-sub{ font-size:13.5px; color:rgba(255,255,255,.55); margin:0 0 28px; }
.cform-field{ margin-bottom:16px; }
.cform-field label{ display:block; font-family:var(--font-head); font-weight:600; font-size:10.5px; letter-spacing:.5px; text-transform:uppercase; color:rgba(255,255,255,.5); margin-bottom:8px; }
.cform-field input, .cform-field select, .cform-field textarea{
+ width:100%; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); border-radius:10px;
  padding:13px 15px; color:#fff; font-family:var(--font-body); font-size:14px; transition:.25s ease; box-sizing:border-box;
}
.cform-field input::placeholder, .cform-field textarea::placeholder{ color:rgba(255,255,255,.35); }
.cform-field input:focus, .cform-field select:focus, .cform-field textarea:focus{ outline:none; border-color:var(--green-bright); background:rgba(255,255,255,.12); }
.cform-field textarea{ resize:vertical; min-height:96px; font-family:var(--font-body); }
.cform-field select{ appearance:none; background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2'><path d='M6 9l6 6 6-6'/></svg>"); background-repeat:no-repeat; background-position:right 14px center; background-size:16px; }
.cform-field select option{ background:var(--near-black); color:#fff; }
.cform-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:520px){ .cform-row{ grid-template-columns:1fr; } }
.cform-note{ font-size:12px; color:rgba(255,255,255,.42); margin:14px 0 0; text-align:center; }
.cform-success{ display:none; text-align:center; padding:20px 0; }
.cform-success.show{ display:block; }
.cform-success .cf-check{ width:48px; height:48px; border-radius:50%; background:rgba(98,162,92,.18); display:flex; align-items:center; justify-content:center; margin:0 auto 18px; }
.cform-success h3{ font-family:var(--font-head); font-weight:800; font-size:16px; text-transform:uppercase; color:#fff; margin:0 0 10px; }
.cform-success p{ font-size:13.5px; color:rgba(255,255,255,.6); margin:0 0 22px; }

/* ===== PACKAGES: FEATURED ROW ===== */
.featured-section{ padding:150px 0 0; }
.featured-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-bottom:8px; }
@media (max-width:960px){ .featured-grid{ grid-template-columns:1fr; } }

/* ===== SPLIT SECTION (about/packages intro) ===== */
.split-section{ padding:100px 0; }
.split-grid{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
.split-grid.reverse .split-media{ order:2; }
@media (max-width:900px){ .split-grid{ grid-template-columns:1fr; gap:36px; } .split-grid.reverse .split-media{ order:0; } }
.split-media img{ border-radius:16px; width:100%; height:440px; object-fit:cover; display:block; box-shadow:0 20px 50px rgba(16,15,28,.15); }
.split-media{ position:relative; }
.split-text .section-title{ text-align:left; margin:0 0 22px; }
.split-text p{ color:#5C5470; font-size:16px; margin-bottom:18px; max-width:520px; }
.split-cta{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-top:20px; }
.split-badge{ display:inline-flex; align-items:center; gap:8px; background:var(--off-white); border:1px solid #E4DFF2; border-radius:30px; padding:11px 18px; font-size:12.5px; color:#5C5470; }
.split-badge b{ color:var(--purple-dark); }

/* ===== HERO BADGES (calendar/about) ===== */
.hero-badges{ display:flex; gap:12px; flex-wrap:wrap; justify-content:center; margin-top:26px; }
.hero-badge{ border:1px solid rgba(255,255,255,.35); border-radius:30px; padding:9px 18px; font-size:12.5px; color:#fff; background:rgba(255,255,255,.06); }
.hero-badge b{ color:var(--green-bright); }

/* ===== ICON GRID (about: international experience) ===== */
.icon-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; margin-top:44px; }
@media (max-width:900px){ .icon-grid{ grid-template-columns:repeat(2,1fr); } }
.icon-grid-item{ text-align:center; padding:34px 20px; border:1px solid #EEE9F7; border-radius:16px; transition:transform .3s ease, box-shadow .3s ease; }
.icon-grid-item:hover{ transform:translateY(-4px); box-shadow:0 14px 30px rgba(16,15,28,.08); }
.icon-grid-item .ig-icon{ width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--purple),var(--green));display:flex;align-items:center;justify-content:center;font-size:22px;color:#fff;margin:0 auto 18px; }
.icon-grid-item p{ font-size:13.5px; color:#5C5470; line-height:1.55; }

/* ===== NUMBERED CARDS (about: what we do / contact: how it works) ===== */
.numbered-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:44px; }
@media (max-width:900px){ .numbered-cards{ grid-template-columns:1fr; } }
.num-card{ background:#fff; border:1px solid #EEE9F7; border-radius:18px; padding:34px 30px; transition:transform .3s ease, box-shadow .3s ease; }
.num-card:hover{ transform:translateY(-4px); box-shadow:0 16px 34px rgba(16,15,28,.08); }
.num-card .n{ font-family:var(--font-head); font-weight:900; font-size:14px; color:var(--green-dark); margin-bottom:20px; }
.num-card .ic{ width:52px;height:52px;border-radius:50%;background:var(--near-black);display:flex;align-items:center;justify-content:center;color:#fff;font-size:20px;margin-bottom:18px; }
.num-card h3{ font-size:18px; text-transform:none; letter-spacing:0; margin-bottom:10px; }
.num-card p{ font-size:14px; color:#5C5470; line-height:1.6; }

.steps-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:32px; margin-top:44px; }
@media (max-width:900px){ .steps-3{ grid-template-columns:1fr; } }
.step-item{
  display:grid;
  grid-template-columns:44px 1fr;
  grid-template-areas:
    "num title"
    "desc desc";
  align-items:center;
  column-gap:14px;
  row-gap:8px;
}
.step-item .step-num{ grid-area:num; width:44px;height:44px;border-radius:50%;background:var(--near-black);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-head);font-weight:900;font-size:16px;margin-bottom:0; }
.step-item h3{ grid-area:title; font-size:19px; text-transform:none; letter-spacing:0; margin-bottom:0; }
.step-item p{ grid-area:desc; font-size:14px; color:#5C5470; line-height:1.6; }

/* ===== DARK CTA (about) ===== */
.dark-cta{ background:var(--near-black); color:#fff; padding:100px 0; text-align:center; }
.dark-cta h2{ color:#fff; margin-bottom:14px; }
.dark-cta p{ color:rgba(255,255,255,.65); margin-bottom:30px; }

/* ===== PACKAGES: FILTER GRID (no featured row variant) ===== */
.pkg-grid-section{ padding:80px 0 100px; }
.solid-header-page .site-header{ background: rgba(16,15,28,.92); backdrop-filter: blur(10px); box-shadow:0 4px 20px rgba(0,0,0,.25); }

/* ===== PRODUCT DETAIL PAGE ===== */
.back-link{ display:inline-flex; align-items:center; gap:8px; font-family:var(--font-head); font-weight:600; font-size:12.5px; letter-spacing:.4px; text-transform:uppercase; color:var(--purple-dark); }
.back-link:hover{ color:var(--green-dark); }
.detail-section{ padding:20px 0 100px; }
.detail-grid{ display:grid; grid-template-columns:2fr 1fr; gap:56px; align-items:start; }
@media (max-width:900px){ .detail-grid{ grid-template-columns:1fr; gap:36px; } }
.detail-prose h3{ font-size:19px; text-transform:none; letter-spacing:0; margin:28px 0 12px; color:var(--purple-dark); }
.detail-prose h3:first-child{ margin-top:0; }
.detail-prose p{ color:#5C5470; font-size:15.5px; line-height:1.7; margin-bottom:16px; }
.detail-prose ul{ margin:0 0 20px; }
.detail-prose li{ position:relative; padding-left:28px; margin-bottom:10px; color:#5C5470; font-size:15px; line-height:1.6; }
.detail-prose li::before{ content:'\2713'; position:absolute; left:0; top:0; color:var(--green); font-weight:900; }
.detail-info-card{ background:var(--off-white); border:1px solid #E4DFF2; border-radius:18px; padding:32px; position:sticky; top:120px; }
.detail-info-card h4{ font-size:12.5px; letter-spacing:1px; text-transform:uppercase; color:var(--purple-dark); margin-bottom:6px; }
.detail-info-row{ display:flex; gap:12px; padding:14px 0; border-top:1px solid #E4DFF2; align-items:flex-start; }
.detail-info-row .di-ic{ font-size:18px; line-height:1.3; }
.detail-info-row .di-label{ font-size:10.5px; text-transform:uppercase; letter-spacing:.5px; color:#8B84A0; margin-bottom:2px; }
.detail-info-row .di-value{ font-family:var(--font-head); font-weight:700; font-size:14px; color:var(--near-black); line-height:1.3; }

/* ===== LANGUAGE SWITCH ===== */
.lang-switch{ display:flex; align-items:center; gap:2px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.2); border-radius:20px; padding:3px; margin-right:6px; }
.lang-switch button,.lang-switch a{ font-family:var(--font-head); font-weight:700; font-size:11px; letter-spacing:.4px; color:rgba(255,255,255,.65); background:transparent; border-radius:16px; padding:6px 12px; transition:.2s ease; text-decoration:none; cursor:pointer; }
.lang-switch button.active,.lang-switch a.active{ background:var(--green); color:#fff; }
.lang-switch button:hover:not(.active),.lang-switch a:hover:not(.active){ color:#fff; }
.solid-header-page .lang-switch{ background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.2); }
@media (max-width:900px){ .lang-switch{ margin-right:4px; } .lang-switch button,.lang-switch a{ padding:5px 9px; font-size:10px; } }

.cal-teaser-note{ color:#8B84A0; font-size:14px; line-height:1.6; margin-top:22px; max-width:520px; }

@media (max-width:900px){ .feature-row{ display:none; } }

/* ===== TESTIMONIALS ===== */
.testimonials-section{ padding:100px 0; background:var(--off-white); }
.testimonials-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:56px; }
.testi-card{ background:#fff; border-radius:16px; padding:36px 32px; box-shadow:0 10px 30px rgba(16,15,28,.06); display:flex; flex-direction:column; gap:18px; }
.testi-stars{ color:var(--green-bright); font-size:16px; letter-spacing:3px; }
.testi-quote{ font-size:15.5px; line-height:1.65; color:var(--near-black); flex:1; }
.testi-name{ font-family:var(--font-head); font-weight:700; font-size:14px; color:var(--purple-dark); }
@media (max-width:900px){ .testimonials-grid{ grid-template-columns:1fr; } }

.page-hero h1.hero-h1-lg{ font-size:clamp(38px,6vw,64px); max-width:820px; margin:0 auto 18px; }
.blog-hero h1.hero-h1-lg, .blog-post-hero h1.hero-h1-lg{ font-size:clamp(38px,6vw,64px); }


/* ===== EVENT DETAIL PAGE (dynamic, no photo fallback) ===== */
.split-media-placeholder{
  border-radius:16px; height:440px; width:100%;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, var(--purple) 0%, var(--purple-dark) 100%);
  box-shadow:0 20px 50px rgba(16,15,28,.15);
}
.split-media-placeholder .split-media-icon{ font-size:110px; filter:drop-shadow(0 10px 20px rgba(0,0,0,.25)); }
@media (max-width:900px){ .split-media-placeholder{ height:220px; } .split-media-placeholder .split-media-icon{ font-size:70px; } }


/* Newsletter popup */
.nl-popup-overlay{position:fixed;inset:0;background:rgba(20,10,40,.55);backdrop-filter:blur(2px);z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .3s ease;}
.nl-popup-overlay.open{opacity:1;pointer-events:auto;}
.nl-popup{background:#fff;border-radius:16px;max-width:420px;width:100%;padding:36px 32px 28px;position:relative;box-shadow:0 30px 80px rgba(20,10,40,.35);transform:translateY(16px) scale(.98);transition:transform .3s ease;}
.nl-popup-overlay.open .nl-popup{transform:translateY(0) scale(1);}
.nl-popup-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border:none;background:rgba(0,0,0,.05);border-radius:50%;font-size:18px;line-height:1;cursor:pointer;color:#555;transition:background .2s ease;}
.nl-popup-close:hover{background:rgba(0,0,0,.1);}
.nl-popup-eyebrow{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--purple-dark);opacity:.75;margin:0 0 8px;}
.nl-popup h3{font-size:22px;line-height:1.25;margin:0 0 10px;color:var(--purple-dark);font-family:var(--font-head);}
.nl-popup-desc{font-size:14px;line-height:1.5;color:#555;margin:0 0 20px;}
.nl-popup-form{display:flex;gap:8px;flex-wrap:wrap;}
.nl-popup-input{flex:1 1 200px;min-width:0;padding:12px 14px;border:1px solid rgba(0,0,0,.15);border-radius:8px;font-size:14px;font-family:var(--font-body);}
.nl-popup-input:focus{outline:2px solid var(--green);outline-offset:1px;}
.nl-popup-submit{padding:12px 20px;border:none;border-radius:8px;background:var(--purple-dark);color:#fff;font-weight:600;font-size:14px;cursor:pointer;transition:background .2s ease;white-space:nowrap;}
.nl-popup-submit:hover{background:var(--purple);}
.nl-popup-submit:disabled{opacity:.6;cursor:not-allowed;}
.nl-popup-fine{font-size:11px;color:#999;margin-top:14px;line-height:1.4;}
.nl-popup-msg{font-size:14px;margin-top:12px;display:none;}
.nl-popup-msg.show{display:block;}
.nl-popup-msg.success{color:var(--green-dark);}
.nl-popup-msg.error{color:#b3261e;}
.nl-popup-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
@media (max-width:480px){.nl-popup{padding:28px 22px 22px;}.nl-popup-form{flex-direction:column;}.nl-popup-submit{width:100%;}}

/* ===== BLOG ===== */
.blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.blog-card{ border-radius:16px; overflow:hidden; background:#fff; box-shadow:0 6px 24px rgba(16,15,28,.08); transition:transform .3s ease, box-shadow .3s ease; display:flex; flex-direction:column; }
.blog-card:hover{ transform:translateY(-6px); box-shadow:0 18px 36px rgba(16,15,28,.14); }
.blog-media{ position:relative; height:200px; overflow:hidden; background:var(--off-white); }
.blog-media img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.blog-card:hover .blog-media img{ transform:scale(1.08); }
.blog-tag{ position:absolute; top:16px; left:16px; background:var(--green); color:#fff; font-family:var(--font-head); font-weight:700; font-size:11px; letter-spacing:.5px; text-transform:uppercase; padding:7px 14px; border-radius:20px; max-width:75%; }
.blog-date{ position:absolute; top:16px; right:16px; background:rgba(16,15,28,.75); color:#fff; font-family:var(--font-head); font-weight:700; font-size:11px; padding:7px 12px; border-radius:8px; }
.blog-body{ padding:24px; flex:1; display:flex; flex-direction:column; }
.blog-body h3{ font-size:18px; line-height:1.35; text-transform:none; letter-spacing:0; margin-bottom:10px; }
.blog-body p{ font-size:14px; color:#5C5470; margin-bottom:18px; flex:1; }
.blog-readmore{ font-family:var(--font-head); font-weight:700; font-size:12px; color:var(--green); text-transform:uppercase; letter-spacing:.5px; }
@media (max-width:960px){ .blog-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .blog-grid{ grid-template-columns:1fr; } }

.blog-hero{ padding:170px 0 60px; background:linear-gradient(135deg, var(--purple) 0%, var(--purple-dark) 100%); color:#fff; }
.blog-hero .container{ max-width:800px; text-align:center; margin-left:auto; margin-right:auto; }
.blog-hero .eyebrow{ display:block; margin-bottom:14px; color:var(--green-bright); }
.blog-hero h1{ color:#fff; }
.blog-hero p.lead{ font-size:17px; color:rgba(255,255,255,.8); margin-top:14px; }

.blog-post-hero{ position:relative; padding:170px 0 70px; background:linear-gradient(135deg, var(--purple) 0%, var(--purple-dark) 100%); color:#fff; }
.blog-post-hero .back-link{ color:rgba(255,255,255,.85); }
.blog-post-hero h1{ color:#fff; }
.blog-post-hero .blog-meta-date{ color:rgba(255,255,255,.75); }
.blog-post-media{ box-shadow:0 20px 50px rgba(0,0,0,.3); }
.blog-post-media{ width:100%; height:420px; border-radius:20px; overflow:hidden; margin-top:28px; }
.blog-post-media img{ width:100%; height:100%; object-fit:cover; }
.blog-meta-row{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin:18px 0 6px; }
.blog-meta-cat{ background:var(--green); color:#fff; font-family:var(--font-head); font-weight:700; font-size:11px; letter-spacing:.5px; text-transform:uppercase; padding:6px 14px; border-radius:20px; }
.blog-meta-date{ font-size:13px; color:#8B84A0; font-weight:600; }

.blog-article{ max-width:760px; margin:0 auto; padding:50px 0 20px; }
.blog-article h2{ font-family:var(--font-head); font-weight:800; font-size:26px; color:var(--purple-dark); margin:38px 0 16px; }
.blog-article h3{ font-family:var(--font-head); font-weight:700; font-size:21px; color:var(--purple-dark); margin:30px 0 14px; }
.blog-article p{ font-size:16px; line-height:1.75; color:#3A3550; margin-bottom:20px; }
.blog-article p.has-medium-font-size{ font-size:17px; }
.blog-article strong{ color:var(--purple-dark); }
.blog-article a{ color:var(--green); text-decoration:underline; }
.blog-article figure{ margin:32px 0; }
.blog-article img{ width:100%; height:auto; border-radius:14px; display:block; }
.blog-article figcaption{ font-size:12px; color:#8B84A0; margin-top:8px; text-align:center; }
.blog-article ul, .blog-article ol{ margin:0 0 20px 22px; color:#3A3550; font-size:16px; line-height:1.75; }
.blog-article li{ margin-bottom:8px; }
.blog-article blockquote{ border-left:3px solid var(--green); padding:4px 0 4px 20px; margin:28px 0; font-style:italic; color:#5C5470; }

@media (max-width:640px){
  .blog-hero{ padding:150px 0 40px; }
  .blog-post-hero{ padding:150px 0 0; }
  .blog-post-media{ height:240px; }
  .blog-article h2{ font-size:22px; }
  .blog-article p, .blog-article ul, .blog-article ol{ font-size:15px; }
}
/* ===== INLINE NOTIFY (calendar CTA + TBC date on product pages) ===== */
.notify-strip{ margin-top:18px; padding:16px 18px; border-radius:12px; background:#fff; border:1px dashed var(--purple); }
.notify-strip-text{ font-size:13px; color:var(--purple-dark); font-weight:600; margin-bottom:10px; line-height:1.4; }
.notify-form{ display:flex; gap:8px; flex-wrap:wrap; }
.notify-input{ flex:1 1 160px; min-width:0; padding:11px 13px; border:1px solid rgba(0,0,0,.15); border-radius:8px; font-size:13.5px; font-family:var(--font-body); }
.notify-input:focus{ outline:2px solid var(--green); outline-offset:1px; }
.notify-submit{ padding:11px 18px; border:none; border-radius:8px; background:var(--purple-dark); color:#fff; font-weight:600; font-size:13.5px; cursor:pointer; transition:background .2s ease; white-space:nowrap; }
.notify-submit:hover{ background:var(--purple); }
.notify-submit:disabled{ opacity:.6; cursor:not-allowed; }
.notify-msg{ font-size:13px; margin-top:8px; display:none; }
.notify-msg.show{ display:block; }
.notify-msg.success{ color:var(--green-dark); }
.notify-msg.error{ color:#b3261e; }
.notify-hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.cta-section .notify-intro{ color:rgba(255,255,255,.82); font-size:14px; margin:0 auto 16px; }
.cta-divider{ display:flex; align-items:center; gap:14px; max-width:280px; margin:36px auto 22px; }
.cta-divider::before, .cta-divider::after{ content:""; flex:1; height:1px; background:rgba(255,255,255,.22); }
.cta-divider span{ font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.55); font-weight:600; }

.cta-section .notify-form{ max-width:460px; margin:0 auto; }
.cta-section .notify-input{ background:rgba(255,255,255,.95); }
.cta-section .notify-msg{ color:#fff; }
.cta-section .notify-msg.success{ color:#BFE7B4; }
.cta-section .notify-msg.error{ color:#FFC9C2; }
\@media (max-width:480px){ .notify-form{ flex-direction:column; } .notify-submit{ width:100%; } }

.cform-checkbox{ display:flex; align-items:flex-start; gap:9px; font-size:13px; color:#6b6480; line-height:1.4; margin:2px 0 18px; cursor:pointer; }
.cform-checkbox input[type=checkbox]{ margin-top:2px; width:16px; height:16px; accent-color:var(--purple); flex-shrink:0; cursor:pointer; }


/* ===== COOKIE CONSENT BANNER ===== */
.cookie-banner{ position:fixed; left:0; right:0; bottom:0; z-index:999; background:var(--near-black); color:rgba(255,255,255,.85); padding:18px 24px; display:flex; align-items:center; justify-content:center; gap:24px; flex-wrap:wrap; box-shadow:0 -4px 20px rgba(0,0,0,.25); transform:translateY(100%); transition:transform .4s ease; }
.cookie-banner.show{ transform:translateY(0); }
.cookie-banner p{ margin:0; font-size:13.5px; max-width:620px; line-height:1.5; }
.cookie-banner a{ color:#fff; text-decoration:underline; }
.cookie-banner-actions{ display:flex; gap:10px; flex-shrink:0; }
.cookie-banner-decline{ background:transparent; border:1px solid rgba(255,255,255,.3); color:rgba(255,255,255,.85); padding:9px 16px; border-radius:8px; font-size:13px; font-weight:600; cursor:pointer; white-space:nowrap; }
.cookie-banner-decline:hover{ border-color:rgba(255,255,255,.6); }
.cookie-banner-accept{ background:var(--green); border:none; color:#fff; padding:9px 18px; border-radius:8px; font-size:13px; font-weight:600; cursor:pointer; transition:background .2s ease; white-space:nowrap; }
.cookie-banner-accept:hover{ background:var(--green-dark); }
@media (max-width:640px){ .cookie-banner{ flex-direction:column; text-align:center; gap:14px; padding:16px 20px 20px; } .cookie-banner-actions{ width:100%; justify-content:center; } }
