:root{--cream: #f7eedd;--cream-deep: #ede0c5;--cream-soft: #fbf5e7;--paper: #f3e6cf;--tomato: #c93023;--tomato-deep: #a3231a;--tomato-dk: #7d1812;--green: #1f6e3a;--green-deep: #145024;--green-br: #4a9258;--olive: #1f6e3a;--olive-deep: #145024;--olive-soft: #4a9258;--grape: #5b2a6e;--grape-deep: #3e1a4f;--gold: #c9a33d;--gold-br: #e2bd5b;--gold-deep: #a07d28;--char: #2d1f15;--char-soft: #5a4332;--char-mute: rgba(45, 31, 21, .65);--line: rgba(45, 31, 21, .15);--line-strong: rgba(45, 31, 21, .3);--display: "DM Serif Display", "Times New Roman", serif;--brush: "Pacifico", cursive;--script: "Allura", cursive;--body: "Lora", Georgia, serif;--sans: "Inter", system-ui, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background-color:var(--cream);color:var(--char);font-family:var(--body);font-size:18px;line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased;background-image:radial-gradient(at 15% 18%,rgba(183,51,39,.06) 0%,transparent 50%),radial-gradient(at 85% 82%,rgba(90,110,62,.07) 0%,transparent 55%),url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.92' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.18  0 0 0 0 0.12  0 0 0 0 0.08  0 0 0 0.10 0'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='0.4'/></svg>")}::selection{background:var(--tomato);color:var(--cream-soft)}a{color:inherit;text-decoration:none}img,svg{display:block;max-width:100%}.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:1rem clamp(1.25rem,4vw,3rem);background:linear-gradient(180deg,#f7eeddf7,#f7eedddb 65%,#f7eedd00);backdrop-filter:blur(6px)}.nav__brand{display:inline-flex;align-items:baseline;gap:.5rem;line-height:1}.nav__brand-mark{font-family:var(--brush);font-size:2.2rem;color:var(--tomato);letter-spacing:0;line-height:.9}.nav__brand-sub{font-family:var(--sans);font-weight:600;font-size:.6rem;letter-spacing:.32em;text-transform:uppercase;color:var(--olive);transform:translateY(-2px)}.nav__menu{display:flex;align-items:center;gap:clamp(1rem,2.4vw,2.2rem);font-family:var(--sans);font-weight:600;font-size:.72rem;letter-spacing:.28em;text-transform:uppercase}.nav__menu a{color:var(--char-soft);transition:color .25s ease;position:relative}.nav__menu a:after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:var(--tomato);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.nav__menu a:hover{color:var(--tomato)}.nav__menu a:hover:after{transform:scaleX(1)}@media(max-width:760px){.nav__menu{display:none}}.hero{position:relative;min-height:100vh;padding:clamp(6rem,14vh,9rem) clamp(1.5rem,5vw,4rem) 4rem;display:grid;grid-template-rows:1fr auto;overflow:hidden}.hero__content{position:relative;z-index:2;align-self:center;max-width:1100px;margin:0 auto;text-align:center}.hero__overline{font-family:var(--sans);font-weight:600;font-size:.72rem;letter-spacing:.55em;text-transform:uppercase;color:var(--olive);margin-bottom:1.6rem}.hero__overline:before,.hero__overline:after{content:"";display:inline-block;width:36px;height:1px;background:var(--olive-soft);vertical-align:middle;margin:0 1.3rem .3em}.hero__wordmark{font-family:var(--brush);font-size:clamp(5rem,15vw,11.5rem);color:var(--tomato);letter-spacing:0;line-height:.95;margin:0;text-shadow:0 2px 0 rgba(125,24,18,.08)}.hero__sub{font-family:var(--script);font-weight:400;font-size:clamp(2.2rem,5.5vw,4.2rem);color:var(--green);line-height:1;margin-top:.6rem;letter-spacing:0}.hero__rule{width:120px;height:1px;background:var(--gold);margin:2rem auto;position:relative}.hero__rule:before{content:"✦";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--cream);padding:0 .7rem;color:var(--gold);font-size:.95rem}.hero__tagline{font-family:var(--display);font-style:italic;font-size:clamp(1.15rem,2.1vw,1.55rem);color:var(--char-soft);max-width:620px;margin:0 auto;line-height:1.45}.hero__ctas{margin-top:2.4rem;display:inline-flex;gap:.85rem;flex-wrap:wrap;justify-content:center}.btn{display:inline-flex;align-items:center;gap:.6rem;padding:.95rem 1.8rem;font-family:var(--sans);font-weight:700;font-size:.76rem;letter-spacing:.24em;text-transform:uppercase;border-radius:2px;border:2px solid transparent;transition:transform .22s ease,background .22s ease,color .22s ease,box-shadow .22s ease,border-color .22s ease;white-space:nowrap;cursor:pointer}.btn--primary{background:var(--tomato);color:var(--cream-soft);border-color:var(--tomato-deep);box-shadow:0 12px 26px -10px #6e1f1973}.btn--primary:hover{background:var(--tomato-deep);transform:translateY(-2px);box-shadow:0 18px 34px -10px #6e1f198c}.btn--ghost{background:transparent;color:var(--char);border-color:var(--char-soft)}.btn--ghost:hover{background:var(--char);color:var(--cream-soft);border-color:var(--char);transform:translateY(-2px)}.hero__seal{position:absolute;top:clamp(5.5rem,11vh,7rem);right:clamp(1.5rem,4vw,3.2rem);width:clamp(95px,11vw,135px);height:clamp(95px,11vw,135px);z-index:3}.hero__meta{position:relative;z-index:2;display:flex;justify-content:center;align-items:end;gap:clamp(1rem,3vw,3rem);flex-wrap:wrap;font-family:var(--sans);font-weight:500;font-size:.7rem;letter-spacing:.32em;text-transform:uppercase;color:var(--char-soft);padding-top:3rem;text-align:center}.hero__meta-link{border-bottom:1px dotted rgba(45,31,21,.35);padding-bottom:2px;transition:color .2s ease,border-color .2s ease}.hero__meta-link:hover{color:var(--tomato);border-color:var(--tomato)}.hero__meta strong{color:var(--tomato);font-weight:700}.hero__flag{position:absolute;top:0;left:0;right:0;height:4px;display:flex;z-index:4}.hero__flag-stripe{flex:1}.hero__flag-stripe--green{background:var(--olive)}.hero__flag-stripe--white{background:var(--cream-soft)}.hero__flag-stripe--red{background:var(--tomato)}.hero__vine{position:absolute;pointer-events:none;z-index:1}.hero__vine--tl{left:0;top:4rem;width:clamp(140px,18vw,260px)}.hero__vine--br{right:0;bottom:3rem;width:clamp(130px,16vw,240px)}@media(max-width:600px){.hero__vine{opacity:.65}}section{position:relative}.container{max-width:1200px;margin:0 auto;padding:0 clamp(1.5rem,5vw,4rem)}.section-label{font-family:var(--sans);font-weight:600;font-size:.7rem;letter-spacing:.5em;text-transform:uppercase;color:var(--olive);display:flex;align-items:center;gap:.95rem;margin-bottom:1.5rem}.section-label:before{content:"";width:34px;height:1px;background:var(--olive-soft)}.display-title{font-family:var(--display);font-style:italic;font-size:clamp(2.6rem,5.8vw,4.8rem);line-height:1;color:var(--tomato-deep);letter-spacing:-.015em}.heritage{padding:clamp(5rem,12vh,9rem) 0;position:relative}.heritage__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,6vw,6rem);align-items:center}@media(max-width:880px){.heritage__grid{grid-template-columns:1fr}}.heritage__portrait{display:flex;flex-direction:column;align-items:center;margin:0}.heritage__frame{position:relative;display:inline-block;padding:14px;background:var(--cream-soft);border:1px solid var(--gold);box-shadow:0 36px 60px -28px #2d1f1573,0 0 0 1px #b88a3f2e inset;max-width:100%}.heritage__frame img{display:block;width:100%;height:auto;filter:sepia(.05) saturate(1.02)}.heritage__stamp{position:absolute;bottom:-22px;right:-22px;width:96px;height:96px;border-radius:999px;background:var(--tomato);color:var(--cream-soft);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:3px solid var(--cream-soft);box-shadow:0 0 0 1px var(--gold),0 14px 28px -10px #6e1f198c;transform:rotate(-8deg)}.heritage__stamp-since{font-family:var(--sans);font-weight:700;font-size:.6rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-br);line-height:1;margin-bottom:.25rem}.heritage__stamp-year{font-family:var(--display);font-style:italic;font-size:1.7rem;line-height:1}.heritage__portrait figcaption{text-align:center;margin-top:2.5rem}.heritage__caption-name{font-family:var(--display);font-style:italic;font-size:clamp(1.5rem,2.2vw,1.95rem);color:var(--tomato-deep);line-height:1.1}.heritage__caption-role{font-family:var(--sans);font-weight:600;font-size:.7rem;letter-spacing:.38em;text-transform:uppercase;color:var(--char-soft);margin-top:.6rem}.heritage__body p{font-size:1.1rem;line-height:1.7;margin-bottom:1.2rem;color:var(--char-soft)}.heritage__body p:first-of-type:first-letter{font-family:var(--display);font-style:italic;font-size:4.8rem;line-height:.85;float:left;margin:.32em .18em -.1em 0;color:var(--tomato)}.heritage__signoff{font-family:var(--script);color:var(--tomato);font-size:2.4rem;margin-top:1.5rem;display:block;line-height:1}.menu{padding:clamp(5rem,12vh,9rem) 0;background:var(--paper);background-image:linear-gradient(180deg,transparent 0%,rgba(110,31,25,.025) 50%,transparent 100%);position:relative;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.menu:before,.menu:after{content:"";position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold) 30%,var(--gold) 70%,transparent);opacity:.5}.menu:before{top:0}.menu:after{bottom:0}.menu__header{text-align:center;max-width:720px;margin:0 auto 4rem}.menu__header .section-label{justify-content:center}.menu__header .section-label:after{content:"";width:34px;height:1px;background:var(--olive-soft)}.menu__intro{font-family:var(--display);font-style:italic;font-size:1.2rem;color:var(--char-soft);max-width:580px;margin:1.4rem auto 0;line-height:1.5}.menu__categories{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,5vw,5rem)}@media(max-width:760px){.menu__categories{grid-template-columns:1fr}}.menu__category{margin-bottom:3rem}.menu__cat-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:1.6rem;padding-bottom:.9rem;border-bottom:1px solid var(--gold)}.menu__cat-label{font-family:var(--brush);font-size:2.1rem;color:var(--tomato);line-height:.9;letter-spacing:0}.menu__cat-sub{font-family:var(--script);font-size:1.7rem;color:var(--green);line-height:1}.menu__cat-subtitle{font-family:var(--body);font-style:italic;font-size:.92rem;color:var(--char-soft);margin-top:-.8rem;margin-bottom:1.4rem;line-height:1.5}.menu__item{padding:1rem 0;border-bottom:1px dotted var(--line);transition:padding-left .3s ease}.menu__item:last-child{border-bottom:none}.menu__item:hover{padding-left:.5rem}.menu__item-head{display:flex;align-items:baseline;gap:.55rem;margin-bottom:.25rem;flex-wrap:wrap}.menu__item-name{font-family:var(--display);font-style:italic;font-size:1.2rem;color:var(--char);flex-shrink:0}.menu__item-leader{flex:1;border-bottom:1px dotted rgba(45,31,21,.32);margin:0 .35rem;transform:translateY(-4px);min-width:18px}.menu__item-price{font-family:var(--display);font-style:italic;font-size:1.15rem;color:var(--tomato-deep);white-space:nowrap}.menu__item-desc{font-family:var(--body);font-style:italic;font-size:.95rem;color:var(--char-soft);line-height:1.5;max-width:95%}.menu__signature{display:inline-block;font-family:var(--sans);font-weight:700;font-size:.56rem;letter-spacing:.26em;text-transform:uppercase;color:var(--cream-soft);background:var(--olive);padding:.22rem .55rem;border-radius:2px;margin-left:.5rem;vertical-align:middle}@media(max-width:1099px){.menu__signature{display:block;margin-left:0;margin-top:.4rem;width:max-content;max-width:100%}}.menu__cta{text-align:center;margin-top:3rem;padding-top:3rem;border-top:1px solid var(--line)}.menu__cta-note{font-family:var(--display);font-style:italic;color:var(--char-soft);font-size:1.1rem;margin-bottom:1.2rem}.menu__cta-buttons{display:inline-flex;gap:.85rem;flex-wrap:wrap;justify-content:center}.testimonials{padding:clamp(5rem,12vh,9rem) 0;background:linear-gradient(180deg,var(--tomato-dk) 0%,var(--tomato-deep) 100%);color:var(--cream);position:relative;overflow:hidden}.testimonials:before{content:"";position:absolute;inset:0;background:radial-gradient(at 25% 35%,rgba(216,168,87,.18) 0%,transparent 50%),url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.92' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.96  0 0 0 0 0.86  0 0 0 0 0.72  0 0 0 0.10 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");pointer-events:none}.testimonials>*{position:relative;z-index:1}.testimonials .section-label{color:var(--gold-br)}.testimonials .section-label:before{background:var(--gold-br)}.testimonials__title{font-family:var(--display);font-style:italic;font-size:clamp(2.4rem,5vw,4rem);line-height:1.05;margin-bottom:4rem;max-width:700px;color:var(--cream-soft)}.quotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:3rem}.quote{position:relative;padding-top:2.4rem}.quote:before{content:"“";position:absolute;top:-1.2rem;left:-.3rem;font-family:var(--display);font-size:5.5rem;line-height:1;color:var(--gold-br);opacity:.85}.quote__text{font-family:var(--display);font-style:italic;font-size:1.25rem;line-height:1.5;margin-bottom:1.4rem;color:var(--cream-soft)}.quote__author{font-family:var(--sans);font-weight:700;font-size:.7rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-br)}.quote__source{font-family:var(--body);font-style:italic;font-size:.92rem;color:#f7eedd99;margin-top:.3rem}.quote__stars{color:var(--gold-br);margin-bottom:.6rem;font-size:.9rem;letter-spacing:.18em}.visit{padding:clamp(5rem,12vh,9rem) 0}.visit__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,6vw,5rem);align-items:start}@media(max-width:880px){.visit__grid{grid-template-columns:1fr}}.visit__title{font-family:var(--display);font-style:italic;font-size:clamp(2.6rem,5.5vw,4.4rem);line-height:1.05;color:var(--tomato-deep);margin-bottom:1.4rem;letter-spacing:-.015em}.visit__intro{font-family:var(--display);font-style:italic;color:var(--char-soft);font-size:1.15rem;line-height:1.55;margin-bottom:2.4rem;max-width:480px}.visit__details>div{padding:1.25rem 0;border-bottom:1px solid var(--line)}.visit__details>div:first-child{border-top:1px solid var(--line)}.visit__details dt{font-family:var(--sans);font-weight:700;font-size:.66rem;letter-spacing:.42em;text-transform:uppercase;color:var(--olive);margin-bottom:.55rem}.visit__details dd{font-family:var(--display);font-style:italic;font-size:1.35rem;color:var(--char);line-height:1.4}.visit__details dd a{transition:color .2s ease}.visit__details dd a:hover{color:var(--tomato)}.visit__details .note{display:block;font-family:var(--body);font-style:italic;font-size:.92rem;color:var(--char-soft);margin-top:.35rem}.visit__address{display:inline-block}.visit__directions{display:inline-flex;align-items:center;gap:.4rem;margin-top:.65rem;font-family:var(--sans);font-weight:700;font-size:.62rem;letter-spacing:.32em;text-transform:uppercase;color:var(--tomato);border-bottom:1px solid var(--tomato);padding-bottom:3px;transition:color .2s ease,border-color .2s ease}.visit__address:hover .visit__directions{color:var(--olive);border-color:var(--olive)}.visit__card{background:var(--cream-deep);padding:clamp(2rem,4vw,3rem);position:relative;border:1px solid var(--gold);box-shadow:0 24px 50px -28px #2d1f1559}.visit__card:before,.visit__card:after{content:"";position:absolute;width:32px;height:32px;border:1px solid var(--gold)}.visit__card:before{top:8px;left:8px;border-right:none;border-bottom:none}.visit__card:after{bottom:8px;right:8px;border-left:none;border-top:none}.visit__card-overline{font-family:var(--sans);font-weight:700;font-size:.62rem;letter-spacing:.42em;text-transform:uppercase;color:var(--olive);text-align:center;margin-bottom:.8rem}.visit__card-title{font-family:var(--display);font-style:italic;font-size:1.85rem;color:var(--tomato-deep);text-align:center;margin-bottom:1.5rem;line-height:1.15}.visit__card p{font-family:var(--body);text-align:center;color:var(--char-soft);line-height:1.6;margin-bottom:1.5rem;font-size:1.02rem}.visit__card-phone{display:block;text-align:center;font-family:var(--display);font-style:italic;font-size:2.2rem;color:var(--tomato);margin:1.4rem 0 .4rem;line-height:1}.visit__card-phone:hover{color:var(--tomato-deep)}.visit__hours{text-align:center;font-family:var(--sans);font-weight:500;font-size:.7rem;letter-spacing:.32em;text-transform:uppercase;color:var(--char-soft);margin-top:1.4rem;padding-top:1.4rem;border-top:1px dotted var(--line-strong);line-height:1.8}footer{background:var(--char);color:var(--cream-deep);padding:4rem 0 2rem;text-align:center}footer .container{display:flex;flex-direction:column;align-items:center;gap:1.4rem}.footer__brand{font-family:var(--brush);font-size:3rem;color:var(--tomato);line-height:.9}.footer__brand-sub{font-family:var(--script);font-size:2.1rem;color:var(--green-br);margin-top:.2rem;line-height:1}.footer__tag{font-family:var(--display);font-style:italic;color:var(--gold-br);font-size:1rem}.footer__links{display:flex;gap:1.8rem;flex-wrap:wrap;justify-content:center;font-family:var(--sans);font-weight:600;font-size:.7rem;letter-spacing:.32em;text-transform:uppercase;margin-top:.4rem}.footer__links a:hover{color:var(--gold-br)}.footer__rule{width:60%;max-width:380px;height:1px;background:linear-gradient(90deg,transparent,rgba(216,168,87,.5),transparent);margin:.4rem 0}.footer__copy{font-family:var(--body);font-style:italic;font-size:.84rem;color:#f7eedd80}.call-fab{display:none;position:fixed;right:clamp(1rem,2.5vw,1.75rem);bottom:clamp(1rem,2.5vw,1.75rem);z-index:55;align-items:center;gap:.7rem;padding:.85rem 1.3rem .85rem 1.05rem;background:var(--tomato);color:var(--cream-soft);border:2px solid var(--tomato-deep);border-radius:999px;box-shadow:0 16px 30px -10px #6e1f1980,0 4px 10px -2px #2d1f1526;transition:transform .22s ease,box-shadow .22s ease,background .22s ease;animation:fabIn .7s .5s cubic-bezier(.16,.7,.3,1) backwards}.call-fab:hover{background:var(--tomato-deep);transform:translateY(-3px)}.call-fab__icon{flex-shrink:0;padding:.4rem;background:#f7eedd2e;border:1px solid rgba(247,238,221,.3);border-radius:999px;box-sizing:content-box;width:18px;height:18px}.call-fab__text{display:flex;flex-direction:column;line-height:1.1;text-align:left}.call-fab__label{font-family:var(--sans);font-weight:600;font-size:.56rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-br);margin-bottom:2px}.call-fab__num{font-family:var(--display);font-style:italic;font-size:1.05rem}@keyframes fabIn{0%{opacity:0;transform:translateY(20px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}@media(min-width:761px){.call-fab{display:inline-flex}}.mobile-bar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:60;padding:.55rem .65rem calc(.55rem + env(safe-area-inset-bottom,0px));gap:.5rem;background:linear-gradient(180deg,#f7eeddd9,#f7eeddfa 40%);backdrop-filter:blur(8px);border-top:1px solid var(--gold)}.mobile-bar__item{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.9rem .7rem;font-family:var(--sans);font-weight:700;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;border:2px solid}.mobile-bar__item--menu{background:transparent;color:var(--char);border-color:var(--char)}.mobile-bar__item--call{background:var(--tomato);color:var(--cream-soft);border-color:var(--tomato-deep)}@media(max-width:760px){.mobile-bar{display:flex}footer{padding-bottom:calc(6.5rem + env(safe-area-inset-bottom,0px))}}.reveal{opacity:0;transform:translateY(20px);transition:opacity 1.1s cubic-bezier(.16,.7,.3,1),transform 1.1s cubic-bezier(.16,.7,.3,1)}.reveal.is-in{opacity:1;transform:translateY(0)}.hero__overline,.hero__wordmark,.hero__sub,.hero__rule,.hero__tagline,.hero__ctas,.hero__meta,.hero__seal{opacity:0;animation:rise 1.1s cubic-bezier(.16,.7,.3,1) forwards}.hero__overline{animation-delay:.15s}.hero__wordmark{animation-delay:.3s}.hero__sub{animation-delay:.5s}.hero__rule{animation-delay:.7s}.hero__tagline{animation-delay:.85s}.hero__ctas{animation-delay:1s}.hero__meta{animation-delay:1.15s}.hero__seal{animation:rise 1.3s .6s cubic-bezier(.16,.7,.3,1) forwards}@keyframes rise{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.hero__seal{animation:none!important}.reveal{opacity:1;transform:none}}
