/*
Theme Name: Tote Couture
Theme URI: https://totecouture.us
Author: Tote Couture
Description: Tote Couture's storefront theme. Supermarket signage in black and white: shelf-edge rules, price tags and receipt type. Media slots for hero photography and video are set in Appearance → Customize → Tote Couture media.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: All rights reserved
Text Domain: tote-couture
*/

/* Layout: a supermarket shelf. Strict rows, flush left, thick ink rules between products, prices aligned right. Committed Paper (light) look: the seal exists only as black on white. */
:root{
  --paper:#ffffff;
  --paper-shade:#f1f1ee;
  --ink:#0b0b0b;
  --ink-muted:#5b5b58;
  --line:#0b0b0b;
  --fill-ink:#0b0b0b;
  --on-ink:#ffffff;
  --font-display:Jost,Futura,"Century Gothic","Avenir Next",sans-serif;
  --font-sans:Archivo,"Helvetica Neue",Arial,sans-serif;
  --font-mono:"IBM Plex Mono","Courier New",ui-monospace,monospace;
  --space-2:8px;--space-4:16px;--space-6:24px;--space-12:48px;
  --radius-tag:6px;
  --rule:2px solid var(--line);
  --max:1180px;
  color-scheme:light;
}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font:400 16px/25px var(--font-sans);-webkit-font-smoothing:antialiased}
.wrap{max-width:var(--max);margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
@media(min-width:720px){.wrap{padding-left:max(32px,env(safe-area-inset-left,0px));padding-right:max(32px,env(safe-area-inset-right,0px))}}

/* type styles from the design system */
.display-xl{font:700 clamp(44px,8vw,84px)/.92 var(--font-display);letter-spacing:.04em;text-transform:uppercase;margin:0;text-wrap:balance}
.display-l{font:700 clamp(28px,4.4vw,40px)/1 var(--font-display);letter-spacing:.05em;text-transform:uppercase;margin:0;text-wrap:balance}
.shelf-label{font:600 12px/16px var(--font-display);letter-spacing:.18em;text-transform:uppercase}
.receipt{font:400 12px/18px var(--font-mono);letter-spacing:.02em}
.price{font:600 clamp(40px,6vw,56px)/1 var(--font-mono);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.muted{color:var(--ink-muted)}
p{margin:0}
a{color:inherit}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px}

/* header */
.top{border-bottom:var(--rule);position:sticky;top:env(safe-area-inset-top,0px);background:var(--paper);z-index:5}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);background:var(--paper);z-index:10}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding-block:10px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand img{width:56px;height:56px;display:block}
.nav{display:flex;gap:var(--space-6);align-items:center}
.nav a{text-decoration:none}
.nav .hide-s{display:none}
@media(min-width:720px){.nav .hide-s{display:inline}}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--fill-ink);color:var(--on-ink);border:var(--rule);padding:14px 22px;text-decoration:none;cursor:pointer;font:600 12px/16px var(--font-display);letter-spacing:.18em;text-transform:uppercase;border-radius:0}
.btn:hover{background:var(--paper);color:var(--ink)}
.btn.ghost{background:var(--paper);color:var(--ink)}
.btn.ghost:hover{background:var(--fill-ink);color:var(--on-ink)}
.btn.small{padding:10px 14px}

/* media slots: placeholders sized to final aspect ratios */
.slot{position:relative;background:var(--paper-shade);border:var(--rule);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;padding:var(--space-4);max-width:100%;overflow:hidden}
.slot img,.slot video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.slot .shelf-label{max-width:28ch}
.slot .receipt{color:var(--ink-muted)}
.slot .play{width:64px;height:64px;border-radius:9999px;background:var(--fill-ink);color:var(--on-ink);display:grid;place-items:center;margin-bottom:6px}
.slot .play svg{width:22px;height:22px;margin-left:4px;fill:currentColor}

/* hero */
.hero{border-bottom:var(--rule)}
.hero .wrap{display:grid;gap:var(--space-6);padding-block:var(--space-12)}
@media(min-width:900px){.hero .wrap{grid-template-columns:1.05fr .95fr;align-items:stretch;gap:var(--space-12)}}
.hero-copy{display:flex;flex-direction:column;gap:var(--space-6);justify-content:center;min-width:0}
.hero-copy .lede{max-width:46ch;font-size:18px;line-height:28px}
.hero-buy{display:flex;align-items:center;gap:var(--space-6);flex-wrap:wrap}
.sticker{width:132px;height:132px;border-radius:9999px;background:var(--fill-ink);color:var(--on-ink);display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-8deg);flex:none}
.sticker .price{font-size:40px}
.sticker .shelf-label{font-size:10px;letter-spacing:.16em}
.hero-slot{aspect-ratio:4/5;min-height:0}

/* shelf strip */
.strip{background:var(--fill-ink);color:var(--on-ink);overflow:hidden}
.strip .wrap{display:flex;justify-content:space-between;gap:var(--space-6);flex-wrap:wrap;padding-block:14px}

/* sections */
section{border-bottom:var(--rule)}
.sec{padding-block:var(--space-12)}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-6)}
.sec-head .shelf-label{display:block;margin-bottom:10px}

/* film */
.film{aspect-ratio:16/9}
.reels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4);margin-top:var(--space-4)}
.reel{aspect-ratio:9/16;padding:var(--space-2)}
.reel .shelf-label{font-size:10px;letter-spacing:.12em}
.reel .play{width:44px;height:44px}
.reel .play svg{width:16px;height:16px}
@media(max-width:520px){.reel .receipt{display:none}}

