/* =========================================================
   Taste of Paris — Design tokens
   ========================================================= */
:root{
  --cream:        #FAF7F0;
  --cream-2:      #FFFDF8;
  --black:        #111111;
  --black-2:      #1a1a1a;
  --olive:        #B7CD38;
  --olive-dark:   #7C8A28;
  --gold:         #C7A24A;
  --gold-dark:    #A9843A;
  --ink:          #2b2621;
  --ink-soft:     #6b6459;
  --line:         #e7e0d2;
  --serif:        'Playfair Display', Georgia, 'Times New Roman', serif;
  --sans:         'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --maxw:         1200px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
  outline:2px solid var(--gold); outline-offset:2px;
}
body{
  margin:0;
  font-family:var(--sans);
  color:var(--ink);
  background:var(--cream);
  line-height:1.6;
  font-size:16px;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3,h4{ font-family:var(--serif); font-weight:600; margin:0 0 .4em; color:var(--black-2); line-height:1.15; }
p{ margin:0 0 1em; color:var(--ink-soft); }
.container{ max-width:var(--maxw); margin:0 auto; padding:0 24px; }
.eyebrow{
  display:block; font-size:.75rem; letter-spacing:.14em; text-transform:uppercase;
  font-weight:600; color:var(--gold-dark); margin-bottom:.6em;
}
.btn{
  display:inline-block; font-family:var(--sans); font-weight:600; font-size:.8rem;
  letter-spacing:.06em; text-transform:uppercase; padding:14px 26px; border-radius:2px;
  border:2px solid transparent; cursor:pointer; transition:opacity .15s ease, transform .15s ease;
}
.btn:hover{ opacity:.85; }
.btn-gold{ background:var(--gold); color:#241d0c; }
.btn-dark{ background:var(--black); color:#fff; border-color:var(--black); }
.btn-outline{ background:transparent; color:#fff; border-color:rgba(255,255,255,.6); }
.btn-outline-dark{ background:transparent; color:var(--black); border-color:var(--black); }
.btn-olive{ background:var(--olive); color:#1e2308; }

/* =========================================================
   Top bar + header
   ========================================================= */
.top-bar{
  background:var(--black); color:#fff; font-size:.72rem; letter-spacing:.04em;
}
.top-bar .container{ display:flex; justify-content:space-between; align-items:center; padding-top:8px; padding-bottom:8px; }
.top-bar a{ color:#fff; opacity:.9; }
.top-bar-social a{ margin-left:16px; text-transform:uppercase; font-weight:600; }

.site-header{ background:var(--cream-2); border-bottom:1px solid var(--line); position:relative; }
.site-header .container{ display:flex; align-items:center; justify-content:space-between; padding-top:14px; padding-bottom:14px; gap:24px; }
.brand{ display:flex; align-items:center; gap:14px; }
.brand img.logo{ width:52px; height:52px; border-radius:50%; }
.brand .brand-name{ font-family:var(--serif); font-size:1.4rem; font-weight:600; color:var(--black-2); line-height:1.1; }
.brand .brand-tag{ font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); }

.nav-menu{ list-style:none; display:flex; gap:30px; margin:0; padding:0; }
.nav-menu a{
  font-size:.8rem; font-weight:600; letter-spacing:.05em; text-transform:uppercase;
  color:var(--black-2); padding-bottom:6px; border-bottom:2px solid transparent;
}
.nav-menu li.current-menu-item > a,
.nav-menu a:hover,
.nav-menu a.active{ border-bottom-color:var(--gold); }
/* WordPress menu <li>s carry the core class "menu-item", which also matches the
   Menu page's food-card .menu-item styling. Reset just those card properties
   (same approach as the Footer Menu fix below). */
.nav-menu .menu-item{ display:list-item; gap:0; border:0; background:none; border-radius:0; overflow:visible; }

.header-right{ display:flex; align-items:center; gap:26px; }
.menu-toggle{ display:none; background:none; border:none; font-size:1.6rem; cursor:pointer; }

@media (max-width:900px){
  .nav-menu{
    display:none; position:absolute; top:100%; left:0; right:0; background:var(--cream-2);
    flex-direction:column; gap:0; border-top:1px solid var(--line); z-index:50;
  }
  .nav-menu.open{ display:flex; }
  .nav-menu a{ padding:14px 24px; border-bottom:1px solid var(--line); display:block; }
  .menu-toggle{ display:block; }
  .header-right .btn{ display:none; }
}

/* =========================================================
   Page header (interior pages)
   ========================================================= */
.page-hero{ padding:70px 0 40px; border-bottom:1px solid var(--line); }
.page-hero h1{ font-size:2.6rem; }
.page-hero p{ max-width:640px; font-size:1.05rem; }

/* =========================================================
   Home — Hero
   ========================================================= */
.hero{
  position:relative; min-height:640px; display:flex; align-items:center;
  background-size:cover; background-position:center; color:#fff; overflow:hidden;
}
.hero::before{
  content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(90deg, rgba(10,10,10,.78) 10%, rgba(10,10,10,.45) 55%, rgba(10,10,10,.15) 100%);
}
.hero-video{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0;
}
.hero .container{ position:relative; z-index:2; }
.hero-content{ max-width:640px; padding:60px 0; }
.hero h1{ color:#fff; font-size:3.4rem; margin-bottom:.3em; }
.hero h1 em{ font-style:italic; }
.hero p{ color:#f1efe9; font-size:1.1rem; max-width:520px; }
.hero .btn-row{ display:flex; gap:14px; margin-top:26px; flex-wrap:wrap; }

.stat-strip{ background:var(--black); color:#fff; }
.stat-grid{ display:grid; grid-template-columns:repeat(4,1fr); }
.stat-grid > div{ padding:26px 24px; border-left:1px solid rgba(255,255,255,.12); }
.stat-grid > div:first-child{ border-left:none; }
.stat-num{ color:var(--gold); font-size:.75rem; font-weight:700; letter-spacing:.08em; margin-right:6px; }
.stat-grid h4{ color:#fff; font-family:var(--sans); font-size:.85rem; text-transform:uppercase; letter-spacing:.05em; margin:.4em 0 .3em; }
.stat-grid p{ color:#b9b6ad; font-size:.85rem; margin:0; }
@media (max-width:800px){ .stat-grid{ grid-template-columns:repeat(2,1fr); } .stat-grid > div:nth-child(2n+1){border-left:none;} }

/* =========================================================
   Section spacing / headers
   ========================================================= */
.section{ padding:80px 0; }
.section-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:44px; flex-wrap:wrap; }
.section-head h2{ font-size:2.2rem; margin:0; }
.section-head p{ max-width:360px; margin:0; }
.section-head.center{ flex-direction:column; align-items:center; text-align:center; }

/* Featured favorites grid */
.feature-grid{ display:grid; grid-template-columns:1.4fr 1fr; gap:20px; }
.feature-grid .big{ position:relative; border-radius:2px; overflow:hidden; min-height:420px; background-size:cover; background-position:center; }
.feature-grid .small-col{ display:grid; grid-template-rows:1fr 1fr; gap:20px; }
.feature-grid .small{ position:relative; border-radius:2px; overflow:hidden; min-height:200px; background-size:cover; background-position:center; }
/* Featured Favorites layout states — used only when homepage tiles are driven
   by real featured menu_item records and fewer than 3 are currently featured;
   the normal 3-item layout above is unaffected. */
.feature-grid .feature-big--full{ grid-column:1 / -1; }
.feature-grid .feature-small-col--single{ grid-template-rows:1fr; }
.feature-cap{ position:absolute; left:0; right:0; bottom:0; padding:20px; background:linear-gradient(0deg, rgba(0,0,0,.7), transparent); color:#fff; }
.feature-cap .eyebrow{ color:var(--gold); margin-bottom:.2em; }
.feature-cap h3{ color:#fff; font-size:1.3rem; margin:0; }
@media (max-width:800px){ .feature-grid{ grid-template-columns:1fr; } }

/* About split (dark) */
.about-split{ background:var(--black); color:#fff; }
.about-split .container{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; padding-top:80px; padding-bottom:80px; }
.about-split img{ border-radius:2px; height:auto; }
.about-split h2{ color:#fff; font-size:2.3rem; }
.about-split p{ color:#cfccc3; }
@media (max-width:850px){ .about-split .container{ grid-template-columns:1fr; } .about-split .photo{order:-1;} }

/* Simple ingredients gradient band */
.band-gradient{
  background:linear-gradient(90deg, #ecdcb9, #f6f1e5 75%);
  padding:70px 0;
}
.band-gradient h2{ font-size:2.4rem; }
.band-gradient p{ max-width:460px; }

/* Reviews */
.review-grid{ display:grid; grid-template-columns:1fr .7fr 1fr; gap:20px; }
.review-card{ background:#fff; border:1px solid var(--line); padding:32px; border-radius:2px; }
.review-card .stars{ color:var(--gold); letter-spacing:2px; margin-bottom:14px; }
.review-card blockquote{ font-family:var(--serif); font-size:1.3rem; margin:0 0 16px; color:var(--black-2); }
.review-card cite{ font-style:normal; font-weight:700; font-size:.8rem; letter-spacing:.05em; text-transform:uppercase; }
.review-stat{ background:var(--black); color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:32px; }
.review-stat .big-num{ font-family:var(--serif); font-size:3rem; color:var(--gold); }
.review-stat .label{ font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; margin-top:.3em; }
.review-stat .sub{ font-size:.8rem; color:#bdb9ad; margin-top:.4em; }
@media (max-width:850px){ .review-grid{ grid-template-columns:1fr; } }

/* Newsletter (dark) */
.newsletter{ background:var(--black); color:#fff; padding:56px 0; }
.newsletter .container{ display:flex; justify-content:space-between; align-items:center; gap:40px; flex-wrap:wrap; }
.newsletter h2{ color:#fff; font-size:1.9rem; margin-bottom:.2em; }
.newsletter p{ color:#bdb9ad; margin:0; max-width:420px; }
.newsletter-form{ display:flex; gap:10px; flex-wrap:wrap; }
.newsletter-form input{
  background:#1d1d1d; border:1px solid #3a3a3a; color:#fff; padding:13px 16px; font-family:var(--sans);
  border-radius:2px; min-width:170px;
}
.newsletter-form input::placeholder{ color:#8f8b81; }

/* Visit / map */
.visit .container{ display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center; padding:80px 24px; }
.visit h2{ font-size:2.2rem; }
.visit iframe, .visit .map-embed{ width:100%; height:340px; border:0; border-radius:2px; }
.visit .actions{ display:flex; align-items:center; gap:22px; margin-top:20px; }
@media (max-width:850px){ .visit .container{ grid-template-columns:1fr; } }

/* Footer */
.site-footer{ background:var(--black); color:#cfccc3; padding-top:60px; }
.footer-grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:40px; padding-bottom:40px; }
.footer-grid h4{ color:#fff; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; margin-bottom:1.1em; }
.footer-grid ul{ list-style:none; margin:0; padding:0; }
.footer-grid li{ margin-bottom:.7em; }
/* A WordPress-assigned Footer Menu renders each <li> with the core nav-menu class
   "menu-item", which unintentionally matches the unrelated .menu-item food-card
   styling from the Menu page (display:flex, white background, border, radius).
   Reset just those properties, scoped to the footer, so an assigned Footer Menu
   matches the original plain-text fallback links. */
.footer-grid .menu-item{ display:list-item; gap:0; border:0; background:none; border-radius:0; overflow:visible; }
.footer-grid a{ color:#cfccc3; font-size:.92rem; }
.footer-grid a:hover{ color:var(--gold); }
.footer-brand img{ width:64px; height:64px; border-radius:50%; margin-bottom:16px; }
.footer-brand p{ color:#a19d92; font-size:.9rem; max-width:280px; }
.footer-bottom{ border-top:1px solid #2a2a2a; padding:18px 0; font-size:.78rem; color:#847f74; display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; }
.footer-bottom a{ color:#a89a5f; }
@media (max-width:850px){ .footer-grid{ grid-template-columns:1fr 1fr; } }

/* =========================================================
   Menu page
   ========================================================= */
.menu-note{ font-size:.95rem; color:var(--ink-soft); max-width:600px; }
.menu-tabs{
  position:sticky; top:0; z-index:40; background:var(--black); display:flex; overflow-x:auto;
  -webkit-overflow-scrolling:touch; gap:0; margin-bottom:50px; scrollbar-width:thin;
}
.menu-tab-group{
  display:flex; flex-direction:column; justify-content:center; padding:10px 18px;
  border-right:1px solid rgba(255,255,255,.1); flex-shrink:0;
}
.menu-tab-group-label{
  color:#8a8578; font-size:.62rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  margin-bottom:4px; white-space:nowrap;
}
.menu-tab-group-items{ display:flex; gap:4px; }
.menu-tabs a{
  color:#e9e6dd; font-size:.76rem; font-weight:600; letter-spacing:.03em; text-transform:uppercase;
  padding:6px 10px; white-space:nowrap; border-bottom:2px solid transparent; border-radius:2px;
}
.menu-tabs a:hover, .menu-tabs a.active{ border-bottom-color:var(--gold); color:#fff; background:rgba(255,255,255,.06); }

.menu-category{ padding-top:20px; margin-bottom:60px; scroll-margin-top:64px; }
.menu-category h2{ font-size:2rem; border-bottom:1px solid var(--line); padding-bottom:18px; margin-bottom:26px; }
.menu-items{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.menu-item{ display:flex; gap:16px; border:1px solid var(--line); background:#fff; border-radius:2px; overflow:hidden; }
.menu-item img{ width:120px; min-width:120px; height:100%; object-fit:cover; }
.menu-item-noimg{ width:120px; min-width:120px; background:linear-gradient(135deg, #f1ede2, #e7e0d2); }
.menu-item.is-unavailable{ opacity:.55; }
/* Available menu cards are links to the online ordering menu (unavailable cards stay plain divs). */
.menu-items a.menu-item{ cursor:pointer; transition:border-color .15s ease, box-shadow .15s ease; }
.menu-items a.menu-item:hover{ border-color:var(--gold); box-shadow:0 2px 10px rgba(0,0,0,.06); }
.menu-items a.menu-item:focus-visible{ outline:2px solid var(--gold-dark); outline-offset:2px; border-color:var(--gold); }
.menu-item-body{ padding:16px 16px 16px 0; }
.menu-item-body h3{ font-size:1.05rem; margin-bottom:.3em; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.menu-item-body p{ font-size:.88rem; margin:0; }
.tag-unavailable{
  font-size:.6rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
  background:#f4e3c8; color:#7a5a1e; padding:2px 8px; border-radius:10px;
}
.menu-item-tags{ margin-top:8px; display:flex; gap:6px; flex-wrap:wrap; }
.diet-tag{
  font-size:.62rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  background:#e4f0e0; color:#3a6b30; padding:2px 8px; border-radius:10px;
}
@media (max-width:700px){ .menu-items{ grid-template-columns:1fr; } .menu-item img, .menu-item-noimg{ width:100px; min-width:100px; } }

.menu-cta{ background:var(--black); border-radius:2px; padding:40px; display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; margin-top:20px; }
.menu-cta h3{ color:#fff; font-size:1.6rem; margin:0; }
.menu-cta .eyebrow{ color:var(--gold); }

/* =========================================================
   About page
   ========================================================= */
.about-lead{ text-align:center; max-width:640px; margin:0 auto 50px; }
.about-main .container{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start; padding-bottom:60px; }
.about-main img{ border-radius:2px; margin-bottom:10px; height:auto; }
.about-main .caption{ font-size:.78rem; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.05em; }
.about-main blockquote{ font-family:var(--serif); font-style:italic; font-size:1.3rem; border-top:1px solid var(--line); margin-top:24px; padding-top:20px; color:var(--black-2); }
/* Gutenberg Quote block wraps its text in <p>: keep the quote's own color/spacing. */
.about-main blockquote p{ color:inherit; margin:0; }
@media (max-width:850px){ .about-main .container{ grid-template-columns:1fr; } }

.values-strip{ background:var(--black); }
.values-grid{ display:grid; grid-template-columns:repeat(3,1fr); }
.values-grid > div{ padding:44px 34px; border-left:1px solid rgba(255,255,255,.12); color:#fff; }
.values-grid > div:first-child{ border-left:none; }
.values-grid .stat-num{ display:block; margin-bottom:.6em; }
.values-grid h4{ color:#fff; font-size:1rem; }
.values-grid p{ color:#b9b6ad; font-size:.88rem; margin:0; }
@media (max-width:750px){ .values-grid{ grid-template-columns:1fr; } .values-grid > div{ border-left:none; border-top:1px solid rgba(255,255,255,.12); } .values-grid > div:first-child{ border-top:none; } }

/* =========================================================
   Gallery page
   ========================================================= */
.gallery-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.gallery-grid img{ border-radius:2px; width:100%; height:100%; object-fit:cover; }
.gallery-grid .full{ grid-column:1 / -1; }
.gallery-grid .full img{ max-height:520px; }
@media (max-width:800px){ .gallery-grid{ grid-template-columns:1fr; } }

/* Gallery page — native WordPress Gallery block. Scoped to the .gallery-blocks
   wrapper output only by page-gallery.php, so other Gallery blocks elsewhere
   on the site are unaffected. Column count is fixed by this CSS regardless of
   the block's own "columns" setting, image count, or order, so adding,
   removing or reordering images never depends on a specific position or count.
   The parent selector chains .wp-block-gallery.has-nested-images (three classes)
   so it has a guaranteed specificity advantage over WordPress core's own
   ".wp-block-gallery.has-nested-images" rule (two classes), regardless of
   stylesheet load order. */
.gallery-blocks .wp-block-gallery.has-nested-images{ display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; margin:0; }
.gallery-blocks .wp-block-gallery.has-nested-images figure.wp-block-image{ margin:0; width:100% !important; display:block; }
.gallery-blocks .wp-block-gallery.has-nested-images .wp-block-image img{ display:block; width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:2px; }
.gallery-blocks .wp-block-gallery.has-nested-images figcaption{ font-size:.78rem; color:var(--ink-soft); margin-top:6px; }
@media (max-width:900px){ .gallery-blocks .wp-block-gallery.has-nested-images{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:600px){ .gallery-blocks .wp-block-gallery.has-nested-images{ grid-template-columns:1fr; } }

/* =========================================================
   Contact page
   ========================================================= */
.contact-wrap{ display:grid; grid-template-columns:.85fr 1.15fr; gap:60px; }
.contact-info h2{ font-size:1.8rem; }
.contact-info .info-block{ margin-bottom:20px; }
.contact-info .info-block strong{ display:block; font-size:.8rem; text-transform:uppercase; letter-spacing:.05em; color:var(--black-2); margin-bottom:.3em; }
.contact-info .links a{ text-decoration:underline; margin-right:18px; font-weight:600; font-size:.85rem; }
.contact-info .contact-hours{ list-style:none; margin:0; padding:0; max-width:320px; }
.contact-info .contact-hours li{ display:flex; justify-content:space-between; gap:16px; padding:3px 0; }
/* Private Events notice: editor content matches the built-in notice paragraph. */
.event-notice .entry-content p{ margin:0 0 .8em; color:var(--ink); font-size:.92rem; }
.event-notice .entry-content p:last-child{ margin-bottom:0; }
.contact-form{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.contact-form .full{ grid-column:1 / -1; }
.contact-form input, .contact-form textarea{
  width:100%; padding:14px 16px; border:1px solid var(--line); background:#fff; font-family:var(--sans);
  border-radius:2px; font-size:.95rem;
}
.contact-form textarea{ min-height:150px; resize:vertical; }
.contact-form button{ grid-column:1 / -1; }
@media (max-width:850px){ .contact-wrap{ grid-template-columns:1fr; } .contact-form{ grid-template-columns:1fr; } }
/* Footer logo contrast */
.site-footer .footer-brand img {
  background: #faf7ef;
  padding: 6px;
  box-sizing: border-box;
  object-fit: contain;
}

/* Footer layout on phones */
@media (max-width: 600px) {
  .site-footer {
    padding-top: 36px;
  }

  .site-footer .footer-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 26px;
    padding-bottom: 28px;
  }

  .site-footer .footer-grid > div {
    min-width: 0;
  }

  .site-footer .footer-brand img {
    width: 76px;
    height: 76px;
    margin-bottom: 12px;
  }

  .site-footer .footer-brand p {
    max-width: none;
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.6;
    color: #cfccc3;
  }

  .site-footer .footer-grid h4 {
    margin: 0 0 12px;
  }

  .site-footer .footer-grid li {
    margin-bottom: 8px;
    line-height: 1.6;
  }

  .site-footer .footer-grid li:last-child {
    margin-bottom: 0;
  }

  .site-footer .footer-bottom {
    padding: 16px 0;
    font-size: 0.75rem;
    line-height: 1.6;
    color: #b9b6ad;
  }
}

/* =========================================================
   Blog (native Posts) — home.php, category.php, single-post.php
   All long-form rules are scoped to .post-body so existing
   .entry-content pages (About, Gallery, Private Events) are unaffected.
   ========================================================= */

/* WordPress core's visually-hidden class (pagination / post navigation headings). */
.screen-reader-text{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* Keep "Blog" underlined in the nav while reading an article. */
.nav-menu li.current_page_parent > a{ border-bottom-color:var(--gold); }

/* Article grid */
.blog-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:28px; }
@media (max-width:900px){ .blog-grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:600px){ .blog-grid{ grid-template-columns:1fr; } }
.blog-empty{ text-align:center; }

/* Article card */
.post-card{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); border-radius:2px; overflow:hidden; }
.post-card-media{ display:block; aspect-ratio:4/3; overflow:hidden; background:linear-gradient(135deg, #f1ede2, #e7e0d2); }
.post-card-media img{ width:100%; height:100%; object-fit:cover; }
.post-card-noimg{ display:block; width:100%; height:100%; }
.post-card-body{ display:flex; flex-direction:column; flex:1; padding:24px; }
.post-card-body .eyebrow{ margin-bottom:.5em; }
.post-card-title{ font-size:1.35rem; margin:0 0 .35em; }
.post-card-title a:hover{ color:var(--gold-dark); }
.post-date{ display:block; font-size:.72rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:14px; }
.post-card-excerpt p{ font-size:.92rem; margin:0 0 1em; }
.post-card-more{ margin-top:auto; font-size:.78rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--black-2); }
.post-card-more:hover{ color:var(--gold-dark); }

/* Pagination (the_posts_pagination) */
.navigation.pagination{ margin-top:50px; }
.navigation.pagination .nav-links{ display:flex; justify-content:center; flex-wrap:wrap; gap:8px; }
.navigation.pagination .page-numbers{
  display:inline-block; min-width:42px; padding:10px 14px; text-align:center; border:1px solid var(--line);
  background:#fff; border-radius:2px; font-size:.78rem; font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:var(--black-2);
}
.navigation.pagination a.page-numbers:hover{ border-color:var(--gold); }
.navigation.pagination .page-numbers.current{ background:var(--black); border-color:var(--black); color:#fff; }
.navigation.pagination .page-numbers.dots{ background:none; border-color:transparent; }

/* Single article */
.post-container{ max-width:808px; } /* 760px reading column + gutters */
.post-header{ padding:70px 0 30px; text-align:center; }
.post-header h1{ font-size:2.6rem; }
.post-header .post-date{ margin-bottom:0; }
.post-featured{ margin-bottom:40px; }
.post-featured img{ width:100%; height:auto; border-radius:2px; }

/* Long-form content */
.post-body{ font-size:1.05rem; line-height:1.75; padding-bottom:10px; }
.post-body::after{ content:''; display:table; clear:both; }
.post-body p{ color:var(--ink); margin:0 0 1.3em; }
.post-body h2{ font-size:1.8rem; margin:1.6em 0 .5em; }
.post-body h3{ font-size:1.4rem; margin:1.4em 0 .4em; }
.post-body h4{ font-size:1.15rem; margin:1.3em 0 .4em; }
.post-body ul, .post-body ol{ margin:0 0 1.3em; padding-left:1.4em; color:var(--ink); }
.post-body li{ margin-bottom:.4em; }
.post-body a{ color:var(--gold-dark); text-decoration:underline; text-underline-offset:2px; }
.post-body a:hover{ color:var(--black-2); }
.post-body blockquote{ margin:1.8em 0; padding:4px 0 4px 22px; border-left:3px solid var(--gold); font-family:var(--serif); font-style:italic; font-size:1.3rem; color:var(--black-2); }
.post-body blockquote p{ color:inherit; margin:0 0 .5em; }
.post-body blockquote cite{ display:block; font-family:var(--sans); font-style:normal; font-size:.78rem; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-soft); }
.post-body img{ height:auto; border-radius:2px; }
.post-body figure{ margin:1.8em 0; }
.post-body figcaption{ font-size:.78rem; color:var(--ink-soft); margin-top:8px; text-align:center; }
.post-body .alignleft{ float:left; margin:.3em 1.5em 1em 0; max-width:50%; }
.post-body .alignright{ float:right; margin:.3em 0 1em 1.5em; max-width:50%; }
.post-body .aligncenter{ margin-left:auto; margin-right:auto; }
.post-body img.aligncenter{ display:block; }
@media (max-width:600px){
  .post-header{ padding-top:50px; }
  .post-header h1{ font-size:2rem; }
  .post-body .alignleft, .post-body .alignright{ float:none; margin:1em 0; max-width:100%; }
}

/* Article footer + previous/next */
.post-footer{ border-top:1px solid var(--line); margin-top:20px; padding:22px 0 10px; }
.post-terms{ font-size:.88rem; margin:0 0 .5em; }
.post-terms span{ font-size:.72rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--black-2); margin-right:6px; }
.post-terms a{ color:var(--gold-dark); text-decoration:underline; }
.post-navigation{ border-top:1px solid var(--line); padding:30px 0 70px; }
.post-navigation .nav-links{ display:flex; justify-content:space-between; gap:24px; }
.post-navigation .nav-next{ margin-left:auto; text-align:right; }
.post-nav-label{ display:block; font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--gold-dark); margin-bottom:4px; }
.post-nav-title{ font-family:var(--serif); font-size:1.15rem; color:var(--black-2); }
@media (max-width:600px){
  .post-navigation .nav-links{ flex-direction:column; }
  .post-navigation .nav-next{ margin-left:0; text-align:left; }
}