
:root{--cream:#f4f1ea;--brown:#5a3d2e;--ink:#171310;--muted:#6f6258;--red:#9b3026}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#F6F1E9;font-family:"Avenir Next","Helvetica Neue",Arial,sans-serif;font-size:16px;font-weight:400;line-height:1.7}
a{color:inherit}.screen-reader{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.site-header{position:fixed;left:0;right:0;top:0;z-index:1000;background:var(--cream);transition:.25s;box-shadow:0 2px 5px rgba(0,0,0,0)}
.site-header.scrolled{box-shadow:0 2px 5px rgba(0,0,0,.2)}.header-inner{min-height:96px;padding:10px 15px;display:flex;align-items:center;max-width:none;margin:auto}
.logo{width:180px;height:auto;display:block;transition:.25s}.site-header.scrolled .header-inner{min-height:76px;padding-top:0;padding-bottom:0}.site-header.scrolled .logo{width:144px}
.nav{margin-left:auto;display:flex;align-items:center;gap:0;font-size:1rem;font-weight:500;text-transform:uppercase}.nav a{position:relative;margin:10px 0;padding:0 10px;text-decoration:none;line-height:20px;white-space:nowrap}
.nav a:before{content:"";position:absolute;right:100%;bottom:-3px;left:2px;height:3px;background:var(--brown);transition:right .3s}.nav a:hover:before,.nav a.active:before{right:2px}
.social{display:flex;margin-left:8px;gap:3px}.social a{width:32px;height:32px;margin:0;padding:6px;border-radius:50%;display:grid;place-items:center;font-size:14px}.social a:hover{background:#000;color:var(--cream)}
main.inner{padding-top:146px}.home-main{padding-top:96px}
.cover-video{position:relative;display:block;overflow:hidden;width:100%;height:min(56.25vw,calc(100svh - 94px));min-height:0;background:#000;text-align:center}.cover-video video{display:block;width:100%;height:100%;object-fit:contain;object-position:center}
.video-btn{position:absolute;bottom:20px;width:45px;height:45px;border:0;background:transparent;color:white;z-index:4;cursor:pointer;font-size:25px}.playbtn{left:25px}.soundbtn{left:70px}
.visit-strip{width:100%;padding:30px 0;background:var(--cream);font-size:clamp(.984rem,.984rem + ((1vw - 3.2px)*.86),1.5rem);font-weight:500;text-align:center}.visit-strip a{text-decoration:none}.pin{display:inline-block;width:16px;height:16px;margin-right:12px;border:4px solid #000;border-radius:50% 50% 50% 0;transform:rotate(-45deg);vertical-align:-1px}
.home-band{margin:60px 0}.home-row{display:grid;grid-template-columns:1fr 1fr;min-height:620px}.home-row .image{min-height:620px;overflow:hidden}.home-row img{display:block;width:100%;height:100%;object-fit:cover}.home-row .text{background:var(--cream);display:flex;flex-direction:column;justify-content:center;padding:70px clamp(42px,7vw,110px);text-align:center}.home-row h2{margin:0 0 20px;font-size:clamp(2.4rem,4vw,4rem);font-weight:500;line-height:1.1;text-transform:uppercase}.home-row h3{margin:0 auto 20px;font-size:clamp(1.25rem,2vw,2rem);font-weight:500;line-height:1.15}.home-row p{max-width:700px;margin:0 auto 24px;font-size:clamp(.95rem,1vw,1rem);font-weight:300}.home-row.reverse .image{order:2}.home-row.reverse .text{order:1}
.buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:20px;margin-top:18px}.outline-btn{padding:10px 30px;border:2px solid var(--brown);background:transparent;color:var(--brown);font-size:15px;font-weight:600;text-decoration:none;text-transform:uppercase}.outline-btn:hover{background:var(--brown);color:var(--cream)}
.classes-feature{width:100%;margin:60px 0;padding:80px 0}.classes-feature-inner{display:flex;align-items:center;justify-content:center;gap:80px;max-width:1200px;margin:auto;padding:0 24px}.classes-feature-image{position:relative;overflow:hidden;flex:0 0 42%}.classes-feature-image:after{content:"";position:absolute;z-index:0;top:28px;left:28px;width:100%;height:100%;background:var(--brown);border-radius:6px}.classes-feature-image img{position:relative;z-index:1;display:block;width:100%;aspect-ratio:5/4;object-fit:cover;border-radius:6px;box-shadow:0 30px 60px -20px rgba(26,17,12,.4)}.classes-feature-text{flex:0 0 38%}.eyebrow{display:inline-block;margin-bottom:22px;padding-bottom:14px;border-bottom:2px solid var(--brown);color:var(--brown);font-size:.8rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase}.classes-feature-text p{margin:0;line-height:1.85}
.gallery{display:grid;grid-auto-flow:dense;grid-template-columns:repeat(5,1fr);grid-template-rows:1fr 1fr}.gallery a{display:block;position:relative;overflow:hidden;min-height:220px}.gallery a:first-child{grid-column:span 2;grid-row:span 2}.gallery img{width:100%;height:100%;object-fit:cover;display:block}.gallery a:after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.15);box-shadow:inset 0 0 10px 3px rgba(0,0,0,.4);transition:.4s}.gallery a:hover:after{background:transparent}
.newsletter{position:relative;overflow:hidden;height:712px;padding:96px 7.5%;background:var(--brown);color:var(--cream)}.newsletter-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}.newsletter-inner{position:relative;z-index:1;height:520px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:rgba(40,25,18,.2)}.newsletter h2{margin:30px auto;font-size:4rem;font-weight:500;line-height:1.1;text-transform:uppercase}.newsletter p{font-size:1.3rem;font-weight:300}.newsletter form{width:min(600px,88vw)}.newsletter input{width:100%;padding:10px 5px;border:0;border-bottom:2px solid var(--cream);background:transparent;color:var(--cream);font:inherit;text-align:center;outline:0}.newsletter input::placeholder{color:var(--cream)}.newsletter button{margin:30px 0;padding:7px 50px;border:2px solid var(--cream);border-radius:5px;background:var(--cream);color:var(--brown);font:inherit;font-size:1.2rem;font-weight:600;text-transform:uppercase}
.map{height:520px;background:#171717;overflow:hidden}.map a{display:block;width:100%;height:100%}.map img{display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(1) invert(.02) brightness(.78) contrast(1.08)}
.footer{height:430px;background:var(--cream);display:flex;align-items:center;padding:64px 16px}.footer-grid{display:grid;grid-template-columns:repeat(3,1fr);width:100%;max-width:1280px;margin:auto}.footer-col{justify-self:center}.footer h2{margin:0;font-size:32px;font-weight:500;line-height:35px}.footer p{margin:10px 0 0;font-size:16px;line-height:27px}.footer a{text-decoration:none}.copyright{background:var(--cream);text-align:center;padding:14px 20px;border-top:1px solid rgba(0,0,0,.06);font-size:13px}
.page{max-width:1280px;margin:auto;padding:0 clamp(20px,4vw,54px) 95px}.page h1{margin:0 0 35px;text-align:center;font-size:clamp(2.6rem,4vw,3.5rem);font-weight:500;line-height:1.06;text-transform:uppercase}.page .intro{max-width:1000px;margin:0 auto 60px;text-align:center}.page .intro h2{font-size:24px;font-weight:500}.page p{font-size:1rem}.page h2{font-weight:500}
.event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:46px 30px}.event-card{position:relative}.event-card a{text-decoration:none}.event-photo{position:relative;overflow:hidden}.event-photo img{display:block;width:100%;aspect-ratio:1.28/1;object-fit:cover}.date-badge{position:absolute;top:0;left:16px;width:58px;text-align:center;box-shadow:0 2px 8px rgba(0,0,0,.22)}.date-badge .day{display:block;background:#6b4837;color:white;font-size:23px;line-height:36px;font-weight:600}.date-badge .mon{display:block;background:#a5382e;color:white;font-size:12px;line-height:24px;font-weight:700;text-transform:uppercase}.sold{position:absolute;left:0;right:0;bottom:0;padding:8px;background:#5a3d2e;color:#fff;text-align:center;font-weight:600}.event-card h3{font-size:24px;line-height:1.2;font-weight:500;margin:15px 0 4px}.price{color:#a4382e;font-size:17px;font-weight:600;margin-bottom:6px}.meta{font-size:14px;color:#3c3734}
.detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(350px,390px);gap:clamp(36px,5vw,72px);align-items:start}.detail h1{grid-column:1/-1;text-align:left}.detail-img img{width:100%;height:auto;display:block;border-radius:3px;box-shadow:0 24px 58px -35px rgba(46,31,22,.55)}.description{margin-top:32px;font-size:1.05rem;line-height:1.78}.booking{position:sticky;top:104px;padding:30px;border:1px solid #d9cbbb;border-radius:4px;background:#f6f2eb;box-shadow:0 28px 58px -42px rgba(45,29,20,.75)}.booking .label{color:#796254;font-size:.7rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase}.booking h2{font-size:1.65rem;font-weight:500;line-height:1.2}.booking .facts{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:20px 0;border-top:1px solid #d9cbbb;border-bottom:1px solid #d9cbbb}.booking .book{display:block;margin-top:24px;padding:13px 20px;background:var(--brown);color:#fff;text-align:center;text-decoration:none;font-weight:700;text-transform:uppercase}
.dark-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-bottom:46px}.dark-grid img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover}.copy{max-width:970px;margin:auto;font-size:1.05rem;line-height:1.8}.copy h2{font-size:29px}
.about-grid{display:grid;grid-template-columns:minmax(360px,.92fr) 1.25fr;gap:55px;align-items:start}.about-grid img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}.reviews{margin:85px auto 70px;max-width:1040px;text-align:center}.reviews h2,.featured h2{font-size:40px;font-weight:500;text-transform:uppercase}.quote{margin:42px auto;max-width:850px}.quote:before{content:"“";display:block;font-size:80px;line-height:.7;color:var(--brown)}.quote strong{display:block;margin-top:10px}.featured{text-align:center;margin-top:70px}.featured-logos{display:grid;grid-template-columns:repeat(5,1fr);gap:28px;align-items:center;margin-top:35px}.logo-box{height:90px;border:1px solid #e3ddd6;background:#F6F1E9;display:grid;place-items:center;color:#6b6159;font-weight:700;letter-spacing:.06em;font-size:13px}
.private-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:45px}.private-photos img{width:100%;aspect-ratio:1.1/1;object-fit:cover}.bullets{max-width:920px;margin:0 auto 45px}.subtitle{max-width:980px;margin:16px auto 55px;color:var(--brown);font-size:clamp(.9rem,1.45vw,1.2rem);font-weight:600;letter-spacing:.08em;line-height:1.55;text-align:center;text-transform:uppercase}
.form{max-width:850px;margin:auto}.form label{display:block;margin:18px 0 6px;font-weight:500}.form input,.form textarea,.form select{width:100%;min-height:50px;padding:11px 14px;border:1px solid #8f7a69;border-radius:2px;background:#F6F1E9;color:var(--ink);font:inherit}.form textarea{min-height:150px}.form button{margin-top:25px;padding:11px 36px;border:2px solid var(--brown);background:var(--brown);color:#fff;font:inherit;font-weight:600;text-transform:uppercase}
.faq{max-width:880px;margin:auto}.faq h2{margin:34px 0 5px;font-size:24px}.faq p{margin-top:0}
@media(max-width:1400px){.nav{font-size:.9rem}.nav a{padding:0 8px}}
@media(max-width:1200px){.nav{font-size:.75rem}.nav a{padding:0 4px}.newsletter h2{font-size:3.5rem}.map{height:450px}}
@media(max-width:1023px){.nav{font-size:.6rem}}
@media(max-width:767px){.header-inner{min-height:80px}.logo{width:180px}.nav a{display:none}.social{display:none}.home-main{padding-top:80px}.home-row{grid-template-columns:1fr}.home-row.reverse .image,.home-row.reverse .text{order:initial}.home-row .image{min-height:0}.home-row img{height:auto}.home-row .text{padding:45px 22px}.classes-feature{padding:56px 0}.classes-feature-inner{flex-direction:column;gap:40px}.classes-feature-image,.classes-feature-text{flex-basis:auto;width:100%}.classes-feature-image{max-width:420px}.gallery{grid-template-columns:1fr 1fr;grid-template-rows:auto}.gallery a,.gallery a:first-child{grid-column:auto;grid-row:auto;min-height:180px}.newsletter{height:600px;padding:40px 20px}.newsletter-inner{height:520px}.newsletter h2{font-size:2.8rem}.footer{height:auto}.footer-grid{grid-template-columns:1fr;gap:35px}.footer-col{justify-self:start}.event-grid,.dark-grid,.private-photos{grid-template-columns:1fr}.detail,.about-grid{grid-template-columns:1fr}.detail h1{grid-column:auto}.booking{position:static}.featured-logos{grid-template-columns:repeat(2,1fr)}main.inner{padding-top:120px}}

@font-face{font-family:"DM Sans";src:url("assets/dm-sans-regular.woff2") format("woff2");font-weight:400;font-style:normal}
@font-face{font-family:"DM Sans";src:url("assets/dm-sans-500.woff2") format("woff2");font-weight:500;font-style:normal}
@font-face{font-family:"DM Sans";src:url("assets/dm-sans-700.woff2") format("woff2");font-weight:700;font-style:normal}
body{font-family:"DM Sans",sans-serif;font-size:16px;font-weight:400;line-height:1.7}
.page{max-width:1280px;padding:84px 54px 112px}.page h1{font-family:"DM Sans",sans-serif;font-size:56px;font-weight:500;letter-spacing:-.025em;line-height:1.06}
.page .intro{max-width:1000px;margin:0 auto 60px}.page .intro h2{font-size:24px;font-weight:500}
.event-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:46px 30px}.event-card h3{font-size:24px;font-weight:500}
.pagination{display:flex;justify-content:center;gap:8px;margin:62px auto 0}.pagination a{display:grid;place-items:center;min-width:35px;height:35px;border:1px solid #c8bbb0;color:#5a3d2e;text-decoration:none}.pagination .current{background:#5a3d2e;color:#fff}
.about-page .copy h1{text-align:left;margin:0 0 30px}.about-page .copy p,.ditd-page .copy p{margin:0 0 19px}
.private-events-page{max-width:980px}.private-events-page .subtitle{margin:16px auto 72px}.private-copy{max-width:900px;margin:0 auto 42px}.private-copy li{margin:8px 0}
.gift-layout{display:grid;grid-template-columns:minmax(360px,.95fr) 1.05fr;gap:55px;align-items:start}.gift-layout img{width:100%;aspect-ratio:3/2;object-fit:cover;height:auto}
.contact-note{max-width:850px;margin:0 auto 35px}.faq-page .faq{max-width:880px}.faq-page .faq h2{margin:34px 0 5px;font-size:24px}.faq-page .faq p{margin:0 0 16px}.map{height:520px}
@media(max-width:767px){.page{padding:52px 22px 78px}.page h1{font-size:42px}.event-grid{grid-template-columns:1fr}.gift-layout{grid-template-columns:1fr}}

.reviews-live{max-width:1120px;margin:90px auto 95px;padding:0 28px;text-align:center}
.reviews-live h2,.featured-live h2{margin:0 0 56px;font-size:40px;font-weight:500;line-height:1.1;text-transform:uppercase}
.review-live{max-width:880px;margin:0 auto 62px}

.review-live p{margin:0 auto 14px;font-size:17px;line-height:1.8}
.review-name{font-size:15px;font-weight:700}
.featured-live{max-width:1180px;margin:0 auto 100px;padding:0 28px;text-align:center}
.featured-live-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:36px 42px;align-items:center}
.featured-live-item{height:110px;display:flex;align-items:center;justify-content:center}
.featured-live-item img{display:block;max-width:100%;max-height:90px;width:auto;height:auto;object-fit:contain}
.abi-location-map{scroll-margin-top:140px;background:#171717}
#map-v3-container{width:100%;height:520px;background:#171717}
#map-v3-container .leaflet-tile-pane{filter:grayscale(1) invert(.92) brightness(.78) contrast(1.08)}
@media(max-width:900px){.featured-live-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.featured-live-grid{grid-template-columns:repeat(2,1fr)}.reviews-live h2,.featured-live h2{font-size:34px}}

/* v2.3 Betty background alignment */
html,body{background:#F6F1E9;}
.page,.classes-feature,.reviews-live,.featured-live,.footer,.copyright{background:#F6F1E9;}
.home-row .text,.visit-strip,.site-header{background:#F6F1E9;}
.form input,.form textarea,.form select{background:#F6F1E9;}
.booking{background:#F6F1E9;}
.review-name{display:block;text-align:center;margin-top:14px;}
.footer-grid{grid-template-columns:1fr 1fr;max-width:900px;}

.social a{display:inline-flex;align-items:center;justify-content:center}
.social a svg{width:18px;height:18px;display:block}


/* Editable site-photo frames: the photo can zoom/pan, but can never paint outside its assigned slot. */
.site-photo-clip{position:relative;overflow:hidden;background:#e8e0d7;min-width:0}
.site-photo-clip-3x2{aspect-ratio:3/2}
.site-photo-clip-square{aspect-ratio:1/1}
.site-photo-clip>img{display:block;width:100%!important;height:100%!important;max-width:none;object-fit:cover}

/* Existing homepage photo slots also remain hard-clipped to their designed boxes. */
.home-row .image,
.classes-feature-image,
.gallery a,
.newsletter{overflow:hidden}

.checkout-addon-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid #d9cbbb}
.checkout-addon-row span{font-size:.9rem}.addon-qty{display:flex;align-items:center;gap:8px}
.addon-qty button{width:38px;height:38px;border:1px solid #5a3d2e;background:#F6F1E9;color:#5a3d2e;font-size:22px;cursor:pointer}
.addon-qty input{width:62px!important;min-height:38px!important;padding:5px!important;text-align:center}

/* v65 interior photo corrections */
.about-hero-large{max-width:1180px;margin:0 auto 54px;overflow:hidden}.about-hero-large img{display:block;width:100%;height:auto;max-height:760px;object-fit:cover;object-position:center}.about-copy-grid{display:block;max-width:970px;margin:auto}.private-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:0 auto 46px;max-width:980px}.private-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}@media(max-width:767px){.private-gallery{grid-template-columns:1fr}.about-hero-large{margin-bottom:36px}}

.about-group-photo{max-width:970px;margin:34px auto 48px;overflow:hidden}.about-group-photo img{display:block;width:100%;height:520px;object-fit:cover;object-position:center 48%}@media(max-width:767px){.about-group-photo{margin:26px auto 36px}.about-group-photo img{height:auto;aspect-ratio:4/3}}

/* v70 About Us ravioli photo */
.about-ravioli-photo{margin:42px 0 48px;width:100%;}
.about-ravioli-photo img{display:block;width:100%;height:auto;}

/* v74 — Dinners in the Dark: match live page header/photo presentation */
.ditd-page>h1{text-align:center;text-transform:uppercase;font-size:clamp(48px,4.8vw,82px);line-height:1.05;margin:10px 0 64px;font-weight:700;letter-spacing:-.02em}
.ditd-page .dark-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin:0 0 52px}
.ditd-page .dark-grid .site-photo-clip{aspect-ratio:1/1;overflow:hidden}
.ditd-page .dark-grid img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:767px){.ditd-page>h1{font-size:44px;margin-bottom:34px}.ditd-page .dark-grid{grid-template-columns:1fr;gap:18px}}

/* Gift Card — live-site layout match */
.gift-page{max-width:1640px;padding-top:32px}
.gift-breadcrumb{display:flex;align-items:center;gap:8px;margin:0 0 34px;font-size:18px;line-height:1.4}
.gift-breadcrumb a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.gift-layout{grid-template-columns:minmax(0,1.55fr) minmax(420px,.9fr);gap:54px;align-items:start}
.gift-page .gift-layout .copy h1{margin:0 0 42px;text-align:left;text-transform:none;font-size:56px;font-weight:500;letter-spacing:-.025em;line-height:1.05}
.gift-photo{width:100%;aspect-ratio:3/2;overflow:hidden}
.gift-page .gift-photo img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
.gift-intro{margin:0 0 42px;font-size:20px!important;line-height:1.7}
.gift-form{display:grid;gap:0}
.gift-form label{display:block;margin:0 0 10px;font-size:20px;line-height:1.3}
.gift-form input,.gift-form textarea{width:100%;box-sizing:border-box;margin:0 0 24px;padding:15px 18px;border:1px solid #c9c9c9;border-radius:7px;background:#fff;font:inherit;font-size:18px}
.gift-form input{min-height:54px}
.gift-form textarea{min-height:120px;resize:vertical}
.gift-form input::placeholder,.gift-form textarea::placeholder{color:#a9a9a9}
@media(max-width:900px){.gift-page{padding-top:28px}.gift-layout{grid-template-columns:1fr;gap:38px}.gift-page .gift-layout .copy h1{font-size:46px;margin-bottom:28px}.gift-breadcrumb{font-size:16px;margin-bottom:26px}}
