:root {
  --cream: #2a1a12;
  --cream-deep: #362217;
  --nude: #4a3124;
  --terracotta: #e29a88;
  --terracotta-deep: #edae9c;
  --clay: #d98a73;
  --ochre: #e0ac66;
  --espresso: #1c110b;
  --ink: #f7eedf;
  --soft: #b39a82;
  --muted: #d3bca4;
  --bone: #fcf6ec;
  --panel: #2f1d14;
  --line: color-mix(in srgb, var(--ink) 22%, transparent);
  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--cream); color: var(--ink); font: 400 16px/1.55 "DM Sans", sans-serif; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
body::before { content: ""; position: fixed; inset: 0; z-index: 1000; pointer-events: none; opacity: .16; mix-blend-mode: soft-light; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .96 0 0 0 0 .92 0 0 0 0 .84 0 0 0 .5 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>"); }
body::after { content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none; background: radial-gradient(60% 50% at 80% 10%, color-mix(in srgb, var(--clay) 18%, transparent), transparent 70%), radial-gradient(50% 60% at 10% 100%, color-mix(in srgb, var(--terracotta) 14%, transparent), transparent 70%); }
img { width: 100%; display: block; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
.container { width: min(1320px, calc(100% - 80px)); margin-inline: auto; }
.skip-link { position: absolute; left: -9999px; }

.topstrip { border-bottom: 1px solid var(--line); padding: 13px 0; font-size: 10px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }
.topstrip-inner, .topstrip-right { display: flex; align-items: center; justify-content: space-between; gap: 12px 26px; flex-wrap: wrap; }
.status { display: inline-flex; align-items: center; gap: 10px; }
.status-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--terracotta); box-shadow: 0 0 0 4px color-mix(in srgb, var(--terracotta) 20%, transparent); animation: pulse 2.4s infinite; }
.topstrip a { text-decoration: none; }
@keyframes pulse { 50% { box-shadow: 0 0 0 9px transparent; } }

.primary { min-height: 98px; display: flex; align-items: center; justify-content: space-between; gap: 22px; }
.mark { display: flex; align-items: center; gap: 14px; text-decoration: none; }
.mark-mono { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 50%; transition: .35s ease; }
.mark-mono img { width: 100%; height: 100%; object-fit: contain; }
.mark:hover .mark-mono { transform: rotate(-8deg) scale(1.04); }
.mark-name { display: block; font: 400 15px/1 "Fraunces", serif; letter-spacing: .04em; }
.mark-tag { display: block; margin-top: 5px; color: var(--soft); font-size: 9px; letter-spacing: .27em; text-transform: uppercase; }
.primary ul { display: flex; gap: 34px; list-style: none; margin: 0; padding: 0; }
.link { position: relative; padding: 5px 0; text-decoration: none; font-size: 11px; letter-spacing: .19em; text-transform: uppercase; }
.link::after { content: ""; position: absolute; inset: auto 0 0; height: 1px; background: var(--terracotta); transform: scaleX(0); transform-origin: left; transition: transform .35s; }
.link:hover::after { transform: scaleX(1); }
.reserve-btn { display: inline-block; border: 1px solid var(--ink); padding: 12px 21px; text-decoration: none; font-size: 10px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; transition: .3s; }
.reserve-btn.solid { background: var(--terracotta); color: var(--espresso); border-color: var(--terracotta); }
.reserve-btn:hover { transform: translateY(-2px); background: var(--bone); color: var(--espresso); border-color: var(--bone); }
.menu-toggle { display: none; border: 1px solid var(--line); background: transparent; padding: 10px 13px; color: var(--ink); font-size: 10px; letter-spacing: .15em; text-transform: uppercase; }

