/*
Theme Name: Nakruszone
Theme URI: https://nakruszone.pl
Description: Domowe wypieki na zamówienie — custom WordPress theme
Author: Michał Kamiński
Version: 1.5.0
Text Domain: nakruszone
*/

/* ═══════════════════════════════════════════════════════════
   TOKENS
═══════════════════════════════════════════════════════════ */
:root {
  --cream:           #FAF6EF;
  --cream-dark:      #F0E8D8;
  --cream-deeper:    #E5D4BC;
  --brown-deep:      #1A0D08;
  --brown:           #3D1F13;
  --brown-light:     #6B3A2A;
  --terracotta:      #C85C35;
  --terracotta-lt:   #D97A58;
  --terracotta-dk:   #A3421F;
  --terracotta-pale: #F5E8E1;
  --caramel:         #9B6B42;
  --text:            #281208;
  --text-muted:      #7A5F50;
  --text-light:      #A8907E;
  --border:          #DDD0BC;
  --border-light:    #EDE2D2;
  --white:           #FFFFFF;

  --font-display: 'Cormorant Garamond', Georgia, serif;
  --font-body:    'DM Sans', system-ui, sans-serif;

  --sp-1:  0.25rem;  --sp-2:  0.5rem;   --sp-3:  0.75rem;
  --sp-4:  1rem;     --sp-5:  1.25rem;  --sp-6:  1.5rem;
  --sp-8:  2rem;     --sp-10: 2.5rem;   --sp-12: 3rem;
  --sp-14: 3.5rem;   --sp-16: 4rem;     --sp-20: 5rem;

  --radius-sm: 4px;   --radius: 10px;
  --radius-lg: 18px;  --radius-xl: 28px;

  --shadow-sm:   0 1px 4px rgba(26,13,8,.07), 0 1px 2px rgba(26,13,8,.04);
  --shadow:      0 4px 20px rgba(26,13,8,.09), 0 1px 4px rgba(26,13,8,.05);
  --shadow-md:   0 8px 36px rgba(26,13,8,.11), 0 2px 8px rgba(26,13,8,.06);
  --shadow-lg:   0 24px 64px rgba(26,13,8,.13), 0 4px 16px rgba(26,13,8,.07);
  --shadow-card: 0 2px 12px rgba(26,13,8,.07), 0 1px 3px rgba(26,13,8,.04);

  --ease:     cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --ease-out: cubic-bezier(0.0, 0.0, 0.2, 1);
  --t-fast: 150ms; --t: 260ms; --t-slow: 420ms;

  --container:        1200px;
  --container-narrow: 760px;
  --header-h:         68px;
}

/* ═══════════════════════════════════════════════════════════
   KEYFRAMES
═══════════════════════════════════════════════════════════ */
@keyframes fadeUp  { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }
@keyframes fadeIn  { from { opacity:0; } to { opacity:1; } }
@keyframes bounce  { 0%,100%{transform:translateX(-50%) translateY(0);opacity:.4} 50%{transform:translateX(-50%) translateY(5px);opacity:.85} }
@keyframes shimmer { 0%{background-position:-200% center} 100%{background-position:200% center} }

