.qt-page { --qt-space: clamp(56px, 7vw, 96px); }
.qt-page section { padding-block: var(--qt-space); }
.qt-page p + p { margin-top: 20px; }
.qt-page h2 { font-size: clamp(30px, 3.2vw, 44px); text-wrap: balance; }
.qt-page h3 { line-height: 1.3; }
.qt-page a:focus-visible, .qt-page summary:focus-visible { outline: 3px solid var(--accent-dark); outline-offset: 5px; }
.qt-breadcrumb { display: flex; flex-wrap: wrap; gap: 10px; font-size: 13px; color: var(--ink-soft); margin-bottom: 30px; }
.qt-breadcrumb a { text-decoration: underline; text-underline-offset: 4px; }
.qt-hero { background: var(--sand); }
.qt-hero-grid { display: grid; grid-template-columns: 1.25fr .85fr; align-items: center; gap: clamp(32px, 5vw, 70px); }
.qt-hero h1 { font-size: clamp(36px, 4.2vw, 57px); margin: 18px 0 26px; text-wrap: balance; }
.qt-hero p { font-size: 17px; }
.qt-hero figure { margin: 0; }
.qt-hero img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--radius); }
.qt-hero picture { display: block; }
.qt-actions { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 28px; }
.qt-index { border-bottom: 1px solid var(--line); background: var(--paper); }
.qt-index .container { display: flex; flex-wrap: wrap; gap: 12px 28px; padding-block: 22px; font-size: 14px; }
.qt-index a { text-decoration: underline; text-underline-offset: 5px; }
.qt-split { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(30px, 6vw, 90px); }
.qt-label { display: block; font-size: 12px; text-transform: uppercase; letter-spacing: .13em; color: var(--accent-dark); margin-bottom: 18px; font-weight: 600; }
.qt-note { margin-top: 28px; padding: 26px 28px; border-left: 3px solid var(--accent); background: var(--sand); border-radius: 0 var(--radius) var(--radius) 0; }
.qt-tint { background: var(--sand); }
.qt-heading { max-width: 760px; margin-bottom: 38px; }
.qt-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.qt-step { border-top: 1px solid var(--accent); padding-top: 24px; }
.qt-number { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border: 1px solid var(--accent); border-radius: 50%; margin-bottom: 22px; font-family: var(--serif); font-size: 22px; color: var(--accent-dark); }
.qt-step h3 { font-size: 23px; margin-bottom: 22px; }
.qt-step p { font-size: 15px; line-height: 1.75; }
.qt-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.qt-card { padding: 30px; border: 1px solid var(--line); background: var(--paper); border-radius: var(--radius); }
.qt-card svg { width: 28px; height: 28px; fill: none; stroke: var(--accent-dark); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; margin-bottom: 20px; }
.qt-card h3 { margin-bottom: 16px; }
.qt-types details { border: 0; border-bottom: 1px solid var(--line); border-radius: 0; box-shadow: none; background: transparent; overflow: visible; }
.qt-types details:first-child { border-top: 1px solid var(--line); }
.qt-types summary { cursor: pointer; padding: 24px 36px 24px 0; position: relative; list-style: none; }
.qt-types summary::-webkit-details-marker { display: none; }
.qt-types summary::after { content: '+'; position: absolute; right: 4px; top: 20px; font-size: 28px; color: var(--accent-dark); }
.qt-types details[open] summary::after { content: '\2212'; }
.qt-types summary h3 { display: inline; font-size: 21px; }
.qt-types details p { padding: 0 20px 26px 0; }
.qt-answer { display: flow-root; }
.qt-close { background: var(--sand); text-align: center; }
.qt-close .container { max-width: 790px; }
.qt-close p { margin-top: 24px; }
.qt-close .qt-actions { justify-content: center; }
/* Directory: brand header and compact topics, in document order. */
.qt-directory-page .orly-manifesto { padding-block: clamp(46px, 6vw, 78px); }
.qt-directory-page .orly-manifesto-brand { position: static; }
.qt-directory-page .orly-manifesto-copy { padding-top: 0; }
.qt-directory-page .orly-manifesto-copy p { font-size: 18px; line-height: 1.7; }
.qt-intro-panel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 52px); align-items: center; padding: clamp(24px, 4vw, 44px); background: var(--sand); border-radius: var(--radius); }
.qt-intro-image { min-width: 0; }
.qt-intro-image img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; object-position: center 28%; border-radius: var(--radius); }
.qt-intro-copy { min-width: 0; }
.qt-intro-copy h2 { font-size: clamp(28px, 3vw, 36px); margin-bottom: 24px; }
@media (max-width: 680px) {
  .qt-intro-panel { grid-template-columns: 1fr; }
  .qt-intro-image img { aspect-ratio: 4 / 3; object-position: center 24%; }
}
.qt-page .qt-directory-intro { padding-block: 48px; }
.qt-page .qt-directory-topics { padding-top: 12px; }
.qt-directory-topics h2 { font-size: clamp(26px, 3vw, 34px); }
.qt-directory-topics .qt-heading { margin-bottom: 24px; }
.qt-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; list-style: none; padding: 0; margin: 0; }
.qt-list li { min-width: 0; }
.qt-list a, .qt-list .qt-topic-button { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 64px; width: 100%; height: 100%; padding: 16px; color: var(--ink); background: transparent; text-align: left; line-height: 1.6; cursor: pointer; border: 1px solid var(--line); border-radius: var(--radius); font-family: var(--sans); font-size: 16px; font-weight: 500; transition: background-color .2s, border-color .2s; }
.qt-list a:hover, .qt-list .qt-topic-button:hover { background: var(--sand); border-color: var(--accent); }
.qt-list span:first-child { overflow-wrap: anywhere; }
.qt-list span[aria-hidden] { color: var(--accent-dark); }
@media (max-width: 680px) { .qt-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 360px) { .qt-list { grid-template-columns: 1fr; } }
@media (max-width: 600px) {
  .qt-directory-page .orly-manifesto-brand picture { max-width: 180px; }
}
@media (max-width: 800px) {
  .qt-hero-grid, .qt-split, .qt-steps { grid-template-columns: 1fr; }
  .qt-hero img { aspect-ratio: 3 / 4; max-height: none; object-position: center 45%; }
  .qt-hero img[src*="toc-terapia-pozuelo-"] { object-position: center bottom; }
  .qt-step { padding-bottom: 12px; }
  .qt-index .container { gap: 14px 22px; }
}
@media (max-width: 540px) {
  .qt-cards { grid-template-columns: 1fr; }
  .qt-card { padding: 24px; }
  .qt-actions .btn { width: 100%; text-align: center; }
}
@media (prefers-reduced-motion: reduce) { .qt-list a { transition: none; } }

