/* Larq Built — site styles. Layout lives inline in the views (copied from the design);
   this file holds fonts, tokens, states and the responsive switches. */

/* ---------- Fonts (self-hosted brand files) ---------- */
@font-face{font-family:"MADE Outer Sans";src:url("../fonts/MADEOuterSans-Bold.woff") format("woff");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Manrope";src:url("../fonts/Manrope-Regular.woff") format("woff");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Manrope";src:url("../fonts/Manrope-Medium.woff") format("woff");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Manrope";src:url("../fonts/Manrope-SemiBold.woff") format("woff");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Manrope";src:url("../fonts/Manrope-Bold.woff") format("woff");font-weight:700;font-style:normal;font-display:swap}

/* ---------- Tokens (design system) ---------- */
:root{
--lb-navy:#171D26;--lb-stone:#BEB4A7;--lb-slate:#2F3240;--lb-ivory:#F1ECE9;--lb-charcoal:#222226;--lb-gold:#A58669;--lb-white:#FFFFFF;
--lb-slate-70:#5E606B;--lb-slate-50:#8A8B93;--lb-stone-40:#D6D0C9;--lb-stone-20:#E6E1DC;--lb-ivory-70:#C9C5C4;--lb-line-dark:rgba(241,236,233,.18);
--surface-page:var(--lb-ivory);--surface-inverse:var(--lb-slate);--surface-deep:var(--lb-navy);--surface-card:var(--lb-ivory);--surface-sunken:var(--lb-stone-20);--surface-feature:var(--lb-slate);--surface-stone:var(--lb-stone);
--text-strong:var(--lb-slate);--text-heading:var(--lb-navy);--text-body:var(--lb-slate-70);--text-muted:var(--lb-slate-50);--text-on-dark:var(--lb-ivory);--text-on-dark-body:var(--lb-ivory-70);--text-accent:var(--lb-gold);--text-label-on-dark:var(--lb-stone);
--border-hairline:var(--lb-stone-40);--border-strong:var(--lb-slate);--border-on-dark:var(--lb-line-dark);--accent:var(--lb-gold);--accent-quiet:var(--lb-stone);--focus-ring:var(--lb-gold);
--font-display:"MADE Outer Sans","Manrope",system-ui,sans-serif;--font-text:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;
--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-black:900;
--fs-display-xl:96px;--fs-display-l:64px;--fs-display-m:44px;--fs-display-s:32px;--fs-h1:28px;--fs-h2:22px;--fs-h3:18px;--fs-body-l:17px;--fs-body:15px;--fs-body-s:13px;--fs-label:12px;--fs-micro:10px;
--lh-display:.96;--lh-heading:1.2;--lh-body:1.75;--lh-tight:1.35;
--tracking-display:-.005em;--tracking-eyebrow:.02em;--tracking-label:.18em;--tracking-spaced:.32em;
--type-display:var(--fw-bold) var(--fs-display-l)/var(--lh-display) var(--font-display);--type-lead:var(--fw-semibold) var(--fs-h2)/var(--lh-tight) var(--font-text);--type-body:var(--fw-regular) var(--fs-body)/var(--lh-body) var(--font-text);
--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--space-10:128px;
--radius-none:0;--rule-strong-width:2px;--accent-rule:56px;
--ease-standard:cubic-bezier(.2,0,0,1);--duration-fast:120ms;--duration-base:220ms;--duration-slow:420ms;
color-scheme:light;
}

/* ---------- Base (as in the prototype) ---------- */
body{margin:0;background:#F1ECE9;color:var(--text-body);font:var(--type-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
a{color:#2F3240;text-decoration:none;transition:color var(--duration-fast) var(--ease-standard),background-color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard)}
a:hover{color:#A58669}
::selection{background:var(--lb-stone);color:var(--lb-navy)}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--lb-gold);outline-offset:2px}
button{font-family:inherit}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}

.lb-skip{position:absolute;left:-9999px;top:8px;z-index:200;background:var(--lb-slate);color:var(--lb-ivory);padding:12px 16px;font:600 12px/1 var(--font-text);letter-spacing:.14em;text-transform:uppercase}
.lb-skip:focus{left:16px;color:var(--lb-ivory)}

