/* Five imported editorial pages only. Shared navigation and legacy pages are separate. */
.showcase-v2 #main { min-width:0; overflow:visible; }
.showcase-v2 #main :is(.hero,.story-pin,.cards,.clinic,.reviews,.consult,.t-hero,.t-browser,.feature,.range-head,.t-grid,.experience-head,.experience-grid,.t-cta,.about-opening-bottom,.about-story,.about-section-heading,.about-value-grid,.about-care,.about-visit,.about-cta,.faq-title-row,.faq-search-row,.faq-workspace,.faq-closing,.contact-opening-grid,.contact-help,.contact-visit,.contact-practical-grid,.contact-closing) > * { min-width:0; }
.showcase-v2 #main :is(.hero,.t-hero,.t-browser,.t-range,.t-experience,.about-opening,.about-intro-strip,.about-story,.about-values,.about-care,.about-note,.about-visit,.faq-intro,.faq-workspace,.contact-opening,.contact-help,.contact-visit,.contact-practical) {
  width:100%; max-width:none; padding-inline:var(--site-inline,max(16px,calc((100% - 1600px)/2)));
}
.showcase-v2 #main :is(.treatments.section,.clinic,.reviews,.story-pin) { padding-inline:var(--site-inline,max(16px,calc((100% - 1600px)/2))); }
.showcase-v2 #main :is(.faqs.section,.about-faq,.contact-questions) { width:calc(100% - 2 * var(--site-gutter,16px)); max-width:1000px; margin-inline:auto; padding-inline:0; }
.showcase-v2 #main :is(.consult,.t-cta,.about-cta,.faq-closing,.contact-closing) {
  box-sizing:border-box; width:calc(100% - 2 * var(--site-gutter,16px)); max-width:var(--site-content-width,1600px);
  margin-inline:auto; padding-inline:clamp(18px,3vw,64px); gap:clamp(20px,3vw,48px);
}
.showcase-v2 #main :is(.actions,.benefits,.consult-benefits,.tags,.filter-status,.contact-tabs,.contact-map-toolbar,.faq-result-tools) { flex-wrap:wrap; }
.showcase-v2 #main :is(.button,.text-link,.contact-copy,.contact-directory-link,.about-opening-discover) { min-width:0; max-width:100%; white-space:normal; overflow-wrap:anywhere; }
.showcase-v2 #main :is(.button,.contact-copy,.feature-arrow,.stage-nav button,.faq-result-tools button) { min-height:44px; }
.showcase-v2 #main :is(.hero-copy,.clinic-copy,.feature-copy,.about-story-copy,.about-care-copy,.about-location-label,.faq-intro-note,.contact-directory,.contact-panel,.step) :is(h1,h2,h3,p,a) { overflow-wrap:anywhere; }
.showcase-v2 #main :is(.faq-search,.search-box) { min-width:0; max-width:100%; }
.showcase-v2 #main :is(.faq-search,.search-box) input { min-width:0; font-size:16px; }
.showcase-v2 #main :is(.hero-photo,.about-care-image,.about-hero-image,.t-hero>.t-art) { min-width:0; }
.showcase-v2 #main .hero { grid-template-columns:minmax(0,1fr) minmax(0,1fr); min-height:clamp(490px,39vw,660px); }
.showcase-v2 #main .hero-copy { margin-left:0; padding:clamp(36px,5vw,80px) 24px clamp(30px,4vw,60px) 0; }
.showcase-v2 #main .hero-photo { margin-left:0; }
.showcase-v2 #main .hero-copy > p { max-width:48ch; }
.showcase-v2 #main .story { --showcase-story-flow:0; }
.showcase-v2 #main .story-pin { grid-template-columns:minmax(0,25fr) minmax(0,45fr) minmax(0,30fr); }
.showcase-v2 #main .art-wrap { max-width:100%; width:100%; margin-inline:0; }
.showcase-v2 #main .story-art .story-hairline { width:100%; left:0; }
.showcase-v2 #main .story-copy { padding-left:clamp(12px,2vw,28px); }
.showcase-v2 #main .cards { grid-template-columns:repeat(4,minmax(0,1fr)); }
.showcase-v2 #main .clinic { grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,.7fr); gap:clamp(16px,2vw,32px); }
.showcase-v2 #main .clinic-copy { padding:24px 0; }
.showcase-v2 #main .clinic .team { padding-right:0; }
.showcase-v2 #main .clinic figure { margin:0; }
.showcase-v2 #main .reviews { grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(24px,4vw,64px); }
.showcase-v2 #main .consult { grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); }
.showcase-v2 #main .consult-benefits { gap:14px 24px; }
.showcase-v2 #main .t-hero { grid-template-columns:minmax(0,46fr) minmax(0,54fr); }
.showcase-v2 #main .t-hero > div:first-child { padding:42px 28px 38px 0; }
.showcase-v2 #main .t-browser { grid-template-columns:minmax(170px,.8fr) minmax(0,3fr); }
.showcase-v2 #main .t-browser aside { padding-left:0; padding-right:clamp(14px,2vw,28px); }
.showcase-v2 #main .feature-wrap { min-width:0; padding-left:clamp(14px,2vw,28px); }
.showcase-v2 #main .feature { grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); }
.showcase-v2 #main .feature-copy { padding:28px clamp(18px,2.8vw,40px); }
.showcase-v2 #main .feature-arrow { width:44px; }
.showcase-v2 #main .range-head { flex-wrap:wrap; }
.showcase-v2 #main .search-box { flex:0 1 350px; }
.showcase-v2 #main .t-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.showcase-v2 #main .t-card { grid-template-columns:minmax(0,42fr) minmax(0,58fr); }
.showcase-v2 #main .t-card :is(h3,p,a) { overflow-wrap:anywhere; }
.showcase-v2 #main .experience-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.showcase-v2 #main .experience-grid article { min-width:0; }
.showcase-v2 #main .t-cta { grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr); }
.showcase-v2 #main .about-opening { min-height:0; }
.showcase-v2 #main .about-opening-statement { padding-block:clamp(38px,5vw,72px); }
.showcase-v2 #main .about-opening-bottom { grid-template-columns:repeat(2,minmax(0,1fr)); }
.showcase-v2 #main .about-opening-bottom > div { flex-wrap:wrap; }
.showcase-v2 #main :is(.about-story,.about-visit) { grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(28px,5vw,80px); }
.showcase-v2 #main .about-story-copy { max-width:62ch; }
.showcase-v2 #main .about-care { grid-template-columns:minmax(0,47fr) minmax(0,53fr); }
.showcase-v2 #main .about-care-copy { padding-left:clamp(24px,4vw,64px); }
.showcase-v2 #main .about-value-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.showcase-v2 #main .about-section-heading { grid-template-columns:repeat(2,minmax(0,1fr)); }
.showcase-v2 #main .about-cta { grid-template-columns:repeat(2,minmax(0,1fr)); }
.showcase-v2 #main :is(.faq-title-row,.faq-search-row) { grid-template-columns:minmax(0,1.8fr) minmax(0,1fr); }
.showcase-v2 #main .faq-workspace { grid-template-columns:minmax(180px,240px) minmax(0,1fr); gap:clamp(28px,4vw,64px); }
.showcase-v2 #main .faq-closing { grid-template-columns:repeat(2,minmax(0,1fr)); }
.showcase-v2 #main :is(.faq-group-heading,.faq-intro-top,.about-opening-top,.contact-opening-top) { gap:16px; flex-wrap:wrap; }
.showcase-v2 #main .contact-opening-grid { grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:clamp(24px,4vw,64px); }
.showcase-v2 #main .contact-directory { padding:clamp(20px,3vw,38px); }
.showcase-v2 #main .contact-help { grid-template-columns:minmax(0,1fr) minmax(0,1.8fr); }
.showcase-v2 #main .contact-visit { grid-template-columns:minmax(0,1fr) minmax(0,1.3fr); gap:clamp(24px,4vw,64px); }
.showcase-v2 #main .contact-closing { flex-wrap:wrap; }
.showcase-v2 #main .contact-closing > div { flex:1 1 340px; min-width:0; }
.showcase-v2 #main .contact-map-placeholder { padding:24px 18px; }
.showcase-v2 #main .contact-map { min-height:320px; height:clamp(320px,29vw,460px); }

