:root{
  --forest:#17361e;
  --forest-deep:#0e2414;
  --gold:#cd9a48;
  --pink:#e8b7bd;
  --pink-soft:#f6dfe2;
  --icing:#fff8f2;
  --paper:#f4eadf;
  --cocoa:#3a2118;
  --berry:#8d2538;
  --ink:#201b18;
  --line:rgba(32,27,24,.22);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--icing)}
body{margin:0;background:var(--icing);color:var(--ink);font-family:"DM Sans",sans-serif;font-size:18px;line-height:1.55;overflow-x:hidden}
img{display:block;width:100%;height:auto}
a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}
h1,h2,h3,p,blockquote,figure,dl{margin-top:0}
h1,h2,h3{font-family:"League Spartan",sans-serif;line-height:.9;letter-spacing:-.045em}
h1{font-size:clamp(4rem,6.7vw,8rem);margin-bottom:24px}
h2{font-size:clamp(3.35rem,6vw,7rem);margin-bottom:24px}
h3{font-size:clamp(2.15rem,3vw,3.7rem);margin-bottom:16px}
p{max-width:62ch}
.topline{height:86px;display:grid;grid-template-columns:minmax(260px,380px) 1fr auto;align-items:center;gap:30px;padding:11px clamp(24px,4vw,72px);background:var(--icing);border-bottom:1px solid var(--line);position:relative;z-index:10}
.logo-link{display:block;max-width:315px}
.logo-link img{height:58px;object-fit:contain;object-position:left center}
.topline nav{display:flex;justify-content:center;gap:clamp(18px,2.6vw,42px)}
.topline nav a,.phone{font-weight:700;text-decoration:none}
.header-actions{display:flex;align-items:center;gap:18px;white-space:nowrap}
.order-button,.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:13px 21px;border:1px solid currentColor;font-weight:800;text-decoration:none;line-height:1;transition:transform .18s ease,background .18s ease,color .18s ease}
.order-button{background:var(--forest);color:var(--icing);border-color:var(--forest)}
.hero{position:relative;min-height:calc(100dvh - 86px);overflow:hidden;background:#ddd;display:grid;align-items:center}
#hero-img{position:absolute;inset:0;width:100%;height:100%;min-height:70vh;object-fit:cover;object-position:center}
.hero-label{position:relative;z-index:2;width:min(650px,43vw);margin-left:auto;margin-right:clamp(24px,6vw,115px);padding:clamp(38px,4.5vw,70px);background:rgba(255,248,242,.96);border:1px solid rgba(32,27,24,.25);box-shadow:14px 18px 0 rgba(23,54,30,.9)}
.hero-label::before{content:"";position:absolute;top:18px;right:20px;width:72px;height:72px;border:2px dashed var(--berry);border-radius:50%;opacity:.75}
.hero-mark{max-width:300px;height:76px;object-fit:contain;object-position:left center;margin-bottom:34px}
.hero-label h1{color:var(--forest);max-width:7.2ch}
.hero-label>p{font-size:clamp(1.05rem,1.35vw,1.3rem);max-width:35rem;margin-bottom:27px}
.hero-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.button.dark{background:var(--forest);color:var(--icing);border-color:var(--forest)}
.text-action{font-weight:800;color:var(--berry)}
.rating{display:block;margin-top:28px;padding-top:18px;border-top:1px solid var(--line);font-weight:700;color:var(--cocoa)}
.cookie-tray{padding:clamp(70px,9vw,150px) clamp(22px,5vw,92px);background:var(--pink-soft)}
.tray-intro{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.8fr);align-items:end;gap:clamp(40px,8vw,150px);margin-bottom:clamp(46px,6vw,88px)}
.tray-intro h2{color:var(--berry);max-width:8ch;margin:0}
.tray-intro blockquote{margin:0;border-top:2px solid var(--berry);padding-top:22px}
.tray-intro blockquote p{font-size:clamp(1.08rem,1.45vw,1.35rem);line-height:1.48;margin-bottom:14px}
cite{font-style:normal;font-weight:800;color:var(--forest)}
.flavor-grid{display:grid;grid-template-columns:1.2fr .9fr .9fr;grid-template-rows:370px 300px;gap:14px}
.flavor{position:relative;overflow:hidden;background:var(--icing);margin:0}
.flavor-wide{grid-row:1/3}
.flavor-tall{grid-row:1/3}
.flavor img{height:100%;object-fit:cover;transition:transform .45s cubic-bezier(.22,1,.36,1)}
.flavor-wide img{object-position:center}
.flavor-tall img{object-position:center}
.flavor figcaption{position:absolute;left:16px;bottom:16px;max-width:calc(100% - 32px);padding:10px 13px;background:var(--icing);color:var(--forest);font-weight:800;line-height:1.2;border:1px solid rgba(23,54,30,.25)}
.browse-link{display:inline-block;margin-top:28px;color:var(--berry);font-weight:800;font-size:1.1rem}
.occasions{background:var(--forest);color:var(--icing);padding:clamp(70px,9vw,150px) clamp(22px,5vw,92px)}
.occasion-heading{display:grid;grid-template-columns:1fr minmax(340px,.7fr);gap:60px;align-items:end;margin-bottom:54px}
.occasion-heading h2{max-width:8ch;color:var(--pink);margin:0}
.occasion-heading p{font-size:clamp(1.12rem,1.5vw,1.4rem);color:#f4e5dc;margin:0}
.occasion-table{display:grid;grid-template-columns:1.1fr .75fr 1fr;grid-template-rows:auto auto;border:1px solid rgba(255,248,242,.42)}
.occasion{padding:clamp(30px,4vw,62px);min-height:360px;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid rgba(255,248,242,.35);border-bottom:1px solid rgba(255,248,242,.35)}
.occasion h3{color:var(--gold);max-width:10ch}
.occasion p{color:#f7e9df;font-size:1.05rem}
.occasion a{font-weight:800;color:var(--pink)}
.note-line{display:block;font-size:.9rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--pink);margin-bottom:70px}
.happy-mail{grid-row:1/3;background:#1d4528}
.occasion-photo{margin:0;grid-row:1/2;min-height:360px;border-right:1px solid rgba(255,248,242,.35);border-bottom:1px solid rgba(255,248,242,.35)}
.occasion-photo img{height:100%;object-fit:cover}
.celebrate{grid-column:3;grid-row:1/2}
.business{grid-column:2/4;grid-row:2/3;min-height:330px;background:var(--berry);border-right:0;border-bottom:0}
.business h3{color:var(--pink-soft);max-width:none}
.business .note-line,.business a{color:#fff0d2}
.notes{background:var(--paper);padding:clamp(70px,10vw,165px) clamp(22px,6vw,115px);display:grid;grid-template-columns:minmax(300px,.72fr) minmax(0,1.3fr);gap:clamp(50px,8vw,150px)}
.notes-title-wrap{position:sticky;top:40px;align-self:start}
.notes h2{color:var(--cocoa);max-width:9ch}
.notes-title-wrap p{font-size:1.15rem;color:#5d483e}
.review-notes{display:grid;gap:30px;padding-top:90px}
.review-note{margin:0;padding:clamp(30px,4vw,58px);min-height:240px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:8px 10px 0 rgba(58,33,24,.12)}
.review-note p{font-size:clamp(1.15rem,1.7vw,1.55rem);line-height:1.45;margin-bottom:28px}
.note-one{background:var(--pink);transform:rotate(-1.1deg)}
.note-two{background:var(--gold);transform:translateX(4%) rotate(.8deg)}
.note-three{background:var(--icing);transform:translateX(-2%) rotate(-.45deg)}
.visit{display:grid;grid-template-columns:minmax(420px,.8fr) minmax(0,1.2fr);background:var(--icing);border-top:1px solid var(--line)}
.return-address{padding:clamp(54px,7vw,120px);display:flex;flex-direction:column;align-items:flex-start}
.return-address>img{max-width:360px;margin-bottom:55px}
.return-address h2{font-size:clamp(3rem,4.6vw,5.5rem);color:var(--forest);max-width:8ch}
address{font-style:normal;font-size:1.16rem;margin-bottom:20px}
.return-address>a:not(.button){font-weight:700;color:var(--berry);margin-bottom:8px}
.hours{width:100%;margin:34px 0}
.hours div{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:14px 0;border-top:1px solid var(--line)}
.hours dt{font-weight:800}.hours dd{margin:0}
.button.berry{background:var(--berry);color:var(--icing);border-color:var(--berry)}
.map-wrap{position:relative;min-height:700px;overflow:hidden;background-color:var(--pink-soft);background-image:linear-gradient(34deg,transparent 42%,rgba(205,154,72,.38) 42%,rgba(205,154,72,.38) 47%,transparent 47%),linear-gradient(135deg,transparent 58%,rgba(141,37,56,.20) 58%,rgba(141,37,56,.20) 63%,transparent 63%),linear-gradient(rgba(23,54,30,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(23,54,30,.12) 1px,transparent 1px);background-size:auto,auto,90px 90px,90px 90px}
.map-wrap iframe{position:absolute;inset:0;display:block;width:100%;height:100%;min-height:700px;border:0;filter:saturate(.75) contrast(.95);mix-blend-mode:multiply}
.map-label{position:absolute;left:9%;bottom:10%;z-index:2;display:grid;gap:5px;max-width:320px;padding:26px 28px 24px 72px;background:var(--icing);color:var(--cocoa);border:1px solid var(--line);box-shadow:8px 10px 0 rgba(58,33,24,.16);text-decoration:none}
.map-label strong{font-family:"League Spartan",sans-serif;font-size:1.45rem;line-height:1}
.map-label span{font-size:.94rem}.map-label u{margin-top:8px;font-weight:800;color:var(--berry);text-underline-offset:.2em}
.map-pin{position:absolute;left:18px;top:24px;display:grid;place-items:center;width:42px;height:42px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--berry);color:var(--icing);font-weight:800}
.map-pin::first-letter{transform:rotate(45deg)}
footer{min-height:94px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:28px;padding:22px clamp(24px,5vw,90px);background:var(--cocoa);color:var(--icing);font-size:.95rem;font-weight:700}
.footer-links{display:flex;justify-content:center;gap:26px;flex-wrap:wrap}
footer>span:last-child{text-align:right}
@media (prefers-reduced-motion:no-preference){
  .order-button:hover,.button:hover{transform:translateY(-2px)}
  .flavor:hover img{transform:scale(1.025)}
}
@media (max-width:1050px){
  .topline{grid-template-columns:minmax(220px,300px) 1fr auto}.topline nav{display:none}.phone{display:none}
  .hero-label{width:min(620px,55vw);margin-right:40px}
  .occasion-table{grid-template-columns:1fr 1fr}.happy-mail{grid-row:auto}.occasion-photo{grid-row:auto}.celebrate{grid-column:auto;grid-row:auto}.business{grid-column:1/3;grid-row:auto}
  .visit{grid-template-columns:1fr 1fr}.return-address{padding:60px 36px}
}
@media (max-width:760px){
  body{font-size:17px}
  .topline{height:72px;grid-template-columns:1fr auto;padding:9px 14px;gap:12px}.logo-link{max-width:215px}.logo-link img{height:49px}.header-actions{gap:8px}.order-button{min-height:44px;padding:11px 14px;font-size:.9rem}
  .hero{display:flex;flex-direction:column;min-height:0;background:var(--icing)}
  #hero-img{position:relative;inset:auto;height:auto;min-height:0;aspect-ratio:4/3;object-fit:cover;object-position:center}
  .hero-label{width:100%;margin:0;padding:38px 20px 46px;box-shadow:none;border:0;border-bottom:1px solid var(--line)}
  .hero-label::before{width:54px;height:54px;top:16px;right:15px}.hero-mark{max-width:245px;height:62px;margin-bottom:28px}
  h1{font-size:clamp(3.75rem,18vw,5.3rem)} h2{font-size:clamp(3rem,14vw,4.5rem)}
  .hero-actions{align-items:stretch;flex-direction:column;gap:15px}.button.dark{width:100%}.text-action{text-align:center}
  .cookie-tray,.occasions,.notes{padding:65px 16px}
  .tray-intro,.occasion-heading,.notes{display:block}.tray-intro blockquote{margin-top:34px}
  .flavor-grid{grid-template-columns:1fr 1fr;grid-template-rows:280px 240px}.flavor-wide,.flavor-tall{grid-row:auto}.flavor-wide{grid-column:1/3}.flavor figcaption{font-size:.85rem;left:9px;bottom:9px;max-width:calc(100% - 18px)}
  .occasion-heading p{margin-top:24px}.occasion-table{grid-template-columns:1fr}.happy-mail,.occasion-photo,.celebrate,.business{grid-column:auto;grid-row:auto}.occasion{min-height:0;padding:32px 22px}.note-line{margin-bottom:58px}.occasion-photo{min-height:300px}.business{min-height:0}
  .notes-title-wrap{position:static}.review-notes{padding-top:34px;gap:22px}.review-note,.note-one,.note-two,.note-three{min-height:0;transform:none;padding:28px 22px}.review-note p{font-size:1.08rem}
  .visit{grid-template-columns:1fr}.return-address{padding:58px 20px}.return-address>img{max-width:300px;margin-bottom:42px}.map-wrap,.map-wrap iframe{min-height:380px}.map-label{left:20px;right:20px;bottom:28px;max-width:none;padding:22px 20px 20px 68px}.map-label strong{font-size:1.25rem}
  footer{grid-template-columns:1fr;text-align:left;padding:30px 20px}.footer-links{justify-content:flex-start;gap:14px 22px}footer>span:last-child{text-align:left}
}
@media (max-width:390px){
  .logo-link{max-width:190px}.order-button{padding-inline:11px;font-size:.84rem}
  .hero-label{padding-inline:16px}.hero-mark{max-width:225px}
  .flavor-grid{grid-template-columns:1fr;grid-template-rows:none}.flavor-wide{grid-column:auto}.flavor{height:300px}.flavor-tall{height:330px}
  .hours div{grid-template-columns:1fr;gap:3px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}
}
