/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.relative{position:relative}.start{inset-inline-start:var(--spacing)}.inline{display:inline}.table{display:table}}:root{--navy:#062545;--orange:#f26a0a;--cream:#f6f3ed;--ink:#102538;--muted:#5c6771;--line:#d8dcd9}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--ink);font-family:var(--font-body),sans-serif;background:#fff;margin:0}a{color:inherit;text-decoration:none}.site-header{border-bottom:1px solid var(--line);z-index:20;background:#fff;grid-template-columns:180px 1fr 190px;align-items:center;gap:28px;height:94px;padding:8px clamp(24px,5vw,78px);display:grid;position:sticky;top:0}.brand{width:152px;height:78px;display:block}.brand img,.footer-brand img{object-fit:contain;width:100%;height:100%}.site-header nav{justify-content:center;gap:clamp(20px,3vw,48px);font-weight:700;display:flex}.site-header nav a{border-bottom:2px solid #0000;padding:10px 0}.site-header nav a:hover{color:var(--orange);border-color:var(--orange)}.header-call{background:var(--orange);color:#fff;justify-self:end;padding:14px 18px;font-weight:800}.hero{background:var(--navy);color:#fff;grid-template-columns:1.08fr .92fr;min-height:680px;display:grid;overflow:hidden}.hero-copy{z-index:2;padding:clamp(70px,9vw,128px) clamp(32px,7vw,110px)}.eyebrow{color:var(--orange);letter-spacing:.16em;text-transform:uppercase;font-size:13px;font-weight:900}h1,h2,h3{font-family:var(--font-display),sans-serif;margin-top:0}h1{letter-spacing:-.025em;text-transform:uppercase;margin:18px 0 26px;font-size:clamp(62px,7.3vw,112px);line-height:.94}h1 span{color:var(--orange)}.hero-lede{color:#dce5ed;max-width:630px;font-size:clamp(18px,1.55vw,23px);line-height:1.55}.hero-actions{flex-wrap:wrap;gap:14px;margin:38px 0;display:flex}.button{border:2px solid var(--orange);padding:15px 21px;font-weight:900;transition:all .2s}.button.primary{background:var(--orange)}.button:hover{transform:translateY(-2px);box-shadow:0 9px 24px #0003}.trust-row{color:#b9c9d7;flex-wrap:wrap;gap:20px;font-weight:700;display:flex}.trust-row span:before{content:"✓";color:var(--orange);margin-right:7px}.hero-brand{background:var(--cream);place-items:center;padding:54px;display:grid;position:relative}.logo-card{z-index:2;width:min(100%,520px);position:relative;transform:rotate(-2deg);box-shadow:0 30px 60px #06254524}.logo-card img{width:100%;height:auto;display:block}.orange-block{background:var(--orange);width:62%;height:46%;position:absolute;bottom:-7%;right:-9%;transform:rotate(8deg)}.intro-strip{background:var(--orange);color:#fff;grid-template-columns:1.6fr 1fr 1fr;align-items:center;gap:20px;padding:25px clamp(28px,7vw,110px);display:grid}.intro-strip>p{font-family:var(--font-display);text-transform:uppercase;margin:0;font-size:27px}.intro-strip div{align-items:center;gap:13px;display:flex}.intro-strip strong{font-family:var(--font-display);font-size:36px}.intro-strip span{font-weight:700;line-height:1.15}.section{padding:clamp(78px,9vw,130px) clamp(28px,7vw,110px)}.section-heading{grid-template-columns:1.3fr .7fr;align-items:end;gap:50px;margin-bottom:54px;display:grid}.section-heading h2,.about-copy h2,.contact-section h2{text-transform:uppercase;color:var(--navy);margin:10px 0 0;font-size:clamp(45px,5vw,74px);line-height:1.02}.section-heading>p{color:var(--muted);font-size:19px;line-height:1.55}.services-section{background:var(--cream)}.services-grid{border-top:1px solid #bfc5c4;border-left:1px solid #bfc5c4;grid-template-columns:repeat(3,1fr);display:grid}.service-card{background:#f9f7f2;border-bottom:1px solid #bfc5c4;border-right:1px solid #bfc5c4;min-height:240px;padding:31px}.service-card:hover{background:#fff;box-shadow:0 18px 35px #06254512}.service-card>span{color:var(--orange);letter-spacing:.12em;font-weight:900}.service-card h3{text-transform:uppercase;color:var(--navy);margin:24px 0 10px;font-size:27px}.service-card p{color:var(--muted);margin:0;line-height:1.55}.gallery-section{background:var(--navy);color:#fff}.section-heading.light h2{color:#fff}.section-heading.light>p{color:#b9c9d7}.gallery-grid{grid-template-columns:1.5fr 1fr;gap:24px;display:grid}.project-card{color:var(--ink);background:#fff;margin:0;display:grid}.project-card.wide{grid-column:1}.project-card.portrait{grid-area:1/2/span 2}.project-image{background:#ddd;min-height:330px;position:relative;overflow:hidden}.project-card.portrait .project-image{min-height:730px}.project-image img{object-fit:cover;transition:transform .4s}.project-card:hover .project-image img{transform:scale(1.025)}.project-card figcaption{border-top:5px solid var(--orange);padding:24px 27px 28px}.project-card figcaption>span{color:var(--orange);text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:900}.project-card h3{color:var(--navy);text-transform:uppercase;margin:8px 0 5px;font-size:28px}.project-card p{color:var(--muted);margin:0;line-height:1.5}.about-section{grid-template-columns:.82fr 1.18fr;align-items:center;gap:clamp(40px,8vw,120px);display:grid;overflow:hidden}.about-mark{font-family:var(--font-display);color:var(--orange);white-space:nowrap;font-size:clamp(120px,18vw,290px);line-height:.8;transform:rotate(-90deg)}.about-copy>p:not(.eyebrow){color:var(--muted);max-width:750px;font-size:19px;line-height:1.65}.values{grid-template-columns:repeat(3,1fr);gap:22px;margin-top:40px;display:grid}.values div{border-top:4px solid var(--orange);padding-top:18px}.values strong,.values span{display:block}.values strong{color:var(--navy);font-size:19px}.values span{color:var(--muted);margin-top:8px;line-height:1.45}.contact-section{background:var(--orange);color:#fff;grid-template-columns:1.2fr .8fr;align-items:center;gap:70px;padding:clamp(74px,8vw,115px) clamp(28px,7vw,110px);display:grid}.contact-section .eyebrow{color:var(--navy)}.contact-section h2{color:#fff}.contact-section>div:first-child>p:last-child{max-width:650px;font-size:19px;line-height:1.55}.contact-card{background:var(--navy);padding:34px;box-shadow:18px 18px #fff}.contact-card>p{color:var(--orange);text-transform:uppercase;letter-spacing:.14em;font-weight:900}.contact-card a,.contact-card div{font-family:var(--font-display);border-top:1px solid #ffffff32;padding:18px 0;font-size:clamp(23px,2.5vw,35px);display:block}.contact-card span{font-family:var(--font-body);text-transform:uppercase;color:#9db0c1;letter-spacing:.13em;font-size:12px;display:block}footer{color:#fff;background:#031b31;grid-template-columns:160px 1fr auto;align-items:center;gap:28px;padding:30px clamp(28px,7vw,110px);display:grid}.footer-brand{background:#fff;width:145px;height:82px}footer>p{color:#b9c9d7;max-width:410px}.footer-links{gap:22px;font-weight:700;display:flex}.copyright{border-top:1px solid #ffffff1f;grid-column:1/-1;max-width:none;margin:0;padding-top:20px;font-size:13px}@media (width<=900px){.site-header{grid-template-columns:145px 1fr;padding-inline:18px}.site-header nav{display:none}.header-call{font-size:14px}.hero{grid-template-columns:1fr}.hero-copy{padding:78px 28px 62px}.hero-brand{min-height:470px}.intro-strip{grid-template-columns:1fr 1fr}.intro-strip>p{grid-column:1/-1}.section-heading,.about-section,.contact-section{grid-template-columns:1fr}.services-grid{grid-template-columns:repeat(2,1fr)}.gallery-grid{grid-template-columns:1fr}.project-card.wide,.project-card.portrait{grid-area:auto/1}.project-card.portrait .project-image{min-height:650px}.about-mark{display:none}footer{grid-template-columns:150px 1fr}.footer-links{grid-column:1/-1}}@media (width<=580px){.site-header{grid-template-columns:110px 1fr;height:80px}.brand{width:105px;height:62px}.header-call{padding:11px}.intro-strip,.services-grid,.values{grid-template-columns:1fr}.intro-strip>p{grid-column:auto}.section-heading{gap:12px}.project-image{min-height:230px}.project-card.portrait .project-image{min-height:460px}.contact-card{padding:24px;box-shadow:10px 10px #fff}.contact-card a{overflow-wrap:anywhere;font-size:21px}footer{grid-template-columns:1fr}.footer-links{flex-wrap:wrap;grid-column:1}}.tips-section{background:#fff}.tips-grid{grid-template-columns:repeat(3,1fr);gap:22px;display:grid}.tip-card{border:1px solid var(--line);border-top:5px solid var(--orange);padding:30px;transition:all .2s}.tip-card:hover{transform:translateY(-4px);box-shadow:0 18px 34px #06254514}.tip-card>span{color:var(--orange);letter-spacing:.12em;font-weight:900}.tip-card h3{text-transform:uppercase;color:var(--navy);margin:22px 0 12px;font-size:27px;line-height:1.12}.tip-card p{color:var(--muted);line-height:1.55}.tip-card strong{color:var(--orange);margin-top:24px;display:block}.tips-cta{background:var(--navy);color:#fff;justify-content:space-between;align-items:center;gap:28px;margin-top:38px;padding:30px 34px;display:flex}.tips-cta h3{max-width:720px;margin:8px 0;font-size:clamp(24px,2.4vw,34px)}.tips-hero{background:var(--navy);color:#fff;padding:clamp(78px,9vw,130px) clamp(28px,10vw,150px)}.tips-hero h1{margin-bottom:28px}.tips-hero>p:last-child{color:#dce5ed;max-width:760px;font-size:clamp(18px,1.7vw,24px);line-height:1.55}.tutorial-list{background:var(--cream);padding:clamp(70px,8vw,110px) clamp(28px,8vw,125px)}.tutorial{border-top:1px solid #bfc5c4;grid-template-columns:120px 1fr;gap:45px;padding:56px 0;scroll-margin-top:110px;display:grid}.tutorial:first-child{border-top:0;padding-top:0}.tutorial-number{font-family:var(--font-display);color:var(--orange);font-size:74px;line-height:1}.tutorial-content{max-width:900px}.tutorial-content h2,.share-strip h2{text-transform:uppercase;color:var(--navy);margin:10px 0 20px;font-size:clamp(37px,4vw,58px);line-height:1.06}.tutorial-intro{color:var(--muted);font-size:20px;line-height:1.55}.tutorial-content ol{counter-reset:steps;padding:0;list-style:none}.tutorial-content li{counter-increment:steps;border-top:1px solid var(--line);padding:17px 18px 17px 58px;line-height:1.55;position:relative}.tutorial-content li:before{content:counter(steps);color:var(--orange);font-weight:900;position:absolute;left:14px}.tutorial-help{border-left:5px solid var(--orange);background:#fff;margin-top:30px;padding:24px}.tutorial-help strong,.tutorial-help span,.tutorial-help a{display:block}.tutorial-help strong{color:var(--navy);font-size:20px}.tutorial-help span{color:var(--muted);margin:8px 0 15px}.tutorial-help a{color:var(--orange);font-weight:900}.share-strip{background:#fff;justify-content:space-between;align-items:center;gap:45px;padding:clamp(64px,7vw,95px) clamp(28px,8vw,125px);display:flex}.share-strip h2{max-width:850px;font-size:clamp(34px,3.5vw,52px)}@media (width<=900px){.tips-grid{grid-template-columns:1fr}.tips-cta,.share-strip{flex-direction:column;align-items:flex-start}.tutorial{grid-template-columns:75px 1fr;gap:25px}.tutorial-number{font-size:52px}}@media (width<=580px){.tutorial{grid-template-columns:1fr}.tutorial-number{font-size:44px}}.review-link{background:var(--orange);text-align:center;box-shadow:6px 6px #fff;color:var(--navy)!important;border:0!important;margin-top:22px!important;padding:18px 20px!important;font-size:clamp(21px,2.2vw,31px)!important}.review-link span{opacity:.82;margin-bottom:4px;color:var(--navy)!important}.review-link:hover{transform:translateY(-2px);box-shadow:8px 8px #fff}

/* ---------------------------------------------------------------
   Self-hosted fonts (same families as before: Oswald + Source Sans 3)
   --------------------------------------------------------------- */
@font-face{font-family:'Oswald';font-style:normal;font-weight:200 700;font-display:swap;src:url(/assets/fonts/oswald-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Oswald';font-style:normal;font-weight:200 700;font-display:swap;src:url(/assets/fonts/oswald-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:200 900;font-display:swap;src:url(/assets/fonts/source-sans-3-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:200 900;font-display:swap;src:url(/assets/fonts/source-sans-3-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --font-display:'Oswald',sans-serif;
  --font-body:'Source Sans 3',sans-serif;
  /* Text-only shade of the brand orange, for small text on light backgrounds.
     Brand fills/borders keep #f26a0a. Revert by setting this to #f26a0a. */
  --orange-text:#b84900;
}

/* ---------------------------------------------------------------
   Accessibility: visible focus, skip link, reduced motion
   --------------------------------------------------------------- */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible,summary:focus-visible{
  outline:3px solid var(--orange);
  outline-offset:3px;
  border-radius:2px;
}
.hero a:focus-visible,.gallery-section a:focus-visible,.tips-cta a:focus-visible,
.contact-card a:focus-visible,footer a:focus-visible,.tips-hero a:focus-visible{
  outline-color:#fff;
}
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:100;
  background:var(--navy);color:#fff;font-weight:800;padding:14px 20px;
}
.skip-link:focus{left:0}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
  .button:hover,.tip-card:hover,.review-link:hover{transform:none}
}

