@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,500;12..96,700&family=Figtree:wght@400;500;600;700&display=swap');

/* PROPUESTA 2 · GARÚA — la bruma del mar: neutros fríos, cobalto como único acento, formas redondeadas y títulos en minúscula */
:root{
--bg:#EEF2F4;--bg-alt:#DCE6EC;--bg-dark:#0B2239;--text:#0B2239;--soft:#4A5F73;
--accent:#0442BF;--accent-text:#0442BF;--foam:#9FD9D2;--focus:#0442BF;
--f-display:'Bricolage Grotesque','Segoe UI',system-ui,sans-serif;--f-body:'Figtree','Segoe UI',system-ui,sans-serif;
--h-w:700;--h-lead:1.03;--h-track:-.025em;--h-case:lowercase;
--h1:clamp(44px,5.2vw,80px);--h2:clamp(36px,4.3vw,60px);--h2-lg:clamp(38px,4.5vw,62px);--h3:28px;--h3-lg:40px;--h3-md:30px;--h-cta:clamp(56px,9vw,124px);--price:58px;
--header-h:108px;--logo:96px;--header-bg:#EEF2F4;--header-ink:#0B2239;--hero-h:680px;--sec-y:100px;
--r-card:28px;--r-btn:999px;--r-ctl:50%;--r-media:28px;--r-dot:50%;--r-play:50%;
--bd:0 solid transparent;--rule:1px solid #C3D1DB;--shadow:none;--card:#fff;
--btn-bg:#0442BF;--btn-ink:#fff;--btn-bd:0 solid transparent;--btn-shadow:none;--btn-shadow-hover:none;--btn-lift:translateY(-2px);--btn-hover:#0A35A0;
--btn-dark-bg:#0B2239;--btn-dark-ink:#fff;--btn-dark-hover:#16385A;--outline-hover:rgba(11,34,57,.07);
--badge-bg:#9FD9D2;--badge-ink:#0B2239;--li-line:rgba(11,34,57,.12);--feat-bg:#0442BF;--feat-ink:#fff;
--ticker-bg:#0B2239;--ticker-ink:#EEF2F4;
--gal-bg:#EEF2F4;--gal-ink:#0B2239;--slide-bg:#0B2239;--ctl-bd:1.5px solid #0B2239;--ctl-hover-bg:#0B2239;--ctl-hover-ink:#fff;--dot-on:#0442BF;
--man-bg:#0B2239;--man-ink:#EEF2F4;--man-soft:#A9BCCC;--man-line:rgba(238,242,244,.2);--asterisk:#9FD9D2;
--reel-bg:#EEF2F4;--reel-ink:#0B2239;--reel-card:#0442BF;--reel-card-ink:#fff;--reel-bd:0 solid transparent;--play-bg:#fff;--play-ink:#0442BF;
--test-bg:#0B2239;--test-ink:#EEF2F4;--tcard-bg:rgba(255,255,255,.07);--tcard-bd:0 solid transparent;--stars:#9FD9D2;--link-on-dark:#9FD9D2;
--cta-bg:#0442BF;--cta-ink:#fff;--foot-bg:#EEF2F4;--foot-ink:#0B2239;--foot-line:#C3D1DB;
}

/* ============ BASE ============ */
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--f-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
a,button,summary{-webkit-tap-highlight-color:transparent}
a,button{cursor:pointer}
button{font:inherit}
a:focus-visible,button:focus-visible,summary:focus-visible,.gallery-window:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-family:var(--f-display);font-weight:var(--h-w);line-height:var(--h-lead);letter-spacing:var(--h-track);text-transform:var(--h-case)}
h1 em,h2 em{font-style:normal}
.eyebrow{display:block;margin-bottom:20px;font-size:13px;font-weight:700;letter-spacing:.14em}