/* Tablet: collapse before copy and controls lose useful width. */
@media(max-width:1050px) {
  .showcase-v2 #main .cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .showcase-v2 #main .t-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .showcase-v2 #main .t-browser { grid-template-columns:1fr; gap:20px; }
  .showcase-v2 #main .t-browser aside { padding:0; border:0; }
  .showcase-v2 #main .category-list { flex-direction:row; flex-wrap:wrap; gap:8px; }
  .showcase-v2 #main .category-list button { flex:0 1 auto; min-width:0; border:1px solid #cfcebc; border-radius:24px; padding:10px 14px; }
  .showcase-v2 #main .category-list button > b { margin-left:8px; }
  .showcase-v2 #main .feature-wrap { padding:0; }
  .showcase-v2 #main .experience-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .showcase-v2 #main .t-cta { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .showcase-v2 #main .t-cta > .button { grid-column:1/-1; justify-self:start; }
  .showcase-v2 #main :is(.faq-title-row,.contact-opening-grid) { grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); }
  .showcase-v2 #main .faq-workspace { grid-template-columns:190px minmax(0,1fr); gap:28px; }
}
@media(max-width:800px) {
  .showcase-v2 #main :is(.contact-opening-grid,.contact-help,.contact-visit,.faq-title-row,.faq-search-row) { grid-template-columns:1fr; gap:24px; }
  .showcase-v2 #main :is(.contact-choices,.faq-intro-note) { padding-left:0; }
  .showcase-v2 #main .faq-search-row > p { max-width:none; padding-left:0; }
  .showcase-v2 #main .contact-practical-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
}
@media(max-width:720px) {
  .showcase-v2 #main .hero { display:grid; grid-template-columns:minmax(0,1fr); min-height:0; }
  .showcase-v2 #main .hero-copy { padding:32px 0 24px; }
  .showcase-v2 #main .hero-photo { margin:0; height:clamp(230px,64vw,390px); }
  .showcase-v2 #main .hero h1 { font-size:clamp(32px,8.2vw,50px); }
  .showcase-v2 #main .benefits { gap:12px; }
  .showcase-v2 #main .benefits span { flex:1 1 110px; }
  .showcase-v2 #main .benefits span + span { border:0; padding-left:0; }
  .showcase-v2 #main .story-pin { grid-template-columns:minmax(0,1fr); grid-template-rows:auto minmax(160px,1fr) 205px; padding-block:20px; }
  .showcase-v2 #main .story-copy { padding-left:0; height:195px; }
  .showcase-v2 #main .story-intro { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
  .showcase-v2 #main .art-wrap { width:min(100%,390px); margin-inline:auto; }
  .showcase-v2 #main .story-art .story-center { font-size:clamp(44px,12vw,64px); }
  .showcase-v2 #main .clinic { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
  .showcase-v2 #main .clinic > figure:first-child { grid-column:1/-1; }
  .showcase-v2 #main .clinic-copy { grid-column:auto; grid-row:auto; padding:0; }
  .showcase-v2 #main .clinic .team { grid-column:auto; grid-row:auto; padding:0; }
  .showcase-v2 #main .clinic figure > img { height:clamp(220px,58vw,380px); }
  .showcase-v2 #main :is(.reviews,.consult,.t-cta,.about-opening-bottom,.about-story,.about-care,.about-visit,.about-section-heading,.about-cta,.faq-workspace,.faq-closing) { grid-template-columns:1fr; }
  .showcase-v2 #main .reviews > div + div { padding-left:0; }
  .showcase-v2 #main .t-hero { grid-template-columns:1fr; min-height:0; }
  .showcase-v2 #main .t-hero > div:first-child { padding:30px 0; }
  .showcase-v2 #main .t-hero h1 { font-size:clamp(33px,8vw,46px); }
  .showcase-v2 #main .t-hero > .t-art { height:clamp(210px,55vw,330px); margin:0; }
  .showcase-v2 #main .t-grid { grid-template-columns:1fr; }
  .showcase-v2 #main .feature { grid-template-columns:1fr; }
  .showcase-v2 #main .featured-art { height:clamp(200px,55vw,330px); }
  .showcase-v2 #main .feature-copy { padding:24px; }
  .showcase-v2 #main .t-card > div:last-child { padding:18px; }
  .showcase-v2 #main .t-cta p { border:0; padding:0; }
  .showcase-v2 #main .t-cta > .button { grid-column:auto; }
  .showcase-v2 #main .about-opening { padding-top:28px; padding-bottom:32px; min-height:0; }
  .showcase-v2 #main .about-opening h1 { font-size:clamp(34px,8.6vw,62px); }
  .showcase-v2 #main .about-opening-statement { padding-block:38px; }
  .showcase-v2 #main .about-opening-bottom > div { justify-self:stretch; }
  .showcase-v2 #main .about-story { padding-block:42px; }
  .showcase-v2 #main .about-section-heading > p { padding-left:0; }
  .showcase-v2 #main .about-value-grid { grid-template-columns:1fr; gap:18px; }
  .showcase-v2 #main .about-care { padding-block:42px; gap:24px; }
  .showcase-v2 #main .about-care-image { min-height:0; height:clamp(280px,85vw,460px); }
  .showcase-v2 #main .about-care-copy { padding:0; }
  .showcase-v2 #main .about-visit { padding-block:42px; }
  .showcase-v2 #main .faq-topics { position:static; }
  .showcase-v2 #main .faq-intro-note { display:block; }
  .showcase-v2 #main :is(.faq-intro h1,.contact-opening h1) { font-size:clamp(32px,8.8vw,60px); }
  .showcase-v2 #main :is(.faq-result-tools,.contact-tabs) { gap:10px 14px; }
  .showcase-v2 #main #faq-topic-buttons { flex-wrap:wrap; margin:0; padding-inline:0; }
  .showcase-v2 #main #faq-topic-buttons button { flex-shrink:1; min-width:0; }
  .showcase-v2 #main .contact-panel { min-height:0; }
  .showcase-v2 #main .contact-tabs button { flex:1 1 140px; min-width:0; }
  .showcase-v2 #main .contact-directory .contact-phone { font-size:clamp(24px,7vw,34px); overflow-wrap:anywhere; }
  .showcase-v2 #main .contact-hours { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .showcase-v2 #main .contact-hours > * { min-width:0; }
}
/* Tiny viewports still show every action and full paragraph rather than clipping. */
@media(max-width:420px) {
  .showcase-v2 #main :is(.cards,.clinic,.experience-grid,.contact-practical-grid) { grid-template-columns:1fr; }
  .showcase-v2 #main .clinic > figure:first-child { grid-column:auto; }
  .showcase-v2 #main .clinic .team img { height:clamp(240px,80vw,340px); }
  .showcase-v2 #main .t-card { grid-template-columns:minmax(0,1fr); }
  .showcase-v2 #main .t-card > .t-art { min-height:0; height:clamp(150px,55vw,230px); }
  .showcase-v2 #main .t-card h3 { font-size:26px; }
  .showcase-v2 #main .button { gap:10px; padding-inline:14px; }
  .showcase-v2 #main .actions > .button { flex:1 1 180px; }
  .showcase-v2 #main :is(.consult,.t-cta,.about-cta,.faq-closing,.contact-closing) h2 { font-size:clamp(27px,8vw,35px); }
  .showcase-v2 #main :is(.contact-panel,.contact-address,.contact-map,.about-location-label) :is(h2,h3) { font-size:clamp(25px,7.5vw,31px); }
  .showcase-v2 #main .about-opening-bottom > div { flex-direction:column; align-items:start; }
  .showcase-v2 #main .contact-directory { padding:20px 16px; }
  .showcase-v2 #main .contact-hours { grid-template-columns:1fr; }
  .showcase-v2 #main .faq-group-heading h2 { font-size:clamp(25px,7.5vw,30px); }
  .showcase-v2 #main :is(.faq-search,.search-box) { width:100%; padding-inline:12px; gap:8px; }
  .showcase-v2 #main .contact-map-toolbar { align-items:start; }
}
/* Short screens and narrow windows use normal reading flow. JS reads this marker,
   keeps all panels accessible, and continues the original wheel's scroll motion. */
