/* A clear first visit, from understanding the session to making contact. */
.hero-copy { max-width:38rem; padding-block:60px 70px; }
.hero-name { font-size:clamp(3.7rem,5.5vw,5.6rem); line-height:1; letter-spacing:-.035em; }
.hero-name em { font-weight:400; }
.hero-copy .eyebrow { font-size:.66rem; letter-spacing:.16em; }
.hero-role { font-size:1.7rem; margin-top:22px; }
.hero-lead { max-width:27rem; font-size:1.05rem; }
.hero-note { max-width:30rem; line-height:1.6; align-items:baseline; font-size:.76rem; }
.hero-note .status-dot { flex-shrink:0; }
.hero-actions .btn { gap:14px; }
.hero-actions .btn-ghost { font-size:.9rem; }
.session-section { background:#fcfcfb; }
.session-intro { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:clamp(40px,7vw,100px); align-items:start; }
.session-intro .section-head .lead { max-width:34rem; font-size:1.08rem; margin-top:26px; }
.session-facts { border:1px solid #d7e0e8; background:#f0f4f6; padding:30px; border-radius:10px; }
.session-facts .eyebrow { font-size:.62rem; margin-bottom:14px; }
.session-facts h3 { font-size:2rem; font-weight:500; color:var(--navy); }
.session-facts dl { margin:24px 0 0; }
.session-facts dl>div { display:flex; justify-content:space-between; gap:20px; padding:12px 0; border-bottom:1px solid #d8e0e7; font-size:.9rem; }
.session-facts dt { color:#617183; }
.session-facts dd { margin:0; text-align:right; color:#263e55; }
.session-facts .price { flex-shrink:0; white-space:nowrap; font-weight:600; font-variant-numeric:tabular-nums; }
.session-facts .placeholder { font-style:italic; }
.facts-note { margin-top:16px; font-size:.76rem; line-height:1.6; color:#637487; }
.session-facts .text-link { gap:12px; font-size:.82rem; margin-top:20px; }
.session-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); list-style:none; padding:0; margin:65px 0 0; gap:40px; }
.session-steps li { padding-top:22px; border-top:1px solid #bac8d4; }
.session-number { font:400 2.5rem/1 var(--serif); color:#8a9dae; display:block; margin-bottom:22px; }
.step-kicker { font:600 .62rem/1.4 var(--sans); letter-spacing:.16em; text-transform:uppercase; color:#5b748d; margin-bottom:10px; }
.session-steps h3 { font-size:1.8rem; color:var(--navy); font-weight:500; }
.session-steps h3+p { margin-top:14px; color:#526173; font-size:.95rem; line-height:1.65; }
.session-watch { display:flex; align-items:center; gap:12px; border-top:1px solid #d9e1e8; margin-top:44px; padding-top:22px; font-size:.88rem; color:#53687c; flex-wrap:wrap; }
.session-watch .small-play { margin-right:0; display:grid; place-items:center; width:30px; height:30px; border:1px solid #c4d1dc; border-radius:50%; color:var(--navy); }
.session-watch a { text-underline-offset:5px; color:var(--navy); margin-left:auto; }
#video-ritual { scroll-margin-top:calc(var(--header-h) + 24px); }
.booking-section { background:#eaf0f4; }
.booking { grid-template-columns:minmax(0,1fr) minmax(0,.95fr); gap:clamp(38px,6vw,90px); }
.booking-copy>.lead { color:#536477; margin-top:26px; font-size:1.08rem; max-width:32rem; }
.booking-explainer { display:flex; gap:18px; margin-top:32px; }
.booking-explainer>span { display:grid; place-items:center; border:1px solid #bdcbd7; border-radius:50%; width:38px; height:38px; flex-shrink:0; color:var(--navy); }
.booking-explainer h3 { font-size:1.6rem; font-weight:500; color:var(--navy); }
.booking-explainer p { color:#526477; font-size:.92rem; margin-top:10px; }
.session-faq { margin-top:38px; border-top:1px solid #c9d4de; }
.session-faq details { border-bottom:1px solid #c9d4de; }
.session-faq summary { cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:baseline; gap:18px; padding:18px 0; font-size:.92rem; line-height:1.5; color:#1b3b5b; }
.session-faq summary::-webkit-details-marker { display:none; }
.session-faq summary span { font-size:1.3rem; flex-shrink:0; line-height:1; }
.session-faq details[open] summary span { transform:rotate(45deg); }
.session-faq details p { font-size:.9rem; line-height:1.65; padding-bottom:20px; color:#526477; }
.booking-card { padding:32px; }
.contact-identity { display:flex; align-items:center; gap:14px; margin-bottom:28px; }
.contact-identity img { width:56px; height:56px; object-fit:cover; object-position:50% 20%; border-radius:50%; border:1px solid #a8bdd080; }
.contact-identity h3 { font-size:1.85rem; margin-top:0; }
.contact-identity p { font-size:.75rem; margin-top:6px; color:#bfccd7; }
.booking-intents { display:flex; padding:4px; gap:4px; border:1px solid #ffffff30; border-radius:8px; background:#071c3040; margin-bottom:24px; }
.booking-intents button { flex:1; border:0; border-radius:5px; background:transparent; color:#c5d3df; padding:10px 8px; cursor:pointer; font-size:.78rem; line-height:1.4; }
.booking-intents button[aria-pressed=true] { background:#e6edf3; color:#18344f; }
.message-label { display:block; margin-bottom:10px; font-size:.8rem; color:#c0cfdb; }
#booking-message { display:block; width:100%; resize:vertical; min-height:155px; padding:16px; background:#0a203560; border:1px solid #ffffff40; border-radius:7px; color:#f0f4f8; font:400 .92rem/1.65 var(--sans); }
#booking-message:focus-visible { outline-color:#c5d8e8; }
.message-tools { margin-top:12px; display:flex; flex-direction:column; align-items:start; gap:7px; min-height:44px; }
#copy-message { background:none; color:#cddde9; border:0; padding:0 0 3px; border-bottom:1px solid #8da4b980; cursor:pointer; font-size:.77rem; }
#copy-message span { margin-left:14px; font-size:1rem; }
#copy-status { color:#d2e1ec; font-size:.72rem; line-height:1.5; }
.booking-actions { margin-top:18px; gap:10px; }
.booking-actions .btn { gap:12px; font-size:.9rem; }
.booking-actions .row { gap:10px; }
.booking-actions [aria-disabled=true] { opacity:.48; cursor:not-allowed; }
.booking-actions [aria-disabled=true]:hover { transform:none; box-shadow:none; }
.contact-number { font:500 1.45rem/1.4 var(--serif); margin-top:22px; color:#d4dfe8; text-align:center; }
.contact-email { margin-top:6px; text-align:center; font-size:.86rem; color:#d4dfe8; overflow-wrap:anywhere; }
.contact-email a { text-underline-offset:4px; }
.contact-status { margin-top:14px; padding-top:16px; border-top:1px solid #ffffff25; font-size:.75rem; line-height:1.6; color:#c4d2de; }
.contact-help { color:#b3c4d3; font-size:.72rem; line-height:1.6; margin-top:10px; }
.closing-invitation { padding:65px 0; background:#eff3f6; }
.closing-invitation>.wrap { display:flex; align-items:center; justify-content:space-between; gap:28px; }
.closing-invitation h2 { font-size:clamp(2.2rem,4vw,3.5rem); }
.closing-invitation .eyebrow { font-size:.62rem; margin-bottom:14px; }
.closing-invitation .btn { gap:20px; flex-shrink:0; }
.booking-dock { display:none; }
.practice-example { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.8fr); gap:clamp(45px,8vw,110px); align-items:center; }
.practice-copy>.lead { margin-top:24px; max-width:36rem; color:#526173; font-size:1.1rem; }
.practice-points { list-style:none; margin:32px 0 0; padding:0; }
.practice-points li { display:flex; gap:20px; padding:20px 0; border-top:1px solid #d7e0e7; }
.practice-points li>span { font:500 .75rem/1.5 var(--sans); color:#8196a9; padding-top:5px; }
.practice-points h3 { color:var(--navy); font-size:1.65rem; font-weight:500; }
.practice-points p { color:#536477; font-size:.95rem; margin-top:8px; line-height:1.6; }
.practice-context { color:#6a7b8c; font-size:.77rem; line-height:1.6; margin-top:15px; max-width:32rem; }
.practice-film { width:100%; max-width:355px; justify-self:end; }
.practice-film .video-frame { box-shadow:0 18px 44px #1d365226; }
.practice-film figcaption { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; margin-top:18px; font-size:.73rem; color:#65798b; }
.practice-film figcaption a { color:var(--navy); text-underline-offset:4px; }
@media(max-width:1100px) and (min-width:861px) {
  .hero-copy { max-width:33rem; }
  .hero-name { font-size:4.2rem; }
}
@media(max-width:860px) {
  .practice-example { gap:35px; grid-template-columns:minmax(0,1.1fr) minmax(0,.85fr); }
  .practice-copy h2 { font-size:3rem; }
  .hero-copy { margin-top:-265px; max-width:35rem; padding:0 0 58px; }
  .hero-name { font-size:4.8rem; }
  .hero-photo::after { background:linear-gradient(180deg,#0b0a0900 20%,#0b0a0911 38%,#0b0a09d9 72%,var(--ink) 94%); }
  .session-intro { grid-template-columns:1fr 1fr; gap:30px; }
  .session-intro h2 { font-size:3rem; }
  .session-facts { padding:24px; }
  .session-facts dl>div { font-size:.8rem; gap:10px; }
  .session-steps { gap:24px; }
  .session-steps h3 { font-size:1.55rem; }
  .booking { grid-template-columns:1fr; }
  .booking-card { max-width:580px; width:100%; margin-inline:auto; }
  .booking-copy>.lead { max-width:none; }
}
@media(max-width:600px) {
  .practice-example { grid-template-columns:1fr; gap:32px; }
  .practice-copy h2 { font-size:3rem; }
  .practice-copy>.lead { font-size:1rem; }
  .practice-points { margin-top:25px; }
  .practice-points li { gap:16px; }
  .practice-points h3 { font-size:1.55rem; }
  .practice-film { justify-self:center; max-width:340px; }
  .hero-photo { height:clamp(300px,75vw,400px); max-height:none; aspect-ratio:auto; }
  .hero-photo img { object-position:50% 22%; }
  .hero-copy { margin-top:-95px; padding-bottom:40px; }
  .hero-name { font-size:clamp(2.8rem,10vw,3.8rem); }
  .hero-copy .eyebrow { font-size:.58rem; line-height:1.6; letter-spacing:.1em; gap:8px; }
  .hero-copy .eyebrow::before { width:18px; flex-shrink:0; }
  .hero-role { font-size:1.4rem; margin-top:18px; }
  .hero-lead { font-size:.96rem; line-height:1.65; }
  .hero-actions { gap:10px; }
  .hero-actions .btn { min-height:46px; font-size:.8rem; padding-inline:15px; gap:8px; }
  .hero-note { font-size:.7rem; line-height:1.6; }
  .session-intro { grid-template-columns:1fr; gap:34px; }
  .session-intro h2 { font-size:2.9rem; }
  .session-intro .section-head .lead { font-size:1rem; margin-top:20px; }
  .session-facts { padding:24px; }
  .session-facts dl>div { font-size:.88rem; }
  .session-steps { grid-template-columns:1fr; gap:26px; margin-top:38px; }
  .session-steps li { position:relative; padding:24px 0 0 48px; }
  .session-number { position:absolute; top:24px; left:0; font-size:2rem; }
  .session-steps h3 { font-size:1.65rem; }
  .session-steps h3+p { font-size:.94rem; }
  .session-watch { font-size:.82rem; gap:10px; margin-top:30px; }
  .session-watch a { width:100%; margin:0 0 0 40px; }
  .booking-copy>.lead { font-size:1rem; }
  .booking-card { padding:26px 20px; }
  .contact-identity h3 { font-size:1.7rem; }
  .contact-identity p { font-size:.68rem; }
  .booking-intents button { font-size:.74rem; padding:9px 5px; }
  #booking-message { font-size:1rem; min-height:190px; }
  .closing-invitation { padding:48px 0; }
  .closing-invitation>.wrap { flex-direction:column; align-items:start; gap:25px; }
  .booking-dock:not([hidden]) { display:flex; position:fixed; z-index:45; bottom:0; left:0; right:0; padding:10px 22px calc(10px + env(safe-area-inset-bottom)); align-items:center; gap:16px; justify-content:space-between; background:#10263af5; border-top:1px solid #ffffff30; color:#d6e1eb; backdrop-filter:blur(16px); }
  .booking-dock>span { font:italic 400 1.2rem/1.2 var(--serif); }
  .booking-dock .btn { min-height:42px; font-size:.8rem; gap:16px; }
  .site-footer { padding-bottom:110px; }
}
@media(max-width:370px) {
  .hero-name { font-size:2.9rem; }
  .hero-actions { flex-direction:column; align-items:stretch; }
  .hero-actions .btn { min-height:44px; }
  .session-facts { padding:20px; }
  .booking-intents { flex-direction:column; }
  .booking-actions .row { grid-template-columns:1fr; }
}
