:root{
  --black:#0A0A0A;
  --black-soft:#121110;
  --panel:#F7F5F0;
  --bronze:#A97142;
  --bronze-bright:#C98B4A;
  --patina:#5C8374;
  --white:#FFFFFF;
  --grey:#B5B2AC;
  --grey-dark:#6E6B66;
  --sidebar-w:250px;
  --f-display:'Oswald', sans-serif;
  --f-body:'Inter', sans-serif;
}
*{margin:0; padding:0; box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--black); color:var(--white); font-family:var(--f-body); line-height:1.6; overflow-x:hidden;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
h1,h2,h3,h4{font-family:var(--f-display); text-transform:uppercase; font-weight:700; line-height:1.02; letter-spacing:0.005em;}

[data-en]{display:none;}
html[data-lang="en"] [data-es]{display:none;}
html[data-lang="en"] [data-en]{display:inline;}
html[data-lang="en"] [data-en].blk{display:block;}
[data-es].blk{display:block;}

/* ---------- COURSE ACCORDION ---------- */
.sub-head{font-size:1.1rem; color:var(--bronze-bright); margin:56px 0 20px; letter-spacing:0.06em;}
.acc-wrap{border-top:1px solid rgba(255,255,255,0.14);}
.acc{border-bottom:1px solid rgba(255,255,255,0.14);}
.acc-head{
  width:100%; background:none; border:none; cursor:pointer; text-align:left; color:inherit;
  display:flex; align-items:center; gap:22px; padding:24px 4px; font-family:var(--f-body);
  transition:background 0.25s ease;
}
.acc-head:hover{background:rgba(255,255,255,0.035);}
.acc-depth{
  font-family:var(--f-display); font-size:2rem; font-weight:700; color:var(--bronze); line-height:1;
  min-width:86px; flex-shrink:0;
}
.acc-depth .u{font-size:0.85rem; color:var(--grey-dark); font-weight:400;}
.acc.open .acc-depth{color:var(--bronze-bright);}
.acc-title{flex-grow:1; min-width:0;}
.acc-title strong{
  display:block; font-family:var(--f-display); font-size:1.15rem; font-weight:600; color:var(--white);
  text-transform:uppercase; letter-spacing:0.02em; line-height:1.2;
}
.acc-sum{display:block; font-size:0.88rem; color:var(--grey); margin-top:5px;}
.acc-tag{
  font-family:var(--f-display); font-size:0.64rem; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--patina); border:1px solid rgba(92,131,116,0.5); padding:5px 11px; flex-shrink:0; white-space:nowrap;
}
.acc-chev{
  font-family:var(--f-display); font-size:1.5rem; color:var(--bronze); flex-shrink:0; width:24px; text-align:center;
  transition:transform 0.3s ease; line-height:1;
}
.acc.open .acc-chev{transform:rotate(45deg);}
.acc.flash{animation:accFlash 1.2s ease;}
@keyframes accFlash{0%{background:rgba(169,113,66,0.22);} 100%{background:transparent;}}
.acc-body{max-height:0; overflow:hidden; transition:max-height 0.45s cubic-bezier(0.4,0,0.2,1);}
.acc-inner{padding:4px 4px 34px 108px;}
.acc-desc{color:#CFCCC6; font-size:1rem; max-width:760px; margin-bottom:26px;}
.acc-cols{display:grid; grid-template-columns:1.25fr 1fr; gap:40px;}
.acc-col h5{
  font-family:var(--f-display); font-size:0.7rem; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--bronze-bright); margin-bottom:12px; font-weight:600;
}
.acc-list{list-style:none; display:flex; flex-direction:column; gap:9px;}
.acc-list li{
  font-size:0.9rem; color:var(--grey); padding-left:18px; position:relative;
}
.acc-list li::before{content:''; position:absolute; left:0; top:9px; width:7px; height:1px; background:var(--patina);}
html[data-lang="es"] .acc-list.en, html:not([data-lang="en"]) .acc-list.en{display:none;}
html[data-lang="en"] .acc-list.es{display:none;}
html[data-lang="en"] .acc-list.en{display:flex;}
.acc-meta{font-size:0.9rem; color:var(--grey);}
.acc-cta{margin-top:26px;}
.acc-offnote{
  margin-top:24px; border-left:2px solid var(--grey-dark); padding-left:14px;
  font-size:0.85rem; color:var(--grey-dark); line-height:1.5;
}


/* ---------- COURSE CAROUSEL ---------- */
.crs{margin:0 0 26px; max-width:780px;}
.crs-stage{
  position:relative; aspect-ratio:16/9; overflow:hidden; background:#0d1a1f;
  border:1px solid rgba(255,255,255,0.12);
}
.crs-slide{
  position:absolute; inset:0; opacity:0; transition:opacity 0.5s ease;
}
.crs-slide.on{opacity:1;}
.crs-slide img{width:100%; height:100%; object-fit:cover; object-position:center;}
.crs-cap{
  position:absolute; left:0; right:0; bottom:0; padding:26px 16px 12px; z-index:3;
  background:linear-gradient(180deg, transparent, rgba(10,10,10,0.85));
  font-family:var(--f-display); font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase;
  color:rgba(255,255,255,0.85);
}
.crs-arrow{
  position:absolute; top:50%; transform:translateY(-50%); z-index:4;
  background:rgba(10,10,10,0.55); border:1px solid rgba(255,255,255,0.3); color:#fff;
  width:38px; height:38px; cursor:pointer; font-size:1.1rem; display:flex; align-items:center; justify-content:center;
  transition:background 0.2s ease;
}
.crs-arrow:hover{background:rgba(169,113,66,0.9);}
.crs-prev{left:10px;} .crs-next{right:10px;}
.crs-dots{display:flex; gap:7px; margin-top:10px; justify-content:center;}
.crs-dot{
  width:26px; height:3px; background:rgba(255,255,255,0.25); border:none; padding:0; cursor:pointer;
  transition:background 0.25s ease;
}
.crs-dot.active{background:var(--bronze-bright);}
.crs-count{
  position:absolute; top:10px; right:10px; z-index:4; background:rgba(10,10,10,0.6);
  font-family:var(--f-display); font-size:0.68rem; letter-spacing:0.08em; color:#fff; padding:4px 9px;
}


/* ---------- COURSE CARDS (grid) ---------- */
.course-source{display:none;}
.crs-tabs{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:26px;}
.crs-tab{
  background:none; border:1px solid rgba(255,255,255,0.2); color:var(--grey); cursor:pointer;
  font-family:var(--f-display); font-size:0.76rem; letter-spacing:0.1em; text-transform:uppercase;
  padding:10px 18px; transition:all 0.22s ease;
}
.crs-tab:hover{border-color:var(--bronze); color:var(--white);}
.crs-tab.active{background:var(--bronze); border-color:var(--bronze); color:var(--white);}

.crs-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.ccard{
  background:var(--black-soft); border:1px solid rgba(255,255,255,0.12); cursor:pointer;
  display:flex; flex-direction:column; text-align:left; padding:0; overflow:hidden;
  font-family:var(--f-body); color:inherit; transition:border-color 0.25s ease, transform 0.25s ease;
}
.ccard:hover{border-color:var(--bronze); transform:translateY(-4px);}
.ccard-img{position:relative; aspect-ratio:16/10; overflow:hidden; background:#101d23;}
.ccard-img img{width:100%; height:100%; object-fit:cover; transition:transform 0.55s ease;}
.ccard:hover .ccard-img img{transform:scale(1.06);}
.ccard-img::after{content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 45%, rgba(10,10,10,0.82));}
.ccard-ph{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(150deg, #123240, #0a1418);
}
.ccard-ph span{font-family:var(--f-display); font-size:2.6rem; font-weight:700; color:rgba(255,255,255,0.14); letter-spacing:0.04em;}
.ccard-depth{
  position:absolute; left:14px; bottom:12px; z-index:2; font-family:var(--f-display);
  font-size:1.7rem; font-weight:700; color:var(--bronze-bright); line-height:1;
}
.ccard-depth i{font-style:normal; font-size:0.72rem; color:rgba(255,255,255,0.65); margin-left:2px;}
.ccard-tag{
  position:absolute; right:12px; top:12px; z-index:2; font-family:var(--f-display);
  font-size:0.6rem; letter-spacing:0.12em; text-transform:uppercase; color:#fff;
  background:rgba(10,10,10,0.72); border:1px solid rgba(255,255,255,0.25); padding:4px 9px;
}
.ccard-pcount{
  position:absolute; right:12px; bottom:12px; z-index:2; font-family:var(--f-display);
  font-size:0.62rem; letter-spacing:0.06em; color:#fff; background:rgba(10,10,10,0.7); padding:3px 8px;
}
.ccard-body{padding:18px 18px 20px; display:flex; flex-direction:column; gap:8px; flex-grow:1;}
.ccard-body h4{font-size:1.02rem; color:var(--white); line-height:1.18;}
.ccard-body p{font-size:0.86rem; color:var(--grey); flex-grow:1; line-height:1.45;}
.ccard-go{
  font-family:var(--f-display); font-size:0.7rem; letter-spacing:0.12em; text-transform:uppercase;
  color:var(--patina); margin-top:2px;
}
.ccard:hover .ccard-go{color:var(--bronze-bright);}

/* ---------- COURSE MODAL ---------- */
.cmodal{position:fixed; inset:0; z-index:220; background:rgba(5,5,5,0.94); display:none;
  align-items:center; justify-content:center; padding:32px;}
.cmodal.open{display:flex;}
.cmodal-box{
  background:var(--black-soft); border:1px solid rgba(255,255,255,0.15); max-width:900px; width:100%;
  max-height:88vh; overflow-y:auto; position:relative;
}
.cmodal-close{
  position:absolute; top:12px; right:12px; z-index:6; background:rgba(10,10,10,0.75);
  border:1px solid rgba(255,255,255,0.3); color:#fff; width:38px; height:38px; cursor:pointer; font-size:1.05rem;
}
.cmodal-close:hover{background:var(--bronze);}
.cmodal-head{padding:26px 32px 4px;}
.cmodal-kicker{
  display:flex; align-items:center; gap:12px; margin-bottom:10px; flex-wrap:wrap;
}
.cmodal-depth{font-family:var(--f-display); font-size:1.9rem; font-weight:700; color:var(--bronze); line-height:1;}
.cmodal-depth i{font-style:normal; font-size:0.78rem; color:var(--grey-dark); margin-left:2px;}
.cmodal-tag{
  font-family:var(--f-display); font-size:0.64rem; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--patina); border:1px solid rgba(92,131,116,0.5); padding:5px 11px;
}
.cmodal-head h3{font-size:1.6rem; color:var(--white); margin-bottom:6px;}
.cmodal-sum{color:var(--grey); font-size:0.95rem;}
.cmodal-body{padding:22px 32px 34px;}
.cmodal-body .acc-inner{padding:0 !important;}
.cmodal .crs{margin:0 0 24px; max-width:none;}

