/* Zmrzlinárna Kopeček — neo-brutalist stylesheet */

:root{
  --olive: #4b5320;
  --olive-2: #6b7a2f;
  --mustard: #e8b923;
  --mustard-2: #f3d166;
  --brick: #b4402b;
  --brick-2: #8c2e1d;
  --cream: #f6efdc;
  --paper: #fffaf0;
  --ink: #1a1710;
  --ink-soft: #3a3426;
  --line: 3px;
  --shadow-off: 7px;
  --radius: 2px;
  --ff-display: "Georgia", "Iowan Old Style", "Palatino Linotype", serif;
  --ff-body: "Avenir Next", "Segoe UI", system-ui, -apple-system, sans-serif;
  --ff-mono: "Consolas", "SF Mono", "Courier New", monospace;
}

*,*::before,*::after{box-sizing:border-box}
html,body{overflow-x:clip}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--ff-body);
  color:var(--ink);
  background:var(--cream);
  line-height:1.55;
  font-size:16px;
}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--ff-display); line-height:1.08; margin:0 0 .5em}
p{margin:0 0 1em}
ul{margin:0; padding:0}
button{font-family:inherit}
.container{width:min(1180px, 100% - 2.5rem); margin-inline:auto}

:focus-visible{
  outline:3px solid var(--brick);
  outline-offset:2px;
}

/* ---------- utility ---------- */
.visually-hidden{
  position:absolute !important;
  width:1px; height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
  left:-9999px;
}
.mono{font-family:var(--ff-mono); letter-spacing:.03em; text-transform:uppercase; font-size:.78rem}

/* ---------- reveal / motion ---------- */
.reveal{opacity:1; transform:none}
.js .reveal{opacity:0; transform:translateY(22px); transition:opacity .6s ease, transform .6s ease, clip-path .6s ease; clip-path:inset(8% 0 0 0)}
.js .reveal.in-view{opacity:1; transform:translateY(0); clip-path:inset(0 0 0 0)}
.js .reveal:nth-child(2){transition-delay:.06s}
.js .reveal:nth-child(3){transition-delay:.12s}
.js .reveal:nth-child(4){transition-delay:.18s}
.js .reveal:nth-child(5){transition-delay:.24s}
@media (prefers-reduced-motion: reduce){
  .js .reveal{transition:none; opacity:1; transform:none; clip-path:none}
}

.grain{
  position:fixed; inset:0; width:100vw; height:100vh;
  pointer-events:none; z-index:1000; opacity:.05; mix-blend-mode:multiply;
}

/* ---------- buttons ---------- */
.btn{
  position:relative;
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  font-family:var(--ff-mono); text-transform:uppercase; letter-spacing:.04em; font-size:.85rem;
  padding:.85em 1.4em;
  min-height:44px;
  border:var(--line) solid var(--ink);
  background:var(--mustard);
  color:var(--ink);
  box-shadow: var(--shadow-off) var(--shadow-off) 0 var(--ink);
  cursor:pointer;
  text-decoration:none;
  overflow:hidden;
  isolation:isolate;
  transition: transform .15s ease, box-shadow .15s ease;
}
.btn::after{
  content:"";
  position:absolute; inset:0; width:100%; height:100%;
  left:-100%;
  background:var(--ink);
  z-index:-1;
  transition: left .25s ease;
}
.btn:hover::after, .btn:focus-visible::after{left:0}
.btn:hover, .btn:focus-visible{color:var(--paper); transform:translate(2px,2px); box-shadow: calc(var(--shadow-off) - 2px) calc(var(--shadow-off) - 2px) 0 var(--ink)}
.btn:active{transform:translate(var(--shadow-off),var(--shadow-off)); box-shadow:0 0 0 var(--ink)}
.btn--brick{background:var(--brick); color:var(--paper)}
.btn--brick::after{background:var(--ink)}
.btn--ghost{background:transparent}
.btn--ghost.on-dark{border-color:var(--paper); color:var(--paper); box-shadow:var(--shadow-off) var(--shadow-off) 0 var(--paper)}
.btn--ghost.on-dark::after{background:var(--paper)}
.btn--ghost.on-dark:hover{color:var(--ink)}
.btn--block{width:100%}
.btn[disabled]{opacity:.5; cursor:not-allowed}

