/* Responsive refinement. Loaded after the original GatherWell theme. */
:root { --muted:#59645d; --gutter:clamp(1.25rem,4vw,3.5rem); }
html { scroll-padding-top:7rem; }
body { font-size:1rem; }
.wrap { width:calc(100% - var(--gutter) * 2); }
.site-header { max-width:none; height:auto; min-height:92px; padding-inline:var(--gutter); position:sticky; top:0; z-index:30; background:rgba(246,243,235,.97); backdrop-filter:blur(16px); }
.brand { min-height:44px; flex-shrink:0; font-size:1.5rem; }
.brand img { flex-shrink:0; }
.desktop-nav a { display:flex; align-items:center; min-height:44px; }
.button { min-height:52px; border-radius:9px; font-size:.875rem; padding:.9rem 1.4rem; line-height:1.5; text-align:center; }
.header-cta { min-height:46px; padding:.7rem 1.1rem; }
.text-link { min-height:44px; font-size:.875rem; line-height:1.5; }
.hero { grid-template-columns:minmax(0,1.07fr) minmax(0,1fr); gap:clamp(2rem,5vw,5.5rem); padding-block:clamp(3rem,5.5vw,5rem) clamp(4rem,6vw,6rem); }
.hero-copy,.hero-visual,.section-heading>*,.experience,.feature-grid article { min-width:0; }
h1,h2,h3 { overflow-wrap:break-word; }
.hero h1 { font-size:clamp(3.1rem,6.2vw,5.5rem); line-height:1.04; letter-spacing:-.045em; margin-bottom:1.6rem; }
.eyebrow,.hero .eyebrow { font-size:.75rem; letter-spacing:.095em; }
.little-line { flex-shrink:0; }
.hero-description { font-size:1.0625rem; max-width:460px; line-height:1.8; margin:0 0 1.75rem; }
.hero-actions { gap:.75rem 1.5rem; }
.hero-actions>.text-link { font-size:.875rem; }
.quiet-note { font-size:.8125rem; align-items:flex-start; margin-top:1.1rem; }
.quiet-note svg { height:21px; }
.hero-visual { padding:0 0 2.5rem; }
.photo-frame { height:clamp(430px,43vw,590px); border-radius:50% 50% 18px 18px; }
.photo-frame:after { inset:45% 0 0; background:linear-gradient(transparent,rgba(7,36,23,.82)); }
.photo-caption { bottom:5rem; left:1.75rem; right:1.5rem; font-size:clamp(1.15rem,1.8vw,1.5rem); }
.caption-dot { display:none; }
.gathering-note { left:-1.25rem; right:1.5rem; bottom:0; gap:.9rem; padding:1.1rem; border-color:#e3e6dc; border-radius:14px; box-shadow:0 14px 40px #123f3210; }
.gathering-note>div { min-width:0; }
.gathering-note strong { font-size:.9375rem; line-height:1.5; }
.gathering-note .overline { font-size:.75rem; line-height:1.5; letter-spacing:0; text-transform:none; }
.gathering-note span:not(.note-icon):not(.overline) { font-size:.8125rem; }
.note-icon { flex-shrink:0; border-radius:10px; }
.orbit-label { top:.5rem; right:0; font-size:.75rem; letter-spacing:.12em; }
.orbit-label span { font-size:42px; }
.belief-strip>.wrap { display:grid; grid-template-columns:1.15fr 1fr 1fr 1fr; padding-block:1.7rem; gap:1.5rem; }
.belief-strip p,.belief-strip span { font-size:.875rem; }
.belief-strip span { gap:12px; }
.section { padding-block:clamp(4rem,7vw,6.75rem); }
h2 { font-size:clamp(2.15rem,3.7vw,3.25rem); letter-spacing:-.04em; line-height:1.16; }
.section-heading { gap:3rem; margin-bottom:2.75rem; }
.section-heading>p { font-size:1rem; }
.feature-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; }
.feature-grid article { border:1px solid var(--line); border-radius:16px; padding:clamp(1.25rem,2.2vw,2rem); background:#fffefa80; transition:background .2s,border-color .2s; }
.feature-icon { margin-bottom:1.25rem; }
.feature-number { position:static; font-size:.75rem; letter-spacing:.08em; margin-bottom:.8rem; }
.feature-grid h3 { font-size:clamp(1.5rem,2.2vw,1.875rem); line-height:1.2; letter-spacing:-.03em; }
.feature-grid p { font-size:1rem; line-height:1.65; }
.feature-grid a { font-size:.875rem; }
.story-grid { gap:1.5rem; }
.story { height:clamp(360px,35vw,450px); border-radius:16px; }
.story:after { inset:20% 0 0; background:linear-gradient(transparent,rgba(5,31,22,.92)); }
.story figcaption { bottom:1.75rem; left:1.75rem; right:1.5rem; }
.story-label { font-size:.75rem; letter-spacing:.12em; }
.story h3 { font-size:clamp(1.7rem,2.6vw,2.2rem); line-height:1.2; letter-spacing:-.025em; }
.image-note,.demo-note { font-size:.8125rem; }
.center-heading p:last-child { font-size:1rem; }
.experience { padding:clamp(1.5rem,3.3vw,2.75rem); border-radius:18px; }
.experience-top { gap:.75rem; margin-bottom:2rem; }
.experience .pill { font-size:.75rem; letter-spacing:.05em; padding:.4rem .75rem; }
.experience h3 { font-size:clamp(2rem,3.1vw,2.625rem); line-height:1.16; letter-spacing:-.035em; }
.experience p { font-size:1rem; }
.experience ul { font-size:.875rem; gap:.9rem; }
.experience li svg { height:23px; }
.experience .button { align-self:stretch; justify-content:space-between; font-size:.875rem; }
.faq-list details { padding:0; }
.faq-list summary { font-size:1rem; min-height:72px; padding-block:1.25rem; }
.faq-list summary span { flex-shrink:0; }
.faq-list details p { font-size:1rem; margin:0 1.5rem 1.5rem 0; }
.closing { padding-block:clamp(3.5rem,6vw,5.5rem); }
.closing .eyebrow { font-size:.75rem; color:#c9d4c1; }
.closing h2 { font-size:clamp(2.5rem,5vw,3.75rem); }
footer { flex-wrap:wrap; gap:1rem 1.75rem; }
footer p,footer>a:not(.brand) { font-size:.875rem; }
footer>a:not(.brand) { min-height:44px; display:flex; align-items:center; }
footer .copyright { font-size:.8125rem; }
.mobile-nav[hidden] { display:none; }
@media (hover:hover) {
  .feature-grid article:hover { border-color:#a4b9a9; background:var(--paper); }
}
@media (hover:none) {
  .button:hover,.story:hover img { transform:none; }
}

/* Tablet navigation switches before links become crowded. */
@media (max-width:1000px) {
  .site-header { min-height:80px; gap:1rem; }
  .desktop-nav { display:none; }
  .header-cta { margin-left:auto; }
  .menu-toggle { display:flex; width:46px; height:46px; flex-shrink:0; border:1px solid #bdcabe; background:transparent; border-radius:9px; flex-direction:column; align-items:center; justify-content:center; gap:6px; }
  .menu-toggle span { width:19px; height:2px; background:var(--forest); transition:transform .2s; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform:translateY(4px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform:translateY(-4px) rotate(-45deg); }
  .mobile-nav:not([hidden]) { display:flex; position:absolute; top:100%; left:0; right:0; background:var(--paper); padding:.75rem var(--gutter) 1rem; border-bottom:1px solid var(--line); z-index:40; box-shadow:0 15px 25px #123f3212; flex-direction:column; max-height:calc(100dvh - 80px); overflow-y:auto; }
  .mobile-nav a { padding:.75rem 0; min-height:48px; font-size:1rem; }
  .hero { max-width:1280px; grid-template-columns:minmax(0,1.07fr) minmax(0,1fr); gap:2rem; }
  .hero h1 { font-size:clamp(3rem,6.3vw,4rem); }
  .hero .eyebrow { max-width:20rem; }
  .photo-frame { height:450px; }
  .gathering-note { left:0; right:0; padding:.9rem; gap:.65rem; }
  .gathering-note .note-icon { width:38px; }
  .photo-caption { left:1.25rem; bottom:6rem; }
  .belief-strip>.wrap { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem 2rem; }
  .section-heading { align-items:flex-start; flex-direction:column; gap:1.25rem; }
  .section-heading>p { max-width:600px; }
  .feature-grid { gap:1rem; }
  .feature-grid article { padding:1.25rem; }
  .story-grid { grid-template-columns:1fr 1fr; gap:1.25rem; }
  .story figcaption { left:1.25rem; right:1.25rem; }
  .experience-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:1.25rem; }
  .experience { padding:1.5rem; }
  .experience-top { align-items:flex-start; }
  .experience .button { padding-inline:1rem; gap:.75rem; }
  .faq-section { grid-template-columns:minmax(0,1fr); gap:1.5rem; }
  footer p { order:3; width:100%; margin:0; }
  footer>a:not(.brand) { margin-left:auto; }
}

/* Phones: a single column with readable copy and comfortable touch targets. */
@media (max-width:767px) {
  .hero { grid-template-columns:minmax(0,1fr); max-width:600px; padding-block:2.25rem 3.5rem; gap:2rem; }
  .hero h1 { font-size:clamp(3.125rem,10vw,4.5rem); }
  .hero .eyebrow { max-width:none; }
  .hero-description { font-size:1rem; max-width:520px; }
  .hero-visual { width:100%; max-width:540px; margin-inline:auto; }
  .photo-frame { height:clamp(340px,75vw,460px); }
  .gathering-note { left:.75rem; right:.75rem; padding:1rem; }
  .gathering-note .note-icon { width:44px; }
  .photo-caption { bottom:5.25rem; font-size:1.375rem; }
  .orbit-label { display:none; }
  .feature-grid { grid-template-columns:minmax(0,1fr); gap:1rem; }
  .feature-grid article { padding:1.5rem; }
  .feature-grid h3 { font-size:1.875rem; }
  .feature-grid p { max-width:540px; }
  .story-grid { grid-template-columns:minmax(0,1fr); gap:1.25rem; }
  .story { height:390px; }
  .story h3 { font-size:2rem; }
  .experience-grid { grid-template-columns:minmax(0,1fr); }
  .experience { padding:1.75rem; }
  .experience h3 { font-size:2.25rem; }
  .experience .button { min-height:54px; }
  .section-heading { margin-bottom:2rem; }
  .section { padding-block:3.75rem; }
  footer .copyright { width:100%; order:4; margin:0; }
}
@media (max-width:479px) {
  .site-header { min-height:72px; gap:.75rem; }
  .brand { font-size:1.375rem; }
  .brand img { width:32px; height:32px; }
  .header-cta { display:none; }
  .menu-toggle { margin-left:auto; }
  .hero-actions { flex-direction:column; align-items:stretch; gap:.4rem; }
  .hero-actions>.text-link { justify-content:center; }
  .hero h1 { font-size:clamp(2.875rem,12.6vw,3.6rem); }
  .eyebrow,.hero .eyebrow { letter-spacing:.065em; }
  .hero .eyebrow { gap:8px; }
  .little-line { width:18px; }
  .gathering-note { padding:.85rem; gap:.65rem; }
  .gathering-note .note-icon { width:36px; height:44px; }
  .gathering-note strong { font-size:.875rem; }
  .gathering-note span:not(.note-icon):not(.overline) { font-size:.75rem; }
  .photo-caption { font-size:1.2rem; }
  .belief-strip>.wrap { gap:1.2rem; }
  .belief-strip span { gap:.6rem; align-items:flex-start; }
  .belief-strip svg { width:20px; height:23px; }
  h2 { font-size:clamp(1.875rem,8.5vw,2.35rem); }
  .story { height:360px; }
  .story h3 { font-size:1.875rem; }
  .experience { padding:1.5rem; }
  .experience h3 { font-size:2.125rem; }
  .experience-top>svg { width:24px; }
  .experience .pill { letter-spacing:.02em; padding-inline:.6rem; }
  .closing h2 { font-size:clamp(2.25rem,10vw,2.8rem); }
  footer { gap:.75rem 1rem; }
  footer>a:not(.brand) { margin-left:0; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*:before,*:after { transition:none!important; animation:none!important; }
}
