/* Stage 8b: ImageCard, photo Gallery and external RowCard variants.
   Shared DetailHead, CheckList, Faq and PageBottomLinks stay in sub.css. */
[data-sub-page=list] .page-head-inner { grid-template-columns:minmax(0,1fr); grid-template-areas:'copy'; }
[data-sub-page=list] .page-lead { max-width:36em; }
[data-sub-page=list] .conditions-note { margin-top:var(--sp-16); }
[data-sub-page=list] [data-conditions-tab] { min-width:var(--tap-min); }
[data-sub-page=list] .conditions-parts, [data-sub-page=list] .cond-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--sp-48) var(--sp-28); }
[data-sub-page=list] .conditions-part-card, [data-sub-page=list] .cond-card { display:flex; flex-direction:column; min-width:0; color:var(--ink); }
[data-sub-page=list] .conditions-part-art, [data-sub-page=list] .cond-art { display:block; aspect-ratio:4/5; overflow:hidden; border-radius:var(--r-card); background:var(--band); }
[data-sub-page=list] .conditions-part-art img, [data-sub-page=list] .cond-art img { width:100%; height:100%; object-fit:cover; }
[data-sub-page=list] .conditions-part-copy, [data-sub-page=list] .cond-txt { display:flex; flex:1; flex-direction:column; gap:var(--sp-8); padding-top:var(--sp-20); }
[data-sub-page=list] .conditions-part-label { display:flex; flex-wrap:wrap; align-items:baseline; gap:var(--sp-8) var(--sp-12); }
[data-sub-page=list] .conditions-part-label strong, [data-sub-page=list] .cond-txt b { color:var(--ink); font:var(--text-link-title); }
[data-sub-page=list] .conditions-part-label small, [data-sub-page=list] .cond-txt small { color:var(--muted); font:var(--text-caption); }
[data-sub-page=list] .conditions-part-preview, [data-sub-page=list] .cond-line { color:var(--ink-2); font:var(--text-body); }
[data-sub-page=list] .conditions-part-more, [data-sub-page=list] .cond-more { margin-top:auto; padding-top:var(--sp-8); color:var(--navy); font:var(--text-label); }
[data-sub-page=list] .cond-more i { font-style:normal; }
[data-sub-page=list] .list-result-message { padding:var(--sp-24); border-radius:var(--r-m); background:var(--band); color:var(--ink-2); font:var(--text-body); }
[data-sub-page=list] .visit-alias { display:block; scroll-margin-top:calc(var(--frame-height) + var(--sp-20)); }
[data-page=first-visit] .page-reading { max-width:var(--reading-max); }
[data-sub-page=list] .visit-review, [data-sub-page=list] .doctor-review, [data-sub-page=list] .tour-note { margin-bottom:var(--sp-24); color:var(--muted); font:var(--text-caption); }
[data-sub-page=list] .equipment-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--sp-48) var(--sp-28); }
[data-sub-page=list] .equipment-card { min-width:0; }
[data-sub-page=list] .equipment-photo { margin:0; }
[data-sub-page=list] .equipment-photo img { width:100%; aspect-ratio:4/3; padding:var(--sp-24); object-fit:contain; background:var(--band); border-radius:var(--r-card); }
[data-sub-page=list] .equipment-photo figcaption { margin-top:var(--sp-8); }
[data-sub-page=list] .equipment-copy { padding-top:var(--sp-20); }
[data-sub-page=list] .equipment-copy h2 { margin:0; font:var(--text-link-title); }
[data-sub-page=list] .equipment-name { white-space:normal; }
[data-sub-page=list] .equipment-model { margin-top:var(--sp-8); color:var(--muted); font:var(--text-caption); }
[data-sub-page=list] .equipment-copy .equipment-description { margin-top:var(--sp-12); font:var(--text-body); }
[data-sub-page=list] .tour-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--sp-32) var(--sp-28); }
[data-sub-page=list] .tour-tile { display:flex; flex-direction:column; gap:var(--sp-16); min-width:0; padding:0; background:none; color:var(--ink); text-align:left; }
[data-sub-page=list] .tour-tile img { width:100%; height:auto; aspect-ratio:700/380; object-fit:cover; border-radius:var(--r-card); background:var(--band); }
[data-sub-page=list] .tour-label { font:var(--text-link-title); }
[data-sub-page=list] .tour-dialog { width:min(1100px,calc(100% - var(--sp-40))); max-height:calc(100dvh - var(--sp-40)); margin:auto; padding:var(--sp-24); overflow:auto; overscroll-behavior:contain; border:1px solid var(--line); border-radius:var(--r-l); background:var(--surface); color:var(--ink); }
[data-sub-page=list] .tour-dialog::backdrop { background:var(--navy-deep); opacity:.85; }
[data-sub-page=list] .tour-dialog-head { display:flex; align-items:center; justify-content:space-between; gap:var(--sp-12); margin-bottom:var(--sp-16); }
[data-sub-page=list] .tour-dialog-head h2 { margin:0; font:var(--text-link-title); }
[data-sub-page=list] .tour-dialog button { display:inline-flex; align-items:center; justify-content:center; min-height:var(--tap-min); min-width:var(--tap-min); padding:var(--sp-8) var(--sp-16); border:1px solid var(--line-2); border-radius:var(--r-s); background:var(--surface); color:var(--navy); font:var(--text-label); }
[data-sub-page=list] .tour-dialog-image { width:100%; height:auto; max-height:calc(100dvh - 280px); aspect-ratio:1400/760; object-fit:contain; border-radius:var(--r-m); background:var(--band); touch-action:pan-y pinch-zoom; }
[data-sub-page=list] .tour-dialog-controls { display:flex; align-items:center; justify-content:space-between; gap:var(--sp-12); margin-top:var(--sp-16); }
[data-sub-page=list] .tour-dialog-count { font:var(--text-label); font-weight:400; font-variant-numeric:tabular-nums; }
[data-sub-page=list] .tour-dialog-help { margin-top:var(--sp-12); color:var(--muted); font:var(--text-caption); text-align:center; }
[data-sub-page=list] .together-grid { display:grid; }
[data-sub-page=list] .together-card { display:grid; grid-template-columns:92px minmax(0,1fr); gap:var(--sp-24); align-items:start; padding-block:var(--sp-24); border-top:1px solid var(--line); }
[data-sub-page=list] .together-card:last-child { border-bottom:1px solid var(--line); }
[data-sub-page=list] .together-logo { display:grid; place-items:center; aspect-ratio:1; padding:var(--sp-8); border-radius:var(--r-thumb); background:var(--band); }
[data-sub-page=list] .together-logo img { width:100%; height:100%; object-fit:contain; }
[data-sub-page=list] .together-copy h2 { margin:0 0 var(--sp-8); font:var(--text-title-sub); }
[data-sub-page=list] .together-copy p { color:var(--ink-2); font:var(--text-body); }
[data-sub-page=list] .doctor-text-link { display:inline-flex; align-items:center; gap:var(--sp-8); min-height:var(--tap-min); margin-top:var(--sp-8); color:var(--navy); font:var(--text-label); }
[data-sub-page=list] .together-date { margin-top:var(--sp-24); color:var(--muted); font:var(--text-caption); font-variant-numeric:tabular-nums; }
@media (width > 860px) {
  [data-page=equipment] .equipment-card { display:grid; grid-template-rows:subgrid; grid-row:span 2; row-gap:0; }
}
@media (hover:hover) {
  [data-sub-page=list] .conditions-part-card:hover strong, [data-sub-page=list] .cond-card:hover b, [data-sub-page=list] .tour-tile:hover .tour-label, [data-sub-page=list] .together-card:hover h2 { color:var(--navy); text-decoration:underline; text-underline-offset:4px; }
  [data-sub-page=list] .tour-dialog button:hover { border-color:var(--navy); }
}
@media (max-width:1100px) {
  [data-sub-page=list] .equipment-grid, [data-sub-page=list] .tour-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:860px) {
  [data-page=conditions] .section-tabs > .page-wrap { position:relative; }
  [data-page=conditions] .section-tabs > .page-wrap::after { content:''; position:absolute; inset:0 var(--gutter) 0 auto; width:26px; background:linear-gradient(to right,transparent,var(--surface)); pointer-events:none; }
  [data-page=conditions] .section-tabs-row { padding-right:26px; }
  [data-sub-page=list] .conditions-parts, [data-sub-page=list] .cond-grid { display:flex; gap:var(--sp-20); margin-inline:calc(-1 * var(--gutter)); padding:0 var(--gutter) var(--sp-16); overflow-x:auto; scroll-snap-type:x proximity; }
  [data-sub-page=list] .conditions-part-card, [data-sub-page=list] .cond-card { flex:0 0 72%; max-width:360px; scroll-snap-align:center; }
  [data-sub-page=list] .tour-label, [data-sub-page=list] .equipment-copy h2, [data-sub-page=list] .together-copy h2 { font:var(--text-title-sub-phone); font-weight:500; }
  [data-sub-page=list] .equipment-grid, [data-sub-page=list] .tour-grid { gap:var(--sp-32) var(--sp-20); }
}
@media (max-width:600px) {
  [data-sub-page=list] .equipment-grid, [data-sub-page=list] .tour-grid { grid-template-columns:minmax(0,1fr); }
  [data-sub-page=list] .tour-dialog { width:calc(100% - var(--sp-24)); padding:var(--sp-16); border-radius:var(--r-card); }
  [data-sub-page=list] .together-card { grid-template-columns:80px minmax(0,1fr); gap:var(--sp-16); }
}

