:root {
  --red:#ed1c24;
  --black:#080808;
  --graphite:#202020;
  --gray:#f5f5f5;
  --muted:#686868;
  --green:#159b4b;
  --line:#e6e6e6;
  --heading:'Barlow Condensed',Impact,sans-serif;
  --body:'Inter',Arial,sans-serif
}

* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:150px
}

body {
  margin:0;
  font-family:var(--body);
  color:var(--black);
  background:#fff;
  font-size:16px;
  line-height:1.7
}

button,a {
  -webkit-tap-highlight-color:transparent
}

button {
  font:inherit;
  cursor:pointer
}

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

button {
  border:0
}

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

h1,h2,h3,p,figure {
  margin:0
}

h1,h2,h3 {
  font-family:var(--heading);
  line-height:1.04;
  font-weight:700
}

h2 {
  font-size:48px;
  letter-spacing:.15px
}

h3 {
  font-size:26px
}

p {
  font-size:15px;
  color:var(--muted);
  line-height:1.8
}

.container {
  width:min(1180px,calc(100% - 80px));
  margin:auto
}

.section {
  padding:96px 0
}

.text-red {
  color:var(--red)
}

.eyebrow {
  font-size:13px;
  font-weight:800;
  letter-spacing:2px;
  color:var(--red);
  margin-bottom:17px;
  display:flex;
  align-items:center;
  gap:10px
}

.eyebrow.light {
  color:#e3e3e3
}

.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}

.red-line {
  height:2px;
  background:var(--red);
  width:26px
}

.status-dot {
  display:inline-block;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#24c568;
  box-shadow:0 0 0 4px #24c56812;
  flex-shrink:0
}

.btn {
  min-height:52px;
  padding:15px 24px;
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:11px;
  font-size:13px;
  font-weight:800;
  letter-spacing:.2px;
  border-radius:5px;
  transition:background .2s,transform .2s;
  line-height:1.4;
  text-align:center
}

.btn:hover {
  transform:translateY(-2px)
}

.btn i:first-child {
  font-size:22px
}

.btn span:last-child {
  margin-left:8px;
  font-size:19px
}

.btn-whatsapp {
  color:#fff;
  background:var(--green);
  box-shadow:0 4px 15px #0000000b
}

.btn-whatsapp:hover {
  background:#117e3d
}

.btn-outline {
  color:#fff;
  background:#ffffff04;
  border:1px solid #ffffff60
}

.btn-outline:hover {
  background:#ffffff15
}

.btn-dark {
  background:var(--black);
  color:white
}

.btn-light {
  background:#fff;
  border:1px solid var(--line)
}

.btn-large {
  padding:20px 28px;
  min-height:64px;
  font-size:14px
}

.button-row {
  display:flex;
  gap:12px
}

.skip-link {
  position:fixed;
  top:-80px;
  left:10px;
  background:#fff;
  padding:10px;
  z-index:200
}

.skip-link:focus {
  top:10px
}

:focus-visible {
  outline:3px solid #e79d00;
  outline-offset:4px
}

.site-header {
  position:sticky;
  top:0;
  z-index:40;
  background:#ffffff;
  color:var(--black);
  box-shadow:0 2px 16px rgba(0,0,0,0.06);
  border-bottom:1px solid #eaeaea
}

.header-main {
  display:flex;
  align-items:center;
  gap:24px;
  height:95px
}

.brand {
  background:transparent;
  width:auto;
  height:95px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0
}

.brand img {
  max-height:85px;
  width:auto;
  object-fit:contain;
  display:block
}

.brand-placeholder {
  color:#111;
  text-align:center;
  font-size:17px;
  font-weight:600;
  line-height:1.3
}

.brand-placeholder small {
  font-size:11px;
  font-weight:400
}

.brand-placeholder em {
  display:block;
  font-size:8px;
  font-style:normal;
  color:#888;
  margin-top:7px
}

.service-photo-pending {
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:13px;
  background:radial-gradient(ellipse at 70% 20%,#421a1a,transparent 80%),#181818;
  color:#ed1c24
}

.service-photo-pending>i {
  font-size:58px
}

.service-photo-pending>small {
  color:#aaa;
  font-size:11px;
  letter-spacing:1.5px
}

@media(max-width:767px) {
  .brand-placeholder {
    font-size:14px
  }
.brand-placeholder small {
    font-size:9px
  }
.brand-placeholder em {
    font-size:7px
  }
}

.header-tag {
  position:relative;
  padding-left:15px;
  line-height:1.4
}

.header-tag>.status-dot {
  position:absolute;
  left:0;
  top:8px;
  background:var(--red);
  box-shadow:none
}

.header-tag strong {
  font-family:var(--heading);
  font-size:24px;
  color:var(--red);
  letter-spacing:.6px
}

.header-tag small {
  display:block;
  font-size:13px;
  color:#222;
  letter-spacing:.4px;
  font-weight:600
}

.header-assurance {
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:12px;
  font-size:13px;
  line-height:1.6;
  color:#333
}

.header-assurance i {
  font-size:26px;
  color:var(--black)
}

.header-assurance strong {
  color:var(--black);
  font-weight:700
}

.header-cta {
  margin-left:12px;
  min-height:46px;
  font-size:13px
}

.header-cta .arrow {
  font-size:13px;
  margin-left:5px
}

.main-nav {
  background:var(--black);
  border-top:1px solid #222
}

.nav-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  min-height:43px
}