/* ============ HEADER ============ */
header{position:relative;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:24px;height:var(--header-h);padding:0 5%;background:var(--header-bg);color:var(--header-ink)}
.brand{display:flex;align-items:center;flex-shrink:0}
.brand img{display:block;width:var(--logo);height:var(--logo);object-fit:contain}
nav,.nav-actions{display:flex;align-items:center;gap:28px}
nav a{font-size:15px;font-weight:600;transition:color .15s,background .15s}
.language-options{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:700}
.language-options a{padding:7px 8px;opacity:.7;transition:opacity .15s,background .15s}
.language-options a:hover,.language-options a[aria-current=true]{opacity:1}

/* ============ BOTONES ============ */
.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:16px 26px;background:var(--btn-bg);color:var(--btn-ink);font-family:var(--f-body);font-size:15px;font-weight:700;line-height:1.2;border:var(--btn-bd);border-radius:var(--r-btn);box-shadow:var(--btn-shadow);transition:transform .18s,box-shadow .18s,background .18s,color .18s}
.button:hover{transform:var(--btn-lift);background:var(--btn-hover);box-shadow:var(--btn-shadow-hover)}
.button.small{padding:11px 20px;font-size:14px}
.button.dark{background:var(--btn-dark-bg);color:var(--btn-dark-ink)}
.button.dark:hover{background:var(--btn-dark-hover)}
.button.outline{background:transparent;color:inherit;border-color:currentColor;box-shadow:none}
.button.outline:hover{background:var(--outline-hover);box-shadow:none}
.text-link{font-weight:700;font-size:15px;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}

/* ============ HERO ============ */
.hero{position:relative;height:var(--hero-h);min-height:560px;overflow:hidden;background:var(--bg-dark);color:#fff}
.hero-image,.hero-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-image{object-position:center center}
.hero-content{position:relative;z-index:1;max-width:52%;padding:84px 7% 100px}
.hero h1{font-size:var(--h1);overflow-wrap:normal}
html[lang=fr] .hero h1{font-size:calc(var(--h1) * .84)}
.hero p{max-width:460px;margin-top:24px;font-size:18px;line-height:1.5}
.hero-cta{display:flex;align-items:center;gap:26px;margin-top:32px}
.hero-price{display:flex;flex-direction:column;line-height:1.3}
.hero-price strong{font-size:29px}
.hero-price span{font-size:13px}
.hero-foot{position:absolute;z-index:1;left:7%;right:7%;bottom:24px;display:flex;justify-content:space-between;gap:20px;font-size:12px;font-weight:700;letter-spacing:.14em}

/* ============ TICKER ============ */
.ticker{padding:15px 5%;background:var(--ticker-bg);color:var(--ticker-ink);text-align:center;font-family:var(--f-display);font-weight:700;font-size:17px;line-height:1.4;letter-spacing:.04em;word-spacing:8px}
.ticker span{margin:0 16px}

/* ============ SECCIONES ============ */
.section{padding:var(--sec-y) 7%}
.section h2,.subpage-title{font-size:var(--h2)}
.section-intro{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:10px 70px}
.section-intro .eyebrow{grid-column:1/-1;justify-self:start}
.section-intro p{max-width:340px;justify-self:end;color:var(--soft)}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:60px;margin-bottom:40px}
.section-heading>p{max-width:380px;color:var(--soft)}

/* rutas */
.route-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:40px}
.route-card{display:block;padding:34px 38px;background:var(--card);border:var(--bd);border-radius:var(--r-card);box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s,background .2s,border-color .2s}
.route-number,.card-kicker{font-size:12px;font-weight:700;letter-spacing:.12em}
.route-card h3{margin-top:22px;font-size:var(--h3-lg)}
.route-card p{max-width:380px;margin:16px 0 26px;color:var(--soft)}

