/* =====================================================
   Adam Walsh Consulting
   Calm editorial wellness inspired system
   Headings: Georgia Pro
   Body: Inter (fallback system sans)
   ===================================================== */

/* -------------------------
   Fonts
-------------------------- */
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap");

/* -------------------------
   Variables
-------------------------- */
:root{
  --blue-deep:#2f3e46;   /* keep */
  --blue-muted:#52796f;
  --blue-soft:#84a98c;

  --blush:#f4dede;
  --sage:#dbe7e4;
  --mist:#e6f0f2;
  --lavender:#e8e4f2;

  --ink:#2d2d2d;
  --ink-soft:#4f4f4f;

  --background:#f7f7f5;
  --surface:#ffffff;

  --border-light:#e5e7eb;

  --radius-lg:24px;
  --radius-md:16px;
  --radius-sm:10px;

  --shadow-soft:0 10px 30px rgba(0,0,0,0.06);
  --shadow-med:0 16px 40px rgba(0,0,0,0.08);

  --gradient-primary:linear-gradient(135deg, var(--blue-muted), var(--blue-soft));
  --gradient-primary-soft:linear-gradient(135deg, rgba(82,121,111,0.92), rgba(132,169,140,0.92));
  --gradient-soft:linear-gradient(135deg, var(--mist), var(--sage));

  --container:1200px;
}

/* -------------------------
   Base
-------------------------- */
*,
*::before,
*::after{box-sizing:border-box;}

html{scroll-behavior:smooth;}

body{
  margin:0;
  font-family:"Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  background:var(--background);
  color:var(--ink);
  line-height:1.65;
}

img{max-width:100%; height:auto; display:block;}

a{color:inherit; text-decoration:none;}

button, input, textarea{font:inherit;}

.sr_only{
  position:absolute !important;
  width:1px; height:1px;
  padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0);
  white-space:nowrap; border:0;
}

/* -------------------------
   Typography
-------------------------- */
h1, h2, h3, h4{
  font-family:"Georgia Pro", Georgia, serif;
  font-weight:400;
  font-kerning:normal;
  text-rendering:optimizeLegibility;
  letter-spacing:-0.018em;
  line-height:1.08;
  margin:0 0 0.75em;
  color:var(--ink);
}

h1{
  font-size:clamp(2.4rem, 5vw, 3.7rem);
  letter-spacing:-0.028em;
  line-height:1.02;
}

h2{
  font-size:clamp(1.9rem, 4vw, 2.7rem);
  letter-spacing:-0.022em;
  line-height:1.06;
}

h3{
  font-size:1.55rem;
  letter-spacing:-0.015em;
}

p{
  max-width:65ch;
  color:var(--ink-soft);
  margin:0 0 1.25em;
}

.kicker{
  font-family:"Inter", system-ui, sans-serif;
  font-weight:600;
  font-size:0.78rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  margin:0 0 12px;
}

/* -------------------------
   Layout helpers
-------------------------- */
.container{
  max-width:var(--container);
  margin:0 auto;
  padding:0 1.5rem;
}

/* Header container tighter padding */
.site_header .container{padding:10px 16px;}

.section{
  position:relative;
  border-radius:var(--radius-lg);
  padding:clamp(3rem, 6vw, 5rem);
}

.section + .section{margin:24px;}

.theme_mist{background:linear-gradient(135deg, rgba(230,240,242,1), rgba(219,231,228,1));}
.theme_blush{background:linear-gradient(135deg, rgba(244,222,222,1), rgba(246,238,238,1));}
.theme_lavender{background:linear-gradient(135deg, rgba(232,228,242,1), rgba(242,240,248,1));}
.theme_surface{
  background:var(--surface);
  border:1px solid var(--border-light);
  box-shadow:var(--shadow-soft);
}
.theme_deep{
  background:var(--blue-deep);
  color:rgba(255,255,255,0.92);
}
.theme_deep h1,
.theme_deep h2,
.theme_deep h3,
.theme_deep h4,
.theme_deep p,
.theme_deep .kicker{color:rgba(255,255,255,0.92);}
.theme_deep p{color:rgba(255,255,255,0.82);}


.centered_section{
  text-align:center;
}

.centered_section p{
  margin-left:auto;
  margin-right:auto;
}

.centered_section .actions,
.centered_section .hero_actions{
  justify-content:center;
}


/* -------------------------
   Header and navigation
-------------------------- */
.site_header{
  position:sticky;
  top:0;
  z-index:1000;
  background:rgba(255,255,255,0.9);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--border-light);
  transition:background 240ms ease;
}

.site_header.scrolled{
  background:rgba(255,255,255,0.78);
}

.nav{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:1.25rem;
  padding:0.9rem 16px;
}

.brand{margin-right:auto; display:flex; align-items:center; gap:0.75rem;}
.brand_logo{
  height:34px;
  width:auto;
}

.nav_links{
  display:flex;
  gap:1.6rem;
  align-items:center;
  justify-content:flex-end;
}

.nav_links a{
  font-weight:500;
  color:rgba(45,45,45,0.88);
  padding:0.4rem 0.2rem;
}

.nav_links a:hover{color:#2d2d2d;
  border-bottom: #6d6d6d solid 2px;
}

.nav_cta{display:flex; align-items:center;}

.menu_btn{
  display:none;
  border:1px solid var(--border-light);
  background:rgba(255,255,255,0.92);
  border-radius:12px;
  padding:0.55rem 0.65rem;
  cursor:pointer;
  box-shadow:0 8px 22px rgba(0,0,0,0.06);
}

.menu_icon{display:inline-grid; gap:4px;}
.menu_icon span{
  display:block;
  width:22px;
  height:2px;
  background:linear-gradient(135deg, rgb(82, 121, 111), rgb(132, 169, 140));
  border-radius:2px;
}

/* Drawer-only CTA: never show on desktop */
.nav_links .nav_drawer_cta{
  display: none !important;
}


.nav a.is_current,
.nav_links a.is_current {
  text-decoration: underline;
  text-underline-offset: .82em;
}



/* -------------------------
   Buttons
-------------------------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap: 8px;
  padding:0.85rem 1.75rem;
  border-radius:999px;
  border:1px solid transparent;
  font-weight:600;
  cursor:pointer;
  transition:transform 200ms ease, box-shadow 200ms ease, opacity 200ms ease, background 200ms ease, border-color 200ms ease, color 200ms ease;
  text-decoration:none !important;
  box-shadow: none;
}

/* remove underline from anything button like */
a.btn, button.btn{ text-decoration:none !important; }

.btn_primary{
  background:var(--gradient-primary);
  color:#fff;
  box-shadow:var(--shadow-soft);
  border: 0;
}

.btn_primary:hover{
  transform:translateY(-2px);
  box-shadow:var(--shadow-med);
}

/* =====================================================
   Secondary button system (single source of truth)
   - Default: dark ghost (for light/pastel backgrounds)
   - Auto-switch: light ghost when inside dark sections
   ===================================================== */

/* DEFAULT: dark ghost (works on light/pastel sections) */
.btn_secondary,
.btn.btn_secondary{
  background: rgba(45, 45, 45, 0.06);
  color: #2d2d2d;
  border: 1px solid rgba(45, 45, 45, 0.45);
  box-shadow: none;
}

.btn_secondary:hover,
.btn.btn_secondary:hover{
  background: rgba(45, 45, 45, 0.10);
  border-color: rgba(45, 45, 45, 0.65);
  transform: translateY(-1px);
}

.btn_secondary:active,
.btn.btn_secondary:active{
  transform: translateY(0);
  background: rgba(45, 45, 45, 0.12);
}

/* Focus (keyboard) */
.btn_secondary:focus-visible,
.btn.btn_secondary:focus-visible{
  outline: 2px solid rgba(45, 45, 45, 0.55);
  outline-offset: 3px;
}

/* AUTO SWITCH: light ghost when placed on dark backgrounds */
.theme_dark .btn_secondary,
.site_footer .btn_secondary,
.hero .btn_secondary{
  background: rgba(255, 255, 255, 0.10);
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.40);
}

.theme_dark .btn_secondary:hover,
.site_footer .btn_secondary:hover,
.hero .btn_secondary:hover{
  background: rgba(255, 255, 255, 0.16);
  border-color: rgba(255, 255, 255, 0.60);
  transform: translateY(-1px);
}

.theme_dark .btn_secondary:focus-visible,
.site_footer .btn_secondary:focus-visible,
.hero .btn_secondary:focus-visible{
  outline: 2px solid rgba(255, 255, 255, 0.70);
  outline-offset: 3px;
}

/* OPTIONAL: Force variants (use only when needed) */
.btn_secondary.force_light{
  background: rgba(255, 255, 255, 0.10) !important;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.40) !important;
}

.btn_secondary.force_dark{
  background: rgba(45, 45, 45, 0.06) !important;
  color: #2d2d2d !important;
  border: 1px solid rgba(45, 45, 45, 0.45) !important;
}

