/* =========================================================
   ODONTOMAYA — Radiología Oral y Maxilofacial
   Light theme · petrol-teal accent · parallax
   ========================================================= */

:root{
  --bg:        #eef2f4;      /* page — light cool grey (logo circle) */
  --bg-2:      #e3e9ec;      /* recessed panels / cards */
  --panel:     #ffffff;
  --ink:       #0b3a49;      /* primary text — deep petrol (logo wordmark) */
  --ink-dim:   #43535a;      /* secondary text — neutral slate */
  --muted:     #7c8b92;
  --line:      rgba(11,58,73,.16);
  --line-soft: rgba(11,58,73,.08);
  --accent:    #0c5973;      /* the X-ray square */
  --accent-2:  #247088;      /* lighter teal highlight */
  --glow:      rgba(36,112,136,.28);
  --maxw:      1180px;
  --ease:      cubic-bezier(.22,1,.36,1);
  --font:      'Space Grotesk', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --mono:      'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }

html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; scroll-padding-top:76px; }

body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font);
  font-weight:400;
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
::selection{ background:var(--accent); color:#fff; }

/* ---------- global textures / overlays ---------- */
.grain{
  position:fixed; inset:0; z-index:9000; pointer-events:none;
  opacity:.035; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.vignette{
  position:fixed; inset:0; z-index:8000; pointer-events:none;
  background:radial-gradient(ellipse at 50% 42%, transparent 58%, rgba(11,58,73,.06) 100%);
}
.scanbar{
  position:fixed; left:0; right:0; top:0; height:2px; z-index:8500; pointer-events:none;
  background:linear-gradient(90deg, transparent, var(--glow), transparent);
  opacity:0; transform:translateY(0);
}

/* ---------- fixed viewport HUD ---------- */
.hud{ position:fixed; inset:0; z-index:7000; pointer-events:none; }
.hud__bracket{
  position:absolute; width:26px; height:26px;
  border:1.5px solid rgba(11,58,73,.28);
}
.hud__bracket--tl{ top:16px; left:16px; border-right:0; border-bottom:0; }
.hud__bracket--tr{ top:16px; right:16px; border-left:0; border-bottom:0; }
.hud__bracket--bl{ bottom:16px; left:16px; border-right:0; border-top:0; }
.hud__bracket--br{ bottom:16px; right:16px; border-left:0; border-top:0; }

.hud__label{
  position:absolute; font-family:var(--mono); font-size:9.5px; letter-spacing:.18em;
  color:rgba(11,58,73,.4); text-transform:uppercase;
}
.hud__label--tl{ display:none; }
.hud__label--tr{ top:118px; right:clamp(20px,5vw,64px); }

.hud__mark{
  position:absolute; font-family:var(--mono); font-size:13px; letter-spacing:.1em;
  color:rgba(11,58,73,.3); top:50%; transform:translateY(-50%);
}
.hud__mark--l{ left:18px; }
.hud__mark--r{ right:18px; }

.hud__ruler{ position:absolute; right:26px; top:22%; height:56%; width:34px; }
.hud__ruler-track{
  position:absolute; right:14px; top:0; bottom:0; width:1px;
  background:repeating-linear-gradient(to bottom, rgba(11,58,73,.24) 0 1px, transparent 1px 14px);
}
.hud__ruler-cursor{
  position:absolute; right:8px; top:0; width:13px; height:1px; background:var(--accent);
  box-shadow:0 0 6px var(--glow);
}
.hud__ruler-cursor::after{
  content:""; position:absolute; right:13px; top:-3px; border:4px solid transparent;
  border-right-color:var(--accent);
}
.hud__ruler-read{
  position:absolute; right:28px; top:0; font-family:var(--mono); font-size:9px;
  letter-spacing:.12em; color:rgba(11,58,73,.45); white-space:nowrap;
  transform:translateY(-50%); text-align:right; writing-mode:vertical-rl;
}

/* ---------- navigation ---------- */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:7500;
  display:flex; align-items:center; justify-content:space-between;
  padding:18px clamp(20px,5vw,64px);
  transition:background .4s var(--ease), padding .4s var(--ease), border-color .4s var(--ease);
  border-bottom:1px solid transparent;
}
.nav.is-stuck{
  background:rgba(238,242,244,.82);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom-color:var(--line-soft);
  padding-top:12px; padding-bottom:12px;
}
.nav__brand{ display:flex; align-items:center; gap:12px; }
.nav__logo{
  width:60px; height:60px; flex:none; object-fit:contain; border-radius:14px;
  background:#fff; padding:5px;
  box-shadow:0 4px 16px rgba(11,58,73,.18), 0 0 0 1px var(--line-soft);
  transition:width .4s var(--ease), height .4s var(--ease);
}
.nav.is-stuck .nav__logo{ width:48px; height:48px; }
.nav__word{ font-size:19px; letter-spacing:.12em; font-weight:400; }
.nav__word b{ font-weight:600; color:var(--accent); }

.nav__links{ display:flex; align-items:center; gap:36px; font-family:var(--mono); font-size:12.5px; letter-spacing:.08em; }
.nav__links a{ color:var(--ink-dim); position:relative; padding:4px 0; transition:color .25s; }
.nav__links a:hover{ color:var(--ink); }
.nav__links a::after{
  content:""; position:absolute; left:0; bottom:0; height:1px; width:0; background:var(--accent);
  transition:width .3s var(--ease);
}
.nav__links a:hover::after{ width:100%; }
.nav__cta{
  border:1px solid var(--line); padding:8px 16px !important; border-radius:2px;
  color:var(--ink) !important;
}
.nav__cta::after{ display:none; }
.nav__cta:hover{ background:var(--accent); border-color:var(--accent); color:#fff !important; }

.nav__toggle{
  display:none; width:40px; height:40px; background:none; border:1px solid var(--line);
  border-radius:2px; cursor:pointer; padding:10px; flex-direction:column; justify-content:space-between;
}
.nav__toggle span{ display:block; height:1.5px; background:var(--ink); transition:.3s var(--ease); }
.nav__toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7.5px) rotate(45deg); }
.nav__toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav__toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7.5px) rotate(-45deg); }

