@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Poppins:wght@600;700;800&display=swap');

:root{
  --color-primary:#0d9488;
  --color-primary-dark:#0f766e;
  --color-primary-light:#ccfbf1;
  --color-accent:#f59e0b;
  --color-dark:#0f2a27;
  --color-text:#33403e;
  --color-text-light:#5f716e;
  --color-bg:#ffffff;
  --color-bg-alt:#f4faf9;
  --color-bg-dark:#0f2a27;
  --color-border:#e0eeec;
  --radius-sm:8px;
  --radius-md:16px;
  --radius-lg:28px;
  --shadow-sm:0 2px 10px rgba(15,42,39,0.06);
  --shadow-md:0 12px 32px rgba(15,42,39,0.12);
  --font-heading:'Poppins',sans-serif;
  --font-body:'Manrope',sans-serif;
  --container-w:1180px;
  --gap:24px;
}

*{box-sizing:border-box;margin:0;padding:0;}

html{scroll-behavior:smooth;}

body{
  font-family:var(--font-body);
  color:var(--color-text);
  background:var(--color-bg);
  line-height:1.65;
  font-size:16px;
  overflow-x:hidden;
}

img{max-width:100%;display:block;height:auto;}

a{color:inherit;text-decoration:none;}

ul{list-style:none;}

h1,h2,h3,h4{
  font-family:var(--font-heading);
  color:var(--color-dark);
  line-height:1.25;
  font-weight:700;
}

h1{font-size:clamp(2rem,5vw,3.2rem);font-weight:800;}
h2{font-size:clamp(1.6rem,3.4vw,2.4rem);}
h3{font-size:1.25rem;}

p{color:var(--color-text-light);}

.wrapper{
  width:100%;
  max-width:var(--container-w);
  margin:0 auto;
  padding:0 20px;
}

.eyebrow{
  display:inline-block;
  font-size:0.78rem;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--color-primary-dark);
  background:var(--color-primary-light);
  padding:6px 14px;
  border-radius:999px;
  margin-bottom:14px;
}

.section-head{
  max-width:680px;
  margin:0 auto 44px;
  text-align:center;
}

.section-head p{margin-top:12px;font-size:1.02rem;}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-family:var(--font-body);
  font-weight:700;
  font-size:0.98rem;
  padding:14px 30px;
  border-radius:999px;
  border:2px solid transparent;
  cursor:pointer;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease,color .2s ease;
}

.btn-primary{
  background:var(--color-primary);
  color:#fff;
  box-shadow:var(--shadow-sm);
}
.btn-primary:hover{background:var(--color-primary-dark);transform:translateY(-2px);box-shadow:var(--shadow-md);}

.btn-outline{
  background:transparent;
  border-color:rgba(255,255,255,0.55);
  color:#fff;
}
.btn-outline:hover{background:rgba(255,255,255,0.14);transform:translateY(-2px);}

.btn-dark-outline{
  background:transparent;
  border-color:var(--color-primary);
  color:var(--color-primary-dark);
}
.btn-dark-outline:hover{background:var(--color-primary);color:#fff;}

.site-header{
  position:sticky;
  top:0;
  z-index:500;
  background:rgba(255,255,255,0.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--color-border);
}

.nav-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 20px;
  max-width:var(--container-w);
  margin:0 auto;
}

.brand-mark{display:flex;align-items:center;gap:10px;}
.brand-mark img{width:42px;height:42px;}

.nav-links{
  display:none;
  align-items:center;
  gap:30px;
  font-weight:600;
  font-size:0.96rem;
}

.nav-links a{
  position:relative;
  padding:6px 0;
  color:var(--color-dark);
  transition:color .2s ease;
}
.nav-links a:hover{color:var(--color-primary);}

.nav-cta{display:none;}

.nav-toggle{
  display:flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border-radius:var(--radius-sm);
  border:1px solid var(--color-border);
  background:var(--color-bg-alt);
  font-size:1.3rem;
  cursor:pointer;
  color:var(--color-dark);
}

.mobile-panel{
  display:none;
  flex-direction:column;
  gap:4px;
  padding:10px 20px 22px;
  border-top:1px solid var(--color-border);
  background:#fff;
}
.mobile-panel.is-open{display:flex;}

