/* TLC Bakes — brown & white bakery theme */
:root{
  --cocoa: #4a2e1d;        /* dark cocoa */
  --cocoa-700:#6b4a35;     /* warm brown */
  --cocoa-500:#8a6748;     /* milk chocolate */
  --caramel: #b88a5e;      /* caramel accent */
  --cream:  #fbf6ef;       /* off-white background */
  --paper:  #ffffff;
  --line:   #e7dcce;
  --ink:    #2a1d12;
  --muted:  #836b58;
  --ok:     #2f7d4a;
  --err:    #b3361b;
  --shadow: 0 6px 20px rgba(74,46,29,.08);
  --radius: 14px;
  --max:    1180px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family: ui-serif, "Georgia", "Garamond", "Times New Roman", serif;
  color: var(--ink);
  background: var(--cream);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;
  background:
    radial-gradient(circle at 12% 8%, rgba(184,138,94,.08), transparent 40%),
    radial-gradient(circle at 90% 90%, rgba(74,46,29,.06), transparent 45%);
  z-index:-1;
}

a{color: var(--cocoa-700); text-underline-offset: 3px}
a:hover{color: var(--cocoa)}
img{max-width:100%; display:block}
h1,h2,h3,h4{font-family: "Georgia", "Times New Roman", serif; color: var(--cocoa); margin:0 0 .6em; letter-spacing:-.01em}
h1{font-size: clamp(2rem, 4vw, 3.2rem); line-height:1.1}
h2{font-size: clamp(1.5rem, 2.6vw, 2.2rem); line-height:1.15}
h3{font-size: 1.25rem}
.muted{color: var(--muted)}
.small{font-size:.875rem}
.center{text-align:center}
hr{border:0; border-top:1px solid var(--line); margin: 1.2rem 0}

.wrap{max-width: var(--max); margin:0 auto; padding: 0 1.25rem}

