/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Add your custom styles here */



@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,400;1,9..144,500&family=Jost:wght@300;400;500;600&display=swap');

:root{
  --cream:#F7F2E7;
  --cream-alt:#EEE4D0;
  --paper:#FCFAF4;
  --teal-dark:#0C2C2A;
  --teal:#1B5F57;
  --teal-soft:#8FBBB2;
  --gold:#B3833A;
  --gold-soft:#D9BC7E;
  --charcoal:#211F1A;
  --muted:#69645A;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
/* FIX: hard stop on horizontal scroll */
html, body{overflow-x:hidden; max-width:100%;}
body{
  font-family:'Jost', sans-serif;
  background:var(--cream);
  color:var(--charcoal);
  font-weight:300;
  font-size:17px;
}
h1,h2,h3,h4{
  font-family:'Fraunces', serif;
  color:var(--teal-dark);
  font-weight:500;
  line-height:1.15;
  letter-spacing:-0.01em;
}
body::before{
  content:"";
  position:fixed; inset:0; z-index:9999; pointer-events:none;
  opacity:0.035; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
a{text-decoration:none; color:inherit;}
ul{list-style:none;}
.wrap{max-width:1180px; margin:0 auto; padding:0 32px; width:100%;}
img{max-width:100%; display:block;}
img, svg{max-width:100%;}

/* -------- reveal on scroll -------- */
.reveal{opacity:0; transform:translateY(36px); transition:opacity 0.9s ease, transform 0.9s ease;}
.reveal.in{opacity:1; transform:translateY(0);}
.reveal-delay-1{transition-delay:.12s;}
.reveal-delay-2{transition-delay:.24s;}
.reveal-delay-3{transition-delay:.36s;}

/* -------- eyebrow / heading kit -------- */
.eyebrow{
  font-family:'Jost',sans-serif;
  font-size:14.5px;
  letter-spacing:4px;
  text-transform:uppercase;
  color:var(--gold);
  font-weight:500;
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-bottom:18px;
}
.eyebrow::before{content:"";width:26px; height:1px; background:var(--gold);}
.section-title{
  font-size:clamp(30px,4vw,46px);
  position:relative;
  margin-bottom:8px;
}
.section-title span.accent{
  font-style:italic;
  color:var(--teal);
}
.underline-draw{
  display:block;
  width:74px;
  height:2px;
  background:var(--gold);
  margin:20px 0 26px;
  position:relative;
  overflow:hidden;
}
.underline-draw::after{
  content:"";
  position:absolute; inset:0;
  background:var(--teal-soft);
  transform:translateX(-100%);
  transition:transform 1s ease .3s;
}
.reveal.in .underline-draw::after{transform:translateX(0%);}
.lede{color:var(--muted); font-size:17.5px; line-height:1.85; font-weight:300; max-width:560px;}

/* -------- decorative wave dividers -------- */
.wave{display:block; width:100%; line-height:0;}
.wave svg{width:100%; height:auto;}

/* ================= NAV ================= */
header.nav{
  position:fixed; top:0; left:0; right:0; z-index:1000;
  background:rgba(246,241,231,0.0);
  transition:background .4s ease, box-shadow .4s ease, padding .4s ease;
  padding:26px 0;
}
header.nav.scrolled{
  background:rgba(246,241,231,0.94);
  backdrop-filter:blur(6px);
  box-shadow:0 4px 30px rgba(18,57,55,0.07);
  padding:14px 0;
}
.nav-inner{display:flex; align-items:center; justify-content:space-between;}
.brand{display:flex; align-items:center; gap:2px;}
/* FIX: logo no longer cropped — size by width, contain, no squeeze */
.brand img{
  width:92px; height:auto;
  object-fit:contain; object-position:center;
  overflow:visible;
  transition:width .4s ease;
  filter:drop-shadow(0 2px 5px rgba(18,57,55,0.18));
}
header.nav.scrolled .brand img{width:64px; height:auto;}
.brand .brand-text{font-family:'Fraunces',serif; line-height:1.1;}
.brand .brand-text b{display:block; font-size:23px; letter-spacing:2px; color:var(--teal-dark); font-weight:600;}
.brand .brand-text small{display:block; font-size:17.5px; letter-spacing:2px; color:var(--gold); font-weight:500;}
nav.links{display:flex; gap:38px;}
nav.links a{
  font-size:15.5px; letter-spacing:1px; text-transform:uppercase; font-weight:500;
  color:var(--teal-dark); position:relative; padding:4px 0;
}
nav.links a::after{
  content:""; position:absolute; left:0; bottom:0; width:0; height:1.5px; background:var(--gold);
  transition:width .35s ease;
}
nav.links a:hover::after{width:100%;}
.nav-cta{
  border:1px solid var(--teal-dark); padding:11px 26px; border-radius:30px;
  font-size:14.5px; letter-spacing:1.5px; text-transform:uppercase; font-weight:500;
  transition:all .35s ease; white-space:nowrap;
}
.nav-cta:hover{background:var(--teal-dark) !important; color:var(--paper) !important;}

/* ================= HERO ================= */
.hero{
  position:relative; min-height:100vh; display:flex; align-items:center;
  padding-top:140px; overflow-x:clip;
  background:
    radial-gradient(ellipse 900px 600px at 82% 10%, rgba(199,154,69,0.10), transparent 60%),
    radial-gradient(ellipse 800px 700px at 8% 90%, rgba(31,107,99,0.10), transparent 60%),
    var(--cream);
}
.hero-deco{position:absolute; inset:0; z-index:0; opacity:.5; pointer-events:none; overflow:hidden;}
.hero-deco svg{position:absolute;}
.hero-deco .leaf-a{top:8%; left:-4%; width:260px; animation:float1 13s ease-in-out infinite;}
.hero-deco .leaf-b{top:34%; right:-5%; width:300px; bottom:auto; animation:float2 16s ease-in-out infinite;}
.hero-deco .ring{top:20%; right:12%; width:120px; animation:spin 40s linear infinite;}
@keyframes float1{0%,100%{transform:translateY(0) rotate(0deg);}50%{transform:translateY(-22px) rotate(4deg);}}
@keyframes float2{0%,100%{transform:translateY(0) rotate(0deg);}50%{transform:translateY(18px) rotate(-3deg);}}
@keyframes spin{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}

.hero-inner{position:relative; z-index:2; display:grid; grid-template-columns:1.1fr 0.9fr; gap:60px; align-items:center; width:100%;}
.hero-copy .eyebrow{opacity:0; animation:fadeUp .9s ease .2s forwards;}
.hero-copy h1{font-size:clamp(38px,5vw,62px); opacity:0; animation:fadeUp .9s ease .4s forwards;}
.hero-copy h1 em{font-style:italic; color:var(--teal);}
.hero-copy p{margin-top:24px; font-size:18.5px; line-height:1.9; color:var(--muted); max-width:520px; opacity:0; animation:fadeUp .9s ease .6s forwards;}
.hero-cta-row{display:flex; gap:20px; margin-top:38px; opacity:0; animation:fadeUp .9s ease .8s forwards;}
@keyframes fadeUp{from{opacity:0; transform:translateY(26px);}to{opacity:1; transform:translateY(0);}}

.btn-primary{
  background:var(--teal-dark); color:var(--paper); padding:16px 34px; border-radius:34px;
  font-size:15px; letter-spacing:1.5px; text-transform:uppercase; font-weight:500;
  position:relative; overflow:hidden; transition:transform .35s ease, box-shadow .35s ease;
  box-shadow:0 10px 26px rgba(18,57,55,0.22);
}
.btn-primary::before{
  content:""; position:absolute; top:0; left:-60%; width:50%; height:100%;
  background:linear-gradient(120deg, transparent, rgba(255,255,255,0.35), transparent);
  transform:skewX(-20deg);
}
.btn-primary:hover{transform:translateY(-3px); box-shadow:0 16px 34px rgba(18,57,55,0.3); background:var(--teal-dark) !important; color:var(--paper) !important;}
.btn-primary:hover::before{animation:shimmer 1s ease;}
@keyframes shimmer{to{left:130%;}}
.btn-ghost{
  padding:16px 6px; font-size:15px; letter-spacing:1.5px; text-transform:uppercase; font-weight:500;
  color:var(--teal-dark); display:inline-flex; align-items:center; gap:10px; border-bottom:1px solid transparent;
  transition:gap .35s ease;
}
.btn-ghost:hover{gap:16px; color:var(--teal-dark) !important;}

.hero-portrait{position:relative; display:flex; align-items:center; justify-content:center;}
.hero-portrait .halo{
  position:absolute; width:120%; height:120%; border-radius:50%;
  background:radial-gradient(circle, rgba(199,154,69,0.20), transparent 70%);
  animation:breathe 5s ease-in-out infinite; z-index:0;
}
@keyframes breathe{0%,100%{transform:scale(1); opacity:.7;}50%{transform:scale(1.08); opacity:1;}}
.hero-portrait .frame{
  position:relative; z-index:2; width:100%; max-width:420px; aspect-ratio:4/5; border-radius:14px;
  overflow:hidden; box-shadow:0 40px 80px rgba(18,57,55,0.22);
}
.hero-portrait .frame img{width:100%; height:100%; object-fit:cover; object-position:center 25%;}
.hero-portrait .frame::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(18,57,55,0.06), rgba(18,57,55,0.28));
}
.hero-portrait .ring-deco{
  position:absolute; z-index:1; top:-24px; right:-24px; width:110px; height:110px;
  border:1.5px solid var(--gold-soft); border-radius:50%;
}
/* FIX: badge no longer clips the round logo */
.hero-portrait .badge{
  position:absolute; z-index:3; bottom:-26px; left:-26px; width:118px; height:118px; border-radius:50%;
  background:var(--paper); box-shadow:0 16px 34px rgba(18,57,55,0.2); display:flex; align-items:center; justify-content:center;
  padding:5px; overflow:visible;
}
.hero-portrait .badge img{width:100%; height:100%; object-fit:contain; object-position:center;}
.hero-stats{display:flex; gap:38px; margin-top:56px; padding-top:30px; border-top:1px solid rgba(18,57,55,0.14); opacity:0; animation:fadeUp .9s ease 1s forwards;}
.hero-stats div b{font-family:'Fraunces',serif; font-size:30px; color:var(--teal-dark); display:block;}
.hero-stats div span{font-size:14px; letter-spacing:1px; color:var(--muted);}

