@font-face{font-family:'Noto Sans';src:url('/fonts/NotoSans-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Noto Sans';src:url('/fonts/NotoSans-Bold.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
:root{--granate:#5B1F37;--marfil:#F6F1EB;--rosa:#A05D73;--grafito:#24272B;--gris:#53565c;--linea:#dfd1d6;font-family:'Noto Sans',Arial,sans-serif;color:var(--grafito);background:var(--marfil)}
*{box-sizing:border-box}body{margin:0;font:16px/1.65 'Noto Sans',Arial,sans-serif}a{color:var(--granate);text-underline-offset:3px}h1,h2,h3{color:var(--granate);line-height:1.25}img{max-width:100%;height:auto}[hidden]{display:none!important}
.clinic-candidate{padding:12px 18px;background:#fff0bd;border-bottom:2px solid #9d792c;text-align:center;font-size:14px;color:#342b16}.clinic-candidate strong,.clinic-candidate span{display:block}
.clinic-header{max-width:1000px;margin:auto;padding:24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.clinic-header img{width:190px}.clinic-shell{max-width:1000px;margin:0 auto;padding:0 24px 60px}.booking-form{background:#fff;border:1px solid var(--linea);border-radius:16px;padding:24px;max-width:900px;margin:24px auto}.booking-form label{margin:18px 0}.booking-form input,.booking-form select{font:inherit}.payment-fields{border:0;padding:0;min-width:0}.notice,.form-error{padding:16px;border-left:4px solid var(--rosa);background:var(--marfil);margin:18px 0}.form-error{color:#7c1e32}.button{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:12px 18px;border:1px solid var(--granate);border-radius:9px;background:var(--granate);color:#fff;font:inherit;font-weight:700;text-decoration:none}.button--outline{background:transparent;color:var(--granate)}.button:disabled{opacity:.6}.small-copy{font-size:.9rem}.payment-check{display:flex!important;flex-direction:row!important;align-items:start;gap:10px}.payment-check input{width:20px;height:20px;flex-shrink:0}.manage-page{margin:auto}.manage-page header{display:flex;justify-content:space-between;align-items:center;gap:20px}.manage-page header img{width:180px}
.editor-textarea{width:100%;min-height:160px}.editor-preview{white-space:pre-wrap}
@media(max-width:600px){.clinic-header{padding:18px}.clinic-header img{width:150px}.clinic-shell{padding:0 16px 40px}.booking-form{padding:18px}.clinic-candidate{font-size:12px}}



/* Each menu destination is a standalone page; only its content is rendered. */
.section-page { min-height: 65vh; }
.section-page > .section:first-child, .section-page > .results-banner:first-child { margin-top: 54px; }
.section-page h1 { font-size: clamp(2.25rem, 4vw, 3.9rem); line-height: 1.13; letter-spacing: -.035em; }
.section-page .results-banner h1 { color: #fff; }
.section-page .final-cta, .home-page .final-cta { margin-top: 72px; padding: 50px clamp(24px,5vw,70px); }
.section-page .final-cta img, .home-page .final-cta img { display: none; }
.section-page .final-cta h2, .home-page .final-cta h2 { font-size: clamp(1.8rem,3vw,2.6rem); }
.home-page .hero { min-height: 560px; }
.home-page .hero-copy { padding: clamp(32px,4vw,64px); }
.home-page .hero h1 { font-size: clamp(2.5rem,4vw,4.2rem); line-height: 1.1; }
.home-page .hero-visual { min-height: 480px; }
.home-page .hero-lead { margin-top: 24px; }
.home-page .trust-row { margin-top: 28px; padding-top: 22px; }
.heritage-section { display: grid; grid-template-columns: 1.1fr .9fr; align-items: center; gap: clamp(32px,6vw,88px); }
.heritage-copy h2 { color: var(--granate); font-size: clamp(2.3rem,4vw,3.8rem); line-height: 1.1; letter-spacing: -.035em; margin: 0; }
.heritage-copy > p:not(.eyebrow) { font-size: 1.06rem; line-height: 1.8; text-wrap: pretty; color: var(--gris); }
.heritage-copy > p + p { margin-top: 16px; }
.heritage-copy > .button { margin-top: 18px; }
.heritage-portrait { margin: 0 auto; width: min(440px,100%); min-width: 0; }
.heritage-portrait > img { display: block; width: 100%; height: auto; aspect-ratio: 1; border-radius: 22px; border: 1px solid #dfd0d5; }
.heritage-portrait figcaption { margin-top: 18px; text-align: center; font-size: .95rem; line-height: 1.65; }
.heritage-portrait figcaption strong { display: block; color: var(--granate); font-size: 1.1rem; }
.heritage-portrait figcaption p { margin: 5px 0; color: var(--gris); text-wrap: pretty; }
.heritage-portrait figcaption small { display: block; font-size: .8rem; color: var(--gris); }
.desktop-nav a[aria-current="page"], .text-link[aria-current="page"] { color: var(--granate); font-weight: 700; text-decoration: underline; text-underline-offset: 9px; text-decoration-thickness: 2px; }
.mobile-menu a[aria-current="page"] { font-weight: 700; background: #eadce1; border-radius: 8px; }
.footer-top a[aria-current="page"] { color: var(--granate); font-weight: 700; }
@media (min-width: 1181px) {
  .site-header { grid-template-columns: auto 1fr auto !important; gap: 22px !important; }
  .site-header .brand img { width: 210px; }
  .site-header .desktop-nav { justify-content: center; gap: 18px; font-size: .875rem; }
  .site-header .header-actions { gap: 14px; }
}
@media (max-width: 900px) {
  .heritage-section { grid-template-columns: 1fr; gap: 28px; }
  .heritage-portrait { order: -1; width: min(380px,100%); }
}
@media (max-width: 680px) {
  .section-page > .section:first-child, .section-page > .results-banner:first-child { margin-top: 30px; }
  .section-page h1 { font-size: clamp(2rem,8vw,2.8rem); }
  .home-page .hero h1 { font-size: clamp(2.15rem,8.5vw,3rem); }
  .home-page .hero-copy { padding: 36px 24px; }
  .home-page .hero-visual { min-height: 340px; }
  .home-page .hero-note { display: none; }
  .heritage-section.section { margin-top: 64px; margin-bottom: 64px; }
  .site-header .mobile-menu nav { max-height: calc(100dvh - 110px); overflow-y: auto; width: min(290px,calc(100vw - 32px)); }
  .site-footer { padding-bottom: 65px; }
}

.form-stage { display:flex; align-items:center; gap:12px; }
.form-stage > span { display:grid; place-items:center; width:36px; height:36px; background:var(--granate); color:#fff; border-radius:50%; font-weight:700; flex-shrink:0; }
.form-stage h2 { margin:0; font-size:1.3rem; }
.slot-picker { border:0; padding:0; margin:0; min-width:0; }
.slot-picker legend { font-weight:700; margin-bottom:14px; }
.slot-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(95px,1fr)); gap:10px; }
.booking-form .slot-option { display:flex; flex-direction:row; align-items:center; justify-content:center; gap:8px; padding:14px 10px; border:1px solid var(--linea); border-radius:12px; cursor:pointer; }
.booking-form .slot-option.selected { color:var(--granate); border:2px solid var(--granate); background:var(--marfil); }
.booking-form .slot-option input { width:18px; height:18px; min-height:0; padding:0; accent-color:var(--granate); }
.text-button { background:none; border:0; text-decoration:underline; color:var(--granate); padding:12px 0; min-height:44px; text-align:left; font:inherit; }
.availability-panel { margin-top:42px; border-top:2px solid var(--linea); padding-top:28px; }
.availability-filter { display:flex; flex-direction:column; gap:10px; font-weight:700; }
.availability-filter select { font:inherit; width:100%; min-height:48px; padding:12px; border:1px solid var(--linea); border-radius:12px; background:#fff; }
.availability-create { background:#fff; border:1px solid var(--linea); border-radius:16px; padding:20px; }
.availability-create summary { cursor:pointer; font-size:1.1rem; font-weight:700; color:var(--granate); min-height:44px; }
.availability-create .booking-form { border:0; padding:16px 0 0; }
.booking-form textarea { width:100%; font:inherit; padding:12px; border:1px solid #a59c9f; border-radius:10px; resize:vertical; color:var(--grafito); }
.availability-list { display:grid; gap:12px; margin-top:20px; }
.availability-list article { display:flex; justify-content:space-between; align-items:center; gap:20px; background:#fff; border:1px solid var(--linea); border-radius:12px; padding:18px; }
.availability-list p { margin:8px 0; text-wrap:pretty; }
.availability-list span { font-size:.875rem; color:#53565c; }

/* Catalog and appointment surfaces extend the existing Imagen BÑL theme. */
input, select, button { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: wait; opacity: .65; }
input:focus-visible, select:focus-visible, button:focus-visible { outline: 3px solid #a05d73; outline-offset: 3px; }
.catalog-controls, .form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.catalog-controls { grid-template-columns: 1.4fr 1fr 1fr; padding: 24px; background: #fff; border-radius: 20px; border: 1px solid var(--linea); }
.catalog-controls label, .booking-form label, .agenda-toolbar label { display: flex; flex-direction: column; gap: 8px; font-size: 1rem; font-weight: 700; min-width: 0; }
.catalog-controls input, .catalog-controls select, .booking-form input:not([type=checkbox]), .booking-form select, .agenda-toolbar input { width: 100%; min-width: 0; min-height: 48px; border: 1px solid #a59c9f; border-radius: 10px; background: #fff; color: #24272b; padding: 12px; font-size: 1rem; }
.price-group { margin: 32px 0; }
.price-group > h3 { font-size: 1.5rem; color: var(--granate); }
.price-list { overflow: hidden; border: 1px solid var(--linea); border-radius: 18px; background: #fff; }
.price-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 24px; padding: 24px; border-bottom: 1px solid var(--linea); }
.price-row:last-child { border: 0; }
.price-row h4 { font-size: 1.1rem; margin: 0 0 10px; }
.price-row p { margin: 10px 0 0; font-size: .95rem; color: #53565c; line-height: 1.6; text-wrap: pretty; }
.protocol-tag { display: inline-block; padding: 5px 10px; border-radius: 6px; background: #f6f1eb; color: #5b1f37; font-size: .875rem; }
.price-action { display: flex; flex-direction: column; align-items: flex-end; justify-content: center; gap: 12px; max-width: 240px; }
.price-action strong { font-size: 1.5rem; color: #5b1f37; }
.price-action small { font-size: .875rem; }
.study-price { display:flex; flex-direction:column; gap:5px; }
.study-price-original { display:flex; align-items:center; flex-wrap:wrap; gap:6px 9px; color:#62565c; font-size:.86rem; }
.study-price-original s { font-size:1rem; text-decoration-thickness:1.5px; }
.web-price-badge { display:inline-block; background:#f0e1e7; color:#5b1f37; border-radius:6px; padding:3px 8px; font-weight:700; }
.study-price strong { color:#5b1f37; font-size:1.65rem; }
.web-price-caption { font-size:.8rem; color:#62565c; }
.price-action .study-price { align-items:flex-end; text-align:right; }
.price-action .study-price-original { justify-content:flex-end; }
.catalog-breadcrumb { display:flex; flex-wrap:wrap; gap:14px 30px; margin-bottom:28px; }
.service-title-link { color:inherit; text-decoration:none; }
.service-title-link:hover { text-decoration:underline; }
.directory-card a.service-media { display:block; }
.promotion-card .study-price { margin:14px 0; }
.promotion-card .study-price strong { color:#fff; }
.promotion-card .study-price-original, .promotion-card .web-price-caption { color:#f1e5ec; }
#promociones { scroll-margin-top:125px; }
@media (max-width:680px) {
  .price-action .study-price { align-items:flex-start; text-align:left; }
  .price-action .study-price-original { justify-content:flex-start; }
}
.price-action > span { font-size: .875rem; text-align: right; }
.booking-page { width: min(1200px,calc(100% - 48px)); margin: 0 auto; padding: 36px 0 80px; }
.booking-brand { display: block; width: 250px; max-width: 100%; margin-bottom: 32px; }
.booking-brand img { width: 100%; }
.booking-layout { display: grid; grid-template-columns: .85fr 1.15fr; gap: 60px; margin-top: 36px; }
.booking-layout h1, .agenda-page h1, .privacy-page h1 { font-size: clamp(2.1rem,4vw,3.5rem); line-height: 1.12; }
.booking-layout p, .privacy-page p { line-height: 1.7; text-wrap: pretty; }
.booking-layout address { font-style: normal; color: #5b1f37; line-height: 1.7; }
.booking-steps { padding-left: 24px; line-height: 1.65; }
.booking-steps li { padding: 8px 0; }
.booking-form, .booking-success { min-width: 0; background: #fff; padding: 30px; border: 1px solid var(--linea); border-top: 5px solid var(--granate); border-radius: 20px; display: flex; flex-direction: column; gap: 20px; }
.booking-form p { margin: 0; line-height: 1.6; font-size: .95rem; text-wrap: pretty; }
.booking-quote { border-radius: 12px; padding: 18px; background: var(--marfil); }
.booking-quote strong { font-size: 1.5rem; color: var(--granate); display: block; }
.booking-quote span { display: block; margin: 8px 0; }
.booking-form .consent { flex-direction: row; align-items: flex-start; font-weight: 400; font-size: .95rem; line-height: 1.55; }
.consent input { width: 22px; height: 22px; flex-shrink: 0; margin: 3px 0; accent-color: var(--granate); }
.consent a, .privacy-page p a, .small-copy a, .notice a { text-decoration: underline; color: var(--granate); }
.notice { padding: 16px; background: #f6f1eb; border-left: 3px solid #8a465e; border-radius: 6px; }
.form-error { padding: 16px; background: #fff0ee; border-left: 3px solid #a32128; color: #842028; border-radius: 6px; }
.honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.privacy-page { max-width: 850px; }
.privacy-page h2 { font-size: 1.5rem; margin-top: 32px; }
.agenda-page { width: min(1500px,calc(100% - 48px)); margin: auto; padding: 24px 0 60px; }
.agenda-header { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding-bottom: 24px; margin-bottom: 36px; border-bottom: 1px solid var(--linea); }
.agenda-header img { width: 220px; }
.agenda-toolbar { display: flex; gap: 14px; align-items: flex-end; flex-wrap: wrap; margin-bottom: 24px; }
.agenda-toolbar button, .editor-title button { padding: 12px 18px; border: 1px solid var(--linea); border-radius: 10px; background: #fff; color: #5b1f37; min-height: 48px; }
.week-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 10px; margin: 24px 0; }
.week-grid button { border: 1px solid var(--linea); border-radius: 14px; background: #fff; color: var(--grafito); padding: 18px 8px; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.week-grid button.day-selected { background: var(--granate); color: #fff; }
.week-grid strong { font-size: 1.5rem; }
.week-grid small { font-size: .875rem; }
.agenda-columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; align-items: start; }
.agenda-columns h2 { font-size: 1.5rem; }
.appointment-card { width: 100%; display: flex; flex-direction: column; gap: 9px; text-align: left; background: #fff; border: 1px solid var(--linea); border-radius: 14px; padding: 20px; margin-bottom: 12px; }
.appointment-card small { font-size: .875rem; color: #53565c; }
.status { align-self: flex-start; border-radius: 6px; padding: 5px 9px; font-size: .875rem; background: #f9ebd0; color: #694b00; }
.status--confirmada { background: #d9ebe0; color: #19562d; }
.status--cancelada { background: #f7dddd; color: #7b2727; }
.status--realizada { background: #e8e8eb; color: #37373f; }
.appointment-editor { grid-column: 1 / -1; padding: 26px; border: 2px solid #5b1f37; background: #fff; border-radius: 20px; }
.appointment-editor .booking-form { border: 0; padding: 24px 0 0; }
.editor-title { display: flex; justify-content: space-between; gap: 16px; align-items: center; }
@media (max-width: 900px) {
  .catalog-controls { grid-template-columns: 1fr; }
  .booking-layout { grid-template-columns: 1fr; gap: 28px; }
  .week-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
}
@media (max-width: 600px) {
  .booking-page, .agenda-page { width: calc(100% - 28px); }
  .price-row { grid-template-columns: 1fr; padding: 18px; }
  .price-action { align-items: flex-start; max-width: none; }
  .price-action > span { text-align: left; }
  .booking-form, .booking-success { padding: 20px; }
  .form-grid, .agenda-columns { grid-template-columns: 1fr; }
  .week-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .agenda-header { flex-direction: column; align-items: flex-start; }
}

@font-face {
  font-family: "Noto Sans BNL";
  src: url("/fonts/NotoSans-Regular.ttf") format("truetype");
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Noto Sans BNL";
  src: url("/fonts/NotoSans-Bold.ttf") format("truetype");
  font-weight: 700;
  font-display: swap;
}

:root {
  --granate: #5b1f37;
  --granate-dark: #3f1124;
  --ciruela: #8a465e;
  --grafito: #24272b;
  --gris: #646b72;
  --marfil: #f6f1eb;
  --blanco: #ffffff;
  --linea: rgba(91, 31, 55, 0.16);
  --shadow: 0 24px 70px rgba(36, 39, 43, 0.13);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--marfil);
  color: var(--grafito);
  font-family: "Noto Sans BNL", Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
h1, h2, h3, p { text-wrap: balance; }

.site-header {
  width: min(1440px, calc(100% - 72px));
  min-height: 96px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 40px;
  border-bottom: 1px solid var(--linea);
}
.brand img { display: block; width: 270px; height: auto; }
.desktop-nav { display: flex; gap: 34px; color: var(--gris); font-size: .94rem; }
.desktop-nav a:hover, .text-link:hover { color: var(--granate); }
.header-actions { display: flex; justify-content: flex-end; align-items: center; gap: 22px; }
.text-link { color: var(--granate); font-weight: 700; font-size: .92rem; }

.button {
  min-height: 54px;
  padding: 0 28px;
  border: 1px solid var(--granate);
  border-radius: 999px;
  background: var(--granate);
  color: var(--blanco);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  transition: transform 160ms ease, background 160ms ease, box-shadow 160ms ease;
}
.button:hover {
  background: var(--granate-dark);
  box-shadow: 0 12px 30px rgba(91, 31, 55, .2);
  transform: translateY(-2px);
}
.button:focus-visible, a:focus-visible {
  outline: 3px solid rgba(138, 70, 94, .4);
  outline-offset: 4px;
}
.button--small { min-height: 42px; padding: 0 21px; font-size: .9rem; }
.button--ghost { background: transparent; color: var(--granate); }
.button--ghost:hover { background: rgba(91, 31, 55, .06); }

.hero {
  width: min(1440px, calc(100% - 72px));
  min-height: 720px;
  margin: 34px auto 0;
  display: grid;
  grid-template-columns: 1.02fr .98fr;
  overflow: hidden;
  border-radius: 30px;
  background: #fbf8f4;
  box-shadow: var(--shadow);
}
.hero-copy {
  padding: clamp(62px, 7vw, 108px) clamp(48px, 6vw, 94px) 54px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.eyebrow {
  margin: 0 0 26px;
  color: var(--ciruela);
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.eyebrow span {
  width: 42px;
  height: 3px;
  margin-right: 12px;
  border-radius: 999px;
  display: inline-block;
  vertical-align: middle;
  background: var(--granate);
}
h1 {
  max-width: 700px;
  margin: 0;
  font-size: clamp(3.2rem, 5.15vw, 5.65rem);
  line-height: 1.02;
  letter-spacing: -.045em;
}
h1 span { color: var(--granate); }
.hero-lead {
  max-width: 650px;
  margin: 30px 0 0;
  color: var(--gris);
  font-size: clamp(1rem, 1.35vw, 1.22rem);
  line-height: 1.65;
}
.hero-actions { margin-top: 34px; display: flex; flex-wrap: wrap; gap: 14px; }
.trust-row {
  margin-top: 52px;
  padding-top: 27px;
  border-top: 1px solid var(--linea);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.trust-row strong, .trust-row span { display: block; }
.trust-row strong { color: var(--granate); font-size: 1.12rem; }
.trust-row span { margin-top: 3px; color: var(--gris); font-size: .82rem; }

.hero-visual { min-height: 720px; position: relative; overflow: hidden; background: var(--granate-dark); }
.hero-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(63,17,36,.14), transparent 35%), linear-gradient(0deg, rgba(36,39,43,.15), transparent 48%);
  pointer-events: none;
}
.hero-visual > img { width: 100%; height: 100%; object-fit: cover; object-position: 61% center; display: block; }
.illustrative-label {
  position: absolute;
  top: 22px;
  right: 22px;
  z-index: 2;
  padding: 8px 13px;
  border: 1px solid rgba(255,255,255,.62);
  border-radius: 999px;
  background: rgba(36,39,43,.5);
  color: #fff;
  backdrop-filter: blur(8px);
  font-size: .7rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.hero-note {
  position: absolute;
  z-index: 2;
  left: 28px;
  right: 28px;
  bottom: 28px;
  padding: 22px;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 22px;
  background: rgba(246,241,235,.88);
  backdrop-filter: blur(14px);
  display: grid;
  grid-template-columns: 54px 1fr;
  gap: 16px;
  align-items: center;
}
.hero-note p { margin: 0; font-size: .92rem; line-height: 1.5; }
.note-icon {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--granate);
  color: #fff;
  font-size: .76rem;
  font-weight: 700;
}

.services-preview { width: min(1280px, calc(100% - 72px)); margin: 128px auto; }
.section-heading { max-width: 760px; }
.section-heading h2 { margin: 0; font-size: clamp(2.2rem, 4vw, 4rem); line-height: 1.08; letter-spacing: -.035em; }
.service-grid { margin-top: 54px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.service-card {
  min-height: 310px;
  padding: 30px;
  border: 1px solid var(--linea);
  border-radius: 24px;
  background: rgba(255,255,255,.58);
  display: flex;
  flex-direction: column;
}
.service-card--featured { background: var(--granate); color: var(--blanco); }
.service-number { color: var(--ciruela); font-size: .82rem; font-weight: 700; letter-spacing: .12em; }
.service-card--featured .service-number { color: #e7c2cf; }
.service-card h3 { margin: 55px 0 12px; font-size: 1.36rem; line-height: 1.2; }
.service-card p { margin: 0; color: var(--gris); font-size: .92rem; line-height: 1.55; }
.service-card--featured p { color: rgba(255,255,255,.72); }
.service-card a { margin-top: auto; padding-top: 28px; color: var(--granate); font-size: .86rem; font-weight: 700; }
.service-card--featured a { color: var(--blanco); }

@media (max-width: 1080px) {
  .site-header { grid-template-columns: 1fr auto; }
  .desktop-nav { display: none; }
  .hero { grid-template-columns: 1fr; }
  .hero-visual { min-height: 560px; }
  .service-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 680px) {
  .site-header, .hero, .services-preview { width: calc(100% - 32px); }
  .site-header { min-height: 80px; gap: 12px; }
  .brand img { width: 178px; }
  .header-actions .text-link { display: none; }
  .button--small { min-height: 40px; padding: 0 17px; }
  .hero { margin-top: 20px; border-radius: 22px; }
  .hero-copy { padding: 54px 28px 38px; }
  h1 { font-size: clamp(2.7rem, 13.7vw, 4rem); }
  .hero-actions { flex-direction: column; }
  .hero-actions .button { width: 100%; }
  .trust-row { grid-template-columns: 1fr 1fr; }
  .trust-row > div:last-child { display: none; }
  .hero-visual { min-height: 470px; }
  .hero-note { left: 16px; right: 16px; bottom: 16px; grid-template-columns: 46px 1fr; padding: 16px; }
  .note-icon { width: 46px; height: 46px; }
  .services-preview { margin-top: 88px; margin-bottom: 88px; }
  .service-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; }
}

.skip-link {
  position: fixed;
  z-index: 1000;
  left: 16px;
  top: -70px;
  padding: 12px 18px;
  border-radius: 10px;
  background: var(--grafito);
  color: #fff;
  font-weight: 700;
}
.skip-link:focus { top: 16px; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(246, 241, 235, .92);
  backdrop-filter: blur(18px);
}

.mobile-menu { display: none; position: relative; }
.mobile-menu summary {
  list-style: none;
  cursor: pointer;
  color: var(--granate);
  font-weight: 700;
  font-size: .9rem;
}
.mobile-menu summary::-webkit-details-marker { display: none; }
.mobile-menu nav {
  position: absolute;
  top: 44px;
  right: 0;
  width: 230px;
  padding: 14px;
  border: 1px solid var(--linea);
  border-radius: 16px;
  background: var(--marfil);
  box-shadow: var(--shadow);
  display: grid;
}
.mobile-menu nav a {
  padding: 12px;
  border-bottom: 1px solid var(--linea);
  color: var(--granate);
  font-size: .9rem;
}
.mobile-menu nav a:last-child { border-bottom: 0; }

.section {
  width: min(1280px, calc(100% - 72px));
  margin: 140px auto;
}
.section-intro { max-width: 800px; }
.section-intro h2,
.preparation-copy h2,
.story-copy h2,
.location-card h2,
.equipment-copy h2,
.results-banner h2,
.final-cta h2,
.process-section h2 {
  margin: 0;
  font-size: clamp(2.35rem, 4.6vw, 4.65rem);
  line-height: 1.04;
  letter-spacing: -.04em;
}
.split-heading {
  max-width: none;
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 84px;
  align-items: end;
}
.split-heading > p {
  margin: 0 0 7px;
  color: var(--gris);
  line-height: 1.7;
}
.section-lead {
  margin: 28px 0 0;
  color: var(--gris);
  font-size: 1.06rem;
  line-height: 1.72;
}

.service-directory {
  margin-top: 64px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 22px;
}
.directory-card {
  min-height: 420px;
  border: 1px solid var(--linea);
  border-radius: 28px;
  overflow: hidden;
  background: rgba(255,255,255,.6);
  display: grid;
  grid-template-columns: .88fr 1.12fr;
  box-shadow: 0 16px 45px rgba(36,39,43,.06);
}
.service-media { min-height: 100%; position: relative; overflow: hidden; background: #e9e2dc; }
.service-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.service-media--pattern {
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 20% 20%, rgba(255,255,255,.46), transparent 28%),
    repeating-radial-gradient(circle at 58% 48%, transparent 0 30px, rgba(246,241,235,.26) 31px 34px),
    linear-gradient(145deg, var(--granate-dark), var(--ciruela));
}
.pattern-mark {
  color: rgba(255,255,255,.8);
  font-size: clamp(3.5rem, 7vw, 6rem);
  font-weight: 700;
}
.media-label {
  position: absolute;
  left: 14px;
  bottom: 14px;
  padding: 7px 10px;
  border: 1px solid rgba(255,255,255,.62);
  border-radius: 999px;
  background: rgba(36,39,43,.54);
  color: #fff;
  backdrop-filter: blur(8px);
  font-size: .62rem;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.service-content { padding: 30px 28px; display: flex; flex-direction: column; }
.service-content h3 { margin: 18px 0 10px; color: var(--granate); font-size: 1.52rem; }
.service-content > p { margin: 0; color: var(--gris); font-size: .9rem; line-height: 1.56; }
.service-content ul {
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.service-content li {
  padding: 6px 9px;
  border-radius: 999px;
  background: rgba(91,31,55,.07);
  color: var(--granate);
  font-size: .72rem;
}
.service-cta {
  margin-top: auto;
  padding-top: 22px;
  color: var(--granate);
  font-size: .84rem;
  font-weight: 700;
}
.catalog-note {
  max-width: 850px;
  margin: 32px auto 0;
  text-align: center;
  color: var(--gris);
  font-size: .88rem;
  line-height: 1.65;
}

.catalog-section {
  padding: clamp(46px, 6vw, 78px);
  border: 1px solid var(--linea);
  border-radius: 32px;
  background: rgba(255,255,255,.58);
  box-shadow: 0 18px 58px rgba(36,39,43,.06);
}
.catalog-groups {
  margin-top: 58px;
  border-top: 1px solid var(--linea);
}
.catalog-group { border-bottom: 1px solid var(--linea); }
.catalog-group > summary {
  min-height: 102px;
  padding: 24px 4px;
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}
.catalog-group > summary::-webkit-details-marker { display: none; }
.catalog-summary-copy { display: grid; gap: 7px; }
.catalog-summary-copy strong { color: var(--granate); font-size: clamp(1.25rem, 2vw, 1.75rem); }
.catalog-summary-copy small { color: var(--gris); font-size: .78rem; font-weight: 400; }
.catalog-toggle {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  border: 1px solid var(--linea);
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--granate);
  font-size: 1.35rem;
  transition: transform 160ms ease, background 160ms ease;
}
.catalog-group[open] .catalog-toggle { transform: rotate(45deg); background: rgba(91,31,55,.07); }
.catalog-body {
  padding: 0 4px 42px;
  display: grid;
  grid-template-columns: minmax(220px, .7fr) minmax(0, 1.3fr);
  gap: 54px;
}
.catalog-description { align-self: start; }
.catalog-description > p { margin: 0; color: var(--gris); line-height: 1.7; }
.catalog-description .service-cta { display: inline-flex; margin-top: 28px; padding-top: 0; }
.catalog-items {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 18px;
}
.catalog-items li {
  min-height: 48px;
  padding: 11px 13px;
  border: 1px solid rgba(91,31,55,.1);
  border-radius: 12px;
  background: rgba(246,241,235,.64);
  display: flex;
  align-items: center;
  gap: 9px;
  color: var(--grafito);
  font-size: .82rem;
  line-height: 1.45;
}
.catalog-items li span { color: var(--ciruela); font-weight: 700; }
.catalog-disclaimer {
  margin-top: 34px;
  padding: 20px 22px;
  border-left: 4px solid var(--granate);
  border-radius: 0 14px 14px 0;
  background: rgba(91,31,55,.06);
  color: var(--gris);
  font-size: .84rem;
  line-height: 1.65;
}
.catalog-disclaimer strong { color: var(--granate); }

.mammography-equipment-section {
  min-height: 640px;
  border: 1px solid var(--linea);
  border-radius: 32px;
  overflow: hidden;
  background: rgba(255,255,255,.72);
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  box-shadow: 0 18px 58px rgba(36,39,43,.08);
}
.equipment-image {
  min-height: 640px;
  position: relative;
  overflow: hidden;
  background: #e9e2dc;
}
.equipment-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 46% center;
  display: block;
}
.equipment-copy {
  padding: clamp(48px, 6vw, 86px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.equipment-copy h2 { max-width: 620px; }
.equipment-features {
  margin: 38px 0 36px;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--linea);
}
.equipment-features li {
  padding: 19px 0;
  border-bottom: 1px solid var(--linea);
  display: grid;
  gap: 6px;
}
.equipment-features strong { color: var(--granate); font-size: .96rem; }
.equipment-features span { color: var(--gris); font-size: .86rem; line-height: 1.55; }
.equipment-copy .button { align-self: flex-start; }

.process-section {
  width: min(1440px, calc(100% - 72px));
  margin: 130px auto;
  padding: clamp(60px, 8vw, 112px);
  border-radius: 32px;
  background:
    radial-gradient(circle at 90% 10%, rgba(138,70,94,.78), transparent 32%),
    var(--granate-dark);
  color: #fff;
}
.eyebrow--light { color: #e9c6d1; }
.eyebrow--light span { background: #fff; }
.process-section .section-intro { max-width: 860px; }
.process-grid {
  margin: 62px 0 46px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
.process-grid article {
  min-height: 230px;
  padding: 28px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 22px;
  background: rgba(255,255,255,.07);
}
.process-grid article > span { color: #e9c6d1; font-size: .78rem; font-weight: 700; letter-spacing: .12em; }
.process-grid h3 { margin: 44px 0 12px; font-size: 1.3rem; }
.process-grid p { margin: 0; color: rgba(255,255,255,.72); line-height: 1.6; font-size: .9rem; }
.button--ivory { border-color: var(--marfil); background: var(--marfil); color: var(--granate); }
.button--ivory:hover { border-color: #fff; background: #fff; color: var(--granate-dark); }
.button--outline-light { border-color: rgba(255,255,255,.72); background: transparent; color: #fff; }
.button--outline-light:hover { border-color: #fff; background: rgba(255,255,255,.1); color: #fff; }

.preparation-section {
  display: grid;
  grid-template-columns: .88fr 1.12fr;
  gap: 100px;
  align-items: start;
}
.preparation-copy { position: sticky; top: 130px; }
.safety-note {
  margin-top: 38px;
  padding: 22px;
  border-left: 4px solid var(--granate);
  border-radius: 0 14px 14px 0;
  background: rgba(255,255,255,.58);
}
.safety-note strong { color: var(--granate); }
.safety-note p { margin: 6px 0 0; color: var(--gris); font-size: .9rem; line-height: 1.6; }
.faq-list { border-top: 1px solid var(--linea); }
.faq-list details { border-bottom: 1px solid var(--linea); }
.faq-list summary {
  padding: 25px 0;
  list-style: none;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  color: var(--grafito);
  font-weight: 700;
  font-size: 1.05rem;
}
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary span { color: var(--granate); font-size: 1.35rem; }
.faq-list details[open] summary span { transform: rotate(45deg); }
.faq-list details p { margin: -4px 50px 26px 0; color: var(--gris); line-height: 1.7; font-size: .94rem; }

.story-section {
  min-height: 630px;
  overflow: hidden;
  border-radius: 32px;
  background: #fff;
  display: grid;
  grid-template-columns: .78fr 1.22fr;
  box-shadow: var(--shadow);
}
.story-portrait { margin: 0; min-width: 0; padding: clamp(24px,3vw,42px); background: var(--granate-dark); color: #fff; display: flex; flex-direction: column; justify-content: center; gap: 30px; }
.story-portrait img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; border: 1px solid rgba(255,255,255,.25); }
.story-portrait figcaption { border-top: 1px solid rgba(255,255,255,.25); padding-top: 24px; }
.story-portrait figcaption span { display: block; color: #ecd2dc; font-size: .75rem; line-height: 1.6; letter-spacing: .08em; text-transform: uppercase; }
.story-portrait figcaption strong { display: block; font-size: clamp(1.35rem,2.2vw,1.8rem); line-height: 1.35; margin-top: 12px; text-wrap: balance; }
.story-portrait figcaption p { margin: 12px 0 0; color: #ecd2dc; font-size: .9rem; line-height: 1.6; }
.story-copy { padding: clamp(60px, 7vw, 100px); }
.principles-grid {
  margin-top: 48px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.principles-grid article { padding-top: 22px; border-top: 3px solid var(--granate); }
.principles-grid article > span { color: var(--ciruela); font-size: .75rem; font-weight: 700; }
.principles-grid h3 { margin: 30px 0 8px; font-size: 1rem; }
.principles-grid p { margin: 0; color: var(--gris); font-size: .82rem; line-height: 1.55; }
.story-followup { margin-top: 16px; }

.doctor-grid {
  margin-top: 62px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}
.doctor-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--linea);
  border-radius: 26px;
  background: rgba(255,255,255,.66);
  box-shadow: 0 14px 40px rgba(36,39,43,.055);
}
.doctor-photo {
  min-height: 270px;
  padding: 30px;
  position: relative;
  overflow: hidden;
  background:
    repeating-radial-gradient(circle at 50% 46%, transparent 0 38px, rgba(255,255,255,.13) 40px 43px),
    linear-gradient(145deg, var(--ciruela), var(--granate-dark));
  color: #fff;
  display: grid;
  place-items: center;
}
.doctor-photo::after {
  content: "";
  width: 145px;
  height: 145px;
  border: 1px solid rgba(255,255,255,.34);
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.doctor-photo > span {
  z-index: 1;
  font-size: 2.25rem;
  font-weight: 700;
  letter-spacing: -.04em;
}
.doctor-photo > small {
  position: absolute;
  z-index: 1;
  left: 20px;
  bottom: 18px;
  color: rgba(255,255,255,.76);
  font-size: .69rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.doctor-copy { min-height: 276px; padding: 28px; display: flex; flex-direction: column; }
.doctor-index { color: var(--ciruela); font-size: .72rem; font-weight: 700; letter-spacing: .12em; }
.doctor-copy h3 { margin: 22px 0 9px; color: var(--granate); font-size: 1.22rem; line-height: 1.26; }
.doctor-copy strong { color: var(--grafito); font-size: .8rem; line-height: 1.45; }
.doctor-copy p { margin: 18px 0 0; color: var(--gris); font-size: .84rem; line-height: 1.65; }
.team-validation {
  max-width: 860px;
  margin: 32px auto 0;
  text-align: center;
  color: var(--gris);
  font-size: .8rem;
  line-height: 1.65;
}

.promotion-grid { margin-top: 62px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 26px; }
.pink-campaign {
  width: min(1280px, calc(100% - 72px));
  margin: 38px auto 0;
  padding: clamp(24px, 4vw, 52px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, .68fr);
  align-items: center;
  gap: clamp(26px, 4vw, 60px);
  border: 2px solid #a05d73;
  border-radius: 30px;
  background: radial-gradient(circle at 15% 10%, #7a2a4c 0, #5b1f37 48%, #3d1329 100%);
  box-shadow: 0 22px 55px rgba(61, 19, 41, .18);
  color: #f6f1eb;
}
.pink-campaign-copy { min-width: 0; }
.pink-campaign-eyebrow {
  margin: 0 0 24px;
  color: #ff7dbd;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.pink-campaign h2 {
  margin: 0;
  color: #fff;
  font-size: clamp(2.7rem, 5vw, 5rem);
  line-height: 1.04;
  letter-spacing: -.045em;
}
.pink-campaign-lead { max-width: 530px; margin: 24px 0 0; font-size: clamp(1.1rem, 1.8vw, 1.4rem); line-height: 1.55; }
.pink-campaign-awareness { margin: 28px 0 0; color: #ffd6e9; font-size: .95rem; line-height: 1.55; }
.pink-campaign-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 24px; margin-top: 32px; }
.pink-campaign-button { background: #ff2d95; border-color: #ff2d95; color: #28101b; }
.pink-campaign-button:hover { background: #ff64ad; border-color: #ff64ad; }
.pink-campaign-link { color: #fff; font-weight: 700; text-decoration: underline; text-underline-offset: 5px; }
.pink-campaign > img { display: block; width: 100%; max-height: 570px; object-fit: contain; border-radius: 20px; }
.promotion-card {
  min-height: 550px;
  overflow: hidden;
  border-radius: 28px;
  background: var(--granate-dark);
  color: #fff;
  display: grid;
  grid-template-columns: .92fr 1.08fr;
}
.promotion-card img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.promotion-card img.promotion-poster {
  object-fit: contain;
  object-position: center;
  padding: 14px;
  background: #f6eee8;
}
.promotion-card > div { padding: 42px 34px; display: flex; flex-direction: column; }
.promotion-card > div > span { color: #e9c6d1; font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.promotion-card h3 { margin: 26px 0 18px; font-size: clamp(2.1rem, 3.5vw, 3.65rem); line-height: 1; }
.promotion-card h3 small { display: block; margin-top: 7px; font-size: .4em; line-height: 1.2; color: #e9c6d1; }
.promotion-card p { margin: 0; color: rgba(255,255,255,.74); font-size: .9rem; line-height: 1.65; }
.promotion-card a { margin-top: auto; padding-top: 30px; color: #fff; font-weight: 700; font-size: .85rem; }

.results-banner {
  width: min(1440px, calc(100% - 72px));
  margin: 130px auto;
  padding: clamp(52px, 7vw, 94px);
  border-radius: 30px;
  background:
    radial-gradient(circle at 78% 0%, rgba(138,70,94,.7), transparent 34%),
    var(--granate);
  color: #fff;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 70px;
  align-items: center;
}
.results-banner p:not(.eyebrow) { margin: 22px 0 0; color: rgba(255,255,255,.76); }
.results-actions { display: grid; gap: 16px; justify-items: start; }
.inline-link { color: var(--granate); font-weight: 700; font-size: .87rem; }
.inline-link--light { color: #fff; }

.location-section {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 24px;
}
.location-card {
  padding: clamp(46px, 6vw, 78px);
  border: 1px solid var(--linea);
  border-radius: 28px;
  background: rgba(255,255,255,.62);
}
.location-card address { margin-top: 30px; color: var(--gris); font-style: normal; line-height: 1.7; }
.contact-list { margin: 34px 0 0; }
.contact-list > div { padding: 15px 0; border-top: 1px solid var(--linea); display: grid; grid-template-columns: 140px 1fr; gap: 20px; }
.contact-list dt { color: var(--gris); font-size: .78rem; }
.contact-list dd { margin: 0; color: var(--granate); font-weight: 700; font-size: .88rem; }
.phone-links { display: flex; flex-wrap: wrap; gap: 8px 16px; }
.phone-links a { white-space: nowrap; }
.social-links { display: flex; flex-wrap: wrap; gap: 8px 14px; }
.social-links a { white-space: nowrap; }
.contact-privacy {
  margin: 24px 0 0;
  padding: 16px 18px;
  border-radius: 14px;
  background: rgba(91,31,55,.06);
  color: var(--gris);
  font-size: .78rem;
  line-height: 1.6;
}
.location-actions { margin-top: 34px; display: flex; flex-wrap: wrap; gap: 12px; }
.map-card {
  min-height: 620px;
  position: relative;
  overflow: hidden;
  border-radius: 28px;
  background:
    linear-gradient(145deg, rgba(246,241,235,.92), rgba(231,218,216,.86)),
    var(--marfil);
}
.map-card::before,
.map-card::after {
  content: "";
  position: absolute;
  border: 2px solid rgba(91,31,55,.12);
  border-radius: 50%;
}
.map-card::before { width: 520px; height: 520px; top: -190px; right: -120px; }
.map-card::after { width: 350px; height: 350px; bottom: -100px; left: -80px; }
.map-road { position: absolute; height: 24px; border-radius: 999px; background: rgba(255,255,255,.9); box-shadow: 0 0 0 1px rgba(91,31,55,.08); transform: rotate(-18deg); }
.map-road--one { width: 120%; left: -10%; top: 38%; }
.map-road--two { width: 110%; left: 5%; top: 66%; transform: rotate(26deg); }
.map-pin {
  position: absolute;
  z-index: 2;
  top: 48%;
  left: 51%;
  width: 88px;
  height: 88px;
  border: 8px solid rgba(255,255,255,.85);
  border-radius: 50% 50% 50% 10%;
  background: var(--granate);
  color: #fff;
  box-shadow: 0 18px 45px rgba(91,31,55,.3);
  transform: rotate(-45deg);
  display: grid;
  place-items: center;
  font-weight: 700;
}
.map-pin::first-letter { transform: rotate(45deg); }
.map-label {
  position: absolute;
  z-index: 3;
  top: 39%;
  left: 12%;
  padding: 13px 18px;
  border-radius: 12px;
  background: #fff;
  color: var(--grafito);
  box-shadow: 0 10px 30px rgba(36,39,43,.12);
  font-size: .85rem;
  font-weight: 700;
}
.map-card > strong { position: absolute; z-index: 3; left: 38px; bottom: 34px; color: var(--granate); }

.final-cta {
  width: min(1280px, calc(100% - 72px));
  margin: 140px auto 0;
  padding: clamp(64px, 9vw, 120px);
  border-radius: 32px 32px 0 0;
  background: var(--granate-dark);
  color: #fff;
  text-align: center;
}
.final-cta img { width: 300px; margin: 0 auto 48px; }
.final-cta h2 { max-width: 850px; margin-left: auto; margin-right: auto; }
.final-cta p { max-width: 680px; margin: 24px auto 35px; color: rgba(255,255,255,.74); line-height: 1.7; }
.final-contact-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }

.site-footer { background: #fff; }
.footer-top,
.footer-note { width: min(1280px, calc(100% - 72px)); margin: 0 auto; }
.footer-top {
  min-height: 150px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}
.footer-top img { width: 255px; }
.footer-top nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 24px; color: var(--gris); font-size: .84rem; }
.footer-note { padding: 28px 0 42px; border-top: 1px solid var(--linea); color: var(--gris); font-size: .75rem; line-height: 1.6; }
.footer-note > p { max-width: 850px; }
.footer-note details { max-width: 850px; margin: 18px 0; }
.footer-note summary { cursor: pointer; color: var(--granate); font-weight: 700; }
.footer-note details p { margin: 8px 0 0; }
.footer-note > span { display: block; margin-top: 18px; }

.floating-whatsapp {
  position: fixed;
  z-index: 90;
  right: 20px;
  bottom: 20px;
  min-height: 48px;
  padding: 0 19px 0 10px;
  border-radius: 999px;
  background: var(--granate);
  color: #fff;
  box-shadow: 0 14px 38px rgba(91,31,55,.33);
  display: none;
  align-items: center;
  gap: 8px;
  font-size: .85rem;
  font-weight: 700;
}
.floating-whatsapp span { width: 32px; height: 32px; border-radius: 50%; background: rgba(255,255,255,.15); display: grid; place-items: center; font-size: .65rem; }

@media (max-width: 1180px) {
  .mobile-menu { display: block; }
  .desktop-nav { display: none; }
  .site-header { grid-template-columns: 1fr auto; }
  .directory-card { grid-template-columns: 1fr; }
  .service-media { min-height: 250px; }
  .promotion-card { grid-template-columns: 1fr; }
  .promotion-card img { height: 360px; object-position: 50% 25%; }
  .promotion-card img.promotion-poster {
    height: auto;
    max-height: 720px;
    object-position: center;
  }
  .doctor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .section, .process-section, .results-banner, .final-cta { width: calc(100% - 36px); }
  .split-heading, .preparation-section, .story-section, .results-banner, .location-section, .mammography-equipment-section { grid-template-columns: 1fr; }
  .split-heading { gap: 24px; }
  .service-directory, .promotion-grid { grid-template-columns: 1fr; }
  .catalog-body { grid-template-columns: 1fr; gap: 28px; }
  .process-grid { grid-template-columns: 1fr; }
  .process-grid article { min-height: auto; }
  .process-grid h3 { margin-top: 26px; }
  .preparation-copy { position: static; }
  .story-portrait img, .story-portrait figcaption { width: 100%; max-width: 480px; margin-left: auto; margin-right: auto; }
  .equipment-image { min-height: 460px; }
  .principles-grid { grid-template-columns: 1fr; }
  .principles-grid article { display: grid; grid-template-columns: 48px 1fr; column-gap: 14px; }
  .principles-grid h3 { margin: 0; }
  .principles-grid p { grid-column: 2; }
  .results-actions { justify-items: stretch; }
  .map-card { min-height: 480px; }
}

@media (max-width: 680px) {
  .pink-campaign { width: calc(100% - 32px); grid-template-columns: 1fr; padding: 24px; gap: 24px; }
  .pink-campaign > img { max-height: none; }
  .pink-campaign-actions { align-items: stretch; flex-direction: column; }
  .pink-campaign-button { text-align: center; }
  .site-header, .hero, .section, .process-section, .results-banner, .final-cta, .footer-top, .footer-note { width: calc(100% - 32px); }
  .site-header { min-height: 78px; }
  .brand img { width: 172px; }
  .header-actions { gap: 12px; }
  .header-actions .text-link { display: none; }
  .header-actions .button--small { display: none; }
  .mobile-menu nav { right: -2px; }
  .section { margin-top: 96px; margin-bottom: 96px; }
  .catalog-section { padding: 42px 22px; }
  .catalog-group > summary { min-height: 88px; padding: 20px 0; }
  .catalog-body { padding-left: 0; padding-right: 0; }
  .catalog-items { grid-template-columns: 1fr; }
  .equipment-image { min-height: 330px; }
  .equipment-copy { padding: 44px 26px; }
  .equipment-copy .button { width: 100%; }
  .process-section, .results-banner { margin-top: 96px; margin-bottom: 96px; padding: 50px 24px; }
  .service-directory { margin-top: 40px; }
  .directory-card { min-height: auto; }
  .service-content { min-height: 410px; }
  .promotion-card > div { min-height: 360px; padding: 34px 26px; }
  .promotion-card img { height: 330px; }
  .promotion-card img.promotion-poster {
    height: auto;
    max-height: none;
    padding: 8px;
  }
  .story-copy { padding: 48px 26px; }
  .doctor-grid { grid-template-columns: 1fr; }
  .doctor-photo { min-height: 240px; }
  .location-card { padding: 44px 24px; }
  .contact-list > div { grid-template-columns: 1fr; gap: 4px; }
  .location-actions { flex-direction: column; }
  .location-actions .button { width: 100%; }
  .final-cta { margin-top: 96px; padding: 60px 24px; }
  .final-cta img { width: 225px; }
  .final-contact-actions { flex-direction: column; }
  .final-contact-actions .button { width: 100%; }
  .footer-top { padding: 42px 0; align-items: flex-start; flex-direction: column; }
  .footer-top nav { justify-content: flex-start; }
  .floating-whatsapp { display: flex; }
}
/* Private payment pilot: preserve the BÑL palette and the existing booking shell. */
.payment-fields { border: 0; padding: 0; margin: 0; display: grid; gap: 1.1rem; min-width: 0; }
.payment-fields label { display: grid; gap: .45rem; font-size: 1rem; }
.payment-fields input, .payment-fields select { width: 100%; box-sizing: border-box; padding: .8rem; font: inherit; border: 1px solid #c8b1b9; border-radius: .6rem; background: #fff; color: #24282b; }
.payment-fields .payment-check { display: flex; align-items: flex-start; gap: .7rem; line-height: 1.5; }
.payment-check input { width: 1.2rem; height: 1.2rem; flex-shrink: 0; margin-top: .15rem; accent-color: #571b35; }
.payment-warning { border-left: 4px solid #8d562b; background: #fff4e7; color: #4b301d; padding: 1rem 1.2rem; margin: 1rem 0; border-radius: .5rem; line-height: 1.6; }
.payment-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin: 1.3rem 0; }
.payment-records { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,25rem),1fr)); gap: 1.2rem; margin: 1.5rem 0; }
.payment-record { padding: 1.5rem; border: 1px solid #d8c5cc; border-radius: 1rem; background: #fff; overflow-wrap: anywhere; }
.payment-record h2 { font-size: 1.3rem; line-height: 1.4; margin: .6rem 0; }
.payment-fields button:disabled { opacity: .55; cursor: not-allowed; }
/* Reception uses the established burgundy brand, with readable status cards. */
.operation-checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:1rem;margin:1.5rem 0}
.operation-check,.operation-summary{padding:1.5rem;border:1px solid #dcc9d1;border-radius:1rem;background:#fff;box-shadow:0 4px 16px #5b1f3708}
.operation-check h2{font-size:1.15rem;margin:.85rem 0 .5rem;color:#5b1f37}
.operation-check p,.operation-summary p,.operation-summary li{font-size:1rem;line-height:1.65}
.operation-summary{margin:1rem 0}.operation-summary ul{padding-left:1.5rem}

.manage-page{max-width:920px;margin:auto;padding:32px 24px 72px;color:#24272B}.manage-page header{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:56px}.manage-page header img{width:170px}.manage-heading{max-width:650px;margin-bottom:32px}.manage-heading h1{font-size:clamp(2rem,5vw,3.5rem);letter-spacing:-.035em;color:#5B1F37}.manage-card{background:#fff;border:1px solid #e5d9d8;border-radius:20px;padding:32px;margin:24px 0;box-shadow:0 8px 32px #5b1f3708}.manage-card-top{display:flex;justify-content:space-between;gap:16px;color:#A05D73;font-size:.9rem}.manage-card h2{color:#5B1F37}.manage-time{font-size:2rem;font-weight:600;letter-spacing:-.02em}.manage-time small{display:block;font-size:.85rem;font-weight:400;letter-spacing:0}.manage-options{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.manage-option{text-align:left;background:#F6F1EB;border:1px solid #e1d3d3;border-radius:16px;padding:24px;cursor:pointer;color:#5B1F37}.manage-option:hover{border-color:#A05D73}.manage-option strong,.manage-option span{display:block}.manage-option span{font-size:.9rem;margin-top:8px;color:#24272B}.manage-card label{display:block;margin:20px 0}.manage-card input:not([type=checkbox]),.manage-card select{display:block;width:100%;min-height:48px;border:1px solid #c7b9bb;border-radius:8px;padding:10px;margin-top:8px;background:white;color:#24272B}.manage-card .payment-check{display:flex;gap:12px;align-items:flex-start}.manage-card .button{margin:8px 8px 8px 0}.manage-page .notice{background:#F6F1EB;border-left:3px solid #A05D73;padding:18px;margin:20px 0}.text-button{display:block;border:0;background:none;color:#5B1F37;text-decoration:underline;padding:16px 0;cursor:pointer}.manage-page footer{margin-top:40px;font-size:.9rem;color:#655d61}.manage-page button:disabled{opacity:.55;cursor:wait}@media(max-width:620px){.manage-options{grid-template-columns:1fr}.manage-card{padding:22px}.manage-page{padding:24px 16px}.manage-page header{align-items:flex-start;margin-bottom:32px}.manage-page header img{width:135px}.manage-page header>a:last-child{font-size:.8rem;max-width:130px}.manage-card-top{flex-direction:column;gap:6px}}

/* DG26 R3 review draft: keep the patient path ahead of institutional content. */
.home-page .hero { min-height: 420px; grid-template-columns: 1.2fr .8fr; }
.home-page .hero-copy { padding: 38px; }
.home-page .hero h1 { font-size: clamp(2.15rem, 3.4vw, 3.35rem); line-height: 1.13; }
.home-page .hero-visual { min-height: 300px; }
.home-page .hero-lead { margin-top: 20px; }
.home-page .hero-actions { margin-top: 24px; align-items: flex-start; gap: 12px; }
.home-secondary-link { display: inline-flex; align-items: center; min-height: 44px; color: var(--granate); font-size: .9rem; text-decoration: underline; text-underline-offset: 3px; }
.home-location { margin: 14px 0 0; color: var(--gris); font-size: .9rem; line-height: 1.6; text-wrap: pretty; }
.home-location a { color: var(--granate); text-decoration: underline; }
.home-page .trust-row { margin-top: 22px; padding-top: 18px; }
.home-study-section { display: grid; grid-template-columns: 1fr 1fr; align-items: start; gap: 40px; margin-top: 56px; margin-bottom: 56px; scroll-margin-top: 120px; }
.home-study-intro { min-width: 0; }
.home-study-intro .eyebrow { margin-bottom: 16px; }
.home-study-intro h2 { margin: 0; color: var(--granate); font-size: clamp(1.75rem, 2.6vw, 2.35rem); line-height: 1.18; letter-spacing: -.025em; }
.home-study-intro > p:not(.eyebrow) { color: var(--gris); line-height: 1.65; text-wrap: pretty; }
.home-equipment-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 22px; }
.home-equipment-links a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-width: 0; min-height: 52px; padding: 12px 14px; border: 1px solid var(--linea); border-radius: 10px; background: #fff; color: var(--granate); font-size: .92rem; line-height: 1.5; }
.home-equipment-links a:hover { border-color: var(--granate); }
.home-equipment-links span { flex-shrink: 0; }
.home-catalog-link, .home-finder-catalog { display: inline-flex; align-items: center; min-height: 44px; color: var(--granate); font-weight: 700; font-size: .95rem; text-decoration: underline; text-underline-offset: 3px; }
.home-catalog-link { margin-top: 12px; }
.home-study-finder { display: grid; gap: 14px; min-width: 0; padding: 28px; border: 1px solid var(--linea); border-top: 4px solid var(--granate); border-radius: 18px; background: #fff; }
.home-step-label { color: var(--ciruela); font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.home-finder-heading h3 { margin: 8px 0 10px; color: var(--granate); font-size: 1.25rem; line-height: 1.4; }
.home-finder-heading p, .home-finder-quote p, .home-finder-conditions { margin: 0; color: var(--gris); font-size: .92rem; line-height: 1.65; text-wrap: pretty; }
.home-study-finder label { font-weight: 700; font-size: .95rem; }
.home-study-finder select { width: 100%; min-width: 0; min-height: 50px; padding: 12px; border: 1px solid #a59c9f; border-radius: 10px; background: #fff; color: var(--grafito); font-size: 1rem; }
.home-finder-quote { padding: 16px; border-radius: 12px; background: var(--marfil); }
.home-finder-quote .study-price + p { margin-top: 10px; }
.home-study-finder .button { width: 100%; padding: 12px 18px; line-height: 1.5; }
.home-study-finder .button:disabled { cursor: not-allowed; }
.home-page .pink-campaign { width: min(1280px, calc(100% - 72px)); margin: 56px auto; padding: 28px 32px; grid-template-columns: 1fr 180px; gap: 28px; }
.home-page .pink-campaign-eyebrow { margin-bottom: 12px; }
.home-page .pink-campaign h2 { font-size: clamp(1.9rem, 3vw, 2.7rem); }
.home-page .pink-campaign-lead { margin-top: 16px; font-size: 1rem; }
.home-page .pink-campaign-awareness { margin-top: 14px; font-size: .9rem; }
.home-page .pink-campaign-actions { margin-top: 20px; gap: 12px 20px; }
.home-page .pink-campaign-link { font-size: .9rem; }
.home-page .pink-campaign > img { max-height: 220px; }
.mobile-menu summary { display: flex; align-items: center; justify-content: center; min-height: 44px; min-width: 44px; }

@media (max-width: 1080px) {
  .home-page .hero { grid-template-columns: 1fr; min-height: 0; }
  .home-page .hero-visual { display: none; }
}
@media (max-width: 900px) {
  .home-study-section { grid-template-columns: 1fr; gap: 28px; }
  .home-study-finder { grid-row: 1; }
  .home-page .pink-campaign { width: calc(100% - 36px); }
}
@media (max-width: 680px) {
  .home-page .hero-copy { padding: 28px 22px; }
  .home-page .hero h1 { font-size: clamp(1.9rem, 7.9vw, 2.7rem); }
  .home-page .eyebrow { font-size: .73rem; letter-spacing: .1em; }
  .home-page .hero-actions { gap: 8px; }
  .home-page .hero-actions .button { min-height: 52px; }
  .home-page .hero-lead { line-height: 1.6; font-size: 1rem; }
  .home-page .trust-row { gap: 12px; }
  .home-page .trust-row strong { font-size: 1rem; }
  .home-study-section { margin-top: 32px; margin-bottom: 36px; scroll-margin-top: 98px; gap: 26px; }
  .home-study-finder { padding: 20px; }
  .home-equipment-links { gap: 8px; }
  .home-equipment-links a { padding: 10px 12px; font-size: .88rem; }
  .home-page .pink-campaign { width: calc(100% - 32px); margin: 36px auto; padding: 24px; grid-template-columns: 1fr; gap: 20px; }
  .home-page .pink-campaign > img { max-height: 160px; }
  .site-header--home .brand img { width: 144px; }
  .site-header--home .header-actions { gap: 8px; }
  .site-header--home .header-actions .button--small { display: inline-flex; padding: 0 13px; min-height: 44px; font-size: .8rem; }
  .site-header--home .mobile-menu nav { right: -2px; }
}
