@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=Playfair+Display:wght@600;700;800&display=swap');
:root{--black:#090909;--gold:#c89b3c;--gold2:#e4c36a;--cream:#f8f4ec;--soft:#eee6da;--muted:#6f685d;--green:#25d366;--shadow:0 28px 90px rgba(0,0,0,.16);--radius:30px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,sans-serif;background:var(--cream);color:#111;line-height:1.65}img{max-width:100%;display:block}a{text-decoration:none;color:inherit}.container{width:min(1220px,88vw);margin:auto}
.header{position:fixed;inset:0 0 auto 0;z-index:999;background:rgba(9,9,9,.86);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.08)}.topbar{background:#050505;color:#bbb;font-size:12px;padding:7px 0}.topbar .container{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}.navwrap{display:flex;align-items:center;justify-content:space-between;padding:12px 0}.logo img{height:54px;border-radius:9px;background:#fff}.nav{display:flex;gap:22px;align-items:center;color:#fff;font-weight:800;font-size:14px}.nav a:hover{color:var(--gold2)}.pill{background:linear-gradient(135deg,var(--gold),var(--gold2));color:#111!important;padding:11px 18px;border-radius:999px}.menu{display:none;background:none;border:0;color:#fff;font-size:34px}
.hero{min-height:100svh;display:grid;align-items:center;color:#fff;padding:165px 0 90px;position:relative;background:linear-gradient(110deg,rgba(0,0,0,.9),rgba(0,0,0,.55),rgba(0,0,0,.18)),var(--hero) center/cover,url('fallback.svg') center/cover}.hero.inner{min-height:70svh}.hero .container{position:relative;z-index:2}.eyebrow{margin:0 0 14px;color:var(--gold2);letter-spacing:.18em;text-transform:uppercase;font-size:12px;font-weight:900}h1,h2,h3{line-height:1.06;margin:0 0 18px}h1,h2{font-family:'Playfair Display',serif}h1{font-size:clamp(46px,8vw,104px);max-width:1000px}h2{font-size:clamp(34px,5vw,66px)}h3{font-size:24px}.lead{font-size:20px;max-width:790px;color:#eee}.muted{color:var(--muted)}.actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:15px 24px;font-weight:900;border:1px solid transparent;cursor:pointer}.primary{background:linear-gradient(135deg,var(--gold),var(--gold2));color:#111}.darkbtn{background:#111;color:#fff}.ghost{border-color:rgba(255,255,255,.5);color:#fff}.trust{display:flex;gap:12px;flex-wrap:wrap;margin-top:34px}.trust span{border:1px solid rgba(255,255,255,.25);padding:9px 13px;border-radius:999px;background:rgba(0,0,0,.22);font-size:13px}
.section{padding:95px 0}.white{background:#fff}.dark{background:#0d0d0d;color:#fff}.soft{background:var(--soft)}.split{display:grid;grid-template-columns:1fr 1fr;gap:58px;align-items:center}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.card{background:#fff;border-radius:var(--radius);padding:30px;box-shadow:var(--shadow);border:1px solid rgba(0,0,0,.05)}.dark .card{background:#1a1a1a;color:#fff;border-color:rgba(255,255,255,.08)}.card:hover{transform:translateY(-4px);transition:.25s}.icon{font-size:34px;color:var(--gold);margin-bottom:14px}.gold{color:var(--gold);font-weight:900}.mini{font-size:14px}.kpi{font-size:42px;font-weight:900;color:var(--gold);line-height:1}
.mega{display:grid;grid-template-columns:1.2fr .8fr;grid-auto-rows:310px;gap:22px}.photo{position:relative;overflow:hidden;border-radius:34px;background:#111;box-shadow:var(--shadow);isolation:isolate}.photo img{width:100%;height:100%;object-fit:cover}.photo:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.7),transparent 55%)}.photo span{position:absolute;left:22px;bottom:22px;z-index:2;background:rgba(0,0,0,.66);color:white;padding:10px 16px;border-radius:999px;font-weight:900}.large{grid-row:span 2}.wide{grid-column:span 2}
.before-after{display:grid;grid-template-columns:1fr 1fr;gap:22px}.ba{border-radius:34px;overflow:hidden;position:relative;box-shadow:var(--shadow);background:#111}.ba img{height:390px;width:100%;object-fit:cover}.ba span{position:absolute;top:18px;left:18px;background:#111;color:#fff;padding:8px 14px;border-radius:999px;font-weight:900}
.process{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}.step{background:#171717;color:#fff;border-radius:24px;padding:25px}.step strong{display:block;color:var(--gold);font-size:30px;margin-bottom:10px}
.form{display:grid;gap:13px}.quote-box,.calc{background:#fff;color:#111;border-radius:34px;padding:30px;box-shadow:var(--shadow)}input,select,textarea{width:100%;padding:16px;border:1px solid #ddd;border-radius:15px;font:inherit}textarea{min-height:130px}.calc-output{font-size:24px;font-weight:900;color:var(--gold)}.notice{background:#fff7e2;border:1px solid #ead39b;border-radius:20px;padding:18px}.tagcloud{display:flex;gap:10px;flex-wrap:wrap}.tagcloud a,.tag{background:#fff;border:1px solid #e5ded2;padding:9px 13px;border-radius:999px;font-weight:800;font-size:13px}.footer{background:#050505;color:#aaa;padding:56px 0}.footer strong{color:#fff}.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:30px}.footer a{display:block;margin:7px 0;color:#bbb}.whatsapp{position:fixed;right:20px;bottom:20px;background:var(--green);color:#fff;padding:15px 22px;border-radius:999px;font-weight:900;z-index:1200;box-shadow:0 16px 45px rgba(0,0,0,.32)}.breadcrumb{color:#d4d4d4;font-size:13px;margin-bottom:16px}
@media(max-width:960px){.menu{display:block}.nav{display:none;position:absolute;left:0;right:0;top:94px;background:#0b0b0b;flex-direction:column;padding:26px}.nav.open{display:flex}.topbar{display:none}.logo img{height:47px}.hero{padding-top:130px}.split,.grid-3,.grid-4,.grid-2,.process,.before-after,.footer-grid{grid-template-columns:1fr}.mega{grid-template-columns:1fr}.large,.wide{grid-row:auto;grid-column:auto}.section{padding:70px 0}.photo{min-height:285px}}

/* Booking app */
.booking-fab{position:fixed;right:20px;bottom:86px;z-index:1300;background:linear-gradient(135deg,var(--gold),var(--gold2));color:#111;border:0;border-radius:999px;padding:15px 22px;font-weight:900;box-shadow:0 18px 50px rgba(0,0,0,.35);cursor:pointer}
.booking-overlay{position:fixed;inset:0;z-index:1400;background:rgba(0,0,0,.68);display:none;align-items:center;justify-content:center;padding:22px}
.booking-overlay.open{display:flex}
.booking-panel{width:min(760px,96vw);max-height:92vh;overflow:auto;background:#fff;color:#111;border-radius:34px;box-shadow:0 30px 110px rgba(0,0,0,.45);padding:32px;position:relative}
.booking-close{position:absolute;top:16px;right:18px;width:38px;height:38px;border:0;border-radius:50%;background:#111;color:#fff;font-size:22px;cursor:pointer}
.booking-panel h2{font-size:clamp(30px,4vw,48px);margin-right:40px}
.booking-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.booking-panel label{font-weight:800;font-size:13px}
.booking-panel input,.booking-panel select,.booking-panel textarea{margin-top:6px}
.booking-panel textarea{min-height:105px}
.booking-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}
.booking-note{margin-top:14px;padding:14px;background:#fff7e2;border:1px solid #ead39b;border-radius:16px;font-size:14px}
@media(max-width:720px){.booking-panel{padding:24px}.booking-grid{grid-template-columns:1fr}.booking-fab{right:14px;bottom:84px;padding:13px 17px}}

/* Labour-only price calculator update */
.price-disclaimer{
  background:#fff7e2;
  border:1px solid #ead39b;
  border-radius:20px;
  padding:18px;
  margin:18px 0;
  font-weight:700;
}
.calc small{
  display:block;
  color:#6f685d;
  font-weight:700;
  margin-top:6px;
}
.calc-breakdown{
  background:#f8f4ec;
  border-radius:18px;
  padding:16px;
  font-size:14px;
}

/* Working contact form */
.hidden-field{display:none!important;visibility:hidden!important;height:0!important;overflow:hidden!important}
.form-status{padding:14px;border-radius:14px;background:#fff7e2;border:1px solid #ead39b;margin-bottom:14px;font-weight:700}

/* Tawk.to spacing */
#tawkchat-container,
.tawk-min-container,
.tawk-button-circle{
  bottom:90px!important;
}

/* Dropdown navigation */
.nav .dropdown{position:relative;display:inline-flex;align-items:center}
.nav .dropdown > a{display:inline-flex;align-items:center;gap:6px}
.nav .dropdown > a::after{content:"▾";font-size:11px;color:var(--gold2)}
.dropdown-menu{
  position:absolute;
  top:100%;
  left:0;
  min-width:260px;
  background:#111;
  border:1px solid rgba(255,255,255,.12);
  border-radius:18px;
  padding:12px;
  display:none;
  box-shadow:0 20px 60px rgba(0,0,0,.35);
  max-height:70vh;
  overflow:auto;
}
.dropdown:hover .dropdown-menu,
.dropdown:focus-within .dropdown-menu{display:block}
.dropdown-menu a{
  display:block;
  padding:10px 12px;
  border-radius:12px;
  color:#fff;
  margin:0;
  font-size:13px;
}
.dropdown-menu a:hover{background:rgba(200,155,60,.16);color:var(--gold2)}
@media(max-width:960px){
  .nav .dropdown{display:flex;flex-direction:column;width:100%;align-items:center}
  .dropdown-menu{position:static;display:block;background:transparent;border:0;box-shadow:none;max-height:none;text-align:center;padding:4px 0}
  .dropdown-menu a{font-size:15px;padding:7px 10px}
}


/* Mobile hero + WhatsApp positioning fix */
.hero{
  min-height:78svh!important;
  padding-top:130px!important;
  padding-bottom:80px!important;
}

.hero h1{
  font-size:clamp(42px,8vw,88px)!important;
  line-height:.95!important;
}

.whatsapp{
  left:20px!important;
  right:auto!important;
  bottom:20px!important;
  z-index:1200!important;
}

#tawkchat-container,
.tawk-min-container,
.tawk-button-circle{
  bottom:110px!important;
  right:20px!important;
}

@media(max-width:768px){

  .hero{
    min-height:62svh!important;
    padding-top:110px!important;
    padding-bottom:50px!important;
  }

  .hero h1{
    font-size:clamp(34px,10vw,56px)!important;
    line-height:1!important;
    max-width:95%!important;
  }

  .hero .lead{
    font-size:18px!important;
    max-width:100%!important;
  }

  .header{
    height:auto!important;
  }

  .logo img{
    max-width:220px!important;
    height:auto!important;
  }

  .whatsapp{
    left:14px!important;
    bottom:16px!important;
    padding:14px 18px!important;
  }
}
