/* Storefront skin (classic florist layout): 960px white page on gray, purple nav, product grid. */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--page);color:#222;font:14px/1.5 "Open Sans",Arial,sans-serif}
a{color:inherit}
img{max-width:100%;display:block}
.demo-bar{background:#1d1d1f;color:#fff;font-size:12px;padding:6px 16px;display:flex;justify-content:center;align-items:center;gap:8px 16px;flex-wrap:wrap;text-align:center}
.demo-btns{display:inline-flex;gap:8px;flex-wrap:wrap;justify-content:center}
.demo-btns a{color:#1d1d1f;background:#fff;border-radius:999px;padding:4px 12px;font-weight:600;text-decoration:none;white-space:nowrap}
.demo-btns a:hover{background:var(--accent);color:#fff}
.shell{max-width:960px;margin:0 auto;background:#fff;min-height:100vh}

/* header */
.hd{display:grid;grid-template-columns:1fr auto 1fr;align-items:start;padding:14px 18px 10px;gap:12px}
.hd-acts{display:flex;gap:16px;margin-bottom:16px}
.hd-act{display:inline-flex;align-items:center;gap:5px;font:400 13px "Oswald",sans-serif;text-transform:uppercase;color:#555;text-decoration:none}
.hd-act svg{width:16px;height:16px;fill:currentColor;color:#8a8a5c}
.hd-act:hover{color:var(--nav)}
.hd-ph{font:300 15px "Oswald",sans-serif;color:#444;text-transform:none}
.hd-ph span{text-transform:uppercase}
.hd-ph a{text-decoration:none;font-family:"Open Sans",sans-serif;font-size:15px}
.hd-logo{display:block;justify-self:center}
.hd-logo img{height:auto;max-height:170px;width:auto;max-width:280px}
.hd-search{justify-self:end;display:flex;border:1px solid #bbb;width:234px;height:30px}
.hd-search input{border:0;flex:1;min-width:0;padding:4px 8px;font:italic 13px "Open Sans",sans-serif;outline:0}
.hd-search button{border:0;background:none;width:30px;color:#8a8a5c;cursor:pointer;padding:4px}
.hd-search svg{width:18px;height:18px}

/* nav */
.nav{background:var(--nav);position:relative;z-index:5}
.nav-tg{display:none}
.nav-top{list-style:none;margin:0;padding:0 2px;display:flex;flex-wrap:wrap;justify-content:space-around}
.nav-top>li{position:relative}
.nav-a{display:flex;align-items:center;gap:6px;padding:10px 9px;color:#fff;background:none;border:0;cursor:pointer;
  font:400 17px/1.2 "Oswald",sans-serif;text-transform:uppercase;text-decoration:none;letter-spacing:.2px}
.nav-a svg{width:11px;height:11px}
.nav-a:hover,.has-sub.open>.nav-a{background:rgba(0,0,0,.12)}
.sub{display:none;position:absolute;left:0;top:100%;background:#fff;border:1px solid #ddd;border-top:3px solid var(--nav);
  padding:12px 16px;gap:28px;box-shadow:0 8px 24px rgba(0,0,0,.12);min-width:260px}
.has-sub.open>.sub{display:flex}
@media (hover:hover){.has-sub:hover>.sub{display:flex}}
.sub ul{list-style:none;margin:0;padding:0;min-width:200px}
.sub li a{display:block;padding:5px 0;font:400 13px "Oswald",sans-serif;text-transform:uppercase;color:#444;text-decoration:none}
.sub li a:hover{color:var(--accent)}
.sub-t{font:500 13px "Oswald",sans-serif;text-transform:uppercase;color:var(--nav);border-bottom:1px solid #eee;padding-bottom:6px;margin-bottom:4px}
.nav-top>li:last-child .sub{left:auto;right:0}

/* body */
.main{min-height:300px}
.flash{margin:12px 18px;padding:10px 14px;border-radius:4px;background:#eef6ff;border:1px solid #c8defa}
.flash.err{background:#fdeeee;border-color:#f3c4c4;color:#8a1c1c}
.banner img{width:100%;height:auto}
.sect{padding:22px 18px 34px}
.sect.narrow{max-width:720px;margin:0 auto}
.h1{font:400 26px/1.3 "Merriweather",Georgia,serif;text-align:center;margin:12px 0 22px;color:#222}
.intro{max-width:760px;margin:-8px auto 22px;text-align:center;color:#555}
.crumb{font-size:12px;color:#777;margin-bottom:4px}
.crumb a{color:#777}
.empty{text-align:center;color:#666;padding:30px 0}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px 14px;max-width:860px;margin:0 auto}
.card{display:flex;flex-direction:column;align-items:center;text-decoration:none;text-align:center}
.card-img{width:100%;aspect-ratio:4/5;background:#f6f6f6;overflow:hidden}
.card-img img{width:100%;height:100%;object-fit:cover}
.card-n{font:400 17px/1.25 "Merriweather",Georgia,serif;margin-top:8px;color:#222}
.card-p{font-size:13px;margin-top:2px}
.card-p s{color:#666;margin-right:6px}
.sale{color:var(--sale)}
.card-buy{color:var(--accent);font-size:13px;margin-top:2px}
.card:hover .card-n{text-decoration:underline}
.cta-wrap{text-align:center;margin-top:34px}
.cta{display:inline-block;background:var(--accent);color:#fff;border:0;border-radius:3px;padding:12px 28px;
  font:400 13px "Open Sans",sans-serif;text-transform:uppercase;text-decoration:none;cursor:pointer}
.cta:hover{filter:brightness(.93)}
.cta.big{width:100%;padding:14px;font-size:15px}
.tiles{display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:auto auto;gap:14px;padding:30px 18px 50px}
.tile img{width:100%;height:100%;object-fit:cover}
.tile-1{grid-column:1;grid-row:1/3}.tile-2{grid-column:2;grid-row:1}.tile-3{grid-column:2;grid-row:2}.tile-4{grid-column:3;grid-row:1/3}

/* product */
.pdp-h{font:400 24px/1.25 "Merriweather",Georgia,serif;margin:4px 0 12px;padding-bottom:10px;border-bottom:1px solid #999}
.pdp-in{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:start}
.pdp-img{padding:8px 22px 0 0;border-right:1px solid #999;min-height:100%}
.pdp-img img{width:100%;height:auto}
.pdp-free{background:#41484a;color:#fff;text-align:center;font:400 18px "Merriweather",serif;padding:6px;margin:14px auto 0;max-width:70%}
.pdp-buy{padding:4px 0 0 22px}
.pdp-sec{font:600 15px "Open Sans",sans-serif;margin:14px 0 10px;padding-bottom:6px;border-bottom:1px solid #ddd}
.sizes{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.size{flex:1;min-width:84px;display:flex;flex-direction:column;align-items:center;gap:0;border:1px solid #bbb;border-radius:3px;padding:8px 6px;cursor:pointer;text-align:center;font-size:12px;background:#fff}
.size input{position:absolute;opacity:0;pointer-events:none}
.size-l{font:600 14px "Open Sans",sans-serif;color:#333}
.size s{color:#555}
.size:has(input:checked){border-color:#666;background:#eee;box-shadow:inset 0 0 0 2px #ccc}
.size:has(input:focus-visible){outline:2px solid var(--nav)}
.rush{background:#ffed7e;padding:10px 12px;font:13px/1.5 "Merriweather",serif;margin:8px 0 14px}
.when{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.when-b,.when-cal{border:1px solid #bbb;background:#fff;border-radius:3px;padding:11px;cursor:pointer;font:14px "Open Sans",sans-serif;color:#333;text-align:center}
.when-cal{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:10px}
.when-cal input{border:1px solid #ddd;padding:6px;font-size:14px}
.when-b.on,.when-cal.on{border-color:#666;background:#eee}
.zipmsg{display:block;margin-top:4px}
.qty-row{margin:10px 0}
.qty-row label{display:block;font-weight:600;margin-bottom:4px;font-size:13px}
.qty-row input{width:90px;padding:8px;border:1px solid #bbb}
.addcart{width:100%;margin-top:10px;padding:13px;background:#fff;border:1px solid #666;border-radius:3px;font:18px "Open Sans",sans-serif;color:#333;cursor:pointer}
.addcart:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.desc{margin-top:26px}
.desc-t{display:inline-block;border:1px solid #ddd;border-bottom:0;padding:6px 12px;font:600 11px "Open Sans",sans-serif;text-transform:uppercase}
.desc p{border-top:1px solid #ddd;margin:0;padding-top:10px;color:#444}
.desc p+p{border-top:0}
.also{font:400 19px "Oswald",sans-serif;text-align:center;margin:36px 0 14px;padding-bottom:8px;border-bottom:1px solid #999}
.also-g{grid-template-columns:repeat(4,1fr)}
.zipbox,.first{display:none}

/* cart + checkout */
.lines{border-top:1px solid #eee}
.line{display:grid;grid-template-columns:70px 1fr 64px 90px auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #eee}
.line img{width:70px;height:84px;object-fit:cover}
.line-n a{font:400 16px "Merriweather",serif;text-decoration:none}
.line-q{width:60px;padding:6px;border:1px solid #bbb}
.line-t{text-align:right;font-weight:600}
.linkbtn{background:none;border:0;color:#777;text-decoration:underline;cursor:pointer;font-size:12px}
.muted{color:#777;font-size:13px}
.tot{display:flex;justify-content:space-between;padding:8px 0;font-size:15px}
.acts-r{display:flex;justify-content:flex-end;gap:12px;margin-top:16px;align-items:center}
.btn-ghost{background:#fff;border:1px solid #bbb;padding:11px 18px;border-radius:3px;cursor:pointer}
.co-in{display:grid;grid-template-columns:1fr 300px;gap:28px;align-items:start}
.co h2{font:400 18px "Merriweather",serif;margin:22px 0 8px;border-bottom:1px solid #eee;padding-bottom:6px}
.f{margin-bottom:10px;min-width:0}
.f label{display:block;font-size:13px;font-weight:600;margin-bottom:3px}
.f input,.f select,.f textarea{width:100%;padding:9px;border:1px solid #bbb;border-radius:2px;font:15px "Open Sans",sans-serif;background:#fff}
.f input:focus,.f select:focus,.f textarea:focus{outline:2px solid var(--nav);outline-offset:-1px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.row3{display:grid;grid-template-columns:1.4fr .6fr 1fr;gap:12px}
.co-sum{position:sticky;top:12px;border:1px solid #ddd;padding:14px;background:#fafafa}
.co-sum h2{margin-top:0}
.sum-l{display:flex;justify-content:space-between;gap:10px;font-size:14px;padding:5px 0}
.co-sum .cta{margin-top:14px}
.demo-pay{background:#fff8e1;border:1px solid #f0d68a;padding:10px 12px;font-size:13px}
.center-t{text-align:center}
.big-n{font:700 22px "Merriweather",serif}
.prose p{color:#333}
.prose h2{font:400 19px "Merriweather",serif;margin-top:22px}

/* footer */
.ft{background:var(--foot);padding:34px 18px 26px;color:#333}
.ft-top{display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:16px;border-bottom:1px solid #999;padding-bottom:26px}
.ft-lbl{font-size:12px;text-transform:uppercase;color:#555;margin:22px 0 8px}
.ft-news form{display:flex;max-width:280px}
.ft-news input{flex:1;min-width:0;padding:10px;border:1px solid #bbb;font-size:14px}
.ft-news button{background:#f39b3f;color:#fff;border:0;padding:0 26px;cursor:pointer;text-transform:uppercase}
.ft-logo{max-width:240px;justify-self:center}
.ft-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding-top:22px}
.ft h3{font:700 15px "Merriweather",serif;margin:0 0 10px}
.ft ul{list-style:none;margin:0;padding:0}
.ft li{margin-bottom:8px}
.ft li a{text-decoration:none;color:#555;font-size:13px}
.ft li a:hover{text-decoration:underline}
.loc{margin-bottom:12px;font:13px/1.65 "Merriweather",serif}
.loc-r,.loc-r a{font:13px "Open Sans",sans-serif;color:#666;text-decoration:none}
.loc a{text-decoration:none}
.ft-seo{padding-top:26px;font:14px/1.6 "Merriweather",serif}
.ft-seo h2{font:400 17px "Merriweather",serif}
.ft-pw{margin-top:26px;font-size:12px;color:#555;text-align:center}
.ft-pw a{font-weight:600}

/* phone */
@media (max-width:760px){
  .hd{grid-template-columns:1fr auto;padding:10px 16px}
  .hd-l{grid-column:1/-1;order:3;display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center}
  .hd-acts{margin:0}
  .hd-ph{font-size:13px}.hd-ph a{font-size:13px}
  .hd-logo{justify-self:start}.hd-logo img{max-height:90px}
  .hd-search{width:100%;grid-column:1/-1;order:4}
  .nav-tg{display:block;width:100%;background:none;border:0;color:#fff;padding:11px 16px;text-align:left;font:400 17px "Oswald",sans-serif;text-transform:uppercase;cursor:pointer}
  .nav-top{display:none;flex-direction:column}
  .nav.open .nav-top{display:flex}
  .nav-a{width:100%;padding:11px 16px}
  .sub{position:static;box-shadow:none;border:0;flex-direction:column;gap:6px;padding:4px 16px 12px;background:rgba(255,255,255,.96)}
  .sect{padding:16px 16px 28px}
  .h1{font-size:21px}
  .grid{grid-template-columns:1fr 1fr;gap:18px 12px}
  .card-n{font-size:15px}
  .tiles{grid-template-columns:1fr 1fr;padding:20px 16px 34px}
  .tile{grid-row:auto!important;grid-column:auto!important}
  .pdp-in,.co-in{grid-template-columns:1fr}
  .pdp-img{border:0;padding:0}.pdp-buy{padding:14px 0 0}.also-g{grid-template-columns:1fr 1fr}
  .co-sum{position:static}
  .row3{grid-template-columns:1fr 1fr}.row3 .f:first-child{grid-column:1/-1}
  .line{grid-template-columns:56px 1fr auto;grid-template-areas:"i n t" "i q r"}
  .line img{grid-area:i;width:56px;height:68px}.line-n{grid-area:n}.line-t{grid-area:t}.line-q{grid-area:q}.linkbtn{grid-area:r}
  .ft-top{grid-template-columns:1fr}
  .ft-logo{justify-self:start;max-width:180px}
  .ft-cols{grid-template-columns:1fr 1fr}
}
.cat-banner img{width:100%;height:auto}
/* category page (sidebar + sort) */
.crumb-top{padding:6px 18px;margin:0;font-size:12px}
.crumb-top a{color:#757575;text-decoration:none}
.cat-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.h1-l{text-align:left;margin:4px 0 10px;font-size:24px}
.sort{display:flex;align-items:center;gap:8px;font:600 11px "Open Sans",sans-serif;text-transform:uppercase;color:#555}
.sort select{padding:9px 12px;border:1px solid #ccc;background:#f3f3f3;font:14px "Open Sans",sans-serif;min-width:150px}
.cat .intro{text-align:left;max-width:none;margin:0 0 16px;font:13px/1.65 "Merriweather",Georgia,serif;color:#242424;border-bottom:1px solid #999;padding-bottom:14px}
.cat .intro p{margin:0 0 14px}.cat .intro p.tag{font-family:"Open Sans",sans-serif;font-size:13px}
.cat-in{display:grid;grid-template-columns:148px 1fr;gap:22px;align-items:start}
.side-box{border:1px solid #999;padding:10px;display:flex;flex-direction:column;gap:8px}
.side-t{font:13px/1.35 "Merriweather",serif}
.side-box input{padding:8px;border:1px solid #bbb;font-size:13px;width:100%;min-width:0}
.side-box button{background:#ccc;color:#fff;border:0;padding:9px;text-transform:uppercase;cursor:pointer;margin:4px 12px 0}
.side-box button:hover{background:var(--accent)}
.side-h{font:700 15px "Merriweather",serif;margin:24px 0 6px;border-bottom:1px solid #999;padding-bottom:6px}
.side-l{list-style:none;margin:0;padding:0}
.side-l li{margin:0 0 10px}
.side-l a{font:400 12px "Oswald",sans-serif;color:#454545;text-decoration:none;letter-spacing:.2px}
.side-l a:hover,.side-l a.on{color:var(--accent)}
.cat-grid .grid{grid-template-columns:repeat(3,1fr);gap:22px 10px;max-width:none}
.card-badge{width:100%;background:#41484a;color:#fff;font-size:12px;padding:3px 0;margin-top:-1px}
@media (max-width:760px){
  .cat-in{grid-template-columns:1fr}
  .side-l{display:flex;flex-wrap:wrap;gap:4px 14px}.side-l li{margin:0}
  .cat-grid .grid{grid-template-columns:1fr 1fr}
}
.f .when-cal{display:flex;font-weight:400;margin:0}.when-cal input{width:auto}.f .when-cal span{font-size:14px}
.trk{max-width:420px;margin:0 auto}
.addr-msg{font-size:13px;margin:6px 0}.addr-msg.ok{color:#1d7a3a}.addr-msg.err{color:#b3261e}
.addr-msg.warn{background:#fff8e1;border:1px solid #f0d68a;padding:10px 12px;display:grid;gap:8px}
.addr-btn{margin-right:8px;padding:7px 14px;border:1px solid #333;background:#333;color:#fff;cursor:pointer;font-size:13px}
.addr-btn.ghost{background:#fff;color:#333;border-color:#bbb}
.addr-find{margin:8px 0}.addr-find label{display:block;font-size:13px;font-weight:600;margin-bottom:3px}.addr-find input{width:100%;padding:9px;border:1px solid #bbb}
.addr-list{display:grid;gap:4px;margin-top:6px}.addr-pick{text-align:left;padding:9px 10px;border:1px solid #ddd;background:#fff;cursor:pointer;font-size:13px}
.addr-pick:hover{background:#faf6fc}.addr-hint{font-size:13px;color:#555;margin:4px 0}
.paid-ok{color:#1d7a3a;font-weight:600}
.anon{display:flex;gap:8px;align-items:center;margin-top:24px;font-weight:400!important}
.cardprev{border:1px solid #e6dcea;background:#fffdfb;padding:16px 18px;margin:6px 0 12px;box-shadow:0 2px 10px rgba(0,0,0,.05);max-width:420px}
.cardprev-l{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#999;margin-bottom:8px}
.cp-msg{font:16px/1.5 "Merriweather",Georgia,serif;color:#333;white-space:pre-wrap;min-height:24px}.cp-sig{font:italic 15px "Merriweather",serif;color:#555;margin-top:8px;text-align:right}
.extras{display:grid;gap:6px;margin-bottom:14px}
.extra{display:flex;align-items:center;gap:10px;border:1px solid #ddd;padding:8px 10px;cursor:pointer;font-size:14px}
.extra:has(input:checked){border-color:var(--nav);background:#faf6fc}.extra img{width:36px;height:36px;object-fit:cover}
.extra span{flex:1}
