:root {
  --ink: #211c18;
  --ink-soft: #594f48;
  --paper: #f7f3ec;
  --paper-2: #eee7dc;
  --warm: #a94d3c;
  --warm-dark: #78342a;
  --gold: #d7a25e;
  --sea: #416f72;
  --white: #fff;
  --line: rgba(33,28,24,.13);
  --shadow: 0 22px 55px rgba(44,35,28,.14);
  --radius: 22px;
  --shell: min(1180px, calc(100% - 40px));
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.65}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
.shell{width:var(--shell);margin-inline:auto}
.section{padding:96px 0}
.section-kicker{margin:0 0 12px;color:var(--warm);font-size:.78rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:42px}
.section-heading.centered{display:block;text-align:center;max-width:760px;margin:0 auto 44px}
.section-heading.compact{margin-bottom:34px}
h1,h2,h3,p{margin-top:0}
h1,h2,h3,.brand-jp,.brand-en,.footer-logo{font-family:Georgia,"Times New Roman",serif}
h2{margin-bottom:18px;font-size:clamp(2rem,4vw,3.5rem);line-height:1.08;font-weight:500;letter-spacing:-.035em}
h3{font-size:1.35rem;line-height:1.2;margin-bottom:9px}

.site-header{height:82px;padding:0 max(20px,calc((100vw - 1180px)/2));display:flex;align-items:center;justify-content:space-between;gap:28px;background:rgba(247,243,236,.95);backdrop-filter:blur(10px);position:sticky;top:0;z-index:100;border-bottom:1px solid rgba(33,28,24,.08)}
.brand{display:grid;grid-template-columns:auto auto;column-gap:9px;align-items:baseline;line-height:1}
.brand-jp{font-size:1.35rem;color:var(--warm)}
.brand-en{font-size:1.65rem;font-weight:700;letter-spacing:.06em}
.brand-sub{grid-column:1/-1;font-size:.61rem;letter-spacing:.12em;text-transform:uppercase;margin-top:5px;color:var(--ink-soft)}
.main-nav{display:flex;align-items:center;gap:25px;font-size:.9rem;font-weight:650}
.main-nav a:not(.nav-cta){position:relative}
.main-nav a:not(.nav-cta)::after{content:"";position:absolute;left:0;right:100%;bottom:-7px;height:1px;background:var(--warm);transition:.25s}
.main-nav a:hover::after{right:0}
.nav-cta{padding:10px 17px;border-radius:999px;background:var(--ink);color:#fff}
.nav-toggle{display:none;border:0;background:none;font-size:1.45rem}

.hero{min-height:780px;height:calc(100vh - 82px);position:relative;display:flex;align-items:center;color:#fff;overflow:hidden}
.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 48%;transform:scale(1.01)}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(17,13,11,.74) 0%,rgba(17,13,11,.40) 45%,rgba(17,13,11,.12) 74%),linear-gradient(0deg,rgba(17,13,11,.56),transparent 48%)}
.hero-content{position:relative;z-index:2;padding-bottom:90px}
.eyebrow{font-size:.76rem;letter-spacing:.19em;text-transform:uppercase;font-weight:750;color:#f2d8b0;margin-bottom:20px}
.hero h1{font-size:clamp(3.4rem,7.6vw,7.3rem);line-height:.88;letter-spacing:-.055em;font-weight:500;margin-bottom:28px;max-width:950px;text-shadow:0 2px 25px rgba(0,0,0,.26)}
.hero h1 span{font-style:italic;color:#f5d7a8}
.hero-copy{max-width:620px;font-size:1.13rem;color:rgba(255,255,255,.9);margin-bottom:28px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:12px 21px;border:1px solid transparent;border-radius:999px;font-weight:750;letter-spacing:.01em;cursor:pointer;transition:.2s}
.button:hover{transform:translateY(-1px)}
.button-primary{background:var(--warm);color:#fff;box-shadow:0 8px 24px rgba(88,32,25,.24)}
.button-primary:hover{background:var(--warm-dark)}
.button-ghost{border-color:rgba(255,255,255,.6);color:#fff;background:rgba(255,255,255,.08)}
.button-dark{background:var(--ink);color:#fff}
.hero-facts{position:absolute;z-index:3;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(4,1fr);padding:0 max(20px,calc((100vw - 1180px)/2));background:rgba(23,18,15,.78);backdrop-filter:blur(10px);border-top:1px solid rgba(255,255,255,.17)}
.hero-facts div{padding:21px 22px;border-left:1px solid rgba(255,255,255,.15)}
.hero-facts div:last-child{border-right:1px solid rgba(255,255,255,.15)}
.hero-facts strong,.hero-facts span{display:block}.hero-facts strong{font-size:.9rem}.hero-facts span{font-size:.72rem;color:rgba(255,255,255,.67);margin-top:2px}

.intro{display:grid;grid-template-columns:1.02fr .98fr;gap:72px;align-items:center}
.intro-copy>p:not(.section-kicker){color:var(--ink-soft);font-size:1.03rem;max-width:650px}
.micro-points{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.micro-points span{padding:7px 12px;border:1px solid var(--line);border-radius:999px;font-size:.76rem;background:#fff}
.intro-photo{margin:0;position:relative}
.intro-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius);box-shadow:var(--shadow)}
.intro-photo figcaption{position:absolute;left:18px;bottom:16px;padding:8px 12px;background:rgba(255,255,255,.88);border-radius:999px;font-size:.72rem;color:var(--ink-soft)}

.section-food{background:#fff}
.section-heading.centered>p:last-child{color:var(--ink-soft);margin-bottom:0}
.food-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.food-card{border:1px solid var(--line);background:var(--paper);border-radius:18px;overflow:hidden;transition:.25s}
.food-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.food-card img{width:100%;aspect-ratio:4/3;object-fit:cover;background:#eee7dc}
.food-card>div{padding:19px 20px 22px}
.food-card p{margin-bottom:0;color:var(--ink-soft);font-size:.87rem}
.card-tag{font-family:ui-sans-serif,sans-serif!important;text-transform:uppercase;letter-spacing:.12em;font-size:.64rem!important;font-weight:800;color:var(--warm)!important;margin-bottom:7px!important}
.feature-card{grid-column:span 2;display:grid;grid-template-columns:1.25fr .75fr;align-items:stretch;background:var(--ink);color:#fff}
.feature-card img{height:100%;aspect-ratio:auto}
.feature-card>div{display:flex;flex-direction:column;justify-content:center;padding:30px}
.feature-card p{color:rgba(255,255,255,.72)}
.feature-card .card-tag{color:#f0c48a!important}

.menu-choice{background:var(--paper-2)}
.menu-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.menu-panel{height:460px;position:relative;overflow:hidden;border-radius:var(--radius);color:#fff;box-shadow:var(--shadow)}
.menu-panel>img{width:100%;height:100%;object-fit:cover;transition:.45s}
.menu-panel:hover>img{transform:scale(1.035)}
.menu-panel-shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(17,13,11,.82),rgba(17,13,11,.08) 68%)}
.menu-panel-content{position:absolute;left:28px;right:28px;bottom:28px;z-index:2}
.menu-panel-content span{font-size:.68rem;letter-spacing:.16em;color:#efc78c}
.menu-panel-content p{font-family:Georgia,serif;font-size:2.1rem;line-height:1;margin:8px 0 12px}
.menu-panel-content strong{display:block;max-width:440px;font-size:.88rem;font-weight:500;color:rgba(255,255,255,.82);margin-bottom:15px}
.menu-panel-content em{font-style:normal;font-size:.82rem;font-weight:800}
.drink-collage{position:absolute;inset:0;display:grid;grid-template-columns:1.15fr .8fr;grid-template-rows:1fr 1fr;background:#e8ded1}
.drink-collage img{width:100%;height:100%;object-fit:contain;padding:16px;background:#efe9df}
.drink-collage img:first-child{grid-row:1/3;background:#dfd1be}

.sunset-section{background:#201a17;color:#f9f4eb}
.sunset-layout{display:grid;grid-template-columns:.7fr 1.3fr;gap:52px;align-items:center}
.sunset-copy p:not(.section-kicker){color:rgba(255,255,255,.7)}
.sunset-note{font-size:.75rem!important;border-left:2px solid var(--gold);padding-left:12px;margin-top:25px}
.sunset-gallery{display:grid;grid-template-columns:1.5fr 1fr;grid-template-rows:1fr 1fr;gap:10px}
.sunset-gallery img{width:100%;height:100%;object-fit:cover;border-radius:13px;min-height:195px}
.sunset-gallery .sunset-large{grid-row:1/3;min-height:400px}

.location-section{background:#fff}
.location-heading{align-items:start}.location-heading>div{max-width:650px}.location-heading>p{max-width:430px;color:var(--ink-soft)}
.location-photo-wrap{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.location-photo-wrap>img{width:100%;aspect-ratio:16/8.3;object-fit:cover}
.location-badges{position:absolute;left:20px;bottom:20px;display:flex;gap:8px;flex-wrap:wrap}
.location-badges span{background:rgba(255,255,255,.91);padding:9px 13px;border-radius:999px;font-size:.75rem;font-weight:800;box-shadow:0 6px 18px rgba(0,0,0,.12)}
.location-bottom{display:grid;grid-template-columns:.75fr 1.25fr;gap:18px;margin-top:18px}
.address-card,.map-card{border-radius:18px;border:1px solid var(--line);overflow:hidden;background:var(--paper)}
.address-card{padding:28px}.address-card p{color:var(--ink-soft)}.small-note{font-size:.74rem;margin:18px 0;color:#756c65!important}
.map-card iframe{display:block;width:100%;height:100%;min-height:350px;border:0}

.gallery-strip{background:var(--paper)}
.gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:210px;gap:10px}
.gallery-grid img{width:100%;height:100%;object-fit:cover;border-radius:12px}
.gallery-grid img:nth-child(1){grid-column:span 5;grid-row:span 2}.gallery-grid img:nth-child(2){grid-column:span 3}.gallery-grid img:nth-child(3){grid-column:span 4}.gallery-grid img:nth-child(4){grid-column:span 3}.gallery-grid img:nth-child(5){grid-column:span 2}.gallery-grid img:nth-child(6){grid-column:span 2}

.reserve-section{background:linear-gradient(135deg,#e7d8c3,#f5efe6)}
.reserve-layout{display:grid;grid-template-columns:.83fr 1.17fr;gap:56px;align-items:start}
.reserve-copy>p:not(.section-kicker){color:var(--ink-soft);max-width:480px}
.reserve-points{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:25px}.reserve-points span{font-size:.8rem;font-weight:700}
.reserve-form{background:#fff;border-radius:var(--radius);padding:30px;box-shadow:var(--shadow)}
.reserve-form label{display:grid;gap:6px;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#675b53;margin-bottom:15px}
.reserve-form input,.reserve-form select,.reserve-form textarea{width:100%;border:1px solid #d8d0c6;border-radius:10px;padding:11px 12px;background:#fbfaf8;color:var(--ink);outline:none;text-transform:none;letter-spacing:0;font-weight:500}
.reserve-form input:focus,.reserve-form select:focus,.reserve-form textarea:focus{border-color:var(--warm);box-shadow:0 0 0 3px rgba(169,77,60,.1)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:13px}.form-submit{width:100%;border:0}.form-note{font-size:.7rem;color:#8c8179;text-align:center;margin:9px 0 0}

.site-footer{background:#171310;color:#eee6dc;padding:55px 0 20px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px}.footer-logo{display:block;font-size:2rem;letter-spacing:.08em}.footer-grid p{color:#a99e96;font-size:.8rem}.footer-grid strong,.footer-grid a{display:block}.footer-grid strong{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:#c7a879;margin-bottom:12px}.footer-grid a{font-size:.83rem;color:#c5bbb4;margin:7px 0}.footer-bottom{margin-top:34px;padding-top:18px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;font-size:.7rem;color:#8e847d}

@media (max-width:900px){
  :root{--shell:min(100% - 28px,760px)}
  .section{padding:72px 0}.site-header{height:72px;padding-inline:18px}.main-nav{display:none;position:absolute;left:12px;right:12px;top:76px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch;gap:0}.main-nav.is-open{display:flex}.main-nav a{padding:12px 10px}.nav-cta{text-align:center;margin-top:5px}.nav-toggle{display:block}
  .hero{height:auto;min-height:760px}.hero-content{padding-top:80px;padding-bottom:150px}.hero h1{font-size:clamp(3.2rem,13vw,5.2rem)}.hero-copy{font-size:1rem}.hero-facts{grid-template-columns:1fr 1fr;padding:0}.hero-facts div{padding:14px 18px}.hero-facts div:nth-child(3){border-top:1px solid rgba(255,255,255,.14)}.hero-facts div:nth-child(4){border-top:1px solid rgba(255,255,255,.14)}
  .intro,.sunset-layout,.reserve-layout,.location-bottom{grid-template-columns:1fr;gap:35px}.food-grid{grid-template-columns:1fr 1fr}.feature-card{grid-column:1/-1}.menu-choice-grid{grid-template-columns:1fr}.location-heading{display:block}.location-heading>p{max-width:none}.gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:220px}.gallery-grid img:nth-child(n){grid-column:auto;grid-row:auto}.footer-grid{grid-template-columns:1.5fr 1fr 1fr}
}
@media (max-width:590px){
  :root{--shell:calc(100% - 24px)}.section{padding:60px 0}.brand-sub{display:none}.brand-jp{font-size:1.1rem}.brand-en{font-size:1.35rem}.hero{min-height:710px}.hero-content{padding-top:40px;padding-bottom:170px}.hero h1{font-size:3.25rem}.hero-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.button{padding-inline:14px;font-size:.82rem}.hero-facts strong{font-size:.78rem}.hero-facts span{font-size:.63rem}
  .section-heading{display:block}.food-grid{grid-template-columns:1fr}.feature-card{display:block}.feature-card img{aspect-ratio:4/3}.menu-panel{height:380px}.sunset-gallery{grid-template-columns:1fr 1fr;grid-template-rows:auto}.sunset-gallery .sunset-large{grid-column:1/-1;grid-row:auto;min-height:260px}.sunset-gallery img{min-height:145px}.location-photo-wrap>img{aspect-ratio:4/3}.location-badges{left:10px;bottom:10px}.location-badges span{padding:7px 10px;font-size:.67rem}.gallery-grid{grid-auto-rows:180px}.gallery-grid img:first-child{grid-column:1/-1}.form-row,.reserve-points{grid-template-columns:1fr}.reserve-form{padding:21px}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}.footer-bottom{gap:15px;flex-direction:column}
}


/* ===== Menu subpages ===== */
.page-header{background:rgba(24,19,16,.96);border-bottom-color:rgba(255,255,255,.08)}
.page-header .brand,.page-header .main-nav a{color:#fff}.page-header .brand-sub{color:rgba(255,255,255,.62)}
.page-header .nav-cta{border-color:rgba(255,255,255,.4)}
.subhero{height:560px;position:relative;display:grid;align-items:end;color:#fff;overflow:hidden;background:#241b17}
.subhero>img,.drinks-hero-collage{position:absolute;inset:0;width:100%;height:100%}.subhero>img{object-fit:cover}
.food-subhero>img{object-position:center 52%}.subhero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(16,12,10,.83),rgba(16,12,10,.28) 65%,rgba(16,12,10,.12))}
.subhero-content{position:relative;z-index:2;padding-bottom:72px}.subhero h1{font-size:clamp(3.5rem,7vw,6.6rem);margin:0 0 12px;color:#fff}.subhero-content>p:not(.eyebrow){max-width:650px;font-size:1.1rem;color:rgba(255,255,255,.82)}
.drinks-hero-collage{display:grid;grid-template-columns:1.1fr .75fr .9fr;background:#e9e0d4}.drinks-hero-collage img{width:100%;height:100%;object-fit:cover}.drinks-hero-collage img:first-child{object-fit:contain;background:#ddd0bd;padding:35px}
.drinks-subhero .subhero-shade{background:linear-gradient(90deg,rgba(21,16,13,.9),rgba(21,16,13,.38) 62%,rgba(21,16,13,.18))}
.menu-info-bar{background:#fff;border-bottom:1px solid var(--line)}.menu-info-bar .shell{display:flex;justify-content:center;gap:40px;flex-wrap:wrap;padding:14px 0;font:700 .72rem/1.3 ui-sans-serif,sans-serif;color:#766c65}.menu-info-bar span:before{content:'•';color:var(--gold);margin-right:9px}
.category-groups{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.category-group{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px}.category-group h3{font-size:1.55rem;margin-bottom:18px}.category-links{display:flex;flex-wrap:wrap;gap:8px}.category-links a{border:1px solid var(--line);border-radius:999px;padding:8px 12px;font:700 .75rem ui-sans-serif,sans-serif;color:var(--ink-soft);background:var(--paper)}.category-links a:hover{border-color:var(--gold);color:var(--ink)}
.menu-highlight-section .section-heading>p{max-width:440px;color:var(--ink-soft)}.menu-price{display:block;margin-top:12px;font:800 1rem ui-sans-serif,sans-serif;color:var(--gold)}.feature-card .menu-price{color:#f1c584}.menu-food-grid .food-card{min-height:100%}
.menu-list-section{background:var(--paper-2)}.menu-columns{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.menu-list-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;scroll-margin-top:100px}.menu-list-card h2{font-size:1.7rem;margin-bottom:19px}.price-list{display:grid}.price-list>div{display:grid;grid-template-columns:1fr auto;gap:20px;padding:11px 0;border-top:1px solid #eee6dd;align-items:start}.price-list span{font-size:.9rem;color:#4a423d}.price-list b{font:800 .88rem ui-sans-serif,sans-serif;color:var(--ink)}.menu-card-note{font-size:.75rem;color:#8a7d74;border-left:2px solid var(--gold);padding-left:12px;margin-top:20px}.menu-next-cta{margin-top:24px;background:var(--ink);color:#fff;border-radius:20px;padding:28px 32px;display:flex;align-items:center;justify-content:space-between;gap:20px}.menu-next-cta h2{font-size:1.75rem;margin:0}.menu-next-cta .section-kicker{margin-bottom:5px}
.drink-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.drink-feature-grid article{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}.drink-feature-grid img{width:100%;height:250px;object-fit:contain;background:#eee6db;padding:22px}.drink-feature-grid article>div{padding:20px}.drink-feature-grid h3{font-size:1.35rem}.drink-feature-grid p:last-child{color:var(--ink-soft);font-size:.86rem}.dessert-showcase{margin-top:22px;background:linear-gradient(135deg,#ddd0bd,#f4eee6);border-radius:20px;display:grid;grid-template-columns:1fr .72fr;align-items:center;overflow:hidden}.dessert-showcase>div{padding:42px}.dessert-showcase img{width:100%;height:360px;object-fit:contain;padding:25px}
@media(max-width:900px){.subhero{height:510px}.page-header .main-nav{background:#211a17}.category-groups,.menu-columns{grid-template-columns:1fr}.drink-feature-grid{grid-template-columns:1fr 1fr}.dessert-showcase{grid-template-columns:1fr 1fr}}
@media(max-width:590px){.subhero{height:470px}.subhero-content{padding-bottom:45px}.subhero h1{font-size:3.25rem}.menu-info-bar .shell{justify-content:flex-start;gap:8px 20px;padding-inline:12px}.category-groups,.drink-feature-grid{grid-template-columns:1fr}.menu-list-card{padding:22px}.menu-next-cta{display:block}.menu-next-cta .button{margin-top:18px}.drinks-hero-collage{grid-template-columns:1.2fr .8fr}.drinks-hero-collage img:nth-child(3){display:none}.dessert-showcase{grid-template-columns:1fr}.dessert-showcase>div{padding:28px}.dessert-showcase img{height:280px}}

/* ===== Secondary pages: About / Gallery / Location / Reservation ===== */
.about-subhero>img{object-position:center 48%}.gallery-subhero>img{object-position:center 58%}.location-subhero>img{object-position:center 58%}.reservation-subhero>img{object-position:center 42%}
.about-story-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:58px;align-items:center}.about-story-grid>div>p:not(.section-kicker){color:var(--ink-soft);max-width:660px}.about-feature-photo{margin:0}.about-feature-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius);box-shadow:var(--shadow)}.about-feature-photo figcaption{font-size:.72rem;color:#8d8179;margin-top:9px}
.about-values{background:var(--paper-2)}.value-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.value-grid article{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;min-height:235px}.value-grid span{font:800 .72rem ui-sans-serif,sans-serif;color:var(--gold);letter-spacing:.08em}.value-grid h3{font-size:1.35rem;margin:22px 0 10px}.value-grid p{color:var(--ink-soft);font-size:.86rem}
.split-feature-grid{display:grid;grid-template-columns:1.12fr .88fr;align-items:center;background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden}.split-feature-grid img{width:100%;height:100%;min-height:430px;object-fit:cover}.split-feature-grid>div{padding:48px}.split-feature-grid>div>p:not(.section-kicker){color:var(--ink-soft)}
.about-visit-cta,.gallery-cta,.location-final,.reservation-bottom{background:var(--paper-2)}.compact-cta{display:flex;align-items:center;justify-content:space-between;gap:30px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:34px 38px}.compact-cta h2{font-size:clamp(1.8rem,3vw,2.7rem);margin:0}.compact-cta p:not(.section-kicker){color:var(--ink-soft);margin-bottom:0}.compact-cta-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.gallery-page-section{background:var(--paper)}.gallery-page-section .section-heading>p{max-width:520px;color:var(--ink-soft)}.gallery-page-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:250px;gap:12px}.gallery-tile{position:relative;margin:0;overflow:hidden;border-radius:16px;background:#ddd}.gallery-tile.wide{grid-column:span 2}.gallery-tile.tall{grid-row:span 2}.gallery-tile img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.gallery-tile:hover img{transform:scale(1.025)}.gallery-tile figcaption{position:absolute;left:12px;right:12px;bottom:12px;background:rgba(21,17,14,.68);backdrop-filter:blur(7px);color:#fff;border-radius:9px;padding:9px 11px;font:700 .72rem ui-sans-serif,sans-serif}
.location-detail{background:#fff}.location-detail-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:center}.location-detail-grid>div>p:not(.section-kicker):not(.small-note){color:var(--ink-soft)}.location-feature-list{display:grid;gap:11px;margin:28px 0}.location-feature-list>div{display:grid;grid-template-columns:42px 135px 1fr;gap:10px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}.location-feature-list span{font-size:1.45rem}.location-feature-list strong{font-size:.85rem}.location-feature-list p{margin:0;color:var(--ink-soft);font-size:.8rem}.location-hero-card{margin:0}.location-hero-card img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius);box-shadow:var(--shadow)}.location-hero-card figcaption{font-size:.72rem;color:#887c74;margin-top:9px}
.map-section{background:var(--paper-2)}.map-page-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:18px}.map-card-large{min-height:560px;border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}.map-card-large iframe{min-height:560px}.visit-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px}.visit-card h2{font-size:2rem}.visit-card>p{color:var(--ink-soft)}.visit-card hr{border:0;border-top:1px solid var(--line);margin:28px 0}.visit-card strong{color:var(--ink)}
.reservation-notice{background:#f2e7d6;border-bottom:1px solid #dfcdb2}.reservation-notice .shell{display:flex;justify-content:center;align-items:center;gap:24px;flex-wrap:wrap;padding:14px 0;font:700 .72rem ui-sans-serif,sans-serif;color:#65574e}.reservation-notice strong{color:var(--warm)}
.reservation-page{background:var(--paper-2)}.reservation-page-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:40px;align-items:start}.reservation-side{position:sticky;top:100px}.reservation-side>p:not(.section-kicker){color:var(--ink-soft)}.reservation-help{display:grid;gap:10px;margin:28px 0}.reservation-help article{background:#fff;border:1px solid var(--line);border-radius:13px;padding:16px}.reservation-help strong{font-size:.82rem}.reservation-help p{font-size:.77rem;color:var(--ink-soft);margin:5px 0 0}.text-link{font:800 .78rem ui-sans-serif,sans-serif;color:var(--warm)}.reserve-form-page{padding:36px}.reserve-form fieldset{border:0;padding:0;margin:0 0 28px}.reserve-form legend{font:800 1.05rem ui-sans-serif,sans-serif;margin-bottom:16px;color:var(--ink)}.reserve-form-page fieldset+fieldset{border-top:1px solid var(--line);padding-top:26px}.confirmation-check{display:flex!important;grid-template-columns:none!important;align-items:flex-start;gap:10px!important;text-transform:none!important;letter-spacing:0!important;font-weight:600!important;line-height:1.45;color:var(--ink-soft)!important}.confirmation-check input{width:auto!important;margin-top:3px}.confirmation-check span{font-size:.78rem}

@media(max-width:900px){.about-story-grid,.split-feature-grid,.location-detail-grid,.map-page-grid,.reservation-page-grid{grid-template-columns:1fr}.value-grid{grid-template-columns:1fr 1fr}.gallery-page-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:240px}.reservation-side{position:static}.map-card-large,.map-card-large iframe{min-height:420px}.compact-cta{align-items:flex-start}.location-feature-list>div{grid-template-columns:42px 120px 1fr}}
@media(max-width:590px){.value-grid{grid-template-columns:1fr}.split-feature-grid img{min-height:290px}.split-feature-grid>div{padding:28px}.compact-cta{display:block;padding:27px}.compact-cta-actions{justify-content:flex-start;margin-top:20px}.gallery-page-grid{grid-template-columns:1fr;grid-auto-rows:260px}.gallery-tile.wide,.gallery-tile.tall{grid-column:auto;grid-row:auto}.location-feature-list>div{grid-template-columns:38px 1fr}.location-feature-list p{grid-column:2}.reservation-notice .shell{justify-content:flex-start;gap:7px 14px;padding-inline:12px}.reserve-form-page{padding:22px}}
.section-action{display:flex;justify-content:center;margin-top:28px}

/* === v4 full menu === */
.menu-browser{background:#fff;border-bottom:1px solid var(--line);padding:38px 0 24px;scroll-margin-top:90px}.menu-browser-head{display:grid;grid-template-columns:1fr 320px;gap:30px;align-items:end}.menu-browser-head h2{font-size:clamp(2rem,4vw,3.2rem);margin:0 0 8px}.menu-browser-head p{color:var(--ink-soft);margin:0}.menu-search{display:grid;gap:7px;font:800 .7rem ui-sans-serif,sans-serif;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-soft)}.menu-search input{width:100%;border:1px solid #d8cec4;border-radius:999px;background:var(--paper);padding:13px 17px;font:600 .88rem ui-sans-serif,sans-serif;color:var(--ink);outline:none}.menu-search input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(188,132,54,.12)}.menu-quick-nav{display:flex;gap:8px;overflow:auto;padding:20px 0 4px;scrollbar-width:thin}.menu-quick-nav a{flex:0 0 auto;border:1px solid var(--line);border-radius:999px;background:var(--paper);padding:9px 13px;font:800 .72rem ui-sans-serif,sans-serif;color:var(--ink-soft)}.menu-quick-nav a:hover{border-color:var(--gold);color:var(--ink)}.full-menu-wrap{background:var(--paper-2);padding:34px 0 80px}.full-menu-section{background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px;margin:0 0 20px;scroll-margin-top:105px}.full-menu-section.no-results{display:none}.full-menu-title{display:flex;justify-content:space-between;align-items:end;gap:20px;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:3px}.full-menu-title h2{font-size:1.9rem;margin:4px 0 0}.back-top-inline{font:800 .7rem ui-sans-serif,sans-serif;color:var(--warm);white-space:nowrap}.full-menu-list{display:grid;grid-template-columns:1fr 1fr;column-gap:34px}.full-menu-item{display:grid;grid-template-columns:1fr auto;gap:18px;border-bottom:1px solid #eee6dd;padding:13px 0;align-items:start}.full-menu-item[hidden]{display:none}.item-copy{display:grid;grid-template-columns:auto 1fr;column-gap:8px;align-items:baseline}.menu-code{font:700 .64rem ui-monospace,SFMono-Regular,Consolas,monospace;color:#ad9d91;grid-row:1}.item-name{font:700 .9rem ui-sans-serif,sans-serif;color:#413934}.item-desc{grid-column:1/-1;font-size:.72rem;line-height:1.45;color:#8a7c72;margin-top:3px}.full-menu-item>b{font:800 .88rem ui-sans-serif,sans-serif;color:var(--ink)}
@media(max-width:900px){.menu-browser-head{grid-template-columns:1fr}.menu-search{max-width:500px}.full-menu-list{grid-template-columns:1fr}}
@media(max-width:590px){.menu-browser{padding-top:28px}.menu-browser-head h2{font-size:2.15rem}.full-menu-wrap{padding-top:20px}.full-menu-section{padding:20px 18px;border-radius:14px}.full-menu-title h2{font-size:1.55rem}.full-menu-title{align-items:start}.full-menu-item{gap:12px;padding:12px 0}.item-name{font-size:.86rem}.full-menu-item>b{font-size:.84rem}.menu-code{font-size:.59rem}}

/* v5 production contact details */
.footer-contact{margin-top:.65rem;line-height:1.65}.footer-contact a{font-weight:700}.footer-grid{grid-template-columns:1.15fr 1fr 1fr 1fr}.reservation-direct-contact{margin:0 0 1rem;padding:1.1rem 1.2rem;border:1px solid rgba(31,27,24,.12);background:#faf7f1;border-radius:12px}.reservation-direct-contact h3{margin:.1rem 0 .4rem}.direct-contact-buttons{display:flex;gap:.65rem;flex-wrap:wrap;margin:.75rem 0}.is-placeholder-link{opacity:.78}.visit-card a[href^="tel:"]{font-weight:700;color:inherit}@media(max-width:800px){.footer-grid{grid-template-columns:1fr 1fr}}@media(max-width:520px){.footer-grid{grid-template-columns:1fr}}


/* KOBORI MailformPro / Turnstile production reservation */
.reservation-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}
.field-help{display:block;margin-top:3px;font-size:.68rem;font-weight:500;line-height:1.45;text-transform:none;letter-spacing:0;color:#867970}
.field-error{display:block;margin-top:3px;font-size:.7rem;font-weight:700;text-transform:none;letter-spacing:0;color:#a33b2b}
.reservation-security{margin:24px 0;padding:20px;border:1px solid var(--line);border-radius:14px;background:#faf7f1}
.reservation-security h3{margin:0 0 5px;font:800 .92rem ui-sans-serif,sans-serif}.reservation-security p{margin:0 0 14px;color:var(--ink-soft);font-size:.76rem}
.cf-turnstile{max-width:100%;overflow:hidden}.form-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.form-reset{border:1px solid var(--line)}
#mfp_phase_confirm,#mfp_overlay{font-family:inherit}.mfp_buttons{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.mfp_buttons button{border:0;border-radius:999px;padding:12px 20px;font-weight:800;cursor:pointer}.mfp_buttons #mfp_button_send{background:var(--warm);color:#fff}.mfp_buttons #mfp_button_cancel{background:#e9e1d7;color:var(--ink)}
#mfp_confirm_table{width:100%;border-collapse:collapse;background:#fff}#mfp_confirm_table th,#mfp_confirm_table td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:.82rem}#mfp_confirm_table th{width:35%;color:var(--ink-soft);font-weight:700}
.reservation-thanks-page{min-height:70vh;background:var(--paper-2);display:flex;align-items:center}.thanks-card{max-width:780px;background:#fff;border:1px solid var(--line);border-radius:24px;padding:clamp(30px,6vw,64px);box-shadow:var(--shadow);text-align:center}.thanks-mark{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;margin:0 auto 20px;background:#e8efe3;color:#3f6940;font-size:2rem;font-weight:900}.thanks-card h1{font-size:clamp(2rem,5vw,3.6rem);margin:0 0 18px}.thanks-lead{font-size:1.05rem;color:var(--ink-soft)}.thanks-important{margin:26px 0;padding:20px;border-radius:14px;background:#fff2df;border:1px solid #ead2ae}.thanks-important strong{font-size:1.05rem;color:#8a4c26}.thanks-important p{margin:7px 0 0}.thanks-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:28px}
@media(max-width:590px){#mfp_confirm_table th,#mfp_confirm_table td{display:block;width:100%}#mfp_confirm_table th{padding-bottom:3px;border-bottom:0}#mfp_confirm_table td{padding-top:3px}.form-actions .button{width:100%;justify-content:center}.thanks-actions .button{width:100%}}

/* v11 reservation layout fix */
.reservation-form-column{min-width:0;display:block}
.reservation-form-column .reservation-direct-contact{width:100%}
.reservation-form-column .reserve-form-page{width:100%}


/* v12 direct contact visual treatment */
.reservation-direct-contact{padding:24px 26px;background:linear-gradient(145deg,#fffdf9 0%,#f7f1e8 100%);border-color:#dfd3c5;box-shadow:0 12px 32px rgba(59,43,31,.07)}
.direct-contact-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.direct-contact-kicker{margin:0 0 4px;font:800 .66rem ui-sans-serif,sans-serif;text-transform:uppercase;letter-spacing:.13em;color:var(--warm)}
.reservation-direct-contact h3{font-size:clamp(1.3rem,2.2vw,1.65rem);margin:0}
.direct-hours{margin:8px 0 18px;color:var(--ink-soft);font-size:.82rem}
.direct-phone{display:inline-flex;align-items:center;gap:9px;flex:0 0 auto;padding:8px 11px;border:1px solid #ddd0c1;border-radius:12px;background:#fff;color:var(--ink);transition:.2s}
.direct-phone:hover{transform:translateY(-1px);border-color:#c6ad90;box-shadow:0 6px 16px rgba(59,43,31,.08)}
.direct-phone-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#eee4d7;color:var(--warm-dark);font-size:1rem}
.direct-phone span:last-child{display:grid;gap:1px}.direct-phone strong{font:800 .72rem ui-sans-serif,sans-serif}.direct-phone small{font:700 .7rem ui-sans-serif,sans-serif;color:var(--ink-soft)}
.direct-contact-buttons{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0}
.contact-channel{min-height:74px;display:grid;grid-template-columns:46px 1fr auto;gap:12px;align-items:center;padding:13px 15px;border-radius:16px;color:#fff;box-shadow:0 8px 20px rgba(0,0,0,.1);transition:transform .2s,box-shadow .2s,filter .2s}
.contact-channel:hover{transform:translateY(-2px);box-shadow:0 13px 26px rgba(0,0,0,.15);filter:saturate(1.05)}
.contact-line{background:#06c755}
.contact-whatsapp{background:#25d366}
.contact-channel-icon{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.22)}
.contact-channel-icon svg{width:31px;height:31px;fill:#fff}
.contact-line .contact-channel-icon svg circle{fill:#06c755}
.contact-channel-copy{display:grid;gap:2px;min-width:0}
.contact-channel-copy strong{font:850 1rem ui-sans-serif,sans-serif;line-height:1.1}
.contact-channel-copy small{font:650 .7rem ui-sans-serif,sans-serif;color:rgba(255,255,255,.88)}
.contact-channel-arrow{font-size:1.2rem;font-weight:800;opacity:.9}
.reservation-direct-contact .is-placeholder-link{opacity:1}
.direct-contact-note{margin:14px 0 0!important;padding-top:12px;border-top:1px solid rgba(87,66,47,.11);color:#8a7465!important;font-size:.68rem!important;line-height:1.55}
@media(max-width:720px){.direct-contact-heading{display:block}.direct-phone{margin-top:14px}.direct-contact-buttons{grid-template-columns:1fr}.contact-channel{min-height:70px}}
@media(max-width:420px){.reservation-direct-contact{padding:20px}.direct-phone{width:100%}.contact-channel{grid-template-columns:42px 1fr auto}.contact-channel-icon{width:42px;height:42px}.contact-channel-icon svg{width:28px;height:28px}}
