/* Gratton Warehouse shared modules: header, banner, markets, footer.
   Loaded on every page by /modules/head.html. Rules hang off module IDs so the legacy theme's #container rules can't override them.
   Websnoogie 2026-10-07. */
:root{--gwm-plum:#2a0535;--gwm-purple:#462e54;--gwm-amber:#F9A826;--gwm-amber-dk:#E08E0B;--gwm-ink:#1e1e1e;--gwm-char:#343434;--gwm-max:1200px}
html,body{overflow-x:clip}
.gwm,.gwm *{box-sizing:border-box}
.gwm-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.gwm-wrap{max-width:var(--gwm-max);margin:0 auto;padding:0 24px}
/* full-bleed: modules may sit inside the theme's centred containers */
#gwm-banner,#markets.gwm-markets,#gwm-footer{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}

/* ---------- header ---------- */
#gwm-header{position:relative;z-index:50;font-family:Oswald,'Arial Narrow',Arial,sans-serif;width:100vw;margin-left:calc(50% - 50vw)}
#gwm-header ul{list-style:none;margin:0;padding:0}
#gwm-header li{margin:0;padding:0;list-style:none;background:none}
#gwm-header a{text-decoration:none}
#gwm-header .gwm-hbar{max-width:var(--gwm-max);margin:0 auto;padding:18px 24px;display:flex;align-items:center;justify-content:space-between;gap:28px}
#gwm-header .gwm-logo{display:block;flex:0 1 400px;min-width:0}
#gwm-header .gwm-logo img{display:block;width:100%;height:auto;max-width:400px}
#gwm-header .gwm-hside{display:flex;align-items:center;gap:22px;flex:0 0 auto}
#gwm-header .gwm-phone{display:flex;align-items:baseline;gap:10px;color:var(--gwm-ink);font-weight:600;font-size:46px;line-height:1;letter-spacing:-.005em;white-space:nowrap}
#gwm-header .gwm-phone-ext{color:var(--gwm-purple);font-weight:500;font-size:.62em;text-transform:uppercase;letter-spacing:.02em}
#gwm-header .gwm-phone:hover .gwm-phone-num,#gwm-header .gwm-phone:focus-visible .gwm-phone-num{color:var(--gwm-purple)}
#gwm-header .gwm-cloud img{display:block;width:62px;height:auto}
#gwm-header .gwm-seal{display:block;width:118px;height:auto}
#gwm-header .gwm-callbar{display:none}
#gwm-header .gwm-nav{background:var(--gwm-char);box-shadow:0 6px 14px rgba(0,0,0,.28);border-bottom:3px solid var(--gwm-plum);display:flex;justify-content:center;align-items:stretch;gap:18px;padding:0 24px;width:100vw;position:relative}
#gwm-header .gwm-menu-btn{display:none}
#gwm-header .gwm-menu{display:flex;align-items:stretch}
#gwm-header .gwm-menu>li{position:relative}
#gwm-header .gwm-menu>li>a{display:flex;align-items:center;height:100%;padding:14px 16px;color:#fff;font-size:18px;font-weight:400;text-transform:uppercase;letter-spacing:.02em;border-left:1px solid rgba(255,255,255,.08)}
#gwm-header .gwm-menu>li:first-child>a{border-left:0}
#gwm-header .gwm-menu>li>a:hover,#gwm-header .gwm-menu>li:focus-within>a,#gwm-header .gwm-menu>li:hover>a{background:var(--gwm-purple)}
#gwm-header .gwm-menu a[aria-current="page"]{box-shadow:inset 0 -3px 0 var(--gwm-amber)}
#gwm-header .gwm-has-sub>a:after{content:"";width:6px;height:6px;margin-left:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-3px) rotate(45deg);opacity:.75}
#gwm-header .gwm-sub{position:absolute;left:0;top:100%;min-width:240px;background:var(--gwm-plum);box-shadow:0 12px 24px rgba(0,0,0,.3);padding:6px 0;opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .15s,transform .15s,visibility .15s}
#gwm-header .gwm-has-sub:hover .gwm-sub,#gwm-header .gwm-has-sub:focus-within .gwm-sub{opacity:1;visibility:visible;transform:none}
#gwm-header .gwm-sub a{display:block;padding:10px 20px;color:#fff;font-size:17px}
#gwm-header .gwm-sub a:hover,#gwm-header .gwm-sub a:focus-visible{background:var(--gwm-purple);color:var(--gwm-amber)}
#gwm-header .gwm-login-m{display:none!important}
#gwm-header .gwm-search{display:flex;align-items:center;margin:0;padding:8px 0}
#gwm-header .gwm-search input{width:150px;height:34px;padding:0 10px;border:0;border-radius:3px 0 0 3px;font:15px Oswald,Arial,sans-serif;color:var(--gwm-ink);background:#fff;margin:0;box-shadow:none}
#gwm-header .gwm-search button{height:34px;width:38px;border:0;border-radius:0 3px 3px 0;background:var(--gwm-amber);color:var(--gwm-plum);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;margin:0}
#gwm-header a:focus-visible,#gwm-header button:focus-visible,#gwm-header input:focus-visible{outline:3px solid var(--gwm-amber);outline-offset:2px}
@media (max-width:1180px){
 #gwm-header .gwm-phone{font-size:36px}
 #gwm-header .gwm-seal{width:96px}
 #gwm-header .gwm-menu>li>a{padding:13px 11px;font-size:16px}
 #gwm-header .gwm-search input{width:110px}
}
@media (max-width:960px){
 #gwm-header .gwm-hbar{padding:12px 16px;gap:14px}
 #gwm-header .gwm-logo{flex:1 1 auto}
 #gwm-header .gwm-phone,#gwm-header .gwm-cloud{display:none}
 #gwm-header .gwm-seal{width:72px}
 #gwm-header .gwm-callbar{display:block;background:var(--gwm-plum);color:#fff;text-align:center;font-size:21px;font-weight:500;letter-spacing:.02em;padding:11px 16px;width:100vw}
 #gwm-header .gwm-callbar:active{background:var(--gwm-purple)}
 #gwm-header .gwm-nav{display:block;padding:0}
 #gwm-header .gwm-menu-btn{display:flex;align-items:center;gap:12px;width:100%;min-height:50px;padding:0 16px;background:none;border:0;color:#fff;font:500 19px Oswald,Arial,sans-serif;text-transform:uppercase;letter-spacing:.04em;cursor:pointer}
 #gwm-header .gwm-burger,#gwm-header .gwm-burger:before,#gwm-header .gwm-burger:after{display:block;width:22px;height:2px;background:#fff;position:relative;transition:transform .2s}
 #gwm-header .gwm-burger:before,#gwm-header .gwm-burger:after{content:"";position:absolute;left:0}
 #gwm-header .gwm-burger:before{top:-7px}
 #gwm-header .gwm-burger:after{top:7px}
 #gwm-header.gwm-open .gwm-burger{background:transparent}
 #gwm-header.gwm-open .gwm-burger:before{transform:translateY(7px) rotate(45deg)}
 #gwm-header.gwm-open .gwm-burger:after{transform:translateY(-7px) rotate(-45deg)}
 #gwm-header .gwm-menu,#gwm-header .gwm-search{display:none}
 #gwm-header.gwm-open .gwm-menu{display:block;border-top:1px solid rgba(255,255,255,.12)}
 #gwm-header.gwm-open .gwm-search{display:flex;padding:12px 16px 16px}
 #gwm-header.gwm-open .gwm-search input{flex:1;width:auto;height:42px;font-size:17px}
 #gwm-header.gwm-open .gwm-search button{height:42px;width:48px}
 #gwm-header .gwm-menu>li>a{padding:13px 16px;font-size:18px;border-left:0;border-bottom:1px solid rgba(255,255,255,.08)}
 #gwm-header .gwm-has-sub>a:after{display:none}
 #gwm-header .gwm-sub{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;background:rgba(0,0,0,.18);padding:0}
 #gwm-header .gwm-sub a{padding:11px 16px 11px 34px;font-size:17px;border-bottom:1px solid rgba(255,255,255,.06)}
 #gwm-header .gwm-login-m{display:block!important}
}

/* ---------- banner (home) ---------- */
/* Cycle 32.8 s: screen 1 holds 0-4.8 s, screen 2 holds 5.6-10.4 s, screen 3 holds 11.2-32.0 s (20.8 s), 0.8 s cross-fades. */
#gwm-banner{position:relative;height:440px;overflow:hidden;color:#fff;font-family:Oswald,'Arial Narrow',Arial,sans-serif;
 background-color:var(--gwm-plum);
 background-image:radial-gradient(ellipse at 50% 40%,rgba(70,46,84,.85) 0%,rgba(42,5,53,0) 70%),
  repeating-linear-gradient(45deg,rgba(255,255,255,.035) 0 2px,transparent 2px 22px),
  repeating-linear-gradient(-45deg,rgba(255,255,255,.035) 0 2px,transparent 2px 22px);
 border-bottom:4px solid var(--gwm-amber)}