/* ═══════════════════════════════════════════════════════════
   RESET
═══════════════════════════════════════════════════════════ */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; overflow-x:hidden; }
body {
  font-family:var(--font-body); font-size:1rem; line-height:1.65;
  color:var(--text); background:var(--cream);
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
body.menu-open,body.lightbox-open { overflow:hidden; }
img,video { display:block; max-width:100%; height:auto; }
a { color:inherit; text-decoration:none; }
a:focus-visible { outline:2px solid var(--terracotta); outline-offset:3px; border-radius:2px; }
button { cursor:pointer; border:none; background:none; font:inherit; }
ul,ol { list-style:none; }
input,textarea,select { font:inherit; }
p { max-width:68ch; }

.skip-link {
  position:absolute; top:-100%; left:var(--sp-4); z-index:9999;
  padding:var(--sp-2) var(--sp-4); background:var(--brown-deep); color:var(--cream);
  border-radius:var(--radius); font-weight:500;
}
.skip-link:focus { top:var(--sp-4); }

/* ═══════════════════════════════════════════════════════════
   LAYOUT
═══════════════════════════════════════════════════════════ */
.container {
  width:100%; max-width:var(--container);
  margin-inline:auto; padding-inline:var(--sp-5);
}
@media (min-width:640px)  { .container { padding-inline:var(--sp-8); } }
@media (min-width:1024px) { .container { padding-inline:var(--sp-12); } }
.container--narrow { max-width:var(--container-narrow); }

.section     { padding-block:var(--sp-14); }
.section--sm { padding-block:var(--sp-10); }
.section--warm { background:var(--cream-dark); }

/* ═══════════════════════════════════════════════════════════
   TYPOGRAPHY
═══════════════════════════════════════════════════════════ */
h1,h2,h3,h4 {
  font-family:var(--font-display); font-weight:500;
  line-height:1.15; color:var(--brown-deep); letter-spacing:-0.01em;
}

/* ═══════════════════════════════════════════════════════════
   BUTTONS
═══════════════════════════════════════════════════════════ */
.btn {
  display:inline-flex; align-items:center; gap:var(--sp-2);
  padding:.72em 1.6em; border-radius:100px;
  font-family:var(--font-body); font-size:.875rem; font-weight:500;
  letter-spacing:.015em; white-space:nowrap; cursor:pointer;
  transition:transform var(--t-fast) var(--ease),
             box-shadow var(--t-fast) var(--ease),
             background var(--t-fast) var(--ease),
             color var(--t-fast) var(--ease),
             border-color var(--t-fast) var(--ease);
}
.btn:active { transform:scale(.97) !important; }

.btn--primary {
  background:var(--terracotta); color:var(--white);
  box-shadow:0 2px 14px rgba(200,92,53,.28);
}
.btn--primary:hover { background:var(--terracotta-dk); box-shadow:0 4px 22px rgba(200,92,53,.38); transform:translateY(-1px); }

.btn--secondary { background:var(--brown-deep); color:var(--cream); }
.btn--secondary:hover { background:var(--brown); transform:translateY(-1px); }

.btn--ghost { background:transparent; color:var(--brown-deep); border:1.5px solid var(--border); }
.btn--ghost:hover { border-color:var(--brown-light); background:var(--cream-dark); }

.btn--outline { background:transparent; color:var(--terracotta); border:1.5px solid var(--terracotta); }
.btn--outline:hover { background:var(--terracotta); color:var(--white); }

.btn--nav { background:var(--terracotta); color:var(--white); padding:.5em 1.2em; font-size:.82rem; }
.btn--nav:hover { background:var(--terracotta-dk); transform:translateY(-1px); }

.btn--lg { padding:.85em 2.2em; font-size:1rem; }
.btn--sm { padding:.42em 1em; font-size:.78rem; }

/* ═══════════════════════════════════════════════════════════
   HEADER & NAV
═══════════════════════════════════════════════════════════ */
.site-header {
  position:sticky; top:0; z-index:200; height:var(--header-h);
  /* No background/filter here — use ::before so fixed nav-links stays viewport-relative */
  border-bottom:1px solid transparent;
  transition:border-color var(--t) var(--ease),
             box-shadow var(--t) var(--ease),
             top var(--t-slow) var(--ease);
}
/* backdrop-filter on ::before avoids creating a containing block for position:fixed descendants */
.site-header::before {
  content:''; position:absolute; inset:0; z-index:-1;
  background:rgba(250,246,239,.96);
  backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
}
.site-header.is-scrolled { border-color:var(--border-light); box-shadow:0 1px 12px rgba(26,13,8,.06); }
.site-header.is-hidden   { top: calc(-1 * var(--header-h)); }

.site-nav {
  height:100%; display:flex; align-items:center;
  justify-content:space-between; gap:var(--sp-4);
}

.nav-logo {
  font-family:var(--font-display); font-size:1.5rem;
  font-weight:600; font-style:italic; letter-spacing:-.03em;
  color:var(--brown-deep); flex-shrink:0;
  transition:color var(--t-fast);
}
.nav-logo__text { position:relative; white-space:nowrap; }
.nav-logo__crumbs {
  position:absolute; bottom:0; left:100%;
  overflow:visible; pointer-events:none;
}
.nav-logo:hover { color:var(--terracotta); }

/* Desktop nav links */
.nav-links { display:flex; align-items:center; gap:0; }

.nav-links li a:not(.btn) {
  display:block; padding:var(--sp-2) var(--sp-3);
  font-size:.875rem; color:var(--text-muted);
  border-radius:var(--radius-sm); position:relative;
  transition:color var(--t-fast);
}
.nav-links li a:not(.btn)::after {
  content:''; position:absolute; bottom:4px; left:var(--sp-3); right:var(--sp-3);
  height:1px; background:var(--terracotta);
  transform:scaleX(0); transform-origin:left;
  transition:transform var(--t) var(--ease);
}
.nav-links li a:not(.btn):hover                    { color:var(--brown-deep); }
.nav-links li a:not(.btn):hover::after,
.nav-links li a[aria-current="page"]::after        { transform:scaleX(1); }
.nav-links li a[aria-current="page"]               { color:var(--brown-deep); }
.nav-links__cta { margin-left:var(--sp-3); }

/* Hamburger button */
.nav-toggle {
  display:none; flex-direction:column; justify-content:center;
  align-items:center; width:40px; height:40px; gap:6px; flex-shrink:0;
  border-radius:var(--radius); border:1.5px solid var(--border);
  background:var(--white);
  transition:background var(--t-fast), border-color var(--t-fast), box-shadow var(--t-fast);
  box-shadow:var(--shadow-sm);
}
.nav-toggle:hover { background:var(--cream-dark); border-color:var(--cream-deeper); }
.nav-toggle.is-open { background:var(--cream-dark); border-color:var(--brown-light); }
.nav-toggle__bar {
  display:block; width:26px; height:2px; background:var(--brown-deep);
  border-radius:2px; transform-origin:center;
  transition:transform var(--t) var(--ease), opacity var(--t) var(--ease), width var(--t) var(--ease);
}
.nav-toggle.is-open .nav-toggle__bar:nth-child(1) { transform:translateY(8px) rotate(45deg); }
.nav-toggle.is-open .nav-toggle__bar:nth-child(2) { opacity:0; width:0; }
.nav-toggle.is-open .nav-toggle__bar:nth-child(3) { transform:translateY(-8px) rotate(-45deg); }

@media (max-width:860px) {
  .nav-toggle { display:flex; }

  .nav-links {
    position:fixed; top:var(--header-h); left:0; right:0; bottom:0;
    flex-direction:column; align-items:stretch; gap:0;
    background:var(--cream); padding:var(--sp-2) var(--sp-6) var(--sp-10);
    transform:translateX(100%);
    transition:transform var(--t-slow) var(--ease);
    overflow-y:auto; border-top:1px solid var(--border-light);
    z-index:199;
  }
  .nav-links.is-open { transform:translateX(0); }

  .nav-links li { border-bottom:1px solid var(--border-light); }
  .nav-links li:last-child { border-bottom:none; }

  .nav-links li a:not(.btn) {
    padding:var(--sp-4) 0; font-family:var(--font-display);
    font-size:1.4rem; font-weight:500; color:var(--brown-deep);
  }
  .nav-links li a:not(.btn)::after { display:none; }

  .nav-links__cta { margin-left:0; margin-top:var(--sp-6); border-bottom:none !important; }
  .btn--nav { width:100%; justify-content:center; font-size:1rem; padding:.8em 1.5em; }
}

/* ═══════════════════════════════════════════════════════════
   HERO — no full-height, generous padding only
═══════════════════════════════════════════════════════════ */
.hero {
  position:relative; overflow:hidden;
  background:var(--cream);
  padding-block:var(--sp-10) var(--sp-8);
}
@media (min-width:768px) { .hero { padding-block:var(--sp-16) var(--sp-14); } }

/* Grain overlay */
.hero::before {
  content:''; position:absolute; inset:0; pointer-events:none; z-index:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");
  background-size:200px;
}
/* Decorative arc */
.hero::after {
  content:''; position:absolute; bottom:-80px; right:-80px;
  width:360px; height:360px; border-radius:50%;
  border:1px solid var(--border-light); pointer-events:none; z-index:0;
}

.hero-container {
  position:relative; z-index:1;
  display:grid; grid-template-columns:1fr; gap:var(--sp-8); align-items:center;
}
@media (min-width:600px) { .hero-container { grid-template-columns:1fr 1fr; gap:var(--sp-10); } }
@media (min-width:1024px){ .hero-container { grid-template-columns:58fr 42fr; gap:var(--sp-16); } }

.hero-content {
  display:flex; flex-direction:column; gap:var(--sp-4);
  animation:fadeUp .65s var(--ease-out) both;
}

.hero-eyebrow {
  display:inline-flex; align-items:center; gap:var(--sp-3);
  font-size:.72rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--terracotta);
}
.hero-eyebrow::before { content:''; display:block; width:28px; height:1px; background:currentColor; }

.hero-title {
  font-family:var(--font-display);
  font-size:clamp(2.6rem, 7vw, 5.5rem);
  font-weight:500; line-height:1.0; color:var(--brown-deep); letter-spacing:-.025em;
}
.hero-title em { font-style:italic; color:var(--terracotta); }

.hero-text { font-size:clamp(.9rem,1.5vw,1.05rem); color:var(--text-muted); line-height:1.75; max-width:46ch; }

.hero-actions { display:flex; flex-wrap:wrap; gap:var(--sp-3); align-items:center; padding-top:var(--sp-2); }

.hero-notice {
  display:inline-flex; align-items:center; gap:var(--sp-2);
  font-size:.78rem; color:var(--text-light); max-width:none;
}
.hero-notice svg { flex-shrink:0; color:var(--caramel); }
.hero-notice strong { color:var(--text-muted); }

/* Hero image */
.hero-image { animation:fadeIn .85s .18s var(--ease-out) both; }

.hero-image__frame {
  position:relative; border-radius:var(--radius-xl);
  overflow:hidden; aspect-ratio:4/3; box-shadow:var(--shadow-lg);
}
.hero-image__frame img { width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.hero-image__frame:hover img { transform:scale(1.04); }

.hero-image__placeholder {
  width:100%; height:100%; min-height:240px;
  background:linear-gradient(135deg,var(--cream-dark) 0%,var(--cream-deeper) 60%,var(--cream-dark) 100%);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-size:1.5rem; font-style:italic; color:var(--cream-deeper);
}

.hero-image__badge {
  position:absolute; bottom:var(--sp-4); left:var(--sp-4);
  background:rgba(26,13,8,.82); backdrop-filter:blur(8px);
  color:var(--cream); padding:var(--sp-3) var(--sp-4);
  border-radius:var(--radius-lg); font-size:.76rem;
  border:1px solid rgba(255,255,255,.1); line-height:1.4;
}
.hero-image__badge strong { display:block; font-family:var(--font-display); font-size:.95rem; }

.hero-scroll-hint {
  position:absolute; bottom:var(--sp-5); left:50%;
  display:flex; flex-direction:column; align-items:center; gap:4px;
  font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; color:var(--text-light);
  animation:bounce 2.5s ease-in-out infinite; pointer-events:none;
}

/* ═══════════════════════════════════════════════════════════
   SECTION HEADERS
═══════════════════════════════════════════════════════════ */
.section-header {
  text-align:center; margin-bottom:var(--sp-10);
  display:flex; flex-direction:column; align-items:center; gap:var(--sp-3);
}

.section-label {
  display:inline-flex; align-items:center; gap:var(--sp-3);
  font-size:.7rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:var(--terracotta);
}
.section-label::before,
.section-label::after { content:''; display:block; width:22px; height:1px; background:currentColor; opacity:.6; }

.section-title { font-family:var(--font-display); font-size:clamp(1.8rem,4vw,2.8rem); color:var(--brown-deep); line-height:1.15; }
.section-title--left { text-align:left; }
.section-subtitle { font-size:1rem; color:var(--text-muted); max-width:52ch; text-align:center; line-height:1.7; }
.section-footer { text-align:center; margin-top:var(--sp-10); }

/* ═══════════════════════════════════════════════════════════
   PRODUCT CARDS — responsive grid, no orphan issue
═══════════════════════════════════════════════════════════ */
.products-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:var(--sp-5);
}
@media (min-width:480px) { .products-grid { grid-template-columns:repeat(2,1fr); } }
@media (min-width:860px) { .products-grid { grid-template-columns:repeat(3,1fr); } }

