/*
Theme Name: Osteria
Theme URI: https://example.com/osteria
Author: Your Name
Author URI: https://example.com
Description: A warm, elegant restaurant theme with a signature sample-menu block, a reservations and hours bar, a seasonal hero and an unhurried kitchen journal. A refined Didone display serif (Prata) with a clean Inter body, per-category accents, light and dark modes, self-hosted fonts and one-click demo content with original artwork.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: osteria
Tags: blog, news, restaurant, food, two-columns, right-sidebar, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready, full-width-template
*/

:root {
  --bg: #faf6ee;
  --surface: #ffffff;
  --surface-2: #f2ebdd;
  --text: #2b241e;
  --text-2: #574d42;
  --muted: #938676;
  --line: #e8ddc9;
  --accent: #8a3341;
  --accent-ink: #ffffff;
  --accent-hover: #2b241e;
  --accent-hover-ink: #ffffff;

  --font-display: "Prata", Georgia, "Times New Roman", serif;
  --font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-ui: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --w-display: 400;
  --lh-display: 1.14;
  --track-display: 0;

  --radius: 10px;
  --radius-ui: 7px;
  --footer-bg: #2b241e;
  --footer-text: #f4ece0;
  --footer-muted: #ab9d8c;
  --footer-line: rgba(255,255,255,.12);
  --overlay: linear-gradient(180deg, rgba(25,18,14,0) 32%, rgba(25,18,14,.9) 100%);
}
:root[data-theme="dark"] {
  --bg: #1a1613;
  --surface: #221c18;
  --surface-2: #2b2420;
  --text: #f4ece0;
  --text-2: #d0c4b4;
  --muted: #9c8e7e;
  --line: #352c24;
  --accent: #c8596a;
  --accent-ink: #1a1613;
  --accent-hover: #f4ece0;
  --accent-hover-ink: #1a1613;
  --footer-bg: #110e0b;
}

body { font-size: 17px; }
.meta, .cat, .primary-menu a, .mobile-menu a, .section-link, .widget-title, .btn, .header-cta { font-family: var(--font-ui); }
.brand__name { font-family: var(--font-display); font-weight: 400; font-size: 1.6rem; letter-spacing: .01em; }
h1, h2, h3, h4, .card__title, .mini__title, .entry-title, .section-title { font-family: var(--font-display); font-weight: 400; letter-spacing: 0; }
.entry-content { font-family: var(--font-body); }

.site-header { border-bottom: 1px solid var(--line); }
.primary-menu > li > a { font-weight: 500; font-size: .88rem; letter-spacing: .02em; }
.header-cta { background: var(--accent); color: #fff; border-radius: 100px; font-weight: 600; }
.cat { color: hsl(var(--cat-hue,350) 48% 44%); font-family: var(--font-ui); font-weight: 700; text-transform: uppercase; letter-spacing: .09em; font-size: .71rem; }
[data-theme="dark"] .cat { color: hsl(var(--cat-hue,350) 55% 70%); }
.card-overlay .cat { color: #fff; }
.section-title { font-size: clamp(1.6rem, 2.8vw, 2.3rem); }
.section-head { align-items: baseline; }

/* ---------- Hours bar ---------- */
.os-hours { background: var(--text); color: var(--bg); }
[data-theme="dark"] .os-hours { background: #000; }
.os-hours__row { display: flex; align-items: center; justify-content: center; gap: 1.5rem; padding-block: .65rem; flex-wrap: wrap; }
.os-hours__text { font-family: var(--font-ui); font-size: .85rem; letter-spacing: .04em; }
.os-hours__btn { background: var(--accent); color: #fff; font-size: .78rem; padding: .4rem 1.1rem; border-radius: 100px; font-weight: 600; }
.os-hours__btn:hover { background: var(--accent); color: #fff; opacity: .9; }

/* ---------- Hero ---------- */
.os-hero__grid { display: grid; gap: 16px; }
@media (min-width: 800px) { .os-hero__grid { grid-template-columns: 1.5fr 1fr; align-items: stretch; } }
.os-hero__big .card-overlay { height: 100%; min-height: 440px; border-radius: var(--radius); overflow: hidden; }
.os-hero__big .card__title { font-size: clamp(1.8rem, 3.2vw, 2.8rem); }
.os-hero__side { display: grid; gap: 16px; align-content: start; }
.os-hero__side .card .media { aspect-ratio: 16/10; border-radius: var(--radius); }
.os-hero__side .card__title { font-size: 1.3rem; }

/* ---------- Menu ---------- */
.os-menu { background: var(--surface-2); padding-block: clamp(40px, 5vw, 76px); }
.os-menu__head { text-align: center; margin-bottom: 2.2rem; }
.os-menu__title { font-family: var(--font-display); font-size: clamp(1.9rem, 3.2vw, 2.8rem); }
.os-menu__note { color: var(--muted); font-style: italic; margin-top: .4rem; }
.os-menu__grid { display: grid; gap: clamp(28px, 4vw, 52px); }
@media (min-width: 720px) { .os-menu__grid { grid-template-columns: repeat(3, 1fr); } }
.os-course__name { font-family: var(--font-display); font-size: 1.35rem; color: var(--accent); border-bottom: 1px solid var(--line); padding-bottom: .4rem; margin-bottom: .7rem; }
.os-dishes { list-style: none; margin: 0; padding: 0; }
.os-dish { display: flex; align-items: baseline; gap: .5rem; padding: .55rem 0; }
.os-dish__name { font-family: var(--font-body); color: var(--text); font-size: .98rem; }
.os-dish__dots { flex: 1; border-bottom: 1px dotted var(--muted); min-width: 1rem; transform: translateY(-4px); opacity: .6; }
.os-dish__price { font-family: var(--font-display); color: var(--accent); font-size: 1.1rem; }
.os-dish__price::before { content: "$"; opacity: .55; font-size: .8em; margin-right: .05em; }

/* ---------- Sections ---------- */
.os-section .card .media, .os-latest .card .media { border-radius: var(--radius); }
.os-band { background: var(--surface-2); padding-block: clamp(32px, 4vw, 52px); }

/* ---------- Signup ---------- */
.os-signup .signup--band { background: var(--accent); color: #fff; border-radius: var(--radius); padding: clamp(28px, 4vw, 48px); display: grid; grid-template-columns: 1fr auto; gap: 1.5rem; align-items: center; }
.os-signup .signup--band .signup__title { color: #fff; font-family: var(--font-display); font-weight: 400; font-size: clamp(1.7rem, 2.8vw, 2.4rem); }
.os-signup .signup--band .signup__desc { color: rgba(255,255,255,.9); }
.os-signup .signup--band .signup__form { min-width: 320px; }
.os-signup .signup--band .signup__button { background: #2b241e; color: #fff; }
.os-signup .signup--band .signup__note { color: rgba(255,255,255,.82); }
@media (max-width: 760px) { .os-signup .signup--band { grid-template-columns: 1fr; } .os-signup .signup--band .signup__form { min-width: 0; } }

.entry-content { font-size: 1.1rem; line-height: 1.75; }
.entry-content blockquote { border-left: 3px solid var(--accent); font-family: var(--font-display); font-style: italic; font-size: 1.3rem; line-height: 1.4; }
