/* ===================================
   The Luxetarians - WordPress Theme Styles
   =================================== */

/* Reset & Base Styles */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    --champagne: #E7D9C4;
    --charcoal: #282623;
    --off-white: #F8F8F5;
    --forest-green: #14302F;
    --soft-black: #262626;
    --border-color: #E5E5E0;
}

body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 18px;
    line-height: 1.75;
    color: var(--soft-black);
    background: var(--off-white);
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Libre Baskerville', Georgia, serif;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.02em;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    text-decoration: none;
    color: inherit;
}

/* Container */
.container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 clamp(24px, 5vw, 64px);
}

/* ===================================
   Navigation
   =================================== */
.navbar {
    background: rgba(40, 38, 35, 0.97);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    position: sticky;
    top: 0;
    z-index: 1000;
}

.nav-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 80px;
}

.brand {
    display: flex;
    align-items: center;
    gap: 16px;
}

.logo {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
    border: 2px solid rgba(231, 217, 196, 0.3);
    transition: border-color 200ms;
}

.logo:hover {
    border-color: var(--champagne);
}

.brand-text {
    display: none;
}

@media (min-width: 768px) {
    .brand-text {
        display: block;
    }

    .brand-name {
        font-family: 'Libre Baskerville', serif;
        font-size: 20px;
        font-weight: 600;
        color: var(--champagne);
    }

    .brand-tagline {
        font-size: 12px;
        color: rgba(231, 217, 196, 0.7);
        letter-spacing: 0.02em;
        margin-top: 2px;
    }
}

.nav-links {
    display: none;
    gap: 40px;
}

@media (min-width: 768px) {
    .nav-links {
        display: flex;
    }
}

.nav-link {
    font-size: 15px;
    font-weight: 500;
    color: rgba(231, 217, 196, 0.7);
    position: relative;
    transition: color 200ms;
}

.nav-link:hover,
.nav-link.active {
    color: var(--champagne);
}

.nav-link::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--champagne);
    transform: scaleX(0);
    transition: transform 200ms;
}

.nav-link.active::after,
.nav-link:hover::after {
    transform: scaleX(1);
}

.mobile-menu-btn {
    display: block;
    background: none;
    border: none;
    color: var(--champagne);
    font-size: 24px;
    cursor: pointer;
}

@media (min-width: 768px) {
    .mobile-menu-btn {
        display: none;
    }
}

/* ===================================
   Hero Section
   =================================== */
.hero {
    position: relative;
    height: 75vh;
    min-height: 550px;
    max-height: 750px;
    overflow: hidden;
}

.hero-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(0,0,0,0.4), rgba(0,0,0,0.2), rgba(0,0,0,0.4));
}

.hero-content {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cta-button {
    display: inline-block;
    padding: 20px 48px;
    background: white;
    color: var(--charcoal);
    font-size: 20px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
    transition: all 300ms;
}

.cta-button:hover {
    background: var(--champagne);
    transform: scale(1.05);
}

/* ===================================
   Search Section
   =================================== */
.search-section {
    padding: 48px 0;
    border-bottom: 1px solid var(--border-color);
}

.search-form {
    max-width: 800px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.search-input {
    width: 100%;
    padding: 16px 24px 16px 48px;
    font-size: 18px;
    border: 1px solid var(--border-color);
    border-radius: 50px;
    background: white;
    outline: none;
    transition: border-color 200ms;
}

.search-input:focus {
    border-color: var(--champagne);
}

/* ===================================
   Sections
   =================================== */
.section {
    padding: 96px 0;
}

.section-light {
    background: rgba(231, 217, 196, 0.1);
}

.section-header {
    margin-bottom: 48px;
}

.eyebrow {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--forest-green);
    margin-bottom: 16px;
}

.section-title {
    font-size: clamp(36px, 4vw, 48px);
}

/* ===================================
   Post Grid
   =================================== */
.post-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 32px;
}

.post-card {
    background: white;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid var(--border-color);
    transition: all 300ms;
}

.post-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    border-color: var(--champagne);
}

.post-image {
    width: 100%;
    aspect-ratio: 4/3;
    object-fit: cover;
    transition: transform 600ms;
}

.post-card:hover .post-image {
    transform: scale(1.05);
}

.post-content {
    padding: 24px;
}