/* -------------------------
   Hero
-------------------------- */
.hero{
  position:relative;
  min-height:85vh;
  display:grid;
  place-items:center;
  text-align:center;
  color:#fff;
  border-radius:var(--radius-lg);
  border-top-left-radius:0;
  border-top-right-radius:0;
  overflow:hidden;
  box-shadow:var(--shadow-soft);
}

.hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(rgba(47,62,70,0.52), rgba(47,62,70,0.58));
  z-index:1;
}

.hero_media{
  position:absolute;
  inset:0;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  z-index:0;
  transform:scale(1.02);
}

.hero_inner{
  position:relative;
  z-index:2;
  padding:clamp(3rem, 6vw, 6rem) 1.5rem;
  max-width:980px;
}

.hero h1{color:#fff; margin-bottom:0.55em;}
.hero p{
  color:rgba(255,255,255,0.9);
  margin:0 auto 2rem;
  max-width:62ch;
  font-size:1.05rem;
}

.hero_actions{
  display:flex;
  gap:0.9rem;
  justify-content:center;
  flex-wrap:wrap;
}

/* -------------------------
   Cards and placeholders
-------------------------- */
.card{
  background:rgba(255,255,255,0.82);
  border:1px solid rgba(31,41,51,0.10);
  border-radius:var(--radius-lg);
  padding:26px 22px 22px;
  box-shadow:var(--shadow-soft);
}

.img_placeholder{
  width:100%;
  border-radius:var(--radius-lg);
  background:linear-gradient(135deg, #e5e7eb, #f3f4f6);
  border:1px solid rgba(31,41,51,0.08);
}

.img_4x3{aspect-ratio:4/3;}
.img_16x9{aspect-ratio:16/9;}
.img_square{aspect-ratio:1/1;}

/* -------------------------
   Services comparison visual
-------------------------- */
.tri_compare{
  margin-top:34px;
  display:grid;
  grid-template-columns:1fr 1.1fr 1fr;
  gap:22px;
  align-items:stretch;
}

.tri_item{
  background:rgba(255,255,255,0.72);
  border:1px solid rgba(31,41,51,0.10);
  border-radius:var(--radius-lg);
  padding:26px 22px 22px;
  box-shadow:0 12px 30px rgba(0,0,0,0.06);
  text-align:center;
}

.tri_item h3{margin:14px 0 8px;}
.tri_item p{margin-bottom:16px;}

.tri_circle{
  width:112px;
  height:112px;
  border-radius:999px;
  display:grid;
  place-items:center;
  margin:0 auto;
  background:radial-gradient(circle at 30% 30%, rgba(255,255,255,0.9), rgba(255,255,255,0.45));
  border:1px solid rgba(31,41,51,0.10);
}

.tri_icon{
  font-size:38px;
  color:rgba(47,62,70,0.78);
}

.tri_left .tri_circle{
  background:radial-gradient(circle at 30% 30%, rgba(244,222,222,0.95), rgba(255,255,255,0.55));
}
.tri_center .tri_circle{
  background:radial-gradient(circle at 30% 30%, rgba(230,240,242,0.95), rgba(255,255,255,0.55));
}
.tri_right .tri_circle{
  background:radial-gradient(circle at 30% 30%, rgba(232,228,242,0.95), rgba(255,255,255,0.55));
}

.tri_center{transform:translateY(-6px);}

/* -------------------------
   Resources spacing
-------------------------- */
.resources_list > * + *{margin-top:3rem;}

li {
  margin-bottom: 1.5rem;
}


.contact_calendly {
  margin-top: 4rem;
}

.contact_calendly h2 {
  margin-bottom: 0.5rem;
}

.contact_calendly p {
  max-width: 42rem;
  margin-bottom: 2rem;
}

.contact_calendly_inner {
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
}

.contact_calendly h2,
.contact_calendly p {
  text-align: left;
}
/* -------------------------
   Footer
-------------------------- */
.site_footer{
  background:var(--blue-deep);
  color:rgba(255,255,255,0.86);
  padding:4rem 0 2.25rem;
}

.footer_wrap{padding:0 1.5rem;}

.footer_columns{
  display: grid;
  grid-template-columns: 1.25fr 1fr 1fr 1.1fr;
  gap: 48px;
  align-items: start;
}

.footer_columns .footer_col:nth-child(2){
  padding-left: 24px;
}

.footer_label{
  font-family:"Inter", system-ui, sans-serif;
  font-size:0.9rem;
  letter-spacing:0.09em;
  text-transform:uppercase;
  color:rgba(255,255,255,0.86);
  margin:0 0 12px;
  font-weight:600;
}

.footer_text{
  color:rgba(255,255,255,0.78);
  margin:0 0 14px;
  max-width:52ch;
}

.site_footer a{
  display:block;
  color:rgba(255,255,255,0.86);
  margin:0.35rem 0;
}

.site_footer a:hover{opacity:0.86; text-decoration:underline;}

.footer_social{
  display:flex;
  gap:0.85rem;
  margin-top:10px;
}

.footer_social img{
  width:18px;
  height:18px;
  filter:brightness(0) invert(1);
  opacity:0.9;
}

.footer_social a:hover img{opacity:0.75;}

.footer_form_row{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}

.footer_form_row input[type="email"]{
  width:min(280px, 100%);
  padding:0.75rem 1rem;
  border-radius:999px;
  border:1px solid rgba(255,255,255,0.20);
  background:rgba(255,255,255,0.10);
  color:#fff;
}

.footer_form_row input::placeholder{color:rgba(255,255,255,0.70);}

.footer_form_row button{white-space:nowrap;}

.footer_bottom{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  margin-top:3rem;
  padding-top:1.5rem;
  border-top:1px solid rgba(255,255,255,0.12);
}

.footer_legal{
  display:flex;
  gap:1rem;
  flex-wrap:wrap;
}

.footer_legal a{display:inline-block; margin:0;}

/* copyright furthest out */
.footer_copy{
  opacity:0.65;
  font-size:0.85rem;
  text-align:right;
}
/* Lavender section should NOT be 100vh 



.section_lavender {
  background: var(--lavender-bg);
  padding: 96px 0;
  height: auto;
  min-height: 0;
}

.section_lavender * {
  min-height: 0;
}
*/


.section_intro.center{
  text-align: center;
}

.section_intro.center .lead{
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}




/* Cards in "Two ways we help" must behave like equal-height flex columns */
.options_cards .option_card {
  display: flex;
  flex-direction: column;
}

/* Card content area should grow, so CTA can stick to the bottom */
.options_cards .option_card .option_body {
  display: flex;
  flex-direction: column;
  flex: 1;
}

/* Push CTA links to bottom */
.options_cards .option_card .option_cta {
  margin-top: auto;
  padding-top: 24px;
}

/* -------------------------
   Motion
-------------------------- */
@media (prefers-reduced-motion: no-preference){
  .reveal{
    opacity:0;
    transform:translateY(14px);
    transition:opacity 600ms ease, transform 600ms ease;
    will-change:opacity, transform;
  }

  .reveal.is_visible{
    opacity:1;
    transform:translateY(0);
  }

  .hover_lift{
    transition:transform 220ms ease, box-shadow 220ms ease;
  }

  .hover_lift:hover{
    transform:translateY(-3px);
    box-shadow:0 16px 36px rgba(0,0,0,0.08);
  }
}

@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1; transform:none; transition:none;}
}

/* -------------------------
   Responsive
-------------------------- */
@media (max-width: 980px){
  .tri_compare{grid-template-columns:1fr; }
  .tri_center{transform:none;}
}

@media (max-width: 900px){
  .nav_links{display:none;}
  .nav_cta{display:none;}
  .menu_btn{display:inline-flex;}
  .brand_logo{height:30px;}
}

@media (max-width: 768px){
  .hero{min-height:75vh;}
  .hero_inner{padding:3rem 1.1rem;}
  .footer_bottom{
    flex-direction:column;
    align-items:flex-start;
  }
  .footer_copy{text-align:left;}
}


/* =====================================================
   Real stories carousel (home)
   ===================================================== */

.stories_grid{
  display:grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
  gap: clamp(24px, 4vw, 60px);
  align-items:start;
}

.stories_intro h2{
  margin: 10px 0 10px;
}

.stories_intro .lead{
  margin: 0;
  color: var(--ink-soft);
}

.stories_carousel{
  display:flex;
  flex-direction:column;
  align-items:stretch;
}

.stories_card{
  background: var(--surface);
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: var(--radius-lg);
  padding: clamp(18px, 3vw, 28px);
  box-shadow: var(--shadow-soft);
}

.stories_stars{
  letter-spacing: 2px;
  margin-bottom: 12px;
}

.stories_quote{
  margin: 0 0 18px;
  font-size: 1.1rem;
  line-height: 1.6;
}

.stories_person{
  margin-top: 10px;
}

.stories_meta{
  color: var(--ink-soft);
  font-size: 0.95rem;
  margin-top: 2px;
}

/* bottom controls row */
.stories_controls{
  margin-top: 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 16px;
}