/* FIX: hero wave divider blends with the hero's green-tinted bottom */
.hero + .wave{
  background:
    radial-gradient(ellipse 800px 700px at 8% 120%, rgba(31,107,99,0.10), transparent 60%),
    var(--cream) !important;
}

/* ================= ABOUT ================= */
.about{padding:150px 0 130px; background:var(--paper); position:relative; overflow-x:clip;}
/* FIX: align-items start so the photo doesn't shift on Read More */
.about-grid{display:grid; grid-template-columns:0.85fr 1.15fr; gap:70px; align-items:start;}
.about-photo{position:relative;}
.about-photo .frame{
  position:relative; border-radius:6px; overflow:hidden; aspect-ratio:4/5;
  box-shadow:0 30px 60px rgba(18,57,55,0.16);
}
.about-photo .frame img{width:100%; height:100%; object-fit:cover;}
.about-photo .ring-deco{
  position:absolute; bottom:-34px; left:-34px; width:130px; height:130px; z-index:-1;
  border:1.5px solid var(--gold-soft); border-radius:50%;
}
.about-photo .tag{
  position:absolute; bottom:24px; left:24px; background:rgba(246,241,231,0.94);
  padding:14px 22px; border-radius:4px; backdrop-filter:blur(4px);
}
.about-photo .tag b{display:block; font-family:'Fraunces',serif; font-size:21px; color:var(--teal-dark);}
.about-photo .tag span{font-size:13px; letter-spacing:1.5px; text-transform:uppercase; color:var(--gold);}
.about-copy h2{font-size:clamp(30px,4vw,44px);}
.about-copy p{color:var(--muted); font-size:17px; line-height:1.95; margin-bottom:18px; font-weight:300;}
.about-copy blockquote{
  font-family:'Fraunces',serif; font-style:italic; color:var(--teal);
  font-size:23px; border-left:2px solid var(--gold); padding-left:22px; margin:26px 0;
}
.credentials{display:flex; gap:30px; margin-top:30px; flex-wrap:wrap;}
.credentials div{display:flex; align-items:center; gap:10px; font-size:15px; color:var(--teal-dark); font-weight:500;}
.credentials div svg{width:20px; height:20px; flex-shrink:0;}