.mobile-panel a{
  padding:12px 6px;
  font-weight:600;
  border-bottom:1px solid var(--color-border);
}

.mobile-panel .btn{margin-top:12px;}

@media (min-width:900px){
  .nav-links{display:flex;}
  .nav-cta{display:inline-flex;}
  .nav-toggle{display:none;}
  .mobile-panel{display:none !important;}
}

.hero{
  position:relative;
  background:linear-gradient(160deg,var(--color-dark) 0%,#123c37 55%,var(--color-primary-dark) 100%);
  color:#fff;
  overflow:hidden;
}

.hero-inner{
  display:flex;
  flex-direction:column;
  gap:40px;
  padding:64px 0 56px;
}

.hero-copy{max-width:640px;}

.hero-copy p{
  color:rgba(255,255,255,0.82);
  font-size:1.08rem;
  margin:18px 0 30px;
  max-width:520px;
}

.hero-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:0.8rem;
  font-weight:700;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:#eafff9;
  background:rgba(255,255,255,0.12);
  padding:8px 16px;
  border-radius:999px;
  margin-bottom:22px;
}

.hero-actions{display:flex;flex-wrap:wrap;gap:14px;}

.hero-stats{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:16px;
  margin-top:38px;
  max-width:460px;
}

.hero-stat{
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.14);
  border-radius:var(--radius-md);
  padding:16px 18px;
}

.hero-stat strong{
  display:block;
  font-family:var(--font-heading);
  font-size:1.5rem;
  color:#fff;
}
.hero-stat span{font-size:0.86rem;color:rgba(255,255,255,0.75);}

.hero-media{position:relative;}

.hero-media img{
  width:100%;
  border-radius:var(--radius-lg);
  box-shadow:0 24px 60px rgba(0,0,0,0.35);
  aspect-ratio:4/3;
  object-fit:cover;
}

.hero-media-tag{
  position:absolute;
  bottom:-18px;
  left:18px;
  background:#fff;
  color:var(--color-dark);
  padding:14px 18px;
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-md);
  display:flex;
  align-items:center;
  gap:12px;
  font-weight:700;
  font-size:0.92rem;
  max-width:240px;
}

.hero-media-tag i{
  color:var(--color-primary);
  font-size:1.5rem;
}

@media (min-width:960px){
  .hero-inner{
    flex-direction:row;
    align-items:center;
    padding:96px 0 90px;
  }
  .hero-copy{flex:1;}
  .hero-media{flex:1;}
}

.section{padding:72px 0;}
.section-alt{background:var(--color-bg-alt);}

.services-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:22px;
}

@media (min-width:640px){
  .services-grid{grid-template-columns:repeat(2,1fr);}
}
@media (min-width:1000px){
  .services-grid{grid-template-columns:repeat(3,1fr);}
}

.service-card{
  background:#fff;
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  padding:28px 24px;
  transition:transform .2s ease,box-shadow .2s ease;
  display:flex;
  flex-direction:column;
  height:100%;
}
.service-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);}

.service-icon{
  width:52px;
  height:52px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:14px;
  background:var(--color-primary-light);
  color:var(--color-primary-dark);
  font-size:1.4rem;
  margin-bottom:18px;
}

.service-card h3{margin-bottom:10px;}
.service-card p{flex:1;margin-bottom:16px;font-size:0.96rem;}

.service-link{
  font-weight:700;
  font-size:0.92rem;
  color:var(--color-primary-dark);
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.service-link i{transition:transform .2s ease;}
.service-link:hover i{transform:translateX(4px);}

.pricing-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:22px;
}
@media (min-width:760px){
  .pricing-grid{grid-template-columns:repeat(3,1fr);}
}

.price-card{
  background:#fff;
  border:1px solid var(--color-border);
  border-radius:var(--radius-lg);
  padding:34px 26px;
  text-align:center;
  position:relative;
  display:flex;
  flex-direction:column;
}

.price-card.is-featured{
  border-color:var(--color-primary);
  box-shadow:var(--shadow-md);
  transform:scale(1.02);
}