/* Contrast: small orange text on light backgrounds uses the deeper shade */
.eyebrow,.service-card>span,.tip-card>span,.tip-card strong,
.project-card figcaption>span,.tutorial-help a,.inline-link{color:var(--orange-text)}
/* ...but on the navy panels the brand orange already has plenty of contrast */
.hero .eyebrow,.gallery-section .eyebrow,.tips-hero .eyebrow,.tips-cta .eyebrow{color:var(--orange)}
.contact-section .eyebrow{color:var(--navy)}
/* Small body text on orange fills switches to navy (5:1) instead of white (3.1:1) */
.header-call,.button.primary,.intro-strip span,.contact-lede{color:var(--navy)}
.button.primary{background:var(--orange)}
.review-link span{color:var(--navy)!important;opacity:1}

/* Inline text links inside body copy */
.inline-link{font-weight:700;text-decoration:underline;text-underline-offset:3px}
.inline-link:hover{color:var(--navy)}
.on-dark .inline-link,.tutorial-help a:hover{color:#fff}

/* ---------------------------------------------------------------
   Service area block
   --------------------------------------------------------------- */
.area-section{background:#fff;padding:clamp(56px,6vw,84px) clamp(28px,7vw,110px)}
.area-section h2{font-family:var(--font-display);text-transform:uppercase;color:var(--navy);font-size:clamp(32px,3.4vw,48px);line-height:1.05;margin:10px 0 18px}
.area-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(28px,5vw,70px);align-items:start}
.area-grid p{color:var(--muted);font-size:19px;line-height:1.65;max-width:680px}
.area-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;padding:0;list-style:none}
.area-list li{border:1px solid var(--line);border-left:4px solid var(--orange);padding:9px 14px;font-weight:700;color:var(--navy)}
.area-aside{background:var(--cream);border-top:5px solid var(--orange);padding:26px}
.area-aside h3{font-family:var(--font-display);text-transform:uppercase;color:var(--navy);font-size:24px;margin:0 0 12px}
.area-aside ul{margin:0;padding-left:20px;color:var(--muted);line-height:1.7}
@media (width<=900px){.area-grid{grid-template-columns:1fr}}

