:root{
  --paper: #f7f4ec; --paper-raised: #ffffff; --ink: #221e19; --ink-soft: #6e6459;
  --accent: #31503f; --accent-strong: #21362a; --accent-on: #f6f4ea; --gold: #b08d57;
  --line: rgba(34,30,25,0.13); --line-strong: rgba(34,30,25,0.26);
  --radius: 14px; --radius-sm: 8px; color-scheme: light;
}
@media (prefers-color-scheme: dark){
  :root{ --paper:#18150f; --paper-raised:#221e17; --ink:#f5f0e4; --ink-soft:#b4a99a;
    --accent:#6fa084; --accent-strong:#8fc0a4; --accent-on:#12241a; --gold:#d9b876;
    --line: rgba(245,240,228,0.14); --line-strong: rgba(245,240,228,0.26); color-scheme: dark; }
}
:root[data-theme="dark"]{ --paper:#18150f; --paper-raised:#221e17; --ink:#f5f0e4; --ink-soft:#b4a99a;
  --accent:#6fa084; --accent-strong:#8fc0a4; --accent-on:#12241a; --gold:#d9b876;
  --line: rgba(245,240,228,0.14); --line-strong: rgba(245,240,228,0.26); color-scheme: dark; }
:root[data-theme="light"]{ --paper:#f7f4ec; --paper-raised:#ffffff; --ink:#221e19; --ink-soft:#6e6459;
  --accent:#31503f; --accent-strong:#21362a; --accent-on:#f6f4ea; --gold:#b08d57;
  --line: rgba(34,30,25,0.13); --line-strong: rgba(34,30,25,0.26); color-scheme: light; }

*,*::before,*::after{ box-sizing:border-box; }
body{ margin:0; background:var(--paper); color:var(--ink);
  font-family: ui-sans-serif, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size:16px; line-height:1.65; overflow-x:hidden; position:relative;
  display:flex; flex-direction:column; min-height:100vh; min-height:100dvh; }