.stories_dots{
  display:flex;
  gap: 10px;
  align-items:center;
  min-height: 18px;
}

.stories_dot{
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: rgba(0,0,0,0.18);
  border: none;
  padding: 0;
  cursor: pointer;
}

.stories_dot.is_active{
  background: rgba(0,0,0,0.85);
}

.stories_arrows{
  display:flex;
  gap: 12px;
}

.icon_btn{
  width: 44px;
  height: 44px;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,0.14);
  background: rgba(255,255,255,0.65);
  display:grid;
  place-items:center;
  cursor:pointer;
}

.icon_btn:hover{
  background: rgba(255,255,255,0.9);
}

/* responsive */
@media (max-width: 860px){
  .stories_grid{
    grid-template-columns: 1fr;
  }
  .stories_controls{
    justify-content:space-between;
  }
}

/* ============================
   Ready CTA (background image)
   ============================ */

.cta_ready{
  padding: 72px 0;
}

.cta_ready_card{
  position: relative;
  border-radius: 24px;
  overflow: hidden;
  background: #2f3e46;
  min-height: 320px;
  display: grid;
  place-items: center;
}

.cta_ready_bg{
  position: absolute;
  inset: 0;
  background-image: url("/assets/img/signing_photo.png");
  background-size: cover;
  background-position: center;
  opacity: 0.55;
  filter: saturate(0.9) contrast(0.95);
  transform: scale(1.02);
}

.cta_about_bg{
  position: absolute;
  inset: 0;
  background-image: url("/assets/img/table-hands.jpg");
  background-size: cover;
  background-position: center;
  opacity: 0.55;
  filter: saturate(0.9) contrast(0.95);
  transform: scale(1.02);
}


/* dark overlay so the type stays readable */
.cta_ready_card::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(
    0deg,
    rgba(47,62,70,0.72),
    rgba(47,62,70,0.55)
  );
}

.cta_ready_content{
  position: relative;
  z-index: 2;
  text-align: center;
  padding: 72px 20px;
  max-width: 860px;
}

.cta_ready_content h2{
  color: #fff;
  margin: 0 0 10px;
}

.cta_ready_content p{
  color: rgba(255,255,255,0.84);
  margin: 0 0 22px;
}

.cta_ready_actions{
  display: flex;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
}

@media (max-width: 600px){
  .cta_ready{
    padding: 48px 0;
  }
  .cta_ready_card{
    border-radius: 0; /* mobile rule from earlier */
  }
  .cta_ready_content{
    padding: 56px 18px;
    text-align: center;
  }
}


/* Parallax support */
.cta_ready_bg{
  will-change: transform;
  transform: translate3d(0, 0, 0) scale(1.06);
}

@media (prefers-reduced-motion: reduce){
  .cta_ready_bg{
    transform: none;
  }
}

/* =====================================================
   Resources section (Home)
   ===================================================== */

.resources_section .section_intro.center{
  text-align:center;
  max-width:760px;
  margin:0 auto 1.75rem;
}

.resources_grid{
  margin-top: clamp(18px, 3vw, 34px);
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 2.6vw, 34px);
}

.resource_card{
  background:transparent;
  display:flex;
  flex-direction:column;
  gap: 10px;
}

.resource_card.hover_lift{
  box-shadow: none;
}

.resource_card.hover_lift:hover{
  transform: translateY(-2px);
  box-shadow: var(--shadow-soft);
}

.resource_media{
  padding: 0;
}

.resource_media .img_placeholder{
  width:100%;
  aspect-ratio:16/9;
  border: none;
  box-shadow: none;
  display:block;
}

.resource_meta{
  display:flex;
  align-items:center;
  gap: 12px;
  margin-top: 6px;
}

.resource_meta .tag{
  display:inline-flex;
  align-items:center;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 0.85rem;
  border: 1px solid rgba(0,0,0,0.14);
  background: rgba(255,255,255,0.7);
}

.resource_meta .readtime{
  font-size: 0.9rem;
  color: var(--ink-soft);
  font-weight: 600;
}

.resource_card h3{
  margin: 4px 0 0;
  font-size: clamp(1.35rem, 1.6vw, 1.75rem);
  line-height: 1.15;
}

.resource_card p{
  margin: 0;
  color: var(--ink-soft);
  max-width: 52ch;
}

.resource_link{
  margin-top: 8px;
  display:inline-flex;
  gap: 8px;
  align-items:center;
  text-decoration:none;
  font-weight:700;
  color: var(--ink);
}

.resource_link:hover{
  opacity: 0.8;
}

.resources_cta{
  margin-top: clamp(26px, 4vw, 48px);
  display:flex;
  justify-content:center;
}

/* Responsive */
@media (max-width: 980px){
  .resources_grid{
    grid-template-columns:1fr;
  }
  .resource_card p{
    max-width: 60ch;
  }
}

.resource_card{
  background: transparent;
  border-radius: var(--radius-lg);
  overflow: hidden;
  padding-top: 16px;

  /* gives the lift a "card" feel */
  transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease;
}

/* inner padding for all text content */
.resource_card > :not(.resource_media){
  padding-left: 12px;
  padding-right: 12px;
  padding-bottom: 12px;
}

/* spacing rhythm */
.resource_card h3{
  margin: 6px 0 0;
}

.resource_card p{
  margin: 0;
  margin-top: 6px;
}



/* =========================
   Footer refresh
   Dark, smaller type, subtle tracking
   Left column reorder without HTML changes
   Underline on hover, fade, focus outlines
   ========================= */

.site_footer{
  background: #2f3e46;
  color: rgba(255,255,255,0.86);
  font-size: 14px;
  letter-spacing: 0.02em;
  padding: 56px 0 28px;
}

.site_footer .container{
  position: relative;
}

.site_footer a{
  color: rgba(255,255,255,0.86);
  text-decoration: none;
  transition: opacity 180ms ease, transform 180ms ease, text-decoration-color 180ms ease;
}

/* subtle underline only on hover */
.site_footer a:hover{
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  text-decoration-color: rgba(255,255,255,0.55);
}

/* subtle fade and lift on hover */
.site_footer a:hover{
  opacity: 0.9;
  transform: translateY(-1px);
}

/* focus outlines for keyboard users */
.site_footer a:focus-visible,
.site_footer button:focus-visible,
.site_footer input:focus-visible{
  outline: 2px solid rgba(255,255,255,0.55);
  outline-offset: 3px;
  border-radius: 10px;
}

/* Columns */
.footer_columns{
  display: grid;
  grid-template-columns: 1.2fr 0.9fr 0.9fr 1.2fr;
  gap: 28px;
  align-items: start;
}

/* Move the "Stay in touch" column (your 4th .footer_col) to far left */
.footer_columns .footer_col:nth-child(4){
  order: 1;
}
.footer_columns .footer_col:nth-child(1){ order: 2; }
.footer_columns .footer_col:nth-child(2){ order: 3; }
.footer_columns .footer_col:nth-child(3){ order: 4; }

/* Labels and text */
.footer_label{
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.72);
  margin-bottom: 14px;
}

.footer_text{
  color: rgba(255,255,255,0.78);
  line-height: 1.6;
  margin: 0 0 14px;
  max-width: 44ch;
}

/* Make simple column links stack nicely */
.footer_col a{
  display: inline-block;
  margin: 8px 0;
}

/* Social icons only */
.footer_social{
  margin-top: 14px;
}

.social_list{
  display: flex;
  gap: 10px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.social_link{
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* icon container */
.social_icon{
  width: 40px;
  height: 40px;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,0.18);
  background: rgba(255,255,255,0.06);
  display: grid;
  place-items: center;
  transition: background 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.social_link:hover .social_icon{
  background: rgba(255,255,255,0.10);
  border-color: rgba(255,255,255,0.28);
  transform: translateY(-1px);
}

/* svg icon */
.icon_svg{
  width: 18px;
  height: 18px;
  display: block;
  fill: currentColor;
  color: rgba(255,255,255,0.88);
}

/* Newsletter form */
.footer_form{
  margin-top: 12px;
}

.footer_form_row{
  display: flex;
  gap: 10px;
  align-items: center;
}

.footer_form_row input[type="email"]{
  flex: 1;
  min-width: 0;
  height: 44px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.18);
  background: rgba(255,255,255,0.06);
  color: rgba(255,255,255,0.92);
}

.footer_form_row input[type="email"]::placeholder{
  color: rgba(255,255,255,0.55);
}

/* Keep your button styles, but make sure they sit clean in the footer */
.site_footer .btn{
  height: 44px;
  padding: 0 14px;
}

/* Bottom row */
.footer_bottom{
  margin-top: 34px;
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,0.14);
  display: flex;
  justify-content: space-between;
  gap: 18px;
  flex-wrap: wrap;
}

.footer_legal{
  display: flex;
  gap: 18px;
}

.footer_copy{
  color: rgba(255,255,255,0.70);
}

