/* Trex Locator — smooth white shared stylesheet
   Works for Where to Buy and the shared locator templates.
   Class names intentionally match the existing locator HTML/JS.
*/

:root{
  --spruce:#02463A;
  --spruce-2:#01372E;
  --spruce-tint:#386C66;
  --leaf:#85BE00;
  --new-leaf:#D4ED98;
  --blue-ridge:#B6E4E5;
  --swallowtail:#F8E5A3;
  --limestone:#F7F5F2;
  --limestone-shade:#EAE7E4;
  --field-bg:#FBFAF8;
  --field-border:#CFC9C1;
  --smoky-quartz:#69625D;
  --warm-slate:#3D3936;
  --white:#FFFFFF;
  --text:var(--warm-slate);
  --muted:rgba(61,57,54,.72);
  --line:var(--limestone-shade);
  --focus:rgba(56,108,102,.14);
  --radius-corner:0 0 12px 0;
  --radius-pill:999px;
  --max:1220px;
  --ease:cubic-bezier(.2,.8,.2,1);
}

*{box-sizing:border-box}
html{min-height:100%;scroll-behavior:smooth}
body{
  min-height:100%;
  margin:0;
  color:var(--text);
  font-family:"Proxima Nova", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  font-size:17px;
  line-height:1.55;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  background:#FFFFFF;
}
body::before{display:none}
a{color:inherit}
a:hover{color:var(--spruce)}
button,input{font:inherit}
button:focus-visible,
input:focus-visible,
a:focus-visible{
  outline:3px solid var(--focus);
  outline-offset:3px;
}