header.site{ flex:none; }
main#contenido{ flex:1 0 auto; }
footer.site{ flex:none; }
body::before{ content:""; position:fixed; inset:0; pointer-events:none; z-index:1; opacity:0.05; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>"); }
@media (prefers-color-scheme: dark){ body::before{ mix-blend-mode:overlay; opacity:0.06; } }
:root[data-theme="dark"] body::before{ mix-blend-mode:overlay; opacity:0.06; }

.serif{ font-family:"Iowan Old Style","Palatino Linotype","URW Palladio L", Palatino, P052, Georgia, serif; }
.mono{ font-family: ui-monospace, "Courier New", monospace; letter-spacing:0.09em; text-transform:uppercase; }
img{ max-width:100%; display:block; }
a{ color:inherit; }
h1,h2,h3,h4{ text-wrap:balance; margin:0; font-weight:600; }
p{ margin:0; }
ul{ margin:0; padding:0; list-style:none; }
button{ font:inherit; }
:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

.skip-link{ position:absolute; left:1rem; top:-3rem; background:var(--accent); color:var(--accent-on);
  padding:0.6rem 1rem; border-radius:var(--radius-sm); transition:top .15s ease; z-index:100; }
.skip-link:focus{ top:1rem; }

.eyebrow{ font-size:0.72rem; color:var(--gold); display:flex; align-items:center; gap:0.6rem; margin-bottom:0.9rem; }
.eyebrow::before{ content:""; width:1.6rem; height:1px; background:var(--gold); }

.container{ max-width:75rem; margin-inline:auto; padding-inline:1.25rem; position:relative; z-index:2; }

header.site{ position:sticky; top:0; z-index:40; background:color-mix(in srgb, var(--paper) 88%, transparent);
  backdrop-filter:saturate(140%) blur(10px); border-bottom:1px solid var(--line);
  transition:padding .25s ease, box-shadow .25s ease; }
header.site.scrolled{ box-shadow:0 6px 24px -12px rgba(0,0,0,0.18); }
.nav-row{ display:flex; align-items:center; justify-content:space-between; height:4.5rem; transition:height .25s ease; gap:1rem; }
header.site.scrolled .nav-row{ height:3.6rem; }
.wordmark{ display:flex; align-items:center; gap:0.7rem; text-decoration:none; min-width:0; }
.wordmark img{ width:2.205rem; height:2.205rem; flex:none; }
.wordmark-text{ min-width:0; }
.wordmark-text strong{ display:block; font-size:0.92rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.wordmark-text em{ font-style:normal; font-size:0.68rem; color:var(--ink-soft); }
nav.primary{ display:none; }
nav.primary ul{ display:flex; gap:1.85rem; align-items:center; }
nav.primary a{ text-decoration:none; font-size:0.92rem; color:var(--ink-soft); transition:color .15s ease; }
nav.primary a:hover{ color:var(--ink); }
nav.primary a.active{ color:var(--accent); font-weight:600; }
.cta{ display:inline-flex; align-items:center; gap:0.5rem; background:var(--accent); color:var(--accent-on);
  padding:0.7rem 1.25rem; border-radius:999px; text-decoration:none; font-size:0.9rem; font-weight:600;
  border:1px solid var(--accent); white-space:nowrap; cursor:pointer; transition:background .18s ease, transform .18s ease; }
.cta:hover{ background:var(--accent-strong); border-color:var(--accent-strong); transform:translateY(-1px); }
.cta.ghost{ background:transparent; color:var(--ink); border-color:var(--line-strong); }
.cta.ghost:hover{ border-color:var(--ink); }
.header-actions{ display:flex; align-items:center; gap:0.55rem; }
.header-actions .social{ display:none; gap:0.5rem; }
.header-actions .social a{ width:1.95rem; height:1.95rem; }
.header-actions .social svg{ width:0.95rem; height:0.95rem; }
@media (min-width:860px){ .header-actions .social{ display:flex; } }

.lang-switch{ position:relative; flex:none; }
.lang-trigger{ display:flex; align-items:center; gap:0.3rem; background:none; border:1px solid var(--line-strong);
  border-radius:999px; padding:0.34rem 0.55rem 0.34rem 0.7rem; font-size:0.68rem; font-weight:700; letter-spacing:0.03em;
  color:var(--ink-soft); cursor:pointer; transition:color .15s ease, border-color .15s ease; }
.lang-trigger:hover{ color:var(--accent); border-color:var(--accent); }
.lang-trigger svg{ width:0.75rem; height:0.75rem; transition:transform .15s ease; }
.lang-switch.open .lang-trigger svg{ transform:rotate(180deg); }
.lang-menu{ position:absolute; top:calc(100% + 8px); right:0; min-width:5.5rem; margin:0; padding:0.3rem;
  list-style:none; background:var(--paper-raised); border:1px solid var(--line-strong); border-radius:12px;
  box-shadow:0 16px 32px -16px rgba(0,0,0,0.35); display:flex; flex-direction:column; gap:2px;
  opacity:0; visibility:hidden; transform:translateY(-6px); transition:opacity .15s ease, transform .15s ease; z-index:50; }
.lang-switch.open .lang-menu{ opacity:1; visibility:visible; transform:none; }
.lang-menu button{ background:none; border:none; border-radius:8px; padding:0.5rem 0.7rem; font-size:0.75rem;
  font-weight:600; letter-spacing:0.03em; color:var(--ink-soft); text-align:left; cursor:pointer; transition:background .15s ease, color .15s ease; }
.lang-menu button:hover{ background:var(--paper); color:var(--ink); }
.lang-menu button.active{ color:var(--accent); }

.theme-toggle{ width:2.15rem; height:2.15rem; flex:none; border:1px solid var(--line-strong); border-radius:50%;
  background:none; color:var(--ink-soft); display:grid; place-items:center; cursor:pointer; transition:color .15s ease, border-color .15s ease; }
.theme-toggle:hover{ color:var(--accent); border-color:var(--accent); }
.theme-toggle svg{ width:1.05rem; height:1.05rem; grid-area:1/1; }
.theme-toggle .icon-moon{ display:none; }
:root[data-theme="dark"] .theme-toggle .icon-sun{ display:none; }
:root[data-theme="dark"] .theme-toggle .icon-moon{ display:block; }

/* Hero */
.hero{ padding-block:clamp(2.75rem,7vw,4.5rem); }
.hero-grid{ display:grid; gap:2.5rem; align-items:center; }
.hero h1{ font-size:clamp(2.1rem,1.5rem + 2.6vw,3.4rem); line-height:1.08; }
.hero .lead{ margin-top:1.15rem; font-size:clamp(1.02rem,0.95rem + 0.3vw,1.18rem); color:var(--ink-soft); max-width:38rem; }
.hero .actions{ margin-top:2rem; display:flex; flex-wrap:wrap; gap:0.85rem; }
.hero .actions .cta{ padding:0.85rem 1.5rem; font-size:0.95rem; }
.hero-media{ position:relative; border-radius:var(--radius); overflow:hidden; border:1px solid var(--line);
  box-shadow:0 30px 60px -30px rgba(20,15,5,0.35); }
.hero-media img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/5; animation:kenburns 22s ease-in-out infinite alternate; }
@keyframes kenburns{ from{ transform:scale(1) translate(0,0);} to{ transform:scale(1.08) translate(-1%,-1%);} }
@media (prefers-reduced-motion: reduce){ .hero-media img{ animation:none; } }
.hero-caption{ position:absolute; left:0; right:0; bottom:0; padding:1.1rem 1.25rem;
  background:linear-gradient(0deg, rgba(10,8,5,0.65), transparent); color:#f6f4ea; font-size:0.85rem; }

.stats{ border-block:1px solid var(--line); }
.stats-row{ display:grid; gap:1.75rem; padding-block:clamp(2rem,5vw,3rem); }
.stat b{ display:block; font-family:"Iowan Old Style","Palatino Linotype",Georgia,serif; font-size:clamp(2rem,1.7rem + 1.2vw,2.75rem); color:var(--accent); }
.stat span{ font-size:0.85rem; color:var(--ink-soft); }

section.block{ padding-block:clamp(3.25rem,8vw,5.5rem); }
section.block.raised{ background:var(--paper-raised); border-block:1px solid var(--line); }
.block-head{ max-width:36rem; margin-bottom:clamp(2rem,5vw,3rem); }
.block-head h2{ font-size:clamp(1.6rem,1.4rem + 1vw,2.2rem); }
.block-head p{ margin-top:0.85rem; color:var(--ink-soft); font-size:1.02rem; }

.reveal{ opacity:0; transform:translateY(16px); transition:opacity .55s ease, transform .55s ease; }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

/* SPA-style views: one section visible at a time, no continuous scroll between them */
.view{ display:none; }
.view.active{ display:block; animation: viewIn .4s ease both; }
@keyframes viewIn{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce){ .view.active{ animation:none; } }

.services-grid{ display:grid; gap:1.25rem; grid-template-columns:1fr; }
.service{ border:1px solid var(--line); border-radius:var(--radius); padding:1.85rem 1.6rem; background:var(--paper);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; position:relative; overflow:hidden; }
section.raised .service{ background:var(--paper-raised); }
.service:hover{ transform:translateY(-4px); box-shadow:0 20px 40px -24px rgba(20,15,5,0.28); border-color:var(--line-strong); }
.service .num{ font-family:"Iowan Old Style","Palatino Linotype",Georgia,serif; font-size:1.6rem; color:var(--gold); }
.service h3{ margin-top:0.9rem; font-size:1.1rem; }
.service p{ margin-top:0.6rem; color:var(--ink-soft); font-size:0.95rem; }

.process{ display:grid; gap:2rem; counter-reset:step; }
.step{ position:relative; padding-left:3.25rem; }
.step::before{ counter-increment:step; content:counter(step,decimal-leading-zero); position:absolute; left:0; top:0;
  font-family:"Iowan Old Style","Palatino Linotype",Georgia,serif; font-size:1.4rem; color:var(--accent); }
.step h4{ font-size:1.02rem; }
.step p{ margin-top:0.4rem; color:var(--ink-soft); font-size:0.94rem; }

.about-grid{ max-width:42rem; }
.quote{ border-left:2px solid var(--gold); padding-left:1.25rem; margin-block:1.75rem;
  font-family:"Iowan Old Style","Palatino Linotype",Georgia,serif; font-size:1.2rem; font-style:italic; }
.about-list{ display:flex; flex-direction:column; gap:0.8rem; margin-top:1.5rem; }
.about-list li{ display:flex; gap:0.75rem; font-size:0.97rem; color:var(--ink-soft); }
.about-list li::before{ content:"—"; color:var(--gold); flex:none; }

.video-card{ position:relative; border-radius:var(--radius); overflow:hidden; border:1px solid var(--line);
  box-shadow:0 30px 60px -30px rgba(20,15,5,0.35); cursor:pointer; }
.video-card img{ width:100%; aspect-ratio:16/9; object-fit:cover; filter:saturate(0.85) brightness(0.72); transition:transform .5s ease, filter .5s ease; }
.video-card:hover img{ transform:scale(1.04); filter:saturate(1) brightness(0.6); }
.play-btn{ position:absolute; right:1.5rem; bottom:1.25rem; display:grid; place-items:center; }
.play-btn span{ width:4.5rem; height:4.5rem; border-radius:50%; background:var(--accent-on); display:grid; place-items:center;
  box-shadow:0 10px 30px rgba(0,0,0,0.35); transition:transform .25s ease; }
.video-card:hover .play-btn span{ transform:scale(1.08); }
.play-btn svg{ width:1.4rem; height:1.4rem; color:var(--accent); margin-left:3px; }
.video-caption{ position:absolute; left:1.5rem; bottom:1.25rem; color:#f6f4ea; }
.video-caption strong{ display:block; font-size:1.1rem; }
.video-caption span{ font-size:0.82rem; opacity:0.85; }

.testi-block{ margin-top:clamp(3rem,7vw,4.5rem); padding-top:clamp(2.25rem,6vw,3.25rem); border-top:1px solid var(--line); }
.testi-head{ max-width:36rem; margin-bottom:1.6rem; }
.testi-head h3{ font-size:clamp(1.3rem,1.15rem + 0.6vw,1.6rem); }
.art-grid{ display:grid; gap:1.1rem; grid-template-columns:1fr; }
@media (min-width:640px){ .art-grid{ grid-template-columns:repeat(3,1fr); } }
.art-card{ border:1px dashed var(--line-strong); border-radius:var(--radius); padding:2.1rem 1.6rem; text-align:center;
  display:flex; flex-direction:column; align-items:center; gap:0.85rem; color:var(--ink-soft); }
.art-card svg{ width:1.9rem; height:1.9rem; color:var(--gold); opacity:0.85; }
.art-card h3{ font-size:1rem; color:var(--ink); font-weight:600; }
.art-soon{ font-size:0.66rem; color:var(--gold); }
.testi-scroller{ display:flex; gap:1.1rem; overflow-x:auto; padding-block:0.25rem 0.75rem; scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch; margin-inline:-1.25rem; padding-inline:1.25rem; }
.testi-scroller::-webkit-scrollbar{ height:6px; }
.testi-scroller::-webkit-scrollbar-thumb{ background:var(--line-strong); border-radius:4px; }
.testi-card{ flex:0 0 85%; scroll-snap-align:start; border:1px solid var(--line); border-radius:var(--radius);
  background:var(--paper-raised); padding:1.85rem 1.6rem; display:flex; flex-direction:column;
  transition:transform .25s ease, box-shadow .25s ease; }
section.raised .testi-card{ background:var(--paper); }
.testi-card:hover{ transform:translateY(-4px); box-shadow:0 20px 40px -24px rgba(20,15,5,0.28); }
.testi-card p.quote-text{ font-family:"Iowan Old Style","Palatino Linotype",Georgia,serif; font-style:italic; font-size:1.03rem; flex:1; }
.lang-tag{ margin-top:0.75rem; font-size:0.64rem; color:var(--ink-soft); opacity:0.8; }
.testi-who{ margin-top:1.25rem; padding-top:1rem; border-top:1px solid var(--line); display:flex; align-items:center; gap:0.85rem; }
.testi-who img{ width:2.75rem; height:2.75rem; border-radius:50%; object-fit:cover; flex:none; }
.testi-who strong{ display:block; font-size:0.95rem; }
.testi-who span{ display:block; font-size:0.8rem; color:var(--ink-soft); margin-top:0.1rem; }

.faq{ max-width:44rem; }
.faq details{ border-bottom:1px solid var(--line); padding-block:1.1rem; }
.faq summary{ cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center;
  gap:1rem; font-size:1.02rem; font-weight:600; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; font-size:1.3rem; color:var(--gold); flex:none; transition:transform .2s ease; }
.faq details[open] summary::after{ transform:rotate(45deg); }
.faq .a{ margin-top:0.85rem; color:var(--ink-soft); font-size:0.96rem; max-width:38rem; }

.contact-grid{ display:grid; gap:2rem; }
.contact-list{ display:flex; flex-direction:column; gap:1.5rem; }
.contact-item a, .contact-item p{ font-size:1.02rem; }
.contact-item a{ text-decoration:none; border-bottom:1px solid var(--line-strong); transition:color .15s ease, border-color .15s ease; }
.contact-item .link-btn{ background:none; border:none; padding:0; margin:0; font:inherit; color:inherit; cursor:pointer;
  text-decoration:none; border-bottom:1px solid var(--line-strong); transition:color .15s ease, border-color .15s ease; }
.contact-item .link-btn:hover{ border-color:var(--accent); color:var(--accent); }
.contact-item a:hover{ border-color:var(--accent); color:var(--accent); }
.contact-note{ position:relative; overflow:hidden; border-radius:var(--radius); border:1px solid var(--line);
  padding:2.1rem; min-height:19.5rem; display:flex; flex-direction:column; gap:0.6rem; justify-content:flex-end; }
.contact-note::before{ content:""; position:absolute; inset:0; z-index:0;
  background-image:url("../img/contact-bg.jpg"); background-size:cover; background-position:center;
  filter:blur(2.5px); transform:scale(1.12); }
.contact-note::after{ content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(18,14,9,0.3), rgba(14,11,7,0.78)); }
.contact-note > *{ position:relative; z-index:2; }
.contact-note svg{ width:1.8rem; height:1.8rem; color:#f6f4ea; }
.contact-note strong{ font-size:1.2rem; color:#f6f4ea; }
.contact-note span{ font-size:0.94rem; color:rgba(246,244,234,0.82); }

footer.site{ border-top:1px solid var(--line); padding-block:2rem; text-align:center; }
.footer-row{ display:flex; flex-direction:column; align-items:center; }
.footer-line1{ display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:0.9rem 1.1rem; margin-top:1.6rem; }
.footer-line1 .wordmark-text strong{ font-size:0.85rem; }
.footer-line1 .wordmark-text{ text-align:center; }
.footer-line2 .cta{ padding:1rem 2.5rem; font-size:1.05rem; }
.social{ display:flex; gap:0.75rem; }
.social a{ width:2.1rem; height:2.1rem; border-radius:50%; border:1px solid var(--line-strong); color:var(--ink-soft);
  display:grid; place-items:center; transition:color .15s ease, border-color .15s ease; }
.social a:hover{ color:var(--accent); border-color:var(--accent); }
.social svg{ width:1.05rem; height:1.05rem; }

/* Mobile tab bar */
.tabbar{ position:fixed; left:0; right:0; bottom:0; z-index:45; display:flex; align-items:stretch; justify-content:space-around;
  background:color-mix(in srgb, var(--paper-raised) 94%, transparent); backdrop-filter:saturate(140%) blur(10px);
  border-top:1px solid var(--line); padding-bottom:env(safe-area-inset-bottom); }
.tabbar a, .tabbar .tab-btn, .tabbar .tab-cta{ background:none; border:none; display:flex; flex-direction:column; align-items:center; gap:0.25rem;
  color:var(--ink-soft); font-size:0.64rem; padding:0.55rem 0.3rem 0.6rem; flex:1; text-decoration:none; cursor:pointer; transition:color .15s ease; font:inherit; }
.tabbar svg{ width:1.3rem; height:1.3rem; }
.tabbar a.active{ color:var(--accent); }
.tabbar .tab-cta{ position:relative; }
.tabbar .cta-bubble{ width:2.9rem; height:2.9rem; border-radius:50%; background:var(--accent); color:var(--accent-on);
  display:grid; place-items:center; margin-top:-1.35rem; box-shadow:0 10px 24px -8px rgba(20,15,5,0.45);
  border:3px solid var(--paper); transition:transform .2s ease; }
.tabbar .tab-cta:active .cta-bubble{ transform:scale(0.94); }
@media (max-width:859.98px){
  body{ padding-bottom:calc(6rem + env(safe-area-inset-bottom)); }
  footer.site{ display:none; }
  .view.active{ padding-bottom:1.5rem; }
}
@media (min-width:860px){ .tabbar{ display:none; } }

@media (min-width:640px){
  .services-grid{ grid-template-columns:repeat(3,1fr); }
  .contact-grid{ grid-template-columns:1fr 1fr; }
  .stats-row{ grid-template-columns:repeat(3,1fr); }
  .process{ grid-template-columns:repeat(3,1fr); }
}
@media (min-width:860px){
  nav.primary{ display:block; }
  .hero-grid{ grid-template-columns:1.1fr 0.9fr; }
  .testi-scroller{ overflow:visible; margin-inline:0; padding-inline:0; }
  .testi-card{ flex:1 1 0; }
}

/* Triage modal */
.triage-overlay{ position:fixed; inset:0; z-index:80; display:flex; align-items:center; justify-content:center;
  padding:1.25rem; background:rgba(20,16,10,0.55); backdrop-filter:blur(3px); }
.triage-overlay[hidden]{ display:none; }
.triage-modal{ background:var(--paper-raised); border:1px solid var(--line); border-radius:var(--radius);
  width:100%; max-width:26rem; max-height:85vh; overflow-y:auto; box-shadow:0 40px 80px -30px rgba(0,0,0,0.5);
  animation:triageIn .25s ease both; }
@keyframes triageIn{ from{ opacity:0; transform:translateY(12px) scale(0.98); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce){ .triage-modal{ animation:none; } }
.triage-head{ display:flex; align-items:center; gap:0.75rem; padding:1.25rem 1.25rem 0.5rem; position:sticky; top:0;
  background:var(--paper-raised); }
.triage-head h2{ flex:1; font-size:1.1rem; }
.triage-back, .triage-close{ background:none; border:1px solid var(--line-strong); border-radius:50%; width:2.1rem; height:2.1rem;
  display:grid; place-items:center; color:var(--ink-soft); cursor:pointer; flex:none; transition:color .15s ease, border-color .15s ease; }
.triage-back:hover, .triage-close:hover{ color:var(--accent); border-color:var(--accent); }
.triage-back svg, .triage-close svg{ width:1rem; height:1rem; }
.triage-back[hidden]{ display:none; }
.triage-body{ padding:0.75rem 1.25rem 1.5rem; display:flex; flex-direction:column; gap:0.6rem; }
.triage-option{ display:flex; align-items:center; justify-content:space-between; gap:0.75rem; width:100%; text-align:left;
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-sm); padding:0.85rem 1rem;
  font-size:0.95rem; font-weight:600; color:var(--ink); cursor:pointer; transition:border-color .15s ease, background .15s ease; }
.triage-option:hover{ border-color:var(--accent); background:var(--paper); }
.triage-option svg{ width:1rem; height:1rem; color:var(--ink-soft); flex:none; }
.triage-option.disabled{ opacity:0.55; }
.triage-option.disabled:hover{ border-color:var(--line); }
.triage-note{ font-size:0.9rem; color:var(--ink-soft); background:var(--paper); border:1px dashed var(--line-strong);
  border-radius:var(--radius-sm); padding:1rem; line-height:1.55; }

/* Booking flow (reuses the triage modal shell) */
.booking-retry{ align-self:flex-start; }
.booking-horarios-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(5rem, 1fr)); gap:0.6rem; }
.booking-hora{ justify-content:center; }
.booking-summary{ font-size:0.9rem; font-weight:600; color:var(--accent); margin:0 0 0.25rem; }
.booking-form{ display:flex; flex-direction:column; gap:0.9rem; }
.booking-field{ display:flex; flex-direction:column; gap:0.35rem; font-size:0.85rem; font-weight:600; color:var(--ink-soft); }
.booking-field input{ font:inherit; font-weight:400; color:var(--ink); background:var(--paper);
  border:1px solid var(--line-strong); border-radius:var(--radius-sm); padding:0.65rem 0.8rem; }
.booking-field input:focus-visible{ outline:2px solid var(--accent); outline-offset:1px; }
.booking-hold-info{ font-size:0.8rem; color:var(--ink-soft); margin:0; }
.booking-submit{ width:100%; justify-content:center; border:none; }
.booking-submit:disabled{ opacity:0.6; cursor:default; }

/* Confirmation view (Mercado Pago redirect target) */
.confirmacion-card{ max-width:32rem; margin:0 auto; text-align:center; display:flex; flex-direction:column;
  align-items:center; gap:0.85rem; padding:2.5rem 1.5rem; }
.confirmacion-card p{ color:var(--ink-soft); line-height:1.6; }
.confirmacion-actions{ display:flex; flex-wrap:wrap; justify-content:center; gap:0.75rem; }
