/* =========================================================
   CHARIS — Master Theme (WP-safe) — SINGLE SOURCE OF TRUTH
   Paste this as the ONLY code in Appearance > Customize > Additional CSS
   ========================================================= */

:root{
  --charis-navy:#1F2A37;
  --charis-cream:#F7F5EE;
  --charis-sand:#E6DCC5;
  --charis-sage:#A7B8A3;
  --charis-dusty:#7B8FA1;

  --charis-text: var(--charis-navy);
  --charis-muted: rgba(31,42,55,.72);
  --charis-border: rgba(31,42,55,.12);
  --charis-shadow: 0 14px 40px rgba(31,42,55,.08);
  --charis-shadow-hover: 0 20px 60px rgba(31,42,55,.12);
  --charis-radius: 18px;
}

html, body{
  background: var(--charis-cream) !important;
  color: var(--charis-text) !important;
  overflow-x: hidden !important;
}

body{
  font-family: "Open Sans", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif !important;
  font-size: 17px !important;
  line-height: 1.65 !important;
}

img, video{ max-width:100% !important; height:auto !important; }

/* Headings */
h1,h2,h3,h4,h5,h6{
  font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif !important;
  color: var(--charis-navy) !important;
  font-weight: 600 !important;
  letter-spacing: .2px !important;
}

/* Layout container */
.charis-container{
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 22px;
}

/* =========================================================
   Header / Navigation
   ========================================================= */
.site-header{
  position: sticky !important;
  top: 0;
  z-index: 9999;
  background: rgba(247,245,238,.88) !important;
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(31,42,55,.10) !important;
}

.main-header-bar,
.ast-primary-header-bar,
#masthead{
  background-color: var(--charis-cream) !important;
  border-bottom: 1px solid rgba(31,42,55,.08);
}

.main-header-menu a,
.ast-header-navigation a{
  color: var(--charis-navy) !important;
  font-weight: 800 !important;
  letter-spacing: .3px;
}
.main-header-menu > li > a:hover{ opacity: .75; }

.main-header-menu li:last-child > a{
  background: var(--charis-navy) !important;
  color:#fff !important;
  padding: 10px 14px !important;
  border-radius: 14px !important;
  border: 1px solid var(--charis-navy) !important;
}
.main-header-menu li:last-child > a:hover{
  opacity:.92 !important;
  text-decoration:none !important;
}

.ast-button-wrap .ast-button{
  background: var(--charis-navy) !important;
  color: #fff !important;
  border-radius: 8px;
}

/* =========================================================
   Buttons
   ========================================================= */
.charis-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;

  background: var(--charis-navy);
  color:#fff !important;
  border: 1px solid var(--charis-navy);
  border-radius: 12px;

  padding: 12px 18px;
  font-weight: 800;
  font-size: 15px;
  text-decoration:none !important;

  transition: transform .12s ease, opacity .12s ease, background .12s ease;
}
.charis-btn:hover{ opacity:.92; transform: translateY(-1px); }

.charis-btn-outline{
  background: transparent !important;
  color: var(--charis-navy) !important;
  border: 1px solid rgba(31,42,55,.28) !important;
}
.charis-btn-outline:hover{ background: rgba(31,42,55,.05) !important; }

/* Button row helper */
.charis-btn-row{
  display:flex;
  gap:12px;
  flex-wrap: wrap;
  align-items:center;
}
@media (max-width: 900px){
  .charis-btn-row{
    flex-direction: column;
    align-items: stretch;
  }
  .charis-btn-row .charis-btn{
    width: 100%;
  }
}

/* =========================================================
   Sections / Typography helpers
   ========================================================= */
.charis-section{ padding: 92px 0; }
@media (max-width:900px){ .charis-section{ padding: 64px 0; } }