/* ---------- header ---------- */
.site-header{
  position:sticky; top:0; z-index:200;
  background:var(--cream);
  border-bottom:var(--line) solid var(--ink);
}
.site-header .container{
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem; padding-block:.7rem;
}
.logo{display:flex; align-items:center}
.logo svg{width:170px; height:44px; display:block}
.main-nav{display:flex; align-items:center; gap:1.6rem}
.main-nav ul{display:flex; gap:1.6rem; list-style:none}
.main-nav a{
  font-family:var(--ff-mono); text-transform:uppercase; font-size:.82rem; letter-spacing:.05em;
  text-decoration:none; position:relative; padding-bottom:4px;
}
.main-nav a::after{
  content:""; position:absolute; left:0; bottom:0; height:2px; width:0; background:var(--brick);
  transition:width .25s ease;
}
.main-nav a:hover::after, .main-nav a[aria-current]::after{width:100%}
.header-actions{display:flex; align-items:center; gap:.8rem}
.cart-link{
  display:inline-flex; align-items:center; gap:.4em;
  border:var(--line) solid var(--ink); padding:.5em .8em; background:var(--paper);
  text-decoration:none; font-family:var(--ff-mono); font-size:.82rem;
  min-height:44px;
}
.cart-link svg{width:20px; height:20px}
.cart-count{
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--brick); color:var(--paper); border-radius:50%;
  width:22px; height:22px; font-size:.72rem; font-weight:700;
  transition:transform .3s ease;
}
.cart-count.bump{animation:bump .4s ease}
@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.5)}100%{transform:scale(1)}}

.nav-toggle{
  display:none;
  width:44px; height:44px;
  border:var(--line) solid var(--ink); background:var(--paper);
  align-items:center; justify-content:center;
}
.nav-toggle svg{width:22px; height:22px}

@media (max-width: 860px){
  .main-nav{
    position:fixed; inset:0 0 0 auto; top:0; height:100vh; width:min(78vw, 320px);
    background:var(--ink); flex-direction:column; align-items:flex-start;
    padding:5.5rem 1.6rem 2rem; gap:0;
    transform:translateX(100%); visibility:hidden;
    transition:transform .35s ease, visibility .35s ease;
    z-index:250;
  }
  .main-nav.open{transform:translateX(0); visibility:visible}
  .main-nav ul{flex-direction:column; gap:1.1rem; width:100%}
  .main-nav a{color:var(--paper); font-size:1rem}
  .main-nav a::after{background:var(--mustard)}
  .nav-toggle{display:inline-flex}
  .nav-close{
    display:none;
    position:absolute; top:1.2rem; right:1.2rem;
    width:40px; height:40px; border:var(--line) solid var(--paper); background:transparent;
    align-items:center; justify-content:center; color:var(--paper);
  }
  .main-nav.open .nav-close{display:inline-flex}
  .main-nav .cart-link{margin-top:1.4rem; background:var(--mustard); border-color:var(--paper); color:var(--ink)}
  .nav-scrim{
    position:fixed; inset:0; background:rgba(0,0,0,.4); z-index:240;
    opacity:0; visibility:hidden; transition:opacity .35s ease, visibility .35s ease;
  }
  .nav-scrim.show{opacity:1; visibility:visible}
}

