/* Haulserve brand layout: shared by every generated page. */
.brand-filter { position:absolute; pointer-events:none; }
:root { --brand-width:250px; --page-gutter:clamp(24px,4vw,72px); }
.site-header { height:96px; padding:0 var(--page-gutter); grid-template-columns:var(--brand-width) 1fr auto; grid-template-rows:96px; gap:24px; }
.brand-tab { width:var(--brand-width); height:196px; padding:12px 10px 10px; position:relative; background:#fff; border-bottom:5px solid var(--gold); box-shadow:0 10px 24px #0004; }
.brand-artwork { display:block; width:100%; height:100%; }
.site-header nav { gap:clamp(18px,2vw,32px); font-size:12px; }
.header-actions .button { padding:0 18px; font-size:12px; }
.services-nav { padding-left:calc(var(--page-gutter) + var(--brand-width) + 24px); background:rgba(18,18,18,.94); }
.services-nav a { min-height:50px; font-size:10px; padding:10px 6px; letter-spacing:.035em; }
.services-nav.is-stuck { padding-left:0; }
.hero,.page-hero { isolation:isolate; height:auto; min-height:690px; display:flex; align-items:flex-end; border-bottom:5px solid var(--gold); }
.hero-shade { background:linear-gradient(90deg,#080a0de0 0%,#080a0d80 58%,#080a0d30 100%),linear-gradient(0deg,#080a0dd9,transparent 80%); }
.page-hero:after { z-index:0; background:linear-gradient(90deg,#080a0dde 0%,#080a0d6b 70%),linear-gradient(0deg,#080a0dc9,transparent); }
.hero-watermark,.page-hero .hero-watermark { display:block; position:absolute; z-index:1; top:58px; right:var(--page-gutter); width:min(39vw,540px); height:auto; aspect-ratio:895/665; opacity:.36; mix-blend-mode:normal; filter:none; pointer-events:none; user-select:none; }
.hero-content,.page-hero-content { z-index:2; width:60%; max-width:900px; margin:0; padding:160px 0 70px var(--page-gutter); }
.hero h1 { font-size:clamp(68px,7.3vw,110px); line-height:.96; letter-spacing:-.045em; }
.page-hero h1 { font-size:clamp(54px,5.5vw,84px); line-height:1; overflow-wrap:normal; }
.hero-copy,.page-hero p:not(.eyebrow) { font-size:18px; line-height:1.65; max-width:590px; margin:24px 0 30px; }
.hero-actions { gap:10px; }
.hero-actions .button { font-size:11px; padding:0 17px; }
.hero-stamp { right:var(--page-gutter); bottom:72px; color:#fff; font-size:18px; }
.eyebrow { font-size:11px; letter-spacing:.19em; }
.service-card { border-bottom:4px solid var(--gold); }
.service-list article,.intro-grid>* { min-width:0; }
.service-list h3,.specialist-services h2 { overflow-wrap:anywhere; }
.site-footer { border-top:4px solid var(--gold); }
.footer-brand img { width:270px; height:120px; object-fit:contain; max-width:100%; }
a:focus-visible,summary:focus-visible { outline:3px solid var(--gold); outline-offset:4px; }
section[id],article[id],form[id] { scroll-margin-top:112px; }
@media(min-width:1181px) and (max-width:1320px) {
  :root { --brand-width:220px; --page-gutter:28px; }
  .brand-tab { height:174px; }
  .site-header { gap:18px; }
  .site-header nav { gap:18px; font-size:11px; }
  .header-actions .button { padding:0 12px; font-size:11px; }
  .services-nav a { font-size:9px; }
}
@media(max-width:1180px) {
  :root { --brand-width:178px; --page-gutter:28px; }
  .site-header { display:flex; justify-content:space-between; height:92px; padding:0 var(--page-gutter); }
  .brand-tab { flex:none; align-self:flex-start; height:140px; padding:8px; }
  .site-header nav,.header-actions { display:none; }
  .mobile-menu { display:block; position:relative; z-index:30; }
  .mobile-menu summary { display:flex; align-items:center; gap:10px; min-height:44px; font-size:13px; font-weight:800; text-transform:uppercase; letter-spacing:.1em; padding:12px 0 12px 16px; }
  .mobile-menu summary:after { content:'Menu'; }
  .mobile-menu>div { top:56px; right:0; border-top:3px solid var(--gold); max-height:calc(100dvh - 116px); overflow:auto; }
  .services-nav { top:-56px; padding:56px 0 0; grid-template-columns:repeat(4,minmax(0,1fr)); }
  .services-nav a { min-height:44px; font-size:10px; padding:10px 4px; }
  .hero,.page-hero { min-height:620px; }
  .hero-watermark,.page-hero .hero-watermark { top:35px; right:28px; width:300px; opacity:.34; }
  .hero-content,.page-hero-content { width:75%; padding:235px 28px 52px; }
  .hero h1 { font-size:80px; }
  .page-hero h1 { font-size:62px; }
  .hero-stamp { display:none; }
  .hero-copy,.page-hero p:not(.eyebrow) { font-size:17px; }
  .service-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .service-copy { left:20px; right:20px; bottom:24px; }
  .service-copy h3 { font-size:28px; }
}
@media(max-width:680px) {
  :root { --brand-width:150px; --page-gutter:20px; }
  .site-header { height:78px; }
  .brand-tab { height:118px; padding:7px; }
  .mobile-menu>div { width:min(310px,calc(100vw - 40px)); top:52px; }
  .services-nav { top:-48px; padding-top:48px; }
  .services-nav a { font-size:9px; min-height:44px; letter-spacing:.025em; }
  .services-nav a:nth-child(4n) { border-right:0; }
  .hero,.page-hero { min-height:0; }
  .hero-image { object-position:58% center; }
  .hero-watermark,.page-hero .hero-watermark { top:28px; right:20px; width:202px; opacity:.38; }
  .hero-content,.page-hero-content { width:100%; max-width:none; padding:202px 22px 46px; }
  .hero h1 { font-size:clamp(43px,12vw,74px); }
  .page-hero h1 { font-size:clamp(38px,10.8vw,62px); }
  .hero-copy,.page-hero p:not(.eyebrow) { font-size:16px; line-height:1.6; margin:20px 0 26px; }
  .hero-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
  .hero-actions .button { width:100%; padding:0 8px; font-size:10px; min-height:48px; }
  .hero-actions .button-whatsapp { grid-column:1/-1; }
  .hero-actions .button-outline { white-space:nowrap; }
  .service-grid { grid-template-columns:1fr; }
  .service-copy h3 { font-size:36px; }
  .footer-brand img { width:270px; height:auto; }
  .legal { padding-top:65px; }
  .legal h1 { font-size:42px; }
  .mobile-call { bottom:calc(10px + env(safe-area-inset-bottom)); }
  .service-list article { padding:26px; }
}
.mobile-call { visibility:hidden; }
.mobile-call.is-visible { visibility:visible; }
.analytics-choice { position:fixed; z-index:100; bottom:16px; left:16px; right:16px; max-width:760px; margin:auto; background:#fff; color:#171717; border-top:4px solid var(--gold); padding:22px; box-shadow:0 8px 40px #0006; }
.analytics-choice[hidden] { display:none; }
.analytics-choice strong { font-size:17px; }
.analytics-choice p { font-size:14px; line-height:1.5; margin:10px 0 16px; }
.analytics-choice-actions { display:flex; flex-wrap:wrap; gap:10px; }
.analytics-choice-actions button { flex:1; min-height:44px; background:#fff; color:#111; border:1px solid #444; padding:10px 16px; font:700 13px Arial,sans-serif; cursor:pointer; }
.analytics-settings { color:#bbb; background:none; border:0; text-decoration:underline; cursor:pointer; padding:8px 0; font:inherit; }
.analytics-choice button:focus-visible,.analytics-settings:focus-visible { outline:3px solid var(--gold); outline-offset:3px; }
