:root{
  --blue:#0a5eaa;
  --blue-dark:#063f74;
  --blue-soft:#dcecf8;
  --paper:#fffdf6;
  --cream:#f7f0df;
  --ink:#173047;
  --red:#c84f3d;
  --olive:#6f7d3c;
  --line:rgba(23,48,71,.17);
  --shadow:0 18px 50px rgba(18,45,66,.15);
  --serif:Georgia,"Times New Roman",serif;
  --sans:Arial,Helvetica,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--paper)}
body{margin:0;color:var(--ink);font-family:var(--sans);background:
  radial-gradient(circle at 10% 15%,rgba(10,94,170,.035) 0 1px,transparent 1.5px) 0 0/18px 18px,
  var(--paper);line-height:1.6;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button,input,textarea,select{font:inherit}
.wrap{width:min(1180px,calc(100% - 42px));margin-inline:auto}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* rating strip */
.rating-strip{background:var(--blue-dark);color:#fff;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase}
.rating-strip .wrap{min-height:36px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.rating{font-weight:800;display:flex;gap:10px;align-items:center}
.rating .stars{letter-spacing:.07em;color:#fff}
.lang-mini{display:flex;align-items:center;gap:7px;font-weight:800}
.lang-mini a{opacity:.62}.lang-mini a.active{opacity:1;border-bottom:1px solid currentColor}

/* header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,253,246,.94);backdrop-filter:blur(16px);border-bottom:1px solid rgba(10,94,170,.15)}
.navbar{height:88px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:34px}
.brand{display:flex;align-items:center;gap:12px;min-width:max-content}
.brand-mark{width:52px;height:52px;border:2px solid var(--blue);border-radius:50% 46% 48% 45%;display:grid;place-items:center;transform:rotate(-4deg);position:relative;background:#fff}
.brand-mark:before,.brand-mark:after{content:"";position:absolute;border:2px solid var(--blue);border-left:0;border-right:0;border-radius:50%;width:28px;height:9px}
.brand-mark:before{transform:rotate(8deg);top:15px}.brand-mark:after{transform:rotate(-8deg);bottom:14px}
.brand-text strong{display:block;font-family:var(--serif);font-size:1.25rem;line-height:1;letter-spacing:.07em;color:var(--blue-dark)}
.brand-text small{display:block;font-size:.64rem;text-transform:uppercase;letter-spacing:.2em;color:var(--olive);margin-top:5px}
.desktop-nav{display:flex;align-items:center;justify-content:center;gap:6px}
.desktop-nav a{padding:11px 13px;font-size:.83rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;position:relative}
.desktop-nav a:nth-child(2){transform:rotate(-1deg)}
.desktop-nav a:nth-child(4){transform:rotate(1deg)}
.desktop-nav a:hover:after{content:"";position:absolute;left:10px;right:10px;bottom:5px;height:5px;border-bottom:2px solid var(--red);border-radius:50%}
.reserve-btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 18px;border:2px solid var(--blue);background:var(--blue);color:#fff;font-weight:800;text-transform:uppercase;letter-spacing:.06em;font-size:.76rem;box-shadow:4px 4px 0 var(--cream);transition:.2s ease}
.reserve-btn:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--cream)}
.mobile-menu{display:none;position:relative}
.mobile-menu summary{list-style:none;cursor:pointer;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:var(--blue-dark)}
.mobile-menu summary::-webkit-details-marker{display:none}
.mobile-menu .panel{position:absolute;right:0;top:40px;width:min(300px,82vw);padding:20px;background:var(--paper);border:2px solid var(--blue);box-shadow:var(--shadow);display:grid;gap:8px}
.mobile-menu .panel a{padding:9px 4px;font-weight:800}

/* hero / postcard concept */
.hero{padding:44px 0 0;position:relative;background:linear-gradient(180deg,var(--paper),#fff 65%)}
.hero:after{content:"";display:block;height:42px;margin-top:38px;background:
 conic-gradient(from 90deg at 2px 2px,var(--blue) 0 25%,#fff 0 50%,var(--blue) 0 75%,#fff 0) 0 0/22px 22px;
 opacity:.96;border-top:4px solid var(--blue);border-bottom:4px solid var(--blue)}
.hero-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:58px;align-items:center}
.postcard{background:#fffef9;border:1px solid rgba(23,48,71,.18);box-shadow:var(--shadow);padding:58px 48px 48px;position:relative;transform:rotate(-1deg)}
.postcard:before{content:"";position:absolute;top:-14px;left:39%;width:118px;height:32px;background:rgba(226,213,172,.67);transform:rotate(2deg);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.postcard .stamp{position:absolute;right:28px;top:25px;width:82px;height:82px;border:2px dashed var(--red);color:var(--red);border-radius:50%;display:grid;place-items:center;text-align:center;font-size:.62rem;line-height:1.2;font-weight:900;letter-spacing:.08em;text-transform:uppercase;transform:rotate(10deg)}
.eyebrow{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--olive);font-weight:900;margin-bottom:17px}
.hero h1{font-family:var(--serif);font-size:clamp(3.2rem,6.2vw,6.3rem);line-height:.91;margin:0;letter-spacing:-.045em;color:var(--blue-dark);max-width:8ch}
.hero h1 em{font-weight:400;color:var(--red);display:block;font-size:.62em;letter-spacing:-.03em;transform:rotate(-2deg);margin-top:12px}
.hero-copy{font-family:var(--serif);font-size:1.17rem;max-width:42ch;margin:28px 0 26px;color:#3f5263}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 17px;border:2px solid var(--blue);font-size:.78rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;background:var(--blue);color:#fff;transition:.2s ease}
.btn:hover{transform:translateY(-2px)}
.btn.paper{background:transparent;color:var(--blue);border-style:dashed}
.scribble{margin-top:24px;color:var(--red);font-family:var(--serif);font-style:italic;font-size:.95rem;transform:rotate(-1deg)}
.photo-board{min-height:640px;position:relative}
.photo{position:absolute;background:#fff;padding:10px 10px 40px;box-shadow:var(--shadow)}
.photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.92) contrast(.98)}
.photo figcaption{font-family:var(--serif);font-style:italic;font-size:.9rem;color:#53626d;margin-top:10px;text-align:center}
.photo.one{width:61%;height:480px;right:4%;top:22px;transform:rotate(3deg)}
.photo.two{width:43%;height:330px;left:0;bottom:6px;transform:rotate(-5deg);z-index:2}
.photo.three{width:34%;height:250px;right:3%;bottom:0;transform:rotate(6deg);z-index:3}
.photo:before{content:"";position:absolute;top:-11px;left:50%;width:90px;height:25px;background:rgba(223,210,171,.72);transform:translateX(-50%) rotate(-2deg);z-index:4}

/* shared headings */
.section{padding:105px 0}
.section-kicker{color:var(--red);font-family:var(--serif);font-style:italic;font-size:1rem;margin-bottom:8px}
.section-title{font-family:var(--serif);font-size:clamp(2.35rem,4.6vw,4.8rem);line-height:.98;margin:0;color:var(--blue-dark);letter-spacing:-.035em}
.section-intro{max-width:650px;margin:22px 0 0;color:#526474;font-size:1.02rem}
.center{text-align:center}.center .section-intro{margin-inline:auto}

/* daily dishes */
.today{position:relative;background:#fff}
.today:before,.today:after{content:"";position:absolute;width:160px;height:95px;border:3px solid var(--olive);border-radius:50%;opacity:.15}
.today:before{left:-70px;top:120px;transform:rotate(24deg)}.today:after{right:-70px;bottom:90px;transform:rotate(-16deg)}
.dish-grid{margin-top:58px;display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.dish{position:relative;text-align:center;padding:0 18px 28px}
.dish:nth-child(2){margin-top:35px}.dish:nth-child(3){margin-top:-12px}
.dish-photo{width:min(290px,90%);aspect-ratio:1;border-radius:50%;margin:0 auto 24px;padding:9px;border:2px dashed var(--blue);background:#fff;box-shadow:0 14px 32px rgba(16,66,98,.12);position:relative}
.dish-photo:after{content:"";position:absolute;inset:12px;border-radius:50%;border:1px solid rgba(255,255,255,.8);pointer-events:none}
.dish-photo img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.dish-no{position:absolute;top:8px;left:8%;background:var(--red);color:#fff;width:46px;height:46px;border-radius:48% 52% 45% 55%;display:grid;place-items:center;font-family:var(--serif);font-style:italic;font-weight:700;transform:rotate(-7deg)}
.dish h3{font-family:var(--serif);font-size:1.65rem;margin:0 0 7px;color:var(--blue-dark)}
.dish p{max-width:30ch;margin:0 auto;color:#61717f;font-size:.94rem}
.dish strong{display:inline-block;margin-top:11px;color:var(--red);font-family:var(--serif);font-size:1.15rem}
.note-line{margin:45px auto 0;max-width:800px;border-top:2px dashed rgba(10,94,170,.25);position:relative}
.note-line span{position:absolute;left:50%;top:0;transform:translate(-50%,-50%) rotate(-2deg);background:#fff;padding:4px 16px;color:var(--olive);font-family:var(--serif);font-style:italic}

/* pass around tablecloth */
.tablecloth{padding:100px 0;background:
 linear-gradient(rgba(5,63,116,.91),rgba(5,63,116,.91)),
 repeating-linear-gradient(0deg,transparent 0 34px,rgba(255,255,255,.08) 34px 36px),
 repeating-linear-gradient(90deg,transparent 0 34px,rgba(255,255,255,.08) 34px 36px),var(--blue-dark);color:#fff;position:relative;overflow:hidden}
.tablecloth:before{content:"";position:absolute;left:-70px;top:-80px;width:220px;height:220px;border:18px solid rgba(255,255,255,.08);border-radius:50%}
.tablecloth .section-title{color:#fff}.tablecloth .section-kicker{color:#f5c4b9}.tablecloth .section-intro{color:rgba(255,255,255,.78)}
.share-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:center;margin-top:48px}
.stack{min-height:550px;position:relative}
.stack-card{position:absolute;background:var(--paper);padding:12px 12px 52px;box-shadow:0 25px 45px rgba(0,0,0,.28);color:var(--ink)}
.stack-card img{width:100%;height:100%;object-fit:cover}
.stack-card figcaption{text-align:center;font-family:var(--serif);font-style:italic;margin-top:11px}
.stack-card.a{width:57%;height:410px;left:4%;top:0;transform:rotate(-5deg)}
.stack-card.b{width:54%;height:390px;right:2%;top:120px;transform:rotate(6deg)}
.share-list{display:grid;gap:14px}
.share-item{background:rgba(255,255,255,.08);border:1px dashed rgba(255,255,255,.35);padding:17px 18px;display:flex;gap:16px;align-items:flex-start}
.share-item b{font-family:var(--serif);font-size:1.18rem;display:block;margin-bottom:3px}.share-item span{color:rgba(255,255,255,.72);font-size:.91rem}.share-item i{font-family:var(--serif);font-size:1.25rem;color:#ffd2c9;font-style:normal}

/* menu notebook */
.menu-section{background:var(--cream);position:relative}
.menu-section:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 33px,rgba(10,94,170,.055) 33px 34px);pointer-events:none}
.menu-paper{position:relative;background:#fffdf8;border-left:7px solid var(--red);box-shadow:var(--shadow);padding:54px 56px;margin-top:48px;transform:rotate(.35deg)}
.menu-paper:after{content:"";position:absolute;right:22px;top:20px;width:70px;height:70px;border:2px dashed rgba(10,94,170,.35);border-radius:50%}
.menu-columns{display:grid;grid-template-columns:1fr 1fr;gap:56px}
.menu-group h3{font-family:var(--serif);font-size:1.65rem;color:var(--blue-dark);margin:0 0 18px;padding-bottom:8px;border-bottom:2px dashed rgba(10,94,170,.25)}
.menu-row{display:grid;grid-template-columns:1fr auto;gap:14px;margin:0 0 16px;align-items:start}
.menu-row b{font-family:var(--serif);font-size:1.02rem}.menu-row small{display:block;color:#697884;margin-top:2px}.menu-row strong{color:var(--red);font-family:var(--serif)}
.menu-actions{margin-top:30px;display:flex;flex-wrap:wrap;gap:12px}
.pdf-details{margin-top:25px;border-top:1px dashed rgba(10,94,170,.3);padding-top:22px}
.pdf-details summary{cursor:pointer;color:var(--blue);font-weight:900;text-transform:uppercase;letter-spacing:.07em;font-size:.78rem}
.pdf-frame{width:100%;height:620px;border:2px solid var(--blue);margin-top:20px;background:#fff}

/* story postcard */
.story{background:#fff}
.story-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:70px;align-items:center}
.story-collage{min-height:610px;position:relative}
.story-collage .big{position:absolute;left:0;top:0;width:72%;height:500px;border:10px solid #fff;box-shadow:var(--shadow);transform:rotate(-2deg);object-fit:cover}
.story-collage .small{position:absolute;right:0;bottom:0;width:48%;height:320px;border:10px solid #fff;box-shadow:var(--shadow);transform:rotate(5deg);object-fit:cover}
.story-card{border:1px solid var(--line);padding:42px 38px;background:var(--paper);position:relative;box-shadow:9px 9px 0 var(--blue-soft)}
.story-card:before{content:"A little note from us";position:absolute;top:-18px;left:28px;background:var(--red);color:#fff;padding:5px 13px;font-family:var(--serif);font-style:italic;transform:rotate(-2deg)}
.story-card p{font-family:var(--serif);font-size:1.12rem;color:#445968}
.story-signature{color:var(--blue);font-family:var(--serif);font-style:italic;font-size:1.35rem;transform:rotate(-2deg);display:inline-block;margin-top:10px}

/* quote */
.quote-band{padding:72px 0;background:var(--red);color:#fff;text-align:center;position:relative;overflow:hidden}
.quote-band:before,.quote-band:after{content:"~";position:absolute;font-family:var(--serif);font-size:12rem;color:rgba(255,255,255,.08);top:-55px}.quote-band:before{left:2%}.quote-band:after{right:3%;transform:rotate(180deg)}
.quote-band blockquote{font-family:var(--serif);font-size:clamp(2.2rem,5vw,5rem);line-height:1;margin:0;font-style:italic}.quote-band p{margin:13px 0 0;letter-spacing:.15em;text-transform:uppercase;font-size:.72rem;font-weight:900}

/* visit */
.visit{background:var(--paper)}
.visit-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;align-items:start;margin-top:50px}
.visit-board{background:var(--blue);color:#fff;padding:40px;box-shadow:var(--shadow);transform:rotate(-1deg);position:relative}
.visit-board:before{content:"";position:absolute;top:-12px;right:70px;width:100px;height:25px;background:rgba(224,210,169,.72);transform:rotate(4deg)}
.visit-board h3{font-family:var(--serif);font-size:2rem;margin:0 0 22px}.info-row{padding:15px 0;border-bottom:1px dashed rgba(255,255,255,.28)}.info-row:last-child{border-bottom:0}.info-row small{display:block;text-transform:uppercase;letter-spacing:.13em;opacity:.65;font-size:.66rem}.info-row b{font-family:var(--serif);font-size:1.08rem}
.visit-photo{height:500px;position:relative}.visit-photo img{width:100%;height:100%;object-fit:cover;border:10px solid #fff;box-shadow:var(--shadow)}
.visit-photo .map-tag{position:absolute;left:-24px;bottom:28px;background:var(--paper);border:2px solid var(--red);padding:15px 18px;font-family:var(--serif);font-style:italic;color:var(--red);transform:rotate(-3deg);box-shadow:5px 5px 0 rgba(10,94,170,.12)}

/* FAQ */
.faq{background:#fff;padding-top:85px;padding-bottom:90px}
.faq-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:55px;margin-top:45px}
.faq details{border-top:1px dashed rgba(10,94,170,.28);padding:18px 0}.faq details:last-child{border-bottom:1px dashed rgba(10,94,170,.28)}.faq summary{cursor:pointer;font-family:var(--serif);font-size:1.12rem;font-weight:700;color:var(--blue-dark);display:flex;justify-content:space-between;gap:20px;list-style:none}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";color:var(--red);font-family:var(--sans);font-size:1.35rem}.faq details[open] summary:after{content:"−"}.faq details p{color:#627381;margin:10px 35px 0 0}

/* social */
.social-note{padding:65px 0;background:var(--cream)}
.social-inner{display:flex;justify-content:space-between;align-items:center;gap:30px}
.social-copy strong{font-family:var(--serif);font-size:1.8rem;color:var(--blue-dark);display:block}.social-copy span{color:#697884}
.social-links{display:flex;gap:10px;flex-wrap:wrap}.social-links a{min-width:48px;height:48px;border:2px solid var(--blue);display:grid;place-items:center;color:var(--blue);font-weight:900;font-size:.73rem;border-radius:50%;transition:.2s}.social-links a:hover{background:var(--blue);color:#fff;transform:rotate(-6deg)}

/* footer */
footer{background:#082f53;color:#fff;padding:60px 0 28px;position:relative}
footer:before{content:"";position:absolute;top:0;left:0;right:0;height:14px;background:repeating-linear-gradient(90deg,var(--red) 0 18px,#fff 18px 36px,var(--blue) 36px 54px)}
.footer-grid{display:grid;grid-template-columns:1.2fr .8fr 1fr 1fr;gap:45px}
.footer-brand strong{font-family:var(--serif);font-size:2rem}.footer-brand p{color:rgba(255,255,255,.65);max-width:28ch}.footer-col h4{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:#bcd9ef;margin:5px 0 15px}.footer-col a,.footer-col span{display:block;color:rgba(255,255,255,.76);margin:7px 0;font-size:.9rem}.footer-col a:hover{color:#fff}.footer-bottom{margin-top:42px;padding-top:20px;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;gap:20px;color:rgba(255,255,255,.5);font-size:.75rem}

/* responsive */
@media(max-width:1050px){
  .desktop-nav{display:none}.mobile-menu{display:block}.navbar{grid-template-columns:1fr auto auto}.reserve-btn{padding:11px 13px}
  .hero-grid{grid-template-columns:1fr;gap:20px}.photo-board{min-height:590px;max-width:760px;width:100%;margin:auto}.postcard{max-width:720px;margin:auto}.hero h1{max-width:11ch}
  .share-grid,.story-grid,.visit-grid{grid-template-columns:1fr}.story-collage{min-height:570px}.faq-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  .wrap{width:min(100% - 28px,1180px)}.rating-strip .wrap{min-height:34px}.rating-strip{font-size:.68rem}.rating .stars{display:none}
  .navbar{height:72px;gap:12px}.brand-mark{width:43px;height:43px}.brand-text strong{font-size:1.05rem}.brand-text small{font-size:.52rem}.nav-reserve{display:none}
  .hero{padding-top:26px}.postcard{padding:48px 25px 34px}.postcard .stamp{width:68px;height:68px;right:15px;top:18px;font-size:.52rem}.hero h1{font-size:clamp(3rem,17vw,5rem)}.hero-copy{font-size:1.02rem}.hero-actions{align-items:stretch}.hero-actions .btn{flex:1 1 180px}
  .photo-board{min-height:510px}.photo.one{width:66%;height:370px}.photo.two{width:48%;height:275px}.photo.three{width:39%;height:220px}.photo{padding:7px 7px 30px}.photo figcaption{font-size:.75rem}
  .section{padding:78px 0}.dish-grid{grid-template-columns:1fr}.dish:nth-child(2),.dish:nth-child(3){margin-top:18px}.dish-photo{width:270px}
  .tablecloth{padding:78px 0}.share-grid{gap:30px}.stack{min-height:480px}.stack-card.a{width:62%;height:345px}.stack-card.b{width:59%;height:330px}
  .menu-paper{padding:38px 22px;border-left-width:5px}.menu-columns{grid-template-columns:1fr;gap:22px}.pdf-frame{height:440px}
  .story-collage{min-height:460px}.story-collage .big{height:380px}.story-collage .small{height:240px}.story-card{padding:34px 25px}
  .visit-photo{height:390px}.visit-photo .map-tag{left:10px;bottom:18px}.visit-board{padding:30px 24px}
  .social-inner{display:block}.social-links{margin-top:22px}.footer-grid{grid-template-columns:1fr}.footer-bottom{display:block}.footer-bottom span{display:block;margin-top:6px}
}
@media(max-width:480px){
  .brand-text small{display:none}.photo-board{min-height:440px}.photo.one{height:320px}.photo.two{height:225px}.photo.three{height:185px}.hero:after{height:30px;background-size:18px 18px}.postcard:before{left:30%;width:90px}.story-collage{min-height:400px}.story-collage .big{width:78%;height:330px}.story-collage .small{width:53%;height:210px}.stack{min-height:410px}.stack-card.a{height:300px}.stack-card.b{height:280px}.quote-band blockquote{font-size:2.5rem}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