/* ---------- hero ---------- */
.hero{
  position:relative; overflow:hidden;
  padding-block: 3rem 4rem;
}
.hero .container{
  display:grid; grid-template-columns: 1.1fr 1fr; gap:2.5rem; align-items:center;
}
.hero-copy h1{
  font-size:clamp(2.6rem, 6vw, 4.6rem);
  letter-spacing:-.01em;
}
.hero-copy .lede{font-size:1.15rem; max-width:34ch}
.hero-tag{
  display:inline-flex; align-items:center; gap:.5em;
  font-family:var(--ff-mono); text-transform:uppercase; font-size:.78rem; letter-spacing:.06em;
  background:var(--mustard); border:var(--line) solid var(--ink); padding:.35em .7em; margin-bottom:1.1rem;
  box-shadow:4px 4px 0 var(--ink);
}
.hero-visual{position:relative; aspect-ratio:1/1; max-width:480px; margin-inline:auto}
.hero-blob{position:absolute; inset:0; width:100%; height:100%; z-index:0}
.hero-blob path{
  fill:var(--mustard-2);
  d:path("M60,20 C110,0 180,10 200,55 C220,100 210,170 160,195 C110,220 40,210 18,155 C-4,100 10,40 60,20 Z");
  animation: blobmorph 11s ease-in-out infinite alternate;
}
@keyframes blobmorph{
  0%{ d:path("M60,20 C110,0 180,10 200,55 C220,100 210,170 160,195 C110,220 40,210 18,155 C-4,100 10,40 60,20 Z"); }
  50%{ d:path("M70,15 C130,25 205,45 205,100 C205,155 165,205 105,210 C45,215 5,165 10,105 C15,45 10,5 70,15 Z"); }
  100%{ d:path("M55,30 C100,-5 190,5 205,60 C220,115 195,185 140,205 C85,225 30,195 15,140 C0,85 10,65 55,30 Z"); }
}
@media (prefers-reduced-motion: reduce){ .hero-blob path{animation:none} }
.hero-photo{
  position:relative; z-index:1;
  border:var(--line) solid var(--ink);
  box-shadow: 10px 10px 0 var(--ink);
  overflow:hidden; aspect-ratio:4/5; margin:6%;
}
.hero-photo img{width:100%; height:100%; object-fit:cover}
.hero-sticker{
  position:absolute; z-index:2; width:110px; height:110px;
}
.hero-sticker--1{top:-10px; right:-10px}

@media (max-width: 860px){
  .hero .container{grid-template-columns:1fr; text-align:left}
  .hero-visual{max-width:340px; margin-top:1rem}
}

/* ---------- divider ---------- */
.divider{display:block; width:100%; height:auto}
.divider--brick path{fill:var(--brick)}
.divider--olive path{fill:var(--olive)}

/* ---------- sections ---------- */
.section{padding-block:4rem}
.section--dark{background:var(--ink); color:var(--paper); position:relative; overflow:hidden}
.pattern-bg{
  position:absolute; inset:0; width:100%; height:100%;
  color:var(--mustard); opacity:.08; z-index:0; pointer-events:none;
}
.section--dark .container{position:relative; z-index:1}
.section--olive{background:var(--olive); color:var(--paper)}
.section-head{max-width:60ch; margin-bottom:2.2rem}
.eyebrow{
  font-family:var(--ff-mono); text-transform:uppercase; font-size:.78rem; letter-spacing:.08em;
  color:var(--brick);
  display:flex; align-items:center; gap:.5em; margin-bottom:.6em;
}
.section--dark .eyebrow, .section--olive .eyebrow{color:var(--mustard)}
.section-title{font-size:clamp(1.8rem, 3.6vw, 2.8rem)}

/* ---------- story (horizontal scroll) ---------- */
.story{
  display:flex; gap:1.6rem; overflow-x:auto; padding:1rem .2rem 1.6rem;
  scroll-snap-type:x mandatory;
  scrollbar-width:thin;
}
.story-card{
  flex:0 0 min(78vw, 360px); scroll-snap-align:start;
  border:var(--line) solid var(--ink); background:var(--paper); color:var(--ink);
  box-shadow:6px 6px 0 var(--ink);
}
.story-card figure{margin:0; aspect-ratio:4/3; overflow:hidden; border-bottom:var(--line) solid var(--ink)}
.story-card img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease}
.story-card:hover img{transform:scale(1.06)}
.story-card .story-body{padding:1.1rem 1.2rem}
.story-num{font-family:var(--ff-mono); color:var(--brick); font-size:.8rem}

@media (min-width: 1000px){
  .story-wrap{position:relative}
  .story{
    display:grid; grid-template-columns:repeat(4, 1fr);
    overflow:visible; scroll-snap-type:none;
    padding:1rem .2rem 2rem;
  }
  .story-card{flex:none; width:auto}
}

/* ---------- product grid ---------- */
.filters{display:flex; flex-wrap:wrap; gap:.6rem; margin-bottom:2rem}
.filter-btn{
  font-family:var(--ff-mono); text-transform:uppercase; font-size:.78rem;
  border:var(--line) solid var(--ink); background:var(--paper); padding:.5em .9em; cursor:pointer;
  min-height:44px;
}
.filter-btn[aria-pressed="true"]{background:var(--mustard)}

