:root{
  --cream:#f6efe4; --cream2:#efe3d1; --paper:#fffaf2; --espresso:#2b1b12; --brown:#6b4329;
  --orange:#d9622b; --muted:#7d6553; --line:#e3d4bf; --r:24px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:Manrope,system-ui,sans-serif;background:var(--cream);color:var(--espresso);line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.container{max-width:1200px;margin:0 auto;padding:0 24px}
h1,h2,h3{font-family:Fraunces,Georgia,serif;letter-spacing:-.01em;line-height:1.08}
h2{font-size:clamp(30px,3.6vw,50px);font-weight:700}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:17px 30px;border-radius:99px;background:var(--espresso);color:var(--paper);font:700 16px Manrope,sans-serif;border:0;cursor:pointer;transition:.2s}
.btn:hover{background:var(--orange)}
.btn--full{width:100%}
.btn--ghost{background:transparent;color:var(--espresso);box-shadow:inset 0 0 0 1.5px var(--espresso)}
.btn--ghost:hover{color:#fff}
.link{font-weight:700;border-bottom:2px solid var(--orange);padding-bottom:2px}
.kicker{display:inline-block;font-weight:700;font-size:14px;letter-spacing:.04em;color:var(--orange);margin-bottom:14px}
.kicker--light{color:#f0a273}

.header{position:sticky;top:0;z-index:50;background:rgba(246,239,228,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.header__inner{display:flex;align-items:center;gap:40px;height:74px}
.logo{display:flex;align-items:center;gap:8px;font:800 26px Fraunces,serif}
.nav{display:flex;gap:30px;margin-left:auto}
.nav a{font-weight:600;color:var(--brown)}
.nav a:hover{color:var(--orange)}
.cart-btn{display:flex;align-items:center;gap:8px;padding:10px 18px;border-radius:99px;background:var(--espresso);color:var(--paper);font-weight:700;font-size:15px}
.cart-btn span{background:var(--orange);min-width:22px;height:22px;border-radius:99px;display:grid;place-items:center;font-size:12px;padding:0 6px}
.burger{display:none;width:44px;height:44px;border-radius:50%;border:1.5px solid var(--espresso);background:transparent;flex-direction:column;justify-content:center;align-items:center;gap:5px}
.burger span{width:18px;height:2px;background:var(--espresso)}

.hero{padding:56px 0 0;overflow:hidden}
.hero__grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.hero h1{font-size:clamp(42px,5.6vw,80px);font-weight:800;margin-bottom:24px}
.hero h1 em{font-style:italic;font-weight:500;color:var(--orange)}
.lead{font-size:19px;color:var(--muted);max-width:520px}
.hero__cta{display:flex;align-items:center;gap:28px;margin:34px 0 46px;flex-wrap:wrap}
.hero__info{display:flex;gap:16px}
.hero__info div{padding:16px 20px;border-radius:18px;background:var(--paper);border:1px solid var(--line);flex:1}
.hero__info b{display:block;font:700 26px Fraunces,serif}
.hero__info span{font-size:13px;color:var(--muted)}
.hero__art{position:relative;height:560px}
.blob{position:absolute;inset:30px 10px 40px 40px;background:radial-gradient(circle at 35% 30%,#f0a273,#d9622b 55%,#a8441a);border-radius:46% 54% 42% 58%/55% 44% 56% 45%;animation:morph 12s ease-in-out infinite}
@keyframes morph{50%{border-radius:58% 42% 55% 45%/42% 58% 42% 58%}}
.cup{position:absolute;left:50%;top:52%;width:78%;transform:translate(-46%,-50%);filter:drop-shadow(0 30px 40px rgba(43,27,18,.35))}
.steam{animation:steam 3s ease-in-out infinite}
.s2{animation-delay:.6s}.s3{animation-delay:1.2s}
@keyframes steam{0%,100%{opacity:.2;transform:translateY(0)}50%{opacity:.6;transform:translateY(-8px)}}
.bean{position:absolute;width:34px;height:46px;border-radius:50%;background:#3a2416;box-shadow:inset -4px -4px 0 #24150c}
.bean::after{content:"";position:absolute;left:50%;top:8%;bottom:8%;width:3px;background:#1a0e07;border-radius:3px;transform:translateX(-50%) rotate(12deg)}
.b1{top:30px;left:70px;transform:rotate(-30deg)}
.b2{bottom:70px;right:20px;transform:rotate(40deg) scale(.8)}
.b3{top:120px;right:30px;transform:rotate(10deg) scale(.6)}
.tag-card{position:absolute;background:var(--paper);border-radius:18px;padding:14px 18px;box-shadow:0 20px 40px -18px rgba(43,27,18,.45);display:flex;flex-direction:column}
.tag-card span{font-size:12px;font-weight:700;color:var(--orange);text-transform:uppercase;letter-spacing:.06em}
.tag-card b{font:700 17px Fraunces,serif}
.tag-card i{font-style:normal;font-weight:800}
.tag-card--a{left:0;bottom:90px}
.tag-card--b{right:0;top:40px}
.marquee{margin-top:40px;background:var(--espresso);color:var(--cream);padding:18px 0;overflow:hidden;white-space:nowrap;font:italic 500 22px Fraunces,serif}
.marquee div{display:inline-block;animation:run 40s linear infinite}
@keyframes run{to{transform:translateX(-50%)}}

.section{padding:96px 0}
.section--dark{background:var(--espresso);color:var(--cream)}
.section--cream{background:var(--cream2)}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:44px;flex-wrap:wrap}
.sec-head__note{max-width:380px;color:var(--muted)}
.cats{display:flex;gap:8px;flex-wrap:wrap}
.cat{border:1.5px solid var(--line);background:var(--paper);border-radius:99px;padding:11px 22px;font:700 15px Manrope,sans-serif;color:var(--brown);cursor:pointer;transition:.2s}
.cat.is-active{background:var(--espresso);border-color:var(--espresso);color:var(--paper)}

.menu{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.item{background:var(--paper);border-radius:var(--r);overflow:hidden;border:1px solid var(--line);display:flex;flex-direction:column;transition:.25s}
.item:hover{transform:translateY(-4px);box-shadow:0 24px 40px -24px rgba(43,27,18,.4)}
.item__img{position:relative;height:170px;display:grid;place-items:center}
.item__img span{font-size:72px;filter:drop-shadow(0 12px 10px rgba(43,27,18,.2))}
.item__badge{position:absolute;top:14px;left:14px;font-style:normal;font-size:12px;font-weight:800;padding:5px 11px;border-radius:99px;background:var(--espresso);color:var(--paper)}
.item__badge--new{background:var(--orange)}
.item__body{padding:20px;display:flex;flex-direction:column;flex:1}
.item__top{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.item h3{font-size:20px;font-weight:700}
.item small{color:var(--muted);font-size:13px;white-space:nowrap}
.item p{color:var(--muted);font-size:14px;margin:6px 0 18px}
.item__foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px}
.item__foot b{font-size:20px;font-weight:800}
.qty{display:flex;align-items:center;gap:8px}
.qty button{width:36px;height:36px;border-radius:50%;border:0;background:var(--cream2);font:700 18px Manrope,sans-serif;color:var(--espresso);cursor:pointer}
.qty button:hover{background:var(--orange);color:#fff}
.qty .add{width:auto;padding:0 16px;border-radius:99px;background:var(--espresso);color:var(--paper);font-size:14px;height:38px}
.qty span{min-width:18px;text-align:center;font-weight:800}

.promos{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:22px}
.promo{position:relative;border-radius:28px;padding:32px;min-height:280px;display:flex;flex-direction:column;overflow:hidden}
.promo h3{font-size:30px;margin:14px 0 10px}
.promo p{opacity:.8;max-width:360px}
.promo__label{align-self:flex-start;font-weight:800;font-size:13px;padding:6px 12px;border-radius:99px;background:rgba(255,255,255,.14)}
.promo--big{background:linear-gradient(140deg,#4a2e1d,#2f1d12);border:1px solid #4b3426}
.promo--big h3{font-size:40px}
.promo__art{position:absolute;right:20px;bottom:-6px;font-size:96px;letter-spacing:-20px}
.promo--orange{background:var(--orange);color:#fff}
.promo--cream{background:var(--cream);color:var(--espresso)}
.promo--cream .promo__label{background:var(--cream2)}
.stamps{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:auto}
.stamps i{aspect-ratio:1;border-radius:50%;border:2px dashed #c9b394;display:grid;place-items:center;font-style:normal;font-size:18px}
.stamps i.on{background:var(--espresso);border-color:var(--espresso)}
.stamps i.gift{border-color:var(--orange);background:#fbe3d4}

.delivery{display:grid;grid-template-columns:1.2fr 1fr;gap:28px}
.steps{display:grid;gap:16px}
.step{display:grid;grid-template-columns:72px 1fr;column-gap:20px;padding:26px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r)}
.step span{grid-row:span 2;font:800 44px Fraunces,serif;color:var(--orange);line-height:1}
.step h3{font-size:22px}
.step p{color:var(--muted)}
.zones{padding:32px;border-radius:var(--r);background:var(--espresso);color:var(--cream)}
.zones h3{font-size:26px;margin-bottom:22px}
.zone{display:flex;align-items:center;gap:14px;padding:16px 0;border-bottom:1px solid #4b3426}
.zone i{width:14px;height:14px;border-radius:50%;flex:none}
.zone div{flex:1}
.zone b{display:block}
.zone span{font-size:14px;opacity:.7}
.zone strong{font:700 18px Fraunces,serif}
.zones__note{margin-top:20px;font-size:14px;opacity:.75}

.order{display:grid;grid-template-columns:1fr 1.15fr;gap:48px;align-items:start}
.basket{margin-top:28px;background:var(--paper);border-radius:var(--r);padding:24px;border:1px solid var(--line)}
.basket__empty{color:var(--muted);padding:12px 0 18px}
.basket__empty a{color:var(--orange);font-weight:700}
.basket__list{list-style:none;display:grid;gap:14px;margin-bottom:12px}
.basket__list li{display:flex;align-items:center;gap:14px}
.b-emoji{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font-size:24px;flex:none}
.basket__list li>div:nth-child(2){flex:1;min-width:0}
.basket__list b{display:block;font-size:15px}
.basket__list small{color:var(--muted)}
.qty--sm button{width:30px;height:30px;font-size:16px}
.basket__row,.basket__total{display:flex;justify-content:space-between;padding:12px 0;border-top:1px dashed var(--line)}
.basket__total{font-size:20px}
.basket__total b{font:800 26px Fraunces,serif}
.form{position:relative;background:var(--paper);border-radius:28px;padding:34px;display:grid;gap:16px;box-shadow:0 30px 60px -40px rgba(43,27,18,.5)}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field{display:flex;flex-direction:column;gap:7px}
.field>span{font-weight:700;font-size:14px}
.field input,.field select{font:500 16px Manrope,sans-serif;padding:14px 16px;border-radius:14px;border:1.5px solid var(--line);background:var(--cream);color:var(--espresso);outline:none;width:100%;min-width:0}
.field input:focus,.field select:focus{border-color:var(--orange);background:#fff}
.field em{display:none;font-style:normal;color:#c0392b;font-size:13px;font-weight:600}
.field.bad input{border-color:#c0392b;background:#fff3f0}
.field.bad em{display:block}
.pay{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.pay label{position:relative}
.pay input{position:absolute;inset:0;opacity:0;margin:0}
.pay i{display:block;text-align:center;font-style:normal;font-weight:700;font-size:14px;padding:13px 6px;border-radius:14px;border:1.5px solid var(--line);cursor:pointer}
.pay input:checked+i{border-color:var(--espresso);background:var(--espresso);color:var(--paper)}
.form__err{color:#c0392b;font-weight:600;font-size:14px;background:#fff3f0;padding:12px 14px;border-radius:12px}
.form__err[hidden]{display:none}
.form__ok{position:absolute;inset:0;border-radius:28px;background:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;padding:30px}
.form__ok[hidden]{display:none}
.form__ok-ico{font-size:56px}
.form__ok h3{font-size:32px}
.form__ok p{color:var(--muted);margin-bottom:10px}

.footer{background:var(--espresso);color:#cdb9a3;padding:28px 0;font-size:14px}
.footer .logo{color:var(--cream);font-size:22px}
.footer__inner{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}

@media (max-width:1080px){
  .nav{display:none}
  .cart-btn{margin-left:auto}
  .burger{display:flex}
  .nav.is-open{display:flex;position:absolute;top:74px;left:0;right:0;flex-direction:column;background:var(--cream);padding:20px 24px;gap:16px;border-bottom:1px solid var(--line);margin:0}
  .menu{grid-template-columns:repeat(3,1fr)}
  .promos{grid-template-columns:1fr 1fr}
  .promo--big{grid-column:span 2}
}
@media (max-width:860px){
  .hero__grid,.delivery,.order{grid-template-columns:1fr}
  .hero__art{height:440px;max-width:520px;width:100%;margin:0 auto}
  .menu{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:560px){
  .container{padding:0 18px}
  .header__inner{height:64px;gap:10px}
  .nav.is-open{top:64px}
  .cart-btn{padding:8px 14px;font-size:14px}
  .hero{padding:32px 0 0}
  .hero h1{font-size:44px;margin-bottom:16px}
  .lead{font-size:16px}
  .hero__cta{margin:26px 0 26px;gap:20px}
  .hero__info{gap:8px}
  .hero__info div{padding:12px 10px}
  .hero__info b{font-size:19px}
  .hero__info span{font-size:11.5px;display:block;line-height:1.3}
  .hero__art{height:350px}
  .blob{inset:20px 10px 30px 20px}
  .tag-card{padding:10px 12px}
  .tag-card b{font-size:14px}
  .tag-card--a{bottom:40px}
  .tag-card--b{top:10px}
  .bean{width:24px;height:32px}
  .marquee{font-size:17px;padding:14px 0;margin-top:20px}
  .section{padding:64px 0}
  .menu{gap:12px}
  .item__img{height:110px}
  .item__img span{font-size:48px}
  .item__badge{top:8px;left:8px;font-size:10.5px;padding:3px 8px}
  .item__body{padding:12px}
  .item__top{flex-direction:column;gap:2px}
  .item h3{font-size:16px}
  .item p{font-size:12.5px;margin:4px 0 12px}
  .item__foot{flex-direction:column;align-items:stretch;gap:8px}
  .item__foot b{font-size:17px}
  .qty{justify-content:space-between}
  .qty .add{width:100%;height:36px}
  .cats{width:100%;flex-wrap:nowrap;overflow-x:auto}
  .cat{padding:9px 16px;font-size:14px;white-space:nowrap}
  .promos{grid-template-columns:1fr}
  .promo--big{grid-column:auto}
  .promo{min-height:auto;padding:26px}
  .promo h3,.promo--big h3{font-size:28px}
  .promo--big{padding-bottom:110px}
  .promo__art{font-size:72px}
  .step{grid-template-columns:52px 1fr;padding:20px;column-gap:12px}
  .step span{font-size:32px}
  .step h3{font-size:19px}
  .zones{padding:24px}
  .form{padding:22px}
  .form__row{grid-template-columns:1fr}
}