/* ---------------------------------------------------------------
   Estimate form
   --------------------------------------------------------------- */
.estimate-form{background:#fff;color:var(--ink);padding:clamp(24px,3vw,34px);margin-top:34px;box-shadow:0 18px 40px #06254524}
.estimate-form h3{font-family:var(--font-display);text-transform:uppercase;color:var(--navy);font-size:clamp(24px,2.4vw,32px);margin:0 0 6px}
.estimate-form>p{color:var(--muted);margin:0 0 22px;line-height:1.55;font-size:16px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:flex;flex-direction:column;margin-bottom:16px}
.field label{font-weight:800;color:var(--navy);margin-bottom:6px;font-size:15px}
.field .hint{font-weight:400;color:var(--muted)}
.field input,.field select,.field textarea{
  font-family:var(--font-body);font-size:16px;color:var(--ink);
  border:1px solid #9aa4ad;background:#fff;padding:12px 13px;width:100%;
}
.field textarea{min-height:120px;resize:vertical}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--navy)}
.form-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:6px}
.form-actions button{
  font-family:var(--font-body);background:var(--navy);color:#fff;border:2px solid var(--navy);
  font-weight:900;font-size:17px;padding:15px 26px;cursor:pointer;transition:all .2s;
}
.form-actions button:hover{background:#0a3560;transform:translateY(-2px)}
.form-actions .or{color:var(--muted);font-weight:700}
.form-actions .or a{color:var(--navy);font-weight:900;text-decoration:underline;text-underline-offset:3px}
.hp-field{position:absolute;left:-9999px}
@media (width<=580px){.field-row{grid-template-columns:1fr;gap:0}}

/* ---------------------------------------------------------------
   Mobile call / estimate bar — only below 900px, never covers content
   --------------------------------------------------------------- */
.mobile-actions{display:none}
@media (width<=900px){
  .mobile-actions{
    display:grid;grid-template-columns:1fr 1fr;gap:1px;
    position:fixed;left:0;right:0;bottom:0;z-index:40;
    background:var(--navy);border-top:2px solid var(--orange);
    padding-bottom:env(safe-area-inset-bottom);
  }
  .mobile-actions a{
    display:flex;align-items:center;justify-content:center;gap:8px;
    min-height:56px;font-weight:900;font-size:16px;text-align:center;padding:10px 8px;
  }
  .mobile-actions a.call{background:var(--navy);color:#fff}
  .mobile-actions a.estimate{background:var(--orange);color:var(--navy)}
  .mobile-actions a:focus-visible{outline:3px solid #fff;outline-offset:-4px}
  body{padding-bottom:64px}
  footer{padding-bottom:22px}
}

/* Thank-you page */
.simple-page{background:var(--cream);padding:clamp(70px,9vw,120px) clamp(28px,7vw,110px);min-height:60vh}
.simple-page h1{color:var(--navy);font-size:clamp(42px,6vw,80px)}
.simple-page p{color:var(--muted);font-size:19px;line-height:1.6;max-width:640px;margin-bottom:16px}
.simple-page .button{display:inline-block;margin-top:18px;color:var(--navy)}

/* Screen-reader-only text (e.g. "opens in a new tab") */
.visually-hidden{
  position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;
  overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;
}
.on-dark-link{color:#fff}
.on-dark-link:hover{color:var(--orange)}

/* ---------------------------------------------------------------
   FAQ (tips page)
   --------------------------------------------------------------- */
.faq-section{background:var(--cream);padding:clamp(64px,8vw,105px) clamp(28px,8vw,125px);border-top:1px solid #bfc5c4}
.faq-section h2{font-family:var(--font-display);text-transform:uppercase;color:var(--navy);font-size:clamp(34px,3.6vw,54px);line-height:1.06;margin:10px 0 30px}
.faq-list details{background:#fff;border-left:5px solid var(--orange);margin-bottom:14px}
.faq-list summary{
  font-family:var(--font-display);text-transform:uppercase;color:var(--navy);
  font-size:clamp(20px,2vw,26px);line-height:1.2;padding:20px 24px;cursor:pointer;list-style:none;
  display:flex;justify-content:space-between;align-items:center;gap:18px;
}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";color:var(--orange-text);font-weight:900;font-size:28px;line-height:1}
.faq-list details[open] summary::after{content:"–"}
.faq-list summary:hover{color:var(--orange-text)}
.faq-list details>p{color:var(--muted);line-height:1.65;margin:0;padding:0 24px 24px;max-width:900px}

/* Anchored sections clear the sticky header when jumped to */
section[id],article[id]{scroll-margin-top:110px}
@media (width<=580px){section[id],article[id]{scroll-margin-top:90px}}

/* ---------------------------------------------------------------
   "What customers say" — Google reviews
   The rail, its loading skeleton and the fallback card all share
   --review-rail-h, so swapping one for another never moves the page.
   --------------------------------------------------------------- */
.reviews-section{background:var(--cream);--review-rail-h:320px}
.reviews-panel{display:grid;gap:26px}

/* Aggregate rating */
.reviews-summary{min-height:96px;display:flex;align-items:center;gap:20px}
.reviews-score{font-family:var(--font-display);color:var(--navy);font-size:clamp(52px,6vw,78px);line-height:.9;margin:0}
.reviews-score-meta{display:grid;gap:6px}
.reviews-count{color:var(--muted);font-weight:700;margin:0}

/* Star bar: an orange overlay clipped over a grey track. Decorative only —
   every instance is paired with a visually hidden "Rated X out of 5". */
.stars{position:relative;display:inline-block;white-space:nowrap;font-size:22px;line-height:1.2;letter-spacing:3px}
.stars-track{color:#b7b0a1}
.stars-fill{position:absolute;left:0;top:0;width:0;overflow:hidden;color:var(--orange-text)}

/* Review cards */
.reviews-body{min-height:var(--review-rail-h)}
.reviews-rail{
  display:grid;grid-auto-flow:column;grid-auto-columns:minmax(280px,1fr);gap:20px;
  height:var(--review-rail-h);overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;
  scroll-snap-type:x proximity;list-style:none;margin:0 -5px;padding:5px;
  scrollbar-color:var(--orange-text) #e2ddd2;
}
.reviews-rail-skeleton{overflow:hidden}
.review-item{scroll-snap-align:start;height:100%}
.review-card{
  background:#fff;border-top:5px solid var(--orange);height:100%;padding:24px 24px 20px;
  display:grid;grid-template-rows:auto auto 1fr auto;gap:10px;box-shadow:0 14px 30px #0625450f;
}
.review-author{font-family:var(--font-display);text-transform:uppercase;color:var(--navy);font-size:23px;line-height:1.1;margin:0}
.review-rating{margin:0;display:flex;align-items:center;gap:8px}.review-rating-value{color:var(--navy);font-weight:800;font-size:15px}
.review-quote{margin:0;min-height:0;overflow:hidden}
.review-quote p{
  color:var(--muted);line-height:1.55;margin:0;overflow:hidden;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:6;line-clamp:6;
}
.review-date{margin:0;color:var(--navy);font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}

/* Empty / error / no-JS fallback — same footprint as the rail */
.reviews-fallback{
  background:#fff;border-top:5px solid var(--orange);min-height:var(--review-rail-h);
  display:flex;flex-direction:column;justify-content:center;gap:12px;
  padding:clamp(26px,4vw,38px);box-shadow:0 14px 30px #0625450f;
}
.reviews-fallback-title{font-family:var(--font-display);text-transform:uppercase;color:var(--navy);font-size:clamp(24px,2.4vw,30px);margin:0}
.reviews-fallback p{color:var(--muted);line-height:1.6;margin:0;max-width:62ch}
.reviews-fallback .inline-link{align-self:start;color:var(--orange-text)}
#reviews-noscript{display:none}

/* Call to action */
.reviews-footer{display:flex;flex-wrap:wrap;align-items:center;gap:16px 26px}
.review-cta{display:inline-block}
.reviews-source{color:var(--muted);margin:0;max-width:48ch;line-height:1.5;font-size:15px}

/* Loading skeleton — mirrors the real layout so the height matches */
.reviews-skeleton-summary{display:flex;align-items:center;gap:20px}
.sk-meta{display:grid;gap:8px}
.sk{display:block;border-radius:3px;background:#e7e2d7;
  background-image:linear-gradient(90deg,#e7e2d7 25%,#f2eee6 37%,#e7e2d7 63%);
  background-size:400% 100%;animation:sk-shimmer 1.5s ease-in-out infinite}
.sk-score{width:96px;height:70px}
.sk-stars{width:132px;height:20px}
.sk-count{width:196px;height:16px}
.review-card-skeleton{display:grid;grid-template-rows:auto auto auto auto 1fr;gap:14px;align-content:start;background:#fff}
.review-card-skeleton .sk-stars{margin-bottom:4px}
.sk-name{width:62%;height:22px}
.sk-line{width:100%;height:14px}
.sk-line.short{width:68%}
@keyframes sk-shimmer{from{background-position:100% 0}to{background-position:0 0}}
@media (prefers-reduced-motion:reduce){.sk{animation:none}}

/* Focus: navy reads at 14:1 on the cream panel, unlike the brand orange */
.reviews-section a:focus-visible,.reviews-rail:focus-visible{outline:3px solid var(--navy);outline-offset:3px}

/* "Leave a Google review" — navy on the brand orange is 5:1, and both the
   hover and focus states stay obvious without dropping below AA. */
.review-cta:hover,.review-cta:focus-visible,
.review-link:hover,.review-link:focus-visible{
  text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:6px;
}
.review-cta:hover{border-color:var(--navy)}
.review-link:hover{box-shadow:8px 8px #fff,inset 0 0 0 3px var(--navy)}
.review-link:hover span,.review-link:focus-visible span{text-decoration:none}

@media (width<=900px){
  .reviews-rail{grid-auto-columns:minmax(262px,1fr)}
}
@media (width<=580px){
  .reviews-section{--review-rail-h:360px}
  .reviews-summary{min-height:120px;flex-wrap:wrap;gap:14px}
  .reviews-skeleton-summary{flex-wrap:wrap;gap:14px}
  .review-quote p{-webkit-line-clamp:8;line-clamp:8}
  .reviews-footer{gap:16px}
  .review-cta{width:100%;text-align:center}
}