.nav-inner>a {
  color:#d6d6d6;
  font-size:13px;
  font-weight:600;
  letter-spacing:.3px;
  transition:color .2s
}

.nav-inner>a:hover {
  color:var(--red)
}

.nav-inner>span {
  font-size:12px;
  color:#aaa;
  margin-left:38px
}

.nav-inner>span .status-dot {
  width:5px;
  height:5px;
  margin-right:6px
}

.menu-toggle {
  display:none
}

.hero {
  position:relative;
  min-height:594px;
  overflow:hidden;
  background:#111;
  color:white;
  isolation:isolate
}

.hero.hero-banner {
  min-height:0;
  background:#080808;
  line-height:0
}

.hero.hero-banner:after {
  display:none
}

.hero-banner-btn,
.hero-banner-link {
  display:block;
  width:100%;
  padding:0;
  margin:0;
  border:0;
  background:transparent;
  cursor:pointer;
  line-height:0;
  text-decoration:none
}

.hero-picture {
  display:block;
  width:100%;
  line-height:0;
  margin:0;
  padding:0
}

.hero-banner-img {
  display:block;
  width:100%;
  height:auto;
  max-width:100%;
  aspect-ratio:1672 / 940;
  object-fit:contain;
  margin:0;
  padding:0
}

.hero-image {
  position:absolute;
  right:0;
  top:0;
  width:74%;
  height:100%;
  object-fit:cover;
  object-position:center;
  z-index:-3
}

.hero-shade {
  position:absolute;
  inset:0;
  z-index:-2;
  background:linear-gradient(90deg,#080808 0%,#080808f5 25%,#080808bd 45%,#08080827 74%),linear-gradient(0deg,#080808c9 0%,transparent 35%,#08080822 100%)
}

.hero:after {
  content:'';
  position:absolute;
  bottom:-320px;
  left:-250px;
  width:720px;
  height:600px;
  z-index:-1;
  background:radial-gradient(ellipse,#720b0b66,transparent 65%);
  pointer-events:none
}

.hero-content {
  padding-top:64px;
  padding-bottom:72px
}

.hero .eyebrow {
  font-size:13px;
  letter-spacing:2px
}

.hero h1 {
  font-size:78px;
  line-height:.99;
  letter-spacing:.4px;
  max-width:650px
}

.hero h1>span {
  color:var(--red)
}

.hero h2 {
  font:500 20px var(--body);
  margin-top:22px
}

.hero p {
  max-width:520px;
  color:#bcbcbc;
  font-size:15px;
  margin-top:18px;
  line-height:1.95
}

.hero .button-row {
  margin-top:26px
}

.hero-badges {
  display:flex;
  gap:20px;
  margin-top:28px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.4px;
  color:#c5c5c5
}

.hero-badges i {
  color:var(--red);
  font-size:14px;
  margin-right:4px
}

.hero-photo-label {
  position:absolute;
  bottom:31px;
  right:42px;
  font-size:12px;
  letter-spacing:1.4px;
  display:flex;
  align-items:center;
  gap:10px;
  color:#eee
}

.hero-index {
  position:absolute;
  right:42px;
  top:30px;
  color:#fff;
  font-size:14px;
  font-weight:700
}

.hero-index span {
  color:#c6c6c6;
  font-size:11px;
  letter-spacing:1px;
  margin-left:8px
}

.trust-strip {
  background:#f6f6f6;
  border-bottom:1px solid #ebebeb
}

.trust-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  padding:28px 0
}

.trust-grid>div {
  display:flex;
  align-items:center;
  gap:17px;
  padding:0 25px;
  border-right:1px solid #ddd
}

.trust-grid>div:first-child {
  padding-left:0
}

.trust-grid>div:last-child {
  border:0
}

.trust-grid i {
  color:var(--red);
  font-size:28px
}

.trust-grid strong {
  font-family:var(--heading);
  font-size:22px;
  letter-spacing:.3px;
  display:block;
  line-height:1.4
}

.trust-grid small {
  display:block;
  font-size:13px;
  color:#747474
}

.about-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  align-items:center
}

.about-visual {
  position:relative;
  padding:0 0 23px 0
}

.about-visual>img {
  width:100%;
  height:412px;
  object-fit:cover;
  border-radius:7px
}

.image-corner {
  position:absolute;
  top:-12px;
  left:-12px;
  width:80px;
  height:80px;
  border-left:3px solid var(--red);
  border-top:3px solid var(--red);
  border-radius:6px 0 0 0;
  z-index:-1
}

.availability-card {
  position:absolute;
  bottom:0;
  right:-25px;
  display:flex;
  align-items:center;
  gap:20px;
  background:var(--black);
  color:#fff;
  border-left:4px solid var(--red);
  padding:19px 25px;
  border-radius:4px;
  box-shadow:0 10px 30px #0002
}

.availability-card>strong {
  font-family:var(--heading);
  font-size:64px;
  line-height:1
}

.availability-card>strong>span {
  color:var(--red);
  font-size:40px
}

.availability-card>span {
  font-size:12px;
  letter-spacing:1px;
  line-height:1.8;
  color:#ccc
}

.about-copy h2 {
  font-size:48px;
  margin-bottom:22px
}

.about-copy p {
  font-size:15px;
  margin-top:12px
}

.callout {
  border-left:3px solid var(--red);
  padding-left:15px;
  line-height:1.7;
  margin:22px 0;
  font-size:17px
}

.callout strong {
  font-weight:700
}

.services-section {
  background:var(--gray)
}

.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:30px;
  margin-bottom:38px
}