/* ---- Read More / Read Less ---- */
.read-more-wrap{
  position:relative; overflow:hidden; max-height:78px;
  transition:max-height .6s ease;
}
.read-more-wrap.expanded{max-height:1400px;}
.read-more-wrap::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:56px;
  background:linear-gradient(180deg, transparent, var(--paper));
  transition:opacity .4s ease;
}
.read-more-wrap.expanded::after{opacity:0;}
.read-more-wrap.read-more-dark::after{background:linear-gradient(180deg, transparent, var(--teal-dark));}
.read-more-btn{
  background:none; border:none; cursor:pointer; padding:0; margin:14px 0 22px;
  font-family:'Jost',sans-serif; font-size:14.5px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase;
  color:var(--teal); display:inline-flex; align-items:center; gap:6px; transition:gap .3s ease, color .3s ease;
}
.read-more-btn:hover, .read-more-btn:focus, .read-more-btn:active{
  gap:10px; color:var(--gold); background:none !important; box-shadow:none !important; outline:none;
}
.read-more-btn .rm-arrow{transition:transform .4s ease; font-size:15px;}
.read-more-btn.is-open .rm-arrow{transform:rotate(180deg);}
.read-more-btn-dark{color:var(--gold-soft);}
.read-more-btn-dark:hover, .read-more-btn-dark:focus, .read-more-btn-dark:active{
  color:var(--paper); background:none !important;
}

