/* ========== BASE ========== */
:root{ --blue:#003366; --text:#333; }
* { box-sizing: border-box; }

html { background:#fff; }
html::before{ content:""; position:fixed; inset:0; background:url("playa.jpg") no-repeat center/cover; opacity:.30; z-index:0; }
body{ position:relative; z-index:1; font-family:'Raleway',sans-serif; margin:0; padding:20px; text-align:center; background:transparent; color:var(--text); }
html, body { overflow-x: hidden; }

/* ========== TIPOGRAFÍA CABECERA ========== */
.hero-title{
  font-family:'Dancing Script', serif; font-weight:600;
  font-size:clamp(36px,5vw,72px); letter-spacing:.02em;
  margin:28px 0 14px; line-height:1.2; display:inline-block;
  color:var(--blue); text-shadow:0 2px 6px rgba(0,0,0,.15), 0 4px 12px rgba(0,0,0,.12);
  opacity:0; transform:translateY(-6px); animation:heroFadeUp .7s ease-out forwards;
  overflow:visible; padding-bottom:.15em;
}
.hero-title::before{
  content:""; position:absolute; top:-2px; left:-60%; width:50%; height:110%;
  background:linear-gradient(120deg, transparent 0%, rgba(255,255,255,.6) 50%, transparent 100%);
  transform:skewX(-24deg); animation:heroShimmer 4s linear infinite; pointer-events:none;
}
.sub{ font-family:'Edu NSW ACT Foundation', cursive; margin-bottom:28px; color:#555; font-size:18px; }

@keyframes heroFadeUp{ to{ opacity:1; transform:translateY(0); } }
@keyframes heroShimmer{ 0%{left:-60%} 55%{left:120%} 100%{left:120%} }

/* CTA wrapper */
.cta-wrap{
  text-align:center;
  margin: clamp(28px, 8vh, 120px) 0 0;   /* ↑ más aire arriba */
}
/* ===== Botón “Iniciar la travesía” (único y definitivo) ===== */
.start-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  margin:28px auto 12px; padding:16px 36px;
  font-family:'Cinzel Decorative',serif; font-weight:700; font-size:1.25rem; letter-spacing:.3px;
  color:#0b3356; text-shadow:0 1px 0 rgba(255,255,255,.6);
  background:linear-gradient(to bottom right, rgba(255,255,255,.28), rgba(255,255,255,.18));
  border:2px solid rgba(11,51,86,.25); border-radius:999px;
  backdrop-filter: blur(8px) saturate(120%); -webkit-backdrop-filter: blur(8px) saturate(120%);
  cursor:pointer; position:relative; overflow:hidden;
  box-shadow:0 6px 20px rgba(11,51,86,.18), inset 0 1px 0 rgba(255,255,255,.6);
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
  text-decoration:none !important;
}
.start-btn:hover{
  transform: translateY(-1px) scale(1.03);
  background:linear-gradient(to bottom right, rgba(255,255,255,.34), rgba(255,255,255,.22));
  box-shadow:0 10px 28px rgba(11,51,86,.22), inset 0 1px 0 rgba(255,255,255,.75);
}
.start-btn::before{
  content:""; position:absolute; inset:-80%; width:260%; height:260%;
  background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.55), transparent 55%);
  animation: spinGlow 6s linear infinite; pointer-events:none;
}
.start-btn::after{
  content:""; position:absolute; top:0; left:-120%; width:120%; height:100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.65), transparent);
  transform: skewX(-20deg); animation: sweep 3.8s ease-in-out infinite; pointer-events:none;
}
@keyframes spinGlow{ to{ transform: rotate(360deg); } }
@keyframes sweep{ 0%{left:-130%;opacity:0} 35%{left:110%;opacity:.9} 100%{left:110%;opacity:0} }

