/*
Theme Name: Yoga for Yogi
Theme URI: https://yogaforyogi.com/
Author: Yoga for Yogi
Description: An editorial yoga reference and discovery theme for poses, styles, sequences, teacher training, retreats, studios and practical guides.
Version: 2.0.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
Text Domain: yogaforyogi
*/

:root {
  --yfy-canvas: #f6f1e7;
  --yfy-paper: #fffdf8;
  --yfy-ink: #16302a;
  --yfy-text: #34453f;
  --yfy-muted: #718079;
  --yfy-line: rgba(22, 48, 42, .16);
  --yfy-green: #245d4c;
  --yfy-green-deep: #123b31;
  --yfy-lime: #dceb79;
  --yfy-lime-soft: #edf3b9;
  --yfy-coral: #ee8c6a;
  --yfy-coral-soft: #f6c8b7;
  --yfy-sky: #9ecad0;
  --yfy-sky-soft: #d6e9eb;
  --yfy-lilac: #c6bce8;
  --yfy-lilac-soft: #e4dff4;
  --yfy-sun: #f1c85d;
  --yfy-sun-soft: #f7e8af;
  --yfy-radius: 26px;
  --yfy-radius-sm: 16px;
  --yfy-shadow: 0 24px 70px rgba(22, 48, 42, .12);
  --yfy-max: 1220px;
  --yfy-serif: "Iowan Old Style", Baskerville, Georgia, "Times New Roman", serif;
  --yfy-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--yfy-canvas);
  color: var(--yfy-text);
  font-family: var(--yfy-sans);
  font-size: 17px;
  line-height: 1.72;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body::selection { background: var(--yfy-lime); color: var(--yfy-ink); }
a { color: var(--yfy-green); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--yfy-coral); }
img { max-width: 100%; height: auto; display: block; }
svg { display: block; }
button, input, select, textarea { font: inherit; }
input, select, textarea {
  width: 100%;
  border: 1px solid var(--yfy-line);
  border-radius: 14px;
  background: var(--yfy-paper);
  color: var(--yfy-ink);
  padding: .84rem 1rem;
  outline: none;
}
input:focus, select:focus, textarea:focus { border-color: var(--yfy-green); box-shadow: 0 0 0 3px rgba(36,93,76,.1); }
button, .button, .wp-element-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  border: 0;
  border-radius: 999px;
  background: var(--yfy-green);
  color: #fff;
  padding: .9rem 1.22rem;
  font-weight: 760;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}
