.home-hero{padding:28px 0 24px}
.home-hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);overflow:hidden;align-items:center}
.hero-copy{padding:clamp(26px,5vw,54px);align-self:center}
.hero-copy h1{font-size:clamp(2.2rem,5vw,3.8rem);max-width:720px;margin:14px 0 18px;line-height:1.04}
.hero-copy .lead{max-width:720px}
.hero-media{margin:24px 24px 24px 0;background:#eef5f2;overflow:hidden;position:relative;border:1px solid var(--line);border-radius:18px;aspect-ratio:3/2}
.hero-media picture{display:block;width:100%;height:100%}
.hero-media img{display:block;width:100%;height:100%;max-width:none;object-fit:contain;object-position:center}
.badge-row{display:flex;flex-wrap:wrap;gap:9px;margin:22px 0 0}
.home-badge{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border-radius:999px;background:var(--brand-soft);color:var(--brand-dark);font-size:13px;font-weight:850;border:1px solid #c4e2db}
.availability-note{display:flex;align-items:flex-start;gap:10px;margin:17px 0 0;color:var(--muted);font-size:14px}
.availability-note strong{color:var(--text)}
.home-section{padding:38px 0}
.home-section.alt{background:#fff;border-block:1px solid var(--line)}
.section-heading{max-width:820px;margin-bottom:22px}
.section-heading h2{font-size:clamp(1.9rem,4vw,2.65rem)}
.about-layout,.pricing-layout,.contact-layout,.booking-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);gap:22px}
.about-layout>*,.pricing-layout>*,.contact-layout>*,.booking-layout>*{min-width:0}
.home-card{padding:26px}
.home-card h3{margin-top:0}
.service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.service-grid-extra{grid-template-columns:repeat(3,minmax(0,1fr))}
.service-card{padding:22px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 8px 24px rgba(15,45,40,.06)}
.service-card .icon{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:var(--brand-soft);font-size:22px;margin-bottom:14px}
.service-card h3{font-size:19px;margin:0 0 8px}
.service-card p{color:var(--muted);font-size:14px;margin:0}
.service-card .text-link{display:inline-flex;margin-top:13px}
.service-group-head{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin:8px 0 13px;padding-top:5px}
.service-group-head h3{margin:3px 0 0;font-size:1.35rem}
.service-group-head p{max-width:560px;margin:0;color:var(--muted);font-size:14px}
.service-grid-main{margin-bottom:30px}
.service-card-main{border-color:#c4e2db;background:linear-gradient(180deg,#fff 0%,#fbfefd 100%)}
.service-card .price{display:inline-flex;margin-top:13px;padding:6px 9px;border-radius:10px;background:#102e29;color:#fff;font-weight:800;font-size:12px}
.table-wrap{overflow-x:auto;max-width:100%;border:1px solid var(--line);border-radius:16px}
.price-table{width:100%;border-collapse:collapse;background:#fff;min-width:430px}
.price-table th,.price-table td{padding:13px 15px;text-align:left;border-bottom:1px solid var(--line)}
.price-table th{background:#edf5f2;font-size:13px}
.price-table tr:last-child td{border-bottom:0}
.price-table td:last-child,.price-table th:last-child{text-align:right;font-weight:800}
.price-notes-home{display:grid;gap:12px;min-width:0}
.price-note{padding:15px 16px;border:1px solid var(--line);border-radius:16px;background:#fff;min-width:0}
.price-note strong{display:block;margin-bottom:3px}
.price-note span{color:var(--muted);font-size:14px;overflow-wrap:anywhere}
.tax-box{margin-top:18px;padding:17px 18px;border-radius:18px;background:#fff8e8;border:1px solid #f4d28d}
.process-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.process-step{padding:22px}
.step-number{width:38px;height:38px;border-radius:999px;display:grid;place-items:center;background:var(--brand);color:#fff;font-weight:900;margin-bottom:13px}
.process-step h3{font-size:18px}
.process-step p{font-size:14px;color:var(--muted);margin:0}
.booking-layout{align-items:stretch}
.review-card{background:linear-gradient(140deg,#0f766e,#0b5d57);color:#fff;border:0}
.review-card .eyebrow,.review-card .subtext{color:#d8eeea}
.review-card .btn-secondary{border-color:transparent}
.contact-form-card{padding:28px}
.form-note{padding:13px 14px;border-radius:14px;background:var(--brand-soft);color:var(--brand-dark);font-size:13px}
.adaptive-fields{display:grid;gap:14px}
#quickCalcBox.notice{margin-top:4px}
#serviceSpecificFields>.form-note{margin-bottom:2px}
.contact-details{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin-top:18px;min-width:0}
.contact-detail{display:flex;gap:11px;align-items:flex-start;padding:14px;border:1px solid var(--line);border-radius:15px;background:#fff;min-width:0}
.contact-detail>div{min-width:0}
.contact-detail .text-link{overflow-wrap:anywhere;word-break:break-word}
.faq-list{display:grid;gap:12px}
.faq-list details{border:1px solid var(--line);border-radius:16px;background:#fff;padding:0 17px}
.faq-list summary{cursor:pointer;font-weight:800;padding:16px 28px 16px 0;position:relative}
.faq-list summary::after{content:"+";position:absolute;right:0;top:13px;font-size:24px;color:var(--brand)}
.faq-list details[open] summary::after{content:"–"}
.faq-list details p{color:var(--muted);padding:0 0 16px;margin:0}
.whatsapp-float{position:fixed;right:18px;bottom:18px;z-index:40;background:#128c4a;color:#fff;border-radius:999px;padding:13px 17px;box-shadow:0 12px 28px rgba(0,0,0,.22);font-weight:850}
.whatsapp-float:hover{background:#0f7a40}

@media (max-width:1040px){
  .home-hero-grid,.about-layout,.pricing-layout,.contact-layout,.booking-layout{grid-template-columns:minmax(0,1fr)}
  .hero-media{min-height:390px}
  .hero-media img{object-position:50% 0}
  .service-grid,.service-grid-extra{grid-template-columns:repeat(2,minmax(0,1fr))}
  .process-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:680px){
  .home-hero{padding-top:12px}
  .hero-media{display:none}
  .hero-copy{padding:22px 19px 24px}
  .hero-copy h1{font-size:1.95rem;margin-top:10px;line-height:1.08}
  .hero-copy .lead{font-size:16px}
  .hero-copy .row .btn{width:100%}
  .badge-row{margin-top:17px;gap:7px}
  .home-badge{font-size:12px;padding:7px 9px}
  .availability-note{font-size:13px;margin-top:13px}
  .service-grid,.service-grid-extra,.process-grid{grid-template-columns:minmax(0,1fr)}
  .service-group-head{display:block;margin-top:5px}
  .service-group-head p{margin-top:7px}
  .service-grid-main{margin-bottom:26px}
  .home-section{padding:30px 0}
  .home-card,.process-step,.contact-form-card{padding:21px}
  .price-table{min-width:0;table-layout:fixed}
  .price-table th,.price-table td{padding:11px 10px}
  .whatsapp-float{right:12px;bottom:calc(12px + env(safe-area-inset-bottom));padding:12px 14px;font-size:14px}
}
