/* Book a Session visual phase: page-scoped styles only. */
.nc-book-session{color:var(--nc-body);background:var(--nc-ivory)}
.nc-book-session section{margin:0;scroll-margin-top:24px}
.nc-book-session .nc-bs-container{width:min(1240px,calc(100% - 64px));margin-inline:auto}
.nc-book-session .nc-bs-section{padding-block:64px}
.nc-book-session h1,.nc-book-session h2,.nc-book-session h3{margin:0;color:var(--nc-navy);text-wrap:balance}
.nc-book-session h1{font-size:56px;line-height:1.06;letter-spacing:-.025em}
.nc-book-session h2{font-size:38px;line-height:1.15}
.nc-book-session h3{font-size:24px;line-height:1.2}
.nc-book-session p{margin:16px 0 0;font-size:16px;line-height:1.6}
.nc-book-session .nc-eyebrow{margin:0 0 14px;font-size:11px;line-height:1.4;letter-spacing:.18em}
.nc-book-session .nc-bs-icon{width:28px;height:28px;flex-shrink:0;color:var(--nc-gold-deep);fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.nc-book-session img{display:block;width:100%;height:auto;object-fit:contain;border:0;border-radius:0;box-shadow:none}
.nc-book-session .nc-bs-hero{padding-block:44px}
.nc-book-session .nc-bs-hero-grid{display:grid;grid-template-columns:minmax(0,52fr) minmax(0,48fr);align-items:center;gap:40px}
.nc-book-session .nc-bs-hero-art{width:100%;max-width:570px;justify-self:center}
.nc-book-session .nc-bs-lead{font-size:18px;line-height:1.6;margin-top:24px}
.nc-book-session .nc-bs-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.nc-book-session .nc-button{font-size:14px;line-height:1.3;min-height:48px;white-space:normal;padding:13px 20px}
.nc-book-session button:disabled{opacity:1;cursor:not-allowed}
.nc-book-session .nc-bs-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;padding:0;margin:28px 0 0;gap:12px;text-align:center;color:var(--nc-navy);font-size:12px;font-weight:600}
.nc-book-session .nc-bs-steps li{display:grid;justify-items:center;gap:8px}
.nc-book-session .nc-bs-steps span{display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--nc-gold);border-radius:50%;font-weight:500}
.nc-book-session .nc-bs-quote{font:600 30px/1.2 var(--nc-font-accent);color:var(--nc-gold-deep);text-align:center;margin-top:28px}
.nc-book-session .nc-bs-quote::after{content:'';display:block;width:48px;height:2px;background:var(--nc-gold-divider);margin:14px auto 0}
.nc-book-session .nc-bs-section-heading{margin-bottom:28px;max-width:900px}
.nc-book-session .nc-bs-section-heading>p:not(.nc-eyebrow){max-width:800px}
.nc-book-session .nc-bs-card{background:#fff;border:var(--nc-border-light);border-radius:var(--nc-card-radius);box-shadow:var(--nc-card-shadow);padding:28px;min-width:0}
.nc-book-session .nc-bs-preview{padding:14px 18px;background:#eee9df;border-left:3px solid var(--nc-gold-deep);color:var(--nc-navy);font-size:14px;margin:0 0 28px}
.nc-book-session .nc-bs-status{font-size:12px;color:var(--nc-muted);line-height:1.5}
.nc-book-session .nc-bs-small{font-size:13px;line-height:1.5}
.nc-book-session .nc-bs-centered{text-align:center}
.nc-book-session .nc-bs-session-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.nc-book-session .nc-bs-session{position:relative;display:flex;flex-direction:column;align-items:flex-start}
.nc-book-session .nc-bs-session>h3{margin-top:18px}
.nc-book-session .nc-bs-session>p:not(.nc-bs-status){font-size:14px}
.nc-book-session .nc-bs-session-featured{border:1px solid var(--nc-gold);background:#fffdf8}
.nc-book-session .nc-bs-badge{position:absolute;top:-13px;left:28px;background:var(--nc-gold-cta);color:var(--nc-navy);font:700 10px/1.4 var(--nc-font-body);letter-spacing:.1em;padding:6px 12px;border-radius:6px}
.nc-book-session .nc-bs-duration{display:flex;gap:8px;align-items:center;font-weight:600;color:var(--nc-navy)}
.nc-book-session .nc-bs-duration svg{width:18px;height:18px}
.nc-book-session .nc-bs-benefits{list-style:none;padding:0;margin:18px 0 20px;display:grid;gap:10px;font-size:14px}
.nc-book-session .nc-bs-benefits li{display:flex;gap:9px;align-items:flex-start}
.nc-book-session .nc-bs-benefits svg{width:17px;height:20px}
.nc-book-session .nc-bs-session .nc-bs-status{margin-top:auto}
.nc-book-session .nc-bs-session .nc-button{margin-top:14px;width:100%}
.nc-book-session .nc-bs-time,.nc-book-session .nc-bs-confirm{background:#f0ebe2}
.nc-book-session .nc-bs-time-grid{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:22px;align-items:stretch}
.nc-book-session .nc-bs-time-grid .nc-bs-card{padding:24px}
.nc-book-session .nc-bs-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}
.nc-book-session .nc-bs-panel-heading h3{font:600 18px/1.3 var(--nc-font-body)}
.nc-book-session .nc-bs-panel-heading button{display:grid;place-items:center;min-width:44px;min-height:44px;border:0;background:transparent;padding:6px}
.nc-book-session .nc-bs-panel-heading svg{width:18px;height:18px}
.nc-book-session .nc-bs-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-top:20px;text-align:center;font-size:13px}
.nc-book-session .nc-bs-days>span{min-height:32px;display:grid;place-items:center}
.nc-book-session .nc-bs-weekday{font-weight:600;color:var(--nc-navy)}
.nc-book-session .nc-bs-day{color:var(--nc-muted)}
.nc-book-session .nc-bs-slots{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}
.nc-book-session .nc-bs-slots button{min-height:44px;border:var(--nc-border-light);border-radius:7px;background:var(--nc-ivory);color:var(--nc-muted)}
.nc-book-session .nc-bs-selection dl{margin:22px 0;display:grid;gap:14px}
.nc-book-session .nc-bs-selection dl>div{display:flex;justify-content:space-between;gap:10px;font-size:13px}
.nc-book-session .nc-bs-selection dt{display:flex;align-items:center;gap:8px;color:var(--nc-navy)}
.nc-book-session .nc-bs-selection dd{margin:0}
.nc-book-session .nc-bs-selection svg{width:18px;height:18px}
.nc-book-session .nc-bs-selection .nc-button{width:100%}
.nc-book-session .nc-bs-fields{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.nc-book-session .nc-bs-field-wide{grid-column:1/-1}
.nc-book-session fieldset{margin:0;padding:0;border:0;min-width:0}
.nc-book-session label{display:block;font-size:14px;font-weight:600;color:var(--nc-navy);line-height:1.45;margin-bottom:8px}
.nc-book-session input,.nc-book-session select,.nc-book-session textarea{display:block;width:100%;min-width:0;min-height:48px;border:var(--nc-border-light);border-radius:8px;padding:12px;font:400 15px/1.5 var(--nc-font-body);background:#f8f7f4;color:var(--nc-body);opacity:1;resize:vertical}
.nc-book-session .nc-bs-form>.nc-bs-status{margin:0 0 22px}
.nc-book-session .nc-bs-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.nc-book-session .nc-bs-confirm-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.nc-book-session .nc-bs-confirm-card{display:flex;gap:18px;align-items:flex-start}
.nc-book-session .nc-bs-confirm-card p{font-size:15px;margin-top:12px}
.nc-book-session .nc-bs-confirm-card .nc-button{margin-top:22px}
.nc-book-session .nc-bs-next-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:24px}
.nc-book-session .nc-bs-next-grid article{display:flex;gap:16px;align-items:flex-start}
.nc-book-session .nc-bs-next-grid h3{font:600 17px/1.3 var(--nc-font-body)}
.nc-book-session .nc-bs-next-grid p{font-size:14px;margin-top:10px}
.nc-book-session .nc-bs-enquiry{background:var(--nc-navy);color:rgba(255,255,255,.85)}
.nc-book-session .nc-bs-enquiry-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:48px;align-items:center}
.nc-book-session .nc-bs-enquiry h2{color:var(--nc-ivory)}
.nc-book-session .nc-bs-enquiry .nc-eyebrow,.nc-book-session .nc-bs-enquiry .nc-bs-quote{color:var(--nc-gold-dark-bg)}
.nc-book-session .nc-bs-enquiry-art{width:100%;max-width:550px;margin-top:26px}
.nc-book-session .nc-bs-enquiry-form{color:var(--nc-body)}
.nc-book-session .nc-bs-enquiry-form .nc-button{margin-top:24px}
@media(min-width:768px) and (max-width:1199px){
 .nc-book-session .nc-bs-section{padding-block:56px}
 .nc-book-session .nc-bs-hero-grid{grid-template-columns:1fr;gap:32px}
 .nc-book-session .nc-bs-hero-copy{text-align:center;max-width:820px;justify-self:center}
 .nc-book-session h1{font-size:50px}
 .nc-book-session .nc-bs-actions{justify-content:center}
 .nc-book-session .nc-bs-steps{max-width:560px;margin-inline:auto}
 .nc-book-session .nc-bs-hero-art{max-width:620px}
 .nc-book-session .nc-bs-session-grid{grid-template-columns:1fr 1fr}
 .nc-book-session .nc-bs-session:last-child{grid-column:1/-1}
 .nc-book-session .nc-bs-session:last-child>p,.nc-book-session .nc-bs-session:last-child>.nc-button{max-width:680px}
 .nc-book-session .nc-bs-time-grid{grid-template-columns:1fr 1fr}
 .nc-book-session .nc-bs-selection{grid-column:1/-1}
 .nc-book-session .nc-bs-selection dl{grid-template-columns:1fr 1fr;column-gap:36px}
 .nc-book-session .nc-bs-selection .nc-button{max-width:320px}
 .nc-book-session .nc-bs-enquiry-grid{grid-template-columns:1fr;gap:32px}
 .nc-book-session .nc-bs-enquiry-intro{max-width:820px}
 .nc-book-session .nc-bs-enquiry-art{max-width:620px;margin-inline:auto}
}
@media(max-width:767px){
 .nc-book-session .nc-bs-container{width:calc(100% - 40px)}
 .nc-book-session .nc-bs-section{padding-block:44px}
 .nc-book-session h1{font-size:38px;line-height:1.08}
 .nc-book-session h2{font-size:30px}
 .nc-book-session h3{font-size:23px}
 .nc-book-session .nc-bs-lead{font-size:16px;margin-top:20px}
 .nc-book-session .nc-bs-hero-grid{grid-template-columns:1fr;gap:28px}
 .nc-book-session .nc-bs-hero-copy{text-align:center}
 .nc-book-session .nc-bs-actions{justify-content:center;gap:10px}
 .nc-book-session .nc-bs-steps{gap:8px;font-size:11px}
 .nc-book-session .nc-bs-quote{font-size:28px}
 .nc-book-session .nc-bs-session-grid,.nc-book-session .nc-bs-time-grid,.nc-book-session .nc-bs-confirm-grid,.nc-book-session .nc-bs-next-grid,.nc-book-session .nc-bs-enquiry-grid{grid-template-columns:1fr;gap:26px}
 .nc-book-session .nc-bs-card,.nc-book-session .nc-bs-time-grid .nc-bs-card{padding:22px}
 .nc-book-session .nc-bs-fields{grid-template-columns:1fr;gap:18px}
 .nc-book-session .nc-bs-field-wide{grid-column:auto}
 .nc-book-session .nc-bs-section-heading{margin-bottom:24px}
 .nc-book-session .nc-bs-enquiry-art{margin-top:24px}
 .nc-book-session .nc-bs-confirm-card{gap:14px}
 .nc-book-session .nc-bs-preview{padding:12px 14px}
}
@media(prefers-reduced-motion:reduce){.nc-book-session *{scroll-behavior:auto}}

/* Owner responsive correction pass: workflow, quote order and enquiry hierarchy. */
.nc-book-session .nc-bs-steps li{position:relative}
.nc-book-session .nc-bs-steps li:not(:last-child)::after{content:'';position:absolute;top:16px;left:calc(50% + 22px);width:calc(100% - 32px);height:1px;background:var(--nc-gold-deep);pointer-events:none}
.nc-book-session .nc-bs-hero-copy{grid-column:1;grid-row:1;align-self:end}
.nc-book-session .nc-bs-hero-art{grid-column:2;grid-row:1/3}
.nc-book-session .nc-bs-hero-grid{row-gap:0}
.nc-book-session .nc-bs-hero-grid>.nc-bs-quote{grid-column:1;grid-row:2;align-self:start}
.nc-book-session .nc-bs-enquiry-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px 48px}
.nc-book-session .nc-bs-enquiry-intro{grid-column:1/-1;grid-row:1;text-align:center;max-width:850px;justify-self:center}
.nc-book-session .nc-bs-enquiry-art{grid-column:1;grid-row:2;margin:0;max-width:550px;justify-self:center}
.nc-book-session .nc-bs-enquiry-form{grid-column:2;grid-row:2}
.nc-book-session .nc-bs-enquiry-grid>.nc-bs-quote{grid-column:1/-1;grid-row:3;margin:0;justify-self:center}
@media(min-width:768px) and (max-width:1199px){
 .nc-book-session .nc-bs-selection>.nc-button{display:flex;margin-inline:auto}
 .nc-book-session .nc-bs-selection>.nc-bs-small,.nc-book-session .nc-bs-selection>.nc-bs-status{text-align:center}
 .nc-book-session .nc-bs-enquiry-grid{grid-template-columns:minmax(0,3fr) minmax(150px,1fr);gap:28px}
 .nc-book-session .nc-bs-enquiry-art{grid-column:1;grid-row:2;max-width:620px}
 .nc-book-session .nc-bs-enquiry-grid>.nc-bs-quote{grid-column:2;grid-row:2;font-size:28px}
 .nc-book-session .nc-bs-enquiry-form{grid-column:1/-1;grid-row:3}
}
@media(max-width:1199px){
 .nc-book-session .nc-bs-hero-grid{row-gap:28px}
 .nc-book-session .nc-bs-hero-copy{grid-column:1;grid-row:1}
 .nc-book-session .nc-bs-hero-art{grid-column:1;grid-row:2}
 .nc-book-session .nc-bs-hero-grid>.nc-bs-quote{grid-column:1;grid-row:3;margin:0;max-width:620px;justify-self:center}
}
@media(max-width:767px){
 .nc-book-session .nc-bs-steps li:not(:last-child)::after{width:calc(100% - 36px)}
 .nc-book-session .nc-bs-enquiry-grid{grid-template-columns:minmax(0,1fr);gap:24px}
 .nc-book-session .nc-bs-enquiry-intro{grid-column:1;grid-row:1}
 .nc-book-session .nc-bs-enquiry-art{grid-column:1;grid-row:2}
 .nc-book-session .nc-bs-enquiry-grid>.nc-bs-quote{grid-column:1;grid-row:3}
 .nc-book-session .nc-bs-enquiry-form{grid-column:1;grid-row:4}
}

/* Wide-desktop enquiry: equal image/card height, compact spacing only. */
@media(width > 1280px){
 .nc-book-session .nc-bs-enquiry{padding-block:48px}
 .nc-book-session .nc-bs-enquiry-grid{row-gap:22px}
 .nc-book-session .nc-bs-enquiry-art{align-self:start}
 .nc-book-session .nc-bs-enquiry-form{align-self:stretch;padding:12px}
 .nc-book-session .nc-bs-enquiry-form>.nc-bs-status{margin-bottom:8px}
 .nc-book-session .nc-bs-enquiry-form .nc-bs-fields{row-gap:8px}
 .nc-book-session .nc-bs-enquiry-form label{margin-bottom:4px}
 .nc-book-session .nc-bs-enquiry-form input,.nc-book-session .nc-bs-enquiry-form select{min-height:44px;height:44px;padding:8px 12px}
 .nc-book-session .nc-bs-enquiry-form textarea{min-height:52px;height:52px;padding:8px 12px}
 .nc-book-session .nc-bs-enquiry-form .nc-button{min-height:44px;padding-block:10px;margin-top:8px}
 .nc-book-session .nc-bs-enquiry-form>.nc-bs-small{margin-top:8px}
}

/* Safe initial presentation before an authorised booking adapter is available. */
.nc-book-session:not(.ncb-mock) .nc-bs-time-grid,
.nc-book-session:not(.ncb-mock) .nc-bs-details .nc-bs-form,
.nc-book-session:not(.ncb-mock) .nc-bs-confirm-grid{display:none}
.nc-book-session .nc-bs-prerequisite{padding:12px 16px;border:var(--nc-border-light);border-radius:8px;background:var(--nc-ivory);color:var(--nc-navy)}
.nc-book-session .nc-bs-prerequisite p{font-size:14px;margin-top:4px}
.nc-book-session .nc-bs-prerequisite a{display:inline-block;min-height:44px;padding:8px;color:var(--nc-navy)}
.nc-book-session.ncb-mock .nc-bs-prerequisite{display:none}
