/* Drupaa site — shared styles. Brand: teal family + coral accent, Century Gothic (Questrial fallback). Single light look. */
:root{
  --teal:#00AEA7;
  --teal-deep:#38737F;
  --ink:#10515E;
  --night:#053F4C;
  --coral:#FF9166;
  --coral-dark:#F27A4B;
  --mint:#14D3A9;
  --paper:#FFFFFF;
  --mist:#EEF3F3;
  --line:#D6E6E6;
  --text:#5A6566;
  --display:"Century Gothic","CenturyGothic",Questrial,Futura,sans-serif;
  --body:"Century Gothic","CenturyGothic",Questrial,"Segoe UI",sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--text);font-family:var(--body);font-size:16px;line-height:1.65;margin:0}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--paper)}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--display);font-weight:400;text-wrap:balance;margin:0;line-height:1.15}
h2{font-size:clamp(1.9rem,4vw,3rem);color:var(--teal)}
h3{font-size:1.3rem;color:var(--ink)}
p{margin:0}
ul.ticks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
ul.ticks li{position:relative;padding-left:22px}
ul.ticks li::before{content:"";position:absolute;left:0;top:.62em;width:9px;height:9px;border-radius:50% 0 50% 0;background:var(--teal)}
.wrap{max-width:1140px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
section{padding-block:clamp(56px,8vw,96px)}
.center{text-align:center}
.lead{font-size:1.1rem;max-width:62ch}
.center .lead{margin-inline:auto}
.label{font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--coral)}
.stack{display:flex;flex-direction:column;gap:18px;min-width:0}
.btn{display:inline-block;background:var(--coral);color:#fff;text-decoration:none;padding:.7em 2.2em;border-radius:999px;font-size:1rem;border:0;cursor:pointer;font-family:inherit;transition:background .2s,transform .2s}
.btn:hover{background:var(--coral-dark);transform:translateY(-1px)}
.btn.ghost{background:transparent;border:1.5px solid currentColor;color:var(--teal-deep)}
.btn.ghost:hover{background:var(--teal-deep);color:#fff;border-color:var(--teal-deep)}
:focus-visible{outline:3px solid var(--teal);outline-offset:3px}

/* Header */
header.site{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:rgba(255,255,255,.97);backdrop-filter:blur(6px);box-shadow:0 1px 0 rgba(16,81,94,.08)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:10px;position:relative}
.brand img{height:56px;width:auto}
nav.main ul{list-style:none;margin:0;padding:0;display:flex;gap:2px;align-items:center}
nav.main a{display:block;text-decoration:none;font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--teal-deep);padding:.6em .62em;border-radius:6px;white-space:nowrap}
nav.main a:hover{color:var(--teal)}
nav.main a[aria-current="page"]{color:var(--coral)}
nav.main .has-sub{position:relative}
nav.main .sub{position:absolute;top:100%;left:0;min-width:270px;background:#fff;box-shadow:0 14px 32px rgba(5,63,76,.16);border-top:3px solid var(--teal);padding:8px 0;display:none;flex-direction:column;align-items:stretch}
nav.main .has-sub:hover .sub,nav.main .has-sub:focus-within .sub{display:flex}
nav.main .sub a{padding:.6em 1.2em;border-radius:0}
#menu{position:absolute;opacity:0;pointer-events:none}
.burger{display:none;cursor:pointer;width:44px;height:44px;align-items:center;justify-content:center;color:var(--teal)}
.burger svg{width:28px;height:28px}
@media (max-width:1100px){
  .burger{display:flex}
  nav.main{position:absolute;left:0;right:0;top:100%;background:#fff;box-shadow:0 14px 24px rgba(5,63,76,.12);display:none;padding:8px max(16px,env(safe-area-inset-right,0px)) 16px max(16px,env(safe-area-inset-left,0px));max-height:calc(100vh - 80px);overflow:auto}
  #menu:checked ~ nav.main{display:block}
  nav.main ul{flex-direction:column;align-items:stretch}
  nav.main .sub{position:static;display:flex;box-shadow:none;border:0;padding:0 0 0 14px;min-width:0}
}

/* Home slider */
.hero{position:relative;height:clamp(400px,60vw,640px);overflow:hidden;background:var(--night);padding:0}
.slide{position:absolute;inset:0;opacity:0;transition:opacity 1.2s ease}
.slide.on{opacity:1}
.slide>img{width:100%;height:100%;object-fit:cover;transform:scale(1.04);transition:transform 7s ease}
.slide.on>img{transform:scale(1)}
.slide::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,63,76,.8) 0%,rgba(5,63,76,.38) 55%,rgba(5,63,76,0) 100%)}
.cap{position:absolute;inset:0;z-index:2;display:flex;align-items:center}
.cap .wrap{width:100%}
.cap .inner{max-width:560px;color:#fff;display:flex;flex-direction:column;gap:18px;align-items:flex-start}
.cap .eyebrow{font-size:.8rem;letter-spacing:.22em;text-transform:uppercase;color:#C9F5E6}
.cap h1{font-size:clamp(2rem,5vw,3.6rem);color:#fff}
.cap p{font-size:1.05rem;max-width:44ch;color:#E3F1F1}
.dots{position:absolute;z-index:3;bottom:22px;left:0;right:0;display:flex;justify-content:center;gap:10px}
.dots button{width:12px;height:12px;border-radius:50%;border:2px solid #fff;background:transparent;padding:0;cursor:pointer}
.dots button[aria-current="true"]{background:var(--coral);border-color:var(--coral)}

/* Inner page banner */
.banner{position:relative;padding:0;height:clamp(260px,34vw,400px);overflow:hidden;background:var(--night)}
.banner>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.banner::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,63,76,.85) 0%,rgba(5,63,76,.25) 70%)}
.banner .wrap{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:flex-end;gap:10px;padding-bottom:clamp(28px,4vw,48px)}
.banner h1{color:#fff;font-size:clamp(2.2rem,5.5vw,4rem);letter-spacing:.02em}
.crumbs{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:#C9F5E6}
.crumbs a{text-decoration:none}
.crumbs a:hover{color:#fff}

/* Split rows */
.split{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,5vw,64px);align-items:center}
.split.rev{grid-template-columns:.9fr 1.1fr}
.split.rev>figure{order:-1}
.split figure{margin:0}
.split figure img{border-radius:18px;width:100%;aspect-ratio:4/3;object-fit:cover}
.split figure.tall img{aspect-ratio:4/5}
.rows{display:flex;flex-direction:column;gap:clamp(48px,7vw,88px)}

/* What we do cards */
.cards4{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.card{border-radius:14px;padding:34px 18px 30px;color:#fff;display:flex;flex-direction:column;align-items:center;gap:16px;min-height:240px;justify-content:center;text-decoration:none;transition:transform .25s}
a.card:hover{transform:translateY(-4px)}
.card img{height:82px;width:auto}
.card span{font-family:var(--display);font-size:1.5rem;line-height:1.15;text-align:center}
.card small{font-size:.9rem;line-height:1.5;text-align:center;color:rgba(255,255,255,.9);max-width:28ch}
.c1{background:var(--teal)}.c2{background:var(--mint)}.c3{background:var(--teal-deep)}.c4{background:var(--coral)}

/* Overlay sections */
.over{position:relative;color:#fff;overflow:hidden}
.over>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.over::before{content:"";position:absolute;inset:0;background:rgba(5,63,76,.74);z-index:1}
.over .wrap{position:relative;z-index:2}
.over h2{color:#fff}
.over p{color:#E6F2F2}

/* Image cards */
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.tile{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 14px 34px rgba(5,63,76,.1);display:flex;flex-direction:column;text-decoration:none;color:inherit}
a.tile{transition:transform .25s,box-shadow .25s}
a.tile:hover{transform:translateY(-4px);box-shadow:0 20px 40px rgba(5,63,76,.16)}
.tile img{aspect-ratio:16/10;object-fit:cover;width:100%}
.tile .b{padding:22px 24px 26px;display:flex;flex-direction:column;gap:10px;min-width:0;flex:1}
.tile .tag{font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;color:var(--coral)}
.tile .more{margin-top:auto;padding-top:6px;color:var(--teal);font-size:.9rem}
.flat .tile{box-shadow:none;border:1px solid var(--line)}

/* Coral band behind cards */
.band{padding-top:0;background:linear-gradient(var(--coral) 0,var(--coral) 340px,var(--paper) 340px)}
.band .top{padding-top:clamp(56px,8vw,90px);padding-bottom:40px;text-align:center}
.band .top h2{color:#fff}
.band .top p{color:#FFF1EA;margin-top:12px}

/* Chips */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips span{font-size:.78rem;letter-spacing:.05em;border:1px solid var(--line);color:var(--teal-deep);padding:.3em .8em;border-radius:999px;background:#fff}
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.values div{background:var(--mist);border-radius:12px;padding:22px 20px;display:flex;align-items:center;gap:14px;font-family:var(--display);font-size:1.15rem;color:var(--ink)}
.values img{width:34px;height:auto}

/* Timeline */
.timeline{position:relative;display:flex;flex-direction:column;gap:40px;padding-left:0}
.tl{display:grid;grid-template-columns:150px 1fr 1fr;gap:32px;align-items:center}
.tl .yr{font-family:var(--display);font-size:clamp(2.6rem,5vw,3.6rem);color:var(--coral);line-height:1}
.tl img{border-radius:14px;aspect-ratio:16/10;object-fit:cover;width:100%}
.tl ul{margin:0}

/* Network */
.country{display:flex;flex-direction:column;gap:26px}
.country+.country{margin-top:clamp(56px,7vw,80px)}
.country header{display:flex;align-items:baseline;gap:16px;border-bottom:1px solid var(--line);padding-bottom:12px}
.country header h2{font-size:clamp(1.7rem,3.4vw,2.4rem)}
.country header span{color:var(--teal-deep);font-size:.9rem}
.partners{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.partners div{border:1px solid var(--line);border-radius:12px;padding:20px 14px;text-align:center;display:flex;flex-direction:column;gap:4px;background:#fff}
.partners b{font-family:var(--display);font-weight:400;color:var(--ink);font-size:1.1rem}
.partners small{font-size:.8rem}

/* Contact */
.contact-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(32px,5vw,64px);align-items:start}
form.cf{display:grid;grid-template-columns:1fr 1fr;gap:16px}
form.cf .full{grid-column:1/-1}
form.cf label{display:flex;flex-direction:column;gap:6px;font-size:.85rem;color:var(--ink)}
form.cf input,form.cf select,form.cf textarea{font:inherit;color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:.75em .9em;background:#fff;width:100%}
form.cf textarea{min-height:140px;resize:vertical}
form.cf input:focus,form.cf select:focus,form.cf textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(0,174,167,.15)}
.notice{grid-column:1/-1;background:var(--mist);border-radius:10px;padding:12px 16px;color:var(--ink);font-size:.92rem}
.info{background:var(--teal-deep);color:#fff;border-radius:18px;padding:30px 28px;display:flex;flex-direction:column;gap:16px}
.info b{display:block;color:var(--coral);font-weight:400;font-size:.75rem;letter-spacing:.14em}
.info .copyable{user-select:all}

/* CTA strip */
.cta{background:var(--mist);padding-block:48px}
.cta .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.cta h3{font-size:clamp(1.3rem,2.4vw,1.8rem);color:var(--ink)}

/* Footer */
footer.site{background:var(--teal-deep);color:#fff}
.fgrid{display:grid;grid-template-columns:1.1fr 1fr 1fr 1.2fr;gap:32px;padding-block:56px;align-items:start}
.fgrid .logo{width:180px}
.fgrid h4{font-family:var(--display);font-weight:400;font-size:1.1rem;margin:0 0 14px;letter-spacing:.06em}
.fgrid ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:.92rem}
.fgrid ul a{text-decoration:none;color:#D9ECEC}
.fgrid ul a:hover{color:#fff}
.social{display:flex;gap:12px;margin-top:18px}
.social a{width:40px;height:40px;border-radius:8px;background:rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center}
.social a:hover{background:var(--coral)}
.social svg{width:22px;height:22px;fill:#fff}
.fcontact{display:flex;flex-direction:column;gap:8px;font-size:.92rem}
.fcontact b{color:var(--coral);font-weight:400;letter-spacing:.06em}
.copy{background:var(--night);font-size:.8rem;text-align:center;padding-block:14px;color:#BFD6D9}
.wa{position:fixed;z-index:55;right:max(18px,calc(env(safe-area-inset-right,0px) + 12px));bottom:max(18px,calc(env(safe-area-inset-bottom,0px) + 12px));display:flex;align-items:center;gap:10px;text-decoration:none}
.wa span{background:#fff;color:#333;font-size:.85rem;padding:.35em .9em;border-radius:999px;box-shadow:0 4px 14px rgba(0,0,0,.15)}
.wa i{width:54px;height:54px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(0,0,0,.2)}
.wa svg{width:28px;height:28px;fill:#fff}

@media (max-width:960px){
  .cards4{grid-template-columns:repeat(2,1fr)}
  .split,.split.rev{grid-template-columns:1fr}
  .split.rev>figure{order:0}
  .split figure.tall img{aspect-ratio:4/3}
  .grid3{grid-template-columns:repeat(2,1fr)}
  .values{grid-template-columns:repeat(2,1fr)}
  .tl{grid-template-columns:1fr;gap:16px}
  .partners{grid-template-columns:repeat(2,1fr)}
  .contact-grid{grid-template-columns:1fr}
  .fgrid{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .grid2,.grid3,.values{grid-template-columns:1fr}
  .card{min-height:180px}
  .card span{font-size:1.25rem}
  form.cf{grid-template-columns:1fr}
  .fgrid{grid-template-columns:1fr}
  .wa span{display:none}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Language switch */
.hright{display:flex;align-items:center;gap:14px}
.lang{display:flex;border:1px solid var(--line);border-radius:999px;padding:3px;gap:2px;flex:none;order:2}
.lang a{text-decoration:none;font-size:.72rem;letter-spacing:.1em;color:var(--teal-deep);padding:.35em .75em;border-radius:999px;line-height:1}
.lang a:hover{color:var(--teal)}
.lang a[aria-current="true"]{background:var(--teal);color:#fff}
.burger{order:3}
@media (max-width:1100px){.lang{order:1}}

.vid-band{background:#0f3d3e;color:#fff;padding:clamp(50px,7vw,90px) 16px}
.vid-wrap{max-width:1100px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:clamp(20px,4vw,50px);align-items:center}
.vid-wrap video{width:100%;max-width:340px;justify-self:center;border-radius:14px;aspect-ratio:9/16;object-fit:cover;background:#000}
.vid-txt h2{color:#fff;font-size:clamp(26px,3.2vw,40px);margin:8px 0 14px}
.vid-txt p{font-size:18px;opacity:.9}
.vid-txt .eyebrow{color:#ffb38a;text-transform:uppercase;letter-spacing:.12em;font-size:14px}
@media (max-width:760px){.vid-wrap{grid-template-columns:1fr;text-align:center}.vid-txt{order:-1}}

/* carrusel de videos */
.vcar-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:clamp(20px,4vw,50px);align-items:center}
.vcar{position:relative;max-width:360px;margin:auto;width:100%}
.vtrack{position:relative;aspect-ratio:9/16;border-radius:14px;overflow:hidden;background:#000}
.vslide{position:absolute;inset:0;opacity:0;transition:opacity .4s;pointer-events:none}
.vslide.on{opacity:1;pointer-events:auto}
.vslide video{width:100%;height:100%;object-fit:cover;display:block}
.vprev,.vnext{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:42px;height:42px;border-radius:50%;border:0;background:rgba(255,255,255,.85);color:#0f3d3e;font-size:18px;cursor:pointer}
.vprev{left:-20px}.vnext{right:-20px}
.vdots{display:flex;gap:8px;justify-content:center;margin-top:14px}
.vdots span{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.4)}
.vdots span.on{background:#ff8f66}
.gwrap{padding:clamp(40px,6vw,80px) 0}
.gintro{max-width:720px;margin:0 auto 28px;text-align:center;font-size:18px;color:#355}
.ggrid{columns:4 220px;column-gap:10px}
.gtile{display:block;overflow:hidden;border-radius:10px;margin-bottom:10px;break-inside:avoid;background:#eee}
.gtile img{width:100%;height:auto;display:block;transition:transform .4s}
.gtile:hover img{transform:scale(1.05)}
@media (max-width:760px){.vcar-wrap{grid-template-columns:1fr;text-align:center}.vprev{left:4px}.vnext{right:4px}.vid-txt{order:-1}}

/* fotos verticales: se muestran completas (sin rellenos ni giros) */
.tile img.pt,.split figure img.pt{aspect-ratio:3/4;object-fit:cover;width:100%}
