:root{
  --coral: #D86D62;
  --coral-dark: #B84E44;
  --turquoise: #5AA8B2;
  --turquoise-dark: #3D7D86;
  --lime: #C7CB4A;
  --dark: #201D1B;
  --dark-soft: #3A3532;
  --white: #FFFFFF;
  --text: #2E2A27;
  --text-soft: #6B6560;
  --line: #EAE5DE;
  --sans: "Nunito", Arial, sans-serif;
  --display: "Baloo 2", "Nunito", sans-serif;
  --ease: cubic-bezier(.16,.8,.24,1);
}
*,*::before,*::after{box-sizing:border-box;}
body{margin:0;font-family:var(--sans);color:var(--text);background:var(--white);-webkit-font-smoothing:antialiased;overflow-x:hidden;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3{font-family:var(--display);font-weight:700;margin:0;color:var(--dark);}
p{margin:0 0 1em;line-height:1.65;color:var(--text-soft);}

.eyebrow{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--coral-dark);font-weight:700;margin:0 0 .7em;}
.eyebrow--light{color:#FFD9CF;}
.h2{font-size:clamp(1.7rem,3.2vw,2.4rem);line-height:1.15;}
.h2--light{color:var(--white);}

.btn{display:inline-block;padding:.9em 1.9em;font-family:var(--sans);font-size:.95rem;font-weight:700;border-radius:30px;border:2px solid transparent;transition:transform .3s var(--ease);}
.btn:hover{transform:translateY(-2px);}
.btn--coral{background:var(--coral);color:var(--white);}
.btn--coral:hover{background:var(--coral-dark);}
.btn--ghost{border-color:rgba(255,255,255,.65);color:var(--white);}
.btn--ghost:hover{background:rgba(255,255,255,.12);}

.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease),transform .8s var(--ease);}
.reveal.in{opacity:1;transform:translateY(0);}

.nav{position:fixed;top:0;left:0;right:0;z-index:500;display:flex;align-items:center;justify-content:space-between;padding:.9em 4%;transition:background .35s,padding .35s,box-shadow .35s;}
.nav.scrolled{background:rgba(255,255,255,.95);backdrop-filter:blur(10px);padding:.55em 4%;box-shadow:0 1px 0 var(--line);}
.nav-logo{height:50px;width:auto;transition:height .35s;}
.nav.scrolled .nav-logo{height:40px;}
.nav-links{display:flex;align-items:center;gap:1.8em;}
.nav-links a{font-size:.9rem;font-weight:600;color:var(--white);}
.nav.scrolled .nav-links a{color:var(--dark);}
.nav-cta{background:var(--coral);color:var(--white) !important;padding:.6em 1.3em;border-radius:24px;font-size:.85rem !important;}
.nav-cta:hover{background:var(--coral-dark);}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px;}
.nav-toggle span{width:24px;height:2px;background:var(--white);border-radius:2px;transition:background .3s;}
.nav.scrolled .nav-toggle span{background:var(--dark);}

.hero{position:relative;min-height:92vh;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.06);animation:heroZoom 16s ease-out forwards;}
@keyframes heroZoom{to{transform:scale(1);}}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg, rgba(32,25,22,.6) 0%, rgba(184,78,68,.45) 100%);}
.hero-content{position:relative;z-index:2;text-align:center;max-width:760px;padding:0 6%;}
.hero-title{font-size:clamp(2.2rem,5.6vw,3.6rem);color:var(--white);line-height:1.12;margin-bottom:.5em;}
.hero-sub{color:rgba(255,255,255,.92);font-size:1.05rem;max-width:520px;margin:0 auto 1.7em;}
.hero-actions{display:flex;gap:1em;justify-content:center;flex-wrap:wrap;}

.section-head{text-align:center;max-width:600px;margin:0 auto 3em;padding:0 6%;}

