.elementor-kit-4{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;--e-global-typography-140bd87a-font-family:"Inter";--e-global-typography-140bd87a-font-size:60px;--e-global-typography-140bd87a-font-weight:800;--e-global-typography-140bd87a-line-height:1.02em;--e-global-typography-140bd87a-letter-spacing:-1.5px;--e-global-typography-e1d8f1b1-font-family:"Inter";--e-global-typography-e1d8f1b1-font-size:44px;--e-global-typography-e1d8f1b1-font-weight:700;--e-global-typography-e1d8f1b1-line-height:1.05em;--e-global-typography-e1d8f1b1-letter-spacing:-0.88px;--e-global-typography-b4154c7b-font-family:"Inter";--e-global-typography-b4154c7b-font-size:22px;--e-global-typography-b4154c7b-font-weight:700;--e-global-typography-b4154c7b-line-height:1.2em;--e-global-typography-b4154c7b-letter-spacing:-0.11px;--e-global-typography-b6e591ae-font-family:"Inter";--e-global-typography-b6e591ae-font-size:18px;--e-global-typography-b6e591ae-font-weight:400;--e-global-typography-b6e591ae-line-height:1.55em;--e-global-typography-59bbcbb8-font-family:"Inter";--e-global-typography-59bbcbb8-font-size:19px;--e-global-typography-59bbcbb8-font-weight:400;--e-global-typography-59bbcbb8-line-height:1.55em;--e-global-typography-ebd48a00-font-family:"Inter";--e-global-typography-ebd48a00-font-size:14px;--e-global-typography-ebd48a00-font-weight:400;--e-global-typography-ebd48a00-line-height:1.55em;--e-global-typography-d047619c-font-family:"Inter";--e-global-typography-d047619c-font-size:13px;--e-global-typography-d047619c-font-weight:700;--e-global-typography-d047619c-text-transform:uppercase;--e-global-typography-d047619c-line-height:1.4em;--e-global-typography-d047619c-letter-spacing:2.08px;--e-global-typography-ff50cdd8-font-family:"Inter";--e-global-typography-ff50cdd8-font-size:12px;--e-global-typography-ff50cdd8-font-weight:700;--e-global-typography-ff50cdd8-text-transform:uppercase;--e-global-typography-ff50cdd8-line-height:1.4em;--e-global-typography-ff50cdd8-letter-spacing:1.68px;--e-global-typography-2ee6941a-font-family:"Inter";--e-global-typography-2ee6941a-font-size:16px;--e-global-typography-2ee6941a-font-weight:600;--e-global-typography-2ee6941a-line-height:1em;--e-global-typography-2ee6941a-letter-spacing:0.16px;--e-global-typography-297baa1c-font-family:"JetBrains Mono";--e-global-typography-297baa1c-font-size:14px;--e-global-typography-297baa1c-font-weight:500;--e-global-typography-297baa1c-line-height:1.4em;}.elementor-kit-4 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}:root { --Navy:#0F2A5C; --NavyDeep:#091A3D; --NavyHover:#1A3F7A; --Sky:#3FB4E5; --Ink:#0B1220; --Slate:#5B6573; --Slate2:#8A93A1; --Mist:#EEF2F7; --Paper:#FAFBFC; --Line:#E2E7EE; --Orange:#E8782A; --Yellow:#F2C200; --Green:#2BA84A; --Blue:#1F6FB8; --Indigo:#3B2E8C; --Red:#D8332A; --BodyFont:Inter; --MonoFont:JetBrains Mono; --WrapMax:1200px; --WrapPadDesktop:32px; --WrapPadMobile:20px; --Radius:4px; --RadiusCard:8px; --RadiusLg:12px; --BtnHeight:52px; --SectionPad:96px; --SectionPadMobile:64px; --aaNavy:#0F2A5C; --aaNavyDeep:#091a3d; --aaNavyHover:#1A3F7A; --aaSky:#3FB4E5; --aaInk:#0B1220; --aaSlate:#5B6573; --aaSlate2:#8a93a1; --aaMist:#EEF2F7; --aaPaper:#FAFBFC; --aaLine:#E2E7EE; --aaOrange:#E8782A; --aaYellow:#F2C200; --aaGreen:#2BA84A; --aaBlue:#1F6FB8; --aaIndigo:#3B2E8C; --aaRed:#D8332A; }
/* Start custom CSS *//* === Header sticky === */
header.elementor-location-header { position: sticky; top: 0; z-index: 100; background: rgba(250, 251, 252, 0.95); backdrop-filter: blur(10px); border-bottom: 1px solid #E2E7EE; }

/* === Hero portrait === */
.aa-hero-img { max-width: 480px; width: 100%; height: auto; border-radius: 12px; object-fit: cover; }
@media (min-width: 992px) { .aa-hero-img { max-height: 520px; } }

/* === Form inputs === */
input.e-form-input-base, textarea.e-form-textarea-base { border: 1px solid #E2E7EE !important; border-radius: 4px !important; padding: 12px 14px !important; font-size: 16px !important; background: #FFFFFF !important; width: 100%; font-family: inherit; }
input.e-form-input-base:focus, textarea.e-form-textarea-base:focus { outline: 3px solid #3FB4E5; outline-offset: 1px; border-color: #0F2A5C !important; }
label.e-form-label-base { display: block; margin-bottom: 6px; font-weight: 500; }

/* === Focus visibility (WCAG 2.1 AA) === */
.elementor a:focus-visible, .elementor button:focus-visible, .elementor input:focus-visible, .elementor textarea:focus-visible { outline: 3px solid #3FB4E5 !important; outline-offset: 3px; }

/* === Nav link hover === */
header nav a { transition: opacity .15s ease; }
header nav a:hover { opacity: 0.7; }

/* === Scroll anchor offset for sticky header === */
section { scroll-margin-top: 90px; }

/* === Book section cover-area styling === */
#book-cover-area, [data-id] > p:only-child:not(:empty):contains("Autistic Verse — cover preview") { display: flex; align-items: center; justify-content: center; min-height: 360px; }

/* === MOBILE responsive overrides === */
@media (max-width: 767px) {
  /* All grid containers stack to 1 column */
  .e-con.e-grid { grid-template-columns: 1fr !important; grid-auto-flow: row !important; }
  /* Hide desktop nav, show CTA only */
  header nav { display: none !important; }
  /* Tighter buttons */
  /* Smaller H1 */
  .aa-h1 { font-size: 36px !important; line-height: 1.05 !important; }
  /* Section padding tighter */
  .elementor-section, [data-element_type="container"][data-e-type="container"]:not(.e-con-inner) { padding-block: 64px !important; }
  /* Wrap padding tighter */
  .e-con-boxed { padding-inline: 20px !important; }
  /* Hide tablet/desktop-only book cover placeholder (or stack it) */
}

/* === TABLET responsive === */
@media (min-width: 768px) and (max-width: 1023px) {
  .e-con.e-grid[style*="--columns-grid: repeat(4"] { grid-template-columns: repeat(2, 1fr) !important; }
  .e-con.e-grid[style*="--columns-grid: repeat(3"] { grid-template-columns: repeat(2, 1fr) !important; }
  .aa-h1 { font-size: 48px !important; }
}

/* === Form field alignment (pixel-perfect template) === */
.aa-pixel-perfect .form-grid .field { display: flex; flex-direction: column; }
.aa-pixel-perfect .form-grid .field input, .aa-pixel-perfect .form-grid .field textarea, .aa-pixel-perfect .form-grid .field select { flex: 0 0 auto; height: 48px; }
.aa-pixel-perfect .form-grid .field textarea { height: auto; min-height: 120px; }
.aa-pixel-perfect .form-grid .field .hint { margin-top: 6px; }
/* Reserve space for an absent hint so adjacent fields stay aligned */
.aa-pixel-perfect .form-grid .field:not(:has(.hint)) { padding-bottom: 26px; }

/* === Tablet intermediate (768-1024) — reference uses 768 as the only breakpoint, but iPads at 820w need cap on heavy imagery === */
@media (min-width: 768px) and (max-width: 1024px) {
  .site .wrap { padding-left: 24px; padding-right: 24px; }
  .site section { padding: 72px 0; }
  .site .hero { padding: 56px 0 64px; }
  .site .hero .video-card, .site .hero .hero-aside { max-width: 360px; }
  .site .photo { max-width: 320px; margin: 0 auto; }
  .site .photo img { width: 100%; height: auto; display: block; border-radius: 12px; }
  .site .book-stage { max-width: 280px; margin-left: auto; margin-right: auto; }
  .site h1.display { font-size: 48px; line-height: 1.04; max-width: 16ch; }
  .site h2.section-title { font-size: 36px; }
  .site .service-grid { gap: 16px; }
  .site .service { padding: 24px; }
  .site .event { gap: 16px; }
  .site .praise .grid { gap: 16px; }
  .site .praise .quote { width: auto !important; min-width: 0; }
}

/* === Touch target a11y (WCAG 2.5.5 / 2.5.8) === */
/* Service-card 'more' links need vertical hit area */
.site .service .more, .site .text-link, .site .about-link, .site .nav-text-link, .site .add-to-cal, .site .book-cta-note a, .site .btn-ghost { padding-block: 12px; min-height: 44px; display: inline-flex; align-items: center; }
/* Footer link rows */
.site footer ul li a { display: inline-block; padding-block: 10px; min-height: 36px; line-height: 1.4; }
.site footer .legal a, .site footer .bottom .small { padding-block: 8px; display: inline-block; }
/* Newsletter checkbox — wrap with larger label + visually-larger checkbox */
.site .checkbox { display: flex; align-items: flex-start; gap: 12px; padding-block: 8px; cursor: pointer; min-height: 44px; }
.site .checkbox input[type=checkbox] { width: 24px; height: 24px; margin-top: 2px; flex-shrink: 0; cursor: pointer; }
/* Skip link visible when focused, with proper size */
.site .skip-link:focus { width: auto; height: auto; padding: 14px 20px; min-width: 200px; min-height: 44px; }
/* Hamburger menu button on mobile */
.site .menu-btn { min-width: 44px; min-height: 44px; }
/* Praise card avatar (decorative — not interactive, but figcaption links should be too) */
.site .quote .who .name a, .site .quote .who .role a { padding-block: 4px; }

/* === Keyboard focus visibility (WCAG 2.4.7) === */
.site a:focus-visible, .site button:focus-visible, .site input:focus-visible, .site textarea:focus-visible, .site select:focus-visible, .site [tabindex]:focus-visible { outline: 3px solid #3FB4E5 !important; outline-offset: 3px; border-radius: 3px; }
.site .topbar a:focus-visible { outline-offset: 2px; }
.site input:focus-visible, .site textarea:focus-visible, .site select:focus-visible { outline-offset: 1px; border-color: #0F2A5C; }

/* === iOS Safari fixes === */
/* 1. Modal must use 100dvh (dynamic viewport height) on mobile so the URL bar doesn't clip the bottom */
@media (max-width: 640px) {
  .site .story-modal { max-height: 100vh; height: 100vh; max-height: 100dvh; height: 100dvh; }
  /* Fallback for browsers without dvh support — the older 100vh declaration applies. */
}
/* 2. Tap highlight in brand sky (subtle) */
.site a, .site button, .site [role=button] { -webkit-tap-highlight-color: rgba(63, 180, 229, .15); }
/* 3. Custom select styling (replace iOS native) */
.site .field select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230F2A5C'><path d='M4 6l4 4 4-4z'/></svg>");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 16px 16px;
  padding-right: 40px;
}
/* 4. Prevent iOS auto-zoom on textarea (it already inherits 16px but be explicit) */
.site .field input, .site .field textarea, .site .field select, .site .guide .form input { font-size: 16px; }/* End custom CSS */