.hero { position: relative; padding: 62px 0 125px; }
.hero-meta { display: flex; justify-content: space-between; gap: 18px; padding-bottom: 14px; margin-bottom: 52px; border-bottom: 1px solid var(--line); font-size: 10px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(260px, .75fr); gap: 74px; align-items: end; }
.hero-title { margin: 0; color: var(--ink); font: 400 clamp(76px, 12vw, 176px)/.86 "Fraunces", serif; letter-spacing: -.045em; }
.hero-title .line { display: block; overflow: hidden; }
.hero-title .line > span { display: inline-block; animation: rise 1.15s cubic-bezier(.2,.7,.2,1) both; }
.hero-title .line:nth-child(2) > span { animation-delay: .12s; }
.hero-title .accent { color: var(--terracotta); font-style: italic; font-weight: 300; }
.hero-aside { display: flex; flex-direction: column; gap: 24px; padding-bottom: 10px; animation: fade 1.2s .5s both; }
.eyebrow { color: var(--terracotta-deep); font-size: 10px; font-weight: 500; letter-spacing: .27em; text-transform: uppercase; }
.hero-aside p { margin: 0; color: var(--muted); font: italic 400 22px/1.45 "Fraunces", serif; }
.hero-aside p em { font-weight: 500; }
.signature { color: var(--terracotta-deep); font: italic 22px "Cormorant Garamond", serif; }
.deco-sun { position: absolute; top: 56px; right: -110px; z-index: -1; width: 310px; aspect-ratio: 1; border-radius: 50%; opacity: .4; filter: blur(2px); background: radial-gradient(circle at 30% 30%, var(--clay), var(--terracotta-deep) 72%); animation: float 14s ease-in-out infinite; }
@keyframes rise { from { transform: translateY(108%); opacity: 0; } }
@keyframes fade { from { transform: translateY(20px); opacity: 0; } }
@keyframes float { 50% { transform: translateY(-24px) rotate(8deg); } }

.reveal { opacity: 0; transform: translateY(28px); transition: opacity 1s ease, transform 1s cubic-bezier(.2,.7,.2,1); }
.reveal.visible { opacity: 1; transform: none; }
.section-head { display: grid; grid-template-columns: auto 1fr auto; align-items: baseline; gap: 28px; padding-top: 21px; margin-bottom: 58px; border-top: 1px solid var(--line); }
.section-no { color: var(--terracotta-deep); font: italic 14px "Fraunces", serif; }
.section-name { font-size: 10px; font-weight: 500; letter-spacing: .28em; text-transform: uppercase; }
.muted { color: var(--soft); }

.casa, .menu { padding: 82px 0; }
.casa-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 90px; }
.casa h2, .hours-card h2 { margin: 0 0 24px; font: 500 clamp(42px, 5.5vw, 68px)/1.04 "Fraunces", serif; letter-spacing: -.025em; }
h2 em, h3 em { color: var(--terracotta); font-style: italic; font-weight: 400; }
.lede { max-width: 540px; margin: 0; color: var(--muted); font: italic 400 19px/1.6 "Fraunces", serif; }
.casa-body > p { max-width: 500px; margin: 0 0 20px; color: var(--muted); font-size: 15px; line-height: 1.8; }
.casa-body > p:first-child::first-letter { float: left; padding: 6px 12px 0 0; color: var(--terracotta); font: 600 64px/.8 "Fraunces", serif; }
blockquote { margin: 28px 0 0; padding: 3px 0 3px 22px; border-left: 3px solid var(--terracotta); }
blockquote p { margin: 0 0 8px; font: italic 19px/1.5 "Fraunces", serif; }
blockquote cite { color: var(--terracotta-deep); font-size: 10px; font-style: normal; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
.casa-lower { display: grid; grid-template-columns: 1fr 1fr; gap: 42px; margin-top: 80px; }
.scene { position: relative; margin: 0; overflow: hidden; aspect-ratio: 4/5; border-radius: 4px; background: var(--nude); box-shadow: 0 30px 60px -32px color-mix(in srgb, black 60%, transparent); }
.scene img { height: 100%; object-fit: cover; }
.scene figcaption { position: absolute; inset: auto 0 0; padding: 48px 18px 16px; color: var(--bone); background: linear-gradient(transparent, color-mix(in srgb, var(--espresso) 88%, transparent)); font: italic 13px "Fraunces", serif; }

.menu-intro { display: grid; grid-template-columns: 2fr 1fr; align-items: end; gap: 80px; margin-bottom: 68px; }
.menu h2 { margin: 0; font: 500 clamp(52px, 7.5vw, 100px)/.96 "Fraunces", serif; letter-spacing: -.035em; }
.menu-intro p { margin: 0; color: var(--muted); font: italic 17px/1.6 "Fraunces", serif; }
.dishes { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); }
.dish { display: grid; grid-template-columns: 64px 1fr auto; gap: 19px; align-items: center; min-width: 0; padding: 29px 31px; border-bottom: 1px solid var(--line); transition: background .3s; }
.dish:nth-child(odd) { border-right: 1px solid var(--line); }
.dish:hover { background: color-mix(in srgb, var(--terracotta) 10%, transparent); }
.dish.no-photo { grid-template-columns: 1fr auto; }
.thumb { width: 64px; height: 64px; margin: 0; overflow: hidden; border-radius: 4px; background: var(--nude); }
.thumb img { height: 100%; object-fit: cover; }
.dish h3 { margin: 0 0 4px; font: 500 21px/1.2 "Fraunces", serif; }
.dish p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
.price { font: italic 500 17px "Fraunces", serif; white-space: nowrap; }
.price::before { content: "$"; }
.menu-foot { margin: 56px 0 0; text-align: center; color: var(--muted); font: italic 15px "Fraunces", serif; }
.menu-foot a { color: var(--terracotta-deep); text-underline-offset: 4px; }
.sep { margin: 0 10px; }

