:root{
  --teal:#2065A8;
  --teal-dark:#184C7E;
  --green:#66A377;
  --green-dark:#4D7A59;
  --navy:#2065A8;
  --navy-deep:#174979;
  --stone:#6B7686;
  --cream:#F5F4F1;
  --white:#FFFFFF;
  --line:#E4E2DC;
  --radius:18px;
  --wrap:1180px;
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important;}
}

body{
  font-family:'Inter', -apple-system, sans-serif;
  color:var(--navy);
  background:var(--white);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3{
  font-family:'Fraunces', Georgia, serif;
  font-weight:600;
  line-height:1.1;
  letter-spacing:-0.01em;
}

h3{color:var(--green-dark);}

a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:var(--wrap); margin:0 auto; padding:0 28px;}
:focus-visible{outline:3px solid var(--teal); outline-offset:3px; border-radius:4px;}

.eyebrow{
  display:inline-block; font-size:0.78rem; font-weight:700;
  letter-spacing:0.14em; text-transform:uppercase; color:var(--green-dark); margin-bottom:14px;
}
.eyebrow-lg{font-size:1.1rem;}

/* ---------- HEADER ---------- */
header{
  position:sticky; top:0; z-index:100;
  background:rgba(255,255,255,0.94); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.header-inner{display:flex; align-items:center; justify-content:space-between; height:78px;}
.logo{display:flex; align-items:center;}
.logo-img{height:38px; width:auto; display:block;}

nav.primary-nav{display:flex; align-items:center;}
nav.primary-nav a{font-size:0.92rem; font-weight:600; color:var(--green-dark); position:relative; padding:6px 0; margin-right:34px;}
nav.primary-nav a:visited{color:var(--green-dark);}
nav.primary-nav a:last-child{margin-right:0;}
nav.primary-nav a::after{content:''; position:absolute; left:0; bottom:0; width:0; height:2px; background:var(--green-dark); transition:width 0.25s ease;}
nav.primary-nav a:hover::after, nav.primary-nav a.active::after{width:100%;}
nav.primary-nav a.active{color:var(--green-dark);}
nav.primary-nav a:hover{color:var(--green-dark);}

.header-cta{display:flex; align-items:center;}
.header-cta > *{margin-right:18px;}
.header-cta > *:last-child{margin-right:0;}
.phone-link{font-size:0.9rem; font-weight:700; color:var(--navy); white-space:nowrap;}
.social-icon{
  width:36px; height:36px; border-radius:50%; background:var(--cream);
  display:flex; align-items:center; justify-content:center; color:var(--navy);
  transition:background 0.2s ease, color 0.2s ease, transform 0.2s ease; flex-shrink:0;
}
.social-icon:hover{background:#1877F2; color:white; transform:translateY(-2px);}

.btn{
  display:inline-flex; align-items:center; gap:8px; padding:12px 24px; border-radius:100px;
  font-weight:700; font-size:0.9rem; background:var(--green-dark); color:white; border:1px solid var(--green-dark);
  cursor:pointer; transition:transform 0.2s ease, background 0.2s ease;
}
.btn:hover{background:#3E6247; transform:translateY(-1px);}
.btn.btn-teal{background:var(--green-dark); border-color:var(--green-dark);}
.btn.btn-teal:hover{background:#3E6247;}
.btn.btn-ghost{background:transparent; color:var(--green-dark); border-color:var(--green-dark);}
.btn.btn-ghost:visited{color:var(--green-dark);}
.btn.btn-ghost:hover{background:var(--green-dark); color:white;}
.btn.btn-ghost-light{background:transparent; color:white; border-color:rgba(255,255,255,0.45);}
.btn.btn-ghost-light:hover{background:var(--green-dark); color:white; border-color:var(--green-dark);}

.nav-toggle{display:none; background:none; border:none; cursor:pointer; padding:8px;}
.nav-toggle span{display:block; width:24px; height:2px; background:var(--navy); margin:5px 0; transition:0.25s;}

/* ---------- FLOATING MOBILE CALL BUTTON ---------- */
.mobile-call-btn{display:none;}
@media (max-width:900px){
  .mobile-call-btn{
    display:flex; align-items:center; justify-content:center; gap:9px;
    position:fixed; left:50%; bottom:18px; transform:translateX(-50%);
    background:var(--green-dark); color:#fff; font-weight:700; font-size:0.95rem;
    padding:15px 28px; padding-bottom:calc(15px + env(safe-area-inset-bottom));
    border-radius:100px; box-shadow:0 14px 34px -10px rgba(12,38,64,0.55);
    z-index:300; text-decoration:none; white-space:nowrap;
  }
  .mobile-call-btn:active{background:#3E6247;}
  .mobile-call-btn svg{flex-shrink:0;}
  body{padding-bottom:78px;}
}

/* ---------- PAGE HERO (subpages) ---------- */
.page-hero{
  background:linear-gradient(160deg, var(--navy-deep) 0%, var(--navy) 55%, #1a4763 100%);
  color:white; padding:76px 0 64px; position:relative; overflow:hidden;
}
.page-hero::before{
  content:''; position:absolute; inset:0;
  background-image:repeating-linear-gradient(115deg, rgba(255,255,255,0.025) 0px, rgba(255,255,255,0.025) 1px, transparent 1px, transparent 14px);
}
.page-hero .wrap{position:relative;}
.page-hero .eyebrow{color:var(--green);}
.page-hero h1{font-size:clamp(2rem, 3.6vw, 2.9rem); color:white;}
.page-hero p{color:rgba(255,255,255,0.78); max-width:560px; margin-top:14px; font-size:1.02rem;}
.breadcrumb{font-size:0.82rem; color:rgba(255,255,255,0.65); margin-bottom:18px;}
.breadcrumb a{color:rgba(255,255,255,0.65); font-weight:600;}
.breadcrumb a:visited{color:rgba(255,255,255,0.65);}
.breadcrumb a:hover{color:var(--teal);}

/* ---------- HERO (home) ---------- */
.hero{
  position:relative;
  background:
    radial-gradient(ellipse at 15% 20%, rgba(27,176,206,0.35), transparent 55%),
    radial-gradient(ellipse at 85% 75%, rgba(21,50,74,0.5), transparent 50%),
    linear-gradient(160deg, var(--navy-deep) 0%, var(--navy) 55%, #1a4763 100%);
  color:white; overflow:hidden; padding:96px 0 130px;
}
.hero::before{
  content:''; position:absolute; inset:0;
  background-image:repeating-linear-gradient(115deg, rgba(255,255,255,0.025) 0px, rgba(255,255,255,0.025) 1px, transparent 1px, transparent 14px);
  pointer-events:none;
}
.hero-inner{position:relative; display:grid; grid-template-columns:1.05fr 0.95fr; gap:60px; align-items:center;}
.hero-visual{aspect-ratio:1800/934; border-radius:var(--radius); overflow:hidden; box-shadow:0 40px 80px -30px rgba(0,0,0,0.5);}
.hero-visual img{width:100%; height:100%; object-fit:cover; display:block;}
.hero-eyebrow{display:inline-flex; align-items:center; gap:8px; font-size:0.78rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:var(--green); margin-bottom:22px;}
.hero-eyebrow::before{content:''; width:22px; height:1px; background:var(--green);}
.hero h1{font-size:clamp(2.3rem, 4vw, 3.4rem); margin-bottom:22px; color:white;}
.hero h1 em{font-style:normal; color:var(--teal);}
.hero p.lead{font-size:1.06rem; color:rgba(255,255,255,0.78); max-width:520px; margin-bottom:34px;}
.hero-actions{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:48px;}
.hero-trust{display:flex; flex-wrap:wrap;}
.hero-trust div{border-left:2px solid rgba(255,255,255,0.25); padding-left:14px; margin-right:34px;}
.hero-trust div:last-child{margin-right:0;}
.hero-trust strong{display:block; font-family:'Fraunces',serif; font-size:1.5rem; color:white;}
.hero-trust span{font-size:0.78rem; color:rgba(255,255,255,0.65);}

/* ---------- SIGNATURE: ROUGH-TO-SMOOTH SLIDER ---------- */
.rts{
  position:relative; aspect-ratio:4/5; border-radius:var(--radius); overflow:hidden;
  border:1px solid rgba(255,255,255,0.14); box-shadow:0 30px 70px -20px rgba(0,0,0,0.5);
  cursor:ew-resize; user-select:none; touch-action:pan-y;
}
.rts-layer{position:absolute; inset:0; display:flex; align-items:flex-end; justify-content:center; padding:26px;}
.rts-before{
  background:
    repeating-linear-gradient(0deg, #8a5a44 0px, #8a5a44 22px, #6f4534 23px, #6f4534 24px),
    repeating-linear-gradient(90deg, transparent 0 58px, rgba(0,0,0,0.18) 58px 62px);
  background-blend-mode:multiply;
}
.rts-before::after{
  content:''; position:absolute; inset:0;
  background:repeating-linear-gradient(90deg, transparent 0 116px, rgba(0,0,0,0.14) 116px 120px);
  background-position:29px 0;
}
.rts-after{
  background:linear-gradient(155deg, #E9E6DF 0%, #F5F4F1 55%, #ECE9E1 100%);
  clip-path:inset(0 0 0 50%);
}
.rts-tag{
  position:relative; z-index:2; background:rgba(14,33,49,0.55); backdrop-filter:blur(6px);
  color:white; font-size:0.72rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase;
  padding:8px 14px; border-radius:100px;
}
.rts-after .rts-tag{background:rgba(21,50,74,0.12); color:var(--navy);}
.rts-handle{
  position:absolute; top:0; bottom:0; left:50%; width:0; z-index:3;
  transform:translateX(-50%); pointer-events:none;
}
.rts-handle::before{content:''; position:absolute; top:0; bottom:0; left:-1px; width:2px; background:white; box-shadow:0 0 0 1px rgba(0,0,0,0.15);}
.rts-grip{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:44px; height:44px; border-radius:50%; background:white; pointer-events:none;
  display:flex; align-items:center; justify-content:center; box-shadow:0 8px 20px -4px rgba(0,0,0,0.4);
}
.rts-input{
  position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0;
  cursor:ew-resize; -webkit-appearance:none;
}
.rts-caption{
  position:absolute; bottom:-30px; left:0; right:0; text-align:center;
  font-size:0.76rem; color:#8CA0AC; letter-spacing:0.03em;
}

/* ---------- CURVE DIVIDER ---------- */
.curve-divider{position:relative; height:70px; margin-top:-1px;}
.curve-divider svg{width:100%; height:100%; display:block;}

/* ---------- ABOUT ---------- */
.about{padding:110px 0; background:var(--white);}
.about-inner{display:grid; grid-template-columns:0.9fr 1.1fr; gap:70px; align-items:start;}
.about-inner .eyebrow{margin-top:6px;}
.about-visual{margin-right:20px;}
.about-visual{
  aspect-ratio:1/1.05; border-radius:var(--radius); background:linear-gradient(145deg, var(--cream), #E9E6DF);
  border:1px solid var(--line); display:flex; align-items:center; justify-content:center; position:relative;
}
.about-visual.about-visual--photo{
  aspect-ratio:4/3; background:none; border:none; overflow:hidden;
}
.about-visual--photo img{width:100%; height:100%; object-fit:cover; object-position:center;}
.about-visual .placeholder-label{text-align:center; padding:30px; color:var(--stone);}
.about-visual .placeholder-label svg{margin:0 auto 14px; opacity:0.5;}
.about-visual .placeholder-label strong{display:block; font-size:0.85rem; color:var(--navy); margin-bottom:4px;}
.about-visual .placeholder-label span{font-size:0.78rem;}
.about h2{font-size:clamp(1.9rem, 3vw, 2.5rem); margin-bottom:22px;}
.about p{color:var(--stone); font-size:1.02rem; margin-bottom:18px; max-width:560px;}
.about-stats{display:flex; gap:40px; margin-top:36px; flex-wrap:wrap;}
.about-stats div strong{display:block; font-family:'Fraunces',serif; font-size:1.9rem; color:var(--navy);}
.about-stats div span{font-size:0.8rem; color:var(--stone); font-weight:500;}

/* ---------- SERVICES ---------- */
.services{padding:110px 0; background:var(--cream);}
.services.on-light{background:var(--white);}
.services-head{max-width:640px; margin-bottom:60px;}
.services-head h2{font-size:clamp(1.9rem, 3vw, 2.5rem);}
.services-head p{color:var(--stone); margin-top:14px; font-size:1.02rem;}
.services-grid{display:grid; grid-template-columns:1fr 1fr 1fr; gap:32px;}
.service-card{background:white; border-radius:var(--radius); padding:44px 38px; border:1px solid var(--line); transition:transform 0.25s ease, box-shadow 0.25s ease;}
.service-card:hover{transform:translateY(-4px); box-shadow:0 24px 48px -20px rgba(21,50,74,0.18);}
.service-icon{width:54px; height:54px; border-radius:14px; background:linear-gradient(135deg, var(--teal), var(--green)); display:flex; align-items:center; justify-content:center; margin-bottom:26px;}
.service-card h3{font-size:1.35rem; margin-bottom:14px;}
.service-card p{color:var(--stone); font-size:0.97rem; margin-bottom:10px;}
.service-card .learn{display:inline-flex; align-items:center; gap:6px; font-weight:700; font-size:0.88rem; color:var(--teal-dark); margin-top:14px;}
.service-card .learn:visited{color:var(--teal-dark);}

.process{margin-top:80px;}
.process-head{max-width:600px; margin-bottom:44px;}
.process-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:28px;}
.process-step{position:relative; padding-top:20px;}
.process-step .step-num{font-family:'Fraunces',serif; font-size:2.4rem; font-weight:700; color:var(--line); display:block; margin-bottom:10px;}
.process-step h4{font-size:1.02rem; margin-bottom:8px;}
.process-step p{font-size:0.9rem; color:var(--stone);}

.trust-strip{margin-top:56px; padding:36px 40px; background:var(--navy); border-radius:var(--radius); display:grid; grid-template-columns:repeat(auto-fit, minmax(160px, 1fr)); gap:24px;}
.trust-item{display:flex; align-items:center; gap:14px; color:white;}
.trust-item span{font-size:0.85rem; font-weight:600; color:rgba(255,255,255,0.78); line-height:1.3;}

.brand-strip{margin-top:56px; text-align:center;}
.brand-strip-section{padding:70px 0;}
.brand-strip-section .brand-strip{margin-top:0;}
.brand-strip-label{
  display:block; font-size:0.78rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--stone); margin-bottom:28px;
}
.brand-logos{display:flex; flex-wrap:wrap; align-items:center; justify-content:center;}
.brand-logos img{
  height:52px; width:auto; max-width:160px; object-fit:contain; margin:14px 28px; opacity:0.85;
  filter:grayscale(15%);
}

.footer-brand-strip{
  padding-bottom:44px; margin-bottom:44px; border-bottom:1px solid rgba(255,255,255,0.08);
  text-align:center;
}
.footer-brand-strip-label{
  display:block; font-size:0.74rem; font-weight:700; letter-spacing:0.13em; text-transform:uppercase;
  color:rgba(255,255,255,0.55); margin-bottom:20px;
}
.footer-brand-logos{display:flex; flex-wrap:wrap; align-items:center; justify-content:center;}
.footer-brand-logos .logo-chip{
  background:white; border-radius:10px; padding:10px 16px; display:flex; align-items:center; justify-content:center;
  margin:8px 10px;
}
.footer-brand-logos img{height:28px; width:auto; max-width:110px; object-fit:contain;}

/* ---------- GALLERY ---------- */
.gallery{padding:110px 0;}
.gallery-head{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:50px; gap:30px; flex-wrap:wrap;}
.gallery-head h2{font-size:clamp(1.9rem, 3vw, 2.5rem);}
.gallery-head p{color:var(--stone); max-width:400px;}
.gallery-grid{display:grid; grid-template-columns:repeat(3, 1fr); grid-auto-rows:220px; gap:20px;}
.gallery-grid.full{grid-auto-rows:260px;}
.gallery-grid .g1{grid-column:span 2; grid-row:span 2;}
.gallery-item{border-radius:14px; background:linear-gradient(150deg, #DDE7EA, #C7D5DA); display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden; border:1px solid var(--line);}
.gallery-item:nth-child(2){background:linear-gradient(150deg, #E4E1D9, #D2CDC0);}
.gallery-item:nth-child(3){background:linear-gradient(150deg, #D8E9EC, #B9D3D8);}
.gallery-item:nth-child(4){background:linear-gradient(150deg, #E8E6E0, #D6D2C7);}
.gallery-item:nth-child(5){background:linear-gradient(150deg, #DCE7EA, #C2D6DB);}
.gallery-item:nth-child(6){background:linear-gradient(150deg, #E4E1D9, #D2CDC0);}
.gallery-item:nth-child(7){background:linear-gradient(150deg, #D8E9EC, #B9D3D8);}
.gallery-item .placeholder-label{text-align:center; color:var(--stone); padding:16px;}
.gallery-item .placeholder-label svg{margin:0 auto 10px; opacity:0.55;}
.gallery-item .placeholder-label span{font-size:0.76rem; font-weight:600;}

/* ---------- FACEBOOK FEED ---------- */
.social-feed{padding:70px 0; background:var(--navy); color:white; position:relative; overflow:hidden;}
.social-feed::before{content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 80% 20%, rgba(27,176,206,0.18), transparent 55%);}
.social-feed-inner{position:relative; display:grid; grid-template-columns:0.85fr 1.15fr; gap:60px; align-items:center;}
.social-feed h2{color:white; font-size:clamp(1.7rem, 2.8vw, 2.3rem); margin-bottom:16px;}
.social-feed p{color:#AEC0CB; margin-bottom:28px;}
.social-feed .btn{background:#1877F2; border-color:#1877F2;}
.social-feed .btn:hover{background:#145ec2;}
.fb-embed-wrap{
  background:white; border-radius:var(--radius); padding:18px 12px; min-height:300px;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px;
  box-shadow:0 30px 70px -25px rgba(0,0,0,0.5);
}
.fb-embed-wrap iframe, .fb-embed-wrap .fb-page{width:100% !important;}
.fb-fallback{color:var(--stone); text-align:center; padding:40px 20px; font-size:0.92rem;}
.fb-follow-btn{background:#1877F2 !important; border-color:#1877F2 !important;}
.fb-follow-btn:hover{background:#145ec2 !important;}
.google-review-btn{
  background:white !important; color:var(--navy) !important; border:1px solid var(--line) !important;
  display:inline-flex; align-items:center;
}
.google-review-btn:hover{background:var(--cream) !important;}
.fb-embed-wrap .btn-row{display:flex; flex-wrap:wrap; justify-content:center;}
.fb-embed-wrap .btn-row > a{margin:6px;}

/* ---------- TESTIMONIALS ---------- */
.testimonials{padding:110px 0; background:var(--cream);}
.testimonials-head{max-width:600px; margin-bottom:20px;}
.testimonials-head h2{font-size:clamp(1.9rem, 3vw, 2.5rem); margin-bottom:16px;}
.testimonials-head p{color:var(--stone);}
.testimonials-grid{display:grid; grid-template-columns:1fr 1fr; gap:32px; margin-top:44px; align-items:start;}
.testimonial-card{
  border-radius:var(--radius); padding:44px; background:white;
  border:1px solid var(--line); box-shadow:0 30px 60px -35px rgba(20,40,60,0.25);
}
.testimonial-stars{display:flex; gap:4px; margin-bottom:22px;}
.testimonial-card blockquote{margin:0;}
.testimonial-card blockquote p{
  font-family:'Fraunces', Georgia, serif; font-size:1.1rem; line-height:1.55; color:var(--navy);
  margin-bottom:16px;
}
.testimonial-card blockquote p:last-of-type{margin-bottom:0;}
.testimonial-card cite{
  display:block; margin-top:22px; font-style:normal; font-weight:700; color:var(--green-dark); font-size:0.95rem;
}

/* ---------- FAQ ---------- */
.faq{padding:110px 0; background:var(--white);}
.faq-head{max-width:600px; margin-bottom:44px;}
.faq-head h2{font-size:clamp(1.9rem, 3vw, 2.5rem);}
.faq-head p{color:var(--stone); margin-top:14px; font-size:1.02rem;}
.faq-list{max-width:760px;}
.faq-item{border-bottom:1px solid var(--line);}
.faq-item summary{
  list-style:none; cursor:pointer; padding:22px 36px 22px 0; position:relative;
  font-weight:700; font-size:1.02rem; color:var(--navy);
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{
  content:'+'; position:absolute; right:2px; top:50%; transform:translateY(-50%);
  font-size:1.6rem; font-weight:400; color:var(--teal); line-height:1;
}
.faq-item[open] summary::after{content:'−';}
.faq-item p{color:var(--stone); font-size:0.97rem; padding:0 36px 24px 0; max-width:640px;}

/* ---------- CONTACT ---------- */
.contact{padding:110px 0 130px; background:var(--cream);}
.contact.on-white{background:var(--white);}
.contact-inner{display:grid; grid-template-columns:0.85fr 1.15fr; gap:0; border-radius:28px; overflow:hidden; box-shadow:0 40px 80px -30px rgba(21,50,74,0.25);}
.contact-info{background:linear-gradient(155deg, var(--navy-deep), var(--navy) 70%, #1a4763); color:white; padding:56px 48px; position:relative; overflow:hidden;}
.contact-info::before{content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 90% 10%, rgba(27,176,206,0.3), transparent 55%);}
.contact-info > *{position:relative;}
.contact-info h2{color:white; font-size:clamp(1.6rem,2.6vw,2.1rem); margin-bottom:16px;}
.contact-info p.lead{color:#B9CAD3; font-size:0.98rem; margin-bottom:40px; max-width:340px;}
.contact-detail{display:flex; gap:16px; align-items:flex-start; margin-bottom:28px;}
.contact-detail .icon{width:40px; height:40px; border-radius:11px; flex-shrink:0; background:rgba(255,255,255,0.1); display:flex; align-items:center; justify-content:center;}
.contact-detail strong{display:block; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.08em; color:#8CA8B6; margin-bottom:4px;}
.contact-detail a, .contact-detail span{font-size:0.98rem; font-weight:600; color:white;}
.contact-note{margin-top:44px; padding-top:28px; border-top:1px solid rgba(255,255,255,0.14); font-size:0.86rem; color:#9FB6C2; display:flex; gap:10px; align-items:flex-start;}

.contact-form{background:white; padding:56px 48px;}
.contact-form h3{font-size:1.3rem; margin-bottom:6px;}
.contact-form > p{color:var(--stone); font-size:0.92rem; margin-bottom:32px;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
.field{margin-bottom:22px;}
.field label{display:block; font-size:0.84rem; font-weight:600; margin-bottom:8px; color:var(--navy);}
.field label .req{color:var(--teal-dark);}
.field input, .field select, .field textarea{
  width:100%; padding:13px 15px; border-radius:10px; border:1.5px solid var(--line);
  font-family:'Inter',sans-serif; font-size:0.95rem; color:var(--navy); background:var(--white); transition:border-color 0.2s ease;
}
.field input:focus, .field select:focus, .field textarea:focus{border-color:var(--teal); outline:none;}
.field textarea{resize:vertical; min-height:110px;}
.field .error-msg{display:none; font-size:0.8rem; color:#C0433A; margin-top:6px; font-weight:600;}
.field.has-error input, .field.has-error select, .field.has-error textarea{border-color:#C0433A;}
.field.has-error .error-msg{display:block;}

.form-submit{width:100%; justify-content:center; padding:15px 24px; font-size:0.96rem; background:var(--teal); border-color:var(--teal);}
.form-submit:hover{background:var(--teal-dark);}
.form-submit:disabled{opacity:0.65; cursor:not-allowed; transform:none;}

.form-status{display:none; align-items:flex-start; gap:12px; padding:16px 18px; border-radius:12px; font-size:0.9rem; margin-top:18px; font-weight:500;}
.form-status.show{display:flex;}
.form-status.success{background:#E7F5EE; color:#1B7A45;}
.form-status.error{background:#FBEAE8; color:#B23A2F;}
.contact-form.submitted .form-fields{display:none;}
.success-panel{display:none; text-align:center; padding:30px 10px;}
.contact-form.submitted .success-panel{display:block;}
.success-panel svg{margin:0 auto 18px;}
.success-panel h3{margin-bottom:10px;}
.success-panel p{color:var(--stone); font-size:0.95rem;}

/* ---------- COVERAGE ---------- */
.coverage{padding:0 0 110px; background:var(--white);}
.coverage-box{
  border-radius:var(--radius); background:linear-gradient(150deg, var(--cream), #E9E6DF);
  border:1px solid var(--line); padding:50px; display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center;
}
.coverage-box h3{font-size:1.4rem; margin-bottom:12px;}
.coverage-box p{color:var(--stone); font-size:0.98rem;}
.coverage-list{display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; align-items:center;}
.coverage-list span{background:white; border:1px solid var(--line); border-radius:100px; padding:7px 16px; font-size:0.82rem; font-weight:600; color:var(--navy);}
.coverage-list .coverage-more{background:none; border:none; padding:7px 4px; color:var(--stone); font-weight:500; font-style:italic;}

/* ---------- FOOTER ---------- */
footer{background:var(--navy-deep); color:rgba(255,255,255,0.65); padding:100px 0 40px;}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:50px; padding-bottom:50px; border-bottom:1px solid rgba(255,255,255,0.08);}
.footer-brand .logo-img{height:42px;}
.footer-brand p{margin-top:18px; font-size:0.9rem; max-width:280px; color:rgba(255,255,255,0.55);}
.footer-social{display:flex; gap:10px; margin-top:20px;}
.footer-social .social-icon{background:rgba(255,255,255,0.08); color:white;}
footer h4{color:var(--green); font-size:0.85rem; letter-spacing:0.05em; text-transform:uppercase; margin-bottom:20px;}
footer ul{list-style:none;}
footer ul li{margin-bottom:12px;}
footer ul a{font-size:0.92rem; color:rgba(255,255,255,0.65); transition:color 0.2s;}
footer ul a:visited{color:rgba(255,255,255,0.65);}
footer ul a:hover{color:var(--teal);}
.footer-bottom{padding-top:28px; display:flex; justify-content:space-between; align-items:center; font-size:0.82rem; color:#5F7688; flex-wrap:wrap; gap:12px;}
.footer-fb-btn{
  display:inline-flex; align-items:center; gap:8px; color:white; background:rgba(255,255,255,0.1);
  padding:9px 18px; border-radius:100px; font-size:0.82rem; font-weight:600; text-decoration:none;
  transition:background 0.2s ease;
}
.footer-fb-btn:hover{background:rgba(255,255,255,0.2);}

/* ---------- JOB COMPLETE TEMPLATE EXTRAS ---------- */
.job-hero{
  background:linear-gradient(160deg, var(--navy-deep) 0%, var(--navy) 55%, #1a4763 100%);
  color:white; padding:70px 0 60px; text-align:center;
}
.job-hero .eyebrow{color:var(--green);}
.job-hero h1{font-size:clamp(1.9rem, 3.4vw, 2.7rem); color:white; margin-bottom:14px;}
.job-hero p{color:rgba(255,255,255,0.78); max-width:560px; margin:0 auto; font-size:1.02rem;}
.job-meta{display:flex; gap:28px; justify-content:center; margin-top:28px; flex-wrap:wrap;}
.job-meta div{text-align:left;}
.job-meta strong{display:block; font-size:0.7rem; text-transform:uppercase; letter-spacing:0.08em; color:#8CA8B6;}
.job-meta span{font-size:0.98rem; font-weight:600; color:white;}

.rts-photo{max-width:760px; margin:0 auto;}
.rts-photo .rts-layer{background-size:cover; background-position:center; background-color:#DDE7EA;}

.job-summary{max-width:760px; margin:60px auto 0; padding:0 28px;}
.job-summary h2{font-size:1.5rem; margin-bottom:18px;}
.job-summary ul{list-style:none; display:grid; gap:12px;}
.job-summary li{display:flex; gap:12px; align-items:flex-start; font-size:0.98rem; color:var(--stone);}
.job-summary li svg{flex-shrink:0; margin-top:3px;}

.review-cta{background:var(--cream); padding:70px 0; text-align:center; margin-top:70px;}
.review-cta h2{font-size:clamp(1.6rem, 2.6vw, 2.1rem); margin-bottom:14px;}
.review-cta p{color:var(--stone); max-width:480px; margin:0 auto 30px;}
.review-buttons{display:flex; gap:14px; justify-content:center; flex-wrap:wrap;}
.review-buttons .btn.google{background:white; color:var(--navy); border-color:var(--line);}
.review-buttons .btn.google:hover{background:var(--navy); color:white;}
.review-buttons .btn.facebook{background:#1877F2; border-color:#1877F2;}
.review-buttons .btn.facebook:hover{background:#145ec2;}

.share-row{text-align:center; padding:50px 0; }
.share-row p{color:var(--stone); margin-bottom:16px; font-size:0.94rem;}
.share-buttons{display:flex; gap:12px; justify-content:center; flex-wrap:wrap;}
.share-buttons .btn.whatsapp{background:#25D366; border-color:#25D366;}
.share-buttons .btn.whatsapp:hover{background:#1ea952;}
.copy-link-btn{position:relative;}
.copy-link-btn.copied::after{
  content:'Link copied!'; position:absolute; top:-32px; left:50%; transform:translateX(-50%);
  background:var(--navy); color:white; font-size:0.75rem; padding:5px 10px; border-radius:6px; white-space:nowrap;
}

/* ---------- RESPONSIVE ---------- */
@media (max-width:900px){
  nav.primary-nav{
    position:fixed; top:78px; left:0; right:0; bottom:0; background:white;
    flex-direction:column; align-items:flex-start; padding:32px 28px; font-size:1.1rem;
    transform:translateX(100%); transition:transform 0.3s ease;
  }
  nav.primary-nav a{margin-right:0; margin-bottom:22px; display:block;}
  nav.primary-nav a:last-child{margin-bottom:0;}
  nav.primary-nav.open{transform:translateX(0);}
  .nav-toggle{display:block;}
  .header-cta .phone-link{display:none;}
  .hero-inner{grid-template-columns:1fr;}
  .rts{max-width:360px; margin:0 auto;}
  .about-inner{grid-template-columns:1fr; gap:36px;}
  .about-inner .eyebrow{margin-top:20px;}
  .about-visual{margin-right:0; margin-bottom:40px;}
  .services-grid{grid-template-columns:1fr;}
  .testimonials-grid{grid-template-columns:1fr;}
  .process-grid{grid-template-columns:1fr 1fr;}
  .trust-strip{grid-template-columns:1fr 1fr;}
  .gallery-grid{grid-template-columns:1fr 1fr; grid-auto-rows:180px;}
  .gallery-grid .g1{grid-column:span 2; grid-row:span 1;}
  .social-feed-inner{grid-template-columns:1fr;}
  .contact-inner{grid-template-columns:1fr;}
  .coverage-box{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr; gap:36px;}
}
@media (max-width:560px){
  .hero{padding:70px 0 110px;}
  .process-grid{grid-template-columns:1fr;}
  .trust-strip{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;}
  .gallery-grid{grid-template-columns:1fr;}
  .gallery-grid .g1{grid-column:span 1;}
  .contact-info, .contact-form{padding:36px 26px;}
  .form-row{grid-template-columns:1fr;}
}