.charis-center{ text-align:center; }
.charis-center .charis-lead{
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.charis-section h2{ margin-bottom: 10px; }
.charis-section .charis-lead{ margin-bottom: 24px; }

.charis-lead{
  color: var(--charis-muted) !important;
  font-size: 18px !important;
  max-width: 60ch;
  margin: 0 0 22px 0 !important;
}

/* =========================================================
   Hero
   ========================================================= */
.charis-hero{
  padding-top: 110px;
  padding-bottom: 80px;
  background:
    radial-gradient(900px 420px at 20% 20%, rgba(230,220,197,.55), transparent 60%),
    radial-gradient(900px 420px at 80% 25%, rgba(167,184,163,.35), transparent 55%),
    linear-gradient(180deg, rgba(247,245,238,1), rgba(247,245,238,.75));
  border-bottom: 1px solid rgba(31,42,55,.08);
}

.charis-hero h1{
  font-size: clamp(42px, 4.8vw, 68px) !important;
  line-height: 1.02 !important;
  margin: 0 0 14px 0 !important;
}

.charis-hero-grid{
  display: grid;
  grid-template-columns: 1.25fr .75fr;
  gap: 34px;
  align-items: center;
}
@media (max-width:900px){
  .charis-hero-grid{ grid-template-columns: 1fr; }
}

/* Trust chips */
.charis-trust{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:18px;
}

.charis-trust-item{
  background: rgba(255,255,255,.65);
  border: 1px solid rgba(31,42,55,.10);
  border-radius: 999px;
  padding: 10px 12px;
  font-weight: 800;
  font-size: 13px;
  color: rgba(31,42,55,.78);
}

.charis-meta{
  margin-top: 14px;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  color: rgba(31,42,55,.70);
  font-weight: 800;
  font-size: 13px;
  letter-spacing: .2px;
}
.charis-dot{ opacity: .55; }

/* =========================================================
   Cards
   ========================================================= */
.charis-card{
  background:#fff;
  border: 1px solid var(--charis-border);
  border-radius: var(--charis-radius);
  box-shadow: var(--charis-shadow);
  padding: 26px;
  transition: transform .2s ease, box-shadow .2s ease;
}

.charis-card h3{ margin-top: 0; }
.charis-card p{ color: rgba(31,42,55,.78); margin: 0; }

.charis-card:hover{
  transform: translateY(-6px);
  box-shadow: var(--charis-shadow-hover);
}

/* Provider photo card */
.charis-photo-card{
  padding: 22px;
  background:
    radial-gradient(400px 200px at 50% 0%, rgba(123,143,161,.18), transparent 60%),
    rgba(255,255,255,.85);
}

.charis-photo-img{
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  object-position: center 18%;
  border-radius: 14px;
  border: 1px solid rgba(31,42,55,.08);
  display:block;
}

/* Provider name block */
.charis-provider-name{
  margin-top: 12px;
  line-height: 1.2;
}
.charis-provider-title{
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 22px;
  font-weight: 700;
  color: var(--charis-navy);
}
.charis-provider-sub{
  margin-top: 6px;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .25px;
  color: rgba(31,42,55,.65);
}

/* =========================================================
   Steps / Services grids
   ========================================================= */
.charis-steps{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 24px;
}
@media (max-width:900px){
  .charis-steps{ grid-template-columns: 1fr; }
}

.charis-step-num{
  width: 38px;
  height: 38px;
  border-radius: 12px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight: 900;
  background: rgba(167,184,163,.25);
  color: #2F6B4F;
  margin-bottom: 12px;
}

.charis-services-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 28px;
}
@media (max-width:900px){
  .charis-services-grid{ grid-template-columns: 1fr; }
}
.charis-services-grid .charis-card{
  padding-top: 32px !important;
  padding-bottom: 32px !important;
}

/* =========================================================
   Split section + checklist
   ========================================================= */
.charis-split{
  background: rgba(255,255,255,.55);
}

.charis-split-grid{
  display:grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 26px;
  align-items: start;
}
@media (max-width:900px){
  .charis-split-grid{ grid-template-columns: 1fr; }
}

.charis-checks{
  margin: 18px 0 0 0;
  padding: 0;
  list-style: none;
}
.charis-checks li{
  position: relative;
  padding-left: 26px;
  margin: 10px 0;
  color: var(--charis-muted);
}
.charis-checks li:before{
  content:"✓";
  position:absolute;
  left:0;
  top:0;
  color: #2F6B4F;
  font-weight: 900;
}