/* Responsive */
@media (max-width: 980px){
  .footer_columns{
    grid-template-columns: 1fr 1fr;
  }
  .footer_columns .footer_col:nth-child(4){
    order: 1;
  }
}

@media (max-width: 640px){
  .footer_columns{
    grid-template-columns: 1fr;
  }
  .footer_form_row{
    flex-direction: column;
    align-items: stretch;
  }
  .site_footer .btn{
    width: 100%;
  }
  .social_list{
    flex-wrap: wrap;
  }
}


/* Footer link columns: clean stacked list */
.footer_col{
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.footer_col .footer_label{
  margin-bottom: 10px;
}

.footer_col a{
  display: block;
  margin: 0;
  line-height: 1.25;
}


.icon_svg{
  shape-rendering: geometricPrecision;
}


/* Footer logo + credit line */
.footer_brandline{
  margin-top: 26px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  flex-wrap: wrap;
}

.footer_logo{
  height: 32px;
  width: auto;
  opacity: 0.92;
}



.site_credit{
  background: #2f3e46;
  color: rgba(255,255,255,0.7);
  text-align: center;
  font-size: 13px;
  letter-spacing: 0.06em;
  padding: 14px 16px 18px;
}

.site_credit a{
  color: rgba(255,255,255,0.85);
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,0.25);
}

.site_credit a:hover{
  border-bottom-color: rgba(255,255,255,0.6);
}

@media (max-width: 640px){
  .footer_brandline{
    flex-direction: column;
    align-items: flex-start;
  }
}

/* --------------------------------
   Banner: Ready to get started
--------------------------------- */
.banner{
  padding: clamp(28px, 4vw, 52px) 0;
}

.banner_panel--bg{
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  min-height: 320px;
  display: grid;
  place-items: center;
  padding: clamp(28px, 5vw, 56px) clamp(18px, 4vw, 48px);
  box-shadow: var(--shadow-soft);
  background-color: #2f3e46;
}

.banner_panel--bg .banner_bg{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  border: none;
  background: linear-gradient(135deg, rgba(0,0,0,0.25), rgba(0,0,0,0.25)),
              linear-gradient(135deg, #e5e7eb, #f3f4f6);
}

.banner_panel--bg .banner_content{
  position: relative;
  z-index: 1;
  text-align: center;
  max-width: 760px;
  color: #fff;
}

.banner_panel--bg .banner_content h2{
  color: #fff;
  margin-bottom: 10px;
}

.banner_panel--bg .banner_content p{
  color: rgba(255,255,255,0.88);
  margin: 0 auto 16px;
}

.banner_panel--bg .hero_actions{
  justify-content: center;
}

@media (max-width: 640px){
  .banner_panel--bg{
    min-height: 260px;
  }
}


/* Mobile menu open state 
.nav_links.show{
  display:flex;
  position:absolute;
  top:70px;
  right:16px;
  left:16px;
  flex-direction:column;
  gap:14px;
  padding:16px;
  border:1px solid var(--border-light);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-soft);
}

.nav_links.show a{
  color:#f7f7f5;
}
*/


/* =========================================================
   Mobile drawer menu (mobile only)
   - slides in from right
   - larger, right aligned links
   - menu icon animates into an X
   ========================================================= */

/* Hamburger -> X animation (driven by aria-expanded) */
.menu_icon span{
  transition: transform 220ms ease, opacity 160ms ease;
  transform-origin: center;
}

.menu_btn[aria-expanded="true"] .menu_icon span:nth-child(1){
  transform: translateY(6px) rotate(45deg);
}
.menu_btn[aria-expanded="true"] .menu_icon span:nth-child(2){
  opacity: 0;
}
.menu_btn[aria-expanded="true"] .menu_icon span:nth-child(3){
  transform: translateY(-6px) rotate(-45deg);
}

/* Drawer styles only on mobile */
@media (max-width: 900px){
  /* override the old "display:none" mobile rule */

    /* Hide desktop CTA on mobile */
  .nav_cta{ display:none !important; }

  /* Ensure the drawer nav is visible as a container (drawer handles off-canvas via transform) */
  .nav_links{ display:flex !important; }

  /* Show CTA as first item inside drawer */
  .nav_links .nav_drawer_cta{
    display: inline-flex !important;
    justify-content: center;
    align-items: center;

    padding: 12px 14px;
    border-radius: 999px;
    font-weight: 700;

    width: 100%;
    text-align: center;

    color: #f7f7f5;
    background: rgba(247, 247, 245, 0.18);
    border: 1px solid rgba(247, 247, 245, 0.55);
    box-shadow: 0 10px 24px rgba(0,0,0,0.18);
  }

  .nav_links .nav_drawer_cta:hover{
    background: rgba(247, 247, 245, 0.24);
    border-color: rgba(247, 247, 245, 0.75);
  }

  .nav_links .nav_drawer_cta:focus-visible{
    outline: 2px solid rgba(247, 247, 245, 0.85);
    outline-offset: 3px;
  }



  .nav_links{
    display:flex;
    flex-direction:column;
    align-items:flex-end;              /* right align items */
    justify-content:flex-start;
    gap: 14px;

    position: fixed;
    top: 0;
    right: 0;
    height: 100vh;
    width: min(86vw, 360px);

    padding: 92px 20px 24px;          /* room for header + comfortable edges */
    background:linear-gradient(135deg, rgba(82, 121, 111 ,.9), rgba(132, 169, 140, 1));
    border-left: 1px solid var(--border-light);
    box-shadow: -18px 0 44px rgba(0,0,0,0.12);

    transform: translate3d(110%, 0, 0);
    opacity: 0;
    pointer-events: none;
    transition: transform 260ms ease, opacity 200ms ease;
    z-index: 1100;
  }

  .nav_links.show{
    transform: translate3d(0, 0, 0);
    opacity: 1;
    pointer-events: auto;
  }

  .nav_links a{
    font-size: 1.15rem;               /* larger */
    font-weight: 600;
    letter-spacing: 0.02em;
    text-align: right;                /* right aligned text */
    padding: 10px 6px;
    color: #f7f7f5;
    width: 100%;
  }

    .nav_links a:hover{
    color: #f7f7f5;
    border: 0;
  }


  /* Hide drawer CTA on desktop */
.nav_drawer_cta{ display:none; }

@media (max-width: 900px){
  /* Hide desktop CTA button on mobile */
  .nav_cta{ display:none; }

  /* Show CTA inside the drawer */
  .nav_drawer_cta{
    display:inline-flex;
    justify-content:center;
    align-items:center;

    padding: 12px 14px;
    border-radius: 999px;
    font-weight: 700;
    width: 100%;
    text-align: center;

    color: #f7f7f5;
    background: rgba(247, 247, 245, 0.18);
    border: 1px solid rgba(247, 247, 245, 0.55);
    box-shadow: 0 10px 24px rgba(0,0,0,0.18);
  }

  .nav_drawer_cta:hover{
    background: rgba(247, 247, 245, 0.24);
    border-color: rgba(247, 247, 245, 0.75);
  }

  .nav_drawer_cta:focus-visible{
    outline: 2px solid rgba(247, 247, 245, 0.85);
    outline-offset: 3px;
  }
}


  /* Optional: make the CTA-ish link feel slightly separated if you ever add one */
  .nav_links a:focus-visible{
    outline: 2px solid rgba(45,45,45,0.35);
    outline-offset: 3px;
    border-radius: 10px;
  }

  /* Lock page scroll when menu open */
  body.menu_open{
    overflow: hidden;
    touch-action: none;
  }

  /* Keep the button above the drawer */
  .menu_btn{
    position: relative;
    z-index: 1200;
  }
}












/* Hero button overrides */
.hero .btn_secondary{
  background:rgba(255,255,255,0.10);
  color:#fff;
  border:1px solid rgba(255,255,255,0.70);
}
.hero .btn_secondary:hover{box-shadow:0 16px 36px rgba(0,0,0,0.20);}

/* Utility button variants */
.btn_outline_grey{
  background:transparent;
  color:rgba(31,41,51,0.78);
  border:1px solid rgba(31,41,51,0.34);
}
.btn_outline_grey:hover{box-shadow:0 14px 34px rgba(0,0,0,0.07); transform:translateY(-2px);} 

.centered_section{text-align:center;}
.centered_section p{margin-left:auto; margin-right:auto;}
.centered_section .hero_actions, .centered_section .actions{justify-content:center;}

/* -------------------------
   Home: Four factors that matter most
   (Card + image layout)
-------------------------- */
.factors_layout{
  display:grid;
  grid-template-columns:1.05fr 0.95fr;
  gap:clamp(1.25rem, 3vw, 2.25rem);
  align-items:start;
}
.factors_intro p{max-width:60ch;}
.factors_cards{
  margin-top:1.25rem;
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:1rem;
}
.factor_card{
  background:rgba(255,255,255,0.86);
  border:1px solid rgba(31,41,51,0.10);
  border-radius:var(--radius-lg);
  padding:18px 16px 16px;
  box-shadow:0 10px 26px rgba(0,0,0,0.06);
}
.factor_card h3{
  margin:0 0 6px;
  font-size:1.05rem;
  letter-spacing:-0.01em;
  line-height:1.2;
}
.factor_card p{
  margin:0;
  font-size:0.95rem;
  color:rgba(31,41,51,0.72);
}
.factors_media .img_placeholder{
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-soft);
  height:100%;
}
.factors_media .img_placeholder{aspect-ratio:1/1;}