/* ---------- PATHWAY MAP ---------- */
.path{background:var(--panel); color:var(--black);}
.path .eyebrow{color:var(--bronze);}
.path .eyebrow::before{background:var(--bronze);}
.path h2{color:var(--black);}
.map-lead{color:#4a463f; max-width:600px; margin-bottom:22px;}
.map-legend{display:flex; gap:20px; flex-wrap:wrap; margin-bottom:26px;}
.lg{display:flex; align-items:center; gap:7px; font-size:0.76rem; color:var(--grey-dark); letter-spacing:0.02em;}
.sw{width:12px; height:12px; display:inline-block; border-radius:2px;}
.sw-entry{background:#9DBFC7;}
.sw-rec{background:var(--patina);}
.sw-rating{background:var(--bronze);}
.sw-pro{background:#2A2724;}
.sw-off{background:#fff; border:1px dashed #9a958c;}

.map-scroll{overflow-x:auto; padding-bottom:12px; -webkit-overflow-scrolling:touch;}
.map{display:grid; grid-template-columns:repeat(5, minmax(190px,1fr)); gap:18px; min-width:1000px;}
.map-col{display:flex; flex-direction:column; gap:9px; position:relative;}
.map-col::after{
  content:''; position:absolute; right:-9px; top:44px; bottom:0; width:1px; background:rgba(0,0,0,0.12);
}
.map-col:last-child::after{display:none;}
.map-col-h{
  font-family:var(--f-display); font-size:0.68rem; letter-spacing:0.16em; text-transform:uppercase;
  color:var(--grey-dark); padding-bottom:9px; border-bottom:2px solid var(--bronze); margin-bottom:6px;
}
.node{
  text-align:left; border:none; cursor:pointer; font-family:var(--f-body); padding:13px 14px;
  display:flex; flex-direction:column; gap:3px; transition:transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease;
  border-radius:2px;
}
.node b{
  font-family:var(--f-display); font-size:0.86rem; text-transform:uppercase; font-weight:600;
  letter-spacing:0.01em; line-height:1.14;
}
.node i{font-style:normal; font-size:0.72rem; opacity:0.85; line-height:1.25;}
.node:hover{transform:translateY(-2px); box-shadow:0 6px 16px rgba(0,0,0,0.18); filter:brightness(1.05);}
.node.entry{background:#9DBFC7; color:#12292f;}
.node.rec{background:var(--patina); color:#fff;}
.node.rec.hero-node{background:#3f6d5f; box-shadow:inset 0 0 0 2px var(--bronze);}
.node.rating{background:var(--bronze); color:#fff;}
.node.pro{background:#2A2724; color:#fff;}
.node.pro.flag{box-shadow:inset 0 0 0 2px var(--bronze-bright);}
.node.off{background:#fff; color:#6d685f; border:1px dashed #b3aca1;}
.node.soft{background:#E6E2D8; color:#3d3a35;}
.node.spec-node{
  background:linear-gradient(135deg, var(--bronze), #8d5c34); color:#fff; padding:18px 16px; min-height:86px; justify-content:center;
}
.node-note{font-size:0.74rem; color:var(--grey-dark); padding:2px 2px 6px; line-height:1.35;}
.map-hint{
  display:none; font-family:var(--f-display); font-size:0.7rem; letter-spacing:0.14em;
  color:var(--grey-dark); text-transform:uppercase; margin-top:10px;
}


/* ---------- JOURNEY TOOL ---------- */
.journey{background:var(--black);}
.jr-picker{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:30px;}
.jr-lvl{
  background:none; border:1px solid rgba(255,255,255,0.2); color:var(--grey); cursor:pointer;
  font-family:var(--f-display); font-size:0.78rem; letter-spacing:0.08em; text-transform:uppercase;
  padding:12px 18px; transition:all 0.2s ease; display:flex; align-items:center; gap:9px;
}
.jr-lvl:hover{border-color:var(--bronze); color:var(--white);}
.jr-lvl.active{background:var(--bronze); border-color:var(--bronze); color:var(--white);}
.jr-lvl .n{font-size:0.68rem; opacity:0.7;}

.jr-empty{
  border:1px dashed rgba(255,255,255,0.2); padding:38px 24px; text-align:center;
  color:var(--grey-dark); font-size:0.92rem;
}
.jr-card{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:rgba(255,255,255,0.13);
  border:1px solid rgba(255,255,255,0.13); animation:jrIn 0.35s ease;}
@keyframes jrIn{from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:none;}}
.jr-here, .jr-next{background:var(--black-soft); padding:30px 28px;}
.jr-label{
  font-family:var(--f-display); font-size:0.68rem; letter-spacing:0.2em; text-transform:uppercase;
  color:var(--grey-dark); margin-bottom:12px; display:block;
}
.jr-next .jr-label{color:var(--bronze-bright);}
.jr-name{font-family:var(--f-display); font-size:1.5rem; text-transform:uppercase; color:var(--white); line-height:1.08; margin-bottom:10px; font-weight:700;}
.jr-next .jr-name{color:var(--bronze-bright);}
.jr-why{color:var(--grey); font-size:0.94rem; margin-bottom:18px;}
.jr-stat{
  display:flex; gap:8px; align-items:baseline; font-size:0.85rem; color:var(--grey);
  padding:9px 0; border-top:1px solid rgba(255,255,255,0.1);
}
.jr-stat b{font-family:var(--f-display); color:var(--patina); letter-spacing:0.04em; min-width:74px;}
.jr-specs{display:flex; flex-wrap:wrap; gap:7px; margin:16px 0 20px;}
.jr-spec{
  font-family:var(--f-display); font-size:0.68rem; letter-spacing:0.08em; text-transform:uppercase;
  border:1px solid rgba(92,131,116,0.5); color:var(--patina); padding:6px 11px;
}
.jr-actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:6px;}
.jr-ghost{
  border:1px solid rgba(255,255,255,0.3); color:var(--white); background:none; cursor:pointer;
  font-family:var(--f-display); font-size:0.78rem; letter-spacing:0.08em; text-transform:uppercase;
  padding:14px 22px; transition:all 0.2s ease;
}
.jr-ghost:hover{background:rgba(255,255,255,0.08); border-color:var(--white);}

/* PADI chart */
.chart-wrap{
  display:block; width:100%; padding:0; border:1px solid rgba(255,255,255,0.14); cursor:zoom-in;
  background:var(--panel); position:relative; overflow:hidden;
}
.chart-wrap img{width:100%; display:block; transition:transform 0.5s ease;}
.chart-wrap:hover img{transform:scale(1.02);}
.chart-zoom{
  position:absolute; right:14px; bottom:14px; background:rgba(10,10,10,0.8); color:#fff;
  width:38px; height:38px; display:flex; align-items:center; justify-content:center; font-size:1.1rem;
}
.chart-credit{font-size:0.72rem; color:var(--grey-dark); margin-top:10px; letter-spacing:0.06em;}

/* ---------- SPECIALTIES ---------- */
.specialties{background:var(--black-soft);}
.sp-note{
  font-size:0.84rem; color:var(--grey-dark); max-width:600px; margin-bottom:30px;
  border-left:2px solid var(--patina); padding-left:14px;
}
.sp-tabs{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:26px;}
.sp-tab{
  background:none; border:1px solid rgba(255,255,255,0.2); color:var(--grey); cursor:pointer;
  font-family:var(--f-display); font-size:0.76rem; letter-spacing:0.1em; text-transform:uppercase;
  padding:10px 18px; transition:all 0.22s ease;
}
.sp-tab:hover{border-color:var(--bronze); color:var(--white);}
.sp-tab.active{background:var(--bronze); border-color:var(--bronze); color:var(--white);}
.sp-panel{display:none; animation:spFade 0.35s ease;}
.sp-panel.active{display:block;}
@keyframes spFade{from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:none;}}
.sp-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.12);}
.sp-card{
  background:var(--black); padding:24px 22px; display:flex; flex-direction:column; gap:10px;
  transition:background 0.25s ease; min-height:170px;
}
.sp-card:hover{background:#171614;}
.sp-card h4{font-size:0.98rem; color:var(--white); line-height:1.2;}
.sp-card p{font-size:0.85rem; color:var(--grey); flex-grow:1;}
.sp-go{font-family:var(--f-display); font-size:0.7rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--patina);}
.sp-card:hover .sp-go{color:var(--bronze-bright);}


/* ---------- SPECIALTY WITH PHOTOS ---------- */
.sp-card.has-photos{padding:0; overflow:hidden; position:relative;}
.sp-thumb{position:relative; aspect-ratio:16/9; overflow:hidden; background:#0d1a1f;}
.sp-thumb img{width:100%; height:100%; object-fit:cover; transition:transform 0.5s ease;}
.sp-card.has-photos:hover .sp-thumb img{transform:scale(1.05);}
.sp-thumb::after{content:''; position:absolute; inset:0; background:linear-gradient(180deg, transparent 55%, rgba(10,10,10,0.7));}
.sp-pcount{
  position:absolute; top:9px; right:9px; z-index:2; background:rgba(10,10,10,0.7);
  font-family:var(--f-display); font-size:0.64rem; letter-spacing:0.08em; color:#fff; padding:4px 9px;
  display:flex; align-items:center; gap:5px;
}
.sp-body{padding:20px 20px 22px; display:flex; flex-direction:column; gap:10px; flex-grow:1;}

/* modal */
.spm{position:fixed; inset:0; z-index:210; background:rgba(5,5,5,0.94); display:none; align-items:center; justify-content:center; padding:32px;}
.spm.open{display:flex;}
.spm-box{
  background:var(--black-soft); border:1px solid rgba(255,255,255,0.15); max-width:860px; width:100%;
  max-height:88vh; overflow-y:auto; position:relative;
}
.spm-close{
  position:absolute; top:12px; right:12px; z-index:5; background:rgba(10,10,10,0.7);
  border:1px solid rgba(255,255,255,0.3); color:#fff; width:38px; height:38px; cursor:pointer; font-size:1.1rem;
}
.spm-close:hover{background:var(--bronze);}
.spm-content{padding:26px 30px 32px;}
.spm-content h3{font-size:1.5rem; color:var(--white); margin-bottom:6px;}
.spm-kicker{
  font-family:var(--f-display); font-size:0.68rem; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--bronze-bright); margin-bottom:12px; display:block;
}
.spm-content p{color:var(--grey); margin-bottom:20px;}
.spm .crs{margin:0; max-width:none;}
.spm .crs-stage{border:none; border-bottom:1px solid rgba(255,255,255,0.12);}
.spm .crs-dots{margin:12px 0 0;}

/* ---------- PADI CREDENTIALS ---------- */
.creds{background:var(--black); padding-top:80px; padding-bottom:80px;}
.creds-inner{display:grid; grid-template-columns:280px 1fr; gap:48px; align-items:center; max-width:1180px;}
.cred-plate{
  background:var(--panel); padding:32px 26px; display:flex; align-items:center; justify-content:center;
  border:1px solid rgba(255,255,255,0.1);
}
.cred-plate img{width:100%; max-width:200px;}
.cred-text h3{font-size:clamp(1.3rem,2.6vw,1.9rem); color:var(--white); margin-bottom:14px;}
.cred-text p{color:var(--grey); max-width:620px; margin-bottom:20px;}
.cred-chips{display:flex; gap:10px; flex-wrap:wrap;}
.chip{
  font-family:var(--f-display); font-size:0.7rem; letter-spacing:0.12em; text-transform:uppercase;
  color:var(--grey); border:1px solid rgba(255,255,255,0.2); padding:7px 14px;
}

/* photos always fill their container — never letterbox */
.hero-slide, .gal-item img{background-color:#0d1a1f;}
.gal-item img{object-fit:cover; object-position:center;}
.hero-slide{background-repeat:no-repeat;}

.accent-bar{width:96px; height:5px; background:var(--bronze); margin:20px 0 22px;}

.sidebar{
  position:fixed; top:0; left:0; bottom:0; width:250px; width:var(--sidebar-w); z-index:100;
  background:var(--panel); color:var(--black);
  display:flex; flex-direction:column; padding:26px 22px;
  border-right:1px solid rgba(0,0,0,0.08); overflow-y:auto;
}
.sidebar .logo-wrap{display:flex; flex-direction:column; align-items:center; text-align:center; margin-bottom:26px;}
.sidebar .logo-wrap img{width:104px; height:104px; object-fit:contain;}
.sidebar .wordmark{font-family:var(--f-display); font-weight:700; text-transform:uppercase; font-size:1.05rem; line-height:1.08; color:var(--bronze); margin-top:10px; letter-spacing:0.02em;}
.sidebar .est{font-size:0.66rem; letter-spacing:0.22em; color:var(--grey-dark); margin-top:5px; font-family:var(--f-display);}
.sidebar nav{flex-grow:1;}
.sidebar nav ul{list-style:none; display:flex; flex-direction:column; gap:2px;}
.sidebar nav a{display:block; padding:9px 12px; font-size:0.9rem; color:#3a3733; font-weight:500; border-left:3px solid transparent; transition:all 0.2s ease;}
.sidebar nav a:hover{background:rgba(169,113,66,0.09); border-left-color:var(--bronze); color:var(--black);}
.sidebar nav a.active{background:var(--black); color:var(--white); border-left-color:var(--bronze); font-weight:600;}
.sidebar-foot{border-top:1px solid rgba(0,0,0,0.1); padding-top:16px; display:flex; flex-direction:column; gap:12px;}
.lang-toggle{display:flex; border:1px solid rgba(0,0,0,0.2); border-radius:3px; overflow:hidden; align-self:flex-start;}
.lang-toggle button{background:none; border:none; font-family:var(--f-display); font-size:0.72rem; letter-spacing:0.08em; padding:5px 13px; cursor:pointer; color:var(--grey-dark); transition:all 0.2s ease;}
.lang-toggle button.active{background:var(--bronze); color:var(--white);}
.gauge{font-family:var(--f-display); font-size:0.68rem; color:var(--grey-dark); letter-spacing:0.08em;}
.gauge .bar{height:3px; background:rgba(0,0,0,0.12); margin-top:6px; position:relative;}
.gauge .fill{position:absolute; left:0; top:0; bottom:0; width:0%; background:var(--patina); transition:width 0.1s linear;}
.sidebar .sb-social{display:flex; gap:14px; font-size:0.72rem; color:var(--grey-dark); letter-spacing:0.04em;}
.sidebar .sb-social a:hover{color:var(--bronze);}

.topbar{display:none;}

main{margin-left:250px; margin-left:var(--sidebar-w);}
section{padding:96px 56px;}
.inner{max-width:1180px;}
.eyebrow{font-family:var(--f-display); font-size:0.74rem; letter-spacing:0.22em; text-transform:uppercase; color:var(--bronze-bright); display:flex; align-items:center; gap:12px; margin-bottom:16px;}
.eyebrow::before{content:''; width:22px; height:1px; background:var(--bronze-bright);}

.hero{
  position:relative; min-height:100vh; display:flex; flex-direction:column; justify-content:center;
  padding:120px 56px 96px; background:var(--black); overflow:hidden;
}
.hero-bg{position:absolute; inset:0; z-index:0;}
.hero-slide{
  position:absolute; inset:0; background-size:cover; background-position:center;
  opacity:0; transition:opacity 1.6s ease-in-out;
  transform:scale(1.06); animation:heroDrift 22s ease-in-out infinite alternate;
}
.hero-slide.on{opacity:1;}
@keyframes heroDrift{ from{transform:scale(1.06) translate3d(0,0,0);} to{transform:scale(1.14) translate3d(-1.2%, -1.2%, 0);} }
.hero-scrim{
  position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(90deg, rgba(10,10,10,0.92) 0%, rgba(10,10,10,0.72) 42%, rgba(10,10,10,0.28) 75%, rgba(10,10,10,0.55) 100%),
    linear-gradient(180deg, rgba(10,10,10,0.55) 0%, transparent 30%, transparent 62%, rgba(10,10,10,0.9) 100%);
}
.hero-inner{position:relative; z-index:2; max-width:760px;}
.hero h1{font-size:clamp(2.6rem, 6.2vw, 5.4rem); color:var(--white); text-shadow:0 2px 24px rgba(0,0,0,0.5);}
.hero p.lede{font-size:1.12rem; color:#DEDCD6; max-width:520px; margin-bottom:14px;}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap; margin-top:30px;}

/* slideshow controls */
.hero-ui{
  position:absolute; z-index:3; left:56px; right:56px; bottom:34px;
  display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap;
}
.slide-caption{
  font-family:var(--f-display); font-size:0.74rem; letter-spacing:0.16em; text-transform:uppercase;
  color:rgba(255,255,255,0.82); display:flex; align-items:center; gap:12px; min-height:20px;
}
.slide-caption::before{content:''; width:26px; height:1px; background:var(--bronze); flex-shrink:0;}
.slide-dots{display:flex; gap:9px; align-items:center;}
.dot{
  width:34px; height:3px; background:rgba(255,255,255,0.3); border:none; padding:0; cursor:pointer;
  position:relative; overflow:hidden; transition:background 0.3s ease;
}
.dot:hover{background:rgba(255,255,255,0.55);}
.dot.active{background:rgba(255,255,255,0.25);}
.dot .prog{position:absolute; left:0; top:0; bottom:0; width:0; background:var(--bronze-bright);}
.dot.active .prog{animation:dotFill 6s linear forwards;}
@keyframes dotFill{ from{width:0;} to{width:100%;} }
.slide-pause{
  background:none; border:1px solid rgba(255,255,255,0.35); color:#fff; cursor:pointer;
  width:30px; height:30px; display:flex; align-items:center; justify-content:center; font-size:0.7rem;
  margin-left:6px; transition:all 0.2s ease;
}
.slide-pause:hover{background:rgba(255,255,255,0.15);}
@media (prefers-reduced-motion: reduce){
  .hero-slide{animation:none; transform:none; transition:none;}
  .dot.active .prog{animation:none; width:100%;}
}
.btn{font-family:var(--f-display); font-size:0.86rem; letter-spacing:0.08em; text-transform:uppercase; padding:15px 30px; transition:all 0.22s ease; display:inline-flex; align-items:center; gap:9px; cursor:pointer; border:1px solid transparent;}
.btn-solid{background:var(--bronze); color:var(--white);}
.btn-solid:hover{background:var(--bronze-bright);}
.btn-outline{border-color:rgba(255,255,255,0.35); color:var(--white); background:none;}
.btn-outline:hover{border-color:var(--white); background:rgba(255,255,255,0.07);}

/* gallery */
.gallery{background:var(--black-soft);}
.gal-grid{display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:200px; gap:10px; margin-top:8px;}
.gal-item{
  position:relative; overflow:hidden; cursor:pointer; background:#0d1a1f;
}
.gal-item img{width:100%; height:100%; object-fit:cover; transition:transform 0.6s ease, filter 0.4s ease;}
.gal-item:hover img{transform:scale(1.07); filter:brightness(1.08);}
.gal-item::after{
  content:''; position:absolute; inset:0; background:linear-gradient(180deg, transparent 60%, rgba(10,10,10,0.75));
  opacity:0; transition:opacity 0.35s ease;
}
.gal-item:hover::after{opacity:1;}
.gal-item .cap{
  position:absolute; left:14px; bottom:12px; z-index:2; font-family:var(--f-display); font-size:0.7rem;
  letter-spacing:0.12em; text-transform:uppercase; color:#fff; opacity:0; transform:translateY(6px);
  transition:all 0.35s ease;
}
.gal-item:hover .cap{opacity:1; transform:translateY(0);}
.gal-item.tall{grid-row:span 2;}
.gal-item.wide{grid-column:span 2;}

/* lightbox */
.lightbox{
  position:fixed; inset:0; z-index:200; background:rgba(5,5,5,0.95); display:none;
  align-items:center; justify-content:center; padding:40px;
}
.lightbox.open{display:flex;}
.lightbox img{max-width:92vw; max-height:84vh; object-fit:contain;}
.lb-close, .lb-prev, .lb-next{
  position:absolute; background:none; border:1px solid rgba(255,255,255,0.35); color:#fff;
  cursor:pointer; font-size:1.2rem; width:44px; height:44px; display:flex; align-items:center; justify-content:center;
  transition:all 0.2s ease;
}
.lb-close:hover, .lb-prev:hover, .lb-next:hover{background:rgba(255,255,255,0.15);}
.lb-close{top:24px; right:24px;}
.lb-prev{left:24px; top:50%; transform:translateY(-50%);}
.lb-next{right:24px; top:50%; transform:translateY(-50%);}
.lb-cap{
  position:absolute; bottom:24px; left:0; right:0; text-align:center; font-family:var(--f-display);
  font-size:0.78rem; letter-spacing:0.14em; text-transform:uppercase; color:rgba(255,255,255,0.75);
}

.stats{background:var(--panel); color:var(--black); padding:60px 56px;}
.stats-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:0; max-width:1180px;}
.stat{padding:0 26px; border-left:1px solid rgba(0,0,0,0.12);}
.stat:first-child{border-left:none; padding-left:0;}
.stat .num{font-family:var(--f-display); font-size:2.5rem; font-weight:700; color:var(--bronze); line-height:1;}
.stat .lbl{font-size:0.8rem; color:var(--grey-dark); margin-top:8px; letter-spacing:0.02em;}

.partner{background:var(--black-soft);}
.partner-tag{
  display:inline-flex; align-items:center; gap:14px; margin-bottom:22px;
  border:1px solid rgba(255,255,255,0.14); padding:10px 18px 10px 10px; background:rgba(255,255,255,0.03);
}
.partner-tag img{width:42px; height:42px; object-fit:contain; border-radius:3px; flex-shrink:0;}
.partner-tag strong{
  display:block; font-family:var(--f-display); font-size:0.7rem; letter-spacing:0.18em;
  text-transform:uppercase; color:var(--bronze-bright);
}
.partner-tag span{font-size:0.9rem; color:var(--white); font-weight:500;}
.partner-grid{display:grid; grid-template-columns:1.15fr 0.85fr; gap:56px; align-items:center; max-width:1180px;}
.partner h2{font-size:clamp(1.7rem,3.4vw,2.7rem); color:var(--white); margin-bottom:8px;}
.partner p{color:var(--grey); max-width:560px; margin-bottom:26px;}
.nrc-list{display:flex; flex-direction:column;}
.nrc-item{display:flex; justify-content:space-between; align-items:center; gap:20px; padding:15px 0; border-top:1px solid rgba(255,255,255,0.13); font-size:0.92rem; color:var(--grey);}
.nrc-item:last-child{border-bottom:1px solid rgba(255,255,255,0.13);}
.nrc-item .code{font-family:var(--f-display); color:var(--patina); letter-spacing:0.08em; font-size:1rem; font-weight:600; white-space:nowrap;}
.seal{display:flex; justify-content:center; align-items:center;}
.seal-stack{display:flex; flex-direction:column; align-items:center; gap:22px; width:100%;}
.seal-main{
  width:100%; max-width:320px; opacity:0.96;
  filter:drop-shadow(0 8px 30px rgba(0,0,0,0.5));
  transition:transform 0.5s ease;
}
.seal-stack:hover .seal-main{transform:scale(1.03);}
.seal-lockup{
  display:flex; align-items:center; gap:18px; padding:16px 22px;
  border:1px solid rgba(255,255,255,0.14); background:rgba(255,255,255,0.03);
}
.seal-lockup img{width:52px; height:52px; object-fit:contain;}
.seal-lockup img.uni{border-radius:3px;}
.seal-x{font-family:var(--f-display); color:var(--grey-dark); font-size:1rem;}
.seal-note{
  font-family:var(--f-display); font-size:0.68rem; letter-spacing:0.16em; text-transform:uppercase;
  color:var(--grey-dark); text-align:center;
}

.courses-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(255,255,255,0.13); border:1px solid rgba(255,255,255,0.13); margin-top:8px;}
.course{background:var(--black); padding:32px 26px; display:flex; flex-direction:column; gap:12px; transition:background 0.25s ease; min-height:250px;}
.course:hover{background:var(--black-soft);}
.course .depth{font-family:var(--f-display); font-size:2.5rem; font-weight:700; color:var(--bronze); line-height:1;}
.course .depth .u{font-size:0.95rem; color:var(--grey-dark); font-weight:400;}
.course h4{font-size:1.02rem; color:var(--white);}
.course p{font-size:0.88rem; color:var(--grey); flex-grow:1;}
.course .link{font-family:var(--f-display); font-size:0.76rem; letter-spacing:0.1em; color:var(--patina); text-transform:uppercase;}
.course:hover .link{color:var(--bronze-bright);}
.course.pro .depth{color:var(--patina);}

.reviews{background:var(--panel); color:var(--black);}
.reviews .eyebrow{color:var(--bronze);}
.reviews .eyebrow::before{background:var(--bronze);}
.reviews h2{color:var(--black); font-size:clamp(1.7rem,3.4vw,2.5rem);}
.rev-badge{display:flex; align-items:center; gap:18px; margin-bottom:34px;}
.rb-score{
  font-family:var(--f-display); font-size:3rem; font-weight:700; color:var(--bronze); line-height:1;
}
.rb-meta{display:flex; flex-direction:column; gap:4px;}
.rb-meta .stars{color:var(--bronze); letter-spacing:3px; font-size:1rem;}
.rb-count{font-size:0.86rem; color:var(--grey-dark);}
/* --- Bloque de reseñas: llamado a dejar reseña (sin tarjetas) --- */
.rev-ask{max-width:560px; color:var(--grey-dark); font-size:0.98rem; line-height:1.55; margin-bottom:28px;}
.rev-cta{display:grid; grid-template-columns:repeat(2,1fr); gap:18px; max-width:720px;}
.rev-btn{
  display:flex; align-items:center; gap:16px; padding:20px 22px;
  background:var(--white); border:1px solid rgba(0,0,0,0.12);
  transition:transform 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease;
}
.rev-btn:hover{transform:translateY(-3px); border-color:var(--bronze); box-shadow:0 6px 20px rgba(0,0,0,0.08);}
.rev-btn-mark{
  flex:0 0 auto; width:44px; height:44px; display:flex; align-items:center; justify-content:center;
  font-family:var(--f-display); font-size:1.25rem; font-weight:700; color:var(--white); border-radius:50%;
}
.rev-btn-g .rev-btn-mark{background:var(--bronze);}
.rev-btn-t .rev-btn-mark{background:var(--patina);}
.rev-btn-txt{display:flex; flex-direction:column; gap:3px; flex-grow:1;}
.rev-btn-txt strong{font-size:0.94rem; color:var(--black); font-weight:600; line-height:1.25;}
.rev-btn-txt span{font-size:0.78rem; color:var(--grey-dark);}
.rev-btn-arrow{font-size:1.1rem; color:var(--bronze); opacity:0; transition:opacity 0.22s ease, transform 0.22s ease;}
.rev-btn:hover .rev-btn-arrow{opacity:1; transform:translateX(3px);}
.rev-all{margin-top:34px; color:var(--black); border-color:rgba(0,0,0,0.35);}
.rev-all:hover{background:var(--black); color:var(--white); border-color:var(--black);}




/* ---------- ABOUT / QUIÉNES SOMOS ---------- */
#nosotros{background:var(--black);}
.ab-lede{color:#CFCCC6; font-size:1.1rem; max-width:680px; margin-bottom:44px;}
.ab-grid{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:rgba(255,255,255,0.14);
  border:1px solid rgba(255,255,255,0.14);}
.ab-card{background:var(--black-soft); padding:34px 30px;}
.ab-mission{border-top:3px solid var(--bronze);}
.ab-vision{border-top:3px solid var(--patina);}
.ab-tag{
  display:block; font-family:var(--f-display); font-size:0.7rem; letter-spacing:0.2em;
  text-transform:uppercase; color:var(--bronze-bright); margin-bottom:14px;
}
.ab-vision .ab-tag{color:var(--patina);}
.ab-card p{color:var(--grey); font-size:1rem; line-height:1.6;}

.val-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:rgba(255,255,255,0.14);
  border:1px solid rgba(255,255,255,0.14);}
.val{background:var(--black); padding:26px 20px; display:flex; flex-direction:column; gap:9px;
  transition:background 0.25s ease;}
.val:hover{background:var(--black-soft);}
.val-n{font-family:var(--f-display); font-size:0.72rem; letter-spacing:0.16em; color:var(--bronze);}
.val strong{font-family:var(--f-display); text-transform:uppercase; font-size:0.92rem; color:var(--white);
  line-height:1.15; letter-spacing:0.01em;}
.val p{font-size:0.85rem; color:var(--grey); line-height:1.5;}

.tl{border-left:1px solid rgba(255,255,255,0.18); padding-left:26px; margin-left:6px;}
.tl-item{position:relative; padding-bottom:28px;}
.tl-item:last-child{padding-bottom:0;}
.tl-item::before{
  content:''; position:absolute; left:-31px; top:6px; width:9px; height:9px; border-radius:50%;
  background:var(--bronze); box-shadow:0 0 0 4px var(--black);
}
.tl-now::before{background:var(--patina);}
.tl-y{
  display:inline-block; font-family:var(--f-display); font-size:0.9rem; letter-spacing:0.1em;
  color:var(--bronze-bright); margin-bottom:6px; text-transform:uppercase;
}
.tl-now .tl-y{color:var(--patina);}
.tl-c strong{display:block; font-family:var(--f-display); text-transform:uppercase; font-size:1rem;
  color:var(--white); margin-bottom:6px; letter-spacing:0.01em;}
.tl-c p{color:var(--grey); font-size:0.93rem; max-width:640px; line-height:1.55;}

.ab-future{
  margin-top:50px; border:1px solid rgba(92,131,116,0.45); padding:34px 30px;
  background:linear-gradient(140deg, rgba(92,131,116,0.10), transparent 60%);
}
.ab-future p{color:#CFCCC6; font-size:1rem; max-width:760px; margin-bottom:24px; line-height:1.6;}


/* ---------- FOLD (secciones desplegables) ---------- */
.fold{padding-top:0; padding-bottom:0;}
.fold-head{
  width:100%; background:none; border:none; cursor:pointer; text-align:left; font-family:var(--f-body);
  color:inherit; display:flex; align-items:center; gap:22px; padding:30px 0;
  border-top:1px solid rgba(255,255,255,0.16); transition:background 0.25s ease;
}
.fold-head:hover{background:rgba(255,255,255,0.035);}
.fold-num{
  font-family:var(--f-display); font-size:0.72rem; letter-spacing:0.16em; color:var(--bronze);
  min-width:34px; flex-shrink:0;
}
.fold-txt{flex-grow:1; min-width:0;}
.fold-txt strong{
  display:block; font-family:var(--f-display); text-transform:uppercase; font-weight:700;
  font-size:clamp(1.15rem,2.2vw,1.5rem); color:var(--white); line-height:1.14; letter-spacing:0.01em;
}
.fold-hook{display:block; font-size:0.92rem; color:var(--grey); margin-top:7px; max-width:620px;}
.fold-cta{
  font-family:var(--f-display); font-size:0.68rem; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--patina); flex-shrink:0; white-space:nowrap;
}
.fold.open .fold-cta{color:var(--bronze-bright);}
.fold-chev{
  font-family:var(--f-display); font-size:1.6rem; color:var(--bronze); flex-shrink:0; width:26px;
  text-align:center; line-height:1; transition:transform 0.3s ease;
}
.fold.open .fold-chev{transform:rotate(45deg);}
.fold-body{max-height:0; overflow:hidden; transition:max-height 0.5s cubic-bezier(0.4,0,0.2,1);}
.fold-inner{padding:6px 0 54px;}
.fold:last-of-type .fold-head{border-bottom:1px solid rgba(255,255,255,0.16);}
.fold.open:last-of-type .fold-head{border-bottom:none;}

/* folds sobre fondo claro */
.fold.on-light .fold-head{border-top-color:rgba(0,0,0,0.16);}
.fold.on-light .fold-head:hover{background:rgba(169,113,66,0.07);}
.fold.on-light .fold-txt strong{color:var(--black);}
.fold.on-light .fold-hook{color:var(--grey-dark);}

/* el fold del tiburón conserva su fondo fotográfico */
.fold.bull{position:relative; overflow:hidden; background:var(--black);}
.fold.bull .bull-bg, .fold.bull .bull-scrim{position:absolute; inset:0;}
.fold.bull .fold-head{position:relative; z-index:2;}
.fold.bull .fold-body{position:relative; z-index:2;}
.fold.bull .fold-inner{padding-top:0;}
.fold.bull .fold-head{padding:34px 0; border-top:none;}
.fold.bull .inner{position:relative; z-index:2;}
.fold-band{
  border-top:1px solid rgba(255,255,255,0.16);
}

/* ---------- FAQ ---------- */
.faq{background:var(--panel); color:var(--black);}
.faq .eyebrow{color:var(--bronze);}
.faq .eyebrow::before{background:var(--bronze);}
.faq h2{color:var(--black);}
.faq-search{position:relative; margin-bottom:16px;}
.faq-search input{
  width:100%; background:var(--white); border:1px solid rgba(0,0,0,0.2); padding:15px 44px 15px 16px;
  font-family:var(--f-body); font-size:0.98rem; color:var(--black);
}
.faq-search input:focus{outline:none; border-color:var(--bronze);}
.faq-search input::placeholder{color:#9a958c;}
.faq-clear{
  position:absolute; right:8px; top:50%; transform:translateY(-50%); background:none; border:none;
  color:var(--grey-dark); cursor:pointer; font-size:0.9rem; width:30px; height:30px; display:none;
}
.faq-clear.show{display:block;}
.faq-chips{display:flex; flex-wrap:wrap; gap:7px; margin-bottom:14px;}
.faq-chip{
  background:none; border:1px solid rgba(0,0,0,0.22); color:#4a463f; cursor:pointer;
  font-family:var(--f-display); font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase;
  padding:8px 14px; transition:all 0.2s ease;
}
.faq-chip:hover{border-color:var(--bronze); color:var(--black);}
.faq-chip.active{background:var(--bronze); border-color:var(--bronze); color:var(--white);}
.faq-count{font-size:0.78rem; color:var(--grey-dark); margin-bottom:16px; min-height:18px;}
.faq-list{border-top:1px solid rgba(0,0,0,0.16);}
.faq-item{border-bottom:1px solid rgba(0,0,0,0.16);}
.faq-item.hide{display:none;}
.faq-q{
  width:100%; background:none; border:none; cursor:pointer; text-align:left; font-family:var(--f-body);
  display:flex; align-items:center; gap:16px; padding:19px 4px; color:var(--black);
  transition:background 0.2s ease;
}
.faq-q:hover{background:rgba(169,113,66,0.07);}
.faq-qt{flex-grow:1; font-size:1rem; font-weight:500; line-height:1.35;}
.faq-qt mark{background:rgba(227,166,62,0.45); color:inherit; padding:0 1px;}
.faq-chev{font-family:var(--f-display); font-size:1.35rem; color:var(--bronze); transition:transform 0.3s ease; line-height:1; flex-shrink:0;}
.faq-item.open .faq-chev{transform:rotate(45deg);}
.faq-a{max-height:0; overflow:hidden; transition:max-height 0.4s cubic-bezier(0.4,0,0.2,1);}
.faq-ai{padding:0 4px 22px;}
.faq-ai p{color:#403d39; font-size:0.95rem; line-height:1.6; max-width:720px;}
.faq-none{display:none; text-align:center; padding:40px 20px; border:1px dashed rgba(0,0,0,0.25); margin-top:20px;}
.faq-none.show{display:block;}
.faq-none p{color:var(--grey-dark); margin-bottom:18px;}
.faq-none .btn{color:var(--white);}

/* ---------- BULL SHARK SEASON ---------- */
.bull{position:relative; background:var(--black); overflow:hidden;}
.bull-bg{position:absolute; inset:0; z-index:0;}
.bull-slide{
  position:absolute; inset:0; background-size:cover; background-position:center;
  opacity:0; transition:opacity 2s ease;
}
.bull-slide.on{opacity:1;}
.bull-scrim{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(90deg, rgba(10,10,10,0.95) 0%, rgba(10,10,10,0.88) 55%, rgba(10,10,10,0.62) 100%);
}
.bull-inner{position:relative; z-index:2;}
.bull-h{font-size:clamp(2rem,4.6vw,3.6rem); color:var(--white); text-shadow:0 2px 20px rgba(0,0,0,0.6);}
.bull-lede{color:#DEDCD6; font-size:1.08rem; max-width:640px; margin-bottom:34px;}
.bull-facts{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(255,255,255,0.16);
  border:1px solid rgba(255,255,255,0.16); margin-bottom:40px; max-width:820px;}
.bf{background:rgba(10,10,10,0.72); padding:20px 18px;}
.bf-n{display:block; font-family:var(--f-display); font-size:1.9rem; font-weight:700; color:var(--bronze-bright); line-height:1;}
.bf-n i{font-style:normal; font-size:0.8rem; color:var(--grey-dark); margin-left:3px;}
.bf-l{display:block; font-size:0.78rem; color:var(--grey); margin-top:7px; line-height:1.3;}
.bull-acc{max-width:880px; background:rgba(10,10,10,0.6);}
.bull-acc .acc-head:hover{background:rgba(255,255,255,0.06);}
.bull-acc .acc-depth{color:var(--patina); font-size:1.15rem;}
.bull-acc .acc.open .acc-depth{color:var(--bronze-bright);}
.months{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
.mo{border-top:2px solid rgba(255,255,255,0.2); padding-top:12px;}
.mo.peak{border-top-color:var(--bronze);}
.mo strong{display:block; font-family:var(--f-display); text-transform:uppercase; font-size:0.88rem; color:var(--white); margin-bottom:6px; letter-spacing:0.02em;}
.mo span{font-size:0.85rem; color:var(--grey); line-height:1.45;}

/* ---------- REVIEW QR ---------- */
.qr-block{display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:40px; max-width:620px;}
.qr-card{
  background:var(--white); padding:20px; display:flex; flex-direction:column; align-items:center; gap:12px;
  text-align:center; transition:transform 0.2s ease; color:var(--black);
}
.qr-card:hover{transform:translateY(-3px);}
.qr-card img{width:100%; max-width:170px;}
.qr-card strong{font-family:var(--f-display); font-size:0.82rem; letter-spacing:0.08em; text-transform:uppercase;}
.qr-card span{font-size:0.76rem; color:var(--grey-dark);}

.contact{background:var(--black);}
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px; max-width:1180px;}
.contact h2{font-size:clamp(1.9rem,3.8vw,3rem); color:var(--white);}
.c-item{display:flex; gap:16px; margin-bottom:24px; align-items:flex-start; transition:transform 0.2s ease;}
a.c-item:hover{transform:translateX(4px);}
a.c-item:hover .ic{background:var(--patina); color:var(--black);}
.c-item .ic{width:38px; height:38px; border:1px solid var(--patina); color:var(--patina); flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:0.95rem; transition:all 0.2s ease;}
.c-item strong{display:block; font-family:var(--f-display); letter-spacing:0.06em; font-size:0.88rem; color:var(--white); text-transform:uppercase;}
.c-item span{color:var(--grey); font-size:0.92rem;}
form{display:flex; flex-direction:column; gap:14px;}
form label{font-family:var(--f-display); font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--grey-dark); margin-bottom:-8px;}
form input, form select, form textarea{background:transparent; border:1px solid rgba(255,255,255,0.22); padding:13px 15px; color:var(--white); font-family:var(--f-body); font-size:0.94rem;}
form input:focus, form select:focus, form textarea:focus{outline:none; border-color:var(--bronze);}
form input::placeholder, form textarea::placeholder{color:rgba(255,255,255,0.32);}
form select option{background:var(--black); color:var(--white);}
form textarea{resize:vertical; min-height:96px;}
form button{margin-top:8px; border:none;}
.form-note{font-size:0.78rem; color:var(--grey-dark);}
.map-box{
  margin-top:8px; border:1px solid rgba(255,255,255,0.15); aspect-ratio:16/10; overflow:hidden;
  background:#0d1a1f;
}
.map-box iframe{width:100%; height:100%; border:0; display:block; filter:grayscale(0.35) contrast(1.05);}
.map-actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:14px;}
.form-ok{display:none; border:1px solid var(--patina); color:var(--patina); padding:12px 15px; font-size:0.88rem;}
.form-ok.show{display:block;}
.form-err{display:none; border:1px solid #C4643F; color:#E08A62; padding:12px 15px; font-size:0.88rem;}
.form-err.show{display:block;}
.form-fallback{
  display:none; font-family:var(--f-display); font-size:0.8rem; letter-spacing:0.06em;
  color:var(--bronze-bright); text-transform:uppercase; padding:6px 0;
}
.form-fallback.show{display:block;}

footer{margin-left:250px; background:var(--black-soft); border-top:1px solid rgba(255,255,255,0.1); padding:28px 56px; display:flex; justify-content:space-between; align-items:center; gap:18px; flex-wrap:wrap; font-size:0.8rem; color:var(--grey-dark); margin-left:var(--sidebar-w);}
footer .fsocial{display:flex; gap:20px;}
footer a:hover{color:var(--bronze-bright);}

.wa{position:fixed; right:22px; bottom:22px; z-index:110; width:56px; height:56px; border-radius:50%; background:var(--patina); display:flex; align-items:center; justify-content:center; box-shadow:0 6px 22px rgba(0,0,0,0.5); transition:transform 0.2s ease, background 0.2s ease;}
.wa:hover{transform:scale(1.08); background:#6d9b8a;}

@media (max-width:1080px){
  .sp-grid{grid-template-columns:repeat(2,1fr);}
  .crs-grid{grid-template-columns:repeat(2,1fr);}
  .creds-inner{grid-template-columns:1fr; gap:30px;}
  .cred-plate{max-width:280px;}
  .acc-cols{grid-template-columns:1fr; gap:26px;}
  .jr-card{grid-template-columns:1fr;}
  .gal-grid{grid-template-columns:repeat(2,1fr); grid-auto-rows:170px;}
  .partner-grid{grid-template-columns:1fr;}
  .courses-grid{grid-template-columns:repeat(2,1fr);}
  .rev-cta{grid-template-columns:1fr;}
  .val-grid{grid-template-columns:repeat(2,1fr);}
  .ab-grid{grid-template-columns:1fr;}
  .bull-facts{grid-template-columns:repeat(2,1fr);}
  .months{grid-template-columns:1fr;}
  .qr-block{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr; gap:40px;}
  .stats-grid{grid-template-columns:repeat(2,1fr); gap:28px 0;}
  .stat{padding-left:20px;}
  .stat:nth-child(odd){border-left:none; padding-left:0;}
}
@media (max-width:820px){
  .sidebar{transform:translateX(-100%); transition:transform 0.3s ease; width:270px;}
  .sidebar.open{transform:translateX(0);}
  main, footer{margin-left:0;}
  .topbar{display:flex; align-items:center; justify-content:space-between; position:sticky; top:0; z-index:99; background:var(--panel); padding:12px 18px; border-bottom:1px solid rgba(0,0,0,0.1);}
  .topbar .tb-brand{display:flex; align-items:center; gap:10px;}
  .topbar img{width:38px; height:38px; object-fit:contain;}
  .topbar .tb-name{font-family:var(--f-display); font-weight:700; font-size:0.85rem; color:var(--bronze); text-transform:uppercase; line-height:1.05;}
  .burger{background:none; border:none; font-size:1.5rem; color:var(--black); cursor:pointer; padding:4px 8px;}
  section, .hero{padding:64px 22px;}
  .stats{padding:48px 22px;}
  footer{padding:24px 22px;}
  .courses-grid{grid-template-columns:1fr;}
  .sp-grid{grid-template-columns:1fr;}
  .crs-grid{grid-template-columns:1fr;}
  .cmodal{padding:0;}
  .cmodal-box{max-height:100vh; height:100vh;}
  .cmodal-head{padding:22px 20px 4px;}
  .cmodal-body{padding:18px 20px 30px;}
  .crs-tab{font-size:0.7rem; padding:9px 13px;}
  .val-grid{grid-template-columns:1fr;}
  .ab-card{padding:26px 22px;}
  .ab-future{padding:26px 22px;}
  .bull-facts{grid-template-columns:repeat(2,1fr);}
  .bull-scrim{background:linear-gradient(180deg, rgba(10,10,10,0.9) 0%, rgba(10,10,10,0.86) 60%, rgba(10,10,10,0.94) 100%);}
  .acc-head{gap:14px; padding:20px 2px; flex-wrap:wrap;}
  .acc-depth{font-size:1.6rem; min-width:62px;}
  .acc-title strong{font-size:1rem;}
  .acc-tag{display:none;}
  .acc-inner{padding:4px 2px 28px 0;}
  .cred-plate{padding:24px 18px;}
  .sp-tab{font-size:0.7rem; padding:9px 13px;}
  .jr-card{grid-template-columns:1fr;}
  .jr-here, .jr-next{padding:24px 20px;}
  .jr-lvl{font-size:0.72rem; padding:10px 13px;}
  .map{grid-template-columns:repeat(5, minmax(168px,1fr)); min-width:900px; gap:14px;}
  .map-hint{display:block;}
  .map-legend{gap:12px;}
  .hero{min-height:88vh; padding:100px 22px 90px;}
  .hero-ui{left:22px; right:22px; bottom:22px; flex-direction:column; align-items:flex-start; gap:14px;}
  .hero-scrim{background:linear-gradient(180deg, rgba(10,10,10,0.75) 0%, rgba(10,10,10,0.55) 40%, rgba(10,10,10,0.92) 100%);}
  .gal-grid{grid-template-columns:repeat(2,1fr); grid-auto-rows:140px; gap:8px;}
  .gal-item.wide{grid-column:span 2;}
  .gal-item.tall{grid-row:span 1;}
  .lightbox{padding:16px;}
  .lb-prev{left:8px;} .lb-next{right:8px;} .lb-close{top:12px; right:12px;}
}
.scrim{display:none; position:fixed; inset:0; background:rgba(0,0,0,0.6); z-index:98;}
.scrim.show{display:block;}
@media (min-width:821px){ .scrim{display:none !important;} }
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} }
::selection{background:var(--bronze); color:var(--white);}
:focus-visible{outline:2px solid var(--bronze-bright); outline-offset:2px;}

/* ---------- PRICE TABLES ---------- */
.price-box{border:1px solid rgba(255,255,255,0.16); margin-bottom:26px; background:rgba(255,255,255,0.03);}
.price-head{display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap;
  padding:13px 18px; border-bottom:1px solid rgba(255,255,255,0.14);}
.price-head span:first-child{font-family:var(--f-display); font-size:0.72rem; letter-spacing:0.16em;
  text-transform:uppercase; color:var(--bronze-bright);}
.price-note{font-size:0.72rem; color:var(--grey-dark);}
.price-tbl{width:100%; border-collapse:collapse;}
.price-tbl th{font-family:var(--f-display); font-size:0.64rem; letter-spacing:0.12em; text-transform:uppercase;
  color:var(--grey-dark); text-align:left; padding:10px 18px 6px; font-weight:500;}
.price-tbl td{padding:11px 18px; border-top:1px solid rgba(255,255,255,0.08); font-size:0.9rem; color:var(--grey); vertical-align:top;}
.price-tbl td strong{color:var(--white); font-weight:600; display:block;}
.price-tbl td .alt{display:block; font-size:0.72rem; color:var(--grey-dark); margin-top:2px;}
.price-tbl tr td:first-child{color:#CFCCC6;}

/* precios sobre fondo claro */
.on-light .price-box, .faq .price-box{background:var(--white); border-color:rgba(0,0,0,0.16);}
.on-light .price-tbl td, .faq .price-tbl td{border-top-color:rgba(0,0,0,0.08); color:#4a463f;}
.on-light .price-tbl td strong, .faq .price-tbl td strong{color:var(--black);}

/* ---------- EXPERIENCE CARDS ---------- */
.xp-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.xp{background:var(--black-soft); border:1px solid rgba(255,255,255,0.12); padding:24px 22px;
  display:flex; flex-direction:column; gap:10px; transition:border-color 0.25s ease, transform 0.25s ease;}
.xp:hover{border-color:var(--bronze); transform:translateY(-3px);}
.xp h4, .xp h3.bull-prod{font-size:1.05rem; color:var(--white); line-height:1.2;}
.xp-price{font-family:var(--f-display); font-size:1.35rem; font-weight:700; color:var(--bronze-bright); line-height:1;}
.xp-price i{font-style:normal; font-size:0.7rem; color:var(--grey-dark); margin-left:4px; letter-spacing:0.04em;}
.xp-nac{font-size:0.76rem; color:var(--grey-dark);}
.xp p{font-size:0.86rem; color:var(--grey); flex-grow:1; line-height:1.5;}
.xp .jr-ghost{align-self:flex-start;}
.xp-tag{font-family:var(--f-display); font-size:0.6rem; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--patina); border:1px solid rgba(92,131,116,0.5); padding:4px 9px; align-self:flex-start;}

/* two doors (home) */
.doors{display:grid; grid-template-columns:1fr 1fr; gap:22px;}
.door{position:relative; overflow:hidden; border:1px solid rgba(255,255,255,0.14); background:var(--black-soft);
  padding:44px 36px; display:flex; flex-direction:column; gap:14px; color:inherit;
  transition:border-color 0.25s ease, transform 0.25s ease;}
.door:hover{border-color:var(--bronze); transform:translateY(-4px);}
.door-k{font-family:var(--f-display); font-size:0.7rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--patina);}
.door h3{font-family:var(--f-display); text-transform:uppercase; font-size:clamp(1.3rem,2.6vw,1.9rem);
  color:var(--white); line-height:1.1;}
.door p{color:var(--grey); font-size:0.95rem; max-width:420px;}
.door-go{font-family:var(--f-display); font-size:0.74rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--bronze-bright);}
.door.d2 .door-k{color:var(--bronze);}

/* feature cards (home) */
.feat-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.feat{position:relative; overflow:hidden; border:1px solid rgba(255,255,255,0.12); aspect-ratio:4/4.1;
  display:flex; align-items:flex-end; color:inherit; transition:transform 0.3s ease;}
.feat:hover{transform:translateY(-4px);}
.feat-bg{position:absolute; inset:0; background-size:cover; background-position:center; transition:transform 0.6s ease;}
/* El sujeto de cada foto no está centrado: se encuadra por tarjeta para que
   el recorte lateral no le corte la cabeza al buzo ni parta a los tiburones. */
.feat-bg[data-focus="izq"]{background-position:30% center;}
.feat-bg[data-focus="izq-suave"]{background-position:38% center;}
.feat:hover .feat-bg{transform:scale(1.05);}
.feat::after{content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,10,10,0.15) 30%, rgba(10,10,10,0.9));}
.feat-c{position:relative; z-index:2; padding:26px 24px;}
.feat-k{font-family:var(--f-display); font-size:0.64rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--bronze-bright);}
.feat h3{font-family:var(--f-display); text-transform:uppercase; font-size:1.4rem; color:var(--white); margin:8px 0 6px; line-height:1.1;}
.feat p{font-size:0.86rem; color:var(--grey);}

@media (max-width:1080px){
  .xp-grid{grid-template-columns:repeat(2,1fr);}
  /* 3 columnas angostas hacen la tarjeta muy vertical y el recorte se dispara */
  .feat-grid{grid-template-columns:repeat(2,1fr);}
  .feat{aspect-ratio:4/3.1;}
  .feat:last-child{grid-column:1 / -1; aspect-ratio:16/6.5;}
}
@media (max-width:720px){
  .xp-grid{grid-template-columns:1fr;}
  .doors{grid-template-columns:1fr;}
  .feat-grid{grid-template-columns:1fr;}
  .feat, .feat:last-child{aspect-ratio:16/9; grid-column:auto;}
  .price-head{padding:12px 14px;}
  .price-tbl th, .price-tbl td{padding-left:14px; padding-right:14px;}
}

/* ---------- CLINICAS ---------- */
#clinicas{background:var(--black);}
.clin-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(255,255,255,0.14); border:1px solid rgba(255,255,255,0.14);}
.clin{background:var(--black-soft); padding:22px 20px; display:flex; flex-direction:column; gap:9px;}
.clin strong{font-family:var(--f-display); text-transform:uppercase; font-size:0.9rem; color:var(--white); letter-spacing:0.02em; line-height:1.2;}
.clin p{font-size:0.84rem; color:var(--grey); flex-grow:1; line-height:1.5;}
.clin-foot{display:flex; align-items:center; justify-content:space-between; gap:10px;}
.clin-price{font-family:var(--f-display); font-size:1.15rem; font-weight:700; color:var(--bronze-bright);}
.clin-price i{font-style:normal; font-size:0.66rem; color:var(--grey-dark);}
.clin-foot a{font-family:var(--f-display); font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--patina);}
.clin-foot a:hover{color:var(--bronze-bright);}
@media (max-width:1100px){ .clin-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:640px){ .clin-grid{grid-template-columns:1fr;} }

/* ---------- FILAS DE PRECIOS (catálogo compacto) ---------- */
.xrows{border:1px solid rgba(255,255,255,0.14); background:rgba(255,255,255,0.02);}
.xr{display:grid; grid-template-columns:1fr 110px 96px 52px; align-items:center; gap:12px;
  padding:13px 18px; border-bottom:1px solid rgba(255,255,255,0.1);}
.xr:last-child{border-bottom:none;}
.xr:hover{background:rgba(169,113,66,0.08);}
.xr-head{background:rgba(255,255,255,0.05); padding:9px 18px;}
.xr-head .xr-price,.xr-head .xr-nac{font-family:var(--f-display); font-size:0.62rem; letter-spacing:0.12em;
  text-transform:uppercase; color:var(--grey-dark); font-weight:400;}
.xr-head:hover{background:rgba(255,255,255,0.05);}
.xr-name{color:var(--white); font-size:0.95rem; display:flex; flex-direction:column; gap:2px;}
.xr-note{font-size:0.78rem; color:var(--grey);}
.xr-price{font-family:var(--f-display); font-size:1.05rem; font-weight:700; color:var(--bronze-bright); text-align:right;}
.xr-price i{font-style:normal; font-size:0.62rem; color:var(--grey-dark); margin-left:2px;}
.xr-nac{font-size:0.84rem; color:var(--patina); text-align:right;}
.xr-go{font-family:var(--f-display); font-size:1.1rem; color:var(--bronze); text-align:center;
  border:1px solid rgba(255,255,255,0.2); padding:5px 0; transition:all 0.2s ease;}
.xr-go:hover{background:var(--bronze); color:#fff; border-color:var(--bronze);}
.xr-head .xr-go{border:none;}
.xrows-2col{display:grid; grid-template-columns:1fr 1fr; border:none; gap:1px; background:rgba(255,255,255,0.14); border:1px solid rgba(255,255,255,0.14);}
.xrows-2col .xr{background:var(--black); border-bottom:none;}
.xrows-2col .xr:hover{background:rgba(169,113,66,0.08);}
.xr-foot{font-size:0.76rem; color:var(--grey-dark); margin-top:10px;}
.xp-var{display:block; font-size:0.74rem; color:var(--grey-dark); line-height:1.5; margin-top:2px;}
@media (max-width:760px){
  .xr{grid-template-columns:1fr 90px 44px; }
  .xr-nac{display:none;}
  .xrows-2col{grid-template-columns:1fr;}
}

/* ---------- PRECIOS: MXN principal, USD secundario ---------- */
.pv{margin:0 0 24px;}
.pv-head{font-family:var(--f-display); font-size:0.66rem; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--grey-dark); margin-bottom:10px;}
.pv-segs{display:flex; flex-wrap:wrap; gap:7px; margin-bottom:14px;}
.pv-seg{background:none; border:1px solid rgba(255,255,255,0.22); color:var(--grey); cursor:pointer;
  font-family:var(--f-display); font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase;
  padding:8px 14px; transition:all 0.2s ease;}
.pv-seg:hover{border-color:var(--bronze); color:var(--white);}
.pv-seg.active{background:var(--bronze); border-color:var(--bronze); color:var(--white);}
.pv-single, .pv-price{display:flex; align-items:baseline; gap:12px; flex-wrap:wrap;}
.pv-main{font-family:var(--f-display); font-size:2.1rem; font-weight:700; color:var(--bronze-bright); line-height:1;}
.pv-alt{font-size:0.9rem; color:var(--grey-dark);}
.pv-nac{display:block; font-size:0.8rem; color:var(--patina); margin-top:8px;}

/* precio en tarjeta de curso */
.ccard-price{display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; margin-top:2px;
  font-family:var(--f-display); font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--grey-dark);}
.ccard-price strong{font-size:1.15rem; font-weight:700; color:var(--bronze-bright); letter-spacing:0;}
.ccard-price em{font-style:normal; font-size:0.72rem; color:var(--grey-dark); letter-spacing:0;}
.ccard-price i{font-style:normal; font-size:0.64rem; color:var(--patina);}

/* USD secundario en filas y tarjetas de experiencias */
.xr-price em, .xp-price em, .clin-price em, .xr-nac em{
  display:block; font-style:normal; font-family:var(--f-body); font-weight:400;
  font-size:0.7rem; color:var(--grey-dark); letter-spacing:0; margin-top:1px;
}
.xr-price i, .xp-price i, .clin-price i{margin-left:3px;}

/* --- Videos del taller universitario --- */
.uni-video{background:var(--panel); color:var(--black);}
.uni-video .eyebrow{color:var(--bronze);}
.uni-video .eyebrow::before{background:var(--bronze);}
.uni-video h2{color:var(--black);}
.vid-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:26px; margin-top:34px;}
.vid-item{margin:0; display:flex; flex-direction:column; background:var(--white); border:1px solid rgba(0,0,0,0.10);}
.vid-item video{width:100%; height:auto; display:block; background:#000; aspect-ratio:16/9; object-fit:cover;}
.vid-item figcaption{padding:16px 18px 18px; display:flex; flex-direction:column; gap:6px;}
.vid-item figcaption strong{font-family:var(--f-display); font-size:0.95rem; font-weight:600; color:var(--black); letter-spacing:0.01em; line-height:1.3;}
.vid-item figcaption > span{font-size:0.84rem; color:var(--grey-dark); line-height:1.5;}
.vid-wide{grid-column:1 / -1;}
@media (max-width:760px){
  .vid-grid{grid-template-columns:1fr; gap:20px;}
  .vid-wide{grid-column:auto;}
}
.vid-poster{width:100%; height:auto; display:block; aspect-ratio:16/9; object-fit:cover; background:#000;}

/* Sustituto del video en la maqueta de un solo archivo */
.vid-stub{position:relative; display:block; line-height:0;}
.vid-play{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:64px; height:64px; border-radius:50%; background:rgba(10,10,10,0.62);
  border:2px solid rgba(255,255,255,0.9); color:#fff; font-size:1.5rem;
  display:flex; align-items:center; justify-content:center; padding-left:5px; line-height:1;}
.vid-stub-note{position:absolute; left:0; right:0; bottom:0; padding:7px 10px;
  background:rgba(10,10,10,0.72); color:#fff; font-size:0.7rem; letter-spacing:0.05em;
  text-transform:uppercase; font-family:var(--f-display); line-height:1.3; text-align:center;}

/* --- Ilustraciones generadas (cursos y especialidades sin foto) --- */
.ccard-art{width:100%; height:100%; object-fit:cover; transition:transform 0.55s ease;}
.ccard:hover .ccard-art{transform:scale(1.05);}
.cmodal-art img{width:100%; display:block; aspect-ratio:16/10; object-fit:cover;}
.sp-card.has-art{padding:0; overflow:hidden;}
.sp-art{position:relative; aspect-ratio:16/9; overflow:hidden; background:#0d1a1f;}
.sp-art img{width:100%; height:100%; object-fit:cover; transition:transform 0.5s ease;}
.sp-card.has-art:hover .sp-art img{transform:scale(1.05);}
.sp-card.has-art h4{padding:16px 18px 0;}
.sp-card.has-art p{padding:8px 18px 0;}
.sp-card.has-art .sp-go{padding:12px 18px 18px;}

/* --- Enlace de salto al contenido (accesibilidad por teclado) --- */
.skip-link{position:absolute; left:-9999px; top:0; z-index:9999;
  background:var(--bronze); color:var(--white); padding:12px 20px;
  font-family:var(--f-display); font-size:0.8rem; letter-spacing:0.1em; text-transform:uppercase;}
.skip-link:focus{left:12px; top:12px; outline:3px solid var(--white); outline-offset:2px;}

/* Bronce sobre fondo claro daba 3.76:1 (falla AA en texto normal).
   Este tono da 4.6:1 y se usa solo donde el bronce va sobre panel claro. */
.on-light .sp-go, .on-light a:not(.btn), .fold.on-light .fold-cta{color:#8A5B33;}

/* Nota de equipo incluido: responde la objeción antes del precio */
.incl-nota{display:inline-block; margin-bottom:26px; padding:12px 18px;
  border-left:3px solid var(--patina); background:rgba(92,131,116,0.10);
  color:var(--grey); font-size:0.88rem; line-height:1.5; max-width:620px;}
.incl-nota strong{color:var(--white); font-weight:600;}
.on-light .incl-nota{color:var(--grey-dark); background:rgba(92,131,116,0.12);}
.on-light .incl-nota strong{color:var(--black);}

/* --- Revelado por scroll --- */
.rv{opacity:0; transform:translateY(18px);
  transition:opacity 0.7s cubic-bezier(0.22,0.61,0.36,1) var(--rv-d,0ms),
             transform 0.7s cubic-bezier(0.22,0.61,0.36,1) var(--rv-d,0ms);
  will-change:opacity, transform;}
.rv-on{opacity:1; transform:none;}
@media (prefers-reduced-motion: reduce){
  .rv{opacity:1 !important; transform:none !important; transition:none !important;}
}

}

/* --- Bloque de contacto agrupado ---
   Antes era una lista plana: datos, mapa, botones y redes con el mismo
   espaciado, y se leía amontonado. Ahora van en tres grupos separados. */
.c-group{margin-bottom:44px;}
.c-group:last-child{margin-bottom:0;}
.c-gt{
  font-family:var(--f-display); font-size:0.7rem; letter-spacing:0.18em;
  text-transform:uppercase; color:var(--bronze-bright); font-weight:600;
  padding-bottom:12px; margin-bottom:22px; border-bottom:1px solid rgba(255,255,255,0.12);
}
.c-group .c-item:last-child{margin-bottom:0;}
.c-group .map-box{margin-top:26px;}
.c-group .map-actions{margin-top:16px; display:flex; gap:12px; flex-wrap:wrap;}
.c-group .map-actions .btn{flex:1 1 190px; text-align:center; justify-content:center;}

/* Redes: fila compacta en vez de tres filas de ancho completo */
.c-social-row{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
.c-item.c-social{
  flex-direction:column; align-items:flex-start; gap:12px; margin-bottom:0;
  padding:16px 14px; border:1px solid rgba(255,255,255,0.10);
  transition:border-color 0.2s ease, transform 0.2s ease;
}
a.c-item.c-social:hover{transform:translateY(-3px); border-color:var(--patina);}
.c-item.c-social span{font-size:0.8rem; word-break:break-word;}
.c-item.c-social strong{font-size:0.78rem;}
@media (max-width:640px){
  .c-social-row{grid-template-columns:1fr;}
  .c-item.c-social{flex-direction:row; align-items:center;}
  .c-group{margin-bottom:34px;}
}

/* --- Páginas legales (aviso de privacidad, política de cancelación) --- */
.legal{background:var(--panel); color:var(--black); padding:130px 56px 100px;}
.legal-wrap{max-width:760px;}
.legal-h1{font-size:clamp(1.9rem,4.2vw,3rem); color:var(--black); margin-bottom:14px;}
.legal-meta{font-family:var(--f-display); font-size:0.74rem; letter-spacing:0.14em;
  text-transform:uppercase; color:var(--grey-dark); margin:22px 0 38px;}
.legal-wrap h2{font-size:1.06rem; color:var(--black); margin:40px 0 14px;
  letter-spacing:0.02em; line-height:1.25;}
.legal-wrap h2:first-of-type{margin-top:0;}
.legal-wrap p{color:#3C3A37; font-size:0.95rem; line-height:1.72; margin-bottom:14px;}
.legal-wrap ul, .legal-wrap ol{margin:0 0 18px 20px;}
.legal-wrap li{color:#3C3A37; font-size:0.95rem; line-height:1.68; margin-bottom:9px;}
.legal-wrap strong{color:var(--black); font-weight:600;}
.legal-wrap a:not(.btn){color:#8A5B33; text-decoration:underline; text-underline-offset:2px;}
.legal-wrap a:not(.btn):hover{color:var(--bronze);}
.legal-callout{border-left:3px solid var(--bronze); background:rgba(169,113,66,0.09);
  padding:18px 22px; margin:0 0 34px;}
.legal-callout p{margin:0;}
.legal-callout-soft{border-left-color:var(--patina); background:rgba(92,131,116,0.10); margin:38px 0 0;}
.legal-note{font-size:0.88rem; color:var(--grey-dark); font-style:italic;}
.legal-nav{display:flex; gap:12px; flex-wrap:wrap; margin-top:46px;
  padding-top:32px; border-top:1px solid rgba(0,0,0,0.14);}
@media (max-width:640px){
  .legal{padding:100px 24px 70px;}
  .legal-nav .btn{flex:1 1 100%; text-align:center; justify-content:center;}
}

/* Casilla de consentimiento del formulario */
.consent{display:flex; align-items:flex-start; gap:11px; margin:6px 0 20px;}
.consent input[type="checkbox"]{width:18px; height:18px; margin-top:2px; flex:0 0 auto;
  accent-color:var(--bronze); cursor:pointer;}
.consent label{font-size:0.82rem; line-height:1.55; color:var(--grey); cursor:pointer;}
.consent label a{color:var(--bronze-bright); text-decoration:underline; text-underline-offset:2px;}
.consent.err label{color:#E08A6B;}
.flegal{display:flex; gap:18px; flex-wrap:wrap;}
.flegal a{font-size:0.78rem; color:var(--grey-dark); transition:color 0.2s ease;}
.flegal a:hover{color:var(--bronze-bright);}

/* --- Sección "En el agua": clips propios del arrecife --- */
.sea-video{background:var(--black-soft); padding:104px 56px;}
.sv-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:26px; margin-top:34px;}
.sv-item{margin:0; display:flex; flex-direction:column;
  background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.10);}
.sv-item video{width:100%; height:auto; display:block; background:#000;
  aspect-ratio:16/9; object-fit:cover;}
.sv-item figcaption{padding:16px 18px 20px; display:flex; flex-direction:column; gap:6px;}
.sv-item figcaption strong{font-family:var(--f-display); font-size:0.95rem; font-weight:600;
  color:var(--white); letter-spacing:0.01em; line-height:1.3;}
.sv-item figcaption > span{font-size:0.84rem; color:var(--grey); line-height:1.55;}
@media (max-width:760px){ .sv-grid{grid-template-columns:1fr; gap:20px;} }
