/*
Theme Name: Progressive Plumbing & Gasfitting
Theme URI: https://progressiveplumbing.co.nz
Author: Dynamite IT
Author URI: https://dynamiteit.nz
Description: One-page marketing theme for Progressive Plumbing & Gasfitting Ltd, Wellington. The whole site is rendered by the theme templates, so it displays correctly regardless of what pages exist in the WordPress database.
Version: 1.0.0
Requires at least: 5.8
Requires PHP: 7.4
License: Proprietary
Text Domain: progressive-plumbing
*/

:root{
    --blue:#1B70BB;
    --blue-dark:#124E85;
    --ink:#122A38;
    --ink-soft:#4E6B7A;
    --red:#C0433F;
    --cyan:#00AFEF;
    --paper:#F5FAFC;
    --alt:#E9F3F7;
    --paper-raised:#FFFFFF;
    --line:#D6E7ED;
    --ig1:#E5F1F5; --ig2:#D8EAF0; --ig3:#EDF5F8;
    --mp-navy:#00395D;
    --mp-aqua:#5AC5CC;
    --mp-tint:#E6F3F3;
    --radius:12px;
    --shadow-soft:0 1px 2px rgba(15,38,54,.05), 0 10px 28px -14px rgba(15,38,54,.18);
    --maxw:1152px;
    color-scheme: light;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --ink:#E6EFF3; --ink-soft:#A9C0CC; --paper:#0D1F29; --alt:#122730; --paper-raised:#16303B;
      --line:#234350; --mp-tint:#12292A; color-scheme: dark;
    }
  }
  :root[data-theme="dark"]{
    --ink:#E6EFF3; --ink-soft:#A9C0CC; --paper:#0D1F29; --alt:#122730; --paper-raised:#16303B;
    --line:#234350; --mp-tint:#12292A; color-scheme: dark;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth; scroll-padding-top:calc(112px + env(safe-area-inset-top,0px));}
  body{margin:0; background-color:var(--paper); color:var(--ink); font-family:'Source Sans 3',system-ui,sans-serif; font-size:16px; line-height:1.6; padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);}
  h1,h2,h3,h4{font-family:'Archivo Black',Arial,sans-serif; font-weight:400; line-height:1.08; margin:0 0 .5em; letter-spacing:-.01em;}
  p{margin:0 0 1em; color:var(--ink-soft); max-width:62ch;}
  a{color:inherit;}
  img,svg{max-width:100%; display:block;}
  .wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px;}
  section{padding:96px 0;}
  section.alt{background:var(--alt);}
  .section-head{max-width:640px; margin-bottom:44px;}
  .kicker{color:var(--blue); font-weight:700; font-size:.85rem; letter-spacing:.02em; margin-bottom:.6em; display:block;}
  .btn{display:inline-flex; align-items:center; gap:.5em; font-family:'Archivo Black',Arial,sans-serif; font-weight:700; font-size:.95rem; padding:14px 24px; border-radius:var(--radius); border:2px solid transparent; cursor:pointer; text-decoration:none; transition:background .12s ease, transform .12s ease;}
  .btn:active{transform:translateY(1px);}
  .btn-primary{background:var(--blue); color:#fff;}
  .btn-primary:hover{background:var(--blue-dark);}
  .btn-urgent{background:var(--red); color:#fff;}
  .btn-urgent:hover{background:#a3312d;}
  .btn-ghost{background:transparent; border-color:var(--line); color:var(--ink);}
  .btn-ghost:hover{border-color:var(--ink);}
  .btn-light{background:var(--paper-raised); color:var(--ink); border-color:var(--line);}

  .pipe-divider{width:100%; height:20px; overflow:hidden;}
  .pipe-divider svg{width:100%; height:20px; display:block;}
  .pipe-divider line{stroke:var(--line); stroke-width:2;}
  .pipe-divider circle{fill:var(--paper); stroke:var(--line); stroke-width:2;}

  /* ---------- announcement bar ---------- */
  .announce{background:var(--ink); color:#fff; font-size:1.02rem; text-align:center; padding:16px 16px; font-weight:700;}
  .announce a{color:var(--cyan); text-decoration:none; font-weight:700;}
  .announce .sep{margin:0 10px; opacity:.4;}

  /* ---------- header ---------- */
  header{position:sticky; top:0; z-index:50; background:var(--paper-raised); border-bottom:1px solid var(--line);}
  .nav-row{max-width:var(--maxw); margin:0 auto; padding:13px 24px; display:flex; align-items:center; justify-content:space-between; gap:14px;}
  .logo{display:flex; align-items:center; gap:11px; text-decoration:none; color:var(--ink);}
  .logo-mark{width:88px; flex:none; display:flex; align-items:center;}
  .logo-mark img{width:100%; height:auto; display:block;}
  .logo-text{font-family:'Archivo Black',Arial,sans-serif; line-height:1.05;}
  .logo-text .big{display:block; font-weight:900; font-size:1.05rem; letter-spacing:-.01em;}
  .logo-text .small{display:block; font-weight:600; font-size:.6rem; letter-spacing:.08em; text-transform:uppercase; color:var(--blue);}
  nav.links{display:flex; gap:12px; font-weight:600; font-size:.83rem;}
  nav.links a{text-decoration:none; color:var(--ink-soft); white-space:nowrap;}
  nav.links a:hover{color:var(--blue);}
  .header-actions{display:flex; align-items:center; gap:12px; flex:none;}
  .header-actions .btn-primary{white-space:nowrap; padding:11px 18px;}
  .phone-link{font-family:'Archivo Black',Arial,sans-serif; font-weight:800; text-decoration:none; color:var(--ink); font-size:1rem; white-space:nowrap; display:flex; align-items:center; gap:7px;}
  .phone-link svg{width:17px; height:17px; color:var(--red);}
  .menu-toggle{display:none; background:none; border:none; cursor:pointer; padding:6px;}
  .menu-toggle svg{width:26px; height:26px;}
  @media (max-width:1160px){
    nav.links{position:fixed; inset:64px 0 auto 0; background:var(--paper-raised); border-bottom:1px solid var(--line); flex-direction:column; padding:18px 24px; gap:16px; transform:translateY(-8px); opacity:0; pointer-events:none; transition:opacity .15s ease, transform .15s ease;}
    nav.links.open{opacity:1; pointer-events:auto; transform:translateY(0);}
    .menu-toggle{display:block;}
    .header-actions .btn-primary{display:none;}
  }

  /* ---------- hero ---------- */
  .hero{position:relative; overflow:hidden; padding:310px 0 60px;}
  .hero .hero-bg{position:absolute; inset:0; background:url("assets/images/hero.jpg") center 16%/cover no-repeat;}
  .hero .hero-bg::after{content:""; position:absolute; inset:0; background:linear-gradient(100deg, color-mix(in srgb, var(--paper) 82%, transparent) 0%, color-mix(in srgb, var(--paper) 62%, transparent) 38%, color-mix(in srgb, var(--paper) 20%, transparent) 78%, color-mix(in srgb, var(--paper) 4%, transparent) 100%);}
  .hero-grid{position:relative; z-index:1; display:grid; grid-template-columns:1fr; gap:56px; align-items:center;}
  .hero-logo-left{position:absolute; top:310px; left:40px; width:120px; opacity:.45; z-index:0; pointer-events:none;}
  .hero-logo-right{position:absolute; top:310px; right:550px; width:120px; opacity:.45; z-index:0; pointer-events:none;}
  .hero-inline-logo{width:230px; margin-bottom:22px; filter:drop-shadow(0 6px 16px rgba(14,36,54,.18));}
  .hero h1{font-family:'Archivo Black',Arial,sans-serif; font-weight:900; letter-spacing:-.01em; font-size:1.3rem; white-space:nowrap; text-align:center; color:var(--blue); text-shadow:0 1px 0 rgba(255,255,255,.9), 0 0 14px rgba(255,255,255,.85), 0 0 28px rgba(255,255,255,.6); max-width:900px; margin:0 auto 26px;}
  @media (max-width:760px){.hero h1{white-space:normal;}}
  .hero-tagline{font-family:'Archivo Black',Arial,sans-serif; font-size:1.15rem; color:var(--blue); margin:0 0 .7em; letter-spacing:.01em;}
  .hero .lede{font-size:1.13rem; margin-bottom:1.6em;}
  @media (max-width:900px){.hero .hero-bg::after{background:color-mix(in srgb, var(--paper) 68%, transparent);}}
  .hero-ctas{display:flex; flex-wrap:wrap; gap:14px; margin-bottom:34px;}
  .credential-strip{display:flex; flex-wrap:wrap; gap:20px 28px; padding-top:26px; border-top:1px solid var(--line);}
  .credential-item{display:flex; align-items:center; gap:9px; font-weight:600; font-size:.88rem; color:var(--ink-soft);}
  .credential-item svg{width:18px; height:18px; flex:none; color:var(--blue);}
  .hero-visual{position:relative; aspect-ratio:1/1; border-radius:var(--radius); overflow:hidden; background:linear-gradient(160deg,#F2ECE1 0%,#F8F4EC 55%,#FDFBF7 100%); border:1px solid var(--line); box-shadow:var(--shadow-soft);}
  .hero-visual svg{width:100%; height:100%;}
  .hero-logo-overlay{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; padding:11%;}
  .hero-logo-overlay img{width:100%; height:auto; filter:drop-shadow(0 10px 24px rgba(14,36,54,.16));}

  /* ---------- services ---------- */
  .service-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
  .service-card{background:var(--paper-raised); padding:36px 32px; border-radius:var(--radius); box-shadow:var(--shadow-soft); border:1px solid var(--line); display:flex; flex-direction:column;}
  .service-card .icon-wrap{width:50px; height:50px; border-radius:8px; background:var(--mp-tint); display:flex; align-items:center; justify-content:center; margin-bottom:20px;}
  .service-card .icon-wrap svg{width:26px; height:26px; color:var(--blue);}
  .service-card h3{font-size:1.22rem; margin-bottom:.4em;}
  .service-card ul{margin:14px 0 0; padding:0; list-style:none;}
  .service-card li{padding:8px 0; border-top:1px solid var(--line); font-size:.91rem; color:var(--ink-soft);}
  .service-card li:first-child{border-top:none;}
  .fixed-tag{display:inline-flex; align-items:center; gap:6px; align-self:flex-start; margin-top:auto; padding:8px 14px; background:var(--mp-tint); border:1px solid #C9E3E3; border-radius:20px; font-size:.82rem; font-weight:700; color:var(--mp-navy); text-decoration:none;}
  a.fixed-tag:hover{background:#DCEEEE;}
  .fixed-tag svg{width:14px; height:14px; flex:none;}
  @media (max-width:860px){.service-grid{grid-template-columns:1fr;}}

  /* ---------- recent work gallery ---------- */
  .work-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:20px;}
  .work-tile{position:relative; display:block; width:100%; padding:0; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-soft); overflow:hidden; background:none; cursor:pointer; aspect-ratio:4/3;}
  .work-tile img{width:100%; height:100%; object-fit:cover; object-position:center 12%; display:block; transition:transform .3s ease;}
  .work-tile:hover img{transform:scale(1.04);}
  .work-tile .work-cap{position:absolute; left:0; right:0; bottom:0; padding:14px 16px; font-size:.85rem; font-weight:600; color:#fff; background:linear-gradient(0deg, rgba(14,20,10,.65), rgba(14,20,10,0)); text-align:left;}
  .work-lightbox{position:fixed; inset:0; z-index:100; background:rgba(20,18,12,.86); display:none; align-items:center; justify-content:center; padding:32px;}
  .work-lightbox.open{display:flex;}
  .work-lightbox img{max-width:min(90vw,1100px); max-height:80vh; border-radius:8px; box-shadow:0 20px 60px rgba(0,0,0,.4);}
  .work-lightbox .wl-cap{color:#fff; text-align:center; margin-top:14px; font-size:.9rem;}
  .work-lightbox .wl-close{position:absolute; top:22px; right:26px; background:none; border:none; color:#fff; cursor:pointer; padding:8px;}
  .work-lightbox .wl-close svg{width:28px; height:28px;}

  /* ---------- promises ---------- */
  .promise-row{display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:20px; max-width:640px;}
  .promise-card{display:flex; gap:18px; background:var(--paper-raised); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-soft); padding:28px 30px;}
  .promise-card .icon-wrap{width:46px; height:46px; border-radius:8px; background:var(--mp-tint); display:flex; align-items:center; justify-content:center; flex:none;}
  .promise-card .icon-wrap svg{width:24px; height:24px; color:var(--blue);}
  .promise-card h3{font-size:1.08rem; margin-bottom:6px;}
  .promise-card p{font-size:.9rem; margin:0;}
  @media (max-width:760px){.promise-row{grid-template-columns:1fr;}}

  /* ---------- credentials band ---------- */
  .cred-band{display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:16px;}
  .cred-cell{padding:28px 24px; text-align:left; background:var(--paper-raised); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-soft);}
  .cred-cell svg{width:26px; height:26px; color:var(--blue); margin-bottom:14px;}
  .cred-cell b{display:block; font-family:'Archivo Black',Arial,sans-serif; font-size:1.02rem; margin-bottom:4px; color:var(--ink);}
  .cred-cell span{font-size:.83rem; color:var(--ink-soft);}
  @media (max-width:820px){.cred-band{grid-template-columns:repeat(2,1fr);}}

  /* ---------- merchants ---------- */
  .merchant-row{display:flex; flex-wrap:wrap; gap:16px;}
  .merchant-badge{display:flex; align-items:center; gap:10px; padding:17px 28px; background:var(--paper-raised); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-soft); font-family:'Archivo Black',Arial,sans-serif; font-weight:800; font-size:1.05rem; color:var(--ink);}
  .merchant-badge small{display:block; font-family:'Source Sans 3',sans-serif; font-weight:600; font-size:.66rem; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.06em;}
  .merchant-note{margin-top:20px; font-size:.85rem;}

  /* ---------- guarantee ---------- */
  #guarantee{background:var(--mp-tint);}
  .guarantee-box{display:grid; grid-template-columns:auto 1fr; gap:38px; align-items:center;}
  .mp-badge-img{width:280px; flex:none; border-radius:8px; overflow:hidden; box-shadow:0 8px 24px rgba(0,57,93,.18);}
  .mp-badge-img img{width:100%; display:block;}
  .guarantee-box h3{font-size:1.45rem; color:var(--mp-navy);}
  .guarantee-facts{list-style:none; margin:16px 0 0; padding:0; display:grid; gap:9px;}
  .guarantee-facts li{padding-left:24px; position:relative; font-size:.93rem; color:var(--ink-soft);}
  .guarantee-facts li::before{content:"✓"; position:absolute; left:0; color:var(--mp-navy); font-weight:700;}
  .guarantee-foot{margin-top:20px; padding-top:18px; border-top:1px solid #C9E3E3; font-size:.82rem; display:flex; align-items:center; gap:14px; flex-wrap:wrap;}
  @media (max-width:680px){.guarantee-box{grid-template-columns:1fr;} .mp-badge-img{width:100%; max-width:340px;}}

  /* ---------- reviews ---------- */
  .rating-summary{display:flex; align-items:baseline; gap:14px; margin-bottom:28px; flex-wrap:wrap;}
  .rating-summary .num{font-family:'Archivo Black',Arial,sans-serif; font-weight:900; font-size:2.6rem; color:var(--ink);}
  .rating-summary .stars{color:var(--blue); font-size:1.3rem; letter-spacing:.08em;}
  .review-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:20px;}
  .review-card{background:var(--paper-raised); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-soft); padding:30px;}
  .review-stars{color:var(--blue); font-size:1.05rem; letter-spacing:.1em; margin-bottom:12px;}
  .review-card p{font-size:.93rem; font-style:italic;}
  .review-card .who{font-weight:700; font-size:.85rem; color:var(--ink); font-style:normal;}
  .review-cta{margin-top:28px; display:flex; align-items:center; gap:16px; flex-wrap:wrap;}
  @media (max-width:860px){.review-grid{grid-template-columns:1fr;}}

  /* ---------- pricing ---------- */
  .fixed-feature{display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:28px; background:var(--ink); color:#fff; border-radius:var(--radius); padding:40px 42px; margin-bottom:32px;}
  .fixed-feature .icon-circle{width:66px; height:66px; border-radius:50%; background:var(--cyan); display:flex; align-items:center; justify-content:center; flex:none;}
  .fixed-feature .icon-circle svg{width:28px; height:28px; color:var(--ink);}
  .fixed-feature h3{color:#fff; font-size:1.5rem; margin-bottom:4px;}
  .fixed-feature p{color:#B9CAD3; margin:0; font-size:.9rem;}
  .fixed-feature .price{font-family:'Archivo Black',Arial,sans-serif; font-weight:900; font-size:2.9rem; white-space:nowrap; text-align:center; display:flex; flex-direction:column; align-items:center; gap:12px;}
  .fixed-feature .price .btn{font-size:.85rem; padding:11px 22px; white-space:normal;}
  .fixed-feature .price small{display:block; font-family:'Source Sans 3',sans-serif; font-weight:600; font-size:.7rem; color:#B9CAD3; text-transform:uppercase; letter-spacing:.04em;}
  @media (max-width:700px){.fixed-feature{grid-template-columns:1fr; text-align:left;} .fixed-feature .price{align-items:flex-start;}}
  .price-table{width:100%; border-collapse:collapse; background:var(--paper-raised); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-soft); overflow:hidden;}
  .price-table th,.price-table td{text-align:left; padding:15px 20px; border-bottom:1px solid var(--line); font-size:.94rem;}
  .price-table th{font-family:'Archivo Black',Arial,sans-serif; background:var(--paper); color:var(--ink-soft); font-size:.76rem; letter-spacing:.05em; text-transform:uppercase;}
  .price-table tr:last-child td{border-bottom:none;}
  .price-table td.amount{font-family:'Archivo Black',Arial,sans-serif; font-weight:800; white-space:nowrap;}
  .price-note{margin-top:18px; font-size:.85rem; padding:15px 18px; background:var(--paper-raised); border:1px solid var(--line); border-radius:var(--radius); max-width:none; border-left:3px solid var(--blue);}
  .pricing-promises{background:var(--paper-raised); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-soft); padding:30px 32px; margin-bottom:28px;}
  .pricing-promises h3{font-size:1.15rem; margin-bottom:16px;}
  .promise-list{list-style:none; margin:0 0 18px; padding:0; display:grid; gap:11px;}
  .promise-list li{padding-left:28px; position:relative; font-size:.94rem; color:var(--ink-soft);}
  .promise-list li::before{content:"✓"; position:absolute; left:0; top:0; color:var(--blue); font-weight:700;}
  .promise-note{margin:0; font-size:.88rem; color:var(--ink-soft); padding-top:16px; border-top:1px solid var(--line);}

  .service-summary{background:var(--paper-raised); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-soft); overflow:hidden;}
  .service-summary-row{display:grid; grid-template-columns:160px 1fr auto; gap:20px; align-items:center; padding:22px 26px; border-bottom:1px solid var(--line);}
  .service-summary-row:last-child{border-bottom:none;}
  .ss-trade{font-family:'Archivo Black',Arial,sans-serif; font-size:1.02rem; color:var(--ink);}
  .ss-desc{font-size:.92rem; color:var(--ink-soft); margin:0;}
  .ss-action a{white-space:nowrap; font-weight:700; font-size:.88rem; color:var(--blue); text-decoration:none; padding:9px 16px; border:1px solid var(--blue); border-radius:20px;}
  .ss-action a:hover{background:var(--blue); color:#fff;}
  @media (max-width:760px){.service-summary-row{grid-template-columns:1fr; text-align:left;} .ss-action{margin-top:4px;}}
  .quote-cta{margin-top:24px; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; background:var(--mp-tint); border:1px solid var(--line); border-radius:var(--radius); padding:26px 30px;}
  .quote-cta h3{font-size:1.1rem; margin-bottom:4px;}
  .quote-cta p{margin:0; font-size:.9rem;}
  .quote-cta-actions{display:flex; gap:12px; flex-wrap:wrap;}
  @media (max-width:700px){.quote-cta{flex-direction:column; align-items:flex-start;}}

  /* ---------- terms accordion ---------- */
  .accordion{border-top:1px solid var(--line);}
  .accordion details{border-bottom:1px solid var(--line);}
  .accordion summary{cursor:pointer; padding:19px 4px; font-family:'Archivo Black',Arial,sans-serif; font-weight:700; font-size:1rem; display:flex; justify-content:space-between; align-items:center; list-style:none;}
  .accordion summary::-webkit-details-marker{display:none;}
  .accordion summary::after{content:"+"; font-size:1.4rem; color:var(--blue); font-weight:400;}
  .accordion details[open] summary::after{content:"–";}
  .accordion .body{padding:0 4px 20px; font-size:.92rem; color:var(--ink-soft); max-width:70ch;}
  .accordion .body p{font-size:inherit; color:inherit;}

  /* ---------- booking ---------- */
  .booking-panel{display:grid; grid-template-columns:1fr 1fr; background:var(--paper-raised); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-soft); overflow:hidden;}
  .booking-aside{background:var(--ink); color:#fff; padding:42px; display:flex; flex-direction:column; justify-content:space-between;}
  .booking-aside h3{color:#fff; font-size:1.45rem;}
  .booking-aside p{color:#B9CAD3;}
  .booking-emergency{margin-top:30px; padding-top:26px; border-top:1px solid rgba(255,255,255,.14);}
  .booking-emergency .phone-big{font-family:'Archivo Black',Arial,sans-serif; font-weight:900; font-size:1.65rem; color:#fff; text-decoration:none; display:block; margin-top:6px;}
  .booking-form{padding:42px;}
  .field{margin-bottom:16px;}
  .field label{display:block; font-weight:700; font-size:.85rem; margin-bottom:6px;}
  .field input,.field select,.field textarea{width:100%; padding:11px 13px; border:1px solid var(--line); border-radius:4px; background:var(--paper); color:var(--ink); font-family:inherit; font-size:.95rem;}
  .field textarea{min-height:90px; resize:vertical;}
  .field-row{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
  .form-msg{margin-top:14px; padding:12px 14px; border-radius:4px; font-size:.88rem; display:none;}
  .form-msg.show{display:block;}
  .form-msg.ok{background:var(--mp-tint); color:var(--mp-navy); border:1px solid var(--line);}
  @media (max-width:820px){.booking-panel{grid-template-columns:1fr;} .field-row{grid-template-columns:1fr;}}

  /* ---------- social ---------- */
  .ig-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:12px;}
  .ig-tile{position:relative; aspect-ratio:1/1; border-radius:var(--radius); overflow:hidden; text-decoration:none; display:block; border:1px solid var(--line); box-shadow:var(--shadow-soft);}
  .ig-tile .bg{position:absolute; inset:0;}
  .ig-tile .overlay{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(14,36,54,0); transition:background .15s ease;}
  .ig-tile .overlay svg{width:26px; height:26px; color:#fff; opacity:0; transition:opacity .15s ease;}
  .ig-tile:hover .overlay{background:rgba(14,36,54,.45);}
  .ig-tile:hover .overlay svg{opacity:1;}
  .ig-tile .label{position:absolute; bottom:8px; left:10px; right:10px; font-size:.68rem; font-weight:700; color:var(--ink-soft); letter-spacing:.02em;}
  .social-row{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:44px;}
  .social-card{display:flex; align-items:center; gap:18px; background:var(--paper-raised); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-soft); padding:24px 26px;}
  .social-card .icon-circle{width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex:none;}
  .social-card .icon-circle svg{width:26px; height:26px; color:#fff;}
  .social-card.fb .icon-circle{background:#1877F2;}
  .social-card.ig .icon-circle{background:linear-gradient(135deg,#F58529,#DD2A7B,#8134AF,#515BD4);}
  .social-card h4{margin:0 0 3px; font-size:1.02rem;}
  .social-card p{margin:0; font-size:.85rem;}
  .social-card .btn{margin-left:auto; flex:none;}
  @media (max-width:820px){.ig-grid{grid-template-columns:repeat(2,1fr);} .social-row{grid-template-columns:1fr;}}
  @media (max-width:640px){.social-card{flex-wrap:wrap;} .social-card .btn{margin-left:0;}}

  /* ---------- service area ---------- */
  .suburb-chips{display:flex; flex-wrap:wrap; gap:10px;}
  .suburb-chips span{padding:8px 16px; border:1px solid var(--line); border-radius:20px; font-size:.85rem; font-weight:600; color:var(--ink-soft); background:var(--paper-raised);}

  /* ---------- footer ---------- */
  footer{background:var(--ink); color:#B9CAD3; padding:56px 0 calc(30px + env(safe-area-inset-bottom,0px));}
  footer h4{color:#fff; font-size:.9rem; margin-bottom:14px;}
  .foot-grid{display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:32px;}
  footer a{text-decoration:none; color:#B9CAD3;}
  footer a:hover{color:#fff;}
  .foot-logo{width:150px; margin-bottom:16px;}
  .foot-links{list-style:none; padding:0; margin:0; display:grid; gap:9px; font-size:.9rem;}
  .foot-cert-badge{display:inline-flex; align-items:center; background:#fff; border-radius:6px; padding:10px 14px; margin-top:6px;}
  .foot-cert-badge img{width:150px; display:block;}
  .foot-bottom{margin-top:44px; padding-top:22px; border-top:1px solid rgba(255,255,255,.12); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:.8rem; color:#7F94A0;}
  @media (max-width:820px){.foot-grid{grid-template-columns:1fr 1fr;}}

  .call-bar{position:fixed; left:0; right:0; bottom:0; z-index:60; display:none; background:var(--red); color:#fff; text-decoration:none; text-align:center; padding:14px calc(16px + env(safe-area-inset-left,0px)) calc(14px + env(safe-area-inset-bottom,0px)) calc(16px + env(safe-area-inset-right,0px)); font-family:'Archivo Black',Arial,sans-serif; font-weight:800;}
  @media (max-width:640px){.call-bar{display:block;} body{padding-bottom:calc(58px + env(safe-area-inset-bottom,0px));}}

  ::selection{background:var(--blue); color:#fff;}
  :focus-visible{outline:2px solid var(--cyan); outline-offset:2px;}
  @media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;} *{transition:none !important;}}

  .header-mp-badge{height:40px; width:auto; flex:none;}
  @media (max-width:1160px){.header-mp-badge{height:34px;}}
  header .nav-row{max-width:1360px;}
  @media (min-width:1161px) and (max-width:1380px){nav.links{gap:10px; font-size:.8rem;} .header-mp-badge{height:34px;}}
  @media (max-width:520px){.header-mp-badge{height:30px;} .header-actions .phone-link{display:none;}}

  .cred-band{grid-template-columns:repeat(3,1fr);}
  .cred-insured{display:flex; align-items:center; gap:16px;}
  .cred-insured .ins-seal{width:104px; height:104px; flex:none; margin:0; color:inherit;}
  @media (max-width:820px){.cred-band{grid-template-columns:repeat(2,1fr);}}
  @media (max-width:520px){.cred-band{grid-template-columns:1fr;}}

  .header-ins-seal{width:46px; height:46px; flex:none;}
  @media (min-width:1161px) and (max-width:1380px){.header-ins-seal{width:40px; height:40px;}}
  @media (max-width:1320px){.header-ins-seal{display:none;}}
  @media (min-width:1161px) and (max-width:1260px){nav.links{gap:8px; font-size:.76rem;} .logo-text .small{display:none;}}
  .foot-grid > *{min-width:0;} .foot-links a{overflow-wrap:anywhere;}
  @media (max-width:520px){.foot-grid{grid-template-columns:1fr;}}

  /* ---------- hero v2: headline strip / clean photo / info band ---------- */
  .hero.hero-v2{padding:0; min-height:0; overflow:visible; display:block;}
  .hero-v2 .hero-headline-strip{background:var(--paper-raised); border-bottom:1px solid var(--line); padding:22px 0;}
  .hero-v2 .hero-headline-strip h1{margin:0 auto; font-size:clamp(1.15rem, 2vw, 1.7rem); text-shadow:none; color:var(--blue); white-space:normal; text-align:center; max-width:none;}
  .hero-v2 .hero-bg{position:relative; inset:auto; width:100%; aspect-ratio:1800/1060; background-position:center 18% !important; background-size:cover !important;}
  .hero-v2 .hero-bg::after{display:none;}
  .hero-v2 .hero-info{background:var(--paper); padding:40px 0 44px; border-bottom:1px solid var(--line);}
  .hero-v2 .hero-info .wrap{display:grid; grid-template-columns:1.2fr 1fr; gap:12px 48px; align-items:center;}
  .hero-v2 .hero-info .lede{margin:0; max-width:none;}
  .hero-v2 .hero-info .hero-ctas{margin:0; justify-content:flex-end;}
  .hero-v2 .hero-info .credential-strip{grid-column:1 / -1; margin-top:18px;}
  @media (max-width:900px){
    .hero-v2 .hero-info .wrap{grid-template-columns:1fr;}
    .hero-v2 .hero-info .hero-ctas{justify-content:flex-start;}
  }
  @media (max-width:640px){
    .hero-v2 .hero-headline-strip{padding:16px 0;}
    .hero-v2 .hero-info{padding:28px 0 32px;}
    .hero-v2 .hero-info .wrap{padding:0 16px;}
    .hero-v2 .hero-ctas .btn{flex:1 1 100%; justify-content:center;}
    .hero-v2 .credential-strip{flex-direction:column;}
  }

  .hero-v2 .hero-photo-wrap{position:relative;}
  .hero-v2 .hero-overlay{position:absolute; left:50%; top:24%; transform:translateX(-50%); width:min(680px, calc(100% - 48px)); background:rgba(255,255,255,.58); border-radius:var(--radius); padding:26px 32px; text-align:center; box-shadow:0 12px 32px -18px rgba(8,24,36,.45);}
  .hero-v2 .hero-overlay .lede{margin:0 auto 18px; max-width:none; color:var(--ink); font-weight:600; font-size:1.08rem;}
  .hero-v2 .hero-overlay .hero-ctas{justify-content:center; margin:0;}
  .hero-v2 .hero-info{padding:26px 0 30px;}
  .hero-v2 .hero-info .wrap{display:block;}
  .hero-v2 .hero-info .credential-strip{margin-top:0; border-top:none; padding-top:0; justify-content:center;}
  @media (max-width:760px){
    .hero-v2 .hero-overlay{position:static; transform:none; width:auto; background:var(--paper); box-shadow:none; border-radius:0; padding:24px 16px 8px; text-align:left;}
    .hero-v2 .hero-overlay .lede{font-weight:400; color:var(--ink-soft);}
    .hero-v2 .hero-overlay .hero-ctas{justify-content:flex-start;}
    .hero-v2 .hero-info .credential-strip{justify-content:flex-start;}
  }

/* ---------- WordPress admin bar (only affects logged-in users) ---------- */
.admin-bar header{top:32px;}
@media (max-width:782px){.admin-bar header{top:46px;}}
@media (max-width:600px){.admin-bar header{top:0;}}