/* ---------- Wide / narrow (the prototype switches at 980px) ---------- */
.lb-wide{display:contents}
.lb-narrow{display:none}
@media (max-width:979.98px){
  .lb-wide{display:none}
  .lb-narrow{display:contents}
  .lb-wide-only{display:none!important}
  .lb-cols-job,.lb-cols-article,.lb-cols-faq{grid-template-columns:minmax(0,1fr)!important}
  .lb-sticky-top{top:84px!important}
  .lb-svc-row{grid-template-columns:32px minmax(0,1fr) 72px!important}
}

/* ---------- Hover states (from the design's style-hover) ---------- */
.hv0:hover{color:var(--lb-gold)!important}
.hv1:hover{background:var(--surface-sunken)!important;color:var(--lb-navy)!important}
.hv2:hover{color:var(--lb-gold)!important;border-color:var(--lb-gold)!important}
.hv3:hover{animation-play-state:paused!important}
.hv4:hover{color:var(--lb-ivory)!important}
.hv5:hover{border-color:var(--lb-slate)!important;background:var(--surface-sunken)!important}
.hv6:hover{border-color:var(--lb-ivory)!important}

/* ---------- Buttons ---------- */
.lb-btn--primary-light:hover{background:var(--lb-navy)!important;border-color:var(--lb-navy)!important}
.lb-btn--primary-dark:hover{background:var(--lb-white)!important;border-color:var(--lb-white)!important}
.lb-btn--secondary-light:hover{border-color:var(--lb-slate)!important;background:var(--surface-sunken)!important}
.lb-btn--secondary-dark:hover{border-color:var(--lb-ivory)!important;background:rgba(241,236,233,.06)!important}
.lb-btn--gold-light:hover,.lb-btn--gold-dark:hover{background:#957658!important;border-color:#957658!important}
.lb-btn--text-light:hover,.lb-btn--text-dark:hover{color:var(--lb-gold)!important;border-bottom-color:var(--lb-gold)!important}
.lb-btn--primary-light:hover{color:var(--lb-ivory)!important}
.lb-btn--primary-dark:hover{color:var(--lb-navy)!important}
.lb-btn--secondary-dark:hover{color:var(--text-on-dark)!important}
.lb-btn--secondary-light:hover{color:var(--text-strong)!important}
.lb-btn:active:not(:disabled){transform:translateY(1px)}
.lb-btn:disabled{opacity:.4;cursor:not-allowed!important}
.lb-btn--primary-light:disabled:hover{background:var(--lb-slate)!important;border-color:var(--lb-slate)!important}

/* ---------- Header: dropdown + mobile menu ---------- */
[data-lb-menu]{display:flex}
@media (min-width:980px){[data-lb-menu]{display:none!important}}

/* ---------- Home: selected-work marquee ---------- */
@keyframes lbMarquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){
  [data-marquee]{animation:none!important}
  [data-marquee]{overflow-x:auto}
}

/* ---------- Projects feed ---------- */
.lb-ph-cta{display:none}
.lb-ph:hover .lb-ph-cta,.lb-ph:focus-visible .lb-ph-cta{display:flex}
.lb-ph:focus-visible{outline-offset:3px}

/* ---------- Lightbox ---------- */
[data-lb-lightbox]{display:flex}
body.lb-no-scroll{overflow:hidden}

/* ---------- Thank you ---------- */
[data-lb-summary-wrap],[data-lb-booked]{display:flex}