.product-grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(230px, 1fr)); gap:1.6rem;
}
.card{
  position:relative;
  background:var(--paper); border:var(--line) solid var(--ink);
  box-shadow:7px 7px 0 var(--ink);
  transition:transform .2s ease, box-shadow .2s ease, rotate .2s ease;
  display:flex; flex-direction:column;
}
.card:hover{transform:translate(-3px,-5px) rotate(-.6deg); box-shadow:10px 10px 0 var(--ink)}
.card-figure{margin:0; aspect-ratio:1/1; overflow:hidden; border-bottom:var(--line) solid var(--ink); position:relative}
.card-figure img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease}
.card:hover .card-figure img{transform:scale(1.08)}
.card-tag{
  position:absolute; top:.6rem; left:.6rem;
  font-family:var(--ff-mono); font-size:.68rem; text-transform:uppercase;
  background:var(--brick); color:var(--paper); padding:.25em .55em; border:2px solid var(--ink);
}
.card-body{padding:1rem 1.1rem 1.2rem; display:flex; flex-direction:column; gap:.5rem; flex:1}
.card-body h3{font-size:1.15rem}
.card-price{font-family:var(--ff-mono); font-size:1.05rem; color:var(--brick); margin-top:auto}
.card-unit{font-family:var(--ff-mono); font-size:.72rem; color:var(--ink-soft)}

/* ---------- product detail ---------- */
.product-detail{display:grid; grid-template-columns:1fr 1fr; gap:2.5rem; align-items:start}
.product-photo{
  border:var(--line) solid var(--ink); box-shadow:9px 9px 0 var(--ink);
  aspect-ratio:1/1; overflow:hidden;
}
.product-photo img{width:100%; height:100%; object-fit:cover}
.product-info h1{font-size:clamp(2rem,4vw,2.8rem)}
.price-tag{
  display:inline-block; font-family:var(--ff-mono); font-size:1.4rem;
  background:var(--mustard); border:var(--line) solid var(--ink); padding:.3em .6em;
  box-shadow:5px 5px 0 var(--ink); margin:.6rem 0 1.2rem;
}
.allergen-list{display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:1.2rem}
.allergen-list li{
  font-family:var(--ff-mono); font-size:.72rem; text-transform:uppercase;
  border:2px solid var(--ink); padding:.25em .55em; background:var(--paper);
}
.qty-row{display:flex; align-items:center; gap:.8rem; margin-bottom:1.2rem}
.qty-row input{
  width:70px; min-height:44px; text-align:center; font-family:var(--ff-mono); font-size:1rem;
  border:var(--line) solid var(--ink); background:var(--paper);
}
@media (max-width: 760px){ .product-detail{grid-template-columns:1fr} }

/* ---------- builder (signature feature) ---------- */
.builder{
  border:var(--line) solid var(--ink); background:var(--paper);
  box-shadow:10px 10px 0 var(--ink); padding:2rem;
}
.builder-grid{display:grid; grid-template-columns:1.1fr 1fr; gap:2rem}
.builder-step{margin-bottom:1.4rem}
.builder-step h3{font-size:1rem; font-family:var(--ff-mono); text-transform:uppercase; margin-bottom:.7rem}
.size-options{display:flex; gap:.6rem; flex-wrap:wrap}
.size-options label{
  border:2px solid var(--ink); padding:.5em .9em; cursor:pointer; font-family:var(--ff-mono); font-size:.82rem;
  min-height:44px; display:flex; align-items:center;
}
.size-options input{accent-color:var(--brick); margin-right:.4em}
.flavor-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:.6rem}
.flavor-pick{
  border:2px solid var(--ink); padding:.6em .7em; cursor:pointer; display:flex; align-items:center; gap:.5em;
  font-size:.88rem; background:var(--paper); min-height:44px;
}
.flavor-pick input{accent-color:var(--brick)}
.flavor-pick .swatch{width:16px; height:16px; border:2px solid var(--ink); display:inline-block; flex:0 0 auto}
.flavor-pick[data-disabled="true"]{opacity:.4}
.builder-preview{display:flex; flex-direction:column; align-items:center; gap:1.2rem; text-align:center}
.cup-visual{width:180px; height:220px}
.builder-total{font-family:var(--ff-mono); font-size:1.4rem; background:var(--mustard); border:var(--line) solid var(--ink); padding:.4em .8em; box-shadow:5px 5px 0 var(--ink)}
.builder-note{font-size:.82rem; color:var(--ink-soft)}
@media (max-width: 760px){ .builder-grid{grid-template-columns:1fr} .builder{padding:1.2rem} }