/* Full-width variant on /oferta — flex so lone orphan card centers */
.products-grid--full {
  display:flex; flex-wrap:wrap; gap:var(--sp-5);
}
.products-grid--full .product-card { flex:1 1 100%; }
@media (min-width:480px) { .products-grid--full .product-card { flex:0 1 calc(50% - var(--sp-5)/2); } }
@media (min-width:860px) { .products-grid--full .product-card { flex:0 1 calc(33.333% - var(--sp-5)*2/3); } }

.product-card {
  background:var(--white); border-radius:var(--radius-lg);
  overflow:hidden; box-shadow:var(--shadow-card);
  border:1px solid var(--border-light);
  display:flex; flex-direction:column;
  transition:transform var(--t) var(--ease), box-shadow var(--t) var(--ease);
}
.product-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); }

.product-card__image-link {
  display:block; aspect-ratio:5/4; overflow:hidden;
  position:relative; background:var(--cream-dark);
}
.product-card__image-link img { width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.product-card:hover .product-card__image-link img { transform:scale(1.06); }

.product-card__placeholder {
  width:100%; height:100%; min-height:200px;
  background:linear-gradient(90deg,var(--cream-dark) 25%,var(--cream-deeper) 50%,var(--cream-dark) 75%);
  background-size:200% 100%; animation:shimmer 2s infinite;
}

.product-card__badge {
  position:absolute; top:var(--sp-3); right:var(--sp-3);
  background:var(--terracotta); color:var(--white);
  font-size:.65rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  padding:var(--sp-1) var(--sp-3); border-radius:100px;
}
.product-card__badge--best {
  background:#b45309; /* amber-700 — odróżnia się od terracotta */
  top:var(--sp-3); right:var(--sp-3);
}
.product-card__badge--best + .product-card__badge {
  top:calc(var(--sp-3) + 28px); /* zestaw badge poniżej bestseller */
}

.product-card__body { padding:var(--sp-4) var(--sp-5) var(--sp-5); display:flex; flex-direction:column; gap:var(--sp-2); flex:1; }

.product-card__time { display:flex; align-items:center; gap:5px; font-size:.72rem; color:var(--text-light); }
.product-card__time svg { color:var(--caramel); flex-shrink:0; }

.product-card__name { font-family:var(--font-display); font-size:1.2rem; font-weight:500; line-height:1.25; color:var(--brown-deep); }
.product-card__name a { color:inherit; }
.product-card__name a:hover { color:var(--terracotta); }

.product-card__excerpt {
  font-size:.84rem; color:var(--text-muted); line-height:1.6;
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden;
}

.product-card__footer {
  display:flex; align-items:center; justify-content:space-between;
  margin-top:auto; padding-top:var(--sp-3); border-top:1px solid var(--border-light);
}

.product-card__price { max-width:none; font-size:.84rem; color:var(--text-muted); }
.product-card__price strong { font-family:var(--font-display); font-size:1.15rem; color:var(--brown-deep); }

/* ═══════════════════════════════════════════════════════════
   STEPS — "Jak zamówić"
═══════════════════════════════════════════════════════════ */
.steps-grid {
  display:grid; grid-template-columns:1fr; gap:var(--sp-6); position:relative;
}
@media (min-width:600px)  { .steps-grid { grid-template-columns:1fr 1fr; } }
@media (min-width:1024px) {
  .steps-grid { grid-template-columns:repeat(4,1fr); gap:var(--sp-5); }
  .steps-grid::before {
    content:''; position:absolute; top:26px; left:calc(12.5% + 26px); right:calc(12.5% + 26px);
    height:1px; background:var(--border); z-index:0;
  }
}

.step { display:flex; gap:var(--sp-4); align-items:flex-start; }
@media (min-width:1024px) { .step { flex-direction:column; gap:var(--sp-4); } }

.step__number {
  width:52px; height:52px; border-radius:50%; flex-shrink:0;
  background:var(--terracotta); color:var(--white);
  font-family:var(--font-display); font-size:1.2rem; font-weight:600;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 14px rgba(200,92,53,.25); position:relative; z-index:1;
}

.step__title { font-family:var(--font-display); font-size:1.2rem; font-weight:500; color:var(--brown-deep); margin-bottom:var(--sp-2); }
.step__text  { font-size:.875rem; color:var(--text-muted); line-height:1.65; max-width:28ch; }

/* ═══════════════════════════════════════════════════════════
   LEAD TIME BANNER
═══════════════════════════════════════════════════════════ */
.lead-time-banner {
  background:var(--brown-deep); padding-block:var(--sp-12); position:relative; overflow:hidden;
}
.lead-time-banner::before {
  content:''; position:absolute; top:-60px; right:-60px;
  width:260px; height:260px; border-radius:50%; border:1px solid rgba(255,255,255,.06); pointer-events:none;
}
.lead-time-banner__inner {
  display:flex; flex-direction:column; align-items:center; gap:var(--sp-6); text-align:center; position:relative; z-index:1;
}
@media (min-width:768px) { .lead-time-banner__inner { flex-direction:row; text-align:left; gap:var(--sp-8); } }

.lead-time-banner__icon { flex-shrink:0; color:var(--terracotta-lt); }
.lead-time-banner__text { flex:1; }
.lead-time-banner__text h3 { color:var(--cream); font-size:clamp(1.1rem,2.5vw,1.45rem); margin-bottom:var(--sp-2); }
.lead-time-banner__text p  { color:rgba(250,246,239,.65); font-size:.9rem; max-width:52ch; }

/* ═══════════════════════════════════════════════════════════
   CTA BOX
═══════════════════════════════════════════════════════════ */
.cta-section { background:var(--cream-dark); }

.cta-box {
  text-align:center; display:flex; flex-direction:column;
  align-items:center; gap:var(--sp-4);
  padding:var(--sp-12) var(--sp-6);
  background:var(--white); border-radius:var(--radius-xl);
  box-shadow:var(--shadow-sm); border:1px solid var(--border-light); position:relative;
}
.cta-box::before {
  content:''; position:absolute; top:0; left:50%; transform:translateX(-50%);
  width:60px; height:3px; background:var(--terracotta); border-radius:0 0 4px 4px;
}
.cta-box__title { font-family:var(--font-display); font-size:clamp(2rem,4.5vw,3.2rem); color:var(--brown-deep); line-height:1.1; }
.cta-box__title em { font-style:italic; color:var(--terracotta); }
.cta-box__text   { color:var(--text-muted); font-size:1rem; max-width:46ch; text-align:center; }
.cta-box__actions { display:flex; flex-wrap:wrap; gap:var(--sp-3); justify-content:center; margin-top:var(--sp-2); }

.cta-inline__inner {
  text-align:center; padding:var(--sp-5) var(--sp-6);
  border:1px dashed var(--border); border-radius:var(--radius-lg);
}
.cta-inline__inner p   { max-width:none; color:var(--text-muted); font-size:.9rem; }
.cta-inline__inner a   { color:var(--terracotta); font-weight:500; text-decoration:underline; text-underline-offset:3px; }

/* ═══════════════════════════════════════════════════════════
   PAGE HERO — all subpages
═══════════════════════════════════════════════════════════ */
.page-hero {
  background:var(--cream-dark); padding-block:var(--sp-10);
  border-bottom:1px solid var(--border-light); position:relative; overflow:hidden;
}
.page-hero::after {
  content:''; position:absolute; bottom:-40px; right:-40px;
  width:200px; height:200px; border-radius:50%;
  border:1px solid var(--border); pointer-events:none;
}

.page-hero__eyebrow {
  font-size:.7rem; font-weight:500; letter-spacing:.15em; text-transform:uppercase; color:var(--terracotta);
  margin-bottom:var(--sp-3); max-width:none;
  display:flex; align-items:center; gap:var(--sp-2);
}
.page-hero__eyebrow::before { content:''; display:block; width:24px; height:1px; background:currentColor; }

.page-hero__title {
  font-family:var(--font-display);
  font-size:clamp(2.2rem,6vw,4rem);
  color:var(--brown-deep); margin-bottom:var(--sp-3); line-height:1.05;
}
.page-hero__subtitle { font-size:1rem; color:var(--text-muted); max-width:52ch; line-height:1.7; }

/* ═══════════════════════════════════════════════════════════
   PRODUCT DETAIL HERO
═══════════════════════════════════════════════════════════ */
.product-hero { padding-block:var(--sp-8) var(--sp-10); }

/* Single column on mobile, 2-col only ≥900px */
.product-hero__container {
  display:block;
}
.product-hero__image  { margin-bottom:var(--sp-6); }
@media (min-width:900px) {
  .product-hero__container {
    display:grid; grid-template-columns:52fr 48fr;
    gap:var(--sp-10); align-items:start;
  }
  .product-hero__image { margin-bottom:0; }
}

.product-hero__image {
  border-radius:var(--radius-xl); overflow:hidden;
  aspect-ratio:4/3; box-shadow:var(--shadow-lg); background:var(--cream-dark);
}
.product-hero__image img { width:100%; height:100%; object-fit:cover; display:block; }

/* Gallery (2-3 photos) */
.product-hero__image--gallery { overflow:visible; aspect-ratio:auto; background:none; box-shadow:none; }
.product-gallery__main {
  border-radius:var(--radius-xl); overflow:hidden;
  aspect-ratio:4/3; box-shadow:var(--shadow-lg); background:var(--cream-dark);
}
.product-gallery__main img { width:100%; height:100%; object-fit:cover; display:block; transition:opacity .15s; }
.product-gallery__thumbs { display:flex; gap:var(--sp-2); margin-top:var(--sp-2); }
.product-gallery__thumb {
  flex:1; aspect-ratio:4/3; border-radius:var(--radius); overflow:hidden;
  border:2px solid transparent; cursor:pointer; padding:0; background:none;
  transition:border-color .15s;
}
.product-gallery__thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.product-gallery__thumb--active { border-color:var(--terracotta); }
.product-gallery__thumb:hover:not(.product-gallery__thumb--active) { border-color:var(--border); }
.product-card__placeholder--lg { min-height:280px; }
.product-card__badge--lg { font-size:.78rem; padding:var(--sp-2) var(--sp-4); }

.product-hero__content { display:flex; flex-direction:column; gap:var(--sp-5); }

/* Breadcrumb */
.breadcrumb ol {
  display:flex; flex-wrap:wrap; gap:var(--sp-2);
  font-size:.76rem; color:var(--text-light); align-items:center;
}
.breadcrumb li:not(:last-child)::after { content:'/'; margin-left:var(--sp-2); opacity:.4; }
.breadcrumb a:hover { color:var(--terracotta); }
.breadcrumb [aria-current="page"] { color:var(--text-muted); }

.product-hero__title {
  font-family:var(--font-display);
  font-size:clamp(1.8rem,4vw,3rem); color:var(--brown-deep); line-height:1.1;
}
.product-hero__desc { color:var(--text-muted); line-height:1.75; }

/* Meta: 3 cells side by side with dividers */
.product-hero__meta {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1px; background:var(--border-light);
  border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--border-light);
}
@media (max-width:400px) { .product-hero__meta { grid-template-columns:1fr; } }