button:hover, .button:hover, .wp-element-button:hover { background: var(--yfy-green-deep); color: #fff; transform: translateY(-1px); box-shadow: 0 10px 24px rgba(22,48,42,.12); }
.button--ink { background: var(--yfy-ink); }
.button--ink:hover { background: #0d241f; }
.button--ghost { background: transparent; color: var(--yfy-green); border: 1px solid var(--yfy-line); box-shadow: none; }
.button--ghost:hover { background: var(--yfy-paper); color: var(--yfy-green-deep); }
.button--full { width: 100%; }
.text-link { font-weight: 760; text-decoration: none; }
.site-shell { width: min(calc(100% - 44px), var(--yfy-max)); margin-inline: auto; }
.skip-link { position: absolute; left: -9999px; top: auto; }
.skip-link:focus { left: 1rem; top: 1rem; z-index: 99999; background: #fff; padding: .7rem 1rem; border-radius: 10px; }
.screen-reader-text { position: absolute !important; height: 1px; width: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }

/* Header */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(246,241,231,.92);
  border-bottom: 1px solid rgba(22,48,42,.09);
  backdrop-filter: blur(18px);
}
.header-inner { min-height: 82px; display: flex; align-items: center; gap: 1.5rem; }
.site-branding { margin-right: auto; }
.brand-lockup { display: inline-flex; align-items: center; gap: .72rem; color: var(--yfy-ink); text-decoration: none; }
.brand-lockup:hover { color: var(--yfy-ink); }
.brand-mark { width: 31px; height: 31px; border: 1.5px solid var(--yfy-ink); border-radius: 50%; position: relative; display: inline-block; flex: 0 0 auto; }
.brand-mark::before, .brand-mark::after, .brand-mark span::before, .brand-mark span::after {
  content: ""; position: absolute; background: var(--yfy-ink); left: 50%; top: 50%; transform-origin: center; opacity: .95;
}
.brand-mark::before { width: 1px; height: 39px; transform: translate(-50%,-50%) rotate(45deg); }
.brand-mark::after { width: 1px; height: 39px; transform: translate(-50%,-50%) rotate(-45deg); }
.brand-mark span::before { width: 39px; height: 1px; transform: translate(-50%,-50%); }
.brand-mark span::after { width: 1px; height: 39px; transform: translate(-50%,-50%); }
.brand-wordmark { font-family: var(--yfy-serif); font-size: 1.55rem; letter-spacing: -.035em; line-height: 1; }
.brand-wordmark em { font-size: .68em; font-weight: 400; opacity: .65; margin: 0 .08em; }
.primary-nav ul { display: flex; list-style: none; margin: 0; padding: 0; gap: .06rem; align-items: center; }
.primary-nav li { position: relative; }
.primary-nav a { display: block; padding: .58rem .7rem; border-radius: 999px; color: var(--yfy-ink); font-size: .875rem; font-weight: 720; text-decoration: none; white-space: nowrap; }
.primary-nav a:hover { background: rgba(255,255,255,.66); color: var(--yfy-green); }
.primary-nav .menu-item-has-children > a::after { content: "⌄"; margin-left: .3rem; font-size: .8em; }
.primary-nav .sub-menu { display: none; position: absolute; top: calc(100% + .45rem); left: 0; width: 210px; padding: .55rem; background: var(--yfy-paper); border: 1px solid var(--yfy-line); border-radius: 18px; box-shadow: var(--yfy-shadow); }
.primary-nav .sub-menu li { width: 100%; }
.primary-nav .sub-menu a { border-radius: 12px; padding: .7rem .8rem; }
.primary-nav li:hover > .sub-menu, .primary-nav li:focus-within > .sub-menu { display: block; }
.header-search-link { display: inline-flex; align-items: center; gap: .3rem; padding: .55rem .68rem; border: 1px solid var(--yfy-line); border-radius: 999px; color: var(--yfy-ink); text-decoration: none; font-size: .82rem; font-weight: 720; }
.header-search-link svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.header-search-link span:first-child { font-size: 1.1rem; line-height: 1; }
.menu-toggle { display: none; width: 44px; height: 44px; padding: 0; border-radius: 50%; background: var(--yfy-ink); flex-direction: column; gap: 5px; }
.menu-toggle span { width: 17px; height: 1.5px; background: #fff; display: block; }

/* Shared type */
.eyebrow { margin: 0 0 .7rem; color: var(--yfy-coral); font-size: .72rem; font-weight: 850; letter-spacing: .12em; line-height: 1.2; text-transform: uppercase; }
.section-title, .entry-title, .archive-hero h1, .single-hero h1, .page-hero h1, .error-page h1 {
  color: var(--yfy-ink);
  font-family: var(--yfy-serif);
  font-weight: 500;
  letter-spacing: -.045em;
  text-wrap: balance;
}
.section-title { margin: 0; font-size: clamp(2.35rem, 4.6vw, 4.55rem); line-height: .98; }
.section-dek { max-width: 700px; margin: .9rem 0 0; color: var(--yfy-muted); font-size: 1rem; }
.home-section { padding: clamp(4.8rem, 8vw, 8.5rem) 0; position: relative; }
.section-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2rem; align-items: end; margin-bottom: 2rem; }
.section-head--wide { grid-template-columns: minmax(0, 1.25fr) minmax(300px, .65fr); gap: 4rem; }
.section-side-copy { max-width: 470px; justify-self: end; }
.section-side-copy p { margin: 0 0 1rem; color: var(--yfy-muted); }
.section-link { align-self: end; color: var(--yfy-ink); font-weight: 800; text-decoration: none; white-space: nowrap; }
.section-link:hover { color: var(--yfy-coral); }
.breadcrumbs { margin-bottom: 1.35rem; color: rgba(22,48,42,.57); font-size: .76rem; }
.breadcrumbs a { color: inherit; text-decoration: none; }
.breadcrumbs span[aria-hidden] { margin: 0 .35rem; opacity: .5; }

/* Hero */
.hero { position: relative; overflow: hidden; border-bottom: 1px solid var(--yfy-line); }
.hero--editorial { padding: clamp(4.4rem, 8vw, 8.4rem) 0 clamp(4rem, 7vw, 7rem); }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(340px, .65fr); gap: clamp(3rem, 7vw, 7rem); align-items: center; position: relative; z-index: 2; }
.hero-main h1 { max-width: 880px; margin: 0; color: var(--yfy-ink); font-family: var(--yfy-serif); font-weight: 500; font-size: clamp(4rem, 7.6vw, 7.8rem); line-height: .88; letter-spacing: -.06em; text-wrap: balance; }
.hero-copy { max-width: 740px; margin: 1.65rem 0 0; color: #496059; font-size: clamp(1.05rem, 1.5vw, 1.25rem); line-height: 1.6; }
.hero-actions { margin-top: 2rem; display: flex; align-items: center; flex-wrap: wrap; gap: 1.25rem; }
.hero-search-wrap { margin-top: 3.4rem; padding-top: 1.25rem; border-top: 1px solid var(--yfy-line); display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 1rem; align-items: center; max-width: 740px; }
.hero-search-wrap > span { color: var(--yfy-muted); font-size: .82rem; line-height: 1.35; }
.search-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .5rem; }
.search-form label { display: block; min-width: 0; }
.search-field { height: 50px; background: rgba(255,255,255,.75); }
.search-submit { height: 50px; }
.hero-compass { background: var(--yfy-ink); color: #fff; border-radius: 34px; padding: 1.55rem; box-shadow: 0 30px 80px rgba(22,48,42,.18); transform: rotate(1.25deg); }
.compass-top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.compass-top .eyebrow { color: var(--yfy-lime); margin: 0; }
.compass-number { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; font-size: .7rem; }
.hero-compass h2 { margin: 1.8rem 0 1.2rem; max-width: 390px; color: #fff; font-family: var(--yfy-serif); font-size: clamp(2rem, 3.1vw, 3.35rem); font-weight: 500; line-height: .98; letter-spacing: -.045em; }
.compass-links { display: grid; border-top: 1px solid rgba(255,255,255,.18); }
.compass-links a { display: grid; grid-template-columns: 1fr auto; gap: 1rem; align-items: center; padding: .92rem 0; color: #fff; border-bottom: 1px solid rgba(255,255,255,.18); text-decoration: none; }
.compass-links span { font-size: .76rem; color: rgba(255,255,255,.63); }
.compass-links b { font-size: .82rem; font-weight: 760; text-align: right; }
.compass-links a:hover b { color: var(--yfy-lime); }
.compass-stats { display: grid; grid-template-columns: repeat(4,1fr); gap: .5rem; margin-top: 1.25rem; }
.compass-stats span { font-size: .62rem; text-transform: uppercase; letter-spacing: .07em; color: rgba(255,255,255,.55); }
.compass-stats strong { display: block; color: #fff; font-family: var(--yfy-serif); font-size: 1.45rem; font-weight: 500; letter-spacing: -.03em; line-height: 1.1; }
.hero-orbit { position: absolute; width: 720px; height: 720px; border: 1px solid rgba(22,48,42,.08); border-radius: 50%; right: -280px; top: -270px; }
.hero-orbit::before, .hero-orbit::after { content: ""; position: absolute; border: 1px solid rgba(22,48,42,.07); border-radius: 50%; inset: 95px; }
.hero-orbit::after { inset: 205px; }
.hero-orbit span:nth-child(1) { position: absolute; width: 82px; height: 82px; background: var(--yfy-lime); border-radius: 50%; left: 69px; bottom: 126px; }
.hero-orbit span:nth-child(2) { position: absolute; width: 42px; height: 42px; background: var(--yfy-coral); border-radius: 50%; left: 195px; bottom: 23px; }
.hero-orbit span:nth-child(3) { position: absolute; width: 22px; height: 22px; background: var(--yfy-sky); border-radius: 50%; left: 12px; top: 290px; }

.principles-strip { border-bottom: 1px solid var(--yfy-line); background: rgba(255,253,248,.55); }
.principles-grid { display: grid; grid-template-columns: repeat(4,1fr); }
.principles-grid p { margin: 0; padding: 1.1rem 1.3rem; border-right: 1px solid var(--yfy-line); font-size: .76rem; font-weight: 720; color: var(--yfy-ink); }
.principles-grid p:first-child { padding-left: 0; }
.principles-grid p:last-child { border-right: 0; }
.principles-grid span { color: var(--yfy-coral); margin-right: .5rem; font-size: .65rem; }

/* Cards */
.card-grid, .archive-grid, .editorial-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.15rem; }
.yfy-card { display: flex; flex-direction: column; min-width: 0; background: var(--yfy-paper); border: 1px solid var(--yfy-line); border-radius: var(--yfy-radius); overflow: hidden; transition: transform .22s ease, box-shadow .22s ease; }
.yfy-card:hover { transform: translateY(-5px); box-shadow: var(--yfy-shadow); }
.card-media { display: block; aspect-ratio: 16 / 10.2; background: var(--yfy-lime-soft); overflow: hidden; position: relative; text-decoration: none; }
.card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.yfy-card:hover .card-media img { transform: scale(1.025); }
.card-art { position: absolute; inset: 0; display: grid; place-items: center; overflow: hidden; }
.card-art::before { content: ""; width: 65%; aspect-ratio: 1; border: 1px solid rgba(22,48,42,.18); border-radius: 50%; position: absolute; right: -12%; top: -30%; }
.card-art::after { content: ""; width: 38%; aspect-ratio: 1; border: 1px solid rgba(22,48,42,.14); border-radius: 50%; position: absolute; left: -10%; bottom: -24%; }
.card-art svg { width: 58%; height: 70%; fill: none; stroke: var(--yfy-ink); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; opacity: .82; position: relative; z-index: 1; }
.card-art-label { position: absolute; left: 1rem; top: .85rem; z-index: 2; color: rgba(22,48,42,.65); font-size: .62rem; text-transform: uppercase; letter-spacing: .12em; font-weight: 820; }
.yfy-card--yfy_sequence .card-media { background: var(--yfy-lime-soft); }
.yfy-card--yfy_style .card-media { background: var(--yfy-lilac-soft); }
.yfy-card--yfy_training .card-media { background: var(--yfy-sky-soft); }
.yfy-card--yfy_retreat .card-media { background: var(--yfy-coral-soft); }
.yfy-card--yfy_studio .card-media { background: var(--yfy-sun-soft); }
.yfy-card--yfy_pose .card-media { background: #dce8dc; }
.yfy-card--post .card-media { background: #ddd9cb; }
.card-body { padding: 1.2rem 1.2rem 1.1rem; display: flex; flex-direction: column; flex: 1; }
.card-topline { min-height: 24px; display: flex; align-items: center; justify-content: space-between; gap: .6rem; }
.card-kicker { color: var(--yfy-coral); font-size: .64rem; letter-spacing: .11em; text-transform: uppercase; font-weight: 850; }
.card-details { margin: .62rem 0 0; color: var(--yfy-muted); font-size: .73rem; font-weight: 700; }
.card-title { margin: .38rem 0 .55rem; color: var(--yfy-ink); font-family: var(--yfy-serif); font-size: clamp(1.5rem, 2.2vw, 2rem); font-weight: 500; line-height: 1.04; letter-spacing: -.035em; }
.card-title a { color: inherit; text-decoration: none; }
.card-excerpt { margin: 0; color: #64736d; font-size: .87rem; line-height: 1.55; }
.card-footer-line { display: flex; align-items: end; justify-content: space-between; gap: .8rem; margin-top: auto; padding-top: 1.1rem; }
.card-meta { display: flex; flex-wrap: wrap; gap: .35rem; }
.meta-pill { display: inline-flex; border-radius: 999px; padding: .29rem .55rem; background: rgba(22,48,42,.055); color: #54665f; font-size: .64rem; font-weight: 760; }
.card-arrow { flex: 0 0 auto; display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid var(--yfy-line); border-radius: 50%; color: var(--yfy-ink); }
.sponsored-badge { display: inline-flex; align-items: center; border: 1px solid rgba(122,91,18,.25); background: var(--yfy-sun-soft); color: #6c551d; border-radius: 999px; padding: .24rem .5rem; font-size: .58rem; font-weight: 850; text-transform: uppercase; letter-spacing: .06em; }
.feature-card-grid { display: grid; grid-template-columns: 1.3fr repeat(2, 1fr); gap: 1.15rem; }
.feature-card-grid .yfy-card:first-child { grid-row: span 2; }
.feature-card-grid .yfy-card:first-child .card-media { aspect-ratio: auto; min-height: 430px; }
.feature-card-grid .yfy-card:first-child .card-title { font-size: clamp(2.1rem, 3vw, 3.2rem); }
.feature-card-grid .yfy-card:first-child .card-body { padding: 1.5rem; }
.feature-card-grid .yfy-card:not(:first-child) { flex-direction: row; }
.feature-card-grid .yfy-card:not(:first-child) .card-media { width: 39%; aspect-ratio: auto; min-height: 220px; flex: 0 0 auto; }
.feature-card-grid .yfy-card:not(:first-child) .card-title { font-size: 1.55rem; }
.feature-card-grid .yfy-card:not(:first-child) .card-excerpt { display: none; }
.feature-card-grid .yfy-card:nth-child(5) { grid-column: 2 / span 2; }
.feature-card-grid .yfy-card:nth-child(5) .card-media { width: 28%; }

/* Style ribbon */
.home-section--color-block { background: var(--yfy-ink); color: #fff; overflow: hidden; }
.home-section--color-block::before { content: ""; position: absolute; width: 430px; height: 430px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; right: -130px; top: -170px; }
.home-section--color-block .section-title { color: #fff; }
.home-section--color-block .section-dek { color: rgba(255,255,255,.66); }
.home-section--color-block .section-link { color: var(--yfy-lime); }
.home-section--color-block .eyebrow { color: var(--yfy-lime); }
.style-ribbon { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .9rem; }
.style-chip-card { display: grid; grid-template-columns: 70px minmax(0,1fr) auto; gap: .85rem; align-items: center; padding: .7rem .85rem .7rem .65rem; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); border-radius: 18px; color: #fff; text-decoration: none; transition: background .18s ease, transform .18s ease; }
.style-chip-card:hover { background: rgba(255,255,255,.14); color: #fff; transform: translateY(-2px); }
.style-chip-art { display: grid; place-items: center; width: 70px; height: 70px; border-radius: 14px; background: var(--yfy-lilac); color: var(--yfy-ink); overflow: hidden; }
.style-chip-art svg { width: 64px; height: 48px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.style-chip-copy { min-width: 0; }
.style-chip-copy b { display: block; font-family: var(--yfy-serif); font-size: 1.28rem; font-weight: 500; letter-spacing: -.025em; line-height: 1.05; }
.style-chip-copy small { display: block; margin-top: .25rem; color: rgba(255,255,255,.58); font-size: .67rem; }

/* Learn */
.home-section--learn { background: var(--yfy-paper); }
.learn-split { display: grid; grid-template-columns: .85fr 1.15fr; min-height: 580px; border: 1px solid var(--yfy-line); border-radius: 36px; overflow: hidden; }
.learn-art { position: relative; min-height: 520px; background: var(--yfy-lime); overflow: hidden; }
.learn-art p { position: absolute; left: 2.2rem; bottom: 1.8rem; margin: 0; color: var(--yfy-ink); font-size: clamp(2.7rem, 4.5vw, 5.1rem); font-weight: 900; line-height: .8; letter-spacing: -.07em; }
.learn-sun { position: absolute; width: 170px; height: 170px; background: var(--yfy-coral); border-radius: 50%; top: 80px; left: 50%; transform: translateX(-50%); }
.learn-arc { position: absolute; width: 430px; height: 430px; border: 2px solid var(--yfy-ink); border-radius: 50%; left: 50%; transform: translateX(-50%); }
.learn-arc--one { top: 22px; }
.learn-arc--two { top: 98px; width: 280px; height: 280px; }
.learn-copy { padding: clamp(2rem, 5vw, 5rem); align-self: center; }
.learn-copy > p:not(.eyebrow) { max-width: 650px; color: var(--yfy-muted); }
.learn-links { display: grid; margin-top: 2rem; border-top: 1px solid var(--yfy-line); }
.learn-links a { display: grid; grid-template-columns: 180px 1fr; gap: 1rem; padding: 1.1rem 0; border-bottom: 1px solid var(--yfy-line); color: var(--yfy-ink); text-decoration: none; }
.learn-links span { color: var(--yfy-muted); font-size: .76rem; }
.learn-links b { font-size: .88rem; }
.learn-links a:hover b { color: var(--yfy-coral); }

/* Discovery */
.home-section--choose { background: #ece6d9; }
.discovery-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }
.discovery-card { min-height: 385px; display: flex; flex-direction: column; justify-content: space-between; padding: 1.35rem; border: 1px solid var(--yfy-line); border-radius: 28px; color: var(--yfy-ink); text-decoration: none; overflow: hidden; position: relative; transition: transform .2s ease; }
.discovery-card:hover { color: var(--yfy-ink); transform: translateY(-4px) rotate(-.2deg); }
.discovery-card::after { content: ""; position: absolute; width: 330px; height: 330px; border: 1px solid rgba(22,48,42,.18); border-radius: 50%; right: -120px; top: -130px; }
.discovery-card--training { background: var(--yfy-sky); }
.discovery-card--retreat { background: var(--yfy-coral-soft); }
.discovery-card--studio { background: var(--yfy-sun-soft); }
.discovery-index { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid rgba(22,48,42,.25); border-radius: 50%; font-size: .68rem; }
.discovery-card div { position: relative; z-index: 1; }
.discovery-card div p { margin: 0 0 .45rem; font-size: .68rem; text-transform: uppercase; letter-spacing: .12em; font-weight: 850; }
.discovery-card h3 { margin: 0 0 .7rem; max-width: 330px; font-family: var(--yfy-serif); font-size: clamp(2.1rem, 3vw, 3.5rem); font-weight: 500; line-height: .92; letter-spacing: -.055em; }
.discovery-card div span { display: block; max-width: 280px; color: rgba(22,48,42,.68); font-size: .86rem; line-height: 1.45; }
.discovery-card > b { font-size: .82rem; }
.sponsor-slot { margin-top: 1.2rem; padding: 1rem; border: 1px dashed rgba(22,48,42,.24); border-radius: 18px; background: rgba(255,255,255,.3); }
.sponsor-label { display: block; margin-bottom: .4rem; color: var(--yfy-muted); font-size: .58rem; text-transform: uppercase; letter-spacing: .11em; }

/* Editorial grid */
.home-section--paper { background: var(--yfy-paper); }
.editorial-grid .yfy-card:nth-child(1) { grid-column: span 2; display: grid; grid-template-columns: .8fr 1.2fr; }
.editorial-grid .yfy-card:nth-child(1) .card-media { height: 100%; aspect-ratio: auto; }
.editorial-grid .yfy-card:nth-child(1) .card-title { font-size: clamp(2.1rem, 3.4vw, 3.8rem); }

/* Archives */
.archive-hero { position: relative; overflow: hidden; padding: clamp(4.6rem, 8vw, 8rem) 0 3.6rem; border-bottom: 1px solid var(--yfy-line); }
.archive-hero-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(260px, .5fr); gap: 4rem; align-items: end; position: relative; z-index: 1; }
.archive-hero h1 { max-width: 930px; margin: 0; font-size: clamp(3.7rem, 7vw, 7.15rem); line-height: .9; }
.archive-description { max-width: 730px; margin: 1.3rem 0 0; color: #5d6f68; font-size: 1.07rem; line-height: 1.65; }
.archive-symbol { min-height: 250px; display: grid; place-items: center; border-radius: 30px; overflow: hidden; position: relative; }
.archive-symbol::before { content: ""; position: absolute; width: 230px; height: 230px; border: 1px solid rgba(22,48,42,.18); border-radius: 50%; }
.archive-symbol svg { width: 75%; max-width: 300px; height: 220px; fill: none; stroke: var(--yfy-ink); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; position: relative; z-index: 1; }
.archive-hero--yfy_sequence .archive-symbol { background: var(--yfy-lime-soft); }
.archive-hero--yfy_style .archive-symbol { background: var(--yfy-lilac-soft); }
.archive-hero--yfy_training .archive-symbol { background: var(--yfy-sky-soft); }
.archive-hero--yfy_retreat .archive-symbol { background: var(--yfy-coral-soft); }
.archive-hero--yfy_studio .archive-symbol { background: var(--yfy-sun-soft); }
.archive-hero--yfy_pose .archive-symbol { background: #dce8dc; }
.archive-hero--guides .archive-symbol, .archive-hero--search .archive-symbol, .archive-hero--taxonomy .archive-symbol { background: #e4dfd2; }
.archive-orbit { position: absolute; width: 560px; height: 560px; right: -280px; bottom: -320px; border: 1px solid rgba(22,48,42,.07); border-radius: 50%; }
.archive-orbit span { position: absolute; border: 1px solid rgba(22,48,42,.07); border-radius: 50%; inset: 80px; }
.archive-orbit span:last-child { inset: 170px; }
.directory-shell { padding: 1.5rem 0 6rem; }
.directory-toolbar { display: grid; grid-template-columns: 1fr auto; gap: 1.3rem; align-items: center; padding: 1rem 0 1.6rem; }
.filter-form { display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; }
.filter-label { margin-right: .35rem; color: var(--yfy-muted); font-size: .68rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 820; }
.filter-form .filter-control { min-width: 165px; width: auto; height: 44px; padding: .6rem 2rem .6rem .75rem; border-radius: 999px; background: var(--yfy-paper); font-size: .8rem; }
.filter-form button { height: 44px; padding-inline: 1rem; font-size: .78rem; }
.filter-reset { color: var(--yfy-muted); font-size: .76rem; font-weight: 760; text-decoration: none; padding: .45rem; }
.result-count { color: var(--yfy-muted); font-size: .76rem; }
.archive-grid { padding-bottom: 3rem; }
.pagination { padding-bottom: 4rem; }
.pagination .nav-links { display: flex; gap: .4rem; flex-wrap: wrap; }
.pagination .page-numbers { padding: .55rem .8rem; background: var(--yfy-paper); border: 1px solid var(--yfy-line); border-radius: 999px; text-decoration: none; font-size: .78rem; }
.pagination .current { background: var(--yfy-ink); color: #fff; border-color: var(--yfy-ink); }
.empty-state { max-width: 740px; margin: 3.5rem 0; padding: 2.2rem; border: 1px solid var(--yfy-line); border-radius: 26px; background: var(--yfy-paper); }
.empty-state h2 { margin: 0 0 .6rem; color: var(--yfy-ink); font-family: var(--yfy-serif); font-size: 2.4rem; font-weight: 500; }
.empty-state-card { padding: 1.5rem; border: 1px solid var(--yfy-line); border-radius: 22px; background: var(--yfy-paper); }
.empty-state-card h3 { margin-top: 0; color: var(--yfy-ink); font-family: var(--yfy-serif); font-size: 1.8rem; }

/* Single */
.single-hero { padding: clamp(3.8rem, 7vw, 7.2rem) 0 3rem; border-bottom: 1px solid var(--yfy-line); overflow: hidden; }
.single-hero-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(280px, .52fr); gap: 4rem; align-items: end; }
.single-kicker-row { display: flex; align-items: center; gap: .6rem; }
.single-kicker-row .eyebrow { margin: 0; }
.entry-title { max-width: 940px; margin: .7rem 0 1rem; font-size: clamp(3.35rem, 6.4vw, 6.8rem); line-height: .9; }
.entry-subtitle { max-width: 790px; margin: 0; color: #5d6f68; font-size: clamp(1.05rem, 1.5vw, 1.23rem); line-height: 1.62; }
.single-quick-meta { margin: 1.1rem 0 0; color: var(--yfy-muted); font-size: .76rem; font-weight: 720; }
.single-hero-art { min-height: 310px; display: grid; place-items: center; background: var(--yfy-lime-soft); border-radius: 30px; overflow: hidden; position: relative; }
.single-hero-art::before { content: ""; position: absolute; width: 280px; height: 280px; border: 1px solid rgba(22,48,42,.15); border-radius: 50%; right: -60px; top: -90px; }
.single-hero-art svg { width: 72%; height: 240px; fill: none; stroke: var(--yfy-ink); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; position: relative; z-index: 1; }
.single-hero-art img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.single-hero--yfy_style .single-hero-art { background: var(--yfy-lilac-soft); }
.single-hero--yfy_training .single-hero-art { background: var(--yfy-sky-soft); }
.single-hero--yfy_retreat .single-hero-art { background: var(--yfy-coral-soft); }
.single-hero--yfy_studio .single-hero-art { background: var(--yfy-sun-soft); }
.single-hero--yfy_pose .single-hero-art { background: #dce8dc; }
.single-hero--post .single-hero-art { background: #e4dfd2; }
.content-wrap { display: grid; grid-template-columns: minmax(0, 780px) 330px; justify-content: space-between; gap: clamp(2.5rem, 6vw, 6rem); padding: clamp(3.5rem, 6vw, 6rem) 0; align-items: start; }
.main-article { min-width: 0; }
.entry-content { color: #344a42; font-size: 1rem; }
.entry-content > *:first-child { margin-top: 0; }
.entry-content > p:first-child { font-size: 1.1rem; line-height: 1.72; color: #2f443d; }
.entry-content p { margin: 0 0 1.25rem; }
.entry-content h2, .entry-content h3, .entry-content h4 { color: var(--yfy-ink); font-family: var(--yfy-serif); font-weight: 500; line-height: 1.08; letter-spacing: -.03em; }
.entry-content h2 { font-size: clamp(2rem, 3.2vw, 3rem); margin: 3.1rem 0 1rem; }
.entry-content h3 { font-size: 1.65rem; margin: 2.3rem 0 .85rem; }
.entry-content h4 { font-size: 1.25rem; }
.entry-content ul, .entry-content ol { margin: 1.2rem 0 1.6rem; padding-left: 1.35rem; }
.entry-content li { margin: .55rem 0; padding-left: .25rem; }
.entry-content ol li::marker { color: var(--yfy-coral); font-weight: 850; }
.entry-content strong { color: var(--yfy-ink); }
.entry-content blockquote { margin: 2.2rem 0; padding: 1.35rem 1.5rem; border: 1px solid rgba(238,140,106,.35); background: #fbebe5; border-radius: 20px; color: var(--yfy-ink); }
.entry-content blockquote p:last-child { margin-bottom: 0; }
.entry-content table { width: 100%; border-collapse: collapse; font-size: .86rem; margin: 1.6rem 0; }
.entry-content th, .entry-content td { padding: .85rem; border-bottom: 1px solid var(--yfy-line); text-align: left; vertical-align: top; }
.entry-content th { color: var(--yfy-ink); background: rgba(22,48,42,.04); }
.entry-content .wp-block-button { margin-top: 1rem; }
.fact-panel { position: sticky; top: 102px; border: 1px solid var(--yfy-line); background: var(--yfy-paper); border-radius: 26px; padding: 1.2rem; box-shadow: 0 16px 45px rgba(22,48,42,.06); }
.fact-panel-kicker { margin: 0 0 .5rem; color: var(--yfy-ink); font-family: var(--yfy-serif); font-size: 1.55rem; font-weight: 500; letter-spacing: -.03em; }
.fact-list { margin: 0; }
.fact-row { display: grid; grid-template-columns: 105px 1fr; gap: .7rem; padding: .78rem 0; border-top: 1px solid var(--yfy-line); font-size: .78rem; }
.fact-row dt { color: var(--yfy-muted); }
.fact-row dd { margin: 0; color: var(--yfy-ink); font-weight: 760; overflow-wrap: anywhere; }
.fact-actions { display: grid; gap: .7rem; margin-top: 1rem; }
.fact-back-link { color: var(--yfy-muted); font-size: .72rem; font-weight: 760; text-decoration: none; }
.fact-back-link:hover { color: var(--yfy-coral); }
.author-panel p { font-size: .86rem; }
.small-copy { color: var(--yfy-muted); font-size: .72rem !important; }
.disclosure { margin: 0 0 2rem; border: 1px solid #ddc675; background: #fbf2ca; border-radius: 18px; padding: 1rem 1.1rem; font-size: .78rem; color: #665821; }
.source-box { margin: 3rem 0 0; padding: 1.45rem; border-radius: 24px; background: var(--yfy-sky-soft); border: 1px solid rgba(22,48,42,.12); }
.source-box h2 { margin: 0 0 .65rem; color: var(--yfy-ink); font-family: var(--yfy-serif); font-size: 2rem; font-weight: 500; letter-spacing: -.03em; }
.source-box p { margin: 0 0 .9rem; font-size: .86rem; }
.source-box a { font-size: .82rem; font-weight: 800; text-decoration: none; }
.practice-note { display: grid; grid-template-columns: 46px 1fr; gap: .9rem; align-items: start; margin-top: 2.5rem; padding: 1.1rem; border: 1px solid rgba(22,48,42,.14); border-radius: 20px; background: var(--yfy-lime-soft); color: var(--yfy-ink); font-size: .8rem; line-height: 1.55; }
.practice-note__icon { width: 46px; height: 46px; display: grid; place-items: center; border: 1px solid rgba(22,48,42,.25); border-radius: 50%; font-size: 1.3rem; }
.related-section { padding: 0 0 6rem; }

/* Pages */
.page-hero { padding: clamp(4rem, 7vw, 7rem) 0 3rem; border-bottom: 1px solid var(--yfy-line); overflow: hidden; }
.page-hero-inner { display: grid; grid-template-columns: 1fr 160px; gap: 2rem; align-items: end; }
.page-hero .entry-title { margin-bottom: 0; }
.page-hero-mark { width: 130px; height: 130px; border: 2px solid var(--yfy-ink); border-radius: 50%; position: relative; justify-self: end; }
.page-hero-mark::before, .page-hero-mark::after { content: ""; position: absolute; background: var(--yfy-coral); border-radius: 50%; }
.page-hero-mark::before { width: 34px; height: 34px; left: -12px; top: 35px; }
.page-hero-mark::after { width: 18px; height: 18px; right: 16px; bottom: -5px; background: var(--yfy-lime); }
.page-content-wrap { padding: 4rem 0 6rem; }
.entry-content--page { max-width: 800px; }
.entry-content--page .intro-lede { font-family: var(--yfy-serif); font-size: clamp(1.8rem, 3vw, 2.65rem); line-height: 1.18; letter-spacing: -.03em; color: var(--yfy-ink); }
.entry-content--page .page-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 1rem; margin: 2rem 0; }
.entry-content--page .page-card { padding: 1.25rem; border: 1px solid var(--yfy-line); border-radius: 20px; background: var(--yfy-paper); }
.entry-content--page .page-card h3 { margin-top: 0; }

/* Newsletter */
.home-section--newsletter { padding-top: 0; background: var(--yfy-paper); }
.newsletter-box { display: grid; grid-template-columns: 1.15fr .85fr; gap: 3rem; background: var(--yfy-lime); color: var(--yfy-ink); border-radius: 34px; padding: clamp(1.8rem, 4vw, 3.8rem); align-items: center; overflow: hidden; position: relative; }
.newsletter-box::after { content: ""; position: absolute; width: 300px; height: 300px; border: 1px solid rgba(22,48,42,.18); border-radius: 50%; right: -140px; bottom: -170px; }
.newsletter-box .eyebrow { color: var(--yfy-ink); opacity: .6; }
.newsletter-box h2 { margin: 0; max-width: 680px; font-family: var(--yfy-serif); font-weight: 500; font-size: clamp(2.3rem, 4.3vw, 4.5rem); line-height: .96; letter-spacing: -.05em; }
.newsletter-box p { max-width: 610px; color: rgba(22,48,42,.7); }
.newsletter-form { display: grid; grid-template-columns: 1fr; gap: .6rem; position: relative; z-index: 1; }
.newsletter-form input { background: rgba(255,255,255,.85); border-color: rgba(22,48,42,.2); height: 54px; }
.newsletter-form button { height: 54px; width: 100%; background: var(--yfy-ink); }

/* 404 */
.error-page { min-height: 72vh; display: grid; align-items: center; padding: 5rem 0; }
.error-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 4rem; align-items: center; }
.error-page h1 { margin: 0; max-width: 760px; font-size: clamp(3.5rem, 7vw, 7rem); line-height: .9; }
.error-page p:not(.eyebrow) { max-width: 620px; color: var(--yfy-muted); }
.error-page .search-form { max-width: 600px; margin-top: 1.5rem; }
.error-links { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.5rem; }
.error-links a { font-weight: 760; text-decoration: none; }
.error-art { min-height: 380px; display: flex; align-items: center; justify-content: center; gap: .2rem; background: var(--yfy-lilac-soft); border-radius: 34px; font-family: var(--yfy-serif); font-size: 9rem; color: var(--yfy-ink); position: relative; overflow: hidden; }
.error-sun { width: 125px; height: 125px; background: var(--yfy-coral); border-radius: 50%; }

/* Footer */
.site-footer { background: var(--yfy-ink); color: #fff; }
.footer-lead { padding: clamp(4rem, 7vw, 7rem) 0 3.6rem; border-bottom: 1px solid rgba(255,255,255,.15); display: grid; grid-template-columns: 150px minmax(0,1fr) auto; gap: 2rem; align-items: end; }
.footer-kicker { margin: 0; color: var(--yfy-lime); font-size: .68rem; text-transform: uppercase; letter-spacing: .12em; font-weight: 850; }
.footer-lead h2 { margin: 0; max-width: 730px; color: #fff; font-family: var(--yfy-serif); font-size: clamp(2.7rem, 5vw, 5.4rem); font-weight: 500; line-height: .9; letter-spacing: -.05em; }
.footer-cta { color: #fff; text-decoration: none; font-size: .82rem; font-weight: 800; }
.footer-cta:hover { color: var(--yfy-lime); }
.footer-grid { display: grid; grid-template-columns: 1.45fr repeat(3, .7fr); gap: 2.8rem; padding: 3.5rem 0; }
.brand-lockup--footer { color: #fff; }
.brand-lockup--footer:hover { color: #fff; }
.brand-lockup--footer .brand-mark { border-color: #fff; }
.brand-lockup--footer .brand-mark::before, .brand-lockup--footer .brand-mark::after, .brand-lockup--footer .brand-mark span::before, .brand-lockup--footer .brand-mark span::after { background: #fff; }
.footer-brand p { max-width: 470px; color: rgba(255,255,255,.6); font-size: .84rem; }
.footer-column h3 { margin: .3rem 0 .9rem; color: rgba(255,255,255,.48); font-size: .64rem; text-transform: uppercase; letter-spacing: .12em; }
.footer-column ul { list-style: none; margin: 0; padding: 0; }
.footer-column li { margin: .42rem 0; }
.footer-column a { color: rgba(255,255,255,.85); text-decoration: none; font-size: .83rem; }
.footer-column a:hover { color: var(--yfy-lime); }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.13); padding: 1.25rem 0; display: flex; justify-content: space-between; gap: 1rem; color: rgba(255,255,255,.48); font-size: .67rem; }
.widget-area { margin: 2rem 0; }
.ad-slot { border: 1px dashed rgba(22,48,42,.3); border-radius: 14px; padding: .8rem; text-align: center; color: var(--yfy-muted); font-size: .72rem; background: rgba(255,255,255,.35); }

@media (max-width: 1080px) {
  .primary-nav { display: none; position: absolute; left: 22px; right: 22px; top: 72px; background: var(--yfy-paper); border: 1px solid var(--yfy-line); border-radius: 22px; padding: .65rem; box-shadow: var(--yfy-shadow); }
  .primary-nav.is-open { display: block; }
  .primary-nav ul { display: block; }
  .primary-nav a { padding: .78rem .85rem; border-radius: 12px; }
  .primary-nav .sub-menu { display: block; position: static; width: auto; border: 0; box-shadow: none; background: transparent; padding: 0 0 0 1rem; }
  .primary-nav .sub-menu a { color: var(--yfy-muted); }
  .menu-toggle { display: inline-flex; }
  .header-search-label { display: none; }
  .hero-grid, .single-hero-grid { grid-template-columns: 1fr; }
  .hero-compass { max-width: 720px; transform: none; }
  .feature-card-grid { grid-template-columns: 1fr 1fr; }
  .feature-card-grid .yfy-card:first-child { grid-row: auto; grid-column: span 2; display: grid; grid-template-columns: .9fr 1.1fr; }
  .feature-card-grid .yfy-card:first-child .card-media { min-height: 320px; }
  .feature-card-grid .yfy-card:nth-child(5) { grid-column: auto; }
  .feature-card-grid .yfy-card:nth-child(5) .card-media { width: 39%; }
  .archive-hero-grid { grid-template-columns: 1fr 260px; gap: 2.5rem; }
  .content-wrap { grid-template-columns: minmax(0,1fr) 300px; gap: 3rem; }
  .footer-lead { grid-template-columns: 110px 1fr; }
  .footer-cta { grid-column: 2; }
}

@media (max-width: 840px) {
  .hero-grid, .archive-hero-grid, .content-wrap, .error-grid, .learn-split, .newsletter-box { grid-template-columns: 1fr; }
  .archive-symbol { min-height: 180px; max-width: 460px; }
  .archive-symbol svg { height: 170px; }
  .section-head, .section-head--wide { grid-template-columns: 1fr; gap: 1rem; align-items: start; }
  .section-side-copy { justify-self: start; }
  .principles-grid { grid-template-columns: repeat(2,1fr); }
  .principles-grid p:nth-child(2) { border-right: 0; }
  .principles-grid p:nth-child(-n+2) { border-bottom: 1px solid var(--yfy-line); }
  .principles-grid p:nth-child(3) { padding-left: 0; }
  .card-grid, .archive-grid, .editorial-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .style-ribbon { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .discovery-grid { grid-template-columns: 1fr; }
  .discovery-card { min-height: 300px; }
  .learn-art { min-height: 420px; }
  .learn-copy { padding: 2.4rem; }
  .fact-panel { position: static; max-width: 780px; }
  .single-hero-art { max-width: 520px; min-height: 250px; }
  .directory-toolbar { grid-template-columns: 1fr; }
  .result-count { justify-self: start; }
  .footer-grid { grid-template-columns: 1.3fr 1fr 1fr; }
  .footer-column:last-child { grid-column: 2 / span 2; }
}

@media (max-width: 640px) {
  body { font-size: 16px; }
  .site-shell { width: min(calc(100% - 28px), var(--yfy-max)); }
  .header-inner { min-height: 70px; gap: .7rem; }
  .brand-wordmark { font-size: 1.28rem; }
  .brand-mark { width: 27px; height: 27px; }
  .header-search-link { width: 42px; height: 42px; padding: 0; justify-content: center; }
  .menu-toggle { width: 42px; height: 42px; }
  .hero--editorial { padding-top: 3.6rem; }
  .hero-main h1 { font-size: clamp(3.5rem, 16vw, 5.25rem); }
  .hero-search-wrap { grid-template-columns: 1fr; }
  .hero-search-wrap > span { display: none; }
  .search-form { grid-template-columns: 1fr; }
  .hero-actions { align-items: flex-start; flex-direction: column; }
  .hero-compass { padding: 1.2rem; border-radius: 26px; }
  .compass-links a { grid-template-columns: 1fr; gap: .15rem; }
  .compass-links b { text-align: left; }
  .compass-stats { grid-template-columns: repeat(2,1fr); row-gap: .9rem; }
  .principles-grid { grid-template-columns: 1fr; }
  .principles-grid p { border-right: 0; border-bottom: 1px solid var(--yfy-line); padding-left: 0; }
  .principles-grid p:last-child { border-bottom: 0; }
  .home-section { padding: 4.5rem 0; }
  .section-title { font-size: clamp(2.5rem, 12vw, 4rem); }
  .feature-card-grid, .card-grid, .archive-grid, .editorial-grid, .style-ribbon { grid-template-columns: 1fr; }
  .feature-card-grid .yfy-card:first-child { grid-column: auto; display: flex; }
  .feature-card-grid .yfy-card:first-child .card-media { min-height: 260px; }
  .feature-card-grid .yfy-card:not(:first-child) { flex-direction: column; }
  .feature-card-grid .yfy-card:not(:first-child) .card-media, .feature-card-grid .yfy-card:nth-child(5) .card-media { width: 100%; min-height: auto; aspect-ratio: 16/10; }
  .feature-card-grid .yfy-card:not(:first-child) .card-excerpt { display: block; }
  .editorial-grid .yfy-card:nth-child(1) { grid-column: auto; display: flex; }
  .editorial-grid .yfy-card:nth-child(1) .card-media { aspect-ratio: 16/10; }
  .learn-art { min-height: 360px; }
  .learn-art p { left: 1.25rem; bottom: 1.2rem; }
  .learn-links a { grid-template-columns: 1fr; gap: .25rem; }
  .archive-hero h1, .entry-title { font-size: clamp(3.2rem, 15vw, 5rem); }
  .archive-symbol { display: none; }
  .filter-form { display: grid; grid-template-columns: 1fr 1fr; }
  .filter-label { grid-column: span 2; }
  .filter-form label, .filter-form .filter-control { width: 100%; min-width: 0; }
  .filter-form button { width: 100%; }
  .filter-reset { align-self: center; text-align: center; }
  .single-hero-art { min-height: 210px; }
  .entry-content h2 { font-size: 2.1rem; }
  .fact-row { grid-template-columns: 95px 1fr; }
  .page-hero-inner { grid-template-columns: 1fr; }
  .page-hero-mark { display: none; }
  .entry-content--page .page-grid { grid-template-columns: 1fr; }
  .footer-lead { grid-template-columns: 1fr; gap: 1rem; }
  .footer-cta { grid-column: auto; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .footer-brand { grid-column: span 2; }
  .footer-column:last-child { grid-column: auto; }
  .footer-bottom { display: block; }
  .footer-bottom span { display: block; margin: .35rem 0; }
  .error-art { min-height: 250px; font-size: 6rem; }
  .error-sun { width: 90px; height: 90px; }
}
