/* Mis Estrellas — base compartida: tokens, tipografía, cabecera, pie, dock, consentimiento */
/* Fuentes autoalojadas (Instrument Sans / Instrument Serif, SIL OFL, subconjunto latino). Sin peticiones a Google. */
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:400 700;font-stretch:100%;font-display:swap;src:url(/fonts/instrument-sans-latin.woff2) format("woff2")}
@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/instrument-serif-latin.woff2) format("woff2")}
@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/instrument-serif-italic-latin.woff2) format("woff2")}
/* Respaldos con las métricas de cada fuente: el cambio de fuente no mueve el texto (CLS) */
@font-face{font-family:"Instrument Sans Fallback";src:local("Arial"),local("Helvetica");size-adjust:100%;ascent-override:97%;descent-override:25%;line-gap-override:0%}
@font-face{font-family:"Instrument Serif Fallback";font-style:normal;src:local("Times New Roman"),local("Times");size-adjust:81.1%;ascent-override:122%;descent-override:38%;line-gap-override:0%}
@font-face{font-family:"Instrument Serif Fallback";font-style:italic;src:local("Times New Roman Italic"),local("TimesNewRomanPS-ItalicMT"),local("Times Italic");size-adjust:86%;ascent-override:115%;descent-override:36%;line-gap-override:0%}
:root{
  --luz:#f6fbfd; --sal:#e4f2f6; --agua:#9fe0e8; --aqua:#2fc1d3; --aqua-ink:#086577;
  --mar:#0a4a73; --noche:#04223a; --noche-2:#073352; --tinta:#0b2a40; --suave:#3d5a6e;
  --wa:#25d366; --line:rgba(11,42,64,.16); --line-d:rgba(255,255,255,.2);
  --serif:"Instrument Serif","Instrument Serif Fallback","Iowan Old Style","Palatino Linotype",Georgia,"Times New Roman",serif;
  --sans:"Instrument Sans","Instrument Sans Fallback","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
  --gutter:clamp(1.25rem,5vw,5rem); --hdr:4.5rem; --ring:#0a4a73;
  --ease:cubic-bezier(.22,.8,.24,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--hdr) + 1rem)}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;font-family:var(--sans);font-size:1.0625rem;line-height:1.65;color:var(--tinta);background:var(--luz);overflow-x:clip;text-rendering:optimizeLegibility}