.product-meta-item { display:flex; flex-direction:column; gap:4px; padding:var(--sp-4); background:var(--white); }
.product-meta-item__label { font-size:.62rem; font-weight:500; letter-spacing:.12em; text-transform:uppercase; color:var(--text-light); }
.product-meta-item__value { font-family:var(--font-display); font-size:1.05rem; color:var(--brown-deep); font-weight:500; max-width:none; line-height:1.2; }
.product-meta-item__value--price { font-size:1.5rem; color:var(--terracotta); }

.product-hero__actions { display:flex; flex-wrap:wrap; gap:var(--sp-3); }

/* ═══════════════════════════════════════════════════════════
   ALLERGENS — 4 cols on desktop, 3 on small mobile
═══════════════════════════════════════════════════════════ */
.allergen-section { padding-block:var(--sp-12); }

.legal-info-header {
  display:flex; align-items:flex-start; justify-content:space-between;
  flex-wrap:wrap; gap:var(--sp-4);
  margin-bottom:var(--sp-8); padding-bottom:var(--sp-5); border-bottom:1px solid var(--border);
}
.legal-note {
  display:flex; align-items:flex-start; gap:var(--sp-2);
  font-size:.75rem; color:var(--text-light); max-width:36ch; line-height:1.55; flex-shrink:0;
}
.legal-note svg { flex-shrink:0; margin-top:1px; color:var(--caramel); }

.ingredients-box {
  padding:var(--sp-5) var(--sp-6); background:var(--white);
  border-radius:var(--radius-lg); border:1px solid var(--border-light); margin-bottom:var(--sp-8);
}
.ingredients-box__title {
  font-size:.65rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--brown-light); margin-bottom:var(--sp-3); font-family:var(--font-body);
}
.ingredients-box__text { font-size:.88rem; color:var(--text); line-height:1.75; max-width:none; }

.allergen-grid__title {
  font-size:.65rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--brown-light); margin-bottom:var(--sp-3); font-family:var(--font-body);
}
.allergen-grid__legend {
  display:flex; flex-wrap:wrap; align-items:center; gap:var(--sp-3);
  margin-bottom:var(--sp-5); font-size:.78rem; color:var(--text-muted); max-width:none;
}

/* 4 columns: 14 allergens in 4×4 grid (2 cells empty) */
.allergen-grid {
  display:grid; grid-template-columns:repeat(4,1fr); gap:var(--sp-2);
}
@media (max-width:480px) { .allergen-grid { grid-template-columns:repeat(3,1fr); } }
@media (max-width:340px) { .allergen-grid { grid-template-columns:repeat(2,1fr); } }

.allergen-badge {
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:5px; padding:var(--sp-3) var(--sp-2);
  border-radius:var(--radius); font-size:.72rem;
  border:1.5px solid transparent; text-align:center;
  transition:transform var(--t-fast) var(--ease);
}
.allergen-badge:hover { transform:translateY(-2px); }

.allergen-badge--present {
  background:var(--terracotta-pale); border-color:rgba(200,92,53,.3); color:var(--terracotta-dk);
}
.allergen-badge--absent {
  background:var(--cream-dark); border-color:var(--border-light); color:var(--text-light); opacity:.65;
}