.section-heading p {
  font-size:15px;
  flex-shrink:0
}

.section-heading h2 {
  font-size:44px
}

.service-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px
}

.service-card {
  background:#fff;
  border:1px solid #e9e9e9;
  border-radius:8px;
  overflow:hidden;
  transition:transform .2s,box-shadow .2s
}

.service-card:hover {
  transform:translateY(-5px);
  box-shadow:0 16px 30px #0000000c
}

.service-image {
  height:205px;
  position:relative;
  overflow:hidden
}

.service-image img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .5s
}

.service-card:hover img {
  transform:scale(1.04)
}

.service-image:after {
  content:'';
  position:absolute;
  inset:50% 0 0;
  background:linear-gradient(transparent,#000a)
}

.service-image>span {
  position:absolute;
  bottom:15px;
  left:20px;
  z-index:1;
  color:white;
  font-size:12px;
  font-weight:700;
  letter-spacing:1.5px
}

.service-copy {
  padding:26px 23px
}

.service-icon {
  font-size:26px;
  color:var(--red);
  margin-bottom:14px
}

.service-copy h3 {
  font-size:28px
}

.service-copy p {
  font-size:14px;
  min-height:81px;
  margin:14px 0 20px
}

.service-copy .btn {
  width:100%;
  font-size:13px
}

.service-copy .btn>span {
  margin-left:auto
}

.complete-services {
  margin-top:65px
}

.subheading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:26px;
  gap:15px
}

.subheading h2 {
  font-size:32px
}

.subheading>span {
  font-size:14px;
  color:#777
}

.details-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px
}

.details-grid article {
  padding:24px 20px;
  display:flex;
  align-items:flex-start;
  gap:17px;
  border:1px solid #e1e1e1;
  border-radius:6px;
  background:#fafafa
}

.details-grid article>i {
  color:var(--red);
  font-size:26px;
  min-width:25px;
  margin-top:3px
}

.details-grid h3 {
  font-size:22px
}

.details-grid p {
  font-size:14px;
  margin-top:9px;
  line-height:1.7
}

.emergency-section {
  background:radial-gradient(ellipse at 95% 100%,#510d10,transparent 60%),#0b0b0b;
  color:#fff;
  padding:51px 0;
  position:relative;
  border-top:3px solid var(--red)
}

.emergency-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px
}

.emergency-inner h2 {
  font-size:46px
}

.emergency-inner h2 span {
  color:var(--red)
}

.emergency-inner p {
  font-size:15px;
  color:#ccc;
  margin-top:15px
}

.emergency-inner .eyebrow {
  font-size:13px;
  margin-bottom:13px
}

.emergency-inner .btn {
  flex-shrink:0;
  font-size:13px
}

.gallery-topline {
  display:flex;
  justify-content:space-between;
  border-top:1px solid var(--line);
  padding:18px 0;
  color:#777;
  font-size:13px
}

.gallery-topline>span {
  font-weight:600;
  font-size:12px;
  letter-spacing:1px;
  color:#333
}

.gallery-topline .status-dot {
  background:var(--red);
  box-shadow:none;
  margin-right:6px;
  width:6px;
  height:6px
}

.gallery-topline small i {
  margin-right:5px
}

.gallery-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  grid-auto-rows:195px;
  gap:17px;
  grid-auto-flow:dense
}

.gallery-item {
  position:relative;
  border-radius:6px;
  overflow:hidden;
  background:#202020;
  padding:0;
  color:#fff;
  text-align:left;
  box-shadow:0 3px 10px #0000000a
}

.gallery-item.tall {
  grid-row:span 2
}

.gallery-item.wide {
  grid-column:span 2
}

.gallery-item img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .5s
}

.gallery-item:hover img {
  transform:scale(1.05)
}

.gallery-item:after {
  position:absolute;
  content:'';
  inset:45% 0 0;
  background:linear-gradient(transparent,#000b)
}

.gallery-item>span {
  position:absolute;
  bottom:19px;
  left:20px;
  right:20px;
  z-index:1;
  font-size:11px;
  font-weight:700;
  letter-spacing:1.3px;
  color:#eee
}

.gallery-item strong {
  display:block;
  font-family:var(--heading);
  font-weight:600;
  font-size:22px;
  letter-spacing:.1px;
  margin-top:5px;
  line-height:1.1;
  color:white
}

.gallery-item>i {
  position:absolute;
  top:15px;
  right:15px;
  display:grid;
  place-items:center;
  width:29px;
  height:29px;
  border:1px solid #ffffff65;
  background:#0003;
  border-radius:50%;
  font-size:10px
}

.gallery-bottom {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-top:25px;
  font-size:14px;
  color:#777
}

.text-button {
  background:transparent;
  font-size:13px;
  font-weight:800;
  color:var(--red);
  padding:10px 0
}

.text-button i {
  margin-left:14px
}

.why-section {
  background:var(--gray)
}

.center-heading {
  text-align:center;
  max-width:780px;
  margin:0 auto 44px
}

.center-heading .eyebrow {
  justify-content:center
}

.center-heading h2 {
  font-size:44px
}

.why-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px
}

.why-grid article {
  border:1px solid #e8e8e8;
  border-radius:6px;
  background:#fff;
  padding:30px
}

.why-grid article>i {
  color:var(--red);
  font-size:28px;
  margin-bottom:20px
}

.why-grid h3 {
  font-size:25px
}

.why-grid p {
  font-size:14px;
  margin-top:12px;
  line-height:1.7
}

