/* Only functional defaults. Retouch Native owns typography, colour and spacing. */
:where(.rt-treatment-directory, .rt-result-carousel, .rt-patient-directory, .rt-price-catalog, .rt-booking-gateway, .rt-clinic-details) [hidden] { display: none !important; }
:where(.rt-treatment-directory, .rt-result-carousel, .rt-patient-directory, .rt-price-catalog, .rt-booking-gateway, .rt-clinic-details) :focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.rt-result-carousel__case { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 2rem; }
.rt-result-carousel__photos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; align-content: start; }
.rt-result-carousel__photos figure { margin: 0; min-width: 0; }
.rt-result-carousel__photos img { display: block; width: 100%; height: auto; }
.rt-result-carousel__photos--composite > figure, .rt-result-carousel__photos > .rt-result-carousel__missing { grid-column: 1 / -1; }
.rt-result-carousel .rt-result-carousel__photos.rt-result-carousel__photos--composite img { aspect-ratio: auto; height: auto; object-fit: contain; }
.rt-result-carousel__controls, .rt-result-carousel__filters [role="group"] { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.rt-result-carousel__filters [aria-pressed="true"] { text-decoration: underline; text-underline-offset: .25em; }
.rt-result-carousel__controls button:disabled { opacity: .4; cursor: not-allowed; }
.rt-result-carousel__meta dd { margin-inline-start: 0; }
.rt-price-catalog__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; }
.rt-price-catalog__row small { display: block; }
.rt-price-catalog__group summary { cursor: pointer; }
.rt-price-catalog__group summary h3 { display: inline; }
.rt-booking-gateway__choices label { display: block; }
.rt-booking-flows { color: var(--wc-ink, #331512); }
.rt-booking-flows__notice { max-width: 72ch; margin: 0 0 1.5rem; font-size: .875rem; line-height: 1.6; }
.rt-booking-flows__list { border-top: 1px solid currentColor; }
.rt-booking-flows .rt-booking-flow { margin: 0; border-bottom: 1px solid currentColor; }
.rt-booking-flow > summary { display: flex; align-items: center; justify-content: space-between; gap: 2rem; min-height: 88px; padding: 1.75rem 0; cursor: pointer; list-style: none; scroll-margin-block: 7rem 2rem; }
.rt-booking-flow > summary::-webkit-details-marker { display: none; }
.rt-booking-flow > summary:focus-visible, .rt-booking-flow a:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
.rt-booking-flow__intro { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); align-items: center; gap: 2rem; width: 100%; }
.rt-booking-flow__title { font-family: var(--wp--preset--font-family--cormorant, Georgia, serif); font-size: clamp(1.75rem, 3vw, 2.75rem); font-weight: 500; line-height: 1.05; letter-spacing: -.025em; }
.rt-booking-flow__description { font-size: .94rem; line-height: 1.6; max-width: 44ch; }
.rt-booking-flow__toggle { flex: 0 0 24px; width: 24px; height: 24px; position: relative; }
.rt-booking-flow__toggle::before, .rt-booking-flow__toggle::after { content: ''; position: absolute; background: currentColor; width: 16px; height: 1px; inset: 12px auto auto 4px; }
.rt-booking-flow__toggle::after { transform: rotate(90deg); }
.rt-booking-flow[open] .rt-booking-flow__toggle::after { display: none; }
.rt-booking-flow__body { max-width: 70ch; padding: .75rem 0 2rem; }
.rt-booking-flow__body > p { margin: 0 0 1rem; }
.rt-booking-flow__facts { font-size: .875rem; }
.rt-booking-flow__body a { min-height: 44px; }
.rt-booking-flow__body > .rt-booking-flow__boundary { font-size: .8rem; line-height: 1.6; margin: 1rem 0 0; }
/* Gutenberg flow resets the authored header margin; keep this preview gap editor-only. */
.editor-styles-wrapper .wb-gateway-intro + [data-type="retouch/booking-gateway"] { margin-top: 3rem; }
.editor-styles-wrapper [data-type="retouch/booking-gateway"] + .wb-gateway-note { margin-top: 1.15rem; }
@media (max-width: 781px) {
  .rt-booking-flow > summary { gap: 1rem; padding-block: 1.5rem; }
  .rt-booking-flow__intro { grid-template-columns: minmax(0, 1fr); gap: .65rem; }
  .rt-booking-flow__title { font-size: 2rem; }
  .rt-booking-flow__description { font-size: .875rem; }
  .editor-styles-wrapper .wb-gateway-intro + [data-type="retouch/booking-gateway"] { margin-top: 1.25rem; }
}
.rt-clinic-details__address { font-style: normal; }
@media (max-width: 781px) { .rt-result-carousel__case { grid-template-columns: minmax(0, 1fr); } }
@media (prefers-reduced-motion: reduce) { .rt-result-carousel * { scroll-behavior: auto; } }