/* ---------- Forms ---------- */
.lb-input{transition:border-color var(--duration-fast),box-shadow var(--duration-fast)}
.lb-input:focus{border-color:var(--lb-slate)!important;box-shadow:0 0 0 1px var(--lb-slate)}
.lb-input.is-invalid{border-color:#9B3B3B!important}
.lb-input.is-invalid:focus{box-shadow:0 0 0 1px #9B3B3B}
.lb-err{margin:0;font:500 13px/1.5 var(--font-text);color:#9B3B3B}
.lb-err[hidden],.lb-hint[hidden]{display:none}
.lb-hint{margin:0;font:400 13px/1.5 var(--font-text);color:var(--text-body)}
.lb-hint button{background:none;border:0;padding:0;font:600 13px/1.5 var(--font-text);color:var(--text-strong);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.lb-input::placeholder{color:var(--text-muted);opacity:1}
.lb-check__tick{opacity:0}
.lb-check input:checked + .lb-check__box{background:var(--lb-slate);border-color:var(--lb-slate)!important}
.lb-check input:checked + .lb-check__box .lb-check__tick{opacity:1}
.lb-check input:focus-visible + .lb-check__box{outline:2px solid var(--lb-gold);outline-offset:2px}
.lb-opt{transition:background var(--duration-fast) var(--ease-standard),color var(--duration-fast),border-color var(--duration-fast)}
.lb-opt[aria-pressed="false"]:hover{border-color:var(--lb-stone)!important}
.lb-chip{transition:background var(--duration-fast) var(--ease-standard),color var(--duration-fast),border-color var(--duration-fast)}
.lb-chip[aria-pressed="false"]:hover{border-color:var(--lb-slate)!important}

/* ---------- Article / page text written in the WordPress editor ---------- */
.lb-prose>*{margin:0}
.lb-prose p,.lb-prose li{font:400 17px/1.9 var(--font-text);color:var(--text-body);text-wrap:pretty}
.lb-prose ul,.lb-prose ol{padding:0;margin:0;list-style:none;display:flex;flex-direction:column;gap:10px}
.lb-prose ul li{position:relative;padding-left:22px}
.lb-prose ul li::before{content:"";position:absolute;left:0;top:calc(.95em - 3.5px);width:7px;height:7px;background:var(--lb-stone)}
.lb-prose ol{counter-reset:lb}
.lb-prose ol li{counter-increment:lb;position:relative;padding-left:34px}
.lb-prose ol li::before{content:counter(lb,decimal-leading-zero);position:absolute;left:0;top:0;font:500 13px/1.9 var(--font-text);line-height:calc(17px * 1.9);color:var(--text-muted)}
.lb-prose h2{font:700 clamp(22px,2.4cqi,30px)/1.05 var(--font-display);text-transform:uppercase;color:var(--lb-navy);margin:12px 0 0}
.lb-prose h3{font:600 18px/1.4 var(--font-text);color:var(--text-strong);margin:8px 0 0}
.lb-prose a{color:var(--text-strong);text-decoration:underline;text-decoration-color:var(--lb-stone);text-underline-offset:3px}
.lb-prose a:hover{color:var(--lb-gold);text-decoration-color:var(--lb-gold)}
.lb-prose strong,.lb-prose b{color:var(--text-strong);font-weight:600}
.lb-prose blockquote{border-left:2px solid var(--lb-slate);padding:4px 0 4px 22px;font:500 19px/1.6 var(--font-text);color:var(--text-strong)}
.lb-prose blockquote p{font:inherit;color:inherit}
.lb-prose img{display:block;max-width:100%;height:auto}
.lb-prose figure{margin:8px 0}
.lb-prose figcaption,.lb-prose .wp-caption-text{font:400 14px/1.6 var(--font-text);color:var(--text-body);margin-top:10px}
.lb-prose .wp-caption{max-width:100%}
.lb-prose hr{border:0;height:1px;background:var(--border-hairline)}
.lb-prose table{border-collapse:collapse;width:100%;font:400 15px/1.6 var(--font-text)}
.lb-prose th,.lb-prose td{border-bottom:1px solid var(--border-hairline);padding:10px 12px 10px 0;text-align:left;vertical-align:top}

.lb-legal>p,.lb-legal>ul,.lb-legal>ol{margin:0}
.lb-legal p,.lb-legal li{font:400 16px/1.85 var(--font-text);color:var(--text-body);text-wrap:pretty}
.lb-legal ul{padding-left:20px}
.lb-legal a{color:var(--text-strong);text-decoration:underline}
.lb-legal h3{margin:6px 0 0;font:600 17px/1.4 var(--font-text);color:var(--text-strong)}

.lb-faq-a>*{margin:0}
.lb-faq-a>*+*{margin-top:12px}
.lb-faq-a p,.lb-faq-a li{font:400 16px/1.85 var(--font-text);color:var(--text-body)}
.lb-faq-a a{color:var(--text-strong);text-decoration:underline}

/* ---------- Live Google reviews (Widgets for Google Reviews plugin) ---------- */
.lb-reviews-live .ti-widget,.lb-reviews-live .ti-widget *{font-family:var(--font-text)!important;border-radius:0!important;box-shadow:none!important}
.lb-reviews-live .ti-widget .ti-review-item>.ti-inner,.lb-reviews-live .ti-widget .ti-review-content{background:transparent!important}
.lb-reviews-live .ti-widget .ti-review-item>.ti-inner{border:1px solid var(--border-hairline)!important}
.lb-reviews-live .ti-widget .ti-name{font-weight:600!important;letter-spacing:.12em;text-transform:uppercase;font-size:12px!important;color:var(--text-strong)!important}
.lb-reviews-live .ti-widget .ti-review-text-container,.lb-reviews-live .ti-widget .ti-review-content{color:var(--text-strong)!important;font-size:16px!important;line-height:1.7!important}
.lb-reviews-live .ti-widget .ti-date{color:var(--text-muted)!important}

/* ---------- In-depth guide sections on service and area pages ---------- */
.lb-toc{list-style:none;margin:0;padding:0;border-top:1px solid var(--border-hairline);columns:2 260px;column-gap:clamp(24px,4cqi,56px)}
.lb-toc li{break-inside:avoid;border-bottom:1px solid var(--border-hairline)}
.lb-toc a{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:baseline;padding:12px 0;font:600 15px/1.4 var(--font-text);color:var(--text-strong)}
.lb-toc a span{font:500 12px/1 var(--font-text);color:var(--text-muted)}
.lb-guide__sec{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:20px clamp(32px,6cqi,96px);padding:clamp(40px,5cqi,64px) 0;border-top:1px solid var(--border-hairline);scroll-margin-top:24px}
.lb-guide__h{margin:0;font:700 clamp(22px,2.6cqi,36px)/1 var(--font-display);text-transform:uppercase;color:var(--lb-navy);text-wrap:balance}
.lb-guide__body{display:flex;flex-direction:column;gap:18px;max-width:680px;min-width:0}
.lb-guide__body h3{margin-top:10px}
@media (min-width:980px){.lb-guide__sec>div:first-child{position:sticky;top:32px;align-self:start}}
.lb-prose table{width:100%;border-collapse:collapse;font:400 15px/1.6 var(--font-text);color:var(--text-body)}
.lb-prose th,.lb-prose td{text-align:left;vertical-align:top;padding:12px 14px 12px 0;border-bottom:1px solid var(--border-hairline)}
.lb-prose th{font:600 12px/1.3 var(--font-text);letter-spacing:.12em;text-transform:uppercase;color:var(--text-strong)}
.lb-prose td:first-child{font-weight:600;color:var(--text-strong)}
@media (max-width:560px){.lb-prose table{font-size:14px}.lb-prose th,.lb-prose td{padding-right:10px}}

/* Project cards (service and area pages) */
.lb-pcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:clamp(20px,2.4cqi,32px)}
.lb-pcard{display:flex;flex-direction:column;gap:10px;color:var(--lb-ivory)}
.lb-pcard__img{display:block;position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--lb-slate);margin-bottom:6px}
.lb-pcard__img img{transition:transform var(--duration-slow,.6s) var(--ease-standard,ease)}
.lb-pcard:hover .lb-pcard__img img{transform:scale(1.03)}
.lb-pcard__sub{font:700 clamp(18px,1.7cqi,22px)/1.05 var(--font-display);text-transform:uppercase}
.lb-pcard:hover .lb-pcard__sub{color:var(--lb-gold)}
.lb-pcard__type{font:600 11px/1.3 var(--font-text);letter-spacing:.18em;text-transform:uppercase;color:var(--lb-stone)}
.lb-pcard__desc{font:400 14px/1.7 var(--font-text);color:var(--lb-ivory-70);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
