/* ========================================================================== 
   CLÍNICA SERENA — UX/UI REFRESH 2026
   Capa visual no destructiva. Se carga al final de los estilos existentes.
   No modifica contratos, formularios, datos dinámicos ni comportamiento JS.
   ========================================================================== */

:root{
  --ux-content:1380px;
  --ux-wide:1520px;
  --ux-gutter:clamp(1.25rem,4vw,4.75rem);
  --ux-section:clamp(4.5rem,7vw,7.5rem);
  --ux-ink:#2c2730;
  --ux-muted:#6f6870;
  --ux-soft:#f7f3ee;
  --ux-surface:#fffdf9;
  --ux-card:#ffffff;
  --ux-line:color-mix(in srgb,var(--primary) 16%,#ddd7d2);
  --ux-primary-soft:color-mix(in srgb,var(--primary) 8%,white);
  --ux-accent-soft:color-mix(in srgb,var(--accent) 10%,white);
  --ux-shadow:0 20px 55px rgba(46,35,45,.08);
  --ux-shadow-hover:0 28px 70px rgba(46,35,45,.13);
  --ux-radius:20px;
  --ux-radius-sm:12px;
  --ux-serif:"Iowan Old Style","Palatino Linotype","Book Antiqua",Georgia,"Times New Roman",serif;
}

html{scroll-padding-top:86px}
body{
  background:var(--ux-surface);
  color:var(--ux-ink);
  font-size:16px;
  line-height:1.68;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
main{overflow:hidden}
::selection{background:color-mix(in srgb,var(--accent) 26%,white);color:var(--ux-ink)}

.eyebrow{
  margin-bottom:.85rem;
  color:var(--accent);
  font-size:.72rem;
  font-weight:850;
  letter-spacing:.16em;
  line-height:1.35;
}

.section,
.care-method{
  width:100%;
  max-width:var(--ux-content);
  padding:var(--ux-section) var(--ux-gutter);
}

.heading{max-width:820px;margin-bottom:clamp(2.4rem,4vw,3.75rem)}
.heading h2,.profile h2,.care-method h2,.appointment h2,.contact h2,.final-cta h2{
  font-family:var(--ux-serif);
  font-weight:500;
  letter-spacing:-.045em;
}
.heading h2,.profile h2,.care-method h2{font-size:clamp(2.8rem,4.7vw,5rem);line-height:.98}
.heading p,.heading.split>p{color:var(--ux-muted);font-size:1rem;line-height:1.75}

.button{
  min-height:48px;
  padding:.82rem 1.35rem;
  border-radius:11px;
  box-shadow:none;
  font-size:.85rem;
  font-weight:800;
  letter-spacing:-.01em;
  transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease;
}
.button:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(50,37,48,.16)}
.button.accent{background:var(--accent);color:#241d22}
.text-link{
  min-height:44px;
  display:inline-flex;
  align-items:center;
  border-bottom:1px solid color-mix(in srgb,var(--primary) 55%,transparent);
  font-size:.86rem;
  transition:color .2s ease,border-color .2s ease;
}
.text-link:hover{color:var(--accent);border-color:var(--accent)}

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */
.site-header{
  height:82px;
  padding:0 var(--ux-gutter);
  background:rgba(255,253,249,.92);
  border-bottom:1px solid rgba(65,50,61,.10);
  box-shadow:0 8px 28px rgba(43,32,41,.035);
  backdrop-filter:blur(18px) saturate(140%);
}
.header-inner{width:min(var(--ux-wide),100%);gap:2rem}
.site-header .brand{gap:.82rem;min-width:0}
.site-header .brand img{max-width:190px;height:48px}
.brand-mark{
  width:38px;
  height:38px;
  flex:0 0 38px;
  border-radius:12px;
  background:var(--primary);
  font-family:var(--ux-serif);
  font-size:25px;
  box-shadow:0 8px 20px rgba(50,36,49,.14);
}
.brand-copy strong{max-width:260px;color:#2f2930;font-size:.91rem;letter-spacing:-.015em}
.brand-copy small{max-width:260px;color:#807880;font-size:.66rem}
.site-header nav{gap:clamp(1.25rem,2.1vw,2.25rem)}
.nav-links{gap:clamp(.85rem,1.25vw,1.35rem)}
.site-header .nav-links a{
  padding:.65rem 0;
  color:#615a61;
  font-size:.76rem;
  font-weight:720;
}
.site-header .nav-links a:after{bottom:.25rem;height:2px;border-radius:999px}
.nav-appointment{padding:.72rem 1.1rem;border-radius:11px;font-size:.76rem}

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */
.hero{
  position:relative;
  min-height:min(800px,calc(100svh - 82px));
  grid-template-columns:minmax(0,1fr) minmax(390px,.82fr);
  gap:clamp(3.5rem,7vw,8rem);
  align-items:center;
  padding:clamp(4.5rem,7vw,7rem) max(var(--ux-gutter),calc((100vw - var(--ux-wide))/2));
  background:
    radial-gradient(circle at 8% 12%,color-mix(in srgb,var(--accent) 8%,transparent),transparent 31%),
    linear-gradient(115deg,var(--paper) 0 58%,#fff 58% 100%);
  border-bottom:1px solid rgba(62,47,58,.08);
}
.hero::after{
  content:"";
  position:absolute;
  z-index:0;
  width:360px;
  height:360px;
  right:-135px;
  top:-145px;
  border:1px solid color-mix(in srgb,var(--primary) 10%,transparent);
  border-radius:50%;
  pointer-events:none;
}
.hero-copy,.hero-visual{position:relative;z-index:1}
.hero-copy{max-width:690px}
.hero .eyebrow{margin-bottom:1rem}
.hero h1{
  max-width:11.5ch;
  margin:0 0 1.45rem;
  color:var(--primary);
  font-family:var(--ux-serif);
  font-size:clamp(3.55rem,5.4vw,5.7rem);
  font-weight:500;
  letter-spacing:-.055em;
  line-height:.94;
}
.hero-copy>p{max-width:56ch;color:#5f5860;font-size:clamp(1rem,1.2vw,1.16rem);line-height:1.8}
.hero .actions{gap:1.15rem;margin-top:2rem}
.hero-visual{
  width:min(100%,570px);
  height:auto;
  aspect-ratio:4/5;
  min-height:0;
  justify-self:end;
  overflow:hidden;
  border:10px solid rgba(255,255,255,.78);
  border-radius:26px;
  background:var(--secondary);
  box-shadow:0 28px 70px rgba(49,36,47,.15);
  isolation:isolate;
}
.hero-visual::before{
  content:"";
  position:absolute;
  z-index:2;
  inset:18px;
  border:1px solid rgba(255,255,255,.5);
  border-radius:16px;
  pointer-events:none;
}
.hero-visual::after{
  content:"";
  position:absolute;
  z-index:-1;
  width:70%;
  height:70%;
  right:-18%;
  bottom:-20%;
  border-radius:50%;
  background:color-mix(in srgb,var(--primary) 16%,transparent);
}
.hero-visual>img{width:100%;height:100%;object-fit:cover;object-position:center}
.portrait-placeholder{min-height:100%;background:linear-gradient(145deg,color-mix(in srgb,var(--secondary) 35%,white),var(--paper))}
.trust-note{display:none}

/* --------------------------------------------------------------------------
   Perfil profesional
   -------------------------------------------------------------------------- */
.profile{
  display:block;
  max-width:var(--ux-content);
  padding-top:clamp(5rem,7vw,7.5rem);
  padding-bottom:clamp(5rem,7vw,7.5rem);
}
.profile .section-label{
  display:inline-flex;
  writing-mode:horizontal-tb;
  margin-bottom:2rem;
  padding:.5rem .75rem;
  border:1px solid var(--ux-line);
  border-radius:999px;
  color:var(--primary);
  font-size:.66rem;
  font-weight:800;
  letter-spacing:.13em;
}
.profile-main{
  display:grid;
  grid-template-columns:minmax(0,1.06fr) minmax(330px,.72fr);
  gap:clamp(3rem,7vw,7rem);
  align-items:center;
  padding-top:clamp(1.5rem,3vw,2.25rem);
  border-top:1px solid var(--ux-line);
}
.profile-main>div:first-child{max-width:760px}
.profile h2{max-width:13ch;margin:.25rem 0 1.6rem;color:var(--primary);font-size:clamp(3.1rem,5.2vw,5.4rem);line-height:.96}
.profile .lead{
  max-width:38ch;
  margin:0 0 1.6rem;
  padding-left:1.15rem;
  border-left:3px solid var(--accent);
  color:#3f3840;
  font-family:var(--ux-serif);
  font-size:clamp(1.25rem,1.85vw,1.75rem);
  line-height:1.45;
}
.profile .rich{max-width:64ch;color:var(--ux-muted);line-height:1.85}
.profile-side{
  position:relative;
  padding:clamp(1rem,2vw,1.35rem);
  background:linear-gradient(145deg,color-mix(in srgb,var(--primary) 90%,#221d23),var(--primary));
  border-radius:24px;
  box-shadow:var(--ux-shadow);
}
.profile-side::before,.profile-side::after{
  content:"";
  position:absolute;
  border:1px solid rgba(255,255,255,.14);
  border-radius:50%;
  pointer-events:none;
}
.profile-side::before{width:150px;height:150px;right:-45px;top:-52px}
.profile-side::after{width:110px;height:110px;left:-42px;bottom:-44px}
.profile-side>img{
  width:100%;
  aspect-ratio:4/5;
  padding:10px;
  object-fit:contain;
  background:#f8f5f0;
  border:1px solid rgba(255,255,255,.45);
  border-radius:14px;
}
.profile-photo-placeholder{min-height:450px;border:0;border-radius:14px;background:linear-gradient(145deg,#f8f5f0,#e7ded9)}

/* --------------------------------------------------------------------------
   Credenciales y especialidades
   -------------------------------------------------------------------------- */
.ribbon{
  padding:clamp(2.8rem,4vw,4rem) max(var(--ux-gutter),calc((100vw - var(--ux-content))/2));
  background:linear-gradient(115deg,#302731 0%,var(--primary) 68%,#67475f 100%);
}
.ribbon>.eyebrow{max-width:var(--ux-content);margin:0 auto 1.5rem;color:#f5a58f}
.credential-row{max-width:var(--ux-content);margin:auto;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:0;border-top:1px solid rgba(255,255,255,.16)}
.credential-row article{min-height:110px;padding:1.35rem clamp(1rem,2vw,1.8rem);border-left:0;border-right:1px solid rgba(255,255,255,.14)}
.credential-row article:first-child{padding-left:0}
.credential-row article:last-child{border-right:0}
.credential-row strong{font-family:var(--ux-serif);font-size:1.15rem;font-weight:600;line-height:1.35}
.credential-row span{margin-top:.4rem;color:#d7cbd4;font-size:.8rem;line-height:1.5}

.specialties .heading{max-width:900px}
.specialty-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
  background:transparent;
  border:0;
}
.specialty-grid article{
  min-height:240px;
  padding:clamp(1.6rem,2.5vw,2.25rem);
  background:#fff;
  border:1px solid var(--ux-line);
  border-radius:var(--ux-radius-sm);
  box-shadow:0 10px 30px rgba(48,37,46,.04);
  transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;
}
.specialty-grid article:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--accent) 42%,var(--ux-line));box-shadow:var(--ux-shadow)}
.specialty-grid .icon{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:var(--ux-accent-soft);color:var(--accent);font-size:1.25rem}
.specialty-grid h3{margin:1.5rem 0 .65rem;color:var(--primary);font-family:var(--ux-serif);font-size:1.55rem;line-height:1.2}
.specialty-grid p{margin:0;color:var(--ux-muted);line-height:1.7}

/* --------------------------------------------------------------------------
   Afecciones: tarjetas compactas con imagen dominante
   -------------------------------------------------------------------------- */
.conditions{
  position:relative;
  max-width:none;
  padding:var(--ux-section) max(var(--ux-gutter),calc((100vw - var(--ux-content))/2));
  background:
    radial-gradient(circle at 90% 8%,color-mix(in srgb,var(--primary) 7%,transparent),transparent 26%),
    linear-gradient(180deg,#f5f1ec 0,#f8f4ef 100%);
}
.conditions>*{width:100%;max-width:var(--ux-content)}
.conditions .heading.split{
  grid-template-columns:minmax(0,.9fr) minmax(300px,.55fr);
  align-items:end;
  gap:clamp(2rem,6vw,7rem);
  margin-bottom:2.5rem;
  padding-bottom:2.1rem;
  border-bottom:1px solid var(--ux-line);
}
.conditions .heading h2{margin:0;font-size:clamp(3rem,5vw,5rem)}
.conditions .filters{gap:.6rem;margin:0 0 2.25rem;padding:.15rem 0 .35rem}
.conditions .filters button{
  min-height:42px;
  padding:.55rem 1rem;
  border:1px solid color-mix(in srgb,var(--primary) 20%,#d9d2ce);
  border-radius:999px;
  background:rgba(255,255,255,.6);
  color:#625a61;
  font-size:.76rem;
  font-weight:750;
}
.conditions .filters button[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 8px 18px rgba(48,36,46,.12)}
.condition-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1.25rem;
  border-top:0;
}
.condition-list article,
.condition-list article.condition-no-media{
  display:grid;
  grid-template-columns:52px minmax(0,1fr);
  grid-template-rows:auto minmax(205px,auto);
  grid-template-areas:"index copy" "media media";
  gap:1.25rem 1rem;
  min-height:0;
  padding:1.45rem;
  overflow:hidden;
  background:#fff;
  border:1px solid var(--ux-line);
  border-radius:16px;
  box-shadow:0 12px 34px rgba(45,34,43,.045);
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.condition-list article:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--primary) 25%,var(--ux-line));box-shadow:var(--ux-shadow-hover)}
.condition-list article[hidden]{display:none}
.condition-index{
  grid-area:index;
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border:1px solid var(--ux-line);
  border-radius:12px;
  color:var(--primary);
  font-family:var(--ux-serif);
  font-size:1rem;
  background:#faf8f5;
}
.condition-copy{grid-area:copy;align-self:center;min-width:0}
.condition-copy>span{font-size:.66rem;letter-spacing:.13em}
.condition-list h3{margin:.25rem 0 .4rem;color:#322d33;font-size:clamp(1.15rem,1.45vw,1.45rem);line-height:1.25}
.condition-list p{margin:0;color:var(--ux-muted);font-size:.9rem;line-height:1.6}
.condition-media{
  grid-area:media;
  width:100%;
  height:220px;
  overflow:hidden;
  border:0;
  border-radius:12px;
  background:linear-gradient(145deg,#f0ebe7,#e4dce1);
}
.condition-media img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.condition-list article:hover .condition-media img{transform:scale(1.025)}
.condition-photo-placeholder{
  position:relative;
  display:flex;
  height:100%;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:.25rem;
  overflow:hidden;
  background:linear-gradient(145deg,#f1ece8,#e5dde2);
  color:#776f75;
}
.condition-photo-placeholder::before{content:"";position:absolute;width:150px;height:150px;right:-55px;top:-70px;border:1px solid rgba(80,54,78,.12);border-radius:50%}
.condition-photo-placeholder span{display:grid;place-items:center;width:38px;height:38px;margin-bottom:.3rem;border:1px solid rgba(80,54,78,.24);border-radius:50%;color:var(--accent);font-family:var(--ux-serif);font-size:1.45rem}
.condition-photo-placeholder strong{font-family:var(--ux-serif);font-size:1rem;font-weight:500;text-transform:none;letter-spacing:0}
.condition-photo-placeholder small{font-size:.6rem;letter-spacing:.1em}

/* --------------------------------------------------------------------------
   Método de atención
   -------------------------------------------------------------------------- */
.care-method{
  position:relative;
  margin:auto;
  overflow:visible;
  background:var(--ux-surface);
}
.care-method::before{display:none}
.care-method-copy{width:100%;max-width:none;padding:0;border:0}
.care-heading{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:2rem;
  padding-bottom:2rem;
  border-bottom:1px solid var(--ux-line);
}
.care-heading h2{max-width:10ch;margin:.2rem 0 0;color:var(--primary);font-size:clamp(3rem,5vw,5rem);line-height:.96}
.care-heading-mark{width:72px;height:72px;border-color:color-mix(in srgb,var(--primary) 18%,transparent);background:var(--ux-primary-soft);color:var(--accent);font-size:2.4rem}
.care-introduction{
  display:grid;
  grid-template-columns:minmax(280px,.82fr) minmax(360px,1fr);
  gap:clamp(2.5rem,7vw,7rem);
  padding:clamp(2.5rem,4.5vw,4.25rem) 0;
}
.care-lead{max-width:24ch;margin:0;color:var(--primary);font-family:var(--ux-serif);font-size:clamp(1.65rem,2.4vw,2.35rem);line-height:1.35}
.care-body{align-self:center;max-width:68ch;padding-left:1.25rem;border-left:3px solid var(--accent);color:var(--ux-muted);font-size:1rem;line-height:1.85}
.care-support{
  margin:0;
  padding:1.2rem;
  border:1px solid var(--ux-line);
  border-radius:16px;
  background:linear-gradient(145deg,#faf7f3,#fff);
  box-shadow:0 12px 34px rgba(48,37,46,.04);
}
.care-support-label{display:block;margin:0 0 1rem;padding:.2rem .35rem;color:var(--accent);font-size:.67rem;letter-spacing:.13em;background:transparent}
.care-support-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;background:transparent;border:0}
.care-support-items article{
  grid-template-columns:42px minmax(0,1fr);
  min-height:185px;
  padding:1.5rem;
  border:1px solid var(--ux-line)!important;
  border-radius:12px;
  background:#fff;
}
.care-support-items article>span{width:38px;height:38px;border-radius:11px;background:var(--primary);color:#fff}
.care-support h3{color:var(--primary);font-family:var(--ux-serif);font-size:1.35rem}
.care-support p{color:var(--ux-muted);line-height:1.7}
.care-support small{border-radius:7px}
.care-closing{
  display:grid;
  grid-template-columns:minmax(280px,.75fr) minmax(340px,1fr);
  gap:clamp(2rem,6vw,6rem);
  align-items:center;
  padding-top:2rem;
}
.care-outcome{margin:0;padding:1.25rem 1.4rem 1.25rem 1.65rem;border-radius:12px;background:var(--primary);color:#fff}
.care-outcome strong{font-family:var(--ux-serif);font-size:1.25rem}
.care-closing>small{color:var(--ux-muted);line-height:1.7}
.care-method-has-media{max-width:var(--ux-wide);grid-template-columns:minmax(0,1.05fr) minmax(330px,.55fr);gap:clamp(3rem,6vw,6rem);align-items:center}
.care-method-has-media .care-introduction,.care-method-has-media .care-closing{grid-template-columns:1fr}
.care-method-has-media .care-support-items{grid-template-columns:1fr}
.care-method-image{min-height:0;aspect-ratio:4/5;border-radius:22px;box-shadow:var(--ux-shadow)}
.care-method-image>img{width:100%;height:100%;object-fit:cover}

/* --------------------------------------------------------------------------
   Servicios, proceso, guías y recursos
   -------------------------------------------------------------------------- */
.service-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.service-grid article,.service-grid article:nth-child(4n+1),.service-grid article:only-child{
  grid-column:auto;
  min-height:270px;
  padding:1.75rem;
  border:1px solid var(--ux-line);
  border-radius:14px;
  background:#fff;
  box-shadow:0 10px 30px rgba(48,37,46,.035);
  transition:transform .25s ease,box-shadow .25s ease;
}
.service-grid article:nth-child(4n+1){background:linear-gradient(145deg,var(--paper),#fff)}
.service-grid article:hover{transform:translateY(-4px);box-shadow:var(--ux-shadow)}
.service-grid h3{color:var(--primary);font-family:var(--ux-serif);font-size:1.55rem}
.service-meta{font-size:.66rem;font-weight:800;letter-spacing:.09em}

.approach{grid-template-columns:minmax(280px,.7fr) minmax(0,1fr);gap:clamp(3rem,8vw,8rem);align-items:start}
.approach .heading{position:sticky;top:120px;margin:0}
.approach ol{border-top:1px solid var(--ux-line)}
.approach li{grid-template-columns:48px 1fr;gap:1rem;padding:1.55rem .25rem;border-top:0;border-bottom:1px solid var(--ux-line)}
.approach li>span{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--ux-accent-soft);color:var(--accent);font-size:.72rem}
.approach h3{color:var(--primary);font-family:var(--ux-serif);font-size:1.35rem}
.approach p{color:var(--ux-muted)}

.guides{max-width:none;padding-left:max(var(--ux-gutter),calc((100vw - var(--ux-content))/2));padding-right:max(var(--ux-gutter),calc((100vw - var(--ux-content))/2));background:#f6f1eb}
.guides>*{max-width:var(--ux-content)}
.guide-list{border-top:1px solid var(--ux-line)}
.guide-list a{padding:1.45rem .25rem;border-top:0;border-bottom:1px solid var(--ux-line);transition:padding .22s ease,background .22s ease}
.guide-list a:hover{padding-left:1rem;padding-right:1rem;background:rgba(255,255,255,.55)}
.guide-list h3{color:var(--primary);font-family:var(--ux-serif);font-size:1.4rem}
.guide-list p{color:var(--ux-muted)}

.resource-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.resource-grid article{padding:1.75rem;border:1px solid var(--ux-line);border-radius:14px;background:#fff;box-shadow:0 10px 28px rgba(48,37,46,.035)}
.resource-grid h3{color:var(--primary);font-family:var(--ux-serif);font-size:1.45rem;line-height:1.25}
.resource-grid p{color:var(--ux-muted)}
.resource-grid a{font-weight:800;text-decoration:none;color:var(--primary)}

/* --------------------------------------------------------------------------
   Galería editorial
   -------------------------------------------------------------------------- */
.gallery{max-width:var(--ux-content)}
.gallery-heading{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:2rem;
  margin-bottom:clamp(2.5rem,4vw,3.5rem);
  padding-bottom:2rem;
  border-bottom:1px solid var(--ux-line);
}
.gallery-heading h2{margin:.1rem 0 0;color:var(--primary);font-family:var(--ux-serif);font-size:clamp(3.2rem,5vw,5.2rem);font-weight:500;letter-spacing:-.05em;line-height:.95}
.gallery-heading-note{display:flex;align-items:center;gap:1rem;padding-left:1.5rem;border-left:2px solid var(--accent)}
.gallery-heading-note>strong{color:var(--primary);font-family:var(--ux-serif);font-size:2.7rem;font-weight:500;line-height:1}
.gallery-heading-note p{margin:0;color:#3f383f;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;line-height:1.45}
.gallery-heading-note p span{color:var(--ux-muted);font-size:.63rem;font-weight:600;letter-spacing:0;text-transform:none}
.gallery .gallery-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.25rem;
  align-items:start;
  justify-content:stretch;
}
.gallery .gallery-grid figure,.gallery .gallery-grid figure:nth-child(4n+1){width:100%;max-width:none;margin:0;overflow:hidden;border:1px solid var(--ux-line);border-radius:15px;background:#fff;box-shadow:0 10px 30px rgba(45,35,43,.05);outline:0;transition:transform .25s ease,box-shadow .25s ease}
.gallery .gallery-grid figure:hover,.gallery .gallery-grid figure:focus-within{transform:translateY(-5px);box-shadow:var(--ux-shadow-hover)}
.gallery .gallery-open{position:relative;height:360px;min-height:0;overflow:hidden;background:#f2ede8}
.gallery .gallery-open img{width:100%;height:360px;object-fit:contain;background:#f2ede8;transition:transform .35s ease,filter .35s ease}
.gallery .gallery-grid figure:hover .gallery-open img,.gallery .gallery-grid figure:focus-within .gallery-open img{transform:scale(1.012);filter:saturate(1.025)}
.gallery-number{position:absolute;z-index:2;left:1rem;top:1rem;display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:rgba(42,34,41,.82);color:#fff;font-size:.69rem;font-weight:850;backdrop-filter:blur(8px)}
.gallery-view{position:absolute;z-index:2;right:1rem;bottom:1rem;display:flex;align-items:center;gap:.4rem;padding:.55rem .72rem;border-radius:9px;background:rgba(255,253,249,.92);color:var(--primary);font-size:.68rem;font-weight:850;box-shadow:0 8px 20px rgba(45,35,43,.12);opacity:0;transform:translateY(7px);transition:opacity .22s ease,transform .22s ease}
.gallery .gallery-grid figure:hover .gallery-view,.gallery .gallery-grid figure:focus-within .gallery-view{opacity:1;transform:none}
.gallery .gallery-grid figcaption{
  position:static;
  min-height:96px;
  padding:1.15rem 1.2rem;
  color:var(--ux-ink);
  background:#fff;
  border:0;
  border-top:1px solid var(--ux-line);
  box-shadow:none;
}
.gallery .gallery-grid figcaption::before,.gallery .gallery-grid figcaption::after{display:none}
.gallery .gallery-grid figcaption strong{color:var(--primary);font-family:var(--ux-serif);font-size:1.16rem;font-weight:600;line-height:1.25}
.gallery .gallery-grid figcaption span{margin-top:.3rem;color:var(--ux-muted);font-size:.76rem;font-weight:500;letter-spacing:0;line-height:1.5}
.gallery .gallery-grid figure:hover figcaption,.gallery .gallery-grid figure:focus-within figcaption{background:#fff}

/* Lightbox: funcionalidad intacta, acabado más limpio */
.gallery-lightbox{background:rgba(27,22,28,.96);backdrop-filter:blur(10px)}
.gallery-close,.gallery-previous,.gallery-next{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12)}
.gallery-close{border-radius:12px}
.gallery-previous,.gallery-next{border-radius:14px}

/* --------------------------------------------------------------------------
   Publicaciones
   -------------------------------------------------------------------------- */
.publications{max-width:var(--ux-content)}
.publication-section-heading{
  grid-template-columns:minmax(0,1fr) auto;
  gap:3rem;
  margin-bottom:3rem;
  padding-bottom:2.2rem;
  border-bottom:1px solid var(--ux-line);
}
.publication-section-heading h2{color:var(--primary);font-family:var(--ux-serif);font-size:clamp(3.2rem,5vw,5.2rem);font-weight:500;letter-spacing:-.05em;line-height:.95}
.publication-story{max-width:64ch;color:var(--ux-muted);font-size:1rem;line-height:1.8}
.publication-section-heading aside{padding-left:1.5rem;border-left:2px solid var(--accent)}
.publication-section-heading aside strong{font-family:var(--ux-serif);font-size:3.2rem}
.publication-post{
  min-height:0;
  padding:clamp(2.25rem,4vw,3.5rem) 0;
  gap:clamp(2.5rem,6vw,6rem);
  border-bottom:1px solid var(--ux-line);
}
.publication-post:first-child{padding-top:.75rem}
.publication-post-copy{align-self:center;max-width:620px;padding-left:1.2rem}
.publication-post-copy::before{width:3px;height:38px;border-radius:999px}
.publication-meta{font-size:.67rem;letter-spacing:.12em}
.publication-post h3{margin:.5rem 0 1rem;color:var(--primary);font-family:var(--ux-serif);font-size:clamp(2rem,3vw,3.1rem);font-weight:500;line-height:1.02;letter-spacing:-.035em}
.publication-post p{color:var(--ux-muted);line-height:1.75}
.publication-link{display:inline-flex;align-items:center;gap:.4rem;margin-top:1rem;font-size:.8rem;font-weight:850;text-decoration:none;color:var(--primary);border-bottom:1px solid currentColor}
.publication-cover-art{min-height:315px;border-radius:16px;box-shadow:var(--ux-shadow);padding:2rem}
.publication-cover-label strong{font-family:var(--ux-serif);font-size:clamp(1.75rem,2.8vw,2.8rem)}
.publication-post-media:not(.publication-cover-art){overflow:hidden;border-radius:16px;box-shadow:var(--ux-shadow)}
.publication-post-media figure{overflow:hidden;border-radius:10px}

/* --------------------------------------------------------------------------
   Eventos
   -------------------------------------------------------------------------- */
.events{
  max-width:none;
  padding-left:max(var(--ux-gutter),calc((100vw - var(--ux-content))/2));
  padding-right:max(var(--ux-gutter),calc((100vw - var(--ux-content))/2));
  background:#f7f3ee;
}
.events>*{width:100%;max-width:var(--ux-content)}
.event-heading{
  grid-template-columns:minmax(0,1fr) minmax(280px,.48fr);
  gap:clamp(3rem,7vw,7rem);
  margin-bottom:3rem;
  padding-bottom:2.2rem;
  border-bottom:1px solid var(--ux-line);
}
.event-heading h2{max-width:12ch;color:var(--primary);font-family:var(--ux-serif);font-size:clamp(3.1rem,5vw,5rem);font-weight:500;letter-spacing:-.05em;line-height:.96}
.event-heading>p{color:var(--ux-muted);line-height:1.75}
.event-collection{gap:1.25rem}
.event-card,.event-card:nth-child(even){
  grid-template-columns:minmax(260px,.58fr) minmax(0,1.42fr);
  min-height:285px;
  overflow:hidden;
  border:1px solid var(--ux-line);
  border-radius:16px;
  background:#fff;
  box-shadow:0 12px 34px rgba(50,38,48,.045);
}
.event-card:nth-child(even) .event-visual{order:0}
.event-card:hover{transform:translateY(-4px);box-shadow:var(--ux-shadow-hover)}
.event-visual{min-height:285px;background:linear-gradient(145deg,#e8e0e5,#d9cdd5)}
.event-visual img{width:100%;height:100%;min-height:285px;object-fit:cover}
.event-visual-empty{min-height:285px;padding:1.6rem;background:linear-gradient(145deg,var(--primary),#6b4b66)}
.event-visual-empty b{font-family:var(--ux-serif);font-size:clamp(1.75rem,2.6vw,2.65rem)}
.event-content{padding:clamp(1.8rem,3.5vw,3.25rem)}
.event-topline{margin-bottom:1rem;font-size:.66rem}
.event-content h3{max-width:20ch;color:#302b30;font-family:var(--ux-serif);font-size:clamp(1.7rem,2.7vw,2.65rem);line-height:1.08}
.event-content>p{margin-top:.9rem;color:var(--ux-muted);line-height:1.7}
.event-content footer{margin-top:1.4rem;padding-top:1rem}

/* --------------------------------------------------------------------------
   Caso clínico (si está autorizado y visible)
   -------------------------------------------------------------------------- */
.case-month{
  max-width:none;
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:clamp(3rem,7vw,7rem);
  padding:var(--ux-section) max(var(--ux-gutter),calc((100vw - var(--ux-content))/2));
  background:linear-gradient(135deg,#272128,#352a34);
}
.case-copy h2{font-family:var(--ux-serif);font-size:clamp(2.7rem,4.4vw,4.6rem)}
.case-images{gap:.8rem}
.case-image,.case-image img{border-radius:12px}

/* --------------------------------------------------------------------------
   Testimonios
   -------------------------------------------------------------------------- */
.testimonials{
  max-width:none;
  padding-left:max(var(--ux-gutter),calc((100vw - var(--ux-content))/2));
  padding-right:max(var(--ux-gutter),calc((100vw - var(--ux-content))/2));
  background:linear-gradient(180deg,#fffdf9 0,#f7f2ed 100%);
}
.testimonials>*{width:100%;max-width:var(--ux-content)}
.testimonial-heading{
  grid-template-columns:minmax(280px,.8fr) minmax(300px,1fr);
  gap:clamp(2.5rem,7vw,7rem);
  margin-bottom:2.5rem;
}
.testimonial-heading .eyebrow{margin-bottom:-.5rem}
.testimonial-heading h2{color:var(--primary);font-family:var(--ux-serif);font-size:clamp(3rem,4.8vw,4.8rem);line-height:.98}
.testimonial-heading p{color:var(--ux-muted);line-height:1.7}
.testimonial-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.testimonial-card{
  min-height:270px;
  padding:1.7rem;
  border:1px solid var(--ux-line);
  border-radius:14px;
  box-shadow:0 12px 34px rgba(53,40,50,.05);
}
.testimonial-card::before{width:3px;border-radius:3px}
.testimonial-quote{right:1rem;top:-.8rem;font-size:7.5rem}
.testimonial-card blockquote{max-width:23ch;color:#342e33;font-family:var(--ux-serif);font-size:clamp(1.22rem,1.7vw,1.65rem);line-height:1.48}
.testimonial-card footer{margin-top:2rem}
.testimonial-card:hover{transform:translateY(-4px);box-shadow:var(--ux-shadow-hover)}

/* --------------------------------------------------------------------------
   FAQ
   -------------------------------------------------------------------------- */
.faq{
  max-width:none;
  grid-template-columns:minmax(300px,.72fr) minmax(460px,1.28fr);
  gap:clamp(3.5rem,8vw,8rem);
  padding-left:max(var(--ux-gutter),calc((100vw - var(--ux-content))/2));
  padding-right:max(var(--ux-gutter),calc((100vw - var(--ux-content))/2));
  background:#fffdf9;
}
.faq>*{max-width:none}
.faq-intro{top:115px}
.faq-intro h2{max-width:11ch;color:var(--primary);font-family:var(--ux-serif);font-size:clamp(2.8rem,4.4vw,4.5rem);line-height:1.01}
.faq-intro p{color:var(--ux-muted);line-height:1.75}
.faq-list{border-top:1px solid var(--ux-line)}
.faq-list .faq-item{border-bottom:1px solid var(--ux-line)}
.faq-list .faq-item:has(button[aria-expanded=true]){background:#faf7f3}
.faq-list .faq-item button{grid-template-columns:38px 1fr 36px;gap:1rem;padding:1.35rem .8rem}
.faq-number{font-size:.66rem}
.faq-question{color:#312b31;font-size:.93rem;line-height:1.45}
.faq-list button b{width:30px;height:30px}
.faq-answer{padding:0 3.8rem 1.35rem 3.85rem;color:var(--ux-muted);line-height:1.75}

/* --------------------------------------------------------------------------
   Consultorios
   -------------------------------------------------------------------------- */
.locations{
  max-width:none;
  padding-left:max(var(--ux-gutter),calc((100vw - var(--ux-content))/2));
  padding-right:max(var(--ux-gutter),calc((100vw - var(--ux-content))/2));
  background:#f7f3ee;
}
.locations>*{width:100%;max-width:var(--ux-content)}
.locations .heading{max-width:900px}
.locations .heading h2{max-width:13ch}
.location-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;align-items:stretch}
.location-grid .location-card,
.location-card:last-child:nth-child(odd){
  display:flex;
  min-height:100%;
  flex-direction:column;
  overflow:hidden;
  border:1px solid var(--ux-line);
  border-radius:14px;
  background:#fff;
  box-shadow:0 12px 34px rgba(51,39,49,.045);
}
.location-grid .location-card:hover{transform:translateY(-4px);box-shadow:var(--ux-shadow-hover)}
.location-photo,.location-card:last-child:nth-child(odd) .location-photo{height:210px;min-height:0}
.location-photo img{height:100%;object-fit:cover}
.location-content{display:flex;flex:1;flex-direction:column;padding:1.65rem}
.location-index{width:max-content;margin-bottom:1rem;padding:.35rem .55rem;border-radius:8px;background:var(--ux-accent-soft);color:var(--accent);font-size:.65rem}
.location-card h3{margin:0 0 .85rem;color:var(--primary);font-family:var(--ux-serif);font-size:clamp(1.45rem,2vw,1.85rem);line-height:1.16}
.location-card p{color:var(--ux-muted);font-size:.9rem}
.location-card p strong,.location-services>strong{color:#342e33;font-size:.68rem}
.location-schedules{margin:1.2rem 0;padding:.85rem 0;border-color:var(--ux-line)}
.location-schedules p{font-size:.82rem}
.location-services{margin-top:auto;padding:1rem;border-left:3px solid var(--accent);border-radius:0 9px 9px 0;background:#faf5ef}
.location-directions{margin-top:1rem;font-size:.82rem}

/* --------------------------------------------------------------------------
   Cita y contacto
   -------------------------------------------------------------------------- */
.appointment{
  position:relative;
  grid-template-columns:minmax(300px,.7fr) minmax(520px,1fr);
  gap:clamp(3.5rem,8vw,8rem);
  padding:var(--ux-section) max(var(--ux-gutter),calc((100vw - var(--ux-content))/2));
  overflow:hidden;
  background:
    radial-gradient(circle at 7% 18%,rgba(255,255,255,.06),transparent 26%),
    linear-gradient(135deg,#372c37 0%,var(--primary) 72%,#64485f 100%);
}
.appointment::after{content:"";position:absolute;width:420px;height:420px;left:-160px;bottom:-245px;border:1px solid rgba(255,255,255,.09);border-radius:50%;pointer-events:none}
.appointment>div{align-self:center;max-width:520px}
.appointment h2{max-width:10ch;margin:.35rem 0 1.2rem;color:#fff;font-size:clamp(3.1rem,5vw,5rem);line-height:.98}
.appointment>div>p{color:#e8dfe6;line-height:1.75}
.appointment .notice{margin:1.7rem 0;padding:1rem 0 1rem 1rem;color:#f0e7ed;border-left:3px solid var(--accent);font-size:.9rem;line-height:1.65}
.appointment form{
  position:relative;
  z-index:1;
  gap:.9rem;
  padding:clamp(1.5rem,3vw,2.25rem);
  border:1px solid rgba(255,255,255,.24);
  border-radius:18px;
  background:rgba(255,255,255,.095);
  box-shadow:0 24px 70px rgba(22,17,22,.16);
  backdrop-filter:blur(9px);
}
.appointment label{color:#fff;font-size:.76rem}
.appointment input,.appointment textarea,.appointment select{
  min-height:46px;
  padding:.75rem .85rem;
  border:1px solid rgba(255,255,255,.32);
  border-radius:9px;
  background:rgba(255,255,255,.075);
  color:#fff;
  outline:none;
  transition:border-color .2s ease,background .2s ease,box-shadow .2s ease;
}
.appointment textarea{min-height:105px}
.appointment input::placeholder,.appointment textarea::placeholder{color:rgba(255,255,255,.47)}
.appointment input:focus,.appointment textarea:focus,.appointment select:focus{border-color:color-mix(in srgb,var(--accent) 65%,white);background:rgba(255,255,255,.11);box-shadow:0 0 0 3px rgba(223,118,93,.13)}
.appointment select option{color:#272228}
.appointment .check{color:#e8dfe6}
.appointment small{color:#d8ced6;line-height:1.55}
.appointment form>.button{width:max-content;min-width:150px;margin-top:.15rem}
.form-status{border-radius:8px}

.contact{
  grid-template-columns:minmax(280px,.65fr) minmax(420px,1fr);
  gap:clamp(3rem,8vw,8rem);
  align-items:start;
}
.contact h2{max-width:11ch;color:var(--primary);font-size:clamp(2.8rem,4.5vw,4.5rem);line-height:1}
.contact>div>p{color:var(--ux-muted)}
.contact form{padding:1.5rem;border:1px solid var(--ux-line);border-radius:16px;background:#fff;box-shadow:0 12px 34px rgba(48,37,46,.045)}
.contact input,.contact textarea,.contact select{border-radius:9px;border-color:var(--ux-line);background:#fff}
.contact input:focus,.contact textarea:focus,.contact select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--ux-primary-soft);outline:none}

.final-cta{padding:clamp(4rem,6vw,6rem) var(--ux-gutter);background:linear-gradient(135deg,color-mix(in srgb,var(--secondary) 72%,white),#e7eee6)}
.final-cta h2{color:var(--primary);font-size:clamp(2.6rem,4.5vw,4.7rem)}
.final-cta p{max-width:650px;margin:1rem auto 1.6rem;color:#566057}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.site-footer{display:block;padding:0;background:#211d23;color:#fff}
.footer-main{
  grid-template-columns:minmax(260px,1.15fr) repeat(3,minmax(140px,.6fr));
  gap:clamp(2.5rem,5vw,5.5rem);
  width:min(var(--ux-content),calc(100% - (var(--ux-gutter) * 2)));
  padding:clamp(3.5rem,5vw,5rem) 0;
}
.footer-identity{max-width:380px}
.footer-brand{gap:.75rem}
.footer-brand strong{font-family:var(--ux-serif);font-size:1.55rem}
.footer-tagline{margin:1.2rem 0 .5rem;font-size:.95rem}
.footer-note{font-size:.8rem;line-height:1.7}
.footer-nav,.footer-locations,.footer-contact{gap:.62rem}
.footer-nav>a,.footer-locations>a,.footer-contact>a{font-size:.8rem}
.footer-bottom{
  width:min(var(--ux-content),calc(100% - (var(--ux-gutter) * 2)));
  padding:1.25rem 0;
  color:#aaa0a8;
  font-size:.72rem;
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
@media(max-width:1180px){
  .site-header .nav-links{gap:.75rem}
  .site-header .nav-links a{font-size:.72rem}
  .hero{grid-template-columns:minmax(0,1fr) minmax(340px,.72fr);gap:3.5rem}
  .testimonial-grid,.location-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .testimonial-card:last-child:nth-child(odd),.location-card:last-child:nth-child(odd){grid-column:1/-1}
  .location-card:last-child:nth-child(odd){display:grid;grid-template-columns:minmax(300px,.65fr) 1fr}
  .location-card:last-child:nth-child(odd) .location-photo{height:100%;min-height:340px}
  .footer-main{grid-template-columns:minmax(260px,1.2fr) repeat(2,minmax(150px,.7fr))}
  .footer-contact{grid-column:2/-1}
}

@media(max-width:980px){
  html{scroll-padding-top:78px}
  .site-header{height:76px}
  .menu-toggle{display:block}
  .site-header nav{
    display:none;
    position:absolute;
    top:76px;
    left:var(--ux-gutter);
    right:var(--ux-gutter);
    max-height:calc(100svh - 92px);
    overflow:auto;
    padding:1rem;
    border:1px solid var(--ux-line);
    border-radius:16px;
    background:rgba(255,253,249,.98);
    box-shadow:0 24px 60px rgba(43,32,41,.16);
    flex-direction:column;
    align-items:stretch;
  }
  .site-header nav.open{display:flex}
  .nav-links{flex-direction:column;align-items:stretch;gap:.2rem}
  .site-header .nav-links a{padding:.8rem .75rem;border-radius:9px;font-size:.84rem}
  .site-header .nav-links a:after{display:none}
  .site-header .nav-links a[aria-current=true]{background:var(--ux-primary-soft)}
  .nav-appointment{width:100%;margin-top:.4rem}

  .hero{min-height:0;grid-template-columns:1fr;gap:3rem;padding-top:4.5rem;padding-bottom:4.5rem;background:linear-gradient(180deg,var(--paper),#fff)}
  .hero-copy{max-width:760px}
  .hero h1{max-width:12ch;font-size:clamp(3.4rem,8vw,5.6rem)}
  .hero-visual{width:min(100%,600px);justify-self:start;aspect-ratio:5/4}

  .profile-main{grid-template-columns:1fr;gap:3rem}
  .profile-side{width:min(100%,520px)}
  .profile-side>img{aspect-ratio:4/5}
  .profile-photo-placeholder{min-height:390px}

  .specialty-grid,.service-grid,.resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .condition-list{grid-template-columns:1fr}
  .condition-list article,.condition-list article.condition-no-media{grid-template-rows:auto minmax(235px,auto)}
  .condition-media{height:250px}

  .care-introduction,.care-closing{grid-template-columns:1fr;gap:2rem}
  .care-support-items{grid-template-columns:1fr}
  .care-method-has-media{grid-template-columns:1fr}
  .care-method-image{width:min(100%,580px);aspect-ratio:5/4}

  .approach{grid-template-columns:1fr;gap:2.5rem}
  .approach .heading{position:static}

  .gallery .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gallery .gallery-open,.gallery .gallery-open img{height:350px}

  .publication-post,.publication-post-no-media,.publication-post-no-media:nth-child(even){grid-template-columns:1fr;grid-template-areas:"copy" "media";gap:2rem}
  .publication-post-media{min-height:0}

  .event-heading{grid-template-columns:1fr;gap:1rem}
  .event-heading h2{max-width:15ch}
  .event-card,.event-card:nth-child(even){grid-template-columns:minmax(240px,.62fr) minmax(0,1.38fr)}

  .faq{grid-template-columns:1fr;gap:2.75rem}
  .faq-intro{position:static}
  .faq-intro h2{max-width:14ch}

  .appointment{grid-template-columns:1fr;gap:2.75rem}
  .appointment>div{max-width:680px}
  .appointment h2{max-width:13ch}

  .contact{grid-template-columns:1fr;gap:2.5rem}
  .contact form{max-width:780px}
}

@media(max-width:700px){
  :root{--ux-gutter:1.15rem;--ux-section:4.25rem}
  body{font-size:15.5px}
  .site-header{padding-inline:1rem}
  .brand-copy strong{max-width:180px;font-size:.83rem}
  .brand-copy small{max-width:180px;font-size:.61rem}
  .site-header .brand img{max-width:150px;height:42px}

  .hero{padding-top:3.75rem;padding-bottom:3.75rem}
  .hero h1{font-size:clamp(3rem,14vw,4.6rem);line-height:.95}
  .hero-copy>p{font-size:1rem}
  .hero .actions{align-items:stretch;flex-direction:column;gap:.65rem}
  .hero .actions .button,.hero .actions .text-link{width:100%;justify-content:center}
  .hero-visual{aspect-ratio:4/5;border-width:7px;border-radius:20px}

  .profile .section-label{margin-bottom:1.4rem}
  .profile-main{padding-top:1.5rem}
  .profile h2{font-size:clamp(2.8rem,13vw,4.2rem)}
  .profile .lead{font-size:1.3rem}
  .profile-side{padding:.75rem;border-radius:18px}
  .profile-photo-placeholder{min-height:340px}

  .credential-row{grid-template-columns:1fr}
  .credential-row article,.credential-row article:first-child{min-height:0;padding:1.05rem 0;border-right:0;border-bottom:1px solid rgba(255,255,255,.14)}
  .credential-row article:last-child{border-bottom:0}

  .specialty-grid,.service-grid,.resource-grid{grid-template-columns:1fr}
  .specialty-grid article{min-height:0}

  .conditions .heading.split{grid-template-columns:1fr;gap:1rem}
  .conditions .heading h2{font-size:clamp(2.8rem,13vw,4.4rem)}
  .condition-list article,.condition-list article.condition-no-media{grid-template-columns:44px minmax(0,1fr);grid-template-rows:auto 205px;padding:1rem;gap:1rem .8rem}
  .condition-index{width:38px;height:38px}
  .condition-media{height:205px}

  .care-heading-mark{width:54px;height:54px;font-size:1.8rem}
  .care-heading h2{font-size:clamp(2.8rem,12vw,4.2rem)}
  .care-introduction{padding:2rem 0}
  .care-lead{font-size:1.45rem}
  .care-body{padding-left:1rem}
  .care-support{padding:.75rem}
  .care-support-items article{grid-template-columns:36px minmax(0,1fr);min-height:0;padding:1.1rem}
  .care-support-items article>span{width:32px;height:32px}
  .care-method-image{aspect-ratio:4/5}

  .gallery-heading,.publication-section-heading{grid-template-columns:1fr;gap:1.5rem}
  .gallery-heading-note,.publication-section-heading aside{justify-self:start;padding:.75rem 0 0;border-top:1px solid var(--ux-line);border-left:0}
  .gallery .gallery-grid{grid-template-columns:1fr}
  .gallery .gallery-open,.gallery .gallery-open img{height:360px}
  .gallery-view{opacity:1;transform:none}

  .publication-post-copy{padding-left:1rem}
  .publication-post h3{font-size:clamp(1.9rem,9vw,2.8rem)}
  .publication-cover-art{min-height:270px}

  .event-card,.event-card:nth-child(even){grid-template-columns:1fr}
  .event-visual,.event-visual img,.event-visual-empty{min-height:220px;height:220px}
  .event-content{padding:1.35rem}
  .event-content h3{font-size:1.8rem}
  .event-content footer{align-items:flex-start;flex-direction:column}

  .case-month{grid-template-columns:1fr}

  .testimonial-heading{grid-template-columns:1fr;gap:1.2rem}
  .testimonial-heading .eyebrow{grid-column:auto;margin-bottom:0}
  .testimonial-grid{grid-template-columns:1fr}
  .testimonial-card:last-child:nth-child(odd){grid-column:auto}
  .testimonial-card{min-height:230px}

  .faq-list .faq-item button{grid-template-columns:28px 1fr 32px;padding:1.2rem .15rem}
  .faq-answer{padding:0 2.3rem 1.25rem 2.8rem}

  .location-grid{grid-template-columns:1fr}
  .location-card:last-child:nth-child(odd){grid-column:auto;display:flex}
  .location-card:last-child:nth-child(odd) .location-photo,.location-photo{height:210px;min-height:0}

  .appointment{padding-top:4.5rem;padding-bottom:4.5rem}
  .appointment h2{font-size:clamp(2.9rem,13vw,4.4rem)}
  .appointment form{padding:1rem;border-radius:14px}
  .form-row{grid-template-columns:1fr}
  .appointment form>.button{width:100%}

  .footer-main{grid-template-columns:1fr;gap:2.2rem;width:calc(100% - 2.3rem)}
  .footer-contact{grid-column:auto}
  .footer-bottom{grid-template-columns:1fr;gap:.55rem;width:calc(100% - 2.3rem)}
}

@media(max-width:390px){
  .brand-copy small{display:none}
  .hero h1{font-size:2.85rem}
  .gallery .gallery-open,.gallery .gallery-open img{height:315px}
  .condition-list h3{font-size:1.1rem}
}

@media(prefers-reduced-motion:reduce){
  .button,.specialty-grid article,.condition-list article,.condition-media img,.guide-list a,.gallery .gallery-grid figure,.gallery .gallery-open img,.gallery-view,.service-grid article,.event-card,.testimonial-card,.location-grid .location-card{transition:none!important}
  .button:hover,.specialty-grid article:hover,.condition-list article:hover,.service-grid article:hover,.event-card:hover,.testimonial-card:hover,.location-grid .location-card:hover,.gallery .gallery-grid figure:hover{transform:none!important}
}
