/* CSY Kitchen public design system. Admin styles remain in style.css. */
:root {
 --primary-maroon:#A6192E; --primary-red:#E32629; --accent-yellow:#FFCF24;
 --background-white:#FFFFFF; --background-dark:#191919; --background-light:#FFF8F0;
 --text-dark:#252525; --text-muted:#666666; --border:#eadfda;
}
.public-site { margin:0; color:var(--text-dark); background:var(--background-white); font-family:"Segoe UI",Arial,sans-serif; line-height:1.7; }
.public-site *, .public-site *::before, .public-site *::after { box-sizing:border-box; }
.public-site img { display:block; max-width:100%; }
.public-site a { color:inherit; text-decoration:none; }
.public-site p { margin:0 0 1.3rem; color:var(--text-muted); }
.public-site h1,.public-site h2,.public-site h3 { margin:0 0 1.2rem; line-height:1.15; font-weight:800; overflow-wrap:anywhere; }
.public-site h1 { font-size:clamp(2.3rem,4.3vw,4rem); letter-spacing:-.045em; }
.public-site h2 { font-size:clamp(1.8rem,3vw,2.75rem); letter-spacing:-.035em; }
.public-site h3 { font-size:1.35rem; }
.public-site button,.public-site input,.public-site textarea { font:inherit; }
.public-site button { cursor:pointer; }
.public-site :focus-visible { outline:3px solid var(--primary-red); outline-offset:5px; }
.public-site .site-header :focus-visible,.public-site .site-footer :focus-visible,.public-site .cta :focus-visible { outline-color:var(--accent-yellow); }
.public-site .container { width:calc(100% - 64px); max-width:1200px; margin-inline:auto; }
.public-site main { min-height:65vh; }
.public-site .skip-link { position:fixed; top:8px; left:16px; z-index:100; padding:12px 20px; background:white; transform:translateY(-160%); }
.public-site .skip-link:focus { transform:translateY(0); }
.public-site .site-header { position:sticky; top:0; z-index:20; background:var(--primary-maroon); color:white; box-shadow:0 2px 12px #19191918; }
.public-site .header-container { display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:98px; }
.public-site .brand { display:flex; align-items:center; gap:14px; font-size:1.5rem; font-weight:800; line-height:1.2; flex-shrink:0; }
.public-site .brand small { display:block; margin-top:6px; font-size:.58rem; letter-spacing:.12em; font-weight:600; }
.public-site .brand-logo { width:64px; height:64px; object-fit:contain; }
.public-site .logo-placeholder { width:60px; height:60px; display:grid; place-content:center; border:1px dashed #ffffff90; border-radius:50%; font-size:.65rem; text-align:center; font-weight:500; line-height:1.4; }
.public-site .navigation { display:flex; align-items:center; gap:22px; }
.public-site .navigation a { display:block; padding:12px 0; border-bottom:2px solid transparent; color:white; font-size:.9rem; font-weight:600; transition:color .2s,border-color .2s; }
.public-site .navigation a:hover,.public-site .navigation a.active { color:var(--accent-yellow); border-color:var(--accent-yellow); }
.public-site .nav-toggle { display:none; border:1px solid #ffffff80; background:transparent; color:white; border-radius:8px; padding:9px 12px; min-height:44px; }
.public-site .split { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:64px; }
.public-site .split > * { min-width:0; }
.public-site .home-hero { position:relative; padding:76px 0 84px; background:var(--background-light); }
.public-site .hero-layout { gap:48px; }
.public-site .eyebrow { display:block; color:var(--primary-maroon); font-size:.72rem; font-weight:800; letter-spacing:.16em; margin-bottom:18px; }
.public-site .hero-copy h1 { font-size:clamp(2.8rem,5vw,4.6rem); }
.public-site .hero-copy h1 > span,.public-site .maroon { color:var(--primary-maroon); }
.public-site .brand-dot { color:var(--primary-red); }
.public-site .hero-copy h2 { font-size:1.2rem; letter-spacing:0; line-height:1.5; max-width:420px; }
.public-site .hero-copy > p { max-width:490px; }
.public-site .button-row { display:flex; align-items:center; flex-wrap:wrap; gap:14px; margin-top:28px; }
.public-site .btn { display:inline-flex; justify-content:center; align-items:center; gap:14px; min-height:48px; border:1px solid var(--primary-maroon); padding:13px 22px; border-radius:8px; background:var(--primary-maroon); color:white; font-size:.9rem; font-weight:700; transition:background .2s,transform .2s,box-shadow .2s; }
.public-site .btn:hover { background:#841426; transform:translateY(-2px); box-shadow:0 5px 16px #a6192e20; }
.public-site .btn-outline { background:transparent; color:var(--primary-maroon); border-color:#a6192e55; }
.public-site .btn-outline:hover { background:white; }
.public-site .btn-small { min-height:44px; padding:10px 16px; }
.public-site .hero-note { display:flex; align-items:center; gap:9px; margin:26px 0 0; font-size:.78rem; }
.public-site .hero-note span { width:7px; height:7px; border-radius:50%; background:var(--primary-red); }
.public-site .hero-visual { position:relative; padding:14px 10px 26px 0; }
.public-site .hero-visual::before { content:""; position:absolute; inset:0 0 10px 24px; background:var(--primary-maroon); border-radius:46% 46% 20px 20px; }
.public-site .photo { position:relative; overflow:hidden; aspect-ratio:4 / 3; border-radius:16px; background:#f2e9e1; }
.public-site .photo img { width:100%; height:100%; object-fit:cover; }
.public-site .photo-placeholder { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; padding:24px; color:#755a54; border:1px dashed #bb9b90; text-align:center; }
.public-site .photo-mark { display:grid; place-items:center; width:58px; height:58px; border:1px solid #bb9b90; border-radius:50%; font-size:2rem; line-height:1; font-weight:300; }
.public-site .photo-placeholder > span:not(.photo-mark) { font-weight:600; }
.public-site .photo-placeholder small { font-size:.75rem; }
.public-site .hero-photo { aspect-ratio:1 / 1; border-radius:46% 46% 18px 18px; }
.public-site .hero-photo img { object-fit:contain; padding:12px; }
.public-site .visual-caption { position:absolute; bottom:0; right:0; padding:22px 28px; border-radius:12px; background:var(--accent-yellow); box-shadow:0 8px 24px #19191912; }
.public-site .visual-caption span { display:block; font-size:.58rem; letter-spacing:.13em; font-weight:800; margin-bottom:8px; }
.public-site .visual-caption strong { font-size:1.6rem; line-height:1.15; display:block; }
.public-site .brand-strip { padding:19px 0; background:var(--background-dark); color:white; font-size:.7rem; font-weight:700; letter-spacing:.13em; text-align:center; }
.public-site .brand-strip span { color:var(--accent-yellow); margin:0 30px; }
.public-site .section { padding:84px 0; }
.public-site .light { background:var(--background-light); }
.public-site .text-link { display:inline-block; color:var(--primary-maroon); font-weight:700; font-size:.9rem; padding:10px 0; text-underline-offset:5px; }
.public-site .text-link:hover { text-decoration:underline; }
.public-site .section-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:30px; }
.public-site .section-heading h2 { margin-bottom:0; }
.public-site .card-grid,.public-site .menu-grid,.public-site .gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.public-site .card,.public-site .menu-card,.public-site .gallery-card { min-width:0; background:white; border:1px solid var(--border); border-radius:14px; box-shadow:0 8px 28px #19191906; }
.public-site .card { padding:30px; }
.public-site .card p:last-child { margin-bottom:0; }
.public-site .feature-number { display:inline-block; color:var(--primary-maroon); font-size:.9rem; font-weight:800; margin-bottom:30px; border-bottom:3px solid var(--accent-yellow); padding-bottom:8px; }
.public-site .menu-card { overflow:hidden; display:flex; flex-direction:column; transition:transform .25s,box-shadow .25s; }
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) { .public-site .gallery-card:hover { transform:translateY(-4px); box-shadow:0 12px 32px #19191910; } }
.public-site .menu-card .photo { border-radius:0; border-top:0; border-inline:0; }
.public-site .card-content { display:flex; flex-direction:column; align-items:flex-start; flex:1; padding:25px; }
.public-site .card-content h3 { margin-top:15px; }
.public-site .card-content .btn { margin-top:auto; }
.public-site .tag { display:inline-block; color:var(--primary-maroon); background:#a6192e09; border:1px solid #a6192e18; border-radius:5px; padding:5px 10px; font-size:.68rem; font-weight:800; letter-spacing:.06em; overflow-wrap:anywhere; }
.public-site .price { font-weight:800; font-size:1.5rem; color:var(--primary-maroon); }
.public-site .menu-category + .menu-category { margin-top:64px; }
.public-site .cta { padding:76px 0; background:var(--primary-maroon); color:white; text-align:center; }
.public-site .cta h2 { max-width:750px; margin-inline:auto; }
.public-site .cta .eyebrow,.public-site .cta h2 span { color:var(--accent-yellow); }
.public-site .cta p { color:#fff1f3; }
.public-site .cta .button-row { justify-content:center; }
.public-site .btn-yellow { color:var(--background-dark); background:var(--accent-yellow); border-color:var(--accent-yellow); }
.public-site .btn-yellow:hover { background:#ffe16b; }
.public-site .btn-white-outline { background:transparent; border-color:#ffffff90; color:white; }
.public-site .btn-white-outline:hover { background:#ffffff15; }
.public-site .page-banner { padding:68px 0; background:var(--background-light); text-align:center; border-bottom:1px solid var(--border); }
.public-site .page-banner p { max-width:600px; margin:0 auto; }
.public-site .intro { max-width:700px; margin-bottom:35px; }
.public-site .detail-layout { margin-top:36px; align-items:start; }
.public-site .detail-layout h1 { font-size:clamp(2rem,3.5vw,3.3rem); margin-top:22px; }
.public-site .food-description { white-space:normal; overflow-wrap:anywhere; }
.public-site .gallery-card { margin:0; overflow:hidden; transition:transform .25s,box-shadow .25s; }
.public-site .gallery-card .photo { border-radius:0; border:0; }
.public-site .gallery-card .gallery-logo img { object-fit:contain; padding:16px; }
.public-site .gallery-card figcaption { padding:22px; }
.public-site .gallery-card h2 { font-size:1.15rem; margin:0; letter-spacing:0; }
.public-site .promotion-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.public-site .promotion-card { min-width:0; position:relative; padding:36px; border-radius:14px; background:var(--primary-maroon); color:white; overflow-wrap:anywhere; }
.public-site .promotion-card .eyebrow { color:#ffe3a3; }
.public-site .promotion-card h2 { font-size:1.75rem; margin-top:22px; }
.public-site .promotion-card p { color:#fff1f3; }
.public-site .discount { display:inline-block; padding:8px 16px; border-radius:6px; background:var(--accent-yellow); color:var(--background-dark); font-size:1.35rem; font-weight:800; }
.public-site .promotion-dates { display:grid; grid-template-columns:1fr 1fr; gap:16px; padding-top:22px; border-top:1px solid #ffffff40; }
.public-site .promotion-dates dt { font-size:.75rem; color:#ffe3a3; }
.public-site .promotion-dates dd { margin:4px 0 0; font-weight:600; }
.public-site .promotion-card .text-link { color:var(--accent-yellow); }
.public-site .contact-layout { align-items:start; }
.public-site .contact-info { padding-top:22px; }
.public-site .contact-item { padding-top:22px; margin-top:16px; border-top:1px solid var(--border); }
.public-site .contact-item p { margin:12px 0 0; }
.public-site .contact-phone { font-size:1.6rem; font-weight:800; color:var(--primary-maroon); }
.public-site .contact-form h2 { font-size:1.6rem; }
.public-site .contact-form > p { font-size:.8rem; }
.public-site .contact-form label { display:block; font-size:.85rem; font-weight:700; margin:18px 0 7px; }
.public-site .contact-form label span { color:var(--text-muted); font-weight:400; }
.public-site .contact-form input:not([type=hidden]),.public-site .contact-form textarea { display:block; width:100%; min-width:0; border:1px solid #c8bbb5; border-radius:7px; background:white; padding:12px 14px; color:var(--text-dark); }
.public-site .contact-form textarea { resize:vertical; }
.public-site .contact-form button { width:100%; margin-top:24px; }
.public-site .notice { padding:24px; border:1px solid var(--border); border-radius:10px; background:white; margin-bottom:30px; grid-column:1 / -1; }
.public-site .notice h2 { font-size:1.2rem; }
.public-site .success { background:#eef8f0; border-color:#99c7a4; color:#225632; }
.public-site .error { background:#fff0f0; border-color:#d89ba6; color:#841426; }
.public-site .empty-state { padding:65px 0; }
.public-site .site-footer { background:var(--background-dark); color:white; padding:56px 0 0; }
.public-site .footer-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:64px; padding-bottom:40px; }
.public-site .footer-brand { display:block; font-size:1.8rem; font-weight:800; margin-bottom:18px; }
.public-site .footer-grid h3 { color:var(--accent-yellow); font-size:.85rem; letter-spacing:.04em; }
.public-site .footer-grid p { color:#c9c5c2; margin-top:16px; font-size:.9rem; }
.public-site .footer-links { display:grid; gap:9px; }
.public-site .footer-grid a:hover { color:var(--accent-yellow); }
.public-site .copyright { border-top:1px solid #ffffff20; padding:22px 0; font-size:.75rem; color:#c9c5c2; }
@media (max-width:1100px) {
 .public-site .navigation { gap:16px; }
 .public-site .brand { font-size:1.25rem; }
 .public-site .split { gap:36px; }
}
@media (max-width:900px) {
 .public-site .header-container { flex-wrap:wrap; min-height:88px; padding-block:14px; gap:12px; }
 .public-site .nav-toggle:not([hidden]) { display:block; }
 .public-site .navigation { width:100%; flex-wrap:wrap; }
 .public-site .navigation.enhanced { display:none; }
 .public-site .navigation.is-open { display:flex; }
 .public-site .navigation a { padding:12px; }
 .public-site .card-grid,.public-site .menu-grid,.public-site .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .public-site .hero-copy h1 { font-size:3rem; }
 .public-site .hero-layout { gap:28px; }
 .public-site .visual-caption { padding:18px; }
 .public-site .brand-strip span { margin:0 15px; }
}
@media (max-width:768px) {
 .public-site .split { grid-template-columns:minmax(0,1fr); gap:34px; }
 .public-site .hero-visual { max-width:520px; width:100%; margin-inline:auto; }
 .public-site .section { padding:60px 0; }
 .public-site .home-hero { padding:50px 0 60px; }
 .public-site .hero-copy h1 { font-size:clamp(2.8rem,8vw,4rem); }
 .public-site .promotion-grid { grid-template-columns:minmax(0,1fr); }
 .public-site .section-heading { align-items:flex-start; }
 .public-site .footer-grid { gap:28px; grid-template-columns:1.3fr 1fr; }
}
@media (max-width:520px) {
 .public-site .container { width:calc(100% - 36px); }
 .public-site .brand { gap:10px; font-size:1.15rem; }
 .public-site .brand small { font-size:.48rem; }
 .public-site .brand-logo,.public-site .logo-placeholder { width:48px; height:48px; }
 .public-site .nav-toggle { font-size:.78rem; }
 .public-site .navigation.is-open { display:grid; grid-template-columns:1fr 1fr; }
 .public-site .card-grid,.public-site .menu-grid,.public-site .gallery-grid,.public-site .footer-grid { grid-template-columns:minmax(0,1fr); }
 .public-site .section-heading { flex-direction:column; gap:12px; }
 .public-site .button-row { align-items:stretch; flex-direction:column; }
 .public-site .button-row .btn { width:100%; }
 .public-site .card,.public-site .promotion-card { padding:24px; }
 .public-site .brand-strip { font-size:.56rem; letter-spacing:.05em; }
 .public-site .brand-strip span { margin:0 6px; }
 .public-site .page-banner { padding:50px 0; }
 .public-site .cta { padding:58px 0; }
}
@media (prefers-reduced-motion:reduce) {
 .public-site *, .public-site *::before, .public-site *::after { transition:none; animation:none; }
}


/* Contact location card */
.public-site .location-section .tag { margin-bottom:16px; }
.public-site .location-card { margin:0; min-width:0; overflow:hidden; background:var(--background-white); border:1px solid var(--border); border-radius:14px; box-shadow:0 8px 24px #1919190a; }
.public-site .location-caption { padding:22px 22px 18px; border-top:4px solid var(--accent-yellow); }
.public-site .location-caption h3 { color:var(--primary-maroon); font-size:clamp(1.2rem,2vw,1.5rem); margin-bottom:10px; }
.public-site .location-caption p { margin:0; font-size:.9rem; }
.public-site .location-image-link { display:block; }
.public-site .location-image-link img { display:block; width:100%; height:auto; aspect-ratio:1908 / 966; object-fit:cover; }
.public-site .location-image-link:focus-visible { outline-offset:-4px; }
.public-site .location-card-footer { padding:8px 22px; border-top:1px solid var(--border); }
.public-site .location-placeholder { min-height:190px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; padding:24px 16px; border-top:1px dashed #bb9b90; background:var(--background-light); color:var(--text-muted); text-align:center; }
.public-site .location-placeholder code { font-size:.75rem; overflow-wrap:anywhere; }
.public-site .location-sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }

