/* Structural styles for Le Kelkheim & Speculo */
:root { font-family: Arial, Helvetica, sans-serif; color: #242424; background: #fff; line-height: 1.55; }
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; font-size: 1.0625rem; }
.wrap { width: min(100% - 40px, 1120px); margin-inline: auto; }
h1, h2, h3 { line-height: 1.18; font-weight: 500; overflow-wrap: anywhere; }
h1 { font-size: 2rem; letter-spacing: -.035em; margin-block: 24px; }
h2 { font-size: 1.625rem; }
h3 { font-size: 1.25rem; }
p { max-width: 65ch; overflow-wrap: anywhere; }
a { color: inherit; text-underline-offset: .22em; overflow-wrap: anywhere; transition: all 0.2s ease-in-out; }
a:focus-visible, button:focus-visible { outline: 3px solid #235eb0; outline-offset: 5px; }
.speculo a:focus-visible, .speculo button:focus-visible { outline-color: #B5C9EF; }
.skip { position: absolute; top: 8px; left: 20px; padding: 12px; background: white; transform: translateY(-200%); z-index: 2; }
.skip:focus { transform: none; }
.restaurant { padding-block: 40px; color: #202020; background: #faf8f4; }
.restaurant-header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; }
.restaurant-logo { width: min(100%, 340px); height: auto; }
.restaurant-logo-bottom { width: min(100%, 260px); height: auto; margin-block: 8px 12px; }
.restaurant-header a { font-size: .875rem; padding-block: 12px; }
.restaurant h1 { max-width: 20ch; font-size: clamp(2rem, 4.6vw, 4.1rem); }
.restaurant h1 span { color: #B71922; }
.intro-copy { min-width: 0; }
.sakura-photo { display: block; width: min(100%, 360px); height: auto; border-radius: 12px; box-shadow: 0 8px 24px rgba(183, 25, 34, 0.08), 0 2px 8px rgba(0, 0, 0, 0.04); margin: 24px auto 0; }
.restaurant .intro > p:not(.eyebrow) { max-width: 53ch; }
.restaurant-cta { display: inline-block; max-width: 100%; overflow-wrap: anywhere; padding: 14px 22px; margin-top: 20px; background: #B71922; color: white; text-decoration: none; border-radius: 4px; font-weight: 500; transition: all 0.2s ease-in-out; }
.restaurant-cta:hover { background: #861622; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(183, 25, 34, 0.25); }
address { font-style: normal; }
.pending { display: grid; gap: 24px; }
.pending h2 { margin-top: 8px; }
.pending a { display: inline-block; padding-block: 8px; }
.speculo-logo { display: block; width: min(100%, 200px); height: auto; margin-bottom: 40px; }
.speculo-inline-logo { display: inline-block; height: 1.2em; width: auto; vertical-align: -0.2em; margin-right: 6px; }
.eyebrow { font-size: .875rem; letter-spacing: .08em; text-transform: uppercase; }
.notice, .small { font-size: .875rem; }
.intro { margin-block: 64px; }
.pending { padding-top: 24px; border-top: 1px solid #bcbcbc; }
.speculo { padding-block: 48px; background: #111214; color: #F3F4F5; }
.contacts { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; margin-block: 32px; }
.contacts a { transition: all 0.2s ease-in-out; }
.contacts a:hover { color: #d4e3fc; transform: translateY(-1px); }
.cta, button { display: inline-block; max-width: 100%; min-height: 44px; padding: 14px 20px; border: 1px solid currentColor; border-radius: 4px; font: inherit; line-height: 1.4; white-space: normal; text-align: left; transition: all 0.2s ease-in-out; cursor: pointer; }
.cta { background: #B5C9EF; color: #111214; text-decoration: none; font-weight: 600; }
.cta:hover { background: #d4e3fc; transform: translateY(-2px); box-shadow: 0 4px 14px rgba(181, 201, 239, 0.35); }
button:hover:not(:disabled) { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25); }
button:disabled { color: #dedede; border-color: #888; background: #383b3e; cursor: not-allowed; transform: none !important; box-shadow: none !important; }
.feedback { margin-block: 48px; padding-top: 24px; border-top: 1px solid #888; }
@media (min-width: 768px) {
  body { font-size: 1.125rem; }
  .wrap { width: min(100% - 80px, 1120px); }
  h1 { font-size: 3rem; }
  h2 { font-size: 1.875rem; }
  .restaurant { min-height: 1080px; padding-block: 64px; }
  .intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .5fr); gap: 40px; align-items: center; margin-block: 80px; }
  .sakura-photo { width: 100%; max-width: 420px; margin: 0; }
  .pending { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
  .speculo { padding-block: 64px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; } }

/* Bold Soft Design — exclusively scoped to the Speculo section. */
.speculo {
  --sp-ink:#050505;
  --sp-text:#F7F7F7;
  --sp-muted:#C2C4C9;
  --sp-blue:#8AB4F8;
  padding:64px 0 48px;
  color:#202124;
  background:#FFFFFF;
  font-size:16px;
  line-height:1.55;
}
.speculo .sp-wrap { width:min(100% - 48px,1200px); }
.speculo p { margin:0; max-width:none; }
.speculo h2, .speculo h3, .speculo h4 { margin:0; overflow-wrap:normal; }
.speculo a { transition:background-color .18s ease,color .18s ease; }
.speculo a:hover { transform:none; box-shadow:none; }
.speculo a:focus-visible, .speculo button:focus-visible, .speculo summary:focus-visible { outline:3px solid var(--sp-blue); outline-offset:6px; }
.speculo .sp-hero { padding:48px 56px 32px; border-radius:40px; color:var(--sp-text); background:var(--sp-ink); }
.speculo .speculo-logo { width:160px; height:auto; margin:0 0 56px; }
.speculo .sp-hero-grid { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr); gap:72px; align-items:center; }
.speculo .sp-eyebrow { margin:0 0 20px; font-size:12px; line-height:1.5; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--sp-muted); }
.speculo #speculo-title { margin:0 0 28px; font-size:clamp(44px,5.7vw,72px); line-height:1.02; letter-spacing:-.055em; font-weight:400; color:var(--sp-text); }
.speculo .sp-lead { max-width:49ch; margin:0 0 32px; color:var(--sp-muted); font-size:18px; line-height:1.6; }
.speculo .sp-button { display:inline-flex; justify-content:center; align-items:center; gap:20px; min-height:50px; max-width:100%; padding:14px 26px; border:0; border-radius:999px; background:var(--sp-blue); color:#14213A; font-size:15px; line-height:22px; font-weight:600; text-decoration:none; text-align:center; }
.speculo .sp-button:hover { background:#AECDFB; color:#14213A; transform:none; box-shadow:none; }
.speculo .sp-button > span { font-size:20px; line-height:1; }
.speculo .sp-button-note { margin:12px 0 0; font-size:12px; line-height:19px; color:var(--sp-muted); }
.speculo .sp-person { min-width:0; padding:20px 0 20px 36px; border-left:1px solid #2A2D32; }
.speculo .sp-person .sp-eyebrow { margin-bottom:16px; font-size:11px; }
.speculo .sp-person-name { color:#A5B5CE; font-size:60px; line-height:1; letter-spacing:-.045em; }
.speculo .sp-person-copy { margin:24px 0; color:var(--sp-muted); font-size:15px; line-height:1.6; }
.speculo .sp-person a { display:block; width:fit-content; padding:7px 0; color:var(--sp-text); font-size:14px; text-decoration:underline; }
.speculo .sp-person a:hover { color:var(--sp-blue); }
.speculo .sp-context { margin-top:48px; padding-top:24px; border-top:1px solid #25272C; font-size:12px; line-height:20px; color:var(--sp-muted); }
.speculo .sp-offers { margin-top:12px; padding:48px; border-radius:28px; color:var(--sp-text); background:var(--sp-ink); }
.speculo .sp-offers-heading { max-width:850px; margin-bottom:32px; }
.speculo .sp-offers-heading .sp-eyebrow { margin-bottom:16px; }
.speculo #sp-offers-title { font-size:40px; line-height:1.1; font-weight:500; letter-spacing:-.04em; }
.speculo .sp-offers-intro { margin-top:20px; max-width:70ch; color:var(--sp-muted); font-size:17px; line-height:1.6; }
.speculo .sp-terms { margin-top:20px; color:var(--sp-muted); font-size:12px; line-height:20px; }
.speculo .sp-package-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:1fr; gap:16px; }
.speculo .sp-card { min-width:0; display:flex; flex-direction:column; padding:30px; border:1px solid #25272C; border-radius:22px; background:#151619; }
.speculo .sp-card--recommended { border-color:var(--sp-blue); background:#151A23; }
.speculo .sp-card-badge { height:32px; margin-bottom:16px; }
.speculo .sp-badge { display:inline-block; padding:5px 12px; border-radius:999px; color:#14213A; background:var(--sp-blue); font-size:11px; line-height:18px; font-weight:600; }
.speculo .sp-card h4 { margin-bottom:14px; color:var(--sp-text); font-size:17px; line-height:22px; font-weight:600; letter-spacing:.07em; text-transform:uppercase; }
.speculo .sp-price { font-size:36px; line-height:44px; font-weight:600; letter-spacing:-.04em; color:var(--sp-text); }
.speculo .sp-price > span { font-size:14px; font-weight:400; letter-spacing:0; white-space:nowrap; }
.speculo .sp-term { margin-top:8px; color:var(--sp-muted); font-size:12px; line-height:19px; }
.speculo .sp-card-intro { min-height:48px; margin:24px 0; color:var(--sp-text); font-size:15px; line-height:24px; }
.speculo .sp-features { display:grid; gap:20px; padding:0; margin:0 0 32px; list-style:none; }
.speculo .sp-features li { margin:0; }
.speculo .sp-features strong { display:block; margin-bottom:4px; font-size:14px; line-height:22px; font-weight:600; color:var(--sp-text); }
.speculo .sp-features li > span { display:block; color:var(--sp-muted); font-size:14px; line-height:22px; }
.speculo .sp-card-link { display:flex; justify-content:space-between; gap:12px; align-items:center; margin-top:auto; padding-top:20px; border-top:1px solid #34363C; color:var(--sp-blue); font-size:14px; line-height:24px; font-weight:500; text-decoration:underline; }
.speculo .sp-card-link:hover { color:#BCD5FC; }
.speculo .sp-offer-notes { display:grid; gap:14px; margin-top:28px; color:var(--sp-muted); font-size:13px; line-height:21px; }
.speculo .sp-offer-notes strong { font-weight:600; color:var(--sp-text); }
.speculo .sp-cost-note { font-size:12px; line-height:20px; font-style:italic; }
.speculo .sp-contact { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr); gap:80px; padding:64px 56px 48px; }
.speculo .sp-contact .sp-eyebrow { color:#62666D; margin-bottom:16px; }
.speculo #sp-contact-title { margin-bottom:20px; font-size:44px; line-height:1.1; letter-spacing:-.045em; font-weight:500; color:#202124; }
.speculo .sp-contact-copy > p:not([class]) { max-width:49ch; margin:0 0 28px; color:#62666D; font-size:17px; line-height:1.6; }
.speculo .sp-contact .sp-button-note { color:#62666D; }
.speculo .sp-contact-options { align-self:center; min-width:0; }
.speculo .sp-contact-name { margin-bottom:24px; font-size:18px; line-height:26px; font-weight:600; }
.speculo .sp-contact-name > span { display:block; font-size:13px; font-weight:400; color:#62666D; }
.speculo .sp-contact-options > a { display:block; padding:16px 0; border-top:1px solid #E1E3E6; color:#202124; font-size:15px; text-decoration:none; }
.speculo .sp-contact-options > a > span { float:right; }
.speculo .sp-contact-options > a:hover { color:#235EB0; }
.speculo .sp-contact-options small { display:block; margin-top:4px; color:#62666D; font-size:13px; text-decoration:underline; }
.speculo .sp-feedback-details { margin:0 56px; border-top:1px solid #E1E3E6; color:#62666D; }
.speculo .sp-feedback-details summary { display:flex; justify-content:space-between; gap:16px; padding:24px 0; color:#202124; font-size:14px; line-height:22px; cursor:pointer; list-style:none; }
.speculo .sp-feedback-details summary::-webkit-details-marker { display:none; }
.speculo .sp-feedback-details summary span { font-size:24px; font-weight:400; }
.speculo .sp-feedback-details[open] summary span { transform:rotate(45deg); }
.speculo .feedback { margin:0; padding:4px 0 24px; border:0; max-width:70ch; }
.speculo .feedback h3 { margin:0 0 16px; color:#202124; font-size:22px; line-height:28px; }
.speculo .feedback p { margin:0 0 16px; font-size:14px; line-height:23px; }
.speculo .feedback button { display:inline-block; padding:12px 20px; border:1px solid #62666D; border-radius:999px; background:#FFFFFF; color:#202124; font-size:14px; line-height:22px; transition:background-color .18s ease; }
.speculo .feedback button:hover:not(:disabled) { background:#EFF4FC; transform:none; box-shadow:none; }
.speculo .feedback button:disabled { background:#F2F3F5; color:#62666D; border-color:#D1D4DA; cursor:not-allowed; }
.speculo .feedback .small { margin:12px 0 0; font-size:12px; line-height:19px; }
@media (max-width:1000px) {
 .speculo .sp-hero { padding:40px; }
 .speculo .sp-hero-grid { gap:40px; grid-template-columns:minmax(0,1.3fr) minmax(0,.9fr); }
 .speculo .sp-person { padding-left:24px; }
 .speculo .sp-person-name { font-size:48px; }
 .speculo .sp-offers { padding:36px; }
 .speculo .sp-card { padding:24px; }
 .speculo .sp-contact { padding:48px 40px; gap:40px; }
 .speculo .sp-feedback-details { margin-inline:40px; }
}
@media (max-width:767px) {
 .speculo { padding:32px 0; }
 .speculo .sp-wrap { width:calc(100% - 24px); }
 .speculo .sp-hero { padding:32px 24px; border-radius:28px; }
 .speculo .speculo-logo { width:144px; margin-bottom:40px; }
 .speculo .sp-hero-grid { grid-template-columns:1fr; gap:40px; }
 .speculo #speculo-title { font-size:clamp(39px,8.6vw,60px); line-height:1.04; margin-bottom:24px; }
 .speculo .sp-eyebrow { font-size:11px; }
 .speculo .sp-lead { font-size:16px; line-height:1.6; margin-bottom:24px; }
 .speculo .sp-button { padding:13px 20px; gap:14px; font-size:14px; }
 .speculo .sp-person { padding:28px 0 0; border-left:0; border-top:1px solid #2A2D32; }
 .speculo .sp-person-name { font-size:42px; }
 .speculo .sp-person-name br { display:none; }
 .speculo .sp-person-copy { max-width:52ch; margin:16px 0; }
 .speculo .sp-context { margin-top:32px; }
 .speculo .sp-offers { padding:32px 16px; border-radius:24px; }
 .speculo .sp-offers-heading { padding-inline:8px; margin-bottom:24px; }
 .speculo #sp-offers-title { font-size:32px; }
 .speculo .sp-offers-intro { font-size:16px; }
 .speculo .sp-package-grid { grid-template-columns:1fr; gap:12px; }
 .speculo .sp-card { padding:24px; border-radius:20px; }
 .speculo .sp-card-intro { min-height:0; }
 .speculo .sp-offer-notes { padding-inline:8px; }
 .speculo .sp-contact { grid-template-columns:1fr; padding:40px 24px; gap:32px; }
 .speculo #sp-contact-title { font-size:36px; }
 .speculo .sp-contact-copy > p:not([class]) { font-size:16px; }
 .speculo .sp-feedback-details { margin-inline:24px; }
}
@media (prefers-reduced-motion:reduce) {
 .speculo a, .speculo button { transition:none; }
}

/* Mono Editorial Design — scoped exclusively to the restaurant concept. */
.restaurant {
 --theme-color:#B9171B;
 --neutral:#FBF8F3;
 --theme-ink:#B9171B;
 --theme-fill:#B9171B;
 --theme-deep:#7D1013;
 --theme-line:#DFB5AE;
 --theme-wash:#F8ECE6;
 --theme-stripe:#D98B87;
 padding:32px 24px 48px;
 min-height:0;
 background:var(--neutral);
 color:var(--theme-ink);
 font-family:Arial,Helvetica,sans-serif;
 font-size:16px;
 line-height:1.55;
}
.restaurant .me-frame { max-width:1280px; margin:0 auto; border:1px solid var(--theme-line); }
.restaurant .me-header { display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:112px; padding:24px 40px; border-bottom:1px solid var(--theme-line); }
.restaurant .me-logo { display:block; width:232px; max-width:100%; height:auto; mix-blend-mode:multiply; }
.restaurant .me-nav { display:flex; flex-wrap:wrap; gap:24px; align-items:center; padding:14px 24px; border:1px solid var(--theme-line); border-radius:999px; }
.restaurant .me-nav a { padding:0; font-size:12px; font-weight:600; line-height:18px; letter-spacing:.04em; text-transform:uppercase; text-decoration:none; color:var(--theme-ink); }
.restaurant .me-nav a:hover { text-decoration:underline; }
.restaurant h1, .restaurant h2, .restaurant h3, .restaurant p { margin:0; max-width:none; overflow-wrap:anywhere; }
.restaurant .me-hero { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:24px; align-items:center; min-height:730px; padding:72px 40px; }
.restaurant .me-copy { position:relative; z-index:1; }
.restaurant .me-kicker { display:flex; align-items:center; gap:10px; margin:0 0 32px; font-size:12px; line-height:18px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--theme-ink); }
.restaurant .me-kicker::before { content:""; flex:0 0 8px; height:8px; border-radius:50%; background:var(--theme-color); }
.restaurant #restaurant-title { font-size:clamp(62px,6.5vw,88px); line-height:1.03; font-weight:800; letter-spacing:-.035em; text-transform:uppercase; max-width:12ch; color:var(--theme-ink); }
.restaurant #restaurant-title span { display:block; color:var(--theme-ink); }
.restaurant .me-introduction { max-width:38ch; margin-top:28px; font-size:18px; line-height:1.5; color:var(--theme-ink); }
.restaurant .me-actions { display:flex; flex-wrap:wrap; gap:24px; align-items:center; margin-top:32px; }
.restaurant .me-button { display:inline-flex; align-items:center; justify-content:center; gap:14px; min-height:48px; max-width:100%; padding:14px 24px; border:1px solid var(--theme-deep); border-radius:999px; color:var(--neutral); background:var(--theme-fill); box-shadow:0 3px 0 var(--theme-deep); font-size:13px; line-height:18px; font-weight:600; letter-spacing:.035em; text-transform:uppercase; text-align:center; text-decoration:none; transition:background-color .15s ease,transform .15s ease,box-shadow .15s ease; }
.restaurant .me-button:hover { background:var(--theme-deep); transform:none; }
.restaurant .me-button:active { transform:translateY(2px); box-shadow:0 1px 0 var(--theme-deep); }
.restaurant .me-button > span { font-size:18px; line-height:18px; }
.restaurant .me-text-link { font-size:12px; font-weight:600; line-height:20px; letter-spacing:.035em; text-transform:uppercase; color:var(--theme-ink); }
.restaurant a:focus-visible { outline:2px solid var(--theme-deep); outline-offset:4px; }
.restaurant .me-hero-note { margin-top:32px; font-size:11px; line-height:17px; letter-spacing:.08em; text-transform:uppercase; }
.restaurant .me-art { position:relative; min-width:0; min-height:520px; margin:0; display:grid; align-content:end; }
.restaurant .me-hatch { position:absolute; width:370px; max-width:85%; aspect-ratio:1; border-radius:50%; background:repeating-linear-gradient(62deg,transparent 0 5px,var(--theme-stripe) 5px 6px); pointer-events:none; }
.restaurant .me-art > .me-hatch { top:48px; left:9%; }
.restaurant .me-art-disc { position:absolute; top:100px; left:22%; width:270px; max-width:63%; aspect-ratio:1; border-radius:50%; background:var(--theme-wash); border:1px solid var(--theme-line); }
.restaurant .me-blossom { position:absolute; display:block; z-index:1; inset:0; width:100%; height:100%; object-fit:contain; object-position:center; }
.restaurant .me-art-label { overflow-wrap:anywhere; position:relative; margin:0 0 0 auto; padding:12px 0; width:160px; border-top:1px solid var(--theme-line); font-size:11px; font-weight:600; line-height:18px; letter-spacing:.08em; text-transform:uppercase; }
.restaurant .me-cuisine { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--theme-line); border-bottom:1px solid var(--theme-line); }
.restaurant .me-cuisine-item { position:relative; padding:28px 40px 32px; }
.restaurant .me-cuisine-item + .me-cuisine-item { border-left:1px solid var(--theme-line); }
.restaurant .me-cuisine-number { display:block; margin-bottom:24px; font-size:12px; line-height:18px; letter-spacing:.05em; }
.restaurant .me-cuisine h2 { font-size:28px; line-height:1.1; font-weight:700; letter-spacing:-.02em; text-transform:uppercase; }
.restaurant .me-cuisine p { margin-top:12px; max-width:28ch; font-size:15px; line-height:1.6; }
.restaurant .me-contact { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:72px; padding:64px 40px; }
.restaurant .me-contact-title-row { display:flex; align-items:flex-start; gap:24px; }
.restaurant .me-contact-hatch { position:relative; flex:0 0 64px; width:64px; margin-top:4px; }
.restaurant .me-contact h2 { font-size:40px; line-height:1.1; font-weight:700; letter-spacing:-.025em; text-transform:uppercase; color:var(--theme-ink); }
.restaurant .me-contact-copy > p { margin:24px 0; max-width:40ch; font-size:16px; line-height:1.6; }
.restaurant .me-contact-details { display:grid; grid-template-columns:1fr; gap:24px; align-content:center; }
.restaurant .me-contact-details > div { padding-bottom:24px; border-bottom:1px solid var(--theme-line); }
.restaurant .me-contact-details > div:last-child { padding:0; border-bottom:0; }
.restaurant .me-label { margin-bottom:10px; font-size:11px; line-height:18px; font-weight:600; letter-spacing:.075em; text-transform:uppercase; }
.restaurant .me-contact-details address { font-size:17px; line-height:1.6; font-style:normal; }
.restaurant .me-contact-details a { display:block; width:fit-content; padding:6px 0; font-size:16px; line-height:24px; color:var(--theme-ink); }
@media (max-width:1000px) {
 .restaurant { padding:24px 20px 40px; }
 .restaurant .me-header { padding:24px 32px; }
 .restaurant .me-hero { padding:64px 32px; min-height:670px; gap:16px; }
 .restaurant #restaurant-title { font-size:66px; }
 .restaurant .me-art { min-height:440px; }
 .restaurant .me-art > .me-hatch { top:56px; }
 .restaurant .me-art-disc { top:104px; }
 .restaurant .me-cuisine-item { padding:24px 32px; }
 .restaurant .me-contact { padding:56px 32px; gap:40px; }
 .restaurant .me-contact h2 { font-size:34px; }
 .restaurant .me-contact-hatch { flex-basis:56px; width:56px; }
}
@media (max-width:799px) {
 .restaurant { padding:16px 12px 32px; }
 .restaurant .me-header { min-height:88px; padding:20px; gap:16px; flex-wrap:nowrap; }
 .restaurant .me-logo { width:144px; }
 .restaurant .me-nav { padding:0 12px; gap:12px; flex-wrap:nowrap; flex-shrink:0; }
 .restaurant .me-nav a { display:flex; align-items:center; justify-content:center; min-height:42px; font-size:11px; }
 .restaurant .me-hero { grid-template-columns:1fr; gap:32px; padding:48px 24px 32px; min-height:0; }
 .restaurant .me-kicker { margin-bottom:24px; font-size:11px; }
 .restaurant #restaurant-title { font-size:clamp(42px,8.3vw,64px); line-height:1.04; max-width:none; }
 .restaurant .me-introduction { margin-top:24px; font-size:17px; max-width:38ch; }
 .restaurant .me-actions { gap:20px; margin-top:24px; }
 .restaurant .me-hero-note { margin-top:24px; }
 .restaurant .me-art { min-height:350px; max-width:480px; width:100%; margin:0 auto; }
 .restaurant .me-art > .me-hatch { width:240px; top:28px; left:calc(50% - 120px); }
 .restaurant .me-art-disc { width:176px; top:66px; left:calc(50% - 62px); }
 .restaurant .me-art-label { font-size:10px; line-height:16px; width:144px; }
 .restaurant .me-cuisine { grid-template-columns:1fr; }
 .restaurant .me-cuisine-item { padding:24px; display:grid; grid-template-columns:28px 1fr; column-gap:16px; }
 .restaurant .me-cuisine-item + .me-cuisine-item { border-left:0; border-top:1px solid var(--theme-line); }
 .restaurant .me-cuisine-number { margin:3px 0 0; grid-row:1/3; }
 .restaurant .me-cuisine h2 { font-size:24px; }
 .restaurant .me-cuisine p { max-width:36ch; }
 .restaurant .me-contact { grid-template-columns:1fr; gap:40px; padding:40px 24px; }
 .restaurant .me-contact h2 { font-size:30px; }
 .restaurant .me-contact-title-row { gap:20px; }
 .restaurant .me-contact-hatch { flex-basis:56px; width:56px; }
 .restaurant .me-contact-copy > p { margin:24px 0; }
 .restaurant .me-contact-details { gap:20px; }
}
@media (max-width:420px) {
 .restaurant .me-header { flex-wrap:nowrap; gap:10px; }
 .restaurant .me-logo { width:clamp(96px,28vw,116px); }
 .restaurant .me-nav { margin-left:auto; padding:0 10px; gap:10px; }
 .restaurant .me-nav a { font-size:10px; min-width:44px; }
 .restaurant .me-hero { padding-left:20px; padding-right:20px; }
 .restaurant #restaurant-title { font-size:42px; }
 .restaurant .me-cuisine-item { padding:24px 20px; }
 .restaurant .me-contact { padding:40px 20px; }
 .restaurant .me-contact-title-row { gap:16px; }
 .restaurant .me-contact h2 { font-size:26px; }
 .restaurant .me-contact-hatch { flex-basis:48px; width:48px; }
 .restaurant .me-button { padding-inline:20px; }
}
@media (prefers-reduced-motion:reduce) {
 .restaurant .me-button { transition:none; }
}