#gwm-banner .gwm-screen{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:34px;padding:0 24px;text-align:center;opacity:0;visibility:hidden;animation:32.8s linear infinite both}
#gwm-banner .gwm-s1{animation-name:gwm-s1}
#gwm-banner .gwm-s2{animation-name:gwm-s2}
#gwm-banner .gwm-s3{animation-name:gwm-s3}
#gwm-banner .gwm-bigline{margin:0;color:#fff!important;font-weight:600;font-size:clamp(40px,7.4vw,104px);line-height:.98;text-transform:uppercase;letter-spacing:.015em;text-wrap:balance;text-shadow:0 3px 18px rgba(0,0,0,.35)}
#gwm-banner .gwm-ctas{display:flex;flex-wrap:wrap;justify-content:center;gap:16px}
#gwm-banner .gwm-btn{display:inline-flex;align-items:center;justify-content:center;min-width:210px;padding:16px 30px;background:var(--gwm-amber);color:var(--gwm-plum)!important;font-weight:600;font-size:20px;text-transform:uppercase;letter-spacing:.06em;text-decoration:none;border-radius:4px;box-shadow:0 6px 18px rgba(0,0,0,.3);transition:background .15s,transform .15s}
#gwm-banner .gwm-btn:hover{background:var(--gwm-amber-dk);transform:translateY(-1px)}
#gwm-banner .gwm-btn:focus-visible{outline:3px solid #fff;outline-offset:3px}
@keyframes gwm-s1{0%{opacity:1;visibility:visible}14.63%{opacity:1;visibility:visible}17.07%{opacity:0;visibility:hidden}97.56%{opacity:0;visibility:hidden}100%{opacity:1;visibility:visible}}
@keyframes gwm-s2{0%,14.63%{opacity:0;visibility:hidden}17.07%{opacity:1;visibility:visible}31.71%{opacity:1;visibility:visible}34.15%,100%{opacity:0;visibility:hidden}}
@keyframes gwm-s3{0%,31.71%{opacity:0;visibility:hidden}34.15%{opacity:1;visibility:visible}97.56%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden}}
@media (max-width:640px){
 #gwm-banner{height:340px}
 #gwm-banner .gwm-screen{gap:26px}
 #gwm-banner .gwm-ctas{flex-direction:column;width:100%;max-width:300px;gap:12px}
 #gwm-banner .gwm-btn{width:100%;min-width:0;padding:14px 20px;font-size:18px}
}
@media (prefers-reduced-motion:reduce){
 #gwm-banner .gwm-screen{animation:none}
 #gwm-banner .gwm-s3{opacity:1;visibility:visible}
}