.qt-page p a { text-decoration: underline; text-underline-offset: 3px; }

.qt-types summary::after, .qt-types details[open] summary::after { width: auto; height: auto; border: 0; transform: none; transition: none; line-height: 1; }

/* Reuse the site's closing contact band. */
.qt-page .area-cta { padding-block: 64px; }
.qt-page .area-cta h2 { font-size: clamp(34px, 4vw, 52px); }
.qt-page .area-cta a:focus-visible { outline-color: #fff; }

.qt-list .qt-topic-button:focus-visible { outline: 3px solid var(--accent-dark); outline-offset: 5px; }
.qt-topic-status:not(:empty) { margin-top: 18px; }
@media (prefers-reduced-motion: reduce) { .qt-list .qt-topic-button { transition: none; } }

/* Comfortable topic reading and aligned contact actions on small screens. */
@media (max-width: 680px) {
  .qt-page { --qt-space: 48px; }
  .qt-page .qt-split { gap: 26px; }
  .qt-page .qt-split > *, .qt-page .qt-types { min-width: 0; }
  .qt-page .qt-types summary { padding: 22px 34px 22px 0; }
  .qt-page .qt-types summary h3 { display: block; margin: 0; font-size: 20px; line-height: 1.4; }
  .qt-page .qt-types summary::after { top: 23px; right: 2px; }
  .qt-page .qt-answer p { padding: 0 0 24px; margin: 0; line-height: 1.7; }
  .qt-page .qt-answer p + p { margin-top: 16px; }
  .qt-page .qt-note { padding: 22px 20px; }
  .qt-page .area-cta { padding-block: 48px; }
  .qt-page .area-cta h2 { font-size: clamp(28px, 7.6vw, 34px); line-height: 1.18; text-wrap: pretty; }
  .qt-page .area-cta .final-grid { gap: 28px; }
  .qt-page .area-cta .final-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; width: 100%; }
  .qt-page .area-cta .final-actions .btn { width: 100%; min-width: 0; justify-content: center; text-align: center; padding-inline: 12px; }
}