.pillars-section{padding:5.5em 6%;max-width:1100px;margin:0 auto;}
.pillars-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6em;}
.pillar-card{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:2em 1.6em;text-align:center;box-shadow:0 4px 18px rgba(32,25,22,.05);}
.pillar-icon{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin:0 auto .9em;}
.pillar-icon--coral{background:#FBE4E0;}
.pillar-icon--turquoise{background:#DCEEF0;}
.pillar-icon--lime{background:#F1F3D2;}
.pillar-card h3{font-size:1.15rem;margin-bottom:.5em;}
.pillar-card p{font-size:.9rem;margin:0;}

.services{padding:5.5em 6%;background:#FBF8F4;}
.service-grid{max-width:900px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:1.4em;}
.service-card{background:var(--white);border-radius:16px;overflow:hidden;box-shadow:0 4px 18px rgba(32,25,22,.06);transition:transform .35s var(--ease);}
.service-card:hover{transform:translateY(-4px);}
.service-img{aspect-ratio:1/1;overflow:hidden;}
.service-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
.service-card:hover .service-img img{transform:scale(1.06);}
.service-body{padding:1.3em 1.2em;}
.service-body h3{font-size:1.05rem;margin-bottom:.4em;}
.service-body p{font-size:.85rem;margin:0;}
.service-card--solid{position:relative;display:flex;align-items:flex-end;overflow:hidden;}
.service-card--solid .service-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.service-card--solid .service-overlay{position:absolute;inset:0;background:linear-gradient(180deg, rgba(20,60,65,.15) 0%, rgba(20,60,65,.85) 78%);}
.service-card--solid .service-body{position:relative;z-index:1;}
.service-card--solid .service-body h3{color:var(--white);}
.service-card--solid .service-body p{color:rgba(255,255,255,.9);}

.testimonials{padding:5.5em 6%;}
.t-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:1.4em;}
.t-card{border:1px solid var(--line);border-radius:16px;padding:2.4em 1.4em 1.6em;position:relative;text-align:center;}
.t-avatar{width:56px;height:56px;border-radius:50%;position:absolute;top:-28px;left:50%;transform:translateX(-50%);background:var(--coral);color:var(--white);display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:700;font-size:1.05rem;box-shadow:0 4px 12px rgba(0,0,0,.15);}
.t-name{font-weight:700;color:var(--dark);font-size:.92rem;margin-bottom:.7em;}
.t-quote{font-size:.85rem;font-style:italic;line-height:1.55;}
.t-stars{color:var(--coral);letter-spacing:.1em;margin-top:.8em;font-size:.85rem;}

.faq{padding:5.5em 6%;background:#FBF8F4;}
.faq-list{max-width:680px;margin:0 auto;}
.faq-item{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:1.1em 1.3em;margin-bottom:.8em;}
.faq-item summary{font-family:var(--display);font-weight:600;font-size:1rem;color:var(--dark);cursor:pointer;list-style:none;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+";float:right;color:var(--coral);font-size:1.3rem;}
.faq-item[open] summary::after{content:"−";}
.faq-item p{margin-top:.9em;font-size:.9rem;}

.contact{position:relative;background:linear-gradient(150deg, var(--dark), var(--coral-dark));padding:6em 6%;text-align:center;}
.contact-logo{height:60px;width:auto;margin:0 auto 1.4em;filter:brightness(0) invert(1);}
.contact-sub{color:rgba(255,255,255,.85);max-width:440px;margin:1em auto 1.6em;}
.contact-extra{margin-top:1.3em;color:rgba(255,255,255,.8);font-size:.9rem;}
.contact-extra a{color:#FFD9CF;}
.contact-extra span{margin:0 .5em;opacity:.5;}
.contact-links{margin-top:1.2em;color:rgba(255,255,255,.7);font-size:.88rem;}
.contact-links a{color:#FFD9CF;}
.contact-links span{margin:0 .5em;opacity:.5;}

.footer{background:var(--dark);padding:2.4em 6%;text-align:center;}
.footer-logo{height:34px;width:auto;filter:brightness(0) invert(1);opacity:.75;margin:0 auto 1em;}
.footer p{color:#9C948D;font-size:.78rem;margin:0;}

@media (max-width:980px){
  .service-grid{grid-template-columns:repeat(2,1fr);}
  .t-grid{grid-template-columns:repeat(2,1fr);row-gap:2.6em;}
  .pillars-grid{grid-template-columns:1fr;}
}
@media (max-width:720px){
  .nav-links{position:fixed;top:0;right:0;height:100vh;width:78%;max-width:300px;background:var(--dark);flex-direction:column;justify-content:center;align-items:flex-start;padding:2em 2.2em;gap:1.5em;transform:translateX(100%);transition:transform .4s var(--ease);}
  .nav-links.open{transform:translateX(0);}
  .nav-links a{color:var(--white) !important;font-size:1.05rem;}
  .nav-toggle{display:flex;}
  .service-grid{grid-template-columns:1fr;}
  .t-grid{grid-template-columns:1fr;}
  .hero-actions{flex-direction:column;max-width:280px;margin:0 auto;}
  .hero-actions .btn{width:100%;text-align:center;}
}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.01ms !important;transition-duration:.01ms !important;}
}