/* ---------- HERO ---------- */
.hero{
  position:relative; min-height:100svh; display:flex; align-items:center; justify-content:center;
  overflow:hidden; text-align:center; padding:120px 20px 80px;
}
.hero__layer{ position:absolute; inset:-8% -4%; will-change:transform; pointer-events:none; }
.hero__layer svg{ width:100%; height:100%; }
.hero__layer--skull{ opacity:.9; }
.hero__layer--arch{ display:flex; align-items:center; justify-content:center; }
.hero__layer--arch svg{ max-width:1100px; margin:0 auto; filter:drop-shadow(0 0 24px var(--glow)); }
.hero__layer--marks{ opacity:.7; }
.hero__layer .tick, .tick{ font-family:var(--mono); font-size:13px; fill:rgba(11,58,73,.45); letter-spacing:.1em; }

.hero__content{ position:relative; z-index:5; max-width:920px; }
.hero__brand{ margin:0 0 clamp(22px,3.5vw,36px); font-weight:400; }
.hero__logo{
  display:block; width:clamp(168px, 26vw, 248px); height:auto; margin:0 auto;
  border-radius:50%;
  box-shadow:0 18px 50px rgba(11,58,73,.2), 0 0 0 1px var(--line-soft);
}
.hero__content::before{
  content:""; position:absolute; inset:-45% -35%; z-index:-1; pointer-events:none;
  background:radial-gradient(ellipse at center, rgba(238,242,244,.92) 0%, rgba(238,242,244,.55) 42%, transparent 74%);
}
.hero__title{
  font-size:clamp(2.7rem, 9vw, 7rem); font-weight:500; letter-spacing:0; line-height:.95;
  white-space:nowrap;
  background:linear-gradient(180deg,#1a6b83 0%, #0b3a49 115%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  text-shadow:0 2px 40px rgba(36,112,136,.14);
}
.hero__sub{
  margin-top:28px; font-size:clamp(1.05rem,2.6vw,1.5rem); font-weight:300; color:var(--ink);
  line-height:1.45;
}

/* ---------- generic section ---------- */
.section{
  position:relative; max-width:var(--maxw); margin:0 auto;
  padding:clamp(90px,14vw,170px) clamp(20px,5vw,64px);
}
.section__head{ margin-bottom:64px; }
.kicker{
  font-family:var(--mono); font-size:11px; letter-spacing:.28em; text-transform:uppercase;
  color:var(--accent); display:block; margin-bottom:20px;
}
.section h2{
  font-size:clamp(2rem,6vw,3.6rem); font-weight:400; line-height:1.04; letter-spacing:-.01em;
}
.prose{ max-width:640px; }
.prose p{ font-size:clamp(1.05rem,2.4vw,1.3rem); font-weight:300; color:var(--ink-dim); }
.prose p + p{ margin-top:18px; }
.prose strong{ color:var(--ink); font-weight:500; }
.muted{ color:var(--muted); }
.small{ font-size:.85rem; }

/* ---------- SERVICIO: study list ---------- */
.studies{
  list-style:none; margin-top:64px; border-top:1px solid var(--line);
}
.studies li{
  display:flex; align-items:baseline; gap:20px; padding:24px 4px;
  border-bottom:1px solid var(--line-soft);
}
.studies li::before{
  content:""; flex:none; width:20px; height:1px; background:var(--accent);
  transform:translateY(-0.35em); opacity:.7;
}
.studies__t{ font-size:clamp(1.1rem,3vw,1.7rem); font-weight:300; }
.studies__t em{
  font-style:normal; font-family:var(--mono); font-size:.6em; letter-spacing:.12em;
  text-transform:uppercase; color:var(--accent); vertical-align:middle; margin-left:.5em;
}

/* ---------- FILMSTRIP ---------- */
.filmstrip{
  position:relative; overflow:hidden; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  background:var(--bg-2); padding:22px 0;
}
.filmstrip__track{ display:flex; gap:14px; width:max-content; will-change:transform; }
.film{
  width:120px; height:150px; border:1px solid var(--line); background:var(--panel); flex:none;
  position:relative; overflow:hidden;
}
.film svg{ width:100%; height:100%; opacity:.5; }
.film::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(11,58,73,.05), transparent 40%);
}