/* ---------- about / content pages ---------- */
.content-page .container{max-width:860px}
.content-page h1{font-size:clamp(2.2rem,5vw,3.2rem); margin-bottom:.6rem}
.content-page h2{font-size:1.5rem; margin-top:2rem}
.content-page section + section{margin-top:1.5rem}
.legal{padding-block:3rem}
.legal .container{max-width:760px}
.legal h1{font-size:clamp(2rem,4vw,2.6rem)}
.legal h2{font-size:1.25rem; margin-top:1.8rem}
.legal ul{margin:0 0 1em 1.2em; list-style:disc}

.badge-row{display:flex; gap:1.2rem; flex-wrap:wrap; margin:2rem 0}
.badge-row svg{width:96px; height:96px}

.team-photo{
  border:var(--line) solid var(--ink); box-shadow:8px 8px 0 var(--ink);
  aspect-ratio:4/3; overflow:hidden; margin-bottom:1.5rem;
}
.team-photo img{width:100%;height:100%;object-fit:cover}

/* ---------- icon list (delivery/returns/faq) ---------- */
.icon-steps{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1.6rem; margin:2rem 0}
.icon-step{border:var(--line) solid var(--ink); background:var(--paper); padding:1.3rem; box-shadow:6px 6px 0 var(--ink)}
.icon-step svg{width:36px; height:36px; margin-bottom:.6rem}
.icon-step h3{font-size:1.05rem}

