/* ============================================================
   K & C Arborist — stylesheet
   Values match the design of record exactly.
   ============================================================ */

/* ---------- Fonts (self-hosted, latin subset) ---------- */
@font-face{font-family:'Barlow';src:url('fonts/barlow-latin-400-normal.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Barlow';src:url('fonts/barlow-latin-500-normal.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Barlow';src:url('fonts/barlow-latin-600-normal.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Barlow';src:url('fonts/barlow-latin-700-normal.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Barlow Condensed';src:url('fonts/barlow-condensed-latin-500-normal.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Barlow Condensed';src:url('fonts/barlow-condensed-latin-600-normal.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Barlow Condensed';src:url('fonts/barlow-condensed-latin-700-normal.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}

/* ---------- Design tokens ---------- */
:root{
  --ink:#0e100f;            --hero-dark:#0d1510;
  --body:#1b1e1c;           --body-light:#22271f;
  --muted-body:#41463f;     --muted-label:#4a504a;   --muted-caption:#6b716a;
  --footer-muted:#8b918a;   --footer-blurb:#a7ada5;
  --green-deep:#14472c;     --green-deeper:#0e3520;
  --green-head:#123d24;     --green-mid:#26702f;
  --green-bright:#4a9d4f;   --green-light:#7cc184;   --green-pale:#8fd096;
  --gold:#f5b820;
  --surface:#f3f4f1;        --surface-tint:#f7f8f5;
  --line:#e4e6e1;           --line-card:#e0e2dd;     --line-input:#d2d6cf;
  --line-footer:#24281f;    --line-icon:#2c3129;
  --font-head:'Barlow Condensed',Barlow,'Helvetica Neue',Helvetica,Arial,sans-serif;
  --font-body:Barlow,'Helvetica Neue',Helvetica,Arial,sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-slot:cubic-bezier(.16,.84,.28,1);
  --wrap:1180px;
}

/* ---------- Base ---------- */
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font-body);color:var(--body);background:#fff;-webkit-font-smoothing:antialiased;text-wrap:pretty}
h1,h2,h3{font-family:var(--font-head);margin:0}
p{margin:0}
a{color:#1d6b32;text-decoration:underline;text-underline-offset:2px}
a:hover{color:var(--green-bright)}
img,video{display:block;max-width:100%}
button{font-family:inherit}
input,textarea{font-family:inherit}
:focus-visible{outline:3px solid var(--green-bright);outline-offset:2px}
a,button{transition:background-color .28s ease,color .28s ease,border-color .28s ease,transform .28s var(--ease),box-shadow .28s ease}
a[href^="#quote"]:hover,a[href^="tel:"]:hover{transform:translateY(-2px)}

.page{width:100%;overflow-x:hidden}
.wrap{max-width:var(--wrap);margin:0 auto}
.tc{text-align:center}
.mt-16{margin-top:16px}

.skip-link{position:absolute;left:-9999px;top:0;z-index:200;background:var(--green-deep);color:#fff;padding:12px 18px;font-weight:700;text-decoration:none}
.skip-link:focus{left:8px;top:8px}

/* ---------- Shared type ---------- */
.h2{font-size:clamp(1.8rem,4vw,2.6rem);font-weight:700;text-transform:uppercase;line-height:1.08;color:var(--green-head)}
.h2--center{text-align:center}
.h2--on-dark{color:#fff;line-height:1.05}
.h2--rig{font-size:clamp(1.7rem,3.6vw,2.4rem);line-height:1.08}
.rule{width:56px;height:3px;background:var(--green-bright);margin:16px 0 0}
.rule--center{margin:16px auto 0}
.rule--light{background:var(--green-light);margin:16px 0 20px}
.lead{font-size:clamp(1.02rem,1.9vw,1.2rem);line-height:1.6;max-width:820px}
.lead--on-dark{color:#e6eee5}
.lead--rig{font-size:clamp(1.02rem,1.9vw,1.18rem);max-width:none}
.section-intro{margin:16px auto 0;text-align:center;font-size:17px;line-height:1.6;color:var(--muted-body);max-width:640px}
.section-intro--tight{max-width:none}
.eyebrow{font-size:13px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--green-mid)}

.section{padding:clamp(48px,7vw,84px) 20px}
.section--white{background:#fff}
.section--alt{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line);scroll-margin-top:90px}
.about{padding:clamp(48px,7vw,80px) 20px}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;font-weight:700;font-size:16px;padding:16px 26px;border-radius:3px;text-decoration:none}
.btn--lg{min-height:56px;font-size:18px;padding:18px 30px;gap:9px}
.btn--outline-dark{background:#fff;color:var(--green-head);border:1px solid var(--green-head)}
.btn--outline-dark:hover{background:var(--green-head);color:#fff}
.btn--green{background:var(--green-mid);color:#fff}
.btn--green:hover{background:var(--green-deep);color:#fff}
.btn--white{background:#fff;color:var(--green-head)}
.btn--white:hover{background:#eef2ec;color:var(--green-head)}
.btn--green-outline{background:var(--green-mid);color:#fff;border:1px solid var(--green-light)}
.btn--green-outline:hover{background:var(--green-deep);color:#fff}
.cta-row{margin-top:28px;display:flex;flex-wrap:wrap;gap:12px;justify-content:center}

/* ============================================================
   1. HEADER
   ============================================================ */
.site-header{position:fixed;top:0;left:0;right:0;width:100%;margin:0 auto;z-index:60;background:var(--ink);border-bottom:2px solid var(--green-bright);border-radius:0;max-width:100%;transition:box-shadow .35s ease,border-color .35s ease}
.site-header.is-scrolled{box-shadow:0 10px 30px rgba(10,16,12,.38)}
.header-bar{max-width:var(--wrap);margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:14px;justify-content:space-between;transition:padding .4s var(--ease)}
.site-header.is-scrolled .header-bar{padding:4px 16px}
.header-logo{display:block;flex:0 1 auto;min-width:0;text-decoration:none}
.header-logo img{width:auto;height:auto;max-height:104px;max-width:62vw;transition:max-height .4s var(--ease)}
.site-header.is-scrolled .header-logo img{max-height:56px}
@media (max-width:519px){
  .header-logo img{max-height:74px}
  .site-header.is-scrolled .header-logo img{max-height:46px}
}
.header-call{flex:0 0 auto;background:var(--green-mid);color:#fff;font-weight:700;font-size:clamp(15px,2.4vw,19px);letter-spacing:.02em;padding:14px clamp(14px,2.5vw,26px);border-radius:3px;text-decoration:none;min-height:50px;display:flex;align-items:center;gap:9px;white-space:nowrap;transition:background-color .28s ease,color .28s ease,transform .28s var(--ease),padding .4s var(--ease),font-size .4s ease,min-height .4s ease}
.header-call:hover{background:var(--green-deep);color:#fff}
.site-header.is-scrolled .header-call{padding:10px clamp(12px,2vw,20px);font-size:16px;min-height:44px}

/* ============================================================
   2. HERO + QUOTE FORM
   ============================================================ */
.hero{position:relative;background-color:var(--hero-dark);background-image:linear-gradient(rgba(10,16,12,.62),rgba(10,16,12,.72)),image-set(url('assets/job-felled-gum.avif') type('image/avif'),url('assets/job-felled-gum.webp') type('image/webp'),url('assets/job-felled-gum.jpg') type('image/jpeg'));background-size:cover;background-position:center 58%;padding:clamp(130px,15vw,180px) 20px clamp(56px,8vw,92px)}
@supports not (background-image:image-set(url('/a.avif') type('image/avif'))){
  .hero{background-image:linear-gradient(rgba(10,16,12,.62),rgba(10,16,12,.72)),url('assets/job-felled-gum.jpg')}
}
@media (max-width:1100px) and (min-width:701px){
  .hero{background-image:linear-gradient(rgba(10,16,12,.62),rgba(10,16,12,.72)),image-set(url('assets/job-felled-gum-1100.avif') type('image/avif'),url('assets/job-felled-gum-1100.webp') type('image/webp'),url('assets/job-felled-gum-1100.jpg') type('image/jpeg'))}
}
.hero-inner{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:clamp(24px,3.5vw,52px);align-items:center}
.hero-kicker{font-size:14px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--green-pale)}
.hero-h1{margin-top:14px;font-size:clamp(2.1rem,5vw,3.4rem);font-weight:700;text-transform:uppercase;line-height:1.02;color:#fff}
.hero-sub{margin-top:18px;font-size:clamp(1.05rem,2vw,1.3rem);line-height:1.55;color:#e4e9e1;max-width:540px}
.rating-row{margin-top:26px;display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.rating-stars{font-size:25px;letter-spacing:.1em;color:var(--gold);line-height:1}
.rating-text{font-size:20px;font-weight:700;color:#fff}

.hero-slider{margin-top:16px}
.slider-viewport{overflow:hidden}
.slider-track{display:flex;align-items:flex-start;transition:transform .6s var(--ease)}
.hero-slide{flex:0 0 100%;min-width:100%;margin:0}
.hero-quote{font-size:clamp(1.3rem,2.6vw,1.72rem);line-height:1.5;color:#f2f5f0;min-height:112px}
.hero-cite{font-size:14px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#c4ccc1}
.hero-controls{margin-top:16px;display:flex;align-items:center;gap:10px}
.hero-counter{margin-left:4px;font-size:14px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#c9d1c6}

.ctrl{flex:0 0 auto;border-radius:50%;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.ctrl--hero{width:44px;height:44px;border:1px solid rgba(255,255,255,.45);background:transparent;color:#fff;font-size:20px}
.ctrl--hero:hover{background:#fff;border-color:#fff;color:var(--green-head)}
.ctrl--review{width:48px;height:48px;border:1px solid #c9cec6;background:#fff;color:var(--green-head);font-size:22px}
.ctrl--review:hover{background:var(--green-deep);border-color:var(--green-deep);color:#fff}

/* Quote form */
.quote-card{scroll-margin-top:90px;background:rgba(243,244,241,.97);border-radius:4px;padding:clamp(20px,3vw,32px);display:flex;flex-direction:column;gap:14px}
.quote-h2{text-align:center;font-size:clamp(1.6rem,3.4vw,2.2rem);font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:var(--green-head)}
.field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.field-label{display:block;font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-label);margin-bottom:5px}
.field-input{width:100%;font-size:16px;padding:14px 13px;border:1px solid var(--line-input);border-radius:3px;background:#fff;color:var(--body);min-height:50px}
textarea.field-input{resize:vertical;min-height:0}
.field-input:hover{border-color:#b6bcaf}
.upload-wrap{position:relative;margin-top:2px}
.upload-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:108px;padding:20px;border:1px dashed #a9b0a5;border-radius:3px;background:var(--surface-tint);text-align:center;cursor:pointer;transition:background .25s ease,border-color .25s ease}
.upload-wrap:hover .upload-zone{background:#eff1ea;border-color:var(--green-mid)}
.upload-input:focus-visible + .upload-zone,.upload-zone:has(+ .upload-input:focus-visible){outline:3px solid var(--green-bright);outline-offset:2px}
.upload-title{font-size:17px;font-weight:600;color:var(--green-head)}
.upload-hint{font-size:14px;color:var(--muted-caption)}
.upload-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.quote-submit{background:var(--green-deep);color:#fff;border:0;font-weight:700;font-size:19px;letter-spacing:.02em;padding:19px 22px;border-radius:3px;cursor:pointer;min-height:60px}
.quote-submit:hover{background:var(--green-deeper)}
.quote-submit[disabled]{opacity:.72;cursor:progress}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Inline submit result — replaces the old page navigation */
.form-status{font-size:15px;line-height:1.5;padding:12px 14px;border-radius:3px}
.form-status--ok{color:var(--green-head);background:#e3efe2;border-left:3px solid var(--green-bright)}
.form-status--err{color:#7a2318;background:#fbe9e6;border-left:3px solid #c2412d}
.form-status a{color:inherit;font-weight:700}
.quote-card.is-sent .field-grid,
.quote-card.is-sent .upload-wrap,
.quote-card.is-sent > div:has(#q-job),
.quote-card.is-sent .quote-submit{display:none}

/* ============================================================
   3. ABOUT
   ============================================================ */
.about-panel{background:var(--green-deep);padding:clamp(28px,4vw,52px)}
.about-emphasis{margin-top:20px;font-size:clamp(1.1rem,2.1vw,1.35rem);font-weight:700;color:#fff}
.about-list{margin:26px 0 0;padding:22px 0 0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;border-top:1px solid rgba(255,255,255,.18)}
.about-list-h{font-size:1.15rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--green-light)}
.about-list-p{margin-top:8px;font-size:16px;line-height:1.55;color:#dbe5da}

/* ============================================================
   4. SERVICES
   ============================================================ */
.service-grid{margin:clamp(28px,4vw,44px) auto 0;max-width:1000px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,258px),1fr));gap:18px}
.service-tile{position:relative;border-radius:3px;overflow:hidden;background:var(--ink);transition:transform .45s var(--ease),box-shadow .45s ease}
.service-tile:hover{transform:translateY(-6px);box-shadow:0 18px 36px rgba(10,16,12,.28)}
.service-tile img{width:100%;height:clamp(200px,26vw,260px);object-fit:cover;opacity:.82;transition:transform .7s var(--ease),opacity .45s ease}
.service-tile:hover img{transform:scale(1.06);opacity:.94}
.service-title{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:16px;font-size:clamp(1.3rem,2.4vw,1.6rem);font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.6);background:linear-gradient(rgba(10,16,12,.15),rgba(10,16,12,.5))}
.pos-c30{object-position:center 30%}.pos-c35{object-position:center 35%}
.pos-c45{object-position:center 45%}.pos-c55{object-position:center 55%}
.pos-c60{object-position:center 60%}
.services-closer{margin-top:26px;text-align:center;font-size:17px;color:var(--muted-body)}
.strong-link{font-weight:700}

/* Reveal states (JS-driven) */
.reveal-tile{opacity:0;transform:translateY(46px) scale(.96);transition:opacity .75s var(--ease-slot),transform .85s var(--ease-slot)}
.reveal-tile.is-in{opacity:1;transform:none}
.reveal-block{opacity:0;transform:translateY(26px);transition:opacity .75s var(--ease),transform .75s var(--ease)}
.reveal-block.is-in{opacity:1;transform:none}

/* ============================================================
   5. HOW WE WORK
   ============================================================ */
.rig-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:0;align-items:center}
.rig-video{position:relative;padding:0;border:0;background:var(--ink);cursor:pointer;display:block;width:100%;overflow:hidden}
.rig-video img{width:100%;height:clamp(300px,44vw,520px);object-fit:cover;object-position:center 30%;transition:transform .9s var(--ease)}
.rig-video:hover img{transform:scale(1.05)}
.play-badge{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:56px;height:56px;border-radius:50%;background:rgba(14,16,15,.6);border:2px solid #fff;display:flex;align-items:center;justify-content:center;color:#fff;font-size:20px;padding-left:4px}
.play-badge--lg{width:82px;height:82px;background:rgba(14,16,15,.55);border:2px solid #fff;font-size:28px;padding-left:6px;transition:transform .35s var(--ease),background .35s ease}
.rig-video:hover .play-badge--lg{transform:translate(-50%,-50%) scale(1.09);background:rgba(20,71,44,.82)}
.rig-chip{position:absolute;left:14px;bottom:14px;background:rgba(14,16,15,.78);color:#fff;font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:8px 12px}
.rig-panel{background:var(--green-deep);padding:clamp(26px,4vw,48px);align-self:stretch;display:flex;flex-direction:column;justify-content:center}
.rig-prompt{margin-top:20px;font-size:16px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--green-light)}

/* ============================================================
   6. OUR WORK
   ============================================================ */
.featured-card{margin-top:clamp(28px,4vw,44px);background:#fff;border:1px solid var(--line-card);border-radius:3px;padding:clamp(20px,3vw,34px)}
.featured-h3{margin-top:8px;font-size:clamp(1.4rem,2.8vw,2rem);font-weight:700;text-transform:uppercase;line-height:1.1;color:var(--green-head)}
.ba-grid{margin-top:22px;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}
.ba-figure{margin:0;position:relative}
.ba-button{display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in}
.ba-button img{width:100%;height:clamp(280px,40vw,420px);object-fit:cover;border-radius:2px}
.ba-chip{position:absolute;top:12px;left:12px;color:#fff;font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:7px 12px}
.ba-chip--before{background:var(--ink)}
.ba-chip--after{background:var(--green-mid)}
.pull-quote{margin-top:22px;font-size:clamp(1.05rem,2vw,1.2rem);line-height:1.6;color:var(--body-light);max-width:780px;border-left:3px solid var(--green-bright);padding-left:16px}
.media-grid{margin-top:clamp(24px,3vw,32px);display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}
.media-tile{position:relative;padding:0;border:0;border-radius:3px;overflow:hidden;background:#dfe2dc;cursor:pointer;display:block;transition:transform .45s var(--ease),box-shadow .45s ease}
.media-tile[data-media-type="image"]{cursor:zoom-in}
.media-tile:hover{transform:translateY(-5px);box-shadow:0 16px 32px rgba(10,16,12,.22)}
.media-tile img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover}

/* ============================================================
   7. REVIEWS
   ============================================================ */
.reviews{background:#fff;padding:clamp(46px,6.4vw,78px) 20px clamp(10px,2vw,18px);scroll-margin-top:90px}
.reviews-intro{margin:18px auto 0;font-size:clamp(1.06rem,2vw,1.26rem);line-height:1.6;color:var(--muted-body);max-width:620px}
.review-slider{margin:clamp(28px,4vw,44px) auto 0;max-width:960px}
.review-viewport{overflow:hidden;background:var(--surface);border:1px solid var(--line-card);border-radius:3px}
.review-viewport .slider-track{align-items:stretch;transition:transform .65s var(--ease)}
.review-slide{flex:0 0 100%;min-width:100%;margin:0;padding:clamp(26px,4.2vw,48px);text-align:left}
.review-stars{font-size:clamp(24px,3.2vw,30px);letter-spacing:.1em;color:var(--gold);line-height:1}
.review-fb{font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--green-mid)}
.review-body{margin-top:18px;font-size:clamp(1.1rem,2.1vw,1.42rem);line-height:1.6;color:var(--body-light);min-height:clamp(180px,22vw,210px)}
.review-cite{font-size:15px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#3c423b}
.review-controls{margin-top:18px;display:flex;align-items:center;justify-content:center;gap:14px}
.review-counter{font-size:15px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-caption);min-width:66px}

/* ============================================================
   8. AREAS
   ============================================================ */
.areas{background:#fff;padding:clamp(34px,4.6vw,54px) 20px clamp(46px,6.4vw,78px);scroll-margin-top:90px}
.areas-intro{margin:18px auto 0;font-size:17px;line-height:1.6;color:var(--muted-body);max-width:660px}
.chip-list{margin:26px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.chip{background:var(--surface);border:1px solid var(--line-card);padding:11px 16px;font-size:16px;font-weight:500;color:var(--body-light)}
.chip--active{background:var(--green-deep);border-color:var(--green-deep);font-weight:600;color:#fff}

/* ============================================================
   9. FINAL CTA
   ============================================================ */
.final-cta{scroll-margin-top:90px;background-color:var(--green-deep);background-image:linear-gradient(rgba(12,44,26,.86),rgba(12,44,26,.9)),image-set(url('assets/job-felled-gum.avif') type('image/avif'),url('assets/job-felled-gum.webp') type('image/webp'),url('assets/job-felled-gum.jpg') type('image/jpeg'));background-size:cover;background-position:78% 60%;padding:clamp(52px,8vw,92px) 20px}
@supports not (background-image:image-set(url('/a.avif') type('image/avif'))){
  .final-cta{background-image:linear-gradient(rgba(12,44,26,.86),rgba(12,44,26,.9)),url('assets/job-felled-gum.jpg')}
}
.cta-h2{font-size:clamp(1.9rem,4.4vw,3rem);font-weight:700;text-transform:uppercase;line-height:1.05;color:#fff}
.cta-sub{margin-top:14px;font-size:clamp(1.1rem,2.1vw,1.35rem);line-height:1.5;color:#e3ebe2}
.cta-row--tight{margin-top:28px}
.cta-trust{margin-top:22px;font-size:15px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#c9d9c7}

/* ============================================================
   10. FOOTER
   ============================================================ */
.site-footer{background:var(--ink);padding:clamp(36px,5vw,56px) 20px 26px}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:28px;align-items:start}
.footer-col{padding-top:clamp(0px,4.6vw,54px)}
.footer-logo{height:auto;max-height:124px;width:auto}
.footer-blurb{margin-top:14px;font-size:15px;line-height:1.6;color:var(--footer-blurb);max-width:290px}
.footer-h{font-size:1.05rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#fff}
.footer-list{margin:14px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}
.footer-li{font-size:16px;color:#d5dad2}
.footer-li--muted{color:var(--footer-blurb)}
.footer-link{font-size:16px;color:var(--green-pale)}
.footer-link:hover{color:#fff}
.social-list{margin:12px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.social{width:44px;height:44px;border:1px solid var(--line-icon);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--green-pale);text-decoration:none;transition:background .25s ease,color .25s ease,border-color .25s ease}
.social:hover{background:var(--green-mid);border-color:var(--green-mid);color:#fff}
.social--g{font-family:var(--font-head);font-size:22px;font-weight:700;line-height:1}
.footer-bottom{margin:26px auto 0;padding-top:18px;border-top:1px solid var(--line-footer);display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between}
.footer-legal{font-size:14px;color:var(--footer-muted)}

/* ============================================================
   LIGHTBOX
   ============================================================ */
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(8,11,9,.93);display:flex;align-items:center;justify-content:center;padding:clamp(12px,4vw,40px)}
.lightbox[hidden]{display:none}
.lightbox-close{position:absolute;top:14px;right:14px;width:48px;height:48px;background:transparent;border:1px solid #5b625a;border-radius:3px;color:#fff;font-size:22px;cursor:pointer}
.lightbox-close:hover{background:rgba(255,255,255,.12)}
.lightbox video{max-width:min(94vw,460px);max-height:86vh;background:#000}
.lightbox img{max-width:min(96vw,1100px);max-height:86vh;width:auto;height:auto;object-fit:contain}
body.is-locked{overflow:hidden}

/* ============================================================
   THANK-YOU PAGE
   ============================================================ */
.thanks{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--hero-dark);background-image:linear-gradient(rgba(10,16,12,.74),rgba(10,16,12,.84)),image-set(url('assets/job-felled-gum.avif') type('image/avif'),url('assets/job-felled-gum.webp') type('image/webp'),url('assets/job-felled-gum.jpg') type('image/jpeg'));background-size:cover;background-position:center 58%;padding:clamp(140px,16vw,190px) 20px clamp(56px,8vw,92px)}
.thanks-card{max-width:620px;width:100%;background:rgba(243,244,241,.97);border-radius:4px;padding:clamp(26px,4vw,44px);text-align:center}
.thanks-tick{width:64px;height:64px;margin:0 auto;border-radius:50%;background:var(--green-mid);color:#fff;display:flex;align-items:center;justify-content:center;font-size:32px;line-height:1}
.thanks-h1{margin-top:20px;font-size:clamp(1.9rem,4.4vw,2.6rem);font-weight:700;text-transform:uppercase;line-height:1.05;color:var(--green-head)}
.thanks-p{margin-top:16px;font-size:clamp(1.02rem,1.9vw,1.16rem);line-height:1.6;color:var(--muted-body)}
.thanks-row{margin-top:28px;display:flex;flex-wrap:wrap;gap:12px;justify-content:center}

/* ============================================================
   REDUCED MOTION
   Reveals still fade; only the movement and autoplay go away.
   No blanket `* { transition:none }` — that kills the reveals.
   ============================================================ */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal-tile{transform:translateY(14px);transition:opacity .35s ease,transform .35s ease}
  .reveal-block{transform:none;transition:opacity .35s ease}
  .slider-track,.review-viewport .slider-track{transition:transform .2s linear}
  .service-tile:hover,.media-tile:hover,.header-call,.btn:hover,a[href^="#quote"]:hover,a[href^="tel:"]:hover{transform:none}
  .service-tile:hover img,.rig-video:hover img{transform:none}
  .rig-video:hover .play-badge--lg{transform:translate(-50%,-50%)}
}

/* ============================================================
   PHONE REFINEMENTS  (≤700px)
   Desktop and tablet are untouched — every rule here is
   scoped to phone width. The goal is to cut dead scroll so the
   page stays readable on a phone without losing any content.
   ============================================================ */
@media (max-width: 700px){

  /* Work gallery: 2-up. Six full-width portrait tiles was 2,880px
     of scrolling for one section — it's a thumbnail grid, tap to enlarge. */
  .media-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .media-tile img{aspect-ratio:4/5}
  .play-badge{width:44px;height:44px;font-size:16px;padding-left:3px}

  /* Services: 2-up, with the title stepped down so the longer
     names still sit on one line in the narrower tile. */
  .service-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .service-tile img{height:150px}
  .service-title{font-size:1.02rem;padding:10px;letter-spacing:.01em}

  /* Before/after reads better side by side than stacked — it's a
     comparison, and stacked you can't see both at once. */
  .ba-grid{grid-template-columns:1fr 1fr;gap:10px}
  .ba-button img{height:210px}
  .ba-chip{top:8px;left:8px;font-size:11px;letter-spacing:.1em;padding:5px 8px}

  /* Slider min-heights were sized for desktop line lengths; on a phone
     they leave a dead gap under the shorter quotes. */
  .hero-quote{min-height:96px}
  .review-body{min-height:150px}

  /* On a phone the wide hero shot crops to an unreadable strip, so it
     becomes a soft backdrop instead. Pre-blurred at build time rather
     than filtered in CSS: 2KB instead of 90KB, and no paint cost on scroll.
     The overlay is lightened a touch since the blur already kills contrast. */
  .hero{
    background-image:linear-gradient(rgba(10,16,12,.58),rgba(10,16,12,.70)),
      image-set(url('assets/job-felled-gum-blur.avif') type('image/avif'),
                url('assets/job-felled-gum-blur.webp') type('image/webp'),
                url('assets/job-felled-gum-blur.jpg') type('image/jpeg'));
    background-position:center center;
    padding-top:164px;
    padding-bottom:clamp(44px,8vw,64px);
  }

  /* Stacked CTAs look tidier and are easier to hit at full width */
  .cta-row .btn{width:100%}
  .cta-row{gap:10px}

  /* The CTA band sits under an 86-90% overlay, so its photo is barely
     visible — no reason to pull the 257KB full-size file on a phone.
     Reuse the blurred hero (already cached by now): ~255KB saved. */
  .final-cta{
    background-image:linear-gradient(rgba(12,44,26,.86),rgba(12,44,26,.9)),
      image-set(url('assets/job-felled-gum-blur.avif') type('image/avif'),
                url('assets/job-felled-gum-blur.webp') type('image/webp'),
                url('assets/job-felled-gum-blur.jpg') type('image/jpeg'));
    background-position:center center;
  }

  /* Footer: 2-up instead of 4 stacked columns */
  .footer-grid{grid-template-columns:1fr 1fr;gap:22px}
  .footer-col{padding-top:0}
  .footer-logo{max-height:96px}

  /* Footer nav links were 19px tall — under the 44px touch minimum */
  .footer-list li{display:flex}
  .footer-list a{display:inline-flex;align-items:center;min-height:44px}
  .footer-li{display:flex;align-items:center;flex-wrap:wrap;gap:4px;min-height:44px}
}

/* Very narrow phones: the 2-up service titles need one more step down */
@media (max-width: 400px){
  .service-title{font-size:.95rem;padding:8px}
  .service-tile img{height:132px}
}