/* ---------- INFORME ---------- */
.section--informe{ overflow:hidden; }
.section--informe > *:not(.informe__bg){ position:relative; z-index:1; }
.informe__bg{
  position:absolute; top:-10%; right:-14%; width:min(60vw,560px); height:120%;
  will-change:transform; pointer-events:none; z-index:0;
}
.informe__bg svg{ width:100%; height:100%; }
.report{ list-style:none; counter-reset:r; display:grid; gap:2px; }
.report li{
  display:flex; gap:28px; padding:34px 4px; border-top:1px solid var(--line-soft); align-items:flex-start;
}
.report li:last-child{ border-bottom:1px solid var(--line-soft); }
.report__k{
  font-family:var(--mono); font-size:14px; color:var(--accent); border:1px solid var(--line);
  width:40px; height:40px; display:grid; place-items:center; flex:none; border-radius:2px;
}
.report h3{ font-size:clamp(1.15rem,3vw,1.5rem); font-weight:400; margin-bottom:8px; }
.report p{ color:var(--ink-dim); font-weight:300; max-width:520px; }

.informe__grid{ display:grid; grid-template-columns:1fr; gap:clamp(30px,5vw,60px); align-items:start; }
.report{ min-width:0; }

.informe__sample{ margin:0; min-width:0; }
.informe__sample-frame{
  position:relative; display:block; cursor:zoom-in;
  border:1px solid var(--line); background:var(--panel); padding:10px;
  box-shadow:0 18px 44px rgba(11,58,73,.14);
  transition:box-shadow .4s var(--ease), border-color .4s var(--ease);
}
.informe__sample-frame img{ display:block; width:100%; height:auto; }
.informe__sample-frame:hover{ border-color:var(--accent); box-shadow:0 24px 55px rgba(11,58,73,.2); }
.informe__sample-frame:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; }
.informe__sample-zoom{
  position:absolute; top:16px; right:18px; width:30px; height:30px; display:grid; place-items:center;
  background:rgba(7,24,30,.72); color:#fff; border-radius:3px; font-size:14px;
  opacity:0; transition:opacity .3s var(--ease);
}
.informe__sample-frame:hover .informe__sample-zoom{ opacity:1; }
.informe__sample figcaption{
  margin-top:12px; font-family:var(--mono); font-size:10px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--muted); text-align:center;
}
.informe__sample .informe__sample-btn{ display:none; }