.price-badge{
  position:absolute;
  top:-14px;
  left:50%;
  transform:translateX(-50%);
  background:var(--color-accent);
  color:#fff;
  font-size:0.76rem;
  font-weight:700;
  padding:6px 16px;
  border-radius:999px;
}

.price-value{
  font-family:var(--font-heading);
  font-size:2.4rem;
  font-weight:800;
  color:var(--color-dark);
  margin:14px 0 4px;
}
.price-value span{font-size:0.9rem;font-weight:600;color:var(--color-text-light);}

.price-card ul{margin:22px 0 26px;text-align:left;display:flex;flex-direction:column;gap:12px;}

.price-card ul li{
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-size:0.94rem;
  color:var(--color-text);
}
.price-card ul li i{color:var(--color-primary);margin-top:3px;}

.price-card .btn{margin-top:auto;}

.faq-list{
  max-width:820px;
  margin:0 auto;
  display:flex;
  flex-direction:column;
  gap:14px;
}

.faq-item{
  background:#fff;
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  overflow:hidden;
}

.faq-question{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:20px 22px;
  background:transparent;
  border:none;
  text-align:left;
  font-family:var(--font-body);
  font-weight:700;
  font-size:1rem;
  color:var(--color-dark);
  cursor:pointer;
}

.faq-question i{
  flex-shrink:0;
  transition:transform .25s ease;
  color:var(--color-primary);
}

.faq-item.is-open .faq-question i{transform:rotate(45deg);}

.faq-answer{
  max-height:0;
  overflow:hidden;
  transition:max-height .3s ease;
  padding:0 22px;
}

.faq-item.is-open .faq-answer{max-height:400px;padding:0 22px 22px;}

.faq-answer p{font-size:0.95rem;}

.contact-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:36px;
}
@media (min-width:900px){
  .contact-grid{grid-template-columns:0.9fr 1.1fr;align-items:start;}
}

.contact-info-card{
  background:var(--color-dark);
  color:#fff;
  border-radius:var(--radius-lg);
  padding:34px 28px;
}

.contact-info-card h3{color:#fff;margin-bottom:8px;}
.contact-info-card p{color:rgba(255,255,255,0.75);margin-bottom:26px;font-size:0.95rem;}

.contact-info-row{
  display:flex;
  gap:14px;
  align-items:flex-start;
  padding:16px 0;
  border-top:1px solid rgba(255,255,255,0.12);
}
.contact-info-row:first-of-type{border-top:none;}

.contact-info-row i{
  width:40px;
  height:40px;
  flex-shrink:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,0.1);
  border-radius:12px;
  color:var(--color-accent);
}

.contact-info-row strong{display:block;font-size:0.92rem;margin-bottom:2px;}
.contact-info-row span,.contact-info-row a{font-size:0.9rem;color:rgba(255,255,255,0.75);}

.contact-form{
  background:#fff;
  border:1px solid var(--color-border);
  border-radius:var(--radius-lg);
  padding:34px 28px;
  box-shadow:var(--shadow-sm);
}

.form-row{
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
  margin-bottom:18px;
}
@media (min-width:560px){
  .form-row.two-col{grid-template-columns:1fr 1fr;}
}

.field{display:flex;flex-direction:column;gap:8px;}

.field label{font-size:0.86rem;font-weight:700;color:var(--color-dark);}

.field input,.field textarea,.field select{
  font-family:var(--font-body);
  font-size:0.96rem;
  padding:13px 16px;
  border-radius:var(--radius-sm);
  border:1px solid var(--color-border);
  background:var(--color-bg-alt);
  color:var(--color-text);
  outline:none;
  transition:border-color .2s ease,background .2s ease;
}

.field input:focus,.field textarea:focus,.field select:focus{
  border-color:var(--color-primary);
  background:#fff;
}

.field textarea{resize:vertical;min-height:120px;}