/* Reviews Section */
.reviews-section {
  background:#ffffff;
  position:relative
}

.reviews-header-block {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:40px;
  margin-bottom:45px;
  padding-bottom:30px;
  border-bottom:1px solid #ebebeb
}

.reviews-title-area {
  max-width:620px
}

.reviews-title-area h2 {
  font-size:48px;
  line-height:1.1;
  margin-bottom:12px
}

.reviews-title-area p {
  font-size:15px;
  color:#666;
  line-height:1.6
}

.google-score-card {
  background:linear-gradient(135deg,#111111 0%,#1c1c1c 100%);
  color:#fff;
  border-radius:12px;
  padding:24px 28px;
  min-width:320px;
  box-shadow:0 10px 30px rgba(0,0,0,0.12);
  display:flex;
  flex-direction:column;
  gap:16px;
  border:1px solid #2a2a2a
}

.google-badge-pill {
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:rgba(255,255,255,0.1);
  color:#f0f0f0;
  padding:5px 12px;
  border-radius:20px;
  font-size:12px;
  font-weight:600;
  letter-spacing:.5px;
  width:fit-content
}

.google-badge-pill i {
  color:#4285f4
}

.score-row {
  display:flex;
  align-items:center;
  gap:16px
}

.score-number {
  font-family:var(--heading);
  font-size:52px;
  font-weight:700;
  line-height:1;
  color:#ffffff
}

.score-stars-col {
  display:flex;
  flex-direction:column;
  gap:4px
}

.stars-gold {
  color:#ffb800;
  display:flex;
  gap:3px;
  font-size:15px
}

.score-label {
  font-size:12px;
  color:#aaa;
  letter-spacing:.3px
}

.btn-score-cta {
  width:100%;
  justify-content:center;
  font-size:12px;
  letter-spacing:.8px;
  padding:12px 16px;
  background:#272727;
  border:1px solid rgba(255,255,255,0.12)
}

.btn-score-cta:hover {
  background:var(--red);
  border-color:var(--red)
}

.reviews-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:24px
}

.review-card {
  background:#fafafa;
  border:1px solid #e7e7e7;
  border-radius:10px;
  padding:28px 30px;
  display:flex;
  flex-direction:column;
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
  position:relative
}

.review-card:hover {
  transform:translateY(-4px);
  box-shadow:0 12px 28px rgba(0,0,0,0.07);
  border-color:#d2d2d2;
  background:#ffffff
}

.review-card-top {
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:14px
}

.review-avatar {
  width:44px;
  height:44px;
  border-radius:50%;
  background:linear-gradient(135deg,#222 0%,#444 100%);
  color:#ffffff;
  font-weight:700;
  font-size:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  box-shadow:0 2px 8px rgba(0,0,0,0.15)
}

.review-card:nth-child(1) .review-avatar { background:linear-gradient(135deg,#c0262d,#ea3a44); }
.review-card:nth-child(2) .review-avatar { background:linear-gradient(135deg,#1b5e20,#2e7d32); }
.review-card:nth-child(3) .review-avatar { background:linear-gradient(135deg,#e65100,#f57c00); }
.review-card:nth-child(4) .review-avatar { background:linear-gradient(135deg,#1565c0,#1976d2); }

.review-meta {
  flex:1;
  display:flex;
  flex-direction:column;
  gap:2px
}

.review-meta strong {
  font-size:15px;
  font-weight:700;
  color:var(--black)
}

.review-verified {
  font-size:12px;
  color:#777;
  display:flex;
  align-items:center;
  gap:5px
}

.review-verified i.fa-circle-check {
  color:#10b981;
  font-size:11px
}

.badge-localguide {
  color:#d97706;
  font-weight:600
}

.badge-localguide i {
  color:#f59e0b
}

.quote-icon {
  font-size:24px;
  color:#e0e0e0;
  margin-left:auto
}

.review-stars {
  margin-bottom:12px;
  font-size:13px
}

.review-text {
  font-size:14.5px;
  line-height:1.65;
  color:#333;
  font-style:italic;
  margin:0;
  flex:1
}

.reviews-footer-note {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin-top:35px;
  padding-top:22px;
  border-top:1px solid #eeeeee;
  color:#777;
  font-size:13px;
  text-align:center
}

.reviews-footer-note i {
  color:var(--red)
}

.regions-section {
  background:#111;
  color:white
}

.regions-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:85px;
  align-items:center
}

.regions-grid h2 {
  font-size:48px;
  margin-bottom:25px
}

.regions-grid p {
  color:#aaa;
  font-size:15px;
  margin-bottom:17px
}

.regions-grid .btn {
  margin-top:10px
}

.location-list>div {
  display:flex;
  align-items:center;
  gap:16px;
  border-bottom:1px solid #ffffff1a;
  padding:20px 16px;
  font-size:15px
}

.location-list>div>i {
  color:var(--red)
}

.location-list>div>span {
  margin-left:auto;
  font-size:11px;
  letter-spacing:.5px;
  color:#888
}

.location-list>.featured-location {
  background:#202020;
  border:1px solid #ffffff15;
  border-left:3px solid var(--red);
  border-radius:5px;
  margin-bottom:10px;
  padding:25px 22px
}

.featured-location>i:first-child {
  font-size:29px
}

.location-list>.featured-location>span {
  margin:0;
  color:#fff;
  flex:1
}

.featured-location small {
  font-size:11px;
  letter-spacing:1.2px;
  color:#aaa
}

.featured-location strong {
  display:block;
  font-size:36px;
  font-family:var(--heading);
  line-height:1.4
}

.featured-location em {
  font-size:13px;
  font-style:normal;
  color:#aaa
}

.location-list>small {
  display:block;
  font-size:12px;
  color:#888;
  margin-top:17px;
  padding-left:16px
}

.region-footer {
  border-top:1px solid #ffffff1a;
  margin-top:48px;
  padding-top:25px;
  font-family:var(--heading);
  font-size:24px;
  letter-spacing:.5px;
  display:flex;
  justify-content:space-between;
  align-items:center
}

.region-footer i {
  color:var(--red);
  font-size:18px
}

.map-heading-icon {
  font-size:43px;
  color:var(--red);
  margin-right:15px
}

.map-frame {
  border:1px solid #e4e4e4;
  border-radius:7px;
  overflow:hidden;
  height:380px;
  background:#eee
}

.map-frame iframe {
  display:block;
  border:0;
  width:100%;
  height:100%
}

.map-footer {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding-top:22px;
  gap:20px
}

.map-footer>span {
  display:grid;
  grid-template-columns:22px 1fr;
  align-items:center;
  column-gap:6px
}

.map-footer i {
  color:var(--red)
}

.map-footer strong {
  font-size:14px
}

.map-footer small {
  grid-column:2;
  font-size:12px;
  color:#777
}

.map-footer .btn {
  font-size:13px
}

.contact-section {
  background:linear-gradient(110deg,#bd121a,#ed1c24);
  color:white;
  padding:64px 0;
  position:relative;
  overflow:hidden
}

.contact-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:50px
}

.contact-inner h2 {
  font-size:57px
}

.contact-inner h2>span {
  color:white
}

.contact-inner p {
  font-size:16px;
  color:#ffffffcc;
  margin-top:18px
}

.contact-inner .eyebrow {
  font-size:13px;
  color:#ffffffbf
}

.contact-actions {
  display:flex;
  flex-direction:column;
  gap:12px;
  min-width:330px
}

.contact-actions>.btn-large {
  box-shadow:0 8px 20px #0002
}

.contact-actions small {
  font-size:11px;
  letter-spacing:1px;
  text-align:center;
  margin-top:5px
}

.contact-actions .status-dot {
  width:5px;
  height:5px;
  margin-right:4px
}

.contact-phone {
  font-family:var(--heading);
  font-size:39px;
  font-weight:600;
  margin-top:18px;
  display:inline-block
}

.contact-phone[hidden] {
  display:none
}

.contact-status {
  font-size:13px;
  color:#ffffffbb;
  display:block;
  margin-top:15px
}

.site-footer {
  background:#080808;
  color:#b3b3b3;
  padding:54px 0 20px
}

.footer-main {
  display:grid;
  grid-template-columns:1.2fr 1fr 1fr;
  gap:50px;
  align-items:center
}

.footer-logo {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  padding:6px 12px;
  border-radius:8px;
  box-shadow:0 4px 15px rgba(0,0,0,0.3);
  margin-bottom:12px;
  transition:transform .2s,box-shadow .2s
}

.footer-logo:hover {
  transform:translateY(-2px);
  box-shadow:0 6px 20px rgba(0,0,0,0.45)
}

.footer-logo img {
  max-height:75px;
  width:auto;
  object-fit:contain;
  display:block
}

.footer-brand>p {
  font-size:13px;
  color:#999;
  margin-top:8px
}

.footer-main nav {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px 25px;
  font-size:13px
}

.footer-main nav a:hover {
  color:white
}

.footer-contact>span {
  display:block;
  font-size:14px;
  margin-bottom:14px
}

.footer-contact>span .status-dot {
  margin-right:5px
}

.footer-contact .btn {
  font-size:13px;
  min-height:46px
}

.footer-bottom {
  border-top:1px solid #ffffff16;
  padding-top:22px;
  margin-top:38px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px
}

.footer-bottom small {
  font-size:12px;
  color:#888;
  line-height:1.6
}

.footer-bottom small:last-child {
  text-align:right
}

.footer-bottom a {
  color:#bcbcbc;
  font-size:12px
}

.footer-bottom a i {
  color:#25d366;
  margin-left:4px
}

.floating-whatsapp {
  position:fixed;
  right:23px;
  bottom:24px;
  width:56px;
  height:56px;
  background:#159b4b;
  border:3px solid white;
  border-radius:50%;
  color:white;
  z-index:35;
  box-shadow:0 4px 18px #0003;
  animation:pulse 3.5s infinite
}

.floating-whatsapp>i {
  font-size:29px
}

.floating-whatsapp>span {
  position:absolute;
  right:65px;
  top:9px;
  background:#fff;
  color:#333;
  border:1px solid #ddd;
  border-radius:5px;
  white-space:nowrap;
  font-size:13px;
  padding:7px 12px;
  box-shadow:0 3px 12px #0001;
  opacity:0;
  pointer-events:none;
  transition:opacity .2s
}

.floating-whatsapp:hover>span,.floating-whatsapp:focus-visible>span {
  opacity:1
}

.mobile-conversion {
  display:none
}

@keyframes pulse {
  0%,100% {
    box-shadow:0 0 0 0 #25d36622,0 4px 18px #0003
  }
50% {
    box-shadow:0 0 0 8px #25d36605,0 4px 18px #0003
  }

}

dialog {
  border:0
}

dialog::backdrop {
  background:#000d;
  backdrop-filter:blur(5px)
}

.lightbox {
  max-width:none;
  max-height:none;
  width:100vw;
  height:100dvh;
  background:transparent;
  color:white;
  padding:65px 70px;
  overflow:hidden
}

.lightbox[open] {
  display:flex;
  align-items:center;
  justify-content:center
}

.lightbox figure {
  display:flex;
  align-items:center;
  flex-direction:column;
  width:100%;
  height:100%;
  justify-content:center
}

.lightbox img {
  max-width:100%;
  max-height:calc(100% - 70px);
  object-fit:contain;
  border-radius:4px
}

.lightbox figcaption {
  margin-top:16px;
  font-size:13px;
  text-align:center
}

.lightbox #lightbox-counter {
  font-size:10px;
  color:#aaa;
  margin-top:5px
}

.lightbox button {
  position:absolute;
  background:#ffffff16;
  color:white;
  border-radius:50%;
  width:42px;
  height:42px;
  line-height:1;
  font-size:32px;
  display:grid;
  place-items:center
}

.lightbox-close {
  top:18px;
  right:22px
}

.lightbox-prev {
  top:48%;
  left:14px
}

.lightbox-next {
  top:48%;
  right:14px
}

.information-dialog {
  max-width:calc(100vw - 32px);
  width:430px;
  padding:40px;
  border-radius:10px
}

.information-dialog>i {
  font-size:27px;
  color:var(--red);
  margin-bottom:18px
}

.information-dialog h2 {
  font-size:31px
}

.information-dialog p {
  font-size:13px;
  margin:18px 0 24px
}

.info-close {
  position:absolute;
  right:12px;
  top:9px;
  background:transparent;
  font-size:27px;
  color:#666
}

.modal-open {
  overflow:hidden
}

@media(min-width:1450px) {
  .hero {
    min-height:640px
  }
  .hero.hero-banner {
    min-height:0
  }
.hero-content {
    padding-top:83px
  }
.hero h1 {
    font-size:85px
  }

}

@media(max-width:1100px) {
  .container {
    width:calc(100% - 48px)
  }
.header-main {
    gap:20px
  }
.header-assurance {
    display:none
  }
.header-cta {
    margin-left:auto
  }
.nav-inner>span {
    margin-left:10px;
    font-size:11px
  }
.hero h1 {
    font-size:69px
  }
.hero-image {
    width:80%
  }
.hero-photo-label {
    right:24px
  }
.about-grid {
    gap:50px
  }
.section-heading {
    align-items:flex-start
  }
.section-heading h2 {
    font-size:39px
  }
.section-heading p {
    max-width:210px
  }
.trust-grid>div {
    padding:0 16px;
    gap:12px
  }
.trust-grid strong {
    font-size:20px
  }
.trust-grid small {
    font-size:12px
  }
.service-grid {
    gap:16px
  }
.service-copy {
    padding:23px 17px
  }
.service-copy .btn {
    font-size:12px;
    padding:12px 10px;
    gap:7px
  }
.service-copy h3 {
    font-size:24px
  }
.emergency-inner {
    gap:20px
  }
.emergency-inner h2 {
    font-size:38px
  }
.emergency-inner .btn {
    font-size:13px;
    padding:17px
  }
.reviews-header-block {
    flex-direction:column;
    align-items:flex-start;
    gap:28px
  }
.google-score-card {
    width:100%;
    max-width:440px
  }
.regions-grid {
    gap:50px
  }
.contact-inner h2 {
    font-size:49px
  }
.footer-main {
    gap:30px
  }

}

@media(max-width:767px) {
  html {
    scroll-padding-top:97px
  }
body {
    font-size:15px;
    padding-bottom:62px
  }
.container {
    width:calc(100% - 36px)
  }
.section {
    padding:59px 0
  }
h2 {
    font-size:36px
  }
.eyebrow {
    font-size:11px;
    letter-spacing:1.4px;
    margin-bottom:13px
  }
.header-main {
    height:84px;
    gap:13px
  }
.brand {
    width:auto;
    height:84px
  }
.brand img {
    max-height:72px;
    width:auto
  }
.header-tag {
    padding-left:0;
    flex:1
  }
.header-tag>.status-dot {
    display:none
  }
.header-tag strong {
    font-size:20px;
    letter-spacing:0
  }
.header-tag small {
    font-size:12px;
    color:#333
  }
.header-cta {
    min-height:37px;
    width:38px;
    padding:0;
    font-size:0;
    gap:0;
    margin:0
  }
.header-cta i:first-child {
    font-size:23px
  }
.header-cta .arrow {
    display:none
  }
.menu-toggle {
    display:block;
    background:transparent;
    color:var(--black);
    font-size:20px;
    padding:7px 0 7px 3px
  }
.main-nav {
    display:none;
    position:absolute;
    top:84px;
    left:0;
    right:0;
    background:#101010;
    box-shadow:0 12px 20px #0005;
    max-height:calc(100dvh - 150px);
    overflow:auto
  }
.main-nav.open {
    display:block
  }
.nav-inner {
    display:grid;
    grid-template-columns:1fr 1fr;
    padding:18px 0;
    gap:0
  }
.nav-inner>a {
    font-size:14px;
    padding:13px 8px;
    border-bottom:1px solid #ffffff10
  }
.nav-inner>span {
    grid-column:1/-1;
    font-size:12px;
    margin:17px 8px 4px
  }
.hero {
    min-height:655px
  }
  .hero.hero-banner {
    min-height:0
  }
  .hero-banner-img {
    aspect-ratio:940 / 1672
  }
.hero-image {
    width:100%;
    height:100%;
    object-position:61% center
  }
.hero-shade {
    background:linear-gradient(90deg,#080808dd,#08080875),linear-gradient(0deg,#080808fa 0%,#08080885 45%,#08080855 100%)
  }
.hero-content {
    padding-top:44px;
    padding-bottom:63px
  }
.hero .eyebrow {
    font-size:11px;
    letter-spacing:1.25px
  }
.hero h1 {
    font-size:50px;
    line-height:1.05;
    letter-spacing:0;
    margin-top:19px
  }
.hero h2 {
    font-size:16px;
    margin-top:20px;
    line-height:1.5
  }
.hero p {
    font-size:14px;
    margin-top:16px;
    max-width:350px;
    line-height:1.8;
    color:#d1d1d1
  }
.hero .button-row {
    flex-direction:column;
    margin-top:26px;
    gap:10px;
    max-width:355px
  }
.hero .btn {
    min-height:51px;
    font-size:13px
  }
.hero .btn-outline {
    min-height:44px
  }
.hero-badges {
    display:grid;
    grid-template-columns:auto auto;
    justify-content:start;
    gap:12px 20px;
    margin-top:23px;
    font-size:11px
  }
.hero-photo-label {
    font-size:10px;
    letter-spacing:1px;
    right:18px;
    bottom:20px
  }
.hero-photo-label .status-dot {
    width:5px;
    height:5px
  }
.hero-index {
    display:none
  }
.trust-grid {
    grid-template-columns:1fr 1fr;
    padding:22px 0;
    gap:21px 0
  }
.trust-grid>div {
    padding:0 10px!important;
    border:0;
    gap:10px
  }
.trust-grid>div:nth-child(odd) {
    border-right:1px solid #ddd;
    padding-left:0!important
  }
.trust-grid>div:nth-child(even) {
    padding-left:16px!important
  }
.trust-grid strong {
    font-size:18px
  }
.trust-grid small {
    font-size:11px
  }
.trust-grid i {
    font-size:20px
  }
.about-grid {
    grid-template-columns:1fr;
    gap:40px
  }
.about-visual {
    margin:7px 10px 0 4px;
    padding-bottom:20px
  }
.about-visual>img {
    height:290px
  }
.availability-card {
    right:-10px;
    padding:14px 18px;
    gap:16px
  }
.availability-card>strong {
    font-size:50px
  }
.availability-card>strong>span {
    font-size:33px
  }
.availability-card>span {
    font-size:11px
  }
.about-copy h2 {
    font-size:40px;
    margin-bottom:19px
  }
.about-copy p {
    font-size:14px
  }
.about-copy .btn {
    width:100%;
    font-size:13px;
    padding:14px 12px
  }
.section-heading {
    display:block;
    margin-bottom:28px
  }
.section-heading h2 {
    font-size:38px
  }
.section-heading p {
    max-width:none;
    font-size:14px;
    margin-top:17px
  }
.section-heading p br {
    display:none
  }
.service-grid {
    grid-template-columns:1fr;
    gap:23px
  }
.service-image {
    height:213px
  }
.service-copy {
    padding:24px
  }
.service-copy h3 {
    font-size:28px
  }
.service-copy p {
    font-size:14px;
    min-height:0;
    margin:14px 0 20px
  }
.service-copy .btn {
    font-size:13px;
    padding:14px;
    min-height:49px
  }
.service-icon {
    float:right;
    font-size:25px
  }
.complete-services {
    margin-top:42px
  }
.subheading {
    display:block
  }
.subheading h2 {
    font-size:29px;
    margin-bottom:9px
  }
.subheading>span {
    font-size:13px
  }
.details-grid {
    grid-template-columns:1fr;
    gap:11px
  }
.details-grid article {
    padding:20px;
    gap:20px
  }
.details-grid h3 {
    font-size:23px
  }
.details-grid p {
    font-size:14px;
    margin-top:6px
  }
.details-grid article>i {
    margin-top:3px;
    font-size:22px
  }
.emergency-section {
    padding:39px 0
  }
.emergency-inner {
    display:block
  }
.emergency-inner h2 {
    font-size:42px;
    max-width:300px
  }
.emergency-inner p {
    font-size:14px;
    margin-top:17px
  }
.emergency-inner .btn {
    width:100%;
    margin-top:25px;
    font-size:13px;
    min-height:58px
  }
.gallery-topline {
    font-size:11px;
    gap:10px;
    padding:15px 0
  }
.gallery-topline>span {
    font-size:10px;
    letter-spacing:.4px
  }
.gallery-topline>small {
    font-size:11px
  }
.gallery-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-auto-rows:143px;
    gap:10px
  }
.gallery-item.tall {
    grid-row:span 2
  }
.gallery-item.wide {
    grid-column:span 2
  }
.gallery-item>span {
    left:11px;
    right:8px;
    bottom:12px;
    font-size:10px;
    letter-spacing:.6px
  }
.gallery-item strong {
    font-size:18px;
    margin-top:5px
  }
.gallery-item>i {
    top:9px;
    right:9px;
    width:24px;
    height:24px;
    font-size:9px
  }
.gallery-bottom {
    display:block;
    font-size:13px;
    padding-top:20px
  }
.gallery-bottom .text-button {
    font-size:12px;
    margin-top:5px
  }
.center-heading {
    margin-bottom:28px;
    text-align:left
  }
.center-heading .eyebrow {
    justify-content:flex-start
  }
.center-heading h2 {
    font-size:37px
  }
.why-grid {
    grid-template-columns:1fr 1fr;
    gap:12px
  }
.why-grid article {
    padding:22px 16px
  }
.why-grid article>i {
    font-size:23px;
    margin-bottom:16px
  }
.why-grid h3 {
    font-size:22px
  }
.why-grid p {
    font-size:13px;
    line-height:1.7;
    margin-top:11px
  }
.reviews-title-area h2 {
    font-size:38px
  }
.reviews-header-block {
    flex-direction:column;
    align-items:stretch;
    gap:24px;
    margin-bottom:30px;
    padding-bottom:20px
  }
.google-score-card {
    min-width:0;
    width:100%;
    padding:20px
  }
.reviews-grid {
    grid-template-columns:1fr;
    gap:16px
  }
.review-card {
    padding:22px 20px
  }
.regions-grid {
    grid-template-columns:1fr;
    gap:35px
  }
.regions-grid h2 {
    font-size:42px;
    margin-bottom:20px
  }
.regions-grid p {
    font-size:14px
  }
.regions-grid .btn {
    width:100%;
    font-size:13px
  }
.location-list>div {
    font-size:13px;
    padding:18px 9px;
    gap:11px
  }
.location-list>div>span {
    font-size:10px
  }
.location-list>.featured-location {
    padding:21px 18px
  }
.region-footer {
    font-size:21px;
    line-height:1.2;
    margin-top:32px;
    padding-top:23px;
    gap:25px
  }
.region-footer i {
    font-size:17px
  }
.map-section .section-heading {
    position:relative
  }
.map-section h2 {
    font-size:36px;
    padding-right:23px
  }
.map-heading-icon {
    position:absolute;
    right:0;
    top:36px;
    font-size:25px;
    margin:0
  }
.map-frame {
    height:310px
  }
.map-footer {
    display:block;
    padding-top:18px
  }
.map-footer strong {
    font-size:13px
  }
.map-footer small {
    font-size:11px
  }
.map-footer .btn {
    width:100%;
    margin-top:19px;
    font-size:13px
  }
.contact-section {
    padding:44px 0
  }
.contact-inner {
    display:block
  }
.contact-inner h2 {
    font-size:48px
  }
.contact-inner p {
    font-size:14px
  }
.contact-inner .eyebrow {
    font-size:11px
  }
.contact-actions {
    min-width:0;
    gap:11px;
    margin-top:27px
  }
.contact-actions .btn {
    font-size:13px;
    min-height:50px
  }
.contact-actions .btn-large {
    min-height:58px
  }
.site-footer {
    padding:40px 0 22px
  }
.footer-main {
    grid-template-columns:1fr;
    gap:26px
  }
.footer-main nav {
    grid-template-columns:repeat(3,1fr);
    font-size:13px;
    gap:12px
  }
.footer-contact .btn {
    width:100%;
    font-size:13px
  }
.footer-contact>span {
    font-size:13px
  }
.footer-bottom {
    display:block;
    margin-top:27px;
    padding-top:20px
  }
.footer-bottom small {
    display:block;
    font-size:11px;
    line-height:1.7
  }
.footer-bottom small:last-child {
    text-align:left;
    margin-top:12px
  }
.footer-bottom a {
    display:inline-block;
    margin-top:4px
  }
.floating-whatsapp {
    display:none
  }
.site-footer {
    padding-bottom:calc(75px + env(safe-area-inset-bottom))
  }
.mobile-conversion {
    display:grid;
    grid-template-columns:1fr 1fr;
    position:fixed;
    bottom:0;
    left:0;
    width:100%;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom));
    gap:10px;
    z-index:45;
    background:rgba(18, 18, 18, 0.96);
    backdrop-filter:blur(10px);
    border-top:1px solid rgba(255, 255, 255, 0.12);
    box-shadow:0 -4px 20px rgba(0, 0, 0, 0.35);
  }
.mobile-action-btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:48px;
    padding:10px 12px;
    border-radius:6px;
    font-size:13px;
    font-weight:800;
    letter-spacing:.2px;
    text-decoration:none;
    text-align:center;
    border:0;
    cursor:pointer;
    line-height:1.2;
    transition:transform .15s,opacity .15s;
  }
.mobile-action-btn:hover,.mobile-action-btn:active {
    opacity:.92;
    transform:translateY(-1px)
  }
.mobile-action-btn i {
    font-size:18px
  }
.mobile-call-btn {
    background:var(--red);
    color:#fff
  }
.mobile-whatsapp-btn {
    background:var(--green);
    color:#fff
  }
.lightbox {
    padding:64px 38px 80px
  }
.lightbox button {
    width:30px;
    height:38px;
    font-size:26px
  }
.lightbox-prev {
    left:3px
  }
.lightbox-next {
    right:3px
  }
.lightbox figcaption {
    font-size:11px
  }
.information-dialog {
    padding:30px
  }
.information-dialog h2 {
    font-size:28px
  }

}

@media(max-width:360px) {
  .header-main {
    gap:9px
  }
.brand {
    width:auto
  }
.brand img {
    max-height:64px;
    width:auto
  }
.header-tag strong {
    font-size:18px
  }
.hero h1 {
    font-size:49px
  }
.trust-grid strong {
    font-size:16px
  }
.trust-grid small {
    font-size:10px
  }
.mobile-action-btn {
    font-size:11px;
    padding:8px 6px;
    gap:5px
  }
.mobile-action-btn i {
    font-size:14px
  }

}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
*,*:before,*:after {
    animation:none!important;
    transition:none!important
  }

}
