/*!
Theme Name: Dimensions Acupuncture
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: dimensions-acupuncture
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Dimensions Acupuncture is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/

:root {
    --bg: #f1eddd;
    --bg-soft: #faefd7;
    --surface: #fff;
    --text: #545454;
    --muted: #9e9da6;
    --sage: #be93c1;
    --sage-dark: #545454;
    --gold: #d4b67d;
    --border: #e0e0e4;
    --radius: 18px;
    --shadow: 0 8px 30px rgba(84, 84, 84, 0.07);
    --max: 1180px;
}
* {
    box-sizing: border-box;
}
html {
    scroll-behavior: smooth;
}
body {
    margin: 0;
    font-family: Inter, system-ui, sans-serif;
    background: var(--bg);
    color: var(--text);
    line-height: 1.65;
}
h1,
h2,
h3,
h4 {
    font-family: "Playfair Display", serif;
    line-height: 1.2;
    margin: 0 0 0.7rem;
}
p {
    margin: 0 0 0.9rem;
    color: var(--muted);
}
a {
    text-decoration: none;
    color: inherit;
}
img {
    max-width: 100%;
    display: block;
}
.container {
    width: min(var(--max), 92vw);
    margin: auto;
}
.section {
    padding: 78px 0;
}
.surface {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
}
.announcement {
    background: #f1eddd;
    color: #9e9da6;
    font-size: 0.92rem;
}
.announcement .container {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.55rem 0;
}
.header {
    position: sticky;
    top: 0;
    z-index: 20;
    background: rgba(241, 237, 221, 0.93);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid var(--border);
}
.header-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 78px;
    gap: 1rem;
}
.logo {
    font-family: "Playfair Display", serif;
    font-size: 1.35rem;
    font-weight: 700;
}
.nav {
    display: flex;
    gap: 1.1rem;
}
.nav a {
    font-weight: 500;
    color: #545454;
}
.menu-toggle {
    display: none;
}
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.75rem 1.1rem;
    border-radius: 999px;
    border: 1px solid transparent;
    font-weight: 600;
    transition: 0.2s;
}
.btn-primary {
    background: var(--sage-dark);
    color: #fff;
}
.btn-primary:hover {
    opacity: 0.92;
}
.btn-ghost {
    border-color: var(--border);
    background: #fff;
}
.hero {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 2rem;
    align-items: center;
}
.eyebrow {
    color: var(--gold);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-size: 0.82rem;
}
.hero h1 {
    font-size: clamp(2rem, 5vw, 4rem);
}
.hero .lead {
    font-size: 1.07rem;
    max-width: 58ch;
}
.grid {
    display: grid;
    gap: 1rem;
}
.grid-3 {
    grid-template-columns: repeat(3, 1fr);
}
.grid-2 {
    grid-template-columns: repeat(2, 1fr);
}
.card {
    padding: 1.2rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
    box-shadow: var(--shadow);
}
.stats .num {
    font: 700 clamp(1.4rem, 3vw, 2rem) / 1.1 Inter, sans-serif;
    color: #a18faf;
}
.timeline .card {
    border-left: 4px solid #a18faf;
}
.testimonial {
    font-style: italic;
}
.cta-band {
    background: linear-gradient(135deg, #f1eddd, #faefd7);
}
.form input,
.form textarea,
.form select {
    width: 100%;
    padding: 0.8rem;
    border: 1px solid var(--border);
    border-radius: 12px;
/*    background: #fff;*/
    font: inherit;
}
.form textarea {
    min-height: 140px;
}
.footer {
    background: #faefd7;
    border-top: 1px solid var(--border);
    padding: 2.4rem 0;
    color: #9e9da6;
}
.footer-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1.3fr;
    gap: 1rem;
}
.searchbar {
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
}
.searchbar input {
    flex: 1;
    min-width: 220px;
    padding: 0.8rem;
    border: 1px solid var(--border);
    border-radius: 12px;
}
.tag {
    display: inline-block;
    padding: 0.25rem 0.6rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    font-size: 0.82rem;
    background: #fff;
}
.hidden {
    display: none !important;
}
.active {
    background: var(--sage-dark) !important;
    color: #fff !important;
}
.article {
    max-width: 100%;
    margin: auto;
}
.article h1 {
    font-size: clamp(2rem, 4vw, 3.2rem);
}
.article img {
    border-radius: var(--radius);
    margin: 1.2rem 0;
}
.toc {
    position: sticky;
    top: 100px;
    height: max-content;
}