picture{display:contents}
img,svg{display:block;max-width:100%}
img{height:auto}
h1,h2,h3,h4,p,ul,ol,figure{margin:0}
ul,ol{padding:0;list-style:none}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:1rem;top:-5rem;z-index:200;padding:.7rem 1rem;background:var(--noche);color:#fff;border-radius:.4rem;transition:top .2s}
.skip:focus{top:1rem}
:focus-visible{outline:3px solid var(--ring);outline-offset:3px;border-radius:2px}
.on-dark{--ring:#9be9f2;color:#eaf6fa}
.ico{width:1.15em;height:1.15em;fill:currentColor;flex:none}
.ico--stroke{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* Tipografía */
.display,h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-.02em;line-height:.98}
.t-xl{font-size:clamp(3.25rem,9.4vw,9.5rem);line-height:.9;letter-spacing:-.03em}
.t-l{font-size:clamp(2.5rem,6.2vw,5.8rem)}
.t-m{font-size:clamp(2rem,4vw,3.6rem)}
.lede{font-size:clamp(1.12rem,1.5vw,1.35rem);line-height:1.6;max-width:36rem;color:var(--suave)}
.on-dark .lede{color:#b9d4df}
.small{font-size:.9375rem;color:var(--suave)}
.on-dark .small{color:#a9c6d3}
em,.it{font-style:italic}
.ln{display:block;overflow:hidden;padding:0 .12em .1em 0;margin-bottom:-.1em}
.ln>span{display:block}
/* Estado inicial de líneas: solo si el movimiento está activo y hasta que GSAP las revele */
html.anim [data-lines]:not(.is-revealed) .ln>span{transform:translateY(112%)}

/* Botones y enlaces */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:3.25rem;padding:.8rem 1.5rem;border-radius:99px;border:1.5px solid transparent;font-weight:600;font-size:1rem;line-height:1.2;text-decoration:none;cursor:pointer;transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease),transform .25s var(--ease)}
.btn--wa{background:var(--wa);color:var(--noche)}
.btn--wa:hover{background:#4fe08a}
.btn--ghost{border-color:currentColor;background:transparent}
.btn--ghost:hover{background:var(--tinta);color:#fff;border-color:var(--tinta)}
.on-dark .btn--ghost:hover{background:#fff;color:var(--noche);border-color:#fff}
.btn--sm{min-height:2.75rem;padding:.55rem 1.1rem;font-size:.95rem}
.link{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;text-decoration:none;padding-block:.35rem;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1.5px no-repeat;transition:background-size .35s var(--ease)}
.link:hover{background-size:0 1.5px;background-position:100% 100%}
.link .ico{transition:transform .3s var(--ease)}
.link:hover .ico{transform:translate(.25rem,-.25rem)}

/* Cabecera */
.site-header{position:fixed;inset:0 0 auto;z-index:100;height:var(--hdr);color:var(--tinta);background:rgba(246,251,253,.96);border-bottom:1px solid var(--line);transition:background .3s,border-color .3s,color .3s,transform .4s var(--ease)}
body[data-page="home"].at-top .site-header:not(.is-open){background:transparent;border-color:transparent;color:#fff}
.site-header__bar{height:100%;display:flex;align-items:center;gap:1.5rem;padding-inline:var(--gutter);max-width:100rem;margin-inline:auto}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;font-family:var(--serif);font-size:1.65rem;line-height:1;margin-right:auto;white-space:nowrap}
.brand img{width:auto;height:2.6rem}
.nav{display:flex;gap:clamp(1rem,2.2vw,2.2rem)}
.nav a{position:relative;text-decoration:none;font-weight:500;font-size:.98rem;padding:.5rem 0}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:.15rem;height:1.5px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav a:hover::after,.nav a[aria-current="page"]::after{transform:scaleX(1)}
.header-actions{display:flex;align-items:center;gap:1rem}
.tel{font-weight:600;text-decoration:none;font-size:.95rem;white-space:nowrap}
.tel:hover{text-decoration:underline;text-underline-offset:.25em}
.burger{display:none;width:3rem;height:3rem;border:0;background:none;position:relative;cursor:pointer;color:inherit}
.burger span{position:absolute;left:.85rem;right:.85rem;height:2px;background:currentColor;transition:transform .35s var(--ease),top .35s var(--ease)}
.burger span:first-child{top:1.2rem}.burger span:last-child{top:1.7rem}
.site-header.is-open .burger span:first-child{top:1.45rem;transform:rotate(45deg)}
.site-header.is-open .burger span:last-child{top:1.45rem;transform:rotate(-45deg)}
@media (max-width:1100px){.tel{display:none}}
@media (max-width:900px){
  :root{--hdr:4rem}
  .burger{display:block}
  .brand{font-size:1.4rem}.brand img{height:2.25rem}
  .nav{position:fixed;inset:var(--hdr) 0 0;flex-direction:column;justify-content:center;gap:.4rem;padding:2rem var(--gutter) 6rem;background:var(--noche);color:#fff;visibility:hidden;opacity:0;transform:translateY(-1rem);transition:opacity .35s var(--ease),transform .35s var(--ease),visibility 0s .35s}
  .nav a{font-family:var(--serif);font-size:clamp(2.4rem,11vw,3.6rem);line-height:1.1;padding:.2rem 0}
  .nav a::after{display:none}
  .nav a[aria-current="page"]{font-style:italic;color:#9be9f2}
  .site-header.is-open .nav{visibility:visible;opacity:1;transform:none;transition-delay:0s}
  .site-header.is-open{background:var(--noche);color:#fff;border-color:transparent}
  html:not(.js) .nav{position:static;visibility:visible;opacity:1;transform:none;flex-direction:row;flex-wrap:wrap;background:none;color:inherit;padding:0}
  html:not(.js) .nav a{font:500 .95rem var(--sans)}
  html:not(.js) .site-header{height:auto;position:absolute}
  html:not(.js) .site-header__bar{flex-wrap:wrap;padding-block:.75rem}
  .header-actions .btn span{display:none}
  .header-actions .btn{min-width:3rem;padding:.55rem .85rem}
}

/* Pie */
.site-footer{background:var(--noche);color:#cfe3ea;padding:clamp(3.5rem,8vw,7rem) var(--gutter) 1.5rem;--ring:#9be9f2}
.site-footer__in{max-width:100rem;margin-inline:auto}
.site-footer__claim{font-family:var(--serif);font-size:clamp(2.4rem,6vw,5.4rem);line-height:.98;color:#fff;max-width:26ch;margin-bottom:clamp(2.5rem,6vw,5rem)}
.site-footer__claim em{color:#9be9f2}
.site-footer__grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.3fr;gap:2.5rem;padding-top:2.5rem;border-top:1px solid var(--line-d)}
.site-footer h2{font:600 .95rem var(--sans);letter-spacing:0;color:#fff;margin-bottom:.9rem}
.site-footer li{margin:.1rem 0}
.site-footer a{text-decoration:none}
.site-footer a:hover{color:#fff;text-decoration:underline;text-underline-offset:.25em}
.site-footer p{max-width:26rem}
.site-footer__bottom{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center;margin-top:3rem;padding-top:1.25rem;border-top:1px solid var(--line-d);font-size:.9rem;color:#a9c6d3}
.linkbtn{background:none;border:0;padding:.4rem 0;text-decoration:underline;text-underline-offset:.25em;cursor:pointer;color:inherit}
@media (max-width:900px){.site-footer__grid{grid-template-columns:1fr 1fr}.site-footer__brand{grid-column:1/-1}}
@media (max-width:520px){.site-footer__grid{grid-template-columns:1fr}}

/* Dock: WhatsApp + asistente, apilados para que nunca se solapen */
.dock{position:fixed;z-index:90;right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-end;gap:.65rem;min-height:6.95rem;pointer-events:none;transform:translateY(calc(-1 * var(--dock-lift,0px)));transition:transform .3s var(--ease)}
.dock>*{pointer-events:auto}
.dock__wa{display:inline-flex;align-items:center;gap:.6rem;min-height:3.4rem;padding:.7rem 1.2rem;border-radius:99px;background:var(--wa);color:var(--noche);font-weight:700;text-decoration:none;box-shadow:0 .7rem 2rem rgba(4,34,58,.3);transition:transform .25s var(--ease),background .25s}
.dock__wa:hover{background:#4fe08a;transform:translateY(-2px)}
.dock__wa .ico{width:1.5rem;height:1.5rem}
@media (max-width:520px){.dock{min-height:7.65rem}.dock__wa span{display:none}.dock__wa{width:3.5rem;height:3.5rem;padding:0;justify-content:center}}

/* Consentimiento de analítica */
.me-consent{position:fixed;z-index:120;left:max(1rem,env(safe-area-inset-left));bottom:max(1rem,env(safe-area-inset-bottom));width:min(27rem,calc(100vw - 2rem));padding:1.1rem 1.2rem;background:#fff;color:var(--tinta);border:1px solid var(--line);border-radius:.6rem;box-shadow:0 1rem 3rem rgba(4,34,58,.28);font-size:.92rem;line-height:1.5;--ring:#0a4a73}
.me-consent p{margin-bottom:.8rem}
.me-consent__actions{display:flex;gap:.6rem;flex-wrap:wrap}
.me-consent button{min-height:2.75rem;padding:.5rem 1rem;border-radius:99px;border:1.5px solid var(--noche);background:transparent;font-weight:600;cursor:pointer}
.me-consent button:first-child{background:var(--noche);color:#fff}
@media (max-width:520px){.me-consent{left:.6rem;right:.6rem;width:auto;bottom:.6rem}}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.brand img{transition:filter .3s}
body[data-page="home"].at-top .site-header:not(.is-open) .brand img,.site-header.is-open .brand img{filter:invert(1)}

/* ESCENA DE AGUA (compartida): profundidad = capas, transparencia, luz */
[data-aqua]{position:relative;overflow:clip;isolation:isolate;--rays:.4}
.aqua{position:absolute;inset:0;z-index:-1;pointer-events:none}
.aqua__rays{position:absolute;inset:-10% -5% auto;height:75%;opacity:var(--rays);-webkit-mask-image:linear-gradient(180deg,#000,transparent);mask-image:linear-gradient(180deg,#000,transparent);
  background:repeating-linear-gradient(104deg,rgba(255,255,255,0) 0 3.5rem,rgba(255,255,255,.55) 6rem,rgba(255,255,255,0) 9.5rem)}
.aqua__waves{position:absolute;left:-10%;right:-10%;bottom:0;width:120%;height:46%}
.aqua__wave{fill:none;stroke:#fff;stroke-width:1.4;vector-effect:non-scaling-stroke;opacity:.7}
.aqua__wave:nth-child(2){opacity:.45}.aqua__wave:nth-child(3){opacity:.3}
.aqua__body{position:absolute;left:0;right:0;bottom:0;height:34%;background:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,255,255,.28))}
.aqua__drops{position:absolute;inset:0;will-change:transform}
.aqua__drops--near .drop{filter:blur(.4px)}
.drop{position:absolute;border-radius:50% 50% 50% 50%/62% 62% 38% 38%;
  background:radial-gradient(circle at 30% 26%,#fff 0,rgba(255,255,255,.78) 12%,rgba(255,255,255,.12) 38%,rgba(47,193,211,.22) 72%,rgba(8,101,119,.32) 100%);
  border:1px solid rgba(8,101,119,.4);box-shadow:inset -2px -3px 5px rgba(8,101,119,.2),0 .6rem 1rem rgba(8,101,119,.12)}
.aqua--dark .drop{border-color:rgba(155,233,242,.55);box-shadow:inset -2px -3px 5px rgba(155,233,242,.15),0 .6rem 1rem rgba(0,0,0,.25)}
.aqua--dark .aqua__rays{opacity:calc(var(--rays)*.45)}
.aqua--dark .aqua__wave{stroke:#9be9f2}
@media (prefers-reduced-motion:no-preference) and (min-width:901px){
  .aqua__wave{animation:drift 14s ease-in-out infinite alternate}
  .aqua__wave:nth-child(2){animation-duration:19s;animation-direction:alternate-reverse}
  .aqua__wave:nth-child(3){animation-duration:25s}
}
@keyframes drift{from{transform:translateX(-3%)}to{transform:translateX(3%)}}
@media (max-width:900px){.aqua__drops--near,.aqua__drops--mid .drop:nth-child(n+4){display:none}}

/* Cristal translúcido con inclinación 3D (foto detrás, vidrio delante) */
.glass3d{position:relative;perspective:1200px;margin:0}
.glass3d__stack{position:relative;transform-style:preserve-3d;transform:rotateY(var(--ry,-6deg)) rotateX(var(--rx,2deg));transition:transform .2s linear}
.glass3d__back,.glass3d__front{position:absolute;pointer-events:none}
.glass3d__back{inset:6% -7% -6% 7%;transform:translateZ(-70px);border:1px solid rgba(255,255,255,.75);background:linear-gradient(135deg,rgba(255,255,255,.55),rgba(255,255,255,.08));box-shadow:0 2rem 3rem rgba(8,101,119,.18)}
.glass3d__photo{position:relative;aspect-ratio:3/4;overflow:hidden;background:var(--sal);box-shadow:0 2.4rem 4rem rgba(8,101,119,.25)}
.glass3d__photo img{width:100%;height:100%;object-fit:cover}
.glass3d__front{inset:-4% 8% 8% -6%;transform:translateZ(60px);overflow:hidden;border:1px solid rgba(255,255,255,.85);
  background:linear-gradient(118deg,rgba(255,255,255,.34),rgba(255,255,255,.04) 38%,rgba(255,255,255,.18) 62%,rgba(255,255,255,.03));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.4),0 1.6rem 3rem rgba(8,101,119,.22)}
.glass3d__front::before{content:"";position:absolute;top:-10%;bottom:-10%;width:18%;left:calc(var(--sweep,.5)*130% - 25%);transform:skewX(-14deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent)}
.glass3d__front .drop{position:absolute}
@media (max-width:900px){.glass3d__stack{transform:none}.glass3d__back{transform:none}.glass3d__front{transform:none}}
@media (prefers-reduced-motion:reduce){.glass3d__stack{transform:rotateY(-6deg) rotateX(2deg)}}
html.anim [data-stagger]:not(.is-in)>*{opacity:0;transform:translateY(34px)}
.p-title{font-size:clamp(2.6rem,6.6vw,6.8rem);line-height:.95}
.p-title em{color:var(--aqua-ink)}
.dark .p-title em,.on-dark .p-title em{color:#9be9f2}

/* Selector de idioma (details/summary: funciona sin JS; enlaces reales a la página equivalente) */
.lang{position:relative}
.lang summary{list-style:none;display:flex;align-items:center;gap:.35rem;min-height:2.75rem;padding:.4rem .5rem;cursor:pointer;font-weight:600;font-size:.9rem;letter-spacing:.05em;border-radius:99px}
.lang summary::-webkit-details-marker{display:none}
.lang summary::after{content:"";width:.42rem;height:.42rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .25s var(--ease)}
.lang[open] summary::after{transform:rotate(-135deg) translateY(-1px)}
.lang ul{position:absolute;right:0;top:calc(100% + .35rem);min-width:10.5rem;padding:.4rem;background:var(--noche);color:#fff;border-radius:.6rem;box-shadow:0 1rem 2.4rem rgba(4,34,58,.35);z-index:110;--ring:#9be9f2}
.lang a{display:flex;align-items:center;min-height:2.6rem;padding:.4rem .8rem;border-radius:.4rem;text-decoration:none;font-weight:500}
.lang a:hover{background:rgba(255,255,255,.1)}
.lang a[aria-current]{color:#9be9f2;font-weight:700}
@media (max-width:900px){.header-actions{gap:.3rem}.lang summary{padding:.4rem .35rem}}
@media (max-width:360px){.brand{font-size:1.2rem}.brand img{height:2rem}}
/* Formulario con envío por email (solo cuando la página lo activa) */
.form__consent{display:flex!important;grid-template-columns:none;align-items:flex-start;gap:.6rem;font-weight:400;font-size:.9rem}
.form .form__consent input{width:1.25rem;min-height:1.25rem;padding:0;margin:.2rem 0 0;flex:none;accent-color:var(--mar)}
.form .form__consent{display:flex}
.form__hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.form__status{font-size:.92rem;font-weight:600}
.form__status[data-state="error"]{color:#a12626}
.form__actions{display:flex;flex-wrap:wrap;gap:.7rem}

/* Crédito del pie */
.site-footer__credit a{text-decoration:underline;text-underline-offset:.25em}
.site-footer__credit a:hover{color:#fff}