.trex-shell{min-height:100%;display:flex;flex-direction:column;background:#FFFFFF}
.trex-main{width:100%;max-width:var(--max);margin:0 auto;padding:34px 16px 44px;background:#FFFFFF}

/* Header — quiet by default; hidden on Where to Buy because the host page already has navigation. */
.trex-topbar{
  position:sticky;
  top:0;
  z-index:50;
  color:var(--warm-slate);
  background:#FFFFFF;
  border-bottom:1px solid var(--line);
}
.trex-topbar::after{
  content:"";
  position:absolute;
  left:max(16px, calc((100vw - var(--max)) / 2 + 16px));
  bottom:-1px;
  width:72px;
  height:4px;
  background:var(--leaf);
  border-radius:999px;
}
.trex-topbar__inner{max-width:var(--max);min-height:68px;margin:0 auto;padding:12px 16px 14px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.trex-brand{display:flex;align-items:center;gap:12px;min-width:0}
.trex-brand__mark{width:42px;height:42px;flex:0 0 auto;border:1px solid var(--field-border);border-radius:var(--radius-corner);background:var(--field-bg);position:relative;overflow:hidden}
.trex-brand__mark::before{content:"";position:absolute;left:10px;right:10px;top:9px;height:4px;border-radius:999px;background:var(--spruce);box-shadow:0 9px 0 var(--spruce),0 18px 0 var(--spruce);transform:skewX(-18deg)}
.trex-brand__mark::after{display:none}
.trex-brand__title{color:var(--spruce);font-family:"Utopia Std", "Source Serif Pro", Georgia, serif;font-size:clamp(26px,3vw,36px);font-weight:400;line-height:1;letter-spacing:-.05em}
.trex-brand__sub{margin-top:5px;color:var(--smoky-quartz);font-size:13px;font-weight:600;line-height:1.35}
body.trex-where-to-buy-page .trex-topbar{display:none!important}

/* Search intro */
.trex-search-card{max-width:none;margin:0;padding:0 0 28px;background:#FFFFFF;border:0;border-radius:0;box-shadow:none;overflow:visible}
.trex-search-card::before,.trex-search-card::after{display:none!important}
.trex-mode-header{max-width:850px;margin:0 0 24px}
.trex-title-row{display:block}
.trex-hero-icon{display:none!important}
.trex-mode-title{margin:0;color:var(--spruce);font-family:"Utopia Std", "Source Serif Pro", Georgia, serif;font-size:clamp(50px,6vw,84px);font-weight:400;line-height:.92;letter-spacing:-.06em}
.trex-mode-title::after{content:"";display:block;width:96px;height:5px;margin-top:18px;background:var(--leaf);border-radius:999px}
.trex-mode-sub{max-width:760px;margin:16px 0 0;color:var(--smoky-quartz);font-size:17px;font-weight:600;line-height:1.58}

/* Search form */
.trex-search{display:grid;grid-template-columns:minmax(320px,1.35fr) minmax(250px,.75fr) auto;gap:18px;align-items:end;padding:0 0 30px;background:#FFFFFF;border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;backdrop-filter:none}
.trex-field{min-width:0}
.trex-field--autocomplete{position:relative}
.trex-label{display:flex;align-items:center;gap:8px;margin:0 0 9px;color:var(--spruce);font-size:13px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.trex-label::before{display:none!important}
.trex-label__icon,.trex-pane-title__icon,.trex-filter__icon,.trex-btn__icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:currentColor}
.trex-label__icon{width:18px;height:18px;color:var(--leaf)}
.trex-label__icon svg,.trex-pane-title__icon svg,.trex-filter__icon svg,.trex-btn__icon svg{width:100%;height:100%;display:block}
.trex-input{width:100%;min-height:56px;padding:15px 16px;color:var(--warm-slate);background:var(--field-bg);border:1px solid var(--field-border);border-radius:var(--radius-corner);box-shadow:none;outline:none;font-size:16px;font-weight:600;transition:border-color .18s var(--ease),box-shadow .18s var(--ease),background-color .18s var(--ease)}
.trex-input::placeholder{color:rgba(105,98,93,.60)}
.trex-input:hover{border-color:#BDB5AA}
.trex-input:focus{background:#FFFFFF;border-color:var(--spruce-tint);box-shadow:0 0 0 4px var(--focus)}
.trex-help{margin:8px 0 0;color:var(--smoky-quartz);font-size:13px;font-weight:600}
.trex-autocomplete{position:absolute;top:100%;left:0;right:0;margin-top:8px;z-index:20;max-height:240px;overflow:auto;background:#FFFFFF;border:1px solid var(--field-border);border-radius:var(--radius-corner);box-shadow:0 12px 24px rgba(2,70,58,.10)}
.trex-autocomplete__item{padding:12px 14px;cursor:pointer;color:var(--warm-slate);font-weight:700;border-radius:var(--radius-corner)}
.trex-autocomplete__item:hover{background:var(--limestone);color:var(--spruce)}
.trex-range-row{display:flex;align-items:center;gap:12px;min-height:56px;padding:0}
.trex-range{width:100%;min-width:140px;accent-color:var(--spruce);cursor:pointer}
.trex-range::-webkit-slider-runnable-track{height:8px;border-radius:999px;background:linear-gradient(90deg,var(--spruce),var(--leaf))}
.trex-range::-webkit-slider-thumb{margin-top:-6px;width:20px;height:20px;border-radius:50%;border:3px solid #fff;background:var(--spruce)}
.trex-range-badge{min-width:78px;min-height:46px;padding:10px 12px;display:inline-flex;align-items:center;justify-content:center;text-align:center;color:#FFFFFF;background:var(--spruce);border:1px solid var(--spruce);border-radius:var(--radius-pill);font-weight:950}
.trex-range-unit{font-weight:800;opacity:.82}
.trex-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end}
.trex-btn{min-height:56px;padding:15px 28px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:var(--radius-pill);box-shadow:none;font-size:15px;font-weight:900;letter-spacing:.045em;text-transform:uppercase;line-height:1;cursor:pointer;white-space:nowrap;user-select:none;transition:background-color .18s var(--ease),border-color .18s var(--ease),color .18s var(--ease)}
.trex-btn:hover{transform:none}
.trex-btn--primary{color:#FFFFFF;background:var(--spruce);border-color:var(--spruce)}
.trex-btn--primary:hover{background:var(--spruce-tint);border-color:var(--spruce-tint)}
.trex-btn--ghost{color:var(--spruce);background:#FFFFFF;border-color:var(--field-border)}
.trex-btn--ghost:hover{background:var(--field-bg);border-color:var(--spruce-tint)}
.trex-alert{grid-column:1/-1;padding:13px 15px;color:var(--warm-slate);background:#FFF8DD;border:1px solid rgba(105,98,93,.22);border-radius:var(--radius-corner);font-weight:750}

/* Layout */
.trex-layout{max-width:none;margin:22px 0 0;display:grid;grid-template-columns:minmax(340px,410px) minmax(0,1fr);gap:0;align-items:stretch;min-height:64vh;background:#FFFFFF;border:0;border-radius:0;box-shadow:none;overflow:visible}
.trex-list-pane,.trex-map-pane{background:#FFFFFF;border:0;border-radius:0;box-shadow:none;overflow:hidden}
.trex-list-pane{border-right:1px solid var(--line);min-height:560px}
.trex-map-pane{position:sticky;top:18px;min-height:560px;height:min(680px,calc(100vh - 42px));background:#FFFFFF}
.trex-pane-head{position:relative;padding:0 18px 18px 0;background:#FFFFFF;border:0;border-bottom:1px solid var(--line)}
.trex-pane-head::before{display:none!important}
.trex-pane-title{display:flex;align-items:center;gap:8px;color:var(--spruce);font-size:21px;font-weight:900;letter-spacing:-.02em}
.trex-pane-title__icon{width:18px;height:18px;color:var(--leaf)}
.trex-pane-meta{margin-top:5px;color:var(--smoky-quartz);font-size:14px;font-weight:600}
.trex-list{max-height:calc(min(680px,100vh - 42px) - 82px);overflow:auto;overflow-x:hidden;padding:16px 18px 16px 0;display:flex;flex-direction:column;gap:0;background:#FFFFFF;scrollbar-width:thin;scrollbar-color:rgba(2,70,58,.34) rgba(234,231,228,.55)}
.trex-list::-webkit-scrollbar{width:10px}
.trex-list::-webkit-scrollbar-track{background:rgba(234,231,228,.55)}
.trex-list::-webkit-scrollbar-thumb{background:rgba(2,70,58,.34);border-radius:999px;border:2px solid rgba(234,231,228,.55)}

/* Filters */
.trex-filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px}
.trex-filters--standalone[hidden]{display:none!important}
.trex-filters__title{width:100%;margin:0 0 1px;color:var(--smoky-quartz);font-size:12px;font-weight:900;letter-spacing:.075em;text-transform:uppercase}
.trex-filter{display:inline-flex;align-items:center;gap:7px;min-height:0;padding:0;color:var(--spruce);background:transparent;border:0;border-radius:0;box-shadow:none;font-size:13px;font-weight:850;cursor:pointer;transition:color .14s ease}
.trex-filter:hover{transform:none;box-shadow:none;color:var(--spruce-tint)}
.trex-filter input{width:17px;height:17px;margin:0;flex:0 0 auto;accent-color:var(--spruce)}
.trex-filter__icon{width:16px;height:16px;color:currentColor}
.trex-filter:has(input:checked){color:var(--spruce);background:transparent;border:0;box-shadow:none}

/* Result cards become list rows, not bubbles. */
.trex-card,button.trex-card,a.trex-card{position:relative;display:block;width:100%;max-width:100%;min-height:92px;margin:0;padding:16px 0 16px 14px;text-align:left;appearance:none;-webkit-appearance:none;font:inherit;color:inherit;background:#FFFFFF;border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;cursor:pointer;overflow:hidden;transition:background-color .16s ease}
.trex-card::before{content:"";position:absolute;left:0;top:16px;bottom:16px;width:4px;background:var(--leaf)}
.trex-card::after{display:none}
.trex-card:hover,.trex-card.is-active{background:var(--field-bg);border-color:var(--line);box-shadow:none;transform:none}
.trex-card *{box-sizing:border-box;min-width:0}
.trex-card__top{display:flex!important;align-items:flex-start;justify-content:space-between;gap:12px;width:100%}
.trex-card__title{display:block!important;color:var(--warm-slate);font-size:16px;font-weight:900;line-height:1.25;letter-spacing:-.01em;overflow-wrap:anywhere}
.trex-card__dist{flex:0 0 auto;padding:0;color:var(--spruce);background:transparent;border:0;border-radius:0;box-shadow:none;font-size:12px;font-weight:950}
.trex-card__sub,.trex-card__zip,.trex-card__note{display:block!important;color:rgba(61,57,54,.73);font-size:13px;overflow-wrap:anywhere}
.trex-card__sub{margin-top:7px}.trex-card__zip{margin-top:6px}.trex-card__note{margin-top:7px;line-height:1.42}
.trex-card__meta{display:grid!important;gap:7px;margin-top:11px;color:rgba(61,57,54,.84);font-size:13px;overflow-wrap:anywhere}
.trex-card__details{display:block!important;height:auto!important;overflow:visible!important;visibility:visible!important;opacity:1!important}
.trex-card__badge{display:inline-flex;align-items:center;gap:6px;width:max-content;max-width:100%;margin-bottom:9px;padding:0;color:var(--spruce);background:transparent;border:0;border-radius:0;font-size:10.5px;font-weight:950;letter-spacing:.055em;line-height:1.2;text-transform:uppercase;white-space:normal}
.trex-card__badge::before{content:"";width:6px;height:6px;border-radius:999px;background:var(--leaf);opacity:.9}
.trex-chip{display:inline-flex;align-items:center;gap:8px;min-width:0}.trex-dot{width:8px;height:8px;flex:0 0 auto;border-radius:999px;background:var(--leaf)}
.trex-link{color:var(--spruce);font-weight:900;text-decoration:none;border-bottom:1px solid rgba(2,70,58,.22)}
.trex-link:hover{color:#013d33;border-bottom-color:var(--leaf)}

/* Category accents */
.trex-card--contractor::before{background:var(--leaf)}
.trex-card--opco::before,.trex-card--national::before{background:var(--spruce)}
.trex-card--retail-lowes::before{background:var(--blue-ridge)}
.trex-card--retail-homedepot::before{background:var(--swallowtail)}
.trex-card__badge--contractor,.trex-card__badge--opco,.trex-card__badge--retail,.trex-card__badge--retail-lowes,.trex-card__badge--retail-homedepot{background:transparent;color:var(--spruce)}

/* Address/details */
.trex-address{margin-top:12px;padding:10px 11px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;color:var(--warm-slate);background:var(--field-bg);border:1px solid var(--field-border);border-radius:var(--radius-corner);text-decoration:none;box-shadow:none}
.trex-address:hover{color:var(--warm-slate);border-color:var(--spruce-tint);background:#FFFFFF}
.trex-address__icon{color:var(--spruce);font-size:20px;font-weight:950}.trex-address__text{display:grid;gap:2px;line-height:1.3}.trex-address__label,.trex-popup__label{color:var(--spruce)!important;font-size:9.5px!important;font-weight:950;letter-spacing:.09em;text-transform:uppercase}.trex-address__text strong{color:var(--warm-slate);font-size:13px}.trex-address__text span{color:rgba(61,57,54,.76);font-size:12px}.trex-address__action{color:var(--spruce);font-size:11px;font-weight:950;white-space:nowrap}.trex-address__phone{width:max-content;max-width:100%;margin-top:5px;display:inline-flex;align-items:center;gap:5px;color:var(--spruce);font-size:13px;font-weight:950;text-decoration:none}.trex-address__phone:hover{color:var(--leaf);text-decoration:underline;text-underline-offset:3px}
.trex-form-anchor{width:100%;margin-top:12px;padding:10px 12px;display:flex!important;align-items:center;justify-content:space-between;gap:10px;color:var(--spruce);background:var(--field-bg);border:1px solid var(--field-border);border-radius:var(--radius-corner);font:inherit;font-size:13px;font-weight:900;text-align:left;cursor:pointer;visibility:visible!important;opacity:1!important}.trex-form-anchor:hover{background:#FFFFFF;border-color:var(--spruce-tint)}.trex-form-anchor--popup{width:auto;margin-top:0;padding:7px 10px;display:inline-flex!important}

/* Map */
.trex-map{width:100%;height:100%;min-height:inherit}.trex-map-hint{position:absolute;left:16px;top:16px;z-index:400;max-width:calc(100% - 32px);padding:10px 13px;color:var(--spruce);background:#FFFFFF;border:1px solid var(--field-border);border-radius:var(--radius-corner);box-shadow:none;font-size:13px;font-weight:950}.trex-map-pin{width:34px;height:34px;border-radius:999px;display:flex;align-items:center;justify-content:center;color:#fff;border:3px solid #fff;box-shadow:0 10px 24px rgba(2,33,27,.22);font-size:14px;font-weight:950}.trex-map-pin--user{background:var(--spruce)}.trex-map-pin--contractor{background:var(--leaf);color:#20310C}.trex-map-pin--opco{background:var(--spruce-tint)}.trex-map-pin--retail-lowes{background:#386C66}.trex-map-pin--retail-homedepot{background:#8A7042}.trex-map-pin--national{background:var(--spruce)}
.gm-style,.gm-style button,.gm-style input{font-family:"Proxima Nova","Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif!important}.gm-style .gm-style-iw-c{border-radius:12px!important;box-shadow:0 12px 28px rgba(2,33,27,.16)!important}.trex-popup{min-width:230px;max-width:290px;color:var(--warm-slate);font-family:inherit;line-height:1.35}.trex-popup__title{margin-bottom:9px;color:var(--warm-slate);font-size:16px;font-weight:950}.trex-popup__address{padding:9px 10px;display:grid;gap:3px;background:var(--limestone);border-left:4px solid var(--leaf);border-radius:8px}.trex-popup__address strong{color:var(--warm-slate);font-size:14px}.trex-popup__address span,.trex-popup__location{color:rgba(61,57,54,.76);font-size:13px}.trex-popup__directions,.trex-popup__phone{display:inline-block;margin-top:9px;color:var(--spruce);font-weight:900;text-decoration:underline;text-underline-offset:3px}.trex-popup__distance{margin-top:7px;color:rgba(61,57,54,.68);font-size:12px;font-weight:750}.trex-popup__address .trex-popup__phone{margin-top:4px;width:max-content;max-width:100%}

/* Contact */
.trex-contact-section{max-width:none;margin:38px 0 0;text-align:left;scroll-margin-top:24px}.trex-contact-section__prompt{margin:0 0 16px;color:var(--spruce);font-family:"Utopia Std","Source Serif Pro",Georgia,serif;font-size:clamp(30px,3vw,44px);font-weight:400;line-height:1;letter-spacing:-.045em;text-align:left}.trex-contact-section__frame{display:block;width:100%;height:940px;border:1px solid var(--line);border-radius:0;background:#FFFFFF;box-shadow:none}

/* Optional mode switch support */
.trex-mode-switch{display:flex;gap:10px;margin:0 0 18px}.trex-mode-switch__btn{flex:1;min-height:104px;padding:15px 16px;text-align:left;display:flex;flex-direction:column;gap:5px;color:var(--spruce);background:#FFFFFF;border:1px solid var(--line);border-radius:var(--radius-corner);box-shadow:none;cursor:pointer}.trex-mode-switch__btn:hover{border-color:var(--spruce-tint)}.trex-mode-switch__btn.is-active{color:#fff;background:var(--spruce);border-color:var(--spruce)}.trex-mode-switch__eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.09em;opacity:.74;font-weight:900}.trex-mode-switch__title{font-size:17px;font-weight:950;line-height:1.1}.trex-mode-switch__help{font-size:12.5px;color:var(--muted);line-height:1.42}.trex-mode-switch__btn.is-active .trex-mode-switch__help{color:rgba(255,255,255,.86)}.trex-mode-switch__btn:disabled{opacity:.56;cursor:not-allowed}
.trex-footer{border-top:1px solid var(--line);background:#FFFFFF}.trex-footer__inner{max-width:var(--max);margin:0 auto;padding:16px 18px;color:var(--muted);font-size:13px}

@media (max-width:1060px){.trex-search{grid-template-columns:1fr 1fr}.trex-actions{grid-column:1/-1;justify-content:flex-start}.trex-layout{grid-template-columns:380px minmax(0,1fr)}}
@media (max-width:900px){.trex-main{padding:28px 12px 34px}.trex-topbar__inner{padding:12px 14px 14px}.trex-brand__title{font-size:28px}.trex-search{grid-template-columns:1fr}.trex-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.trex-btn{width:100%}.trex-layout{grid-template-columns:1fr}.trex-list-pane{border-right:0;border-bottom:1px solid var(--line);min-height:0}.trex-map-pane{position:relative;top:auto;order:-1;min-height:430px;height:430px}.trex-list{max-height:420px;padding-right:0}.trex-pane-head{padding-right:0}}
@media (max-width:560px){body{background:#FFFFFF}.trex-main{padding:24px 10px 28px}.trex-topbar{position:relative}.trex-topbar__inner{min-height:auto;padding-left:10px;padding-right:10px}.trex-brand__mark{width:38px;height:38px}.trex-brand__title{font-size:26px}.trex-brand__sub{display:none}.trex-mode-title{font-size:44px}.trex-mode-sub{font-size:15px}.trex-range-row{display:grid;grid-template-columns:1fr auto}.trex-actions{grid-template-columns:1fr}.trex-map-pane{height:360px;min-height:360px}.trex-list{max-height:430px}.trex-card__top{display:grid!important;gap:8px}.trex-card__dist{justify-self:start}.trex-filter{flex:0 1 auto}.trex-address{grid-template-columns:auto minmax(0,1fr)}.trex-address__action{grid-column:2}.trex-contact-section__frame{height:1120px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
