/* G1: clearer hierarchy, separated actions, and a complete site footer. */
.method-layout,.report-layout,.faq-layout { min-width:0; }
.method-intro,.method-video,.report-intro,.faq-intro { min-width:0; }
.method .video-poster { display:flex; flex-direction:column; justify-content:center; gap:38px; padding:58px 28px; }
.method .video-poster > p { font-size:clamp(20px,2.6vw,36px); letter-spacing:-.045em; line-height:1.2; white-space:nowrap; }
.method .video-poster .video-play { flex:none; margin:0; width:60px; height:60px; }
.method .video-poster::before { opacity:.5; left:55%; top:35%; }
.method .video-poster::after { opacity:.4; right:-7%; bottom:-45%; }
.report-layout { grid-template-columns:minmax(0,1fr) minmax(0,1.3fr); gap:48px; }
.faq-layout { grid-template-columns:minmax(0,1fr) minmax(0,1.3fr); gap:48px; }
#report-title,#faq-title { font-size:clamp(34px,3.45vw,48px); white-space:nowrap; }

/* Text and calendar occupy separate rows rather than overlapping layers. */
.moment { isolation:isolate; }
.moment::after { z-index:0; pointer-events:none; }
.moment .moment-photo { z-index:1; opacity:1; }
.moment h3,.moment p,.moment-no { position:relative; z-index:2; }
.moment.moment--light { display:grid; grid-template-columns:minmax(0,1fr) 36%; grid-template-rows:auto 1fr auto; column-gap:18px; padding:30px; }
.moment--light .moment-no { grid-column:1/-1; margin-bottom:32px; max-width:none; }
.moment--light h3 { grid-column:1/-1; max-width:100%; align-self:center; margin-bottom:20px; }
.moment--light p { grid-column:1; grid-row:3; max-width:none; align-self:start; }
.moment.moment--light .moment-photo--calendar { position:static; grid-column:2; grid-row:3; width:100%; height:auto; max-height:145px; object-fit:contain; align-self:end; filter:drop-shadow(0 10px 15px rgba(95,0,17,.13)); }