/* Separate introductory copy from headings and treatment cards. */
.qt-page h2 + p { margin-top: 20px; }
.qt-page p + .qt-cards { margin-top: 28px; }

/* Compact treatment directory. Only the summary page is affected. */
.qt-directory-page .qt-list { grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 36px; }
.qt-directory-page .qt-list li[hidden] { display:none; }
.qt-directory-page .qt-list a { border:0;border-radius:0;background:transparent;min-height:48px;padding:10px 0;align-items:flex-start;gap:16px;font-size:17px;line-height:1.5;font-weight:500; }
.qt-directory-page .qt-list a:hover { background:transparent;color:var(--accent-dark); }
.qt-directory-page .qt-list a:hover span:first-child { text-decoration:underline;text-underline-offset:4px; }
.qt-directory-page .qt-list a:focus-visible { outline:2px solid var(--accent-dark);outline-offset:4px; }
.qt-directory-page .qt-list span:first-child { overflow-wrap:normal; }
.qt-directory-page .qt-list span[aria-hidden] { flex-shrink:0; }
.qt-therapy-controls { margin-bottom:24px; }
.qt-therapy-controls .qt-filter-label { display:block;margin-bottom:12px;font-size:16px;font-weight:600; }
.qt-therapy-buttons { display:flex;flex-wrap:wrap;gap:8px; }
.qt-therapy-buttons button { min-height:44px;padding:9px 15px;border:1px solid var(--line);border-radius:24px;background:transparent;color:var(--ink);font:inherit;font-size:15px;line-height:1.4;cursor:pointer; }
.qt-therapy-buttons button:hover { border-color:var(--accent-dark); }
.qt-therapy-buttons button[aria-pressed="true"] { background:var(--ink);border-color:var(--ink);color:#fff; }
.qt-therapy-buttons button:focus-visible { outline:2px solid var(--accent-dark);outline-offset:3px; }
.qt-therapy-controls .qt-filter-count { margin:16px 0 0;font-size:14px;color:var(--ink); }
@media(min-width:1600px) { .qt-directory-page .qt-list { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:1000px) { .qt-directory-page .qt-list { grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 28px; } }
@media(max-width:600px) { .qt-directory-page .qt-list { grid-template-columns:1fr;gap:3px; } .qt-therapy-buttons { gap:8px 6px; } .qt-therapy-buttons button { padding:9px 12px; } }

/* Uniform directory rows with subtle dividers, including filtered results. */
.qt-directory-page .qt-list { gap:0;grid-auto-rows:1fr;border-top:1px solid var(--line); }
.qt-directory-page .qt-list li { position:relative;border-bottom:1px solid var(--line); }
.qt-directory-page .qt-list a { min-height:96px;height:100%;padding:18px 20px;align-items:center; }
.qt-directory-page .qt-list li::after { content:"";position:absolute;right:0;top:18px;bottom:18px;border-right:1px solid var(--line);pointer-events:none; }
.qt-directory-page .qt-list li:nth-child(4n of :not([hidden]))::after,
.qt-directory-page .qt-list li:nth-last-child(1 of :not([hidden]))::after { display:none; }
.qt-directory-page .qt-list a:focus-visible { outline-offset:-4px; }
@media(max-width:1000px) {
  .qt-directory-page .qt-list li:nth-child(2n of :not([hidden]))::after { display:none; }
}
@media(max-width:600px) {
  .qt-directory-page .qt-list a { min-height:84px;padding:16px 0; }
  .qt-directory-page .qt-list li::after { display:none; }
}

/* Keep filter announcements accessible without a visible counter. */
.qt-therapy-controls .qt-filter-count { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0; }