.section_image{
  width: 100%;
  height: auto;
  display: block;
  border-radius: 18px;
  object-fit: cover;
}

/* -------------------------
   Home: Two ways we help
   (Large cards with image)
-------------------------- */
.help_cards{
  margin-top:1.5rem;
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:clamp(1rem, 2.4vw, 1.75rem);
  align-items:stretch;
}
.help_card{
  background:rgba(255,255,255,0.82);
  border:1px solid rgba(31,41,51,0.10);
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-soft);
  display:flex;
  flex-direction:column;
  min-height:100%;
}
.help_card_media{
  padding:18px 18px 0;
}
.help_card_body{
  padding:18px 22px 22px;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.help_card_body h3{margin:0;}
.help_card_body p{margin:0 0 6px;}
.help_card_body ul{
  margin:0;
  padding-left:1.1rem;
  color:rgba(31,41,51,0.72);
}
.help_card_body li{margin:0.35rem 0;}
.help_card_actions{
  margin-top:auto;
  padding-top:12px;
}

/* Two ways we help: card variants */
.help_card--mini{
  grid-column:span 1;
}

.help_card--mini .help_card_media{
  padding:0;
}

.help_card--mini .help_card_media .img_placeholder{
  width:100%;
  aspect-ratio:16/10;
  border-radius:0;
  box-shadow:none;
}

.help_card--feature{
  grid-column:span 2;
  display:grid;
  grid-template-columns:minmax(0, 1.05fr) minmax(0, 1fr);
  gap:0;
  padding:0;
}

.help_card--feature .help_feature_media{
  padding:0;
  background:rgba(0,0,0,0.02);
  display:flex;
}

.help_card--feature .help_feature_media .img_placeholder{
  width:100%;
  height:100%;
  min-height:260px;
  aspect-ratio:auto;
  border-radius:0;
  box-shadow:none;
}

.help_card--feature .help_feature_body{
  padding:22px 22px 22px;
  display:flex;
  flex-direction:column;
  gap:10px;
}

/* Center the section title area (keeps existing styles) */
.section_intro.center{
  text-align:center;
  max-width:760px;
  margin:0 auto 0.5rem;
}

/* Responsive: stack nicely */
@media (max-width: 980px){
  .help_cards{
    grid-template-columns:1fr;
  }
  .help_card--mini,
  .help_card--feature{
    grid-column:auto;
  }
  .help_card--feature{
    grid-template-columns:1fr;
  }
  .help_card--feature .help_feature_media .img_placeholder{
    min-height:200px;
    aspect-ratio:16/10;
  }
}

/* -------------------------
   Responsive adjustments for new layouts
-------------------------- */
@media (max-width: 980px){
  .factors_layout{grid-template-columns:1fr;}
  .factors_cards{grid-template-columns:1fr;}
  .help_cards{grid-template-columns:1fr;}
}

/* =========================
   MOBILE ONLY: tighter gutters, no section gaps, no rounded bg
   Target: ~20px from screen edge to content
   ========================= */
@media (max-width: 640px){

  /* 1) Global gutter target */
  :root{
    --mobile-gutter: 28px;
  }

  /* If you have any global padding adding extra space */
  body{
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* 2) Primary layout container: set to ~20px */
  .container{
    padding-left: var(--mobile-gutter) !important;
    padding-right: var(--mobile-gutter) !important;
    max-width: 100% !important;
  }

  /* 3) Kill “double padding” on common section wrappers */
  section,
  .section,
  .section_inner,
  .section_wrap,
  .content_wrap,
  .content,
  .page_wrap,
  .page_content,
  .card_grid_section{
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    border-radius: 0;
  }

  /* 4) No vertical gaps between colored sections on mobile */
  section,
  .section{
    margin-top: 0 !important;
  }

  /* If you’re using "gap" between stacked sections */
  main,
  .main,
  .page,
  .page_main,
  .stack,
  .section_stack{
    gap: 12px !important;
  }

  /* 5) Background blocks should be full-bleed and squared off */
  .section_bg,
  .bg_block,
  .bg_panel,
  .panel,
  .callout,
  .cta_band,
  .hero_panel,
  .lavender_section,
  .trusted_section,
  .resources_section{
    border-radius: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* 6) Images that should be full width shouldn’t inherit rounding on mobile */
  img,
  .hero_media,
  .hero_image,
  .section_image,
  .card_media{
    border-top-left-radius: 0 !important;
    border-top-right-radius: 0 !important;
  }
}


/* =========================
   ABOUT PAGE LAYOUT ADDITIONS
   Append to end of styles.css
   ========================= */

.about_hero_grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:48px;
  align-items:start;
}

.about_story_grid{
  display:grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap:48px;
  align-items:center;
}

.about_story_reverse .about_story_grid{
  grid-template-columns: 0.9fr 1.1fr;
}

.about_story_reverse .about_story_text{
  order:2;
}

.about_story_reverse .about_story_media{
  order:1;
}

.about_badges{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:16px 0 6px;
}

.split_card{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:0;
  border-radius: var(--radius, 24px);
  overflow:hidden;
  border:1px solid rgba(0,0,0,0.08);
}


.split_card_about{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:0;
  border-radius: var(--radius, 24px);
  overflow:hidden;
  border:1px solid rgba(0,0,0,0.08);
  padding-right: 0;
  max-width: var(--container);
margin: 0 auto;
}

.split_card_text{
  padding:32px;
}

.split_card_media{
  min-height:320px;
  display:flex;
}

.split_card_media .img_placeholder{
  border-radius:0;
}



/* =========================================
   Services: Right-aligned placement section
   Desktop only
========================================= */
@media (min-width: 900px){
  #placement .split{
    grid-template-columns: 1fr 1.2fr; /* slightly favor content */
  }

  #placement .split > div:last-child{
    order: 2; /* content on right */
  }

  #placement .split > div:first-child{
    order: 1; /* media on left */
  }

  #placement .split{
    align-items: center;
  }
}



.cards_3{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:22px;
  margin-top:22px;
}

/* card body padding (your request) */
.card_body{
  padding:12px;
}



/* =========================================
   Services: Four-step grid refinement
========================================= */
@media (min-width: 900px){
  #process .cards_3{
    grid-template-columns: repeat(2, 1fr);
    gap: 32px;
  }
}



/* banner overlay layout helper, uses your existing banner visuals */
.banner{
  position:relative;
  border-radius: var(--radius, 18px);
  overflow:hidden;
}

.banner_media{
  position:absolute;
  inset:0;
  opacity:0.25;
}

.banner_content{
  position:relative;
  padding:48px 32px;
  text-align:center;
  max-width: 760px;
  margin:0 auto;
}

/* Responsive */
@media (max-width: 900px){
  .about_hero_grid{
    grid-template-columns: 1fr;
    gap:24px;
  }

  .about_story_grid{
    grid-template-columns: 1fr;
    gap:24px;
  }

  .about_story_reverse .about_story_text,
  .about_story_reverse .about_story_media{
    order:unset;
  }

  .split_card{
    grid-template-columns: 1fr;
  }

  .split_card_text{
    padding:24px;
  }

  .split_card_media{
    min-height:220px;
  }

  .cards_3{
    grid-template-columns: 1fr;
  }

  .banner_content{
    padding:32px 20px;
  }
}


/* Testimonials carousel */
.section_testimonials .section_head {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  align-items: end;
}

.testimonial_controls {
  display: flex;
  gap: 12px;
  justify-content: flex-end;
}

.icon_btn {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,0.12);
  background: rgba(255,255,255,0.7);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.icon_btn:hover { background: rgba(255,255,255,0.9); }

.testimonial_carousel {
  margin-top: 28px;
}

.testimonial_track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 100%;
  gap: 16px;
  overflow: hidden;
  scroll-behavior: smooth;
}

.testimonial_card {
  border: 1px solid rgba(0,0,0,0.12);
  border-radius: 18px;
  padding: 20px;
  background: rgba(255,255,255,0.75);
}

.testimonial_card .stars {
  letter-spacing: 2px;
  font-size: 14px;
  margin-bottom: 10px;
}

.testimonial_card .quote {
  font-size: 18px;
  line-height: 1.5;
  margin: 0 0 18px;
}

.testimonial_card .name {
  font-weight: 700;
}

.testimonial_card .meta {
  opacity: 0.8;
  font-size: 14px;
  margin-top: 4px;
}

.dots {
  display: flex;
  gap: 10px;
  justify-content: center;
  margin-top: 18px;
}

.dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,0.25);
  background: transparent;
  cursor: pointer;
  padding: 0;
}