.physician-layout { grid-template-columns:1fr; gap:40px; }
.physician-copy { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:64px; }
.physician-copy .physician-lead { margin:0; max-width:440px; }
.review-flow { width:100%; max-width:none; min-height:0; }
.review-inputs { position:relative; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.review-source { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:30px; padding:30px 24px; min-height:230px; border:1px solid var(--line); border-radius:18px; background:#faf6f4; }
.review-source--history { background:#f3f0e9; }
.review-source--exam { background:#f5f6f5; }
.review-source h3 { margin:0; font-size:clamp(18px,1.8vw,24px); line-height:1.2; letter-spacing:-.04em; text-align:center; }
.review-source .review-art { position:relative; inset:auto; flex:none; margin:0; width:150px; height:95px; }
.review-source .patient-record-art { display:block; object-fit:contain; width:165px; height:104px; }
.review-source .report-motif { padding:10px 14px; }
.review-source .report-motif::before { margin-bottom:12px; }
.review-source .history-motif { height:95px; width:140px; border-left:0; }
.review-source .history-motif::before { top:45px; }
.review-source .history-motif i { top:40px; }
.review-source .exam-motif { width:130px; height:90px; }
.review-branches { display:block; width:100%; height:72px; overflow:visible; }
.review-branches path { fill:none; stroke:var(--wine); stroke-width:1.5; vector-effect:non-scaling-stroke; }
.review-outcome { width:min(520px,100%); margin:auto; padding:26px 34px; border-radius:16px; background:var(--wine); color:#fff; text-align:center; }
.review-outcome span { display:block; margin-bottom:10px; color:#f3c6cf; font-size:13px; }
.review-outcome h3 { margin:0; font-size:clamp(24px,2.4vw,32px); letter-spacing:-.035em; }
.review-boundary { margin-top:35px; }
.physician .review-boundary .boundary { max-width:780px; margin:0 auto; font-size:13px; border-color:var(--line); }

/* Keep the three scenes, give each of the five actions its own readable row. */
.process-scene,.process-scene--report { grid-template-columns:34% minmax(0,66%); min-height:0; }
.process-scene--sample { grid-template-columns:minmax(0,66%) 34%; }
.process-scene-copy { padding:38px 44px; }
.process-scene-copy>h3 { font-size:clamp(29px,3vw,41px); line-height:1.08; letter-spacing:-.045em; margin:0 0 30px; }
.step-pair,.process-scene--report .step-pair { display:grid; grid-template-columns:1fr; gap:0; }
.step-pair article { display:grid; grid-template-columns:46px minmax(0,1fr); column-gap:20px; padding:23px 0; border-top:1px solid rgba(36,40,43,.23); }
.step-pair article:last-child { padding-bottom:0; }
.step-pair b { grid-row:1/3; display:grid; place-items:center; align-self:start; width:42px; height:42px; margin:0; border:1px solid currentColor; border-radius:50%; font-size:13px; font-weight:600; }
.step-pair h4 { font-size:20px; line-height:1.2; margin:0 0 8px; letter-spacing:-.035em; }
.step-pair p { grid-column:2; font-size:14px; line-height:1.6; max-width:490px; }
.process-scene--contact .step-pair article { border-color:rgba(255,255,255,.35); }
.process-scene-photo img { padding:22px; }
.process-document { width:76%; padding:22px; box-shadow:10px 12px 0 #ebe4dc; }
.team-portrait img { object-position:50% 0%; }
.team-panel--ambassadors { top:auto; bottom:95px; right:-12px; }
.faq-intro { position:sticky; top:110px; }
.faq-intro .faq-scene { width:min(350px,100%); height:300px; margin:28px auto 0; }
.practical-layout { align-items:start; }
.inquiry-layout { display:grid; grid-template-columns:1.15fr .85fr; align-items:center; gap:56px; }
.inquiry h2 { margin:0; }
.inquiry-action p { max-width:430px; margin:0 0 24px; font-size:15px; line-height:1.65; color:rgba(255,255,255,.8); }

.site-footer { padding:68px 0 22px; background:#eee9e2; }
.footer-main { display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:60px; padding-bottom:50px; }
.footer-brand img { display:block; width:180px; height:auto; }
.footer-brand p { max-width:280px; margin:23px 0 0; font-size:14px; line-height:1.65; color:var(--muted); }
.footer-links { display:flex; flex-direction:column; align-items:flex-start; gap:14px; }
.footer-links h3 { font-size:16px; line-height:1.3; margin:0 0 8px; font-weight:600; }
.footer-links a,.footer-links .text-button { font-size:13px; line-height:1.5; }
.footer-links a:hover,.footer-bottom a:hover { color:var(--red); }
.footer-links .text-button { margin:4px 0 0; text-align:left; }
.footer-bottom { display:flex; justify-content:space-between; gap:50px; padding:24px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); color:var(--muted); font-size:12px; line-height:1.6; }
.footer-bottom p { max-width:650px; margin:0; }
.footer-bottom a { flex:none; color:var(--ink); }
.footer-versions { display:flex; justify-content:space-between; gap:20px; padding-top:22px; color:var(--muted); font-size:11px; }
.footer-versions nav { display:flex; gap:18px; }
.site-footer a:focus-visible { outline:2px solid var(--red); outline-offset:5px; }
.page-dialog .dialog-inner { padding-top:65px; }
@media(min-width:901px) { #method-title { font-size:clamp(36px,3.5vw,48px); } }
@media(max-width:1100px) and (min-width:901px) {
  .moment.moment--light { padding:26px; }
  .moment--light h3 { font-size:29px; }
  .footer-main { gap:35px; }
}
@media(max-width:900px) {
  .moment-grid { grid-template-columns:1fr; }
  .report-layout,.faq-layout { grid-template-columns:1fr; gap:35px; }
  .faq-intro { position:static; }
  .faq-intro .faq-scene { width:290px; height:250px; }
  .inquiry-layout { grid-template-columns:1fr; gap:28px; }
  .physician-copy { grid-template-columns:1fr; gap:25px; }
  .review-inputs { gap:12px; }
  .review-source { padding:23px 14px; }
  .review-source h3 { font-size:18px; }
  .review-source .review-art { transform:scale(.85); }
  .process-scene,.process-scene--report { grid-template-columns:29% minmax(0,71%); }
  .process-scene--sample { grid-template-columns:minmax(0,71%) 29%; }
  .process-scene--sample .process-scene-copy,.process-scene--sample .process-scene-photo { order:initial; }
  .process-scene-copy { padding:32px 26px; }
  .process-scene-photo { min-height:100%; }
  .process-document { margin:25px 0; width:82%; padding:15px; }
  .process-document span { font-size:14px; }
  .footer-main { grid-template-columns:1fr 1fr; gap:35px; }
  .footer-brand { grid-column:1/-1; }
}
@media(max-width:600px) {
  .faq-intro .faq-scene { width:min(250px,100%); height:220px; margin:22px auto 0; }
  .method .video-poster { aspect-ratio:auto; min-height:270px; padding:40px 16px; gap:34px; }
  .method .video-poster > p { font-size:clamp(18px,5.3vw,29px); }
  .method .video-poster .video-play { width:52px; height:52px; }
  #report-title,#faq-title { font-size:clamp(31px,7.4vw,40px); white-space:normal; }
  .moment.moment--light { padding:25px; grid-template-columns:minmax(0,1fr) 32%; gap:0 17px; }
  .moment--light .moment-no { margin-bottom:32px; }
  .moment--light p { max-width:none; font-size:13px; }
  .moment.moment--light .moment-photo--calendar { max-height:110px; }
  .review-inputs { display:flex; flex-direction:column; gap:15px; padding-right:28px; }
  .review-inputs::after { content:""; position:absolute; right:0; top:62px; bottom:-30px; border-right:1px solid var(--wine); }
  .review-source { min-height:125px; flex-direction:row; justify-content:flex-start; gap:15px; padding:20px 16px; }
  .review-source::after { content:""; position:absolute; right:-28px; top:50%; width:28px; border-top:1px solid var(--wine); }
  .review-source h3 { text-align:left; font-size:17px; }
  .review-source .review-art { width:60px; height:65px; transform:none; }
  .review-source .report-motif { padding:8px; }
  .review-source .report-motif i { margin-top:10px; }
  .review-source .report-motif::before { margin-bottom:5px; height:3px; }
  .review-source .history-motif { width:60px; }
  .review-source .history-motif::before { top:30px; }
  .review-source .history-motif i { top:25px; }
  .review-source .exam-motif::before { left:7px; top:11px; width:30px; height:30px; }
  .review-source .exam-motif::after { left:23px; top:18px; width:13px; height:13px; }
  .review-source .exam-motif b { right:5px; bottom:6px; width:22px; height:22px; }
  .review-branches { display:none; }
  .review-outcome { position:relative; margin-top:59px; padding:25px 18px; }
  .review-outcome::before { content:""; position:absolute; left:50%; right:0; top:-30px; height:29px; border-top:1px solid var(--wine); border-left:1px solid var(--wine); }
  .review-outcome::after { content:""; position:absolute; left:calc(50% - 4px); top:-8px; width:8px; height:8px; transform:rotate(45deg); border-bottom:1px solid var(--wine); border-right:1px solid var(--wine); }
  .review-outcome span { font-size:12px; }
  .review-outcome h3 { font-size:24px; }
  .process-scene,.process-scene--sample,.process-scene--report { grid-template-columns:1fr; }
  .process-scene-photo { height:180px; min-height:180px; }
  .process-scene-photo img { padding:12px; }
  .process-scene--sample .process-scene-photo { order:-1; }
  .process-document { width:180px; margin:28px auto 7px; padding:18px; }
  .process-scene-copy { padding:28px 23px; }
  .process-scene-copy>h3 { font-size:29px; }
  .step-pair article { column-gap:14px; grid-template-columns:35px minmax(0,1fr); padding-top:22px; padding-bottom:22px; }
  .step-pair b { width:33px; height:33px; font-size:11px; }
  .step-pair h4 { font-size:18px; }
  .step-pair p { font-size:13px; }
  .team-panel--ambassadors { right:-3px; bottom:74px; top:auto; }
  .footer-main { gap:35px 20px; }
  .footer-links h3 { font-size:14px; }
  .footer-links a,.footer-links .text-button { font-size:12px; }
  .footer-bottom { flex-direction:column; gap:18px; }
  .site-footer { padding-top:45px; }
}

/* Method introduction and one consistent reading direction for the five steps. */
.method-layout { grid-template-columns:minmax(0,1fr) minmax(0,1.12fr); gap:48px; }
#method-title { font-size:clamp(28px,3.2vw,43px); white-space:nowrap; }
.method-description { max-width:440px; margin:26px 0 0; color:var(--muted); font-size:16px; line-height:1.7; }
.method .video-poster { gap:28px; padding:38px 24px; }
.method .video-poster .video-play { position:relative; inset:auto; display:grid; place-items:center; pointer-events:auto; opacity:1; border:0; cursor:pointer; transition:transform .2s ease,box-shadow .2s ease; }
.video-play svg { margin-left:3px; }
.method .video-play:hover { transform:scale(1.08); box-shadow:0 16px 32px rgba(159,23,49,.28); }
.method .video-play:focus-visible { outline:3px solid var(--wine); outline-offset:6px; }
.process-route .process-scene { grid-template-columns:30% minmax(0,70%); }
.process-route .process-scene-photo,.process-route .process-scene-copy { order:initial; }
.process-route .process-scene-copy { padding:20px 42px; align-self:center; }
.process-steps { margin:0; padding:0; list-style:none; }
.process-steps li { position:relative; display:grid; grid-template-columns:54px minmax(0,1fr); gap:24px; padding:28px 0; }
.process-steps li+li { border-top:1px solid var(--line); }
.process-scene--contact .process-steps li+li { border-color:rgba(255,255,255,.22); }
.step-number { position:relative; z-index:1; display:grid; place-items:center; width:52px; height:52px; border-radius:50%; background:var(--red); color:white; font-size:16px; font-weight:600; }
.process-scene--contact .step-number { background:#fff; color:var(--wine); }
.process-steps li:not(:last-child)::after { content:""; position:absolute; left:26px; top:80px; bottom:-28px; border-left:1px solid rgba(159,23,49,.3); }
.process-scene--contact .process-steps li:not(:last-child)::after { border-color:rgba(255,255,255,.4); }
.process-steps h3 { margin:0 0 12px; font-size:clamp(20px,2.1vw,28px); line-height:1.2; font-weight:600; letter-spacing:-.035em; }
.process-steps p { max-width:560px; margin:0; color:var(--muted); font-size:15px; line-height:1.6; }
.process-scene--contact .process-steps p { color:rgba(255,255,255,.8); }
.process-route .process-scene--report { min-height:260px; }
@media(max-width:900px) {
  .method-layout { grid-template-columns:1fr; gap:32px; }
  #method-title { font-size:clamp(28px,5vw,43px); }
  .method-description { max-width:590px; }
  .process-route .process-scene-copy { padding:14px 24px; }
  .process-steps li { grid-template-columns:44px minmax(0,1fr); gap:16px; }
  .step-number { width:42px; height:42px; font-size:14px; }
  .process-steps li:not(:last-child)::after { left:21px; top:70px; }
}
@media(max-width:600px) {
  #method-title { white-space:normal; font-size:clamp(27px,6.6vw,38px); }
  .method-description { margin-top:20px; font-size:15px; }
  .process-route .process-scene { grid-template-columns:1fr; }
  .process-route .process-scene-copy { padding:4px 22px 12px; }
  .process-steps p { font-size:14px; }
  .process-route .process-scene--report { min-height:0; }
}
@media(prefers-reduced-motion:reduce) {
  .method .video-poster .video-play { transition:none; }
  .method .video-play:hover { transform:none; }
}

/* Existing brand pattern, kept behind content and quiet at reading distance. */
.report,.inquiry { position:relative; isolation:isolate; }
.report::before,.inquiry::before {
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:url("assets/brand-pattern.webp") no-repeat center / cover;
}
.report::before { opacity:.36; mix-blend-mode:multiply; transform:scaleX(-1); }
.inquiry::before {
  left:32%; background-position:right center; opacity:.65;
  filter:grayscale(1) invert(1); mix-blend-mode:screen;
  mask-image:linear-gradient(to right,transparent,#000 55%);
  -webkit-mask-image:linear-gradient(to right,transparent,#000 55%);
}
@media(max-width:600px) {
  .report::before { background-position:right bottom; background-size:auto 85%; opacity:.28; }
  .inquiry::before { left:0; opacity:.45; background-position:75% center; }
}

/* Hero CTAs stay crisp without the red glow under the first-block button. */
.hero .button,
.hero .button:hover,
.patients-hero .button,
.patients-hero .button:hover,
.doctors-hero .button,
.doctors-hero .button:hover,
.contacts-hero .button,
.contacts-hero .button:hover { box-shadow:none; }
