:root {
  --orange:#fd690d;
  --green:#45a846;
  --blue:#1a407c;
  --ink:#17222e;
  --muted:#65717d;
  --line:#dfe5e8;
  --paper:#fff;
  --soft:#f4f7f8;
  --shadow:0 24px 70px rgba(21,37,48,.16);
  --footer-bg:#102e5b;
  --footer-accent:#1a407c;
  --footer-text:#d8e4f2;
  --announcement-bg:#fd690d;
  --announcement-text:#fff;
}
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--soft); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
body.storefront-frame-pending { min-height:100vh; overflow:hidden; background:#f4f7f8; }
body.storefront-frame-pending .site-announcement { min-height:36px; color:transparent; background:#e5ebee; }
body.storefront-frame-pending .site-header { box-shadow:0 3px 14px rgba(16,42,75,.05); }
body.storefront-frame-pending .site-header .header-main { min-height:78px; }
body.storefront-frame-pending .site-header .header-main>* { visibility:hidden; }
body.storefront-frame-pending .site-header .header-main::before { width:210px; height:38px; margin-right:auto; border-radius:9px; background:#e5ebee; content:""; }
body.storefront-frame-pending .site-header .header-main::after { width:min(360px,34vw); height:38px; border-radius:999px; background:#edf1f3; content:""; }
body.storefront-frame-pending .site-header>nav { min-height:46px; background:#dce4e8; }
body.storefront-frame-pending .site-header>nav>* { visibility:hidden; }
body.storefront-frame-pending #pageContent { display:block; min-height:58vh; width:min(1500px,94vw); margin:24px auto; border-radius:18px; background:linear-gradient(100deg,#eef2f4 25%,#f7f9fa 40%,#eef2f4 60%); background-size:300% 100%; animation:storefront-frame-shimmer 1.5s ease-in-out infinite; }
body.storefront-frame-pending .site-footer { min-height:230px; background:#e3e9ec; }
body.storefront-frame-pending .site-footer>* { visibility:hidden; }
body.storefront-frame-pending .chat-launcher,
body.storefront-frame-pending .store-chat-panel { visibility:hidden; }
@keyframes storefront-frame-shimmer { from { background-position:100% 0; } to { background-position:0 0; } }
.catalog-loading-card {
  display:grid;
  grid-column:1/-1;
  justify-items:center;
  gap:16px;
  padding:48px 22px;
  border:1px solid var(--line);
  border-radius:20px;
  color:var(--muted);
  background:#fff;
  box-shadow:0 12px 34px rgba(26,64,124,.08);
}
.catalog-loading-card strong { color:var(--ink); font-size:22px; }
.storefront-loader-bar { width:220px; height:5px; overflow:hidden; border-radius:999px; background:#dce3e8; }
.storefront-loader-bar span { display:block; width:45%; height:100%; border-radius:inherit; background:var(--green); animation:storefront-loading-bar 1s ease-in-out infinite alternate; }
@keyframes storefront-loading-bar { from { transform:translateX(-10%); } to { transform:translateX(135%); } }
button,input,select { font:inherit; }
button { cursor:pointer; }
.hidden { display:none !important; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.site-announcement { display:flex; align-items:center; justify-content:center; gap:15px; min-height:36px; padding:7px 4vw; color:var(--announcement-text); background:var(--announcement-bg); font-size:13px; font-weight:800; text-align:center; }
.site-announcement a { color:var(--announcement-text); font-weight:950; text-decoration:underline; }
.site-header { position:sticky; top:0; z-index:20; background:rgba(255,255,255,.98); box-shadow:0 3px 14px rgba(16,42,75,.09); backdrop-filter:blur(12px); }
.header-main { display:flex; align-items:center; justify-content:flex-end; gap:16px; min-height:78px; width:min(1500px,94vw); margin:auto; }
.brand { flex:none; margin-right:auto; text-decoration:none; font-size:25px; letter-spacing:-1.2px; color:var(--orange); white-space:nowrap; background:transparent!important; box-shadow:none!important; }
.brand strong { color:var(--blue); }
.storefront-static-nav { display:flex; justify-content:center; align-items:center; overflow-x:auto; gap:4px; }
.storefront-static-nav>a { flex:none; }
.brand img { display:block; width:var(--logo-width,240px); max-width:min(var(--logo-width,240px),30vw); height:auto; max-height:68px; object-fit:contain; background:transparent!important; box-shadow:none!important; }
.header-search { display:flex; flex:1 1 440px; max-width:560px; min-height:46px; overflow:hidden; border:1px solid transparent; border-radius:9px; background:#f1f1f1; }
.header-search:focus-within { border-color:var(--green); box-shadow:0 0 0 2px rgba(69,168,70,.16); }
.header-search input { flex:1; min-width:0; padding:11px 16px; border:0; outline:none; color:var(--ink); background:transparent; font-size:16px; }
.header-search input::placeholder { color:#707070; opacity:1; }
.header-search button { position:relative; display:grid; place-items:center; flex:0 0 50px; min-height:44px; padding:0; border:0; color:#626262; background:transparent; }
.header-search button::before { position:absolute; left:0; top:10px; bottom:10px; width:1px; background:#c7c7c7; content:""; }
.header-search button svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; }
.header-search button:hover { color:var(--ink); background:#e6e6e6; }
.header-search button:focus-visible { outline:2px solid var(--green); outline-offset:-4px; }
/* Older published legal-page shells retain this node until their next content publish. */
.site-header .header-contact { display:none; }
.site-header>nav { min-height:46px; padding:0 3vw; background:var(--blue); }
.store-nav-horizontal { position:relative; display:flex; align-items:center; justify-content:center; gap:2px; overflow:visible; }
.desktop-nav-links { display:flex; align-items:center; justify-content:center; gap:2px; }
.mobile-menu-toggle,.mobile-store-menu-panel { display:none; }
.store-nav-hamburger,.store-nav-mega { position:relative; display:flex; align-items:center; justify-content:center; overflow:visible; }
.header-tools { display:flex; flex:none; align-items:center; gap:14px; }
.account-button { gap:8px; border:0; border-radius:6px; padding:8px 4px; color:#5c5c5c; background:transparent; font-size:13px; font-weight:850; text-transform:uppercase; white-space:nowrap; }
.account-button.signed-in { color:#247b32; }
.account-button:hover { color:var(--ink); background:#f5f5f5; }
.header-tools button:focus-visible { outline:2px solid var(--green); outline-offset:3px; }
.account-icon-head,.cart-wheel { fill:var(--green); stroke:var(--green); }
.account-chevron { width:11px; height:8px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.header-icon-button { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; }
.account-button .header-icon { width:21px; height:21px; }
.header-icon { width:25px; height:25px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.nav-link { flex:none; border:0; padding:14px 18px; color:#fff; background:transparent; font-size:13px; font-weight:850; text-decoration:none; text-transform:uppercase; }
.nav-link:hover,.nav-link.active { color:#fff; background:rgba(255,255,255,.14); }
.store-menu-toggle { min-height:46px; border:0; padding:0 22px; color:#fff; background:rgba(255,255,255,.08); font-size:15px; font-weight:950; text-transform:uppercase; cursor:pointer; }
.store-menu-toggle:hover { background:rgba(255,255,255,.16); }
.store-menu-panel { position:absolute; top:100%; left:50%; display:none; min-width:min(360px,92vw); padding:12px; border-radius:0 0 14px 14px; background:var(--blue); box-shadow:0 18px 35px rgba(12,39,76,.2); transform:translateX(-50%); }
.store-menu-panel.open { display:grid; gap:4px; }
.store-menu-panel .nav-link { display:block; width:100%; border-radius:8px; text-align:left; }
.store-mega-panel { left:3vw; right:3vw; grid-template-columns:2fr 1fr; gap:18px; width:auto; min-width:0; transform:none; }
.store-mega-panel.open { display:grid; }
.store-mega-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
.store-mega-categories { display:grid; align-content:start; gap:5px; padding:10px; border-radius:12px; background:rgba(255,255,255,.09); }
.store-mega-categories strong { color:#fff; font-size:12px; letter-spacing:.08em; text-transform:uppercase; }
.mega-category-link { padding:10px 12px; font-size:12px; }
.all-products-flyout { position:static; flex:none; }
.all-products-trigger { display:block; }
.products-flyout-panel { position:absolute; top:100%; left:50%; z-index:60; display:none; grid-template-columns:280px minmax(0,1fr); width:min(1120px,94vw); max-height:70vh; overflow:hidden; border-radius:0 0 18px 18px; background:#fff; box-shadow:0 24px 65px rgba(12,39,76,.22); transform:translateX(-50%); }
.all-products-flyout:hover>.products-flyout-panel,
.all-products-flyout:focus-within>.products-flyout-panel { display:grid; }
.products-flyout-list { display:grid; align-content:start; gap:3px; min-height:410px; max-height:70vh; overflow:auto; padding:12px; border-radius:0 0 0 18px; background:#f4f8fb; }
.products-flyout-group-link { display:flex; align-items:center; justify-content:space-between; gap:12px; min-width:0; padding:12px 13px; border-radius:11px; color:var(--blue); font-size:13px; font-weight:950; line-height:1.2; text-decoration:none; white-space:normal; }
.products-flyout-group-link:hover,
.products-flyout-group-link.active { color:#fff; background:var(--blue); }
.products-flyout-details { display:grid; align-content:start; gap:24px; max-height:70vh; overflow:auto; overscroll-behavior:contain; padding:22px 28px; border-radius:0 0 18px 0; background:#fff; }
.products-flyout-group-panel { display:none; min-width:0; padding-bottom:22px; border-bottom:1px solid var(--line); }
.products-flyout-group-panel.active { display:block; }
.products-flyout-group-panel:last-child { border-bottom:0; }
.products-flyout-panel-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:15px; padding-bottom:12px; border-bottom:1px solid var(--line); }
.products-flyout-panel-heading strong { color:var(--ink); font-size:20px; }
.products-flyout-panel-heading a { color:var(--green); font-size:12px; font-weight:950; text-decoration:none; text-transform:uppercase; }
.products-flyout-category-grid { display:grid; grid-template-columns:repeat(3,minmax(170px,1fr)); gap:20px 24px; }
.products-flyout-category { display:grid; align-content:start; min-width:0; max-height:48vh; gap:7px; overflow:auto; overscroll-behavior:contain; padding-right:8px; }
.products-flyout-category-title { color:var(--blue)!important; font-size:13px!important; font-weight:950!important; text-decoration:none; text-transform:uppercase; }
.products-flyout-category a:not(.products-flyout-category-title) { color:#44515d; font-size:13px; line-height:1.3; text-decoration:none; white-space:normal; overflow-wrap:anywhere; }
.products-flyout-category a:hover { color:var(--orange); text-decoration:underline; }
.products-flyout-category .products-flyout-more { margin-top:3px; color:var(--green); font-size:11px; font-weight:950; text-transform:uppercase; }
.products-flyout-category span,
.products-flyout-empty { color:var(--muted); font-size:12px; font-weight:750; }
.cart-button { position:relative; min-width:56px; border:0; border-radius:0; padding:10px 12px 10px 16px; color:#525252; background:transparent; font-weight:900; white-space:nowrap; }
.cart-button::before { position:absolute; left:0; top:10px; bottom:10px; width:1px; background:#d6d6d6; content:""; }
.cart-button:hover { color:var(--green); }
.cart-button .cart-count { position:absolute; top:0; right:0; display:inline-grid; place-items:center; min-width:20px; height:20px; margin:0; padding:0 5px; border:2px solid #fff; border-radius:999px; color:#242424; background:var(--orange); font-size:10px; line-height:1; }
main { width:min(1440px,92vw); min-height:55vh; margin:auto; }
.hero { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(280px,.65fr); gap:30px; align-items:end; padding:72px 0 54px; }
.hero.hero-no-image { grid-template-columns:1fr; }
.hero-image { order:2; overflow:hidden; border-radius:22px; box-shadow:var(--shadow); }
.hero-image img { display:block; width:100%; aspect-ratio:16/10; object-fit:cover; }
.hero h1 { max-width:850px; margin:8px 0 16px; font-size:clamp(42px,6vw,78px); line-height:.98; letter-spacing:-4px; }
.hero>div>p:last-child { max-width:680px; margin:0; color:var(--muted); font-size:20px; line-height:1.55; }
.eyebrow { margin:0; color:var(--orange); font-size:12px; letter-spacing:1.8px; font-weight:900; }
.hero-card { display:grid; gap:8px; padding:26px; border-radius:20px; color:#fff; background:linear-gradient(135deg,var(--blue),#2860aa); box-shadow:var(--shadow); }
.hero-card strong { font-size:22px; }
.hero-card span { color:#dfeaff; line-height:1.5; }
.hero-card a { width:max-content; margin-top:8px; color:#fff; font-weight:800; }
.catalog-section { padding:0 0 80px; }
.custom-blocks { display:grid; gap:18px; margin-bottom:42px; }
.store-block { overflow:hidden; border-radius:18px; background:#fff; box-shadow:0 8px 25px rgba(31,48,59,.06); }
.store-block-content { padding:28px; }
.store-block h2,.store-block h3 { margin:0 0 9px; }
.store-block p { margin:0; color:var(--muted); line-height:1.6; }
.store-block-announcement { padding:15px 24px; color:#fff; background:var(--green); text-align:center; font-weight:800; }
.store-block-cta { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:30px; color:#fff; background:var(--blue); }
.store-block-cta p { color:#dce7f7; }
.store-block-cta a { flex:none; padding:12px 18px; border-radius:10px; color:var(--blue); background:#fff; font-weight:900; text-decoration:none; }
.store-block-image { display:grid; grid-template-columns:1fr 1fr; align-items:center; }
.store-block-image img { width:100%; height:260px; object-fit:cover; }
.page-widget { margin-bottom:34px; }
main>.page-widget:first-child:not(.hero) { margin-top:34px; }
.page-banner { padding:52px clamp(24px,5vw,72px); border-radius:20px; color:#fff; background-color:var(--blue); background-position:center; background-size:cover; box-shadow:var(--shadow); text-align:center; }
.page-banner h2 { max-width:900px; margin:7px auto 10px; font-size:clamp(32px,5vw,58px); }
.page-banner>p:not(.eyebrow) { max-width:740px; margin:0 auto; color:#e2ebf7; font-size:18px; line-height:1.6; }
.page-banner-carousel { position:relative; overflow:hidden; min-height:320px; border-radius:20px; color:#fff; background:var(--blue); box-shadow:var(--shadow); }
.page-banner-slides { position:relative; min-height:320px; }
.page-banner-slide { position:absolute; inset:0; display:grid; align-content:center; justify-items:center; padding:52px clamp(24px,5vw,72px); background-color:var(--blue); background-position:center; background-size:cover; opacity:0; text-align:center; transform:translateX(24px); transition:opacity .45s ease, transform .45s ease; pointer-events:none; }
.page-banner-slide.active { opacity:1; transform:translateX(0); pointer-events:auto; }
.page-banner-slide h2 { max-width:900px; margin:7px auto 10px; font-size:clamp(32px,5vw,58px); }
.page-banner-slide>p:not(.eyebrow) { max-width:740px; margin:0 auto; color:#e2ebf7; font-size:18px; line-height:1.6; }
.page-banner-dots { position:absolute; left:50%; bottom:18px; display:flex; gap:8px; transform:translateX(-50%); }
.page-banner-dots button { width:10px; height:10px; padding:0; border:0; border-radius:999px; background:rgba(255,255,255,.55); cursor:pointer; }
.page-banner-dots button.active { width:28px; background:#fff; }
.page-banner.image-only { padding:0; overflow:hidden; background:#fff; }
.banner-artwork,.banner-artwork picture,.banner-artwork img { display:block; width:100%; }
.banner-artwork img { height:auto; object-fit:contain; }
.page-banner-carousel.has-artwork,.has-artwork .page-banner-slides { min-height:0; background:#fff; }
.has-artwork .page-banner-slide { position:relative; inset:auto; display:none; min-height:320px; }
.has-artwork .page-banner-slide.active { display:grid; }
.has-artwork .page-banner-slide.image-only { min-height:0; padding:0; transform:none; background:#fff; }
.has-artwork .page-banner-dots { position:relative; left:auto; bottom:auto; justify-content:center; transform:none; padding:10px; background:#fff; }
.has-artwork .page-banner-dots button { background:#aeb6bc; }
.has-artwork .page-banner-dots button.active { background:var(--green); }
.page-banner.responsive-background,.has-artwork .page-banner-slide.responsive-background { display:grid; grid-template-columns:minmax(0,1fr); padding:0; overflow:hidden; min-height:0; background:#fff; }
.has-artwork .page-banner-slide.responsive-background:not(.active) { display:none; }
.banner-background,.banner-caption { grid-area:1/1; }
.banner-background { display:block; width:100%; min-width:0; align-self:stretch; }
.banner-background img { display:block; width:100%; height:100%; object-fit:cover; }
.banner-caption { z-index:1; align-self:center; justify-self:center; min-width:0; max-width:min(850px,calc(100% - 48px)); margin:clamp(24px,5vw,68px); padding:24px 32px; border-radius:16px; background:rgba(255,255,255,.94); color:#172331; text-align:center; }
.banner-caption h2 { color:#172331; margin:0 0 12px; font-size:clamp(28px,4vw,54px); line-height:1.1; }
.banner-caption>p:not(.eyebrow) { margin:0; color:#334350; font-size:clamp(15px,1.5vw,20px); line-height:1.5; white-space:pre-line; }
.banner-caption .eyebrow:empty { display:none; }
.banner-caption .widget-button { color:#fff; }
@media(max-width:760px) { .banner-caption { margin:24px; padding:16px; } .banner-caption h2 { font-size:26px; } .banner-caption>p:not(.eyebrow) { font-size:14px; line-height:1.4; } .banner-caption .widget-button { max-width:100%; white-space:normal; } .banner-background { aspect-ratio:1; } }
.page-banner.creative-banner,.has-artwork .page-banner-slide.creative-banner{padding:0;display:block;min-height:0;background:#fff;text-align:left;color:#171918;font-family:Arial,Helvetica,sans-serif;transform:none}
.has-artwork .page-banner-slide.creative-banner:not(.active){display:none}
.creative-banner *{box-sizing:border-box}
.creative-banner h2{max-width:none;margin:0}
.creative-banner em{font-style:inherit}
.creative-banner .creative-backdrop{position:absolute;inset:0;display:block;width:100%;height:100%}
.creative-banner .creative-backdrop img{width:100%;height:100%;object-fit:fill}
.creative-banner .creative-content{position:relative;z-index:1}
.creative-banner .cb-layout{position:relative;overflow:hidden;margin:0;width:100%;height:440px;background:#fff}
.creative-banner h1,.creative-banner h2,.creative-banner p{margin:0}
.creative-banner .display{font-family:Impact,'Arial Narrow',Arial,sans-serif;font-weight:900;font-style:italic;letter-spacing:-1.5px;line-height:.98;text-transform:uppercase}
.creative-banner .eyebrow{font-weight:800;font-size:13px;letter-spacing:2px;text-transform:uppercase}
.creative-banner .cta{display:inline-flex;align-items:center;justify-content:center;gap:26px;padding:15px 22px;margin-top:22px;background:#ff6b00;color:#fff;font-size:15px;font-weight:800;border-radius:5px;text-decoration:none}
.creative-banner .cta span{font-size:22px;line-height:14px}
.creative-banner .offer{display:grid;grid-template-columns:44% 56%;align-items:center;background:#fff}
.creative-banner .offer:before{content:'';position:absolute;inset:0;background:#ffce00;clip-path:polygon(0 0,48% 0,36% 100%,0 100%)}
.creative-banner .offer:after{content:'';position:absolute;left:-15%;top:-110%;width:85%;height:290%;background:repeating-conic-gradient(from 18deg,transparent 0deg 14deg,#ffb90080 14deg 18deg);pointer-events:none;clip-path:polygon(0 0,100% 0,74% 100%,0 100%)}
.creative-banner .discount{position:relative;z-index:1;display:flex;justify-content:center;align-items:center;transform:rotate(-6deg);padding:0 30px 0 0}
.creative-banner .ten{font:900 200px/.9 Impact,'Arial Narrow',sans-serif;letter-spacing:-12px}
.creative-banner .percent{display:flex;flex-direction:column;padding-left:8px;font:900 94px/.88 Impact,sans-serif;letter-spacing:-5px}
.creative-banner .percent small{font-size:43px;letter-spacing:-1px;margin-top:8px}
.creative-banner .offer-copy{z-index:1;padding:32px 42px 32px 4px}
.creative-banner .offer-copy h2{font-size:65px;margin:12px 0 22px}
.creative-banner .offer-copy .eyebrow{color:#388e34}
.creative-banner .promo{display:flex;align-items:center;gap:14px;font-size:17px}
.creative-banner .code{font-size:24px;font-weight:900;color:#359c3c;letter-spacing:1px;border:2px dashed #b4d6b3;padding:8px 12px}
.creative-banner .fine{font-size:12px;margin-top:13px;line-height:1.5}
.creative-banner .banner{background:#48ad3b;color:white;text-align:center;padding:57px 75px 44px}
.creative-banner .banner h2{font-size:68px;text-shadow:0 3px 0 #286a3333}
.creative-banner .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;margin-top:30px}
.creative-banner .step{display:grid;grid-template-columns:48px 1fr;align-items:start;gap:13px;text-align:left}
.creative-banner .num{display:grid;place-items:center;width:47px;height:47px;background:#ff6b00;border-radius:50%;font:900 30px Impact,sans-serif;border:2px solid white}
.creative-banner .step b{display:block;font-size:19px;line-height:1.15;margin:2px 0 6px}
.creative-banner .step p{font-size:14px;line-height:1.35;color:#fff}
.creative-banner .banner .cta{margin-top:22px;background:white;color:#247e2b;padding:12px 22px}
.creative-banner .banner .fine{margin-top:8px;font-size:11px}
.creative-banner .sameday{display:grid;grid-template-columns:53% 47%;align-items:center;background:#f8f7f2}
.creative-banner .sameday:before{content:'';position:absolute;inset:0;background:#48ad3b;clip-path:polygon(73% 0,100% 0,100% 100%,48% 100%)}
.creative-banner .sameday:after{content:'';position:absolute;left:61%;top:-35%;height:170%;width:10px;background:#ff6b00;transform:rotate(26deg)}
.creative-banner .same-copy{position:relative;z-index:2;padding:42px 0 42px 55px}
.creative-banner .same-copy h2{font-size:71px;margin:17px 0 18px}
.creative-banner .same-copy h2 em{color:#ff6b00;font-style:inherit}
.creative-banner .same-copy>p:not(.eyebrow){font-size:18px;color:#454d44}
.creative-banner .same-copy .eyebrow{color:#328e34}
.creative-banner .products{position:relative;z-index:2;width:100%;padding:0 22px 0 0;filter:drop-shadow(0 18px 14px #203a2730)}
.creative-banner .sameday .fine{color:#60695f;font-size:11px}
@media(min-width:1450px){.creative-banner .cb-layout{height:470px}
.creative-banner .offer-copy h2{font-size:76px}
.creative-banner .same-copy h2{font-size:82px}
}

@media(max-width:760px){.creative-banner .cb-layout{height:550px;margin-bottom:0}
.creative-banner .display{letter-spacing:-.8px}
.creative-banner .offer{display:flex;flex-direction:column;justify-content:flex-start}
.creative-banner .offer:before{clip-path:polygon(0 0,100% 0,100% 41%,0 52%)}
.creative-banner .offer:after{left:-70%;top:-120%;width:240%;height:165%;clip-path:none}
.creative-banner .discount{height:250px;flex-shrink:0;padding:12px 0 0;align-items:center}
.creative-banner .ten{font-size:170px;letter-spacing:-10px}
.creative-banner .percent{font-size:76px}
.creative-banner .percent small{font-size:36px}
.creative-banner .offer-copy{padding:13px 22px 20px;text-align:center}
.creative-banner .eyebrow{font-size:11px;letter-spacing:1.5px}
.creative-banner .offer-copy h2{font-size:43px;margin:10px 0 16px}
.creative-banner .promo{justify-content:center;gap:10px;font-size:14px}
.creative-banner .code{font-size:20px;padding:7px 10px}
.creative-banner .cta{font-size:14px;margin-top:18px;padding:13px 20px}
.creative-banner .fine{font-size:10px;margin-top:9px}
.creative-banner .banner{height:570px;padding:48px 35px 37px}
.creative-banner .banner h2{font-size:44px;line-height:1.03}
.creative-banner .steps{grid-template-columns:1fr;gap:19px;margin-top:24px}
.creative-banner .step{grid-template-columns:39px 1fr;gap:12px}
.creative-banner .num{width:39px;height:39px;font-size:25px}
.creative-banner .step b{font-size:17px;margin:0 0 3px}
.creative-banner .step p{font-size:13px}
.creative-banner .banner .cta{margin-top:23px;font-size:13px;padding:12px 17px}
.creative-banner .banner .fine{font-size:9px;line-height:1.35;margin-top:9px}
.creative-banner .sameday{height:590px;display:flex;flex-direction:column;align-items:stretch}
.creative-banner .sameday:before{clip-path:polygon(100% 39%,100% 100%,0 100%,0 84%)}
.creative-banner .sameday:after{height:80%;left:64%;top:45%;transform:rotate(61deg);width:7px}
.creative-banner .same-copy{padding:28px 24px 0}
.creative-banner .same-copy h2{font-size:53px;margin:14px 0}
.creative-banner .same-copy>p:not(.eyebrow){font-size:15px}
.creative-banner .same-copy .cta{margin-top:16px}
.creative-banner .same-copy .fine{font-size:10px}
.creative-banner .products{width:95%;height:235px;align-self:flex-end;padding:0 10px;margin-top:8px}
}

.creative-banner .offer:after{inset:0;width:auto;height:auto;background:repeating-conic-gradient(from 18deg at 19% 48%,transparent 0deg 14deg,#ffb90080 14deg 18deg);clip-path:polygon(0 0,48% 0,36% 100%,0 100%)}
.creative-banner .same-copy>p.fine{font-size:11px;line-height:1.4}
@media(max-width:760px){.creative-banner .offer:after{background:repeating-conic-gradient(from 18deg at 50% 20%,transparent 0deg 14deg,#ffb90080 14deg 18deg);clip-path:polygon(0 0,100% 0,100% 41%,0 52%)}
.creative-banner .same-copy>p.fine{font-size:10px}
}

.creative-banner .step p { max-width:190px; }
/* Editable coupon artwork: decorative arrows contain no rasterized copy. */
.creative-banner .arrow-offer {
  container-type:inline-size; display:grid; grid-template-columns:55% 45%;
  align-items:center; height:auto; min-height:360px; aspect-ratio:3 / 1;
  color:#303030; background:#fff;
}
.arrow-offer .offer-arrows { position:absolute; inset:0; pointer-events:none; }
.arrow-offer .offer-arrows::before,
.arrow-offer .offer-arrows::after {
  content:""; position:absolute; left:-7%; top:0; width:27%; height:100%;
  background:#fd690d; clip-path:polygon(0 0,32% 0,100% 50%,32% 100%,0 100%,68% 50%);
}
.arrow-offer .offer-arrows::after { left:-17%; background:#45a846; }
.creative-banner .arrow-offer::after {
  content:""; position:absolute; right:-4%; bottom:-16%; width:14%; height:75%;
  transform:rotate(37deg); background:linear-gradient(90deg,#45a846 0 33%,#fff 33% 49%,#fd690d 49% 75%,transparent 75%);
  pointer-events:none;
}
.arrow-offer .offer-discount {
  position:relative; z-index:1; padding:10px 7% 10px 35%;
  font-family:Impact,'Arial Narrow',Arial,sans-serif; font-style:italic;
  font-weight:900; line-height:.88;
}
.arrow-offer .offer-number { display:block; font-size:21cqw; color:#45a846; letter-spacing:-.8cqw; }
.arrow-offer .offer-off { display:block; text-align:right; font-size:12cqw; }
.arrow-offer .arrow-offer-copy {
  position:relative; z-index:1; padding:1.6cqw 5cqw 1.6cqw 2.6cqw;
  border-left:1px solid #d8e5d5;
}
.creative-banner .arrow-offer .display {
  font-size:5.9cqw; line-height:1; letter-spacing:-.13cqw; text-transform:none;
}
.arrow-offer .offer-promo { display:flex; align-items:center; flex-wrap:wrap; gap:1cqw; margin-top:1.1cqw; font-size:2cqw; font-weight:700; }
.arrow-offer .offer-code { color:#45a846; border:2px solid #45a846; border-radius:7px; padding:.35cqw .8cqw; font:italic 900 2.8cqw/1.1 Impact,'Arial Narrow',Arial,sans-serif; }
.creative-banner .arrow-offer .cta { margin-top:1.1cqw; padding:.65cqw 2.9cqw; border-radius:10px; background:#fd690d; font:italic 900 2.9cqw/1.2 Impact,'Arial Narrow',Arial,sans-serif; gap:1cqw; }
.creative-banner .arrow-offer .cta span { font:inherit; }
.creative-banner .arrow-offer .fine { font-size:max(12px,1cqw); line-height:1.4; margin-top:1cqw; }
@media(max-width:760px) {
  .creative-banner .arrow-offer { display:flex; flex-direction:column; aspect-ratio:auto; min-height:0; height:auto; padding:6cqw 0 5cqw; }
  .arrow-offer .offer-arrows::before { left:-12%; width:33%; height:43%; }
  .arrow-offer .offer-arrows::after { left:-25%; width:33%; height:43%; }
  .arrow-offer .offer-discount { padding:0 0 2cqw; width:70%; }
  .arrow-offer .offer-number { font-size:50cqw; letter-spacing:-2cqw; }
  .arrow-offer .offer-off { font-size:26cqw; }
  .arrow-offer .arrow-offer-copy { padding:0 9%; border:0; text-align:center; width:100%; }
  .creative-banner .arrow-offer .display { font-size:12cqw; letter-spacing:-.25cqw; }
  .arrow-offer .offer-promo { justify-content:center; font-size:5cqw; gap:2cqw; margin-top:2.5cqw; }
  .arrow-offer .offer-code { font-size:7cqw; padding:1cqw 1.7cqw; }
  .creative-banner .arrow-offer .cta { display:flex; width:100%; font-size:8cqw; padding:2cqw 4cqw; margin-top:3cqw; gap:4cqw; }
  .creative-banner .arrow-offer .fine { font-size:max(11px,2.8cqw); max-width:250px; margin:3cqw auto 0; }
  .creative-banner .arrow-offer::after { right:-9%; bottom:-9%; width:21%; height:32%; }
}
.widget-button { display:inline-block; margin-top:18px; padding:12px 18px; border-radius:10px; color:#fff; background:var(--orange); font-weight:900; text-decoration:none; }
/* Keep mixed offer carousels stable as slides rotate, including on phones. */
.page-banner-carousel.uniform-banners { --banner-height:360px; }
.uniform-banners .page-banner-slides,
.uniform-banners .page-banner-slide,
.uniform-banners .creative-banner .cb-layout { height:var(--banner-height); min-height:0; }
.uniform-banners .page-banner-slide:not(.creative-banner) { padding:28px 40px; overflow:auto; }
.uniform-banners .arrow-offer { aspect-ratio:auto; }
.uniform-banners .offer-number { font-size:min(18cqw,240px); }
.uniform-banners .offer-off { font-size:min(10cqw,140px); }
.uniform-banners .arrow-offer-copy { padding:16px 5cqw 16px 2.6cqw; }
.uniform-banners .arrow-offer .display { font-size:clamp(32px,4.6cqw,64px); }
.uniform-banners .offer-promo { font-size:clamp(16px,1.6cqw,22px); }
.uniform-banners .offer-code { font-size:clamp(22px,2.2cqw,30px); }
.uniform-banners .arrow-offer .cta { min-height:44px; font-size:clamp(22px,2.2cqw,30px); }
.uniform-banners .arrow-offer .fine { font-size:12px; }
@media(max-width:760px) {
  .uniform-banners .page-banner-slide:not(.creative-banner) { padding:24px 22px; }
  .uniform-banners .page-banner-slide>h2 { font-size:28px; line-height:1.12; }
  .uniform-banners .page-banner-slide>p:not(.eyebrow) { font-size:16px; line-height:1.45; }
  .uniform-banners .arrow-offer { justify-content:center; padding:16px 0; }
  .uniform-banners .offer-discount { display:flex; align-items:baseline; justify-content:center; gap:10px; width:100%; padding:0 10% 10px 16%; }
  .uniform-banners .offer-number { font-size:clamp(76px,26cqw,104px); letter-spacing:-3px; }
  .uniform-banners .offer-off { font-size:clamp(36px,12cqw,48px); }
  .uniform-banners .arrow-offer-copy { padding:0 8%; }
  .uniform-banners .arrow-offer .display { font-size:clamp(28px,8cqw,36px); }
  .uniform-banners .offer-promo { gap:8px; margin-top:10px; font-size:16px; }
  .uniform-banners .offer-code { font-size:23px; padding:3px 7px; }
  .uniform-banners .arrow-offer .cta { width:auto; margin:12px auto 0; padding:8px 24px; font-size:24px; gap:16px; }
  .uniform-banners .arrow-offer .fine { max-width:270px; margin:9px auto 0; font-size:11px; }
  .uniform-banners .offer-arrows::before,
  .uniform-banners .offer-arrows::after { height:36%; }
}
.store-block-image .widget-button { color:#fff; }
.widget-section { padding:36px; border-radius:20px; background:#fff; box-shadow:0 8px 25px rgba(31,48,59,.06); }
.widget-section-heading { max-width:760px; margin-bottom:24px; }
.widget-section-heading h2 { margin:0 0 8px; font-size:34px; }
.widget-section-heading p { margin:0; color:var(--muted); line-height:1.6; }
.staff-grid,.template-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.staff-card { padding:18px; border:1px solid var(--line); border-radius:14px; background:#fff; }
.staff-card img,.staff-placeholder { width:100%; height:auto; aspect-ratio:1/1; margin-bottom:15px; border-radius:11px; object-fit:cover; }
.staff-card img { display:block; }
.staff-placeholder { display:grid; place-items:center; color:#fff; background:var(--blue); font-size:32px; font-weight:900; }
.staff-card h3 { margin:0 0 4px; font-size:20px; }
.staff-card strong { color:var(--green); }
.staff-card p { color:var(--muted); line-height:1.5; }
.staff-contact { display:grid; gap:5px; margin-top:12px; padding-top:12px; border-top:1px solid var(--line); }
.staff-contact a { overflow-wrap:anywhere; color:var(--blue); font-size:13px; font-weight:750; text-decoration:none; }
.staff-contact a:hover { text-decoration:underline; }
.faq-list { display:grid; gap:9px; }
.faq-list details { padding:16px 18px; border:1px solid var(--line); border-radius:11px; background:#fafbfb; }
.faq-list summary { cursor:pointer; color:var(--blue); font-weight:900; }
.faq-list p { margin:12px 0 0; color:var(--muted); line-height:1.6; }
.template-card { overflow:hidden; display:grid; gap:8px; padding:16px; border:1px solid var(--line); border-radius:14px; color:var(--ink); background:#fff; text-decoration:none; }
.template-card:hover { border-color:var(--green); transform:translateY(-2px); }
.template-card img { width:100%; aspect-ratio:1/1; border-radius:9px; object-fit:cover; }
.template-card strong { font-size:18px; }
.template-card span { color:var(--blue); font-size:12px; font-weight:900; }
.store-category-grid { display:grid; grid-template-columns:repeat(var(--category-columns,4),minmax(0,1fr)); gap:14px; }
.store-category-card { overflow:hidden; display:grid; border:1px solid var(--line); border-radius:13px; color:var(--ink); background:#fff; box-shadow:0 6px 17px rgba(31,48,59,.06); text-decoration:none; transition:.18s ease; }
.store-category-card:hover { border-color:var(--green); transform:translateY(-3px); box-shadow:0 16px 34px rgba(31,48,59,.12); }
.store-category-card img,.store-category-placeholder { display:block; width:100%; height:auto; aspect-ratio:1/1; object-fit:cover; background:linear-gradient(145deg,var(--blue),#2f6cac); }
.store-category-card img[data-deferred-image],
.product-image img[data-deferred-image],
.staff-card img[data-deferred-image],
.store-gallery-card img[data-deferred-image],
.store-block-image img[data-deferred-image],
.template-card img[data-deferred-image] { opacity:.08; background:linear-gradient(145deg,#edf2f4,#fafbfb); }
.store-category-card img.image-loaded,
.product-image img.image-loaded,
.staff-card img.image-loaded,
.store-gallery-card img.image-loaded,
.store-block-image img.image-loaded,
.template-card img.image-loaded { opacity:1; transition:opacity .18s ease; }
.store-category-placeholder { display:grid; place-items:center; color:#fff; font-size:26px; font-weight:900; }
.store-category-card strong { display:block; padding:12px 12px 3px; font-size:15px; }
.store-category-card span { display:block; padding:0 12px 12px; color:var(--green); font-size:9px; font-weight:900; }
.product-category-tabs { display:flex; flex-wrap:wrap; gap:7px; margin:-10px 0 20px; }
.product-category-tabs button { padding:9px 13px; border:0; border-radius:999px; color:var(--muted); background:#fff; font-weight:800; }
.product-category-tabs button.active { color:#fff; background:var(--green); }
.page-empty { margin:80px 0; }
.site-footer { margin-top:70px; color:var(--footer-text); background:var(--footer-bg); }
.footer-promise { padding:24px 4vw; color:#fff; background:var(--footer-accent); font-size:18px; text-align:center; }
.footer-grid { display:grid; grid-template-columns:1.25fr repeat(3,.7fr) 1.1fr; gap:38px; width:min(1500px,94vw); margin:auto; padding:55px 0 45px; }
.footer-grid h3 { margin:0 0 17px; color:#fff; font-size:17px; }
.footer-grid p { color:#b8c9dd; line-height:1.7; }
.footer-grid section>a,.footer-grid nav a { display:block; width:max-content; max-width:100%; margin:9px 0; color:var(--footer-text); text-decoration:none; }
.footer-grid section>a:hover,.footer-grid nav a:hover { color:#fff; }
.footer-brand { display:inline-block!important; width:max-content; max-width:100%; margin:0 0 15px!important; padding:0!important; border:0!important; border-radius:0!important; background:transparent!important; box-shadow:none!important; font-size:24px; }
.footer-brand img { display:block; width:var(--footer-logo-width,200px); max-width:100%; height:auto; object-fit:contain; background:transparent!important; box-shadow:none!important; }
.footer-social { display:flex; gap:9px; margin-top:18px; }
.footer-social a { padding:8px 11px; border:1px solid rgba(255,255,255,.22); border-radius:4px; color:#fff; text-decoration:none; }
.footer-bottom { display:flex; justify-content:space-between; gap:20px; padding:18px 4vw; border-top:1px solid rgba(255,255,255,.13); color:#9fb2ca; font-size:12px; }
.catalog-toolbar { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:24px; }
.catalog-toolbar h2 { margin:5px 0 0; font-size:34px; }
.catalog-breadcrumb { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:-6px 0 22px; color:var(--muted); font-size:13px; font-weight:800; }
.catalog-breadcrumb a { color:var(--blue); text-decoration:none; }
.catalog-breadcrumb a:hover { color:var(--green); text-decoration:underline; }
.catalog-breadcrumb strong { color:var(--ink); }
.catalog-breadcrumb span { color:#9aa7ae; }
.config-visual .catalog-breadcrumb { justify-content:flex-start; margin:0 0 16px; font-size:12px; }
.catalog-sibling-links { display:flex; flex-wrap:wrap; align-items:center; gap:7px; margin:-12px 0 20px; }
.catalog-sibling-links strong { color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.08em; }
.catalog-sibling-links a { display:inline-flex; align-items:center; gap:6px; padding:7px 10px; border:1px solid var(--line); border-radius:999px; color:var(--blue); background:#fff; text-decoration:none; font-size:12px; font-weight:850; }
.catalog-sibling-links a span { display:inline-grid; place-items:center; min-width:20px; height:20px; padding:0 5px; border-radius:999px; color:#fff; background:var(--green); font-size:10px; }
.catalog-sibling-links a.active { border-color:var(--blue); background:#f2f8fd; }
.config-visual .catalog-sibling-links { margin:-6px 0 16px; }
.catalog-directory-grid { margin-top:4px; }
.field.fixed-size-field input[readonly] { color:var(--ink); background:#edf3ef; cursor:not-allowed; }
.field small { color:var(--muted); font-size:11px; font-weight:750; line-height:1.4; }
.page-widget { content-visibility:auto; contain-intrinsic-size:640px; }
.product-grid { display:grid; grid-template-columns:repeat(var(--product-columns,4),minmax(0,1fr)); gap:18px; }
.product-card { overflow:hidden; display:flex; flex-direction:column; border:1px solid var(--line); border-radius:20px; background:#fff; box-shadow:0 12px 34px rgba(26,64,124,.08); transition:.2s ease; content-visibility:auto; contain-intrinsic-size:440px; }
.product-card:hover { transform:translateY(-4px); border-color:rgba(69,168,70,.45); box-shadow:0 22px 48px rgba(26,64,124,.14); }
.product-card-media { position:relative; display:block; overflow:hidden; color:inherit; text-decoration:none; background:radial-gradient(circle at 22% 18%,rgba(253,105,13,.14),transparent 32%),linear-gradient(135deg,#edf6f0,#fff 56%,#eef4ff); }
.product-card-badges { position:absolute; top:12px; left:12px; right:12px; z-index:2; display:flex; flex-wrap:wrap; justify-content:space-between; gap:7px; pointer-events:none; }
.product-card-badges span { display:inline-flex; align-items:center; min-height:25px; padding:6px 9px; border:1px solid #ffd8bf; border-radius:999px; color:var(--orange); background:#fff7ef; box-shadow:0 5px 15px rgba(26,64,124,.08); font-size:9px; font-weight:950; letter-spacing:.06em; text-transform:uppercase; }
.product-card-badges span.green { border-color:#cdebd0; color:var(--green); background:#effaf0; }
.product-image { display:grid; place-items:center; width:100%; aspect-ratio:1/1; overflow:hidden; color:#9aa5ad; background:linear-gradient(145deg,#edf2f4,#fafbfb); }
.product-image img { width:100%; height:100%; object-fit:cover; }
.product-card-image { aspect-ratio:1.12/1; background:transparent; }
.product-card-image img { transform:scale(.92); border-radius:16px; box-shadow:0 18px 30px rgba(26,64,124,.14); transition:.2s ease; }
.product-card:hover .product-card-image img { transform:scale(.96); }
.product-card.is-hydrating-image .product-placeholder { position:relative; overflow:hidden; color:transparent; border-color:#d8e2e6; background:#edf2f4; }
.product-card.is-hydrating-image .product-placeholder::after { content:""; position:absolute; inset:0; transform:translateX(-120%); background:linear-gradient(105deg,transparent 20%,rgba(255,255,255,.85) 48%,transparent 76%); animation:catalogImageShimmer 1.25s ease-in-out infinite; }
.product-card.image-unavailable .product-placeholder { color:var(--blue); border-color:#d5dee5; background:#f5f8f9; }
@keyframes catalogImageShimmer { to { transform:translateX(120%); } }
.product-placeholder { display:grid; place-items:center; width:57px; height:57px; border:2px solid #cad4d9; border-radius:14px; font-size:23px; font-weight:900; }
.product-card-body { display:flex; flex:1; flex-direction:column; padding:18px; }
.product-card h3 { margin:0 0 7px; color:var(--blue); font-size:19px; line-height:1.12; letter-spacing:-.5px; }
.product-card p { margin:0; color:var(--muted); font-size:12px; line-height:1.45; }
.product-card-fulfillment { display:grid; grid-template-columns:auto 1fr; gap:8px; align-items:center; margin-top:11px; padding:9px 10px; border:1px solid #cdebd0; border-radius:10px; color:#244d34; background:#f0faf2; font-size:11px; line-height:1.35; }
.product-card-fulfillment strong { color:var(--green); font-size:10px; font-weight:950; letter-spacing:.08em; text-transform:uppercase; }
.product-card-fulfillment span { font-weight:850; }
.product-card-fulfillment.no-shipping { border-color:#ffd2b8; color:#7a3510; background:#fff5ed; }
.product-card-fulfillment.no-shipping strong { color:var(--orange); }
.product-card-actions { display:grid; grid-template-columns:1fr; margin-top:auto; padding-top:14px; }
.product-card-actions .configure-button { display:flex; align-items:center; justify-content:center; min-height:44px; }
.configure-button { display:block; padding:11px 10px; border:0; border-radius:11px; color:#fff; background:var(--orange); font-size:12px; font-weight:950; text-align:center; text-decoration:none; }
.configure-button:hover { filter:brightness(.97); }
.configure-button:active,.catalog-load-more button:active { transform:translateY(1px); }
.configure-button.is-working { pointer-events:none; opacity:.82; cursor:wait; }
.configure-button.is-working::after { content:""; display:inline-block; width:10px; height:10px; margin-left:8px; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; vertical-align:-1px; animation:storefrontButtonSpin .75s linear infinite; }
@keyframes storefrontButtonSpin { to { transform:rotate(360deg); } }
button:focus-visible,.configure-button:focus-visible { outline:3px solid rgba(26,64,124,.2); outline-offset:2px; }
.configure-button.secondary { color:var(--blue); background:#eef4f0; }
.store-category-card { content-visibility:auto; contain-intrinsic-size:180px; }
.catalog-load-more { grid-column:1/-1; display:flex; align-items:center; justify-content:center; gap:14px; padding:10px 0 2px; color:var(--muted); font-size:12px; font-weight:850; }
.catalog-load-more button { padding:11px 18px; border:0; border-radius:999px; color:#fff; background:var(--green); font-weight:950; box-shadow:0 8px 20px rgba(69,168,70,.2); }
.catalog-load-more button:hover { background:#378c3b; }
.status-message,.empty-state { grid-column:1/-1; padding:26px; border:1px dashed #bdc8ce; border-radius:16px; color:var(--muted); background:#fff; text-align:center; }
.status-message { margin-bottom:20px; }
.empty-state { display:grid; gap:6px; }
dialog { padding:0; border:0; border-radius:22px; box-shadow:var(--shadow); }
dialog::backdrop { background:rgba(11,25,35,.62); backdrop-filter:blur(3px); }
.dialog-close { position:absolute; top:15px; right:18px; z-index:3; display:grid; place-items:center; width:38px; height:38px; border:0; border-radius:50%; color:var(--ink); background:#fff; box-shadow:0 5px 18px rgba(0,0,0,.12); font-size:25px; }
.dialog-close.static { position:static; box-shadow:none; background:var(--soft); }
.product-page { width:min(1440px,92vw); min-height:60vh; margin:0 auto; padding:28px 0 80px; }
.product-page-top { position:sticky; top:124px; z-index:12; display:flex; align-items:center; justify-content:space-between; gap:18px; margin:0 0 18px; padding:13px 16px; border:1px solid var(--line); border-radius:18px; background:rgba(255,255,255,.96); box-shadow:0 12px 32px rgba(26,64,124,.08); backdrop-filter:blur(12px); }
.product-page-top .catalog-breadcrumb { margin:0; }
.product-page-back { flex:none; padding:10px 14px; border:0; border-radius:999px; color:#fff; background:var(--blue); font-size:12px; font-weight:950; }
.configurator { display:grid; grid-template-columns:minmax(360px,.92fr) minmax(420px,1.08fr); min-height:650px; overflow:hidden; border:1px solid var(--line); border-radius:24px; background:#fff; box-shadow:0 18px 48px rgba(26,64,124,.1); }
.config-visual { display:flex; flex-direction:column; padding:38px; background:linear-gradient(145deg,#edf2f4,#fafcfc); }
.config-visual .product-image { flex:0 0 auto; align-self:center; width:min(100%,500px); height:auto; min-height:0; aspect-ratio:1/1; border-radius:18px; background:#fff; }
.config-visual h2 { margin:24px 0 7px; font-size:32px; }
.config-visual p { margin:0; color:var(--muted); line-height:1.55; }
.config-form { padding:42px; }
.config-form h3 { margin:0 0 6px; font-size:24px; }
.config-subtitle { margin:0 0 24px; color:var(--muted); }
.field-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; }
.field-grid .wide { grid-column:1/-1; }
.grid-artwork-size { display:flex; flex-direction:column; justify-content:center; padding:12px 14px; border:1px solid var(--line); border-radius:10px; background:#f7f9fb; }
.grid-artwork-size span { color:var(--muted); font-size:11px; font-weight:800; text-transform:uppercase; }
.grid-artwork-size strong { margin-top:3px; color:var(--blue); font-size:18px; }
.grid-artwork-size small { margin-top:3px; color:var(--muted); }
.field,.option-field,.artwork-field { display:grid; gap:7px; margin-bottom:16px; color:#52606b; font-size:12px; font-weight:850; }
.field input,.field select,.option-field input,.option-field select { width:100%; padding:12px 13px; border:1px solid var(--line); border-radius:10px; color:var(--ink); background:#fff; outline:none; }
.field input:focus,.field select:focus,.option-field input:focus,.option-field select:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(26,64,124,.1); }
.standard-apparel-config { display:grid; gap:14px; margin:0 0 18px; padding:17px; border:1px solid #d6e9d8; border-radius:16px; background:#fbfefb; }
.standard-apparel-heading { display:grid; gap:4px; }
.standard-apparel-heading span { color:var(--orange); font-size:11px; font-weight:950; letter-spacing:.16em; text-transform:uppercase; }
.standard-apparel-heading strong { color:var(--ink); font-size:18px; }
.standard-apparel-selects,.standard-apparel-decoration-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.standard-apparel-decoration-grid { grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr); align-items:start; }
.standard-apparel-location-panel,.standard-apparel-location-list { display:grid; gap:9px; }
.standard-apparel-location-row { display:grid; grid-template-columns:minmax(0,1fr) 105px 42px; gap:9px; align-items:end; }
.standard-apparel-location-row .field { margin-bottom:0; }
.standard-apparel-add-location { justify-self:start; width:auto; padding:10px 14px; border-radius:10px; font-size:13px; }
.standard-apparel-remove-location { width:42px; height:42px; border:0; border-radius:10px; background:#fff0ec; color:#a64033; font-size:22px; font-weight:950; cursor:pointer; }
.standard-apparel-remove-location:disabled { opacity:.35; cursor:not-allowed; }
.standard-apparel-preview { min-height:78px; }
.standard-apparel-product-card { display:flex; align-items:center; gap:13px; padding:13px; border:1px solid var(--line); border-radius:14px; background:#fff; }
.standard-apparel-product-card img,.standard-apparel-fallback { flex:none; width:62px; height:62px; border:1px solid var(--line); border-radius:13px; object-fit:contain; background:#f5f8f5; }
.standard-apparel-fallback { display:grid; place-items:center; color:var(--green); font-size:18px; font-weight:950; }
.standard-apparel-product-card strong { display:block; color:var(--ink); font-size:16px; }
.standard-apparel-product-card span { display:block; margin-top:3px; color:var(--muted); font-size:12px; font-weight:800; }
.standard-apparel-size-list { display:grid; gap:8px; }
.standard-apparel-size-head,.standard-apparel-size-row { display:grid; grid-template-columns:1fr .85fr .75fr 92px; align-items:center; gap:10px; }
.standard-apparel-size-head { padding:0 10px; color:#66737d; font-size:11px; font-weight:950; letter-spacing:.08em; text-transform:uppercase; }
.standard-apparel-size-row { padding:10px; border:1px solid var(--line); border-radius:13px; background:#fff; }
.standard-apparel-size-row strong { color:var(--green); font-size:18px; }
.standard-apparel-size-row span { color:var(--muted); font-size:13px; font-weight:850; }
.standard-apparel-size-row input { width:100%; padding:9px 10px; border:1px solid var(--line); border-radius:10px; font-weight:900; }
.standard-apparel-help { margin:0; color:var(--muted); font-size:12px; font-weight:750; line-height:1.4; }
.color-option-field { display:block; padding:0; border:0; }
.color-option-field legend { margin-bottom:8px; color:#52606b; font-size:12px; font-weight:850; }
.color-option-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px; }
.color-option-grid label { display:flex; align-items:center; gap:9px; min-height:46px; padding:11px 12px; border:1px solid var(--line); border-radius:12px; color:var(--ink); background:#fff; font-weight:850; cursor:pointer; }
.color-option-grid input { width:auto!important; margin:0; accent-color:var(--green); }
.color-option-field small { display:block; margin-top:8px; color:#52606b; font-size:11px; font-weight:750; }
.artwork-field { padding:17px; border:1px dashed #aebdc5; border-radius:12px; background:#f8fafb; }
.artwork-field input { font-weight:600; }
.artwork-field small { color:var(--muted); font-weight:650; line-height:1.35; }
.artwork-field small.artwork-selected { color:var(--blue); }
.artwork-field small.artwork-uploaded { color:var(--green); font-weight:850; }
.artwork-field small.artwork-upload-error { color:#a52d2d; font-weight:850; }
.supplied-artwork-fields { display:grid; gap:10px; }
.supplied-artwork-fields.hidden { display:none; }
.front-back-artwork-fields { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:12px; border:1px solid #c7d5dd; border-radius:12px; background:#f7fafb; }
.front-back-artwork-heading { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:14px; padding-bottom:10px; border-bottom:1px solid #dbe4e8; }
.front-back-artwork-heading>div { display:grid; gap:2px; }
.front-back-artwork-heading strong { color:var(--ink); font-size:13px; }
.front-back-artwork-heading small { color:var(--muted); font-size:11px; font-weight:650; }
.front-back-artwork-fields .artwork-field { min-width:0; margin:0; padding:12px; background:#fff; }
.same-side-artwork-button { display:flex; align-items:center; justify-content:center; gap:8px; width:auto; min-height:38px; margin:0; padding:8px 12px; border:1px solid #b8c8d2; border-radius:9px; color:var(--blue); background:#fff; font-size:12px; font-weight:900; }
.same-side-artwork-button span { display:grid; place-items:center; width:22px; height:22px; border:2px solid #9aabb6; border-radius:6px; color:transparent; background:#f7f9fa; }
.same-side-artwork-button.selected { border-color:#78b887; color:#256b36; background:#eff9f1; }
.same-side-artwork-button.selected span { border-color:var(--green); color:#fff; background:var(--green); }
.back-artwork-field { border-color:#b7c9db; background:#f4f8fc; }
@media(max-width:640px){.front-back-artwork-fields{grid-template-columns:1fr}.front-back-artwork-heading{align-items:stretch;flex-direction:column}.same-side-artwork-button{width:100%}}
.accepted-artwork-types { padding:7px 9px; border-radius:7px; color:#244a2c!important; background:#edf8ee; }
.artwork-size-box { display:grid; gap:4px; margin-top:3px; padding:11px 12px; border:1px solid var(--line); border-radius:10px; background:#fff; line-height:1.35; }
.artwork-check-results { display:grid; gap:8px; }
.artwork-size-box strong { display:block; font-size:13px; }
.artwork-policy-notice { margin:12px 0; padding:14px; border:1px solid #a66a19; border-radius:10px; background:#fff8e9; color:#38280e; }
.artwork-policy-notice p { margin:7px 0; font-size:14px; }
.artwork-policy-ack { display:flex; align-items:flex-start; gap:10px; margin:12px 0; font-size:14px; line-height:1.5; }
.artwork-policy-ack input { flex:0 0 auto; width:20px; height:20px; margin-top:2px; }
.artwork-size-box span { display:block; font-size:12px; font-weight:750; }
.artwork-size-checking { color:var(--blue); border-color:#c9d9ef; background:#f1f6ff; font-weight:850; }
.artwork-size-match { color:#176b2b!important; border-color:#a9dfb5; background:#effaf1; }
.artwork-size-warning { color:#9b1c1c!important; border-color:#efaaaa; background:#fff1f1; }
.artwork-size-verify { color:var(--blue)!important; border-color:#c9d9ef; background:#f1f6ff; }
.artwork-choice { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:10px; margin:4px 0 16px; }
.artwork-choice label { display:flex; align-items:flex-start; gap:9px; padding:14px; border:1px solid var(--line); border-radius:11px; color:var(--ink); background:#fff; font-size:13px; font-weight:800; }
.artwork-choice small { display:block; margin-top:3px; color:var(--muted); font-weight:600; }
.artwork-requirement-note { display:grid; gap:4px; margin:-4px 0 16px; padding:12px 14px; border:1px solid #cfe7d1; border-radius:12px; color:#244d34; background:#f0faf2; font-size:12px; line-height:1.4; }
.artwork-requirement-note strong { color:var(--green); font-size:11px; font-weight:950; letter-spacing:.08em; text-transform:uppercase; }
.artwork-requirement-note span { font-weight:750; }
.design-brief { margin-bottom:16px; padding:18px; border:1px solid var(--line); border-radius:12px; background:#f8fafb; }
.design-brief summary { cursor:pointer; color:var(--blue); font-weight:900; }
.design-brief-fields { display:grid; gap:13px; margin-top:15px; }
.design-brief textarea { min-height:82px; resize:vertical; padding:12px; border:1px solid var(--line); border-radius:10px; }
.multi-job-builder { margin-top:18px; padding-top:18px; border-top:1px solid var(--line); }
.multi-job-intro { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:15px; }
.multi-job-intro span { color:var(--orange); font-size:11px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.multi-job-intro h3 { margin:4px 0; font-size:20px; }
.multi-job-intro p { max-width:520px; margin:0; color:var(--muted); font-size:13px; line-height:1.45; }
.multi-job-intro button { flex:0 0 auto; padding:10px 12px; border:0; border-radius:9px; color:#fff; background:var(--green); font-weight:850; }
.job-design-card { margin-bottom:15px; padding:17px; border:1px solid var(--line); border-radius:14px; background:#f8fafb; }
.quantity-emphasis { background:transparent; }
.quantity-emphasis input,.quantity-emphasis select { font-size:inherit; font-weight:inherit; }
.quantity-emphasis small { display:block; margin-top:5px; color:var(--muted); font-weight:700; }
.storefront-primary-quantity { margin-bottom:18px; padding:14px; border:1px solid #cfe7d1; border-radius:12px; }
.grid-quantity-field small { display:block; margin-top:5px; color:var(--muted); font-weight:700; }
.job-design-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; }
.job-design-heading span { color:var(--muted); font-size:10px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.job-design-heading h4 { margin:3px 0 0; font-size:18px; }
.job-design-heading small { display:block; margin-top:4px; color:var(--muted); font-size:11px; font-weight:700; }
.job-design-heading-actions { display:flex; align-items:center; gap:10px; }
.toggle-job-design { padding:7px 10px; border:1px solid var(--line); border-radius:8px; color:var(--blue); background:#fff; font-size:12px; font-weight:850; }
.remove-job-design { padding:0; border:0; color:#b03636; background:transparent; font-size:12px; font-weight:850; }
.remove-job-design:disabled { visibility:hidden; }
.job-design-card .artwork-choice { margin-top:0; }
.job-design-card.job-design-collapsed [data-job-design-body] { display:none; }
.online-designer-panel { display:grid; gap:12px; margin-bottom:16px; padding:16px; border:1px solid #b8d7c0; border-radius:12px; background:#f3faf5; }
.online-designer-panel.hidden { display:none; }
.online-designer-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.online-designer-heading strong { display:block; color:#174a28; }
.online-designer-heading small { display:block; margin-top:3px; color:var(--muted); font-weight:650; }
.online-designer-launch { flex:0 0 auto; padding:10px 14px; border:0; border-radius:9px; color:#fff; background:var(--green); font-weight:900; }
.online-designer-launch:disabled { cursor:wait; opacity:.65; }
.online-designer-status { color:#315b3d; font-size:12px; font-weight:800; }
.online-designer-status.error { color:#a52f2f; }
.online-designer-previews { display:flex; flex-wrap:wrap; gap:9px; }
.online-designer-previews:empty { display:none; }
.online-designer-previews img { width:90px; height:70px; object-fit:contain; border:1px solid var(--line); border-radius:8px; background:#fff; }
.cart-job-groups { margin-top:8px; padding:8px 10px; border-left:3px solid var(--orange); background:var(--soft); }
.cart-job-groups p strong { color:var(--ink); }
.price-panel { display:grid; gap:9px; margin-top:20px; padding:20px; border-radius:14px; color:#fff; background:var(--blue); }
.price-panel>div { display:flex; align-items:center; justify-content:space-between; gap:15px; }
.price-panel strong { font-size:30px; }
.configured-unit-price { justify-content:flex-end !important; color:#dce7f7; font-size:13px; font-weight:900; }
.price-detail { color:#dce7f7; font-size:13px; }
.add-cart-button,.checkout-button,.primary-button { width:100%; margin-top:14px; padding:14px 18px; border:0; border-radius:11px; color:#fff; background:var(--orange); font-weight:900; }
.portal-access-contact { display:block; text-align:center; text-decoration:none; }
.add-cart-button:disabled { cursor:wait; opacity:.65; }
.cart-dialog { width:min(720px,94vw); max-height:90vh; padding:30px; overflow:auto; }
.dialog-heading { display:flex; align-items:center; justify-content:space-between; margin-bottom:22px; }
.dialog-heading h2 { margin:5px 0 0; font-size:30px; }
.cart-item { display:grid; grid-template-columns:1fr auto; gap:16px; padding:17px 0; border-bottom:1px solid var(--line); }
.cart-item h3 { margin:0 0 5px; font-size:17px; }
.cart-item p { margin:3px 0; color:var(--muted); font-size:13px; }
.cart-item-price { text-align:right; }
.cart-item-price strong { display:block; font-size:18px; }
.edit-cart-item { display:block; width:100%; margin-top:9px; padding:7px 12px; border:1px solid var(--line); border-radius:10px; color:var(--blue); background:#fff; font-size:12px; font-weight:900; }
.remove-cart-item { margin-top:8px; padding:0; border:0; color:#b03636; background:transparent; font-size:12px; font-weight:800; }
.cart-summary { margin-top:22px; }
.cart-summary>div { display:flex; justify-content:space-between; font-size:21px; }
.cart-summary p { color:var(--muted); font-size:13px; line-height:1.5; }
.checkout-dialog { width:min(1120px,96vw); max-height:94vh; overflow:auto; }
.checkout-form { padding:38px; }
.website-trap { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.checkout-heading h2 { margin:6px 0 8px; font-size:34px; }
.checkout-heading>p:last-child { margin:0; color:var(--muted); }
.checkout-progress { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin:24px 0 0; }
.checkout-progress span { display:flex; align-items:center; gap:8px; padding:10px 12px; border:1px solid var(--line); border-radius:999px; color:var(--muted); background:#fff; font-size:12px; font-weight:900; }
.checkout-progress b { display:grid; place-items:center; width:22px; height:22px; border-radius:50%; color:#fff; background:var(--blue); font-size:11px; }
.checkout-progress .active { color:var(--blue); border-color:#b9d6ef; background:#f2f8fd; }
.checkout-progress .complete { color:#267a36; border-color:#c8dfcc; background:#f0faf2; }
.checkout-progress .complete b { background:var(--green); }
.checkout-error { margin:18px 0 0; padding:14px 16px; border:1px solid #f0b7b7; border-radius:11px; color:#8e2525; background:#fff0f0; font-weight:850; }
.checkout-layout { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(310px,.65fr); gap:28px; margin-top:26px; }
.checkout-fields { display:grid; gap:16px; min-width:0; }
.checkout-layout > *, .checkout-section, .checkout-section label > span { min-width:0; overflow-wrap:anywhere; }
.checkout-section { padding:21px; border:1px solid var(--line); border-radius:14px; background:#fff; }
.checkout-section h3,.checkout-summary h3 { margin:0 0 16px; }
.checkout-sms-consent { min-width:0; margin:20px 0 0; padding:16px; border:1px solid var(--line); border-radius:10px; background:#f7faf8; }
.checkout-sms-consent legend { float:left; width:100%; max-width:100%; margin:0 0 12px; padding:0; font-weight:800; }
.checkout-sms-consent legend + label { clear:both; }
.checkout-sms-consent label > span { flex:1 1 0; min-width:0; }
.checkout-section .checkout-sms-consent label { display:flex; align-items:flex-start; gap:12px; color:var(--ink); line-height:1.6; font-weight:500; }
.checkout-section .checkout-sms-consent input[type=checkbox] { width:20px; height:20px; min-width:20px; flex:0 0 20px; margin:3px 0 0; padding:0; accent-color:#277137; }
.checkout-sms-consent p { font-size:13px; line-height:1.6; }
.checkout-sms-consent a { text-decoration:underline; }
.sms-privacy-notice { margin:24px auto; max-width:1000px; padding:24px; line-height:1.7; background:#fff; border:1px solid var(--line); border-radius:12px; }
.checkout-section label { display:grid; gap:7px; color:var(--muted); font-size:12px; font-weight:850; }
.checkout-section input,.checkout-section select,.checkout-section textarea { width:100%; padding:12px; border:1px solid var(--line); border-radius:10px; color:var(--ink); background:#fff; }
#checkoutPickupLocation { -webkit-appearance:none; appearance:none; padding-right:44px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' fill='none' stroke='%23172222' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; background-size:16px 16px; }
@media (forced-colors:active) { #checkoutPickupLocation { -webkit-appearance:auto; appearance:auto; background-image:none; } }
.checkout-section textarea { min-height:92px; resize:vertical; }
.checkout-field-help { margin:8px 0 16px; color:var(--muted); font-size:13px; line-height:1.5; }
.checkout-field-help+label { margin-top:2px; }
.checkout-payment-choice { display:grid; gap:10px; }
.checkout-payment-choice label { display:flex; align-items:flex-start; gap:10px; padding:13px; border:1px solid var(--line); border-radius:10px; color:var(--ink); background:#fff; }
.checkout-payment-choice input { width:auto; margin-top:3px; }
.checkout-payment-choice span { font-weight:850; }
.checkout-payment-choice small { display:block; margin-top:3px; color:var(--muted); font-weight:600; line-height:1.4; }
.checkout-review-section { border-color:#b9d6ef; background:#f7fbff; }
.checkout-review-card { display:grid; gap:10px; }
.checkout-review-card>div { padding:12px; border:1px solid #dce8f4; border-radius:10px; background:#fff; }
.checkout-review-card span,.checkout-review-card small { display:block; color:var(--muted); font-size:12px; line-height:1.45; }
.checkout-review-card span { margin-bottom:4px; color:var(--blue); font-size:9px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.checkout-review-card strong { display:block; margin-bottom:2px; color:var(--ink); }
.checkout-artwork-preflight { display:grid; gap:14px; margin-top:18px; padding-top:18px; border-top:1px solid #cbddeb; }
.checkout-artwork-preflight-heading span { display:block; margin-bottom:4px; color:var(--orange); font-size:10px; font-weight:900; letter-spacing:.12em; }
.checkout-artwork-preflight-heading h3 { margin:0 0 5px; }
.checkout-artwork-preflight-heading p { margin:0; color:var(--muted); font-size:13px; line-height:1.5; }
.checkout-artwork-preflight-items { display:grid; gap:12px; }
.checkout-artwork-preflight-card { display:grid; grid-template-columns:minmax(210px,.8fr) minmax(0,1.2fr); gap:16px; padding:14px; border:1px solid #c8dfcc; border-radius:13px; background:#fff; transition:border-color .16s ease,box-shadow .16s ease,background .16s ease; }
.checkout-artwork-preflight-card.approved { border-color:#72bd7d; background:#fbfffc; box-shadow:inset 4px 0 0 var(--green); }
.checkout-artwork-preflight-card .checkout-artwork-preview { min-width:0; }
.checkout-artwork-preflight-details { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; min-width:0; }
.checkout-artwork-preflight-details>span { color:var(--green); font-size:10px; font-weight:900; letter-spacing:.1em; }
.checkout-artwork-preflight-details h4 { margin:5px 0; font-size:17px; }
.checkout-artwork-preflight-details p,.checkout-artwork-preflight-details small { margin:0; color:var(--muted); line-height:1.45; }
.checkout-artwork-preflight-details small { display:block; margin-top:6px; }
.checkout-artwork-preflight-actions { display:flex; flex-wrap:wrap; gap:9px; margin-top:12px; }
.checkout-artwork-preflight-actions button { min-height:40px; }
.checkout-artwork-preflight-actions .checkout-artwork-approve-button { width:auto; margin:0; padding:10px 13px; border-radius:9px; }
.checkout-artwork-preflight-error { padding:14px; border:1px solid #efb27f; border-radius:11px; color:#7a3510; background:#fff4ea; font-size:13px; font-weight:800; line-height:1.5; }
.checkout-artwork-preflight-loading { padding:18px; border:1px dashed #b9c9d7; border-radius:11px; color:var(--muted); background:#fff; text-align:center; font-weight:800; }
.checkout-artwork-confirmation-summary { display:grid; gap:3px; margin-top:2px; padding:12px 14px; border:1px solid #efc987; border-radius:10px; color:#744308; background:#fff9eb; }
.checkout-artwork-confirmation-summary strong { font-size:13px; }
.checkout-artwork-confirmation-summary span { color:#755f3f; font-size:12px; line-height:1.4; }
.checkout-artwork-confirmation-summary.complete { border-color:#9dd3a5; color:#1e6730; background:#eef9f0; }
.checkout-artwork-confirmation-summary.complete span { color:#486252; }
.checkout-confirm-line { display:flex!important; grid-template-columns:none!important; align-items:flex-start; gap:10px!important; margin-top:14px; padding:13px; border:1px solid #c8dfcc; border-radius:10px; color:var(--ink)!important; background:#f0faf2; }
.checkout-confirm-line input { width:auto!important; margin-top:2px; }
.checkout-grid { display:grid; grid-template-columns:1fr 1fr; gap:13px; }
.checkout-grid .span-two { grid-column:1/-1; }
.checkout-account-customer { display:grid; gap:13px; margin-bottom:15px; padding:15px; border:1px solid #b9d6ef; border-radius:12px; background:#f2f8fd; }
.checkout-account-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.checkout-account-heading span { display:block; color:var(--blue); font-size:9px; font-weight:900; letter-spacing:.08em; }
.checkout-account-heading strong { display:block; margin-top:3px; font-size:17px; }
.checkout-new-contact { padding-top:13px; border-top:1px solid #cbddeb; }
.checkout-new-contact-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:12px; }
.checkout-saved-address { margin:12px 0; }
.checkout-address { margin-top:15px; padding-top:15px; border-top:1px solid var(--line); }
.checkout-summary { position:sticky; top:0; align-self:start; padding:22px; border-radius:16px; color:#fff; background:var(--blue); }
.checkout-summary-item { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; padding:12px 0; border-bottom:1px solid rgba(255,255,255,.18); }
.checkout-summary-item > div { min-width:0; overflow-wrap:anywhere; }
.checkout-total { flex-wrap:wrap; }
.checkout-summary-item strong { display:block; }
.checkout-summary-item span,.checkout-summary>p { color:#dce7f7; font-size:12px; }
.checkout-coupon { display:grid; gap:12px; min-width:0; margin:24px 0 8px; padding:18px; border:1px solid rgba(255,255,255,.25); border-radius:12px; background:rgba(255,255,255,.07); }
.checkout-coupon label { font-size:14px; font-weight:800; line-height:1.4; }
.checkout-coupon input { display:block; width:100%; min-width:0; min-height:48px; padding:12px 14px; border:1px solid var(--line); border-radius:10px; color:var(--ink); background:#fff; font:inherit; font-size:16px; line-height:1.4; }
.checkout-coupon input::placeholder { color:var(--muted); opacity:1; }
.checkout-coupon-actions { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; }
.checkout-coupon-actions .primary-button,.checkout-coupon-actions .secondary-action { min-width:0; min-height:48px; margin:0; padding:12px; font-size:14px; line-height:1.4; border-radius:10px; }
.checkout-coupon-actions .secondary-action { color:#fff; border-color:rgba(255,255,255,.4); background:transparent; }
.checkout-coupon-actions .secondary-action:hover { background:rgba(255,255,255,.12); }
.checkout-coupon :is(input,button):focus-visible { outline:3px solid #fff; outline-offset:3px; }
.checkout-coupon #checkoutCouponStatus { margin:0; color:#e5edf8; font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
.checkout-coupon #checkoutCouponStatus:empty { display:none; }
@media (max-width:380px) {
  .checkout-coupon { padding:14px; }
  .checkout-coupon-actions { grid-template-columns:1fr; }
}
.checkout-production-date { display:block; margin-top:6px; color:#bfe8c7; font-size:11px; font-weight:800; line-height:1.35; }
.product-fulfillment-availability { display:grid; grid-template-columns:auto 1fr; gap:10px; align-items:center; margin:12px 0 10px; padding:11px 13px; border:1px solid #cdebd0; border-radius:12px; color:#244d34; background:#f0faf2; }
.product-fulfillment-availability strong { color:var(--green); font-size:10px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.product-fulfillment-availability span { font-size:13px; font-weight:850; line-height:1.4; }
.product-fulfillment-availability.no-shipping { border-color:#ffd2b8; color:#7a3510; background:#fff5ed; }
.product-fulfillment-availability.no-shipping strong { color:var(--orange); }
.product-oversize-notice { display:block; margin:12px 0 16px; padding:13px 15px; border:1px solid #ffd08a; border-radius:14px; color:#7a4100; background:#fff7e8; font-size:13px; font-weight:800; line-height:1.45; }
.product-oversize-notice::before { content:"Oversize panel notice"; display:block; margin-bottom:4px; color:var(--orange); font-size:10px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.cart-oversize-notice { display:inline-block; margin:8px 0 2px; padding:8px 10px; border-radius:9px; color:#7a4100; background:#fff7e8; font-size:12px; font-weight:800; }
.checkout-oversize-note { display:block; margin-top:6px; color:#ffe5ad!important; font-size:11px; font-weight:800; line-height:1.35; }
.cart-fulfillment-notice { display:inline-block; margin:8px 0 2px; padding:8px 10px; border-radius:9px; color:#7a3510; background:#fff0e7; font-size:12px; font-weight:800; }
.checkout-fulfillment-note { display:block; margin-top:6px; color:#ffd6bd!important; font-size:11px; font-weight:800; line-height:1.35; }
.checkout-total { display:flex; justify-content:space-between; gap:12px; padding:20px 0 8px; font-size:20px; }
.checkout-total strong { font-size:25px; }
.checkout-grand-total { margin-top:8px; padding-top:17px; border-top:2px solid rgba(255,255,255,.35); color:#fff; font-weight:900; }
.fulfillment-notice { margin-top:10px; padding:11px 12px; border-radius:8px; color:#7a3510; background:#fff0e7; font-size:12px; font-weight:750; }
.checkout-summary .checkout-button { background:var(--orange); }
.checkout-step-actions { display:grid; grid-template-columns:auto 1fr; gap:10px; align-items:center; margin-top:16px; }
.checkout-step-actions .checkout-button { margin-top:0; }
.checkout-step-actions .secondary-action { border-color:rgba(255,255,255,.28); color:#fff; background:rgba(255,255,255,.12); }
.checkout-step-actions .secondary-action[hidden] { display:none; }
@media (max-width:720px) {
  .checkout-artwork-preflight-card { grid-template-columns:1fr; }
}
.checkout-success { width:min(920px,94vw); padding:50px 42px; text-align:center; }
.success-mark { display:grid; place-items:center; width:68px; height:68px; margin:0 auto 20px; border-radius:50%; color:#fff; background:var(--green); font-size:34px; font-weight:900; }
.checkout-success h2 { margin:8px 0 12px; font-size:34px; }
.checkout-success>p:not(.eyebrow) { color:var(--muted); line-height:1.65; }
.checkout-success-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:22px auto 0; max-width:760px; }
.checkout-success-summary>div { padding:14px; border:1px solid var(--line); border-radius:12px; background:#fff; }
.checkout-success-summary span { display:block; color:var(--muted); font-size:10px; font-weight:900; text-transform:uppercase; }
.checkout-success-summary strong { display:block; margin-top:4px; color:var(--blue); }
.checkout-confirmation-box { display:grid; gap:5px; max-width:760px; margin:18px auto 0; padding:16px 18px; border:1px solid #bddbc2; border-radius:13px; color:#244d34; background:#f1fbf3; text-align:left; }
.checkout-confirmation-box strong,.checkout-confirmation-box span { display:block; }
.checkout-confirmation-box strong { font-size:15px; }
.checkout-confirmation-box span { color:#52645a; font-size:13px; line-height:1.55; }
.checkout-success-actions { display:flex; justify-content:center; gap:10px; margin-top:24px; }
.checkout-success-actions .primary-button { width:auto; margin:0; }
.checkout-stripe-payment { margin:28px 0; padding:24px; border:1px solid #bdd2ef; border-radius:15px; background:#f5f9ff; text-align:left; }
.checkout-stripe-heading { text-align:center; }
.checkout-stripe-heading h3 { margin:5px 0; font-size:24px; }
.checkout-stripe-heading>p:last-child { margin:0 0 20px; color:var(--muted); line-height:1.5; }
#checkoutStripeElement { padding:16px; border:1px solid var(--line); border-radius:11px; background:#fff; }
.checkout-stripe-payment .checkout-button { max-width:360px; margin:18px auto 0; display:block; }
.checkout-payment-success { text-align:center; }
.checkout-payment-success .success-mark { width:54px; height:54px; margin-bottom:12px; font-size:26px; }
.checkout-payment-success h3 { margin:5px 0; color:var(--green); }
.checkout-payment-success p:last-child { color:var(--muted); font-size:12px; }
.checkout-artwork-review { margin-top:30px; padding-top:28px; border-top:1px solid var(--line); text-align:left; }
.checkout-artwork-review-heading { text-align:center; }
.checkout-artwork-review-heading h3 { margin:5px 0; font-size:24px; }
.checkout-artwork-review-heading>p:last-child { margin:0 0 18px; color:var(--muted); }
#checkoutArtworkReviewItems { display:grid; gap:16px; }
.checkout-artwork-card { display:grid; grid-template-columns:230px 1fr; gap:20px; padding:18px; border:1px solid var(--line); border-radius:15px; background:#fff; box-shadow:0 8px 24px rgba(17,41,71,.07); }
.checkout-artwork-preview { display:grid; place-items:center; min-height:240px; overflow:hidden; border-radius:11px; background:var(--soft); }
.checkout-artwork-preview img,.checkout-artwork-preview embed,.checkout-artwork-preview iframe,.checkout-artwork-preview canvas { width:100%; height:260px; object-fit:contain; border:0; }
.artwork-review-media-shell { display:grid; gap:9px; width:100%; padding:10px; }
.artwork-review-media-shell img,.artwork-review-media-shell iframe,.artwork-review-media-shell canvas { width:100%; min-height:250px; border-radius:9px; background:#fff; box-shadow:inset 0 0 0 1px var(--line); }
.artwork-review-media-shell canvas { display:block; width:auto; height:auto; min-height:0; max-width:100%; max-height:300px; margin:auto; object-fit:contain; }
.artwork-review-media-shell small { justify-self:center; color:var(--muted); font-size:12px; text-align:center; }
.artwork-review-media-shell a { justify-self:center; padding:8px 12px; border-radius:8px; color:#fff; background:var(--green); font-size:12px; font-weight:900; text-decoration:none; }
.two-sided-artwork-review { grid-template-columns:minmax(0,1fr); }
.two-sided-artwork-review .checkout-artwork-preview { align-items:stretch; min-height:0; }
.artwork-review-sides { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 10px; width:100%; padding:10px; }
.artwork-review-side { display:grid; grid-row:span 2; grid-template-rows:subgrid; min-width:0; overflow:hidden; border:1px solid var(--line); border-radius:10px; background:#fff; }
.artwork-review-side-label { display:grid; gap:2px; padding:9px 10px; border-bottom:1px solid var(--line); background:#f6f9fb; }
.artwork-review-side-label span { color:var(--orange); font-size:9px; font-weight:950; letter-spacing:.1em; }
.artwork-review-side-label strong { overflow:hidden; color:var(--ink); font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.artwork-review-side-label small { color:var(--green); font-size:9px; font-weight:850; }
.artwork-review-side .artwork-review-media-shell { padding:7px; align-content:start; }
/* Intrinsic image/PDF proportions must win over generic preview frame sizes. */
.artwork-review-media-shell img,.artwork-review-media-shell canvas { display:block; width:auto; height:auto; min-height:0; max-width:100%; max-height:300px; margin:0 auto; object-fit:contain; }
.artwork-review-file { display:grid; gap:8px; width:100%; padding:20px; text-align:center; }
.artwork-review-file span { justify-self:center; padding:7px 10px; border-radius:8px; color:#fff; background:var(--blue); font-size:12px; font-weight:900; }
.artwork-review-file strong,.artwork-review-file small { display:block; }
.artwork-review-file small { color:var(--muted); line-height:1.45; }
.artwork-review-file a { justify-self:center; padding:9px 13px; border-radius:8px; color:#fff; background:var(--green); font-size:12px; font-weight:900; text-decoration:none; }
.artwork-review-file-missing { color:#7e3e18; background:#fff4e9; }
.artwork-review-file-alert { display:grid; gap:3px; margin-top:13px; padding:10px 12px; border:1px solid #efb88f; border-radius:9px; color:#7e3e18; background:#fff4e9; }
.artwork-review-file-alert strong { font-size:12px; }
.artwork-review-file-alert span { font-size:11px; font-weight:650; }
.artwork-confirmed-receipt { display:grid; gap:5px; margin-top:13px; padding:12px 14px; border:1px solid #b8ddbf; border-radius:10px; color:#1e6730; background:#eef9f0; text-align:left; }
.artwork-confirmed-receipt strong { font-size:14px; }
.artwork-confirmed-receipt span { color:#486252; font-size:12px; line-height:1.45; }
.checkout-artwork-details h4 { margin:8px 0 3px; font-size:19px; }
.checkout-artwork-details p,.checkout-artwork-details small { display:block; margin:3px 0; color:var(--muted); }
.checkout-artwork-details label { display:grid; gap:6px; margin-top:14px; color:var(--muted); font-size:12px; font-weight:850; }
.checkout-artwork-details textarea { min-height:76px; padding:11px; border:1px solid var(--line); border-radius:9px; resize:vertical; }
.artwork-review-status { display:inline-block; padding:5px 8px; border-radius:999px; color:#7c5a00; background:#fff3c7; font-size:10px; font-weight:900; text-transform:uppercase; }
.artwork-review-status.status-Approved { color:#176b2b; background:#e1f6e5; }
.artwork-review-status.status-Rejected { color:#9a2929; background:#ffe4e4; }
.checkout-artwork-replace-help { margin-top:14px; color:var(--muted); font-size:12px; line-height:1.45; }
.checkout-artwork-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:9px; margin-top:12px; }
.checkout-artwork-actions .primary-button { width:auto; margin:0; padding:10px 13px; }
.checkout-artwork-actions .artwork-replace-button { margin-right:auto; color:var(--green); border-color:#9dcca6; background:#f1fbf3; }
.artwork-review-error { padding:15px; border-radius:10px; color:#922c2c; background:#fff0f0; text-align:center; }
.direct-artwork-replacement-dialog { width:min(920px,95vw); max-height:94vh; padding:28px; overflow:auto; border-radius:20px; }
.direct-artwork-replacement-content { display:grid; gap:18px; }
.direct-artwork-heading { padding-right:44px; }
.direct-artwork-heading h2 { margin:5px 0 8px; font-size:clamp(28px,5vw,44px); color:var(--blue); }
.direct-artwork-heading p:last-child { margin:0; color:var(--muted); }
.artwork-request-explanation { padding:16px 18px; border-left:5px solid var(--orange); border-radius:10px; background:#fff5ec; }
.artwork-request-explanation span { color:#9a4510; font-size:11px; font-weight:950; letter-spacing:.08em; }
.artwork-request-explanation p { margin:7px 0 0; line-height:1.55; white-space:pre-wrap; }
.direct-artwork-success { max-width:640px; margin:auto; padding:42px 20px; text-align:center; }
.direct-artwork-success h2 { margin:6px 0 10px; color:var(--blue); font-size:clamp(28px,5vw,42px); }
.direct-artwork-success>p:not(.eyebrow) { color:var(--muted); line-height:1.65; }
.direct-artwork-success .primary-button,.direct-artwork-success .secondary-action { width:auto; margin:18px auto 0; }
.portal-artwork-requests { display:grid; gap:12px; margin-bottom:20px; padding:20px; border:1px solid #f0b58d; border-radius:16px; background:#fff8f2; }
.portal-artwork-requests>div>h3 { margin:4px 0; color:var(--blue); }
.portal-artwork-requests>div>span { color:var(--muted); }
.portal-artwork-requests article { display:grid; grid-template-columns:1fr auto; gap:18px; align-items:center; padding:16px; border:1px solid #efd7c7; border-radius:12px; background:#fff; }
.portal-artwork-requests article strong,.portal-artwork-requests article span { display:block; }
.portal-artwork-requests article span { margin-top:3px; color:var(--muted); font-size:12px; }
.portal-artwork-requests article p { margin:9px 0 0; line-height:1.5; white-space:pre-wrap; }
.portal-artwork-requests article .primary-button { width:auto; margin:0; }
.store-editor-dialog { width:min(900px,94vw); max-height:92vh; padding:30px; overflow:auto; }
.store-editor-dialog h2 { margin:5px 0 0; }
.editor-section { margin-top:20px; padding-top:20px; border-top:1px solid var(--line); }
.editor-section h3 { margin:0 0 14px; }
.editor-section label { display:grid; gap:7px; margin-bottom:12px; color:var(--muted); font-size:12px; font-weight:800; }
.editor-section input,.editor-section textarea,.editor-section select { width:100%; padding:11px 12px; border:1px solid var(--line); border-radius:9px; background:#fff; }
.editor-section textarea { min-height:88px; resize:vertical; }
.editor-grid { display:grid; grid-template-columns:2fr 2fr 1fr 1fr 1fr; gap:12px; }
.secondary-action { padding:10px 13px; border:1px solid var(--line); border-radius:9px; color:var(--blue); background:#fff; font-weight:800; }
.editor-section-heading { display:grid; grid-template-columns:1fr 170px auto; gap:10px; align-items:end; }
.editor-section-heading p { margin:4px 0 0; color:var(--muted); font-size:13px; }
.editor-block-list { display:grid; gap:10px; margin-top:15px; }
.editor-block-row { display:grid; grid-template-columns:auto 1fr auto; gap:10px; align-items:center; padding:12px; border:1px solid var(--line); border-radius:11px; background:var(--soft); }
.editor-block-row strong { display:block; }
.editor-block-row small { color:var(--muted); }
.block-order-buttons { display:flex; gap:5px; }
.block-order-buttons button,.remove-block { width:32px; height:32px; border:1px solid var(--line); border-radius:8px; background:#fff; }
.remove-block { color:#a52d2d; }
.editor-block-fields { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.editor-block-fields label { margin:0; }
.editor-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:24px; }
.editor-actions .primary-button { width:auto; margin:0; }
.account-dialog { width:min(1180px,96vw); height:min(880px,94vh); max-height:94vh; padding:0; overflow:auto; border-radius:22px; background:#f6f8f9; }
.account-dialog:has(> .portal-auth-grid:not(.hidden)) { width:min(1000px,96vw); height:fit-content; max-height:94vh; }
.account-dialog-heading { position:sticky; top:0; z-index:4; padding:24px 28px; border-bottom:1px solid var(--line); background:#fff; }
.account-dialog-heading h2 { margin:3px 0 8px; font-size:clamp(24px,3vw,32px); }
.account-dialog>.customer-login-form,.account-dialog>.portal-dashboard,.account-dialog>.account-portal-intro,.account-dialog>.portal-auth-grid,.account-dialog>.portal-loading { width:min(1040px,calc(100% - 48px)); margin-left:auto; margin-right:auto; }
.account-session-pill { display:inline-flex; align-items:center; width:max-content; padding:7px 11px; border-radius:999px; color:#8a5d08; background:#fff4d6; font-size:12px; font-weight:950; }
.account-session-pill.signed-in { color:#1f7330; background:#e9f8ec; }
.account-portal-intro { margin-top:18px; }
.account-portal-intro.signed-in { display:none; }
.account-portal-intro p { margin:0; color:var(--muted); font-size:16px; line-height:1.6; }
.portal-loading { display:grid; justify-items:center; gap:9px; margin-top:24px; padding:28px; border:1px solid #dfe8ee; border-radius:18px; background:#fff; box-shadow:0 12px 28px rgba(31,48,59,.06); text-align:center; }
.portal-loading strong { color:var(--blue); font-size:22px; }
.portal-loading span { color:var(--muted); font-weight:750; }
.portal-loading .storefront-loader-bar { width:180px; }
.customer-login-form { width:min(480px,calc(100% - 48px)); margin:24px auto 0; padding:24px; border:1px solid var(--line); border-radius:18px; background:#fff; box-shadow:0 12px 28px rgba(31,48,59,.06); }
.portal-auth-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px; align-items:stretch; margin-top:24px; padding-bottom:28px; }
.portal-auth-grid .customer-login-form { width:100%; margin:0; }
.portal-choice-label { display:block; margin-bottom:10px; color:var(--blue); font-size:11px; font-weight:900; letter-spacing:.08em; }
.portal-guest-card { border-color:#cddfd2; background:linear-gradient(135deg,#fff,#f3fbf5); }
.portal-guest-card .primary-button { width:100%; }
.portal-guest-card small,.portal-account-request small { display:block; margin-top:12px; color:var(--muted); line-height:1.5; }
.portal-text-button { display:block; margin-top:14px; padding:0; border:0; background:transparent; color:var(--blue); font:inherit; font-size:14px; font-weight:800; text-decoration:underline; text-underline-offset:3px; text-align:left; cursor:pointer; }
.portal-trade-invitation { margin-top:22px; padding-top:18px; border-top:1px solid var(--line); font-size:14px; }
.portal-trade-invitation .portal-text-button { margin-top:8px; }
.portal-trade-invitation .portal-trade-button { margin-top:0; background:var(--green); }
.portal-trade-invitation small { text-align:center; margin-top:8px; }
.portal-account-request label { align-content:start; }
.portal-account-request select { width:100%; min-width:0; height:41px; align-self:start; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:#fff; font:inherit; }
.portal-account-request input[type="file"] { width:100%; min-width:0; padding:6px; background:#fff; color:var(--muted); font:inherit; }
.portal-account-request input[type="file"]::file-selector-button { margin-right:12px; padding:10px 16px; border:0; border-radius:8px; background:var(--green); color:#fff; font:inherit; font-weight:850; cursor:pointer; }
.portal-account-request input[type="file"]::file-selector-button:hover { background:#358b38; }
.portal-account-request input[type="file"]:focus-visible { outline:2px solid var(--blue); outline-offset:2px; }
.portal-account-request input[type="file"]:disabled::file-selector-button { opacity:.6; cursor:default; }
.portal-auth-grid.requesting-access > :not(.portal-account-request) { display:none; }
.portal-account-request { grid-column:1/-1; }
.portal-account-request fieldset { margin:0; padding:0; border:0; min-width:0; }
.portal-account-request textarea { width:100%; padding:12px; border:1px solid var(--line); border-radius:10px; font:inherit; resize:vertical; }
.portal-request-actions { display:flex; flex-wrap:wrap; align-items:center; gap:16px; }
.portal-request-actions .portal-text-button { margin:0; }
.customer-signup-form { border-color:#cddfd2; background:linear-gradient(135deg,#fff,#f3fbf5); }
.portal-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px 12px; }
.portal-form-grid .wide { grid-column:1/-1; }
.portal-check { display:flex !important; grid-template-columns:auto 1fr; align-items:center; gap:10px !important; margin-top:14px !important; padding:12px; border:1px solid #dce8df; border-radius:12px; background:#f8fbf8; color:var(--ink) !important; }
.portal-check input { width:auto; }
.trade-request-fields { display:grid; gap:10px; margin-top:12px; padding:14px; border:1px solid #cfe4d5; border-radius:14px; background:#edf8ef; }
.trade-request-fields small { color:var(--muted); line-height:1.5; }
.customer-login-form h3 { margin:0 0 4px; font-size:25px; }
.customer-login-form>p { color:var(--muted); line-height:1.6; }
.customer-login-form label { display:grid; gap:7px; margin:12px 0; color:var(--muted); font-size:12px; font-weight:850; }
.customer-login-form input { padding:12px; border:1px solid var(--line); border-radius:10px; }
.portal-error { padding:12px; border-radius:9px; color:#8e2525; background:#fff0f0; }
.portal-dashboard { margin-top:24px; padding-bottom:34px; }
.portal-welcome { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:24px; border-radius:18px; color:#fff; background:linear-gradient(135deg,var(--blue),#245fa8); box-shadow:0 16px 34px rgba(26,64,124,.18); }
.portal-welcome span { color:#dce7f7; font-size:12px; }
.portal-welcome h3 { margin:3px 0 0; font-size:26px; }
.portal-tabs { display:flex; gap:3px; margin:20px 0; overflow-x:auto; overflow-y:hidden; padding:7px; border:1px solid var(--line); border-radius:999px; background:#fff; scrollbar-width:thin; }
.portal-tabs button { flex:0 0 auto; padding:11px 10px; border:0; border-radius:999px; color:var(--muted); background:transparent; font-weight:900; white-space:nowrap; }
.portal-tabs button.active { color:#fff; background:var(--orange); }
.portal-summary-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.portal-summary-grid>div { padding:17px; border:1px solid var(--line); border-radius:12px; background:#fff; }
.portal-summary-grid span,.portal-summary-grid small { display:block; color:var(--muted); font-size:12px; }
.portal-summary-grid strong { display:block; margin:5px 0; font-size:24px; }
.portal-settings-banner { margin:0 0 14px; padding:13px 16px; border:1px solid #f3c27a; border-radius:12px; color:#794709; background:#fff7e9; font-weight:800; }
.portal-settings-banner.success { border-color:#a9d8ae; color:#236d2d; background:#f0fbf1; }
.portal-settings-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; align-items:start; }
.portal-settings-card { padding:22px; border:1px solid var(--line); border-radius:16px; background:#fff; box-shadow:0 8px 22px rgba(26,64,124,.05); }
.portal-settings-card.portal-settings-addresses { grid-column:1/-1; }
.portal-settings-card hr { margin:22px 0; border:0; border-top:1px solid var(--line); }
.portal-settings-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:16px; }
.portal-settings-heading span { display:block; color:var(--green); font-size:11px; font-weight:950; letter-spacing:.12em; }
.portal-settings-heading h4 { margin:4px 0 0; font-size:20px; }
.portal-settings-form { display:grid; gap:12px; }
.portal-settings-form label { display:grid; gap:6px; color:var(--muted); font-size:12px; font-weight:900; }
.portal-settings-form input { width:100%; min-height:46px; padding:11px 13px; border:1px solid var(--line); border-radius:10px; color:var(--ink); background:#fff; font:inherit; }
.portal-settings-form input:focus { outline:3px solid rgba(26,64,124,.12); border-color:var(--blue); }
.portal-settings-form>.primary-button,.portal-settings-actions .primary-button { width:auto; min-width:140px; margin:0; justify-self:start; }
.portal-settings-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.portal-settings-help { margin:0; color:var(--muted); font-size:12px; line-height:1.5; }
.portal-settings-message { padding:10px 12px; border-radius:9px; color:#236d2d; background:#effaf0; font-size:13px; font-weight:800; }
.portal-settings-message.error { color:#a52323; background:#fff0f0; }
.portal-settings-list { display:grid; gap:9px; }
.portal-settings-list article { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:13px 14px; border:1px solid var(--line); border-radius:11px; background:var(--soft); }
.portal-settings-list article strong,.portal-settings-list article span { display:block; }
.portal-settings-list article span { margin-top:4px; color:var(--muted); font-size:12px; }
.portal-settings-list article>div:last-child { display:flex; gap:6px; flex:none; }
.portal-settings-list article button { padding:7px 9px; border:0; color:var(--blue); background:transparent; font-weight:900; cursor:pointer; }
.portal-settings-list article button.danger-link { color:#ae2e2e; }
.portal-settings-list article button:disabled { opacity:.45; cursor:not-allowed; }
.portal-settings-editor:not(:empty) { margin-top:14px; padding:16px; border:1px solid #b9d5bd; border-radius:12px; background:#f3faf4; }
.portal-settings-actions { display:flex; gap:8px; align-items:center; }
.portal-record-list { display:grid; gap:10px; }
.portal-record { padding:17px; border:1px solid var(--line); border-radius:12px; background:#fff; }
.portal-record { cursor:pointer; transition:.18s ease; }
.portal-record:hover { transform:translateY(-1px); border-color:#9db7d6; box-shadow:0 8px 22px rgba(26,64,124,.08); }
.portal-record-layout { display:grid; grid-template-columns:1fr; gap:14px; align-items:start; }
.portal-record.has-thumbnails .portal-record-layout { grid-template-columns:auto 1fr; }
.portal-record-main { min-width:0; }
.portal-record-thumbnails { display:grid; grid-template-columns:repeat(2,58px); gap:7px; }
.portal-record-thumb,.portal-record-proof-placeholder,.portal-job-thumb { display:grid; place-items:center; width:58px; height:58px; overflow:hidden; border:1px solid var(--line); border-radius:10px; background:var(--soft); }
.portal-record-thumb img,.portal-job-thumb img { width:100%; height:100%; object-fit:contain; background:#fff; }
.portal-pdf-thumbnail-shell,.portal-image-thumbnail-shell { display:grid; place-items:center; width:100%; height:100%; overflow:hidden; background:#fff; }
.portal-pdf-thumbnail,.portal-image-thumbnail { display:block; max-width:100%; max-height:100%; background:#fff; }
.portal-image-thumbnail { width:100%; height:100%; object-fit:contain; }
.portal-pdf-thumbnail-shell .portal-record-proof-placeholder,.portal-image-thumbnail-shell .portal-record-proof-placeholder { width:100%; height:100%; border:0; border-radius:0; }
.portal-record-proof-placeholder { padding:6px; color:var(--blue); text-align:center; }
.portal-record-proof-placeholder span { display:block; font-size:11px; font-weight:950; }
.portal-record-proof-placeholder small { display:block; max-width:100%; overflow:hidden; color:var(--muted); font-size:8px; line-height:1.15; text-overflow:ellipsis; }
.portal-record-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:12px; }
.portal-record-fulfillment { display:flex; flex-wrap:wrap; align-items:stretch; gap:8px; margin-top:12px; }
.portal-record-fulfillment>span { color:var(--muted); font-size:11px; font-weight:850; }
.portal-fulfillment { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:12px; padding:11px 13px; border:1px solid #c9d7e6; border-radius:10px; background:#f4f7fb; }
.portal-fulfillment span,.portal-fulfillment strong,.portal-fulfillment small { display:block; }
.portal-fulfillment span { color:var(--muted); font-size:10px; font-weight:850; }
.portal-fulfillment strong { margin-top:2px; color:var(--blue); font-size:13px; }
.portal-fulfillment small { color:var(--muted); font-size:11px; }
.portal-fulfillment.ready { border-color:#abd6b1; background:#eff9f1; }
.portal-fulfillment.ready strong,.portal-fulfillment.complete strong { color:#237832; }
.portal-fulfillment.moving { border-color:#f2c284; background:#fff7e9; }
.portal-fulfillment.moving strong { color:#94530b; }
.portal-fulfillment.complete { border-color:#b9d8bd; background:#f4faf5; }
.portal-fulfillment.compact { display:flex; flex-direction:column; align-items:stretch; justify-content:center; gap:6px; box-sizing:border-box; width:220px; max-width:100%; min-width:0; min-height:64px; margin:0; padding:10px 14px; border-radius:8px; border-left-width:3px; }
.portal-fulfillment.compact span { font-size:11px; line-height:1.4; font-weight:650; }
.portal-fulfillment.compact strong { margin-top:3px; font-size:14px; line-height:1.4; }
.portal-fulfillment.compact div,.portal-fulfillment.compact small { min-width:0; overflow-wrap:anywhere; }
.portal-fulfillment.compact small { margin:0; font-size:11px; line-height:1.4; }
.portal-record-actions .primary-button,.portal-record-reorder-button { width:auto; min-width:112px; max-width:130px; margin:0; padding:10px 14px; border-radius:9px; }
.portal-transaction-dialog { width:min(900px,94vw); max-height:92vh; padding:28px; border:0; border-radius:18px; overflow:auto; }
.portal-transaction-heading { display:flex; justify-content:space-between; gap:20px; padding-bottom:18px; border-bottom:3px solid var(--blue); }
.portal-transaction-heading h2 { margin:4px 0; }
.portal-detail-lines { display:grid; gap:10px; margin-top:20px; }
.portal-detail-line { display:grid; grid-template-columns:1fr auto; gap:18px; padding:16px; border:1px solid var(--line); border-radius:12px; }
.portal-detail-line h4 { margin:0 0 6px; }
.portal-detail-line p,.portal-detail-line small { display:block; margin:4px 0; color:var(--muted); }
.portal-line-actions { display:grid; gap:10px; align-content:start; justify-items:end; min-width:150px; text-align:right; }
.portal-line-actions .compact-reorder-button { display:inline-flex; justify-content:center; width:max-content; min-width:0; max-width:120px; margin:0 0 0 auto; padding:8px 12px; border-radius:8px; font-size:12px; line-height:1; white-space:nowrap; }
.portal-detail-proof { display:grid; grid-template-columns:160px 1fr; gap:14px; align-items:center; margin-top:12px; padding:12px; border-radius:10px; background:var(--soft); }
.portal-proof-thumbnail,.portal-proof-file { width:160px; height:120px; border:1px solid var(--line); border-radius:8px; background:#fff; }
.portal-proof-thumbnail { display:block; object-fit:contain; }
.portal-proof-detail-media { display:grid; place-items:center; overflow:hidden; }
.portal-proof-file { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:6px; padding:10px; text-align:center; overflow:hidden; }
.portal-proof-file span { color:var(--muted); font-size:11px; font-weight:800; letter-spacing:.08em; }
.portal-proof-file strong { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; }
.portal-proof-details strong,.portal-proof-details small { display:block; }
@media (max-width:600px) {
  .direct-artwork-replacement-dialog { padding:20px 14px; }
  .portal-artwork-requests article { grid-template-columns:1fr; }
  .portal-artwork-requests article .primary-button { width:100%; }
  .portal-detail-proof { grid-template-columns:1fr; }
  .portal-proof-thumbnail,.portal-proof-file { width:100%; max-width:240px; height:160px; }
}
.portal-detail-totals { width:min(360px,100%); margin:20px 0 0 auto; }
.portal-detail-totals div { display:flex; justify-content:space-between; padding:8px 0; border-bottom:1px solid var(--line); }
.portal-detail-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:20px; }
.portal-detail-actions .compact-reorder-button { width:auto; min-width:0; margin:0; padding:9px 15px; border-radius:8px; font-size:13px; }
.portal-record-head { display:flex; justify-content:space-between; gap:15px; }
.portal-record h4 { margin:0; font-size:17px; }
.portal-record p { margin:5px 0; color:var(--muted); font-size:13px; }
.portal-record-total { text-align:right; }
.portal-legacy-history { display:grid; gap:16px; }
.portal-legacy-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; padding:20px; border:1px solid #dbe6df; border-radius:16px; background:linear-gradient(135deg,#fff,#f1f7f3); }
.portal-legacy-heading span { color:var(--green); font-size:11px; font-weight:950; letter-spacing:.12em; }
.portal-legacy-heading h3 { margin:5px 0; font-size:24px; }
.portal-legacy-heading p { margin:0; color:var(--muted); }
.portal-legacy-heading label { display:grid; gap:6px; min-width:260px; color:var(--muted); font-size:12px; font-weight:900; }
.portal-legacy-heading input { min-height:44px; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:#fff; font:inherit; }
.legacy-portal-order { border-left:4px solid var(--green); }
.legacy-order-notice { margin-top:16px; padding:13px 15px; border:1px solid #b9d5bd; border-radius:10px; color:#235d2d; background:#f0f8f1; font-weight:800; line-height:1.45; }
.portal-record-lines { margin-top:12px; padding-top:12px; border-top:1px solid var(--line); }
.portal-job-list { display:grid; gap:10px; }
.portal-job-card { display:grid; grid-template-columns:76px 1fr; gap:14px; align-items:center; padding:15px; border:1px solid var(--line); border-radius:12px; background:#fff; }
.portal-job-thumb { width:76px; height:76px; }
.portal-job-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.portal-job-heading h4 { margin:0; color:var(--blue); font-size:17px; }
.portal-job-heading span { flex:none; padding:6px 9px; border-radius:999px; color:#176b2b; background:#e9f8ec; font-size:10px; font-weight:950; text-transform:uppercase; }
.portal-job-card p,.portal-job-card small { display:block; margin:5px 0 0; color:var(--muted); }
.portal-proof-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.portal-proof { padding:14px; border:1px solid var(--line); border-radius:12px; background:#fff; }
.portal-proof-grid-media { display:grid; place-items:center; width:100%; height:130px; overflow:hidden; border-radius:8px; background:var(--soft); }
.portal-proof-grid-media > img { width:100%; height:100%; object-fit:contain; background:#fff; }
.portal-proof-grid-media .portal-record-proof-placeholder { width:100%; height:100%; border:0; border-radius:0; }
.portal-proof strong,.portal-proof span { display:block; margin-top:7px; }
.portal-proof span { color:var(--muted); font-size:12px; }
.config-visual .product-image {
  width:100%;
  height:auto;
  aspect-ratio:1/1;
  object-fit:cover;
  background:#f3f5f6;
}
.production-estimate {
  display:flex;
  justify-content:space-between;
  gap:9px;
  margin:9px 0;
  padding:8px 9px;
  border-radius:8px;
  color:#244a2c;
  background:#edf8ee;
  font-size:9px;
}
.production-estimate span { color:#49684f; text-align:right; }
.production-estimate small { display:block; margin-top:3px; color:#6a7c6d; }
.chat-launcher {
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:50;
  padding:14px 18px;
  border:0;
  border-radius:999px;
  box-shadow:0 12px 30px rgba(17,41,71,.24);
  color:#fff;
  background:var(--blue);
  font-weight:900;
}
.store-chat-panel {
  position:fixed;
  right:24px;
  bottom:82px;
  z-index:51;
  display:grid;
  grid-template-rows:auto minmax(180px,1fr) auto;
  width:min(390px,calc(100vw - 32px));
  max-height:min(620px,calc(100vh - 115px));
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:17px;
  box-shadow:0 18px 55px rgba(17,41,71,.26);
  background:#fff;
}
.store-chat-panel.hidden { display:none; }
.store-chat-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:16px 18px;
  color:#fff;
  background:var(--blue);
}
.store-chat-heading strong,.store-chat-heading span { display:block; }
.store-chat-heading span { margin-top:3px; color:#dce7f7; font-size:12px; }
.store-chat-heading button { border:0; color:#fff; background:transparent; font-size:24px; }
.store-chat-messages { overflow:auto; padding:16px; background:#f5f7f8; }
.store-chat-messages article {
  width:82%;
  margin-bottom:11px;
  padding:10px 12px;
  border-radius:12px;
  background:#fff;
  box-shadow:0 2px 8px rgba(17,41,71,.06);
}
.store-chat-messages article.customer { margin-left:auto; color:#fff; background:var(--green); }
.store-chat-messages article p { margin:5px 0; white-space:pre-wrap; }
.store-chat-messages article small { opacity:.72; font-size:10px; }
.store-chat-empty,.store-chat-error { padding:24px 10px; color:var(--muted); text-align:center; }
.store-chat-error { color:#9b2f2f; }
#storeChatForm { display:grid; gap:9px; padding:13px; border-top:1px solid var(--line); background:#fff; }
.store-chat-contact { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
#storeChatForm input,#storeChatForm textarea { width:100%; padding:10px; border:1px solid var(--line); border-radius:9px; }
#storeChatForm textarea { min-height:70px; resize:vertical; }
#storeChatForm button { padding:11px; border:0; border-radius:9px; color:#fff; background:var(--orange); font-weight:900; }
@media (max-width:900px) {
  .header-main { flex-wrap:wrap; gap:10px 18px; padding:12px 0; }
  .header-search { order:3; flex-basis:100%; max-width:none; }
  .site-header>nav { justify-content:flex-start; }
  .store-nav-horizontal { justify-content:flex-start; overflow-x:auto; overflow-y:visible; }
  .products-flyout-panel { left:0; grid-template-columns:220px minmax(0,1fr); width:min(820px,94vw); transform:none; }
  .products-flyout-category-grid { grid-template-columns:repeat(2,minmax(150px,1fr)); }
  .store-mega-panel { left:4vw; right:4vw; grid-template-columns:1fr; }
  .store-mega-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hero { grid-template-columns:1fr; padding-top:48px; }
  .hero h1 { letter-spacing:-2.5px; }
  .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .configurator { grid-template-columns:1fr; }
  .standard-apparel-selects,.standard-apparel-decoration-grid { grid-template-columns:1fr; }
  .standard-apparel-location-row { grid-template-columns:1fr 96px 42px; }
  .checkout-layout { grid-template-columns:1fr; }
  .checkout-summary { position:static; }
  .checkout-progress { grid-template-columns:1fr 1fr; }
  .editor-grid { grid-template-columns:1fr 1fr; }
  .store-block-image { grid-template-columns:1fr; }
  .config-visual .product-image { width:min(100%,500px); min-height:0; }
  .staff-grid,.template-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .store-category-grid { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  .footer-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:600px) {
  .site-announcement { align-items:flex-start; flex-direction:column; gap:2px; }
  .header-main { width:92vw; }
  .header-tools { margin-left:auto; gap:8px; }
  .account-button { gap:6px; font-size:11px; }
  .cart-button { min-width:48px; padding:9px 8px 9px 12px; }
  .store-nav-horizontal { justify-content:center; overflow:visible; }
  .store-nav-horizontal .desktop-nav-links { display:none; }
  .store-nav-horizontal .mobile-menu-toggle { display:block; }
  .store-nav-horizontal .mobile-store-menu-panel.open { display:grid; gap:4px; }
  .store-menu-panel { left:4vw; right:4vw; width:auto; min-width:0; transform:none; }
  .store-mega-links { grid-template-columns:1fr; }
  .store-menu-panel .all-products-flyout { position:relative; width:100%; }
  .store-nav-horizontal>.desktop-nav-links .all-products-flyout { width:auto; }
  .all-products-trigger { width:100%; }
  .all-products-flyout:hover>.products-flyout-panel,
  .all-products-flyout:focus-within>.products-flyout-panel { display:none; }
  .all-products-flyout.mobile-open>.products-flyout-panel { display:grid; }
  .products-flyout-panel {
    position:static;
    grid-template-columns:1fr;
    width:100%;
    max-height:72vh;
    margin-top:6px;
    border-radius:12px;
    transform:none;
  }
  .products-flyout-list {
    min-height:0;
    max-height:220px;
    border-radius:12px 12px 0 0;
  }
  .products-flyout-details {
    max-height:360px;
    padding:16px;
    border-radius:0 0 12px 12px;
  }
  .products-flyout-category-grid { grid-template-columns:1fr; }
  .products-flyout-category { max-height:none; }
  main { width:min(92vw,540px); }
  .catalog-toolbar { align-items:stretch; flex-direction:column; }
  .product-grid { grid-template-columns:1fr; }
  .config-visual,.config-form { padding:26px; }
  .field-grid { grid-template-columns:1fr; }
  .checkout-grid { grid-template-columns:1fr; }
  .checkout-grid .span-two { grid-column:auto; }
  .checkout-progress,.checkout-success-summary { grid-template-columns:1fr; }
  .artwork-choice,.editor-block-fields { grid-template-columns:1fr; }
  .online-designer-heading { align-items:stretch; flex-direction:column; }
  .online-designer-launch { width:100%; }
  .editor-section-heading { grid-template-columns:1fr; }
  .editor-grid { grid-template-columns:1fr; }
  .editor-button { display:none; }
  .account-button { padding:8px 0; }
  .account-dialog { width:100vw; max-width:none; height:100vh; max-height:none; border-radius:0; }
  .account-dialog-heading { padding:22px 20px; }
  .account-dialog>.customer-login-form,.account-dialog>.portal-dashboard,.account-dialog>.account-portal-intro,.account-dialog>.portal-auth-grid { width:calc(100% - 32px); }
  .portal-auth-grid,.portal-form-grid { grid-template-columns:1fr; }
  .portal-guest-card { order:-1; }
  .portal-form-grid .wide { grid-column:auto; }
  .portal-summary-grid,.portal-proof-grid { grid-template-columns:1fr; }
  .portal-settings-grid,.portal-settings-fields { grid-template-columns:1fr; }
  .portal-settings-card.portal-settings-addresses { grid-column:auto; }
  .portal-settings-heading,.portal-settings-list article { align-items:flex-start; flex-direction:column; }
  .portal-settings-heading>button { width:100%; }
  .portal-settings-list article>div:last-child { width:100%; }
  .product-page { width:min(92vw,540px); padding-top:18px; }
  .product-page-top { position:static; align-items:stretch; flex-direction:column; }
  .product-page-back { width:100%; }
  .cart-dialog { width:100vw; max-width:none; height:100vh; max-height:none; border-radius:0; }
  .checkout-dialog { width:100vw; max-width:none; height:100vh; max-height:none; border-radius:0; }
  .checkout-form { padding:28px 20px; }
  .checkout-success { padding:50px 22px; }
  .checkout-artwork-card { grid-template-columns:1fr; }
  .checkout-success-actions { flex-direction:column; }
  .checkout-success-actions .primary-button { width:100%; }
  .staff-grid,.template-grid { grid-template-columns:1fr; }
  .store-category-grid { grid-template-columns:1fr!important; }
  .widget-section { padding:24px; }
  .footer-grid { grid-template-columns:1fr; gap:28px; padding:42px 0 32px; }
  .footer-bottom { align-items:flex-start; flex-direction:column; }
  .chat-launcher { right:16px; bottom:16px; }
  .store-chat-panel { right:16px; bottom:72px; }
  .store-chat-contact { grid-template-columns:1fr; }
}
@media(max-width:560px){.artwork-review-sides{grid-template-columns:1fr;row-gap:12px}}
.store-gallery-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:18px; }
.store-gallery-card { overflow:hidden; border:1px solid var(--line); border-radius:12px; background:white; box-shadow:0 8px 24px rgba(20,42,72,.07); }
.store-gallery-card img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.gallery-image-open { position:relative; display:block; width:100%; padding:0; border:0; background:var(--soft); cursor:zoom-in; }
.gallery-image-open:focus-visible { outline:3px solid var(--blue); outline-offset:-3px; }
.gallery-image-hint { position:absolute; right:10px; bottom:10px; padding:5px 9px; border-radius:6px; color:white; background:rgba(0,0,0,.7); font-size:12px; }
.gallery-image-dialog { width:min(1200px,94vw); max-height:94vh; padding:48px 16px 16px; overflow:auto; }
.gallery-image-dialog>img { display:block; width:100%; height:auto; max-height:75vh; object-fit:contain; }
.gallery-image-dialog>p { margin:12px 0 0; text-align:center; }
.store-gallery-card>div { padding:15px; }
.store-gallery-card h3 { margin:0 0 6px; }
.store-gallery-card p { margin:0; color:var(--muted); line-height:1.55; }
.product-detail-tabs { margin-top:18px; border:1px solid var(--line); border-radius:14px; background:white; overflow:hidden; box-shadow:0 8px 22px rgba(20,42,72,.05); }
.product-tab-buttons { display:flex; flex-wrap:wrap; gap:0; border-bottom:1px solid var(--line); background:#f8faf8; }
.product-tab-buttons button { flex:1 1 auto; min-width:120px; padding:12px 14px; border:0; border-right:1px solid var(--line); color:var(--muted); background:transparent; font-weight:900; }
.product-tab-buttons button:last-child { border-right:0; }
.product-tab-buttons button.active { color:white; background:var(--blue); }
.product-tab-panel { display:none; padding:16px; }
.product-tab-panel.active { display:block; }
.product-tab-overview p { margin:0 0 12px; color:var(--muted); line-height:1.55; }
.product-tab-facts { display:flex; flex-wrap:wrap; gap:8px; }
.product-tab-facts span { display:inline-flex; align-items:center; padding:7px 10px; border:1px solid var(--line); border-radius:999px; color:var(--blue); background:#f8faf8; font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:.04em; }
.product-rich-description { color:var(--muted); line-height:1.6; }
.product-rich-description h2,.product-rich-description h3,.product-rich-description h4 { margin:16px 0 7px; color:var(--blue); line-height:1.2; }
.product-rich-description p { margin:0 0 12px; }
.product-rich-description ul,.product-rich-description ol { margin:0 0 14px 22px; padding:0; }
.product-rich-description a { color:var(--blue); font-weight:800; }
.product-rich-description figure { margin:16px 0; overflow:hidden; border:1px solid var(--line); border-radius:12px; background:white; box-shadow:0 8px 24px rgba(20,42,72,.07); }
.product-rich-description img { display:block; width:100%; max-height:520px; object-fit:contain; background:#f8faf8; }
.product-rich-description figcaption { padding:8px 10px; color:var(--muted); font-size:11px; }
.product-description-hero { margin:0 0 18px; padding:24px 28px; border-radius:12px; color:#172233; background:#8bd0ef; }
.product-description-hero h2 { margin:0 0 10px!important; color:#36485a!important; font-size:28px; text-transform:uppercase; letter-spacing:.04em; }
.product-description-hero p { margin:0!important; color:#111; font-size:17px; line-height:1.55; }
.description-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:0 0 18px; }
.description-card { min-height:138px; padding:22px 24px; border:1px solid var(--line); border-left:5px solid var(--orange); border-radius:10px; background:#fff7ee; box-shadow:0 8px 20px rgba(20,42,72,.04); }
.description-card.tone-2 { border-left-color:var(--green); background:#eef8ea; }
.description-card.tone-3 { border-left-color:#8bd0ef; background:#edf8fd; }
.description-card.tone-4 { border-left-color:var(--orange); background:#fff3e7; }
.description-card h3 { margin:0 0 10px!important; color:#4a4a4a!important; font-size:18px; }
.description-card p { margin:0!important; color:#333; font-size:15px; line-height:1.55; }
.description-feature-list { margin:20px 0; padding:22px 24px; border:1px solid var(--line); border-radius:10px; background:#f7f7f7; }
.description-feature-list h3 { margin:0 0 16px!important; color:#4a4a4a!important; font-size:22px; }
.description-feature-list>div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.description-feature { display:grid; place-items:center; min-height:48px; padding:12px; border-radius:8px; color:white; background:var(--orange); font-weight:900; text-align:center; }
.description-feature:nth-child(3n+2) { background:var(--green); }
.description-feature:nth-child(3n) { color:#172233; background:#8bd0ef; }
.description-feature:nth-child(4n) { background:#4a4a4a; }
.description-callout { margin:22px 0 0!important; padding:20px 24px; border-radius:9px; color:white!important; background:#4a4a4a; font-size:17px; line-height:1.5; }
.description-callout strong { color:#8bd0ef; }
.product-classic-description { display:block; color:#2f3a45; line-height:1.65; }
.product-classic-intro { margin:0 0 22px; }
.product-classic-intro h2 { margin:0 0 12px!important; color:var(--blue)!important; font-size:30px; line-height:1.15; }
.product-classic-intro p { margin:0 0 16px!important; color:#2f3a45; font-size:17px; }
.product-classic-section { margin:0 0 22px; }
.product-classic-section h3 { margin:0 0 8px!important; color:var(--blue)!important; font-size:22px; line-height:1.25; }
.product-classic-section p { margin:0!important; color:#3f4a55; font-size:16px; }
.product-classic-features ul { display:grid; gap:5px; margin:8px 0 0 20px; padding:0; }
.product-classic-features li { color:#3f4a55; font-size:16px; }
.product-classic-closing { margin:24px 0 0!important; color:#2f3a45; font-size:16px; }
.product-classic-closing strong { color:var(--blue); }
.rs-product-desc { color:#2d2d2d; line-height:1.6; }
.rs-top-banner { margin:0 0 18px; padding:22px 26px; border-radius:10px; color:#fff; background:#5faa3d; }
.rs-top-banner h2,.rs-top-banner p { margin:0!important; color:#fff!important; }
.rs-top-banner h2 { margin-bottom:6px!important; font-size:28px!important; font-weight:800; }
.rs-info-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:16px; margin-bottom:18px; }
.rs-info-card { padding:18px 20px; border:1px solid rgba(0,0,0,.05); border-radius:10px; }
.rs-card-orange { border-left:5px solid #f47c20; background:#fff3ea; }
.rs-card-green { border-left:5px solid #5faa3d; background:#eef9e9; }
.rs-info-card h3 { margin:0 0 8px!important; color:#2d2d2d!important; font-size:17px!important; font-weight:700; }
.rs-info-card p { margin:0!important; color:#2d2d2d!important; font-size:14px; }
.rs-features-wrap { padding:18px; border-radius:10px; background:#f5f5f5; }
.rs-features-title { margin:0 0 14px!important; color:#2d2d2d!important; font-size:20px!important; font-weight:800; }
.rs-features-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:12px; }
.rs-feature-box { padding:12px; border-radius:8px; color:#fff; font-weight:600; text-align:center; }
.rs-orange { background:#f47c20; }
.rs-green { background:#5faa3d; }
.rs-blue { color:#222; background:#8fd3f4; }
.rs-grey { background:#4a4a4a; }
.rs-bottom-callout { margin-top:18px; padding:16px; border-radius:10px; color:#fff; background:#4a4a4a; }
.rs-bottom-callout strong { color:#8fd3f4; }
@media (max-width:760px) {
  .product-description-hero { padding:20px; }
  .product-description-hero h2 { font-size:22px; }
  .description-card-grid,.description-feature-list>div { grid-template-columns:1fr; }
  .product-classic-intro h2 { font-size:24px; }
}
.product-detail-gallery { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:18px; }
.product-detail-gallery figure { margin:0; overflow:hidden; border:1px solid var(--line); border-radius:9px; background:white; }
.product-detail-gallery img { display:block; width:100%; aspect-ratio:1; object-fit:cover; }
.product-detail-gallery figcaption { padding:7px; color:var(--muted); font-size:10px; }
.product-template-downloads { display:grid; gap:7px; margin-top:18px; padding-top:15px; border-top:1px solid var(--line); }
.product-template-downloads h3 { margin:0 0 4px; }
.product-template-downloads a { display:flex; justify-content:space-between; gap:10px; padding:10px 11px; border:1px solid var(--line); border-radius:8px; color:var(--blue); background:white; text-decoration:none; }
.product-template-downloads span { color:var(--muted); font-size:10px; }
.product-nearby-bottom { margin-top:18px; padding-top:16px; border-top:1px solid var(--line); }
.product-nearby-bottom .catalog-sibling-links { margin:0; }

.store-captcha {
  display:none;
  margin:14px 0 4px;
  min-height:0;
}
.store-captcha.active {
  display:block;
}
.store-captcha.compact {
  margin:8px 0;
}
.store-captcha-note {
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:10px;
  color:var(--muted);
  background:#f8faf8;
  font-size:12px;
  font-weight:800;
}
.footer-grid a[href*="google"]::before {
  content:"★ ";
  color:var(--orange);
}

/* Privacy policy */
.privacy-page { min-height:100vh; background:linear-gradient(180deg,#f5f8fa 0,#fff 520px); }
.privacy-page a { color:var(--blue); }
.legal-skip-link { position:fixed; top:10px; left:10px; z-index:100; padding:10px 14px; border-radius:8px; color:#fff!important; background:var(--blue); transform:translateY(-160%); }
.legal-skip-link:focus { transform:translateY(0); }
.legal-announcement { padding:9px 4vw; color:#fff; background:var(--orange); font-size:12px; font-weight:900; letter-spacing:.04em; text-align:center; }
.legal-site-header { display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:82px; padding:14px max(4vw,24px); border-bottom:1px solid var(--line); background:rgba(255,255,255,.96); box-shadow:0 8px 30px rgba(21,37,48,.06); }
.legal-brand { display:inline-flex; align-items:center; color:var(--orange)!important; text-decoration:none; }
.legal-brand img { display:block; width:310px; max-width:42vw; height:auto; }
.legal-site-header nav { display:flex; align-items:center; gap:6px; }
.legal-site-header nav a { padding:10px 13px; border-radius:9px; color:var(--ink); font-size:13px; font-weight:850; text-decoration:none; }
.legal-site-header nav a:hover,.legal-site-header nav a:focus-visible { color:var(--blue); background:#eef4fa; }
.legal-main { width:min(1220px,92vw); margin:auto; }
.legal-hero { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr); gap:36px; align-items:center; padding:74px 0 58px; }
.legal-hero h1 { margin:9px 0 18px; color:var(--ink); font-size:clamp(48px,7vw,86px); line-height:.94; letter-spacing:-4.5px; }
.legal-hero>div>p:not(.eyebrow) { max-width:760px; margin:0; color:var(--muted); font-size:19px; line-height:1.65; }
.legal-meta { display:flex; flex-wrap:wrap; gap:9px; margin-top:24px; }
.legal-meta span { padding:8px 11px; border:1px solid #d7e2e9; border-radius:999px; color:#4f6170; background:#fff; font-size:11px; font-weight:850; }
.legal-summary-card { position:relative; overflow:hidden; padding:30px; border-radius:22px; color:#fff; background:linear-gradient(145deg,var(--blue),#235fae); box-shadow:0 24px 65px rgba(26,64,124,.22); }
.legal-summary-card::after { position:absolute; right:-58px; bottom:-70px; width:180px; height:180px; border:26px solid rgba(255,255,255,.08); border-radius:50%; content:""; }
.legal-summary-card span { color:#bfe7c0; font-size:10px; font-weight:950; letter-spacing:.14em; }
.legal-summary-card strong { position:relative; z-index:1; display:block; margin:12px 0; font-size:25px; line-height:1.2; }
.legal-summary-card p { position:relative; z-index:1; margin:0; color:#deebfa; line-height:1.6; }
.legal-layout { display:grid; grid-template-columns:245px minmax(0,1fr); gap:44px; align-items:start; padding:0 0 66px; }
.legal-toc { position:sticky; top:24px; display:grid; gap:15px; padding:20px; border:1px solid var(--line); border-radius:16px; background:#fff; box-shadow:0 10px 32px rgba(21,37,48,.07); }
.legal-toc>strong { color:var(--blue); font-size:12px; letter-spacing:.08em; text-transform:uppercase; }
.legal-toc nav { display:grid; gap:2px; }
.legal-toc a { padding:8px 10px; border-left:3px solid transparent; border-radius:5px; color:#586773; font-size:12px; font-weight:750; line-height:1.25; text-decoration:none; }
.legal-toc a:hover,.legal-toc a:focus-visible { border-left-color:var(--green); color:var(--blue); background:#f2f8f3; }
.legal-policy { overflow:hidden; border:1px solid var(--line); border-radius:22px; background:#fff; box-shadow:0 18px 55px rgba(21,37,48,.08); }
.legal-policy section { position:relative; padding:38px clamp(25px,5vw,62px); scroll-margin-top:24px; }
.legal-policy section+section { border-top:1px solid var(--line); }
.legal-policy h2 { margin:0 0 16px; padding-right:60px; color:var(--ink); font-size:clamp(25px,3vw,34px); letter-spacing:-.8px; }
.legal-policy p,.legal-policy li { color:#566570; font-size:15px; line-height:1.78; }
.legal-policy p { margin:0 0 15px; }
.legal-policy p:last-child { margin-bottom:0; }
.legal-policy ul { display:grid; gap:9px; margin:0; padding-left:22px; }
.legal-policy li::marker { color:var(--green); }
.legal-policy a { font-weight:800; }
.legal-section-number { position:absolute; top:34px; right:clamp(25px,5vw,62px); color:#dce7ed; font-size:25px; font-weight:950; }
.legal-card-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:22px 0; }
.legal-info-card { padding:20px; border:1px solid #dbe5e9; border-left:5px solid var(--green); border-radius:12px; background:#f9fbfb; }
.legal-info-card:nth-child(even) { border-left-color:var(--orange); }
.legal-info-card strong { display:block; margin-bottom:7px; color:var(--blue); font-size:15px; }
.legal-info-card p { font-size:13px; line-height:1.58; }
.legal-note { margin-top:22px; padding:19px 21px; border-radius:12px; color:#183526; background:#eef8ef; }
.legal-note strong { display:block; margin-bottom:5px; color:#267b31; }
.legal-note p { color:#466152; }
.legal-contact-card { display:grid; grid-template-columns:1fr auto; gap:40px; align-items:center; margin-bottom:72px; padding:42px clamp(28px,5vw,60px); border-radius:22px; color:#fff; background:linear-gradient(120deg,#173d75,#1a407c 58%,#256f39); box-shadow:var(--shadow); scroll-margin-top:24px; }
.legal-contact-card h2 { margin:8px 0 10px; font-size:36px; }
.legal-contact-card>div:first-child>p:last-child { max-width:620px; margin:0; color:#deebfa; line-height:1.6; }
.legal-contact-details { display:grid; min-width:270px; gap:8px; padding:20px; border-radius:14px; background:rgba(255,255,255,.1); }
.legal-contact-details a { color:#fff; font-size:17px; font-weight:900; }
.legal-contact-details address { margin-top:6px; color:#e2ecf7; font-size:13px; font-style:normal; line-height:1.55; }
.legal-footer { display:grid; grid-template-columns:1fr auto; gap:25px 50px; align-items:start; padding:44px max(4vw,24px) 26px; color:#d8e4f2; background:#102e5b; }
.legal-brand-footer { color:var(--orange)!important; }
.legal-brand-footer img { width:270px; max-width:100%; }
.legal-footer>div>p { max-width:520px; color:#bed0e6; }
.legal-footer nav { display:flex; flex-wrap:wrap; gap:10px 20px; }
.legal-footer nav a { color:#fff; font-size:13px; font-weight:800; }
.legal-footer>p { grid-column:1/-1; margin:12px 0 0; padding-top:18px; border-top:1px solid rgba(255,255,255,.14); color:#9eb4ce; font-size:11px; }
.privacy-page .privacy-site-footer a { color:var(--footer-text); }
.privacy-page .privacy-site-footer .footer-social a { color:#fff; }
.privacy-page .privacy-site-footer .footer-brand img { width:270px; }
body.privacy-page > .privacy-site-footer { display:block!important; visibility:visible!important; opacity:1!important; }

/* Storefront-builder privacy page */
.privacy-builder-content { width:min(1120px,92vw); margin:46px auto 0; }
.privacy-builder-content .hero { min-height:0; padding:56px clamp(26px,6vw,76px); border-radius:26px; color:#fff; background:linear-gradient(135deg,#123769,#1a407c); box-shadow:0 24px 60px rgba(26,64,124,.18); }
.privacy-builder-content .hero h1 { color:#fff; font-size:clamp(48px,7vw,78px); }
.privacy-builder-content .hero p { max-width:820px; color:#dce9f8; }
.privacy-builder-content .hero .eyebrow { color:#8bd18e; }
.privacy-builder-content .store-block-text { margin:18px 0; border:1px solid #dfe7eb; border-radius:18px; background:#fff; box-shadow:0 10px 30px rgba(21,37,48,.06); }
.privacy-builder-content .store-block-text .store-block-content { width:100%; padding:30px clamp(24px,4vw,46px); }
.privacy-builder-content .store-block-text h2 { margin:0 0 14px; color:var(--blue); font-size:clamp(25px,3vw,35px); }
.privacy-builder-content .store-block-text p { margin:0; color:#52616d; font-size:16px; line-height:1.75; white-space:pre-line; }

/* Storefront-builder contact page */
.contact-builder-content { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; width:min(1120px,92vw); margin:46px auto 0; }
.contact-builder-content .hero { grid-column:1/-1; min-height:0; padding:58px clamp(26px,6vw,76px); border-radius:26px; color:#fff; background:linear-gradient(135deg,#123769,#1a407c); box-shadow:0 24px 60px rgba(26,64,124,.18); }
.contact-builder-content .hero h1 { max-width:820px; color:#fff; font-size:clamp(48px,7vw,78px); }
.contact-builder-content .hero p { max-width:820px; color:#dce9f8; }
.contact-builder-content .hero .eyebrow { color:#8bd18e; }
.contact-builder-content .store-block-text { margin:0; border:1px solid #dfe7eb; border-radius:18px; background:#fff; box-shadow:0 10px 30px rgba(21,37,48,.06); }
.contact-builder-content .store-block-text .store-block-content { width:100%; padding:32px clamp(24px,4vw,42px); }
.contact-builder-content .store-block-text h2 { margin:0 0 14px; color:var(--blue); font-size:clamp(25px,3vw,34px); }
.contact-builder-content .store-block-text p { margin:0; color:#52616d; font-size:16px; line-height:1.75; white-space:pre-line; }
.contact-builder-content .store-block-cta { margin:0; border-radius:18px; box-shadow:0 12px 34px rgba(21,37,48,.08); }
@media (max-width:760px) { .contact-builder-content { grid-template-columns:1fr; } .contact-builder-content .hero { grid-column:auto; } }

/* Team and portfolio showcase pages */
.team-showcase-content,.portfolio-showcase-content { width:min(1260px,92vw); margin:46px auto 0; }
.team-showcase-content .hero,.portfolio-showcase-content .hero { min-height:0; margin-bottom:24px; padding:58px clamp(26px,6vw,78px); border-radius:28px; color:#fff; background:linear-gradient(135deg,#123769 0%,#1a407c 68%,#235fae 100%); box-shadow:0 24px 64px rgba(26,64,124,.2); }
.team-showcase-content .hero h1,.portfolio-showcase-content .hero h1 { max-width:900px; color:#fff; font-size:clamp(48px,7vw,78px); }
.team-showcase-content .hero p,.portfolio-showcase-content .hero p { max-width:820px; color:#dce9f8; }
.team-showcase-content .hero .eyebrow,.portfolio-showcase-content .hero .eyebrow { color:#8bd18e; }
.team-showcase-content .widget-section,.portfolio-showcase-content .widget-section { border:1px solid #dfe7eb; box-shadow:0 16px 46px rgba(21,37,48,.08); }
.team-showcase-content .staff-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.team-showcase-content .staff-card { overflow:hidden; padding:0 0 22px; border:0; border-radius:18px; box-shadow:0 12px 34px rgba(21,37,48,.1); transition:transform .2s ease,box-shadow .2s ease; }
.team-showcase-content .staff-card:hover { transform:translateY(-4px); box-shadow:0 20px 44px rgba(21,37,48,.14); }
.team-showcase-content .staff-card img,.team-showcase-content .staff-placeholder { margin:0 0 20px; border-radius:0; }
.team-showcase-content .staff-placeholder { background:linear-gradient(145deg,var(--blue),#2b6fb7); font-size:46px; letter-spacing:.04em; }
.team-showcase-content .staff-card h3,.team-showcase-content .staff-card strong,.team-showcase-content .staff-card>p,.team-showcase-content .staff-contact { margin-left:22px; margin-right:22px; }
.team-showcase-content .staff-card>p { min-height:3em; margin-top:12px; margin-bottom:0; }
.portfolio-showcase-content .store-gallery-grid { grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:24px; }
.portfolio-showcase-content .store-gallery-card { border:0; border-radius:18px; box-shadow:0 12px 34px rgba(21,37,48,.11); transition:transform .2s ease,box-shadow .2s ease; }
.portfolio-showcase-content .store-gallery-card:hover { transform:translateY(-4px); box-shadow:0 20px 46px rgba(21,37,48,.16); }
.portfolio-showcase-content .store-gallery-card img,.portfolio-showcase-content .gallery-placeholder { width:100%; aspect-ratio:4/3; }
.gallery-placeholder { display:grid; place-items:center; color:#fff; background:linear-gradient(145deg,var(--blue),#2b6fb7); }
.gallery-placeholder span { padding:9px 14px; border:1px solid rgba(255,255,255,.36); border-radius:999px; font-size:12px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.portfolio-gallery-toolbar { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin:0 0 24px; padding:18px; border:1px solid #dfe7eb; border-radius:16px; background:#f7f9fa; }
.portfolio-category-filters { display:flex; flex-wrap:wrap; gap:8px; }
.portfolio-category-filters button { padding:10px 14px; border:1px solid #cad7df; border-radius:999px; color:#4e5f6c; background:#fff; font-size:12px; font-weight:850; cursor:pointer; }
.portfolio-category-filters button:hover { border-color:var(--blue); color:var(--blue); }
.portfolio-category-filters button.active { border-color:var(--green); color:#fff; background:var(--green); }
.portfolio-gallery-toolbar>label { display:grid; flex:none; gap:6px; color:#536572; font-size:10px; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.portfolio-gallery-toolbar select { min-width:160px; padding:10px 34px 10px 11px; border:1px solid #cad7df; border-radius:9px; color:var(--ink); background:#fff; font:inherit; text-transform:none; letter-spacing:0; }
.portfolio-category-label { display:inline-block; margin-bottom:8px; padding:5px 8px; border-radius:999px; color:#fff; background:var(--green); font-size:9px; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
@media (max-width:900px) { .team-showcase-content .staff-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:620px) { .team-showcase-content .staff-grid { grid-template-columns:1fr; } .team-showcase-content,.portfolio-showcase-content { width:min(94vw,1260px); margin-top:24px; } .portfolio-gallery-toolbar { align-items:stretch; flex-direction:column; } .portfolio-gallery-toolbar>label,.portfolio-gallery-toolbar select { width:100%; } }

/* Guided request-a-quote page */
.quote-request-content { width:min(1200px,92vw); margin:46px auto 0; }
.quote-request-content .hero { min-height:0; margin-bottom:24px; padding:60px clamp(26px,6vw,80px); border-radius:28px; color:#fff; background:linear-gradient(135deg,#123769 0%,#1a407c 66%,#235fae 100%); box-shadow:0 24px 64px rgba(26,64,124,.2); }
.quote-request-content .hero h1 { max-width:900px; color:#fff; font-size:clamp(48px,7vw,80px); }
.quote-request-content .hero p { max-width:860px; color:#dce9f8; }
.quote-request-content .hero .eyebrow { color:#8bd18e; }
.quote-request-widget { padding:clamp(26px,5vw,58px); border:1px solid #dfe7eb; border-radius:24px; background:#fff; box-shadow:0 18px 54px rgba(21,37,48,.1); }
.quote-request-widget .widget-section-heading { max-width:900px; }
.quote-request-widget .widget-section-heading h2 { margin:5px 0 10px; color:var(--blue); font-size:clamp(32px,4vw,48px); }
.guided-quote-form { display:grid; gap:26px; }
.quote-type-fieldset { min-width:0; margin:0; padding:0; border:0; }
.quote-type-fieldset legend { margin-bottom:14px; color:var(--ink); font-size:18px; font-weight:900; }
.quote-type-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.quote-type-card { position:relative; display:block; cursor:pointer; }
.quote-type-card input { position:absolute; width:1px; height:1px; opacity:0; }
.quote-type-card span { display:block; min-height:150px; padding:24px; border:2px solid #dfe7eb; border-radius:18px; background:#f8fafb; transition:border-color .18s ease,background .18s ease,transform .18s ease; }
.quote-type-card:hover span { transform:translateY(-2px); border-color:#a9c6e6; }
.quote-type-card.selected span,.quote-type-card input:focus-visible+span { border-color:var(--green); background:#f1f8f2; box-shadow:0 0 0 4px rgba(69,168,70,.12); }
.quote-type-card strong { display:block; margin-bottom:9px; color:var(--blue); font-size:20px; }
.quote-type-card small { display:block; color:#586875; font-size:13px; line-height:1.55; }
.quote-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.quote-form-grid label { display:grid; gap:7px; color:#334554; font-size:12px; font-weight:850; }
.quote-form-grid input,.quote-form-grid select,.quote-form-grid textarea { width:100%; min-width:0; padding:13px 14px; border:1px solid #cfdbe2; border-radius:10px; color:var(--ink); background:#fff; font:inherit; }
.quote-form-grid textarea { min-height:112px; resize:vertical; }
.quote-form-grid input:focus,.quote-form-grid select:focus,.quote-form-grid textarea:focus { outline:3px solid rgba(26,64,124,.12); border-color:var(--blue); }
.quote-form-grid .span-two { grid-column:1/-1; }
.quote-detail-panel { padding:24px; border:1px solid #dbe6dc; border-radius:18px; background:#f4faf4; }
.quote-detail-panel h3 { margin:0 0 16px; color:var(--green); font-size:22px; }
.quote-form-note { margin:0; padding:14px 16px; border-left:4px solid var(--orange); color:#586875; background:#fff7f0; line-height:1.55; }
.quote-submit-button { justify-self:start; min-width:230px; }
.quote-request-content>.store-block-cta { margin-top:20px; border-radius:18px; }
@media (max-width:760px) { .quote-type-grid,.quote-form-grid { grid-template-columns:1fr; } .quote-form-grid .span-two { grid-column:auto; } .quote-type-card span { min-height:0; } .quote-request-content { width:min(94vw,1200px); margin-top:24px; } .quote-submit-button { width:100%; } }
@media(max-width:850px) {
  .legal-hero,.legal-layout,.legal-contact-card { grid-template-columns:1fr; }
  .legal-hero { padding:54px 0 42px; }
  .legal-toc { position:static; }
  .legal-toc nav { grid-template-columns:1fr 1fr; }
  .legal-contact-details { min-width:0; }
}
@media(max-width:620px) {
  .legal-site-header { align-items:flex-start; flex-direction:column; gap:10px; }
  .legal-site-header nav { width:100%; overflow-x:auto; }
  .legal-site-header nav a { flex:none; }
  .legal-hero h1 { font-size:48px; letter-spacing:-3px; }
  .legal-toc nav,.legal-card-grid,.legal-footer { grid-template-columns:1fr; }
  .legal-policy section { padding:30px 22px; }
  .legal-section-number { top:27px; right:22px; }
  .legal-contact-card { padding:30px 24px; }
  .legal-footer>p { grid-column:auto; }
}
@media(max-width:700px){.portal-legacy-heading{align-items:stretch;flex-direction:column}.portal-legacy-heading label{min-width:0;width:100%}}

/* v1.21.282: responsive mobile catalog drawer and top-layer presentation. */

/* v1.21.287: clean up secure proof previews and legacy-reference fallbacks. */
/* v1.21.291: secure per-design artwork replacement after checkout. */

/* v1.21.292: vendor-priced products request a current quote instead of entering the cart. */
.vendor-quote-product .config-form{align-self:start}
.vendor-product-request .field-grid{margin-top:18px}
.vendor-product-request textarea{min-height:130px;resize:vertical}
.vendor-request-note{display:flex;flex-direction:column;gap:3px;margin:16px 0;padding:14px;border:1px solid #c8dfcb;border-radius:12px;background:#f0faf2;color:#345542}
.vendor-request-note strong{color:#227437}

/* v1.21.293: product-specific typed information such as OD and graphic size. */
.product-custom-information{grid-column:1/-1;border:1px solid #ccd9e5;border-radius:14px;background:#f7fafc;padding:16px}
.product-custom-information-heading{margin-bottom:12px}.product-custom-information-heading strong{display:block;color:#153a67;font-size:17px}.product-custom-information-heading span{color:#64736d;font-size:14px}
.product-custom-information-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.product-custom-information-fields label{display:grid;gap:6px;color:#334b40;font-weight:700}.product-custom-information-fields small{color:#6c7a74;font-weight:500}
@media(max-width:600px){
  body.mobile-store-menu-open{overflow:hidden}
  .store-nav-horizontal .mobile-menu-toggle{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    text-align:left;
    gap:9px;
    width:100%;
    min-height:50px;
    font-size:15px;
    letter-spacing:.04em;
    background:transparent;
  }
  .store-nav-horizontal .mobile-menu-toggle:hover,
  .store-nav-horizontal .mobile-menu-toggle:focus-visible{background:rgba(255,255,255,.1)}
  .mobile-store-menu-panel{
    position:fixed;
    inset:0;
    z-index:1000;
    display:none;
    width:100%;
    min-width:0;
    padding:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    transform:none;
  }
  .mobile-store-menu-panel.open{display:block}
  .mobile-store-menu-backdrop{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    padding:0;
    border:0;
    background:rgba(9,26,48,.58);
    backdrop-filter:blur(2px);
  }
  .mobile-store-menu-drawer{
    position:absolute;
    inset:0 0 0 auto;
    display:flex;
    flex-direction:column;
    width:min(92vw,430px);
    max-width:100%;
    overflow:hidden;
    color:var(--ink);
    background:#f5f8fa;
    box-shadow:-20px 0 55px rgba(7,25,46,.28);
    animation:mobile-menu-slide-in .2s ease-out;
  }
  @keyframes mobile-menu-slide-in{from{transform:translateX(22px);opacity:.75}to{transform:translateX(0);opacity:1}}
  .mobile-store-menu-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:max(18px,env(safe-area-inset-top)) 18px 16px;
    color:#fff;
    background:var(--blue);
  }
  .mobile-store-menu-heading small,.mobile-store-menu-heading strong{display:block}
  .mobile-store-menu-heading small{margin-bottom:3px;color:#bcd0e9;font-size:10px;font-weight:900;letter-spacing:.12em}
  .mobile-store-menu-heading strong{font-size:24px;line-height:1.1}
  .mobile-store-menu-heading>button{
    display:grid;
    place-items:center;
    width:46px;
    height:46px;
    padding:0;
    border:1px solid rgba(255,255,255,.3);
    border-radius:50%;
    color:#fff;
    background:rgba(255,255,255,.1);
    font-size:29px;
    line-height:1;
  }
  .mobile-store-menu-scroll{
    flex:1;
    min-height:0;
    overflow-y:auto;
    overscroll-behavior:contain;
    padding:18px 16px calc(26px + env(safe-area-inset-bottom));
  }
  .mobile-menu-search{display:grid;gap:7px;margin-bottom:20px;color:#435465;font-size:12px;font-weight:900}
  .mobile-menu-search>div{display:flex;min-width:0;overflow:hidden;border:1px solid #c9d5de;border-radius:12px;background:#fff;box-shadow:0 3px 10px rgba(20,45,68,.06)}
  .mobile-menu-search input{flex:1;min-width:0;min-height:48px;padding:12px;border:0;outline:0;color:var(--ink);background:#fff;font-size:16px}
  .mobile-menu-search button{min-height:48px;padding:0 14px;border:0;color:#fff;background:var(--green);font-size:13px;font-weight:900}
  .mobile-menu-section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:9px}
  .mobile-menu-section-heading strong{color:var(--blue);font-size:18px}
  .mobile-menu-section-heading a{color:var(--green);font-size:12px;font-weight:900;text-decoration:none;text-transform:uppercase}
  .mobile-menu-products{margin-bottom:20px}
  .mobile-product-group{overflow:hidden;margin-bottom:7px;border:1px solid #d7e1e7;border-radius:12px;background:#fff}
  .mobile-product-group summary{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto 24px;align-items:center;gap:9px;min-height:54px;padding:12px 13px;cursor:pointer;list-style:none}
  .mobile-product-group summary::-webkit-details-marker{display:none}
  .mobile-product-group summary>span{min-width:0;color:var(--blue);font-size:15px;font-weight:900;line-height:1.3}
  .mobile-product-group summary>b{color:#71808d;font-size:10px;font-weight:800;white-space:nowrap}
  .mobile-product-group summary>i{display:grid;place-items:center;color:var(--green);font-size:21px;font-style:normal;font-weight:700;transition:transform .15s ease}
  .mobile-product-group[open] summary{border-bottom:1px solid #e1e8ec;background:#f8fbfd}
  .mobile-product-group[open] summary>i{transform:rotate(45deg)}
  .mobile-product-group>div{display:grid;padding:6px 12px 11px}
  .mobile-product-group>div>a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:9px 5px;border-bottom:1px solid #edf1f3;color:#31485d;font-size:14px;font-weight:750;text-decoration:none}
  .mobile-product-group>div>a:last-child{border-bottom:0}
  .mobile-product-group>div>a>b{display:grid;place-items:center;min-width:28px;height:25px;padding:0 7px;border-radius:999px;color:var(--blue);background:#eaf1f7;font-size:10px}
  .mobile-menu-page-links{display:grid;gap:6px;padding-top:16px;border-top:1px solid #d7e1e7}
  .mobile-menu-page-links .nav-link{display:flex;align-items:center;min-height:50px;width:100%;padding:12px 14px;border:1px solid #d7e1e7;border-radius:11px;color:var(--blue);background:#fff;font-size:15px;font-weight:850;text-align:left;text-transform:none}
  .mobile-menu-page-links .nav-link.active{border-color:var(--green);color:#247b32;background:#eef8ef}
}
@media print {
  .legal-announcement,.legal-site-header,.legal-toc,.legal-footer { display:none!important; }
  .privacy-page { background:#fff; }
  .legal-main { width:100%; }
  .legal-hero { grid-template-columns:1fr; padding:20px 0; }
  .legal-summary-card { color:#000; background:#fff; box-shadow:none; border:1px solid #aaa; }
  .legal-summary-card span,.legal-summary-card p { color:#333; }
  .legal-layout { display:block; }
  .legal-policy { box-shadow:none; }
  .legal-contact-card { color:#000; background:#fff; box-shadow:none; border:1px solid #aaa; }
  .legal-contact-card a,.legal-contact-card>div:first-child>p:last-child,.legal-contact-details address { color:#000; }
}
.portal-quantity-options { margin-top:12px; padding:12px; border:1px solid #dce3e9; border-radius:8px; background:#f7f9fb; }
.portal-quantity-options summary { font-weight:600; cursor:pointer; }
.portal-quantity-options p { margin:6px 0; font-size:.875rem; }
.portal-quantity-options small { display:block; max-width:60ch; }
.portal-quantity-scroll { overflow-x:auto; }
.portal-detail-line.has-quantity-options { grid-template-columns:minmax(0,1fr); }
.has-quantity-options>.portal-line-actions:empty { display:none; }
.portal-quantity-options table { width:100%; border-collapse:collapse; margin-bottom:10px; font-size:.875rem; }
.portal-quantity-options th,.portal-quantity-options td { padding:8px 10px; border-bottom:1px solid #dce3e9; text-align:right; white-space:nowrap; }
.portal-quantity-options th:first-child { text-align:left; }
.portal-quantity-options thead { color:#526476; font-size:.75rem; }
.portal-quantity-options .is-selected { background:#edf6f0; }
.portal-quantity-options th span { margin-left:8px; color:#23643e; font-size:.75rem; }

/* A readable mobile field floor avoids focus zoom without disabling pinch zoom.
   Keep larger inherited quantity text; override small component/label fonts. */
@media (max-width:900px), (hover:none) {
  input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]):not([type="range"]):not([type="color"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="image"]),
  select,
  textarea {
    font-size:max(16px, 1em) !important;
  }
}

/* Content only: the normal storefront header, navigation and footer are kept. */
.quick-downloads-page .widget-section-heading{max-width:760px;margin-bottom:28px}
.quick-downloads-page h1{margin:8px 0 14px;font-size:clamp(28px,4vw,42px);line-height:1.15}
.quick-download-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.quick-download-card{min-width:0;display:flex;flex-direction:column;gap:12px;border:1px solid var(--line);border-radius:14px;padding:24px;background:var(--paper)}
.quick-download-card h2{font-size:21px;line-height:1.3;margin:0;overflow-wrap:anywhere}
.quick-download-card p{margin:0;color:var(--muted);flex:1;overflow-wrap:anywhere}
.quick-download-category{color:var(--blue);font-weight:700;font-size:13px;overflow-wrap:anywhere}
.quick-download-card small{color:var(--muted)}
.quick-download-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.quick-download-actions a{display:inline-flex;align-items:center;justify-content:center;flex:1;width:auto;margin:0;min-height:44px;padding:10px 14px;border-radius:8px;text-decoration:none;text-align:center}
.quick-download-actions .secondary-button{border:1px solid var(--line);color:var(--blue);background:var(--paper)}
.quick-download-actions .primary-button{background:var(--orange);color:#fff}
@media(max-width:900px){.quick-download-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.quick-download-grid{grid-template-columns:1fr}.quick-download-card{padding:20px}}