.post-category {
    display: inline-block;
    padding: 4px 12px;
    background: var(--forest-green);
    color: white;
    font-size: 12px;
    font-weight: 600;
    border-radius: 50px;
    margin-bottom: 12px;
}

.post-title {
    font-size: 24px;
    margin-bottom: 12px;
    transition: color 200ms;
}

.post-card:hover .post-title {
    color: var(--forest-green);
}

.post-excerpt {
    font-size: 16px;
    line-height: 1.6;
    color: #666;
    margin-bottom: 16px;
}

.post-meta {
    font-size: 14px;
    color: #999;
}

/* ===================================
   Filter Pills (Blog Categories)
   =================================== */
.filter-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
    align-items: center;
    margin: 24px auto 0;
    max-width: 1000px;
    position: relative;
    z-index: 2;
}

.filter-pills .pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 14px;
    border: 1px solid var(--border-color);
    border-radius: 999px;
    font-size: 14px;
    background: #fff;
    color: #333;
    text-decoration: none;
    cursor: pointer;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.filter-pills .pill-active {
    background: rgba(20, 48, 47, .08);
    border-color: rgba(20, 48, 47, .18);
    color: #123;
}

.filter-pills .pill:hover,
.filter-pills .pill:focus-visible {
    background: var(--champagne);
    border-color: var(--champagne);
    color: var(--charcoal);
    box-shadow: 0 0 0 2px rgba(231, 217, 196, .35);
    outline: none;
}

/* ===================================
   Footer
   =================================== */
.footer {
    background: rgba(231, 217, 196, 0.2);
    border-top: 1px solid var(--border-color);
    padding: 48px 0 24px;
}

.footer-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 48px;
    margin-bottom: 48px;
}

.footer-brand-name {
    font-family: 'Libre Baskerville', serif;
    font-size: 18px;
    font-weight: 700;
}

.footer-text {
    font-size: 14px;
    line-height: 1.6;
    color: #666;
    margin: 16px 0;
}

.social-links {
    display: flex;
    gap: 16px;
}

.social-link {
    font-size: 14px;
    color: var(--forest-green);
    transition: color 200ms;
}

.social-link:hover {
    color: var(--champagne);
}

.footer-heading {
    font-size: 16px;
    margin-bottom: 16px;
}

.footer-links {
    list-style: none;
}

.footer-links li {
    margin-bottom: 8px;
}

.footer-links a {
    font-size: 14px;
    color: #666;
    transition: color 200ms;
}

.footer-links a:hover {
    color: var(--forest-green);
}

.footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 32px;
    border-top: 1px solid var(--border-color);
    font-size: 14px;
    color: #666;
}

@media (max-width: 768px) {
    .footer-bottom {
        flex-direction: column;
        gap: 16px;
        text-align: center;
    }
}

/* ===== FIX: Blog/Archive Category Pills (center + hover + click) ===== */

/* Ensure the block is above overlaps and centered */
.filter-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center !important;
  align-items: center;
  margin: 24px auto 0;
  max-width: 1000px;
  position: relative;
  z-index: 10;            /* lift pills above any overlapping elements */
}

/* Make sure the <a> looks like a pill and can receive hover */
.filter-pills a.pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 14px;
  border: 1px solid var(--border-color);
  border-radius: 999px;
  font-size: 14px;
  background: #fff;
  color: #333;
  text-decoration: none;
  cursor: pointer;
  transition:
    background-color .2s ease,
    color .2s ease,
    border-color .2s ease,
    box-shadow .2s ease;
}

/* Active (current) tab look */
.filter-pills a.pill.pill-active {
  background: rgba(20,48,47,.08);
  border-color: rgba(20,48,47,.18);
  color: #123;
}

/* Stronger hover selector to beat generic link hovers */
.filter-pills a.pill:hover,
.filter-pills a.pill:focus-visible {
  background: var(--champagne) !important;
  border-color: var(--champagne) !important;
  color: var(--charcoal) !important;
  box-shadow: 0 0 0 2px rgba(231,217,196,.35);
  outline: none;
}

/* If anything above is overlaying, keep the search bar below the pills */
.search-form { position: relative; z-index: 1; }
/* Ensure the section doesn’t clip the pills’ hover ring */
.section, .section-light { overflow: visible; }

/* ===== FIX PACK: header nav + pills clickability/hover ===== */