/* Remove bullets */
.nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Make items horizontal */
.nav ul {
  display: flex;
  align-items: center;
  gap: 20px;
}

/* Remove default li spacing */
.nav li {
  margin: 0;
}

/* Style links */
.nav a {
  text-decoration: none;
  color: #545454;
  font-weight: 500;
}


.featured-image img {
  width: 100%;
  height: auto;
  border-radius: 12px;
  display: block;
}

/* Desktop */
@media (min-width: 768px) {
  .featured-image img {
    max-height: 500px;
    object-fit: cover;
  }
}

/* Mobile */
@media (max-width: 767px) {
  .featured-image {
    margin: 0 -15px; /* optional full-bleed effect */
  }

  .featured-image img {
    border-radius: 0;
  }
}

/* Mobile menu styles */
@media (max-width: 768px) {

  .nav {
    position: absolute;
    top: 80px;
    left: 0;
    width: 100%;
    background: #f1eddd;
    display: none; /* hidden by default */
    padding: 20px;
  }

  /* Show menu when active */
  .nav.active {
    display: block;
  }

  .nav ul {
    display: block;
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .nav li {
    margin-bottom: 15px;
  }

  .nav a {
    display: block;
    font-size: 18px;
    color: #333;
    text-decoration: none;
  }

  /* Menu button */
  .menu-toggle {
    display: block;
    cursor: pointer;
  }
}

@media (max-width: 960px) {
    .hero,
    .grid-2,
    .footer-grid {
        grid-template-columns: 1fr;
    }
    .grid-3 {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 768px) {
    .grid-3 {
        grid-template-columns: 1fr;
    }
    .nav {
        display: none;
        position: absolute;
        left: 0;
        right: 0;
        top: 78px;
        background: #faefd7;
        border-bottom: 1px solid var(--border);
        padding: 1rem;
        flex-direction: column;
    }
    .nav.open {
        display: flex;
    }
    .menu-toggle {
        display: inline-block;
        padding: 0.55rem 0.8rem;
        border: 1px solid var(--border);
        border-radius: 999px;
        background: #fff;
    }
    .header .btn-primary {
        display: none;
    }
}
.fade-in {
    opacity: 0;
    transform: translateY(14px);
    transition: 0.55s ease;
}
.fade-in.show {
    opacity: 1;
    transform: none;
}

/* Pagination Styles */
.pagination-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
    margin-top: 3rem;
    flex-wrap: wrap;
}
.pagination-wrapper .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 1rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    color: var(--text);
    font-weight: 500;
    background: var(--surface);
    transition: 0.2s;
}
.pagination-wrapper .page-numbers:hover {
    border-color: var(--sage-dark);
    color: var(--sage-dark);
}
.pagination-wrapper .page-numbers.current {
    background: var(--sage-dark);
    border-color: var(--sage-dark);
    color: #fff;
}

/* ─── 404 ─── */
.section-404 {
    min-height: 72vh;
    display: flex;
    align-items: center;
    padding: 80px 0;
}
.container-404 {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 3.5rem;
    align-items: center;
}
.num-404 {
    font-family: "Playfair Display", serif;
    font-size: clamp(6rem, 14vw, 11rem);
    font-weight: 700;
    line-height: 1;
    color: #a18faf;
    opacity: 0.22;
    user-select: none;
    letter-spacing: -0.03em;
}
.content-404 .eyebrow {
    margin-bottom: 0.5rem;
}
.content-404 h1 {
    font-size: clamp(1.7rem, 3.5vw, 2.6rem);
    margin-bottom: 0.9rem;
}
.lead-404 {
    font-size: 1.05rem;
    max-width: 48ch;
    margin-bottom: 2rem;
}
.links-404 {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 2.5rem;
}
.nav-404-label {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-weight: 600;
    color: var(--muted);
    margin-bottom: 0.6rem;
}
.nav-404 ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 1.4rem;
}
.nav-404 ul li a {
    color: var(--text);
    font-weight: 500;
    font-size: 0.95rem;
    border-bottom: 1px solid var(--border);
    transition: border-color 0.2s, color 0.2s;
}
.nav-404 ul li a:hover {
    color: #a18faf;
    border-color: #a18faf;
}
@media (max-width: 680px) {
    .container-404 {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    .num-404 {
        font-size: clamp(5rem, 20vw, 7rem);
    }
}

/* ─── Blog hero ─── */
.blog-hero {
    padding-bottom: 2rem;
    border-bottom: 1px solid var(--border);
}
.blog-hero h1 {
    font-size: clamp(2rem, 4vw, 3rem);
    margin: 0.4rem 0 0.8rem;
}
.blog-hero-sub {
    font-size: 1.05rem;
    max-width: 54ch;
    margin: 0;
}

/* ─── Filter bar ─── */
.blog-filter-wrap {
    background: var(--surface);
    border-bottom: 1px solid var(--border);
    position: sticky;
    top: 78px;
    z-index: 10;
}
.blog-filter-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.85rem 0;
    flex-wrap: wrap;
}
.blog-cats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}
.btn-filter {
    padding: 0.45rem 1rem;
    border-radius: 999px;
    border: 1px solid var(--border);
    background: transparent;
    color: var(--muted);
    font-size: 0.88rem;
    font-weight: 500;
    cursor: pointer;
    transition: 0.18s;
}
.btn-filter:hover {
    border-color: #a18faf;
    color: #a18faf;
}
.btn-filter.active {
    background: var(--sage-dark) !important;
    border-color: var(--sage-dark) !important;
    color: #fff !important;
}
.blog-search input {
    padding: 0.5rem 0.9rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--bg);
    font: inherit;
    font-size: 0.9rem;
    width: 200px;
    transition: border-color 0.2s;
}
.blog-search input:focus {
    outline: none;
    border-color: #a18faf;
}

