/* ===========================================================
   ISLAS GALÁPAGOS — site.css
   CSS unificado de las 3 maquetas (Home, Ficha de producto, Tienda)
   =========================================================== */

:root{
  --ink:#0B0C0C;
  --teal:#0E4F4A;
  --teal-deep:#083A36;
  --teal-bright:#1C8578;
  --paper:#FAFAF7;
  --paper-2:#F1F0EA;
  --gray-1:#8B897F;
  --gray-2:#C8C6BC;
  --line:rgba(250,250,247,0.14);
  --line-dark:rgba(11,12,12,0.12);
}
*{box-sizing:border-box;}
body{font-family:'Inter', sans-serif; background:var(--paper); color:var(--ink); -webkit-font-smoothing:antialiased; margin:0;}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
.wrap{max-width:1180px; margin:0 auto; padding:0 40px;}
.serif{font-family:'Fraunces', serif;}
.eyebrow{font-size:12px; letter-spacing:0.14em; text-transform:uppercase; font-weight:500; color:var(--teal-bright);}
.coord{font-family:'Inter', sans-serif; font-size:11px; letter-spacing:0.06em; color:var(--gray-1); font-variant-numeric:tabular-nums;}
.btn{display:inline-flex; align-items:center; gap:8px; padding:13px 26px; border-radius:2px; font-size:14px; font-weight:500; letter-spacing:0.02em; border:1px solid transparent; cursor:pointer; background:none;}
.btn-primary{background:var(--teal-bright); color:var(--paper);}
.btn-outline-light{border-color:rgba(250,250,247,0.4); color:var(--paper);}
.btn-outline-dark{border-color:var(--ink); color:var(--ink);}
.btn-block{width:100%; justify-content:center;}

/* ===== HEADER =====
   Dos comportamientos según la página:
   - body.home  → transparente/flotante sobre el hero, sólido al hacer scroll
   - cualquier otra página → sólido desde el inicio (body NO tiene .home)      */
header{position:fixed; top:0; left:0; right:0; z-index:30; background:rgba(250,250,247,0.97); border-bottom:1px solid var(--line-dark); backdrop-filter:blur(6px); transition:background .35s ease, border-color .35s ease;}
body:not(.home) header{position:sticky;} /* fuera del home no necesitamos que flote sobre nada */
body.home header{background:transparent; border-bottom-color:transparent;}
body.home header.scrolled{background:rgba(250,250,247,0.96); border-bottom-color:var(--line-dark);}
.header-inner{display:flex; align-items:center; justify-content:space-between; padding:18px 40px;}
.logo{display:flex; flex-direction:column; line-height:1;}
.logo-main{font-family:'Fraunces', serif; font-size:19px; font-weight:500; color:var(--ink); transition:color .35s ease;}
.logo-sub{font-size:10px; letter-spacing:0.18em; color:var(--gray-1); margin-top:4px; transition:color .35s ease;}
body.home:not(.header-scrolled) .logo-main{color:var(--paper);}
body.home:not(.header-scrolled) .logo-sub{color:rgba(250,250,247,0.65);}
nav{display:flex; gap:34px; font-size:14px; font-weight:500;}
nav a{color:var(--ink); opacity:0.75;}
nav a:hover, nav a.on{opacity:1;}
body.home:not(.header-scrolled) nav a{color:var(--paper);}
.header-actions{display:flex; align-items:center; gap:18px;}
.lang-toggle{font-size:13px; color:var(--gray-1); display:flex; gap:6px;}
.lang-toggle span:first-child{color:var(--ink); font-weight:600;}
body.home:not(.header-scrolled) .lang-toggle{color:rgba(250,250,247,0.7);}
body.home:not(.header-scrolled) .lang-toggle span:first-child{color:var(--paper);}
.wa-pill{display:flex; align-items:center; gap:7px; background:var(--ink); color:var(--paper); padding:10px 17px; border-radius:2px; font-size:13px; font-weight:500; border:1px solid transparent;}
body.home:not(.header-scrolled) .wa-pill{background:rgba(250,250,247,0.12); border-color:rgba(250,250,247,0.4);}