.visit { position: relative; padding: 100px 0; margin-top: 58px; background: var(--cream-deep); }
.visit::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(60% 70% at 80% 30%, color-mix(in srgb, var(--terracotta) 10%, transparent), transparent 70%); }
.visit .container { position: relative; }
.visit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 85px; }
.hours-card h2 { max-width: 600px; }
.hours-row { display: grid; grid-template-columns: 1fr auto; gap: 16px; align-items: baseline; padding: 18px 0; border-top: 1px solid var(--line); font: 500 19px "Fraunces", serif; }
.hours-row:last-child { border-bottom: 1px solid var(--line); }
.hours-row strong { font: 500 12px "DM Sans", sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.hours-row.featured { margin-inline: -16px; padding-inline: 16px; background: linear-gradient(90deg, color-mix(in srgb, var(--terracotta) 12%, transparent), transparent); }
.visit-info { display: flex; flex-direction: column; gap: 34px; }
.info-block .eyebrow { margin-bottom: 11px; }
.info-block .body { display: block; color: var(--ink); font: 500 20px/1.4 "Fraunces", serif; text-decoration: none; }
.info-block > a:not(.body), .info-block small { display: block; margin-top: 6px; color: var(--muted); font-size: 14px; }
.cta-card { position: relative; overflow: hidden; padding: 34px 31px; border-radius: 3px; color: var(--bone); background-image: linear-gradient(color-mix(in srgb, var(--espresso) 86%, transparent), color-mix(in srgb, var(--espresso) 94%, transparent)), var(--card-image); background-size: cover; background-position: center; }
.cta-card .eyebrow { color: var(--ochre); }
.cta-card h3 { position: relative; margin: 8px 0 22px; font: 500 30px/1.15 "Fraunces", serif; }
.cta-actions { display: flex; gap: 11px; flex-wrap: wrap; }
.btn2 { padding: 12px 20px; border: 1px solid var(--bone); border-radius: 2px; background: var(--bone); color: var(--espresso); text-decoration: none; font-size: 10px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; transition: .3s; }
.btn2:hover { transform: translateX(4px); background: var(--terracotta); color: var(--espresso); border-color: var(--terracotta); }
.btn2.ghost { background: transparent; color: var(--bone); }
.btn2.ghost:hover { color: var(--espresso); }

footer { position: relative; padding: 80px 0 30px; background: var(--espresso); color: var(--ink); }
footer::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(40% 60% at 90% 0%, color-mix(in srgb, var(--terracotta) 18%, transparent), transparent 70%); }
footer .container { position: relative; }
.foot-top { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 60px; padding-bottom: 58px; border-bottom: 1px solid color-mix(in srgb, var(--ink) 18%, transparent); }
.foot-top h3 { margin: 0 0 16px; font: italic 400 clamp(42px, 5vw, 58px)/.95 "Fraunces", serif; }
.foot-top h3 span { color: var(--clay); font-style: normal; font-weight: 500; }
.foot-top p { max-width: 400px; margin: 0; color: color-mix(in srgb, var(--ink) 82%, transparent); font-size: 14px; }
.foot-col h4 { margin: 0 0 17px; color: var(--ochre); font-size: 10px; letter-spacing: .28em; text-transform: uppercase; }
.foot-col a { display: block; width: fit-content; color: var(--ink); text-decoration: none; font: 400 16px/1.8 "Fraunces", serif; }
.foot-col a:hover { color: var(--clay); }
.foot-bottom { display: flex; justify-content: space-between; gap: 20px; padding-top: 27px; color: color-mix(in srgb, var(--ink) 70%, transparent); font-size: 9px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; }