@media(max-height:650px),(max-width:360px) {
  .showcase-v2 #main .story { --showcase-story-flow:1; height:auto; }
  .showcase-v2 #main .story-pin { position:relative; top:auto; height:auto; min-height:0; max-height:none; overflow:visible; grid-template-columns:minmax(0,1fr) minmax(0,1fr); grid-template-rows:auto auto; gap:24px; padding-block:36px; }
  .showcase-v2 #main .story-intro { grid-column:1; display:block; }
  .showcase-v2 #main .story-intro p:not(.eyebrow) { max-width:48ch; margin-top:16px; }
  .showcase-v2 #main .art-wrap { grid-column:2; grid-row:1/3; align-self:center; width:100%; height:auto; }
  .showcase-v2 #main .art.story-art { width:100%; height:auto; aspect-ratio:1; }
  .showcase-v2 #main .story-copy { grid-column:1; display:flex; flex-direction:column; position:static; height:auto; padding:0; gap:26px; }
  .showcase-v2 #main .step { position:static; width:auto; left:auto; right:auto; top:auto; opacity:1!important; transform:none!important; visibility:visible; pointer-events:auto; }
  .showcase-v2 #main .step p { max-width:48ch; }
}
@media(max-width:720px) and (max-height:650px),(max-width:360px) {
  .showcase-v2 #main .story-pin { display:flex; flex-direction:column; align-items:stretch; gap:26px; }
  .showcase-v2 #main .art-wrap { width:min(100%,360px); margin-inline:auto; }
  .showcase-v2 #main .story-copy { width:100%; }
  .showcase-v2 #main .step { gap:12px; }
  .showcase-v2 #main .step h3 { font-size:clamp(25px,8vw,32px); }
}
@media(prefers-reduced-motion:reduce) {
  .showcase-v2 #main .story-pin { min-height:0; grid-template-rows:auto; }
  .showcase-v2 #main .story-copy { height:auto; gap:26px; }
  .showcase-v2 #main .art-wrap { height:auto; }
  .showcase-v2 #main .art.story-art { width:100%; height:auto; }
}

.showcase-v2 #main :is(.hero-copy,.t-hero,.about-opening,.faq-intro,.contact-opening) h1 { overflow-wrap:anywhere; }
@media(max-width:720px) {
  .showcase-v2 #main .art-wrap { padding-inline:10%; box-sizing:border-box; }
}

/* A rotated square can reach sqrt(2) of its width. Reserve that space inside
   the artwork column in flow mode, including landscape at every motion setting. */
@media(max-height:650px),(max-width:360px) {
  .showcase-v2 #main .art-wrap { padding-inline:16%; box-sizing:border-box; }
}