/* precios */
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.price-card{display:flex;flex-direction:column;align-items:flex-start;padding:34px 28px;background:var(--card);border:var(--bd);border-radius:var(--r-card);box-shadow:var(--shadow)}
.badge{padding:5px 11px;background:var(--badge-bg);color:var(--badge-ink);font-size:12px;font-weight:700;letter-spacing:.1em}
.card-kicker{padding:5px 0}
.price-card h3{margin-top:20px;font-size:var(--h3)}
.price{margin:14px 0;font-family:var(--f-display);font-size:var(--price);font-weight:var(--h-w);line-height:1.1;letter-spacing:var(--h-track)}
.price>span{margin-left:8px;font-family:var(--f-body);font-size:14px;font-weight:500;letter-spacing:0;opacity:.7}
.price-card p{min-height:72px;font-size:15px;color:var(--soft)}
.price-card ul{flex:1;width:100%;margin:22px 0 30px;padding:0;list-style:none;font-size:14px}
.price-card li{padding:9px 0;border-bottom:1px solid var(--li-line)}
.price-card li:before{content:'✓';margin-right:9px;font-weight:700}
.price-card .button{width:100%;padding:14px 10px;font-size:14px}
.price-card.featured{background:var(--feat-bg);color:var(--feat-ink)}
.price-card.featured p{color:inherit;opacity:.88}
.group-strip{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:30px;padding-top:28px;border-top:var(--rule)}
.group-strip p{max-width:700px;margin-top:6px;font-size:14px;color:var(--soft)}
.group-strip a{white-space:nowrap}

/* galería */
.photo-gallery{background:var(--gal-bg);color:var(--gal-ink)}
.gallery-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:32px}
.gallery-controls{display:flex;align-items:center;gap:10px;flex-shrink:0}
.gallery-count{margin-right:14px;font-size:14px;font-weight:700;letter-spacing:.12em}
.gallery-controls button{width:52px;height:52px;border:var(--ctl-bd);border-radius:var(--r-ctl);background:transparent;color:inherit;font-size:24px;line-height:1;transition:background .15s,color .15s}
.gallery-controls button:hover{background:var(--ctl-hover-bg);color:var(--ctl-hover-ink)}
.gallery-window{overflow:hidden;background:var(--slide-bg);border-radius:var(--r-media)}
.gallery-track{display:flex;margin:0;padding:0;list-style:none;transition:transform .55s ease}
.gallery-slide{flex:0 0 100%;aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;background:var(--slide-bg)}
.gallery-slide img{width:100%;height:100%;object-fit:contain}
.gallery-dots{display:flex;justify-content:center;gap:12px;margin-top:22px}
.gallery-dots button{width:12px;height:12px;padding:0;border:2px solid currentColor;border-radius:var(--r-dot);background:transparent}
.gallery-dots button[aria-current=true]{background:var(--dot-on);border-color:var(--dot-on)}