/* 1) Normalize WP menu markup inside header */
.navbar .nav-links { display:flex; align-items:center; gap:40px; }
.navbar .nav-links > ul { list-style:none; margin:0; padding:0; display:flex; gap:40px; }
.navbar .nav-links > ul > li { margin:0; padding:0; }

/* Header links (higher specificity to beat global link styles) */
.navbar .nav-links a.nav-link {
  font-size:15px; font-weight:500;
  color: rgba(231,217,196,.85);
  position:relative; transition:color .2s;
}
.navbar .nav-links a.nav-link:hover,
.navbar .nav-links li.current-menu-item > a.nav-link,
.navbar .nav-links li.current_page_item > a.nav-link { color: var(--champagne); }
.navbar .nav-links a.nav-link::after {
  content:''; position:absolute; bottom:-4px; left:0; right:0; height:2px;
  background: var(--champagne); transform: scaleX(0); transition: transform .2s;
}
.navbar .nav-links a.nav-link:hover::after,
.navbar .nav-links li.current-menu-item > a.nav-link::after,
.navbar .nav-links li.current_page_item > a.nav-link::after { transform: scaleX(1); }

/* Mobile menu should never overlay content on desktop */
@media (min-width:768px){
  .nav-links { position: static !important; height: auto !important; background: transparent !important; }
  .nav-links.active { display: flex !important; }
}

/* 2) Stack-order: make sure page content sits above any stray overlay */
.navbar { position: sticky; top:0; z-index: 1000; }
.section, .section-light, .container, .section-header { position: relative; z-index: 1; }

/* 3) Pills row: centered, on top, clickable, with strong hover */
.filter-pills {
  display:flex; flex-wrap:wrap; gap:12px;
  justify-content:center !important; align-items:center;
  margin:24px auto 0; max-width:1000px;
  position: relative; z-index: 10;         /* keep above neighbors */
}
.filter-pills a.pill {
  display:inline-flex; align-items:center; justify-content:center;
  padding:10px 14px; border:1px solid var(--border-color); border-radius:999px;
  font-size:14px; background:#fff; color:#333; text-decoration:none; cursor:pointer;
  transition: background-color .2s, color .2s, border-color .2s, box-shadow .2s;
  pointer-events:auto;                      /* ensure anchors receive clicks */
}
.filter-pills a.pill.pill-active {
  background: rgba(20,48,47,.08);
  border-color: rgba(20,48,47,.18);
  color:#123;
}
.filter-pills a.pill:hover,
.filter-pills a.pill:focus-visible {
  background: var(--champagne) !important;
  border-color: var(--champagne) !important;
  color: var(--charcoal) !important;
  box-shadow: 0 0 0 2px rgba(231,217,196,.35);
  outline: none;
}

/* 4) Make sure the search block never sits above the pills */
.search-form { position: relative; z-index: 1; }

/* ===== FINAL FIX PACK: header nav, blog pills, about cards ===== */

/* 1) Header menu: target WP structure with higher specificity */
.navbar .nav-links { display:flex; align-items:center; gap:40px; }
.navbar .nav-links > ul { list-style:none; margin:0; padding:0; display:flex; gap:40px; }
.navbar .nav-links > ul > li { margin:0; padding:0; }
.navbar .nav-links > ul > li > a.nav-link {
  font-size:15px; font-weight:500;
  color: rgba(231,217,196,.85);
  position:relative; transition:color .2s;
}
.navbar .nav-links > ul > li > a.nav-link:hover,
.navbar .nav-links > ul > li.current-menu-item > a.nav-link,
.navbar .nav-links > ul > li.current_page_item > a.nav-link { color: var(--champagne); }
.navbar .nav-links > ul > li > a.nav-link::after {
  content:''; position:absolute; bottom:-4px; left:0; right:0; height:2px;
  background: var(--champagne); transform: scaleX(0); transition: transform .2s;
}
.navbar .nav-links > ul > li > a.nav-link:hover::after,
.navbar .nav-links > ul > li.current-menu-item > a.nav-link::after,
.navbar .nav-links > ul > li.current_page_item > a.nav-link::after { transform: scaleX(1); }

/* Make sure mobile sheet never overlays content on desktop */
@media (min-width:768px){
  .nav-links { position: static !important; height:auto !important; background:transparent !important; }
  .nav-links.active { display:flex !important; }
}