/* ================= VISION BAND (Purpose / Vision / Mission) ================= */
.vision{
  position:relative; padding:110px 0; background:var(--teal-dark); color:var(--paper); overflow:hidden;
}
.vision::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(circle at 20% 30%, rgba(199,154,69,0.16), transparent 55%),
             radial-gradient(circle at 85% 75%, rgba(143,187,178,0.14), transparent 55%);
}
.vision-inner{position:relative; z-index:2; max-width:820px; margin:0 auto; text-align:center;}
.vision .eyebrow{color:var(--gold-soft); justify-content:center;}
.vision .eyebrow::before{display:none;}
.vision h2{color:var(--paper); font-size:clamp(26px,3.6vw,38px); font-weight:400; line-height:1.5;}
.vision h2 em{font-style:italic; color:var(--gold-soft);}
/* FIX: larger body text for Purpose / Mission */
.vision p.mission, .vision p.purpose-text{color:rgba(251,248,242,0.72); font-size:18.5px; line-height:1.95; font-weight:300; margin-top:18px;}
.vision-block{margin:0 auto;}
.vision-divider{width:60px; height:1px; background:rgba(251,248,242,0.2); margin:56px auto;}

/* ================= VALUES ================= */
.values{padding:150px 0 130px; background:var(--cream); overflow-x:clip;}
.values-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
.value-card{
  background:var(--paper); border:1px solid rgba(12,44,42,0.08); border-radius:6px;
  padding:40px 30px 34px; text-align:left; transition:transform .4s ease, box-shadow .4s ease, border-color .4s ease;
}
.value-card:hover{transform:translateY(-6px); box-shadow:0 28px 54px rgba(12,44,42,0.16); border-color:rgba(179,131,58,0.4);}
.value-card:hover h4{color:var(--gold) !important;}
.value-card:hover .icon-circle{background:rgba(179,131,58,0.1); border-color:rgba(179,131,58,0.4);}
.value-card:hover .icon-circle svg{stroke:var(--gold);}
.value-card .top-row{display:flex; align-items:flex-start; justify-content:flex-start; margin-bottom:22px;}
.value-card .icon-circle{
  width:54px; height:54px; border-radius:50%; flex-shrink:0; background:var(--cream-alt);
  border:1px solid rgba(31,107,99,0.14);
  display:flex; align-items:center; justify-content:center; transition:background .4s ease, border-color .4s ease;
}
.value-card .icon-circle svg{width:26px; height:26px; stroke:var(--teal); fill:none; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; transition:stroke .4s ease;}
.value-card h4{font-size:19.5px; font-weight:700; margin-bottom:10px; transition:color .4s ease;}
.value-card p{font-size:15.5px; line-height:1.7; color:var(--muted); font-weight:300; transition:color .4s ease;}

/* ================= PROMISE ================= */
.promise{padding:120px 0; background:var(--cream-alt); text-align:center;}
.promise-inner{max-width:780px; margin:0 auto;}
.promise .eyebrow{justify-content:center;}
.promise .eyebrow::before{display:none;}
.promise h2{font-size:clamp(24px,3.4vw,36px); font-weight:400; line-height:1.55; color:var(--teal-dark);}
.promise h2 em{font-style:italic; color:var(--teal);}