.allergen-badge__code {
  width:32px; height:32px; border-radius:7px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  font-size:.62rem; font-weight:700; letter-spacing:.04em;
  font-family:var(--font-body);
}
.allergen-badge--present .allergen-badge__code { background:var(--terracotta); color:var(--white); }
.allergen-badge--absent  .allergen-badge__code { background:var(--border); color:var(--text-light); }

.allergen-badge__label { font-size:.65rem; line-height:1.25; word-break:break-word; hyphens:auto; }

/* Legend — simple dot indicators, clearly non-interactive */
.allergen-grid__legend {
  display:flex; flex-wrap:wrap; align-items:center; gap:var(--sp-4);
  margin-bottom:var(--sp-5); font-size:.78rem; color:var(--text-muted); max-width:none;
}
.allergen-legend-item {
  display:inline-flex; align-items:center; gap:var(--sp-2);
  font-size:.78rem; color:var(--text-muted);
}
.allergen-legend-item__dot {
  width:10px; height:10px; border-radius:50%; flex-shrink:0;
}
.allergen-legend-item--present .allergen-legend-item__dot { background:var(--terracotta); }
.allergen-legend-item--absent  .allergen-legend-item__dot { background:var(--border); }

.allergen-empty-note {
  margin-top:var(--sp-4); padding:var(--sp-4);
  background:#FFF5EE; border:1px solid rgba(200,92,53,.2);
  border-radius:var(--radius); font-size:.84rem; color:var(--brown-light);
}

/* ═══════════════════════════════════════════════════════════
   GALLERY
═══════════════════════════════════════════════════════════ */
.gallery-grid {
  display:grid; grid-template-columns:repeat(2,1fr); gap:var(--sp-3);
}
@media (min-width:600px) { .gallery-grid { grid-template-columns:repeat(3,1fr); } }
@media (min-width:900px) { .gallery-grid { grid-template-columns:repeat(4,1fr); } }

.gallery-item {
  position:relative; border-radius:var(--radius-lg);
  overflow:hidden; aspect-ratio:1; cursor:zoom-in;
  box-shadow:var(--shadow-sm); background:var(--cream-dark);
}
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); display:block; }
.gallery-item:hover img { transform:scale(1.07); }

.gallery-item__overlay {
  position:absolute; inset:0; background:rgba(26,13,8,.3);
  display:flex; align-items:center; justify-content:center; color:var(--white);
  opacity:0; transition:opacity var(--t) var(--ease);
}
.gallery-item:hover .gallery-item__overlay { opacity:1; }

.gallery-item__caption {
  position:absolute; bottom:0; left:0; right:0;
  padding:var(--sp-3) var(--sp-4);
  background:linear-gradient(to top,rgba(26,13,8,.68) 0%,transparent 100%);
  color:var(--white); font-size:.76rem;
  transform:translateY(100%); transition:transform var(--t) var(--ease);
}
.gallery-item:hover .gallery-item__caption { transform:translateY(0); }

/* ═══════════════════════════════════════════════════════════
   LIGHTBOX
═══════════════════════════════════════════════════════════ */
.lightbox {
  position:fixed; inset:0; z-index:9000;
  background:rgba(20,8,3,.93); backdrop-filter:blur(8px);
  display:flex; align-items:center; justify-content:center; padding:var(--sp-6);
  opacity:0; pointer-events:none; transition:opacity var(--t) var(--ease);
}
.lightbox.is-open { opacity:1; pointer-events:auto; }

.lightbox__content { max-width:min(900px,90vw); max-height:85vh; display:flex; flex-direction:column; align-items:center; gap:var(--sp-3); }
.lightbox__img     { max-width:100%; max-height:80vh; object-fit:contain; border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); }
.lightbox__caption { color:rgba(250,246,239,.6); font-size:.84rem; text-align:center; max-width:none; }

.lightbox__close,.lightbox__prev,.lightbox__next {
  position:fixed; display:flex; align-items:center; justify-content:center;
  width:48px; height:48px; border-radius:50%;
  background:rgba(250,246,239,.12); color:var(--cream); font-size:1.25rem;
  border:1px solid rgba(250,246,239,.18);
  transition:background var(--t-fast),transform var(--t-fast);
}
.lightbox__close:hover,.lightbox__prev:hover,.lightbox__next:hover { background:rgba(250,246,239,.22); transform:scale(1.1); }
.lightbox__close { top:var(--sp-5); right:var(--sp-5); }
.lightbox__prev  { top:50%; left:var(--sp-4);  transform:translateY(-50%); }
.lightbox__next  { top:50%; right:var(--sp-4); transform:translateY(-50%); }
.lightbox__prev:hover { transform:translateY(-50%) scale(1.1); }
.lightbox__next:hover { transform:translateY(-50%) scale(1.1); }

/* ═══════════════════════════════════════════════════════════
   ORDER PAGE
═══════════════════════════════════════════════════════════ */
.order-info-grid {
  display:grid; grid-template-columns:1fr; gap:var(--sp-4); margin-bottom:var(--sp-8);
}
@media (min-width:480px) { .order-info-grid { grid-template-columns:repeat(3,1fr); } }

.order-info-item {
  display:flex; gap:var(--sp-3); align-items:flex-start;
  padding:var(--sp-4) var(--sp-5); background:var(--cream-dark);
  border-radius:var(--radius-lg); border:1px solid var(--border-light);
}
.order-info-item svg { flex-shrink:0; color:var(--caramel); margin-top:2px; }
.order-info-item strong { display:block; font-family:var(--font-display); font-size:1rem; color:var(--brown-deep); margin-bottom:2px; }
.order-info-item span { font-size:.82rem; color:var(--text-muted); max-width:none; }

.amelia-wrapper {
  background:var(--white); border-radius:var(--radius-xl);
  border:1px solid var(--border-light); padding:var(--sp-6) var(--sp-8);
  box-shadow:var(--shadow-sm); min-height:280px;
}
.amelia-placeholder {
  display:flex; flex-direction:column; align-items:center;
  gap:var(--sp-4); padding:var(--sp-10) var(--sp-6);
  text-align:center; color:var(--text-muted);
}
.amelia-placeholder svg { color:var(--border); }
.amelia-placeholder h3 { font-family:var(--font-display); font-size:1.5rem; color:var(--brown-deep); }
.amelia-placeholder p  { max-width:40ch; }
.amelia-placeholder__contact { display:flex; gap:var(--sp-3); flex-wrap:wrap; justify-content:center; margin-top:var(--sp-2); }

/* FAQ */
.faq-block__title { font-family:var(--font-display); font-size:1.7rem; color:var(--brown-deep); margin-bottom:var(--sp-6); }
.faq-list { display:flex; flex-direction:column; gap:var(--sp-2); }
.faq-item { border:1px solid var(--border-light); border-radius:var(--radius-lg); background:var(--white); overflow:hidden; }
.faq-item__question {
  list-style:none; padding:var(--sp-4) var(--sp-5);
  font-family:var(--font-display); font-size:1.05rem; font-weight:500; color:var(--brown-deep);
  cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:var(--sp-4);
  transition:background var(--t-fast); user-select:none;
}
.faq-item__question:hover { background:var(--cream-dark); }
.faq-item__question::-webkit-details-marker { display:none; }
.faq-item__question::after { content:'+'; font-size:1.5rem; font-weight:300; color:var(--terracotta); flex-shrink:0; transition:transform var(--t) var(--ease); }
.faq-item[open] .faq-item__question::after { transform:rotate(45deg); }
.faq-item__answer { padding:0 var(--sp-5) var(--sp-4); font-size:.875rem; color:var(--text-muted); line-height:1.7; max-width:none; }

