/* DOKO medical presence. Content/section order lives in sitio.html.
   Identity tokens come from _design.html; never blend or filter --main. */
:root {
  --ink:#132033; --muted:#536174; --line:#DFE4EA; --paper:#F7F8FA;
  --card:#FFFFFF; --radius:20px; --photo-radius:24px; --photo-ratio:4/4.6;
  --shadow:0 12px 40px -24px rgb(19 32 51 / 22%);
  --section-space:clamp(56px,6vw,92px);
  --header-height:96px;
}
* { box-sizing:border-box; }
html { scroll-padding-top:var(--header-height); }
body.presencia-medica { margin:0; background:#fff; color:var(--ink); font-family:Inter,Arial,sans-serif; -webkit-font-smoothing:antialiased; }
.presencia-medica a { color:inherit; text-underline-offset:4px; }
.presencia-medica button,.presencia-medica a { -webkit-tap-highlight-color:transparent; }
.presencia-medica :is(h1,h2,h3,p,strong,span,a) { overflow-wrap:anywhere; }
.presencia-medica :is(h1,h2,h3) { font-family:'DM Sans',Arial,sans-serif; font-weight:600; }
.presencia-medica h1 { margin:0; font-size:clamp(2.5rem,4.8vw,4.75rem); line-height:1.075; letter-spacing:-.055em; text-wrap:balance; }
.presencia-medica h1 span { display:block; font:500 clamp(1.1rem,1.6vw,1.3rem)/1.5 Inter,Arial,sans-serif; color:var(--muted); margin-top:22px; letter-spacing:0; }
.presencia-medica .wrap { width:min(1200px,calc(100% - 64px)); margin-inline:auto; }
.presencia-medica section { padding:var(--section-space) 0; scroll-margin-top:var(--header-height); position:relative; }
.presencia-medica .section-title { font-size:clamp(1.9rem,3vw,3rem); line-height:1.15; letter-spacing:-.04em; margin:0; max-width:820px; text-wrap:balance; }
.presencia-medica .eyebrow { color:var(--ink); font-size:.73rem; font-weight:600; line-height:1.6; letter-spacing:.13em; text-transform:uppercase; margin:0 0 18px; }
.presencia-medica .eyebrow::before { content:''; display:inline-block; width:24px; height:3px; background:var(--main); margin:0 10px 3px 0; }
.presencia-medica .section-intro { color:var(--muted); font-size:1rem; line-height:1.8; max-width:68ch; white-space:pre-line; margin:18px 0 36px; }
.presencia-medica .top { background:rgb(255 255 255 / 96%); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); position:sticky; top:0; z-index:20; border-bottom:1px solid var(--line); }
.presencia-medica .top-inner { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:82px; }
.presencia-medica .brand { display:flex; align-items:center; gap:12px; flex:0 1 260px; min-width:0; text-decoration:none; }
.presencia-medica :is(.brand-image,.brand-mark) { width:48px; height:48px; border-radius:12px; flex-shrink:0; }
.presencia-medica .brand-image { object-fit:contain; background:#fff; padding:4px; border:1px solid var(--line); }
.presencia-medica .brand-mark { display:grid; place-items:center; background:var(--main); color:var(--on-main); font-size:1.3rem; font-weight:600; }
.presencia-medica .brand strong { display:block; font-family:'DM Sans',Arial,sans-serif; font-size:.98rem; line-height:1.3; }
.presencia-medica .brand span span { display:block; color:var(--muted); font-size:.74rem; margin-top:4px; }
.presencia-medica .section-nav { display:flex; align-items:center; gap:4px; min-width:0; overflow-x:auto; scrollbar-width:thin; }
.presencia-medica .section-nav a { display:flex; align-items:center; min-height:44px; padding:10px 9px; font-size:.77rem; font-weight:500; white-space:nowrap; border-radius:6px; text-decoration:none; border-bottom:2px solid transparent; }
.presencia-medica .section-nav a:is(:hover,[aria-current="location"]) { background:var(--paper); border-bottom-color:var(--main); }
.presencia-medica .top-actions { display:flex; align-items:center; gap:16px; flex:0 0 auto; }
.presencia-medica .text-link { display:inline-flex; align-items:center; min-height:44px; font-size:.8rem; font-weight:600; }
.presencia-medica .button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:13px 22px; border:1px solid transparent; border-radius:10px; font-size:.92rem; font-weight:600; line-height:1.45; text-decoration:none; text-align:center; white-space:normal; cursor:pointer; }
.presencia-medica .button-primary { background:var(--main); color:var(--on-main); box-shadow:0 4px 8px rgb(19 32 51 / 8%); }
.presencia-medica .button-secondary { background:#fff; border-color:var(--line); color:var(--ink); }
.presencia-medica .button-ghost { background:var(--paper); color:var(--ink); border-color:var(--line); }
.presencia-medica :is(a,button,summary):focus-visible { outline:3px solid var(--ink); outline-offset:4px; }
.presencia-medica .hero { padding:clamp(52px,7vw,100px) 0; isolation:isolate; border-bottom:1px solid var(--line); background:#fff; }
.presencia-medica .hero-grid { display:grid; align-items:center; grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr); gap:clamp(32px,5vw,80px); position:relative; z-index:1; }
.presencia-medica :is(.hero-grid,.about-grid,.map-preview,.contact-grid) > * { min-width:0; }
.presencia-medica .hero-grid > div:first-child { max-width:660px; }
.presencia-medica .hero-copy { color:var(--muted); font-size:1.04rem; line-height:1.8; margin:24px 0 28px; max-width:58ch; white-space:pre-line; }
.presencia-medica .hero-actions { display:flex; flex-wrap:wrap; gap:12px; }
.presencia-medica .hero-licenses { display:flex; flex-wrap:wrap; gap:8px 14px; margin-top:20px; }
.presencia-medica .hero-licenses span { font-size:.76rem; color:var(--muted); padding-left:10px; border-left:2px solid var(--main); line-height:1.5; }
.presencia-medica .quick-trust { display:flex; flex-wrap:wrap; gap:10px 20px; margin-top:28px; padding-top:20px; border-top:1px solid var(--line); }
.presencia-medica .quick-trust:empty { display:none; }
.presencia-medica .quick-trust span { font-size:.74rem; color:var(--muted); line-height:1.6; }
.presencia-medica .quick-trust span::before { content:''; display:inline-block; width:5px; height:5px; border-radius:50%; background:var(--main); margin:0 7px 2px 0; }
.presencia-medica .hero-visual { width:100%; max-width:430px; justify-self:center; position:relative; isolation:isolate; }
.presencia-medica .hero-visual::before { content:''; position:absolute; inset:24px -16px -16px 24px; border:1px solid var(--accent); border-radius:var(--photo-radius); z-index:-1; pointer-events:none; }
.presencia-medica .hero-photo { position:relative; width:100%; aspect-ratio:var(--photo-ratio); border-radius:var(--photo-radius); overflow:hidden; background:var(--paper); box-shadow:0 24px 64px -32px rgb(19 32 51 / 26%); }
.presencia-medica .hero-photo > img { position:absolute; inset:0; height:100%; width:100%; object-fit:cover; display:block; }
.presencia-medica .hero-visual.visual-compacto { max-width:300px; }
.presencia-medica .hero-visual.visual-grande { max-width:560px; }
.presencia-medica .hero-photo.style-foto_contain > img { object-fit:contain; padding:16px; }
.presencia-medica .hero-photo:is(.style-emblema_redondo,.style-emblema_suave) { aspect-ratio:1; border:1px solid var(--line); background:#fff; box-shadow:var(--shadow); }
.presencia-medica .hero-photo.style-emblema_redondo { border-radius:50%; }
.presencia-medica .hero-photo.style-emblema_suave { border-radius:24px; }
.presencia-medica .hero-photo.is-emblem > img { object-fit:contain; padding:clamp(24px,4vw,52px); }
.presencia-medica .hero-visual:has(.is-emblem)::before { border-radius:50%; inset:12px -12px -12px 12px; }
.presencia-medica .hero-visual:has(.style-emblema_suave)::before { border-radius:28px; }
.presencia-medica .emblem-caption { display:block; position:relative; font-size:.78rem; line-height:1.5; text-align:center; color:var(--muted); margin:28px 12px 0; }
.presencia-medica .photo-fallback { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; padding:32px; background:var(--paper); }
.presencia-medica .photo-fallback::before { content:''; width:52px; height:52px; background:var(--main); clip-path:polygon(35% 0,65% 0,65% 35%,100% 35%,100% 65%,65% 65%,65% 100%,35% 100%,35% 65%,0 65%,0 35%,35% 35%); margin-bottom:28px; }
.presencia-medica .photo-fallback strong { font:500 clamp(1.65rem,3vw,2.6rem)/1.12 'DM Sans',Arial,sans-serif; letter-spacing:-.035em; }
.presencia-medica .photo-fallback span { font-size:.9rem; color:var(--muted); margin-top:16px; line-height:1.6; }
.presencia-medica :is(.preview-admin,.office-notice) { background:#FFF7ED; color:#9A3412; border:1px solid #FED7AA; font-size:.9rem; line-height:1.6; padding:16px 20px; }
.presencia-medica .preview-admin { text-align:center; }
.presencia-medica .office-notice { width:min(1200px,calc(100% - 64px)); margin:24px auto 0; border-radius:12px; }
.presencia-medica .released-hero-slot { background:#ECFDF5; border:1px solid #A7F3D0; color:#065F46; border-radius:14px; display:grid; gap:8px; padding:18px; margin-top:20px; max-width:440px; }
.presencia-medica .released-hero-slot strong { font-size:.75rem; text-transform:uppercase; letter-spacing:.08em; }
.presencia-medica .released-hero-slot span { font-size:1.05rem; font-weight:600; }
.presencia-medica .released-hero-slot small { line-height:1.5; }
.presencia-medica .released-hero-slot .button { width:fit-content; background:#fff; }
.presencia-medica :is(.service-grid,.credential-grid,.faq-grid,.gallery,.parking-gallery) { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)); gap:24px; align-items:stretch; }
.presencia-medica :is(.service,.credential,.faq-item,.gallery-card,.contact-item,.step-card,.about-card) { min-width:0; background:var(--card); border:1px solid var(--line); border-radius:var(--radius); }
.presencia-medica .services { background:var(--paper); }
.presencia-medica .service { padding:30px; box-shadow:var(--shadow); border-top:3px solid var(--main); }
.presencia-medica .service h3 { font-size:1.15rem; line-height:1.4; letter-spacing:-.02em; margin:0; }
.presencia-medica .price { display:block; font-size:.94rem; line-height:1.5; font-weight:600; color:var(--ink); margin:16px 0 12px; }
.presencia-medica .service p { color:var(--muted); font-size:.96rem; line-height:1.75; margin:0; }
.presencia-medica .journey { background:#fff; border-bottom:1px solid var(--line); }
.presencia-medica .steps-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.presencia-medica .step-card { border:0; border-radius:0; border-top:1px solid var(--line); padding:24px 0 0; }
.presencia-medica .step-number { display:grid; place-items:center; height:40px; width:40px; border:1px solid var(--main); border-radius:50%; font-size:.92rem; margin-bottom:20px; }
.presencia-medica .step-card strong { display:block; font-size:1rem; line-height:1.5; margin-bottom:10px; }
.presencia-medica .step-card p { margin:0; color:var(--muted); font-size:.92rem; line-height:1.75; }
.presencia-medica .journey-note { margin:30px 0 0; border-left:2px solid var(--accent); padding:4px 16px; color:var(--muted); font-size:.82rem; line-height:1.7; }
.presencia-medica .about-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); gap:64px; align-items:start; }
.presencia-medica .about-card { padding:32px; background:var(--soft); border:0; border-left:4px solid var(--main); border-radius:0 16px 16px 0; }
.presencia-medica .about-card strong { display:block; margin-bottom:16px; font-size:1.05rem; }
.presencia-medica .about-card p { margin:0; color:var(--ink); line-height:1.75; font-size:.96rem; }
.presencia-medica .about-card p + p { margin-top:12px; }
.presencia-medica .credentials { background:var(--paper); border-block:1px solid var(--line); }
.presencia-medica .credential { overflow:hidden; box-shadow:var(--shadow); }
.presencia-medica .credential img { display:block; height:280px; width:100%; object-fit:contain; background:#fff; padding:24px; border-bottom:1px solid var(--line); }
.presencia-medica .credential-body { padding:26px; }
.presencia-medica :is(.credential small,.faq-category) { font-size:.7rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.presencia-medica :is(.credential h3,.faq-item h3) { margin:12px 0; font-size:1.15rem; line-height:1.4; letter-spacing:-.02em; }
.presencia-medica :is(.credential p,.faq-item p) { color:var(--muted); font-size:.96rem; line-height:1.75; margin:0; }
.presencia-medica .faq-item { padding:28px; background:var(--paper); border:0; }
.presencia-medica .gallery-card { margin:0; overflow:hidden; }
.presencia-medica .gallery-card .image-frame { height:280px; background:var(--paper); overflow:hidden; }
.presencia-medica .gallery-card img { width:100%; height:100%; object-fit:contain; display:block; }
.presencia-medica .gallery-card figcaption { padding:22px; color:var(--muted); font-size:.92rem; line-height:1.65; }
.presencia-medica .gallery-card figcaption strong { display:block; color:var(--ink); margin-bottom:5px; }
.presencia-medica .contact { background:var(--paper); }
.presencia-medica .map-preview { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.8fr); gap:40px; padding:32px; margin-top:32px; background:#fff; border:1px solid var(--line); border-radius:var(--radius); }
.presencia-medica .map-copy { display:grid; align-content:center; gap:16px; }
.presencia-medica :is(.map-copy strong,.contact-item > strong) { display:block; font-size:.73rem; letter-spacing:.1em; text-transform:uppercase; }
.presencia-medica .map-copy p { color:var(--muted); line-height:1.8; margin:0; }
.presencia-medica .map-actions { display:flex; flex-wrap:wrap; gap:10px; }
.presencia-medica .map-frame { min-height:250px; position:relative; border:1px solid var(--line); border-radius:12px; overflow:hidden; background:var(--paper); }
.presencia-medica .map-static { display:grid; gap:14px; align-content:center; justify-items:center; text-align:center; padding:28px; }
.presencia-medica .map-static::before { content:''; position:absolute; inset:0; background-image:linear-gradient(#DFE4EA 1px,transparent 1px),linear-gradient(90deg,#DFE4EA 1px,transparent 1px); background-size:44px 44px; opacity:.6; }
.presencia-medica .map-static :is(strong,small) { position:relative; background:var(--paper); padding:4px 8px; line-height:1.6; }
.presencia-medica .map-pin { position:relative; display:grid; place-items:center; width:48px; height:48px; background:var(--main); color:var(--on-main); border-radius:50% 50% 50% 4px; transform:rotate(-45deg); box-shadow:0 5px 10px rgb(19 32 51 / 12%); }
.presencia-medica .map-pin span { transform:rotate(45deg); }
.presencia-medica .contact-grid { display:grid; gap:24px; grid-template-columns:repeat(3,minmax(0,1fr)); }
.presencia-medica .contact-item { padding:26px; }
.presencia-medica .contact-item p,.presencia-medica .contact-item a { color:var(--muted); font-size:.94rem; line-height:1.75; margin:12px 0 0; }
.presencia-medica .contact-item a { display:inline-flex; align-items:center; min-height:44px; color:var(--ink); }
.presencia-medica .parking-gallery { margin-top:24px; }
.presencia-medica .socials { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.presencia-medica .socials a { display:inline-flex; align-items:center; min-height:44px; padding:10px 18px; border:1px solid var(--line); background:#fff; border-radius:8px; font-size:.85rem; text-decoration:none; }
.presencia-medica .cta { background:var(--main); color:var(--on-main); text-align:center; }
.presencia-medica .cta h2 { font-size:clamp(2.2rem,4vw,3.75rem); line-height:1.12; letter-spacing:-.045em; margin:0; }
.presencia-medica .cta p { line-height:1.75; max-width:620px; margin:20px auto 28px; }
.presencia-medica .cta .button { background:#fff; color:var(--ink); }
.presencia-medica footer { padding:36px 0; background:#fff; color:var(--muted); font-size:.8rem; line-height:1.7; }
.presencia-medica .legal-medical { padding-bottom:26px; border-bottom:1px solid var(--line); display:grid; gap:8px; }
.presencia-medica .legal-medical p { margin:0; }
.presencia-medica .legal-medical strong { color:var(--ink); }
.presencia-medica .footer-bottom { display:flex; flex-wrap:wrap; justify-content:space-between; gap:16px; padding-top:24px; }
.presencia-medica .mobile-cta { display:none; }

/* 01 / Clara: daylight, a quiet frame and the original clinical composition. */
.template-clinica_clara .hero::before { content:''; position:absolute; inset:0 0 0 67%; background:var(--soft); z-index:-1; }
.template-clinica_clara .hero-photo { border:8px solid #fff; }
.template-clinica_clara .hero-visual::before { border:0; background:var(--accent); inset:32px -10px -10px 32px; border-radius:28px; }
.template-clinica_clara .hero-visual:has(.is-emblem)::before { background:none; border:1px solid var(--accent); }
.template-clinica_clara .credential { border-radius:12px; }
.template-clinica_clara .gallery-card { border:0; background:var(--paper); }

/* 02 / Editorial: a professional journal, portrait and archival credentials. */
.template-especialista_editorial { --radius:2px; --photo-radius:2px; --photo-ratio:4/5; }
.template-especialista_editorial :is(h1,.section-title,.cta h2) { font-family:Georgia,'Times New Roman',serif; font-weight:400; letter-spacing:-.035em; }
.template-especialista_editorial h1 { font-size:clamp(2.75rem,5.3vw,5.4rem); }
.template-especialista_editorial .hero { border-top:5px solid var(--main); background:#fff; }
.template-especialista_editorial .hero-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(40px,6vw,88px); }
.template-especialista_editorial .hero-grid > div:first-child { padding-top:24px; border-top:1px solid var(--main); }
.template-especialista_editorial .hero-visual::before { inset:16px -16px -16px 16px; border:1px solid var(--line); }
.template-especialista_editorial .hero-photo:not(.is-emblem) { padding:12px; border:1px solid var(--line); background:#fff; box-shadow:none; }
.template-especialista_editorial .hero-photo:not(.is-emblem) > img { inset:12px; width:calc(100% - 24px); height:calc(100% - 24px); }
.template-especialista_editorial .eyebrow::before { height:1px; width:36px; }
.template-especialista_editorial .button { border-radius:2px; }
.template-especialista_editorial :is(.services,.credentials,#educacion) > .wrap { display:grid; grid-template-columns:minmax(0,.6fr) minmax(0,1.4fr); gap:0 64px; align-items:start; }
.template-especialista_editorial :is(.services,.credentials,#educacion) .eyebrow { grid-column:1; }
.template-especialista_editorial :is(.services,.credentials,#educacion) .section-title { grid-column:1; font-size:clamp(1.8rem,2.6vw,2.6rem); }
.template-especialista_editorial :is(.services,.credentials,#educacion) .section-intro { grid-column:1; }
.template-especialista_editorial :is(.service-grid,.credential-grid,.faq-grid) { grid-column:2; grid-row:1 / span 4; margin-top:0 !important; grid-template-columns:minmax(0,1fr); gap:0; border-top:1px solid var(--main); }
.template-especialista_editorial .service { padding:26px 0; border:0; border-bottom:1px solid var(--line); box-shadow:none; background:transparent; }
.template-especialista_editorial .service h3 { font-family:Georgia,serif; font-weight:400; font-size:1.45rem; }
.template-especialista_editorial .about-card { background:#fff; border:1px solid var(--main); outline:1px solid var(--line); outline-offset:-8px; border-radius:0; padding:36px; }
.template-especialista_editorial .credential { display:grid; grid-template-columns:minmax(0,.42fr) minmax(0,.58fr); border:0; border-bottom:1px solid var(--line); box-shadow:none; background:transparent; padding:26px 0; align-items:center; }
.template-especialista_editorial .credential img { height:200px; border:1px solid var(--line); padding:12px; }
.template-especialista_editorial .credential-body { padding:8px 0 8px 24px; }
.template-especialista_editorial .credential:not(:has(img)) { grid-template-columns:1fr; }
.template-especialista_editorial .credential:not(:has(img)) .credential-body { padding-left:0; }
.template-especialista_editorial .credential h3 { font-family:Georgia,serif; font-weight:400; font-size:1.4rem; }
.template-especialista_editorial .faq-item { padding:24px 0; background:#fff; border-bottom:1px solid var(--line); }
.template-especialista_editorial .step-number { border:0; width:auto; height:auto; display:block; font:2.8rem Georgia,serif; color:var(--ink); }
.template-especialista_editorial .gallery-card { border:0; border-bottom:1px solid var(--main); }
.template-especialista_editorial .gallery-card figcaption { padding-inline:0; }
.template-especialista_editorial .cta { background:var(--paper); color:var(--ink); border-top:1px solid var(--main); }
.template-especialista_editorial .cta .button { background:var(--main); color:var(--on-main); }

/* 03 / Moderna: architectural planes, precise rules, generous typography. */
.template-consulta_moderna { --radius:4px; --photo-radius:4px; --photo-ratio:1/1; }
.template-consulta_moderna .hero { padding-top:44px; background:var(--paper); }
.template-consulta_moderna .hero-grid { border-block:1px solid var(--line); padding-block:40px; }
.template-consulta_moderna .hero-grid > div:first-child { padding-left:28px; border-left:7px solid var(--main); }
.template-consulta_moderna h1 { font-size:clamp(2.5rem,5vw,4.9rem); letter-spacing:-.065em; }
.template-consulta_moderna .hero-visual::before { border:0; background:var(--accent); inset:auto -12px -12px 35%; height:38%; border-radius:0; }
.template-consulta_moderna .hero-visual:has(.is-emblem)::before { background:none; border:1px solid var(--accent); inset:12px -12px -12px 12px; height:auto; }
.template-consulta_moderna .hero-photo { box-shadow:none; }
.template-consulta_moderna .button { border-radius:4px; }
.template-consulta_moderna .services { background:#fff; }
.template-consulta_moderna .service-grid { counter-reset:medical-service; gap:1px; background:var(--line); border:1px solid var(--line); }
.template-consulta_moderna .service { counter-increment:medical-service; border:0; box-shadow:none; padding:32px; }
.template-consulta_moderna .service::before { content:counter(medical-service,decimal-leading-zero); display:block; font:500 .8rem/1.5 Inter,sans-serif; border-bottom:3px solid var(--main); width:32px; padding-bottom:10px; margin-bottom:32px; }
.template-consulta_moderna .price { font-size:1rem; }
.template-consulta_moderna .journey { background:var(--paper); }
.template-consulta_moderna .step-card { background:transparent; }
.template-consulta_moderna .step-number { border-radius:0; background:var(--main); color:var(--on-main); border:0; }
.template-consulta_moderna .about-card { background:#fff; border-radius:0; border:0; border-top:5px solid var(--main); padding:24px 0; }
.template-consulta_moderna .credentials { background:#fff; }
.template-consulta_moderna .credential { border-radius:0; box-shadow:none; }
.template-consulta_moderna .credential img { background:var(--paper); }
.template-consulta_moderna .faq-item { background:transparent; border-top:1px solid var(--main); border-radius:0; padding:24px 0; }
.template-consulta_moderna .gallery-card { border-radius:0; }
.template-consulta_moderna .contact-item { border:0; border-left:1px solid var(--line); background:transparent; border-radius:0; }
.template-consulta_moderna .cta { text-align:left; }
.template-consulta_moderna .cta .wrap { display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:48px; align-items:center; }
.template-consulta_moderna .cta h2 { grid-column:1; }
.template-consulta_moderna .cta p { grid-column:1; margin-left:0; }
.template-consulta_moderna .cta .button { grid-column:2; grid-row:1 / span 2; }

/* 04 / Cristal: neutral glass, sculptural frames, unmistakable DOKO accents.
   No hue shifts, filtered photos, luminous orbs or moving text. */
.template-profesional_cristal { --radius:24px; --photo-radius:22px; --photo-ratio:4/5; }
.template-profesional_cristal .hero { background:var(--paper); padding-block:64px 88px; }
.template-profesional_cristal .hero::before { content:''; position:absolute; inset:30px 3% 30px 52%; border:1px solid #D9DFE5; border-radius:44px; background:linear-gradient(140deg,#fff,#EDF0F4); z-index:-1; transform:rotate(3deg); }
.template-profesional_cristal .hero-grid { gap:72px; }
.template-profesional_cristal .hero-grid > div:first-child { padding:clamp(24px,3vw,40px); border:1px solid #fff; border-radius:28px; background:rgb(255 255 255 / 84%); box-shadow:0 18px 64px -40px rgb(19 32 51 / 30%); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); }
.template-profesional_cristal h1 { font-size:clamp(2.45rem,4.2vw,4.1rem); }
.template-profesional_cristal .hero-visual::before { content:none; }
.template-profesional_cristal .hero-photo { border:0; box-shadow:0 22px 50px -30px rgb(19 32 51 / 30%); }
.presencia-medica .hero-photo.style-foto_contain { aspect-ratio:auto; background:transparent; }
.presencia-medica .hero-visual .hero-photo.style-foto_contain > img { position:relative; inset:auto; width:100%; height:auto; object-fit:contain; padding:0; }
.presencia-medica .hero-photo.style-foto_contain:has(.photo-fallback) { aspect-ratio:var(--photo-ratio); }
.presencia-medica .hero-photo.style-foto_completa > img { object-position:center 30%; }
.template-profesional_cristal .hero-visual:has(.is-emblem)::before { border-right:5px solid var(--main); }
.template-profesional_cristal .hero-licenses span { background:#fff; border:1px solid var(--line); border-radius:6px; padding:6px 9px; }
.template-profesional_cristal .button { border-radius:12px; }
.template-profesional_cristal .services { background:var(--paper); }
.template-profesional_cristal .service { border:1px solid #fff; background:rgb(255 255 255 / 90%); box-shadow:0 16px 32px -24px rgb(19 32 51 / 26%); }
.template-profesional_cristal .service h3 { border-left:3px solid var(--main); padding-left:14px; }
.template-profesional_cristal .journey { border:0; }
.template-profesional_cristal .step-card { border:1px solid var(--line); border-radius:20px; padding:28px; box-shadow:var(--shadow); }
.template-profesional_cristal .step-number { background:var(--main); color:var(--on-main); border:0; border-radius:12px; }
.template-profesional_cristal #confianza { background:var(--paper); }
.template-profesional_cristal .about-card { background:rgb(255 255 255 / 90%); border:1px solid #fff; border-top:4px solid var(--main); border-radius:24px; box-shadow:var(--shadow); }
.template-profesional_cristal .credentials { border:0; background:var(--paper); }
.template-profesional_cristal .credential { border:1px solid #fff; box-shadow:0 20px 45px -30px rgb(19 32 51 / 25%); }
.template-profesional_cristal .credential img { border:10px solid #fff; border-radius:24px 24px 0 0; background:var(--paper); }
.template-profesional_cristal .map-preview { border:1px solid #fff; box-shadow:0 20px 44px -30px rgb(19 32 51 / 25%); }
.template-profesional_cristal .cta { margin:32px auto; width:min(1200px,calc(100% - 64px)); border-radius:28px; box-shadow:0 20px 40px -28px rgb(19 32 51 / 35%); }
.template-profesional_cristal .cta .wrap { width:calc(100% - 64px); }

/* Botanical choices live outside content and images in reserved page space. */
.decoration-lavanda { --botanical:url('../img/presencia/lavanda.svg'); }
.decoration-cerezos,.decoration-sakura { --botanical:url('../img/presencia/cerezos.svg'); }
.decoration-rosas { --botanical:url('../img/presencia/rosas.svg'); }
.decoration-flores { --botanical:url('../img/presencia/flores.svg'); }
.presencia-medica .hero-botanical { position:relative; height:190px; width:min(1200px,calc(100% - 64px)); margin:36px auto 0; pointer-events:none; }
.presencia-medica .hero-botanical::before,.presencia-medica .hero-botanical::after { content:''; position:absolute; bottom:0; width:240px; max-width:44%; height:190px; background:var(--botanical) center / contain no-repeat; }
.presencia-medica .hero-botanical::before { left:0; }
.presencia-medica .hero-botanical::after { right:0; height:150px; transform:scaleX(-1); }
.presencia-medica.decoration-flores .hero-botanical::before,.presencia-medica.decoration-flores .hero-botanical::after { background:var(--main); mask:var(--botanical) center / contain no-repeat; }
.presencia-medica:not(.decoration-ninguna) .credentials { padding-bottom:calc(var(--section-space) + 120px); }
.presencia-medica:not(.decoration-ninguna) .credentials::after { content:''; position:absolute; bottom:16px; right:max(24px,calc((100% - 1200px)/2)); width:190px; height:120px; background:var(--botanical) center / contain no-repeat; pointer-events:none; }
.presencia-medica.decoration-flores .credentials::after { background:var(--main); mask:var(--botanical) center / contain no-repeat; }
.presencia-medica.decoration-ninguna .hero-botanical { display:none; }

@media (hover:hover) and (pointer:fine) {
  .presencia-medica .button-primary:hover { background:var(--main-hover); color:#fff; }
  .presencia-medica .button-secondary:hover,.presencia-medica .button-ghost:hover,.presencia-medica .socials a:hover { border-color:var(--main); background:var(--paper); }
  .presencia-medica .service:hover,.presencia-medica .credential:hover { border-color:var(--main); }
}
@media (min-width:761px) and (max-width:1100px) {
  .presencia-medica .hero-grid { gap:36px; }
  .presencia-medica .hero-grid h1 { font-size:3.1rem; }
  .presencia-medica .steps-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .presencia-medica .contact-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .template-especialista_editorial :is(.services,.credentials,#educacion) > .wrap { gap:0 32px; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); }
  .template-profesional_cristal .hero-grid { gap:32px; }
  .template-profesional_cristal .hero-grid > div:first-child { padding:24px; }
}
@media (max-width:1180px) {
  .presencia-medica .top-inner { flex-wrap:wrap; padding-top:12px; gap:6px 16px; }
  .presencia-medica .brand { flex:1 1 220px; }
  .presencia-medica .section-nav { flex:0 0 100%; order:3; padding-bottom:8px; }
  :root { --header-height:136px; }
}
@media (max-width:760px) {
  :root { --section-space:52px; --photo-ratio:4/4.3; }
  .presencia-medica .wrap { width:calc(100% - 40px); }
  .presencia-medica h1 { font-size:clamp(2.3rem,8.8vw,3.6rem); letter-spacing:-.045em; }
  .presencia-medica h1 span { font-size:1.06rem; margin-top:16px; }
  .presencia-medica .top-inner { padding-top:10px; }
  .presencia-medica .brand { flex:1 1 140px; gap:10px; }
  .presencia-medica .brand strong { font-size:.84rem; }
  .presencia-medica .brand span span { display:none; }
  .presencia-medica :is(.brand-image,.brand-mark) { width:40px; height:40px; }
  .presencia-medica .top-actions { max-width:44%; }
  .presencia-medica .top-actions .text-link { display:none; }
  .presencia-medica .top-actions .button { min-height:44px; padding:10px 14px; font-size:.79rem; }
  .presencia-medica .section-nav { margin-top:8px; border-top:1px solid var(--line); padding-top:6px; gap:4px; }
  .presencia-medica .section-nav a { font-size:.76rem; }
  .presencia-medica .hero { padding-block:36px 44px; }
  .presencia-medica .hero-grid { grid-template-columns:minmax(0,1fr); gap:36px; }
  .presencia-medica .hero-copy { font-size:1rem; margin:20px 0 24px; line-height:1.75; }
  .presencia-medica .hero-actions .button { flex:1 1 145px; }
  .presencia-medica .hero-visual { max-width:330px; width:calc(100% - 16px); margin-bottom:12px; }
  .presencia-medica .hero-visual.visual-compacto { max-width:240px; }
  .presencia-medica .hero-visual.visual-grande { max-width:440px; }
  .presencia-medica .hero-visual::before { inset:16px -8px -8px 16px; }
  .presencia-medica :is(.about-grid,.map-preview) { grid-template-columns:minmax(0,1fr); gap:28px; }
  .presencia-medica .steps-grid { grid-template-columns:minmax(0,1fr); gap:20px; }
  .presencia-medica .step-card { position:relative; padding:24px 0 0 64px; min-height:94px; }
  .presencia-medica .step-number { position:absolute; top:24px; left:0; margin:0; }
  .presencia-medica :is(.service-grid,.credential-grid,.faq-grid,.contact-grid,.gallery,.parking-gallery) { grid-template-columns:minmax(0,1fr); gap:16px; }
  .presencia-medica :is(.service,.faq-item,.credential-body,.contact-item,.about-card) { padding:24px; }
  .presencia-medica .credential img { height:250px; padding:18px; }
  .presencia-medica .gallery-card .image-frame { height:250px; }
  .presencia-medica .map-preview { padding:22px; }
  .presencia-medica .map-actions .button { flex:1 1 150px; }
  .presencia-medica .office-notice { width:calc(100% - 40px); }
  .presencia-medica .mobile-cta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); position:fixed; bottom:0; left:0; right:0; z-index:30; gap:8px; padding:10px 16px calc(10px + env(safe-area-inset-bottom)); background:rgb(255 255 255 / 96%); border-top:1px solid var(--line); box-shadow:0 -6px 20px rgb(19 32 51 / 5%); backdrop-filter:blur(12px); }
  .presencia-medica .mobile-cta .button { font-size:.87rem; padding:12px; }
  .presencia-medica .mobile-cta > :only-child { grid-column:1/-1; }
  .presencia-medica .mobile-cta:not(:has(a)) { display:none; }
  .presencia-medica:has(.mobile-cta a) footer { padding-bottom:calc(104px + env(safe-area-inset-bottom)); }
  .template-clinica_clara .hero::before { inset:57% 0 0; }
  .template-especialista_editorial .hero-grid > div:first-child { padding-top:18px; }
  .template-especialista_editorial :is(.services,.credentials,#educacion) > .wrap { display:block; }
  .template-especialista_editorial :is(.service-grid,.credential-grid,.faq-grid) { margin-top:28px !important; gap:0; }
  .template-especialista_editorial .service,.template-especialista_editorial .faq-item { padding:24px 0; }
  .template-especialista_editorial .credential { grid-template-columns:1fr; padding:24px 0; }
  .template-especialista_editorial .credential img { height:240px; }
  .template-especialista_editorial .credential-body { padding:20px 0 0; }
  .template-consulta_moderna .hero-grid { padding-block:24px; }
  .template-consulta_moderna .hero-grid > div:first-child { padding-left:18px; border-left-width:5px; }
  .template-consulta_moderna .service-grid { gap:1px; }
  .template-consulta_moderna .service::before { margin-bottom:20px; }
  .template-consulta_moderna .cta .wrap { display:block; }
  .template-profesional_cristal .hero::before { inset:50% 20px 30px; transform:none; border-radius:28px; }
  .template-profesional_cristal .hero-grid { gap:32px; }
  .template-profesional_cristal .hero-grid > div:first-child { padding:24px; }
  .template-profesional_cristal h1 { font-size:clamp(2.15rem,8vw,3.3rem); }
  .template-profesional_cristal .hero-visual::before { transform:rotate(2deg); inset:10px -8px -12px 12px; backdrop-filter:none; }
  .template-profesional_cristal .step-card { padding:24px 24px 24px 80px; }
  .template-profesional_cristal .step-number { left:24px; }
  .template-profesional_cristal .cta { width:calc(100% - 32px); margin:16px auto; padding-block:44px; border-radius:20px; }
  .template-profesional_cristal .cta .wrap { width:calc(100% - 40px); }
  .presencia-medica .hero-botanical { width:calc(100% - 40px); height:140px; margin-top:28px; }
  .presencia-medica .hero-botanical::before,.presencia-medica .hero-botanical::after { height:140px; width:150px; }
  .presencia-medica .hero-botanical::after { height:110px; }
}
/* An emblem is the uploaded identity, without an offset plate underneath. */
.presencia-medica .hero-visual:has(.is-emblem)::before { content:none; display:none; }
.presencia-medica .hero-photo.is-emblem { box-shadow:none; border:0; }
@media print {
  .presencia-medica .top,.presencia-medica .mobile-cta,.hero-botanical { display:none; }
  .presencia-medica section { padding:24px 0; }
  .presencia-medica .hero-photo { box-shadow:none; }
}