@media (min-width:900px){
  .informe__grid{ grid-template-columns:1.15fr .85fr; }
}
@media (max-width:899px){
  .informe__sample-frame, .informe__sample figcaption{ display:none; }
  .informe__sample{ text-align:center; }
  .informe__sample .informe__sample-btn{ display:inline-block; }
}

/* ---------- GALERIA ---------- */
.galeria__intro{
  margin-top:20px; font-size:clamp(1rem,2.4vw,1.2rem); font-weight:300; color:var(--ink-dim);
}
.galeria__intro em{
  font-style:normal; font-family:var(--mono); font-size:.72em; letter-spacing:.08em;
  text-transform:uppercase; color:var(--muted); margin-left:.5em;
}
.showcase{
  margin-top:56px; display:flex; flex-direction:column; gap:clamp(44px, 8vw, 96px);
}
.scrow{
  display:flex; align-items:center; gap:clamp(24px, 5vw, 64px);
}
.scrow:nth-child(even){ flex-direction:row-reverse; }

.scrow__media{
  flex:1 1 54%; min-width:0; margin:0; padding:8px;
  border:1px solid var(--line); background:var(--panel); cursor:zoom-in;
  position:relative; transition:border-color .4s var(--ease), box-shadow .4s var(--ease);
  box-shadow:0 12px 30px rgba(11,58,73,.08);
}
.scrow__media img{
  display:block; width:100%; aspect-ratio:3 / 2; object-fit:contain; background:#0b1f27;
  transition:filter .45s var(--ease);
}
.scrow__media::after{
  content:"\2922"; position:absolute; top:12px; right:14px;
  font-size:13px; color:rgba(255,255,255,.7); opacity:0; transition:opacity .3s var(--ease);
}
.scrow__media:hover{ border-color:var(--accent); box-shadow:0 18px 40px rgba(11,58,73,.16); }
.scrow__media:hover::after{ opacity:1; }
.scrow__media:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; }

.scrow__text{ flex:1 1 46%; min-width:0; }
.scrow__text h3{
  font-size:clamp(1.2rem, 3vw, 1.7rem); font-weight:400; line-height:1.15; margin-bottom:14px;
}
.scrow__text h3::before{
  content:""; display:block; width:36px; height:1px; background:var(--accent); margin-bottom:18px;
}
.scrow__text p{
  color:var(--ink-dim); font-weight:300; font-size:clamp(.98rem, 2.3vw, 1.12rem);
  line-height:1.6; max-width:40ch;
}

@media (max-width:720px){
  .showcase{ gap:44px; }
  .scrow, .scrow:nth-child(even){ flex-direction:column; align-items:stretch; gap:16px; }
  .scrow__media{ align-self:center; width:100%; max-width:400px; }
  .scrow__media img{ aspect-ratio:3 / 2; max-height:44vh; }
  .scrow__text{ text-align:left; }
  .scrow__text h3::before{ margin-bottom:12px; }
  .scrow__text p{ max-width:none; }
}