/* Stage 11 first visit. The frame and page heading keep their existing rules. */
[data-page=first-visit] {
  --fv-heading:600 24px/1.4 var(--font-sans);
  --fv-step:600 19px/1.4 var(--font-sans);
  --fv-info:600 17px/1.7 var(--font-sans);
  --fv-gap:64px;
}
[data-page=first-visit] .fv-band { padding-block:var(--tap-min) var(--sp-40); background:var(--tint); }
[data-page=first-visit] :is(.fv-band h2,.fv-two h2,.fv-two h3,.fv-faq h2) { margin:0 0 var(--sp-20); color:var(--ink); font:var(--fv-heading); }
[data-page=first-visit] .fv-band h2 { margin-bottom:var(--sp-28); }
[data-page=first-visit] .fv-steps { position:relative; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin:0; padding:0; list-style:none; }
[data-page=first-visit] .fv-steps::before { content:''; position:absolute; left:var(--sp-28); right:25%; top:var(--sp-28); height:2px; background:var(--line-2); }
[data-page=first-visit] .fv-step { position:relative; display:grid; gap:var(--sp-12); padding-right:var(--sp-20); }
[data-page=first-visit] .fv-icon { display:grid; place-items:center; width:var(--sp-56); height:var(--sp-56); border:2px solid var(--navy); border-radius:var(--r-pill); background:var(--surface); color:var(--navy); }
[data-page=first-visit] .fv-icon svg { width:var(--sp-28); height:var(--sp-28); fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
[data-page=first-visit] .fv-number { display:block; color:var(--muted); font:var(--text-label); }
[data-page=first-visit] .fv-step strong { display:block; margin-top:var(--sp-4); color:var(--ink); font:var(--fv-step); }
[data-page=first-visit] .fv-notes { display:flex; flex-wrap:wrap; gap:0 var(--sp-4); margin-top:var(--sp-12); color:var(--muted); font:var(--text-caption); }
[data-page=first-visit] .fv-notes :is(p,.visit-review) { margin:0; }
[data-page=first-visit] .fv-two { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:var(--fv-gap); padding-block:var(--sp-56); }
[data-page=first-visit] .fv-checks { display:grid; gap:var(--sp-12); margin:0; padding:0; list-style:none; }
[data-page=first-visit] .fv-checks li { position:relative; min-height:var(--sp-32); padding-left:var(--sp-24); color:var(--ink-2); font:var(--text-list); }
[data-page=first-visit] .fv-checks li::before { content:''; position:absolute; left:2px; top:calc(.5lh - 7px); width:13px; height:8px; border-left:2px solid var(--navy); border-bottom:2px solid var(--navy); transform:rotate(-45deg); }
[data-page=first-visit] .fv-info { display:grid; padding:var(--sp-4) var(--sp-24); border:1px solid var(--line); border-radius:var(--r-thumb); }
[data-page=first-visit] .fv-info a { display:grid; grid-template-columns:var(--sp-80) minmax(0,1fr); gap:var(--sp-12); align-items:baseline; min-height:var(--tap-min); padding-block:var(--sp-16); color:var(--ink); font:var(--fv-info); text-decoration:none; }
[data-page=first-visit] .fv-info a+a { border-top:1px solid var(--line); }
[data-page=first-visit] .fv-info span { color:var(--muted); font:var(--text-label); }
[data-page=first-visit] .fv-info b { font-weight:600; }
[data-page=first-visit] .fv-faq { display:grid; grid-template-columns:280px minmax(0,1fr); gap:var(--fv-gap); padding-block:var(--sp-8) var(--sp-72); }
[data-page=first-visit] .fv-faq .page-faq { border-top:1px solid var(--line); border-bottom:0; }
[data-page=first-visit] .fv-faq .page-faq:last-child { border-bottom:1px solid var(--line); }
[data-page=first-visit] .fv-faq summary { display:block; min-height:var(--tap-min); padding:var(--sp-16) var(--sp-32) var(--sp-16) 0; list-style:none; font:var(--text-list); font-weight:600; }
[data-page=first-visit] .fv-faq summary::-webkit-details-marker { display:none; }
[data-page=first-visit] .fv-faq .page-faq summary::after { content:''; position:absolute; right:var(--sp-4); top:50%; display:block; width:8px; height:8px; margin-top:0; border:0; border-top:1px solid var(--muted); border-right:1px solid var(--muted); border-radius:var(--sub-square); transform:translateY(calc(-50% - 2px)) rotate(135deg); }
[data-page=first-visit] .fv-faq .page-faq[open] summary::after { transform:translateY(calc(-50% + 2px)) rotate(-45deg); }
[data-page=first-visit] .fv-faq .page-faq > div { padding:0 0 var(--sp-16); color:var(--ink-2); font:var(--text-reading); }
[data-page=first-visit] .fv-faq p { margin:0; }
[data-page=first-visit] .fv-faq .visit-text-link { display:inline-flex; align-items:center; min-height:var(--tap-min); text-decoration:underline; color:var(--navy); }
@media (max-width:860px) {
  [data-page=first-visit] { --fv-heading:600 21px/1.4 var(--font-sans); --fv-step:600 17px/1.4 var(--font-sans); --fv-info:600 16px/1.7 var(--font-sans); }
  [data-page=first-visit] .fv-band { padding-block:var(--sp-28) var(--sp-24); }
  [data-page=first-visit] .fv-band h2 { margin-bottom:var(--sp-20); }
  [data-page=first-visit] .fv-steps { grid-template-columns:minmax(0,1fr); }
  [data-page=first-visit] .fv-steps::before { left:calc(var(--tap-min) / 2); right:auto; width:2px; height:auto; top:var(--sp-20); bottom:var(--sp-28); }
  [data-page=first-visit] .fv-step { grid-template-columns:var(--tap-min) minmax(0,1fr); align-items:center; gap:var(--sp-16); padding:0 0 var(--sp-16); }
  [data-page=first-visit] .fv-step:last-child { padding-bottom:0; }
  [data-page=first-visit] .fv-icon { width:var(--tap-min); height:var(--tap-min); }
  [data-page=first-visit] .fv-icon svg { width:var(--sp-24); height:var(--sp-24); }
  [data-page=first-visit] .fv-number { font:var(--text-label-phone); }
  [data-page=first-visit] .fv-two { grid-template-columns:minmax(0,1fr); gap:var(--sp-32); padding-block:var(--sp-32); }
  [data-page=first-visit] .fv-checks li { font:var(--text-list-phone); }
  [data-page=first-visit] .fv-info { padding:0 var(--sp-16); }
  [data-page=first-visit] .fv-info a { grid-template-columns:var(--sp-72) minmax(0,1fr); padding-block:var(--sp-12); }
  [data-page=first-visit] .fv-info span { font:var(--text-label-phone); }
  [data-page=first-visit] .fv-faq { grid-template-columns:minmax(0,1fr); gap:0; padding-block:0 var(--sp-112); }
  [data-page=first-visit] .fv-faq summary { font:var(--text-list-phone); font-weight:600; }
  [data-page=first-visit] .fv-faq .page-faq > div { font:var(--text-reading-phone); }
}

/* Loaded on public home/care only. A retained photograph restores its original layout. */
[data-page=home] .hxv-phone { display:none; }
@media (width > 860px) {
  [data-page=home] .hx-in:not(:has(.hx-photo)) { grid-template-columns:minmax(0,5fr) minmax(0,6fr); grid-template-rows:auto; align-items:center; }
  [data-page=home] .hx-in:not(:has(.hx-photo)) .hx-copy { padding-block:var(--sp-32); }
  [data-page=home] .hx-in:not(:has(.hx-photo)) .hxv { grid-column:2; grid-row:1; padding:var(--sp-28); border:1px solid var(--tint-line); border-radius:var(--r-hero); background:var(--tint); }
  [data-page=home] .hx-in:not(:has(.hx-photo)) .hxv-row { grid-template-columns:var(--sp-56) minmax(0,1fr); gap:var(--sp-12); }
  [data-page=home] .hx-in:not(:has(.hx-photo)) .hxv-table tbody { grid-template-columns:minmax(0,1fr); gap:var(--sp-8); }
  [data-page=home] .hx-in:not(:has(.hx-photo)) .hxv-table tr { justify-content:space-between; }
  [data-page=home] .hx-in:not(:has(.hx-photo)) .hxv-phone { display:grid; }
}
[data-page=home] .care-a-layout:not(:has(.care-a-photo)) { grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:var(--sp-40); }
[data-page=home] .care-a-content:not(:has(.care-a-photo)) { grid-column:2; grid-template-columns:minmax(0,1fr); }
[data-page=home] .care-a-panel:not(:has(.care-a-photo)) { grid-area:1 / 1 / 2 / -1; padding:var(--sp-32); border:1px solid var(--tint-line); border-radius:var(--r-l); background:var(--tint); }
[data-page=home] .care-a-panel:not(:has(.care-a-photo)) .care-a-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--sp-24); margin-block:var(--sp-32); }
[data-page=home] .care-a-panel:not(:has(.care-a-photo)) .care-a-steps li { grid-template-columns:minmax(0,1fr); gap:var(--sp-12); padding:var(--sp-16) 0 0; border-top:1px solid var(--line-2); }
[data-page=care] .care-cards:not(:has(img)) { grid-template-columns:repeat(3,minmax(0,1fr)); }
[data-page=care] .care-card:not(:has(img)) { display:flex; padding:var(--sp-28); border:1px solid var(--tint-line); border-radius:var(--r-card); background:var(--tint); }
[data-page=care] .care-card:not(:has(img)) .care-card-copy { display:flex; flex-direction:column; gap:var(--sp-12); padding:0; }
[data-page=care] .care-card:not(:has(img)) .care-card-copy p { margin:0 0 var(--sp-12); }
[data-page=care] .care-card:not(:has(img)) .care-card-go { align-self:start; margin-top:auto; }
@media (max-width:860px) {
  [data-page=home] .hx-in:not(:has(.hx-photo)) .hx-copy { padding-top:0; }
  [data-page=home] .care-a-layout:not(:has(.care-a-photo)) { grid-template-columns:minmax(0,1fr); gap:var(--sp-24); }
  [data-page=home] .care-a-content:not(:has(.care-a-photo)) { grid-column:1; }
  [data-page=home] .care-a-panel:not(:has(.care-a-photo)) { padding:var(--sp-24); }
  [data-page=home] .care-a-panel:not(:has(.care-a-photo)) .care-a-steps { grid-template-columns:minmax(0,1fr); gap:var(--sp-12); margin-block:var(--sp-24); }
  [data-page=home] .care-a-panel:not(:has(.care-a-photo)) .care-a-steps li { grid-template-columns:var(--sp-20) minmax(0,1fr); }
  [data-page=care] .care-cards:not(:has(img)) { grid-template-columns:minmax(0,1fr); }
}
