:root{
  --teal-deep:#1E4B45;
  --teal-mid:#2F6B60;
  --teal-pale:#E4EEEA;
  --ivory:#FAF7F1;
  --ink:#1C2624;
  --gold:#CE9B3F;
  --gold-dark:#B0812E;
  --line:rgba(28,38,36,0.09);
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }

body{
  font-family:'Lato', sans-serif;
  font-weight:400;
  color:var(--ink);
  line-height:1.65;
  background-color:var(--ivory);
}

h1,h2,h3,h4{
  font-family:'Poppins', sans-serif;
  font-weight:600;
  color:var(--teal-deep);
}

a{ text-decoration:none; color:inherit; }
button{ font-family:'Lato', sans-serif; cursor:pointer; border:none; }
img{ display:block; max-width:100%; }

a:focus-visible, button:focus-visible{
  outline:3px solid var(--teal-mid);
  outline-offset:3px;
}

@media (prefers-reduced-motion: reduce){
  *{ transition:none !important; animation:none !important; }
}

.container{ max-width:1140px; margin:0 auto; padding:0 2rem; }

/* ---------- shared eyebrow / heading pattern ---------- */
.eyebrow{
  display:block;
  text-align:center;
  text-transform:uppercase;
  letter-spacing:0.14em;
  font-size:0.78rem;
  font-weight:700;
  color:var(--gold-dark);
  margin-bottom:0.75rem;
}
.section-heading{
  text-align:center;
  font-size:2.1rem;
  margin-bottom:1rem;
  position:relative;
}
.section-heading::after{
  content:"";
  display:block;
  width:56px;
  height:3px;
  border-radius:2px;
  background:linear-gradient(90deg, var(--gold), var(--teal-mid));
  margin:1.1rem auto 0;
}
.section-sub{
  text-align:center;
  max-width:640px;
  margin:0 auto 3rem;
  color:var(--ink);
  opacity:0.75;
  font-size:1.05rem;
}

