/* Long Arm Counselling — responsive finishing layer.
 * This file is loaded after the inherited design stylesheet.
 * Shared dimensions prevent legacy device overrides creating overflow or blank space.
 * Breakpoints: phone < 600px; tablet 600–1023px; desktop >= 1024px.
 */
:root {
  --site-max:1180px;
  --safe-gutter:max(var(--site-gutter), env(safe-area-inset-left, 0px), env(safe-area-inset-right, 0px));
  --site-gutter:32px;
  --inner-gutter:40px;
  --section-space:56px;
  --card-radius:28px;
}
html { scroll-padding-top:24px; scrollbar-gutter:stable; -webkit-text-size-adjust:100%; }
body { background:linear-gradient(180deg,#edf3eb 0%,#e5eee5 45%,#f3f1e8 100%) !important; background-attachment:scroll !important; }
.page { padding:16px 0 0 !important; overflow-x:clip; }
.container, .hero.container, .page-panel > .container, .panel-divider {
  width:min(var(--site-max), calc(100% - var(--safe-gutter) * 2)) !important;
  max-width:var(--site-max) !important;
  margin-left:auto !important; margin-right:auto !important;
}
.hero-inner.container { width:calc(100% - var(--inner-gutter) * 2) !important; max-width:none !important; }
:is(.nav,.nav-links,.nav-icons,.hero-content,.section-intro,.services-summary,.about-copy,.about-media,.story-hero-copy,.story-portrait,.story-prose,.bottom-cta-card>div,.footer-inner>*,.field,.form-grid,.schedule-fields,.booking-review-grid>div,.payment-summary-grid>div) { min-width:0; }
button, a { touch-action:manipulation; }
button, input, select, textarea { max-width:100%; }
.primary-btn, .ghost-btn, .book-btn, .package-cta { min-height:48px; line-height:1.35; padding:13px 22px; text-align:center; }
.icon-btn, .icon-btn-sm { width:46px !important; height:46px !important; animation:none !important; }
.icon-btn svg, .icon-btn-sm svg { width:23px !important; height:23px !important; }
/* One contained image, not a fixed background that leaves stripes between sections. */
.hero { min-height:0 !important; overflow:hidden; border-radius:30px !important; }
.hero-bg { position:absolute !important; inset:0 !important; width:100% !important; height:100% !important; transform:none !important; border-radius:inherit !important; animation:none !important; filter:brightness(.93) saturate(.95) !important; background-position:56% center; will-change:auto; }
.hero-bg::before { animation:none !important; opacity:1 !important; background:linear-gradient(90deg,rgba(3,14,11,.8),rgba(3,14,11,.47) 54%,rgba(3,14,11,.12)),linear-gradient(180deg,rgba(3,14,11,.27),transparent 40%,rgba(3,14,11,.15)); }
.hero-inner { min-height:min(820px, calc(100svh - 32px)) !important; }
.topbar { position:relative !important; top:0 !important; width:100%; padding:20px 0 0 !important; display:flex !important; flex-direction:row !important; align-items:center !important; justify-content:space-between !important; gap:24px !important; flex-shrink:0; z-index:20; }
.brand { width:auto !important; flex:0 0 auto; justify-content:flex-start !important; }
.brand img { width:148px !important; height:auto !important; max-width:none !important; }
.topbar-shell { margin-left:auto !important; max-width:100%; padding:8px 12px !important; }
.nav { display:flex !important; flex-direction:row !important; gap:18px !important; }
.nav-links { flex-wrap:nowrap !important; gap:16px !important; }
.nav-links > a, .nav-toggle { font-size:.88rem !important; min-height:44px; display:inline-flex; align-items:center; }
.nav-icons { gap:8px !important; width:auto !important; flex-wrap:nowrap !important; }
.nav-icons .icon-btn { width:44px !important; height:44px !important; }
.nav-icons .book-btn { min-height:44px; font-size:.86rem !important; padding:12px 16px !important; }
.nav-links a.active::after { bottom:2px; }
.menu-toggle { display:none; }
.hero-copy { flex:1; padding:56px 0 72px !important; margin:0 !important; }
.hero-content { width:min(680px,100%); padding:0 !important; }
.hero .eyebrow { max-width:590px; font-size:.75rem; line-height:1.65; letter-spacing:.15em; margin:0 0 22px; }
.hero h1 { font-size:clamp(3.15rem,5.7vw,5.1rem) !important; line-height:1.03 !important; letter-spacing:-.035em; }
.hero p.lead { max-width:590px; font-size:1.1rem !important; line-height:1.8 !important; margin:24px 0 0; }
.hero-actions { display:flex !important; gap:12px !important; margin-top:28px; }
.hero-actions .primary-btn, .hero-actions .ghost-btn { width:auto !important; font-size:.95rem !important; }
/* Content-driven sections with aligned outer edges and no viewport-height minimums. */
.content-shell.light-section { background:transparent !important; }
.page-panel { min-height:0 !important; height:auto !important; display:block !important; padding:var(--section-space) 0 !important; border:0 !important; background:transparent !important; backdrop-filter:none !important; -webkit-backdrop-filter:none !important; }
.page-panel-about { padding-top:64px !important; padding-bottom:44px !important; }
.page-panel-focus { padding-top:40px !important; padding-bottom:40px !important; }
.page-panel-booking { padding:28px 0 !important; }
.page-panel-testimonials { padding:32px 0 44px !important; }
.panel-divider { height:20px !important; margin-top:0 !important; margin-bottom:0 !important; }
.panel-divider .lux-divider { height:20px !important; margin:0 !important; }
.panel-divider .lux-divider-mark { width:16px !important; height:16px !important; }
.section-title { font-size:clamp(2rem,3.5vw,3.35rem) !important; line-height:1.1 !important; }
.section-top { grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important; align-items:center; gap:36px !important; padding:36px !important; border-radius:var(--card-radius); }
.section-intro p { font-size:1rem !important; line-height:1.8 !important; }
.services-summary { padding:26px !important; border-radius:22px; }
.services-summary .eyebrow { text-shadow:none; font-size:.7rem !important; line-height:1.6; }
.simple-service-list { grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:8px 16px !important; margin-top:16px; }
.simple-service-item { font-size:.92rem !important; line-height:1.5 !important; min-height:44px; align-items:center; gap:8px !important; padding:5px 0 !important; }
.simple-service-item::before { flex-shrink:0; font-size:1rem; }
.explore-link { margin-top:18px; }
.explore-link .primary-btn { font-size:.9rem; }
.about-card { grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr) !important; border-radius:var(--card-radius); overflow:hidden !important; }
.page-panel-about .about-media { position:relative; min-height:0 !important; height:auto !important; border-radius:0 !important; overflow:hidden; }
.page-panel-about .about-photo { position:absolute; inset:0; min-height:0 !important; height:100% !important; border-radius:0 !important; }
.about-photo img { width:100%; height:100%; object-fit:cover; object-position:50% 38% !important; }
.about-cert-floating { z-index:2; width:78px !important; height:78px !important; top:16px !important; left:16px !important; padding:6px !important; }
.page-panel-about .about-copy { min-height:0 !important; padding:40px !important; }
.about-copy h3 { font-size:.73rem !important; line-height:1.65; }
.about-copy h2 { font-size:clamp(2.1rem,3.5vw,3.25rem) !important; line-height:1.12 !important; margin:16px 0 18px; }
.about-copy p { font-size:1rem !important; line-height:1.8 !important; margin:0 0 18px; }
.about-read-more { margin-top:4px; }
/* The three-second step/pause logic is unchanged; sizes now follow available width. */
.floating-features { margin-top:28px !important; }
.feature-strip-heading { gap:12px; padding:0 2px 6px; }
.feature-strip-heading .section-kicker { font-size:.71rem; line-height:1.6; }
.feature-count { font-size:.76rem; white-space:nowrap; flex:0 0 auto; }
.feature-track { gap:16px !important; }
.feature-card { flex:0 0 calc((100% - 32px)/3) !important; min-height:146px !important; padding:24px !important; border-radius:22px; transform:none !important; }
.feature-card h3 { font-size:1.35rem !important; line-height:1.3 !important; }
.feature-card .feature-link { min-height:44px; padding-top:12px; margin-top:auto; font-size:.88rem; }
.marquee-shell { padding:8px 0 16px !important; }
.carousel-controls { gap:10px; margin-top:4px; }
.carousel-btn { flex:0 0 44px; width:44px; height:44px; line-height:1; }
.carousel-dots { min-width:0 !important; gap:0 !important; }
.carousel-dot { flex:0 0 28px; width:28px !important; height:44px !important; }
.carousel-pause { min-height:44px; line-height:1.5; }
/* Booking prompt and reflections have a deliberate, compact transition. */
.booking-strip { grid-template-columns:minmax(0,1fr) auto !important; padding:32px !important; gap:22px 28px !important; }
.booking-strip > div:first-child { grid-column:1 !important; grid-row:1 / 3; }
.booking-strip > div:last-child { grid-column:2; }
.booking-strip h3 { max-width:680px; font-size:1.75rem; line-height:1.2; }
.booking-strip p { font-size:.96rem; line-height:1.75; }
.booking-strip .eyebrow { font-size:.7rem; line-height:1.6; }
.talk-icons { justify-content:center !important; gap:8px !important; }
.talk-label { font-size:.85rem; margin-right:2px; }
.testimonial-oval { padding-bottom:36px !important; max-width:840px !important; }
.testimonial-slide { padding:32px 40px !important; border-radius:26px !important; }
.testimonial-slide.stack-1 { transform:translateY(12px) scale(.984) !important; }
.testimonial-slide.stack-2 { transform:translateY(24px) scale(.968) !important; }
.testimonial-slide.stack-3 { transform:translateY(36px) scale(.952) !important; }
.testimonial-quote { font-size:1.2rem !important; line-height:1.75 !important; }
.testimonial-author { line-height:1.6; }
.reflection-controls { margin-top:12px; }
/* Shared contact footer */
.bottom-cta { padding:40px 0 48px !important; background:transparent; }
.bottom-cta-card { grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); padding:44px; gap:44px; border-radius:var(--card-radius); }
.bottom-cta-card h2 { font-size:clamp(2.05rem,3.4vw,3.2rem); line-height:1.13; }
.bottom-cta-card p { font-size:1rem; line-height:1.8; }
.bottom-action { min-height:68px; grid-template-columns:24px minmax(0,1fr) 18px; gap:14px; }
.footer-inner { grid-template-columns:minmax(0,1fr) auto minmax(0,1.2fr); gap:32px; }
.footer-brand img { width:140px; height:auto; }
.footer-links, .footer-contact { gap:4px; }
.footer-links a, .footer-links button, .footer-contact button { min-height:44px; display:inline-flex; align-items:center; line-height:1.65; }
.footer-contact button { justify-content:flex-end; }
.footer-contact span { padding-top:10px; overflow-wrap:anywhere; line-height:1.6; }
.footer-bottom { line-height:1.65; margin-top:24px; }
/* Dedicated About page */
.about-page .about-header { padding:0 0 24px !important; }
.about-page .about-header .topbar { padding:4px 0 0 !important; }
.about-main { background:transparent; padding-top:0; padding-bottom:48px; }
.story-hero { grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); border-radius:var(--card-radius); }
.story-hero-copy { padding:40px; }
.story-breadcrumb { margin-bottom:28px; line-height:1.7; }
.story-hero h1 { font-size:clamp(2.5rem,4vw,4.3rem); line-height:1.08; }
.story-hero p { font-size:1rem; line-height:1.8; }
.story-portrait { min-height:0; }
.story-portrait > img { object-position:50% 38%; }
.story-portrait-caption { left:20px; right:20px; bottom:20px; padding:18px 20px; }
.story-portrait-caption span { line-height:1.6; }
.story-section { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:64px; padding-top:60px; padding-bottom:60px; }
.story-section h2, .story-values-section h2, .first-conversation h2 { font-size:clamp(2rem,3.2vw,3.3rem); line-height:1.14; }
.story-prose p { font-size:1rem; line-height:1.85; }
.story-values-section { padding-top:56px; padding-bottom:16px; }
.story-values { grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:28px; }
.story-values article { padding:28px; }
.story-values h3 { line-height:1.2; }
.first-conversation { padding:44px 56px; }
.first-conversation p { font-size:1rem; line-height:1.8; }
.first-conversation-note { line-height:1.7; }
/* Dialogs, safe areas and fields remain within the viewport, including short landscape screens. */
.modal-overlay { padding:16px !important; padding-top:max(16px,env(safe-area-inset-top)) !important; padding-bottom:max(16px,env(safe-area-inset-bottom)) !important; overflow:hidden; }
.modal-overlay.open { align-items:center !important; justify-content:center; }
.modal { max-width:100% !important; max-height:calc(100svh - 32px) !important; max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important; min-height:0 !important; overflow-y:auto !important; overflow-x:hidden !important; margin:0 !important; -webkit-overflow-scrolling:touch; scroll-padding-top:64px; border-radius:24px !important; }
.dialog-toolbar { position:sticky; top:-1px; z-index:15; display:flex; justify-content:flex-end; height:44px; margin:0 0 8px; pointer-events:none; }
.dialog-toolbar .modal-close { position:relative !important; inset:auto !important; width:44px !important; height:44px !important; flex:0 0 44px; background:#18382e !important; box-shadow:0 2px 10px rgba(0,0,0,.15); pointer-events:auto; }
.modal h3 { padding-right:0 !important; font-size:clamp(1.7rem,2.7vw,2.25rem) !important; line-height:1.17 !important; }
.modal .eyebrow { font-size:.72rem !important; line-height:1.6; margin-bottom:14px; }
.modal p { font-size:1rem !important; line-height:1.8 !important; }
.booking-modal { width:min(980px,100%) !important; padding:24px 28px 28px !important; }
.contact-modal, .feedback-modal { width:min(560px,100%) !important; padding:24px 28px 28px !important; }
.feature-modal { width:min(720px,100%) !important; padding:24px 28px 28px !important; }
.service-modal { display:block !important; width:min(980px,100%) !important; padding:24px !important; }
.service-layout { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:24px; }
.service-pane { padding:0 !important; min-width:0; }
.service-nav { padding:14px !important; max-height:480px; max-height:min(480px,60dvh); border:1px solid rgba(255,255,255,.1) !important; border-radius:18px; }
.service-option { min-height:44px; font-size:.94rem; line-height:1.55; padding:10px 12px !important; margin-bottom:4px !important; }
.approach-modal { width:min(920px,100%) !important; padding:24px !important; }
.approach-top-stage, .approach-bottom-screen { padding:20px !important; }
.approach-slide-screen { min-height:0 !important; padding:22px !important; }
.approach-slide-tabs { grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:10px; }
.approach-slide-tab { min-height:44px; line-height:1.5; white-space:normal; }
.approach-ruler-dot { min-height:28px; }
.package-grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:16px !important; }
.package-card { padding:22px !important; border-radius:22px; display:flex; flex-direction:column; min-width:0; }
.package-card-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; min-width:0; margin-bottom:16px; }
.package-badge { min-width:0; width:auto !important; max-width:100%; white-space:normal !important; line-height:1.6; font-size:.64rem !important; padding:6px 10px !important; }
.discount-circle { position:static !important; width:64px !important; height:64px !important; flex:0 0 64px; font-size:.85rem !important; }
.discount-circle span { font-size:.66rem !important; }
.package-card h4 { padding-right:0 !important; font-size:1.35rem !important; line-height:1.25 !important; margin:0 0 12px !important; }
.package-meta, .package-copy { font-size:.94rem !important; line-height:1.75 !important; }
.package-copy { min-height:0 !important; flex:1; }
.package-pricing { margin-top:16px; }
.package-pricing .detail { font-size:.87rem !important; line-height:1.65; }
.package-cta { font-size:.92rem !important; margin-top:16px; }
.form-grid, .schedule-fields, .booking-review-grid, .payment-summary-grid { gap:16px !important; }
.field label { font-size:.92rem; line-height:1.6; }
.field input, .field select, .field textarea { width:100%; min-width:0; min-height:48px; font-size:16px !important; box-sizing:border-box; }
.field textarea { min-height:104px; resize:vertical; }
.field input[type="date"], .field input[type="time"] { appearance:none; -webkit-appearance:none; }
.field input::-webkit-date-and-time-value { text-align:left; min-height:1.5em; }
.schedule-row { min-width:0; }
.booking-selection-bar { gap:16px; flex-wrap:wrap; }
.form-actions { gap:14px; flex-wrap:wrap; }
.form-actions .fine-print { max-width:none; font-size:.85rem !important; line-height:1.75 !important; }
.form-actions .primary-btn, .form-actions .ghost-btn { flex-shrink:0; }
.booking-review-grid, #bookingStepPayment .payment-summary-grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
.contact-fallback { white-space:normal; }
@media (max-width:1023px) {
  :root { --site-gutter:24px; --inner-gutter:28px; --section-space:44px; }
  .hero-inner { min-height:0 !important; }
  .hero-copy { padding:56px 0 64px !important; }
  .topbar { gap:16px !important; padding-top:18px !important; flex-wrap:wrap; }
  .brand img { width:136px !important; }
  .navigation-ready .menu-toggle { display:inline-flex; gap:10px; align-items:center; justify-content:center; min-height:44px; padding:10px 16px; background:rgba(9,28,22,.85); border:1px solid rgba(237,215,174,.32); border-radius:999px; color:#f9f0df; cursor:pointer; margin-left:auto; font-size:.87rem; }
  .menu-toggle-icon { position:relative; width:18px; height:12px; display:inline-block; }
  .menu-toggle-icon::before, .menu-toggle-icon::after { content:""; position:absolute; left:0; width:18px; height:1.5px; background:currentColor; transition:transform .2s ease,top .2s ease; }
  .menu-toggle-icon::before { top:2px; }
  .menu-toggle-icon::after { top:10px; }
  .menu-toggle[aria-expanded="true"] .menu-toggle-icon::before { top:6px; transform:rotate(45deg); }
  .menu-toggle[aria-expanded="true"] .menu-toggle-icon::after { top:6px; transform:rotate(-45deg); }
  .navigation-ready .topbar-shell { display:none !important; position:absolute; top:calc(100% + 12px); left:0; right:0; margin:0 !important; border-radius:22px !important; padding:18px !important; background:#122e25 !important; border:1px solid rgba(227,204,163,.3); box-shadow:0 18px 36px rgba(4,14,11,.22); }
  .navigation-ready .topbar-shell.is-open { display:block !important; }
  .topbar-shell { flex:1 0 100%; }
  .nav { width:100%; flex-direction:column !important; gap:16px !important; }
  .nav-links { justify-content:center !important; gap:18px !important; width:100%; flex-wrap:wrap !important; }
  .nav-icons { justify-content:center !important; gap:10px !important; }
  .nav-icons .book-btn { min-height:46px; font-size:.9rem !important; padding:12px 20px !important; }
  .nav-icons .icon-btn { width:46px !important; height:46px !important; }
  .page-panel-about .about-copy { padding:30px !important; }
  .about-copy h2 { font-size:2.2rem !important; }
  .about-copy p { font-size:.97rem !important; line-height:1.78 !important; }
  .section-top { grid-template-columns:1fr !important; gap:26px !important; padding:30px !important; }
  .section-intro { max-width:680px; }
  .section-intro .section-title { max-width:640px; }
  .services-summary { padding:24px !important; }
  .simple-service-list { gap:8px 24px !important; }
  .feature-card { flex-basis:calc((100% - 16px)/2) !important; }
  .booking-strip { padding:28px !important; }
  .bottom-cta-card { gap:28px; padding:32px; }
  .footer-inner { grid-template-columns:minmax(0,1fr) auto; gap:24px 32px; }
  .footer-contact { grid-column:1/-1; flex-direction:row; flex-wrap:wrap; gap:6px 24px; align-items:center; }
  .footer-contact span { padding-top:0; }
  .footer-contact button { justify-content:flex-start; }
  .footer-links { align-items:flex-end; }
  .story-hero-copy { padding:30px; }
  .story-hero h1 { font-size:2.8rem; }
  .story-section { gap:36px; padding-top:48px; padding-bottom:48px; }
  .story-values { gap:16px; }
  .story-values article { padding:22px; }
  .first-conversation { padding:36px; }
  .service-layout { grid-template-columns:1fr; }
  .service-nav { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:6px; max-height:36dvh; }
}
@media (max-width:699px) {
  .about-card, .story-hero { grid-template-columns:1fr !important; }
  .page-panel-about .about-media { height:auto !important; aspect-ratio:1.15; }
  .page-panel-about .about-photo { height:100% !important; }
  .page-panel-about .about-copy { padding:28px !important; }
  .about-photo img { object-position:center 36% !important; }
  .story-portrait { aspect-ratio:1.05; min-height:0 !important; }
  .story-portrait > img { object-position:50% 34%; }
  .story-section { grid-template-columns:1fr; gap:24px; }
  .story-values { grid-template-columns:1fr; }
  .story-values article { padding:26px; }
  .story-values h3 { margin-top:16px; }
  .bottom-cta-card { grid-template-columns:1fr; }
}
@media (max-width:599px) {
  :root { --site-gutter:16px; --inner-gutter:22px; --section-space:36px; --card-radius:24px; }
  html { scroll-padding-top:16px; }
  .page { padding-top:10px !important; }
  .hero { border-radius:24px !important; }
  .topbar { padding-top:16px !important; }
  .brand img { width:116px !important; }
  .hero-copy { padding:38px 0 44px !important; }
  .hero .eyebrow { font-size:.64rem; line-height:1.65; letter-spacing:.12em; margin-bottom:20px; }
  .hero h1 { font-size:clamp(2.55rem,10.5vw,3.65rem) !important; line-height:1.07 !important; }
  .hero p.lead { font-size:1rem !important; line-height:1.75 !important; margin-top:22px; }
  .hero-actions { flex-direction:column; align-items:stretch; gap:10px !important; margin-top:24px; }
  .hero-actions .primary-btn, .hero-actions .ghost-btn { width:100% !important; min-height:48px; }
  .navigation-ready .topbar-shell { padding:16px 12px !important; }
  .nav-links { gap:6px 18px !important; }
  .nav-links > a, .nav-toggle { font-size:.85rem !important; }
  .nav-icons { gap:8px !important; width:100% !important; }
  .nav-icons .book-btn { font-size:.8rem !important; padding:12px !important; flex:1; white-space:normal !important; }
  .nav-icons .icon-btn { width:44px !important; height:44px !important; }
  .page-panel-about { padding:40px 0 28px !important; }
  .page-panel-focus { padding:28px 0 !important; }
  .page-panel-booking { padding:22px 0 !important; }
  .page-panel-testimonials { padding:28px 0 32px !important; }
  .about-copy h3 { font-size:.68rem !important; letter-spacing:.13em; }
  .about-copy h2 { font-size:2.05rem !important; line-height:1.14 !important; }
  .page-panel-about .about-copy { padding:26px 24px !important; }
  .about-copy p { font-size:1rem !important; line-height:1.75 !important; }
  .about-cert-floating { width:70px !important; height:70px !important; top:12px !important; left:12px !important; }
  .section-top { padding:24px 20px !important; gap:22px !important; }
  .section-title { font-size:2rem !important; }
  .section-intro .eyebrow { font-size:.7rem; line-height:1.6; margin-bottom:16px; }
  .services-summary { padding:20px !important; border-radius:18px; }
  .simple-service-list { grid-template-columns:1fr !important; gap:2px !important; }
  .simple-service-item { font-size:.94rem !important; line-height:1.55 !important; }
  .feature-strip-heading .section-kicker { font-size:.62rem; letter-spacing:.12em; }
  .feature-count { font-size:.72rem; }
  .feature-card { flex-basis:100% !important; padding:22px !important; min-height:142px !important; }
  .feature-card h3 { font-size:1.3rem !important; }
  .feature-carousel-controls { gap:8px !important; }
  .booking-strip { grid-template-columns:1fr !important; gap:20px !important; padding:26px 24px !important; }
  .booking-strip > div:first-child, .booking-strip > div:last-child { grid-column:1 !important; grid-row:auto; }
  .booking-strip > div:last-child .book-btn { width:100%; }
  .booking-strip h3 { font-size:1.55rem; }
  .talk-icons { justify-content:flex-start !important; }
  .testimonial-badge { margin-bottom:22px !important; font-size:.73rem !important; }
  .testimonial-slide { padding:28px 24px !important; border-radius:22px !important; }
  .testimonial-quote { font-size:1.1rem !important; line-height:1.75 !important; }
  .carousel-controls { gap:6px; }
  .bottom-cta { padding:30px 0 40px !important; }
  .bottom-cta-card { padding:28px 24px; gap:26px; }
  .bottom-cta-card h2 { font-size:2.1rem; }
  .bottom-cta-card p { font-size:.97rem; }
  .bottom-action { padding:14px 16px; min-height:64px; }
  .site-footer { padding-top:32px; padding-bottom:max(20px,env(safe-area-inset-bottom)); }
  .footer-brand img { width:120px; }
  .footer-brand p { font-size:.78rem; line-height:1.6; max-width:160px; }
  .footer-inner { gap:22px 16px; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .footer-links { font-size:.84rem; text-align:right; }
  .footer-contact { gap:0; flex-direction:column; align-items:flex-start; font-size:.84rem; }
  .footer-contact span { padding-top:10px; }
  .footer-bottom { flex-direction:column; gap:6px; font-size:.72rem; }
  .about-page .about-header { padding-bottom:18px !important; }
  .story-hero-copy { padding:28px 24px 32px; }
  .story-breadcrumb { margin-bottom:24px; }
  .story-hero h1 { font-size:2.65rem; }
  .story-portrait-caption { left:16px; right:16px; bottom:16px; padding:16px 20px; }
  .story-section { padding-top:38px; padding-bottom:38px; }
  .story-prose p { font-size:1rem; line-height:1.8; }
  .story-values-section { padding-top:38px; padding-bottom:8px; }
  .story-values { margin-top:24px; }
  .biography-placeholder { padding:20px; }
  .first-conversation { padding:32px 24px; }
  .first-conversation h2 br { display:none; }
  .about-main { padding-bottom:32px; }
  .modal-overlay { padding-left:10px !important; padding-right:10px !important; padding-top:max(10px,env(safe-area-inset-top)) !important; padding-bottom:max(10px,env(safe-area-inset-bottom)) !important; }
  .modal { max-height:calc(100svh - 20px) !important; max-height:calc(100dvh - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important; border-radius:22px !important; }
  .booking-modal, .contact-modal, .feedback-modal, .feature-modal, .service-modal, .approach-modal { padding:16px 20px 24px !important; }
  .modal h3 { font-size:1.75rem !important; }
  .modal p { font-size:.97rem !important; }
  .dialog-toolbar { margin-bottom:6px; }
  .package-grid { grid-template-columns:1fr !important; }
  .package-card { padding:20px !important; }
  .package-card h4 { font-size:1.3rem !important; }
  .package-card-heading { margin-bottom:14px; gap:10px; }
  .form-grid, .booking-review-grid, #bookingStepPayment .payment-summary-grid { grid-template-columns:1fr !important; }
  .form-grid .full { grid-column:1 !important; }
  .form-actions { align-items:stretch !important; }
  .form-actions .primary-btn, .form-actions .ghost-btn { width:100%; }
  .booking-selection-bar { padding:18px !important; }
  .booking-selection-bar .ghost-btn { padding:12px 16px; }
  .service-nav { grid-template-columns:1fr !important; max-height:38dvh; }
  .approach-slide-tabs { grid-template-columns:1fr !important; }
  .approach-top-stage, .approach-bottom-screen { padding:18px 0 !important; }
  .approach-slide-screen { padding:18px !important; }
  .payment-information-notice { padding:20px; }
}
@media (max-width:359px) {
  :root { --site-gutter:12px; --inner-gutter:20px; }
  .brand img { width:108px !important; }
  .hero h1 { font-size:2.5rem !important; }
  .hero .eyebrow { font-size:.6rem; }
  .menu-toggle { padding:10px 13px !important; }
  .nav-links { gap:4px 12px !important; }
  .page-panel-about .about-copy { padding:24px 20px !important; }
  .section-top { padding:22px 16px !important; }
  .services-summary { padding:18px 16px !important; }
  .about-copy h2 { font-size:1.95rem !important; }
  .booking-strip, .bottom-cta-card { padding:24px 20px !important; }
  .testimonial-slide { padding:26px 20px !important; }
  .carousel-dot { flex-basis:26px; width:26px !important; }
  .feature-carousel-controls { gap:6px !important; }
  .package-card { padding:18px !important; }
  .package-badge { font-size:.6rem !important; }
  .discount-circle { width:60px !important; height:60px !important; flex-basis:60px; }
}
@media (max-height:520px) and (min-width:600px) {
  .hero-copy { padding:32px 0 40px !important; }
  .modal { max-height:calc(100dvh - 24px) !important; }
  .modal-overlay { padding:12px !important; }
}
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
  .hero-bg { filter:brightness(.93) saturate(.95) !important; }
  .hero-bg::before { opacity:1 !important; }
}
/* Crisp section labels and stationary package badges. */
.section-intro .eyebrow { text-shadow:none !important; }
.discount-circle { animation:none !important; }
/* Keep decorative glows inside cards; badges share a true aligned header row. */
.package-card::before { inset:auto 0 0 auto; width:160px; height:160px; }
.package-card-heading .package-badge { margin-bottom:0; }

/* Notched phones in landscape keep controls inside the safe display area. */
.modal-overlay { padding-left:max(16px,env(safe-area-inset-left)) !important; padding-right:max(16px,env(safe-area-inset-right)) !important; }
@media (max-width:599px) { .modal-overlay { padding-left:max(10px,env(safe-area-inset-left)) !important; padding-right:max(10px,env(safe-area-inset-right)) !important; } }


/* 28 September 2026 — About-led landing and expanded counsellor biography. */
.home-about-landing {
  position:relative;
  overflow:visible;
  padding:0 var(--inner-gutter) var(--inner-gutter) !important;
  border-radius:30px;
  background:
    radial-gradient(circle at 88% 12%,rgba(227,199,149,.10),transparent 34%),
    linear-gradient(135deg,#102b23 0%,#173d2f 58%,#102a22 100%);
  box-shadow:0 26px 70px rgba(12,40,29,.18);
}
.home-about-landing .topbar { padding-top:20px !important; }
.home-about-landing .landing-about-panel {
  padding:26px 0 0 !important;
  background:transparent !important;
}
.home-about-landing .about-card {
  margin:0;
  box-shadow:0 24px 58px rgba(3,20,14,.23) !important;
}
.home-about-landing .about-media { min-height:560px !important; }
.home-about-landing .about-photo { height:100% !important; }
.home-about-landing .about-copy { min-height:560px !important; }
.home-about-landing + .landing-divider { margin-top:18px !important; }

/* The former home hero now closes the content rather than leading it. */
.closing-hero {
  margin-top:var(--section-space) !important;
  margin-bottom:8px !important;
}
.closing-hero .hero-inner { min-height:620px !important; }
.closing-hero .hero-copy {
  display:flex;
  align-items:center;
  padding:76px 0 !important;
}

/* Long-form About copy is intentionally editorial and easy to scan. */
.about-me-copy { max-width:720px; }
.about-quote {
  margin:32px 0;
  padding:26px 28px;
  border-left:3px solid #c49b5d;
  border-radius:0 18px 18px 0;
  background:rgba(255,251,241,.72);
  box-shadow:0 14px 32px rgba(43,77,58,.08);
}
.about-quote p {
  margin:0 0 12px !important;
  color:#234d37 !important;
  font:500 clamp(1.38rem,2.25vw,1.9rem)/1.48 var(--serif) !important;
}
.about-quote cite {
  display:block;
  color:#7f673f;
  font-style:normal;
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.online-counselling-section { padding:0 0 64px; }
.online-counselling-card {
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:56px;
  align-items:center;
  padding:38px 42px;
  border:1px solid rgba(62,93,71,.16);
  border-radius:var(--card-radius);
  background:linear-gradient(135deg,#fbf7eb,#e5ebd9);
  box-shadow:0 20px 48px rgba(43,77,58,.10);
}
.online-counselling-card .section-kicker { margin-bottom:14px; }
.online-counselling-card h2 {
  margin:0;
  color:#173e2c;
  font:500 clamp(1.9rem,2.8vw,2.8rem)/1.14 var(--serif);
  letter-spacing:-.025em;
}
.online-counselling-card p {
  margin:0;
  color:#38553e;
  font-size:1rem;
  line-height:1.85;
}

@media (max-width:1023px) {
  .home-about-landing { padding-left:30px !important; padding-right:30px !important; padding-bottom:30px !important; }
  .home-about-landing .about-media, .home-about-landing .about-copy { min-height:500px !important; }
  .closing-hero .hero-inner { min-height:560px !important; }
  .online-counselling-card { gap:34px; padding:34px; }
}
@media (max-width:699px) {
  .home-about-landing { padding-left:20px !important; padding-right:20px !important; padding-bottom:20px !important; }
  .home-about-landing .landing-about-panel { padding-top:18px !important; }
  .home-about-landing .about-media { min-height:0 !important; height:auto !important; aspect-ratio:1.1; }
  .home-about-landing .about-copy { min-height:0 !important; }
  .closing-hero { margin-top:36px !important; }
  .closing-hero .hero-inner { min-height:520px !important; }
  .closing-hero .hero-copy { padding:58px 0 !important; }
  .online-counselling-card { grid-template-columns:1fr; gap:20px; padding:28px 24px; }
  .online-counselling-section { padding-bottom:46px; }
  .about-quote { margin:26px 0; padding:22px 22px; }
}
@media (max-width:599px) {
  .home-about-landing { border-radius:24px; padding-left:16px !important; padding-right:16px !important; padding-bottom:16px !important; }
  .home-about-landing .topbar { padding-top:16px !important; }
  .home-about-landing .page-panel-about .about-copy { padding:26px 24px !important; }
  .closing-hero .hero-inner { min-height:500px !important; }
  .closing-hero .hero-copy { padding:48px 0 54px !important; }
  .about-me-section { padding-top:44px !important; padding-bottom:44px !important; }
  .online-counselling-card h2 { font-size:2rem; }
}


/* 2026-09-29: Restore approved landing accreditation badge placement.
   Keep Zephania + About Long Arm Counselling as the homepage landing section;
   display the full BACP/PSA registration badge at the top-right of his portrait. */
.home-about-landing .about-media > .about-cert-floating {
  position:absolute !important;
  top:18px !important;
  right:18px !important;
  left:auto !important;
  width:min(34%, 220px) !important;
  height:auto !important;
  aspect-ratio:auto !important;
  padding:7px !important;
  border-radius:14px !important;
  overflow:hidden !important;
  display:block !important;
  z-index:8 !important;
  background:rgba(255,255,255,.98) !important;
  border:1px solid rgba(163,110,49,.20) !important;
  box-shadow:0 12px 30px rgba(16,32,29,.20), 0 0 0 4px rgba(255,255,255,.55) !important;
  pointer-events:none !important;
}
.home-about-landing .about-media > .about-cert-floating img {
  display:block !important;
  width:100% !important;
  height:auto !important;
  max-height:none !important;
  object-fit:contain !important;
  border-radius:8px !important;
  background:#fff !important;
}
@media (max-width: 768px) {
  .home-about-landing .about-media > .about-cert-floating {
    top:12px !important;
    right:12px !important;
    left:auto !important;
    width:min(43%, 170px) !important;
    padding:6px !important;
    border-radius:12px !important;
  }
}
@media (max-width: 480px) {
  .home-about-landing .about-media > .about-cert-floating {
    top:10px !important;
    right:10px !important;
    left:auto !important;
    width:min(40%, 130px) !important;
    padding:5px !important;
    border-radius:10px !important;
  }
}