/* ═══════════════════════════════════════════════════════════
   CONTACT PAGE
═══════════════════════════════════════════════════════════ */
.contact-grid { display:grid; grid-template-columns:1fr; gap:var(--sp-10); }
@media (min-width:768px) { .contact-grid { grid-template-columns:1fr 1fr; gap:var(--sp-12); } }

.contact-info__title { font-family:var(--font-display); font-size:1.9rem; color:var(--brown-deep); margin-bottom:var(--sp-8); }
.contact-details { display:flex; flex-direction:column; gap:var(--sp-5); margin-bottom:var(--sp-8); }
.contact-detail { display:flex; gap:var(--sp-4); align-items:flex-start; }
.contact-detail__icon {
  width:44px; height:44px; background:var(--cream-dark); border:1px solid var(--border-light);
  border-radius:var(--radius-lg); display:flex; align-items:center; justify-content:center;
  flex-shrink:0; color:var(--caramel);
}
.contact-detail__label { font-size:.65rem; font-weight:500; letter-spacing:.12em; text-transform:uppercase; color:var(--text-light); display:block; margin-bottom:2px; }
.contact-detail__value { font-family:var(--font-display); font-size:1.1rem; color:var(--brown-deep); max-width:none; display:block; }
.contact-detail__value a:hover { color:var(--terracotta); }
.contact-detail__value small { font-family:var(--font-body); font-size:.78rem; color:var(--text-muted); display:block; }
.contact-cta { display:flex; align-items:center; gap:var(--sp-4); flex-wrap:wrap; }
.contact-cta p { font-size:.88rem; color:var(--text-muted); max-width:none; }
.contact-notes { display:flex; flex-direction:column; gap:var(--sp-4); }
.contact-note-card { padding:var(--sp-5) var(--sp-6); background:var(--cream-dark); border-radius:var(--radius-lg); border:1px solid var(--border-light); }
.contact-note-card h3 { font-family:var(--font-display); font-size:1.15rem; color:var(--brown-deep); margin-bottom:var(--sp-3); }
.contact-note-card p  { font-size:.86rem; color:var(--text-muted); line-height:1.7; }
.contact-note-steps { list-style:decimal; padding-left:var(--sp-5); display:flex; flex-direction:column; gap:var(--sp-2); margin-bottom:var(--sp-4); }
.contact-note-steps li { font-size:.86rem; color:var(--text-muted); }
.link-arrow { display:inline-flex; align-items:center; gap:var(--sp-1); font-size:.84rem; font-weight:500; color:var(--terracotta); margin-top:var(--sp-3); }
.link-arrow:hover { text-decoration:underline; text-underline-offset:3px; }

/* ═══════════════════════════════════════════════════════════
   MISC PAGE CONTENT
═══════════════════════════════════════════════════════════ */
.page-content h2 { font-size:1.8rem; margin-top:var(--sp-8); margin-bottom:var(--sp-4); }
.page-content h3 { font-size:1.3rem; margin-top:var(--sp-6); margin-bottom:var(--sp-3); }
.page-content p  { color:var(--text-muted); margin-bottom:var(--sp-4); }
.page-content ul,.page-content ol { padding-left:var(--sp-5); margin-bottom:var(--sp-4); }
.page-content li { color:var(--text-muted); margin-bottom:var(--sp-2); }
.page-content ul li { list-style:disc; }
.page-content ol li { list-style:decimal; }
.page-content a { color:var(--terracotta); text-decoration:underline; text-underline-offset:3px; }
.product-content p { color:var(--text-muted); margin-bottom:var(--sp-4); line-height:1.8; }
.related-products { background:var(--cream-dark); }
.empty-state { text-align:center; color:var(--text-light); font-family:var(--font-display); font-style:italic; font-size:1.2rem; padding:var(--sp-16); }

/* ═══════════════════════════════════════════════════════════
   FOOTER
═══════════════════════════════════════════════════════════ */
.site-footer { background:var(--brown-deep); color:var(--cream); padding-block:var(--sp-12) var(--sp-8); }

.footer-grid { display:grid; grid-template-columns:1fr; gap:var(--sp-8); margin-bottom:var(--sp-10); }
@media (min-width:600px)  { .footer-grid { grid-template-columns:1fr 1fr; } }
@media (min-width:1024px) { .footer-grid { grid-template-columns:2fr 1fr 1fr 1fr; } }

.footer-logo {
  display:inline-flex; align-items:baseline;
  font-family:var(--font-display); font-size:1.5rem; font-weight:600; font-style:italic;
  color:var(--cream); margin-bottom:var(--sp-4); letter-spacing:-.02em;
}
.footer-logo__dot { color:var(--terracotta-lt); }
.footer-logo:hover { opacity:.85; }
.footer-tagline { font-size:.84rem; color:rgba(250,246,239,.55); line-height:1.7; max-width:26ch; }

.footer-heading {
  font-family:var(--font-body); font-size:.65rem; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:rgba(250,246,239,.35); margin-bottom:var(--sp-4);
}

.footer-contact-list { display:flex; flex-direction:column; gap:var(--sp-3); }
.footer-contact-list li { display:flex; align-items:center; gap:var(--sp-3); font-size:.84rem; color:rgba(250,246,239,.7); }
.footer-contact-list li svg { color:var(--terracotta-lt); flex-shrink:0; }
.footer-contact-list a:hover { color:var(--cream); }

.footer-menu { display:flex; flex-direction:column; gap:var(--sp-3); }
.footer-menu a { font-size:.84rem; color:rgba(250,246,239,.6); transition:color var(--t-fast); }
.footer-menu a:hover { color:var(--cream); }

.footer-bottom {
  padding-top:var(--sp-6); border-top:1px solid rgba(250,246,239,.08);
  display:flex; flex-direction:column; gap:var(--sp-3);
}
@media (min-width:768px) { .footer-bottom { flex-direction:row; justify-content:space-between; align-items:flex-end; } }
.footer-copy { font-size:.73rem; color:rgba(250,246,239,.28); max-width:none; }
.footer-legal-note { font-size:.68rem; color:rgba(250,246,239,.2); max-width:55ch; line-height:1.55; }
@media (min-width:768px) { .footer-legal-note { text-align:right; } }

/* ═══════════════════════════════════════════════════════════
   ANIMATIONS — CSS-driven, always visible
═══════════════════════════════════════════════════════════ */
.fade-up { animation:fadeUp .55s var(--ease-out) both; }
.fade-in  { animation:fadeIn .55s var(--ease-out) both; }

/* Product card stagger */
.products-grid .product-card:nth-child(1) { animation-delay:0ms;   }
.products-grid .product-card:nth-child(2) { animation-delay:55ms;  }
.products-grid .product-card:nth-child(3) { animation-delay:110ms; }
.products-grid .product-card:nth-child(4) { animation-delay:165ms; }
.products-grid .product-card:nth-child(5) { animation-delay:220ms; }
.products-grid .product-card:nth-child(6) { animation-delay:275ms; }
.products-grid .product-card:nth-child(7) { animation-delay:330ms; }

/* Step stagger */
.steps-grid .step:nth-child(1) { animation-delay:0ms;   }
.steps-grid .step:nth-child(2) { animation-delay:80ms;  }
.steps-grid .step:nth-child(3) { animation-delay:160ms; }
.steps-grid .step:nth-child(4) { animation-delay:240ms; }

.hero-content { animation-delay:0ms; }
.hero-image   { animation-delay:160ms; }

@media (prefers-reduced-motion:reduce) {
  .fade-up,.fade-in,.hero-content,.hero-image { animation:none; }
  * { transition-duration:.01ms !important; }
}

/* ═══════════════════════════════════════════════════════════
   WP PAGINATION
═══════════════════════════════════════════════════════════ */
.pagination { display:flex; justify-content:center; gap:var(--sp-2); margin-top:var(--sp-10); }
.page-numbers {
  display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px; border-radius:50%; font-size:.875rem;
  color:var(--text-muted); border:1px solid var(--border); transition:all var(--t-fast);
}
.page-numbers:hover,.page-numbers.current { background:var(--terracotta); color:var(--white); border-color:var(--terracotta); }