/* ---------- markets ---------- */
#markets.gwm-markets{background:var(--gwm-plum);color:#fff;padding:64px 0 52px;font-family:Oswald,'Arial Narrow',Arial,sans-serif;clear:both}
#markets.gwm-markets ul{list-style:none;margin:0;padding:0}
#markets.gwm-markets li{margin:0;padding:0;list-style:none;background:none}
#markets.gwm-markets .gwm-mk-title{margin:0 0 12px;color:#fff!important;text-align:center;font-weight:600;font-size:clamp(34px,4.4vw,48px);line-height:1.1;letter-spacing:.01em}
#markets.gwm-markets .gwm-mk-intro{margin:0 auto 40px;max-width:640px;text-align:center;color:rgba(255,255,255,.82)!important;font:400 18px/1.5 Oswald,Arial,sans-serif}
#markets.gwm-markets .gwm-region{border-top:1px solid rgba(255,255,255,.14);padding:20px 0 10px}
#markets.gwm-markets .gwm-region-h{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 0 16px;color:#fff!important;font-weight:500;font-size:24px;letter-spacing:.03em;text-align:center;list-style:none;cursor:default;line-height:1.3}
#markets.gwm-markets summary.gwm-region-h{cursor:pointer;margin:0;padding:4px 0 10px}
#markets.gwm-markets summary::-webkit-details-marker{display:none}
#markets.gwm-markets summary.gwm-region-h:after{content:"";width:9px;height:9px;border-right:2px solid var(--gwm-amber);border-bottom:2px solid var(--gwm-amber);transform:translateY(-3px) rotate(45deg);transition:transform .2s}
#markets.gwm-markets details[open] summary.gwm-region-h:after{transform:translateY(2px) rotate(-135deg)}
#markets.gwm-markets details[open] summary.gwm-region-h{margin-bottom:12px}
#markets.gwm-markets summary.gwm-region-h:hover{color:var(--gwm-amber)!important}
#markets.gwm-markets summary:focus-visible{outline:3px solid var(--gwm-amber);outline-offset:4px}
#markets.gwm-markets .gwm-count{color:var(--gwm-amber);font-size:15px;font-weight:400;letter-spacing:.04em}
#markets.gwm-markets .gwm-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:28px;margin:0 0 18px}
#markets.gwm-markets .gwm-grid a{display:block;padding:9px 0;color:#fff;font-size:18.45px;font-weight:400;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.1);transition:color .15s}
#markets.gwm-markets .gwm-grid a:hover,#markets.gwm-markets .gwm-grid a:focus-visible{color:var(--gwm-amber)}
#markets.gwm-markets .gwm-grid a.gwm-cur{color:var(--gwm-amber);font-weight:600}
@media (max-width:900px){#markets.gwm-markets .gwm-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){
 #markets.gwm-markets{padding:48px 0 36px}
 #markets.gwm-markets .gwm-wrap{padding:0 16px}
 #markets.gwm-markets .gwm-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px}
 #markets.gwm-markets .gwm-region-h{font-size:21px}
 #markets.gwm-markets .gwm-grid a{font-size:17px}
}