/* ─── Blog grid ─── */
.blog-archive {
    padding-top: 3rem;
}
.blog-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}
.blog-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: box-shadow 0.22s, transform 0.22s;
}
.blog-card:hover {
    box-shadow: 0 14px 40px rgba(84, 84, 84, 0.11);
    transform: translateY(-3px);
}
.blog-card--featured {
    grid-column: 1 / -1;
    flex-direction: row;
}
.blog-card-img {
    display: block;
    overflow: hidden;
    flex-shrink: 0;
}
.blog-card-img img {
    width: 100%;
    height: 210px;
    object-fit: cover;
    display: block;
    transition: transform 0.35s ease;
}
.blog-card:hover .blog-card-img img {
    transform: scale(1.03);
}
.blog-card--featured .blog-card-img {
    width: 45%;
}
.blog-card--featured .blog-card-img img {
    height: 100%;
    min-height: 280px;
}
.blog-card-body {
    padding: 1.4rem 1.5rem;
    display: flex;
    flex-direction: column;
    flex: 1;
}
.blog-card-meta {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    margin-bottom: 0.75rem;
    flex-wrap: wrap;
}
.blog-read-time {
    font-size: 0.78rem;
    color: var(--muted);
}
.blog-card-title {
    font-size: 1.15rem;
    margin: 0 0 0.6rem;
    line-height: 1.3;
}
.blog-card--featured .blog-card-title {
    font-size: clamp(1.3rem, 2.5vw, 1.75rem);
}
.blog-card-title a {
    color: var(--text);
    transition: color 0.18s;
}
.blog-card-title a:hover {
    color: #a18faf;
}
.blog-card-excerpt {
    font-size: 0.92rem;
    line-height: 1.6;
    flex: 1;
    margin-bottom: 1.2rem;
}
.blog-card-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-top: 1px solid var(--border);
    padding-top: 0.85rem;
    margin-top: auto;
}
.blog-card-footer time {
    font-size: 0.82rem;
    color: var(--muted);
}
.blog-card-read {
    font-size: 0.85rem;
    font-weight: 600;
    color: #a18faf;
    transition: letter-spacing 0.18s;
}
.blog-card-read:hover {
    letter-spacing: 0.03em;
}
.no-posts {
    grid-column: 1 / -1;
    text-align: center;
    color: var(--muted);
    padding: 3rem 0;
}

.blog-card-excerpt {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}


@media (max-width: 960px) {
    .blog-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .blog-card--featured {
        grid-column: 1 / -1;
        flex-direction: column;
    }
    .blog-card--featured .blog-card-img {
        width: 100%;
    }
    .blog-card--featured .blog-card-img img {
        height: 240px;
    }
}
@media (max-width: 640px) {
    .blog-grid {
        grid-template-columns: 1fr;
    }
    .blog-filter-row {
        flex-direction: column;
        align-items: flex-start;
    }
    .blog-search input {
        width: 100%;
    }
}