.field-error{font-size:0.8rem;color:#dc2626;min-height:16px;}

.field-consent{
  flex-direction:row;
  align-items:flex-start;
  gap:10px;
  margin-bottom:20px;
}
.field-consent input{width:18px;height:18px;margin-top:2px;flex-shrink:0;}
.field-consent label{font-weight:500;font-size:0.86rem;color:var(--color-text-light);}

.form-status{
  font-size:0.88rem;
  margin-top:12px;
  min-height:20px;
}
.form-status.is-error{color:#dc2626;font-weight:600;}

.honeypot-field{position:absolute;left:-9999px;opacity:0;height:0;width:0;overflow:hidden;}

.modal-overlay{
  position:fixed;
  inset:0;
  background:rgba(15,42,39,0.6);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:1000;
  padding:20px;
}
.modal-overlay.is-visible{display:flex;}

.modal-box{
  background:#fff;
  border-radius:var(--radius-lg);
  padding:40px 32px;
  max-width:420px;
  width:100%;
  text-align:center;
  box-shadow:var(--shadow-md);
  animation:pop .25s ease;
}

@keyframes pop{
  from{transform:scale(0.9);opacity:0;}
  to{transform:scale(1);opacity:1;}
}

.modal-icon{
  width:70px;
  height:70px;
  border-radius:50%;
  background:var(--color-primary-light);
  color:var(--color-primary-dark);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:2rem;
  margin:0 auto 20px;
}

.modal-box h3{margin-bottom:10px;}
.modal-box p{margin-bottom:24px;font-size:0.95rem;}

.split-block{
  display:grid;
  grid-template-columns:1fr;
  gap:34px;
  align-items:center;
}
@media (min-width:900px){
  .split-block{grid-template-columns:1fr 1fr;gap:56px;}
  .split-block.is-reverse .split-media{order:2;}
  .split-block.is-reverse .split-copy{order:1;}
}

.split-media img{
  border-radius:var(--radius-lg);
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  box-shadow:var(--shadow-sm);
}

.split-copy ul{margin-top:20px;display:flex;flex-direction:column;gap:12px;}
.split-copy ul li{display:flex;gap:10px;align-items:flex-start;font-size:0.96rem;color:var(--color-text);}
.split-copy ul li i{color:var(--color-primary);margin-top:4px;}

.process-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:22px;
  counter-reset:step;
}
@media (min-width:760px){
  .process-grid{grid-template-columns:repeat(4,1fr);}
}
.process-card{
  position:relative;
  background:#fff;
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  padding:30px 22px 24px;
}
.process-card::before{
  counter-increment:step;
  content:counter(step);
  display:flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  border-radius:50%;
  background:var(--color-primary);
  color:#fff;
  font-family:var(--font-heading);
  font-weight:700;
  margin-bottom:16px;
}
.process-card h3{font-size:1.08rem;margin-bottom:8px;}
.process-card p{font-size:0.9rem;}

.stats-strip{
  background:var(--color-dark);
  color:#fff;
  border-radius:var(--radius-lg);
  padding:44px 30px;
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:28px;
  text-align:center;
}
@media (min-width:760px){
  .stats-strip{grid-template-columns:repeat(4,1fr);}
}
.stats-strip strong{
  display:block;
  font-family:var(--font-heading);
  font-size:2rem;
  color:#fff;
}
.stats-strip span{font-size:0.86rem;color:rgba(255,255,255,0.72);}

.testimonial-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:22px;
}
@media (min-width:760px){
  .testimonial-grid{grid-template-columns:repeat(3,1fr);}
}
.testimonial-card{
  background:#fff;
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  padding:28px 24px;
}
.testimonial-stars{color:var(--color-accent);margin-bottom:14px;font-size:0.9rem;}
.testimonial-card p{font-size:0.95rem;font-style:italic;margin-bottom:18px;}
.testimonial-author{display:flex;align-items:center;gap:12px;}
.testimonial-author strong{font-size:0.92rem;color:var(--color-dark);display:block;}
.testimonial-author span{font-size:0.82rem;}

.checklist-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
}
@media (min-width:640px){
  .checklist-grid{grid-template-columns:repeat(2,1fr);}
}
.checklist-item{
  display:flex;
  gap:14px;
  align-items:flex-start;
  background:#fff;
  border:1px solid var(--color-border);
  padding:20px;
  border-radius:var(--radius-md);
}
.checklist-item i{
  color:var(--color-primary);
  font-size:1.3rem;
  margin-top:2px;
}
.checklist-item h3{font-size:1rem;margin-bottom:4px;}
.checklist-item p{font-size:0.88rem;}