/* ================= SERVICES ================= */
.services{padding:150px 0 130px; background:var(--cream); position:relative; overflow-x:clip;}
.services-head{max-width:660px; margin:0 auto 64px; text-align:center;}
.services-head .eyebrow{justify-content:center;}
.services-head .eyebrow::before{display:none;}
.services-head .lede{margin:0 auto;}
.services-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
.services-cta-row{grid-column:1 / -1; display:flex; align-items:center; justify-content:center; padding:6px 0;}
.service-card{
  background:var(--paper); border:1px solid rgba(12,44,42,0.08); border-radius:6px;
  padding:40px 30px 34px; position:relative; overflow:hidden;
  transition:border-color .4s ease, transform .4s ease, box-shadow .4s ease;
}
.service-card:hover{transform:translateY(-6px); box-shadow:0 28px 54px rgba(12,44,42,0.16); border-color:rgba(179,131,58,0.4);}
.service-card:hover h4{color:var(--gold) !important;}
.service-card:hover .icon-circle{background:rgba(179,131,58,0.1); border-color:rgba(179,131,58,0.4);}
.service-card:hover .icon-circle svg{stroke:var(--gold);}
.service-card .top-row{display:flex; align-items:flex-start; justify-content:flex-start; margin-bottom:22px;}
.service-card .icon-circle{
  width:54px; height:54px; border-radius:50%; flex-shrink:0; background:var(--cream-alt);
  border:1px solid rgba(31,107,99,0.14);
  display:flex; align-items:center; justify-content:center; transition:background .4s ease, border-color .4s ease;
}
.service-card .icon-circle svg{width:26px; height:26px; stroke:var(--teal); fill:none; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; transition:stroke .4s ease;}
.service-card h4{
  font-size:24px; margin-bottom:12px; transition:color .4s ease; font-weight:700; font-style:italic; line-height:1.35;
}
.service-card h4::before{content:"\201C"; color:var(--gold);}
.service-card h4::after{content:"\201D"; color:var(--gold);}
.service-card .service-tag{
  display:block; font-family:'Jost',sans-serif; font-style:normal; font-size:12.5px; letter-spacing:2px;
  text-transform:uppercase; color:var(--muted); margin-bottom:14px; transition:color .4s ease;
}
.service-card p{font-size:15.5px; line-height:1.75; color:var(--muted); font-weight:300; transition:color .4s ease;}

/* ================= PROGRAMS SHOWCASE ================= */
.programs{padding:150px 0 130px; background:var(--paper); overflow-x:clip;}
.programs-head{text-align:center; max-width:640px; margin:0 auto 70px;}
.programs-head .eyebrow{justify-content:center;}
.programs-head .eyebrow::before{display:none;}
.program-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:34px;}
.program-card{
  position:relative; border-radius:8px; overflow:hidden; aspect-ratio:3/4;
  box-shadow:0 20px 50px rgba(18,57,55,0.14);
}
.program-card img{width:100%; height:100%; object-fit:cover; transition:transform .8s ease;}
.program-card:hover img{transform:scale(1.08);}
.program-card .overlay{
  position:absolute; inset:0;
  background:linear-gradient(0deg, rgba(18,57,55,0.92) 8%, rgba(18,57,55,0.15) 55%, rgba(18,57,55,0.05) 100%);
}
.program-card .text{position:absolute; left:0; right:0; bottom:0; padding:30px 26px;}
.program-card .text span{font-size:13px; letter-spacing:2.5px; text-transform:uppercase; color:var(--gold-soft); font-weight:500;}
.program-card .text h4{color:var(--paper); font-size:24px; margin:8px 0 10px; font-weight:500;}
.program-card .text p{color:rgba(251,248,242,0.72); font-size:15px; line-height:1.7; max-height:0; opacity:0; overflow:hidden; transition:max-height .5s ease, opacity .5s ease;}
.program-card:hover .text p{max-height:120px; opacity:1;}