/* =========================================================
   Photo Stack (single source of truth)
   ========================================================= */
.charis-split-grid--photos{
  align-items: center;
}
.charis-split-grid--photos > *{
  min-width: 0;
}

.charis-photo-col{
  display:flex;
  justify-content:center;
}

.charis-photo-stack{
  position: relative;
  width: 100%;
  max-width: 520px;
}

.charis-photo-stack img{
  width: 100%;
  height: auto;
  display:block;
  border-radius: 18px;
  border: 1px solid rgba(31,42,55,.10);
  box-shadow: 0 18px 55px rgba(31,42,55,.14);
  background: #fff;
}

.charis-photo-main{
  position: relative;
  z-index: 1;
}

.charis-photo-small{
  position: absolute;
  width: 58%;
  z-index: 2;
}

.charis-photo-small.top{
  top: -28px;
  right: -18px;
}

.charis-photo-small.bottom{
  bottom: -34px;
  right: -6px;
}

@media (max-width: 900px){
  .charis-photo-stack{
    max-width: 520px;
    margin: 10px auto 0;
  }
  .charis-photo-small{
    position: relative;
    width: 100%;
    margin-top: 14px;
    top: auto;
    right: auto;
    bottom: auto;
  }
}

/* =========================================================
   FAQ
   ========================================================= */
.charis-faq{
  display:grid;
  gap: 14px;
  margin-top: 22px;
  max-width: 820px;
  margin-left: auto;
  margin-right: auto;
}
.charis-faq details.charis-card{ padding: 20px 22px; }

.charis-faq summary{
  cursor:pointer;
  font-weight: 900;
  list-style: none;
}
.charis-faq summary::-webkit-details-marker{ display:none; }

.charis-faq-body{
  margin-top: 12px;
  color: rgba(31,42,55,.72);
}

/* =========================================================
   CTA (Light)
   ========================================================= */
.charis-cta{
  background:
    radial-gradient(900px 320px at 50% 0%, rgba(167,184,163,.28), transparent 60%),
    radial-gradient(700px 260px at 20% 40%, rgba(230,220,197,.55), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.85), rgba(247,245,238,1));
  text-align:center;
  padding: 92px 0;
  border-top: 1px solid rgba(31,42,55,.08);
  position: relative;
  z-index: 1;
}

.charis-cta h2{ color: var(--charis-navy) !important; }
.charis-cta p{ color: var(--charis-muted) !important; }

.charis-cta .charis-btn{
  background: var(--charis-navy) !important;
  color:#fff !important;
  border-color: var(--charis-navy) !important;
}

/* =========================================================
   Footer
   ========================================================= */
.site-footer, #colophon{
  border-top: 1px solid rgba(31,42,55,.10) !important;
  background: rgba(255,255,255,.45) !important;
  color: rgba(31,42,55,.78) !important;
  position: relative;
  z-index: 2;
  margin-top: 0 !important;
}

/* =========================================================
   Inner pages helpers
   ========================================================= */
.charis-hero--inner{
  padding-top: 90px;
  padding-bottom: 60px;
  border-bottom: 1px solid rgba(31,42,55,.08);
}
.charis-section--alt{
  background: rgba(255,255,255,.55);
  border-top: 1px solid rgba(31,42,55,.06);
  border-bottom: 1px solid rgba(31,42,55,.06);
}

/* =========================================================
   WPForms
   ========================================================= */
.wpforms-container{ margin-top: 22px; }

.wpforms-container .wpforms-field-label{
  font-weight: 600;
  color: var(--charis-navy);
  margin-bottom: 6px;
}

.wpforms-container input[type="text"],
.wpforms-container input[type="email"],
.wpforms-container input[type="tel"],
.wpforms-container select,
.wpforms-container textarea{
  width: 100%;
  border: 1px solid rgba(31,42,55,.16);
  border-radius: 10px;
  padding: 12px 14px;
  background: #fff;
  color: var(--charis-navy);
  font-size: 16px;
  transition: box-shadow .15s ease, border-color .15s ease;
}

