:root{
  --sage-dark:#526b54;
  --sage:#788d77;
  --sage-soft:#dfe7dc;
  --cream:#fbf7ef;
  --warm:#fffaf1;
  --ink:#2d302a;
  --muted:#666a62;
  --gold:#c8b56f;
  --line:rgba(82,107,84,.20);
  --shadow:0 18px 48px rgba(62,58,47,.14);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"DM Sans",Arial,sans-serif;
  color:var(--ink);
  background:
    radial-gradient(circle at 18% 4%,rgba(221,230,217,.72),transparent 27rem),
    radial-gradient(circle at 80% 15%,rgba(247,234,208,.55),transparent 32rem),
    linear-gradient(180deg,#fffdf8 0%,#fbf6ed 60%,#f7f0e4 100%);
  line-height:1.55;
  overflow-x:hidden;
}
body:before{
  content:"";
  position:fixed;inset:0;
  pointer-events:none;
  opacity:.16;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.12'/%3E%3C/svg%3E");
}
img{display:block;width:100%}
a{color:inherit;text-decoration:none}
.botanical{
  position:fixed;
  width:300px;height:300px;
  background:url("images/botanical-corner.svg") center/contain no-repeat;
  opacity:.55;
  pointer-events:none;
  z-index:0;
}
.botanical-left{left:-55px;top:-30px}
.botanical-right{right:-65px;bottom:40px;transform:rotate(180deg)}
.site-header,main,.contact-strip,.site-footer{position:relative;z-index:1}
.site-header{
  max-width:1240px;margin:0 auto;padding:18px 28px 8px;
  display:flex;align-items:center;justify-content:space-between;gap:30px;
}
.brand{width:255px;display:block;position:relative;z-index:2}
.brand img{width:100%;height:auto;object-fit:contain;filter:drop-shadow(0 7px 11px rgba(54,55,47,.09))}
.nav{
  display:flex;gap:37px;align-items:center;
  text-transform:uppercase;font-size:.98rem;font-weight:500;
  letter-spacing:.075em;
}
.nav a{padding:13px 2px 10px;border-bottom:2px solid transparent}
.nav a:hover{border-color:var(--sage)}
.nav-order{color:var(--sage-dark);font-weight:700}
.hero{
  max-width:1240px;margin:0 auto;padding:8px 28px 24px;
  display:grid;grid-template-columns:.92fr 1.46fr;gap:28px;align-items:stretch;
}
.hero-copy{padding:38px 0 24px;display:flex;flex-direction:column;justify-content:center}
.script{
  font-family:"Allura",cursive;font-size:clamp(4rem,6.2vw,6.15rem);
  color:var(--sage-dark);margin:0;line-height:.92;
  letter-spacing:.004em;text-shadow:0 1px 0 rgba(255,255,255,.7);
}
.flourish{display:flex;align-items:center;gap:14px;color:var(--sage);font-size:1.7rem;margin:13px 0}
.flourish span{display:block;width:78px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}
.flourish span:last-child{transform:scaleX(-1)}
.hero-tagline{font-family:"Cormorant Garamond",serif;font-size:1.55rem;line-height:1.35;margin:0 0 26px}
.hero-actions{display:grid;gap:12px;max-width:398px}
.button{
  min-height:77px;border-radius:14px;display:flex;align-items:center;gap:18px;
  padding:14px 22px;border:2px solid var(--sage-dark);
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease
}
.button:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.button strong{display:block;font-size:1.28rem;letter-spacing:.04em}
.button small{display:block;font-size:.9rem;letter-spacing:.05em;text-transform:uppercase}
.button-primary{background:linear-gradient(180deg,#627b63,#4f684f);color:#fff}
.button-secondary{background:rgba(255,252,245,.78);color:var(--sage-dark)}
.button-icon{font-size:1.9rem}
.hero-image-wrap{
  position:relative;min-height:555px;overflow:hidden;border-radius:30px;
  box-shadow:var(--shadow);
  background:var(--warm);
}
.hero-image{
  height:100%;object-fit:cover;object-position:center;
  -webkit-mask-image:linear-gradient(to right,transparent 0%,black 12%,black 100%);
  mask-image:linear-gradient(to right,transparent 0%,black 12%,black 100%);
}
.hero-soft-edge{
  position:absolute;inset:0;
  box-shadow:inset 70px 0 70px -45px rgba(255,250,241,.95);
  pointer-events:none;
}
.hero-label{
  position:absolute;right:24px;bottom:22px;
  background:linear-gradient(180deg,rgba(92,118,92,.96),rgba(71,97,74,.96));
  color:white;padding:17px 30px;border-radius:7px;text-align:center;
  box-shadow:0 8px 22px rgba(0,0,0,.16)
}
.hero-label:before,.hero-label:after{
  content:"";position:absolute;top:8px;bottom:8px;width:15px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.12));
}
.hero-label:before{left:-8px}.hero-label:after{right:-8px}
.hero-label strong{display:block;font-size:1.25rem;letter-spacing:.035em}
.hero-label span{display:block;margin-top:4px;font-family:"Cormorant Garamond",serif;font-size:1.22rem}
.section{max-width:1240px;margin:0 auto;padding:36px 28px}
.section-heading{display:flex;justify-content:center;align-items:center;gap:14px;color:var(--sage-dark);text-transform:uppercase}
.section-heading h2{margin:0;font-family:"Cormorant Garamond",serif;font-size:2.35rem;letter-spacing:.045em}
.food-grid{margin-top:22px;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.food-card{
  background:rgba(255,252,245,.88);border:1px solid var(--line);border-radius:18px;overflow:hidden;
  text-align:center;padding-bottom:20px;box-shadow:0 9px 26px rgba(62,58,47,.07)
}
.food-card img{height:230px;object-fit:cover}
.food-card h3{
  margin:16px 12px 6px;color:var(--sage-dark);
  font-family:"Cormorant Garamond",serif;font-size:1.2rem;text-transform:uppercase;letter-spacing:.025em
}
.food-card p{margin:0 18px;color:var(--muted)}
.service-strip{
  max-width:1184px;margin:8px auto 36px;padding:22px 26px;
  background:linear-gradient(90deg,rgba(242,235,210,.84),rgba(231,239,228,.94),rgba(244,237,216,.84));
  border-radius:18px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;border:1px solid var(--line)
}
.service-item{display:flex;align-items:center;gap:18px;padding:8px 18px;border-right:1px solid var(--line)}
.service-item:last-child{border-right:0}
.service-item strong{display:block;color:var(--sage-dark);text-transform:uppercase;font-family:"Cormorant Garamond",serif;font-size:1.25rem;letter-spacing:.03em}
.service-item p{margin:4px 0 0;font-size:.94rem}
.service-icon{font-size:2.35rem}
.toast-mark{width:64px;height:64px;border:2px solid var(--sage-dark);border-radius:50%;display:grid;place-items:center;font-weight:700;color:var(--sage-dark)}
.about{display:grid;grid-template-columns:1.18fr .82fr;gap:42px;align-items:center;padding-top:10px}
.about-image-wrap{border-radius:24px;overflow:hidden;box-shadow:var(--shadow);position:relative}
.about-image-wrap:after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 55px rgba(251,247,239,.42)}
.about-image{height:430px;object-fit:cover;object-position:center}
.about-copy{padding:12px 10px}
.script-heading{font-family:"Allura",cursive;font-size:4.6rem;line-height:1;color:var(--sage-dark);margin:0;letter-spacing:.006em}
.about-copy p{font-size:1.06rem}
.thank-you{font-family:"Allura",cursive;color:var(--sage-dark);font-size:2.6rem!important;margin-bottom:0;line-height:1.05}
.heart{color:var(--sage-dark);font-size:1.5rem}
.contact-strip{
  margin-top:22px;border-top:1px solid var(--line);background:rgba(255,252,245,.75);
  display:grid;grid-template-columns:repeat(5,1fr);padding:20px max(24px,calc((100vw - 1240px)/2))
}
.contact-item{padding:8px 18px;display:flex;gap:12px;align-items:center;border-right:1px solid var(--line)}
.contact-item:last-child{border-right:0}
.contact-item strong{display:block;text-transform:uppercase;color:var(--sage-dark);font-family:"Cormorant Garamond",serif;font-size:1.1rem;letter-spacing:.025em}
.contact-item small{display:block}
.contact-icon{font-size:2rem;color:var(--sage-dark)}
.site-footer{
  background:linear-gradient(180deg,#607862,#4f6852);color:white;text-align:center;padding:20px;
  box-shadow:inset 0 1px rgba(255,255,255,.12)
}
.site-footer p{margin:3px 0}.site-footer a{color:white}.copyright{font-size:.86rem;opacity:.82;margin-top:10px!important}
@media(max-width:900px){
  .site-header{flex-direction:column}.brand{width:220px}.nav{flex-wrap:wrap;justify-content:center;gap:18px}
  .hero{grid-template-columns:1fr}.hero-copy{order:2;text-align:center;align-items:center}
  .hero-image-wrap{min-height:430px}.food-grid{grid-template-columns:repeat(2,1fr)}
  .service-strip{grid-template-columns:1fr}.service-item{border-right:0;border-bottom:1px solid var(--line)}
  .service-item:last-child{border-bottom:0}.about{grid-template-columns:1fr}.contact-strip{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:560px){
  .botanical{opacity:.24}.site-header{padding-inline:18px}.brand{width:190px}.nav{font-size:.84rem;gap:15px}
  .hero,.section{padding-inline:16px}.hero-image-wrap{min-height:330px}
  .hero-label{right:12px;bottom:12px;left:12px;padding:12px}.hero-label strong{font-size:1rem}
  .script{font-size:4.2rem}.food-grid{grid-template-columns:1fr}.food-card img{height:280px}
  .about-image{height:300px}.contact-strip{grid-template-columns:1fr}.contact-item{border-right:0}
}

.ordering-note{
  max-width:398px;
  margin:14px 0 0;
  color:var(--muted);
  font-size:.88rem;
  line-height:1.45;
  font-style:italic;
}
.about-copy p{
  margin:0 0 15px;
}
@media(max-width:900px){
  .ordering-note{text-align:center}
}


/* Accessibility and keyboard support */
.visually-hidden{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.skip-link{
  position:fixed;
  top:10px;
  left:10px;
  z-index:9999;
  background:#1f2d21;
  color:#fff;
  padding:12px 16px;
  border-radius:8px;
  transform:translateY(-160%);
  transition:transform .2s ease;
  font-weight:700;
}
.skip-link:focus{transform:translateY(0)}
a:focus-visible,
button:focus-visible,
[tabindex]:focus-visible{
  outline:3px solid #1f2d21;
  outline-offset:4px;
  border-radius:6px;
}
.nav a,
.site-footer a,
.contact-item{
  text-underline-offset:.22em;
}
.nav a:hover,
.nav a:focus-visible,
.site-footer a:hover,
.site-footer a:focus-visible{
  text-decoration:underline;
}
.contact-item:hover strong,
.contact-item:focus-visible strong{
  text-decoration:underline;
}
.hero-tagline,
.food-card p,
.about-copy p,
.ordering-note,
.contact-item small,
.service-item p{
  color:#454b44;
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}
@media (forced-colors: active){
  .button,.food-card,.service-strip,.contact-item{border:1px solid CanvasText}
}
@media (max-width: 900px){
  .contact-strip{grid-template-columns:1fr 1fr}
}
@media (max-width: 560px){
  .nav{line-height:1.5}
  .button{min-height:64px}
  .contact-strip{grid-template-columns:1fr}
}

/* Accessible HTML menu */
.menu-page{background:var(--cream)}
.menu-header{
  max-width:1100px;
  margin:0 auto;
  padding:18px 24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}
.menu-header img{width:170px;height:auto}
.menu-header nav{display:flex;gap:20px;flex-wrap:wrap}
.menu-header nav a{text-decoration:underline;text-underline-offset:.22em}
.menu-main{
  max-width:900px;
  margin:0 auto;
  padding:30px 24px 70px;
}
.menu-main h1{
  font-family:"Cormorant Garamond",serif;
  font-size:3rem;
  color:var(--sage-dark);
}
.menu-intro{
  font-size:1.1rem;
  max-width:760px;
}
.menu-section{
  margin-top:40px;
  padding-top:10px;
  border-top:2px solid var(--line);
}
.menu-section h2{
  font-family:"Cormorant Garamond",serif;
  color:var(--sage-dark);
  font-size:2rem;
}
.menu-item{
  display:grid;
  grid-template-columns:1fr auto;
  gap:20px;
  padding:14px 0;
  border-bottom:1px solid var(--line);
}
.menu-item h3{
  margin:0;
  font-size:1.08rem;
}
.menu-item p{margin:.35rem 0 0}
.price{font-weight:700;white-space:nowrap}
.menu-note{font-style:italic}
.allergy-note,.consumer-warning{
  margin-top:24px;
  padding:14px;
  background:#f3eee4;
  border-left:4px solid var(--sage-dark);
}
@media(max-width:700px){
  .menu-header{flex-direction:column}
  .menu-header nav{justify-content:center}
  .menu-item{grid-template-columns:1fr}
  .price{margin-top:0}
}