.dot.is_active {
  background: rgba(0,0,0,0.8);
  border-color: rgba(0,0,0,0.8);
}

@media (max-width: 720px) {
  .section_testimonials .section_head {
    grid-template-columns: 1fr;
  }
  .testimonial_controls {
    justify-content: flex-start;
  }
}

/* =====================================================
   PATCH: Lavender "Two ways we help"
   Fix section height + CTA alignment + image sizing
   (Scoped to .theme_lavender only)
   ===================================================== */

.theme_lavender{
  /* Ensure the section height is content-driven */
  height: auto;
  min-height: 0;
}

.theme_lavender .container{
  height: auto;
}

/* Make the 3 cards behave consistently and NOT stretch weirdly */
.theme_lavender .help_cards{
  align-items: stretch;
}

/* Card inner layout: allow CTA to pin to bottom */
.theme_lavender .help_card,
.theme_lavender .help_feature_body,
.theme_lavender .help_card_body{
  min-height: 0;
}

.theme_lavender .help_card_body,
.theme_lavender .help_feature_body{
  display: flex;
  flex-direction: column;
}

/* This is what aligns Explore / Learn / Discover horizontally */
.theme_lavender .help_card_actions{
  margin-top: auto;            /* pushes CTA to bottom */
  padding-top: 18px;
}

/* Keep CTA links visually aligned */
.theme_lavender .help_card_actions .btn_text{
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

/* ---------- Image sizing: never stretch ---------- */

/* Mini cards: media area */
.theme_lavender .help_card--mini .help_card_media{
  position: relative;
}

.theme_lavender .help_card--mini .help_card_media img{
  width: 100%;
  height: auto;
  display: block;
}

/* If you want the mini images to be consistent crop cards */
.theme_lavender .help_card--mini .help_card_media{
  overflow: hidden;
}

.theme_lavender .help_card--mini .help_card_media img{
  aspect-ratio: 16 / 10;
  object-fit: cover;
  object-position: center;
}

/* Feature card: image should fill its column without distortion */
.theme_lavender .help_card--feature .help_feature_media{
  overflow: hidden;
}

.theme_lavender .help_card--feature .help_feature_media img{
  width: 100%;
  height: 100%;
  min-height: 260px;
  display: block;
  object-fit: cover;
  object-position: center;
}

/* Responsive: ensure nothing forces tall heights */
@media (max-width: 980px){
  .theme_lavender .help_card--feature .help_feature_media img{
    height: auto;
    min-height: 0;
    aspect-ratio: 16 / 10;
  }
}

/* =========================================================
   Accessibility patch (no visual style changes intended)
   ========================================================= */

/* Screen-reader-only utility (used for hidden descriptive text) */
.sr_only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Skip link: only appears when tabbed to */
.skip_link {
  position: absolute;
  left: 16px;
  top: 14px;
  z-index: 9999;
  padding: 10px 12px;
  border-radius: 10px;
  text-decoration: none;

  /* visually hidden until focus */
  transform: translateY(-240%);
  transition: transform 0.18s ease;
}

/* uses your existing dark blue + light contrast */
.skip_link:focus {
  transform: translateY(0);
  background: #2f3e46;
  color: #ffffff;
  outline: 2px solid #ffffff;
  outline-offset: 2px;
}

/* Ensure sticky header doesn't block anchor jumps (Skip link + section links) */
html {
  scroll-padding-top: 92px; /* adjust if header height changes */
}

/* Add a little margin for any anchor target elements */
:target {
  scroll-margin-top: 92px;
}

/* Improve keyboard focus visibility without changing mouse appearance */
:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
}

/* Reduce spacing under section headings in section_intro blocks */
.section_intro h2{
  margin-bottom: 20px !important;
}

.section_intro .lead{
  margin-top: 0 !important;
}

/* =========================================================
   Scoped Vertical Rhythm System (safe)
   Affects only: section intros, cards, hero text stacks, footer columns
   Does NOT reset global p/h1 defaults site-wide.
   ========================================================= */

/* ---------- Section intro stacks ---------- */
.section_intro { margin-bottom: 28px; }

.section_intro h1,
.section_intro h2,
.section_intro h3 {
  margin-top: 0;
  margin-bottom: 20px; /* your target */
}

.section_intro .lead {
  margin-top: 0;
  margin-bottom: 0;
}

.section_intro .lead + p { margin-top: 14px; }

/* Centered intros: keep the lead centered and readable */
.section_intro.center { text-align: center; }
.section_intro.center .lead,
.section_intro.center p {
  margin-left: auto;
  margin-right: auto;
  max-width: 52ch;
}

/* Eyebrow / kicker spacing */
.section_intro .eyebrow,
.section_intro .kicker,
.section_intro .badge {
  display: inline-block;
  margin-bottom: 12px;
}


/* ---------- Card content rhythm ---------- */
/* Applies to text inside your cards without changing card layout */
.help_card_body > *:first-child,
.help_feature_body > *:first-child,
.card_body > *:first-child,
.resource_card > *:first-child {
  margin-top: 0;
}

.help_card_body h3,
.help_feature_body h3,
.card_body h3,
.resource_card h3 {
  margin: 0 0 10px 0;
}

.help_card_body p,
.help_feature_body p,
.card_body p,
.resource_card p {
  margin: 0 0 12px 0;
}

/* Keep action rows consistent and aligned */
.help_card_actions {
  margin-top: 12px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

/* If you want the action links perfectly aligned across cards */
.help_cards--three .help_card_actions {
  margin-top: auto;
}

/* Nudge ONLY the middle card link down to align visually */
.theme_lavender .help_cards .help_card--mini:nth-child(2) .help_card_actions{
  margin-top: 26px;
}

/* ---------- Hero text rhythm ---------- */
.hero h1 { margin: 0 0 14px 0; }
.hero .lead { margin: 0 0 18px 0; }

/* If hero has eyebrow/kicker */
.hero .eyebrow,
.hero .kicker {
  display: inline-block;
  margin-bottom: 12px;
}


/* ---------- Footer column rhythm ---------- */
.site_footer .footer_label { margin: 0 0 10px 0; }
.site_footer .footer_text { margin: 0 0 14px 0; }

/* Links in footer: consistent vertical spacing (prevents paragraph feel) */
.site_footer .footer_col a {
  display: block;
  margin: 0 0 10px 0;
  line-height: 1.2;
}

/* Avoid extra bottom gap after last link in a column */
.site_footer .footer_col a:last-child { margin-bottom: 0; }

/* Resources section: slightly lighter background + subtle top divider */
.resources_section{
  background: rgba(255, 255, 255, 0.35);
  border-top: 1px solid rgba(128, 61, 61, 0.1);
}


/* =========================================================
   HERO LEGIBILITY IMPROVEMENTS
   - Darken image slightly with overlay
   - Increase type size + letter spacing
   ========================================================= */

/* Ensure the hero media can receive an overlay */
.hero{
  position: relative;
}

/* Dark overlay on hero background image */
.hero .hero_media{
  position: absolute;
  inset: 0;
}

/* Overlay layer */
.hero .hero_media::after{
  content: "";
  position: absolute;
  inset: 0;

  /* subtle darkening + slight cool tone */
  background: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0.35) 0%,
    rgba(0, 0, 0, 0.48) 100%
  );
  pointer-events: none;
}

/* Make sure the text sits above the overlay */
.hero .hero_inner{
  position: relative;
  z-index: 2;
}

/* Improve readability */
.hero h1{
  font-size: clamp(2.1rem, 3.6vw, 3.1rem);
  letter-spacing: 0.01em;
  line-height: 1.06;
  margin-bottom: 14px;
}

.hero p{
  font-size: 1.1rem;
  line-height: 1.6;
  letter-spacing: 0.01em;
  max-width: 62ch;
}

/* Optional: kicker readability */
.hero .kicker{
  letter-spacing: 0.08em;
}

/* =========================================================
   Parallax (ADA + performance friendly)
   ========================================================= */

/* wraps for <img> parallax */
.parallax_wrap{
  position: relative;
  overflow: hidden;
  border-radius: 24px;
}

/* <img> parallax targets */
.parallax_img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  will-change: transform;
  transform: translate3d(0,0,0) scale(1.06);
}

/* limit card parallax height behavior to avoid shifting layouts */
.parallax_card_media{
  height: 100%;
}

/* Background parallax target (hero) */
.parallax_bg{
  background-size: cover;
  background-position: center;
  will-change: transform;
}

/* Reduce motion (ADA) */
@media (prefers-reduced-motion: reduce){
  .parallax_img,
  .parallax_bg{
    transform: none !important;
  }
}

/* Mobile: keep very subtle to avoid jank */
@media (max-width: 768px){
  .parallax_img{ transform: none; }
  .parallax_bg{ transform: none; }
}

/* Parallax wrapper should preserve existing rounded corners */
.factors_media .parallax_wrap{
  border-radius: 18px;   /* match your existing section image radius */
  overflow: hidden;
}

/* Ensure the image conforms to the wrapper shape */
.factors_media .parallax_img{
  border-radius: inherit;
}