.wpforms-container input:focus,
.wpforms-container select:focus,
.wpforms-container textarea:focus{
  outline: none;
  border-color: rgba(31,42,55,.35);
  box-shadow: 0 0 0 4px rgba(31,42,55,.08);
}

.wpforms-container .wpforms-submit{
  background: var(--charis-navy) !important;
  color: #fff !important;
  border: 1px solid var(--charis-navy) !important;
  border-radius: 10px !important;
  padding: 12px 20px !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  transition: transform .12s ease, opacity .12s ease;
}
.wpforms-container .wpforms-submit:hover{
  opacity: .92 !important;
  transform: translateY(-1px);
}
.wpforms-container .wpforms-error{
  color: #b00020;
  font-weight: 600;
}

/* =========================================================
   Mobile polish pack
   ========================================================= */
@media (max-width: 900px){
  .charis-container{ padding: 0 16px !important; }

  .charis-hero{
    padding-top: 78px !important;
    padding-bottom: 54px !important;
  }

  .charis-hero h1{
    font-size: clamp(34px, 9vw, 48px) !important;
    line-height: 1.05 !important;
  }

  .charis-lead{ font-size: 16.5px !important; }

  .charis-card{
    padding: 20px !important;
    border-radius: 16px !important;
  }

  .charis-cta{ padding: 70px 0 !important; }
  .charis-cta h2{ font-size: clamp(28px, 7.5vw, 40px) !important; }

  .charis-hero--inner{ padding: 70px 0 50px; }
}

/* =========================================================
   Reveal animations (optional)
   ========================================================= */
.charis-reveal{
  opacity:0;
  transform: translateY(14px);
  transition: opacity .65s ease, transform .65s ease;
  will-change: opacity, transform;
}
.charis-reveal.charis-reveal-in{
  opacity:1;
  transform:none;
}
@media (prefers-reduced-motion: reduce){
  .charis-reveal{ opacity:1; transform:none; transition:none; }
}
.charis-photo-card:hover{
  transform: translateY(-6px);
  box-shadow: 0 22px 60px rgba(31,42,55,.18);
  transition: .25s ease;
  cursor: pointer;
}

/* =========================================================
   CHARIS — Footer
   ========================================================= */
.charis-footer{
  background:
    radial-gradient(900px 280px at 20% 0%, rgba(230,220,197,.55), transparent 60%),
    radial-gradient(800px 260px at 80% 10%, rgba(167,184,163,.28), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.78), rgba(247,245,238,1));
  border-top: 1px solid rgba(31,42,55,.10);
  padding: 64px 0 28px;
  position: relative;
  z-index: 2;
}

.charis-footer-grid{
  display:grid;
  grid-template-columns: 1.3fr .7fr .8fr .9fr;
  gap: 26px;
  align-items:start;
}

.charis-footer-logo{
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 26px;
  font-weight: 650;
  color: var(--charis-navy);
  margin-bottom: 10px;
}

.charis-footer-text{
  color: rgba(31,42,55,.72);
  margin: 0 0 14px;
  max-width: 52ch;
}