/* ---------- interior pages ---------- */
.subhero { padding: 56px 0 30px; }
.crumb { display: inline-block; margin-bottom: 26px; color: var(--terracotta-deep); text-decoration: none; font-size: 10px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; }
.crumb:hover { color: var(--bone); }
.subhero h1 { margin: 0; color: var(--ink); font: 400 clamp(56px, 9vw, 118px)/.9 "Fraunces", serif; letter-spacing: -.04em; }
.subhero h1 em, .thanks h1 em { color: var(--terracotta); font-style: italic; font-weight: 300; }
.subhero p { max-width: 620px; margin: 22px 0 0; color: var(--muted); font: italic 400 19px/1.6 "Fraunces", serif; }
.page-body { padding: 40px 0 96px; }

.course { margin-top: 62px; }
.course:first-child { margin-top: 0; }
.course-note { max-width: 640px; margin: 0 0 26px; color: var(--muted); font-size: 14px; line-height: 1.7; }
.dishes.single { grid-template-columns: 1fr; }
.dishes.single .dish:nth-child(odd) { border-right: 0; }
.disclaimer { margin-top: 54px; padding: 24px 26px; border: 1px solid var(--line); border-radius: 4px; color: var(--soft); font-size: 12px; line-height: 1.75; }
.disclaimer strong { display: block; margin-bottom: 6px; color: var(--muted); font-size: 10px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; }

.split { display: grid; grid-template-columns: 1.05fr .95fr; gap: 78px; align-items: start; }
.card { padding: 32px 30px; border: 1px solid var(--line); border-radius: 4px; }
.card + .card { margin-top: 26px; }
.card h2 { margin: 8px 0 12px; font: 500 30px/1.15 "Fraunces", serif; }
.card p { margin: 0 0 18px; color: var(--muted); font-size: 15px; line-height: 1.7; }
.card p:last-child { margin-bottom: 0; }
.card .btn2 { display: inline-block; }
.card-phone { display: block; margin: 0; color: var(--ink); font: 500 30px/1.2 "Fraunces", serif; text-decoration: none; }
.steps { margin: 0; padding-left: 20px; color: var(--muted); font-size: 14px; line-height: 1.9; }