/* Stories dots as buttons (clickable + accessible) */
.stories_dots .dot{
  background: transparent;
  border: 0;
  padding: 0;
  cursor: pointer;
}


/* Prevent layout shift when testimonials change length */
.stories_card{
  min-height: 345px; /* adjust if you want tighter or taller */
  display: flex;
  flex-direction: column;
}

/* Let the quote take flexible space so footer controls don't jump */
.stories_quote{
  flex: 1 1 auto;
}

/* Mobile: slightly shorter minimum */
@media (max-width: 768px){
  .stories_card{ min-height: 360px; } /* often needs a bit MORE on mobile */
}

/* Stories dots (now buttons, so they need explicit styling) */
.stories_dots{
  display:flex;
  align-items:center;
  gap:10px;
}

/* reset button appearance */
.stories_dots .dot{
  appearance:none;
  -webkit-appearance:none;
  border:0;
  padding:0;
  margin:0;
  width:10px;
  height:10px;
  border-radius:999px;
  background: rgba(45,45,45,0.25);
  cursor:pointer;
  transition: transform 180ms ease, background 180ms ease, opacity 180ms ease;
}

.stories_dots .dot:hover{
  background: rgba(45,45,45,0.40);
  transform: translateY(-1px);
}

.stories_dots .dot.is_active{
  background: rgba(45,45,45,0.70);
}

/* Dark sections (if stories ever sits on dark background) */
.theme_dark .stories_dots .dot,
.site_footer .stories_dots .dot{
  background: rgba(255,255,255,0.35);
}
.theme_dark .stories_dots .dot.is_active,
.site_footer .stories_dots .dot.is_active{
  background: rgba(255,255,255,0.85);
}

/* Keyboard focus (ADA) */
.stories_dots .dot:focus-visible{
  outline: 2px solid rgba(45,45,45,0.55);
  outline-offset: 3px;
}
.theme_dark .stories_dots .dot:focus-visible,
.site_footer .stories_dots .dot:focus-visible{
  outline-color: rgba(255,255,255,0.70);
}

/* Center dots under testimonials */
.stories_controls{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.stories_dots{
  justify-content: center;   /* centers dots within their own row */
  flex: 1;  
  margin-left: 65px;                 /* makes dots take the middle space */
}





/* =========================
   Contact page additions
   ========================= */

.contact_hero{
  padding-top: clamp(40px, 6vw, 84px);
}

.contact_hero_inner .hero_actions{
  justify-content: center;
  margin-top: 24px;
}

/* Three ways to reach us card */
.contact_methods_card{
  background: #2f3e46;
  color: #fff;
  border-radius: 22px;
  padding: clamp(22px, 3.2vw, 40px);
  text-align: center;
}

.contact_methods_title{
  margin: 0 0 10px;
}

.contact_methods_sub{
  margin: 0 0 16px;
  opacity: 0.92;
  max-width: 100%;
}

.contact_methods_actions{
  display: inline-flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: center;
}

/* Grid: contact info + form */

.contact_grid{
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: clamp(18px, 4vw, 44px);
  align-items: start;
}

.contact_info {
  padding-top: clamp(8px, 2vw, 16px);
  margin-top: 100px;
}

.contact_list{
  list-style: none;
  padding: 0;
  margin: 18px 0 0;
  display: grid;
  gap: 10px;
}

.contact_item{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: inherit;
}

.contact_item a{
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

/* Form card */
.form_card{
  background: rgba(255,255,255,0.8);
  border: 1px solid var(--border-light);
  border-radius: 22px;
  padding: clamp(18px, 3vw, 28px);
  box-shadow: var(--shadow-soft);
}

.form_grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 16px;
}

.field label,
.field legend{
  display: block;
  font-weight: 200;
  margin-bottom: 6px;
  font-family: Georgia, 'Times New Roman', Times, serif;
  color: #4f4f4f;
}

.field input,
.field select,
.field textarea{
  border-radius: 12px;
  border: 1px solid var(--border-light);
  padding: 12px 12px;
  font: inherit;
  background: #fff;
  color: var(--text);
}

.field select{
  min-height: 44px;
  height: auto;
  width: 100%;
  max-width: 100%;

}


.field textarea{
  resize: vertical;
  min-height: 140px;
  width: 100%;
}

.field_full{
  grid-column: 1 / -1;
}

.radio_grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 14px;
  margin-top: 6px;
}

.radio_item{
  display: inline-flex;
  gap: 10px;
  align-items: flex-start;
  padding: 10px 10px;
  border: 1px solid var(--border-light);
  border-radius: 14px;
  background: rgba(255,255,255,0.7);
}

.check_item{
  display: inline-flex;
  align-items: flex-start;
  gap: 10px;
}

.form_actions{
  display: flex;
  justify-content: flex-start;
}

/* FAQ accordion */
.faq_header{
  margin-bottom: 14px;
}

.faq{
  display: grid;
  gap: 10px;
}

.faq_item{
  border: 1px solid var(--border-light);
  border-radius: 16px;
  background: #fff;
  overflow: hidden;
}

.faq_item summary{
  cursor: pointer;
  padding: 14px 16px;
  font-weight: 700;
  list-style: none;
}

.faq_item summary::-webkit-details-marker{
  display: none;
}

.faq_body{
  padding: 0 16px 14px;
  color: var(--text);
}

.faq_cta{
  margin-top: 18px;
  border-radius: 18px;
  padding: 18px;
  background: rgba(255,255,255,0.65);
  border: 1px solid var(--border-light);
}

/* Responsive */
@media (max-width: 900px){
  .contact_grid{
    grid-template-columns: 1fr;
  }

  .form_grid{
    grid-template-columns: 1fr;
  }

  .radio_grid{
    grid-template-columns: 1fr;
  }
}




/* -------------------------
   Blog feed (Medium)
-------------------------- */


.page_header {

  border-radius: var(--radius-lg);
  padding: clamp(3rem, 6vw, 5rem);
  padding-bottom: 0;
}

.page_header h1 {
  margin-bottom: 10px;
}
.blog_featured_wrap{
  margin-top: 10px;
}

.blog_featured_card{
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 18px;
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid var(--border-light);
  background: #fff;
  text-decoration: none;
  box-shadow: var(--shadow-soft);
  transition: transform 200ms ease, box-shadow 200ms ease;
}

.blog_featured_card:hover{
  transform: translateY(-2px);
  box-shadow: var(--shadow-med);
}

.blog_featured_media{
  min-height: 320px;
  background: rgba(45,45,45,0.06);
  background-size: cover;
  background-position: center;
}