.cta-band{
  background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);
  border-radius:var(--radius-lg);
  padding:48px 34px;
  color:#fff;
  text-align:center;
}
.cta-band h2{color:#fff;margin-bottom:12px;}
.cta-band p{color:rgba(255,255,255,0.85);max-width:520px;margin:0 auto 28px;}

.area-list{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  justify-content:center;
}
.area-chip{
  background:#fff;
  border:1px solid var(--color-border);
  padding:10px 18px;
  border-radius:999px;
  font-size:0.88rem;
  font-weight:600;
  color:var(--color-dark);
}

.page-hero{
  background:var(--color-bg-dark);
  color:#fff;
  padding:58px 0 46px;
  text-align:center;
}
.page-hero h1{color:#fff;}
.page-hero p{color:rgba(255,255,255,0.75);max-width:560px;margin:14px auto 0;}

.legal-content{
  max-width:820px;
  margin:0 auto;
  padding:64px 0;
}
.legal-content h2{margin:34px 0 14px;font-size:1.3rem;}
.legal-content h2:first-child{margin-top:0;}
.legal-content p{margin-bottom:14px;}
.legal-content ul{margin:0 0 14px 20px;list-style:disc;}
.legal-content ul li{margin-bottom:8px;color:var(--color-text-light);}
.legal-content .legal-updated{
  font-size:0.86rem;
  color:var(--color-text-light);
  margin-bottom:30px;
  display:block;
}

.services-list-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:24px;
  padding:60px 0;
}
@media (min-width:700px){
  .services-list-grid{grid-template-columns:repeat(2,1fr);}
}

.service-list-card{
  display:flex;
  flex-direction:column;
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  overflow:hidden;
  background:#fff;
  transition:box-shadow .2s ease,transform .2s ease;
}
.service-list-card:hover{box-shadow:var(--shadow-md);transform:translateY(-4px);}
.service-list-card img{aspect-ratio:16/10;object-fit:cover;width:100%;}
.service-list-body{padding:22px 22px 26px;}
.service-list-body h3{margin-bottom:8px;}
.service-list-body p{font-size:0.94rem;margin-bottom:16px;}

.service-hero{
  background:var(--color-bg-dark);
  color:#fff;
  padding:58px 0;
}
.service-hero-inner{
  display:grid;
  grid-template-columns:1fr;
  gap:30px;
  align-items:center;
}
@media (min-width:860px){
  .service-hero-inner{grid-template-columns:1.1fr 0.9fr;}
}
.service-hero h1{color:#fff;}
.service-hero p{color:rgba(255,255,255,0.78);margin-top:14px;}
.service-hero img{
  border-radius:var(--radius-lg);
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  box-shadow:0 20px 50px rgba(0,0,0,0.3);
}

.service-detail-section{padding:64px 0;}

.site-footer{
  background:var(--color-dark);
  color:rgba(255,255,255,0.72);
  padding:56px 0 26px;
}

.footer-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:34px;
}
@media (min-width:760px){
  .footer-grid{grid-template-columns:1.3fr 1fr 1fr;}
}

.footer-brand img{width:44px;height:44px;margin-bottom:14px;}
.footer-brand p{color:rgba(255,255,255,0.6);font-size:0.9rem;max-width:320px;}

.footer-col h4{color:#fff;font-size:0.98rem;margin-bottom:16px;}
.footer-col ul{display:flex;flex-direction:column;gap:10px;}
.footer-col a{font-size:0.9rem;color:rgba(255,255,255,0.65);transition:color .2s ease;}
.footer-col a:hover{color:#fff;}

.footer-bottom{
  border-top:1px solid rgba(255,255,255,0.1);
  margin-top:40px;
  padding-top:22px;
  text-align:center;
  font-size:0.82rem;
  color:rgba(255,255,255,0.5);
}

.fa-solid,.fa-regular{line-height:1;}

.btn-spaced{margin-top:26px;}
.btn-block{width:100%;}