/* ================= TESTIMONIAL ================= */
.testimonial{
  position:relative; padding:150px 0; text-align:center; overflow:hidden;
  background:var(--teal-dark);
}
.testimonial-bg{position:absolute; inset:0; z-index:0;}
.testimonial-bg img{width:100%; height:100%; object-fit:cover; opacity:0.32;}
.testimonial-bg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(18,57,55,0.88), rgba(18,57,55,0.72));
}
.testimonial-inner{position:relative; z-index:2; max-width:740px; margin:0 auto; background:rgba(251,248,242,0.08); backdrop-filter:blur(2px); border:1px solid rgba(251,248,242,0.18); border-radius:14px; padding:56px 46px;}
.testimonial-slides{position:relative; min-height:220px;}
.t-slide{
  position:absolute; inset:0; opacity:0; pointer-events:none;
  transition:opacity .7s ease;
}
.t-slide.active{opacity:1; pointer-events:auto; position:relative;}
.testimonial blockquote{
  font-family:'Fraunces',serif; font-style:italic; font-size:clamp(22px,3vw,30px);
  color:var(--paper); line-height:1.6;
}
.testimonial .stars{color:var(--gold-soft); font-size:19.5px; letter-spacing:4px; margin-bottom:22px;}
.testimonial cite{display:block; margin-top:24px; font-style:normal; font-size:15px; letter-spacing:1px; color:rgba(251,248,242,0.65);}
.t-dots{display:flex; justify-content:center; gap:10px; margin-top:36px;}
.t-dots button{
  width:9px; height:9px; border-radius:50%; border:none; background:rgba(251,248,242,0.35);
  cursor:pointer; padding:0; transition:background .3s ease, transform .3s ease;
}
.t-dots button.active{background:var(--gold-soft); transform:scale(1.25);}

/* ================= CONTACT ================= */
.contact{padding:150px 0 130px; background:var(--teal-dark); color:var(--paper); position:relative; overflow:hidden;}
.contact::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(circle at 90% 10%, rgba(199,154,69,0.14), transparent 50%);
}
.contact-grid{position:relative; z-index:2; display:grid; grid-template-columns:0.9fr 1.1fr; gap:70px;}
.contact-info .eyebrow{color:var(--gold-soft);}
.contact-info h2{color:var(--paper); font-size:clamp(28px,4vw,42px);}
.contact-info p{color:rgba(251,248,242,0.7); margin:22px 0 34px; font-size:16.5px; line-height:1.9; font-weight:300;}
.contact-detail{display:flex; align-items:center; gap:14px; margin-bottom:20px; font-size:16px;}
.contact-detail svg{width:20px; height:20px; stroke:var(--gold-soft); flex-shrink:0;}
.social-row{display:flex; gap:14px; margin-top:34px;}
.social-row a{
  width:42px; height:42px; border:1px solid rgba(251,248,242,0.3); border-radius:50%;
  display:flex; align-items:center; justify-content:center; transition:all .35s ease;
}
.social-row a:hover{background:var(--gold); border-color:var(--gold);}
.social-row svg{width:16px; height:16px; stroke:var(--paper);}

/* FIX: form smaller + single clean surface */
.contact-form{background:var(--paper); border-radius:14px; padding:34px; box-shadow:0 24px 60px rgba(0,0,0,0.30);}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:14px;}
.contact-form label{font-size:13.5px; letter-spacing:1.5px; text-transform:uppercase; color:var(--muted); font-weight:500; display:block; margin-bottom:6px;}
.contact-form input, .contact-form textarea, .contact-form select{
  width:100%; border:none; border-bottom:1.5px solid rgba(18,57,55,0.18); background:transparent;
  padding:8px 2px; font-family:'Jost',sans-serif; font-size:15px; color:var(--charcoal);
  transition:border-color .3s ease;
}
.contact-form input:focus, .contact-form textarea:focus, .contact-form select:focus{outline:none; border-color:var(--gold);}
.contact-form textarea{resize:vertical; min-height:100px;}
/* FIX: textarea fixed height so the form isn't so tall */
textarea.wpcf7-form-control.wpcf7-textarea{height:100px; min-height:100px;}
.full-row{margin-bottom:14px;}
.submit-btn{
  width:100%; margin-top:4px; background:var(--teal-dark); color:var(--paper); border:none;
  padding:14px; border-radius:30px; font-size:15px; letter-spacing:2px; text-transform:uppercase;
  font-weight:500; cursor:pointer; transition:all .35s ease;
}
.submit-btn:hover{background:var(--gold); transform:translateY(-2px);}