/* ========== TIMELINE ========== */
.timeline{ display:flex; gap:20px; flex-wrap:wrap; justify-content:center; perspective:1000px; perspective-origin:50% 30%; }
.day{
  position:relative; overflow:hidden; width:200px; min-height:160px; border-radius:15px;
  padding:30px 20px; cursor:pointer; color:#fff; text-shadow:1px 1px 3px rgba(0,0,0,.6);
  box-shadow:0 5px 15px rgba(0,0,0,.2); transform-style:preserve-3d;
  transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease, filter .35s ease;
  --accent:#003366; border-bottom:4px solid var(--accent);
  background: linear-gradient(135deg, #dfe9f3, #ffffff);
}
.day::after{ content:""; position:absolute; inset:0; background: radial-gradient(120% 80% at 50% -20%, rgba(255,255,255,.28), transparent 60%); opacity:0; pointer-events:none; transition: opacity .35s ease; }
.day:hover, .day:focus{ transform: translateY(-6px) rotateX(6deg); box-shadow:0 16px 40px rgba(0,0,0,.28); filter:saturate(1.12); }
.day:hover::after, .day:focus::after{ opacity:1; }
.day:focus{ outline:0; }
.day h3{ margin:0; font-family:'Playfair Display',serif; font-weight:700; font-size:20px; line-height:1.2; }
@media (max-width:768px){ .timeline{ gap:12px; } .day{ width:calc(50% - 12px); min-height:130px; padding:22px 14px; } .day h3{ font-size:18px; } }
@media (max-width:420px){ .day{ width:100%; min-height:120px; } .day h3{ font-size:16px; } }

/* ========== COUNTDOWN (más transparente) ========== */
.countdown{ --cd-accent:var(--blue); max-width:920px; margin: clamp(90px, 14vh, 220px) auto 28px !important; padding:0 !important; border-radius:0 !important; background:transparent !important; box-shadow:none !important; backdrop-filter:none !important; -webkit-backdrop-filter:none !important; position:relative; isolation:isolate; }
.countdown::before{ display:none !important; }
.countdown .cd-title{ font-family:'Playfair Display',serif; color:var(--cd-accent); font-weight:700; font-size:clamp(20px,2.6vw,28px); letter-spacing:.02em; text-align:center; margin-bottom:10px; }
.cd-odometer{ display:flex; align-items:flex-end; justify-content:center; gap:8px; flex-wrap:nowrap; white-space:nowrap; perspective:900px; }
.cd-box{
  min-width:92px; padding:10px 8px; border-radius:14px;
  background:rgba(255,255,255,0.18) !important; border:1px solid rgba(255,255,255,0.35) !important;
  box-shadow:0 6px 18px rgba(0,0,0,.10) !important;
  text-align:center; position:relative; overflow:hidden; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.cd-box span{ display:block; font-family:'Playfair Display',serif; font-weight:800; font-variant-numeric:tabular-nums; font-size:clamp(32px,6.5vw,56px); line-height:.95; color:var(--cd-accent); transform-origin:center bottom; }
.cd-box small{ display:block; margin-top:4px; font-size:12px; color:rgba(53,85,122,0.85) !important; }
.cd-sep{ font-size:clamp(20px,5vw,28px); margin:0 2px; line-height:1; color:rgba(42,74,109,0.7) !important; opacity:.7 !important; animation: sepBlink 1s step-end infinite; }
@keyframes sepBlink{ 0%,49%{opacity:.2} 50%,100%{opacity:.8} }
.cd-box span.flip{ animation: flipin 500ms cubic-bezier(.2,.7,.2,1); transform-style:preserve-3d; }
@keyframes flipin{ 0%{transform: rotateX(-70deg); opacity:.2} 55%{transform: rotateX(12deg); opacity:1} 100%{transform: rotateX(0); opacity:1} }
.cd-progress{ margin-top:12px; }
.cd-progress-bar{ position:relative; height:8px; border-radius:999px; overflow:hidden; background:rgba(255,255,255,0.22) !important; }
.cd-progress-fill{ display:block; height:100%; width:0%; background: linear-gradient(90deg, #0066cc, #00c6ff, #7fe7ff); border-radius:999px; box-shadow:0 2px 10px rgba(0,198,255,.35) !important; transition: width .6s cubic-bezier(.2,.8,.2,1); background-size:200% 100%; animation: progressFlow 3s linear infinite; }
@keyframes progressFlow{ from{background-position:0% 50%} to{background-position:200% 50%} }
.countdown.urgent{ --cd-accent:#b00020; }
.countdown .cd-note{ margin-top:10px; font-size:14px; color:#35557a; }
@media (max-width:600px){ .cd-box{ min-width:78px; padding:8px 6px; background:rgba(255,255,255,0.22) !important; } .cd-box span{ font-size:clamp(28px,8vw,44px); } .cd-sep{ font-size:clamp(18px,7vw,24px); margin:0 1px; } }
@media (max-width:380px){ .cd-box{ min-width:68px; } .cd-box span{ font-size:28px; } .cd-sep{ font-size:20px; } }

/* ===================== PREMIUM ADD-ONS (resumen) ===================== */
.pv-wrap{ width:100%; margin-inline:auto; max-width:1100px; padding:clamp(28px,4vw,48px); }
.pv-title{ font-size:clamp(28px,4vw,42px); line-height:1.08; color:var(--text); letter-spacing:.4px; margin:0 0 14px 0; }
.pv-sub{ color:#555; font-size:clamp(15px,1.7vw,18px); margin:0 0 20px 0; }
.pv-chip{ display:inline-flex; gap:.6ch; align-items:center; padding:8px 12px; border-radius:999px; background:linear-gradient(180deg,#e7dfcf,transparent); border:1px solid rgba(201,162,39,.35); color:var(--text); font-size:13px; margin-bottom:18px; user-select:none; }

/* Dresscode chips */
#dresscode, #dresscode.dc-section{ background:transparent !important; box-shadow:none !important; border:0 !important; overflow:visible !important; }
#dresscode::before, #dresscode::after{ content:none !important; }

.dc-quick-row{ display:flex; gap:clamp(12px,1.6vw,18px); align-items:stretch; overflow-x:auto; padding:8px 2px 2px; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; }
.dc-quick-row::-webkit-scrollbar{ height:8px; }
.dc-quick-row::-webkit-scrollbar-thumb{ background:linear-gradient(90deg, rgba(201,162,39,.6), rgba(201,162,39,.25)); border-radius:999px; }

.tip-card{
  position:relative; scroll-snap-align:start; min-width:clamp(250px,28vw,360px);
  display:grid; grid-template-columns:28px 1fr; gap:10px; padding:14px 16px; border-radius:16px;
  background:rgba(255,255,255,.26); border:1px solid rgba(201,162,39,.45);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  box-shadow:0 8px 28px rgba(15,23,42,.10); transition: transform .18s ease, box-shadow .18s ease, background .18s ease; isolation:isolate;
}
.tip-card:hover{ transform: translateY(-2px); background: rgba(255,255,255,.34); box-shadow:0 14px 40px rgba(15,23,42,.16); }
.tip-card::before{ content:""; position:absolute; inset:-1px; border-radius:16px; background: conic-gradient(from 140deg, rgba(201,162,39,.38), rgba(255,215,130,.3), rgba(201,162,39,.38)); filter: blur(10px); opacity:.35; z-index:-1; transition: opacity .25s ease; }
.tip-card:hover::before{ opacity:.55; }
.tip-card .shine{ position:absolute; inset:-2px; border-radius:inherit; background: linear-gradient(120deg, transparent 30%, rgba(255,240,195,.55) 50%, transparent 70%); transform: translateX(-120%); transition: transform .7s ease; pointer-events:none; }
.tip-card:hover .shine{ transform: translateX(120%); }
.tip-card .sparkle{ position:absolute; width:7px; height:7px; border-radius:50%; background: radial-gradient(circle, #ffd776 0%, #f1c24b 40%, rgba(241,194,75,0) 70%); filter: blur(.2px); animation: sparkleFloat 2.6s ease-in-out infinite; pointer-events:none; opacity:.9; }
.tip-card .sparkle.s1{ top:10%; right:14%; animation-delay:.1s; }
.tip-card .sparkle.s2{ bottom:12%; left:10%; animation-delay:.8s; }
@keyframes sparkleFloat{ 0%{ transform:translateY(0) scale(1); opacity:0; } 15%{ opacity:1; } 50%{ transform:translateY(-6px) scale(1.12);} 100%{ transform:translateY(-12px) scale(.92); opacity:0; } }
.tip-icon{ font-size:18px; line-height:1; margin-top:2px; }
.tip-title{ margin:0 0 4px 0; font-weight:700; font-size:15px; letter-spacing:.02em; color:var(--text); }
.tip-text{ margin:0; font-size:14px; color:#273445; }
@media (min-width:980px){ .dc-quick-row{ flex-wrap:wrap; } .tip-card{ min-width:min(360px,45%); } }

/* Lookbook */
.lb-section{ margin-top:44px; }
.lb-grid{ display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(10px,1.2vw,16px); }
.lb-card{ grid-column:span 4; border-radius:18px; overflow:clip; background:#fff; border:1px solid rgba(231,223,207,.7); box-shadow:0 6px 30px rgba(15,23,42,.10); transition: transform .18s ease, box-shadow .18s ease; }
.lb-card img{ width:100%; height:auto; display:block; }
.lb-meta{ padding:12px 14px 16px 14px; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.lb-meta .label{ color:#666; font-size:13px; }
.lb-meta .tag{ font-size:12px; padding:6px 10px; border-radius:999px; background:linear-gradient(180deg,#e7dfcf,transparent); border:1px solid rgba(201,162,39,.4); color:var(--text); white-space:nowrap; }
@media (max-width:1100px){ .lb-card{ grid-column: span 6; } }
@media (max-width:680px){ .lb-card{ grid-column: span 12; } }

/* FAQ */
.faq-section{ margin-top:54px; }
.faq-list{ display:grid; gap:12px; }
.faq-item{ border:1px solid rgba(231,223,207,.7); border-radius:14px; background:#fff; box-shadow:0 6px 30px rgba(15,23,42,.10); overflow:clip; }
.faq-q{ cursor:pointer; padding:16px 18px; display:grid; grid-template-columns:1fr auto; align-items:center; gap:10px; user-select:none; }
.faq-q h4{ margin:0; font-size:16px; color:var(--text); }
.pv-icon{ transition:transform .18s ease; }
.faq-a{ padding:0 18px 16px 18px; color:#555; font-size:15px; line-height:1.5; display:grid; grid-template-rows:0fr; transition:grid-template-rows .42s ease; }
.faq-a>div{ overflow:hidden; }
.faq-item[aria-expanded="true"] .faq-a{ grid-template-rows:1fr; }
.faq-item[aria-expanded="true"] .pv-icon{ transform: rotate(180deg); }

/* Reveal on scroll */
.reveal{ opacity:0; transform:translateY(16px); transition: opacity .42s ease, transform .42s ease; }
.reveal.is-in{ opacity:1; transform:translateY(0); }

/* ===================== PANEL INLINE OUTFIT ===================== */
.op{ --accent:var(--blue); width:100%; margin:22px auto 10px; max-width:1100px; transition:grid-template-rows .4s ease, opacity .25s ease, transform .25s ease; display:grid; grid-template-rows:0fr; opacity:0; transform:translateY(-8px); }
.op.is-open{ grid-template-rows:1fr; opacity:1; transform:translateY(0); }
.op-inner{ overflow:clip; border-radius:16px; border:1px solid rgba(231,223,207,.8); background:rgba(255,255,255,.78); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); box-shadow:0 10px 40px rgba(15,23,42,.12); }
.op[hidden]{ display:grid; }

.op-head{ position:relative; display:grid; grid-template-columns:1fr 1fr 1fr; align-items:center; gap:12px; text-align:initial; margin:0 0 18px; }
.op-head .op-chip{ grid-column:1; justify-self:start; }
#opTitle.op-title{ grid-column:1 / -1; grid-row:1; justify-self:center; text-align:center; margin:0; font-family:'Cinzel Decorative','Playfair Display',serif; font-weight:700; letter-spacing:.02em; font-size:clamp(22px, 2.8vw, 36px); color:var(--text); }
#opModeBadge.op-badge{
  grid-column:1 / -1; grid-row:2; justify-self:center; margin-top:8px;
  font-family:'Raleway',system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif !important;
  font-weight:700; font-size:clamp(16px,1.7vw,20px); letter-spacing:.02em; text-transform:none !important;
  padding:8px 14px; color:#0f172a; background:rgba(255,255,255,.22); border:1px solid rgba(201,162,39,.35); border-radius:999px; backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
} /* <-- esta llave faltaba en tu CSS y rompía todo */
.op.is-night #opModeBadge.op-badge{ background:rgba(15,25,45,.30); border-color:rgba(201,162,39,.28); color:#e8eef8; }

.op-close{ position:absolute; top:6px; right:6px; z-index:5; appearance:none; border:1px solid rgba(255,255,255,.55); background:rgba(255,255,255,.45); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); color:#0f172a; width:36px; height:36px; border-radius:999px; line-height:1; font-size:20px; cursor:pointer; box-shadow:0 10px 28px rgba(0,0,0,.2); }
.op-close:hover{ transform:scale(1.06); }

.op-controls{ display:flex; gap:14px; justify-content:center; padding:8px 16px 16px 16px; }
.seg{ display:inline-flex; gap:6px; padding:4px; border-radius:999px; border:1px solid rgba(0,0,0,.08); background:#fff; box-shadow: inset 0 0 0 1px rgba(201,162,39,.25); }
.seg-btn{ appearance:none; border:none; cursor:pointer; font:inherit; padding:8px 14px; border-radius:999px; transition: transform .15s ease, box-shadow .15s ease, background .15s ease; background:transparent; }
.seg-btn.is-active{ background: linear-gradient(180deg, rgba(231,223,207,.7), rgba(231,223,207,.35)); box-shadow: 0 6px 18px rgba(201,162,39,.25), inset 0 0 0 1px rgba(201,162,39,.5); }

.op-body{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:clamp(14px,3vw,22px); padding:18px 20px 24px 20px; }
@media (max-width:900px){ .op-body{ grid-template-columns:1fr; } }

.op-viewport{
   position:relative;
  height:clamp(320px,70vh,820px); /* antes era 260–620px */
  border-radius:14px;
  background:#eee center/contain no-repeat; /* usamos contain para que quepa entera */
  /* ← control global por variable (cover por defecto) */
  background-size: var(--bg-fit, contain);
  background-position: center;
  background-repeat: no-repeat;

border:1px solid rgba(231,223,207,.8);
  overflow:hidden;
  box-shadow:0 10px 30px rgba(15,23,42,.10);
  will-change:background-position;
}
.op-viewport:focus{ outline:2px solid rgba(201,162,39,.6); outline-offset:2px; }
.op-help{ position:absolute; left:10px; bottom:10px; font-size:12px; padding:6px 10px; border-radius:999px; background:rgba(255,255,255,.8); box-shadow:0 6px 24px rgba(0,0,0,.12); z-index:2; }

.op-meta{ text-align:left; background:#fff; border:1px solid rgba(231,223,207,.8); border-radius:14px; padding:14px 14px 16px 14px; box-shadow:0 10px 30px rgba(15,23,42,.10); }
.op-subtitle{ margin:0 0 6px 0; font-weight:700; color:var(--text); }
.op-desc{margin: 0 0 14px 0;            /* más espacio inferior */
  color: #2d3a4a;                
  font-style: italic;            /* cursiva elegante */
  font-size: 1.05rem;            /* un pelín más grande */
  line-height: 1.55;             /* más respiración entre líneas */
  font-family: 'Georgia', serif; /* toque editorial/literario */
  opacity: 0.95;                 /* suavidad */
}
.op-bullets{ margin:0; padding-left:18px; line-height:1.55; color:#444; }
.op-tags{ margin-top:10px; display:flex; gap:6px; flex-wrap:wrap; }
.op-tag{ font-size:12px; padding:6px 10px; border-radius:999px; background: rgba(0,51,102,.06); color:#0e2742; border:1px dashed rgba(0,51,102,.15); }

/* Tema noche */
.op.is-night .op-inner{ background: linear-gradient(180deg, rgba(10,16,28,.70), rgba(12,12,18,.74)); color:#ecf3ff; }
.op.is-night .op-meta{ background:#0f1624; color:#e8eeff; border-color: rgba(231,223,207,.18); }
.op.is-night .op-tags .op-tag{ background: rgba(255,255,255,.08); color:#eaf1ff; border-color: rgba(255,255,255,.18); }

/* FX día/noche */
.op-fx{ position:absolute; inset:-12%; pointer-events:none; overflow:hidden; z-index:1; }
.fx-sun::before{ content:""; position:absolute; left:50%; top:50%; width:180px; height:180px; border-radius:50%; background: radial-gradient(circle, #fffbe6 0 45%, rgba(255,245,200,0) 60%); transform:translate(-50%,-50%) scale(.35); filter:blur(2px); mix-blend-mode:screen; opacity:0; animation: sunPulse 1s ease-out forwards; }
.fx-sun::after{ content:""; position:absolute; left:50%; top:50%; width:160vmax; height:160vmax; border-radius:50%; background: conic-gradient(from 0deg, rgba(255,230,120,0) 0deg, rgba(255,230,120,.35) 8deg, rgba(255,230,120,0) 16deg); transform: translate(-50%,-50%) rotate(-30deg) scale(.85); filter: blur(10px) saturate(1.1); mix-blend-mode: screen; opacity: 0; animation: sunRays 1.05s cubic-bezier(.2,.8,.2,1) forwards; }
@keyframes sunPulse{ 0%{opacity:0; transform:translate(-50%,-50%) scale(.35);} 55%{opacity:.95;} 100%{opacity:0; transform:translate(-50%,-50%) scale(1.15);} }
@keyframes sunRays{ 0%{opacity:0; transform:translate(-50%,-50%) rotate(-30deg) scale(.85);} 70%{opacity:.9;} 100%{opacity:0; transform:translate(-50%,-50%) rotate(50deg) scale(1.08);} }
.fx-moon::before{ content:""; position:absolute; left:50%; top:50%; width:140px; height:140px; border-radius:50%; background: radial-gradient(circle at 35% 45%, #fffbe6 0 45%, rgba(255,255,255,0) 60%); transform: translate(-50%,-50%) rotate(-18deg) scale(.6); filter: drop-shadow(0 8px 18px rgba(255,255,255,.45)); mix-blend-mode:screen; opacity:0; -webkit-mask: radial-gradient(circle at 60% 45%, transparent 0 46%, #000 47% 100%); mask: radial-gradient(circle at 60% 45%, transparent 0 46%, #000 47% 100%); animation: moonPop .95s cubic-bezier(.2,.8,.2,1) forwards; }
@keyframes moonPop{ 0%{opacity:0; transform:translate(-50%,-50%) rotate(-18deg) scale(.4);} 65%{opacity:1;} 100%{opacity:0; transform:translate(-50%,-50%) rotate(-18deg) scale(1);} }
.fx-moon .star{ position:absolute; border-radius:50%; background:#fff; opacity:0; box-shadow:0 0 10px rgba(255,255,255,.85), 0 0 2px rgba(255,255,255,.45) inset; animation: twinkle 1.2s ease-out forwards; }
@keyframes twinkle{ 0%{transform:scale(.2); opacity:0;} 40%{opacity:1;} 100%{transform:scale(1.3); opacity:0;} }

/* Memories Carousel */
.memories-section{ margin-top: clamp(90px, 14vh, 220px); margin-bottom: clamp(60px, 18vh, 220px); background:transparent; border:0; box-shadow:none; }
.pcarousel{ position:relative; padding:0; background:transparent; border:0; box-shadow:none; }
.pc-viewport{ overflow:hidden; position:relative; -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%); }
.pc-track{ display:flex; gap:14px; will-change:transform; transform: translate3d(0,0,0); }
.pc-item{ flex:0 0 clamp(220px, 28vw, 360px); aspect-ratio:3/2; border-radius:18px; overflow: clip; position:relative; transform: translateZ(0); }
.pc-item img{ width:100%; height:100%; object-fit:cover; display:block; border-radius:18px; transition: transform .28s cubic-bezier(.2,.8,.2,1), filter .28s ease; will-change: transform, filter; }
.pc-item:hover img, .pc-item:focus-within img{ filter:saturate(1.06) contrast(1.02); }
#pcViewport{ cursor: ew-resize; }
@media (max-width:640px){ .pc-item{ flex-basis:82vw; } }

/* Flights / Hotels / Weather (tal cual estabas) */
.flight-section{ margin-top:48px; background: rgba(255,255,255,.75); border-radius: 14px; box-shadow: 0 6px 30px rgba(15,23,42,.10); }
.fs-list{ margin-top:16px; display:grid; gap:10px; }
.fs-item{ display:grid; grid-template-columns: 1fr 1fr 1fr 1fr 1fr auto; gap:10px; align-items:center; padding:12px; border:1px solid rgba(231,223,207,.8); border-radius:12px; background:#fff; box-shadow:0 2px 10px rgba(15,23,42,.06); }
@media (max-width:900px){ .fs-item{ grid-template-columns: 1fr 1fr; grid-auto-rows:auto; } }

.hotel-section{ margin-top: 44px; }
.hs-grid{ display:grid; grid-template-columns: repeat(12, 1fr); gap: clamp(10px,1.2vw,16px); }
.hs-card{ grid-column: span 4; background:#fff; border:1px solid rgba(231,223,207,.8); border-radius:18px; padding:16px; box-shadow:0 6px 30px rgba(15,23,42,.10); position:relative; }
.hs-badge {
  position: static;   /* deja de ser absoluta */
  display: block;
  margin-bottom: 8px; /* separa del título */
  background: #f5f5f5;
  text-align: center;
  padding: 6px 8px;
  border-radius: 6px;
}
@media (max-width:1020px){ .hs-card{ grid-column: span 6; } }
@media (max-width:680px){ .hs-card{ grid-column: span 12; } }

.weather-section{ margin-top: 44px; }
.ws-carousel{ position:relative; background:#fff; border:1px solid rgba(231,223,207,.85); border-radius:18px; box-shadow:0 6px 30px rgba(15,23,42,.10); padding:16px; overflow:hidden; }
.ws-viewport{ overflow:hidden; }
.ws-track{ display:flex; gap:12px; transition: transform .35s ease; }
.ws-card{ min-width: 260px; border:1px solid rgba(231,223,207,.8); border-radius:16px; padding:16px; background:#fff; box-shadow:0 2px 12px rgba(15,23,42,.08); }
.ws-city{ font-weight:700; margin:0 0 8px 0; }
.ws-date{ color:#666; font-size:14px; margin:0 0 12px 0; }
.ws-temp{ font-size:32px; font-weight:800; margin:0 0 8px 0; }
.ws-cond{ display:flex; align-items:center; gap:8px; color:#444; }
.ws-nav{ position:absolute; top:50%; transform:translateY(-50%); border:none; background:#fff; border:1px solid rgba(231,223,207,.9); width:36px; height:36px; border-radius:50%; cursor:pointer; }
.ws-prev{ left:10px; } .ws-next{ right:10px; }
@media (max-width:560px){ .ws-card{ min-width:85%; } }

/* util */
.body{ font-size:clamp(22px, 3.2vw, 28px); line-height:1.3; margin:18px auto 34px; max-width:1100px; }
.sr-only{ position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip: rect(0,0,0,0); white-space:nowrap; border:0; }

/* ========== BASE ========== */
:root{ --blue:#003366; --text:#333; }
* { box-sizing: border-box; }

html { background:#fff; }
html::before{ content:""; position:fixed; inset:0; background:url("playa.jpg") no-repeat center/cover; opacity:.30; z-index:0; }
body{ position:relative; z-index:1; font-family:'Raleway',sans-serif; margin:0; padding:20px; text-align:center; background:transparent; color:var(--text); }
html, body { overflow-x: hidden; }

/* ========== TIPOGRAFÍA CABECERA ========== */
.hero-title{
  font-family:'Dancing Script', serif; font-weight:600;
  font-size:clamp(36px,5vw,72px); letter-spacing:.02em;
  margin:28px 0 14px; line-height:1.2; display:inline-block;
  color:var(--blue); text-shadow:0 2px 6px rgba(0,0,0,.15), 0 4px 12px rgba(0,0,0,.12);
  opacity:0; transform:translateY(-6px); animation:heroFadeUp .7s ease-out forwards;
  overflow:visible; padding-bottom:.15em;
}
.hero-title::before{
  content:""; position:absolute; top:-2px; left:-60%; width:50%; height:110%;
  background:linear-gradient(120deg, transparent 0%, rgba(255,255,255,.6) 50%, transparent 100%);
  transform:skewX(-24deg); animation:heroShimmer 4s linear infinite; pointer-events:none;
}
.sub{ font-family:'Edu NSW ACT Foundation', cursive; margin-bottom:28px; color:#555; font-size:18px; }

@keyframes heroFadeUp{ to{ opacity:1; transform:translateY(0); } }
@keyframes heroShimmer{ 0%{left:-60%} 55%{left:120%} 100%{left:120%} }

/* CTA wrapper */
.cta-wrap{
  text-align:center;
  margin: clamp(28px, 8vh, 120px) 0 0;
}

/* ===== Botón ===== */
.start-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  margin:28px auto 12px; padding:16px 36px;
  font-family:'Cinzel Decorative',serif; font-weight:700; font-size:1.25rem; letter-spacing:.3px;
  color:#0b3356; text-shadow:0 1px 0 rgba(255,255,255,.6);
  background:linear-gradient(to bottom right, rgba(255,255,255,.28), rgba(255,255,255,.18));
  border:2px solid rgba(11,51,86,.25); border-radius:999px;
  backdrop-filter: blur(8px) saturate(120%); -webkit-backdrop-filter: blur(8px) saturate(120%);
  cursor:pointer; position:relative; overflow:hidden;
  box-shadow:0 6px 20px rgba(11,51,86,.18), inset 0 1px 0 rgba(255,255,255,.6);
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
  text-decoration:none !important;
}
.start-btn:hover{
  transform: translateY(-1px) scale(1.03);
  background:linear-gradient(to bottom right, rgba(255,255,255,.34), rgba(255,255,255,.22));
  box-shadow:0 10px 28px rgba(11,51,86,.22), inset 0 1px 0 rgba(255,255,255,.75);
}
/* Desactivamos brillos internos antiguos para que el halo sea el protagonista */
.start-btn::before,
.start-btn::after{ content:none !important; }

/* ===== Halo/Sombra integrada al botón ===== */
.cta-aura{
  position: relative;
  display: inline-block;
  margin-top: clamp(28px, 7vh, 90px);
  isolation: isolate;
  overflow: visible;
}
.cta-aura::before{
  content:"";
  position:absolute;
  inset:-18px; /* contorno alrededor del botón */
  border-radius:999px;
  pointer-events:none;
  box-shadow:
    0 18px 55px rgba(11,51,86,.18),
    0 0 40px 16px rgba(127,231,255,.18);
  background: radial-gradient(closest-side,
              rgba(127,231,255,.22),
              rgba(127,231,255,.12) 55%,
              rgba(127,231,255,0) 75%);
  filter: blur(6px);
  animation: ctaPulse 2.2s ease-in-out infinite;
  z-index: -1; /* detrás del botón, pero ligado a él */
}
@keyframes ctaPulse{
  0%,100%{ opacity:.42; transform:scale(.985); }
  50%   { opacity:.9;  transform:scale(1.015); }
}

/* ===== BURBUJAS (gooey) ===== */
.bubble-field{
  position:absolute; inset:-28px;
  pointer-events:none;
  filter:url(#goo);
  z-index: -1;
}
.bubble{
  position:absolute;
  width:16px; height:16px;
  border-radius:999px;
  background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.85),
                               rgba(127,231,255,.55) 55%, rgba(0,102,204,.30) 100%);
  box-shadow:0 0 18px rgba(127,231,255,.45);
  opacity:0;
  transform: translate(-50%,-50%) scale(.6);
  animation: floatUp 5.6s ease-in infinite;
}
@keyframes floatUp{
  0%   { opacity:0; transform: translate(var(--x,0), var(--y,0)) scale(.6); }
  10%  { opacity:.95; }
  60%  { opacity:.95; }
  100% { opacity:0; transform: translate(var(--xEnd,0), calc(var(--y,0) - 140px)) scale(1.05); }
}

/* Hover magnético */
.cta-aura.magnet .start-btn{
  transform: translate(var(--mx,0), var(--my,0)) scale(1.02);
  transition: transform .12s ease, box-shadow .2s ease, background .2s ease;
}

/* ========== TIMELINE ========== */
.timeline{ display:flex; gap:20px; flex-wrap:wrap; justify-content:center; perspective:1000px; perspective-origin:50% 30%; }
.day{
  position:relative; overflow:hidden; width:200px; min-height:160px; border-radius:15px;
  padding:30px 20px; cursor:pointer; color:#fff; text-shadow:1px 1px 3px rgba(0,0,0,.6);
  box-shadow:0 5px 15px rgba(0,0,0,.2); transform-style:preserve-3d;
  transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease, filter .35s ease;
  --accent:#003366; border-bottom:4px solid var(--accent);
  background: linear-gradient(135deg, #dfe9f3, #ffffff);
}
.day::after{ content:""; position:absolute; inset:0; background: radial-gradient(120% 80% at 50% -20%, rgba(255,255,255,.28), transparent 60%); opacity:0; pointer-events:none; transition: opacity .35s ease; }
.day:hover, .day:focus{ transform: translateY(-6px) rotateX(6deg); box-shadow:0 16px 40px rgba(0,0,0,.28); filter:saturate(1.12); }
.day:hover::after, .day:focus::after{ opacity:1; }
.day:focus{ outline:0; }
.day h3{ margin:0; font-family:'Playfair Display',serif; font-weight:700; font-size:20px; line-height:1.2; }
@media (max-width:768px){ .timeline{ gap:12px; } .day{ width:calc(50% - 12px); min-height:130px; padding:22px 14px; } .day h3{ font-size:18px; } }
@media (max-width:420px){ .day{ width:100%; min-height:120px; } .day h3{ font-size:16px; } }

/* ========== COUNTDOWN (copia del tuyo con retoques menores) ========== */
.countdown{ --cd-accent:var(--blue); max-width:920px; margin: clamp(90px, 14vh, 220px) auto 28px !important; padding:0 !important; border-radius:0 !important; background:transparent !important; box-shadow:none !important; backdrop-filter:none !important; -webkit-backdrop-filter:none !important; position:relative; isolation:isolate; }
.countdown::before{ display:none !important; }
.countdown .cd-title{ font-family:'Playfair Display',serif; color:var(--cd-accent); font-weight:700; font-size:clamp(20px,2.6vw,28px); letter-spacing:.02em; text-align:center; margin-bottom:10px; }
.cd-odometer{ display:flex; align-items:flex-end; justify-content:center; gap:8px; flex-wrap:nowrap; white-space:nowrap; perspective:900px; }
.cd-box{
  min-width:92px; padding:10px 8px; border-radius:14px;
  background:rgba(255,255,255,0.18) !important; border:1px solid rgba(255,255,255,0.35) !important;
  box-shadow:0 6px 18px rgba(0,0,0,.10) !important;
  text-align:center; position:relative; overflow:hidden; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.cd-box span{ display:block; font-family:'Playfair Display',serif; font-weight:800; font-variant-numeric:tabular-nums; font-size:clamp(32px,6.5vw,56px); line-height:.95; color:var(--cd-accent); transform-origin:center bottom; }
.cd-box small{ display:block; margin-top:4px; font-size:12px; color:rgba(53,85,122,0.85) !important; }
.cd-sep{ font-size:clamp(20px,5vw,28px); margin:0 2px; line-height:1; color:rgba(42,74,109,0.7) !important; opacity:.7 !important; animation: sepBlink 1s step-end infinite; }
@keyframes sepBlink{ 0%,49%{opacity:.2} 50%,100%{opacity:.8} }
.cd-box span.flip{ animation: flipin 500ms cubic-bezier(.2,.7,.2,1); transform-style:preserve-3d; }
@keyframes flipin{ 0%{transform: rotateX(-70deg); opacity:.2} 55%{transform: rotateX(12deg); opacity:1} 100%{transform: rotateX(0); opacity:1} }
.cd-progress{ margin-top:12px; }
.cd-progress-bar{ position:relative; height:8px; border-radius:999px; overflow:hidden; background:rgba(255,255,255,0.22) !important; }
.cd-progress-fill{ display:block; height:100%; width:0%; background: linear-gradient(90deg, #0066cc, #00c6ff, #7fe7ff); border-radius:999px; box-shadow:0 2px 10px rgba(0,198,255,.35) !important; transition: width .6s cubic-bezier(.2,.8,.2,1); background-size:200% 100%; animation: progressFlow 3s linear infinite; }
@keyframes progressFlow{ from{background-position:0% 50%} to{background-position:200% 50%} }
.countdown.urgent{ --cd-accent:#b00020; }
.countdown .cd-note{ margin-top:10px; font-size:14px; color:#35557a; }
@media (max-width:600px){ .cd-box{ min-width:78px; padding:8px 6px; background:rgba(255,255,255,0.22) !important; } .cd-box span{ font-size:clamp(28px,8vw,44px); } .cd-sep{ font-size:clamp(18px,7vw,24px); margin:0 1px; } }
@media (max-width:380px){ .cd-box{ min-width:68px; } .cd-box span{ font-size:28px; } .cd-sep{ font-size:20px; } }

/* ===================== Resto de secciones (idénticas a tu versión) ===================== */
/* ... (Dresscode, Lookbook, Flights, Hotels, Weather, Reveal, Panel, etc.)
   He mantenido tus reglas tal cual salvo pequeños comentarios y sin duplicidades. */

/* ===== Mejoras de contraste en modo NOCHE ===== */

/* Título grande "Día X · Ciudad" */
.op.is-night #opTitle.op-title{
  color:#e8eeff;                    /* texto claro */
  text-shadow:0 1px 0 rgba(0,0,0,.35);
}

/* Subtítulo "Mujer · Noche", descripción y lista */
.op.is-night .op-subtitle{ color:#e8eeff; }
.op.is-night .op-desc{ color:#f5f7ff; opacity: 0.9; }
.op.is-night .op-bullets{ color:#d7e3ff; }

/* Etiquetas ya estaban, reforzamos contraste un pelín */
.op.is-night .op-tags .op-tag{
  background: rgba(255,255,255,.10);
  color:#f1f5ff;
  border-color: rgba(255,255,255,.28);
}

/* Botones de los segmentos: texto más legible en noche */
.op.is-night .seg{ background:rgba(255,255,255,.06); }
.op.is-night .seg-btn{ color:#e8eeff; }
.op.is-night .seg-btn.is-active{
  color:#0f172a;
  background: linear-gradient(180deg, rgba(231,223,207,.85), rgba(231,223,207,.5));
  box-shadow:0 6px 18px rgba(201,162,39,.28), inset 0 0 0 1px rgba(201,162,39,.55);
}

/* --- Dresscode: de fila scroll a rejilla 4xN --- */
.dc-quick-row{
  display: grid;
  grid-template-columns: repeat(4, minmax(230px, 1fr));
  gap: clamp(12px, 1.6vw, 18px);
  align-items: stretch;
  padding: 0;               /* quitamos padding de carrusel */
  overflow: visible;        /* sin scroll horizontal */
  scroll-snap-type: none;   /* desactiva snapping */
}
.dc-quick-row::-webkit-scrollbar{ display:none; }

/* --- Tarjeta cuadrada y limpia (sin línea/brillos) --- */
.tip-card{
  /* tamaño cuadrado y homogéneo */
  aspect-ratio: 1 / 1;
  min-height: 230px;                /* seguridad para pantallas pequeñas */
  display: flex;
  flex-direction: column;
  grid-template-columns: unset;     /* anula el layout anterior */
  gap: 10px;
  padding: 16px;
  border-radius: 16px;

  /* estética: suave y sin línea central */
  background: rgba(255,255,255,.26);
  border: 1px solid rgba(201,162,39,.45);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 8px 28px rgba(15,23,42,.10);
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
  position: relative;
  isolation: isolate;
}

/* Quita la “línea/brillo” y efectos que podían verse como un trazo vertical */
.tip-card::before,
.tip-card .shine{ display: none !important; }

/* (Opcional) deja las chispas o quítalas también si quieres limpieza total */
/* .tip-card .sparkle{ display:none !important; } */

/* Icono arriba a la izquierda, título debajo */
.tip-icon{
  font-size: 18px;
  line-height: 1;
  margin: 0;
}
.tip-content{ 
  display: flex; 
  flex-direction: column; 
  gap: 6px; 
  flex: 1 1 auto; 
  min-height: 0; 
}

/* Título y texto: que se PARTAN en líneas dentro del cuadrado */
.tip-title{
  margin: 0;
  font-weight: 700;
  font-size: 15px;
  letter-spacing: .02em;
  color: var(--text);
  word-wrap: break-word;
  overflow-wrap: anywhere;
}
.tip-text{
  margin: 0;
  font-size: 14px;
  color:#273445;
  line-height: 1.45;
  word-wrap: break-word;
  overflow-wrap: anywhere;

  /* Si el contenido es larguísimo, podrá hacer scroll Y, pero solo cuando sea necesario */
  overflow-y: auto;
}

/* Hover sutil */
.tip-card:hover{
  transform: translateY(-2px);
  background: rgba(255,255,255,.34);
  box-shadow: 0 14px 40px rgba(15,23,42,.16);
}

/* --- Responsivo: 4 / 3 / 2 / 1 columnas --- */
@media (max-width: 1100px){
  .dc-quick-row{ grid-template-columns: repeat(3, minmax(220px, 1fr)); }
}
@media (max-width: 820px){
  .dc-quick-row{ grid-template-columns: repeat(2, minmax(210px, 1fr)); }
}
@media (max-width: 520px){
  .dc-quick-row{ grid-template-columns: 1fr; }
}

/* ===================== HERO WOW ===================== */
:root{
  --marine-1:#0b3356;
  --marine-2:#0071b8;
  --gold-1:#d6b466;
  --gold-2:#f7e6b5;
}

.hero{
  position: relative;
  text-align:center;
  margin: clamp(18px, 6vh, 70px) 0 0;
  isolation:isolate;
}

.brand{
  margin:0;
  display:grid;
  gap:.15em;
  justify-items:center;
  line-height:1.05;
}

/* “Goyitos”: caligrafía con degradado marino + sombra suave */
.brand-g{
  font-family:'Dancing Script', serif;
  font-weight:600;
  font-size:clamp(44px, 7.5vw, 96px);
  letter-spacing:.02em;
  line-height:1.2;
  background: linear-gradient(180deg, var(--marine-2), var(--marine-1));
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
  text-shadow:0 6px 18px rgba(11,51,86,.18);
  position:relative;
}

/* “Wedding Cruise”: serif caps con brillo dorado animado + subrayado */
.brand-wc{
  font-family:'Cinzel Decorative','Playfair Display',serif;
  font-weight:700;
  font-size:clamp(26px, 3.6vw, 48px);
  letter-spacing:.12em;
  text-transform:uppercase;
  background: linear-gradient(90deg, var(--gold-2), var(--gold-1), var(--gold-2));
  background-size:200% 100%;
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
  animation: goldShine 5.5s linear infinite;
  position:relative;
  padding: .12em .2em .35em;
}
.brand-wc::after{
  content:"";
  position:absolute; left:10%; right:10%; bottom:.08em;
  height:2px; border-radius:2px;
  background: linear-gradient(90deg, transparent, var(--gold-2), var(--gold-1), var(--gold-2), transparent);
  box-shadow: 0 0 18px rgba(214,180,102,.45);
}

/* tagline */
.brand-tag{
  margin:.6rem 0 0;
  font-family:'Raleway',sans-serif;
  font-weight:600;
  font-size:clamp(14px, 1.8vw, 18px);
  letter-spacing:.02em;
  color:#2b3f57;
  opacity:.9;
}

/* destellos sutiles alrededor del hero */
.hero::after{
  content:"";
  position:absolute; inset: -10px 0 auto 0; height:140px; pointer-events:none;
  background:
     radial-gradient(12px 12px at 20% 60%, rgba(255,240,195,.9), transparent 60%),
     radial-gradient(8px 8px at 78% 40%, rgba(255,240,195,.8), transparent 60%),
     radial-gradient(10px 10px at 60% 78%, rgba(255,240,195,.7), transparent 60%);
  filter: blur(.2px);
  opacity:.55;
  animation: twinkleHero 6s ease-in-out infinite;
  z-index:-1;
}

/* animaciones */
@keyframes goldShine{
  0%{ background-position:0% 50% }
  100%{ background-position:200% 50% }
}
@keyframes twinkleHero{
  0%,100%{ transform: translateY(0); opacity:.45 }
  50%{ transform: translateY(3px); opacity:.75 }
}

/* Accesibilidad: reduce motion */
@media (prefers-reduced-motion:reduce){
  .brand-wc{ animation: none; }
  .hero::after{ animation: none; }
}
/* ===================== FAQ acordeón ===================== */
.faq-section{
  margin-top: clamp(60px, 12vh, 120px);
  text-align:left;
}

.faq-list{
  display:grid;
  gap:14px;
  margin-top:22px;
}

.faq-item{
  border-bottom:1px solid rgba(0,0,0,.15);
  padding:0 0 10px;
}

.faq-q{
  cursor:pointer;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:10px 4px;
  user-select:none;
}

.faq-q h3{
  margin:0;
  font-size:18px;
  font-weight:600;
  color:var(--text);
}

.faq-icon{
  transition: transform .25s ease;
}

.faq-item[aria-expanded="true"] .faq-icon{
  transform:rotate(180deg);
}


/* ==== FAQ SECTION ==== */
.faq-section {
  margin: 60px auto;
  max-width: 900px;
  text-align: left;
}

.faq-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.faq-item {
  border-bottom: 1px solid rgba(0,0,0,.15);
  padding: 14px 0;
}

.faq-q {
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  font-weight: 600;
  color: var(--blue);
}

.faq-q h3 {
  margin: 0;
  font-size: 18px;
}

.faq-icon {
  font-size: 16px;
  transition: transform .25s ease;
}

.faq-item[aria-expanded="true"] .faq-icon {
  transform: rotate(180deg);
}

.faq-a {
  max-height: 0;
  overflow: hidden;
  transition: max-height .35s ease;
}

.faq-item[aria-expanded="true"] .faq-a {
  max-height: 800px; /* suficiente para que quepa cualquier texto */
  margin-top: 6px;
}

.faq-a p, .faq-a ul {
  margin: 6px 0;
  font-size: 15px;
  line-height: 1.5;
}

/* =============== FAQ · Look refinado =============== */
.faq-section{
  max-width: 980px;
  margin: clamp(48px,10vh,120px) auto;
  padding: 0 clamp(12px,2vw,18px);
  text-align: left;
}

.faq-section .pv-title{
  /* título más “wow” */
  font-family: 'Cinzel Decorative','Playfair Display',serif;
  font-weight: 700;
  font-size: clamp(28px,4.2vw,44px);
  letter-spacing: .02em;
  color: #0b3356;
  text-align: center;
  margin-bottom: 14px;
  text-shadow: 0 1px 0 rgba(255,255,255,.6);
}
.faq-section .pv-title::after{
  content:"";
  display:block;
  width:84px;
  height:4px;
  margin:12px auto 0;
  border-radius:999px;
  background: linear-gradient(90deg,#0066cc,#00c6ff,#7fe7ff);
  opacity:.7;
}

.faq-list{
  display:grid;
  gap:12px;
}

/* Tarjeta translúcida con glassmorphism */
.faq-item{
  border: none !important;                 /* anula el border-bottom viejo */
  background: rgba(255,255,255,.52);
  border:1px solid rgba(11,51,86,.14);
  border-radius: 16px;
  box-shadow: 0 8px 26px rgba(15,23,42,.10);
  backdrop-filter: blur(10px) saturate(120%);
  -webkit-backdrop-filter: blur(10px) saturate(120%);
  overflow: hidden;
  transition: box-shadow .25s ease, transform .18s ease, border-color .25s ease;
}
.faq-item:hover{ transform: translateY(-1px); box-shadow:0 14px 36px rgba(15,23,42,.16); }
.faq-item[aria-expanded="true"]{ border-color: rgba(0,102,204,.28); }

/* Pregunta */
.faq-q{
  display:flex; align-items:center; justify-content:space-between;
  gap:10px; cursor:pointer; user-select:none;
  padding:14px 16px;
}
.faq-q h3{
  margin:0;
  font-family:'Raleway',system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-weight: 700;
  font-size: clamp(16px,1.8vw,18px);
  color:#0b3356;               /* navy */
  letter-spacing:.01em;
}
.faq-q:focus{ outline: none; }
.faq-q:focus-visible{ outline:2px solid rgba(0,102,204,.35); outline-offset:4px; border-radius:10px; }

/* Icono (chevron) */
.faq-icon{
  display:inline-grid; place-items:center;
  width:28px; height:28px; border-radius:999px;
  font-size:14px; line-height:1;
  background: rgba(255,255,255,.7);
  border:1px solid rgba(11,51,86,.12);
  box-shadow:0 2px 8px rgba(0,0,0,.06) inset;
  color:#0b3356;
  transition: transform .25s ease, background .25s ease, color .25s ease;
}
.faq-item:hover .faq-icon{ background:#eef7ff; }
.faq-item[aria-expanded="true"] .faq-icon{ transform: rotate(180deg); }

/* Respuesta (acordeón por max-height) */
.faq-a{
  max-height: 0;
  overflow: hidden;
  transition: max-height .35s ease, padding .25s ease;
  padding: 0 16px;
}
.faq-item[aria-expanded="true"] .faq-a{
  max-height: 900px;
  padding: 0 16px 14px;
}

/* Tipografía de respuesta */
.faq-a p, .faq-a ul{
  margin: 8px 0 0;
  font-size: 15.5px;
  line-height: 1.6;
  color:#2a4463;
}
.faq-a ul{ padding-left: 18px; }

/* ===== FAQ en dos columnas ===== */
.faq-list {
  display: grid;
  grid-template-columns: 1fr; /* móvil: 1 columna */
  gap: 18px;
}

/* en pantallas medianas y grandes: 2 columnas */
@media (min-width: 768px) {
  .faq-list {
    grid-template-columns: 1fr 1fr;
  }
}

/* que cada item ocupe todo el ancho de su celda */
.faq-item {
  width: 100%;
  height: auto;
}

/* ===== ICONOS DEL CLIMA ===== */
.ws-icon-img {
  width: 28px;   /* ajusta el ancho */
  height: 28px;  /* alto fijo, mantiene cuadrado */
  object-fit: contain; /* evita deformaciones */
  vertical-align: middle;
  margin-right: 6px; /* separa del texto */
}

/* Logo arriba a la izquierda */
.logo {
  position: absolute;
  top: -10px;
  left: 30px;
  z-index: 1000;
}

.logo img {
  max-height: 180px;  /* ajusta el tamaño según necesites */
  width: auto;
}

.hs-badge {
  display: inline-block;   /* por si lo quieres tipo etiqueta */
  background: #f0f0f0;     /* opcional, para resaltar */
  padding: 6px 10px;       /* espacio interno */
  border-radius: 6px;      /* esquinas redondeadas */
  margin-bottom: 12px;     /* <-- separa del texto de abajo */
  font-size: 0.9rem;
}

.hero-top {
  display: flex;
  align-items: center;   /* alinea logo y texto verticalmente */
  gap: 15px;             /* espacio entre logo y título */
}

.logo img {
  height: 80px;   /* ajusta tamaño */
  width: auto;
}

/* ================= HISTORIA ================= */
.story-section {
  max-width: 800px;
  margin: 80px auto;
  padding: 40px;
  background: rgba(255, 255, 255, 0.9);
  border-radius: 16px;
  box-shadow: 0 12px 32px rgba(0,0,0,0.10);
  color: #3a2c2c;
  /* Legibilidad */
  text-align: left;             /* mejor que justify para web */
  line-height: 1.9;
  hyphens: auto;
  hanging-punctuation: first;   /* mejor ritmo visual si el navegador lo soporta */
}

/* Título */
.story-section h2 {
  font-family: 'Cinzel', serif;
  font-size: 36px;
  text-align: center;
  color: #5a3220;
  margin: 0 0 22px;
  letter-spacing: 0.3px;
}

/* Texto base */
.story-section p {
  font-family: 'EB Garamond', serif;
  font-size: 19px;
  margin: 0 0 18px;
  color: #3a2c2c;
}

/* Drop cap: SOLO en el primer párrafo */
.story-section p:nth-of-type(1)::first-letter {
  font-family: 'Cinzel', serif;
  font-size: 3.2rem;
  font-weight: 600;
  float: left;
  line-height: 0.9;
  margin: 6px 10px 0 0;
  color: #5a3220;
}

/* Asegurar que NO haya drop cap en los demás párrafos especiales */
.story-section .final::first-letter,
.story-section .signature::first-letter,
.story-section .tagline::first-letter {
  float: none;
  font-size: inherit;
  margin: 0;
  font-family: inherit;
  color: inherit;
}

/* Frase de bienvenida (un toque emocional centrado) */
.story-section .tagline {
  text-align: center;
  font-weight: 600;
  font-size: 20px;
  color: #6a3d2e;
  margin-top: 10px;
}

/* Divisor sutil */
.story-section .story-divider {
  border: 0;
  height: 1px;
  margin: 24px auto 16px;
  max-width: 320px;
  background: linear-gradient(to right, transparent, #d9c2b4, transparent);
}

/* Cierre */
.story-section .final {
  text-align: center;
  font-weight: 600;
  font-size: 20px;
  color: #6a3d2e;
  margin: 10px 0 6px;
}

/* Firma manuscrita */
.story-section .signature {
  font-family: 'Great Vibes', cursive;
  font-size: 44px;
  line-height: 1.1;
  color: #5a3825;
  text-align: center;
  margin: 0;
  letter-spacing: 0.5px;
  display: block;
  /* pequeño detalle elegante */
  text-shadow: 0 1px 0 rgba(255,255,255,0.4);
}

/* Microajustes responsivos */
@media (max-width: 640px) {
  .story-section {
    padding: 28px;
    margin: 48px auto;
  }
  .story-section h2 { font-size: 30px; }
  .story-section p { font-size: 18px; }
  .story-section p:nth-of-type(1)::first-letter { font-size: 2.8rem; margin: 4px 8px 0 0; }
  .story-section .signature { font-size: 40px; }
}
/* ==== Hint para CTA ==== */
.cta-hint {
  text-align: center;
  margin-top: 6px; /* un poco debajo del botón */
  font-family: 'Raleway', sans-serif; /* ligera y elegante */
  color: rgba(90, 56, 37, 0.7); /* marrón sutil */
  font-size: 14px;
  font-weight: 400;
  opacity: 0.8;
  animation: fadeUp 2s ease infinite alternate;
}

.hint-text {
  display: block;
  margin-bottom: 2px;
  font-style: italic;
  letter-spacing: 0.5px;
}

.hint-arrow {
  display: block;
  font-size: 16px;
  opacity: 0.7;
  animation: bounceArrow 1.6s infinite;
}

/* Animación del texto de abajo a arriba */
@keyframes fadeUp {
  from { transform: translateY(4px); opacity: 0.6; }
  to   { transform: translateY(0); opacity: 1; }
}

/* Animación de la flecha */
@keyframes bounceArrow {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}

.story-title{
  /* se adapta al ancho */
  font-size: clamp(26px, 7vw, 44px);
  line-height: 1.1;
  text-align: center;
  margin: 0 0 12px;
  /* intento elegante de salto equilibrado (si el navegador lo soporta) */
  text-wrap: balance;
}
.story-title span{
  display:inline-block;
}

/* en móviles pequeños, forzamos una sola línea reduciendo un pelín el tamaño */
@media (max-width: 420px){
  .story-title{ font-size: clamp(22px, 6.2vw, 36px); }
  .story-title span{ white-space: nowrap; }
}

@media (max-width: 600px){
  .hs-card{ padding-top: 52px; } /* deja hueco para la viñeta fija arriba a la derecha */
}