/* shelf of products */
.shelf{border-top:var(--rule)}
.product{display:grid;grid-template-columns:96px minmax(0,1fr);gap:var(--space-4);padding-block:var(--space-6);border-bottom:var(--rule);align-items:start}
.product .thumb{aspect-ratio:1/1;padding:4px}
.product .thumb .shelf-label{font-size:9px;letter-spacing:.1em}
.product .info{display:flex;flex-direction:column;gap:6px;min-width:0}
.product .tag{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);border:var(--rule);border-radius:var(--radius-tag);padding:var(--space-2) var(--space-4)}
.product .tag .price{font-size:34px}
.product.hero-item .tag{background:var(--fill-ink);color:var(--on-ink);border-color:var(--fill-ink)}
.product.hero-item .tag .muted{color:var(--on-ink)}
@media(min-width:760px){
  .product{grid-template-columns:160px minmax(0,1fr) 240px;gap:var(--space-6);align-items:center}
  .product .tag{grid-column:auto;flex-direction:column;align-items:flex-end;padding:var(--space-4)}
  .product .tag .price{font-size:48px}
}

/* steps */
.steps{display:grid;gap:0;border-top:var(--rule)}
@media(min-width:760px){.steps{grid-template-columns:repeat(3,minmax(0,1fr))}}
.step{padding:var(--space-6) 0;border-bottom:var(--rule);display:flex;flex-direction:column;gap:10px}
@media(min-width:760px){.step{padding:var(--space-6);border-bottom:0;border-right:var(--rule)}.step:first-child{padding-left:0}.step:last-child{border-right:0}}
.step .num{font:600 48px/1 var(--font-mono)}
.step p.body{max-width:34ch}

/* receipt card */
.prov .wrap{display:grid;gap:var(--space-12)}
@media(min-width:900px){.prov .wrap{grid-template-columns:1fr 380px;align-items:center}}
.prov-copy{display:flex;flex-direction:column;gap:var(--space-4);max-width:52ch}
.ticket{background:var(--paper);border:var(--rule);padding:var(--space-6);font:400 13px/21px var(--font-mono);box-shadow:8px 8px 0 var(--ink);max-width:380px;width:100%;justify-self:center}
.ticket .c{text-align:center}
.ticket hr{border:0;border-top:2px dashed var(--ink);margin:12px 0}
.ticket .row{display:flex;justify-content:space-between;gap:12px}
.ticket .row span:first-child{min-width:0;overflow-wrap:anywhere}
.ticket .total{font-weight:600;font-size:15px}

/* waitlist */
.join{background:var(--fill-ink);color:var(--on-ink);border-bottom:0}
.join .wrap{display:grid;gap:var(--space-6);padding-block:var(--space-12)}
@media(min-width:900px){.join .wrap{grid-template-columns:1fr 1fr;align-items:center;gap:var(--space-12)}}
.join .lede{max-width:44ch;color:var(--on-ink);opacity:.86}
form{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}
label.f{display:flex;flex-direction:column;gap:6px}
input,select{font:400 16px/24px var(--font-sans);color:var(--ink);background:var(--paper);border:2px solid var(--on-ink);border-radius:0;padding:12px 14px;width:100%}
input:focus-visible,select:focus-visible{outline:3px solid var(--on-ink);outline-offset:2px}
.join .btn{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.join .btn:hover{background:var(--fill-ink);color:var(--on-ink);border-color:var(--on-ink)}
.join .note{font:400 13px/19px var(--font-sans);opacity:.8}
.err{font:600 13px/19px var(--font-sans);min-height:19px}
.done{border:2px solid var(--on-ink);padding:var(--space-6);display:flex;flex-direction:column;gap:10px}

/* faq */
.faq details{border-bottom:var(--rule);padding-block:var(--space-4)}
.faq details:first-child{border-top:var(--rule)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:var(--space-4);font:700 18px/24px var(--font-display);letter-spacing:.04em;text-transform:uppercase}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--font-mono)}
.faq details[open] summary::after{content:"–"}
.faq p{margin-top:10px;max-width:62ch}

footer{padding-block:var(--space-12)}
footer .wrap{display:flex;justify-content:space-between;gap:var(--space-6);flex-wrap:wrap;align-items:center}
footer img{width:72px;height:72px}
.legal{max-width:60ch}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.sticker{transform:none}}

/* ---- WordPress additions ---- */
.admin-bar .top{top:calc(32px + env(safe-area-inset-top,0px))}
@media(max-width:782px){.admin-bar .top{top:calc(46px + env(safe-area-inset-top,0px))}}
@media(max-width:600px){.admin-bar .top{top:env(safe-area-inset-top,0px)}}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.slot.has-media{padding:0;background:var(--fill-ink)}
.slot.has-media video{object-fit:cover}
.slot.film.has-media video{object-fit:contain}

/* waitlist form */
.tc-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.tc-consent{display:flex;gap:10px;align-items:flex-start;font:400 13px/19px var(--font-sans)}
.tc-consent input{width:18px;height:18px;flex:none;margin-top:1px;accent-color:var(--paper)}
.tc-status{border:2px solid var(--on-ink);padding:var(--space-4);display:flex;flex-direction:column;gap:6px}
.tc-status.is-error{border-style:dashed}

/* generic pages and posts */
.entry{max-width:720px;padding-block:var(--space-12)}
.entry h1{margin-bottom:var(--space-6)}
.entry .content{display:flex;flex-direction:column;gap:var(--space-4)}
.entry .content p{max-width:65ch}
.entry .content a{text-decoration-thickness:2px;text-underline-offset:3px}
.entry .content img{height:auto}
.entry-list{padding-block:var(--space-12)}
.entry-list article{border-bottom:var(--rule);padding-block:var(--space-6)}

*,*::before,*::after{box-sizing:border-box}