/* manifiesto */
.manifesto{display:grid;grid-template-columns:1fr 1fr;background:var(--man-bg);color:var(--man-ink)}
.manifesto-image{position:relative;min-height:700px;overflow:hidden}
.manifesto-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 65%}
.manifesto-image:after{content:'';position:absolute;inset:55% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.6))}
.manifesto-image>span{position:absolute;z-index:1;left:32px;right:32px;bottom:32px;color:#fff;font-size:12px;font-weight:700;letter-spacing:.14em}
.manifesto-copy{align-self:center;padding:80px 12% 64px 10%}
.manifesto h2{font-size:var(--h2-lg)}
.manifesto-copy>p{margin:24px 0;color:var(--man-soft)}
.instructor{display:flex;gap:18px;margin-top:34px;padding-top:24px;border-top:1px solid var(--man-line)}
.asterisk{font-size:44px;line-height:1;color:var(--asterisk)}
.instructor p{margin-top:6px;font-size:14px;color:var(--man-soft)}
.manifesto small{display:block;margin-top:22px;font-size:12px;color:var(--man-soft)}

/* reel */
.reel-section{display:grid;grid-template-columns:1.2fr 1fr;gap:50px;align-items:center;background:var(--reel-bg);color:var(--reel-ink)}
.reel-section p{margin-top:22px;opacity:.75}
.reel-link{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;min-height:250px;padding:45px 25px;background:var(--reel-card);color:var(--reel-card-ink);border:var(--reel-bd);border-radius:var(--r-card);transition:transform .2s}
.reel-link:hover{transform:translateY(-3px)}
.play-icon{display:grid;place-items:center;width:64px;height:64px;padding-left:4px;border-radius:var(--r-play);background:var(--play-bg);color:var(--play-ink);font-size:24px}
.reel-link>span:last-child{font-size:12px;font-weight:700;letter-spacing:.14em;opacity:.8}

/* visita */
.visit{display:grid;grid-template-columns:1fr 1fr;gap:90px}
.visit>div>p{max-width:460px;margin:24px 0;color:var(--soft)}
.visit-facts{align-self:center}
.visit-facts>div{display:flex;gap:22px;padding:24px 0;border-bottom:var(--rule)}
.visit-facts>div>span{font-family:var(--f-display);font-size:30px;font-weight:var(--h-w);line-height:1.1;color:var(--accent-text)}
.visit-facts p{display:flex;flex-direction:column;gap:6px}
.visit-facts p>span{font-size:15px;color:var(--soft)}

/* playas */
.map-preview{margin:30px 0 36px;overflow:hidden;background:var(--card);border:var(--bd);border-radius:var(--r-card);box-shadow:var(--shadow)}
.map-preview iframe{display:block;width:100%;height:420px}
.map-caption{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:24px}
.map-caption p{margin-top:5px;font-size:14px;color:var(--soft)}
.map-caption .button{flex-shrink:0}
.location-row{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:30px 0;border-top:var(--rule)}
.location-row span{font-size:12px;font-weight:700;letter-spacing:.12em}
.location-row h3{margin:12px 0;font-size:var(--h3-md)}
.location-row p{font-size:15px;color:var(--soft)}
.location-row a{white-space:nowrap}

/* faq */
.faq{display:grid;grid-template-columns:1fr 1.4fr;gap:70px}
details{border-bottom:var(--rule)}
summary{position:relative;padding:22px 44px 22px 0;list-style:none;font-weight:600;cursor:pointer}
summary::-webkit-details-marker{display:none}
summary:after{content:'+';position:absolute;right:0;top:50%;transform:translateY(-50%);font-size:26px;font-weight:400;line-height:1}
details[open] summary:after{content:'−'}
details p{padding:0 30px 24px 0;font-size:15px;color:var(--soft)}

/* opiniones */
.testimonials{background:var(--test-bg);color:var(--test-ink)}
.testimonials-head{display:flex;align-items:end;justify-content:space-between;gap:35px;margin-bottom:42px}
.reviews-link{flex-shrink:0;font-weight:700;text-decoration:underline;text-underline-offset:6px;color:var(--link-on-dark)}
.testimonials-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.testimonial{display:flex;flex-direction:column;min-height:280px;margin:0;padding:30px;background:var(--tcard-bg);border:var(--tcard-bd);border-radius:var(--r-card)}
.review-stars{color:var(--stars);font-size:20px;line-height:1;letter-spacing:3px}
.testimonial blockquote{flex:1;margin:26px 0 30px;font-size:18px;line-height:1.55}
.testimonial figcaption{font-size:14px;font-weight:700}
.testimonial figcaption span{font-weight:400;opacity:.7}

/* cierre */
.final-cta{padding:76px 20px;text-align:center;background:var(--cta-bg);color:var(--cta-ink)}
.final-cta h2{font-size:var(--h-cta)}
.final-cta .button{margin-top:30px}
.final-cta p{margin-top:16px;font-size:14px;opacity:.85}
footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:28px;padding:44px 7%;background:var(--foot-bg);color:var(--foot-ink)}
footer p,footer>a:not(.brand){font-size:14px}
footer small{flex-basis:100%;padding-top:22px;border-top:1px solid var(--foot-line);font-size:12px;opacity:.7}
.mobile-book{display:none}
@media(min-width:1500px){.section{padding-left:max(7%,calc((100vw - 1300px)/2));padding-right:max(7%,calc((100vw - 1300px)/2))}}

