/* Snoozer Bed Builder · 2026 full-width redesign. Everything is scoped to .snzb */
.snzb{font-family:'Open Sans',Arial,sans-serif;color:#2d221a;background:#fff;width:calc(100vw - var(--snzb-sb,0px));max-width:none;margin-left:calc(50% - 50vw + var(--snzb-sb,0px) / 2);margin-right:0;position:relative;-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.5;text-align:left;}
.snzb *,.snzb *::before,.snzb *::after{box-sizing:border-box;}
.snzb :where(h1,h2,h3,p,figure,ul,li){margin:0;padding:0;border:0;background:none;}
.snzb h1,.snzb h2{font-family:'Open Sans',Arial,sans-serif;color:inherit;font-weight:800;text-transform:uppercase;letter-spacing:.01em;text-wrap:balance;}
.snzb h1::before,.snzb h1::after,.snzb h2::before,.snzb h2::after{content:none;display:none;}
.snzb p{text-wrap:pretty;}
.snzb img{display:block;max-width:100%;height:auto;border:0;border-radius:0;box-shadow:none;margin:0;padding:0;}
.snzb a{text-decoration:none !important;box-shadow:none;}
.snzb [role=button]{-webkit-appearance:none;appearance:none;font:inherit;color:inherit;background:none;border:0;border-radius:0;box-shadow:none;margin:0;padding:0;min-height:0;height:auto;width:auto;text-transform:none;letter-spacing:normal;line-height:inherit;text-align:left;cursor:pointer;}
.snzb [role=button]:focus-visible,.snzb a:focus-visible{outline:2px solid #2d221a;outline-offset:3px;}
.snzb-wrap{max-width:1240px;margin:0 auto;padding:0 clamp(20px,4vw,48px);}
.snzb-eyebrow{font-size:12px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:#6b5d51;}
.snzb-h2{font-size:clamp(30px,4vw,50px);line-height:1.04;}
.snzb-lede{font-size:16px;line-height:1.7;color:#6b5d51;}
.snzb-script{display:block;font-family:'Mrs Saint Delafield',cursive;font-weight:400;text-transform:none;letter-spacing:0;font-size:1.9em;line-height:.78;margin:.02em 0 0 .12em;padding-bottom:.08em;}
.snzb-btns{display:flex;gap:14px;flex-wrap:wrap;align-items:center;}
.snzb .snzb-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:#2d221a;color:#fff !important;padding:16px 28px;font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;border-radius:2px;border:1.5px solid #2d221a;line-height:1.2;transition:background .2s;cursor:pointer;}
.snzb .snzb-btn:hover{background:#4a3a2d;border-color:#4a3a2d;color:#fff !important;}
.snzb .snzb-btn--outline{background:transparent;color:#2d221a !important;}
.snzb .snzb-btn--outline:hover{background:rgba(45,34,26,.07);color:#2d221a !important;border-color:#2d221a;}
.snzb .snzb-btn--off,.snzb .snzb-btn--off:hover{background:#8a7c6f;border-color:#8a7c6f;cursor:not-allowed;}
.snzb .snzb-link{font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#2d221a !important;border-bottom:1.5px solid #2d221a;padding:0 0 3px;}
.snzb .snzb-link:hover{color:#6b5d51 !important;border-color:#6b5d51;}
.snzb .snzb-link--quiet{color:#6b5d51 !important;border-color:transparent;}

/* hero */
.snzb-hero{background:#ede5da;display:flex;flex-wrap:wrap;align-items:stretch;}
.snzb-hero-copy{flex:1 1 480px;display:flex;align-items:center;padding:clamp(56px,8vw,120px) clamp(20px,5vw,80px);}
.snzb-hero-inner{max-width:580px;display:flex;flex-direction:column;align-items:flex-start;}
.snzb-hero-eyebrow{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;margin:0 0 26px;font-size:13px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;}
.snzb-badge{background:#2d221a;color:#fff;font-size:11px;letter-spacing:.18em;border-radius:999px;padding:5px 12px;}
.snzb-h1{font-size:clamp(36px,4.8vw,66px);line-height:1.02;}
.snzb-hero-text{font-size:clamp(16px,1.4vw,19px);line-height:1.65;color:#4a3d32;max-width:500px;margin:clamp(36px,4vw,52px) 0 36px !important;}
.snzb-hero-photo{flex:1 1 480px;position:relative;aspect-ratio:1 / 1;max-height:760px;background:#d9cdbb;align-self:center;overflow:hidden;}
.snzb-hero-photo img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;}

/* builder shell */
.snzb-builder{padding:clamp(48px,6vw,88px) 0 clamp(56px,7vw,96px);}
.snzb-progress{display:flex;flex-direction:column;gap:16px;margin:0 0 clamp(36px,4.5vw,56px);}
.snzb-bar{height:4px;background:#ece4d8;border-radius:2px;overflow:hidden;}
.snzb-bar span{display:block;height:100%;background:#2d221a;transition:width .4s ease;}
.snzb-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:34px;}
.snzb-crumbs-label{font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#6b5d51;margin-right:6px;}
.snzb .snzb-crumb{font-size:13px;font-weight:600;line-height:1.3;background:#f5f0e9;padding:8px 14px;border-radius:999px;color:#2d221a;transition:background .2s;}
.snzb .snzb-crumb:hover{background:#ede5da;}
.snzb-crumb-sep{color:#a3968a;font-size:15px;}
.snzb-head{display:flex;flex-wrap:wrap;gap:20px clamp(32px,5vw,72px);align-items:flex-end;margin:0 0 clamp(32px,4vw,48px);}
.snzb-head > div{flex:1 1 360px;display:flex;flex-direction:column;gap:14px;}
.snzb-head > p{flex:1 1 420px;}
.snzb-stepnav{display:flex;gap:28px;flex-wrap:wrap;align-items:center;margin-top:32px;}
.snzb-loading,.snzb-empty{padding:28px;background:#f5f0e9;border-radius:4px;font-size:15px;line-height:1.6;color:#4a3d32;}
.snzb-footer{margin:clamp(48px,6vw,72px) 0 0 !important;padding-top:24px !important;border-top:1px solid #ece4d8 !important;font-size:14px;line-height:1.6;color:#6b5d51;text-align:center;}

/* step 1 · size */
.snzb-sizes{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr));gap:14px;}
.snzb .snzb-size{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:24px 14px;background:#f5f0e9;border-radius:4px;outline:2px solid transparent;outline-offset:-2px;transition:background .2s,outline-color .2s;}
.snzb .snzb-size:hover{background:#ede5da;}
.snzb .snzb-size.is-on{outline-color:#2d221a;background:#ede5da;}
.snzb-size-img{display:flex;align-items:flex-end;justify-content:center;height:96px;width:100%;}
.snzb-size-img img{max-height:96px;width:auto;mix-blend-mode:multiply;}
.snzb-size-name{font-size:14px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;line-height:1.2;}
.snzb-size-breeds{font-size:13px;line-height:1.45;color:#6b5d51;}

/* photo choice cards */
.snzb-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr));gap:20px;}
.snzb-cards--few,.snzb-cards--two{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));}
.snzb .snzb-card{display:flex;flex-direction:column;background:#f5f0e9;border-radius:4px;overflow:hidden;transition:background .2s;}
.snzb .snzb-card:hover{background:#ede5da;}
.snzb-card-photo{position:relative;display:block;aspect-ratio:1 / 1;background:#d9cdbb;overflow:hidden;}
.snzb-cards--two .snzb-card-photo{aspect-ratio:4 / 3;}
.snzb-card-photo img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;transition:transform .6s ease;}
.snzb .snzb-card:hover .snzb-card-photo img{transform:scale(1.04);}
.snzb-card-body{display:flex;flex-direction:column;gap:8px;padding:20px 22px 24px;flex:1 1 auto;}
.snzb-card-sub{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#6b5d51;}
.snzb-card-title{font-size:18px;font-weight:800;text-transform:uppercase;line-height:1.15;letter-spacing:.01em;}
.snzb-card-desc{font-size:14.5px;line-height:1.6;color:#4a3d32;}
.snzb-card-go{margin-top:auto;padding-top:10px;display:inline-flex;gap:8px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;}
.snzb-card-go span{transition:transform .2s;}
.snzb .snzb-card:hover .snzb-card-go span{transform:translateX(3px);}

/* results · every product for the final step, stacked */
.snzb-matches-head{display:flex;flex-direction:column;gap:24px;margin:0 0 clamp(32px,4vw,48px);}
.snzb-jump{display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
.snzb-matches{display:flex;flex-direction:column;}
.snzb-match{display:flex;flex-direction:column;gap:clamp(24px,3vw,36px);padding:clamp(40px,5vw,64px) 0;border-top:1px solid #ece4d8;scroll-margin-top:110px;}
.snzb-match-top{display:flex;flex-wrap:wrap;gap:clamp(28px,4.5vw,64px);align-items:center;}
.snzb .snzb-match-hero{flex:1 1 520px;position:relative;display:block;aspect-ratio:1 / 1;max-height:720px;background:#f5f0e9;border-radius:4px;overflow:hidden;}
.snzb-match-hero img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;}
.snzb-match-info{flex:1 1 380px;min-width:0;display:flex;flex-direction:column;gap:24px;}
.snzb-match-side{display:flex;flex-direction:column;align-items:flex-start;gap:16px;padding-top:20px;border-top:1px solid #ece4d8;}
.snzb-vgrid-label{margin-top:clamp(8px,1.5vw,16px);}
.snzb-match-count{font-size:14px;color:#6b5d51;}
.snzb-match-count strong{color:#2d221a;}
.snzb-vgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:clamp(20px,2.4vw,32px);}
.snzb-v{display:flex;flex-direction:column;gap:16px;min-width:0;}
.snzb .snzb-v-photo{position:relative;display:block;aspect-ratio:1 / 1;background:#f5f0e9;border-radius:4px;overflow:hidden;}
.snzb-v-photo img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;transition:transform .6s ease;}
.snzb .snzb-v-photo:hover img{transform:scale(1.03);}
.snzb-v.is-out .snzb-v-photo img{opacity:.5;}
.snzb-v-body{display:flex;flex-direction:column;gap:10px;}
.snzb-v-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;}
.snzb-v-name{font-family:'Bitter',Georgia,serif;font-size:21px;font-weight:500;line-height:1.2;}
.snzb-v-price{font-size:16px;font-weight:700;white-space:nowrap;}
.snzb-v-price del{opacity:.55;font-weight:400;margin-right:4px;}
.snzb-v-price ins{text-decoration:none;background:none;}
.snzb-v-price .screen-reader-text{position:absolute !important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}
.snzb-v-meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;color:#6b5d51;}
.snzb-v-btns{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:4px;}
.snzb .snzb-btn--sm{padding:12px 20px;font-size:12px;}
.snzb-match:last-child{border-bottom:1px solid #ece4d8;}
.snzb-result-photo{flex:1 1 360px;position:relative;aspect-ratio:1 / 1;max-height:600px;background:#f5f0e9;border-radius:4px;overflow:hidden;}
.snzb-result-photo > img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;}
.snzb-flag{position:absolute;left:18px;top:18px;background:#6d2529;color:#fff;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:8px 14px;border-radius:2px;}
.snzb-colorcard{position:absolute;left:18px;bottom:18px;display:flex;align-items:center;gap:14px;background:#fff;padding:10px 20px 10px 10px;border-radius:4px;max-width:calc(100% - 36px);}
.snzb-colorcard img{width:52px;height:52px;border-radius:50%;object-fit:cover;flex:none;max-width:none;}
.snzb-colorcard > span{display:flex;flex-direction:column;gap:2px;min-width:0;}
.snzb-colorcard-k{font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#6b5d51;}
.snzb-colorcard-v{font-family:'Bitter',Georgia,serif;font-size:19px;font-weight:500;line-height:1.2;}
.snzb-colorcard-s{font-size:13px;color:#6b5d51;}
.snzb-result-body{flex:1 1 380px;min-width:0;display:flex;flex-direction:column;gap:20px;}
.snzb-match-head{display:flex;flex-direction:column;gap:10px;}
.snzb-tabs{display:flex;flex-wrap:wrap;gap:8px;}
.snzb .snzb-tab{padding:10px 16px;border-radius:999px;border:1.5px solid #d9cdbb;background:#fff;color:#2d221a;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;line-height:1.2;transition:border-color .2s;}
.snzb .snzb-tab:hover{border-color:#2d221a;}
.snzb .snzb-tab.is-on{background:#2d221a;border-color:#2d221a;color:#fff;}
.snzb-prod{display:flex;flex-direction:column;gap:8px;padding:20px 0;border-top:1px solid #ece4d8;border-bottom:1px solid #ece4d8;}
.snzb h3.snzb-prod-name{font-family:'Bitter',Georgia,serif;font-size:clamp(22px,2.4vw,30px);font-weight:500;line-height:1.2;text-transform:none;letter-spacing:0;color:#2d221a;margin:0;}
.snzb-prod-desc{font-size:15px;line-height:1.6;color:#4a3d32;}
.snzb-prod-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:16px 0;border-top:1px solid #ece4d8;border-bottom:1px solid #ece4d8;}
.snzb-price{font-size:20px;font-weight:700;}
.snzb-price del{opacity:.55;font-weight:400;margin-right:6px;}
.snzb-price ins{text-decoration:none;background:none;}
.snzb-price .screen-reader-text{position:absolute !important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}
.snzb-stock{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;}
.snzb-stock.is-instock{color:#28602c;}.snzb-stock.is-outofstock{color:#8b1e25;}.snzb-stock.is-backorder{color:#775500;}.snzb-stock.is-unavailable,.snzb-stock.is-unknown{color:#555;}
.snzb-colors{display:flex;flex-direction:column;gap:12px;}
.snzb-colors-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 16px;font-size:14px;}
.snzb-colors-count{color:#6b5d51;}
.snzb-sws{display:flex;flex-wrap:wrap;gap:10px;}
.snzb .snzb-sw{position:relative;width:48px;height:48px;border-radius:50%;overflow:hidden;box-shadow:0 0 0 1px #e2d8ca;transition:box-shadow .15s;}
.snzb .snzb-sw img{width:100%;height:100%;max-width:none;object-fit:cover;transform:scale(1.5);}
.snzb .snzb-sw:hover{box-shadow:0 0 0 1px #2d221a;}
.snzb .snzb-sw.is-on{box-shadow:0 0 0 2px #fff,0 0 0 4px #2d221a;}
.snzb .snzb-sw.is-out img{opacity:.4;}
.snzb .snzb-sw.is-out::after{content:"";position:absolute;left:50%;top:-10%;width:2px;height:120%;margin-left:-1px;background:#6d2529;transform:rotate(45deg);}
.snzb-note{font-size:13px;line-height:1.6;color:#6b5d51;}

/* help band */
.snzb-help{background:#ede5da;padding:clamp(64px,8vw,112px) clamp(20px,4vw,48px);text-align:center;}
.snzb-help-inner{max-width:720px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:18px;}
.snzb-help .snzb-eyebrow{color:#2d221a;}
.snzb-help p{font-size:16px;line-height:1.7;color:#4a3d32;max-width:560px;}
.snzb-help .snzb-btns{justify-content:center;margin-top:8px;}
.snzb-phone{font-size:14px;color:#4a3d32;}
.snzb-phone a{color:#2d221a !important;font-weight:700;}

@media (max-width:599px){
  .snzb-vgrid{grid-template-columns:1fr 1fr;gap:20px 12px;}
  .snzb-v-top{flex-direction:column;gap:2px;}
  .snzb-v-name{font-size:17px;}
  .snzb-v-btns{flex-direction:column;align-items:flex-start;}
  .snzb .snzb-card{flex-direction:row;}
  .snzb-card-photo,.snzb-cards--two .snzb-card-photo{flex:0 0 40%;aspect-ratio:auto;min-height:160px;}
  .snzb-card-body{padding:16px 16px 18px;gap:6px;}
  .snzb-card-title{font-size:15px;}
  .snzb-card-desc{font-size:13.5px;line-height:1.5;}
  .snzb-sizes{grid-template-columns:1fr 1fr;gap:10px;}
  .snzb-size-img{height:72px;}.snzb-size-img img{max-height:72px;}
  .snzb-colorcard{left:12px;bottom:12px;padding:8px 14px 8px 8px;}
  .snzb-colorcard img{width:42px;height:42px;}
  .snzb-colorcard-v{font-size:16px;}
}
@media (prefers-reduced-motion:reduce){.snzb *{transition:none !important;}}

/* Theme shield: the theme paints every <button> blue with white uppercase text. Re-assert the builder's own look. */
.snzb [role=button]{background-image:none !important;text-shadow:none !important;}
.snzb.snzb [role=button].snzb-size{background:#f5f0e9 !important;color:#2d221a !important;border:0 !important;border-radius:4px !important;text-transform:none !important;letter-spacing:0 !important;font-weight:400 !important;}
.snzb.snzb [role=button].snzb-size:hover,.snzb.snzb [role=button].snzb-size.is-on{background:#ede5da !important;}
.snzb.snzb [role=button].snzb-card{background:#f5f0e9 !important;color:#2d221a !important;border:0 !important;border-radius:4px !important;text-transform:none !important;letter-spacing:0 !important;font-weight:400 !important;padding:0 !important;}
.snzb.snzb [role=button].snzb-card:hover{background:#ede5da !important;}
.snzb.snzb [role=button].snzb-crumb{background:#f5f0e9 !important;color:#2d221a !important;border:0 !important;border-radius:999px !important;text-transform:none !important;letter-spacing:0 !important;font-weight:600 !important;}
.snzb.snzb [role=button].snzb-crumb:hover{background:#ede5da !important;}
.snzb.snzb [role=button].snzb-link{background:transparent !important;border-radius:0 !important;border-top:0 !important;border-left:0 !important;border-right:0 !important;}
.snzb.snzb [role=button].snzb-tab{background:#fff !important;color:#2d221a !important;border:1.5px solid #d9cdbb !important;border-radius:999px !important;}
.snzb.snzb [role=button].snzb-tab:hover{border-color:#2d221a !important;}
.snzb.snzb [role=button].snzb-tab.is-on{background:#2d221a !important;border-color:#2d221a !important;color:#fff !important;}
.snzb.snzb [role=button].snzb-sw{background:#f5f0e9 !important;border:0 !important;border-radius:50% !important;padding:0 !important;}
.snzb.snzb [role=button].snzb-size .snzb-size-name,.snzb.snzb [role=button].snzb-card .snzb-card-title,.snzb.snzb [role=button].snzb-card .snzb-card-go{text-transform:uppercase !important;}
.snzb.snzb [role=button].snzb-size .snzb-size-name{font-weight:800 !important;letter-spacing:.04em !important;}
.snzb [role=button]{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;}