/* 2) Blog/Archive category pills — centered, hover, clickable, above neighbors */
.section, .section-light, .container, .section-header { position:relative; z-index:1; }
.filter-pills {
  display:flex; flex-wrap:wrap; gap:12px;
  justify-content:center !important; align-items:center;
  margin:24px auto 0; max-width:1000px;
  position:relative; z-index:10;  /* lift above search/title if needed */
}
.filter-pills a.pill {
  display:inline-flex; align-items:center; justify-content:center;
  padding:10px 14px; border:1px solid var(--border-color); border-radius:999px;
  font-size:14px; background:#fff; color:#333; text-decoration:none; cursor:pointer;
  transition: background-color .2s, color .2s, border-color .2s, box-shadow .2s;
  pointer-events:auto; /* ensure anchor receives clicks */
}
.filter-pills a.pill.pill-active {
  background: rgba(20,48,47,.08);
  border-color: rgba(20,48,47,.18);
  color:#123;
}
.filter-pills a.pill:hover,
.filter-pills a.pill:focus-visible {
  background: var(--champagne) !important;
  border-color: var(--champagne) !important;
  color: var(--charcoal) !important;
  box-shadow: 0 0 0 2px rgba(231,217,196,.35);
  outline: none;
}
/* keep search beneath pills if they overlap */
.search-form { position:relative; z-index:1; }

/* 3) About page: lock in card + form styling with body class specificity
   WP adds 'page-template-template-about' for template-about.php */