.inquiry { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.field { display: grid; gap: 8px; }
.field.full, .inquiry > .full { grid-column: 1 / -1; }
.field > span { color: var(--soft); font-size: 10px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; }
.field input, .field select, .field textarea { width: 100%; border: 1px solid var(--line); border-radius: 5px; padding: 13px 14px; background: color-mix(in srgb, black 26%, var(--cream)); color: var(--ink); font-size: 15px; }
.field textarea { min-height: 150px; resize: vertical; line-height: 1.6; }
.field :is(input, textarea)::placeholder { color: var(--soft); opacity: 1; }
.field select option { background: var(--espresso); color: var(--ink); }
.field :is(input, select, textarea):focus-visible { outline: 2px solid var(--terracotta); outline-offset: 1px; border-color: var(--terracotta); }
.field-hint { color: var(--soft); font-size: 12px; }
.hidden-field { position: absolute; left: -9999px; }
.form-submit { grid-column: 1 / -1; justify-self: start; border: 0; border-radius: 3px; padding: 16px 32px; background: var(--terracotta); color: var(--espresso); cursor: pointer; font-size: 11px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; transition: .3s; }
.form-submit:hover { background: var(--bone); }
.thanks { padding: 96px 0 110px; }
.thanks h1 { margin: 0 0 20px; font: 500 clamp(46px, 7vw, 84px)/1 "Fraunces", serif; letter-spacing: -.03em; }
.thanks p { max-width: 560px; margin: 0 0 26px; color: var(--muted); font-size: 16px; line-height: 1.8; }

.owner-access { position: fixed; right: 20px; bottom: 20px; z-index: 1100; border: 1px solid color-mix(in srgb, var(--ink) 35%, transparent); border-radius: 999px; padding: 12px 18px; background: var(--espresso); color: var(--ink); box-shadow: 0 12px 35px color-mix(in srgb, black 45%, transparent); cursor: pointer; font-size: 11px; font-weight: 500; letter-spacing: .08em; }
.editor-bar { position: fixed; left: 50%; bottom: 18px; z-index: 1100; transform: translateX(-50%); display: flex; align-items: center; gap: 7px; min-width: max-content; padding: 8px; border: 1px solid color-mix(in srgb, var(--ink) 18%, transparent); border-radius: 999px; background: var(--espresso); color: var(--ink); box-shadow: 0 18px 50px color-mix(in srgb, black 50%, transparent); }
.editor-bar[hidden] { display: none; }
.editor-bar button { border: 0; border-radius: 999px; padding: 10px 14px; background: transparent; color: inherit; cursor: pointer; font-size: 11px; font-weight: 500; }
.editor-bar button:hover { background: color-mix(in srgb, var(--ink) 12%, transparent); }
.editor-bar .primary-action { background: var(--terracotta); color: var(--espresso); }
.editor-state { display: flex; align-items: center; gap: 8px; padding-inline: 9px; font-size: 10px; letter-spacing: .04em; }
.editor-state i { width: 7px; height: 7px; border-radius: 50%; background: var(--soft); }
body.edit-mode .editor-state i { background: #79c68c; box-shadow: 0 0 0 4px rgba(121,198,140,.14); }
body.edit-mode [data-edit] { outline: 1px dashed color-mix(in srgb, var(--terracotta) 70%, transparent); outline-offset: 4px; border-radius: 2px; cursor: text; }
body.edit-mode [data-link] { cursor: pointer; }
body.edit-mode .editable-image { outline: 2px dashed var(--terracotta); outline-offset: -2px; cursor: pointer; }
body.edit-mode .editable-image::after { content: "Replace image"; position: absolute; inset: auto 10px 10px auto; z-index: 3; padding: 7px 10px; border-radius: 999px; background: var(--espresso); color: var(--ink); font-size: 10px; letter-spacing: .06em; pointer-events: none; }
body.saving { cursor: progress; }

.site-dialog { width: min(460px, calc(100% - 32px)); padding: 0; border: 0; border-radius: 12px; background: var(--panel); color: var(--ink); box-shadow: 0 30px 90px rgba(0,0,0,.55); }
.site-dialog::backdrop { background: rgba(14,8,5,.72); backdrop-filter: blur(5px); }
.dialog-close-form { position: absolute; top: 10px; right: 12px; }
.dialog-close-form button { border: 0; background: transparent; color: var(--soft); cursor: pointer; font: 300 28px/1 sans-serif; }
.dialog-form { display: grid; gap: 18px; padding: 38px; }
.dialog-kicker { color: var(--terracotta-deep); font-size: 10px; font-weight: 500; letter-spacing: .24em; text-transform: uppercase; }
.dialog-form h2 { margin: -8px 0 0; font: 500 36px/1.1 "Fraunces", serif; }
.dialog-form p { margin: -8px 0 0; color: var(--soft); font-size: 14px; }
.dialog-form label { display: grid; gap: 7px; color: var(--soft); font-size: 11px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; }
.dialog-form input { width: 100%; border: 1px solid var(--line); border-radius: 5px; padding: 12px 13px; background: var(--espresso); color: var(--ink); font-size: 15px; text-transform: none; letter-spacing: 0; }
.dialog-form input[type="color"] { height: 48px; padding: 5px; }
.dialog-submit { border: 0; border-radius: 4px; padding: 13px 18px; background: var(--terracotta); color: var(--espresso); cursor: pointer; font-size: 11px; font-weight: 500; letter-spacing: .15em; text-transform: uppercase; }
.form-message { min-height: 20px; color: var(--terracotta-deep) !important; }
.theme-form { grid-template-columns: 1fr 1fr; }
.theme-form > :is(.dialog-kicker, h2, button) { grid-column: 1 / -1; }
.theme-form .full-field { grid-column: 1 / -1; }
.toast { position: fixed; left: 50%; top: 20px; z-index: 1300; transform: translate(-50%, -20px); padding: 11px 18px; border-radius: 999px; background: var(--espresso); color: var(--ink); opacity: 0; pointer-events: none; box-shadow: 0 14px 40px rgba(0,0,0,.45); transition: .3s; font-size: 12px; }
.toast.show { transform: translate(-50%, 0); opacity: 1; }
.toast.error { background: #8f342c; }

@media (max-width: 900px) {
  .primary { flex-wrap: wrap; min-height: 86px; }
  .primary ul { display: none; order: 4; width: 100%; padding: 18px 0; border-top: 1px solid var(--line); }
  .primary ul.open { display: grid; gap: 15px; }
  .menu-toggle { display: block; margin-left: auto; }
  .primary > .reserve-btn { display: none; }
  .hero-grid, .casa-grid, .visit-grid, .split { grid-template-columns: 1fr; gap: 48px; }
  .hero-title { font-size: clamp(72px, 17vw, 130px); }
  .hero-aside { max-width: 520px; }
  .menu-intro { grid-template-columns: 1fr; gap: 24px; }
  .foot-top { grid-template-columns: 1.4fr 1fr 1fr; gap: 30px; }
}

@media (max-width: 700px) {
  .container { width: min(100% - 42px, 1320px); }
  .topstrip-right { display: none; }
  .hero { padding: 42px 0 92px; }
  .hero-meta { display: grid; margin-bottom: 38px; }
  .hero-title { font-size: clamp(62px, 20vw, 100px); }
  .deco-sun { width: 180px; right: -65px; }
  .casa, .menu { padding: 64px 0; }
  .section-head { grid-template-columns: auto 1fr; gap: 16px; margin-bottom: 42px; }
  .section-head .muted { display: none; }
  .casa-lower, .dishes { grid-template-columns: 1fr; }
  .dish:nth-child(odd) { border-right: 0; }
  .dish { padding-inline: 8px; grid-template-columns: 58px 1fr auto; gap: 14px; }
  .dish.no-photo { grid-template-columns: 1fr auto; }
  .thumb { width: 58px; height: 58px; }
  .visit { padding: 72px 0; }
  .foot-top { grid-template-columns: 1fr; }
  .foot-bottom { display: grid; }
  .editor-bar { left: 12px; right: 12px; bottom: 10px; transform: none; min-width: 0; overflow-x: auto; }
  .editor-state { display: none; }
  .dialog-form { padding: 34px 24px 26px; }
  .subhero { padding: 40px 0 20px; }
  .page-body { padding: 30px 0 72px; }
  .inquiry { grid-template-columns: 1fr; }
  .card { padding: 26px 22px; }
}

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; } }