/* ═══════════════════════════════════════════════════════════
   ORDER FORM
═══════════════════════════════════════════════════════════ */

.order-form { display:flex; flex-direction:column; gap:var(--sp-8); margin-top:var(--sp-8); }

/* Form card (step container) */
.form-card {
  background:var(--white); border:1px solid var(--border-light);
  border-radius:var(--radius-lg); padding:var(--sp-6) var(--sp-8);
  box-shadow:var(--shadow-card);
}
@media (max-width:600px) { .form-card { padding:var(--sp-5); } }

.form-card__head {
  display:flex; align-items:center; gap:var(--sp-3);
  margin-bottom:var(--sp-6); padding-bottom:var(--sp-4); border-bottom:1px solid var(--border-light);
}
.form-card__num {
  display:inline-flex; align-items:center; justify-content:center;
  width:32px; height:32px; border-radius:50%; flex-shrink:0;
  background:var(--terracotta); color:var(--white);
  font-family:var(--font-body); font-size:.875rem; font-weight:600;
}
.form-card__title {
  font-family:var(--font-display); font-size:1.3rem; font-weight:500;
  color:var(--brown-deep); margin:0;
}
.form-card__body { display:flex; flex-direction:column; gap:var(--sp-5); }

/* Row layouts */
.form-row { display:flex; flex-direction:column; gap:var(--sp-5); }
.form-row--2 { display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-5); }
@media (max-width:560px) { .form-row--2 { grid-template-columns:1fr; } }

/* Field */
.field { display:flex; flex-direction:column; gap:var(--sp-2); }
.field__label { font-family:var(--font-body); font-size:.875rem; font-weight:500; color:var(--brown-deep); }
.field__req   { color:var(--terracotta); margin-left:2px; }
.field__opt   { color:var(--text-muted); font-weight:400; font-size:.82rem; }
.field__hint  { font-size:.78rem; color:var(--text-muted); margin:0; max-width:none; }

.field__select-wrap { position:relative; }
.field__select-wrap::after {
  content:''; pointer-events:none; position:absolute; right:14px; top:50%;
  transform:translateY(-50%); width:0; height:0;
  border-left:5px solid transparent; border-right:5px solid transparent;
  border-top:6px solid var(--text-muted);
}

.field input,
.field select,
.field textarea {
  width:100%; padding:var(--sp-3) var(--sp-4); border:1.5px solid var(--border);
  border-radius:var(--radius); font-size:.95rem; font-family:var(--font-body);
  color:var(--text); background:var(--white); outline:none;
  transition:border-color var(--t-fast), box-shadow var(--t-fast);
  appearance:none; -webkit-appearance:none;
}
.field select { padding-right:36px; }
.field input:focus,
.field select:focus,
.field textarea:focus {
  border-color:var(--terracotta); box-shadow:0 0 0 3px rgba(200,92,53,.1);
}
.field textarea { resize:vertical; min-height:80px; line-height:1.6; }

/* ─── Calendar ────────────────────────────────────────────── */