/* ---------- NAV ---------- */
nav{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:1.3rem 2rem;
  background-color:#ffffff;
  box-shadow:0 2px 10px rgba(30,75,69,0.06);
  position:sticky;
  top:0;
  z-index:100;
}
.logo{
  font-family:'Poppins', sans-serif;
  font-weight:700;
  font-size:1.25rem;
  color:var(--teal-deep);
  transition:opacity 0.2s ease;
}
.logo:hover{ opacity:0.75; }
.nav-links{ display:flex; align-items:center; gap:2.25rem; list-style:none; }
.nav-links a{
  font-size:0.95rem;
  color:var(--ink);
  position:relative;
  padding-bottom:4px;
  transition:color 0.25s ease;
}
.nav-links a::after{
  content:"";
  position:absolute;
  left:0; bottom:0;
  width:0%; height:2px;
  background-color:var(--gold);
  transition:width 0.25s ease;
}
.nav-links a:hover{ color:var(--teal-mid); }
.nav-links a:hover::after{ width:100%; }
.nav-links a.current{ color:var(--teal-deep); font-weight:700; }
.nav-links a.current::after{ width:100%; background-color:var(--teal-mid); }
.nav-cta{
  background-color:var(--teal-deep);
  color:#fff !important;
  padding:0.6rem 1.3rem !important;
  border-radius:999px;
  font-weight:700 !important;
  font-size:0.88rem !important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1.2;
}
.nav-cta::after{ display:none; }
.nav-cta:hover{ background-color:var(--teal-mid); color:#fff !important; }
.nav-toggle{ display:none; }

/* ---------- HERO ---------- */
.hero{
  background:
    radial-gradient(ellipse at top right, rgba(206,155,63,0.12), transparent 55%),
    radial-gradient(ellipse at bottom left, rgba(30,75,69,0.06), transparent 60%),
    var(--ivory);
  padding:6rem 2rem 5rem;
  text-align:center;
}
.hero-inner{ max-width:780px; margin:0 auto; }
.hero .eyebrow{ color:var(--teal-mid); }
.hero h1{
  font-size:clamp(2rem, 4vw, 3rem);
  line-height:1.22;
  margin-bottom:1.25rem;
  letter-spacing:-0.01em;
}
.hero h1 em{ font-style:normal; color:var(--gold-dark); }
.hero p{
  font-size:1.15rem;
  font-weight:300;
  opacity:0.85;
  margin-bottom:2.25rem;
  max-width:560px;
  margin-left:auto; margin-right:auto;
}
.hero-actions{ display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }

.page-hero{
  background-color:var(--teal-deep);
  color:var(--ivory);
  text-align:center;
  padding:4.5rem 2rem 3.5rem;
}
.page-hero .eyebrow{ color:#cfe4de; }
.page-hero h1{ color:#fff; font-size:clamp(1.9rem, 3.6vw, 2.6rem); }
.page-hero p{ opacity:0.85; max-width:600px; margin:0.9rem auto 0; }

/* ---------- BUTTONS ---------- */
.btn-primary{
  display:inline-block;
  background-color:var(--gold);
  color:var(--teal-deep);
  font-weight:700;
  font-size:1rem;
  padding:1rem 2.4rem;
  border-radius:999px;
  transition:background-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
  box-shadow:0 6px 18px rgba(206,155,63,0.3);
}
.btn-primary:hover{
  background-color:var(--gold-dark);
  transform:translateY(-2px);
  box-shadow:0 10px 22px rgba(206,155,63,0.4);
}
.btn-secondary{
  display:inline-block;
  background-color:transparent;
  color:var(--teal-deep);
  font-weight:700;
  font-size:1rem;
  padding:1rem 2.2rem;
  border-radius:999px;
  border:2px solid var(--teal-deep);
  transition:background-color 0.25s ease, color 0.25s ease;
}
.btn-secondary:hover{ background-color:var(--teal-deep); color:#fff; }
.page-hero .btn-secondary{ color:#fff; border-color:#fff; }
.page-hero .btn-secondary:hover{ background-color:#fff; color:var(--teal-deep); }

/* ---------- VALUE PROP ---------- */
.value-prop{ padding:4.5rem 2rem; }
.value-prop-inner{
  max-width:900px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:3rem;
  align-items:center;
}
.value-prop p{ font-size:1.08rem; line-height:1.85; }
.value-prop-checks{ list-style:none; }
.value-prop-checks li{
  display:flex;
  gap:0.75rem;
  align-items:flex-start;
  margin-bottom:0.9rem;
  font-size:1.02rem;
}
.value-prop-checks li::before{
  content:"\2713";
  flex-shrink:0;
  width:22px; height:22px;
  border-radius:50%;
  background-color:var(--teal-pale);
  color:var(--teal-deep);
  font-size:0.75rem;
  display:flex; align-items:center; justify-content:center;
  margin-top:2px;
}

/* ---------- WHY CHOOSE US / GRID CARDS ---------- */
.why-choose-us{
  background-color:#ffffff;
  padding:5rem 2rem;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.card-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:2rem;
  max-width:1140px;
  margin:0 auto;
}
.card-grid.cols-2{ grid-template-columns:repeat(2,1fr); }
.info-card{
  text-align:center;
  padding:2.25rem 1.75rem;
  border-radius:16px;
  background-color:var(--ivory);
  transition:transform 0.3s ease, box-shadow 0.3s ease;
}
.info-card:hover{ transform:translateY(-6px); box-shadow:0 14px 30px rgba(30,75,69,0.1); }
.info-icon{
  width:54px; height:54px;
  margin:0 auto 1.25rem;
  border-radius:50%;
  background-color:var(--teal-pale);
  display:flex; align-items:center; justify-content:center;
  font-size:1.4rem;
}
.info-card h3{ font-size:1.2rem; margin-bottom:0.6rem; }
.info-card p{ font-size:0.97rem; opacity:0.8; }

/* ---------- SERVICES ---------- */
.services{ padding:5rem 2rem; }
.service-card{
  position:relative;
  background-color:#ffffff;
  padding:2.25rem;
  border-radius:12px;
  border-left:4px solid var(--teal-mid);
  box-shadow:0 4px 16px rgba(30,75,69,0.05);
  transition:transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.service-card:hover{
  transform:translateY(-4px);
  box-shadow:0 14px 28px rgba(30,75,69,0.1);
  border-color:var(--gold-dark);
}
.service-card.featured{ border-left-color:var(--gold); background-color:#fffdf8; }
.badge{
  display:inline-block;
  background-color:var(--gold);
  color:var(--teal-deep);
  font-size:0.7rem;
  font-weight:700;
  letter-spacing:0.06em;
  text-transform:uppercase;
  padding:0.3rem 0.7rem;
  border-radius:999px;
  margin-bottom:0.9rem;
}
.service-card h3{ font-size:1.25rem; margin-bottom:0.6rem; }
.service-card p{ font-size:0.97rem; opacity:0.82; }

/* Numbered pillar rows, used on Services & About */
.pillar{
  display:grid;
  grid-template-columns:110px 1fr;
  gap:2rem;
  padding:3rem 0;
  border-bottom:1px solid var(--line);
  max-width:900px;
  margin:0 auto;
}
.pillar:last-child{ border-bottom:none; }
.pillar-num{
  font-family:'Poppins', sans-serif;
  font-weight:700;
  font-size:2.4rem;
  color:var(--teal-pale);
  -webkit-text-stroke:1.5px var(--teal-mid);
  line-height:1;
}
.pillar h3{ font-size:1.35rem; margin-bottom:0.5rem; }
.pillar .pillar-sub{ color:var(--gold-dark); font-weight:700; font-size:0.9rem; margin-bottom:0.8rem; }
.pillar ul{ margin:0.8rem 0 0 1.1rem; font-size:0.98rem; opacity:0.85; }
.pillar li{ margin-bottom:0.4rem; }

/* ---------- STATS STRIP ---------- */
.stats{
  background-color:var(--teal-deep);
  color:#fff;
  padding:3rem 2rem;
}
.stats-grid{
  max-width:1140px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:2rem;
  text-align:center;
}
.stats-grid .num{
  font-family:'Poppins', sans-serif;
  font-weight:700;
  font-size:2.2rem;
  color:var(--gold);
}
.stats-grid .label{ font-size:0.9rem; opacity:0.85; margin-top:0.3rem; }

/* ---------- TESTIMONIALS ---------- */
.testimonials{ background-color:var(--teal-pale); padding:5rem 2rem; }
.testimonial-grid{
  max-width:1140px; margin:0 auto;
  display:grid; grid-template-columns:1fr 1fr; gap:2rem;
}
.testimonial-card{
  background-color:#fff;
  padding:2.25rem;
  border-radius:14px;
  box-shadow:0 4px 16px rgba(30,75,69,0.06);
}
.testimonial-card p{ font-style:italic; opacity:0.85; margin-bottom:1.2rem; }
.testimonial-card .name{ font-weight:700; color:var(--teal-deep); font-style:normal; }

/* ---------- FAQ ---------- */
.faq{ padding:5rem 2rem; max-width:800px; margin:0 auto; }
.faq-item{ border-bottom:1px solid var(--line); padding:1.5rem 0; }
.faq-item h3{ font-size:1.1rem; margin-bottom:0.6rem; }
.faq-item p{ opacity:0.8; font-size:0.98rem; }

/* ---------- CTA BANNER ---------- */
.cta-banner{
  background-color:var(--teal-deep);
  color:var(--ivory);
  text-align:center;
  padding:5rem 2rem;
}
.cta-banner h2{ color:var(--ivory); font-size:1.85rem; max-width:640px; margin:0 auto 1.75rem; line-height:1.35; }
.cta-banner .btn-primary{ box-shadow:0 6px 18px rgba(0,0,0,0.2); }

/* ---------- CONTACT PAGE ---------- */
.contact-wrap{
  max-width:1000px; margin:0 auto; padding:4.5rem 2rem 5.5rem;
  display:grid; grid-template-columns:1fr 1fr; gap:3rem;
}
.contact-info h3{ font-size:1.15rem; margin:1.6rem 0 0.4rem; }
.contact-info h3:first-child{ margin-top:0; }
.contact-info p{ opacity:0.85; }
.contact-form{ display:flex; flex-direction:column; gap:1.1rem; }
.contact-form label{ font-size:0.9rem; font-weight:700; color:var(--teal-deep); margin-bottom:0.35rem; display:block; }
.contact-form input, .contact-form textarea{
  width:100%;
  font-family:'Lato', sans-serif;
  font-size:1rem;
  padding:0.85rem 1rem;
  border:1px solid var(--line);
  border-radius:8px;
  background-color:#fff;
  color:var(--ink);
}
.contact-form input:focus, .contact-form textarea:focus{
  outline:none;
  border-color:var(--teal-mid);
  box-shadow:0 0 0 3px rgba(47,107,96,0.15);
}
.contact-form textarea{ resize:vertical; min-height:130px; }
.map-embed{
  margin-top:2rem;
  height:260px;
  border-radius:12px;
  overflow:hidden;
  border:1px solid var(--line);
  box-shadow:0 6px 18px rgba(30,75,69,0.08);
}

/* ---------- FOOTER ---------- */
footer{
  background-color:var(--teal-deep);
  color:var(--ivory);
  padding:2.75rem 2rem 2rem;
  font-size:0.88rem;
  border-top:1px solid rgba(250,247,241,0.15);
}
.footer-inner{
  max-width:1140px; margin:0 auto;
  display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-start; gap:1.5rem;
}
.footer-col .footer-logo{
  font-family:'Poppins', sans-serif; font-weight:700; font-size:1.1rem; color:#fff; margin-bottom:0.6rem;
}
footer p{ opacity:0.85; margin:0.15rem 0; }
.footer-links{ display:flex; gap:1.5rem; }
.footer-links a{ opacity:0.85; transition:opacity 0.2s ease; }
.footer-links a:hover{ opacity:1; text-decoration:underline; }
.footer-nav{ display:flex; flex-direction:column; gap:0.4rem; }
.footer-copyright{
  width:100%; text-align:center; margin-top:1.75rem; padding-top:1.5rem;
  border-top:1px solid rgba(250,247,241,0.15); opacity:0.7; font-size:0.82rem;
}

/* ---------- SERVICE DETAIL PAGES ---------- */
.service-hero-icon{
  width:72px; height:72px;
  margin:0 auto 1.25rem;
  border-radius:50%;
  background-color:rgba(255,255,255,0.12);
  display:flex; align-items:center; justify-content:center;
  font-size:2rem;
}
.service-detail{ padding:4.5rem 2rem; max-width:820px; margin:0 auto; }
.service-detail h2{ font-size:1.6rem; margin:2.5rem 0 1rem; }
.service-detail h2:first-child{ margin-top:0; }
.service-detail p{ font-size:1.05rem; margin-bottom:1rem; }
.service-detail ul{ margin:1rem 0 1.5rem 1.2rem; }
.service-detail li{ margin-bottom:0.6rem; font-size:1.02rem; }
.detail-check-list{ list-style:none; margin-left:0 !important; }
.detail-check-list li{
  display:flex; gap:0.75rem; align-items:flex-start;
}
.detail-check-list li::before{
  content:"\2713";
  flex-shrink:0;
  width:22px; height:22px;
  border-radius:50%;
  background-color:var(--teal-pale);
  color:var(--teal-deep);
  font-size:0.75rem;
  display:flex; align-items:center; justify-content:center;
  margin-top:2px;
}
.related-services{ background-color:#ffffff; padding:4rem 2rem; border-top:1px solid var(--line); }
.related-services .card-grid{ grid-template-columns:repeat(3,1fr); }
.card-link{ display:block; color:inherit; }
.card-link .service-card, .card-link .info-card{ height:100%; }

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

@media (max-width:900px){
  .value-prop-inner{ grid-template-columns:1fr; }
  .testimonial-grid{ grid-template-columns:1fr; }
  .contact-wrap{ grid-template-columns:1fr; }
  .stats-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:768px){
  .nav-links{
    position:fixed; top:64px; left:0; right:0;
    background-color:#ffffff;
    flex-direction:column; align-items:stretch; gap:0;
    max-height:0; overflow:hidden;
    box-shadow:0 8px 16px rgba(30,75,69,0.08);
    transition:max-height 0.3s ease;
  }
  .nav-toggle:checked ~ .nav-links{ max-height:320px; }
  .nav-links a{ padding:1rem 2rem; width:100%; }
  .nav-cta{ margin:0.5rem 2rem; text-align:center; }
  .nav-toggle-label{ display:flex; flex-direction:column; gap:5px; cursor:pointer; }
  .nav-toggle-label span{ width:24px; height:2px; background-color:var(--teal-deep); }
  .card-grid, .card-grid.cols-2{ grid-template-columns:1fr; }
  .pillar{ grid-template-columns:1fr; gap:0.75rem; }
  .stats-grid{ grid-template-columns:repeat(2,1fr); }
  .hero{ padding:4rem 1.5rem 3.5rem; }
  .footer-inner{ flex-direction:column; }
}
@media (min-width:769px){
  .nav-toggle-label{ display:none; }
}

/* ---------- BIO PHOTO (About page) ---------- */
.bio-layout{
  display:grid;
  grid-template-columns:500px 1fr;
  gap:2.5rem;
  align-items:start;
  text-align:left;
  max-width:1080px;
  margin:0 auto;
}
.bio-photo{
  width:100%;
  aspect-ratio:3 / 4;
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 10px 26px rgba(30,75,69,0.16);
  border:1px solid var(--line);
}
.bio-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 20%;
  display:block;
}
@media (max-width:768px){
  .bio-layout{ grid-template-columns:1fr; text-align:center; }
  .bio-photo{ max-width:400px; margin:0 auto; }
}

/* ---------- FORM STATUS BANNER ---------- */
.form-status{
  display:none;
  align-items:flex-start;
  gap:0.75rem;
  padding:1rem 1.15rem;
  border-radius:10px;
  font-size:0.98rem;
  font-weight:700;
  margin-top:0.25rem;
  animation:form-status-in 0.3s ease;
}
.form-status.visible{ display:flex; }
.form-status .icon{
  flex-shrink:0;
  width:26px; height:26px;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:0.95rem;
  font-weight:700;
}
.form-status-success{
  background-color:#E4F0EA;
  color:#1E4B45;
  border:1px solid #B9D9CB;
}
.form-status-success .icon{ background-color:#2F6B60; color:#fff; }
.form-status-error{
  background-color:#FBEAEA;
  color:#8A2C2C;
  border:1px solid #EFC3C3;
}
.form-status-error .icon{ background-color:#b13b3b; color:#fff; }
@keyframes form-status-in{
  from{ opacity:0; transform:translateY(-4px); }
  to{ opacity:1; transform:translateY(0); }
}

/* ---------- DISCOVERY CALL CTA (glass card) ---------- */
.cta-banner{
  position:relative;
  background:
    radial-gradient(ellipse 60% 80% at 15% 20%, rgba(206,155,63,0.35), transparent 60%),
    radial-gradient(ellipse 70% 90% at 85% 100%, rgba(206,155,63,0.18), transparent 55%),
    linear-gradient(135deg, #163a35 0%, #1E4B45 45%, #2a5951 100%);
  padding:5.5rem 1.5rem;
  overflow:hidden;
}
.cta-banner::before{
  content:"";
  position:absolute;
  inset:0;
  background:repeating-linear-gradient(
    115deg,
    rgba(255,255,255,0.05) 0px,
    rgba(255,255,255,0.05) 2px,
    transparent 2px,
    transparent 90px
  );
  pointer-events:none;
}
.discovery-card{
  position:relative;
  z-index:1;
  max-width:640px;
  margin:0 auto;
  text-align:center;
  background:rgba(255,255,255,0.10);
  border:1px solid rgba(255,255,255,0.22);
  border-radius:24px;
  padding:3rem 2.5rem;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  box-shadow:0 20px 50px rgba(0,0,0,0.18);
}
.discovery-heading{
  font-family:'Fraunces', serif;
  font-weight:500;
  font-style:italic;
  color:#fff;
  font-size:clamp(1.7rem, 3.2vw, 2.3rem);
  margin-bottom:1rem;
  letter-spacing:0.01em;
}
.discovery-sub{
  color:#EDE7DA;
  opacity:0.92;
  font-size:1.05rem;
  line-height:1.7;
  max-width:480px;
  margin:0 auto 2rem;
}
.btn-discovery{
  display:inline-block;
  background:transparent;
  border:1.5px solid rgba(255,255,255,0.75);
  color:#fff;
  font-weight:700;
  font-size:0.85rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  padding:1rem 2.4rem;
  border-radius:999px;
  transition:background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}
.btn-discovery:hover{
  background-color:var(--gold);
  border-color:var(--gold);
  color:var(--teal-deep);
}
@media (max-width:600px){
  .discovery-card{ padding:2.25rem 1.5rem; }
}
