  :root{
    --navy:#0d1b26;
    --black:#141414;
    --blue:#5AB7E8;
    --blue-dark:#2f8fc4;
    --blue-text:#1c6690;
    --blue-pale:#eaf6fd;
    --grey:#5b6570;
    --grey-light:#f4f6f8;
    --white:#ffffff;
    --radius:14px;
    --shadow:0 10px 30px rgba(13,27,38,.08);
    color-scheme: light;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    font-family:'Inter',Arial,sans-serif;
    color:var(--navy);
    background:var(--white);
    line-height:1.55;
  }
  h1,h2,h3{font-family:'Merriweather',Georgia,serif; margin:0 0 .5em; line-height:1.25;}
  a{color:inherit;}
  img{display:block; max-width:100%;}
  .wrap{max-width:1140px; margin:0 auto; padding:0 24px;}
  .btn{
    display:inline-flex; align-items:center; gap:8px; white-space:nowrap;
    background:var(--black); color:#fff; text-decoration:none;
    padding:14px 26px; border-radius:999px; font-weight:600; font-size:15px;
    border:2px solid var(--black); cursor:pointer; transition:.15s ease;
  }
  .btn:hover{background:var(--blue-dark); border-color:var(--blue-dark);}
  .btn-outline{
    background:transparent; color:#fff; border:2px solid #fff;
  }
  .btn-outline:hover{background:rgba(255,255,255,.12); border-color:#fff;}
  .btn-block{width:100%; justify-content:center;}
  .eyebrow{
    text-transform:uppercase; letter-spacing:.12em; font-size:12.5px;
    font-weight:700; color:var(--blue-text);
  }
  .eyebrow-on-dark{color:var(--blue);}
  .link-on-dark{color:#fff; text-decoration:underline;}
  .link-inline-safe{color:var(--blue-text); font-weight:700;}
  .review-stat{display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;}
  .stat-number{font-family:'Merriweather',serif; font-size:42px; font-weight:900; color:var(--blue-text); line-height:1;}
  .footer-logo{filter:none; background:#fff; border-radius:6px; padding:2px;}
  .icon-inline{flex-shrink:0; margin-top:2px;}

  /* Header */
  header{
    position:sticky; top:0; z-index:50; background:rgba(255,255,255,.96);
    backdrop-filter:blur(6px); border-bottom:1px solid #eceff2;
  }
  .header-inner{
    display:flex; align-items:center; justify-content:space-between;
    padding:12px 24px; max-width:1140px; margin:0 auto; gap:16px;
  }
  .brand{display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--navy);}
  .brand img{height:44px; width:auto;}
  .brand-name{font-family:'Merriweather',serif; font-weight:900; font-size:16px; letter-spacing:.01em;}
  .brand-name span{display:block; font-family:'Inter',sans-serif; font-weight:600; font-size:10.5px; letter-spacing:.14em; color:var(--blue-text); text-transform:uppercase;}
  .header-actions{display:flex; align-items:center; gap:14px;}
  .phone-link{
    display:flex; align-items:center; gap:8px; font-weight:700; font-size:15px;
    text-decoration:none; color:var(--navy);
  }
  .phone-link svg{flex-shrink:0;}
  .phone-link small{display:block; font-weight:500; color:var(--grey); font-size:11px;}
  @media (max-width:640px){
    .header-inner{padding:8px 14px; gap:8px;}
    .brand{gap:6px;}
    .brand img{height:30px;}
    .phone-link{display:none;}
    .brand-name{font-size:11px; letter-spacing:0; white-space:nowrap;}
    .brand-name span{font-size:8px; letter-spacing:.08em;}
    .header-actions .btn{padding:10px 14px; font-size:13px;}
  }

  /* Hero */
  .hero{position:relative; background:var(--navy); color:#fff; overflow:hidden;}
  .hero-grid{
    display:grid; grid-template-columns:1.1fr 1fr; align-items:center; gap:40px;
    padding:64px 24px 72px; max-width:1140px; margin:0 auto;
  }
  .hero h1{color:#fff; font-size:clamp(30px,4.6vw,46px); margin-bottom:18px;}
  .hero h1 em{color:var(--blue); font-style:normal;}
  .hero p.lead{font-size:18px; color:#cdd9e2; max-width:480px; margin-bottom:28px;}
  .hero-cta{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:28px;}
  .trust-row{display:flex; gap:22px; flex-wrap:wrap; font-size:13.5px; color:#bcd0dc;}
  .trust-row .item{display:flex; align-items:center; gap:7px;}
  .trust-row svg{flex-shrink:0;}
  .hero-photo{position:relative; border-radius:var(--radius); overflow:hidden; box-shadow:0 24px 50px rgba(0,0,0,.35);}
  .hero-photo img{width:100%; height:100%; object-fit:cover; aspect-ratio:3/4;}
  .hero-badge{
    position:absolute; bottom:16px; left:16px; background:rgba(13,27,38,.82);
    color:#fff; padding:10px 16px; border-radius:10px; font-size:13px; backdrop-filter:blur(4px);
  }
  @media (max-width:900px){
    .hero-grid{grid-template-columns:1fr; padding:40px 24px 48px;}
    .hero-photo{order:-1; max-width:380px; margin:0 auto;}
  }

  /* Hero — full-bleed background photo variant */
  .hero--bg{background:var(--hero-image) center 38%/cover no-repeat, var(--navy);}
  .hero--bg::before{
    content:""; position:absolute; inset:0;
    background:linear-gradient(100deg, rgba(13,27,38,.94) 0%, rgba(13,27,38,.88) 34%, rgba(13,27,38,.55) 62%, rgba(13,27,38,.22) 100%);
  }
  .hero--bg .hero-grid{position:relative; z-index:1; grid-template-columns:1fr;}
  .hero--bg .hero-grid > div{max-width:600px;}
  @media (max-width:900px){
    .hero--bg::before{background:rgba(13,27,38,.8);}
  }

  /* Sections generic */
  section{padding:76px 0;}
  h1,h2{text-wrap:balance;}
  .hero p.lead, .section-head p{text-wrap:pretty;}
  .section-head{text-align:center; max-width:640px; margin:0 auto 44px;}
  .section-head h2{font-size:clamp(24px,3.2vw,34px);}
  .section-head p{color:var(--grey); font-size:16px;}
  .bg-pale{background:var(--blue-pale);}
  .bg-navy{background:var(--navy); color:#fff;}
  .bg-navy .section-head p{color:#c3d3dc;}

  /* Services */
  .service-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
  .service-card{
    background:#fff; border:1px solid #eceff2; border-radius:var(--radius);
    padding:26px 22px; box-shadow:var(--shadow);
  }
  .service-card .icon{
    width:46px; height:46px; border-radius:12px; background:var(--blue-pale);
    display:flex; align-items:center; justify-content:center; margin-bottom:16px;
  }
  .service-card h3{font-family:'Inter',sans-serif; font-weight:700; font-size:17px; margin-bottom:6px;}
  .service-card p{font-size:14px; color:var(--grey); margin:0;}
  @media (max-width:900px){.service-grid{grid-template-columns:repeat(2,1fr);}}
  @media (max-width:520px){.service-grid{grid-template-columns:1fr;}}

  /* Why choose us */
  .why-grid{display:flex; flex-wrap:wrap; justify-content:center; gap:18px;}
  .why-card{
    background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14);
    border-radius:var(--radius); padding:24px; display:flex; gap:14px; align-items:flex-start;
    flex:1 1 300px; max-width:360px;
  }
  .why-card .tick{
    width:30px; height:30px; border-radius:50%; background:var(--blue);
    display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:2px;
  }
  .why-card h3{font-family:'Inter',sans-serif; font-size:15.5px; font-weight:700; margin-bottom:4px; color:#fff;}
  .why-card p{font-size:13.5px; color:#c3d3dc; margin:0;}
  @media (max-width:560px){.why-card{flex-basis:100%; max-width:420px;}}

  /* For businesses */
  .biz-panel{
    display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center;
  }
  .biz-copy h2{font-size:clamp(24px,3.2vw,32px);}
  .biz-copy p.lead-small{color:var(--grey); font-size:15.5px; max-width:480px;}
  .biz-list{list-style:none; margin:24px 0 28px; padding:0; display:grid; gap:16px;}
  .biz-list li{display:flex; gap:12px; align-items:flex-start; font-size:14.5px; color:var(--navy);}
  .biz-list .tick-sm{
    width:26px; height:26px; border-radius:50%; background:var(--blue-pale);
    display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:1px;
  }
  .biz-photo{border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); position:relative;}
  .biz-photo img{width:100%; height:100%; object-fit:cover; aspect-ratio:4/3;}
  .biz-tag{
    position:absolute; top:16px; left:16px; background:var(--navy); color:#fff;
    padding:8px 14px; border-radius:8px; font-size:12.5px; font-weight:700; letter-spacing:.03em;
  }
  @media (max-width:900px){
    .biz-panel{grid-template-columns:1fr;}
    .biz-photo{order:-1; max-width:420px; margin:0 auto;}
  }

  /* Quote form */
  .quote-panel{
    display:grid; grid-template-columns:1fr 1.1fr; gap:0; background:#fff;
    border-radius:20px; overflow:hidden; box-shadow:var(--shadow); border:1px solid #eceff2;
  }
  .quote-side{background:var(--navy); color:#fff; padding:44px 36px;}
  .quote-side h2{color:#fff; font-size:26px;}
  .quote-side p{color:#c3d3dc; font-size:15px;}
  .quote-side ul{list-style:none; margin:26px 0 0; padding:0;}
  .quote-side li{display:flex; gap:10px; align-items:flex-start; font-size:14px; color:#dbe6ec; margin-bottom:14px;}
  .quote-form{padding:40px 36px;}
  .form-row{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
  .field{margin-bottom:16px;}
  .field label{display:block; font-size:13px; font-weight:600; margin-bottom:6px; color:var(--navy);}
  .field input, .field select, .field textarea{
    width:100%; border:1.5px solid #dbe1e6; border-radius:10px; padding:11px 13px;
    font-size:14.5px; font-family:inherit; background:#fbfcfd; color:var(--navy);
  }
  .field input:focus, .field select:focus, .field textarea:focus{outline:none; border-color:var(--blue);}
  .form-note{font-size:12px; color:var(--grey); margin-top:10px;}
  @media (max-width:860px){
    .quote-panel{grid-template-columns:1fr;}
    .form-row{grid-template-columns:1fr;}
  }

  /* Gallery */
  .gallery-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
  .gallery-grid img{width:100%; height:230px; object-fit:cover; border-radius:12px; box-shadow:var(--shadow);}
  @media (max-width:860px){.gallery-grid{grid-template-columns:repeat(2,1fr);}}
  @media (max-width:520px){.gallery-grid{grid-template-columns:1fr;} .gallery-grid img{height:220px;}}

  /* Reviews */
  .review-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
  .review-card{
    background:#fff; border:1px solid #eceff2; border-radius:var(--radius);
    padding:24px; box-shadow:var(--shadow);
  }
  .stars{color:var(--blue-text); font-size:15px; margin-bottom:10px; letter-spacing:2px;}
  .review-card p{font-size:14.5px; color:var(--navy); margin:0 0 14px;}
  .review-card .who{font-size:13px; color:var(--grey); font-weight:600;}
  @media (max-width:860px){.review-grid{grid-template-columns:1fr;}}
  .review-grid--pair{grid-template-columns:repeat(2,1fr); max-width:700px; margin:0 auto;}
  @media (max-width:860px){.review-grid--pair{grid-template-columns:1fr;}}
  .review-grid--single{grid-template-columns:1fr; max-width:400px; margin:0 auto;}
  .review-grid--single .review-card{text-align:center;}

  /* Areas */
  .areas-list{display:flex; flex-wrap:wrap; gap:10px; justify-content:center; max-width:820px; margin:0 auto;}
  .areas-list span{
    background:#fff; border:1px solid #e2e8ec; border-radius:999px;
    padding:8px 16px; font-size:13.5px; font-weight:600; color:var(--navy);
  }

  /* CTA strip */
  .cta-strip{
    background:var(--blue); color:var(--navy); text-align:center; padding:52px 24px;
  }
  .cta-strip h2{font-size:clamp(22px,3vw,30px); margin-bottom:10px;}
  .cta-strip .btn{background:var(--navy); border-color:var(--navy); color:#fff;}
  .cta-strip .btn:hover{background:#000; border-color:#000;}

  /* Footer */
  footer{background:var(--black); color:#c9d2d8; padding:52px 0 26px; font-size:14px;}
  .footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:36px; margin-bottom:36px;}
  .footer-grid h4{color:#fff; font-size:14px; margin:0 0 14px; font-weight:700;}
  .footer-grid a{display:block; color:#c9d2d8; text-decoration:none; margin-bottom:9px;}
  .footer-grid a:hover{color:var(--blue);}
  .footer-brand{display:flex; align-items:center; gap:10px; margin-bottom:14px;}
  .footer-brand img{height:38px;}
  .footer-bottom{
    border-top:1px solid rgba(255,255,255,.12); padding-top:20px; font-size:12.5px;
    color:#8996a0; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  }
  @media (max-width:860px){.footer-grid{grid-template-columns:1fr 1fr;}}
  @media (max-width:560px){.footer-grid{grid-template-columns:1fr;}}

  .sticky-cta{
    position:fixed; bottom:0; left:0; right:0; z-index:60; background:#fff;
    border-top:1px solid #e2e8ec; padding:10px 16px; display:none;
    box-shadow:0 -6px 18px rgba(0,0,0,.08);
  }
  .sticky-cta .row{display:flex; gap:10px; max-width:520px; margin:0 auto;}
  .sticky-cta .btn{flex:1; padding:12px 10px; font-size:14px;}
  @media (max-width:640px){.sticky-cta{display:block;} body{padding-bottom:66px;}}

  .whatsapp-fab{
    position:fixed; right:20px; bottom:24px; z-index:65;
    width:58px; height:58px; border-radius:50%; background:#25D366;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 10px 26px rgba(0,0,0,.28); text-decoration:none;
    transition:transform .15s ease;
  }
  .whatsapp-fab:hover{transform:scale(1.06);}
  .whatsapp-fab svg{width:30px; height:30px;}
  @media (max-width:640px){.whatsapp-fab{bottom:86px; width:52px; height:52px;} .whatsapp-fab svg{width:27px; height:27px;}}

  /* Steps (how it works) */
  .steps{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; counter-reset:step;}
  .step{position:relative; background:#fff; border:1px solid #eceff2; border-radius:var(--radius); padding:28px 24px; box-shadow:var(--shadow);}
  .step .num{
    width:36px; height:36px; border-radius:50%; background:var(--navy); color:#fff;
    display:flex; align-items:center; justify-content:center; font-family:'Merriweather',serif;
    font-weight:900; font-size:15px; margin-bottom:16px;
  }
  .step h3{font-family:'Inter',sans-serif; font-weight:700; font-size:16.5px; margin-bottom:6px;}
  .step p{font-size:14px; color:var(--grey); margin:0;}
  @media (max-width:860px){.steps{grid-template-columns:1fr;}}

  .badge-row{display:flex; flex-wrap:wrap; gap:10px; margin-top:22px;}
  .badge-row span{
    background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); color:#dbe6ec;
    padding:7px 14px; border-radius:999px; font-size:12.5px; font-weight:600;
  }