/* ---------- FAQ accordion ---------- */
.faq-list{border-top:var(--line) solid var(--ink)}
.faq-item{border-bottom:var(--line) solid var(--ink)}
.faq-item summary{
  cursor:pointer; padding:1.1rem .2rem; font-family:var(--ff-mono); font-weight:700;
  display:flex; justify-content:space-between; align-items:center; list-style:none; min-height:44px;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+"; font-size:1.4rem}
.faq-item[open] summary::after{content:"\2212"}
.faq-item p{padding:0 .2rem 1.1rem}

/* ---------- cart / checkout ---------- */
.cart-table{width:100%; border-collapse:collapse; margin-bottom:2rem}
.cart-table th, .cart-table td{
  text-align:left; padding:.8rem .6rem; border-bottom:2px solid var(--ink); vertical-align:middle;
}
.cart-table th{font-family:var(--ff-mono); font-size:.76rem; text-transform:uppercase}
.cart-item-name{display:flex; align-items:center; gap:.8rem}
.cart-item-name img{width:56px; height:56px; object-fit:cover; border:2px solid var(--ink)}
.cart-qty{display:inline-flex; align-items:center; gap:.4rem}
.cart-qty input{width:50px; min-height:38px; text-align:center; border:2px solid var(--ink); font-family:var(--ff-mono)}
.cart-remove{background:none; border:2px solid var(--ink); min-height:38px; min-width:38px; cursor:pointer; font-family:var(--ff-mono)}
.cart-summary{
  display:flex; justify-content:flex-end;
}
.summary-box{
  width:min(100%,340px); border:var(--line) solid var(--ink); background:var(--paper);
  padding:1.2rem; box-shadow:7px 7px 0 var(--ink);
}
.summary-row{display:flex; justify-content:space-between; font-family:var(--ff-mono); margin-bottom:.5rem}
.summary-row.total{font-size:1.2rem; border-top:2px solid var(--ink); padding-top:.6rem; margin-top:.6rem}
.empty-cart{
  border:var(--line) dashed var(--ink); padding:2.4rem; text-align:center; font-family:var(--ff-mono);
}

.checkout-grid{display:grid; grid-template-columns:1fr 1fr; gap:2.5rem; margin-top:2.5rem}
@media (max-width: 800px){ .checkout-grid{grid-template-columns:1fr} }

/* ---------- forms ---------- */
.form{display:flex; flex-direction:column; gap:1.1rem}
.field{display:flex; flex-direction:column; gap:.4rem}
.field label{font-family:var(--ff-mono); font-size:.78rem; text-transform:uppercase; letter-spacing:.03em}
.field input, .field textarea, .field select{
  font-family:inherit; font-size:1rem; padding:.75em .8em;
  border:var(--line) solid var(--ink); background:var(--paper); accent-color:var(--brick);
  min-height:44px;
}
.field textarea{min-height:120px; resize:vertical}
.field.has-error input, .field.has-error textarea{border-color:var(--brick)}
.field-error{color:var(--brick); font-size:.82rem; font-family:var(--ff-mono); display:none}
.field.has-error .field-error{display:block}
.form-note{font-size:.84rem; color:var(--ink-soft)}
.form-success{
  border:var(--line) solid var(--olive); background:#eef1dd; padding:1rem 1.2rem; font-family:var(--ff-mono);
  display:none;
}
.form-success.show{display:block}
.form-fail{
  border:var(--line) solid var(--brick); background:#f6dfd9; padding:1rem 1.2rem; font-family:var(--ff-mono);
  display:none;
}
.form-fail.show{display:block}
.radio-row{display:flex; gap:1.2rem; flex-wrap:wrap}
.radio-row label{display:flex; align-items:center; gap:.5em; font-size:.95rem}

/* honeypot */
.hp-field{position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden}

/* ---------- cookie banner ---------- */
.cookie-banner{
  position:fixed; left:1rem; right:1rem; bottom:1rem; z-index:500;
  max-width:640px; margin-inline:auto;
  background:var(--ink); color:var(--paper);
  border:var(--line) solid var(--ink); box-shadow:8px 8px 0 var(--brick);
  padding:1.3rem 1.4rem;
  display:none;
  gap:1rem; flex-wrap:wrap; align-items:center; justify-content:space-between;
}
.cookie-banner.show{display:flex}
.cookie-banner p{margin:0; font-size:.9rem; flex:1 1 260px}
.cookie-banner a{text-decoration:underline}
.cookie-actions{display:flex; gap:.7rem; flex-wrap:wrap}

/* ---------- footer ---------- */
.site-footer{
  background:var(--ink); color:var(--paper); border-top:var(--line) solid var(--ink);
  padding-block:3rem 1.6rem;
}
.footer-grid{
  display:grid; grid-template-columns:1.3fr 1fr 1fr 1.2fr; gap:2rem;
  margin-bottom:2rem;
}
.footer-brand svg{width:150px; height:40px; margin-bottom:.8rem}
.footer-brand p{color:#c9c4b3; max-width:30ch}
.footer-col h3{font-family:var(--ff-mono); text-transform:uppercase; font-size:.8rem; color:var(--mustard); margin-bottom:.9rem}
.footer-col ul{list-style:none; display:flex; flex-direction:column; gap:.6rem}
.footer-col a{text-decoration:none; color:var(--paper); font-size:.92rem}
.footer-col a:hover{color:var(--mustard)}
.newsletter{display:flex; gap:.5rem; flex-wrap:wrap; margin-top:.4rem}
.newsletter input{
  flex:1 1 160px; min-height:44px; padding:.6em .8em; border:2px solid var(--paper); background:transparent; color:var(--paper);
}
.newsletter input::placeholder{color:#c9c4b3}
.footer-bottom{
  border-top:2px solid #40402f; padding-top:1.2rem;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:.8rem;
  font-size:.82rem; color:#b9b4a3;
}
@media (max-width: 860px){
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width: 540px){
  .footer-grid{grid-template-columns:1fr}
}

/* ---------- misc ---------- */
.skip-link{
  position:absolute; left:-9999px; top:0; background:var(--mustard); padding:.6em 1em; z-index:600;
}
.skip-link:focus{left:1rem; top:1rem}

.page-404{
  min-height:60vh; display:flex; align-items:center; justify-content:center; text-align:center; flex-direction:column;
  padding-block:4rem; gap:1rem;
}
.page-404 .scoop-404{width:160px; height:160px; margin-bottom:1rem}

.stamp-rotate{animation:rotateSlow 40s linear infinite}
@media (prefers-reduced-motion: reduce){ .stamp-rotate{animation:none} }
@keyframes rotateSlow{to{transform:rotate(360deg)}}