/* ---- Contact Form 7 overrides (CF7 wraps every field in its own span) ---- */
.contact-form .wpcf7-form-control-wrap{display:block; width:100%;}
.contact-form .wpcf7-form-control{width:100%;}
.contact-form .wpcf7-form-control-wrap.your-service{position:relative;}
.contact-form select.wpcf7-form-control{
  appearance:none; -webkit-appearance:none; -moz-appearance:none;
  padding-right:22px; background:transparent;
}
.contact-form .wpcf7-form-control-wrap.your-service::after{
  content:""; position:absolute; right:3px; top:46%; width:7px; height:7px;
  border-right:1.6px solid var(--muted); border-bottom:1.6px solid var(--muted);
  transform:translateY(-50%) rotate(45deg); pointer-events:none;
}
.contact-form .wpcf7-not-valid-tip{
  font-size:13.5px; color:#B23A3A; margin-top:6px; font-weight:400; text-transform:none; letter-spacing:0;
}
.contact-form .wpcf7-response-output{
  margin-top:18px; border-radius:8px; padding:14px 18px; font-size:15.5px; border:1px solid rgba(18,57,55,0.15);
}
.contact-form form.sent .wpcf7-response-output{border-color:var(--teal); color:var(--teal-dark);}
.contact-form form.invalid .wpcf7-response-output,
.contact-form form.failed .wpcf7-response-output{border-color:#B23A3A; color:#B23A3A;}
.contact-form .wpcf7-spinner{margin-left:12px;}
/* FIX: kill the inner "second background" — CF7 box inside the card */
.contact-form .wpcf7,
.contact-form .wpcf7 form,
.contact-form form.wpcf7-form,
.contact-form .wpcf7-form > *{
  background:transparent !important;
  box-shadow:none !important;
  border:none !important;
  padding:0 !important;
  margin:0;
}
/* Force the submit button to keep its solid background — some themes strip
   background off input[type=submit] by default, hence the !important here */
.contact-form input.submit-btn,
.contact-form input[type="submit"].submit-btn{
  appearance:none; -webkit-appearance:none; -moz-appearance:none;
  background:var(--teal-dark) !important;
  color:var(--paper) !important;
  border:none !important;
  box-shadow:none;
}
.contact-form input.submit-btn:hover,
.contact-form input[type="submit"].submit-btn:hover{
  background:var(--gold) !important;
  color:var(--teal-dark) !important;
}

/* ================= FOOTER ================= */
.footer-wave{display:block; width:100%; line-height:0; background:var(--teal-dark);}
.footer-wave svg{width:100%; height:auto; display:block;}
footer{background:var(--teal-dark); padding:56px 0 34px;}
.footer-top{
  display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:32px;
  padding-bottom:34px; border-bottom:1px solid rgba(251,248,242,0.14);
}
.footer-brand{display:flex; align-items:center; gap:2px;}
/* FIX: footer logo no longer cropped */
.footer-brand img{width:66px; height:auto; object-fit:contain; object-position:center; overflow:visible; filter:drop-shadow(0 2px 5px rgba(0,0,0,0.25));}
.footer-brand .brand-text b{display:block; font-size:20px; letter-spacing:2px; color:var(--paper); font-weight:600; font-family:'Fraunces',serif;}
.footer-brand .brand-text small{display:block; font-size:11.5px; letter-spacing:3px; color:var(--gold-soft); font-weight:500; margin-top:2px;}
.footer-tagline{color:rgba(251,248,242,0.6); font-size:15.5px; max-width:280px; line-height:1.7; margin-top:14px;}
.footer-links{display:flex; gap:42px; flex-wrap:wrap;}
.footer-links-col h5{
  color:var(--gold-soft); font-size:13px; letter-spacing:2px; text-transform:uppercase; font-weight:600; margin-bottom:16px;
}
.footer-links-col a{
  display:block; color:rgba(251,248,242,0.72); font-size:15.5px; margin-bottom:10px; transition:color .3s ease, padding-left .3s ease;
}
.footer-links-col a:hover{color:var(--gold-soft); padding-left:4px;}
.footer-social{display:flex; gap:12px;}
.footer-social a{
  width:36px; height:36px; border:1px solid rgba(251,248,242,0.25); border-radius:50%;
  display:flex; align-items:center; justify-content:center; transition:all .3s ease;
}
.footer-social a:hover{background:var(--gold-soft); border-color:var(--gold-soft);}
.footer-social svg{width:14px; height:14px; stroke:var(--paper);}
.footer-bottom{
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; padding-top:26px;
}
.footer-bottom p{color:rgba(251,248,242,0.45); font-size:14px;}
.footer-bottom .footer-legal{display:flex; gap:20px;}
.footer-bottom .footer-legal a{color:rgba(251,248,242,0.45); font-size:14px; transition:color .3s ease;}
.footer-bottom .footer-legal a:hover{color:var(--gold-soft);}

@media(max-width:900px){
  nav.links{display:none;}
  .hero-inner, .about-grid, .contact-grid{grid-template-columns:1fr;}
  .hero-portrait{order:-1; margin-bottom:20px;}
  .services-grid{grid-template-columns:repeat(2,1fr);}
  .values-grid{grid-template-columns:repeat(2,1fr);}
  .program-cards{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
  .footer-top{flex-direction:column;}
  .footer-links{gap:28px;}
  .footer-bottom{flex-direction:column; align-items:flex-start;}
}

@media(max-width:600px){
  .wrap{padding:0 18px;}
.hero {
    padding-top: 120px;
}
  /* ---- NAV: fix logo + wordmark + CTA collision ----
     The nav links are already hidden below 900px. On phones the wordmark
     and the CTA button were overlapping, so keep the brand compact and
     let the CTA sit to the right without crowding it. */
  .nav-inner{gap:10px; flex-wrap:nowrap;}
  .brand{gap:2px; min-width:0; flex-shrink:1;}
  .brand img{width:46px;}
  header.nav.scrolled .brand img{width:40px;}
  .brand .brand-text{min-width:0;}
  .brand .brand-text b{font-size:15px; letter-spacing:1px; white-space:nowrap;}
  .brand .brand-text small{font-size:9.5px; letter-spacing:1px; white-space:nowrap;}
  .nav-cta{padding:9px 14px; font-size:10.5px; white-space:nowrap; flex-shrink:0;}
  header.nav{padding:14px 0;}

  /* ---- GRIDS: collapse to a SINGLE column on phones ----
     This is the real cause of the horizontal scroll + cut-off cards.
     Two cards side by side don't fit a phone, so the right card was
     sliced by the screen edge. */
  .values-grid{grid-template-columns:1fr; gap:18px;}
  .services-grid{grid-template-columns:1fr; gap:18px;}
  .program-cards{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}

  /* Card padding trimmed so single-column cards aren't oversized */
  .value-card, .service-card{padding:32px 26px 28px;}

  /* Section vertical padding reduced so the page isn't endlessly tall */
  .about, .values, .services, .programs, .contact{padding:90px 0 80px;}
  .vision, .testimonial{padding:80px 0;}

  /* ---- HERO decorative graphics pulled in (h-scroll safety) ---- */
  .hero-deco .leaf-a{left:-8%; width:90px; opacity:.6;}
  .hero-deco .leaf-b{right:-8%; width:100px;}
  .hero-deco .ring{right:4%; width:60px;}

  /* ---- HERO portrait decorations that overhang the card edges ---- */
  .hero-portrait{max-width:100%;}
  .hero-portrait .frame{max-width:100%;}
  .hero-portrait .ring-deco{top:-14px; right:-8px; width:70px; height:70px;}
  .hero-portrait .badge{bottom:-16px; left:-8px; width:88px; height:88px;}
  .hero-copy h1{font-size:clamp(30px,8vw,40px);}
  .hero-stats{gap:22px; flex-wrap:wrap;}

  /* ---- ABOUT photo ring overhang ---- */
  .about-photo .ring-deco{left:-14px; bottom:-14px; width:90px; height:90px;}

  /* ---- Inner cards padding so they don't overflow ---- */
  .testimonial-inner{padding:36px 22px;}
  .contact-form{padding:24px;}
  .contact-grid{gap:40px;}
}

@media(max-width:380px){
  /* Drop the wordmark tagline so the brand + CTA never collide */
  .brand .brand-text b{font-size:10px;}
  .nav-cta{padding:8px 12px; font-size:10px;}
  /* remove the ring that hangs off the right on tiny screens */
  .hero-portrait .ring-deco{display:none;}
  .hero-stats{gap:18px;}
}