/* ---------- footer ---------- */
#gwm-footer{background:#000;color:#fff;font-family:Oswald,'Arial Narrow',Arial,sans-serif;font-size:17px;line-height:1.55;clear:both}
#gwm-footer ul{list-style:none;margin:0;padding:0}
#gwm-footer li{margin:0;padding:0;list-style:none;background:none}
#gwm-footer p,#gwm-footer address,#gwm-footer li{font-size:17px;line-height:1.55;color:#fff!important;font-style:normal;margin:0 0 12px}
#gwm-footer a{font-size:inherit;font-family:inherit;line-height:inherit;color:#fff;text-decoration:underline;text-decoration-color:rgba(255,255,255,.4);text-underline-offset:3px}
#gwm-footer a:hover,#gwm-footer a:focus-visible{color:var(--gwm-amber);text-decoration-color:var(--gwm-amber)}
#gwm-footer .gwm-fcols{display:grid;grid-template-columns:1.1fr .95fr .85fr 1.4fr;gap:36px;padding-top:56px;padding-bottom:44px}
#gwm-footer .gwm-fh{margin:0 0 14px;color:#fff!important;font-size:22px;font-weight:500;line-height:1.2;letter-spacing:.01em}
#gwm-footer .gwm-flabel{display:block;color:var(--gwm-amber)}
#gwm-footer .gwm-flinks li{margin:0 0 4px}
#gwm-footer .gwm-map iframe{display:block;width:100%;max-width:280px;height:260px;border:0;border-radius:4px}
/* membership badges: equal white plates, one baseline, consistent gaps; logos keep their current display size */
#gwm-footer .gwm-badges{display:flex;flex-wrap:wrap;align-items:stretch;gap:8px;margin-top:22px}
#gwm-footer .gwm-badges li{display:flex;align-items:center;justify-content:center;height:70px;padding:5px 9px;background:#fff;border-radius:4px}
#gwm-footer .gwm-badges a{display:flex;align-items:center;text-decoration:none}
#gwm-footer .gwm-badges img{display:block;width:auto;max-width:none}
#gwm-footer .gwm-badges li:nth-child(1) img{height:40px}
#gwm-footer .gwm-badges li:nth-child(2) img{height:38px}
#gwm-footer .gwm-badges li:nth-child(3) img{height:56px}
#gwm-footer .gwm-fbar{border-top:1px solid rgba(255,255,255,.14);padding:22px 0 26px;background:#000}
#gwm-footer .gwm-fbar-links{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 20px;font-size:15px}
#gwm-footer .gwm-fbar-links a{text-decoration:none;color:rgba(255,255,255,.85)}
#gwm-footer .gwm-fbar-links a:hover{color:var(--gwm-amber)}
#gwm-footer .gwm-copy{margin:14px 0 0;text-align:center;font-size:14px;color:rgba(255,255,255,.65)!important}
@media (max-width:1000px){#gwm-footer .gwm-fcols{grid-template-columns:1fr 1fr}}
@media (max-width:600px){
 #gwm-footer .gwm-fcols{grid-template-columns:1fr;gap:32px;padding-top:44px}
 #gwm-footer .gwm-map iframe{max-width:none;height:240px}
}

/* the legacy theme frames every <img> (white box + shadow); module images stay bare */
#gwm-header img,#gwm-banner img,#markets img,#gwm-footer img{background:none!important;border:0!important;box-shadow:none!important;padding:0!important;margin:0!important;border-radius:0!important}

/* legacy body images: keep aspect ratio when the theme shrinks them (the theme sets max-width but not height:auto) */
#container img:not([style*="height"]){height:auto}

/* old mobile-only stand-ins for the header (phone image + B2B seal in the page body): the header module now shows both */
#container .mobshow:has(> img[src*="Gratton-Warehouse-Phone-Number"]),#container a:has(> img[src*="Gratton-Warehouse-Phone-Number"]),#container img[src*="Gratton-Warehouse-Phone-Number"],#container img.mobshow[src*="Best-of-B2B-2023-Winner_White_"]{display:none!important}

/* ---------- hero (all pages except home + city pages) ---------- */
#gwm-hero{position:relative;width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);margin-top:0;height:100vh;height:100svh;min-height:420px;overflow:hidden;background:var(--gwm-plum);display:flex;align-items:center;justify-content:center;clear:both}
#gwm-hero picture{position:absolute;inset:0;display:block}
#gwm-hero .gwm-hero-img{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover;object-position:center}
#gwm-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,4,26,.55) 0%,rgba(20,4,26,.62) 55%,rgba(20,4,26,.78) 100%)}
#gwm-hero .gwm-hero-in{position:relative;z-index:1;max-width:1100px;padding:0 24px;text-align:center}
#gwm-hero .gwm-hero-title{margin:0;color:#fff!important;font-family:Oswald,'Arial Narrow',Arial,sans-serif;font-weight:600;font-size:clamp(40px,6.4vw,92px);line-height:1.02;letter-spacing:.01em;text-transform:uppercase;text-wrap:balance;text-shadow:0 3px 22px rgba(0,0,0,.45)}
#gwm-hero .gwm-hero-extra{margin-top:24px;color:#fff;font-family:Oswald,'Arial Narrow',Arial,sans-serif;font-size:20px}
#gwm-hero .gwm-hero-extra[hidden]{display:none}
@media (max-width:640px){#gwm-hero .gwm-hero-title{font-size:clamp(34px,10vw,52px)}}

/* home page (body content, not a module): tagline bar + live-chat button on phones - the chat button sat on top of the text */
@media (max-width:640px){
 #container .shad{font-size:24px!important;padding:10px 12px!important}
 #container div:has(> #user_website_id){position:static!important;bottom:auto!important;left:auto!important;display:flex;justify-content:center;padding:10px 0 0}
}