/* ── header ───────────────────────────────────────────── */
.site-header{
  /* matched to hero banner cream (#fffcf7) so header → banner flows seamlessly */
  background: #fffcf7;
  border-bottom: 1px solid var(--line);
  position: sticky; top:0; z-index: 50;
}
.header-row{
  display:flex; align-items:center; justify-content:space-between;
  padding:1rem 1.25rem; gap:1rem; flex-wrap: wrap;
}
.brand{display:flex; align-items:center; gap:.6rem; text-decoration:none; color: var(--cocoa); font-weight:700; font-size:1.2rem}
.brand img{display:block}
/* Wide banner-style logo (replaces icon + wordmark) */
.brand-banner{padding:.2rem 0}
.brand-banner-img{display:block; height:72px; width:auto; max-width:520px; object-fit:contain}
.site-nav{display:flex; gap:1.5rem; align-items:center; flex-wrap:wrap}
.site-nav a{text-decoration:none; color: var(--ink); font-weight:500}
.nav-cart{display:inline-flex; align-items:center; gap:.4rem; padding:.35rem .8rem; border:1px solid var(--line); border-radius:999px; color:var(--cocoa) !important}
.nav-cart:hover{background: var(--cream)}
.cart-badge{display:inline-block; min-width:1.4em; padding:.05rem .4rem; background:var(--cocoa); color:#fff; border-radius:999px; font-size:.75rem; line-height:1.3; text-align:center; margin-left:.15rem}

/* Cart page */
.add-form{display:inline}
.byo-price{margin:.3rem 0; font-size:1.05rem; color: var(--cocoa)}
.byo-add{display:flex; align-items:center; gap:.5rem; margin-top:.4rem; flex-wrap:wrap}
.byo-qty-label{display:flex; align-items:center; gap:.4rem; font-size:.85rem; color: var(--cocoa-700)}
.byo-qty-label input{width:64px; padding:.35rem; border:1px solid var(--line); border-radius:8px; background:var(--paper); color:var(--ink); font:inherit}
.cart-table{width:100%; border-collapse:collapse; margin: 1rem 0 1.6rem}
.cart-table th, .cart-table td{padding:.7rem .5rem; border-bottom:1px solid var(--line); vertical-align: middle}
.cart-table thead th{text-align:left; color:var(--cocoa); font-weight:600; font-size:.85rem; text-transform:uppercase; letter-spacing:.08em}
.cart-table tfoot td{border-top:2px solid var(--line); border-bottom:0; padding-top:1rem}
.cart-table td.num, .cart-table th.num{text-align:right}
.cart-item{display:flex; align-items:center; gap:.7rem}
.cart-item img{width:54px; height:54px; object-fit:cover; border-radius:8px; border:1px solid var(--line)}
.qty-form{display:flex; gap:.35rem; align-items:center}
.qty-form input{width:70px; padding:.4rem; border:1px solid var(--line); border-radius:8px; background:var(--paper); color:var(--ink)}
.link-btn{background:none; border:0; color:var(--cocoa-700); cursor:pointer; padding:0; text-decoration:underline; font:inherit}
.link-btn:hover{color:var(--cocoa)}
.cart-actions{display:flex; flex-wrap:wrap; gap:.6rem; justify-content:flex-end; align-items:center}
.cart-actions form{margin:0}

/* Checkout summary list */
.summary-list{list-style:none; padding:0; margin:.6rem 0}
.summary-list li{display:flex; justify-content:space-between; gap:.7rem; padding:.35rem 0; border-bottom:1px dashed var(--line)}
.summary-list li:last-child{border-bottom:0}
.summary-total{display:flex; justify-content:space-between; font-size:1.1rem}

@media (max-width: 600px){
  .cart-table thead{display:none}
  .cart-table, .cart-table tbody, .cart-table tr, .cart-table td, .cart-table tfoot{display:block; width:100%}
  .cart-table tr{padding:.6rem 0; border-bottom:1px solid var(--line)}
  .cart-table td{border-bottom:0; padding:.25rem 0}
  .cart-table td.num{text-align:left}
}
.site-nav a:hover{color: var(--cocoa)}
.nav-cta{
  background: var(--cocoa); color: var(--paper) !important;
  padding:.5rem 1rem; border-radius: 999px;
}
.nav-cta:hover{background: var(--cocoa-700); color: var(--paper) !important}
.menu-toggle{
  display:none; background:transparent; border:1px solid var(--line);
  width: 44px; height: 44px; border-radius: 10px;
  font-size: 1.4rem; line-height: 1; color: var(--cocoa); cursor:pointer;
}
.menu-toggle:hover{background: var(--cream)}
.menu-toggle .icon-close{display:none}
.menu-toggle[aria-expanded="true"] .icon-open{display:none}
.menu-toggle[aria-expanded="true"] .icon-close{display:inline}

@media (max-width: 880px){
  .menu-toggle{display:inline-flex; align-items:center; justify-content:center}
  .site-nav{
    display:none; flex-basis: 100%; width: 100%;
    flex-direction: column; align-items: stretch; gap: 0;
    margin: .25rem -1.25rem -1rem; padding: .25rem 1.25rem .8rem;
    border-top: 1px solid var(--line); background: #fffcf7;
  }
  .site-nav.open{display:flex}
  .site-nav a{
    padding: .85rem .25rem; border-bottom: 1px solid var(--line);
    width: 100%;
  }
  .site-nav a:last-child{border-bottom: 0}
  .site-nav .nav-cta{
    margin-top: .6rem; text-align:center; border-bottom: 0 !important;
  }
}

/* ── promo marquee (above hero) ──────────────────── */
.promo-marquee{
  position: relative;
  display: flex; align-items: center; gap: .75rem;
  background: var(--cocoa);
  color: var(--cream);
  border-bottom: 1px solid rgba(0,0,0,.12);
  overflow: hidden;
  font-family: ui-sans-serif, "Helvetica Neue", Arial, sans-serif;
  font-size: .95rem;
  letter-spacing: .01em;
}
.promo-track{
  display: flex; align-items: center; gap: 2.5rem;
  white-space: nowrap;
  padding: .55rem 0;
  flex: 1 1 auto;
  animation: promo-scroll linear infinite;
  will-change: transform;
}
.promo-item{padding: 0 .5rem}
.promo-item strong{color: var(--paper); font-weight: 700; letter-spacing: .03em}
.promo-sep{color: var(--caramel); opacity: .85}
.promo-cta{
  flex: 0 0 auto; margin-right: 1rem;
  background: var(--caramel); color: var(--ink) !important;
  text-decoration: none; font-weight: 700;
  padding: .35rem .9rem; border-radius: 999px;
  font-size: .85rem; white-space: nowrap;
}
.promo-cta:hover{background: var(--paper); color: var(--cocoa) !important}
@keyframes promo-scroll{
  from{transform: translateX(0)}
  to{transform: translateX(-50%)}
}
.promo-marquee:hover .promo-track{animation-play-state: paused}
@media (prefers-reduced-motion: reduce){
  .promo-track{animation: none; white-space: normal; padding: .6rem 1rem; justify-content: center}
}

/* ── hero ──────────────────────────────────────────── */
.hero{
  background:
    radial-gradient(ellipse at top right, rgba(184,138,94,.18), transparent 60%),
    linear-gradient(180deg, #fff 0%, var(--cream) 100%);
  padding: 4rem 0 3rem;
}

/* Hero banner variant — full-width branded image + CTA below */
.hero-banner{padding: 0; background: var(--cream)}
.hero-stage{position: relative; overflow: hidden; border-bottom: 1px solid var(--line)}
.hero-banner-img{
  display:block; width:100%; height:auto; max-height: 560px;
  object-fit: cover; object-position: center;
}
.hero-stage > .hero-banner-img{border-bottom: 0}
.hero-banner-video{background: var(--cream)}

/* Overlay text on top of the banner */
.hero-overlay{
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  padding: 1.5rem 1.25rem;
  background:
    linear-gradient(180deg, rgba(251,246,239,.0) 0%, rgba(251,246,239,.65) 55%, rgba(251,246,239,.92) 100%),
    radial-gradient(ellipse at center, rgba(251,246,239,.55), rgba(251,246,239,0) 65%);
  text-align: center;
  pointer-events: none;
}
.hero-overlay-inner{max-width: 760px}
.hero-overlay-brand{
  font-family: Georgia, "Times New Roman", serif;
  color: var(--cocoa);
  font-weight: 700;
  font-size: clamp(2.2rem, 6vw, 4.4rem);
  line-height: 1; letter-spacing: .01em;
  margin: 0 0 .35rem;
  text-shadow: 0 2px 0 rgba(255,255,255,.55), 0 1px 8px rgba(74,46,29,.18);
}
.hero-overlay-eyebrow{
  text-transform: uppercase; letter-spacing: .18em;
  font-size: .78rem; color: var(--cocoa-700); font-weight: 700;
  margin: 0 0 .5rem;
}
.hero-overlay-title{
  font-family: Georgia, "Times New Roman", serif;
  color: var(--cocoa);
  font-size: clamp(1.8rem, 4.4vw, 3.4rem);
  line-height: 1.05; margin: 0 0 .6rem;
  text-shadow: 0 1px 0 rgba(255,255,255,.45);
}
.hero-overlay-sub{
  color: var(--cocoa-700); font-size: clamp(.98rem, 1.6vw, 1.18rem);
  max-width: 60ch; margin: 0 auto .9rem;
  text-shadow: 0 1px 0 rgba(255,255,255,.4);
}
.hero-stats{
  list-style: none; padding: 0; margin: 1rem 0 0;
  display: flex; flex-wrap: wrap; gap: 1rem 2rem;
  justify-content: center; align-items: center;
}
.hero-stats li{
  display: flex; flex-direction: column; align-items: center; line-height: 1.1;
  padding: .4rem .9rem; min-width: 110px;
  background: rgba(255,255,255,.55);
  border: 1px solid rgba(74,46,29,.12);
  border-radius: 14px;
  backdrop-filter: blur(2px);
}
.hero-stats strong{
  font-family: Georgia, serif; color: var(--cocoa);
  font-size: clamp(1.2rem, 2.4vw, 1.7rem);
}
.hero-stats span{
  font-size: .78rem; color: var(--cocoa-700);
  text-transform: uppercase; letter-spacing: .12em; margin-top: .2rem;
}

@media (max-width: 720px){
  .hero-overlay{
    background:
      linear-gradient(180deg, rgba(251,246,239,.45) 0%, rgba(251,246,239,.85) 60%, rgba(251,246,239,.95) 100%);
  }
  .hero-stats{gap: .5rem}
  .hero-stats li{min-width: 0; padding: .35rem .65rem}
}
.hero-banner-cta{
  text-align:center; padding: 2.4rem 1.25rem 3rem; max-width: 780px;
}
.hero-banner-cta .lede{margin-left:auto; margin-right:auto}
.hero-banner-cta .cta-row{justify-content:center}
.hero-grid{display:grid; grid-template-columns: 1.2fr .9fr; gap: 3rem; align-items:center}
@media (max-width: 880px){.hero-grid{grid-template-columns: 1fr}}
.eyebrow{
  text-transform: uppercase; letter-spacing:.18em; font-size:.78rem;
  color: var(--caramel); font-weight:700; margin:0 0 .6rem;
}
.lede{font-size: 1.18rem; color: var(--cocoa-700); max-width: 60ch}
.lede.center{margin-left:auto; margin-right:auto}
.cta-row{display:flex; gap:.75rem; flex-wrap:wrap; margin: 1.4rem 0}
.hero-art{display:flex; justify-content:center}
.hero-card{
  background: var(--paper); border:1px solid var(--line);
  border-radius: var(--radius); padding:1.6rem 1.4rem; box-shadow: var(--shadow);
  width: 100%; max-width: 320px;
  background-image: linear-gradient(135deg, #fff, #f8efe2);
}
.hero-card-eyebrow{display:block; color: var(--caramel); font-size:.75rem; letter-spacing:.18em; text-transform:uppercase; font-weight:700; margin-bottom:.6rem}
.hero-card h3{margin: .2rem 0 .4rem; color: var(--cocoa)}
.hero-card strong{color: var(--cocoa); font-size:1.2rem}

/* ── buttons ──────────────────────────────────────── */
.btn{
  display:inline-block; padding:.7rem 1.2rem; border-radius: 999px;
  font-weight:600; text-decoration:none; cursor:pointer; border: 1px solid transparent;
  transition: transform .12s ease, background .15s ease, color .15s ease;
  background: var(--paper); color: var(--cocoa);
  font-family: inherit; font-size: 1rem;
}
.btn:hover{transform: translateY(-1px)}
.btn-primary{background: var(--cocoa); color: var(--paper); border-color: var(--cocoa)}
.btn-primary:hover{background: var(--cocoa-700); color: var(--paper)}
.btn-ghost{background: transparent; border-color: var(--cocoa-700); color: var(--cocoa-700)}
.btn-ghost:hover{background: var(--cocoa-700); color: var(--paper)}
.btn-danger{background: #fff; color: var(--err); border-color: var(--err)}
.btn-sm{padding:.45rem .9rem; font-size:.92rem}
.btn-lg{padding:.95rem 1.6rem; font-size:1.05rem}

/* ── bands ───────────────────────────────────────── */
.band{padding: 3.5rem 0}
.band-soft{background: linear-gradient(180deg, #fff, #fbf6ef)}
.band-cta{
  background: var(--cocoa); color: var(--paper);
  background-image: radial-gradient(circle at 20% 20%, rgba(255,255,255,.06), transparent 50%),
                    radial-gradient(circle at 80% 80%, rgba(184,138,94,.18), transparent 60%);
}
.band-cta h2, .band-cta .lede{color: var(--paper)}
.band-cta .btn-primary{background: var(--paper); color: var(--cocoa); border-color: var(--paper)}

.section-title{text-align:center; margin-bottom:1.6rem}

/* ── why grid ────────────────────────────────────── */
.why-grid{display:grid; grid-template-columns: repeat(3, 1fr); gap:1.5rem}
@media (max-width: 800px){.why-grid{grid-template-columns: 1fr}}
.why-card{
  background: var(--paper); border:1px solid var(--line);
  border-radius: var(--radius); padding:1.6rem; box-shadow: var(--shadow);
}

/* ── product cards ─────────────────────────────── */
.card-grid{display:grid; grid-template-columns: repeat(3, 1fr); gap:1.5rem}
@media (max-width: 880px){.card-grid{grid-template-columns: repeat(2, 1fr)}}
@media (max-width: 560px){.card-grid{grid-template-columns: 1fr}}
.product-card{
  background: var(--paper); border:1px solid var(--line);
  border-radius: var(--radius); padding:1.4rem; box-shadow: var(--shadow);
  display:flex; flex-direction:column;
}
.product-thumb{
  width:100%; aspect-ratio: 4/3; border-radius: 10px;
  background: linear-gradient(135deg, #efdcc1 0%, #b88a5e 100%);
  display:flex; align-items:center; justify-content:center;
  color: var(--cocoa); font-size: 3.5rem; font-weight:700; font-family:Georgia, serif;
  margin-bottom: 1rem; overflow: hidden;
}
.product-thumb.has-img{background: var(--cream)}
.product-thumb img{width:100%; height:100%; object-fit: cover; display: block}
.product-card h3{margin:0 0 .35rem}
.price-row{display:flex; align-items:center; justify-content:space-between; margin-top:auto; padding-top:1rem}
.bullets{list-style: none; padding:0; margin:.5rem 0 1rem}
.bullets li{position:relative; padding-left:1.2rem}
.bullets li::before{content:"•"; position:absolute; left:.2rem; color: var(--caramel); font-weight:700}

/* ── gallery ───────────────────────────────── */
.gallery-grid{
  display: grid; gap: 1rem;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}
.gallery-tile{
  margin: 0; background: var(--paper); border: 1px solid var(--line);
  border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow);
  transition: transform .15s ease, box-shadow .15s ease;
}
.gallery-tile:hover{transform: translateY(-2px); box-shadow: 0 12px 28px rgba(74,46,29,.14)}
.gallery-tile img{
  width: 100%; aspect-ratio: 1 / 1; object-fit: cover; display: block;
}
.gallery-tile figcaption{
  padding: .7rem .9rem; color: var(--cocoa-700); font-size: .95rem;
  border-top: 1px solid var(--line); background: #fdfaf3;
}

/* ── carousel ────────────────────────────────── */
.carousel{position: relative; max-width: 100%; margin: 0 auto}
.carousel-track{
  display: flex; gap: 1.25rem;
  overflow-x: auto; scroll-snap-type: x mandatory;
  scroll-behavior: smooth; -webkit-overflow-scrolling: touch;
  padding: .25rem 0 1rem; scrollbar-width: none;
}
.carousel-track::-webkit-scrollbar{display: none}
.carousel-slide{
  flex: 0 0 calc(33.333% - .85rem);
  scroll-snap-align: start;
  min-width: 0;
}
@media (max-width: 880px){.carousel-slide{flex-basis: calc(50% - .65rem)}}
@media (max-width: 600px){
  .carousel-slide{flex-basis: 86%}
  .carousel-track{gap: 1rem; padding-left: .25rem; padding-right: 14%}
}

.carousel-arrow{
  position: absolute; top: calc(50% - 1.4rem); transform: translateY(-50%);
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--paper); color: var(--cocoa);
  border: 1px solid var(--line); box-shadow: var(--shadow);
  font-size: 1.6rem; line-height: 1; cursor: pointer; z-index: 2;
  display: inline-flex; align-items: center; justify-content: center;
}
.carousel-arrow:hover{background: var(--cocoa); color: var(--paper)}
.carousel-prev{left: -22px}
.carousel-next{right: -22px}
@media (max-width: 600px){
  .carousel-prev{left: 4px}
  .carousel-next{right: 4px}
}

.carousel-dots{display:flex; justify-content:center; gap:.45rem; margin-top:.6rem}
.carousel-dot{
  width: 10px; height: 10px; border-radius: 50%;
  border: 0; background: var(--line); cursor: pointer; padding: 0;
  transition: background .2s, transform .2s;
}
.carousel-dot.active{background: var(--cocoa); transform: scale(1.25)}

/* ── savoury band ───────────────────────────── */
.band-savoury{
  background:
    radial-gradient(circle at 20% 30%, rgba(184,138,94,.18), transparent 55%),
    linear-gradient(180deg, #fff, var(--cream));
}
.savoury-row{
  display:grid; grid-template-columns: .8fr 1.4fr; gap: 2.4rem; align-items:center;
}
@media (max-width: 800px){.savoury-row{grid-template-columns: 1fr; text-align: center}}
.savoury-art{
  display:flex; flex-direction: column; gap: 1rem; align-items:center;
}
.savoury-emoji{
  font-size: 4rem; background: var(--paper); width: 110px; height: 110px;
  display:flex; align-items:center; justify-content:center;
  border-radius: 50%; box-shadow: var(--shadow); border: 3px solid var(--cream);
}
.savoury-emoji:nth-child(2){transform: translateX(40px); background: #fdf1d8}
.savoury-emoji:nth-child(3){background: #f7ead8}
@media (max-width: 800px){
  .savoury-art{flex-direction: row; justify-content: center}
  .savoury-emoji:nth-child(2){transform: none}
}

/* ── cake shed band ─────────────────────────── */
.band-shed{
  background:
    radial-gradient(circle at 80% 20%, rgba(184,138,94,.15), transparent 55%),
    linear-gradient(180deg, var(--cream) 0%, #fff 100%);
}
.shed-row{
  display:grid; grid-template-columns: 1.4fr 1fr; gap: 2.4rem; align-items:center;
}
@media (max-width: 800px){.shed-row{grid-template-columns: 1fr}}
.shed-card{
  background: var(--paper); border:1px solid var(--line);
  border-radius: var(--radius); padding:2rem; box-shadow: var(--shadow);
}
.shed-card h2{margin-top:.2rem}
.shed-facts{list-style:none; padding:0; margin:1rem 0 1.4rem}
.shed-facts li{
  display:flex; align-items:center; gap:.7rem;
  padding:.5rem 0; border-bottom:1px solid var(--line);
  color: var(--cocoa-700); font-size:1.02rem;
}
.shed-facts li:last-child{border-bottom: 0}
.shed-facts span{font-size:1.2rem; flex:0 0 auto}

.shed-art{display:flex; justify-content:center}
.shed-art img{
  width: 100%; max-width: 420px;
  aspect-ratio: 3 / 4; object-fit: cover;
  border-radius: var(--radius);
  box-shadow: 0 12px 28px rgba(74,46,29,.18);
  border: 4px solid var(--paper);
}
.shed-page-card{overflow: hidden}
.shed-page-photo{
  display: block; margin: 0 auto 1.4rem;
  width: 100%; max-width: 460px;
  height: auto; max-height: 520px; object-fit: contain;
  border-radius: 10px;
}
.shed-illustration{
  position:relative; width: 260px; height: 220px;
  filter: drop-shadow(0 8px 20px rgba(74,46,29,.18));
}
.shed-roof{
  position:absolute; left:50%; top:0; transform: translateX(-50%);
  width:0; height:0;
  border-left: 150px solid transparent;
  border-right: 150px solid transparent;
  border-bottom: 70px solid var(--cocoa);
}
.shed-body{
  position:absolute; left:50%; top:60px; transform: translateX(-50%);
  width: 240px; height: 160px;
  background: linear-gradient(180deg, #b88a5e 0%, #8a6748 100%);
  border-radius: 6px;
}
.shed-window{
  position:absolute; left: 30px; top: 30px;
  width: 60px; height: 60px;
  background: #fbf6ef; border: 4px solid var(--cocoa);
  border-radius: 4px;
  box-shadow: inset 0 0 0 2px #fbf6ef, inset 0 28px 0 -14px var(--cocoa), inset 28px 0 0 -14px var(--cocoa);
}
.shed-door{
  position:absolute; right: 30px; top: 28px;
  width: 70px; height: 110px;
  background: #4a2e1d; border-radius: 4px 4px 0 0;
  border: 4px solid var(--cocoa);
}
.shed-door::after{
  content:""; position:absolute; right: 10px; top: 60px;
  width: 6px; height: 6px; border-radius: 50%; background: #b88a5e;
}
.shed-sign{
  position:absolute; left: 50%; bottom: -14px; transform: translateX(-50%);
  background: #fbf6ef; color: var(--cocoa);
  font-family: Georgia, serif; font-weight: 700; letter-spacing: .15em;
  padding: .25rem .7rem; border-radius: 4px;
  border: 2px solid var(--cocoa); font-size: .85rem;
}
@media (max-width: 800px){.shed-illustration{width: 220px; height: 190px}}

/* ── about row / quote ───────────────────────── */
.about-row{display:grid; grid-template-columns: 1.2fr 1fr; gap:2.2rem; align-items:center}
@media (max-width: 800px){.about-row{grid-template-columns: 1fr}}
.quote-card{
  background: var(--paper); border-left: 4px solid var(--caramel);
  padding:1.6rem; border-radius:10px; box-shadow: var(--shadow);
  font-style: italic; color: var(--cocoa-700);
}

/* ── steps ───────────────────────────────────── */
.steps{counter-reset: step; list-style:none; padding:0; max-width:760px; margin: 0 auto}
.steps li{
  counter-increment: step; padding:1rem 1rem 1rem 3.2rem; position:relative;
  background: var(--paper); border:1px solid var(--line); border-radius:10px;
  margin-bottom:.7rem;
}
.steps li::before{
  content: counter(step); position:absolute; left:1rem; top:1rem;
  width:1.8rem; height:1.8rem; border-radius:50%;
  background: var(--cocoa); color: var(--paper);
  display:flex; align-items:center; justify-content:center; font-weight:700;
}

/* ── page head ──────────────────────────────── */
.page-head{padding: 2.6rem 0 1.6rem; background: linear-gradient(180deg, #fff, var(--cream))}

/* ── forms / cards ──────────────────────────── */
.card{
  background: var(--paper); border:1px solid var(--line); border-radius: var(--radius);
  padding: 1.6rem; box-shadow: var(--shadow);
}
.form label{display:block; margin-bottom:.9rem; font-weight:500}
.form label.inline{display:inline-flex; align-items:center; gap:.5rem; margin-right:1rem; font-weight:400}
.form input[type=text], .form input[type=email], .form input[type=tel],
.form input[type=date], .form input[type=number], .form input[type=password],
.form input:not([type]), .form select, .form textarea{
  display:block; width:100%; padding:.6rem .8rem; margin-top:.3rem;
  border:1px solid var(--line); border-radius: 8px;
  background: var(--paper); color: var(--ink); font-family: inherit; font-size: 1rem;
}
.form textarea{resize: vertical}
.row-2{display:grid; grid-template-columns: 1fr 1fr; gap:1rem}
@media (max-width: 600px){.row-2{grid-template-columns: 1fr}}
.sub-block{border:1px solid var(--line); border-radius: 10px; padding:1rem; margin: 0 0 1rem; background: #fdfaf3}
.sub-block legend{padding: 0 .4rem; font-weight:600; color: var(--cocoa)}
.pay-options{display:flex; flex-wrap:wrap; gap:.6rem 1rem; margin: .4rem 0 1.2rem}

.order-layout{display:grid; grid-template-columns: 1.6fr .8fr; gap:1.5rem; align-items:flex-start}
@media (max-width: 880px){.order-layout{grid-template-columns: 1fr}}
.summary{position:sticky; top: 5rem}

/* ── flash ──────────────────────────────────── */
.flash-wrap{margin: 1rem 0}
.flash{padding:.8rem 1rem; border-radius: 10px; margin-bottom:.6rem; border:1px solid; font-weight:500}
.flash-success{background: #eaf6ee; border-color: #c6e4d0; color: var(--ok)}
.flash-error{background: #fbe9e6; border-color: #f0c8c0; color: var(--err)}

/* ── footer ─────────────────────────────────── */
.site-footer{background: var(--cocoa); color: #f7ead8; padding: 3rem 0 1.5rem; margin-top: 3rem}
.site-footer h4{color: #fff; margin-bottom:.6rem}
.site-footer .muted{color: #d6c2a6}
.site-footer a{color:#f7ead8}
.footer-grid{display:grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap:2rem}
@media (max-width: 800px){.footer-grid{grid-template-columns: 1fr 1fr}}
@media (max-width: 480px){.footer-grid{grid-template-columns: 1fr}}
.link-list{list-style:none; padding:0; margin:0}
.link-list li{margin:.25rem 0}
.socials{display:flex; flex-direction:column; gap:.4rem; margin: .4rem 0 0}
.socials a{display:inline-flex; align-items:center; gap:.5rem; color:#f7ead8; text-decoration:none; font-size:.92rem}
.socials a:hover{color:#fff}
.socials svg{flex:0 0 auto}
.nav-icon{display:inline-flex; align-items:center; justify-content:center; color: var(--cocoa-700); padding: 0 .25rem}
.nav-icon:hover{color: var(--cocoa)}
.pay-strip{display:flex; gap:.6rem; align-items:center; flex-wrap:wrap; padding:1.2rem 1.25rem; border-top:1px solid rgba(255,255,255,.08); margin-top:1.5rem}
.pay-badge{
  background: rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.15);
  padding:.3rem .7rem; border-radius:6px; font-size:.85rem;
}
.copy{padding-top:1rem; border-top:1px solid rgba(255,255,255,.08); margin-top:1rem; font-size:.85rem; color:#d6c2a6}

/* ── cookie banner ─────────────────────────── */
.cookie-banner{
  position: fixed; bottom: 1rem; left: 1rem; right: 1rem; max-width: 520px; margin:0 auto;
  background: var(--cocoa); color:#fff; padding: 1rem 1.2rem;
  border-radius: 12px; box-shadow: 0 12px 28px rgba(0,0,0,.25);
  display:flex; align-items:center; gap:1rem; z-index: 60;
}
.cookie-banner[hidden]{display:none}
.cookie-banner p{margin:0; font-size:.92rem; flex:1}
.cookie-banner a{color:#f7ead8}
.cookie-banner button{
  background: #fff; color: var(--cocoa); border:0; border-radius:999px;
  padding:.5rem 1rem; cursor:pointer; font-weight:600;
}

/* ── mobile polish ────────────────────────────────── */
/* prevent iOS auto-zoom on focus */
.form input, .form select, .form textarea{font-size: 16px}

@media (max-width: 760px){
  .wrap{padding: 0 1rem}
  .header-row{padding: .8rem 1rem}
  .brand{font-size: 1.05rem; gap:.45rem}
  .brand img{height: 36px}
  .brand-banner-img{height: 44px; max-width: 78vw}
  .hero{padding: 2rem 0 1.5rem}
  .hero-banner-cta{padding: 1.6rem 1rem 2rem}
  .hero-banner-img{max-height: 320px}
  h1{font-size: clamp(1.7rem, 7vw, 2.4rem)}
  h2{font-size: clamp(1.3rem, 5vw, 1.8rem)}
  .lede{font-size: 1.05rem}

  .band{padding: 2.2rem 0}
  .page-head{padding: 1.6rem 0 1rem}

  .why-card, .card{padding: 1.2rem}
  .product-card{padding: 1.1rem}
  .product-thumb{aspect-ratio: 16/9; font-size: 2.4rem}

  .cta-row{gap:.6rem}
  .cta-row .btn{flex: 1 1 auto; text-align:center}
  .btn-lg{padding:.8rem 1.2rem; font-size: 1rem}

  .summary{position: static}
  .order-layout{gap: 1rem}

  .quote-card{padding: 1.2rem}
  .steps li{padding: .8rem .8rem .8rem 2.8rem}

  .pay-strip{padding: 1rem; gap:.4rem}

  .cookie-banner{
    bottom: .5rem; left: .5rem; right: .5rem; padding: .8rem 1rem;
    flex-direction: column; align-items: stretch; gap:.6rem;
  }
  .cookie-banner button{align-self: flex-end}
}

@media (max-width: 420px){
  .cta-row{flex-direction: column; align-items: stretch}
  .cta-row .btn{width: 100%}
  .product-thumb{aspect-ratio: 4/3}
  .hero-card{max-width: 100%}
}

/* ───── Build-your-own bake box ───── */
.byo-cta{
  display:flex; align-items:center; justify-content:space-between;
  gap: 1.4rem; flex-wrap: wrap;
  background: linear-gradient(135deg, var(--paper), var(--cream));
  border: 1px solid var(--line); border-radius: var(--radius);
  padding: 1.4rem 1.6rem;
}
.byo-cta h2{margin: .2rem 0; color: var(--cocoa)}
.byo-cta .btn{margin-top:.4rem}

.byo-form{display:flex; flex-direction:column; gap:.6rem}
.byo-form h2{margin: 1.2rem 0 .4rem; color: var(--cocoa)}
.byo-intro{margin-bottom: .8rem}
.byo-grid{
  display:grid; gap: 1rem;
  grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
  margin-bottom: .8rem;
}
.byo-card{
  display:flex; flex-direction:column; cursor:pointer;
  background: var(--paper); border: 1px solid var(--line);
  border-radius: var(--radius); overflow: hidden; position: relative;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.byo-card:hover{transform: translateY(-2px); box-shadow: 0 6px 18px rgba(74,46,29,.08)}
.byo-card.is-picked{border-color: var(--cocoa); box-shadow: 0 0 0 2px var(--cocoa) inset}
.byo-card.is-locked{opacity: .45; cursor: not-allowed}
.byo-card input[type="checkbox"]{position: absolute; opacity: 0; pointer-events: none}
.byo-thumb{
  position: relative; aspect-ratio: 4/3;
  background: linear-gradient(135deg, #efdcc1, #b88a5e);
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.byo-thumb img{width:100%; height:100%; object-fit: cover; display: block}
.byo-thumb-placeholder{
  font-family: Georgia, serif; font-size: 2.6rem; font-weight: 700;
  color: var(--cocoa);
}
.byo-tick{
  position: absolute; top:.5rem; right:.5rem;
  width: 28px; height: 28px; border-radius: 50%;
  background: var(--cocoa); color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-weight:700; opacity: 0; transform: scale(.7);
  transition: opacity .15s ease, transform .15s ease;
}
.byo-card.is-picked .byo-tick{opacity:1; transform: scale(1)}
.byo-card-meta{padding: .7rem .9rem .9rem}
.byo-card-meta h3{margin:0 0 .15rem; font-size: 1rem}
.byo-card-meta p{margin:0; font-size:.85rem}

.byo-summary{
  display:flex; justify-content:space-between; align-items:center;
  gap:1rem; padding: 1rem 1.2rem;
  background: var(--cream); border: 1px solid var(--line);
  border-radius: var(--radius); margin: 1rem 0 .6rem;
  font-size: 1.1rem;
}
.byo-summary strong{color: var(--cocoa); font-size: 1.4rem; font-family: Georgia, serif}

#byo-submit.is-disabled, #byo-submit:disabled{
  opacity:.55; cursor:not-allowed; pointer-events:none;
}

/* BYO hero image */
.byo-hero{
  border-radius: var(--radius);
  overflow: hidden; aspect-ratio: 16/7;
  background: linear-gradient(135deg, #efdcc1, #b88a5e);
  box-shadow: 0 12px 32px rgba(74,46,29,.10);
}
.byo-hero img{width:100%; height:100%; object-fit: cover; display:block}

/* Facts row above the bakes grid */
.byo-facts{
  list-style: none; padding: 0; margin: .8rem 0 0;
  display: flex; flex-wrap: wrap; gap: .5rem;
}
.byo-facts li{
  background: var(--cream); border: 1px solid var(--line);
  border-radius: 999px; padding: .3rem .8rem; font-size: .9rem;
  color: var(--cocoa-700);
}
.byo-facts li strong{color: var(--cocoa)}

/* Multi-line summary card */
.byo-summary-lines{display:flex; flex-direction:column; gap:.4rem; width:100%}
.byo-summary-lines > div{display:flex; justify-content:space-between; gap:1rem; align-items: baseline}
.byo-summary-lines .small{font-size:.78rem}
.byo-summary-total{
  margin-top:.4rem; padding-top:.6rem; border-top: 1px solid var(--line);
  font-size: 1.1rem;
}
.byo-summary-total strong{color: var(--cocoa); font-size: 1.5rem; font-family: Georgia, serif}

/* ───── BYO picker — categories ───── */
.byo-cat{
  background: var(--paper); border: 1px solid var(--line);
  border-radius: var(--radius); margin: 1rem 0;
  overflow: hidden;
}
.byo-cat > summary{
  list-style: none; cursor: pointer;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding: 1rem 1.2rem;
  font-family: Georgia, serif; color: var(--cocoa); font-weight: 600;
  font-size: 1.15rem;
  border-bottom: 1px solid transparent;
}
.byo-cat > summary::-webkit-details-marker{display:none}
.byo-cat[open] > summary{border-bottom-color: var(--line); background: #fdf8f0}
.byo-cat-meta{display:inline-flex; align-items:center; gap:.6rem; font-weight: 400; color: var(--muted); font-size: .92rem}
.byo-cat-count{color: var(--cocoa-700); font-weight: 600}
.byo-cat-chev{transition: transform .2s ease; color: var(--cocoa-700)}
.byo-cat:not([open]) .byo-cat-chev{transform: rotate(-90deg)}
.byo-cat .byo-grid{padding: 1rem 1.2rem}

/* Sticky bottom bar with running total + checkout CTA */
.byo-bar{
  position: sticky; bottom: 0;
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; flex-wrap: wrap;
  margin-top: 1.4rem; padding: 1rem 1.2rem;
  background: rgba(255, 252, 244, .96);
  backdrop-filter: blur(6px);
  border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: 0 -8px 18px rgba(74,46,29,.10);
  z-index: 8;
}
.byo-bar-label{display:block; margin-bottom: .15rem}
.byo-bar-total strong{color: var(--cocoa); font-size: 1.6rem; font-family: Georgia, serif}
.byo-bar #byo-submit.is-disabled{opacity:.55; cursor:not-allowed; pointer-events:none}
@media (max-width: 560px){
  .byo-bar{justify-content:stretch; flex-direction: column; align-items: stretch}
  .byo-bar #byo-submit{width: 100%}
}

/* Checkout summary card */
.byo-summary-card{padding-top:1.4rem}
.byo-summary-bakes{list-style:none; padding:0; margin: 1rem 0 0; display:flex; flex-direction:column; gap:.55rem}
.byo-summary-bakes li{
  display:flex; align-items:center; gap:.7rem;
  padding:.5rem; border:1px solid var(--line); border-radius:8px;
  background: #fdfaf3;
}
.byo-summary-bakes img,
.byo-summary-bakes .byo-summary-ph{
  width: 44px; height: 44px; border-radius: 6px; flex: 0 0 auto;
  object-fit: cover;
}
.byo-summary-bakes .byo-summary-ph{
  background: linear-gradient(135deg, #efdcc1, #b88a5e);
  color: var(--cocoa); display:flex; align-items:center; justify-content:center;
  font-family: Georgia, serif; font-weight: 700;
}
.byo-summary-bakes li > div{flex:1 1 auto; min-width: 0; display:flex; flex-direction:column; gap:.1rem}
.byo-summary-bakes li > div strong{font-size:.95rem; color: var(--cocoa); line-height: 1.25}
.byo-summary-bakes li > span:last-child{color: var(--cocoa-700); font-weight: 600; font-size:.95rem}

/* ───── Homepage product showcase ───── */
.showcase{
  position: relative; margin: 1.4rem -8px 0;
}
.showcase-track{
  display: flex; gap: 22px; overflow-x: auto;
  scroll-snap-type: x mandatory; scroll-behavior: smooth;
  scrollbar-width: none; -ms-overflow-style: none;
  padding: 8px 8px 22px; scroll-padding: 8px;
}
.showcase-track::-webkit-scrollbar{display:none}
.showcase-slide{
  flex: 0 0 calc((100% - 44px) / 3);
  scroll-snap-align: start; min-width: 0;
  display: flex; flex-direction: column;
  background: var(--paper); border: 1px solid var(--line);
  border-radius: 14px; overflow: hidden;
  text-decoration: none; color: inherit;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.showcase-slide:hover{
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(74,46,29,.12);
  border-color: var(--cocoa-700);
  text-decoration: none;
}
.showcase-thumb{
  position: relative; aspect-ratio: 1/1; overflow: hidden;
  background: linear-gradient(135deg, #efdcc1, #b88a5e);
  display:flex; align-items:center; justify-content:center;
}
.showcase-thumb img{
  width:100%; height:100%; object-fit: cover; display:block;
  transition: transform .5s ease;
}
.showcase-slide:hover .showcase-thumb img{transform: scale(1.05)}
.showcase-placeholder{
  font-family: Georgia, serif; font-size: 4rem; font-weight: 700;
  color: var(--cocoa);
}
.showcase-meta{
  padding: .9rem 1rem 1rem;
  display: flex; justify-content: space-between; align-items: baseline;
  gap: .8rem;
}
.showcase-meta h3{
  margin: 0; font-size: 1.05rem; color: var(--cocoa);
  font-family: Georgia, serif; line-height: 1.25;
}
.showcase-meta strong{
  color: var(--cocoa-700); font-family: Georgia, serif;
  font-size: 1.1rem; white-space: nowrap;
}

.showcase-arrow{
  position: absolute; top: 38%;
  transform: translateY(-50%);
  width: 44px; height: 44px; border-radius: 50%;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.96);
  color: var(--cocoa); font-size: 22px; line-height: 1;
  cursor: pointer; z-index: 3;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 6px 18px rgba(74,46,29,.18);
  transition: opacity .25s, background .2s, transform .15s, color .2s;
  opacity: 0;
}
.showcase:hover .showcase-arrow, .showcase-arrow:focus-visible{opacity: 1}
.showcase-arrow:hover{background: var(--cocoa); color:#fff; border-color: var(--cocoa)}
.showcase-arrow:active{transform: translateY(-50%) scale(.94)}
.showcase-prev{left: -10px}
.showcase-next{right: -10px}

.showcase-dots{
  display: flex; gap: 8px; justify-content: center;
  margin-top: 6px;
}
.showcase-dot{
  width: 8px; height: 8px; border-radius: 50%;
  border: 0; background: rgba(74,46,29,.2); cursor: pointer; padding: 0;
  transition: background .2s, width .2s;
}
.showcase-dot.active{background: var(--cocoa); width: 22px; border-radius: 4px}

@media (max-width: 900px){
  .showcase-slide{flex-basis: calc((100% - 22px) / 2)}
  .showcase-arrow{opacity: 1}
}
@media (max-width: 560px){
  .showcase-slide{flex-basis: 78%}
  .showcase-arrow{display:none}
  .showcase{margin: 1.2rem -16px 0}
  .showcase-track{padding-left: 16px; padding-right: 16px}
}

/* ── Stock / sold-out ────────────────────────────────────────────────── */
.is-sold-out .product-thumb,
.is-sold-out .byo-thumb{position:relative}
.is-sold-out{opacity:.85}
.sold-overlay{
  position:absolute;top:8px;left:8px;z-index:2;
  background:#7a2c2c;color:#fff;font-size:11px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;
  padding:5px 10px;border-radius:99px;
  box-shadow:0 2px 8px rgba(0,0,0,.15);
}
.stock-note{margin:.3rem 0;font-size:13px;font-weight:600;letter-spacing:.01em}
.stock-low{color:#b06d2a}
.stock-out{color:#7a2c2c}
.btn-disabled{
  background:#e0d8c8;color:#7d6f5b;cursor:not-allowed;pointer-events:none;
  border:1px solid transparent;
}
.byo-card.is-sold-out{filter:saturate(.7)}
.byo-card.is-sold-out input{cursor:not-allowed}
.byo-card.is-sold-out .byo-tick{display:none}

/* ── Shop page ──────────────────────────────────────────────────────── */
.shop-cat{margin-bottom:2.4rem}
.shop-cat .section-title{margin:0 0 1rem;padding-bottom:.4rem;border-bottom:1px dashed var(--line, #e6dccb)}
.filter-row{display:flex;flex-wrap:wrap;gap:.5rem}
.filter-row .chip{
  display:inline-block;padding:.4rem .9rem;border-radius:99px;
  background:rgba(255,255,255,.7);border:1px solid var(--line, #e6dccb);
  color:var(--ink);font-size:.85rem;font-weight:600;text-decoration:none;
}
.filter-row .chip:hover{background:#fff}
.filter-row .chip.on{background:var(--cocoa);color:#fff;border-color:var(--cocoa)}
.product-thumb{position:relative}
.badge-postal{
  position:absolute;top:8px;right:8px;
  background:var(--cocoa);color:#fff;font-size:11px;font-weight:700;
  letter-spacing:.04em;padding:4px 9px;border-radius:99px;
}