.blog_featured_body{
  padding: 22px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.blog_featured_title{
  margin: 10px 0 10px;
}

.blog_featured_excerpt{
  margin: 0 0 14px;
  max-width: 52ch;
}

.blog_featured_meta{
  font-size: 0.95rem;
  opacity: 0.75;
  display: flex;
  gap: 10px;
  align-items: center;
  margin-bottom: 14px;
}

.blog_featured_action{
  margin-top: auto;
}

/* Older posts grid */
.blog_list_header{
  margin-top: 34px;
  margin-bottom: 14px;
}

.blog_list_title{
  margin: 0;
}

.blog_list_grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.blog_card{
  display: grid;
  grid-template-rows: 160px auto;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid var(--border-light);
  background: #fff;
  text-decoration: none;
  box-shadow: var(--shadow-soft);
  transition: transform 200ms ease, box-shadow 200ms ease;
}

.blog_card:hover{
  transform: translateY(-2px);
  box-shadow: var(--shadow-med);
}

.blog_card_media{
  background: rgba(45,45,45,0.06);
  background-size: cover;
  background-position: center;
}

.blog_card_body{
  padding: 12px;
}

.blog_card_meta{
  font-size: 0.92rem;
  opacity: 0.7;
  margin-bottom: 8px;
}

.blog_card_title{
  margin: 0 0 8px;
}

.blog_card_excerpt{
  margin: 0 0 12px;
}

.blog_card_cta{
  font-weight: 600;
}

/* Responsive */
@media (max-width: 900px){
  .blog_featured_card{
    grid-template-columns: 1fr;
  }
  .blog_featured_media{
    min-height: 220px;
  }
  .blog_list_grid{
    grid-template-columns: 1fr;
  }
}


/* About page image alignment and no stretch */
.about_media,
.about_media .parallax_wrap,
.about_media img{
  width: 100%;
}

.about_media{
  justify-self: end;     /* pushes media to the right in grid layouts */
  align-self: stretch;
}

.about_media .parallax_wrap{
  overflow: hidden;      /* keep rounded corners clean */
  border-radius: 22px;   /* match your site language */
}

.about_media img{
  display: block;
  height: 100%;
  object-fit: cover;     /* prevents stretching */
}

/* About page icon tiles */
.about_icon_tile{
  width: 100%;
  aspect-ratio: 16 / 10;
  border-radius: 18px;
  position: relative;
  overflow: hidden;
}

/* soft 3 color gradients (tune colors if you want) */
.about_icon_tile--access{
  background: radial-gradient(circle at 20% 20%, rgba(132,169,140,0.65), rgba(82,121,111,0.55), rgba(183, 208, 222, 0.35));
}
.about_icon_tile--empathy{
  background: radial-gradient(circle at 30% 30%, rgba(215,191,224,0.75), rgba(169,132,182,0.45), rgba(175, 199, 212, 0.25));
}
.about_icon_tile--attention{
  background: radial-gradient(circle at 25% 25%, rgba(246,226,184,0.70), rgba(231,195,139,0.45), rgba(205, 209, 211, 0.2));
}

/* delicate white icon using a mask svg approach */
.about_icon_tile::after{
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  width: 54px;
  height: 54px;
  opacity: 0.92;

  background: rgba(255,255,255,0.92);

  /* placeholder icon, swap per tile below */
  mask: var(--icon) no-repeat center / contain;
  -webkit-mask: var(--icon) no-repeat center / contain;
}

/* inline svg masks */
.about_icon_tile--access{ --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2a7 7 0 0 0-7 7c0 5 7 13 7 13s7-8 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E"); }
.about_icon_tile--empathy{ --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 21s-7-4.6-9.5-9C.7 8.7 2.3 6 5.4 6c1.8 0 3.1 1 3.9 2c.8-1 2.1-2 3.9-2c3.1 0 4.7 2.7 2.9 6c-2.5 4.4-9.1 9-9.1 9z'/%3E%3C/svg%3E"); }
.about_icon_tile--attention{ --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 5a7 7 0 1 0 7 7h-2a5 5 0 1 1-5-5V5zm1 1h-2v7l5 3l1-1.7l-4-2.3V6z'/%3E%3C/svg%3E"); }



/* Resources page: small utility */
.small_note{
  margin-top: 10px;
  font-size: 0.95rem;
  opacity: 0.82;
}

/* Disclaimer callout */
.disclaimer_callout{
  margin-top: 14px;
  padding: 12px 14px;
  border: 1px solid var(--border-light);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,0.55);
}
.disclaimer_callout p{
  margin: 0;
  font-size: 0.95rem;
}

/* FAQ if not already styled */
.faq{
  display: grid;
  gap: 12px;
}
.faq_item{
  border: 1px solid var(--border-light);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,0.65);
  overflow: hidden;
}
.faq_item summary{
  cursor: pointer;
  padding: 14px 16px;
  font-weight: 600;
}
.faq_body{
  padding: 0 16px 16px;
}
.faq_body p{
  margin: 0;
}

/* Additions for Resources page (safe, minimal, consistent) */
.resource_card--noimg .resource_meta{ margin-bottom: 10px; }

.resource_card--noimg .h3{
  margin-top: 0;
  margin-bottom: 10px;
}

/* Q&A */
.qa_grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-top: 16px;
}

.qa_item{
  border: 1px solid var(--border-light);
  border-radius: 20px;
  padding: 18px;
  background: #fff;
}

.qa_q{
  margin: 0 0 10px;
}

.qa_a{
  margin: 0;
}

@media (max-width: 900px){
  .qa_grid{ grid-template-columns: 1fr; }
}


/* Services: right align the "Find your community" split by putting the media on the right (desktop only) */
@media (min-width: 900px){
  /* Ensure we are targeting the actual HTML:
     <section id="placement"> <div class="container split"> ... */
  #placement .split{
    display: flex;            /* safe even if already flex */
    align-items: center;
    gap: 48px;
  }

  /* Swap columns: media_box goes to the right, text stays on the left */
  #placement .split > .media_box{
    order: 2;
  }

  #placement .split > div:not(.media_box){
    order: 1;
  }

  /* Optional sizing balance */
  #placement .split > .media_box{
    flex: 0 0 44%;
  }

  #placement .split > div:not(.media_box){
    flex: 1;
  }
}



/* =========================
   Services page width and alignment normalization
   ========================= */

:root{
  --content: 1100px; /* readable editorial width */
}

/* 1) Services header should behave like other page intros */
.page_header .container{
  max-width: var(--content);
}

/* Center the header stack and its actions */
.page_header{
  text-align: center;
}

.page_header .page_subtitle{
  margin-left: auto;
  margin-right: auto;
}

.page_header .hero_actions{
  justify-content: center;
}

/* 2) Placement section grid, consistent max width */
#placement .container{
  max-width: var(--container);
}

#placement .placement_intro{
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: clamp(18px, 4vw, 52px);
  align-items: center;
}

/* Keep the placement text column at readable width */
#placement .placement_intro > div:last-child{
  max-width: var(--content);
}

/* Center only the action row, do not change body copy alignment */
#placement .mini_actions{
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 18px;
  margin-bottom: 10px;
}

/* 3) Match and Process section title blocks should be centered and width limited */
.section_title_center{
  text-align: center;
  max-width: var(--content);
  margin-left: auto;
  margin-right: auto;
}

.section_title_center p{
  margin-left: auto;
  margin-right: auto;
}

/* 4) Feature list should not float narrow */
.feature_list{
  max-width: var(--content);
  margin-left: auto;
  margin-right: auto;
  margin-top: 24px;
  display: grid;
  gap: 18px;
}

/* 5) Consulting banner panel should match the rest of your card language */
.banner_panel{
  background: var(--surface);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
  padding: clamp(22px, 4vw, 40px);
  max-width: var(--content);
  margin-left: auto;
  margin-right: auto;
}

.banner_panel .hero_actions{
  justify-content: center;
}

/* 6) Bottom CTA band container, so it aligns with the site grid */
.services_cta{
  max-width: var(--container);
}

/* Responsive: stack placement on smaller screens */
@media (max-width: 900px){
  #placement .placement_intro{
    grid-template-columns: 1fr;
  }
}

:root {
  --editorial: 1100px;
}

/* Shared editorial container */
.editorial {
  max-width: var(--editorial);
  margin-left: auto;
  margin-right: auto;
}


#placement {
  text-align: left;
}

#placement .hero_actions,
#placement .mini_actions {
  justify-content: flex-start;
}


.contact_calendly_inner {
  padding-left: var(--mobile-gutter);
  padding-right: var(--mobile-gutter);
}


@media (max-width: 900px){

  /* 1. Stack contact info ABOVE the form */
  .contact_grid{
    display: flex;
    flex-direction: column;
    gap: 24px;
  }

  .contact_info{
    order: 1;
    margin-top: 0;
    text-align: center;
  }

  .contact_form_wrap{
    order: 2;
  }

  /* 2. Center the “Send us a message” text block */
  .contact_info h2,
  .contact_info p{
    margin-left: auto;
    margin-right: auto;
    max-width: 52ch;
  }

  .contact_info .kicker{
    justify-content: center;
    display: inline-block;
  }

  /* 3. Make the form FULL width on mobile */
  .form_card{
    width: 100%;
    max-width: none;
    border-radius: 0;
  }

  /* Optional but recommended: remove card-in-card feel */
@media (max-width: 900px){
  .contact_form_wrap{
    padding-left: var(--mobile-gutter);
    padding-right: var(--mobile-gutter);
  }
}
}

@media (max-width: 900px){
  /* Make the form area truly full width */
  .contact_grid,
  .contact_form_wrap,
  .form_card{
    width: 100%;
    max-width: none;
    border-radius:  var(--radius-lg);
  }

  /* One column form fields on mobile */
  .form_grid{
    grid-template-columns: 1fr;
  }

  /* If any fields still force columns, hard reset */
  .field{
    grid-column: 1 / -1;
  }

  /* Prevent select and inputs from visually clipping */
  .field input,
  .field select,
  .field textarea{
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
}

@media (max-width: 900px){

  /* Center the full-width form visually */
  .contact_form_wrap{
    display: flex;
    justify-content: center;
  }

  .form_card{
    margin-left: auto;
    margin-right: auto;
  }
}


@media (max-width: 900px){

  /* Let the form use more horizontal space */
  .form_card{
    max-width: 100%;
    padding-left: clamp(16px, 4vw, 28px);
    padding-right: clamp(16px, 4vw, 28px);
  }

  /* Radios: stack instead of squeezing */
  .radio_grid{
    grid-template-columns: 1fr;
    gap: 12px;
  }

  /* Make labels wrap nicely */
  .radio_item span{
    display: block;
    line-height: 1.3;
  }
}




/* Contact form radios: force dot + text on one row */
#contact-form fieldset.field .radio_grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

#contact-form fieldset.field .radio_item{
  display: flex !important;           /* beats .field label { display:block } */
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
}

/* Undo text input styling for radios */
#contact-form fieldset.field .radio_item input[type="radio"]{
  width: 18px;
  height: 18px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: transparent;
  box-shadow: none;
  flex: 0 0 auto;
  margin: 4px 0 0 0;
  accent-color: var(--sage);
}

/* Let the label text fill the row and wrap */
#contact-form fieldset.field .radio_item span{
  display: block;
  min-width: 0;
  line-height: 1.3;
}