/* Legend dots */
.cal-legend {
  display:flex; align-items:center; gap:var(--sp-2) var(--sp-4); flex-wrap:wrap;
  margin-bottom:var(--sp-4); font-size:.8rem; color:var(--text-muted);
}
.cal-dot {
  display:inline-block; width:12px; height:12px; border-radius:3px; flex-shrink:0; vertical-align:middle;
}
.cal-dot--avail { background:#d1fae5; border:1px solid #6ee7b7; }
.cal-dot--last  { background:#fef3c7; border:1px solid #fcd34d; }
.cal-dot--off   { background:#f1f5f9; border:1px solid #cbd5e1; }

/* Widget wrapper */
.cal-widget {
  background:var(--cream-dark); border-radius:var(--radius-lg); border:1px solid var(--border-light);
  padding:var(--sp-4);
}

/* Nav */
.cal-nav { display:flex; align-items:center; justify-content:space-between; margin-bottom:var(--sp-3); }
.cal-nav__title {
  font-family:var(--font-display); font-size:1.1rem; font-weight:500; color:var(--brown-deep);
}
.cal-nav__btn {
  display:flex; align-items:center; justify-content:center;
  width:36px; height:36px; border-radius:50%; border:1.5px solid var(--border);
  background:var(--white); color:var(--brown-deep); cursor:pointer;
  transition:background var(--t-fast), border-color var(--t-fast);
}
.cal-nav__btn:hover:not(:disabled) { background:var(--cream-deeper); border-color:var(--caramel); }
.cal-nav__btn--disabled,
.cal-nav__btn:disabled { opacity:.35; cursor:not-allowed; }

/* 7-column grid */
.cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:3px; }
.cal-grid--head { margin-bottom:var(--sp-2); }
.cal-grid--head span {
  text-align:center; font-size:.72rem; font-weight:600; color:var(--text-light);
  text-transform:uppercase; padding:var(--sp-1) 0;
}

/* Day cells */
.cal-day {
  aspect-ratio:1; display:flex; align-items:center; justify-content:center;
  border-radius:7px; font-size:.88rem; border:none; font-family:var(--font-body);
  transition:background var(--t-fast), transform var(--t-fast), box-shadow var(--t-fast);
  line-height:1;
}
@media (max-width: 600px) {
  /* WCAG/Apple tap-target minimum (44×44 px) */
  .cal-day { min-height:44px; font-size:1rem; }
}
.cal-day--blank { background:transparent; pointer-events:none; }
.cal-day--off   { background:var(--cream); color:var(--text-light); opacity:.45; cursor:not-allowed; }
.cal-day--avail { background:#d1fae5; color:#065f46; font-weight:500; cursor:pointer; }
.cal-day--avail:hover { background:#a7f3d0; transform:scale(1.08); }
.cal-day--last  { background:#fef3c7; color:#92400e; font-weight:500; cursor:pointer; }
.cal-day--last:hover  { background:#fde68a; transform:scale(1.08); }
.cal-day--sel   { background:var(--terracotta) !important; color:var(--white) !important; box-shadow:0 2px 8px rgba(200,92,53,.35); transform:scale(1.1); }

/* Selected date text */
.cal-selected { min-height:1.4em; margin-top:var(--sp-3); font-size:.875rem; color:var(--text-muted); max-width:none; }
.cal-selected--set { color:var(--terracotta); font-weight:500; }

/* Submit area */
.order-submit { display:flex; flex-direction:column; align-items:center; gap:var(--sp-4); }
.order-submit__legal { font-size:.78rem; color:var(--text-light); text-align:center; max-width:none; }
.order-submit__legal a { color:var(--caramel); text-decoration:underline; text-underline-offset:3px; }

.btn--wide { width:100%; max-width:380px; justify-content:center; }

.form-error {
  width:100%; padding:var(--sp-3) var(--sp-4);
  background:#fef2f2; border:1px solid #fca5a5; border-radius:var(--radius);
  color:#b91c1c; font-size:.875rem;
}

/* ─── Order success ─────────────────────────────────────────── */
.order-success {
  text-align:center; padding:var(--sp-16) var(--sp-4);
  display:flex; flex-direction:column; align-items:center; gap:var(--sp-6);
}
.order-success__check { color:var(--terracotta); }
.order-success__title { font-family:var(--font-display); font-size:2rem; color:var(--brown-deep); margin:0; }
.order-success__text  { color:var(--text-muted); max-width:480px; line-height:1.7; margin:0; }
.order-success__details {
  display:grid; grid-template-columns:auto 1fr; gap:var(--sp-2) var(--sp-5);
  background:var(--cream); border:1px solid var(--border); border-radius:12px;
  padding:var(--sp-4) var(--sp-5); margin:0; min-width:280px; text-align:left;
  font-size:.95rem;
}
.order-success__details > div { display:contents; }
.order-success__details dt { color:var(--text-light); font-weight:500; }
.order-success__details dd { color:var(--brown-deep); font-weight:600; margin:0; }
.order-success__details dd#osd-id { font-family:var(--font-display); letter-spacing:.5px; }
.order-success__contact { font-size:.85rem; color:var(--text-light); max-width:none; margin:0; }
.order-success__contact a { color:var(--terracotta); text-decoration:underline; text-underline-offset:3px; }

/* ═══════════════════════════════════════════════════════════
   ADMIN PRIVATE SECTION
═══════════════════════════════════════════════════════════ */
.admin-private-section { background: #fef9ec; border-top: 4px solid #e6b800; padding-top: var(--sp-8); padding-bottom: var(--sp-8); }
.admin-private-box { border: 2px dashed #d4a800; border-radius: 14px; background: #fffdf0; overflow: hidden; }

/* — header bar — */
.admin-private-box__header { display: flex; align-items: center; gap: var(--sp-3); padding: var(--sp-4) var(--sp-6); background: #f0c040; }
.admin-private-box__icon { font-size: 1.3rem; line-height: 1; }
.admin-private-box__title { font-family: var(--font-body); font-size: 1rem; font-weight: 700; color: #3d2600; margin: 0; text-transform: uppercase; letter-spacing: .08em; }
.admin-private-box__badge { margin-left: auto; font-size: 0.7rem; font-weight: 700; background: #3d2600; color: #f0c040; padding: 3px 10px; border-radius: 20px; text-transform: uppercase; letter-spacing: .06em; white-space: nowrap; }

/* — blocks — */
.admin-private-block { padding: var(--sp-6); }
.admin-private-block + .admin-private-block { border-top: 2px solid #f0e090; }

/* — block title — */
.admin-private-block__title { display: flex; align-items: center; gap: var(--sp-2); font-size: 0.7rem; font-weight: 800; color: #8a6500; margin: 0 0 var(--sp-4); text-transform: uppercase; letter-spacing: .12em; font-family: var(--font-body); }
.admin-private-block__title::after { content: ""; flex: 1; height: 2px; background: #f0e090; }

/* — ingredients grid — */
.admin-ingredients-list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 8px; }
.admin-ingredients-list li { padding: 8px 12px; background: white; border: 1px solid #e8d98a; border-left: 3px solid #f0c040; border-radius: 6px; font-size: 0.875rem; color: var(--text); line-height: 1.4; }
.admin-ingredients-list__section { grid-column: 1 / -1; padding: 6px 0 2px !important; background: none !important; border: none !important; border-left: none !important; border-radius: 0 !important; font-size: 0.7rem !important; font-weight: 800; color: #8a6500 !important; text-transform: uppercase; letter-spacing: .1em; margin-top: 8px; }

/* — recipe — */
.admin-recipe { background: white; border: 1px solid #e8d98a; border-radius: 8px; padding: var(--sp-5); font-size: 0.875rem; line-height: 1.9; color: var(--text); white-space: pre-line; font-family: var(--font-body); }

/* — footer — */
.admin-private-box__footer { padding: var(--sp-3) var(--sp-6); background: #f5e88a22; border-top: 1px solid #f0e090; font-size: 0.8rem; }
.admin-private-box__footer a { color: #8a6500; font-weight: 600; text-decoration: none; }
.admin-private-box__footer a:hover { text-decoration: underline; }

/* ═══════════════════════════════════════════════════════════
   PRODUCT EXTRA INFO (Idealne na… / Jak przechowywać) — v1.6
═══════════════════════════════════════════════════════════ */
.product-extra-info {
  display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:var(--sp-4);
  margin-top:var(--sp-8);
}
.product-extra-info__card {
  display:flex; gap:var(--sp-3);
  background:var(--cream); border:1px solid var(--border); border-radius:14px;
  padding:var(--sp-4) var(--sp-5);
}
.product-extra-info__icon {
  flex:none; width:40px; height:40px; border-radius:10px;
  background:var(--terracotta); color:var(--white);
  display:flex; align-items:center; justify-content:center;
}
.product-extra-info__title {
  font-family:var(--font-display); font-size:1.05rem; color:var(--brown-deep);
  margin:0 0 .2rem; font-weight:600;
}
.product-extra-info__text { margin:0; color:var(--text); font-size:.92rem; line-height:1.55; }

/* ═══════════════════════════════════════════════════════════
   CONTACT — MAP + FORM — v1.6
═══════════════════════════════════════════════════════════ */
.contact-map-form-grid {
  display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-8);
}
@media (max-width: 900px) {
  .contact-map-form-grid { grid-template-columns:1fr; }
}
.contact-map-card,
.contact-form-card {
  background:var(--white); border:1px solid var(--border);
  border-radius:14px; padding:var(--sp-6);
}
.contact-map-card__title,
.contact-form-card__title {
  font-family:var(--font-display); font-size:1.6rem; color:var(--brown-deep);
  margin:0 0 .4rem;
}
.contact-map-card__sub,
.contact-form-card__sub {
  color:var(--text-light); margin:0 0 var(--sp-4); font-size:.95rem;
}
.contact-map { margin-bottom:var(--sp-3); }
.contact-map__actions { display:flex; gap:var(--sp-2); flex-wrap:wrap; }

.contact-form .field { margin-bottom:var(--sp-3); }
.contact-form textarea {
  width:100%; min-height:120px; padding:var(--sp-3) var(--sp-4);
  border:1px solid var(--border); border-radius:8px; font-family:var(--font-body); font-size:1rem;
  background:var(--cream); color:var(--text); resize:vertical;
}
.contact-form input[type="text"],
.contact-form input[type="email"] {
  width:100%; padding:var(--sp-3) var(--sp-4);
  border:1px solid var(--border); border-radius:8px; font-family:var(--font-body); font-size:1rem;
  background:var(--cream); color:var(--text);
}
.contact-form__legal {
  margin-top:var(--sp-3); font-size:.78rem; color:var(--text-light); text-align:center;
}
.contact-form__legal a { color:var(--terracotta); text-decoration:underline; text-underline-offset:3px; }

.form-success {
  width:100%; padding:var(--sp-3) var(--sp-4);
  background:#ecfdf5; border:1px solid #6ee7b7; border-radius:var(--radius);
  color:#065f46; font-size:.92rem; margin:0 0 var(--sp-3);
}

/* ═══════════════════════════════════════════════════════════
   FOOTER NEWSLETTER — v1.6
═══════════════════════════════════════════════════════════ */
.footer-newsletter { margin-top:var(--sp-6); max-width:340px; }
.footer-newsletter__title {
  font-family:var(--font-display); font-size:1.1rem; color:var(--brown-deep);
  margin:0 0 .25rem; font-weight:600;
}
.footer-newsletter__sub {
  font-size:.8rem; color:var(--text-light); margin:0 0 var(--sp-3); line-height:1.5;
}
.footer-newsletter form input[type="email"] {
  background:var(--white); border:1px solid var(--border); border-radius:8px;
  padding:var(--sp-2) var(--sp-3); font-size:.9rem; color:var(--text); width:100%;
}
.footer-newsletter form button,
.footer-newsletter form input[type="submit"] {
  background:var(--terracotta); color:var(--white); border:none; border-radius:8px;
  padding:var(--sp-2) var(--sp-4); font-weight:600; cursor:pointer; margin-top:var(--sp-2);
  font-family:var(--font-body); font-size:.9rem;
}
.footer-newsletter form button:hover,
.footer-newsletter form input[type="submit"]:hover { background:#a8451f; }