body.page-template-template-about .about-card {
  background:#fff;
  border:1px solid var(--border-color);
  border-radius:12px;
  padding:28px;
  max-width:920px;
  margin:0 auto 28px;
  box-shadow:0 2px 8px rgba(0,0,0,.04);
}
body.page-template-template-about .about-card-title {
  font-family:'Libre Baskerville', Georgia, serif;
  font-size:22px;
  margin-bottom:16px;
}
body.page-template-template-about .about-card-body p {
  margin-bottom:16px; color:#444;
}
body.page-template-template-about .about-form {
  margin-top:12px; display:flex; flex-direction:column; gap:12px;
}
body.page-template-template-about .form-label { font-size:14px; color:#555; }
body.page-template-template-about .form-control {
  width:100%; padding:14px 16px; font-size:16px;
  border:1px solid var(--border-color); border-radius:10px; background:#fff;
  outline:none; transition:border-color .2s;
}
body.page-template-template-about .form-control:focus { border-color: var(--champagne); }
body.page-template-template-about .btn-primary {
  align-self:flex-start; margin-top:8px; padding:12px 20px;
  border-radius:10px; border:1px solid rgba(20,48,47,.2);
  background:rgba(20,48,47,.08); color:#123; font-weight:600; cursor:pointer; transition:all .2s;
}
body.page-template-template-about .btn-primary:hover {
  background:var(--champagne); border-color:var(--champagne);
}

/* === About Page — specificity lock === */
/* WP adds this body class when using template-about.php */
body.page-template-template-about .section.section-light { padding-top:64px; padding-bottom:32px; }
body.page-template-template-about .section .container { position:relative; z-index:1; }

body.page-template-template-about .about-card {
  background:#fff !important;
  border:1px solid var(--border-color) !important;
  border-radius:12px !important;
  padding:28px !important;
  max-width:920px !important;
  margin:0 auto 28px !important;
  box-shadow:0 2px 8px rgba(0,0,0,.04) !important;
}

body.page-template-template-about .about-card-title {
  font-family:'Libre Baskerville', Georgia, serif !important;
  font-size:22px !important;
  margin-bottom:16px !important;
}

body.page-template-template-about .about-card-body p {
  margin-bottom:16px !important;
  color:#444 !important;
}

body.page-template-template-about .about-form { margin-top:12px !important; display:flex !important; flex-direction:column !important; gap:12px !important; }
body.page-template-template-about .form-label { font-size:14px !important; color:#555 !important; }
body.page-template-template-about .form-control {
  width:100% !important; padding:14px 16px !important; font-size:16px !important;
  border:1px solid var(--border-color) !important; border-radius:10px !important; background:#fff !important;
  outline:none !important; transition:border-color .2s !important;
}
body.page-template-template-about .form-control:focus { border-color: var(--champagne) !important; }
body.page-template-template-about .btn-primary {
  align-self:flex-start !important; margin-top:8px !important; padding:12px 20px !important;
  border-radius:10px !important; border:1px solid rgba(20,48,47,.2) !important;
  background:rgba(20,48,47,.08) !important; color:#123 !important; font-weight:600 !important; cursor:pointer !important; transition:all .2s !important;
}
body.page-template-template-about .btn-primary:hover { background:var(--champagne) !important; border-color:var(--champagne) !important; }

/* === ABOUT PAGE POLISH — pixel-match the mock === */
/* Applies only to the About template */
body.page-template-template-about {
  /* ensure the neutral background shows consistently */
  background: var(--off-white);
}

/* Top hero block spacing & typography */
body.page-template-template-about .section.section-light {
  padding-top: 72px;
  padding-bottom: 36px;
}

body.page-template-template-about .section-header {
  text-align: center;
  margin-bottom: 28px;          /* a touch tighter than default */
}

body.page-template-template-about .section-header .eyebrow {
  letter-spacing: .12em;
  color: rgba(20,48,47,.85);
  margin-bottom: 10px;
}

body.page-template-template-about .section-header .section-title {
  font-family: 'Libre Baskerville', Georgia, serif;
  font-weight: 700;
  font-size: clamp(34px, 5vw, 46px);  /* matches the screenshot scale */
  line-height: 1.15;
}

/* Optional one-liner under the H1 (if present in your template) */
body.page-template-template-about .section-header p {
  max-width: 760px;
  margin: 8px auto 0;
  color: #5a5a5a;
}

/* Card layout — narrower, softer, centered */
body.page-template-template-about .about-card {
  max-width: 760px;             /* was 920; mock shows a narrower column */
  margin: 0 auto 24px;
  padding: 24px 24px 22px;
  background: #fff;
  border: 1px solid #eeeae4;    /* softer than generic border */
  border-radius: 14px;
  box-shadow: 0 6px 18px rgba(0,0,0,.05);
}

body.page-template-template-about .about-card-title {
  font-family: 'Libre Baskerville', Georgia, serif;
  font-size: 20px;
  line-height: 1.3;
  margin-bottom: 12px;
  color: #1f1f1f;
}

body.page-template-template-about .about-card-body p {
  color: #404040;
  line-height: 1.8;
  margin-bottom: 14px;
}

/* Form spacing & controls */
body.page-template-template-about .about-form {
  margin-top: 8px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

body.page-template-template-about .form-label {
  font-size: 13px;
  color: #6a6a6a;
}

body.page-template-template-about .form-control {
  padding: 13px 14px;
  font-size: 16px;
  border: 1px solid var(--border-color);
  border-radius: 12px;
  background: #fff;
  transition: border-color .2s, box-shadow .2s;
}

body.page-template-template-about .form-control:focus {
  border-color: var(--champagne);
  box-shadow: 0 0 0 3px rgba(231,217,196,.35);
  outline: none;
}

body.page-template-template-about .btn-primary {
  margin-top: 6px;
  padding: 11px 18px;
  border-radius: 12px;
  border: 1px solid rgba(20,48,47,.18);
  background: rgba(20,48,47,.08);
  color: #132;
  font-weight: 600;
  transition: background .2s, border-color .2s, transform .08s;
}

body.page-template-template-about .btn-primary:hover {
  background: var(--champagne);
  border-color: var(--champagne);
}

body.page-template-template-about .btn-primary:active {
  transform: translateY(1px);
}

/* Mobile tweaks */
@media (max-width: 640px) {
  body.page-template-template-about .section.section-light { padding-top: 56px; }
  body.page-template-template-about .about-card { padding: 20px; border-radius: 12px; }
  body.page-template-template-about .about-card-title { font-size: 19px; }
}

/* ===== Single Post Styling ===== */
.single-post .back-btn{
  display:inline-flex; align-items:center; gap:8px;
  font-size:14px; padding:8px 12px; border:1px solid var(--border-color);
  border-radius:999px; background:#fff; color:#333;
  transition:background .2s, border-color .2s, transform .08s;
  margin:24px 0 18px;
}
.single-post .back-btn:hover{ background:var(--champagne); border-color:var(--champagne); }
.single-post .back-btn:active{ transform:translateY(1px); }

.single-post .post-hero{ margin-bottom:20px; }
.single-post .post-hero-img{
  width:100%; height:auto; border-radius:14px;
  box-shadow:0 8px 24px rgba(0,0,0,.08);
}

.single-post .single-header{ max-width:900px; margin:0 auto 20px; }
.single-post .meta-badges{ display:flex; gap:10px; margin-bottom:12px; }
.single-post .badge{
  display:inline-flex; align-items:center; padding:6px 10px;
  font-size:12px; font-weight:600; border-radius:999px;
  border:1px solid var(--border-color); background:#fff; color:#333;
  transition:background .2s, border-color .2s, color .2s;
}
.single-post .badge:hover{ background:var(--champagne); border-color:var(--champagne); color:var(--charcoal); }
.single-post .badge-featured{ background:rgba(20,48,47,.08); border-color:rgba(20,48,47,.18); color:#123; }

.single-post .single-title{
  font-family:'Libre Baskerville', Georgia, serif;
  font-weight:700; line-height:1.15;
  font-size: clamp(28px, 4.5vw, 42px);
  margin:0 0 8px;
}
.single-post .single-dek{
  max-width:900px; color:#5a5a5a; font-size:18px; line-height:1.7;
  margin:0 0 8px;
}
.single-post .single-meta{
  display:flex; gap:10px; align-items:center; color:#7a7a7a; font-size:14px;
}

.single-post .single-body{
  max-width:900px; margin:22px auto 24px; padding:20px 22px;
  background:#fff; border:1px solid var(--border-color); border-radius:14px;
  box-shadow:0 4px 14px rgba(0,0,0,.05);
}
.single-post .single-body p{ margin:0 0 16px; color:#333; }
.single-post .single-body h2{ font-size:26px; margin:22px 0 12px; }
.single-post .single-body h3{ font-size:22px; margin:18px 0 10px; }
.single-post .single-body blockquote{
  margin:18px 0; padding:14px 16px; border-left:4px solid var(--champagne);
  background:rgba(231,217,196,.22); border-radius:8px;
}
.single-post .single-body img{ border-radius:10px; }
.single-post .single-body figure{ margin:0 0 16px; }
.single-post .single-body figcaption{ font-size:14px; color:#777; margin-top:6px; text-align:center; }

.single-post .single-gallery{ max-width:900px; margin:8px auto 24px; }
.single-post .gallery-title{ font-size:18px; margin:0 0 12px; }
.single-post .gallery-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:14px;
}
.single-post .gallery-item img{
  width:100%; height:auto; display:block; border-radius:10px; border:1px solid var(--border-color);
  transition:transform .2s;
}
.single-post .gallery-item:hover img{ transform:scale(1.015); }

.single-post .single-comments{ max-width:900px; margin:12px auto 36px; }

/* ABOUT template (template-about.php) */
body.page-template-template-about { background: var(--off-white); }
body.page-template-template-about .section.section-light { padding-top:72px; padding-bottom:36px; }
body.page-template-template-about .section-header { text-align:center; margin-bottom:28px; }
body.page-template-template-about .section-header .eyebrow { letter-spacing:.12em; color:rgba(20,48,47,.85); margin-bottom:10px; }
body.page-template-template-about .section-header .section-title { font-family:'Libre Baskerville',Georgia,serif; font-weight:700; font-size:clamp(34px,5vw,46px); line-height:1.15; }
body.page-template-template-about .section-header p { max-width:760px; margin:8px auto 0; color:#5a5a5a; }
body.page-template-template-about .about-card { max-width:760px; margin:0 auto 24px; padding:24px 24px 22px; background:#fff; border:1px solid #eeeae4; border-radius:14px; box-shadow:0 6px 18px rgba(0,0,0,.05); }
body.page-template-template-about .about-card-title { font-family:'Libre Baskerville',Georgia,serif; font-size:20px; line-height:1.3; margin-bottom:12px; color:#1f1f1f; }
body.page-template-template-about .about-card-body p { color:#404040; line-height:1.8; margin-bottom:14px; }
body.page-template-template-about .about-form { margin-top:8px; display:flex; flex-direction:column; gap:12px; }
body.page-template-template-about .form-label { font-size:13px; color:#6a6a6a; }
body.page-template-template-about .form-control { padding:13px 14px; font-size:16px; border:1px solid var(--border-color); border-radius:12px; background:#fff; transition:border-color .2s, box-shadow .2s; }
body.page-template-template-about .form-control:focus { border-color:var(--champagne); box-shadow:0 0 0 3px rgba(231,217,196,.35); outline:none; }
body.page-template-template-about .btn-primary { margin-top:6px; padding:11px 18px; border-radius:12px; border:1px solid rgba(20,48,47,.18); background:rgba(20,48,47,.08); color:#132; font-weight:600; transition:background .2s, border-color .2s, transform .08s; }
body.page-template-template-about .btn-primary:hover { background:var(--champagne); border-color:var(--champagne); }
@media (max-width:640px){ body.page-template-template-about .about-card{padding:20px;border-radius:12px;} }

/* Single: compact hero */
.single-post .post-hero--compact { margin-bottom:16px; }
.single-post .post-hero--compact .post-hero-img { max-height: 420px; width:100%; object-fit:cover; border-radius:14px; box-shadow:0 8px 24px rgba(0,0,0,.08); }

/* Single: content card hover like thumbnails */
.single-post .single-body--elevate { transition: transform .18s ease, box-shadow .18s ease; }
.single-post .single-body--elevate:hover { transform: translateY(-2px); box-shadow:0 8px 20px rgba(0,0,0,.08); }

/* Comments form polish */
.single-comments .comment-respond { max-width:900px; margin:0 auto; background:#fff; border:1px solid var(--border-color); border-radius:14px; padding:20px 22px; box-shadow:0 4px 14px rgba(0,0,0,.05); }
.single-comments .comment-reply-title { font-family:'Libre Baskerville',Georgia,serif; font-size:22px; margin:0 0 10px; }
.single-comments .comment-form p { margin-bottom:12px; }
.single-comments .comment-form label { display:block; font-size:13px; color:#6a6a6a; margin-bottom:6px; }
.single-comments .comment-form input[type="text"],
.single-comments .comment-form input[type="email"],
.single-comments .comment-form input[type="url"],
.single-comments .comment-form textarea {
  width:100%; padding:12px 14px; font-size:16px; border:1px solid var(--border-color); border-radius:12px; background:#fff; transition:border-color .2s, box-shadow .2s;
}
.single-comments .comment-form textarea { min-height: 140px; }
.single-comments .comment-form input:focus,
.single-comments .comment-form textarea:focus { border-color:var(--champagne); box-shadow:0 0 0 3px rgba(231,217,196,.35); outline:none; }
.single-comments .form-submit input[type="submit"] {
  padding:11px 18px; border-radius:12px; border:1px solid rgba(20,48,47,.18); background:rgba(20,48,47,.08); color:#132; font-weight:600; cursor:pointer; transition:background .2s, border-color .2s, transform .08s;
}
.single-comments .form-submit input[type="submit"]:hover { background:var(--champagne); border-color:var(--champagne); }

/* Lightbox overlay */
.lb-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,.85);
  display: none; align-items: center; justify-content: center;
  z-index: 2000;
}
.lb-overlay.active { display: flex; }
.lb-stage { position: relative; max-width: min(92vw, 1200px); max-height: 88vh; }
.lb-img  { max-width: 100%; max-height: 88vh; border-radius: 10px; display:block; }
.lb-close, .lb-prev, .lb-next {
  position: absolute; top: 50%; transform: translateY(-50%);
  background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.25);
  color:#fff; padding:10px 12px; border-radius: 999px; cursor:pointer;
}
.lb-close { top: 4%; right: 2%; transform: none; }
.lb-prev  { left: -52px; }
.lb-next  { right: -52px; }
@media (max-width: 800px){ .lb-prev{left:8px;} .lb-next{right:8px;} }

/* === Front-page card media: enforce magazine crop and beat global img rules === */
.section .post-grid .post-card .card-media { 
  position: relative; 
  overflow: hidden; 
}

/* Prefer aspect-ratio when available, fall back to padding hack otherwise */
@supports (aspect-ratio: 1) {
  .section .post-grid .post-card .card-media { aspect-ratio: 16 / 10; }
}
@supports not (aspect-ratio: 1) {
  .section .post-grid .post-card .card-media::before { 
    content: ""; display: block; padding-top: 62.5%; /* 10/16 */ 
  }
}

/* The money rule: override global img{height:auto} for card images only */
.section .post-grid .post-card .card-media > img.card-img,
.section .post-grid .post-card .card-media > img.wp-post-image {
  position: absolute; inset: 0;
  width: 100% !important; 
  height: 100% !important;            /* beats the global height:auto */
  object-fit: cover !important; 
  display: block;
}