/* lightbox — kept dark for viewing radiographs */
.lb{
  position:fixed; inset:0; z-index:9600; display:flex; align-items:center; justify-content:center;
  padding:6vh 4vw; background:rgba(7,24,30,.96);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  opacity:0; pointer-events:none; transition:opacity .3s var(--ease);
}
.lb.is-open{ opacity:1; pointer-events:auto; }
.lb__img{
  max-width:min(1100px, 92vw); max-height:80vh; width:auto; height:auto; object-fit:contain;
  border:1px solid rgba(255,255,255,.14); box-shadow:0 30px 90px rgba(0,0,0,.6); background:#0b1f27;
}
.lb__cap{
  position:absolute; left:0; right:0; bottom:3.4vh; text-align:center;
  font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.72);
}
.lb__count{
  position:absolute; top:3.6vh; left:5vw;
  font-family:var(--mono); font-size:10px; letter-spacing:.16em; color:rgba(255,255,255,.5);
}
.lb__btn{
  position:absolute; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.24); color:#fff;
  width:44px; height:44px; border-radius:2px; cursor:pointer; font-size:20px; line-height:1;
  display:grid; place-items:center; transition:.25s var(--ease);
}
.lb__btn:hover{ border-color:#7fc4d8; color:#7fc4d8; }
.lb__close{ top:3.2vh; right:5vw; font-size:15px; }
.lb__prev{ left:3vw; top:50%; transform:translateY(-50%); }
.lb__next{ right:3vw; top:50%; transform:translateY(-50%); }
@media (max-width:640px){
  .lb__prev{ left:1vw; } .lb__next{ right:1vw; }
  .lb__btn{ width:38px; height:38px; }
  .lb__img{ max-height:74vh; }
}

/* ---------- VALOR ---------- */
.section--valor{ text-align:center; max-width:920px; }
.valor__stat{ display:flex; align-items:flex-start; justify-content:center; gap:6px; margin-bottom:38px; }
.valor__num{
  font-size:clamp(5rem,20vw,13rem); font-weight:300; line-height:.8; letter-spacing:-.03em;
  background:linear-gradient(180deg,#1a6b83, #0b3a49); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.valor__plus{ font-size:clamp(2rem,7vw,4rem); font-weight:300; color:var(--accent); margin-top:.4em; }
.valor__cap{
  align-self:flex-end; text-align:left; max-width:220px; font-family:var(--mono); font-size:11px;
  letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin-bottom:1.4em; margin-left:14px;
}
.valor__text{
  font-size:clamp(1.15rem,3.2vw,1.7rem); font-weight:300; line-height:1.5; color:var(--ink);
}
.valor__text em{ color:var(--accent); font-style:normal; }

/* ---------- LA DRA ---------- */
.dra__grid{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:clamp(32px,6vw,80px); align-items:start; }

.dra__photo{
  position:sticky; top:120px; margin:0;
  border:1px solid var(--line); padding:10px; background:var(--panel);
  box-shadow:0 24px 60px rgba(11,58,73,.16);
}
.dra__photo img{
  width:100%; display:block;
}
.dra__photo-clip{ position:absolute; width:18px; height:18px; border:2px solid rgba(11,58,73,.4); }
.dra__photo-clip--tl{ top:2px; left:2px; border-right:0; border-bottom:0; }
.dra__photo-clip--br{ bottom:2px; right:2px; border-left:0; border-top:0; }
.dra__photo figcaption{
  margin-top:10px; font-family:var(--mono); font-size:9.5px; letter-spacing:.2em;
  text-transform:uppercase; color:var(--muted); text-align:center;
}

.dra__intro{ font-size:clamp(1.05rem,2.6vw,1.35rem); font-weight:300; color:var(--ink-dim); margin-bottom:28px; }

.dra__member{
  display:flex; align-items:center; gap:16px;
  padding:14px 16px; margin-bottom:44px;
  border:1px solid var(--line-soft); border-left:2px solid var(--accent); border-radius:3px;
  background:linear-gradient(90deg, rgba(12,89,115,.06), transparent);
}
.dra__member-logo{
  flex:none; width:84px; height:42px; border-radius:3px; padding:5px 7px;
  background:var(--panel); border:1px solid var(--line-soft); display:grid; place-items:center;
}
.dra__member-logo img{ max-width:100%; max-height:100%; object-fit:contain; }
.dra__member p{ font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-dim); line-height:1.5; }
.dra__member strong{ color:var(--ink); font-weight:600; }
.dra__member span{ display:block; font-size:9.5px; color:var(--muted); letter-spacing:.06em; }

.timeline{ list-style:none; border-left:1px solid var(--line); margin-bottom:56px; }
.timeline__item{ position:relative; padding:0 0 40px 34px; }
.timeline__item:last-child{ padding-bottom:0; }
.timeline__item::before{
  content:""; position:absolute; left:-5px; top:6px; width:9px; height:9px; border-radius:50%;
  background:var(--bg); border:1px solid var(--accent); box-shadow:0 0 10px var(--glow);
}
.timeline__year{ font-family:var(--mono); font-size:12px; letter-spacing:.14em; color:var(--accent); display:block; margin-bottom:8px; }
.timeline__c h3{ font-size:clamp(1.05rem,2.6vw,1.3rem); font-weight:400; margin-bottom:4px; }
.timeline__c p{ color:var(--muted); font-weight:300; font-size:.95rem; }

.trayectoria__title{
  font-family:var(--mono); font-size:11px; letter-spacing:.24em; text-transform:uppercase;
  color:var(--accent); margin-bottom:24px;
}
.trayectoria__row{ display:flex; gap:20px; align-items:center; padding:20px 0; border-top:1px solid var(--line-soft); }
.trayectoria__row:last-child{ border-bottom:1px solid var(--line-soft); }
.trayectoria__logo{
  width:96px; height:68px; flex:none; border-radius:4px; padding:9px;
  background:var(--panel); border:1px solid var(--line-soft); display:grid; place-items:center;
}
.trayectoria__logo img{ max-width:100%; max-height:100%; object-fit:contain; }
.trayectoria__row h4{ font-size:1.05rem; font-weight:500; margin-bottom:2px; }
.trayectoria__row p{ color:var(--ink-dim); font-weight:300; font-size:.95rem; }

/* ---------- CONTACTO ---------- */
.contacto__grid{ display:grid; grid-template-columns:1.3fr .9fr; gap:clamp(32px,6vw,72px); align-items:start; }
.contacto__lead{ font-size:clamp(1.1rem,2.8vw,1.45rem); font-weight:300; color:var(--ink-dim); margin-bottom:40px; }
.contacto__lead strong{ color:var(--ink); font-weight:500; }

.mailcard{
  border:1px solid var(--line); border-radius:3px; padding:clamp(24px,4vw,40px);
  background:linear-gradient(180deg, var(--panel), var(--bg));
  position:relative; overflow:hidden;
}
.mailcard::before{
  content:""; position:absolute; left:0; top:0; height:100%; width:2px;
  background:linear-gradient(180deg, transparent, var(--accent), transparent);
}
.mailcard__label{ font-family:var(--mono); font-size:10px; letter-spacing:.24em; text-transform:uppercase; color:var(--muted); }
.mailcard__addr{
  display:block; margin:14px 0 26px; font-size:clamp(1.15rem,4.4vw,2rem); font-weight:300;
  letter-spacing:.01em; word-break:break-all; color:var(--ink);
  transition:color .25s;
}
.mailcard__addr:hover{ color:var(--accent); }
.mailcard__actions{ display:flex; gap:14px; flex-wrap:wrap; }

.btn{
  font-family:var(--mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase;
  padding:12px 22px; border-radius:2px; cursor:pointer; transition:.25s var(--ease); border:1px solid var(--line);
  display:inline-block;
}
.btn--ghost{ background:none; color:var(--ink-dim); }
.btn--ghost:hover{ color:var(--ink); border-color:var(--accent); }
.btn--ghost.is-copied{ color:var(--accent); border-color:var(--accent); }
.btn--solid{ background:var(--accent); color:#fff; border-color:var(--accent); }
.btn--solid:hover{ background:#0b3a49; border-color:#0b3a49; }

.contacto__aside h3{
  font-family:var(--mono); font-size:11px; letter-spacing:.24em; text-transform:uppercase;
  color:var(--accent); margin-bottom:22px;
}
.checklist{ list-style:none; }
.checklist li{
  position:relative; padding:14px 0 14px 28px; border-bottom:1px solid var(--line-soft);
  color:var(--ink-dim); font-weight:300;
}
.checklist li::before{
  content:"+"; position:absolute; left:0; top:12px; font-family:var(--mono); color:var(--accent);
}
.contacto__aside .muted{ margin-top:18px; }

/* ---------- FOOTER ---------- */
.foot{
  border-top:1px solid var(--line); max-width:var(--maxw); margin:0 auto;
  padding:56px clamp(20px,5vw,64px) 90px;
  display:flex; justify-content:space-between; align-items:flex-end; gap:32px; flex-wrap:wrap;
}
.foot__brand{ display:flex; flex-direction:column; gap:8px; }
.foot__tag{ font-family:var(--mono); font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); }
.foot__meta{ display:flex; flex-direction:column; gap:6px; text-align:right; font-family:var(--mono); font-size:11px; letter-spacing:.08em; color:var(--muted); }
.foot__meta a:hover{ color:var(--accent); }
.foot__credit{ margin-top:12px; padding-top:12px; border-top:1px solid var(--line-soft); opacity:.85; }
.foot__credit a{ color:var(--ink-dim); border-bottom:1px solid var(--line); transition:color .25s, border-color .25s; }
.foot__credit a:hover{ color:var(--accent); border-color:var(--accent); }

/* ---------- to-top ---------- */
.totop{
  position:fixed; right:22px; bottom:64px; z-index:7600; width:42px; height:42px;
  border:1px solid var(--line); border-radius:2px; display:grid; place-items:center;
  background:rgba(238,242,244,.82); backdrop-filter:blur(8px); color:var(--ink-dim);
  opacity:0; pointer-events:none; transform:translateY(10px); transition:.35s var(--ease);
}
.totop.is-on{ opacity:1; pointer-events:auto; transform:translateY(0); }
.totop:hover{ color:var(--ink); border-color:var(--accent); }

/* ---------- reveal animation ---------- */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.is-in{ opacity:1; transform:none; }

/* ---------- responsive ---------- */
@media (max-width:900px){
  .dra__grid{ grid-template-columns:1fr; }
  .dra__photo{ position:static; max-width:340px; }
  .contacto__grid{ grid-template-columns:1fr; }
  .hud__label{ display:none; }
  .hud__ruler{ display:none; }
}

@media (max-width:760px){
  .nav__links{
    position:fixed; inset:0 0 0 auto; width:min(78vw,320px);
    background:rgba(238,242,244,.97); backdrop-filter:blur(16px);
    flex-direction:column; align-items:flex-start; justify-content:center; gap:8px;
    padding:80px 34px; transform:translateX(100%); transition:transform .4s var(--ease);
    font-size:1rem; box-shadow:-20px 0 50px rgba(11,58,73,.1);
  }
  .nav__links.is-open{ transform:translateX(0); }
  .nav__links a{ padding:14px 0; width:100%; border-bottom:1px solid var(--line-soft); }
  .nav__links a::after{ display:none; }
  .nav__cta{ margin-top:16px; text-align:center; }
  .nav__toggle{ display:flex; z-index:10; }
  .hud__mark{ display:none; }
  .hud__bracket{ width:18px; height:18px; }
  .hero__title{ letter-spacing:0; }
  .hero__sub{ font-size:1.05rem; }
  .valor__stat{ flex-direction:column; align-items:center; gap:4px; }
  .valor__cap{ text-align:center; margin:8px 0 0; max-width:none; }
  .foot{ flex-direction:column; align-items:flex-start; }
  .foot__meta{ text-align:left; }
  .totop{ bottom:20px; }
}

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001s !important; transition-duration:.001s !important; }
  .hero__layer{ transform:none !important; }
  .reveal{ opacity:1; transform:none; }
}