.charis-footer-badges{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.charis-footer-badge{
  background: rgba(255,255,255,.70);
  border: 1px solid rgba(31,42,55,.10);
  border-radius: 999px;
  padding: 8px 10px;
  font-weight: 800;
  font-size: 12px;
  color: rgba(31,42,55,.72);
}

.charis-footer-title{
  font-size: 14px;
  letter-spacing: .35px;
  text-transform: uppercase;
  font-weight: 900;
  margin: 4px 0 12px;
  color: rgba(31,42,55,.85);
}

.charis-footer-links{
  list-style:none;
  margin: 0;
  padding: 0;
  display:grid;
  gap: 9px;
}

.charis-footer-links a{
  color: rgba(31,42,55,.78);
  font-weight: 750;
  text-decoration:none !important;
}

.charis-footer-links a:hover{
  opacity: .78;
  text-decoration:none !important;
}

.charis-footer-mini{
  margin-top: 16px;
  padding: 14px;
  border-radius: 14px;
  border: 1px solid rgba(31,42,55,.10);
  background: rgba(255,255,255,.60);
}

.charis-footer-mini-title{
  font-weight: 900;
  color: rgba(31,42,55,.85);
  margin-bottom: 6px;
}

.charis-footer-mini-text{
  color: rgba(31,42,55,.70);
  font-size: 14px;
  margin: 0;
}

.charis-footer-cta{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top: 8px;
}

/* Bottom row */
.charis-footer-bottom{
  margin-top: 26px;
  padding-top: 18px;
  border-top: 1px solid rgba(31,42,55,.10);
  display:flex;
  gap: 14px;
  justify-content:space-between;
  align-items:flex-start;
  flex-wrap:wrap;
}

.charis-footer-fineprint{
  color: rgba(31,42,55,.70);
  font-size: 13px;
  font-weight: 650;
}

.charis-footer-legal{
  color: rgba(31,42,55,.70);
  font-size: 13px;
  font-weight: 650;
  display:flex;
  flex-wrap:wrap;
  gap: 10px;
  align-items:center;
}

.charis-footer-legal a{
  color: rgba(31,42,55,.78);
  text-decoration:none !important;
  font-weight: 800;
}

.charis-footer-dot{ opacity:.55; }

/* Mobile */
@media (max-width: 900px){
  .charis-footer{
    padding: 52px 0 22px;
  }
  .charis-footer-grid{
    grid-template-columns: 1fr;
  }
  .charis-footer-cta .charis-btn{
    width: 100%;
  }
}

/* =========================================================
   CHARIS Footer — spacing + width fix (override)
   Paste at VERY bottom of CSS
   ========================================================= */

/* Force footer to actually use full container width */
.charis-footer{
  width: 100%;
}

.charis-footer .charis-container{
  max-width: 1200px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 22px !important;
  padding-right: 22px !important;
}

/* Sometimes themes constrain footer content inside another wrapper */
.charis-footer *{
  box-sizing: border-box;
}

/* Make the grid breathe */
.charis-footer-grid{
  display: grid !important;
  grid-template-columns: 1.4fr 0.8fr 0.9fr 1.0fr !important;
  gap: 34px !important;
  align-items: start !important;
}

/* Improve typography + spacing */
.charis-footer-logo{
  font-size: 28px !important;
  line-height: 1.15 !important;
  margin-bottom: 12px !important;
}

.charis-footer-text{
  font-size: 15.5px !important;
  line-height: 1.65 !important;
  margin-bottom: 16px !important;
}

.charis-footer-title{
  margin: 6px 0 14px !important;
}

.charis-footer-links{
  gap: 10px !important;
}

.charis-footer-links a{
  font-size: 14.5px !important;
}

/* Badges: less cramped */
.charis-footer-badges{
  gap: 10px !important;
  margin-top: 10px !important;
}

.charis-footer-badge{
  padding: 9px 12px !important;
  font-size: 12px !important;
}

/* Buttons: consistent, not squished */
.charis-footer-cta{
  gap: 12px !important;
  margin-top: 10px !important;
}
.charis-footer-cta .charis-btn{
  width: 100%;
  justify-content: center;
}

/* Bottom row: add air */
.charis-footer-bottom{
  margin-top: 34px !important;
  padding-top: 18px !important;
  gap: 14px !important;
}

/* If your theme is shrinking footer columns, this helps */
@media (min-width: 901px){
  .charis-footer-brand{
    padding-right: 10px;
  }
}

/* Tablet + mobile: stack cleanly */
@media (max-width: 1024px){
  .charis-footer-grid{
    grid-template-columns: 1fr 1fr !important;
    gap: 26px !important;
  }
}

@media (max-width: 700px){
  .charis-footer .charis-container{
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  .charis-footer-grid{
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }
  .charis-footer-logo{
    font-size: 26px !important;
  }
}