/* ===== HERO (solo Home) ===== */
.hero{position:relative; min-height:100vh; display:flex; flex-direction:column; justify-content:flex-end; color:var(--paper); overflow:hidden; padding:0 40px;}
.hero-bg{position:absolute; inset:0; z-index:0; background:
  radial-gradient(120% 90% at 78% 15%, rgba(28,133,120,0.55) 0%, transparent 55%),
  repeating-linear-gradient(115deg, rgba(28,133,120,0.16) 0px, rgba(28,133,120,0.16) 2px, transparent 2px, transparent 44px),
  linear-gradient(200deg, #12312E 0%, #0B0C0C 62%, #060706 100%);}
.hero-scrim{position:absolute; inset:0; z-index:1; background:linear-gradient(0deg, rgba(6,7,6,0.92) 0%, rgba(6,7,6,0.55) 32%, rgba(6,7,6,0.05) 58%, transparent 72%);}
.photo-tag{position:absolute; top:100px; right:40px; z-index:1; font-size:11px; letter-spacing:0.08em; color:rgba(250,250,247,0.4); border:1px solid rgba(250,250,247,0.2); padding:7px 14px; border-radius:2px; text-transform:uppercase;}
.hero-inner{max-width:1180px; margin:0 auto; position:relative; z-index:2; width:100%; padding-bottom:64px;}
.hero h1{font-size:66px; font-weight:400; line-height:1.04; max-width:840px; margin:20px 0 22px; letter-spacing:-0.01em;}
.hero h1 em{font-style:italic; color:var(--teal-bright);}
.hero p.lead{font-size:17px; color:var(--gray-2); max-width:500px; line-height:1.65; margin-bottom:38px;}
.hero-ctas{display:flex; gap:14px; margin-bottom:58px;}
.equator-line{display:flex; align-items:center; gap:14px; padding-top:22px; border-top:1px solid var(--line);}
.equator-line .coord{color:var(--gray-2);}
.equator-line .rule{flex:1; height:1px; background:var(--line); position:relative;}
.equator-line .rule::before, .equator-line .rule::after{content:''; position:absolute; top:-3px; width:1px; height:7px; background:var(--gray-1);}
.equator-line .rule::before{left:0;} .equator-line .rule::after{right:0;}
.scroll-cue{position:absolute; bottom:26px; left:40px; z-index:2; display:flex; align-items:center; gap:10px; font-size:11px; letter-spacing:0.1em; color:rgba(250,250,247,0.55); text-transform:uppercase;}
.scroll-cue .dot-line{width:1px; height:34px; background:rgba(250,250,247,0.35); position:relative; overflow:hidden;}
.scroll-cue .dot-line::after{content:''; position:absolute; top:0; left:0; width:100%; height:10px; background:var(--teal-bright); animation:scrolldrop 1.8s ease-in-out infinite;}
@keyframes scrolldrop{0%{transform:translateY(-10px);} 100%{transform:translateY(34px);}}

/* ===== BANNER (Tienda / páginas internas) ===== */
.banner{position:relative; padding:150px 40px 70px; color:var(--paper); overflow:hidden; background:linear-gradient(155deg, var(--ink) 0%, var(--teal-deep) 75%, var(--teal) 100%);}
.banner::before{content:''; position:absolute; inset:0; background:repeating-linear-gradient(115deg, rgba(28,133,120,0.16) 0px, rgba(28,133,120,0.16) 2px, transparent 2px, transparent 44px);}
.banner-inner{max-width:1180px; margin:0 auto; position:relative; z-index:1;}
.banner .breadcrumb{font-size:12.5px; color:rgba(250,250,247,0.55); display:flex; align-items:center; gap:8px; margin-bottom:20px;}
.banner .breadcrumb a{color:rgba(250,250,247,0.55);}
.banner h1{font-size:46px; font-weight:400; max-width:640px; line-height:1.1; margin:14px 0 14px;}
.banner p{color:var(--gray-2); font-size:15px; max-width:460px; line-height:1.65;}

/* ===== BREADCRUMB (ficha de producto) ===== */
.breadcrumb.standalone{padding:32px 40px 0; font-size:12.5px; color:var(--gray-1); display:flex; align-items:center; gap:8px; max-width:1180px; margin:0 auto;}
.breadcrumb.standalone a{color:var(--gray-1);}
.breadcrumb.standalone .current{color:var(--ink); font-weight:500;}

/* ===== SECTION / GHOST INDEX / REVEAL (compartido) ===== */
.section{padding:112px 40px; position:relative; overflow:hidden;}
.ghost-index{position:absolute; top:-0.28em; left:50%; transform:translateX(-50%); font-family:'Fraunces', serif; font-weight:300; font-size:clamp(120px,18vw,220px); color:var(--ink); opacity:0.035; z-index:0; white-space:nowrap; pointer-events:none;}
.why .ghost-index{color:var(--paper); opacity:0.05;}
.section-head{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:64px; gap:24px; flex-wrap:wrap; position:relative; z-index:1;}
.section-head .eyebrow{display:block; margin-bottom:14px;}
.section-head h2{font-size:38px; font-weight:400; max-width:560px; line-height:1.14;}
.section-head p{color:var(--gray-1); font-size:14px; max-width:320px; line-height:1.6; padding-bottom:4px;}
.reveal{opacity:0; transform:translateY(24px); transition:opacity .7s cubic-bezier(.16,.8,.3,1), transform .7s cubic-bezier(.16,.8,.3,1);}
.reveal.in{opacity:1; transform:translateY(0);}
.reveal-delay-1{transition-delay:.08s;} .reveal-delay-2{transition-delay:.16s;} .reveal-delay-3{transition-delay:.24s;}
@media (prefers-reduced-motion: reduce){ .reveal{opacity:1; transform:none; transition:none;} }

/* ===== ISLANDS (Home) ===== */
.islands{background:var(--paper);}
.island-layout{display:grid; grid-template-columns:0.85fr 1.15fr; gap:64px; align-items:stretch; position:relative; z-index:1;}
.island-list{display:flex; flex-direction:column;}
.island-row{display:grid; grid-template-columns:44px 1fr 20px; align-items:start; gap:20px; padding:28px 4px; border-top:1px solid var(--line-dark); cursor:pointer; transition:padding-left .3s ease;}
.island-list .island-row:last-child{border-bottom:1px solid var(--line-dark);}
.island-row .coord{padding-top:6px; color:var(--gray-1); transition:color .3s ease;}
.island-row h3{font-family:'Fraunces', serif; font-size:26px; font-weight:400; color:var(--gray-1); transition:color .3s ease; margin-bottom:8px;}
.island-row p{font-size:13.5px; color:var(--gray-1); line-height:1.6; max-height:0; opacity:0; overflow:hidden; transition:max-height .35s ease, opacity .35s ease, margin .35s ease; margin:0;}
.island-row i{font-size:18px; color:var(--gray-1); opacity:0; transform:translateX(-6px); transition:all .3s ease; margin-top:4px;}
.island-row:hover, .island-row.active{padding-left:14px;}
.island-row:hover h3, .island-row.active h3{color:var(--ink);}
.island-row:hover .coord, .island-row.active .coord{color:var(--teal-bright);}
.island-row.active p{max-height:80px; opacity:1; margin-top:2px;}
.island-row.active i{opacity:1; transform:translateX(0); color:var(--teal-bright);}
.island-visual{position:relative; overflow:hidden; min-height:460px;}
.island-frame{position:absolute; inset:0; opacity:0; transition:opacity .6s ease; display:flex; align-items:flex-end; padding:28px;}
.island-frame.active{opacity:1;}
.island-frame .tag{font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:rgba(250,250,247,0.6); border:1px solid rgba(250,250,247,0.25); padding:7px 14px; border-radius:2px;}

/* ===== TOURS grid asimétrico (Home) + tarjeta reutilizable en Tienda ===== */
.tours{background:var(--paper-2);}
.tour-grid{display:grid; grid-template-columns:1.3fr 1fr; gap:28px; position:relative; z-index:1;}
.tour-grid.uniform{grid-template-columns:repeat(2,1fr);} /* variante usada en la Tienda */
.tour-stack{display:flex; flex-direction:column; gap:28px;}
.tour-card{background:var(--paper); border:1px solid var(--line-dark); display:flex; flex-direction:column; overflow:hidden;}
.tour-card.featured{flex-direction:column;}
.tour-card.featured .tour-photo{height:340px;}
.tour-photo{height:210px; background:linear-gradient(135deg,#0B0C0C,#1C8578); position:relative; overflow:hidden;}
.tour-photo img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .6s ease;}
.tour-photo::after{content:''; position:absolute; inset:0; background:repeating-linear-gradient(115deg, rgba(250,250,247,0.06) 0px, rgba(250,250,247,0.06) 1px, transparent 1px, transparent 30px); pointer-events:none;}
.tour-card:hover .tour-photo img{transform:scale(1.08);}
.tour-badge{position:absolute; top:14px; left:14px; background:var(--paper); color:var(--ink); font-size:10px; letter-spacing:0.06em; text-transform:uppercase; padding:6px 10px; font-weight:600; z-index:2;}
.tour-island{position:absolute; bottom:14px; left:14px; z-index:2; font-size:11px; color:rgba(250,250,247,0.85); display:flex; align-items:center; gap:5px;}
.tour-body{padding:24px 26px 28px; display:flex; flex-direction:column; gap:12px; flex:1;}
.tour-card.featured .tour-body{padding:30px 34px 34px;}
.tour-days{font-size:12px; color:var(--gray-1); letter-spacing:0.03em;}
.tour-card h3{font-family:'Fraunces', serif; font-size:19px; font-weight:500; line-height:1.3;}
.tour-card.featured h3{font-size:27px;}
.tour-includes{list-style:none; font-size:12.5px; color:var(--gray-1); display:flex; flex-direction:column; gap:5px; margin:0; padding:0;}
.tour-includes li{display:flex; gap:7px; align-items:flex-start;}
.tour-includes i{color:var(--teal-bright); font-size:14px; margin-top:1px;}
.tour-foot{display:flex; justify-content:space-between; align-items:center; margin-top:auto; padding-top:16px; border-top:1px solid var(--line-dark);}
.tour-price .from{font-size:11px; color:var(--gray-1); display:block;}
.tour-price .val{font-size:20px; font-family:'Fraunces', serif; font-weight:500;}
.tour-card.featured .tour-price .val{font-size:26px;}
.tour-cta{font-size:13px; font-weight:600; color:var(--teal); display:flex; align-items:center; gap:5px; position:relative;}
.tour-cta::after{content:''; position:absolute; left:0; bottom:-3px; width:0; height:1px; background:var(--teal); transition:width .3s ease;}
.tour-card:hover .tour-cta::after{width:calc(100% - 20px);}
.tours-footcta{text-align:center; margin-top:56px; position:relative; z-index:1;}

/* ===== WHY US (Home) ===== */
.why{background:var(--ink); color:var(--paper);}
.why-grid{display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:start;}
.why h2{font-size:34px; font-weight:400; line-height:1.2; margin-bottom:22px;}
.why > .why-grid > div:first-child p{color:var(--gray-2); font-size:15px; line-height:1.7; margin-bottom:32px;}
.pillars{display:flex; flex-direction:column;}
.pillar{display:grid; grid-template-columns:70px 1fr; gap:18px; padding:22px 0; border-top:1px solid var(--line);}
.pillar:last-child{border-bottom:1px solid var(--line);}
.pillar h4{font-size:15px; font-weight:600; margin-bottom:6px;}
.pillar p{font-size:13.5px; color:var(--gray-2); line-height:1.6; margin:0;}

/* ===== TESTIMONIAL ===== */
.testi{background:var(--paper); text-align:center; padding:120px 40px; position:relative; overflow:hidden;}
.testi-mark{position:absolute; top:20px; left:50%; transform:translateX(-50%); font-family:'Fraunces', serif; font-size:260px; color:var(--teal); opacity:0.06; line-height:1; pointer-events:none;}
.testi blockquote{font-family:'Fraunces', serif; font-style:italic; font-size:32px; font-weight:400; max-width:760px; margin:0 auto 26px; line-height:1.4; color:var(--ink); position:relative; z-index:1;}
.testi cite{font-style:normal; font-size:13px; color:var(--gray-1); letter-spacing:0.03em; position:relative; z-index:1;}
.ratings{display:flex; justify-content:center; gap:36px; margin-top:52px; position:relative; z-index:1;}
.rating{display:flex; flex-direction:column; align-items:center; gap:6px;}
.rating .val{font-family:'Fraunces', serif; font-size:26px;}
.rating .lbl{font-size:11px; color:var(--gray-1); letter-spacing:0.06em; text-transform:uppercase;}

/* ===== CTA / QUOTE BAND (Home + Ficha de producto) ===== */
.cta-band, .quote-band{background:linear-gradient(120deg, var(--teal-deep), var(--teal)); color:var(--paper); padding:88px 40px;}
.cta-band{text-align:center;}
.cta-band h2{font-size:36px; font-weight:400; max-width:640px; margin:14px auto 16px;}
.cta-band p{color:var(--gray-2); max-width:480px; margin:0 auto 34px; font-size:15px; line-height:1.6;}
.cta-actions{display:flex; justify-content:center; gap:14px;}
.quote-inner{max-width:1180px; margin:0 auto; display:grid; grid-template-columns:0.8fr 1.2fr; gap:64px;}
.quote-inner h2{font-size:34px; font-weight:400; margin:14px 0 16px; line-height:1.2;}
.quote-inner p{color:var(--gray-2); font-size:14.5px; line-height:1.65; max-width:380px;}
.quote-wa{display:flex; align-items:center; gap:10px; margin-top:28px; font-size:14px; font-weight:500;}
form.quote-form{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
form.quote-form .full{grid-column:1 / -1;}
form.quote-form label{font-size:12px; letter-spacing:0.04em; color:rgba(250,250,247,0.75); display:block; margin-bottom:7px;}
form.quote-form input, form.quote-form textarea, form.quote-form select{width:100%; background:rgba(250,250,247,0.08); border:1px solid rgba(250,250,247,0.28); color:var(--paper); padding:12px 14px; font-family:'Inter', sans-serif; font-size:13.5px; border-radius:2px;}
form.quote-form input::placeholder, form.quote-form textarea::placeholder{color:rgba(250,250,247,0.4);}
form.quote-form textarea{resize:vertical; min-height:80px;}
form.quote-form button{margin-top:6px;}
/* Restyle del formulario Fluent Forms para que herede este look (ver nota en single-product.php) */
.ff-el-group{margin-bottom:16px;}
.ff-el-form-control{background:rgba(250,250,247,0.08) !important; border:1px solid rgba(250,250,247,0.28) !important; color:var(--paper) !important;}

/* ===== GALLERY (Ficha de producto) ===== */
.gallery{padding:0 40px 8px;}
.gallery-grid{max-width:1180px; margin:0 auto; display:grid; grid-template-columns:88px 1fr; gap:14px; height:520px;}
.thumbs{display:flex; flex-direction:column; gap:10px; overflow:hidden;}
.thumb{flex:1; position:relative; cursor:pointer; overflow:hidden; opacity:0.55; transition:opacity .3s ease; background:linear-gradient(135deg,#141615,#0E4F4A);}
.thumb img{width:100%; height:100%; object-fit:cover; position:absolute; inset:0;}
.thumb.active, .thumb:hover{opacity:1;}
.thumb.active::after{content:''; position:absolute; inset:0; border:2px solid var(--teal-bright);}
.main-photo{position:relative; overflow:hidden; background:var(--ink);}
.main-frame{position:absolute; inset:0; opacity:0; transition:opacity .5s ease; background:linear-gradient(135deg,#141615,#0E4F4A); display:flex; align-items:flex-end; padding:26px;}
.main-frame img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0;}
.main-frame.active{opacity:1;}
.main-frame .tag{position:relative; z-index:1; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:rgba(250,250,247,0.55); border:1px solid rgba(250,250,247,0.25); padding:7px 14px; border-radius:2px;}
.gallery-count{position:absolute; top:20px; right:20px; z-index:2; font-size:11px; color:rgba(250,250,247,0.8); background:rgba(11,12,12,0.4); padding:6px 12px; border-radius:2px;}

/* ===== TITLE BLOCK (Ficha de producto) ===== */
.title-block{padding:36px 40px 0;}
.title-row{max-width:1180px; margin:0 auto; display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap; border-bottom:1px solid var(--line-dark); padding-bottom:30px;}
.title-row h1{font-size:42px; font-weight:400; max-width:640px; line-height:1.1; margin:12px 0 0;}
.title-meta{display:flex; gap:22px; margin-top:14px; flex-wrap:wrap;}
.title-meta span{display:flex; align-items:center; gap:7px; font-size:13px; color:var(--gray-1);}
.title-meta i{font-size:16px; color:var(--teal-bright);}
.title-price{text-align:right;}
.title-price .from{font-size:12px; color:var(--gray-1); display:block; margin-bottom:2px;}
.title-price .val{font-family:'Fraunces', serif; font-size:38px; font-weight:500;}
.title-price .unit{font-size:12px; color:var(--gray-1);}

/* ===== PRODUCT LAYOUT (Ficha de producto) ===== */
.product-layout{max-width:1180px; margin:0 auto; padding:56px 40px 0; display:grid; grid-template-columns:1fr 340px; gap:64px;}
.include-grid{display:grid; grid-template-columns:1fr 1fr; gap:40px; margin-bottom:56px;}
.include-col h3{font-size:13px; letter-spacing:0.06em; text-transform:uppercase; margin-bottom:16px; font-weight:600;}
.include-col.yes h3{color:var(--teal);}
.include-col.no h3{color:var(--gray-1);}
.include-list{list-style:none; display:flex; flex-direction:column; gap:12px; margin:0; padding:0;}
.include-list li{display:flex; gap:10px; align-items:flex-start; font-size:14px; line-height:1.5; color:var(--ink);}
.include-col.no .include-list li{color:var(--gray-1);}
.include-list i{font-size:16px; margin-top:2px; flex-shrink:0;}
.include-col.yes i{color:var(--teal-bright);}
.include-col.no i{color:var(--gray-1);}
/* Contenido pegado desde ACF WYSIWYG dentro de include-list: normaliza listas de WordPress */
.include-list ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px;}

.tabs-nav{display:flex; gap:0; border-bottom:1px solid var(--line-dark); margin-bottom:36px; flex-wrap:wrap;}
.tab-btn{background:none; border:none; font-family:'Inter', sans-serif; font-size:14px; font-weight:500; color:var(--gray-1); padding:14px 22px 14px 0; margin-right:26px; cursor:pointer; position:relative;}
.tab-btn.active{color:var(--ink);}
.tab-btn.active::after{content:''; position:absolute; left:0; right:26px; bottom:-1px; height:2px; background:var(--teal-bright);}
.tab-panel{display:none;}
.tab-panel.active{display:block;}
.tab-panel-content p{font-size:14px; color:var(--ink); line-height:1.7;}
.tab-panel-content strong{font-family:'Fraunces', serif; font-size:16px; font-weight:600; display:block; margin:22px 0 8px;}
.tab-panel-content strong:first-child{margin-top:0;}

.day{display:grid; grid-template-columns:64px 1fr; gap:20px; padding:26px 0; border-top:1px solid var(--line-dark);}
.day:last-child{padding-bottom:0;}
.day-num{font-family:'Fraunces', serif; font-size:26px; color:var(--teal-bright); font-weight:400;}
.day h4{font-size:16px; font-weight:600; margin-bottom:8px;}
.day p{font-size:14px; color:var(--gray-1); line-height:1.65; margin:0;}

.price-table{width:100%; border-collapse:collapse; font-size:13.5px;}
.price-table th{text-align:left; font-weight:600; font-size:11px; letter-spacing:0.06em; text-transform:uppercase; color:var(--gray-1); padding:12px 14px; border-bottom:1px solid var(--line-dark);}
.price-table td{padding:14px; border-bottom:1px solid var(--line-dark); color:var(--ink);}
.price-table tr:last-child td{border-bottom:none;}
.price-table td:first-child{font-weight:500;}
.price-table .note{font-size:12px; color:var(--gray-1); margin-top:16px; line-height:1.6;}

.addon{display:flex; justify-content:space-between; align-items:center; padding:18px 0; border-top:1px solid var(--line-dark); gap:16px;}
.addon:last-child{border-bottom:1px solid var(--line-dark);}
.addon-name{font-size:14.5px; font-weight:500;}
.addon-desc{font-size:12.5px; color:var(--gray-1); margin-top:4px; max-width:440px; line-height:1.5;}
.addon-price{font-family:'Fraunces', serif; font-size:16px; white-space:nowrap;}
.flight-note{margin-top:28px; padding:18px 20px; background:var(--paper-2); border-left:2px solid var(--teal-bright); font-size:13px; color:var(--ink); line-height:1.6; display:flex; gap:12px; align-items:flex-start;}
.flight-note i{color:var(--teal-bright); font-size:18px; margin-top:1px;}

.cond-list{list-style:none; display:flex; flex-direction:column; gap:10px; margin:0; padding:0;}
.cond-list li{font-size:13.5px; color:var(--gray-1); line-height:1.6; padding-left:16px; position:relative;}
.cond-list li::before{content:'—'; position:absolute; left:0; color:var(--gray-2);}

.sidebar{position:sticky; top:96px; align-self:start;}
.side-card{background:var(--paper); border:1px solid var(--line-dark); padding:28px 26px;}
.side-card .from{font-size:12px; color:var(--gray-1); display:block;}
.side-card .val{font-family:'Fraunces', serif; font-size:34px; font-weight:500; margin:2px 0 2px; display:block;}
.side-card .unit{font-size:12.5px; color:var(--gray-1); margin-bottom:22px; display:block;}
.side-facts{list-style:none; display:flex; flex-direction:column; gap:12px; margin:22px 0; padding:20px 0; border-top:1px solid var(--line-dark); border-bottom:1px solid var(--line-dark);}
.side-facts li{display:flex; align-items:center; gap:10px; font-size:13px; color:var(--ink);}
.side-facts i{font-size:16px; color:var(--teal-bright); width:18px;}
.side-card .btn{margin-bottom:10px;}
.side-trust{display:flex; align-items:center; gap:10px; margin-top:20px; font-size:12px; color:var(--gray-1);}
.side-trust i{font-size:16px; color:var(--teal-bright);}

.related{background:var(--paper-2);}
.related-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}

/* ===== TIENDA: sidebar de filtros ===== */
.shop-layout{max-width:1180px; margin:0 auto; padding:48px 40px 0; display:grid; grid-template-columns:230px 1fr; gap:56px;}
.shop-filters{position:sticky; top:90px; align-self:start;}
.filters-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:24px;}
.filters-head h4{font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:var(--gray-1); font-weight:600; margin:0;}
.filters-head .clear{font-size:12px; color:var(--teal); cursor:pointer;}
.filter-group{padding:20px 0; border-top:1px solid var(--line-dark);}
.shop-filters .filter-group:first-of-type{border-top:none; padding-top:0;}
.filter-group .flabel{font-size:11px; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink); font-weight:600; display:block; margin-bottom:14px;}
.filter-option{display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 0; font-size:13.5px; color:var(--gray-1); cursor:pointer; transition:color .2s ease;}
.filter-option:hover{color:var(--ink);}
.filter-option.active{color:var(--ink); font-weight:500;}
.filter-option .fcount{font-size:11.5px; color:var(--gray-1); font-variant-numeric:tabular-nums;}
.filter-option .fcheck{width:15px; height:15px; border:1px solid var(--line-dark); border-radius:2px; flex-shrink:0; position:relative;}
.filter-option.active .fcheck{background:var(--teal-bright); border-color:var(--teal-bright);}
.filter-option.active .fcheck::after{content:'✓'; position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:10px; color:var(--paper);}
.filter-option-inner{display:flex; align-items:center; gap:10px;}
.sort-select{font-size:13px; color:var(--ink); border:1px solid var(--line-dark); background:var(--paper); padding:9px 14px; border-radius:2px; font-family:'Inter', sans-serif;}
.result-row{display:flex; justify-content:space-between; align-items:baseline; margin-bottom:28px;}
.result-row .count{font-size:13.5px; color:var(--gray-1);}
.result-row .count strong{color:var(--ink); font-weight:600;}

.pagination{display:flex; justify-content:center; align-items:center; gap:18px; padding:56px 40px 96px;}
.pagination a{font-family:'Fraunces', serif; font-size:15px; color:var(--gray-1); width:34px; height:34px; display:flex; align-items:center; justify-content:center; border-radius:50%;}
.pagination a.active{background:var(--ink); color:var(--paper);}
.pagination .arrow{font-size:16px;}

.agency-band{background:var(--paper-2); padding:64px 40px; text-align:center;}
.agency-band h2{font-size:24px; font-weight:400; margin-bottom:10px;}
.agency-band p{font-size:14px; color:var(--gray-1); max-width:440px; margin:0 auto 24px;}

/* ===== FOOTER (compartido) ===== */
footer{background:var(--ink); color:var(--gray-2); padding:70px 40px 30px;}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:50px; border-bottom:1px solid var(--line);}
.footer-brand .logo-main{color:var(--paper);}
.footer-brand p{font-size:13px; color:var(--gray-1); margin-top:16px; line-height:1.6; max-width:260px;}
.footer-col h5{font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:var(--gray-1); margin-bottom:16px;}
.footer-col a{display:block; font-size:13.5px; margin-bottom:11px; color:var(--gray-2);}
.footer-bottom{display:flex; justify-content:space-between; padding-top:26px; font-size:12px; color:var(--gray-1); flex-wrap:wrap; gap:12px;}
.footer-social{display:flex; gap:16px;}
.footer-social i{font-size:16px;}

/* ===== WHATSAPP FLOTANTE (todas las páginas) ===== */
.wa-float{position:fixed; bottom:26px; right:26px; z-index:40; width:54px; height:54px; border-radius:50%; background:var(--teal-bright); color:var(--paper); display:flex; align-items:center; justify-content:center; font-size:24px; box-shadow:0 6px 18px rgba(11,12,12,0.25);}

/* ===== RESPONSIVE ===== */
@media (max-width:960px){
  .wrap, .hero-inner{padding:0 22px;}
  .header-inner, .hero, .section, .testi, .cta-band, .quote-band, .banner-inner, .shop-layout, .agency-band, footer{padding-left:22px; padding-right:22px;}
  .breadcrumb.standalone, .gallery, .title-block, .product-layout{padding-left:22px; padding-right:22px;}
  nav{display:none;}
  .hero h1{font-size:38px;}
  .island-layout{grid-template-columns:1fr; gap:32px;}
  .island-visual{min-height:280px;}
  .tour-grid, .tour-grid.uniform{grid-template-columns:1fr;}
  .tour-card.featured .tour-photo{height:220px;}
  .why-grid{grid-template-columns:1fr; gap:40px;}
  .footer-grid{grid-template-columns:1fr 1fr; gap:32px;}
  .ratings{flex-wrap:wrap; gap:24px;}
  .ghost-index{display:none;}
  .gallery-grid{grid-template-columns:1fr; height:auto;}
  .thumbs{flex-direction:row; height:70px;}
  .main-photo{height:320px;}
  .title-row{flex-direction:column; align-items:flex-start;}
  .title-price{text-align:left;}
  .product-layout{grid-template-columns:1fr; gap:40px;}
  .sidebar{position:static;}
  .include-grid{grid-template-columns:1fr; gap:28px;}
  .quote-inner{grid-template-columns:1fr; gap:32px;}
  form.quote-form{grid-template-columns:1fr;}
  .related-grid{grid-template-columns:1fr;}
  .shop-layout{grid-template-columns:1fr; gap:28px;}
  .shop-filters{position:static;}
}