/* ---- Propuesta 2: detalles ---- */
h1 em,h2 em{color:inherit}
.eyebrow{display:inline-block;padding:6px 14px;border-radius:999px;background:rgba(4,66,191,.1);color:var(--accent-text);font-size:12px;letter-spacing:.1em}
.ticker,.manifesto,.testimonials,.final-cta{--focus:#9FD9D2}
.ticker .eyebrow,.manifesto .eyebrow,.testimonials .eyebrow,.final-cta .eyebrow{background:rgba(255,255,255,.12);color:#CFEFEA}
.lessons,.locations{background:var(--bg-alt)}
nav a{padding:9px 16px;border-radius:999px}
nav a:hover,nav a[aria-current=page]{background:var(--bg-alt)}
.language-options{gap:2px;padding:4px;border-radius:999px;background:#fff}
.language-options a{padding:6px 12px;border-radius:999px;opacity:.8}
.language-options a[aria-current=true]{background:#0B2239;color:#fff}
.button{padding:16px 28px;font-weight:600}
.button.outline{border:1.5px solid currentColor}
.ticker{margin:16px 16px 0;padding:14px 28px;border-radius:999px;font-weight:500;font-size:15px;letter-spacing:.05em}
/* hero: foto inscrita con esquinas grandes, texto abajo a la izquierda */
.hero{margin:0 16px;border-radius:36px}
.hero-shade{background:linear-gradient(0deg,rgba(11,34,57,.84) 0,rgba(11,34,57,.4) 36%,rgba(11,34,57,0) 64%)}
.hero-content{position:absolute;left:0;bottom:78px;max-width:min(780px,72%);padding:0 56px}
.hero .eyebrow{background:rgba(255,255,255,.16);color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.hero h1{max-width:min(11em,50vw)}
.hero .button{background:#fff;color:#0B2239}
.hero .button:hover{background:#EEF2F4}
.hero-price{flex-direction:row;align-items:baseline;gap:10px;padding:10px 18px;border-radius:999px;background:rgba(255,255,255,.16);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.hero-price strong{font-size:22px}
.hero-foot{left:56px;right:56px;top:28px;bottom:auto;font-weight:700;text-shadow:0 1px 8px rgba(11,34,57,.55)}
/* tarjetas */
.route-card{border-radius:32px;padding:40px}
.route-card:hover{transform:translateY(-4px)}
.route-number{display:inline-block;padding:4px 12px;border-radius:999px;background:var(--bg-alt)}
.route-card.tourist{background:var(--accent);color:#fff}
.route-card.tourist p{color:#D9E5FF}
.route-card.tourist .route-number{background:rgba(255,255,255,.18)}
.price-card{border-radius:28px;padding:36px 30px}
.price-card.featured .button{background:#fff;color:#0B2239}
.price-card.featured .button:hover{background:#EEF2F4}
.price-card.featured li{border-color:rgba(255,255,255,.22)}
.price-card.featured li:before{color:var(--foam)}
.badge{border-radius:999px;padding:5px 13px}
.card-kicker{color:var(--accent-text)}
.group-strip{border-top:0;padding:28px 32px;border-radius:24px;background:#fff}
.gallery-slide img{border-radius:0}
.manifesto{margin:0 16px;border-radius:36px;overflow:hidden}
.reel-link{border-radius:32px}
.visit-facts>div{align-items:center;margin-bottom:12px;padding:20px 26px;border:0;border-radius:24px;background:#fff}
.visit-facts>div>span{display:grid;place-items:center;flex-shrink:0;width:46px;height:46px;border-radius:50%;background:rgba(4,66,191,.1);font-size:18px}
.map-preview{border-radius:28px}
.location-row{margin-top:12px;padding:26px 30px;border:0;border-radius:24px;background:#fff}
details{margin-bottom:10px;padding:0 28px;border:0;border-radius:20px;background:#fff}
summary:after{display:grid;place-items:center;right:0;width:32px;height:32px;border-radius:50%;background:var(--bg-alt);font-size:20px;line-height:1;padding-bottom:2px}
.testimonial{border-radius:28px}
.final-cta{margin:0 16px 16px;padding:88px 20px;border-radius:36px}
.final-cta .button{background:#fff;color:#0B2239}
.final-cta .button:hover{background:#EEF2F4}
.footer-brand img{width:96px;height:96px}
footer{border-top:0}

/* ============ RESPONSIVE ============ */
@media(max-width:1000px){
  .hero{display:flex;flex-direction:column;height:auto;min-height:0}
  .hero-image{position:static;height:auto;aspect-ratio:16/9}
  .hero-shade{display:none}
  .hero-content{max-width:none;padding:34px 6% 28px}
  .hero h1{font-size:clamp(40px,8vw,70px)}
  html[lang=fr] .hero h1{font-size:clamp(34px,7vw,60px)}
  .hero-foot{position:static;padding:0 6% 24px}
  .hero-cta{flex-wrap:wrap}
}
@media(max-width:900px){
  header{height:auto;min-height:var(--header-h);flex-wrap:wrap;padding-top:14px;padding-bottom:12px}
  nav{order:3;width:100%;justify-content:center;gap:22px}
  .section{padding:70px 6%}
  .pricing-grid{gap:10px}
  .price-card{padding:26px 18px}
  .manifesto-copy{padding:56px 9%}
  .visit{gap:40px}
  .faq{gap:35px}
  .group-strip{align-items:flex-start;flex-direction:column;gap:14px}
  .reel-section{gap:30px}
  .testimonials-grid{grid-template-columns:1fr 1fr}
  .testimonial:last-child{grid-column:1/-1;min-height:0}
  .testimonials-head{align-items:flex-start;flex-direction:column;gap:18px}
}
@media(max-width:650px){
  header{gap:10px}
  .nav-actions{gap:14px}
  .nav-actions>.button{display:none}
  .hero .eyebrow{font-size:11px;letter-spacing:.1em}
  .hero p{font-size:17px}
  .hero-cta{align-items:flex-start;flex-direction:column;gap:16px}
  .hero-foot{flex-direction:column;gap:4px;font-size:10px}
  .ticker{padding:12px 5%;font-size:14px}
  .section{padding:56px 6%}
  .section-intro,.route-grid,.pricing-grid,.manifesto,.visit,.faq,.reel-section,.testimonials-grid{grid-template-columns:1fr}
  .section-intro p{justify-self:start;margin-top:12px}
  .route-card{padding:28px}
  .section-heading{display:block}
  .section-heading>p{margin-top:20px}
  .price-card{padding:28px}
  .price-card p{min-height:0}
  .pricing-grid{gap:18px}
  .gallery-heading{align-items:flex-start;flex-direction:column}
  .gallery-slide{aspect-ratio:4/3}
  .gallery-controls{width:100%;justify-content:flex-end}
  .gallery-count{margin-right:auto}
  .gallery-controls button{width:46px;height:46px}
  .manifesto-image{min-height:420px}
  .manifesto-copy{padding:46px 6%}
  .visit{gap:20px}
  .location-row{display:block}
  .location-row .text-link{display:inline-block;margin-top:18px}
  .map-preview iframe{height:320px}
  .map-caption{align-items:flex-start;flex-direction:column;padding:20px}
  .map-caption .button{width:100%}
  .faq{gap:20px}
  .testimonial,.testimonial:last-child{grid-column:auto;min-height:0;padding:26px}
  .testimonial blockquote{margin:20px 0 22px}
  .final-cta{padding:56px 6%}
  footer{padding-bottom:110px}
  footer p{max-width:180px}
  .mobile-book{display:flex;position:fixed;z-index:20;left:6%;right:6%;bottom:12px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}.gallery-track{transition:none}}

@media(max-width:1000px){
  .hero{margin:0 12px;border-radius:28px}
  .hero h1{max-width:none}
  .hero-content{position:relative;bottom:auto;max-width:none;padding:28px 24px 20px}
  .hero-foot{position:static;padding:0 24px 24px}
  .ticker{margin:12px 12px 0}
  .manifesto{margin:0 12px;border-radius:28px}
  .final-cta{margin:0 12px 12px;border-radius:28px}
}
@media(max-width:650px){
  nav a{padding:8px 10px;white-space:nowrap}
  nav{gap:6px}
  .ticker{border-radius:24px}
  .route-card{padding:28px}
  .visit-facts>div{padding:16px 18px}
  .location-row{padding:22px}
  details{padding:0 20px}
  .group-strip{padding:22px}
}

/* ---- Galería deslizable con el dedo (scroll nativo + snap) ---- */
.gallery-window{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.gallery-window::-webkit-scrollbar{display:none}
.gallery-track{transform:none!important}
.gallery-slide{scroll-snap-align:start;scroll-snap-stop:always}
.gallery-slide img{-webkit-user-drag:none;user-select:none;-webkit-user-select:none}

/* ---- Franja de servicios con iconos ---- */
.ticker{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 30px;word-spacing:0;letter-spacing:.03em}
.ticker span{margin:0}
.ticker .service{display:inline-flex;align-items:center;gap:9px;white-space:nowrap}
.ticker svg{flex:none;width:25px;height:25px;fill:none;stroke:#9FD9D2;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:650px){.ticker{gap:8px 20px}.ticker svg{width:21px;height:21px}}

/* ---- Redes sociales en el pie ---- */
.social{display:flex;align-items:center;gap:12px}
.social a{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#fff;color:var(--text);transition:background .18s,color .18s,transform .18s}
.social a:hover{background:var(--accent);color:#fff;transform:translateY(-2px)}
.social svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* ---- Opiniones de Google ---- */
.reviews-summary{margin-top:14px;font-weight:600;color:var(--foam)}
.reviews-summary:empty{display:none}
.testimonial figcaption a{text-decoration:underline;text-underline-offset:4px}

/* ---- Página Playas: tarjetas con vista satelital de referencia ---- */
.beach-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.beach-card{display:flex;flex-direction:column;overflow:hidden;background:#fff;border-radius:28px}
.beach-card iframe{display:block;width:100%;height:230px;border:0;background:var(--bg-alt);pointer-events:none}
.beach-body{display:flex;flex-direction:column;flex:1;gap:10px;padding:24px 26px 28px}
.beach-body>span{font-size:12px;font-weight:700;letter-spacing:.12em;color:var(--accent-text)}
.beach-body h3{font-size:var(--h3-md)}
.beach-body p{flex:1;font-size:15px;color:var(--soft)}
.beach-body .text-link{align-self:flex-start;margin-top:6px}
.beach-note{max-width:640px;margin-top:30px;font-size:15px;color:var(--soft)}

/* ---- Página Comunidad ---- */
.community-intro{margin-top:16px}
.community-intro .manifesto-copy>p{margin:0 0 16px}
.community-intro .manifesto-copy .eyebrow+h1{margin-bottom:24px}
.initiatives h2{margin-bottom:36px}
.initiative-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.initiative-card{display:flex;flex-direction:column;overflow:hidden;background:#fff;border-radius:28px}
.initiative-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.initiative-body{padding:24px 24px 30px}
.initiative-body h3{margin-bottom:10px;font-size:24px}
.initiative-body p{font-size:15px;color:var(--soft)}
.final-cta p.cta-lead{max-width:640px;margin:18px auto 0;font-size:17px;opacity:.92}
.final-cta p.cta-closing{margin-top:26px;font-size:19px;font-weight:700;opacity:1}
.cta-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:30px}
.final-cta .cta-actions .button{margin-top:0}
.final-cta .button.outline{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.75)}
.final-cta .button.outline:hover{background:rgba(255,255,255,.14)}
@media(max-width:1000px){.initiative-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.beach-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.community-intro{margin-top:12px}}
@media(max-width:650px){.beach-grid,.initiative-grid{grid-template-columns:1fr}.beach-card iframe{height:200px}.community-intro .manifesto-copy{padding:40px 6%}}
.initiative-card img{height:auto}
.community-cta h2{font-size:var(--h2-lg)}
.community-intro .manifesto-image img{object-position:42% 60%}

/* ---- Página Comunidad ---- */
.community-intro{display:grid;grid-template-columns:1.1fr 1fr;gap:70px;align-items:center}
.community-text h1{margin-bottom:28px}
.community-text p{max-width:580px;margin-top:18px;color:var(--soft)}
.community-text p.lead{font-size:20px;line-height:1.55;color:var(--text)}
.community-photo{overflow:hidden;aspect-ratio:4/5;border-radius:36px;background:var(--bg-dark)}
.community-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 40%}
.initiatives{background:var(--bg-alt)}
.initiative-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.initiative-card{display:flex;flex-direction:column;overflow:hidden;border-radius:28px;background:#fff}
.initiative-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.initiative-card div{padding:24px 24px 30px}
.initiative-card h3{font-size:24px}
.initiative-card p{margin-top:12px;font-size:15px;color:var(--soft)}
.manifesto-copy>p+p{margin-top:0}
.manifesto+.final-cta{margin-top:16px}
nav{flex-wrap:wrap;justify-content:center}
@media(max-width:1100px){nav{gap:10px}}
@media(max-width:1000px){.community-intro{grid-template-columns:1fr;gap:40px}.initiative-grid{grid-template-columns:1fr 1fr}.community-photo{aspect-ratio:4/3}}
@media(max-width:650px){.initiative-grid{grid-template-columns:1fr}}
/* ---- Menú con 4 enlaces: ajuste en anchos intermedios ---- */
nav{flex-wrap:nowrap}
.button.small{white-space:nowrap}
@media(max-width:1180px){nav{gap:4px}nav a{padding:8px 11px;font-size:14px}.nav-actions{gap:14px}.language-options a{padding:6px 9px}.button.small{padding:11px 16px}}
@media(max-width:1020px){
  header{height:auto;min-height:var(--header-h);flex-wrap:wrap;padding-top:14px;padding-bottom:12px}
  nav{order:3;width:100%;flex-wrap:wrap;justify-content:center;gap:12px}
}

/* ---- Tarjetas de Comunidad: fotos cuadradas (conservan los logos de las imágenes) ---- */
.initiative-card img{aspect-ratio:1/1;object-position:50% 40%}

/* ---- Franja de servicios: desplazamiento horizontal continuo ---- */
.ticker{display:block;overflow:hidden;gap:0;padding:14px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.ticker-track{display:flex;width:max-content;animation:ticker-scroll 32s linear infinite;will-change:transform}
.ticker-set{display:flex;flex:none;align-items:center}
.ticker .service{margin-right:48px}
.ticker:hover .ticker-track{animation-play-state:paused}
@keyframes ticker-scroll{from{transform:translateX(0)}to{transform:translateX(-25%)}}
@media(max-width:650px){.ticker{border-radius:999px}.ticker .service{margin-right:34px}.ticker-track{animation-duration:26s}}
@media(prefers-reduced-motion:reduce){
  .ticker-track{width:auto;justify-content:center;animation:none}
  .ticker-set{flex-wrap:wrap;justify-content:center;gap:10px 30px;padding:0 20px}
  .ticker-set[aria-hidden=true]{display:none}
  .ticker .service{margin-right:0}
  .ticker{-webkit-mask-image:none;mask-image:none}
}
