/*
Theme Name: Heaven Wedding
Description: Custom hand-built blog theme for Heaven Wedding Ideas
Version: 8.48
Text Domain: heaven-wedding
*/

/* =====================================================
   COLORS AUR FONTS: poori site ka look yahin se badalta hai
   ===================================================== */

:root {
  --ivory: #FFF9F5;        /* Ivory: main background */
  --cream: #F6E9E8;        /* Blush-tinted soft surface */
  --blush: #E8C8C7;        /* Blush: cards / soft sections */
  --blush-soft: #F6E9E8;   /* Light blush surface */
  --dusty-blue: #7896AD;   /* Dusty Blue: secondary accents */
  --berry: #8E3153;        /* Berry: primary CTA + important headings */
  --gold: #C9A45D;         /* Champagne Gold: tiny premium accents */
  --charcoal: #30343A;     /* Charcoal: normal text */

  /* Legacy tokens mapped to the new brand palette */
  --olive: #7896AD;
  --olive-dark: #30343A;
  --sage-soft: #7896AD;
  --gold-dark: #8E3153;
  --gold-light: #E8C8C7;
  --ink: #30343A;
  --white: #FFFFFF;
  --paper: #FFFFFF;
  --border: #E8C8C7;
  --pinterest: #8E3153;

  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: "DM Sans", system-ui, sans-serif;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--ivory);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 1rem;
  line-height: 1.7;
}

img { display: block; max-width: 100%; height: auto; border-radius: 6px; }
.card-image img, .hero, .cat-item, .fmw-option { border-radius: 6px; }

a { color: var(--olive); text-decoration: none; }
a:hover { color: var(--gold); }
a:focus-visible { outline: 2px solid var(--olive); outline-offset: 3px; }

h1, h2, h3 {
  font-family: var(--serif);
  font-weight: 500;
  line-height: 1.15;
  color: var(--olive-dark);
}
.screen-reader-text {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap;
}

/* =====================================================
   TOP ANNOUNCEMENT BAR
   ===================================================== */
.announcement-bar {
  background: var(--cream);
  border-bottom: 1px solid var(--border);
  font-family: var(--sans);
}
.announcement-inner {
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.55rem 1.5rem;
  min-height: 40px;
}
.announcement-text {
  margin: 0;
  font-family: var(--serif);
  font-size: 0.95rem;
  color: var(--olive);
  white-space: nowrap;
}
.announcement-icon { margin-right: 0.4rem; color: var(--gold); }
.announcement-right { display: flex; align-items: center; gap: 1.25rem; }
.announcement-email { font-size: 0.85rem; color: var(--olive); }
.announcement-email:hover { color: var(--gold); }
.announcement-social { display: flex; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.social-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.social-btn svg { width: 62%; height: 62%; }
.social-btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 14px rgba(41, 43, 41, 0.18);
}

/* =====================================================
   MAIN HEADER: logo + tagline + nav
   ===================================================== */
.site-header {
  position: relative;
  z-index: 30;
  background: var(--ivory);
  border-bottom: 1px solid var(--border);
}
.header-main {
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1.5rem;
  padding: 1.1rem 1.5rem;
}

.logo-block {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  color: var(--olive);
  transition: color 0.25s ease, transform 0.25s ease;
}
.logo-block:hover { color: var(--gold); transform: translateY(-2px); }
.logo-icon {
  display: inline-flex;
  width: 3rem;
  height: 3rem;
  color: var(--gold);
}
.logo-icon svg circle { color: var(--olive); }
.logo-icon svg { width: 100%; height: 100%; }
.logo-icon-photo {
  overflow: hidden;
  border-radius: 50%;
  border: 1px solid rgba(201,164,93,.48);
  background: var(--cream);
}
.logo-icon-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: 50%;
}
.logo-text { display: flex; flex-direction: column; line-height: 1.2; }
.site-title {
  font-family: var(--serif);
  font-size: 1.85rem;
  font-weight: 600;
  color: inherit;
}
.site-tagline {
  font-family: var(--sans);
  font-size: 0.65rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--sage-soft);
}

/* "Menu" button (mobile) */
.nav-toggle {
  display: none;
  padding: 0.4rem 0.7rem;
  font-size: 1.35rem;
  line-height: 1;
  color: var(--olive);
  background: transparent;
  border: 1px solid var(--border);
  border-radius: 6px;
  cursor: pointer;
}
.nav-toggle:hover { border-color: var(--gold); color: var(--gold); }

/* ---------- Navigation + dropdown (light, per design system) ---------- */
.site-nav ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 1.6rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.site-nav li { position: relative; }
.site-nav a {
  display: inline-block;
  position: relative;
  padding: 0.6rem 0 0.9rem;
  font-family: var(--sans);
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--olive);
}
.site-nav a::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0.55rem;
  width: 0;
  height: 2px;
  background: var(--gold);
  transition: width 0.25s ease;
}
.site-nav a { transition: color 0.2s ease, transform 0.2s ease; }
.site-nav a:hover,
.site-nav .current-menu-item > a,
.site-nav .current-menu-ancestor > a,
.site-nav .current-menu-parent > a { color: var(--gold); }
.site-nav a:hover { transform: translateY(-2px); }   /* category par mouse: halka upar hilti hai */
.site-nav a:hover::after,
.site-nav .current-menu-item > a::after { width: 40px; }

.site-nav .menu-item-has-children > a::before {
  content: "";
  display: inline-block;
  width: 0.35em;
  height: 0.35em;
  margin-left: 0.45em;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-0.1em) rotate(45deg);
}

/* dropdown: light background, thin border, subtle shadow, 250px chaura */
.site-nav .sub-menu {
  position: absolute;
  top: 100%;
  left: -1rem;
  z-index: 40;
  display: none;
  flex-direction: column;
  min-width: 250px;
  padding: 0.4rem 0;
  background: var(--ivory);
  border: 1px solid var(--border);
  border-top: 2px solid var(--gold);
  border-radius: 6px;
  box-shadow: 0 10px 30px rgba(50, 50, 40, 0.08);
}
.site-nav li:hover > .sub-menu,
.site-nav li:focus-within > .sub-menu { display: flex; }
.site-nav li:nth-last-child(-n+2) > .sub-menu { left: auto; right: -1rem; }
.site-nav .sub-menu a { display: block; padding: 0.65rem 1.1rem; font-size: 0.87rem; }
.site-nav .sub-menu a::after { display: none; }
.site-nav .sub-menu a:hover {
  background: var(--cream);
  color: var(--gold);
  transform: translateX(4px);   /* sub-category par mouse: side mein halki hilti hai */
}

/* =====================================================
   HERO
   ===================================================== */
.hero {
  background-color: var(--olive);
  background-image:
    linear-gradient(90deg, rgba(251,247,241,0.55) 0%, rgba(251,247,241,0.18) 45%, rgba(251,247,241,0.04) 100%),
    var(--hero-image, none);
  background-size: cover;
  background-position: center;
  color: var(--olive-dark);
}
.hero-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: clamp(3.5rem, 10vw, 6.5rem) 1.5rem;
}
.hero-eyebrow {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin: 0 0 1rem;
  font-family: var(--sans);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--olive);
}
.eyebrow {
  margin: 0 0 0.6rem;
  font-family: var(--sans);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold-dark);
}
.eyebrow-line { display: inline-block; width: 32px; height: 2px; background: var(--gold); }
.hero-title {
  margin: 0;
  font-size: clamp(2.75rem, 7.5vw, 5.25rem);
  color: var(--olive-dark);
}
.hero-subtitle {
  margin: 0.4rem 0 0;
  font-size: clamp(1.4rem, 3vw, 2.25rem);
  font-family: var(--serif);
  font-style: italic;
  color: var(--olive);
}
.hero-support {
  margin: 1.25rem 0 0;
  font-size: 1rem;
  letter-spacing: 0.05em;
  color: var(--olive);
}

/* ---------- Pill CTA button (used in hero + Find My Wedding box) ---------- */
.hero-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 2rem;
  padding: 0.95rem 2rem;
  font-family: var(--sans);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--white);
  background: var(--gold);
  border-radius: 999px;
  box-shadow: 0 8px 20px rgba(90, 70, 30, 0.18);
  transition: background-color 0.25s ease, transform 0.25s ease;
}
.hero-cta:hover { color: var(--white); background: var(--gold-dark); transform: translateY(-2px); }
.hero-cta .arrow { transition: transform 0.25s ease; }
.hero-cta:hover .arrow { transform: translateX(4px); }

/* =====================================================
   CATEGORY STRIP (thin-line icons, uppercase labels)
   ===================================================== */
.category-strip {
  background: var(--ivory);
  border-bottom: 1px solid var(--border);
}
.category-strip-inner {
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  align-items: stretch;
  padding: 1.1rem 1.5rem;
  overflow-x: auto;
}
.cat-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  flex: 1 0 auto;
  min-width: 6.5rem;
  padding: 0.5rem 0.75rem;
  color: var(--olive);
  text-align: center;
  transition: color 0.2s ease;
}
.cat-icon {
  display: inline-flex;
  width: 34px;
  height: 34px;
  color: var(--olive);
  transition: color 0.2s ease, transform 0.2s ease;
}
.cat-icon svg { width: 100%; height: 100%; }
.cat-item:hover .cat-icon { color: var(--gold); transform: translateY(-2px); }
.cat-item:hover { color: var(--gold); }
.cat-label {
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.cat-sep {
  align-self: center;
  width: 1px;
  height: 40px;
  background: var(--gold-light);
  opacity: 0.7;
  flex-shrink: 0;
}

/* =====================================================
   MAIN CONTENT
   ===================================================== */
.site-main {
  max-width: 1280px;
  margin: 0 auto;
  padding: 3rem 1.5rem 4rem;
}
.section-title {
  margin: 0 0 2rem;
  font-size: clamp(1.9rem, 4.5vw, 2.75rem);
  text-align: center;
}
.latest-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  margin: 0 0 2.5rem;
}
.latest-head .eyebrow { margin-bottom: 0.4rem; }
.latest-head .section-title { margin: 0; text-align: left; }
.latest-sub { margin: 0; font-size: 1rem; color: #70746B; }
.view-all-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-family: var(--sans);
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--gold-dark);
  white-space: nowrap;
}
.view-all-link:hover { color: var(--olive-dark); }
.view-all-link .arrow { transition: transform 0.2s ease; }
.view-all-link:hover .arrow { transform: translateX(3px); }

/* ---------- Category cards (image + description + Explore link) ---------- */
.categories { margin-bottom: 3.5rem; }
.categories-head { max-width: 40rem; margin: 0 auto 2.5rem; text-align: center; }
.categories-head .eyebrow {
  margin: 0 0 0.6rem;
  font-family: var(--sans);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold-dark);
}
.categories-head h2 {
  margin: 0 0 0.6rem;
  font-size: clamp(2rem, 4.5vw, 2.75rem);
  color: var(--olive-dark);
}
.categories-sub { margin: 0; font-size: 1rem; color: #70746B; }

.cat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  align-items: stretch;
}
.cat-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--white);
  border: 1px solid #E1D7C8;
  border-radius: 8px;
  overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.cat-card:hover { transform: translateY(-6px); box-shadow: 0 14px 28px rgba(52, 55, 49, 0.15); }
.cat-card-image {
  display: block;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--border);
}
.cat-card-image img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; transition: transform 0.4s ease; }
.cat-card:hover .cat-card-image img { transform: scale(1.05); }

.cat-card-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 128px;
  padding: 1.1rem 1.25rem 1.25rem;
}
.cat-card-name {
  margin: 0 0 0.4rem;
  font-family: var(--serif);
  font-size: 1.35rem;
  font-weight: 600;
  line-height: 1.2;
  color: #4C5545;
}
.cat-card-desc {
  margin: 0 0 0.75rem;
  flex: 1;
  font-family: var(--sans);
  font-size: 0.9rem;
  line-height: 1.5;
  color: #70746B;
}
.cat-card-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  align-self: flex-start;
  font-family: var(--sans);
  font-size: 0.85rem;
  font-weight: 600;
  color: #B99555;
  border-bottom: 1px solid #B99555;
  padding-bottom: 0.15rem;
  transition: color 0.2s ease, gap 0.2s ease;
}
.cat-card-link .arrow { transition: transform 0.2s ease; }
.cat-card:hover .cat-card-link { color: var(--gold-dark); }
.cat-card:hover .cat-card-link .arrow { transform: translateX(3px); }

/* ---------- Find My Wedding: slim banner right under the hero ---------- */
.fmw-banner {
  background: var(--olive-dark);
  border-bottom: 1px solid rgba(220, 198, 155, 0.3);
}
.fmw-banner-inner {
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.75rem 1.5rem;
  padding: 0.85rem 1.5rem;
  text-align: center;
}
.fmw-banner-text {
  margin: 0;
  font-family: var(--serif);
  font-size: 1.05rem;
  color: var(--ivory);
}
.fmw-banner-text span { color: var(--gold); margin-right: 0.3rem; }
.fmw-banner-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.5rem 1.25rem;
  font-family: var(--sans);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--white);
  background: var(--gold);
  border-radius: 999px;
  white-space: nowrap;
  transition: background-color 0.25s ease, transform 0.25s ease;
}
.fmw-banner-cta:hover { color: var(--white); background: var(--gold-dark); transform: translateY(-2px); }
.fmw-banner-cta .arrow { transition: transform 0.25s ease; }
.fmw-banner-cta:hover .arrow { transform: translateX(3px); }

/* ---------- Post cards ---------- */
.post-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 2.5rem 2rem;
}
.card {
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.card:hover { transform: translateY(-6px); box-shadow: 0 14px 28px rgba(52, 55, 49, 0.12); }
.card-image { display: block; aspect-ratio: 4 / 5; overflow: hidden; background: var(--border); }
.card-image img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; transition: transform 0.4s ease; }
.card:hover .card-image img { transform: scale(1.04); }
.card-title { margin: 1.1rem 1.25rem 0.5rem; font-size: 1.6rem; }
.card-title a { color: var(--olive-dark); }
.card:hover .card-title a { color: var(--gold-dark); }
.card-excerpt { margin: 0 1.25rem; color: var(--ink); font-size: 0.95rem; }
.card-excerpt p { margin: 0 0 0.5rem; }
.card-date { display: block; margin: 0.75rem 1.25rem 1.25rem; font-size: 0.8rem; color: var(--sage-soft); }

.pagination .nav-links { display: flex; justify-content: center; gap: 1rem; margin-top: 3rem; }
.empty { color: var(--sage-soft); text-align: center; }

/* ---------- (single post CSS replaced below in the ARTICLE PAGE section) ---------- */

/* =====================================================
   FOOTER (dark olive)
   ===================================================== */
.site-footer { background: var(--olive-dark); color: var(--cream); }
.footer-inner {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 2.5rem;
  padding: 3rem 1.5rem 2rem;
}
.footer-logo { margin: 0 0 0.6rem; font-family: var(--serif); font-size: 1.6rem; color: var(--ivory); }
.footer-col p { margin: 0; color: var(--gold-light); font-size: 0.92rem; }
.footer-col h3 { margin: 0 0 1rem; font-size: 1.1rem; color: var(--ivory); text-transform: uppercase; letter-spacing: 0.05em; }
.footer-col ul { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 0.55rem; }
.footer-col a { color: var(--gold-light); font-size: 0.92rem; }
.footer-col a:hover { color: var(--gold); }
.footer-bottom {
  margin: 0;
  padding: 1.25rem 1.5rem;
  text-align: center;
  font-size: 0.85rem;
  color: var(--gold-light);
  border-top: 1px solid rgba(220, 198, 155, 0.25);
}

/* =====================================================
   FIND MY WEDDING QUIZ + RESULTS PAGE
   ===================================================== */
.fmw-narrow { max-width: 56rem; margin: 0 auto; }
.fmw-intro { margin-bottom: 2rem; text-align: center; }
.fmw-intro h1 { margin: 0 0 0.5rem; font-size: clamp(2.25rem, 5.5vw, 3.5rem); }
.fmw-intro p { margin: 0; color: var(--ink); }

.fmw {
  padding: clamp(1.25rem, 4vw, 2.75rem);
  background: var(--cream);
  border: 1px solid var(--border);
  border-top: 3px solid var(--gold);
  border-radius: 8px;
}
.fmw-progress { height: 4px; background: var(--border); border-radius: 999px; overflow: hidden; }
.fmw-progress-bar { height: 100%; background: var(--gold); transition: width 0.35s ease; }
.fmw-step { margin: 1rem 0 0.25rem; font-size: 0.85rem; color: var(--sage-soft); }
.fmw-question { margin: 0 0 0.35rem; font-size: clamp(1.7rem, 3.5vw, 2.25rem); outline: none; }
.fmw-hint { margin: 0 0 1.5rem; color: var(--ink); }

.fmw-options { display: grid; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: 0.75rem; }
.fmw-option {
  display: flex; align-items: center; gap: 0.6rem;
  padding: 0.9rem 1rem; font: inherit; text-align: left;
  color: var(--olive); background: var(--ivory); border: 1px solid var(--border);
  cursor: pointer; transition: transform 0.2s ease, background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.fmw-option:hover { transform: translateY(-3px); border-color: var(--gold); }
.fmw-option[aria-pressed="true"] { color: var(--white); background: var(--olive-dark); border-color: var(--gold); }
.fmw-option-icon { font-size: 1.3rem; line-height: 1; }

.fmw-actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 2rem; }
.fmw-back { padding: 0.5rem 0; font: inherit; color: var(--olive); background: none; border: 0; cursor: pointer; text-decoration: underline; text-decoration-color: var(--gold); }
.fmw-next {
  padding: 0.8rem 1.75rem; font: inherit; font-weight: 600; color: var(--white);
  background: var(--gold); border: 0; border-radius: 999px; cursor: pointer;
  transition: background-color 0.25s ease;
}
.fmw-next:hover:not(:disabled) { background: var(--gold-dark); }
.fmw-next:disabled { opacity: 0.45; cursor: not-allowed; }
.fmw-option:focus-visible, .fmw-next:focus-visible, .fmw-back:focus-visible { outline: 2px solid var(--olive); outline-offset: 3px; }

.fmw-results-head { margin-bottom: 2.5rem; text-align: center; }
.fmw-results-title { margin: 0 0 1rem; font-size: clamp(2.25rem, 5.5vw, 3.5rem); }
.fmw-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.fmw-chips li { padding: 0.3rem 0.9rem; font-size: 0.85rem; color: var(--olive); background: var(--cream); border: 1px solid var(--border); border-radius: 999px; }
.fmw-note { margin: 0 0 0.75rem; color: var(--ink); }

/* =====================================================
   TABLET AUR MOBILE
   ===================================================== */
@media (max-width: 900px) {
  .announcement-social { display: none; }
  .nav-toggle { display: inline-flex; align-items: center; justify-content: center; }
  .site-nav { flex-basis: 100%; display: none; margin-top: 0.75rem; }
  .site-nav.is-open { display: block; }
  .site-nav ul { flex-direction: column; gap: 0; }
  .site-nav a { padding: 0.7rem 0; }
  .site-nav a::after { display: none; }
  .site-nav .menu-item-has-children > a::before { float: right; margin-top: 0.4em; }
  .site-nav .sub-menu {
    position: static; display: flex; min-width: 0; padding: 0 0 0.4rem 1rem;
    background: transparent; border: 0; box-shadow: none;
  }
  .site-nav li:nth-last-child(-n+2) > .sub-menu { right: auto; }

  .cat-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
  .category-strip-inner { overflow-x: visible; flex-wrap: wrap; justify-content: center; }
  .cat-sep { display: none; }
  .cat-item { flex: 0 0 calc(25% - 0.5rem); min-width: 0; }

  .footer-inner { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  .announcement-text { font-size: 0.85rem; white-space: normal; }
  .site-title { font-size: 1.5rem; }
  .cat-item { flex-basis: calc(50% - 0.5rem); }
  .fmw-options { grid-template-columns: repeat(2, 1fr); }
  .footer-inner { grid-template-columns: 1fr; }
}

/* ---------- "Reduce motion" ke liye hilna band ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .logo-block, .site-nav a::after, .hero-cta, .hero-cta .arrow,
  .cat-item, .cat-icon, .card, .card-image img,
  .fmw-option, .fmw-progress-bar, .fmw-next { transition: none; }
  .hero-cta:hover, .card:hover, .fmw-option:hover, .cat-item:hover .cat-icon { transform: none; }
}

/* =====================================================
   ABOUT PAGE
   ===================================================== */
.about-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 2.5rem;
  margin-bottom: 3rem;
}
.about-hero-image { border-radius: 8px; overflow: hidden; }
.about-hero-image img { border-radius: 0; aspect-ratio: 4 / 5; object-fit: cover; }
.about-hero-placeholder { aspect-ratio: 4 / 5; background: var(--cream); border: 1px solid var(--border); }
.about-hero-text .eyebrow {
  margin: 0 0 0.6rem;
  font-family: var(--sans);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold-dark);
}
.about-hero-text h1 { margin: 0 0 1rem; font-size: clamp(2.25rem, 5vw, 3.25rem); }
.about-lede { font-size: 1.1rem; color: #70746B; }

.about-body { max-width: 44rem; margin: 0 auto; }
.about-content p { margin: 0 0 1.25rem; color: var(--ink); }
.about-cta { text-align: center; margin-top: 2rem; }

@media (max-width: 800px) {
  .about-hero { grid-template-columns: 1fr; }
}

/* =====================================================
   FEATURED WEDDING EDITS (Editor's Choice)
   ===================================================== */
.featured-edits { margin-bottom: 3.5rem; }
.featured-edits > .eyebrow { text-align: center; }
.featured-edits > h2 { margin: 0 0 2rem; text-align: center; font-size: clamp(2rem, 4.5vw, 2.75rem); }

.edits-grid {
  display: grid;
  grid-template-columns: 1.4fr 1.4fr 1fr;
  gap: 1.5rem;
  align-items: stretch;
}
.edit-card {
  display: flex;
  flex-direction: column;
  background: var(--white);
  border: 1px solid #E1D7C8;
  border-radius: 8px;
  overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.edit-card:hover { transform: translateY(-6px); box-shadow: 0 14px 28px rgba(52, 55, 49, 0.15); }
.edit-card-collage {
  aspect-ratio: 3 / 2;
  background-color: var(--cream);
  background-image: var(--collage-image, none);
  background-size: cover;
  background-position: center;
}
.edit-card-collage span { display: none; }  /* decorative markers reserved for a future collage layout */
.edit-card-body { padding: 1.1rem 1.25rem 1.35rem; }
.edit-card-tag {
  margin: 0 0 0.4rem;
  font-family: var(--sans);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gold-dark);
}
.edit-card-body h3 { margin: 0; font-size: 1.4rem; color: var(--olive-dark); }
.edit-card:hover .edit-card-body h3 { color: var(--gold-dark); }

.spotlight-card { justify-content: flex-start; }
.spotlight-top {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 3 / 2;
  background: repeating-linear-gradient(45deg, var(--cream), var(--cream) 10px, #EFE4D2 10px, #EFE4D2 20px);
}
.spotlight-letter {
  font-family: var(--serif);
  font-size: 4.5rem;
  color: var(--gold);
}

/* =====================================================
   RECENT POSTS LIST
   ===================================================== */
.post-list { display: flex; flex-direction: column; gap: 1.5rem; margin-bottom: 2.5rem; }
.post-row {
  display: grid;
  grid-template-columns: 258px 1fr;
  gap: 1.6rem;
  background: var(--white);
  border: 1px solid #E1D7C8;
  border-radius: 8px;
  overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.post-row:hover { transform: translateY(-4px); box-shadow: 0 14px 28px rgba(52, 55, 49, 0.12); }
.post-row-image {
  display: block;
  aspect-ratio: 4 / 5;
  min-height: 290px;
  overflow: hidden;
  background: #F8F2EC;
}
.post-row-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  border-radius: 0;
}
.post-row-body { display: flex; flex-direction: column; padding: 1.1rem 1.25rem 1.1rem 0; }
.post-row-tag {
  margin: 0 0 0.35rem;
  font-family: var(--sans);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gold-dark);
}
.post-row-title { margin: 0 0 0.5rem; font-size: 1.6rem; }
.post-row-title a { color: var(--olive-dark); }
.post-row:hover .post-row-title a { color: var(--gold-dark); }
.post-row-excerpt { color: #70746B; font-size: 0.95rem; flex: 1; }
.post-row-excerpt p { margin: 0; }
.post-row-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1rem;
  flex-wrap: wrap;
}
.post-row-meta {
  margin: 0;
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.8rem;
  color: var(--sage-soft);
  white-space: nowrap;
}
.read-more-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.55rem 1.15rem;
  font-family: var(--sans);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--white);
  background: var(--gold);
  border-radius: 999px;
  white-space: nowrap;
  transition: background-color 0.2s ease, transform 0.2s ease;
}
.read-more-btn:hover { color: var(--white); background: var(--gold-dark); transform: translateY(-2px); }

.explore-more { text-align: center; margin-bottom: 1rem; }
.explore-more-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.85rem 2rem;
  font-family: var(--sans);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--olive-dark);
  background: transparent;
  border: 1.5px solid var(--gold);
  border-radius: 999px;
  transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.explore-more-btn:hover { color: var(--white); background: var(--gold); transform: translateY(-2px); }

/* =====================================================
   NEWSLETTER (dark box)
   ===================================================== */
.newsletter {
  background: var(--olive-dark);
  color: var(--ivory);
  text-align: center;
  padding: clamp(3rem, 7vw, 4.5rem) 1.5rem;
}
.newsletter-inner { max-width: 40rem; margin: 0 auto; }
.newsletter .eyebrow { color: var(--gold); justify-content: center; }
.newsletter h2 { margin: 0 0 1.75rem; color: var(--ivory); font-size: clamp(1.9rem, 4.5vw, 2.6rem); }
.newsletter-form {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
  margin: 0 0 1rem;
}
.newsletter-form input[type="email"] {
  flex: 1 1 16rem;
  max-width: 22rem;
  padding: 0.9rem 1.25rem;
  font: inherit;
  color: var(--ivory);
  background: rgba(251, 247, 241, 0.08);
  border: 1px solid rgba(220, 198, 155, 0.4);
  border-radius: 999px;
}
.newsletter-form input[type="email"]::placeholder { color: rgba(251, 247, 241, 0.6); }
.newsletter-form button {
  padding: 0.9rem 1.75rem;
  font: inherit;
  font-weight: 600;
  color: var(--white);
  background: var(--gold);
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.newsletter-form button:hover { background: var(--gold-dark); }
.newsletter-note { margin: 0; font-size: 0.85rem; color: rgba(251, 247, 241, 0.6); }

/* =====================================================
   BACK TO TOP BUTTON
   ===================================================== */
.to-top {
  position: fixed;
  right: 1.25rem;
  bottom: 1.25rem;
  z-index: 50;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.7rem 1.1rem;
  font-family: var(--sans);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--white);
  background: var(--gold);
  border: 0;
  border-radius: 999px;
  box-shadow: 0 8px 18px rgba(41, 43, 41, 0.25);
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity 0.25s ease, transform 0.25s ease, background-color 0.2s ease;
}
.to-top.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.to-top:hover { background: var(--gold-dark); }

/* =====================================================
   MOBILE: featured edits, recent posts, newsletter
   ===================================================== */
@media (max-width: 900px) {
  .edits-grid { grid-template-columns: 1fr 1fr; }
  .spotlight-card { grid-column: 1 / -1; }
  .post-row { grid-template-columns: 1fr; }
  .post-row-image { aspect-ratio: 16 / 9; }
  .post-row-body { padding: 1rem 1.25rem 1.25rem; }
}
@media (max-width: 600px) {
  .edits-grid { grid-template-columns: 1fr; }
  .latest-head { flex-direction: column; align-items: flex-start; }
}

/* =====================================================
   ARTICLE PAGE (single.php)
   ===================================================== */
.article-page { max-width: 1280px; }

.entry-breadcrumb { max-width: 780px; margin: 0 auto 1rem; font-size: 0.85rem; color: var(--sage-soft); }
.entry-breadcrumb a { color: var(--sage-soft); }
.entry-breadcrumb a:hover { color: var(--gold-dark); }

.article-header { max-width: 780px; margin: 0 auto; text-align: left; }
.entry-title { margin: 0 0 0.75rem; font-size: clamp(1.9rem, 5vw, 3.4rem); }
.entry-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  color: var(--sage-soft);
  font-size: 0.8rem;
  letter-spacing: 0.04em;
}
.entry-meta-cat { color: var(--gold-dark); font-weight: 700; }

/* ---------- Two-column layout ---------- */
.article-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 2.5rem;
  align-items: start;
  margin-top: 2rem;
}
.article-main { max-width: 780px; }
.article-sidebar {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  position: sticky;
  top: 1.5rem;
}

/* ---------- Featured image, 16:9 ---------- */
.entry-image-16x9 { margin: 0 0 1.5rem; border-radius: 8px; overflow: hidden; }
.entry-image-16x9 img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 0; }

/* ---------- SAVE & SHARE bar ---------- */
.save-share { margin: 0 0 1.75rem; }
.save-share-title {
  margin: 0 0 0.6rem;
  font-family: var(--sans);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--sage-soft);
}
.save-share-buttons { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.share-pin, .share-btn-wide {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.5rem 1rem;
  font-family: var(--sans);
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--olive-dark);
  background: var(--white);
  border: 1px solid #E1D7C8;
  border-radius: 22px;
  cursor: pointer;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.share-pin svg, .share-btn-wide svg { width: 1rem; height: 1rem; }
.share-pin:hover, .share-btn-wide:hover {
  color: var(--olive-dark);
  transform: translateY(-2px);
  box-shadow: 0 8px 16px rgba(41, 43, 41, 0.12);
}
.share-pin { animation: share-pulse 4s ease-in-out infinite; }
@keyframes share-pulse {
  0%, 88%, 100% { box-shadow: 0 0 0 0 rgba(196, 160, 95, 0); }
  92% { box-shadow: 0 0 0 5px rgba(196, 160, 95, 0.18); }
}
.share-instagram.copied { background: var(--gold); color: var(--white); border-color: var(--gold); }

/* ---------- Table of Contents ---------- */
.toc {
  margin: 0 0 2rem;
  padding: 1rem 1.25rem;
  background: var(--ivory);
  border: 1px solid var(--border);
  border-radius: 8px;
}
.toc summary {
  font-family: var(--sans);
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--olive-dark);
  cursor: pointer;
}
.toc summary::marker { color: var(--gold); }
.toc[open] summary { margin-bottom: 0.75rem; }
.toc ol { margin: 0; padding-left: 1.1rem; }
.toc li { margin-bottom: 0.45rem; font-size: 0.92rem; }
.toc li a { color: var(--olive); }
.toc li a:hover { color: var(--gold-dark); }
.toc li.toc-sub { list-style: none; margin-left: 1rem; font-size: 0.85rem; }

/* ---------- Article content typography ---------- */
.entry-content h2 { margin: 2.5rem 0 0.75rem; font-size: clamp(1.5rem, 3.5vw, 2rem); scroll-margin-top: 1rem; }
.entry-content h3 { margin: 2rem 0 0.6rem; font-size: clamp(1.25rem, 3vw, 1.5rem); scroll-margin-top: 1rem; }
.entry-content p { margin: 0 0 1.25rem; font-size: 1.05rem; line-height: 1.85; color: var(--ink); }
.entry-content img { margin: 1.5rem 0; border-radius: 10px; }
.entry-content a { color: var(--olive); text-decoration: underline; text-decoration-color: var(--gold); }
.entry-content a:hover { color: var(--gold-dark); }
.entry-content blockquote {
  margin: 2rem 0;
  padding: 0.25rem 0 0.25rem 1.5rem;
  border-left: 3px solid var(--gold);
  font-family: var(--serif);
  font-style: italic;
  font-size: 1.35rem;
  color: var(--olive-dark);
}
.entry-content ul, .entry-content ol { margin: 0 0 1.25rem; padding-left: 1.25rem; color: var(--ink); }
.entry-content li { margin-bottom: 0.4rem; line-height: 1.7; }
.entry-content table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; }
.entry-content th, .entry-content td { padding: 0.6rem; border: 1px solid var(--border); text-align: left; }

/* ---------- Author box ---------- */
.author-box {
  display: flex;
  gap: 1.1rem;
  margin: 2.5rem 0;
  padding: 1.4rem;
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 8px;
}
.author-box img { border-radius: 50%; flex-shrink: 0; }
.author-name { margin: 0 0 0.35rem; font-weight: 700; color: var(--olive-dark); }
.author-bio { margin: 0 0 0.75rem; font-size: 0.9rem; color: #70746B; }
.author-box-links { display: flex; flex-wrap: wrap; gap: 1rem; }
.author-box-links a { font-size: 0.85rem; font-weight: 600; color: var(--gold-dark); }
.author-box-links a:hover { color: var(--olive-dark); }

/* ---------- Previous / Next ---------- */
.prev-next { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 2.5rem; }
.prev-next-card {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.75rem;
  background: var(--white);
  border: 1px solid #E1D7C8;
  border-radius: 8px;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.prev-next-card:hover { transform: translateY(-3px); box-shadow: 0 10px 20px rgba(52, 55, 49, 0.12); }
.prev-next-image { flex-shrink: 0; width: 4.5rem; height: 4.5rem; border-radius: 6px; overflow: hidden; }
.prev-next-image img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; transition: transform 0.3s ease; }
.prev-next-card:hover .prev-next-image img { transform: scale(1.05); }
.prev-next-next { text-align: right; flex-direction: row-reverse; }
.prev-next-label { display: block; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--gold-dark); margin-bottom: 0.25rem; }
.prev-next-title { display: block; font-family: var(--serif); font-size: 1rem; color: var(--olive-dark); line-height: 1.3; }

/* ---------- More From This Category (mini rows) ---------- */
.more-category { margin-bottom: 2.5rem; }
.mini-row {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.85rem;
  background: var(--white);
  border: 1px solid #E1D7C8;
  border-radius: 8px;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.mini-row:hover { transform: translateY(-3px); box-shadow: 0 10px 20px rgba(52, 55, 49, 0.1); }
.mini-row-image { flex-shrink: 0; width: 5rem; height: 5rem; border-radius: 6px; overflow: hidden; }
.mini-row-image img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; transition: transform 0.3s ease; }
.mini-row:hover .mini-row-image img { transform: scale(1.05); }
.mini-row-tag { display: block; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--gold-dark); margin-bottom: 0.2rem; }
.mini-row-title { display: flex; align-items: center; gap: 0.4rem; font-family: var(--serif); font-size: 1.15rem; color: var(--olive-dark); }
.mini-row:hover .mini-row-title { color: var(--gold-dark); }

.also-like { margin-bottom: 2.5rem; }

/* ---------- Comments ---------- */
.comments-section { margin-bottom: 1rem; }
.comments-count { color: var(--sage-soft); font-weight: 400; }
.comments-line { display: block; width: 40px; height: 2px; background: var(--gold); margin: 0.5rem 0 1.5rem; }
.comment-list { list-style: none; margin: 0 0 2rem; padding: 0; }
.comment-list .children { list-style: none; padding-left: 2.5rem; }
.comment-list > li { margin-bottom: 1.5rem; }
.comment-body { display: flex; gap: 1rem; }
.comment-author .avatar { border-radius: 50%; }
.comment-meta { margin-bottom: 0.35rem; }
.comment-author .fn { font-style: normal; font-weight: 700; color: var(--olive-dark); }
.comment-metadata { font-size: 0.8rem; color: var(--sage-soft); }
.comment-content p { margin: 0.35rem 0 0; color: var(--ink); }
.comments-closed { color: var(--sage-soft); }

.comment-notes { font-size: 0.9rem; color: var(--sage-soft); margin-bottom: 1rem; }
.heaven-comment-form p { margin: 0 0 1rem; }
.heaven-comment-form label { display: block; margin-bottom: 0.35rem; font-size: 0.85rem; font-weight: 600; color: var(--olive-dark); }
.heaven-comment-form input[type="text"],
.heaven-comment-form input[type="email"],
.heaven-comment-form input[type="url"],
.heaven-comment-form textarea {
  width: 100%;
  padding: 0.75rem 1rem;
  font: inherit;
  color: var(--ink);
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 8px;
}
.heaven-comment-form textarea { min-height: 8rem; resize: vertical; }
.heaven-comment-form .comment-form-cookies-consent { display: flex; align-items: center; gap: 0.5rem; font-size: 0.85rem; color: var(--sage-soft); }
.heaven-comment-form .comment-form-cookies-consent label { display: inline; margin: 0; font-weight: 400; }

/* ---------- Sidebar boxes ---------- */
.sidebar-box {
  padding: 1.5rem;
  background: var(--white);
  border: 1px solid #E1D7C8;
  border-radius: 8px;
}
.sidebar-box-title { margin: 0 0 0.6rem; font-size: 1.2rem; }
.sidebar-box-text { margin: 0 0 1rem; font-size: 0.88rem; color: #70746B; }

.sidebar-search { display: flex; gap: 0.5rem; }
.sidebar-search input {
  flex: 1;
  padding: 0.65rem 0.9rem;
  font: inherit;
  font-size: 0.88rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--ivory);
}
.sidebar-search button {
  padding: 0.6rem 1.1rem;
  font: inherit;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--white);
  background: var(--gold);
  border: 0;
  border-radius: 999px;
  cursor: pointer;
}
.sidebar-search button:hover { background: var(--gold-dark); }

.sidebar-subcat { margin-bottom: 1rem; }
.sidebar-subcat:last-child { margin-bottom: 0; }
.sidebar-subcat-name { display: block; margin-bottom: 0.3rem; font-family: var(--serif); font-size: 1.05rem; color: var(--olive-dark); }
.sidebar-subcat-name:hover { color: var(--gold-dark); }
.sidebar-subcat-post { display: block; padding-left: 0.9rem; margin-bottom: 0.25rem; font-size: 0.85rem; color: var(--sage-soft); border-left: 2px solid var(--border); }
.sidebar-subcat-post:hover { color: var(--gold-dark); border-color: var(--gold); }

.sidebar-coordinator { text-align: center; }
.sidebar-coordinator img { border-radius: 50%; margin: 0 auto 0.75rem; }
.sidebar-coordinator-role { margin: -0.3rem 0 0.75rem; font-size: 0.8rem; letter-spacing: 0.05em; text-transform: uppercase; color: var(--gold-dark); }
.sidebar-coordinator-links { margin-top: 0.5rem; }

/* =====================================================
   ARTICLE PAGE: mobile
   ===================================================== */
@media (max-width: 960px) {
  .article-layout { grid-template-columns: 1fr; }
  .article-main { max-width: none; }
  .article-sidebar { position: static; }
  .article-header { max-width: none; }
  .entry-breadcrumb { max-width: none; }
}
@media (max-width: 640px) {
  .save-share-buttons { gap: 0.45rem; }
  .share-pin span, .share-btn-wide span { display: none; }
  .share-pin, .share-btn-wide { padding: 0.55rem; }
  .prev-next { grid-template-columns: 1fr; }
  .prev-next-next { text-align: left; flex-direction: row; }
}

/* ---------- Reduce motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .share-pin { animation: none; }
  .prev-next-card, .mini-row, .prev-next-image img, .mini-row-image img { transition: none; }
  .prev-next-card:hover, .mini-row:hover { transform: none; }
}

/* =====================================================
   PHASE 1 REDESIGN — editorial wedding homepage + header
   Structure inspired by a modern editorial discovery site,
   while preserving Heaven Wedding Ideas branding and content.
   ===================================================== */

:root {
  --blush: #E8C8C7;
  --blush-soft: #F6E9E8;
  --paper: #FFFFFF;
  --charcoal: #30343A;
  --shadow-soft: 0 14px 40px rgba(48, 52, 58, 0.08);
  --shadow-card: 0 18px 44px rgba(48, 52, 58, 0.11);
  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 22px;
}

body {
  background: var(--ivory);
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.hero { border-radius: 0; }

/* ---------- safer primary button contrast across the theme ---------- */
.hero-cta,
.read-more-btn,
.newsletter-form button,
.fmw-next {
  color: var(--white);
  background: var(--olive-dark);
}
.hero-cta:hover,
.read-more-btn:hover,
.newsletter-form button:hover,
.fmw-next:hover:not(:disabled) {
  color: var(--white);
  background: var(--gold-dark);
}

/* ---------- announcement ---------- */
.announcement-bar {
  background: var(--cream);
  border-bottom-color: rgba(130, 98, 56, 0.18);
}
.announcement-inner {
  max-width: 1380px;
  min-height: 38px;
  padding-top: 0.45rem;
  padding-bottom: 0.45rem;
}
.announcement-text {
  font-size: 0.9rem;
  letter-spacing: 0.01em;
}
.announcement-email {
  font-size: 0.8rem;
}
.social-btn {
  width: 1.9rem;
  height: 1.9rem;
}

/* ---------- editorial header ---------- */
.site-header {
  background: rgba(255, 249, 245, 0.98);
  border-bottom: 1px solid var(--border);
}
.header-main {
  max-width: 1380px;
  display: grid;
  grid-template-columns: minmax(250px, auto) minmax(0, 1fr) auto;
  grid-template-areas: "logo nav actions";
  align-items: center;
  gap: 1.25rem 2rem;
  padding: 0.9rem 1.5rem;
}
.logo-block {
  grid-area: logo;
  gap: 0.65rem;
  min-width: 0;
}
.logo-block:hover {
  transform: none;
}
.logo-icon {
  width: 2.8rem;
  height: 2.8rem;
  flex: 0 0 auto;
}
.site-title {
  font-size: clamp(1.55rem, 2vw, 1.95rem);
  letter-spacing: -0.015em;
}
.site-tagline {
  margin-top: 0.1rem;
  font-size: 0.58rem;
  letter-spacing: 0.15em;
}
.site-nav {
  grid-area: nav;
  justify-self: center;
  min-width: 0;
}
.site-nav ul {
  justify-content: center;
  gap: 0.25rem 1.25rem;
}
.site-nav a {
  padding: 0.7rem 0 0.85rem;
  font-size: 0.84rem;
  letter-spacing: 0.01em;
}
.site-nav a:hover {
  transform: none;
}
.site-nav a::after {
  bottom: 0.55rem;
}
.site-nav .sub-menu {
  padding: 0.6rem;
  min-width: 250px;
  background: var(--paper);
  border-radius: 10px;
  box-shadow: 0 18px 45px rgba(48, 52, 58, 0.12);
}
.site-nav .sub-menu a {
  padding: 0.62rem 0.8rem;
  border-radius: 6px;
}
.header-actions {
  grid-area: actions;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.65rem;
}
.header-quiz-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0.7rem 1rem;
  border: 1px solid var(--olive-dark);
  border-radius: 999px;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--olive-dark);
  background: transparent;
  white-space: nowrap;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.header-quiz-btn:hover {
  color: var(--white);
  background: var(--olive-dark);
  border-color: var(--olive-dark);
}
.nav-toggle {
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--paper);
}

/* ---------- homepage global ---------- */
.home-main {
  max-width: 1380px;
  margin: 0 auto;
  padding: clamp(3.5rem, 6vw, 6rem) 1.5rem;
}
.home-section {
  margin-bottom: clamp(4.5rem, 8vw, 7.5rem);
}
.home-section-head {
  margin-bottom: clamp(2rem, 4vw, 3rem);
}
.home-section-head-center {
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.home-section-head-split {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1.5rem;
}
.home-section-head h2,
.home-finder h2,
.home-editorial h2,
.home-pinterest h2 {
  margin: 0;
  font-size: clamp(2.15rem, 4vw, 3.35rem);
  font-weight: 500;
  letter-spacing: -0.025em;
}
.home-section-head p:not(.home-kicker) {
  max-width: 680px;
  margin: 0.8rem auto 0;
  color: #697168;
  font-size: 1rem;
}
.home-section-head-split p:not(.home-kicker) {
  margin-left: 0;
}
.home-kicker {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin: 0 0 0.7rem;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.17em;
  text-transform: uppercase;
  color: var(--gold-dark);
}
.home-kicker > span {
  width: 30px;
  height: 1px;
  background: var(--gold);
  flex: 0 0 auto;
}
.home-section-head-center .home-kicker {
  justify-content: center;
}
.home-kicker-light {
  color: var(--gold-light);
}
.home-kicker-light > span {
  background: var(--gold-light);
}

/* ---------- homepage hero ---------- */
.home-hero {
  padding: 1.25rem 1.5rem 0;
  background: var(--ivory);
}
.home-hero-inner {
  max-width: 1380px;
  min-height: 610px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-soft);
}
.home-hero-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(3rem, 6vw, 6rem);
  position: relative;
  z-index: 1;
}
.home-hero-copy h1 {
  max-width: 720px;
  margin: 0;
  font-size: clamp(3.15rem, 6vw, 5.9rem);
  font-weight: 500;
  line-height: 0.96;
  letter-spacing: -0.045em;
  color: var(--olive-dark);
}
.home-hero-copy h1 em {
  font-weight: 500;
  color: var(--gold-dark);
}
.home-hero-lede {
  max-width: 610px;
  margin: 1.55rem 0 0;
  font-size: clamp(1rem, 1.7vw, 1.17rem);
  line-height: 1.75;
  color: #5F685F;
}
.home-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 2rem;
}
.btn-primary,
.btn-secondary,
.btn-gold,
.pinterest-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  min-height: 48px;
  padding: 0.78rem 1.35rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.045em;
  text-transform: uppercase;
  transition: transform 0.2s ease, background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.btn-primary {
  color: var(--white);
  background: var(--olive-dark);
  border: 1px solid var(--olive-dark);
}
.btn-primary:hover {
  color: var(--white);
  background: var(--gold-dark);
  border-color: var(--gold-dark);
  transform: translateY(-2px);
}
.btn-secondary {
  color: var(--olive-dark);
  background: transparent;
  border: 1px solid rgba(48, 52, 58, 0.34);
}
.btn-secondary:hover {
  color: var(--olive-dark);
  background: var(--paper);
  border-color: var(--olive-dark);
  transform: translateY(-2px);
}
.btn-gold {
  color: var(--olive-dark);
  background: var(--gold-light);
  border: 1px solid var(--gold-light);
}
.btn-gold:hover {
  color: var(--white);
  background: var(--gold-dark);
  border-color: var(--gold-dark);
  transform: translateY(-2px);
}
.home-hero-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem 1.2rem;
  margin: 2rem 0 0;
  padding: 0;
  list-style: none;
  color: var(--sage-soft);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.home-hero-trust li::before {
  content: "•";
  margin-right: 0.45rem;
  color: var(--gold);
}
.home-hero-media {
  position: relative;
  min-height: 610px;
  background-image: var(--home-hero-image, linear-gradient(135deg, var(--blush) 0%, var(--gold-light) 100%));
  background-size: cover;
  background-position: center;
}
.home-hero-media::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(48,52,58,0) 50%, rgba(48,52,58,0.18) 100%);
}
.home-hero-media.is-placeholder::after {
  content: "HEAVEN";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-family: var(--serif);
  font-size: clamp(4rem, 10vw, 8rem);
  letter-spacing: 0.1em;
  color: rgba(255,255,255,0.45);
}
.home-hero-card {
  position: absolute;
  right: clamp(1rem, 4vw, 2.25rem);
  bottom: clamp(1rem, 4vw, 2.25rem);
  z-index: 1;
  width: min(300px, calc(100% - 2rem));
  padding: 1.15rem 1.25rem;
  background: rgba(255, 249, 245, 0.94);
  border: 1px solid rgba(255,255,255,0.45);
  border-radius: 14px;
  box-shadow: 0 14px 30px rgba(48,52,58,0.12);
  backdrop-filter: blur(10px);
}
.home-hero-card-label {
  display: block;
  margin-bottom: 0.25rem;
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gold-dark);
}
.home-hero-card strong {
  display: block;
  font-family: var(--serif);
  font-size: 1.25rem;
  line-height: 1.25;
  color: var(--olive-dark);
}

/* ---------- quick category nav ---------- */
.home-category-nav {
  border-bottom: 1px solid var(--border);
  background: var(--paper);
}
.home-category-nav-inner {
  max-width: 1380px;
  margin: 0 auto;
  display: flex;
  align-items: stretch;
  justify-content: center;
  overflow-x: auto;
  scrollbar-width: thin;
  padding: 0.7rem 1.5rem;
}
.home-category-nav a {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 44px;
  padding: 0.6rem 0.9rem;
  color: var(--olive);
  font-size: 0.76rem;
  font-weight: 700;
  white-space: nowrap;
  border-radius: 999px;
}
.home-category-nav a:hover {
  color: var(--olive-dark);
  background: var(--cream);
}
.home-category-nav-icon {
  display: inline-flex;
  width: 22px;
  height: 22px;
  color: var(--gold-dark);
}
.home-category-nav-icon svg {
  width: 100%;
  height: 100%;
}

/* ---------- category cards ---------- */
.home-category-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.25rem;
}
.home-category-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  background: var(--paper);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.home-category-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-card);
}
.home-category-card-media {
  display: block;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--blush-soft);
}
.home-category-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
  transition: transform 0.45s ease;
}
.home-category-card:hover .home-category-card-media img {
  transform: scale(1.035);
}
.home-category-card-media.no-image {
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, var(--blush-soft), var(--cream));
}
.home-category-fallback {
  width: 68px;
  height: 68px;
  color: var(--gold-dark);
}
.home-category-fallback svg,
.home-category-icon-small svg {
  width: 100%;
  height: 100%;
}
.home-category-card-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 1.25rem 1.25rem 1.35rem;
}
.home-category-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}
.home-category-icon-small {
  display: inline-flex;
  width: 24px;
  height: 24px;
  color: var(--gold-dark);
}
.home-category-count {
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--sage-soft);
}
.home-category-card h3 {
  margin: 0;
  font-size: 1.55rem;
}
.home-category-card h3 a {
  color: var(--olive-dark);
}
.home-category-card p {
  flex: 1;
  margin: 0.6rem 0 1rem;
  color: #697168;
  font-size: 0.9rem;
  line-height: 1.6;
}
.home-text-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  align-self: flex-start;
  color: var(--gold-dark);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.home-text-link:hover {
  color: var(--olive-dark);
}
.home-view-all {
  flex: 0 0 auto;
  margin-bottom: 0.35rem;
}

/* ---------- featured editorial cards ---------- */
.home-featured-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(320px, 0.85fr);
  gap: 1.25rem;
}
.home-feature-card {
  min-width: 0;
  display: grid;
  grid-template-columns: 0.92fr 1.08fr;
  background: var(--paper);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
}
.home-feature-card-large {
  grid-row: span 2;
  grid-template-columns: 1fr;
}
.home-feature-card:not(.home-feature-card-large) {
  min-height: 245px;
}
.home-feature-card-media {
  display: block;
  min-height: 220px;
  overflow: hidden;
  background: var(--cream);
}
.home-feature-card-large .home-feature-card-media {
  min-height: 470px;
}
.home-feature-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
  transition: transform 0.45s ease;
}
.home-feature-card:hover .home-feature-card-media img {
  transform: scale(1.025);
}
.home-feature-placeholder {
  width: 100%;
  min-height: inherit;
  display: grid;
  place-items: center;
  font-family: var(--serif);
  font-size: 4rem;
  color: var(--gold);
  background: linear-gradient(135deg, var(--blush-soft), var(--cream));
}
.home-feature-card-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(1.25rem, 2.5vw, 2rem);
}
.home-feature-card-large .home-feature-card-body {
  justify-content: flex-start;
}
.home-card-label {
  margin-bottom: 0.5rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gold-dark);
}
.home-feature-card h3,
.home-latest-card h3 {
  margin: 0;
  font-size: clamp(1.45rem, 2vw, 2rem);
}
.home-feature-card h3 a,
.home-latest-card h3 a {
  color: var(--olive-dark);
}
.home-feature-card p,
.home-latest-card p {
  margin: 0.7rem 0 1rem;
  color: #697168;
  font-size: 0.9rem;
  line-height: 1.65;
}
.home-card-meta {
  margin-top: auto;
  font-size: 0.72rem;
  color: var(--sage-soft);
}

/* ---------- Find My Wedding feature ---------- */
.home-finder {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.9fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
  margin-bottom: clamp(4.5rem, 8vw, 7.5rem);
  padding: clamp(2.5rem, 6vw, 5.5rem);
  color: var(--ivory);
  background: var(--olive-dark);
  border-radius: var(--radius-lg);
  overflow: hidden;
  position: relative;
}
.home-finder::after {
  content: "";
  position: absolute;
  width: 340px;
  height: 340px;
  right: -130px;
  top: -160px;
  border: 1px solid rgba(201,164,93,0.22);
  border-radius: 50%;
  box-shadow: 0 0 0 50px rgba(201,164,93,0.04), 0 0 0 100px rgba(201,164,93,0.025);
  pointer-events: none;
}
.home-finder-copy,
.home-finder-steps {
  position: relative;
  z-index: 1;
}
.home-finder h2 {
  color: var(--ivory);
}
.home-finder-copy > p:not(.home-kicker) {
  max-width: 620px;
  margin: 1rem 0 1.65rem;
  color: rgba(255,249,245,0.78);
}
.home-finder-steps {
  display: grid;
  gap: 0.85rem;
}
.home-finder-steps > div {
  display: grid;
  grid-template-columns: 52px 1fr;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.1rem;
  border: 1px solid rgba(201,164,93,0.22);
  border-radius: 12px;
  background: rgba(255,249,245,0.055);
}
.home-finder-steps span {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  color: var(--olive-dark);
  background: var(--gold-light);
  font-size: 0.72rem;
  font-weight: 800;
}
.home-finder-steps strong {
  color: var(--ivory);
  font-family: var(--serif);
  font-size: 1.15rem;
  font-weight: 600;
}

/* ---------- latest cards ---------- */
.home-latest-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.35rem;
}
.home-latest-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  background: var(--paper);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.home-latest-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card);
}
.home-latest-card-media {
  display: block;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--cream);
}
.home-latest-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
  transition: transform 0.45s ease;
}
.home-latest-card:hover .home-latest-card-media img {
  transform: scale(1.03);
}
.home-latest-card-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 1.2rem 1.25rem 1.3rem;
}
.home-latest-card h3 {
  font-size: 1.45rem;
}

/* ---------- editorial/about block ---------- */
.home-editorial {
  display: grid;
  grid-template-columns: 180px minmax(0, 1.25fr) minmax(260px, 0.75fr);
  gap: clamp(1.5rem, 4vw, 3.5rem);
  align-items: center;
  margin-bottom: clamp(4.5rem, 8vw, 7.5rem);
  padding: clamp(2rem, 5vw, 4rem);
  background: var(--blush-soft);
  border: 1px solid rgba(183, 142, 137, 0.22);
  border-radius: var(--radius-lg);
}
.home-editorial-profile {
  display: flex;
  justify-content: center;
}
.home-editorial-avatar {
  width: 148px;
  height: 148px;
  object-fit: cover;
  border-radius: 50%;
  border: 5px solid var(--paper);
  box-shadow: 0 12px 30px rgba(48,52,58,0.09);
}
.home-editorial-avatar-placeholder {
  display: grid;
  place-items: center;
  font-family: var(--serif);
  font-size: 3.2rem;
  color: var(--olive-dark);
  background: var(--cream);
}
.home-editorial-copy > p:not(.home-kicker) {
  margin: 0.8rem 0 1.35rem;
  color: #606960;
}
.home-editorial-note {
  position: relative;
  padding: 1.4rem 1.5rem;
  background: rgba(255,255,255,0.58);
  border-left: 2px solid var(--gold);
  border-radius: 0 12px 12px 0;
}
.home-editorial-note p {
  margin: 0;
  font-family: var(--serif);
  font-size: 1.25rem;
  font-style: italic;
  line-height: 1.45;
  color: var(--olive-dark);
}
.home-editorial-quote {
  position: absolute;
  top: -0.65rem;
  left: 0.65rem;
  font-family: var(--serif);
  font-size: 3.2rem;
  color: rgba(201,164,93,0.28);
}

/* ---------- Pinterest ---------- */
.home-pinterest {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: clamp(4.5rem, 8vw, 7.5rem);
  padding: clamp(2rem, 4vw, 3.2rem);
  background: var(--paper);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
}
.home-pinterest > div {
  max-width: 780px;
}
.home-pinterest p:not(.home-kicker) {
  margin: 0.8rem 0 0;
  color: #697168;
}
.pinterest-btn {
  flex: 0 0 auto;
  color: var(--white);
  background: var(--pinterest);
  border: 1px solid var(--pinterest);
}
.pinterest-btn:hover {
  color: var(--white);
  background: #8E3153;
  border-color: #8E3153;
  transform: translateY(-2px);
}

/* ---------- newsletter refresh ---------- */
.newsletter-redesign {
  padding: clamp(3.5rem, 7vw, 5.5rem) 1.5rem;
  background: var(--olive-dark);
}
.newsletter-redesign .newsletter-inner {
  max-width: 680px;
}
.newsletter-redesign .home-kicker {
  justify-content: center;
}
.newsletter-redesign h2 {
  margin-bottom: 0.75rem;
}
.newsletter-intro {
  max-width: 560px;
  margin: 0 auto 1.6rem;
  color: rgba(255,249,245,0.72);
}
.newsletter-redesign .newsletter-form input[type="email"] {
  min-width: 0;
  color: var(--olive-dark);
  background: var(--paper);
  border-color: rgba(255,255,255,0.28);
}
.newsletter-redesign .newsletter-form input[type="email"]::placeholder {
  color: #8A918A;
}
.newsletter-redesign .newsletter-note {
  color: rgba(255,249,245,0.58);
}

/* ---------- existing small fixes ---------- */
.sidebar-search input { min-width: 0; }
.entry-content { overflow-wrap: anywhere; }
.entry-content table { display: block; max-width: 100%; overflow-x: auto; }
.nav-toggle { touch-action: manipulation; }

/* ---------- tablet / smaller desktop ---------- */
@media (max-width: 1180px) {
  .header-main {
    grid-template-columns: minmax(220px, 1fr) auto;
    grid-template-areas:
      "logo actions"
      "nav nav";
  }
  .site-nav {
    justify-self: stretch;
  }
  .site-nav ul {
    justify-content: flex-start;
  }
  .home-category-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 1024px) {
  .nav-toggle {
    display: inline-flex;
  }
  .site-nav {
    display: none;
    grid-area: nav;
    width: 100%;
    margin-top: 0.2rem;
    padding-top: 0.65rem;
    border-top: 1px solid var(--border);
  }
  .site-nav.is-open {
    display: block;
  }
  .site-nav ul {
    flex-direction: column;
    gap: 0;
  }
  .site-nav a {
    display: block;
    min-height: 44px;
    padding: 0.7rem 0;
  }
  .site-nav a::after {
    display: none;
  }
  .site-nav .menu-item-has-children > a::before {
    float: right;
    margin-top: 0.4em;
  }
  .site-nav .sub-menu,
  .site-nav li:nth-last-child(-n+2) > .sub-menu {
    position: static;
    display: flex;
    min-width: 0;
    padding: 0 0 0.55rem 1rem;
    background: transparent;
    border: 0;
    box-shadow: none;
  }
  .site-nav .sub-menu a {
    padding: 0.55rem 0;
  }
  .header-main {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "logo actions"
      "nav nav";
  }
  .home-hero-inner {
    min-height: 0;
    grid-template-columns: 1fr 0.9fr;
  }
  .home-hero-media {
    min-height: 560px;
  }
  .home-category-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .home-featured-grid {
    grid-template-columns: 1fr;
  }
  .home-feature-card-large {
    grid-row: auto;
    grid-template-columns: 1fr 0.9fr;
  }
  .home-feature-card-large .home-feature-card-media {
    min-height: 320px;
  }
  .home-feature-card:not(.home-feature-card-large) {
    min-height: 230px;
  }
  .home-latest-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .home-editorial {
    grid-template-columns: 150px 1fr;
  }
  .home-editorial-note {
    grid-column: 1 / -1;
  }
}

@media (max-width: 760px) {
  .announcement-email {
    display: none;
  }
  .announcement-inner {
    justify-content: center;
  }
  .announcement-text {
    text-align: center;
  }
  .header-main {
    padding: 0.75rem 1rem;
  }
  .logo-icon {
    width: 2.45rem;
    height: 2.45rem;
  }
  .site-title {
    font-size: 1.45rem;
  }
  .site-tagline {
    display: none;
  }
  .header-quiz-btn {
    min-height: 40px;
    padding: 0.62rem 0.85rem;
    font-size: 0.68rem;
  }
  .home-hero {
    padding: 0.8rem 0.8rem 0;
  }
  .home-hero-inner {
    grid-template-columns: 1fr;
    border-radius: 18px;
  }
  .home-hero-copy {
    padding: clamp(2.4rem, 10vw, 4rem) 1.35rem;
  }
  .home-hero-copy h1 {
    font-size: clamp(2.75rem, 13vw, 4.35rem);
    line-height: 0.98;
  }
  .home-hero-media {
    min-height: 420px;
    order: -1;
    background-position: center 25%;
  }
  .home-hero-card {
    width: calc(100% - 2rem);
  }
  .home-category-nav-inner {
    justify-content: flex-start;
    padding-left: 0.8rem;
    padding-right: 0.8rem;
  }
  .home-main {
    padding: 3.5rem 1rem;
  }
  .home-section-head-split {
    align-items: flex-start;
    flex-direction: column;
  }
  .home-category-grid,
  .home-latest-grid {
    grid-template-columns: 1fr;
  }
  .home-category-card-media {
    aspect-ratio: 16 / 10;
  }
  .home-feature-card,
  .home-feature-card-large {
    grid-template-columns: 1fr;
  }
  .home-feature-card-media,
  .home-feature-card-large .home-feature-card-media {
    min-height: 290px;
    aspect-ratio: 16 / 10;
  }
  .home-finder {
    grid-template-columns: 1fr;
    padding: 2.3rem 1.25rem;
    border-radius: 18px;
  }
  .home-editorial {
    grid-template-columns: 1fr;
    text-align: center;
    padding: 2.2rem 1.25rem;
  }
  .home-editorial-copy .home-kicker {
    justify-content: center;
  }
  .home-editorial-note {
    grid-column: auto;
    text-align: left;
  }
  .home-pinterest {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 520px) {
  .announcement-social {
    display: none;
  }
  .header-quiz-btn {
    display: none;
  }
  .site-title {
    font-size: 1.35rem;
  }
  .home-hero-actions {
    flex-direction: column;
  }
  .btn-primary,
  .btn-secondary,
  .btn-gold,
  .pinterest-btn {
    width: 100%;
  }
  .home-hero-media {
    min-height: 360px;
  }
  .home-hero-trust {
    gap: 0.55rem 0.8rem;
  }
  .home-section-head h2,
  .home-finder h2,
  .home-editorial h2,
  .home-pinterest h2 {
    font-size: clamp(2rem, 10vw, 2.65rem);
  }
  .home-finder-steps > div {
    grid-template-columns: 44px 1fr;
    padding: 0.85rem;
  }
  .home-finder-steps span {
    width: 38px;
    height: 38px;
  }
  .fmw-options {
    grid-template-columns: 1fr;
  }
  .author-box {
    flex-direction: column;
  }
  .comment-list .children {
    padding-left: 1rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-category-card,
  .home-feature-card-media img,
  .home-latest-card,
  .home-latest-card-media img,
  .btn-primary,
  .btn-secondary,
  .btn-gold,
  .pinterest-btn {
    transition: none;
  }
  .home-category-card:hover,
  .home-latest-card:hover,
  .btn-primary:hover,
  .btn-secondary:hover,
  .btn-gold:hover,
  .pinterest-btn:hover {
    transform: none;
  }
}

/* =====================================================
   PHASE 1.1 — HEADER, BRAND + MOBILE MENU POLISH
   ===================================================== */

/* Top bar: one strong Pinterest action instead of multiple social icons */
.announcement-right {
  gap: 0.85rem;
}
.announcement-social {
  display: none !important;
}
.top-pinterest-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.48rem;
  min-height: 34px;
  padding: 0.48rem 0.9rem;
  border: 1px solid rgba(255,255,255,0.24);
  border-radius: 999px;
  color: #fff;
  background: var(--pinterest);
  box-shadow: 0 6px 16px rgba(230, 0, 35, 0.16);
  font-family: var(--sans);
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.045em;
  text-transform: uppercase;
  white-space: nowrap;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}
.top-pinterest-btn:hover,
.top-pinterest-btn:focus-visible {
  color: #fff;
  background: #8E3153;
  transform: translateY(-2px);
  box-shadow: 0 9px 20px rgba(189, 8, 28, 0.22);
}
.top-pinterest-mark {
  display: inline-grid;
  place-items: center;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 50%;
  color: var(--pinterest);
  background: #fff;
  font-family: Georgia, serif;
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1;
  text-transform: none;
}

/* Branded logo lockup */
.logo-block {
  padding: 0.42rem 0.58rem;
  border-radius: 14px;
  transition: transform 0.24s ease, background-color 0.24s ease, box-shadow 0.24s ease, color 0.24s ease;
}
.logo-block:hover,
.logo-block:focus-visible {
  color: var(--olive-dark);
  background: linear-gradient(135deg, var(--cream), rgba(232, 200, 199, 0.68));
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(48, 52, 58, 0.10);
}
.logo-icon {
  width: 3.05rem;
  height: 3.05rem;
  padding: 0.28rem;
  border: 1px solid rgba(201, 164, 93, 0.50);
  border-radius: 50%;
  color: var(--gold-light);
  background: var(--olive-dark);
  box-shadow: inset 0 0 0 3px rgba(255, 249, 245, 0.06), 0 5px 14px rgba(48, 52, 58, 0.14);
  transition: transform 0.28s ease, background-color 0.28s ease, box-shadow 0.28s ease;
}
.logo-icon svg {
  width: 100%;
  height: 100%;
}
.logo-block:hover .logo-icon,
.logo-block:focus-visible .logo-icon {
  background: #8E3153;
  transform: rotate(-4deg) scale(1.04);
  box-shadow: inset 0 0 0 3px rgba(255, 249, 245, 0.08), 0 8px 18px rgba(48, 52, 58, 0.18);
}
.logo-block:hover .site-title,
.logo-block:focus-visible .site-title {
  color: var(--gold-dark);
}

/* Cleaner desktop navigation: remove the tiny pre-title diamond/chevron */
.site-nav .menu-item-has-children > a::before {
  content: none;
}

/* Mobile navigation: show ONLY parent categories until one is tapped */
@media (max-width: 1024px) {
  .site-nav > ul > li {
    border-bottom: 1px solid rgba(130, 98, 56, 0.14);
  }
  .site-nav > ul > li:last-child {
    border-bottom: 0;
  }
  .site-nav > ul > li > a {
    padding: 0.82rem 0.25rem;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--olive-dark);
  }
  .site-nav .menu-item-has-children > a::before {
    content: "+";
    display: inline-grid;
    place-items: center;
    float: right;
    width: 1.7rem;
    height: 1.7rem;
    margin: -0.15rem 0 0 0.7rem;
    border: 1px solid var(--border);
    border-radius: 50%;
    color: var(--gold-dark);
    background: var(--paper);
    font-size: 1.05rem;
    font-weight: 500;
    line-height: 1;
    transform: none;
  }
  .site-nav .menu-item-has-children.submenu-open > a::before {
    content: "−";
    color: var(--white);
    background: var(--olive-dark);
    border-color: var(--olive-dark);
  }
  .site-nav .sub-menu,
  .site-nav li:nth-last-child(-n+2) > .sub-menu {
    position: static;
    display: none !important;
    flex-direction: column;
    min-width: 0;
    margin: 0 0 0.65rem;
    padding: 0.38rem 0.65rem 0.55rem;
    background: var(--cream);
    border: 1px solid rgba(130, 98, 56, 0.12);
    border-radius: 10px;
    box-shadow: none;
  }
  .site-nav .menu-item-has-children.submenu-open > .sub-menu {
    display: flex !important;
  }
  .site-nav .sub-menu a {
    min-height: 40px;
    padding: 0.58rem 0.55rem;
    border-radius: 7px;
    font-size: 0.84rem;
    font-weight: 500;
    color: var(--olive);
  }
  .site-nav .sub-menu a:hover,
  .site-nav .sub-menu a:focus-visible {
    color: var(--olive-dark);
    background: rgba(255,255,255,0.72);
    transform: none;
  }
  .site-nav .mobile-parent-link a {
    color: var(--gold-dark);
    font-weight: 800;
    border-bottom: 1px solid rgba(130, 98, 56, 0.18);
  }
}

@media (max-width: 760px) {
  .announcement-inner {
    justify-content: space-between;
    gap: 0.55rem;
    padding-left: 0.8rem;
    padding-right: 0.8rem;
  }
  .announcement-text {
    max-width: 52%;
    font-size: 0.74rem;
    line-height: 1.25;
    text-align: left;
  }
  .top-pinterest-btn {
    min-height: 32px;
    padding: 0.42rem 0.68rem;
    font-size: 0.64rem;
  }
  .top-pinterest-mark {
    width: 1.1rem;
    height: 1.1rem;
    font-size: 0.72rem;
  }
  .logo-block {
    padding: 0.28rem 0.35rem;
    border-radius: 10px;
  }
  .logo-icon {
    width: 2.55rem;
    height: 2.55rem;
  }
}

@media (max-width: 460px) {
  .announcement-text {
    display: none;
  }
  .announcement-inner {
    justify-content: center;
  }
  .top-pinterest-btn {
    min-height: 34px;
    padding-left: 0.85rem;
    padding-right: 0.85rem;
    font-size: 0.68rem;
  }
}


/* =====================================================
   PHASE 1.2 — DESKTOP / SHORT-LAPTOP HERO FIT
   Keeps the luxury hero large on tall screens, but makes
   the complete hero visible on shorter laptop viewports.
   Mobile layout remains controlled by the existing rules.
   ===================================================== */
@media (min-width: 901px) {
  .home-hero-inner {
    min-height: clamp(430px, calc(100svh - 160px), 610px);
  }

  .home-hero-media {
    min-height: clamp(430px, calc(100svh - 160px), 610px);
  }
}

@media (min-width: 901px) and (max-height: 760px) {
  .home-hero {
    padding-top: 0.9rem;
  }

  .home-hero-copy {
    padding: clamp(2rem, 4.2vw, 3.75rem);
  }

  .home-hero-copy h1 {
    font-size: clamp(3rem, 5.1vw, 4.85rem);
    line-height: 0.95;
  }

  .home-hero-lede {
    margin-top: 1.05rem;
    font-size: 1rem;
    line-height: 1.6;
  }

  .home-hero-actions {
    margin-top: 1.25rem;
  }

  .home-hero-trust {
    margin-top: 1.2rem;
    gap: 0.45rem 0.9rem;
    font-size: 0.7rem;
  }

  .home-hero-card {
    right: 1.25rem;
    bottom: 1.25rem;
    padding: 0.9rem 1rem;
  }

  .home-hero-card strong {
    font-size: 1.08rem;
  }
}

@media (min-width: 901px) and (max-height: 650px) {
  .home-hero-inner,
  .home-hero-media {
    min-height: 405px;
  }

  .home-hero-copy {
    padding-top: 1.7rem;
    padding-bottom: 1.7rem;
  }

  .home-hero-copy h1 {
    font-size: clamp(2.8rem, 4.7vw, 4.35rem);
  }

  .home-hero-lede {
    margin-top: 0.85rem;
    line-height: 1.5;
  }

  .home-hero-actions {
    margin-top: 1rem;
  }

  .home-hero-trust {
    margin-top: 0.9rem;
  }
}


/* =====================================================
   PHASE 2 — PREMIUM CATEGORY LANDING PAGES
   Curvy-style editorial discovery structure,
   Heaven Wedding Ideas branding and wedding wording.
   ===================================================== */
.cat-archive-page {
  background: var(--ivory);
}

.cat-archive-shell {
  width: min(1280px, calc(100% - 3rem));
  margin: 0 auto;
}

.cat-archive-hero {
  padding: 2.4rem 0 2rem;
}

.cat-archive-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(420px, 1.05fr);
  min-height: 430px;
  overflow: hidden;
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 24px;
  box-shadow: 0 18px 50px rgba(48, 52, 58, 0.06);
}

.cat-archive-hero-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(2.25rem, 5vw, 4.75rem);
}

.cat-archive-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1.75rem;
  font-size: 0.82rem;
  color: var(--sage-soft);
}

.cat-archive-breadcrumb a {
  color: var(--sage-soft);
}

.cat-archive-breadcrumb a:hover {
  color: var(--gold-dark);
}

.cat-archive-eyebrow {
  margin: 0 0 0.65rem;
  font-family: var(--sans);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.17em;
  text-transform: uppercase;
  color: var(--gold-dark);
}

.cat-archive-hero-copy h1 {
  margin: 0;
  max-width: 9ch;
  font-size: clamp(3rem, 5.5vw, 5.25rem);
  line-height: 0.98;
  letter-spacing: -0.025em;
  color: var(--olive-dark);
}

.cat-archive-lede {
  max-width: 39rem;
  margin: 1.35rem 0 0;
  font-size: clamp(1rem, 1.35vw, 1.12rem);
  line-height: 1.75;
  color: #667066;
}

.cat-archive-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 1.6rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--olive);
}

.cat-archive-hero-media {
  min-height: 430px;
  overflow: hidden;
  background: var(--border);
}

.cat-archive-hero-img {
  width: 100%;
  height: 100%;
  min-height: 430px;
  object-fit: cover;
  border-radius: 0;
}

.cat-archive-hero-fallback {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  min-height: 430px;
  background:
    radial-gradient(circle at 30% 20%, rgba(232,200,199,.65), transparent 34%),
    linear-gradient(135deg, var(--cream), #eee4d8);
}

.cat-archive-fallback-mark,
.cat-card-image-fallback {
  display: grid;
  place-items: center;
  color: var(--gold-dark);
}

.cat-archive-fallback-mark {
  width: 88px;
  height: 88px;
  border: 1px solid var(--gold-light);
  border-radius: 50%;
  background: rgba(255,255,255,.55);
}

.cat-archive-fallback-mark svg,
.cat-card-image-fallback svg {
  width: 46px;
  height: 46px;
}

.cat-archive-subnav {
  padding: 0.5rem 0 2.6rem;
  border-bottom: 1px solid var(--border);
}

.cat-archive-subnav-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.cat-archive-subnav-head h2 {
  margin: 0;
  font-size: clamp(1.65rem, 3vw, 2.25rem);
}

.cat-archive-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
}

.cat-archive-chips a {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  min-height: 44px;
  padding: 0.7rem 1rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--white);
  color: var(--olive-dark);
  font-size: 0.86rem;
  font-weight: 600;
  box-shadow: 0 6px 20px rgba(48,52,58,.035);
  transition: transform .2s ease, border-color .2s ease, background-color .2s ease, color .2s ease;
}

.cat-archive-chips a small {
  display: grid;
  place-items: center;
  min-width: 24px;
  height: 24px;
  padding: 0 0.35rem;
  border-radius: 999px;
  background: var(--cream);
  color: var(--sage-soft);
  font-size: 0.72rem;
}

.cat-archive-chips a:hover {
  transform: translateY(-2px);
  border-color: var(--gold-light);
  background: var(--cream);
  color: var(--gold-dark);
}

.cat-archive-content {
  padding-top: 3.5rem;
  padding-bottom: 4.5rem;
}

.cat-section-heading {
  margin-bottom: 1.5rem;
}

.cat-section-heading-split {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 2rem;
}

.cat-section-heading h2 {
  margin: 0;
  font-size: clamp(2rem, 4vw, 3rem);
}

.cat-section-note {
  max-width: 30rem;
  margin: 0 0 0.2rem;
  text-align: right;
  color: #72796f;
  font-size: 0.92rem;
}

.cat-text-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-bottom: 0.35rem;
  color: var(--gold-dark);
  font-size: 0.88rem;
  font-weight: 700;
}

.cat-text-link:hover {
  color: var(--olive-dark);
}

.cat-featured {
  margin-bottom: 4.5rem;
}

.cat-featured-card {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr);
  overflow: hidden;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 20px;
  box-shadow: 0 16px 42px rgba(48,52,58,.06);
}

.cat-featured-image {
  display: block;
  min-height: 420px;
  overflow: hidden;
  background: var(--cream);
}

.cat-featured-image img {
  width: 100%;
  height: 100%;
  min-height: 420px;
  object-fit: cover;
  border-radius: 0;
  transition: transform .45s ease;
}

.cat-featured-card:hover .cat-featured-image img {
  transform: scale(1.025);
}

.cat-featured-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(2rem, 4vw, 3.7rem);
}

.cat-featured-kicker,
.cat-archive-card-tag {
  margin: 0 0 0.5rem;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--gold-dark);
}

.cat-featured-body h3 {
  margin: 0;
  font-size: clamp(2rem, 3.5vw, 3rem);
  line-height: 1.02;
}

.cat-featured-body h3 a,
.cat-archive-card h3 a {
  color: var(--olive-dark);
}

.cat-featured-body h3 a:hover,
.cat-archive-card h3 a:hover {
  color: var(--gold-dark);
}

.cat-featured-excerpt {
  margin: 1rem 0 0;
  color: #667066;
  line-height: 1.75;
}

.cat-featured-meta,
.cat-archive-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 1rem;
  font-size: 0.78rem;
  color: var(--sage-soft);
}

.cat-primary-btn,
.cat-light-btn,
.cat-pinterest-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  min-height: 46px;
  width: fit-content;
  padding: 0.8rem 1.2rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.cat-primary-btn {
  margin-top: 1.5rem;
  color: var(--white);
  background: var(--olive-dark);
}

.cat-primary-btn:hover {
  color: var(--white);
  background: var(--gold-dark);
  transform: translateY(-2px);
}

.cat-archive-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
}

.cat-archive-card {
  overflow: hidden;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: 0 8px 28px rgba(48,52,58,.045);
  transition: transform .25s ease, box-shadow .25s ease;
}

.cat-archive-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 16px 36px rgba(48,52,58,.09);
}

.cat-archive-card-image {
  display: grid;
  place-items: center;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: var(--cream);
}

.cat-archive-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
  transition: transform .4s ease;
}

.cat-archive-card:hover .cat-archive-card-image img {
  transform: scale(1.035);
}

.cat-card-image-fallback {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, var(--cream), #efe5da);
}

.cat-archive-card-body {
  padding: 1.25rem 1.3rem 1.35rem;
}

.cat-archive-card h3 {
  margin: 0;
  font-size: 1.55rem;
  line-height: 1.12;
}

.cat-archive-card-excerpt {
  margin: 0.7rem 0 0;
  color: #697168;
  font-size: 0.92rem;
  line-height: 1.65;
}

.cat-pagination {
  margin-top: 2.5rem;
}

.cat-pagination .page-numbers {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.cat-pagination .page-numbers a,
.cat-pagination .page-numbers span {
  display: grid;
  place-items: center;
  min-width: 42px;
  min-height: 42px;
  padding: 0.45rem 0.7rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--white);
  color: var(--olive-dark);
  font-size: 0.82rem;
  font-weight: 700;
}

.cat-pagination .page-numbers .current,
.cat-pagination .page-numbers a:hover {
  color: var(--white);
  background: var(--olive-dark);
  border-color: var(--olive-dark);
}

.cat-empty-state {
  padding: 2.5rem;
  text-align: center;
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 16px;
}

.cat-empty-state h3 {
  margin: 0 0 0.5rem;
  font-size: 1.7rem;
}

.cat-empty-state p {
  margin: 0;
  color: #697168;
}

.cat-finder-cta {
  padding: clamp(3rem, 6vw, 5rem) 0;
  background: var(--olive-dark);
  color: var(--ivory);
}

.cat-finder-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2rem;
  align-items: center;
}

.cat-finder-cta .cat-archive-eyebrow {
  color: var(--gold-light);
}

.cat-finder-cta h2 {
  margin: 0;
  color: var(--ivory);
  font-size: clamp(2.2rem, 4.2vw, 3.5rem);
}

.cat-finder-cta p:not(.cat-archive-eyebrow) {
  max-width: 46rem;
  margin: 0.8rem 0 0;
  color: rgba(255,249,245,.75);
}

.cat-light-btn {
  color: var(--olive-dark);
  background: var(--ivory);
  border: 1px solid rgba(255,255,255,.25);
  white-space: nowrap;
}

.cat-light-btn:hover {
  color: var(--olive-dark);
  background: var(--gold-light);
  transform: translateY(-2px);
}

.cat-pinterest {
  padding: 3rem 0;
  background: #F6E9E8;
  border-bottom: 1px solid var(--border);
}

.cat-pinterest-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2rem;
  align-items: center;
}

.cat-pinterest h2 {
  margin: 0;
  font-size: clamp(1.9rem, 3.5vw, 2.7rem);
}

.cat-pinterest p:not(.cat-archive-eyebrow) {
  max-width: 44rem;
  margin: 0.55rem 0 0;
  color: #697168;
}

.cat-pinterest-btn {
  color: #fff;
  background: #8E3153;
  box-shadow: 0 8px 22px rgba(230,0,35,.16);
  white-space: nowrap;
}

.cat-pinterest-btn:hover {
  color: #fff;
  background: #6F2340;
  transform: translateY(-2px);
}

.cat-pinterest-p {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #fff;
  color: #8E3153;
  font-family: Georgia, serif;
  font-size: 0.95rem;
  font-weight: 700;
}

@media (max-width: 980px) {
  .cat-archive-shell {
    width: min(100% - 2rem, 1280px);
  }

  .cat-archive-hero-grid,
  .cat-featured-card {
    grid-template-columns: 1fr;
  }

  .cat-archive-hero-copy h1 {
    max-width: 13ch;
  }

  .cat-archive-hero-media,
  .cat-archive-hero-img {
    min-height: 360px;
  }

  .cat-featured-image,
  .cat-featured-image img {
    min-height: 360px;
  }

  .cat-archive-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .cat-archive-hero {
    padding-top: 1rem;
  }

  .cat-archive-shell {
    width: min(100% - 1.5rem, 1280px);
  }

  .cat-archive-hero-grid {
    border-radius: 18px;
  }

  .cat-archive-hero-copy {
    padding: 2rem 1.35rem 1.75rem;
  }

  .cat-archive-breadcrumb {
    margin-bottom: 1.15rem;
  }

  .cat-archive-hero-copy h1 {
    font-size: clamp(2.65rem, 13vw, 4rem);
  }

  .cat-archive-lede {
    margin-top: 1rem;
  }

  .cat-archive-hero-media,
  .cat-archive-hero-img,
  .cat-archive-hero-fallback {
    min-height: 290px;
  }

  .cat-archive-subnav {
    padding-bottom: 1.8rem;
  }

  .cat-archive-subnav-head {
    display: block;
  }

  .cat-archive-chips {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 0.55rem;
    margin-right: -0.75rem;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .cat-archive-chips::-webkit-scrollbar {
    display: none;
  }

  .cat-archive-chips a {
    flex: 0 0 auto;
  }

  .cat-archive-content {
    padding-top: 2.5rem;
    padding-bottom: 3.25rem;
  }

  .cat-section-heading-split {
    display: block;
  }

  .cat-text-link {
    margin-top: 0.6rem;
  }

  .cat-section-note {
    margin-top: 0.65rem;
    text-align: left;
  }

  .cat-featured {
    margin-bottom: 3.25rem;
  }

  .cat-featured-card {
    border-radius: 16px;
  }

  .cat-featured-image,
  .cat-featured-image img {
    min-height: 280px;
  }

  .cat-featured-body {
    padding: 1.55rem 1.3rem 1.7rem;
  }

  .cat-featured-body h3 {
    font-size: clamp(1.85rem, 8vw, 2.5rem);
  }

  .cat-archive-grid {
    grid-template-columns: 1fr;
    gap: 1.1rem;
  }

  .cat-archive-card {
    display: grid;
    grid-template-columns: 132px minmax(0, 1fr);
    border-radius: 14px;
  }

  .cat-archive-card-image {
    aspect-ratio: auto;
    min-height: 100%;
  }

  .cat-archive-card-body {
    padding: 1rem;
  }

  .cat-archive-card h3 {
    font-size: 1.28rem;
  }

  .cat-archive-card-excerpt {
    display: none;
  }

  .cat-archive-card-meta {
    font-size: 0.72rem;
  }

  .cat-finder-grid,
  .cat-pinterest-inner {
    grid-template-columns: 1fr;
  }

  .cat-light-btn,
  .cat-pinterest-btn {
    width: 100%;
  }
}

@media (max-width: 420px) {
  .cat-archive-shell {
    width: min(100% - 1rem, 1280px);
  }

  .cat-archive-card {
    grid-template-columns: 112px minmax(0, 1fr);
  }

  .cat-archive-card-body {
    padding: 0.85rem;
  }

  .cat-archive-card h3 {
    font-size: 1.12rem;
  }

  .cat-archive-card-tag {
    font-size: 0.62rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cat-archive-chips a,
  .cat-featured-image img,
  .cat-primary-btn,
  .cat-light-btn,
  .cat-pinterest-btn,
  .cat-archive-card,
  .cat-archive-card-image img {
    transition: none;
  }

  .cat-archive-chips a:hover,
  .cat-primary-btn:hover,
  .cat-light-btn:hover,
  .cat-pinterest-btn:hover,
  .cat-archive-card:hover,
  .cat-featured-card:hover .cat-featured-image img,
  .cat-archive-card:hover .cat-archive-card-image img {
    transform: none;
  }
}

/* =====================================================
   PHASE 2.1 — HOMEPAGE COMPACT EDITORIAL POLISH
   Smaller category cards, 8 editor picks, compact finder,
   compact editor/Pinterest blocks and interactive finder links.
   ===================================================== */

/* Compact section rhythm */
.home-main {
  padding-top: clamp(2.75rem, 4.5vw, 4.5rem);
  padding-bottom: clamp(3rem, 5vw, 5rem);
}
.home-section {
  margin-bottom: clamp(3.25rem, 5.5vw, 5rem);
}
.home-section-head {
  margin-bottom: clamp(1.4rem, 2.6vw, 2rem);
}
.home-section-head-center {
  max-width: 690px;
}
.home-section-head h2 {
  font-size: clamp(2rem, 3.2vw, 2.8rem);
}
.home-section-head p:not(.home-kicker) {
  margin-top: 0.55rem;
  font-size: 0.92rem;
  line-height: 1.6;
}

/* 1 — smaller category cards */
.home-category-grid {
  gap: 0.9rem;
}
.home-category-card {
  border-radius: 10px;
  box-shadow: 0 4px 14px rgba(48,52,58,0.025);
}
.home-category-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(48,52,58,0.09);
}
.home-category-card-media {
  aspect-ratio: 16 / 9;
}
.home-category-card-body {
  padding: 0.82rem 0.9rem 0.95rem;
}
.home-category-card-top {
  margin-bottom: 0.42rem;
}
.home-category-icon-small {
  width: 19px;
  height: 19px;
}
.home-category-count {
  font-size: 0.62rem;
}
.home-category-card h3 {
  font-size: 1.22rem;
  line-height: 1.15;
}
.home-category-card p {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  margin: 0.42rem 0 0.62rem;
  font-size: 0.78rem;
  line-height: 1.48;
}
.home-category-card .home-text-link {
  font-size: 0.69rem;
}

/* 2 — eight short Editor's Pick cards */
.home-featured-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.9rem;
}
.home-feature-card,
.home-feature-card-large,
.home-feature-card:not(.home-feature-card-large) {
  position: relative;
  display: flex;
  min-height: 0;
  flex-direction: column;
  grid-row: auto;
  grid-template-columns: none;
  border-radius: 10px;
  overflow: hidden;
  background: var(--paper);
  border: 1px solid var(--border);
  box-shadow: 0 4px 14px rgba(48,52,58,0.025);
  transition: transform 0.24s ease, box-shadow 0.24s ease, border-color 0.24s ease, background-color 0.24s ease;
}
.home-feature-card::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  background: radial-gradient(circle at 50% 0%, rgba(201,164,93,0.32), transparent 52%);
  transition: opacity 0.25s ease;
}
.home-feature-card:hover,
.home-feature-card:focus-within {
  z-index: 1;
  transform: translateY(-4px);
  border-color: rgba(201,164,93,0.42);
  background: #FFF9F5;
  box-shadow: 0 12px 30px rgba(130,98,56,0.14), 0 0 28px rgba(201,164,93,0.22);
}
.home-feature-card:hover::after,
.home-feature-card:focus-within::after {
  opacity: 1;
}
.home-feature-card-media,
.home-feature-card-large .home-feature-card-media {
  position: relative;
  z-index: 1;
  min-height: 0;
  aspect-ratio: 16 / 10;
}
.home-feature-card-body,
.home-feature-card-large .home-feature-card-body {
  position: relative;
  z-index: 1;
  justify-content: flex-start;
  padding: 0.82rem 0.9rem 0.92rem;
}
.home-feature-card h3,
.home-feature-card-large h3 {
  font-size: 1.16rem;
  line-height: 1.2;
}
.home-feature-card p {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  margin: 0.42rem 0 0.55rem;
  font-size: 0.76rem;
  line-height: 1.45;
}
.home-feature-card .home-card-label {
  margin-bottom: 0.35rem;
  font-size: 0.6rem;
}
.home-feature-card .home-card-meta {
  font-size: 0.62rem;
}

/* 3/4 — compact illuminated Find My Wedding box */
.home-finder {
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: clamp(1.25rem, 3vw, 2.75rem);
  margin-bottom: clamp(3.25rem, 5vw, 4.5rem);
  padding: clamp(1.5rem, 3vw, 2.25rem);
  border: 1px solid rgba(201,164,93,0.28);
  border-radius: 16px;
  background:
    radial-gradient(circle at 88% 12%, rgba(201,164,93,0.18), transparent 28%),
    radial-gradient(circle at 8% 105%, rgba(232,200,199,0.11), transparent 32%),
    linear-gradient(135deg, #30343A 0%, var(--olive-dark) 56%, #8E3153 100%);
  box-shadow: 0 16px 36px rgba(48,52,58,0.12), inset 0 1px 0 rgba(255,255,255,0.05);
}
.home-finder::before {
  content: "";
  position: absolute;
  width: 160px;
  height: 160px;
  left: 38%;
  top: -105px;
  border-radius: 50%;
  background: rgba(201,164,93,0.16);
  filter: blur(36px);
  pointer-events: none;
}
.home-finder::after {
  width: 210px;
  height: 210px;
  right: -85px;
  top: -95px;
  border: 1px solid rgba(201,164,93,0.18);
  box-shadow: 0 0 0 34px rgba(201,164,93,0.028), 0 0 0 68px rgba(201,164,93,0.018);
}
.home-finder h2 {
  font-size: clamp(2rem, 3.2vw, 2.8rem);
}
.home-finder-copy > p:not(.home-kicker) {
  max-width: 540px;
  margin: 0.65rem 0 1.05rem;
  font-size: 0.86rem;
  line-height: 1.6;
}
.home-finder .btn-gold {
  min-height: 40px;
  padding: 0.68rem 1rem;
  font-size: 0.68rem;
}
.home-finder-steps {
  gap: 0.58rem;
}
.home-finder-step {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) 22px;
  align-items: center;
  gap: 0.72rem;
  min-height: 54px;
  padding: 0.62rem 0.72rem;
  color: var(--ivory);
  border: 1px solid rgba(201,164,93,0.24);
  border-radius: 10px;
  background: rgba(255,249,245,0.055);
  transition: transform 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
.home-finder-step:hover,
.home-finder-step:focus-visible {
  color: var(--ivory);
  transform: translateX(3px);
  border-color: rgba(201,164,93,0.5);
  background: rgba(255,249,245,0.105);
  box-shadow: 0 7px 18px rgba(0,0,0,0.11), inset 0 0 22px rgba(201,164,93,0.045);
}
.home-finder-step span {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  color: var(--olive-dark);
  background: linear-gradient(135deg, #E8C8C7, var(--gold-light));
  font-size: 0.64rem;
  font-weight: 800;
  box-shadow: 0 3px 10px rgba(0,0,0,0.08);
}
.home-finder-step strong {
  color: var(--ivory);
  font-family: var(--serif);
  font-size: 1rem;
  font-weight: 600;
}
.home-finder-step b {
  color: var(--gold-light);
  font-family: var(--sans);
  font-size: 0.95rem;
  font-weight: 500;
  text-align: right;
}

/* 5 — compact editor block */
.home-editorial {
  grid-template-columns: 105px minmax(0, 1.35fr) minmax(230px, 0.65fr);
  gap: clamp(1rem, 2.2vw, 2rem);
  margin-bottom: clamp(2.75rem, 4.5vw, 4rem);
  padding: clamp(1.2rem, 2.4vw, 1.75rem);
  border-radius: 14px;
}
.home-editorial-avatar {
  width: 88px;
  height: 88px;
  border-width: 3px;
}
.home-editorial-avatar-placeholder {
  font-size: 2.1rem;
}
.home-editorial h2 {
  font-size: clamp(1.85rem, 2.8vw, 2.45rem);
}
.home-editorial-copy > p:not(.home-kicker) {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  margin: 0.42rem 0 0.75rem;
  font-size: 0.82rem;
  line-height: 1.55;
}
.home-editorial-copy .btn-secondary {
  min-height: 38px;
  padding: 0.62rem 0.9rem;
  font-size: 0.66rem;
}
.home-editorial-note {
  padding: 0.85rem 1rem;
}
.home-editorial-note p {
  font-size: 1rem;
  line-height: 1.4;
}
.home-editorial-quote {
  font-size: 2.4rem;
}

/* 6 — compact Pinterest block */
.home-pinterest {
  gap: 1.25rem;
  margin-bottom: clamp(2.75rem, 4.5vw, 4rem);
  padding: clamp(1.15rem, 2.2vw, 1.65rem);
  border-radius: 14px;
}
.home-pinterest > div {
  max-width: 720px;
}
.home-pinterest h2 {
  font-size: clamp(1.8rem, 2.6vw, 2.35rem);
}
.home-pinterest p:not(.home-kicker) {
  margin-top: 0.42rem;
  font-size: 0.82rem;
  line-height: 1.55;
}
.home-pinterest .pinterest-btn {
  min-height: 40px;
  padding: 0.68rem 1rem;
  font-size: 0.68rem;
}

/* Tablet */
@media (max-width: 1100px) {
  .home-featured-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .home-finder {
    grid-template-columns: 1fr 1fr;
  }
  .home-editorial {
    grid-template-columns: 95px 1fr;
  }
  .home-editorial-note {
    grid-column: 1 / -1;
  }
}

/* Mobile */
@media (max-width: 760px) {
  .home-main {
    padding-top: 2.7rem;
  }
  .home-section {
    margin-bottom: 3.25rem;
  }
  .home-category-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
  }
  .home-category-card-media {
    aspect-ratio: 4 / 3;
  }
  .home-category-card-body {
    padding: 0.7rem;
  }
  .home-category-card p {
    display: none;
  }
  .home-category-card-top {
    margin-bottom: 0.3rem;
  }
  .home-category-card h3 {
    font-size: 1.05rem;
  }
  .home-category-card .home-text-link {
    margin-top: 0.45rem;
    font-size: 0.63rem;
  }
  .home-featured-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
  }
  .home-feature-card-media,
  .home-feature-card-large .home-feature-card-media {
    min-height: 0;
    aspect-ratio: 4 / 3;
  }
  .home-feature-card-body,
  .home-feature-card-large .home-feature-card-body {
    padding: 0.68rem;
  }
  .home-feature-card h3,
  .home-feature-card-large h3 {
    font-size: 1rem;
  }
  .home-feature-card p {
    display: none;
  }
  .home-feature-card .home-card-meta {
    margin-top: 0.45rem;
    font-size: 0.58rem;
  }
  .home-finder {
    grid-template-columns: 1fr;
    gap: 1rem;
    padding: 1.35rem 1rem;
    border-radius: 14px;
  }
  .home-finder-copy > p:not(.home-kicker) {
    margin-bottom: 0.85rem;
  }
  .home-finder-step {
    min-height: 50px;
  }
  .home-editorial {
    grid-template-columns: 72px 1fr;
    gap: 0.8rem;
    padding: 1rem;
    text-align: left;
  }
  .home-editorial-profile {
    justify-content: flex-start;
  }
  .home-editorial-avatar {
    width: 68px;
    height: 68px;
  }
  .home-editorial-copy .home-kicker {
    justify-content: flex-start;
  }
  .home-editorial-note {
    display: none;
  }
  .home-pinterest {
    align-items: center;
    flex-direction: row;
    padding: 1rem;
  }
  .home-pinterest .pinterest-btn {
    width: auto;
    flex: 0 0 auto;
  }
}

@media (max-width: 520px) {
  .home-section-head h2 {
    font-size: clamp(1.8rem, 9vw, 2.35rem);
  }
  .home-pinterest {
    align-items: flex-start;
    flex-direction: column;
  }
  .home-pinterest .pinterest-btn {
    width: 100%;
  }
}

@media (max-width: 420px) {
  .home-category-grid,
  .home-featured-grid {
    grid-template-columns: 1fr;
  }
  .home-category-card p {
    display: -webkit-box;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-feature-card,
  .home-feature-card::after,
  .home-finder-step {
    transition: none;
  }
  .home-feature-card:hover,
  .home-feature-card:focus-within,
  .home-finder-step:hover,
  .home-finder-step:focus-visible {
    transform: none;
  }
}

/* =====================================================
   PHASE 3 — PREMIUM ARTICLE PAGE
   Curvy-style editorial structure + Heaven Wedding identity
   ===================================================== */
.article-v2 { background: var(--ivory); }
.article-v2-shell { width: min(1180px, calc(100% - 40px)); margin: 0 auto; padding: 1.35rem 0 4rem; }
.article-v2-breadcrumb { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; margin: 0 auto 1.25rem; max-width: 900px; font-size: .76rem; color: var(--sage-soft); }
.article-v2-breadcrumb a { color: var(--sage-soft); }
.article-v2-breadcrumb a:hover { color: var(--gold-dark); }
.article-v2-header { max-width: 900px; margin: 0 auto 1.6rem; text-align: center; }
.article-v2-kicker, .article-v2-small-label { display: inline-block; margin: 0 0 .55rem; font-family: var(--sans); font-size: .66rem; font-weight: 700; line-height: 1.3; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-dark); }
.article-v2-header h1 { max-width: 860px; margin: 0 auto .9rem; font-size: clamp(2.35rem, 5.2vw, 4.35rem); font-weight: 500; line-height: .98; text-wrap: balance; }
.article-v2-meta { display: flex; flex-wrap: wrap; justify-content: center; gap: .45rem .7rem; align-items: center; font-size: .78rem; color: var(--sage-soft); }
.article-v2-hero { max-width: 1080px; margin: 0 auto 2rem; overflow: hidden; border: 1px solid var(--border); border-radius: 16px; background: var(--cream); box-shadow: 0 18px 50px rgba(48,52,58,.08); }
.article-v2-hero img { width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: 0; margin: 0; }
.article-v2-grid { display: grid; grid-template-columns: minmax(0, 780px) minmax(260px, 310px); gap: 2.5rem; align-items: start; justify-content: center; }
.article-v2-main { min-width: 0; }
.article-v2-share-top .save-share { margin: 0 0 1rem; padding: .65rem .8rem; border: 1px solid var(--border); border-radius: 12px; background: rgba(255,255,255,.72); }
.article-v2-share-top .save-share-title { margin-bottom: .4rem; }
.article-v2-toc { margin: 0 0 1.6rem; padding: .95rem 1.1rem; background: var(--cream); border: 1px solid var(--border); border-radius: 12px; }
.article-v2-toc summary { font-size: .74rem; letter-spacing: .1em; }
.article-v2-toc ol { columns: 2; column-gap: 2rem; padding-top: .3rem; }
.article-v2-toc li { break-inside: avoid; }
.article-v2-content { font-size: 1rem; }
.article-v2-content > p, .article-v2-content > ul, .article-v2-content > ol, .article-v2-content > blockquote { max-width: 720px; }
.article-v2-content p { font-size: 1.04rem; line-height: 1.85; }
.article-v2-content h2 { margin-top: 2.5rem; font-size: clamp(1.75rem, 3.3vw, 2.35rem); }
.article-v2-content h3 { margin-top: 1.9rem; font-size: clamp(1.35rem, 2.6vw, 1.7rem); }
.article-v2-content img { width: 100%; height: auto; margin: 1.4rem 0; border-radius: 12px; }
.article-v2-content figure { margin-left: 0; margin-right: 0; }
.article-v2-content table { display: block; overflow-x: auto; white-space: nowrap; -webkit-overflow-scrolling: touch; }
.article-v2-content iframe { max-width: 100%; }
.article-v2-save-card { display: grid; grid-template-columns: 1fr auto; gap: 1.2rem; align-items: center; margin: 2.6rem 0 1.6rem; padding: 1.2rem 1.35rem; border: 1px solid var(--gold-light); border-radius: 14px; background: linear-gradient(135deg, #fff 0%, var(--cream) 100%); box-shadow: 0 14px 34px rgba(48,52,58,.06); }
.article-v2-save-card h2 { margin: 0 0 .3rem; font-size: 1.55rem; }
.article-v2-save-card p:not(.save-share-title):not(.article-v2-small-label) { margin: 0; font-size: .88rem; color: #6f766d; }
.article-v2-save-card .save-share { margin: 0; }
.article-v2-save-card .save-share-title { display: none; }
.article-v2-prev-next { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; margin: 0 0 1.5rem; }
.article-v2-nav-card { min-height: 92px; padding: .9rem 1rem; border: 1px solid var(--border); border-radius: 12px; background: var(--white); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.article-v2-nav-card:hover { transform: translateY(-3px); border-color: var(--gold-light); box-shadow: 0 12px 26px rgba(48,52,58,.08); }
.article-v2-nav-label { display: block; margin-bottom: .3rem; font-size: .64rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gold-dark); }
.article-v2-nav-card strong { display: block; font-family: var(--serif); font-size: 1.05rem; line-height: 1.25; color: var(--olive-dark); }
.article-v2-nav-next { text-align: right; }
.article-v2-author { display: grid; grid-template-columns: 76px 1fr; gap: 1rem; align-items: center; margin: 2rem 0 2.5rem; padding: 1.15rem 1.25rem; background: #F6E9E8; border: 1px solid #E8C8C7; border-radius: 14px; }
.article-v2-author-avatar img { width: 72px; height: 72px; object-fit: cover; border-radius: 50%; border: 3px solid var(--white); box-shadow: 0 6px 18px rgba(48,52,58,.1); }
.article-v2-author h2 { margin: 0 0 .25rem; font-size: 1.45rem; }
.article-v2-author p:not(.article-v2-small-label) { margin: 0; font-size: .88rem; color: #687069; }
.article-v2-author-links { display: flex; flex-wrap: wrap; gap: .9rem; margin-top: .55rem; }
.article-v2-author-links a { font-size: .76rem; font-weight: 700; color: var(--gold-dark); }
.article-v2-section-head { display: flex; justify-content: space-between; align-items: end; gap: 1rem; margin-bottom: 1rem; }
.article-v2-section-head h2 { margin: 0; font-size: clamp(1.8rem, 3.4vw, 2.25rem); }
.article-v2-section-head > a { flex: 0 0 auto; font-size: .76rem; font-weight: 700; color: var(--gold-dark); }
.article-v2-related { margin: 0 0 2.5rem; }
.article-v2-related-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
.article-v2-related-card { overflow: hidden; background: var(--white); border: 1px solid var(--border); border-radius: 12px; transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.article-v2-related-card:hover { transform: translateY(-4px); border-color: var(--gold-light); box-shadow: 0 13px 28px rgba(48,52,58,.09); }
.article-v2-related-image { display: block; aspect-ratio: 4/3; overflow: hidden; background: var(--cream); }
.article-v2-related-image img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; transition: transform .35s ease; }
.article-v2-related-card:hover .article-v2-related-image img { transform: scale(1.035); }
.article-v2-related-body { padding: .75rem .8rem .8rem; }
.article-v2-related-body h3 { margin: 0 0 .35rem; font-size: 1.04rem; line-height: 1.16; }
.article-v2-related-body h3 a { color: var(--olive-dark); }
.article-v2-related-body span { font-size: .68rem; color: var(--sage-soft); }
.article-v2-sidebar { position: sticky; top: 1rem; display: flex; flex-direction: column; gap: .9rem; }
.article-v2-sidebox { padding: 1.05rem; background: var(--white); border: 1px solid var(--border); border-radius: 13px; box-shadow: 0 10px 28px rgba(48,52,58,.04); }
.article-v2-sidebox h2 { margin: 0 0 .55rem; font-size: 1.32rem; line-height: 1.1; }
.article-v2-sidebox p:not(.article-v2-small-label) { margin: 0 0 .8rem; font-size: .82rem; line-height: 1.55; color: #6e756d; }
.article-v2-searchbox form { display: grid; grid-template-columns: 1fr auto; gap: .45rem; }
.article-v2-searchbox input { min-width: 0; width: 100%; padding: .66rem .8rem; font: inherit; font-size: .78rem; background: var(--ivory); border: 1px solid var(--border); border-radius: 999px; }
.article-v2-searchbox button { padding: .66rem .8rem; font: inherit; font-size: .72rem; font-weight: 700; color: var(--white); background: var(--olive-dark); border: 0; border-radius: 999px; cursor: pointer; }
.article-v2-topic-links { display: flex; flex-direction: column; margin: .2rem 0 .7rem; }
.article-v2-topic-links a { display: flex; justify-content: space-between; gap: .7rem; padding: .58rem 0; font-size: .79rem; color: var(--olive); border-bottom: 1px solid #EEE7DF; }
.article-v2-topic-links a:last-child { border-bottom: 0; }
.article-v2-topic-links a:hover { color: var(--gold-dark); padding-left: .2rem; }
.article-v2-text-link { display: inline-flex; font-size: .72rem; font-weight: 700; color: var(--gold-dark); }
.article-v2-finder-box { position: relative; overflow: hidden; color: var(--ivory); background: var(--olive-dark); border-color: rgba(201,164,93,.35); }
.article-v2-finder-box::after { content: ""; position: absolute; width: 150px; height: 150px; right: -70px; top: -80px; border: 1px solid rgba(201,164,93,.18); border-radius: 50%; box-shadow: 0 0 55px rgba(201,164,93,.12); pointer-events: none; }
.article-v2-finder-box h2 { color: var(--ivory); }
.article-v2-finder-box p:not(.article-v2-small-label) { color: rgba(255,249,245,.72); }
.article-v2-finder-box .article-v2-small-label { color: var(--gold-light); }
.article-v2-finder-spark { position: absolute; right: 1rem; top: .8rem; color: var(--gold-light); }
.article-v2-primary-btn { display: inline-flex; padding: .68rem .9rem; font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--olive-dark); background: var(--gold-light); border-radius: 999px; }
.article-v2-primary-btn:hover { color: var(--olive-dark); background: var(--white); }
.article-v2-editor-mini { display: grid; grid-template-columns: 58px 1fr; gap: .75rem; align-items: center; }
.article-v2-editor-mini img { width: 56px; height: 56px; object-fit: cover; border-radius: 50%; }
.article-v2-editor-mini h2 { font-size: 1.05rem; margin-bottom: .2rem; }
.article-v2-editor-mini p:not(.article-v2-small-label) { margin-bottom: 0; font-size: .76rem; }
.article-v2-pinbox { background: linear-gradient(135deg, #FFF 0%, #F6E9E8 100%); }
.article-v2-pinterest-btn { display: inline-flex; justify-content: center; width: 100%; padding: .7rem .85rem; font-size: .72rem; font-weight: 700; text-transform: uppercase; color: var(--white); background: var(--pinterest); border-radius: 999px; box-shadow: 0 8px 18px rgba(230,0,35,.14); }
.article-v2-pinterest-btn:hover { color: var(--white); transform: translateY(-2px); }
.article-v2 .comments-section { margin-top: 2rem; }
.article-v2 .comments-section .section-title { font-size: 1.8rem; }

@media (max-width: 980px) {
  .article-v2-shell { width: min(900px, calc(100% - 32px)); }
  .article-v2-grid { grid-template-columns: 1fr; gap: 1.6rem; }
  .article-v2-sidebar { position: static; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .article-v2-shell { width: min(100% - 24px, 760px); padding-top: .9rem; }
  .article-v2-header { text-align: left; }
  .article-v2-header h1 { margin-left: 0; font-size: clamp(2.25rem, 11vw, 3.2rem); }
  .article-v2-meta { justify-content: flex-start; font-size: .73rem; }
  .article-v2-hero { border-radius: 12px; margin-bottom: 1rem; }
  .article-v2-hero img { aspect-ratio: 4/3; }
  .article-v2-toc ol { columns: 1; }
  .article-v2-content p { font-size: 1rem; line-height: 1.78; }
  .article-v2-save-card { grid-template-columns: 1fr; }
  .article-v2-prev-next { grid-template-columns: 1fr; }
  .article-v2-nav-next { text-align: left; }
  .article-v2-related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .article-v2-sidebar { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .article-v2-shell { width: min(100% - 20px, 600px); }
  .article-v2-breadcrumb { font-size: .68rem; }
  .article-v2-related-grid { grid-template-columns: 1fr; }
  .article-v2-related-card { display: grid; grid-template-columns: 108px 1fr; }
  .article-v2-related-image { aspect-ratio: 1/1; }
  .article-v2-author { grid-template-columns: 60px 1fr; padding: .95rem; }
  .article-v2-author-avatar img { width: 58px; height: 58px; }
  .article-v2-section-head { align-items: flex-start; flex-direction: column; }
  .article-v2-searchbox form { grid-template-columns: 1fr; }
  .article-v2-searchbox button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .article-v2-nav-card,
  .article-v2-related-card,
  .article-v2-related-image img,
  .article-v2-pinterest-btn { transition: none; }
  .article-v2-nav-card:hover,
  .article-v2-related-card:hover,
  .article-v2-pinterest-btn:hover { transform: none; }
}

/* =====================================================
   PHASE 4 — FIND MY WEDDING v2
   ===================================================== */
.fmw-v2-shell,
.fmw-v2-results-shell {
  width: min(1160px, calc(100% - 40px));
  margin: 0 auto;
  padding: clamp(2rem, 5vw, 4.6rem) 0 clamp(3rem, 6vw, 5.5rem);
}
.fmw-v2-intro-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(260px, .55fr);
  gap: clamp(1.25rem, 3vw, 3rem);
  align-items: stretch;
  margin-bottom: 1.35rem;
}
.fmw-v2-intro-copy,
.fmw-v2-results-hero {
  padding: clamp(1.5rem, 4vw, 3rem);
  background: linear-gradient(135deg, #F6E9E8 0%, #FFF9F5 70%);
  border: 1px solid var(--border);
  border-radius: 18px;
}
.fmw-v2-kicker {
  margin: 0 0 .55rem;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--gold-dark);
}
.fmw-v2-intro-copy h1,
.fmw-v2-results-hero h1 {
  max-width: 760px;
  margin: 0;
  font-size: clamp(2.55rem, 6vw, 5rem);
  line-height: .96;
  letter-spacing: -.025em;
}
.fmw-v2-intro-copy h1 em {
  color: var(--gold-dark);
  font-weight: 500;
}
.fmw-v2-lede,
.fmw-v2-results-lede {
  max-width: 720px;
  margin: 1rem 0 0;
  font-size: clamp(.98rem, 1.4vw, 1.08rem);
  line-height: 1.75;
  color: #657067;
}
.fmw-v2-trust-row {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin-top: 1.2rem;
}
.fmw-v2-trust-row span {
  padding: .38rem .68rem;
  font-size: .7rem;
  font-weight: 700;
  color: var(--olive-dark);
  background: rgba(255,255,255,.74);
  border: 1px solid var(--border);
  border-radius: 999px;
}
.fmw-v2-intro-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
  min-height: 280px;
  padding: 1.5rem;
  color: var(--ivory);
  background:
    radial-gradient(circle at 80% 18%, rgba(201,164,93,.25), transparent 32%),
    linear-gradient(145deg, #30343A 0%, #8E3153 100%);
  border: 1px solid rgba(201,164,93,.38);
  border-radius: 18px;
  box-shadow: 0 18px 45px rgba(48,52,58,.10);
}
.fmw-v2-intro-card::before,
.fmw-v2-intro-card::after {
  content: "";
  position: absolute;
  border: 1px solid rgba(201,164,93,.20);
  border-radius: 50%;
}
.fmw-v2-intro-card::before { width: 190px; height: 190px; right: -72px; top: -72px; }
.fmw-v2-intro-card::after { width: 92px; height: 92px; left: -30px; bottom: -35px; }
.fmw-v2-ring-mark {
  position: absolute;
  top: 1.15rem;
  right: 1.25rem;
  font-size: 3.1rem;
  color: var(--gold-light);
  opacity: .85;
}
.fmw-v2-intro-card p {
  position: relative;
  z-index: 1;
  max-width: 17rem;
  margin: 0;
  font-family: var(--serif);
  font-size: 1.45rem;
  line-height: 1.12;
  color: var(--ivory);
}
.fmw-v2-quiz-card {
  padding: clamp(1rem, 2.5vw, 1.6rem);
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 18px;
  box-shadow: 0 18px 45px rgba(48,52,58,.07);
}
.fmw-v2-quiz-card .fmw {
  max-width: 920px;
  margin: 0 auto;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
}
.fmw-v2-progress-wrap {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: .75rem;
  margin-bottom: 1.15rem;
}
.fmw-v2-quiz-card .fmw-progress { height: 5px; background: #EEE6DD; }
.fmw-v2-quiz-card .fmw-progress-bar { background: linear-gradient(90deg, var(--gold-dark), var(--gold-light)); }
.fmw-v2-progress-text { font-size: .7rem; font-weight: 700; color: var(--sage-soft); }
.fmw-v2-quiz-card .fmw-step { margin: 0 0 .45rem; font-size: .65rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--gold-dark); }
.fmw-v2-quiz-card .fmw-question { margin: 0; font-size: clamp(1.9rem, 4vw, 3.2rem); line-height: 1.02; }
.fmw-v2-quiz-card .fmw-hint { margin: .55rem 0 1.2rem; color: #697168; font-size: .92rem; }
.fmw-v2-quiz-card .fmw-options { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; }
.fmw-v2-quiz-card .fmw-option {
  position: relative;
  min-height: 68px;
  padding: .8rem .9rem;
  color: var(--olive-dark);
  background: #FFF9F5;
  border: 1px solid #E9DED2;
  border-radius: 12px;
  box-shadow: 0 7px 18px rgba(48,52,58,.025);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.fmw-v2-quiz-card .fmw-option:hover {
  transform: translateY(-2px);
  border-color: var(--gold-light);
  box-shadow: 0 10px 24px rgba(48,52,58,.07), 0 0 0 4px rgba(201,164,93,.06);
}
.fmw-v2-quiz-card .fmw-option[aria-pressed="true"] {
  color: var(--ivory);
  background: var(--olive-dark);
  border-color: var(--olive-dark);
  box-shadow: 0 10px 24px rgba(48,52,58,.14);
}
.fmw-v2-quiz-card .fmw-option.is-selecting { transform: translateY(-2px) scale(.99); }
.fmw-v2-quiz-card .fmw-option-icon { display: inline-flex; width: 1.8rem; justify-content: center; font-size: 1.2rem; }
.fmw-v2-quiz-card .fmw-option-label { font-size: .84rem; font-weight: 650; line-height: 1.25; }
.fmw-v2-quiz-card .fmw-actions { margin-top: 1.15rem; }
.fmw-v2-quiz-card .fmw-back {
  text-decoration: none;
  font-size: .78rem;
  font-weight: 700;
  color: var(--olive);
}
.fmw-v2-quiz-card .fmw-next {
  padding: .76rem 1.25rem;
  font-size: .75rem;
  font-weight: 700;
  color: var(--white);
  background: var(--olive-dark);
  border-radius: 999px;
}
.fmw-v2-quiz-card .fmw-next:hover:not(:disabled) { background: var(--gold-dark); }
.fmw-v2-empty,
.fmw-v2-noscript { padding: 1rem; background: var(--cream); border-radius: 10px; color: var(--olive-dark); }

/* Results */
.fmw-v2-results-hero { margin-bottom: 1.35rem; text-align: center; }
.fmw-v2-results-hero h1 { margin-left: auto; margin-right: auto; }
.fmw-v2-results-lede { margin-left: auto; margin-right: auto; }
.fmw-v2-chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .45rem;
  margin: 1rem 0 0;
  padding: 0;
  list-style: none;
}
.fmw-v2-chips li {
  padding: .38rem .72rem;
  font-size: .7rem;
  font-weight: 700;
  color: var(--olive-dark);
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 999px;
}
.fmw-v2-results-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .6rem;
  margin-top: 1.15rem;
}
.fmw-v2-start-over,
.fmw-v2-browse,
.fmw-v2-bottom-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .68rem .95rem;
  font-size: .72rem;
  font-weight: 700;
  border-radius: 999px;
}
.fmw-v2-start-over { color: var(--olive-dark); background: var(--white); border: 1px solid var(--border); }
.fmw-v2-browse { color: var(--white); background: var(--olive-dark); border: 1px solid var(--olive-dark); }
.fmw-v2-result-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.fmw-v2-result-card {
  overflow: hidden;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 15px;
  box-shadow: 0 12px 28px rgba(48,52,58,.045);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.fmw-v2-result-card:hover {
  transform: translateY(-5px);
  border-color: var(--gold-light);
  box-shadow: 0 18px 38px rgba(48,52,58,.10), 0 0 0 5px rgba(201,164,93,.05);
}
.fmw-v2-result-image {
  position: relative;
  display: block;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--cream);
}
.fmw-v2-result-image img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; transition: transform .35s ease; }
.fmw-v2-result-card:hover .fmw-v2-result-image img { transform: scale(1.035); }
.fmw-v2-match-badge {
  position: absolute;
  top: .7rem;
  left: .7rem;
  padding: .32rem .58rem;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--olive-dark);
  background: rgba(255,249,245,.92);
  border: 1px solid rgba(255,255,255,.9);
  border-radius: 999px;
  backdrop-filter: blur(7px);
}
.fmw-v2-image-fallback { display: grid; place-items: center; height: 100%; padding: 1rem; font-family: var(--serif); font-size: 1.25rem; color: var(--olive); }
.fmw-v2-result-body { padding: .95rem 1rem 1rem; }
.fmw-v2-result-cat { margin: 0 0 .35rem; font-size: .62rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--gold-dark); }
.fmw-v2-result-body h2 { margin: 0 0 .45rem; font-size: 1.38rem; line-height: 1.08; }
.fmw-v2-result-body h2 a { color: var(--olive-dark); }
.fmw-v2-reasons { display: flex; flex-wrap: wrap; gap: .3rem; margin-bottom: .55rem; }
.fmw-v2-reasons span { padding: .26rem .48rem; font-size: .62rem; color: #586158; background: #F6F0E9; border-radius: 999px; }
.fmw-v2-result-excerpt { margin: 0 0 .7rem; font-size: .8rem; line-height: 1.55; color: #6D746C; }
.fmw-v2-result-link { display: inline-flex; gap: .3rem; font-size: .7rem; font-weight: 800; color: var(--gold-dark); }
.fmw-v2-bottom-note {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-top: 1.3rem;
  padding: 1.2rem 1.3rem;
  background: linear-gradient(135deg, #F6E9E8, #FFF9F5);
  border: 1px solid var(--border);
  border-radius: 15px;
}
.fmw-v2-bottom-note h2 { margin: 0; font-size: 1.55rem; }
.fmw-v2-bottom-note p:not(.fmw-v2-kicker) { margin: .35rem 0 0; font-size: .82rem; color: #697168; }
.fmw-v2-bottom-btn { flex-shrink: 0; color: var(--white); background: var(--olive-dark); }

@media (max-width: 900px) {
  .fmw-v2-intro-grid { grid-template-columns: 1fr; }
  .fmw-v2-intro-card { min-height: 150px; }
  .fmw-v2-quiz-card .fmw-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fmw-v2-result-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .fmw-v2-shell,
  .fmw-v2-results-shell { width: min(100% - 22px, 720px); padding-top: 1rem; }
  .fmw-v2-intro-copy,
  .fmw-v2-results-hero { padding: 1.15rem; border-radius: 14px; }
  .fmw-v2-intro-copy h1,
  .fmw-v2-results-hero h1 { font-size: clamp(2.25rem, 12vw, 3.3rem); }
  .fmw-v2-intro-card { display: none; }
  .fmw-v2-quiz-card { padding: .9rem; border-radius: 14px; }
  .fmw-v2-quiz-card .fmw-options { grid-template-columns: 1fr; }
  .fmw-v2-quiz-card .fmw-option { min-height: 58px; }
  .fmw-v2-result-grid { grid-template-columns: 1fr; }
  .fmw-v2-result-card { display: grid; grid-template-columns: 118px minmax(0, 1fr); }
  .fmw-v2-result-image { height: 100%; min-height: 150px; aspect-ratio: auto; }
  .fmw-v2-result-body { padding: .78rem; }
  .fmw-v2-result-body h2 { font-size: 1.16rem; }
  .fmw-v2-result-excerpt { display: none; }
  .fmw-v2-bottom-note { align-items: flex-start; flex-direction: column; }
  .fmw-v2-bottom-btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .fmw-v2-quiz-card .fmw-option,
  .fmw-v2-result-card,
  .fmw-v2-result-image img { transition: none; }
  .fmw-v2-quiz-card .fmw-option:hover,
  .fmw-v2-result-card:hover { transform: none; }
}

/* =====================================================
   PHASE 5 — ABOUT, FOOTER, NEWSLETTER & BRAND/TRUST POLISH
   ===================================================== */

/* ---------- About page v2 ---------- */
.about-v2 {
  padding-top: 2rem;
  padding-bottom: 3.5rem;
}
.about-v2-hero {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center;
  margin-bottom: 2rem;
  padding: clamp(1.25rem, 3vw, 2rem);
  background: linear-gradient(135deg, rgba(244,238,232,.72), rgba(255,249,245,.96));
  border: 1px solid var(--border);
  border-radius: 22px;
  box-shadow: 0 20px 50px rgba(48,52,58,.06);
}
.about-v2-media {
  min-height: 420px;
  overflow: hidden;
  background: var(--cream);
  border-radius: 18px;
}
.about-v2-media img {
  width: 100%;
  height: 100%;
  min-height: 420px;
  object-fit: cover;
  border-radius: 0;
}
.about-v2-media.is-placeholder {
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 30% 25%, rgba(201,164,93,.30), transparent 30%),
    linear-gradient(145deg, #F6E9E8, #FFF9F5);
}
.about-v2-mark {
  display: grid;
  place-items: center;
  width: 110px;
  height: 110px;
  font-family: var(--serif);
  font-size: 4rem;
  color: var(--gold-dark);
  border: 1px solid var(--gold-light);
  border-radius: 50%;
}
.about-v2-copy h1 {
  max-width: 13ch;
  margin: .4rem 0 1rem;
  font-size: clamp(2.65rem, 5vw, 4.9rem);
  line-height: .98;
}
.about-v2-lede {
  max-width: 38rem;
  margin: 0;
  font-size: 1.02rem;
  line-height: 1.75;
  color: #656D65;
}
.about-v2-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem;
  margin-top: 1.35rem;
}

.about-v2-values {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .9rem;
  margin: 0 0 3.2rem;
}
.about-v2-values article {
  padding: 1.2rem 1.25rem;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 15px;
  box-shadow: 0 10px 25px rgba(48,52,58,.035);
}
.about-v2-values span {
  display: inline-block;
  margin-bottom: .6rem;
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .14em;
  color: var(--gold-dark);
}
.about-v2-values h2 {
  margin: 0 0 .35rem;
  font-size: 1.35rem;
}
.about-v2-values p {
  margin: 0;
  font-size: .86rem;
  line-height: 1.6;
  color: #6B726B;
}

.about-v2-story {
  max-width: 1080px;
  margin: 0 auto 3.2rem;
}
.about-v2-story-head {
  max-width: 680px;
  margin-bottom: 1.3rem;
}
.about-v2-story-head h2 {
  margin: .35rem 0 0;
  font-size: clamp(2rem, 4vw, 3rem);
}
.about-v2-story-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(250px, .7fr);
  gap: 1rem;
  align-items: start;
}
.about-v2-story-content {
  padding: 1.45rem 1.55rem;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 16px;
}
.about-v2-story-content.entry-content p {
  font-size: 1rem;
  line-height: 1.8;
}
.about-v2-editor {
  display: flex;
  gap: .85rem;
  align-items: center;
  padding: 1.15rem;
  background: linear-gradient(145deg, #F6E9E8, #FFF9F5);
  border: 1px solid var(--border);
  border-radius: 16px;
}
.about-v2-editor img {
  flex: 0 0 74px;
  width: 74px;
  height: 74px;
  object-fit: cover;
  border-radius: 50%;
  border: 3px solid var(--white);
  box-shadow: 0 6px 18px rgba(48,52,58,.09);
}
.about-v2-editor-label {
  display: block;
  margin-bottom: .15rem;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--gold-dark);
}
.about-v2-editor h3 {
  margin: 0 0 .25rem;
  font-size: 1.3rem;
}
.about-v2-editor p {
  margin: 0;
  font-size: .78rem;
  line-height: 1.5;
  color: #6D746C;
}

.about-v2-explore {
  margin-bottom: 3.2rem;
}
.about-v2-explore .home-section-head {
  margin-bottom: 1.2rem;
}
.about-v2-category-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .7rem;
}
.about-v2-category-grid > a {
  display: grid;
  grid-template-columns: 38px 1fr;
  grid-template-rows: auto auto;
  column-gap: .65rem;
  align-items: center;
  padding: .85rem .9rem;
  color: var(--olive-dark);
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 13px;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.about-v2-category-grid > a:hover {
  transform: translateY(-3px);
  border-color: var(--gold-light);
  box-shadow: 0 12px 26px rgba(48,52,58,.08);
}
.about-v2-category-icon {
  grid-row: 1 / 3;
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  color: var(--gold-dark);
  background: var(--cream);
  border-radius: 50%;
}
.about-v2-category-icon svg { width: 21px; height: 21px; }
.about-v2-category-grid strong { font-size: .82rem; line-height: 1.2; }
.about-v2-category-grid small { margin-top: .12rem; color: var(--sage-soft); font-size: .67rem; }

.about-v2-cta {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.25rem;
  overflow: hidden;
  padding: 1.5rem 1.65rem;
  color: var(--ivory);
  background:
    radial-gradient(circle at 85% 15%, rgba(201,164,93,.20), transparent 27%),
    linear-gradient(135deg, #30343A, #8E3153);
  border: 1px solid rgba(201,164,93,.28);
  border-radius: 18px;
}
.about-v2-cta h2 {
  margin: .3rem 0 .35rem;
  font-size: clamp(1.75rem, 3vw, 2.55rem);
  color: var(--ivory);
}
.about-v2-cta p:not(.home-kicker) {
  max-width: 42rem;
  margin: 0;
  color: rgba(255,249,245,.75);
  font-size: .88rem;
}
.about-v2-cta-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .55rem;
  flex-shrink: 0;
}
.about-v2-pin {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: .7rem 1rem;
  font-size: .72rem;
  font-weight: 800;
  color: var(--ivory);
  border: 1px solid rgba(255,249,245,.35);
  border-radius: 999px;
}
.about-v2-pin:hover { color: var(--white); border-color: var(--gold-light); background: rgba(255,255,255,.06); }

/* ---------- Compact Pinterest + editor polish ---------- */
.home-editorial {
  max-width: 1120px;
  margin-left: auto;
  margin-right: auto;
}
.home-pinterest {
  max-width: 1120px;
  margin-left: auto;
  margin-right: auto;
  padding: 1.1rem 1.25rem;
  border-radius: 15px;
}
.home-pinterest h2 { font-size: clamp(1.55rem, 3vw, 2.15rem); }
.home-pinterest p:not(.home-kicker) { max-width: 42rem; font-size: .84rem; }

/* ---------- Newsletter v2 ---------- */
.newsletter-v2 {
  padding: 1.35rem 1.5rem;
  background:
    radial-gradient(circle at 82% 10%, rgba(201,164,93,.16), transparent 30%),
    var(--olive-dark);
}
.newsletter-v2 .newsletter-inner {
  max-width: 1120px;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
  gap: 1.5rem;
  align-items: center;
  text-align: left;
}
.newsletter-v2 .home-kicker { justify-content: flex-start; margin-bottom: .3rem; }
.newsletter-v2 h2 {
  margin: 0 0 .35rem;
  font-size: clamp(1.65rem, 3vw, 2.35rem);
}
.newsletter-v2 .newsletter-intro {
  margin: 0;
  max-width: 42rem;
  font-size: .84rem;
  line-height: 1.55;
}
.newsletter-v2 .newsletter-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .55rem;
  margin: 0;
}
.newsletter-v2 .newsletter-form input[type="email"] {
  width: 100%;
  max-width: none;
  min-width: 0;
  padding: .75rem 1rem;
}
.newsletter-v2 .newsletter-form button {
  padding: .75rem 1rem;
  white-space: nowrap;
}
.newsletter-v2 .newsletter-note {
  margin-top: .45rem;
  font-size: .7rem;
}
.newsletter-v2-pending {
  display: flex;
  flex-direction: column;
  gap: .2rem;
  padding: .85rem 1rem;
  background: rgba(255,249,245,.07);
  border: 1px solid rgba(201,164,93,.28);
  border-radius: 12px;
}
.newsletter-v2-pending strong { color: var(--ivory); font-size: .82rem; }
.newsletter-v2-pending span { color: rgba(255,249,245,.64); font-size: .72rem; line-height: 1.45; }

/* ---------- Footer v2 ---------- */
.footer-v2 {
  background:
    radial-gradient(circle at 12% 0%, rgba(201,164,93,.10), transparent 24%),
    #30343A;
}
.footer-v2-top {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.35fr 1fr .85fr .8fr;
  gap: clamp(1.2rem, 3vw, 2.4rem);
  padding: 2.3rem 1.5rem 1.8rem;
}
.footer-v2-brand p {
  max-width: 25rem;
  margin: .9rem 0 1rem;
  color: rgba(244,238,232,.72);
  font-size: .82rem;
  line-height: 1.65;
}
.footer-v2-logo {
  display: inline-flex;
  align-items: center;
  gap: .75rem;
  color: var(--ivory);
}
.footer-v2-logo:hover { color: var(--gold-light); }
.footer-v2-seal {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  font-family: var(--serif);
  font-size: 1.6rem;
  color: var(--gold-light);
  border: 1px solid rgba(201,164,93,.55);
  border-radius: 50%;
}
.footer-v2-logo strong {
  display: block;
  font-family: var(--serif);
  font-size: 1.4rem;
  line-height: 1.05;
}
.footer-v2-logo small {
  display: block;
  margin-top: .22rem;
  font-size: .58rem;
  letter-spacing: .11em;
  text-transform: uppercase;
  color: rgba(201,164,93,.72);
}
.footer-v2-pinterest {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: .65rem .9rem;
  font-size: .7rem;
  font-weight: 800;
  color: var(--white);
  background: #8E3153;
  border-radius: 999px;
  box-shadow: 0 8px 20px rgba(0,0,0,.14);
}
.footer-v2-pinterest:hover { color: var(--white); background: #6F2340; transform: translateY(-2px); }
.footer-v2-col h3 {
  margin: .2rem 0 .8rem;
  font-size: .7rem;
  font-family: var(--sans);
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ivory);
}
.footer-v2-col ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: .42rem;
}
.footer-v2-col a {
  font-size: .78rem;
  color: rgba(244,238,232,.72);
}
.footer-v2-col a:hover { color: var(--gold-light); }
.footer-v2-email {
  margin: .8rem 0 0;
  font-size: .72rem;
  color: rgba(201,164,93,.70);
  overflow-wrap: anywhere;
}
.footer-v2-bottom {
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.5rem 1.1rem;
  border-top: 1px solid rgba(201,164,93,.18);
}
.footer-v2-bottom p {
  margin: 0;
  font-size: .68rem;
  color: rgba(244,238,232,.50);
}

@media (max-width: 1024px) {
  .about-v2-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-v2-top { grid-template-columns: 1.2fr 1fr 1fr; }
  .footer-v2-legal { grid-column: 2 / 4; }
}

@media (max-width: 800px) {
  .about-v2-hero { grid-template-columns: 1fr; }
  .about-v2-media,
  .about-v2-media img { min-height: 330px; }
  .about-v2-copy h1 { max-width: 15ch; }
  .about-v2-story-grid { grid-template-columns: 1fr; }
  .about-v2-values { grid-template-columns: 1fr; }
  .about-v2-cta { align-items: flex-start; flex-direction: column; }
  .about-v2-cta-actions { justify-content: flex-start; }
  .newsletter-v2 .newsletter-inner { grid-template-columns: 1fr; gap: .9rem; }
  .footer-v2-top { grid-template-columns: 1fr 1fr; }
  .footer-v2-brand { grid-column: 1 / -1; }
  .footer-v2-legal { grid-column: auto; }
}

@media (max-width: 560px) {
  .about-v2 { padding-top: 1rem; }
  .about-v2-hero { padding: .85rem; border-radius: 16px; }
  .about-v2-media,
  .about-v2-media img { min-height: 280px; border-radius: 13px; }
  .about-v2-copy h1 { font-size: clamp(2.35rem, 12vw, 3.6rem); }
  .about-v2-actions > * { width: 100%; justify-content: center; }
  .about-v2-category-grid { grid-template-columns: 1fr; }
  .about-v2-story-content { padding: 1rem; }
  .about-v2-editor { align-items: flex-start; }
  .about-v2-cta { padding: 1.15rem; }
  .about-v2-cta-actions { width: 100%; }
  .about-v2-cta-actions > * { width: 100%; }
  .newsletter-v2 { padding: 1.1rem 1rem; }
  .newsletter-v2 .newsletter-form { grid-template-columns: 1fr; }
  .newsletter-v2 .newsletter-form button { width: 100%; }
  .footer-v2-top { grid-template-columns: 1fr; padding: 1.8rem 1rem 1.3rem; }
  .footer-v2-brand { grid-column: auto; }
  .footer-v2-bottom { flex-direction: column; padding: .9rem 1rem 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  .about-v2-category-grid > a,
  .footer-v2-pinterest { transition: none; }
  .about-v2-category-grid > a:hover,
  .footer-v2-pinterest:hover { transform: none; }
}


/* =====================================================
   PHASE 6: FINAL ACCESSIBILITY + MOBILE + UTILITY POLISH
   ===================================================== */
.skip-link {
  position: fixed; left: 1rem; top: 1rem; z-index: 10000; width: auto; height: auto;
  padding: .7rem 1rem; clip: auto; clip-path: none; overflow: visible; white-space: nowrap;
  color: var(--white); background: var(--olive-dark); border-radius: 999px;
  box-shadow: 0 10px 28px rgba(48,52,58,.24); transform: translateY(-180%); transition: transform .2s ease;
}
.skip-link:focus { transform: translateY(0); }
body.heaven-menu-open { overflow: hidden; }
button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible,
.nav-toggle:focus-visible, .header-quiz-btn:focus-visible, .top-pinterest-btn:focus-visible,
.share-btn-wide:focus-visible, .share-pin:focus-visible, .to-top:focus-visible {
  outline: 3px solid var(--gold); outline-offset: 3px;
}
.share-copy.copied { color: var(--white); background: var(--olive-dark); border-color: var(--olive-dark); }
.share-copy-icon { font-size: 1rem; line-height: 1; }
.search-page-head, .archive-page-head { max-width: 780px; margin: 0 auto 2rem; text-align: center; }
.search-page-head h1, .archive-page-head h1 { margin: .2rem 0 .55rem; font-size: clamp(2.3rem, 5vw, 4rem); }
.search-page-head p, .archive-page-head p { margin: 0; color: #687067; }
.not-found-page { max-width: 760px; margin: 0 auto; padding: clamp(3rem, 8vw, 7rem) 1.5rem; text-align: center; }
.not-found-code { margin: 0 0 .4rem; font-family: var(--serif); font-size: clamp(5rem, 15vw, 9rem); line-height: .9; color: var(--gold-light); }
.not-found-page h1 { margin: 0 0 .8rem; font-size: clamp(2.2rem, 5vw, 3.7rem); }
.not-found-page > p { max-width: 560px; margin: 0 auto 1.4rem; color: #687067; }
.not-found-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .7rem; }
.not-found-search { max-width: 520px; margin: 1.5rem auto 0; }
.not-found-search form { display: flex; gap: .55rem; }
.not-found-search input { min-width: 0; flex: 1; min-height: 46px; padding: .7rem 1rem; font: inherit; background: var(--white); border: 1px solid var(--border); border-radius: 999px; }
.not-found-search button { min-height: 46px; padding: .7rem 1rem; font: inherit; font-weight: 700; color: var(--white); background: var(--olive-dark); border: 0; border-radius: 999px; cursor: pointer; }
@media (hover: none) { .card:hover, .cat-card:hover, .edit-card:hover, .post-row:hover, .mini-row:hover, .logo-block:hover { transform: none; } }
@media (max-width: 560px) {
  .not-found-page { padding-inline: 1rem; }
  .not-found-actions > * { width: 100%; justify-content: center; }
  .not-found-search form { flex-direction: column; }
  .not-found-search button { width: 100%; }
  .to-top { right: max(.8rem, env(safe-area-inset-right)); bottom: max(.8rem, env(safe-area-inset-bottom)); }
}
@media (max-width: 390px) {
  .announcement-inner, .header-main, .site-main { padding-left: .85rem; padding-right: .85rem; }
  .site-title { font-size: 1.35rem; }
  .header-quiz-btn { padding-inline: .8rem; font-size: .68rem; }
  .entry-content p { font-size: 1rem; }
}


/* =====================================================
   PHASE 7.1 — VISUAL QA POLISH FROM DESKTOP + MOBILE TESTS
   ===================================================== */

/* Desktop dropdown: a little tighter so it feels editorial, not bulky. */
@media (min-width: 901px) {
  .site-nav .sub-menu { min-width: 230px; padding-block: .25rem; }
  .site-nav .sub-menu a { padding: .52rem .95rem; }
}

/* Homepage mobile: show the editorial copy BEFORE the image.
   The previous image-first order made the first phone screen look like an image-only page. */
@media (max-width: 760px) {
  .home-hero-copy { order: 1; padding: 1.45rem 1.2rem 1.55rem; }
  .home-hero-media { order: 2; min-height: 320px; background-position: center 28%; }
  .home-hero-copy h1 { font-size: clamp(2.55rem, 12vw, 3.65rem); line-height: .96; }
  .home-hero-lede { margin-top: .9rem; font-size: .96rem; line-height: 1.6; }
  .home-hero-actions { margin-top: 1.1rem; gap: .55rem; }
  .home-hero-trust { margin-top: 1rem; font-size: .68rem; }
  .home-hero-card { right: 1rem; bottom: 1rem; padding: .9rem 1rem; }
  .home-hero-card strong { font-size: 1.08rem; }
}
@media (max-width: 520px) {
  .home-hero { padding-top: .65rem; }
  .home-hero-media { min-height: 285px; }
  .home-hero-copy h1 { font-size: clamp(2.35rem, 11.5vw, 3.15rem); }
  .home-hero-actions { flex-direction: row; }
  .home-hero-actions .btn-primary,
  .home-hero-actions .btn-secondary { width: auto; flex: 1 1 0; padding-inline: .75rem; font-size: .66rem; }
  .home-hero-trust { display: none; }
}

/* Category hero: keep the full category title above the fold on shorter laptops. */
@media (min-width: 981px) {
  .cat-archive-hero { padding: 1.45rem 0 1.5rem; }
  .cat-archive-hero-grid { min-height: 360px; }
  .cat-archive-hero-copy { padding: 2.35rem 3rem; }
  .cat-archive-breadcrumb { margin-bottom: 1.05rem; }
  .cat-archive-hero-copy h1 { font-size: clamp(2.9rem, 4.8vw, 4.65rem); }
  .cat-archive-lede { margin-top: .9rem; line-height: 1.62; }
  .cat-archive-hero-meta { margin-top: 1rem; }
  .cat-archive-hero-media,
  .cat-archive-hero-img,
  .cat-archive-hero-fallback { min-height: 360px; }
}
@media (min-width: 981px) and (max-height: 720px) {
  .cat-archive-hero-grid,
  .cat-archive-hero-media,
  .cat-archive-hero-img,
  .cat-archive-hero-fallback { min-height: 330px; }
  .cat-archive-hero-copy { padding-block: 1.8rem; }
  .cat-archive-hero-copy h1 { font-size: clamp(2.75rem, 4.3vw, 4.2rem); }
}
@media (max-width: 700px) {
  .cat-archive-hero-copy { padding: 1.4rem 1.25rem 1.35rem; }
  .cat-archive-breadcrumb { margin-bottom: .8rem; }
  .cat-archive-hero-copy h1 { font-size: clamp(2.45rem, 11.7vw, 3.45rem); line-height: .96; }
  .cat-archive-lede { font-size: .96rem; line-height: 1.58; }
  .cat-archive-hero-meta { margin-top: .85rem; font-size: .76rem; }
  .cat-archive-hero-media,
  .cat-archive-hero-img,
  .cat-archive-hero-fallback { min-height: 235px; }
}

/* Article page: compact the share rail on desktop, and keep every mobile icon visible. */
.article-v2-share-top .save-share { width: max-content; max-width: 100%; }
@media (max-width: 640px) {
  .article-v2-share-top .save-share { width: 100%; }
  .article-v2-share-top .save-share-buttons { flex-wrap: nowrap; }
  .article-v2-share-top .share-pin,
  .article-v2-share-top .share-btn-wide {
    width: 42px; height: 42px; min-width: 42px; padding: 0; justify-content: center;
  }
  .article-v2-share-top .share-copy .share-copy-icon { display: inline-flex !important; }
  .article-v2-share-top .share-copy .share-copy-label { display: none !important; }
  .to-top { right: .65rem; bottom: .75rem; padding: .55rem .7rem; font-size: .62rem; opacity: .92; }
}

/* Finder intro: reduce decorative height so users reach the first question faster. */
.fmw-v2-shell { padding-top: clamp(1.25rem, 3vw, 2.4rem); }
.fmw-v2-intro-grid { gap: 1.2rem; margin-bottom: .9rem; }
.fmw-v2-intro-copy { padding: clamp(1.35rem, 2.8vw, 2.15rem); }
.fmw-v2-intro-copy h1 { font-size: clamp(2.8rem, 5vw, 4.25rem); }
.fmw-v2-lede { margin-top: .75rem; line-height: 1.62; }
.fmw-v2-trust-row { margin-top: .85rem; }
.fmw-v2-intro-card { min-height: 225px; padding: 1.2rem; }
.fmw-v2-intro-card p { font-size: 1.25rem; }
.fmw-v2-ring-mark { font-size: 2.6rem; }
.fmw-v2-quiz-card { padding: clamp(.9rem, 2vw, 1.3rem); }
.fmw-v2-progress-wrap { margin-bottom: .85rem; }

@media (max-width: 600px) {
  .fmw-v2-shell,
  .fmw-v2-results-shell { padding-top: .75rem; }
  .fmw-v2-intro-grid { margin-bottom: .65rem; }
  .fmw-v2-intro-copy { padding: 1rem; }
  .fmw-v2-intro-copy h1,
  .fmw-v2-results-hero h1 { font-size: clamp(2.2rem, 10.8vw, 2.95rem); line-height: .97; }
  .fmw-v2-lede { margin-top: .65rem; font-size: .9rem; line-height: 1.55; }
  .fmw-v2-trust-row { gap: .35rem; margin-top: .7rem; }
  .fmw-v2-trust-row span { padding: .3rem .52rem; font-size: .63rem; }
  .fmw-v2-quiz-card { padding: .8rem; }
  .fmw-v2-quiz-card .fmw-question { font-size: clamp(1.75rem, 8.5vw, 2.35rem); }
  .fmw-v2-quiz-card .fmw-hint { margin-bottom: .8rem; }
}

/* Testing while logged in: WordPress' black admin bar is not part of the public design. */
@media (max-width: 782px) {
  body.admin-bar .site-header { scroll-margin-top: 46px; }
}


/* =====================================================
   PHASE 7.2 — MOBILE ARTICLE SIDEBAR ACCESS
   Keep desktop sidebar in place, but on phones/tablets move
   the same boxes directly below the TOC as a swipeable rail.
   ===================================================== */
@media (max-width: 960px) {
  .article-v2-main > .article-v2-sidebar {
    display: flex;
    gap: .75rem;
    margin: .9rem 0 1.35rem;
    padding: .15rem .05rem .45rem;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
  }

  .article-v2-main > .article-v2-sidebar::before {
    content: "Explore More";
    flex: 0 0 auto;
    align-self: stretch;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 92px;
    padding: .8rem .7rem;
    font-family: var(--sans);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    text-align: center;
    color: var(--gold-dark);
    background: var(--cream);
    border: 1px solid var(--border);
    border-radius: 14px;
    scroll-snap-align: start;
  }

  .article-v2-main > .article-v2-sidebar > .article-v2-sidebox,
  .article-v2-main > .article-v2-sidebar > .sidebar-box {
    flex: 0 0 min(82vw, 310px);
    margin: 0;
    padding: 1rem;
    position: static;
    min-height: 0;
    scroll-snap-align: start;
    box-shadow: none;
  }

  .article-v2-main > .article-v2-sidebar .article-v2-searchbox { order: 3; }
  .article-v2-main > .article-v2-sidebar > .article-v2-sidebox:not(.article-v2-searchbox):not(.article-v2-finder-box):not(.article-v2-editor-mini):not(.article-v2-pinbox) { order: 1; }
  .article-v2-main > .article-v2-sidebar .article-v2-finder-box { order: 2; }
  .article-v2-main > .article-v2-sidebar .article-v2-editor-mini { order: 4; }
  .article-v2-main > .article-v2-sidebar .article-v2-pinbox { order: 5; }

  .article-v2-main > .article-v2-sidebar h2 {
    font-size: 1.25rem;
    line-height: 1.08;
  }

  .article-v2-main > .article-v2-sidebar .article-v2-small-label {
    margin-bottom: .35rem;
    font-size: .62rem;
  }

  .article-v2-main > .article-v2-sidebar .article-v2-topic-links a {
    padding-block: .48rem;
    font-size: .82rem;
  }

  .article-v2-main > .article-v2-sidebar .article-v2-primary-btn,
  .article-v2-main > .article-v2-sidebar .article-v2-pinterest-btn {
    width: 100%;
    justify-content: center;
  }

  .article-v2-main > .article-v2-sidebar .article-v2-searchbox form {
    grid-template-columns: 1fr auto;
  }
}

@media (max-width: 520px) {
  .article-v2-main > .article-v2-sidebar {
    margin-top: .75rem;
    margin-bottom: 1.1rem;
    gap: .6rem;
  }

  .article-v2-main > .article-v2-sidebar::before {
    min-width: 82px;
    border-radius: 12px;
  }

  .article-v2-main > .article-v2-sidebar > .article-v2-sidebox,
  .article-v2-main > .article-v2-sidebar > .sidebar-box {
    flex-basis: min(84vw, 285px);
    border-radius: 14px;
  }
}


/* =====================================================
   PHASE 7.3 — MOBILE ARTICLE READING FLOW
   Article content comes first. Supporting sidebar cards move
   below the full article + save card, so readers are never
   interrupted before the article begins.
   ===================================================== */
@media (max-width: 960px) {
  .article-v2-main > .article-v2-sidebar {
    margin-top: 1.25rem;
    margin-bottom: 1.45rem;
    padding-top: .15rem;
    border-top: 1px solid var(--border);
  }

  .article-v2-main > .article-v2-sidebar::before {
    content: "Keep Exploring";
    background: var(--ivory);
  }
}

@media (max-width: 520px) {
  .article-v2-main > .article-v2-sidebar {
    margin-top: 1rem;
    margin-bottom: 1.25rem;
    padding-top: .75rem;
  }
}


/* =====================================================
   PHASE 8.1 — HEAVEN WEDDING BRAND COLOR REFRESH
   Ivory + Blush + Dusty Blue + Berry + Champagne Gold + Charcoal
   ===================================================== */

/* Typography hierarchy */
body { background: var(--ivory); color: var(--charcoal); }
h1, h2 { color: var(--berry); }
h3 { color: var(--charcoal); }
p, li { color: var(--charcoal); }
a { color: var(--dusty-blue); }
a:hover { color: var(--berry); }
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline-color: var(--berry);
}

/* Header + navigation */
.announcement-bar { background: var(--blush-soft); border-color: rgba(142,49,83,.16); }
.announcement-text,
.announcement-email { color: var(--charcoal); }
.site-header { background: rgba(255,249,245,.97); border-color: rgba(142,49,83,.15); }
.logo-block { color: var(--charcoal); }
.logo-block:hover { color: var(--berry); background: rgba(232,200,199,.26); }
.site-title { color: inherit; }
.site-tagline { color: var(--dusty-blue); }
.site-nav a { color: var(--charcoal); }
.site-nav a:hover,
.site-nav .current-menu-item > a,
.site-nav .current-menu-ancestor > a,
.site-nav .current-menu-parent > a { color: var(--berry); }
.site-nav a::after { background: var(--gold); }
.site-nav .sub-menu { background: var(--ivory); border-color: rgba(142,49,83,.18); border-top-color: var(--berry); }
.site-nav .sub-menu a:hover { color: var(--berry); background: var(--blush-soft); }
.nav-toggle { color: var(--charcoal); border-color: rgba(142,49,83,.20); }
.nav-toggle:hover { color: var(--berry); border-color: var(--berry); background: var(--blush-soft); }
.header-find-btn { color: var(--berry); border-color: var(--berry); }
.header-find-btn:hover { color: var(--white); background: var(--berry); }
.header-pinterest-btn,
.top-pinterest-btn { background: var(--berry) !important; border-color: var(--berry) !important; }
.header-pinterest-btn:hover,
.top-pinterest-btn:hover { background: var(--charcoal) !important; border-color: var(--charcoal) !important; }

/* Hero + premium accents */
.home-hero,
.hero-v2,
.category-v2-hero,
.about-v2-hero,
.fmw-v2-hero { border-color: rgba(142,49,83,.16); }
.home-hero-copy,
.hero-v2-copy,
.category-v2-copy,
.about-v2-copy,
.fmw-v2-copy { background: var(--blush-soft); }
.home-hero h1,
.hero-title,
.hero-v2 h1,
.category-v2-title,
.about-v2-title,
.fmw-v2-title,
.entry-title { color: var(--berry); }
.home-hero h1 em,
.hero-v2 h1 em,
.fmw-v2-title em { color: var(--gold); }
.home-kicker,
.eyebrow,
.article-v2-small-label,
.fmw-v2-kicker,
.category-v2-kicker,
.about-v2-kicker { color: var(--dusty-blue); }
.eyebrow-line,
.home-kicker::before { background: var(--gold); }

/* Primary / secondary actions */
.hero-cta,
.read-more-btn,
.newsletter-form button,
.fmw-next,
.btn-primary,
.btn-gold,
.article-v2-cta,
.fmw-v2-primary,
.category-v2-primary {
  color: var(--white) !important;
  background: var(--berry) !important;
  border-color: var(--berry) !important;
}
.hero-cta:hover,
.read-more-btn:hover,
.newsletter-form button:hover,
.fmw-next:hover:not(:disabled),
.btn-primary:hover,
.btn-gold:hover,
.article-v2-cta:hover,
.fmw-v2-primary:hover,
.category-v2-primary:hover {
  color: var(--white) !important;
  background: var(--charcoal) !important;
  border-color: var(--charcoal) !important;
}
.explore-more-btn,
.btn-outline,
.hero-secondary,
.category-v2-secondary,
.fmw-back {
  color: var(--dusty-blue) !important;
  border-color: var(--dusty-blue) !important;
}
.explore-more-btn:hover,
.btn-outline:hover,
.hero-secondary:hover,
.category-v2-secondary:hover {
  color: var(--white) !important;
  background: var(--dusty-blue) !important;
}

/* Category discovery */
.category-strip,
.home-categories,
.categories { background: var(--ivory); }
.cat-item,
.home-category-card,
.cat-card,
.category-v2-card,
.archive-v2-card {
  border-color: rgba(142,49,83,.16);
}
.cat-icon,
.home-category-icon,
.about-v2-category-icon { color: var(--dusty-blue); }
.cat-item:hover,
.cat-item:hover .cat-icon,
.home-category-card:hover .home-category-icon { color: var(--berry); }
.cat-card-name,
.home-category-card h3,
.category-v2-card h3 { color: var(--charcoal); }
.cat-card-link,
.home-category-card .home-card-link { color: var(--berry); border-color: var(--berry); }

/* Cards + hover light */
.card,
.post-row,
.edit-card,
.home-feature-card,
.article-v2-sidebox,
.sidebar-box,
.fmw-v2-result-card {
  background: var(--white);
  border-color: rgba(142,49,83,.16);
}
.card:hover,
.post-row:hover,
.edit-card:hover,
.home-feature-card:hover,
.home-feature-card:focus-within,
.fmw-v2-result-card:hover {
  border-color: rgba(142,49,83,.32);
  box-shadow: 0 16px 34px rgba(142,49,83,.10), 0 0 26px rgba(232,200,199,.24);
}
.home-feature-card::after {
  background: radial-gradient(circle at 50% 0%, rgba(232,200,199,.42), transparent 54%);
}

/* Finder / editorial brand moments */
.home-finder,
.about-v2-cta,
.fmw-v2-art-card {
  color: var(--ivory);
  background:
    radial-gradient(circle at 88% 12%, rgba(201,164,93,.18), transparent 28%),
    linear-gradient(135deg, var(--charcoal) 0%, var(--berry) 100%);
  border-color: rgba(201,164,93,.30);
}
.home-finder h2,
.home-finder-step strong,
.about-v2-cta h2,
.fmw-v2-art-card strong { color: var(--ivory); }
.home-finder-step { border-color: rgba(232,200,199,.30); background: rgba(255,249,245,.065); }
.home-finder-step:hover { border-color: rgba(201,164,93,.56); background: rgba(255,249,245,.12); }
.home-finder-step span { color: var(--berry); background: var(--blush); }
.home-finder-step b { color: var(--gold); }

/* Article experience */
.entry-content h2 { color: var(--berry); }
.entry-content h3 { color: var(--charcoal); }
.entry-content a { color: var(--dusty-blue); text-decoration-color: var(--gold); }
.entry-content a:hover { color: var(--berry); }
.entry-content blockquote { border-left-color: var(--gold); color: var(--berry); }
.toc,
.article-v2-toc { background: var(--blush-soft); border-color: rgba(142,49,83,.16); }
.save-share,
.article-v2-save-card { background: var(--white); border-color: rgba(142,49,83,.16); }
.share-pin,
.share-btn-wide { color: var(--charcoal); border-color: rgba(120,150,173,.32); }
.share-pin:hover,
.share-btn-wide:hover { color: var(--berry); border-color: var(--berry); background: var(--blush-soft); }
.author-box,
.article-v2-author { background: var(--blush-soft); border-color: rgba(142,49,83,.18); }

/* Quiz */
.fmw,
.fmw-v2-quiz-card { background: var(--white); border-color: rgba(142,49,83,.16); }
.fmw-option,
.fmw-v2-quiz-card .fmw-option { color: var(--charcoal); background: var(--ivory); border-color: rgba(120,150,173,.28); }
.fmw-option:hover,
.fmw-v2-quiz-card .fmw-option:hover { border-color: var(--dusty-blue); background: rgba(232,200,199,.22); }
.fmw-option[aria-pressed="true"],
.fmw-v2-quiz-card .fmw-option[aria-pressed="true"] { color: var(--white); background: var(--berry); border-color: var(--berry); }
.fmw-progress-bar { background: linear-gradient(90deg, var(--dusty-blue), var(--berry)); }
.fmw-v2-reasons span { color: var(--berry); background: var(--blush-soft); }

/* Newsletter + footer */
.newsletter,
.newsletter-redesign,
.newsletter-v2 {
  background:
    radial-gradient(circle at 82% 10%, rgba(201,164,93,.16), transparent 30%),
    var(--berry);
}
.newsletter h2,
.newsletter-redesign h2,
.newsletter-v2 h2 { color: var(--ivory); }
.newsletter-intro,
.newsletter-note { color: rgba(255,249,245,.78); }
.footer-v2,
.site-footer {
  background:
    radial-gradient(circle at 12% 0%, rgba(201,164,93,.11), transparent 24%),
    var(--charcoal);
}
.footer-v2-logo:hover,
.footer-col a:hover { color: var(--gold); }
.footer-v2-seal { color: var(--gold); border-color: rgba(201,164,93,.58); }
.footer-v2-pinterest,
.pinterest-btn { color: var(--white); background: var(--berry); border-color: var(--berry); }
.footer-v2-pinterest:hover,
.pinterest-btn:hover { color: var(--white); background: #6F2340; border-color: #6F2340; }

/* Small decorative controls */
.to-top { color: var(--white); background: var(--berry); }
.to-top:hover { background: var(--charcoal); }
.pagination .current,
.page-numbers.current { color: var(--white); background: var(--berry); border-color: var(--berry); }

/* Mobile uses the same palette with softer surfaces */
@media (max-width: 900px) {
  .site-nav { background: var(--ivory); }
  .site-nav > ul > li { border-color: rgba(142,49,83,.12); }
  .site-nav .sub-menu { background: var(--blush-soft); }
  .mobile-article-explore .sidebar-box { background: var(--white); }
}

/* =====================================================
   PHASE 8.2 — HOMEPAGE INTERACTION + BRAND POLISH
   Requested hover light, hero CTA, category-nav fix,
   finder glow, 8-post latest grid, Pinterest polish,
   and new branded logo mark.
   ===================================================== */

/* 1 — soft light from behind on cards and buttons */
.home-category-card,
.home-feature-card,
.home-latest-card,
.category-v2-card,
.archive-v2-card,
.fmw-v2-result-card,
.article-v2-sidebox,
.sidebar-box,
.home-editorial,
.home-pinterest {
  transition:
    transform .24s ease,
    box-shadow .24s ease,
    border-color .24s ease,
    background-color .24s ease;
}

.home-category-card:hover,
.home-category-card:focus-within,
.home-feature-card:hover,
.home-feature-card:focus-within,
.home-latest-card:hover,
.home-latest-card:focus-within,
.category-v2-card:hover,
.category-v2-card:focus-within,
.archive-v2-card:hover,
.archive-v2-card:focus-within,
.fmw-v2-result-card:hover,
.fmw-v2-result-card:focus-within,
.article-v2-sidebox:hover,
.article-v2-sidebox:focus-within,
.sidebar-box:hover,
.sidebar-box:focus-within,
.home-editorial:hover,
.home-editorial:focus-within,
.home-pinterest:hover,
.home-pinterest:focus-within {
  transform: translateY(-3px);
  border-color: rgba(142,49,83,.30);
  box-shadow:
    0 15px 32px rgba(48,52,58,.09),
    0 0 28px rgba(232,200,199,.30),
    0 0 0 1px rgba(201,164,93,.10);
}

.btn-primary,
.btn-secondary,
.btn-gold,
.pinterest-btn,
.top-pinterest-btn,
.header-quiz-btn,
.header-find-btn,
.article-v2-cta,
.fmw-v2-primary,
.category-v2-primary,
.category-v2-secondary,
.explore-more-btn,
.read-more-btn,
.newsletter-form button,
.home-hero-card-btn {
  transition:
    transform .2s ease,
    box-shadow .24s ease,
    background-color .2s ease,
    border-color .2s ease,
    color .2s ease;
}

.btn-primary:hover,
.btn-primary:focus-visible,
.btn-secondary:hover,
.btn-secondary:focus-visible,
.btn-gold:hover,
.btn-gold:focus-visible,
.pinterest-btn:hover,
.pinterest-btn:focus-visible,
.top-pinterest-btn:hover,
.top-pinterest-btn:focus-visible,
.header-quiz-btn:hover,
.header-quiz-btn:focus-visible,
.header-find-btn:hover,
.header-find-btn:focus-visible,
.article-v2-cta:hover,
.article-v2-cta:focus-visible,
.fmw-v2-primary:hover,
.fmw-v2-primary:focus-visible,
.category-v2-primary:hover,
.category-v2-primary:focus-visible,
.category-v2-secondary:hover,
.category-v2-secondary:focus-visible,
.explore-more-btn:hover,
.explore-more-btn:focus-visible,
.read-more-btn:hover,
.read-more-btn:focus-visible,
.newsletter-form button:hover,
.newsletter-form button:focus-visible,
.home-hero-card-btn:hover,
.home-hero-card-btn:focus-visible {
  transform: translateY(-2px);
  box-shadow:
    0 10px 24px rgba(142,49,83,.18),
    0 0 24px rgba(232,200,199,.42),
    0 0 0 1px rgba(201,164,93,.18);
}

/* 2 — useful CTA inside the hero-image card */
.home-hero-card {
  min-width: min(292px, calc(100% - 2rem));
}
.home-hero-card-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .42rem;
  width: fit-content;
  min-height: 34px;
  margin-top: .7rem;
  padding: .48rem .72rem;
  border: 1px solid var(--berry);
  border-radius: 999px;
  color: #fff !important;
  background: var(--berry);
  font-family: var(--sans);
  font-size: .64rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.home-hero-card-btn:hover,
.home-hero-card-btn:focus-visible {
  color: #fff !important;
  background: var(--charcoal);
  border-color: var(--charcoal);
}

/* 3 — category strip: never hide Engagement & Rings on the left */
.home-category-nav {
  overflow: hidden;
}
.home-category-nav-inner {
  justify-content: flex-start;
  max-width: 1380px;
  overflow-x: auto;
  scroll-padding-inline: 1.25rem;
  scroll-snap-type: x proximity;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}
.home-category-nav-inner > a {
  scroll-snap-align: start;
}
.home-category-nav-inner > a:first-child {
  margin-left: 0;
}
@media (min-width: 1500px) {
  .home-category-nav-inner {
    justify-content: center;
  }
}

/* 4 — gentle always-on glow for the personalized finder */
.home-finder {
  animation: heavenFinderGlow 4.4s ease-in-out infinite;
}
@keyframes heavenFinderGlow {
  0%, 100% {
    box-shadow:
      0 16px 36px rgba(48,52,58,.12),
      0 0 0 rgba(232,200,199,0),
      inset 0 1px 0 rgba(255,255,255,.05);
  }
  50% {
    box-shadow:
      0 18px 40px rgba(48,52,58,.15),
      0 0 34px rgba(232,200,199,.26),
      0 0 54px rgba(201,164,93,.10),
      inset 0 1px 0 rgba(255,255,255,.07);
  }
}

/* 5 — Latest Wedding Ideas: 8 compact articles, 4 x 2 on desktop */
.home-latest-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .9rem;
}
.home-latest-card {
  border-radius: 11px;
  box-shadow: 0 4px 14px rgba(48,52,58,.025);
}
.home-latest-card-media {
  aspect-ratio: 16 / 10;
}
.home-latest-card-body {
  padding: .82rem .9rem .95rem;
}
.home-latest-card h3 {
  font-size: 1.14rem;
  line-height: 1.2;
}
.home-latest-card p {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  margin: .42rem 0 .55rem;
  font-size: .75rem;
  line-height: 1.45;
}
.home-latest-card .home-card-label {
  margin-bottom: .34rem;
  font-size: .58rem;
}
.home-latest-card .home-card-meta {
  margin-top: auto;
  font-size: .60rem;
}

/* 6 — stronger Pinterest inspiration block + attraction light */
.home-pinterest {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-left: clamp(5.2rem, 8vw, 7rem);
  border: 1px solid rgba(142,49,83,.18);
  background:
    radial-gradient(circle at 14% 0%, rgba(232,200,199,.42), transparent 30%),
    linear-gradient(135deg, #fff 0%, rgba(255,249,245,.98) 62%, rgba(232,200,199,.23) 100%);
  box-shadow: 0 12px 30px rgba(48,52,58,.06), 0 0 26px rgba(232,200,199,.16);
}
.home-pinterest::before {
  content: "P";
  position: absolute;
  left: 1.35rem;
  top: 50%;
  z-index: 0;
  display: grid;
  place-items: center;
  width: 3.15rem;
  height: 3.15rem;
  border-radius: 50%;
  transform: translateY(-50%);
  color: #fff;
  background: var(--berry);
  border: 2px solid rgba(201,164,93,.55);
  box-shadow: 0 8px 20px rgba(142,49,83,.18), 0 0 24px rgba(232,200,199,.34);
  font-family: Georgia, serif;
  font-size: 1.45rem;
  font-weight: 700;
}
.home-pinterest > * {
  position: relative;
  z-index: 1;
}
.home-pinterest .pinterest-btn {
  position: relative;
  color: #fff !important;
  background: var(--berry) !important;
  border-color: var(--berry) !important;
  animation: heavenPinterestPulse 3.1s ease-in-out infinite;
}
@keyframes heavenPinterestPulse {
  0%, 100% {
    box-shadow: 0 8px 18px rgba(142,49,83,.16), 0 0 0 rgba(232,200,199,0);
  }
  50% {
    box-shadow: 0 10px 24px rgba(142,49,83,.24), 0 0 25px rgba(232,200,199,.48), 0 0 42px rgba(201,164,93,.14);
  }
}

/* 7 — new branded H + diamond logo mark */
.logo-block {
  gap: .72rem;
  padding: .38rem .52rem;
}
.logo-icon.logo-icon-branded {
  width: 3.2rem;
  height: 3.2rem;
  padding: .23rem;
  color: var(--gold);
  background:
    radial-gradient(circle at 30% 22%, rgba(255,255,255,.11), transparent 27%),
    linear-gradient(145deg, #7a2948 0%, var(--berry) 58%, #64213b 100%);
  border: 1px solid rgba(201,164,93,.76);
  box-shadow:
    inset 0 0 0 3px rgba(255,249,245,.08),
    0 7px 18px rgba(142,49,83,.18),
    0 0 0 1px rgba(201,164,93,.10);
}
.logo-icon-branded svg {
  width: 100%;
  height: 100%;
  overflow: visible;
}
.logo-icon-branded .logo-mark-ring {
  fill: none;
  stroke: rgba(255,249,245,.50);
  stroke-width: 1.15;
}
.logo-icon-branded .logo-mark-diamond {
  fill: rgba(201,164,93,.12);
  stroke: var(--gold);
  stroke-width: 1.5;
  stroke-linejoin: round;
}
.logo-icon-branded .logo-mark-diamond-lines,
.logo-icon-branded .logo-mark-sparkle {
  fill: none;
  stroke: var(--gold);
  stroke-width: 1.05;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.logo-icon-branded .logo-mark-h {
  fill: none;
  stroke: #FFF9F5;
  stroke-width: 2.25;
  stroke-linecap: round;
}
.logo-block:hover .logo-icon.logo-icon-branded,
.logo-block:focus-visible .logo-icon.logo-icon-branded {
  background:
    radial-gradient(circle at 30% 22%, rgba(255,255,255,.12), transparent 27%),
    linear-gradient(145deg, #66859c 0%, var(--dusty-blue) 100%);
  transform: translateY(-1px) rotate(-3deg) scale(1.035);
  box-shadow:
    inset 0 0 0 3px rgba(255,249,245,.09),
    0 9px 22px rgba(120,150,173,.22),
    0 0 26px rgba(232,200,199,.32);
}
.site-title {
  font-weight: 600;
  letter-spacing: -.015em;
}
.site-tagline {
  letter-spacing: .13em;
}

@media (max-width: 1100px) {
  .home-latest-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .home-category-nav-inner {
    justify-content: flex-start;
    padding-inline: .8rem;
  }
  .home-hero-card {
    min-width: 0;
  }
  .home-hero-card-btn {
    min-height: 32px;
    font-size: .60rem;
  }
  .home-latest-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
  }
  .home-latest-card-body {
    padding: .7rem;
  }
  .home-latest-card h3 {
    font-size: 1rem;
  }
  .home-latest-card p {
    display: none;
  }
  .home-pinterest {
    padding: 1rem 1rem 1rem 4.75rem;
  }
  .home-pinterest::before {
    left: 1rem;
    width: 2.8rem;
    height: 2.8rem;
  }
}

@media (max-width: 520px) {
  .home-pinterest {
    padding: 4.85rem 1rem 1rem;
  }
  .home-pinterest::before {
    top: 1rem;
    left: 1rem;
    transform: none;
  }
}

@media (max-width: 420px) {
  .home-latest-grid {
    grid-template-columns: 1fr;
  }
  .home-latest-card p {
    display: -webkit-box;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-finder,
  .home-pinterest .pinterest-btn {
    animation: none !important;
  }
  .home-category-card,
  .home-feature-card,
  .home-latest-card,
  .category-v2-card,
  .archive-v2-card,
  .fmw-v2-result-card,
  .article-v2-sidebox,
  .sidebar-box,
  .home-editorial,
  .home-pinterest,
  .btn-primary,
  .btn-secondary,
  .btn-gold,
  .pinterest-btn,
  .top-pinterest-btn,
  .header-quiz-btn,
  .header-find-btn,
  .article-v2-cta,
  .fmw-v2-primary,
  .category-v2-primary,
  .category-v2-secondary,
  .explore-more-btn,
  .read-more-btn,
  .newsletter-form button,
  .home-hero-card-btn {
    transition: none !important;
  }
}

/* ==========================================================
   PHASE 8.3 — LATEST WEDDING IDEAS HORIZONTAL ROW CARDS
   User-requested correction: horizontal article cards, not grid tiles.
   ========================================================== */
.home-latest-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .8rem 1rem;
}

.home-latest-card {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  min-height: 132px;
  overflow: hidden;
  border: 1px solid rgba(142,49,83,.12);
  border-radius: 12px;
  background: rgba(255,249,245,.96);
  box-shadow: 0 4px 14px rgba(48,52,58,.025);
  transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}

.home-latest-card:hover,
.home-latest-card:focus-within {
  transform: translateY(-2px);
  border-color: rgba(142,49,83,.26);
  box-shadow:
    0 10px 24px rgba(48,52,58,.08),
    0 0 22px rgba(232,200,199,.32),
    0 0 30px rgba(201,164,93,.08);
}

.home-latest-card-media {
  width: 100%;
  height: 100%;
  min-height: 132px;
  aspect-ratio: auto;
  overflow: hidden;
  border-radius: 0;
}

.home-latest-card-media img,
.home-latest-card-media .home-feature-placeholder {
  width: 100%;
  height: 100%;
  min-height: 132px;
  object-fit: cover;
}

.home-latest-card-body {
  min-width: 0;
  padding: .76rem .82rem .72rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.home-latest-card .home-card-label {
  margin: 0 0 .28rem;
  font-size: .56rem;
  line-height: 1.2;
}

.home-latest-card h3 {
  margin: 0;
  font-size: 1.08rem;
  line-height: 1.18;
}

.home-latest-card p {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  margin: .32rem 0 .42rem;
  font-size: .72rem;
  line-height: 1.42;
}

.home-latest-card .home-card-meta {
  margin-top: auto;
  font-size: .58rem;
}

@media (max-width: 900px) {
  .home-latest-grid {
    grid-template-columns: 1fr;
  }
  .home-latest-card {
    grid-template-columns: 145px minmax(0, 1fr);
  }
}

@media (max-width: 560px) {
  .home-latest-grid {
    gap: .62rem;
  }
  .home-latest-card {
    grid-template-columns: 104px minmax(0, 1fr);
    min-height: 106px;
    border-radius: 10px;
  }
  .home-latest-card-media,
  .home-latest-card-media img,
  .home-latest-card-media .home-feature-placeholder {
    min-height: 106px;
  }
  .home-latest-card-body {
    padding: .62rem .66rem;
  }
  .home-latest-card h3 {
    font-size: .98rem;
    line-height: 1.18;
  }
  .home-latest-card p {
    display: none;
  }
  .home-latest-card .home-card-meta {
    font-size: .55rem;
  }
}

/* ==========================================================
   PHASE 8.4 — CATEGORY LANDING PAGE + LIVE PINTEREST + RING TOOL
   ========================================================== */

/* Smaller hero that fits more comfortably in the first screen. */
.cat-archive-v84 .cat-archive-hero {
  padding: 1.15rem 0 1.35rem;
}
.cat-archive-v84 .cat-archive-hero-grid {
  grid-template-columns: minmax(0, .93fr) minmax(0, 1.07fr);
  min-height: 315px;
}
.cat-archive-v84 .cat-archive-hero-copy {
  padding: 1.55rem 2.15rem;
}
.cat-archive-v84 .cat-archive-breadcrumb {
  margin-bottom: .7rem;
}
.cat-archive-v84 .cat-archive-hero-copy h1 {
  font-size: clamp(2.7rem, 4.4vw, 4rem);
  line-height: .95;
}
.cat-archive-v84 .cat-archive-lede {
  margin-top: .72rem;
  max-width: 42rem;
  font-size: .92rem;
  line-height: 1.55;
}
.cat-archive-detail {
  margin: .6rem 0 0;
  max-width: 43rem;
  color: rgba(48,52,58,.74);
  font-size: .79rem;
  line-height: 1.52;
}
.cat-hero-topics {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .35rem .55rem;
  margin-top: .75rem;
}
.cat-hero-topics > span {
  margin-right: .1rem;
  color: var(--berry);
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.cat-hero-topics a {
  position: relative;
  color: var(--charcoal);
  font-size: .66rem;
  font-weight: 600;
}
.cat-hero-topics a + a::before {
  content: '•';
  margin-right: .55rem;
  color: var(--champagne);
}
.cat-hero-topics a:hover { color: var(--berry); }
.cat-archive-v84 .cat-archive-hero-meta {
  margin-top: .75rem;
  font-size: .7rem;
}
.cat-archive-v84 .cat-archive-hero-media,
.cat-archive-v84 .cat-archive-hero-img,
.cat-archive-v84 .cat-archive-hero-fallback {
  min-height: 315px;
  max-height: 315px;
}

/* Slightly smaller Editor's Pick while keeping the premium split-card feel. */
.cat-archive-v84 .cat-featured {
  margin-bottom: 3.5rem;
}
.cat-archive-v84 .cat-featured-card {
  grid-template-columns: minmax(0, 1.12fr) minmax(300px, .88fr);
  max-width: 1080px;
}
.cat-archive-v84 .cat-featured-image,
.cat-archive-v84 .cat-featured-image img {
  min-height: 310px;
  max-height: 310px;
}
.cat-archive-v84 .cat-featured-body {
  padding: 1.55rem 1.8rem;
}
.cat-archive-v84 .cat-featured-body h3 {
  font-size: clamp(1.75rem, 2.75vw, 2.35rem);
  line-height: 1.04;
}
.cat-archive-v84 .cat-featured-excerpt {
  margin-top: .7rem;
  font-size: .84rem;
  line-height: 1.55;
}
.cat-archive-v84 .cat-featured-meta { margin-top: .7rem; }
.cat-archive-v84 .cat-primary-btn {
  min-height: 40px;
  margin-top: .95rem;
  padding: .66rem 1rem;
  background: var(--berry);
}

/* Latest stories: one article per horizontal line + live Pinterest sidebar. */
.cat-latest-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.5rem;
  align-items: start;
}
.cat-latest-layout.has-pinterest {
  grid-template-columns: minmax(0, 1fr) 340px;
}
.cat-archive-list {
  display: grid;
  gap: .82rem;
}
.cat-archive-row {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  min-height: 154px;
  overflow: hidden;
  border: 1px solid rgba(142,49,83,.12);
  border-radius: 14px;
  background: rgba(255,249,245,.98);
  box-shadow: 0 7px 22px rgba(48,52,58,.035);
  transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}
.cat-archive-row:hover,
.cat-archive-row:focus-within {
  transform: translateY(-2px);
  border-color: rgba(142,49,83,.28);
  box-shadow:
    0 12px 28px rgba(48,52,58,.08),
    0 0 24px rgba(232,200,199,.28),
    0 0 32px rgba(201,164,93,.08);
}
.cat-archive-row-image {
  display: block;
  min-height: 154px;
  overflow: hidden;
  background: var(--blush);
}
.cat-archive-row-image img,
.cat-archive-row-image .cat-card-image-fallback {
  width: 100%;
  height: 100%;
  min-height: 154px;
  object-fit: cover;
  transition: transform .35s ease;
}
.cat-archive-row:hover .cat-archive-row-image img { transform: scale(1.025); }
.cat-archive-row-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: .9rem 1rem;
}
.cat-archive-row-body .cat-archive-card-tag { margin-bottom: .3rem; }
.cat-archive-row-body h3 {
  margin: 0;
  font-size: 1.34rem;
  line-height: 1.12;
}
.cat-archive-row-body h3 a { color: var(--charcoal); }
.cat-archive-row-body h3 a:hover { color: var(--berry); }
.cat-archive-row-body .cat-archive-card-excerpt {
  margin: .45rem 0 0;
  font-size: .78rem;
  line-height: 1.45;
}
.cat-archive-row-body .cat-archive-card-meta {
  margin-top: .48rem;
  font-size: .65rem;
}
.cat-row-read {
  align-self: flex-start;
  margin-top: .5rem;
  color: var(--berry);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.cat-row-read:hover { color: var(--dusty-blue); }

.cat-live-pinterest {
  position: relative;
}
.cat-live-pinterest-card {
  position: sticky;
  top: 96px;
  overflow: hidden;
  padding: 1rem;
  border: 1px solid rgba(142,49,83,.14);
  border-radius: 16px;
  background:
    radial-gradient(circle at 100% 0, rgba(232,200,199,.44), transparent 34%),
    rgba(255,249,245,.98);
  box-shadow: 0 12px 32px rgba(48,52,58,.055);
}
.cat-live-pinterest-card h3 {
  margin: 0;
  color: var(--berry);
  font-size: 1.65rem;
  line-height: 1.05;
}
.cat-live-pinterest-copy {
  margin: .45rem 0 .8rem;
  color: rgba(48,52,58,.72);
  font-size: .72rem;
  line-height: 1.5;
}
.cat-pinterest-widget-wrap {
  overflow: hidden;
  min-height: 400px;
  border-radius: 12px;
  background: #fff;
}
.cat-pinterest-profile-link {
  display: inline-flex;
  margin-top: .75rem;
  color: var(--berry);
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.cat-pinterest-profile-link:hover { color: var(--dusty-blue); }

/* Numbered pagination is intentionally visible and compact. */
.cat-archive-v84 .cat-pagination { margin-top: 1.5rem; }
.cat-archive-v84 .cat-pagination .page-numbers a,
.cat-archive-v84 .cat-pagination .page-numbers span {
  min-width: 38px;
  min-height: 38px;
  border-color: rgba(142,49,83,.18);
  color: var(--berry);
  background: var(--ivory);
}
.cat-archive-v84 .cat-pagination .page-numbers .current,
.cat-archive-v84 .cat-pagination .page-numbers a:hover {
  color: #fff;
  background: var(--berry);
  border-color: var(--berry);
  box-shadow: 0 0 18px rgba(142,49,83,.18);
}

/* Engagement & Rings tool, inspired by the interaction pattern of a ring-size converter,
   but custom built for Heaven Wedding Ideas. */
.cat-ring-tool {
  padding: clamp(2.7rem, 5vw, 4.5rem) 0;
  border-top: 1px solid rgba(142,49,83,.08);
  background:
    radial-gradient(circle at 8% 20%, rgba(120,150,173,.10), transparent 28%),
    radial-gradient(circle at 92% 75%, rgba(232,200,199,.42), transparent 30%),
    var(--ivory);
}
.cat-ring-tool-shell {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(340px, 1.1fr);
  gap: clamp(1.5rem, 4vw, 3.5rem);
  align-items: center;
  padding: clamp(1.35rem, 3vw, 2.35rem);
  border: 1px solid rgba(142,49,83,.13);
  border-radius: 22px;
  background: rgba(255,249,245,.93);
  box-shadow: 0 16px 44px rgba(48,52,58,.06);
}
.cat-ring-tool-intro h2 {
  margin: 0;
  color: var(--berry);
  font-size: clamp(2.25rem, 4vw, 3.55rem);
  line-height: .98;
}
.cat-ring-tool-intro > p:not(.cat-archive-eyebrow) {
  max-width: 42rem;
  margin: .9rem 0 0;
  color: rgba(48,52,58,.76);
  line-height: 1.65;
}
.cat-ring-tips {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: 1rem;
}
.cat-ring-tips span {
  padding: .45rem .65rem;
  border: 1px solid rgba(120,150,173,.25);
  border-radius: 999px;
  color: var(--charcoal);
  background: rgba(120,150,173,.08);
  font-size: .68rem;
  font-weight: 700;
}
.cat-ring-calculator {
  padding: 1.1rem;
  border: 1px solid rgba(142,49,83,.16);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(48,52,58,.055);
}
.cat-ring-mode {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .45rem;
  padding: .3rem;
  border-radius: 999px;
  background: rgba(232,200,199,.28);
}
.cat-ring-mode button {
  min-height: 42px;
  padding: .65rem .85rem;
  border: 0;
  border-radius: 999px;
  color: var(--charcoal);
  background: transparent;
  font: inherit;
  font-size: .72rem;
  font-weight: 800;
  cursor: pointer;
}
.cat-ring-mode button.is-active {
  color: #fff;
  background: var(--berry);
  box-shadow: 0 6px 16px rgba(142,49,83,.22);
}
.cat-ring-input-label {
  display: block;
  margin-top: 1rem;
  color: var(--charcoal);
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.cat-ring-input-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  margin-top: .4rem;
  overflow: hidden;
  border: 1px solid rgba(120,150,173,.30);
  border-radius: 12px;
  background: var(--ivory);
}
.cat-ring-input-row input {
  min-width: 0;
  min-height: 48px;
  padding: .75rem .85rem;
  border: 0;
  outline: 0;
  color: var(--charcoal);
  background: transparent;
  font: inherit;
}
.cat-ring-input-row:focus-within {
  border-color: var(--dusty-blue);
  box-shadow: 0 0 0 3px rgba(120,150,173,.12);
}
.cat-ring-input-row span {
  padding-right: .9rem;
  color: var(--dusty-blue);
  font-size: .74rem;
  font-weight: 800;
}
.cat-ring-help {
  margin: .55rem 0 0;
  color: rgba(48,52,58,.68);
  font-size: .7rem;
  line-height: 1.5;
}
.cat-ring-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  width: 100%;
  min-height: 46px;
  margin-top: .85rem;
  border: 0;
  border-radius: 999px;
  color: #fff;
  background: var(--berry);
  box-shadow: 0 8px 20px rgba(142,49,83,.18);
  font: inherit;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.cat-ring-submit:hover,
.cat-ring-submit:focus-visible {
  transform: translateY(-2px);
  background: #6F2340;
  box-shadow: 0 10px 24px rgba(142,49,83,.25), 0 0 20px rgba(232,200,199,.38);
}
.cat-ring-error {
  margin: .55rem 0 0;
  color: var(--berry);
  font-size: .72rem;
  font-weight: 700;
}
.cat-ring-result {
  margin-top: .9rem;
  padding: .9rem;
  border: 1px solid rgba(201,164,93,.34);
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(255,249,245,.96), rgba(232,200,199,.18));
}
.cat-ring-result-label {
  margin: 0 0 .6rem;
  color: var(--berry);
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.cat-ring-result-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .45rem;
}
.cat-ring-result-grid div {
  padding: .65rem;
  text-align: center;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 4px 14px rgba(48,52,58,.04);
}
.cat-ring-result-grid span {
  display: block;
  color: rgba(48,52,58,.62);
  font-size: .57rem;
  text-transform: uppercase;
}
.cat-ring-result-grid strong {
  display: block;
  margin-top: .2rem;
  color: var(--berry);
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 1.7rem;
  line-height: 1;
}
.cat-ring-result > p:last-child {
  margin: .7rem 0 0;
  color: rgba(48,52,58,.74);
  font-size: .7rem;
  line-height: 1.5;
}
.cat-ring-disclaimer {
  margin: .7rem 0 0;
  color: rgba(48,52,58,.58);
  font-size: .63rem;
  line-height: 1.45;
}

/* Keep the Wedding Finder, but as a deliberate glowing secondary CTA. */
.cat-finder-glow {
  position: relative;
  overflow: hidden;
  background: linear-gradient(110deg, #30343A, #4A3340 58%, #8E3153 130%);
  isolation: isolate;
}
.cat-finder-glow::before {
  content: '';
  position: absolute;
  inset: -35%;
  z-index: -1;
  background:
    radial-gradient(circle, rgba(232,200,199,.24), transparent 33%),
    radial-gradient(circle at 75% 45%, rgba(201,164,93,.16), transparent 30%);
  animation: catFinderGlow 5s ease-in-out infinite alternate;
}
@keyframes catFinderGlow {
  from { transform: translate3d(-4%, 0, 0) scale(.96); opacity: .6; }
  to   { transform: translate3d(5%, 2%, 0) scale(1.06); opacity: 1; }
}
.cat-finder-glow .cat-light-btn {
  color: var(--berry);
  background: var(--ivory);
  box-shadow: 0 0 0 rgba(232,200,199,0);
  animation: catFinderButton 2.9s ease-in-out infinite;
}
@keyframes catFinderButton {
  0%, 100% { box-shadow: 0 8px 20px rgba(48,52,58,.10), 0 0 0 rgba(232,200,199,0); }
  50% { box-shadow: 0 10px 26px rgba(48,52,58,.12), 0 0 24px rgba(232,200,199,.48); }
}

@media (max-width: 1100px) {
  .cat-latest-layout.has-pinterest { grid-template-columns: minmax(0, 1fr) 300px; }
  .cat-archive-row { grid-template-columns: 170px minmax(0, 1fr); }
  .cat-live-pinterest-card { top: 82px; }
}

@media (max-width: 900px) {
  .cat-archive-v84 .cat-archive-hero-grid { grid-template-columns: 1fr 1fr; min-height: 300px; }
  .cat-archive-v84 .cat-archive-hero-copy { padding: 1.35rem 1.45rem; }
  .cat-archive-v84 .cat-archive-hero-copy h1 { font-size: clamp(2.35rem, 6vw, 3.35rem); }
  .cat-archive-v84 .cat-archive-hero-media,
  .cat-archive-v84 .cat-archive-hero-img,
  .cat-archive-v84 .cat-archive-hero-fallback { min-height: 300px; max-height: 300px; }
  .cat-latest-layout.has-pinterest { grid-template-columns: 1fr; }
  .cat-live-pinterest-card { position: static; }
  .cat-pinterest-widget-wrap { min-height: 280px; max-height: 520px; }
  .cat-ring-tool-shell { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
  .cat-archive-v84 .cat-archive-hero-grid { grid-template-columns: 1fr; }
  .cat-archive-v84 .cat-archive-hero-copy { padding: 1.25rem 1.1rem 1.2rem; }
  .cat-archive-v84 .cat-archive-hero-copy h1 { font-size: clamp(2.4rem, 12vw, 3.2rem); }
  .cat-archive-v84 .cat-archive-detail { font-size: .78rem; }
  .cat-hero-topics { margin-top: .65rem; }
  .cat-archive-v84 .cat-archive-hero-media,
  .cat-archive-v84 .cat-archive-hero-img,
  .cat-archive-v84 .cat-archive-hero-fallback { min-height: 210px; max-height: 210px; }
  .cat-archive-v84 .cat-featured-card { grid-template-columns: 1fr; }
  .cat-archive-v84 .cat-featured-image,
  .cat-archive-v84 .cat-featured-image img { min-height: 220px; max-height: 220px; }
  .cat-archive-v84 .cat-featured-body { padding: 1.2rem 1.1rem 1.35rem; }
  .cat-archive-v84 .cat-featured-body h3 { font-size: 1.8rem; }
  .cat-archive-row { grid-template-columns: 118px minmax(0, 1fr); min-height: 128px; }
  .cat-archive-row-image,
  .cat-archive-row-image img,
  .cat-archive-row-image .cat-card-image-fallback { min-height: 128px; }
  .cat-archive-row-body { padding: .75rem .78rem; }
  .cat-archive-row-body h3 { font-size: 1.06rem; }
  .cat-archive-row-body .cat-archive-card-excerpt { display: none; }
  .cat-row-read { margin-top: .35rem; font-size: .61rem; }
  .cat-live-pinterest-card { padding: .85rem; }
  .cat-ring-tool-shell { padding: 1rem; border-radius: 17px; }
  .cat-ring-tool-intro h2 { font-size: 2.35rem; }
  .cat-ring-mode { grid-template-columns: 1fr; border-radius: 14px; }
  .cat-ring-mode button { border-radius: 10px; }
  .cat-finder-glow { padding: 2.4rem 0; }
}

@media (max-width: 430px) {
  .cat-archive-row { grid-template-columns: 100px minmax(0, 1fr); }
  .cat-archive-row-body h3 { font-size: .98rem; }
  .cat-archive-row-body .cat-archive-card-meta { font-size: .58rem; }
  .cat-ring-result-grid { gap: .3rem; }
  .cat-ring-result-grid div { padding: .55rem .3rem; }
  .cat-ring-result-grid strong { font-size: 1.45rem; }
}

@media (prefers-reduced-motion: reduce) {
  .cat-finder-glow::before,
  .cat-finder-glow .cat-light-btn { animation: none !important; }
  .cat-archive-row,
  .cat-archive-row-image img,
  .cat-ring-submit { transition: none !important; }
  .cat-archive-row:hover,
  .cat-ring-submit:hover { transform: none !important; }
}

/* =========================================================
   Phase 8.5 — Ring Size Finder Attraction + Accuracy Refresh
   ========================================================= */
.cat-ring-tool-v2 {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 10% 18%, rgba(120,150,173,.13), transparent 24%),
    radial-gradient(circle at 86% 18%, rgba(201,164,93,.14), transparent 23%),
    radial-gradient(circle at 78% 88%, rgba(232,200,199,.38), transparent 28%),
    var(--ivory);
}
.cat-ring-tool-v2::before {
  content: '';
  position: absolute;
  width: 420px;
  height: 420px;
  right: -180px;
  top: -210px;
  border: 1px solid rgba(201,164,93,.18);
  border-radius: 50%;
  box-shadow: 0 0 0 36px rgba(201,164,93,.035), 0 0 0 74px rgba(142,49,83,.025);
  pointer-events: none;
}
.cat-ring-tool-v2 .cat-ring-tool-shell {
  position: relative;
  grid-template-columns: minmax(0, 1fr) minmax(390px, .92fr);
  gap: clamp(1.6rem, 4vw, 3.4rem);
  border-color: rgba(142,49,83,.16);
  background:
    linear-gradient(135deg, rgba(255,249,245,.97), rgba(255,255,255,.93)),
    #fff;
  box-shadow:
    0 18px 60px rgba(48,52,58,.07),
    0 0 0 1px rgba(255,255,255,.8) inset;
}
.cat-ring-tool-v2 .cat-ring-tool-shell::after {
  content: '';
  position: absolute;
  inset: -1px;
  z-index: -1;
  border-radius: inherit;
  background: linear-gradient(115deg, rgba(142,49,83,.13), rgba(201,164,93,.22), rgba(120,150,173,.14));
  filter: blur(16px);
  opacity: .36;
  animation: ringShellGlow 5.5s ease-in-out infinite alternate;
}
.cat-ring-tool-v2 .cat-ring-tool-intro h2 {
  max-width: 630px;
  font-size: clamp(2.4rem, 4.4vw, 4rem);
  letter-spacing: -.025em;
}
.cat-ring-tool-lead {
  max-width: 650px !important;
  font-size: .96rem;
}
.cat-ring-steps {
  display: grid;
  gap: .62rem;
  margin-top: 1.25rem;
}
.cat-ring-step {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: .72rem;
  align-items: center;
  padding: .7rem .8rem;
  border: 1px solid rgba(142,49,83,.09);
  border-radius: 13px;
  background: rgba(255,255,255,.72);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.cat-ring-step:hover {
  transform: translateX(4px);
  border-color: rgba(142,49,83,.18);
  box-shadow: 0 10px 26px rgba(142,49,83,.07);
}
.cat-ring-step > span {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  color: #fff;
  background: var(--berry);
  box-shadow: 0 0 0 4px rgba(142,49,83,.08);
  font-size: .68rem;
  font-weight: 800;
}
.cat-ring-step strong,
.cat-ring-step small {
  display: block;
}
.cat-ring-step strong {
  color: var(--charcoal);
  font-size: .8rem;
}
.cat-ring-step small {
  margin-top: .08rem;
  color: rgba(48,52,58,.62);
  font-size: .68rem;
}
.cat-ring-howto {
  margin-top: 1rem;
  padding: .8rem .9rem;
  border: 1px solid rgba(120,150,173,.18);
  border-radius: 13px;
  background: rgba(120,150,173,.055);
}
.cat-ring-howto summary {
  color: var(--dusty-blue);
  font-size: .74rem;
  font-weight: 800;
  cursor: pointer;
}
.cat-ring-howto-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .75rem;
  margin-top: .75rem;
}
.cat-ring-howto-grid > div {
  padding: .75rem;
  border-radius: 11px;
  background: rgba(255,255,255,.72);
}
.cat-ring-howto-grid strong {
  color: var(--berry);
  font-size: .72rem;
}
.cat-ring-howto-grid p {
  margin: .3rem 0 0;
  color: rgba(48,52,58,.68);
  font-size: .68rem;
  line-height: 1.55;
}
.cat-ring-trust {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-top: .9rem;
}
.cat-ring-trust span {
  padding: .38rem .58rem;
  border-radius: 999px;
  color: var(--charcoal);
  background: rgba(232,200,199,.24);
  font-size: .62rem;
  font-weight: 750;
}
.cat-ring-tool-v2 .cat-ring-calculator {
  position: relative;
  overflow: hidden;
  padding: 1.35rem;
  border-color: rgba(142,49,83,.18);
  border-radius: 22px;
  background:
    linear-gradient(180deg, #fff 0%, rgba(255,249,245,.96) 100%);
  box-shadow: 0 18px 45px rgba(48,52,58,.08), 0 0 30px rgba(232,200,199,.13);
}
.cat-ring-tool-v2 .cat-ring-calculator::before {
  content: '';
  position: absolute;
  width: 190px;
  height: 190px;
  right: -92px;
  top: -96px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(201,164,93,.16), transparent 66%);
  pointer-events: none;
}
.cat-ring-visual {
  position: relative;
  width: 94px;
  height: 78px;
  margin: -.15rem auto .55rem;
}
.cat-ring-band {
  position: absolute;
  left: 24px;
  bottom: 4px;
  width: 52px;
  height: 52px;
  border: 5px solid var(--champagne-gold);
  border-radius: 50%;
  box-shadow: inset 0 0 8px rgba(201,164,93,.18), 0 8px 18px rgba(201,164,93,.15);
}
.cat-ring-gem {
  position: absolute;
  left: 38px;
  top: 1px;
  width: 27px;
  height: 27px;
  transform: rotate(45deg);
  border: 2px solid rgba(120,150,173,.65);
  border-radius: 5px;
  background: linear-gradient(135deg, #fff, rgba(120,150,173,.18));
  box-shadow: 0 0 18px rgba(120,150,173,.22);
  animation: ringGemPulse 3.8s ease-in-out infinite;
}
.cat-ring-spark {
  position: absolute;
  color: var(--champagne-gold);
  font-size: .8rem;
  animation: ringSpark 3s ease-in-out infinite;
}
.cat-ring-spark-one { right: 4px; top: 8px; }
.cat-ring-spark-two { left: 2px; top: 26px; animation-delay: 1.1s; }
.cat-ring-calculator-kicker {
  margin: 0 0 .65rem;
  color: var(--berry);
  text-align: center;
  font-size: .66rem;
  font-weight: 850;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.cat-ring-tool-v2 .cat-ring-mode {
  gap: .55rem;
  padding: .36rem;
  border-radius: 16px;
}
.cat-ring-tool-v2 .cat-ring-mode button {
  display: flex;
  flex-direction: column;
  gap: .1rem;
  min-height: 58px;
  border-radius: 12px;
  font-size: .72rem;
  text-transform: none;
}
.cat-ring-tool-v2 .cat-ring-mode button span {
  font-size: .58rem;
  font-weight: 700;
  opacity: .72;
}
.cat-ring-tool-v2 .cat-ring-input-row {
  border-radius: 14px;
  box-shadow: 0 5px 16px rgba(48,52,58,.035);
}
.cat-ring-tool-v2 .cat-ring-input-row input {
  min-height: 56px;
  font-size: 1.05rem;
  font-weight: 700;
}
.cat-ring-example-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .35rem;
  margin-top: .65rem;
}
.cat-ring-example-row > span {
  color: rgba(48,52,58,.56);
  font-size: .62rem;
}
.cat-ring-example-row button {
  padding: .34rem .52rem;
  border: 1px solid rgba(120,150,173,.2);
  border-radius: 999px;
  color: var(--dusty-blue);
  background: rgba(120,150,173,.06);
  font: inherit;
  font-size: .61rem;
  font-weight: 750;
  cursor: pointer;
}
.cat-ring-example-row button:hover,
.cat-ring-example-row button:focus-visible {
  border-color: rgba(142,49,83,.25);
  color: var(--berry);
  background: rgba(232,200,199,.18);
  box-shadow: 0 0 16px rgba(232,200,199,.22);
}
.cat-ring-tool-v2 .cat-ring-submit {
  position: relative;
  min-height: 52px;
  overflow: hidden;
  background: linear-gradient(90deg, var(--berry), #A64066 55%, var(--berry));
  background-size: 180% 100%;
  box-shadow: 0 10px 24px rgba(142,49,83,.22), 0 0 22px rgba(232,200,199,.22);
  animation: ringButtonGlow 3.6s ease-in-out infinite;
}
.cat-ring-tool-v2 .cat-ring-submit::after {
  content: '';
  position: absolute;
  top: -120%;
  left: -30%;
  width: 24%;
  height: 330%;
  transform: rotate(20deg);
  background: rgba(255,255,255,.22);
  animation: ringButtonSweep 4.8s ease-in-out infinite;
}
.cat-ring-result {
  border-color: rgba(201,164,93,.46);
  background:
    radial-gradient(circle at 85% 10%, rgba(201,164,93,.15), transparent 32%),
    linear-gradient(135deg, rgba(255,249,245,.98), rgba(232,200,199,.2));
  box-shadow: 0 12px 28px rgba(142,49,83,.07);
}
.cat-ring-result-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: .7rem;
  padding: .7rem .8rem;
  border-radius: 12px;
  background: var(--berry);
  color: #fff;
}
.cat-ring-result-hero span {
  max-width: 170px;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.cat-ring-result-hero strong {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 2.7rem;
  line-height: 1;
}
.cat-ring-result-summary,
.cat-ring-result-tip {
  margin: .68rem 0 0;
  color: rgba(48,52,58,.72);
  font-size: .68rem;
  line-height: 1.5;
}
.cat-ring-result-tip {
  padding: .6rem .7rem;
  border-radius: 10px;
  background: rgba(120,150,173,.08);
}
.cat-ring-reset {
  margin-top: .65rem;
  padding: 0;
  border: 0;
  color: var(--berry);
  background: transparent;
  font: inherit;
  font-size: .66rem;
  font-weight: 800;
  cursor: pointer;
}
.cat-ring-calculator.has-result {
  box-shadow: 0 18px 46px rgba(142,49,83,.12), 0 0 32px rgba(201,164,93,.16);
}
@keyframes ringShellGlow {
  from { opacity: .2; transform: scale(.995); }
  to { opacity: .5; transform: scale(1.01); }
}
@keyframes ringGemPulse {
  0%,100% { transform: rotate(45deg) scale(1); box-shadow: 0 0 12px rgba(120,150,173,.18); }
  50% { transform: rotate(45deg) scale(1.08); box-shadow: 0 0 24px rgba(120,150,173,.34); }
}
@keyframes ringSpark {
  0%,100% { opacity: .3; transform: scale(.75) rotate(0deg); }
  50% { opacity: 1; transform: scale(1.15) rotate(20deg); }
}
@keyframes ringButtonGlow {
  0%,100% { background-position: 0 50%; box-shadow: 0 10px 24px rgba(142,49,83,.22), 0 0 18px rgba(232,200,199,.16); }
  50% { background-position: 100% 50%; box-shadow: 0 12px 28px rgba(142,49,83,.28), 0 0 28px rgba(232,200,199,.30); }
}
@keyframes ringButtonSweep {
  0%,72%,100% { left: -30%; opacity: 0; }
  78% { opacity: 1; }
  90% { left: 112%; opacity: 0; }
}
@media (max-width: 900px) {
  .cat-ring-tool-v2 .cat-ring-tool-shell { grid-template-columns: 1fr; }
  .cat-ring-tool-v2 .cat-ring-calculator { max-width: 620px; width: 100%; margin-inline: auto; }
}
@media (max-width: 640px) {
  .cat-ring-tool-v2 { padding: 2rem 0; }
  .cat-ring-tool-v2 .cat-ring-tool-shell { padding: 1rem; border-radius: 18px; }
  .cat-ring-tool-v2 .cat-ring-tool-intro h2 { font-size: 2.45rem; }
  .cat-ring-howto-grid { grid-template-columns: 1fr; }
  .cat-ring-tool-v2 .cat-ring-calculator { padding: 1rem; border-radius: 18px; }
  .cat-ring-visual { transform: scale(.92); margin-bottom: .3rem; }
  .cat-ring-tool-v2 .cat-ring-mode { grid-template-columns: 1fr 1fr; }
  .cat-ring-tool-v2 .cat-ring-mode button { min-height: 54px; padding: .55rem .45rem; }
  .cat-ring-result-grid { grid-template-columns: 1fr; }
  .cat-ring-result-grid div { display: flex; align-items: center; justify-content: space-between; text-align: left; }
  .cat-ring-result-grid strong { margin-top: 0; font-size: 1.5rem; }
  .cat-ring-example-row > span { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .cat-ring-tool-v2 .cat-ring-tool-shell::after,
  .cat-ring-gem,
  .cat-ring-spark,
  .cat-ring-tool-v2 .cat-ring-submit,
  .cat-ring-tool-v2 .cat-ring-submit::after {
    animation: none !important;
  }
}

/* =====================================================
   PHASE 8.6 — STANDALONE US RING SIZE CALCULATOR
   /ring-size-calculator/
   ===================================================== */

/* Engagement category: utility chip beside the subcategory buttons. */
.cat-archive-chips .cat-tool-chip {
  position: relative;
  overflow: hidden;
  border-color: rgba(142,49,83,.34);
  background: linear-gradient(135deg, rgba(142,49,83,.98), rgba(142,49,83,.88));
  color: #fff;
  box-shadow: 0 10px 24px rgba(142,49,83,.14);
}
.cat-archive-chips .cat-tool-chip::before {
  content: "";
  position: absolute;
  inset: -60% auto -60% -35%;
  width: 32%;
  transform: rotate(18deg);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.34), transparent);
  animation: ringToolChipShine 4.5s ease-in-out infinite;
  pointer-events: none;
}
.cat-archive-chips .cat-tool-chip span,
.cat-archive-chips .cat-tool-chip small { position: relative; z-index: 1; color: #fff; }
.cat-archive-chips .cat-tool-chip .cat-tool-chip-icon {
  display: inline-grid;
  place-items: center;
  width: 1.6rem;
  height: 1.6rem;
  margin-right: .1rem;
  border: 1px solid rgba(255,255,255,.58);
  border-radius: 50%;
  color: #F8E7C2;
  font-size: 1rem;
}
.cat-archive-chips .cat-tool-chip small {
  background: rgba(255,255,255,.14);
  border-color: rgba(255,255,255,.22);
}
.cat-archive-chips .cat-tool-chip:hover,
.cat-archive-chips .cat-tool-chip:focus-visible {
  color: #fff;
  border-color: rgba(201,164,93,.72);
  box-shadow: 0 12px 32px rgba(142,49,83,.24), 0 0 0 5px rgba(232,200,199,.28);
  transform: translateY(-2px);
}
@keyframes ringToolChipShine {
  0%, 58% { left: -35%; opacity: 0; }
  68% { opacity: 1; }
  83%, 100% { left: 112%; opacity: 0; }
}

.ring-tool-page {
  background:
    radial-gradient(circle at 8% 12%, rgba(232,200,199,.20), transparent 26rem),
    radial-gradient(circle at 92% 25%, rgba(120,150,173,.10), transparent 24rem),
    var(--ivory);
  color: var(--charcoal);
}
.ring-tool-container {
  width: min(1180px, calc(100% - 3rem));
  margin-inline: auto;
}
.ring-tool-reading-width { width: min(1000px, calc(100% - 3rem)); }
.ring-tool-eyebrow {
  margin: 0 0 .55rem;
  color: var(--berry);
  font-family: var(--sans);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .19em;
  text-transform: uppercase;
}
.ring-tool-hero { padding: 2rem 0 1.2rem; }
.ring-tool-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(280px, .55fr);
  gap: 1.2rem;
  align-items: stretch;
}
.ring-tool-hero-copy,
.ring-tool-hero-art {
  border: 1px solid rgba(142,49,83,.15);
  border-radius: 26px;
  background: rgba(255,255,255,.72);
  box-shadow: 0 16px 44px rgba(48,52,58,.07);
}
.ring-tool-hero-copy { padding: clamp(1.5rem, 4vw, 3.2rem); }
.ring-tool-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  align-items: center;
  margin-bottom: 1.45rem;
  color: rgba(48,52,58,.66);
  font-size: .78rem;
}
.ring-tool-breadcrumb a { color: var(--dusty-blue); }
.ring-tool-breadcrumb a:hover { color: var(--berry); }
.ring-tool-hero h1 {
  max-width: 760px;
  margin: 0;
  color: var(--berry);
  font-size: clamp(3rem, 6vw, 5.5rem);
  line-height: .92;
  letter-spacing: -.025em;
}
.ring-tool-hero-lede {
  max-width: 710px;
  margin: 1.2rem 0 0;
  color: rgba(48,52,58,.78);
  font-size: clamp(1rem, 1.6vw, 1.15rem);
  line-height: 1.75;
}
.ring-tool-trust-row {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin-top: 1.35rem;
}
.ring-tool-trust-row span {
  padding: .42rem .78rem;
  border: 1px solid rgba(120,150,173,.24);
  border-radius: 999px;
  background: rgba(120,150,173,.07);
  color: var(--charcoal);
  font-size: .76rem;
  font-weight: 700;
}
.ring-tool-hero-art {
  position: relative;
  min-height: 310px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
  padding: 1.5rem;
  background:
    radial-gradient(circle at 50% 30%, rgba(201,164,93,.22), transparent 32%),
    linear-gradient(145deg, #8E3153, #663047 72%, #30343A);
  color: #fff;
}
.ring-tool-hero-art::before {
  content: "";
  position: absolute;
  width: 230px;
  height: 230px;
  top: -100px;
  right: -80px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 50%;
}
.ring-tool-hero-art p {
  position: relative;
  z-index: 2;
  max-width: 250px;
  margin: 0;
  font-family: var(--serif);
  font-size: 1.55rem;
  line-height: 1.05;
}
.ring-tool-ring-art {
  position: absolute;
  inset: 1.8rem 1.4rem auto auto;
  width: 190px;
  height: 190px;
}
.ring-tool-art-band {
  position: absolute;
  left: 34px;
  top: 52px;
  width: 118px;
  height: 118px;
  border: 12px solid rgba(201,164,93,.92);
  border-radius: 50%;
  box-shadow: inset 0 0 0 3px rgba(255,255,255,.16), 0 13px 35px rgba(0,0,0,.18);
}
.ring-tool-art-stone {
  position: absolute;
  left: 72px;
  top: 12px;
  width: 42px;
  height: 42px;
  transform: rotate(45deg);
  border: 3px solid rgba(255,255,255,.78);
  background: linear-gradient(135deg, #fff, #f4dba6 48%, #d5c4d1);
  box-shadow: 0 0 30px rgba(255,249,245,.68);
}
.ring-tool-art-spark { position: absolute; color: #fff; text-shadow: 0 0 18px #fff; animation: ringToolSpark 2.7s ease-in-out infinite; }
.ring-tool-art-spark-a { right: 8px; top: 8px; }
.ring-tool-art-spark-b { left: 14px; top: 32px; animation-delay: .8s; }
.ring-tool-art-spark-c { right: 30px; bottom: 24px; animation-delay: 1.4s; }
@keyframes ringToolSpark { 0%,100% { opacity:.3; transform:scale(.78) rotate(0); } 50% { opacity:1; transform:scale(1.15) rotate(18deg); } }

.ring-calculator-section { padding: 1rem 0 3.25rem; }
.ring-calculator-shell {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(360px, 1.05fr);
  gap: 1.2rem;
  padding: 1.15rem;
  border: 1px solid rgba(142,49,83,.18);
  border-radius: 28px;
  background: rgba(255,255,255,.76);
  box-shadow: 0 18px 55px rgba(48,52,58,.08);
}
.ring-calculator-intro { padding: clamp(1rem, 3vw, 2.1rem); }
.ring-calculator-intro h2,
.ring-section-heading h2,
.ring-education-block h2,
.ring-info-card h2,
.ring-faq-section h2,
.ring-tool-bottom-cta h2 {
  margin: 0;
  color: var(--berry);
  font-size: clamp(2.15rem, 4vw, 3.35rem);
  line-height: 1;
}
.ring-calculator-intro > p:not(.ring-tool-eyebrow) {
  max-width: 580px;
  margin: 1rem 0 1.3rem;
  color: rgba(48,52,58,.72);
}
.ring-measure-methods { display: grid; gap: .7rem; }
.ring-measure-methods button {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: .75rem;
  align-items: center;
  width: 100%;
  padding: .9rem 1rem;
  text-align: left;
  border: 1px solid rgba(142,49,83,.16);
  border-radius: 16px;
  background: #fff;
  color: var(--charcoal);
  cursor: pointer;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease, background .22s ease;
}
.ring-measure-methods button:hover,
.ring-measure-methods button:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(142,49,83,.36);
  box-shadow: 0 10px 28px rgba(142,49,83,.10), 0 0 0 5px rgba(232,200,199,.22);
}
.ring-measure-methods button.is-active {
  border-color: rgba(142,49,83,.56);
  background: linear-gradient(135deg, rgba(232,200,199,.32), #fff 65%);
  box-shadow: inset 4px 0 0 var(--berry);
}
.ring-method-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: rgba(201,164,93,.16);
  color: var(--berry);
  font-size: 1.25rem;
}
.ring-measure-methods strong,
.ring-measure-methods small { display:block; }
.ring-measure-methods strong { font-size: .94rem; }
.ring-measure-methods small { margin-top:.12rem; color: rgba(48,52,58,.62); font-size:.74rem; }
.ring-measure-mini-guide {
  margin-top: 1rem;
  padding: .9rem 1rem;
  border-left: 3px solid var(--gold);
  background: rgba(201,164,93,.08);
  border-radius: 0 12px 12px 0;
}
.ring-measure-mini-guide strong { color: var(--berry); font-size: .84rem; }
.ring-measure-mini-guide p { margin: .25rem 0 0; color: rgba(48,52,58,.72); font-size: .8rem; line-height: 1.6; }

.ring-calculator-card {
  position: relative;
  overflow: hidden;
  padding: clamp(1.2rem, 3vw, 2.2rem);
  border: 1px solid rgba(142,49,83,.22);
  border-radius: 22px;
  background:
    radial-gradient(circle at 100% 0, rgba(201,164,93,.15), transparent 15rem),
    #fff;
  box-shadow: 0 14px 40px rgba(48,52,58,.08);
}
.ring-calculator-card::after {
  content: "";
  position: absolute;
  inset: -60% auto -60% -45%;
  width: 20%;
  transform: rotate(15deg);
  background: linear-gradient(90deg, transparent, rgba(232,200,199,.22), transparent);
  animation: ringCalculatorSweep 6s ease-in-out infinite;
  pointer-events:none;
}
@keyframes ringCalculatorSweep { 0%,68% { left:-45%; opacity:0; } 76% {opacity:1;} 92%,100% {left:120%; opacity:0;} }
.ring-calculator-card > * { position: relative; z-index: 1; }
.ring-calculator-card-head { margin-bottom: 1.1rem; }
.ring-calculator-card-head h3 { margin:0; color: var(--charcoal); font-size: 1.65rem; }
.ring-input-label { display:block; margin-bottom:.45rem; font-size:.82rem; font-weight:700; color:var(--charcoal); }
.ring-input-wrap {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  overflow: hidden;
  border: 1.5px solid rgba(142,49,83,.24);
  border-radius: 15px;
  background: #fff;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.ring-input-wrap:focus-within { border-color: var(--berry); box-shadow: 0 0 0 5px rgba(232,200,199,.28); }
.ring-input-wrap input {
  width: 100%;
  min-width: 0;
  padding: .92rem 1rem;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--charcoal);
  font: 700 1.15rem var(--sans);
}
.ring-input-wrap span { padding:0 1rem; color:var(--berry); font-size:.82rem; font-weight:800; }
.ring-input-help { margin:.45rem 0 0; color:rgba(48,52,58,.6); font-size:.74rem; }
.ring-input-error { margin:.5rem 0 0; color:#9b2349; font-size:.78rem; font-weight:700; }
.ring-find-button {
  position: relative;
  overflow: hidden;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  width:100%;
  margin-top:1rem;
  padding:.9rem 1rem;
  border:1px solid var(--berry);
  border-radius:999px;
  background:var(--berry);
  color:#fff;
  font:800 .82rem var(--sans);
  letter-spacing:.03em;
  text-transform:uppercase;
  cursor:pointer;
  box-shadow:0 12px 28px rgba(142,49,83,.20);
  transition:transform .22s ease, box-shadow .22s ease, background .22s ease;
}
.ring-find-button::before {
  content:"";
  position:absolute;
  inset:-120% auto -120% -25%;
  width:20%;
  transform:rotate(18deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);
  animation:ringFindButtonShine 3.8s ease-in-out infinite;
}
.ring-find-button span { position:relative; z-index:1; }
.ring-find-button:hover,
.ring-find-button:focus-visible { transform:translateY(-2px); background:#772744; box-shadow:0 16px 36px rgba(142,49,83,.30),0 0 0 6px rgba(232,200,199,.22); }
@keyframes ringFindButtonShine { 0%,55%{left:-25%;opacity:0} 65%{opacity:1} 82%,100%{left:118%;opacity:0} }

.ring-result-card {
  margin-top:1rem;
  padding:1.25rem;
  text-align:center;
  border:1px solid rgba(201,164,93,.45);
  border-radius:18px;
  background:linear-gradient(145deg,rgba(255,249,245,.98),rgba(232,200,199,.28));
  box-shadow:0 14px 36px rgba(142,49,83,.10);
}
.ring-result-icon {
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  margin:0 auto .55rem;
  border:1px solid rgba(201,164,93,.55);
  border-radius:50%;
  background:#fff;
  color:var(--gold);
  font-size:1.35rem;
}
.ring-result-card > p { margin:0; color:var(--berry); font-size:.68rem; font-weight:800; letter-spacing:.17em; text-transform:uppercase; }
.ring-result-card > strong { display:block; margin:.15rem 0 .2rem; color:var(--berry); font-family:var(--serif); font-size:clamp(3rem,7vw,4.5rem); line-height:1; }
.ring-result-card > b { display:block; color:var(--charcoal); font-size:.86rem; }
.ring-result-card > span:not(.ring-result-between) { display:block; margin-top:.4rem; color:rgba(48,52,58,.7); font-size:.82rem; }
.ring-result-between { display:block; margin:.6rem auto 0; max-width:460px; color:#7e5d22; font-size:.76rem; line-height:1.5; }
.ring-reset-button {
  margin-top:.8rem;
  padding:.55rem .9rem;
  border:1px solid rgba(142,49,83,.24);
  border-radius:999px;
  background:#fff;
  color:var(--berry);
  font:700 .76rem var(--sans);
  cursor:pointer;
}
.ring-reset-button:hover { box-shadow:0 8px 20px rgba(142,49,83,.11); }
.ring-calculator-note {
  margin-top:1rem;
  padding:.8rem .9rem;
  border-radius:12px;
  background:rgba(120,150,173,.08);
  color:rgba(48,52,58,.68);
  font-size:.72rem;
  line-height:1.55;
}
.ring-calculator-note strong { color:var(--charcoal); }

.ring-education-section,
.ring-faq-section { padding: 3.5rem 0; }
.ring-section-heading { max-width:760px; margin-bottom:1.35rem; }
.ring-section-heading > p:not(.ring-tool-eyebrow) { margin:.75rem 0 0; color:rgba(48,52,58,.7); }

.ring-education-section { background:linear-gradient(180deg,rgba(232,200,199,.10),rgba(255,255,255,.18)); }
.ring-education-block {
  padding:clamp(1.25rem,3vw,2rem);
  border:1px solid rgba(142,49,83,.14);
  border-radius:20px;
  background:rgba(255,255,255,.74);
}
.ring-step-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; margin:1.3rem 0 0; padding:0; list-style:none; }
.ring-step-list li { display:grid; grid-template-columns:38px 1fr; gap:.7rem; padding:.9rem; border:1px solid rgba(142,49,83,.10); border-radius:14px; background:#fff; }
.ring-step-list li > span { display:grid; place-items:center; width:38px; height:38px; border-radius:50%; background:rgba(142,49,83,.08); color:var(--berry); font-weight:800; }
.ring-step-list strong { color:var(--charcoal); font-size:.86rem; }
.ring-step-list p { margin:.15rem 0 0; color:rgba(48,52,58,.66); font-size:.78rem; line-height:1.55; }
.ring-education-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.9rem; margin-top:.9rem; }
.ring-info-card { padding:1.2rem; border:1px solid rgba(142,49,83,.12); border-radius:18px; background:#fff; box-shadow:0 10px 28px rgba(48,52,58,.04); }
.ring-info-card h2 { font-size:1.8rem; }
.ring-info-card p,
.ring-info-card li { color:rgba(48,52,58,.7); font-size:.78rem; line-height:1.65; }
.ring-info-card ul { margin:.8rem 0 0; padding-left:1.1rem; }
.ring-info-card li + li { margin-top:.35rem; }

.ring-faq-list { display:grid; gap:.65rem; }
.ring-faq-list details { border:1px solid rgba(142,49,83,.14); border-radius:15px; background:#fff; box-shadow:0 8px 24px rgba(48,52,58,.035); }
.ring-faq-list summary { position:relative; padding:1rem 3rem 1rem 1rem; list-style:none; cursor:pointer; color:var(--charcoal); font-weight:700; }
.ring-faq-list summary::-webkit-details-marker { display:none; }
.ring-faq-list summary::after { content:"+"; position:absolute; right:1rem; top:50%; transform:translateY(-50%); color:var(--berry); font-size:1.35rem; font-weight:400; }
.ring-faq-list details[open] summary::after { content:"–"; }
.ring-faq-list details p { margin:0; padding:0 1rem 1rem; color:rgba(48,52,58,.7); font-size:.84rem; line-height:1.65; }

.ring-tool-bottom-cta { padding:0 0 3.5rem; }
.ring-tool-bottom-grid {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:1.4rem 1.6rem;
  border:1px solid rgba(142,49,83,.18);
  border-radius:20px;
  background:linear-gradient(135deg,rgba(232,200,199,.36),rgba(255,255,255,.76));
}
.ring-tool-bottom-cta h2 { font-size:2rem; }
.ring-tool-bottom-cta p:not(.ring-tool-eyebrow) { margin:.35rem 0 0; color:rgba(48,52,58,.68); font-size:.82rem; }
.ring-tool-bottom-cta a {
  flex:0 0 auto;
  padding:.8rem 1rem;
  border-radius:999px;
  background:var(--berry);
  color:#fff;
  font-size:.78rem;
  font-weight:800;
  box-shadow:0 10px 24px rgba(142,49,83,.18);
}
.ring-tool-bottom-cta a:hover { color:#fff; transform:translateY(-2px); box-shadow:0 14px 30px rgba(142,49,83,.26); }

@media (max-width: 900px) {
  .ring-tool-hero-grid,
  .ring-calculator-shell { grid-template-columns:1fr; }
  .ring-tool-hero-art { min-height:230px; }
  .ring-tool-ring-art { transform:scale(.82); transform-origin:top right; }
  .ring-education-grid { grid-template-columns:1fr; }
}

@media (max-width: 640px) {
  .ring-tool-container,
  .ring-tool-reading-width { width:min(100% - 1.25rem, 1180px); }
  .ring-tool-hero { padding:1rem 0 .65rem; }
  .ring-tool-hero-copy { padding:1.15rem; border-radius:18px; }
  .ring-tool-breadcrumb { margin-bottom:1rem; font-size:.7rem; }
  .ring-tool-hero h1 { font-size:3.1rem; }
  .ring-tool-hero-lede { font-size:.92rem; line-height:1.62; }
  .ring-tool-trust-row span { font-size:.68rem; }
  .ring-tool-hero-art { min-height:190px; border-radius:18px; }
  .ring-tool-hero-art p { max-width:190px; font-size:1.25rem; }
  .ring-tool-ring-art { top:8px; right:4px; transform:scale(.66); }
  .ring-calculator-section { padding:.6rem 0 2rem; }
  .ring-calculator-shell { padding:.6rem; border-radius:20px; }
  .ring-calculator-intro { padding:.75rem .6rem; }
  .ring-calculator-intro h2,
  .ring-section-heading h2,
  .ring-education-block h2,
  .ring-faq-section h2 { font-size:2.25rem; }
  .ring-measure-methods button { grid-template-columns:36px 1fr; padding:.8rem; }
  .ring-method-icon { width:36px; height:36px; }
  .ring-calculator-card { padding:1rem; border-radius:16px; }
  .ring-result-card > strong { font-size:3.5rem; }
  .ring-education-section,
  .ring-faq-section { padding:2.25rem 0; }
  .ring-step-list { grid-template-columns:1fr; }
  .ring-education-block { padding:1rem; }
  .ring-tool-bottom-grid { align-items:flex-start; flex-direction:column; padding:1rem; }
  .ring-tool-bottom-cta a { width:100%; text-align:center; }
  .cat-archive-chips .cat-tool-chip { flex:0 0 auto; }
}

@media (prefers-reduced-motion: reduce) {
  .cat-archive-chips .cat-tool-chip::before,
  .ring-tool-art-spark,
  .ring-calculator-card::after,
  .ring-find-button::before { animation:none !important; }
}


/* =====================================================
   PHASE 8.7 — CATEGORY RING TOOL PREMIUM TEASER
   Standalone calculator remains canonical; this is only
   an attractive category-page gateway, not a duplicate tool.
   ===================================================== */
.cat-ring-promo {
  position: relative;
  overflow: hidden;
  padding: 1.35rem 0 1.55rem;
  background:
    radial-gradient(circle at 84% 42%, rgba(201,164,93,.18), transparent 24%),
    linear-gradient(115deg, rgba(142,49,83,.97), rgba(48,52,58,.985) 66%);
  border-top: 1px solid rgba(201,164,93,.22);
  border-bottom: 1px solid rgba(201,164,93,.22);
}
.cat-ring-promo::before {
  content: "";
  position: absolute;
  inset: -35% auto -35% -18%;
  width: 42%;
  background: radial-gradient(circle, rgba(255,249,245,.17), transparent 68%);
  filter: blur(12px);
  pointer-events: none;
  animation: heavenRingPromoSweep 7s ease-in-out infinite alternate;
}
.cat-ring-promo-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 265px;
  gap: clamp(1.2rem, 4vw, 3rem);
  align-items: center;
  min-height: 255px;
  padding: clamp(1.35rem, 3vw, 2.15rem);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 24px;
  background: rgba(255,249,245,.055);
  box-shadow: 0 24px 60px rgba(48,52,58,.20), inset 0 1px rgba(255,255,255,.12);
  backdrop-filter: blur(5px);
}
.cat-ring-promo .cat-archive-eyebrow { color: #E8C8C7; }
.cat-ring-promo-copy h2 {
  margin: .25rem 0 .6rem;
  max-width: 690px;
  color: #FFF9F5;
  font-size: clamp(2.1rem, 4vw, 3.45rem);
  line-height: .98;
}
.cat-ring-promo-copy > p:not(.cat-archive-eyebrow) {
  max-width: 690px;
  margin: 0;
  color: rgba(255,249,245,.82);
  font-size: .98rem;
  line-height: 1.7;
}
.cat-ring-promo-points {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: 1rem 0 1.1rem;
}
.cat-ring-promo-points span {
  padding: .42rem .68rem;
  border: 1px solid rgba(232,200,199,.34);
  border-radius: 999px;
  color: #FFF9F5;
  background: rgba(255,255,255,.07);
  font: 600 .74rem/1.1 "DM Sans", sans-serif;
}
.cat-ring-promo-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .65rem;
  min-height: 48px;
  padding: .76rem 1rem;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  color: #8E3153;
  background: #FFF9F5;
  box-shadow: 0 10px 28px rgba(0,0,0,.16), 0 0 0 0 rgba(232,200,199,0);
  font: 700 .78rem/1 "DM Sans", sans-serif;
  text-transform: uppercase;
  letter-spacing: .04em;
  transition: transform .22s ease, box-shadow .22s ease, background .22s ease;
  animation: heavenRingPromoButton 3.4s ease-in-out infinite;
}
.cat-ring-promo-btn:hover,
.cat-ring-promo-btn:focus-visible {
  color: #8E3153;
  background: #fff;
  transform: translateY(-2px);
  box-shadow: 0 14px 34px rgba(0,0,0,.22), 0 0 30px rgba(232,200,199,.34);
}
.cat-ring-promo-art {
  position: relative;
  min-height: 190px;
  display: grid;
  place-items: center;
  border-radius: 20px;
  border: 1px solid rgba(201,164,93,.3);
  background: radial-gradient(circle at 50% 35%, rgba(201,164,93,.24), rgba(255,255,255,.04) 48%, rgba(255,255,255,.025));
}
.cat-ring-promo-art strong {
  position: absolute;
  bottom: 20px;
  left: 18px;
  color: #FFF9F5;
  font-family: "Cormorant Garamond", serif;
  font-size: 1.35rem;
  font-weight: 600;
  line-height: 1.05;
}
.cat-ring-promo-ring {
  position: relative;
  width: 78px;
  height: 78px;
  border: 5px solid #C9A45D;
  border-radius: 50%;
  box-shadow: 0 0 30px rgba(201,164,93,.25), inset 0 0 14px rgba(255,255,255,.10);
  transform: translateY(-14px) rotate(-8deg);
}
.cat-ring-promo-ring span {
  position: absolute;
  width: 37px;
  height: 37px;
  left: 50%;
  top: -28px;
  transform: translateX(-50%) rotate(45deg);
  border: 2px solid rgba(255,255,255,.74);
  background: linear-gradient(135deg, #FFF9F5, #E8C8C7 55%, #7896AD);
  box-shadow: 0 0 26px rgba(255,249,245,.34);
}
.cat-ring-promo-spark {
  position: absolute;
  color: #C9A45D;
  font-style: normal;
  filter: drop-shadow(0 0 8px rgba(201,164,93,.46));
  animation: heavenRingSpark 2.5s ease-in-out infinite;
}
.cat-ring-promo-spark-a { top: 28px; right: 35px; font-size: 1.2rem; }
.cat-ring-promo-spark-b { top: 78px; left: 28px; font-size: .9rem; animation-delay: 1.1s; }
@keyframes heavenRingPromoSweep {
  from { transform: translateX(-4%) scale(.92); opacity: .55; }
  to { transform: translateX(250%) scale(1.08); opacity: .9; }
}
@keyframes heavenRingPromoButton {
  0%,100% { box-shadow: 0 10px 28px rgba(0,0,0,.16), 0 0 0 0 rgba(232,200,199,0); }
  50% { box-shadow: 0 12px 30px rgba(0,0,0,.18), 0 0 0 8px rgba(232,200,199,.09), 0 0 26px rgba(201,164,93,.17); }
}
@keyframes heavenRingSpark {
  0%,100% { transform: scale(.8) rotate(0); opacity: .45; }
  50% { transform: scale(1.18) rotate(18deg); opacity: 1; }
}
@media (max-width: 760px) {
  .cat-ring-promo { padding: .9rem 0 1rem; }
  .cat-ring-promo-inner { grid-template-columns: 1fr; min-height: 0; padding: 1.05rem; border-radius: 18px; }
  .cat-ring-promo-copy h2 { font-size: 2.3rem; }
  .cat-ring-promo-art { min-height: 150px; }
  .cat-ring-promo-ring { transform: translateY(-8px) rotate(-8deg) scale(.88); }
}
@media (prefers-reduced-motion: reduce) {
  .cat-ring-promo::before,
  .cat-ring-promo-btn,
  .cat-ring-promo-spark { animation: none !important; }
}

/* ==========================================================
   PHASE 8.9 — HOMEPAGE CONTENT + SIDEBAR POLISH
   - Hero image stays clean; finder CTA moved into copy side.
   - Editor's Picks become single horizontal rows + live Pinterest.
   - Latest ideas become single horizontal rows + premium tools box.
   ========================================================== */

/* 1 — Keep the hero photo completely unobstructed. */
.home-hero-media-clean::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.16);
}

.home-hero-mini-finder {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .9rem;
  max-width: 560px;
  margin-top: .9rem;
  padding: .72rem .8rem .72rem .92rem;
  border: 1px solid rgba(142,49,83,.15);
  border-radius: 14px;
  background:
    radial-gradient(circle at 0% 50%, rgba(232,200,199,.34), transparent 42%),
    rgba(255,255,255,.72);
  box-shadow: 0 8px 24px rgba(48,52,58,.045), 0 0 22px rgba(232,200,199,.10);
}
.home-hero-mini-finder::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 -26%;
  width: 24%;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.78), transparent);
  transform: skewX(-16deg);
  animation: heavenHeroFinderSheen 6.4s ease-in-out infinite;
}
.home-hero-mini-finder > * { position: relative; z-index: 1; }
.home-hero-mini-finder span,
.home-hero-mini-finder strong { display: block; }
.home-hero-mini-finder > div > span {
  margin-bottom: .12rem;
  color: var(--berry);
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.home-hero-mini-finder > div > strong {
  color: var(--charcoal);
  font-family: var(--serif);
  font-size: 1.02rem;
  line-height: 1.18;
  font-weight: 600;
}
.home-hero-mini-finder > a {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  min-height: 38px;
  padding: .55rem .78rem;
  border: 1px solid var(--berry);
  border-radius: 999px;
  color: #fff;
  background: var(--berry);
  box-shadow: 0 8px 18px rgba(142,49,83,.15);
  font-size: .64rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: .035em;
  text-transform: uppercase;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.home-hero-mini-finder > a:hover,
.home-hero-mini-finder > a:focus-visible {
  color: #fff;
  background: var(--charcoal);
  border-color: var(--charcoal);
  transform: translateY(-2px);
  box-shadow: 0 12px 26px rgba(142,49,83,.22), 0 0 24px rgba(232,200,199,.34);
}
@keyframes heavenHeroFinderSheen {
  0%, 70%, 100% { transform: translateX(0) skewX(-16deg); opacity: 0; }
  78% { opacity: .7; }
  92% { transform: translateX(640%) skewX(-16deg); opacity: 0; }
}

/* Shared homepage content + sidebar composition. */
.home-featured-layout,
.home-latest-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: clamp(1rem, 2.3vw, 1.55rem);
  align-items: start;
}
.home-featured-layout:not(.has-pinterest) {
  grid-template-columns: 1fr;
}

/* 2 — Editor's Picks: one horizontal story per line. */
.home-featured-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: .72rem;
}
.home-feature-card,
.home-feature-card-large,
.home-feature-card:not(.home-feature-card-large) {
  display: grid;
  grid-template-columns: 158px minmax(0, 1fr);
  min-height: 126px;
  grid-row: auto;
  overflow: hidden;
  border-radius: 12px;
  background: rgba(255,249,245,.98);
}
.home-feature-card-media,
.home-feature-card-large .home-feature-card-media,
.home-feature-card:not(.home-feature-card-large) .home-feature-card-media {
  width: 100%;
  height: 100%;
  min-height: 126px;
  aspect-ratio: auto;
  overflow: hidden;
}
.home-feature-card-media img,
.home-feature-card-large .home-feature-card-media img {
  width: 100%;
  height: 100%;
  min-height: 126px;
  object-fit: cover;
}
.home-feature-card-body,
.home-feature-card-large .home-feature-card-body {
  min-width: 0;
  justify-content: center;
  padding: .76rem .85rem;
}
.home-feature-card h3,
.home-feature-card-large h3 {
  margin: 0;
  font-size: 1.12rem;
  line-height: 1.16;
}
.home-feature-card p,
.home-feature-card-large p {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  margin: .32rem 0 .42rem;
  color: rgba(48,52,58,.68);
  font-size: .72rem;
  line-height: 1.42;
}
.home-feature-card .home-card-label { margin-bottom: .28rem; font-size: .56rem; }
.home-feature-card .home-card-meta { margin-top: auto; font-size: .58rem; }

/* Live Pinterest panel beside Editor's Picks. */
.home-live-pinterest,
.home-tools-sidebar {
  min-width: 0;
}
.home-side-card {
  position: sticky;
  top: 1.1rem;
  overflow: hidden;
  border: 1px solid rgba(142,49,83,.15);
  border-radius: 18px;
  background:
    radial-gradient(circle at 100% 0%, rgba(232,200,199,.30), transparent 35%),
    rgba(255,255,255,.80);
  box-shadow: 0 14px 34px rgba(48,52,58,.065), 0 0 28px rgba(232,200,199,.12);
}
.home-pinterest-live-card { padding: 1rem; }
.home-pinterest-live-card h3,
.home-tools-card h3 {
  margin: .15rem 0 .35rem;
  color: var(--berry);
  font-family: var(--serif);
  font-size: 1.72rem;
  line-height: 1.03;
}
.home-pinterest-live-card > p:not(.home-kicker),
.home-tools-card > p:not(.home-kicker) {
  margin: 0 0 .8rem;
  color: rgba(48,52,58,.67);
  font-size: .74rem;
  line-height: 1.55;
}
.home-pinterest-widget-wrap {
  overflow: hidden;
  min-height: 560px;
  border: 1px solid rgba(142,49,83,.09);
  border-radius: 13px;
  background: #fff;
}
.home-pinterest-widget-wrap > span,
.home-pinterest-widget-wrap iframe {
  max-width: 100% !important;
}
.home-side-link {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  margin-top: .75rem;
  color: var(--berry);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.home-side-link:hover,
.home-side-link:focus-visible { color: var(--dusty-blue); }

/* 3 — Latest: one horizontal story per line + premium tools panel. */
.home-latest-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: .72rem;
}
.home-latest-card {
  grid-template-columns: 158px minmax(0, 1fr);
  min-height: 126px;
}
.home-latest-card-media,
.home-latest-card-media img,
.home-latest-card-media .home-feature-placeholder {
  min-height: 126px;
}
.home-latest-card-body { padding: .76rem .85rem; }
.home-latest-card h3 { font-size: 1.12rem; line-height: 1.16; }
.home-latest-card p { margin: .32rem 0 .42rem; }

.home-tools-card {
  position: sticky;
  top: 1.1rem;
  padding: 1rem;
  isolation: isolate;
}
.home-tools-card::before {
  content: "";
  position: absolute;
  z-index: -1;
  width: 160px;
  height: 160px;
  right: -70px;
  top: -70px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(201,164,93,.24), transparent 68%);
  pointer-events: none;
}
.home-tool-item {
  position: relative;
  display: grid;
  grid-template-columns: 42px minmax(0,1fr) 20px;
  gap: .72rem;
  align-items: center;
  margin-top: .68rem;
  padding: .78rem;
  border: 1px solid rgba(142,49,83,.12);
  border-radius: 14px;
  color: var(--charcoal);
  background: rgba(255,249,245,.88);
  box-shadow: 0 8px 20px rgba(48,52,58,.035);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease, background .22s ease;
}
.home-tool-item:hover,
.home-tool-item:focus-visible {
  color: var(--charcoal);
  transform: translateY(-2px);
  border-color: rgba(142,49,83,.28);
  background: #fff;
  box-shadow: 0 12px 28px rgba(48,52,58,.075), 0 0 24px rgba(232,200,199,.36);
}
.home-tool-ring {
  background: linear-gradient(135deg, rgba(232,200,199,.34), rgba(255,249,245,.96));
  animation: heavenToolGlow 4.2s ease-in-out infinite;
}
.home-tool-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  color: #fff;
  background: var(--berry);
  border: 1px solid rgba(201,164,93,.55);
  box-shadow: 0 8px 18px rgba(142,49,83,.14);
  font-size: 1.05rem;
}
.home-tool-item span:nth-child(2) strong,
.home-tool-item span:nth-child(2) small { display: block; }
.home-tool-item span:nth-child(2) strong {
  font-family: var(--serif);
  font-size: 1.04rem;
  line-height: 1.08;
}
.home-tool-item span:nth-child(2) small {
  margin-top: .18rem;
  color: rgba(48,52,58,.62);
  font-size: .65rem;
  line-height: 1.35;
}
.home-tool-item > b {
  color: var(--berry);
  font-size: 1rem;
}
@keyframes heavenToolGlow {
  0%,100% { box-shadow: 0 8px 20px rgba(48,52,58,.035), 0 0 0 rgba(232,200,199,0); }
  50% { box-shadow: 0 10px 24px rgba(48,52,58,.055), 0 0 26px rgba(232,200,199,.30), 0 0 38px rgba(201,164,93,.09); }
}

@media (max-width: 980px) {
  .home-featured-layout,
  .home-latest-layout {
    grid-template-columns: 1fr;
  }
  .home-side-card,
  .home-tools-card {
    position: relative;
    top: auto;
  }
  .home-pinterest-widget-wrap {
    min-height: 440px;
  }
}

@media (max-width: 700px) {
  .home-hero-mini-finder {
    align-items: flex-start;
    flex-direction: column;
    padding: .78rem;
  }
  .home-hero-mini-finder > a {
    width: 100%;
  }
  .home-feature-card,
  .home-feature-card-large,
  .home-feature-card:not(.home-feature-card-large),
  .home-latest-card {
    grid-template-columns: 112px minmax(0, 1fr);
    min-height: 112px;
  }
  .home-feature-card-media,
  .home-feature-card-large .home-feature-card-media,
  .home-feature-card:not(.home-feature-card-large) .home-feature-card-media,
  .home-feature-card-media img,
  .home-feature-card-large .home-feature-card-media img,
  .home-latest-card-media,
  .home-latest-card-media img,
  .home-latest-card-media .home-feature-placeholder {
    min-height: 112px;
  }
  .home-feature-card-body,
  .home-feature-card-large .home-feature-card-body,
  .home-latest-card-body {
    padding: .66rem .7rem;
  }
  .home-feature-card h3,
  .home-feature-card-large h3,
  .home-latest-card h3 {
    font-size: .98rem;
  }
  .home-feature-card p,
  .home-feature-card-large p,
  .home-latest-card p {
    display: none;
  }
  .home-pinterest-widget-wrap {
    min-height: 390px;
  }
}

@media (max-width: 430px) {
  .home-feature-card,
  .home-feature-card-large,
  .home-feature-card:not(.home-feature-card-large),
  .home-latest-card {
    grid-template-columns: 96px minmax(0, 1fr);
    min-height: 102px;
  }
  .home-feature-card-media,
  .home-feature-card-large .home-feature-card-media,
  .home-feature-card:not(.home-feature-card-large) .home-feature-card-media,
  .home-feature-card-media img,
  .home-feature-card-large .home-feature-card-media img,
  .home-latest-card-media,
  .home-latest-card-media img,
  .home-latest-card-media .home-feature-placeholder {
    min-height: 102px;
  }
  .home-card-meta { font-size: .54rem !important; }
  .home-tool-item { grid-template-columns: 38px minmax(0,1fr) 16px; gap: .58rem; padding: .68rem; }
  .home-tool-icon { width: 38px; height: 38px; }
}

@media (prefers-reduced-motion: reduce) {
  .home-hero-mini-finder::before,
  .home-tool-ring { animation: none !important; }
}

/* =========================================================
   PHASE 8.10 — HOMEPAGE SIDEBAR + SEARCH + BUDGET POLISH
   ========================================================= */

/* Cleaner hero: keep only the two useful actions. */
.home-hero-actions-clean {
  margin-top: 1.05rem;
}

/* Compact homepage search — visible without turning the hero into a toolbar. */
.home-search-strip {
  width: min(1380px, calc(100% - 3rem));
  margin: 1.05rem auto 0;
  padding: .85rem 1rem;
  display: grid;
  grid-template-columns: minmax(250px, .8fr) minmax(360px, 1.2fr);
  gap: 1rem;
  align-items: center;
  border: 1px solid rgba(142,49,83,.13);
  border-radius: 16px;
  background:
    radial-gradient(circle at 0% 50%, rgba(232,200,199,.22), transparent 34%),
    rgba(255,249,245,.92);
  box-shadow: 0 10px 28px rgba(48,52,58,.045);
}
.home-search-copy {
  display: flex;
  align-items: center;
  gap: .75rem;
  min-width: 0;
}
.home-search-icon {
  display: grid;
  place-items: center;
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  color: #fff;
  background: var(--berry);
  border: 1px solid rgba(201,164,93,.48);
  box-shadow: 0 8px 18px rgba(142,49,83,.14);
  font-size: 1.3rem;
}
.home-search-copy strong,
.home-search-copy small { display: block; }
.home-search-copy strong {
  color: var(--berry);
  font-family: var(--serif);
  font-size: 1.12rem;
  line-height: 1.1;
}
.home-search-copy small {
  margin-top: .14rem;
  color: rgba(48,52,58,.61);
  font-size: .67rem;
  line-height: 1.35;
}
.home-search-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .55rem;
  min-width: 0;
}
.home-search-form input {
  width: 100%;
  min-width: 0;
  height: 44px;
  padding: 0 .95rem;
  border: 1px solid rgba(142,49,83,.18);
  border-radius: 999px;
  color: var(--charcoal);
  background: rgba(255,255,255,.9);
  outline: none;
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.home-search-form input:focus {
  border-color: rgba(142,49,83,.46);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(232,200,199,.28), 0 0 24px rgba(232,200,199,.24);
}
.home-search-form button {
  min-height: 44px;
  padding: 0 1.05rem;
  border: 0;
  border-radius: 999px;
  color: #fff;
  background: var(--berry);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  cursor: pointer;
  box-shadow: 0 9px 20px rgba(142,49,83,.16);
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.home-search-form button:hover,
.home-search-form button:focus-visible {
  transform: translateY(-2px);
  background: #7e2948;
  box-shadow: 0 12px 24px rgba(142,49,83,.22), 0 0 24px rgba(232,200,199,.36);
}

/* Featured sidebar always exists now: Pinterest first, author card below. */
.home-featured-layout.has-sidebar {
  grid-template-columns: minmax(0, 1fr) 330px;
}
.home-featured-sidebar,
.home-tools-stack {
  display: grid;
  gap: 1rem;
  min-width: 0;
}
.home-featured-sidebar .home-side-card,
.home-tools-stack .home-side-card,
.home-tools-stack .home-tools-card {
  position: relative;
  top: auto;
}
.home-pinterest-widget-wrap {
  min-height: 440px;
}

/* About the author card beneath Pinterest. */
.home-author-card {
  padding: 1rem;
  overflow: hidden;
  background:
    radial-gradient(circle at 100% 0%, rgba(201,164,93,.14), transparent 35%),
    linear-gradient(160deg, rgba(255,249,245,.98), rgba(232,200,199,.18));
}
.home-author-head {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  gap: .72rem;
  align-items: center;
  margin-top: .7rem;
}
.home-author-avatar {
  width: 56px;
  height: 56px;
  border-radius: 50% !important;
  object-fit: cover;
  border: 2px solid rgba(201,164,93,.58);
  box-shadow: 0 8px 18px rgba(48,52,58,.09);
}
.home-author-avatar-fallback {
  display: grid;
  place-items: center;
  color: var(--berry);
  background: rgba(232,200,199,.36);
  font-family: var(--serif);
  font-size: 1.45rem;
}
.home-author-head strong,
.home-author-head small { display: block; }
.home-author-head strong {
  color: var(--berry);
  font-family: var(--serif);
  font-size: 1.12rem;
  line-height: 1.08;
}
.home-author-head small {
  margin-top: .18rem;
  color: rgba(48,52,58,.56);
  font-size: .59rem;
  letter-spacing: .03em;
}
.home-author-card > p:not(.home-kicker) {
  margin: .72rem 0 .55rem;
  color: rgba(48,52,58,.68);
  font-size: .72rem;
  line-height: 1.55;
}
.home-author-story {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  color: var(--berry);
  font-size: .64rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.home-author-socials {
  margin-top: .85rem;
  padding-top: .8rem;
  border-top: 1px solid rgba(142,49,83,.11);
}
.home-author-socials svg {
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
}
.home-author-pinterest {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  min-height: 40px;
  width: 100%;
  border-radius: 999px;
  color: #fff;
  background: var(--berry);
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .03em;
  text-transform: uppercase;
  box-shadow: 0 9px 22px rgba(142,49,83,.18), 0 0 20px rgba(232,200,199,.18);
  transition: transform .2s ease, box-shadow .2s ease;
}
.home-author-pinterest svg { filter: brightness(0) invert(1); }
.home-author-pinterest:hover,
.home-author-pinterest:focus-visible {
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 12px 26px rgba(142,49,83,.24), 0 0 28px rgba(232,200,199,.34);
}
.home-author-social-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .5rem;
  margin-top: .5rem;
}
.home-author-social-row:empty { display: none; }
.home-author-social-row a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .36rem;
  min-height: 36px;
  padding: 0 .55rem;
  border: 1px solid rgba(142,49,83,.13);
  border-radius: 999px;
  color: var(--charcoal);
  background: rgba(255,255,255,.68);
  font-size: .61rem;
  font-weight: 700;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.home-author-social-row a:hover,
.home-author-social-row a:focus-visible {
  color: var(--berry);
  transform: translateY(-2px);
  border-color: rgba(142,49,83,.27);
  box-shadow: 0 8px 18px rgba(48,52,58,.07), 0 0 18px rgba(232,200,199,.28);
}

/* Tools + curated budget reading stack beside Latest Wedding Ideas. */
.home-budget-card {
  padding: 1rem;
  background:
    radial-gradient(circle at 100% 0%, rgba(120,150,173,.12), transparent 35%),
    rgba(255,255,255,.82);
}
.home-budget-card h3 {
  margin: .15rem 0 .35rem;
  color: var(--berry);
  font-family: var(--serif);
  font-size: 1.56rem;
  line-height: 1.03;
}
.home-budget-card > p:not(.home-kicker) {
  margin: 0 0 .7rem;
  color: rgba(48,52,58,.65);
  font-size: .7rem;
  line-height: 1.5;
}
.home-budget-list {
  display: grid;
  gap: .45rem;
}
.home-budget-item {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) 16px;
  gap: .58rem;
  align-items: center;
  padding: .5rem;
  border: 1px solid rgba(142,49,83,.09);
  border-radius: 12px;
  color: var(--charcoal);
  background: rgba(255,249,245,.82);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease;
}
.home-budget-item:hover,
.home-budget-item:focus-visible {
  color: var(--charcoal);
  transform: translateY(-2px);
  border-color: rgba(142,49,83,.24);
  background: #fff;
  box-shadow: 0 9px 20px rgba(48,52,58,.06), 0 0 18px rgba(232,200,199,.28);
}
.home-budget-thumb {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  overflow: hidden;
  border-radius: 10px;
  color: var(--berry);
  background: rgba(232,200,199,.28);
  font-size: 1.05rem;
}
.home-budget-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
}
.home-budget-copy,
.home-budget-copy small,
.home-budget-copy strong { display: block; min-width: 0; }
.home-budget-copy small {
  margin-bottom: .12rem;
  color: var(--dusty-blue);
  font-size: .49rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.home-budget-copy strong {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  font-family: var(--serif);
  font-size: .86rem;
  line-height: 1.13;
}
.home-budget-arrow {
  color: var(--berry);
  font-size: .8rem;
}

/* The old large standalone author block was intentionally moved into the Pinterest sidebar. */
.home-editorial { display: none; }

@media (max-width: 980px) {
  .home-search-strip {
    grid-template-columns: 1fr;
  }
  .home-featured-layout.has-sidebar,
  .home-latest-layout {
    grid-template-columns: 1fr;
  }
  .home-featured-sidebar,
  .home-tools-stack {
    grid-template-columns: repeat(2, minmax(0,1fr));
    align-items: start;
  }
  .home-pinterest-widget-wrap { min-height: 390px; }
}

@media (max-width: 700px) {
  .home-search-strip {
    width: min(100% - 2rem, 1380px);
    margin-top: .8rem;
    padding: .75rem;
    border-radius: 14px;
  }
  .home-search-copy small { display: none; }
  .home-search-form {
    grid-template-columns: 1fr auto;
  }
  .home-featured-sidebar,
  .home-tools-stack {
    grid-template-columns: 1fr;
  }
  .home-pinterest-widget-wrap { min-height: 360px; }
  .home-author-card,
  .home-budget-card { padding: .85rem; }
}

@media (max-width: 430px) {
  .home-search-form {
    grid-template-columns: 1fr;
  }
  .home-search-form button { width: 100%; }
  .home-author-social-row { grid-template-columns: 1fr; }
  .home-budget-item { grid-template-columns: 48px minmax(0,1fr) 14px; }
  .home-budget-thumb { width: 48px; height: 48px; }
}

/* =====================================================
   PHASE 8.11 — ARTICLE CENTER + DUAL STICKY RESOURCE RAILS
   ===================================================== */
.article-v3-shell {
  width: min(1380px, calc(100% - 36px));
}

.article-v3-layout {
  display: grid;
  grid-template-columns: minmax(190px, 235px) minmax(0, 760px) minmax(190px, 235px);
  gap: clamp(1rem, 1.8vw, 1.55rem);
  align-items: start;
  justify-content: center;
}

.article-v3-main {
  min-width: 0;
  width: 100%;
  max-width: 760px;
  margin-inline: auto;
}

.article-v3-rail {
  min-width: 0;
}

.article-v3-rail-inner {
  position: sticky;
  top: 88px;
  display: flex;
  flex-direction: column;
  gap: .85rem;
  max-height: calc(100vh - 108px);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(142,49,83,.25) transparent;
  padding: 2px 3px 10px;
}

.article-v3-rail-inner::-webkit-scrollbar { width: 5px; }
.article-v3-rail-inner::-webkit-scrollbar-track { background: transparent; }
.article-v3-rail-inner::-webkit-scrollbar-thumb { background: rgba(142,49,83,.22); border-radius: 99px; }

.article-v3-sidebox,
.article-v3-live-card,
.article-v3-finder-box {
  position: relative;
  overflow: hidden;
  border-color: rgba(232,200,199,.9);
  box-shadow: 0 12px 30px rgba(48,52,58,.055);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.article-v3-sidebox:hover,
.article-v3-live-card:hover,
.article-v3-finder-box:hover {
  transform: translateY(-2px);
  border-color: rgba(142,49,83,.32);
  box-shadow: 0 15px 34px rgba(142,49,83,.10), 0 0 24px rgba(201,164,93,.08);
}

/* Premium Save & Share */
.article-v3-share-top .save-share {
  position: relative;
  width: 100%;
  max-width: none;
  overflow: hidden;
  margin-bottom: 1rem;
  padding: .82rem .9rem .9rem;
  background:
    radial-gradient(circle at 8% 0%, rgba(232,200,199,.46), transparent 35%),
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(255,249,245,.96));
  border: 1px solid rgba(142,49,83,.18);
  border-radius: 16px;
  box-shadow: 0 14px 34px rgba(48,52,58,.055);
}

.article-v3-share-top .save-share::after {
  content: "";
  position: absolute;
  inset: -80% auto auto -25%;
  width: 34%;
  height: 240%;
  transform: rotate(18deg);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.72), transparent);
  animation: articleShareShine 8s ease-in-out infinite;
  pointer-events: none;
}

.article-v3-share-top .save-share-title {
  margin: 0 0 .55rem;
  color: var(--berry);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .17em;
  text-transform: uppercase;
}

.article-v3-share-top .save-share-buttons { gap: .5rem; }
.article-v3-share-top .save-share-buttons a,
.article-v3-share-top .save-share-buttons button {
  min-height: 42px;
  border-color: rgba(142,49,83,.18);
  background: rgba(255,255,255,.92);
  box-shadow: 0 6px 14px rgba(48,52,58,.04);
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
}
.article-v3-share-top .save-share-buttons a:hover,
.article-v3-share-top .save-share-buttons button:hover {
  transform: translateY(-2px);
  border-color: rgba(142,49,83,.38);
  background: #fff;
  box-shadow: 0 10px 20px rgba(142,49,83,.10), 0 0 18px rgba(201,164,93,.09);
}
.article-v3-share-top .share-pin {
  color: #fff;
  background: linear-gradient(135deg, var(--berry), #A83A62) !important;
  border-color: transparent !important;
}
.article-v3-share-top .share-pin:hover { color: #fff; }

@keyframes articleShareShine {
  0%, 72% { left: -32%; opacity: 0; }
  78% { opacity: .85; }
  92%, 100% { left: 112%; opacity: 0; }
}

/* Polished personalized finder */
.article-v3-finder-box {
  color: var(--ivory);
  background:
    radial-gradient(circle at 100% 0%, rgba(201,164,93,.16), transparent 38%),
    linear-gradient(145deg, #3A313A 0%, #5B2C42 52%, #8E3153 120%);
  border-color: rgba(201,164,93,.34);
  box-shadow: 0 16px 34px rgba(88,35,59,.18), 0 0 28px rgba(232,200,199,.12);
}
.article-v3-finder-box::before {
  content: "";
  position: absolute;
  inset: -45%;
  background: radial-gradient(circle, rgba(255,255,255,.11), transparent 33%);
  animation: articleFinderGlow 7s ease-in-out infinite alternate;
  pointer-events: none;
}
.article-v3-finder-box > * { position: relative; z-index: 1; }
.article-v3-finder-box h2 { color: #fff; font-size: 1.42rem; }
.article-v3-finder-box p:not(.article-v2-small-label) { color: rgba(255,249,245,.82); }
.article-v3-finder-box .article-v2-small-label { color: #F4DBA7; }
.article-v3-finder-orbit {
  position: absolute;
  right: -48px;
  top: -52px;
  width: 132px;
  height: 132px;
  border: 1px solid rgba(244,219,167,.24);
  border-radius: 50%;
}
.article-v3-finder-points {
  display: grid;
  gap: .34rem;
  margin: .8rem 0 .9rem;
}
.article-v3-finder-points span {
  display: block;
  padding: .42rem .5rem;
  color: rgba(255,249,245,.9);
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 9px;
  font-size: .69rem;
}
.article-v3-finder-btn {
  width: 100%;
  justify-content: center;
  color: #6E2946;
  background: linear-gradient(135deg, #FFF9F5, #E8C8C7);
  box-shadow: 0 10px 24px rgba(0,0,0,.16), 0 0 18px rgba(232,200,199,.17);
}
.article-v3-finder-btn:hover { color: #6E2946; background: #fff; }
@keyframes articleFinderGlow {
  from { transform: translate3d(-4%, -3%, 0); opacity: .4; }
  to { transform: translate3d(5%, 4%, 0); opacity: .9; }
}

/* Tool rail */
.article-v3-tools-box {
  background: linear-gradient(145deg, #FFF9F5, #F6E9E8);
}
.article-v3-tools-spark {
  position: absolute;
  right: .9rem;
  top: .75rem;
  color: var(--gold);
}
.article-v3-tool-link {
  display: grid;
  grid-template-columns: 34px minmax(0,1fr) auto;
  gap: .55rem;
  align-items: center;
  padding: .65rem .15rem;
  border-bottom: 1px solid rgba(232,200,199,.8);
  color: var(--charcoal);
}
.article-v3-tool-link:last-child { border-bottom: 0; }
.article-v3-tool-link:hover { color: var(--berry); transform: translateX(2px); }
.article-v3-tool-icon {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  color: var(--berry);
  background: #fff;
  border: 1px solid rgba(142,49,83,.16);
  border-radius: 50%;
}
.article-v3-tool-link strong,
.article-v3-tool-link small { display: block; }
.article-v3-tool-link strong { font-size: .76rem; line-height: 1.2; }
.article-v3-tool-link small { margin-top: .16rem; color: #77716F; font-size: .61rem; line-height: 1.3; }
.article-v3-tool-link b { font-weight: 500; color: var(--gold-dark); }

/* Live social cards */
.article-v3-live-card h2 { font-size: 1.28rem; }
.article-v3-pin-widget {
  min-height: 360px;
  overflow: hidden;
  margin: .5rem 0 .75rem;
  border-radius: 10px;
  background: #fff;
}
.article-v3-pin-widget > span,
.article-v3-pin-widget iframe { max-width: 100% !important; }
.article-v3-social-btn,
.article-v3-facebook-btn {
  display: inline-flex;
  width: 100%;
  min-height: 39px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .03em;
}
.article-v3-social-btn {
  color: #fff;
  background: var(--berry);
  box-shadow: 0 8px 20px rgba(142,49,83,.16);
}
.article-v3-social-btn:hover { color: #fff; background: #74243F; }
.article-v3-facebook-frame {
  overflow: hidden;
  margin: .55rem 0 .7rem;
  border-radius: 10px;
  background: #fff;
}
.article-v3-facebook-frame iframe { display: block; width: 100%; max-width: 100%; }
.article-v3-facebook-btn { color: #fff; background: #4267B2; }
.article-v3-facebook-btn:hover { color: #fff; background: #365899; }

/* Related articles: one horizontal article per line */
.article-v3-related { margin-top: 2.2rem; }
.article-v3-related-list { display: grid; gap: .72rem; }
.article-v3-related-card {
  display: grid;
  grid-template-columns: 180px minmax(0,1fr);
  min-height: 132px;
  border-radius: 14px;
}
.article-v3-related-image {
  aspect-ratio: auto;
  min-height: 132px;
  height: 100%;
}
.article-v3-related-body {
  align-self: center;
  padding: .85rem 1rem;
}
.article-v3-related-kicker {
  display: block;
  margin-bottom: .28rem;
  color: var(--berry) !important;
  font-size: .58rem !important;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.article-v3-related-body h3 { margin-bottom: .3rem; font-size: 1.2rem; }
.article-v3-related-body p { margin: 0 0 .38rem; color: #6E6F72; font-size: .76rem; line-height: 1.45; }
.article-v3-related-body > span:last-child { color: var(--dusty-blue); }

/* Footer links: motion + brand color response */
.footer-v2-col a {
  display: inline-block;
  position: relative;
  transition: color .2s ease, transform .2s ease, text-shadow .2s ease;
}
.footer-v2-col a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -2px;
  height: 1px;
  background: linear-gradient(90deg, var(--gold), var(--blush));
  transition: right .22s ease;
}
.footer-v2-col a:hover,
.footer-v2-col a:focus-visible {
  color: #fff;
  transform: translateX(4px);
  text-shadow: 0 0 14px rgba(201,164,93,.28);
}
.footer-v2-col a:hover::after,
.footer-v2-col a:focus-visible::after { right: 0; }

/* Tablet: keep article first, then resource rails. */
@media (max-width: 1080px) {
  .article-v3-shell { width: min(920px, calc(100% - 30px)); }
  .article-v3-layout { grid-template-columns: 1fr; gap: 1rem; }
  .article-v3-main { order: 1; max-width: 780px; }
  .article-v3-rail-left { order: 2; }
  .article-v3-rail-right { order: 3; }
  .article-v3-rail-inner {
    position: static;
    max-height: none;
    overflow: visible;
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: .8rem;
    padding: 0;
  }
  .article-v3-pin-widget { min-height: 320px; }
}

@media (max-width: 720px) {
  .article-v3-shell { width: min(100% - 20px, 760px); }
  .article-v3-rail-inner { grid-template-columns: 1fr; }
  .article-v3-share-top .save-share-buttons { flex-wrap: nowrap; }
  .article-v3-share-top .save-share-buttons a,
  .article-v3-share-top .save-share-buttons button {
    width: 44px;
    min-width: 44px;
    height: 44px;
    padding: 0;
    justify-content: center;
  }
  .article-v3-share-top .save-share-buttons span:not(.share-copy-icon) { display: none; }
  .article-v3-related-card { grid-template-columns: 118px minmax(0,1fr); min-height: 112px; }
  .article-v3-related-image { min-height: 112px; }
  .article-v3-related-body { padding: .72rem .78rem; }
  .article-v3-related-body h3 { font-size: 1rem; }
  .article-v3-related-body p { display: none; }
  .article-v3-related-body > span:last-child { font-size: .62rem; }
}

@media (max-width: 430px) {
  .article-v3-related-card { grid-template-columns: 102px minmax(0,1fr); }
  .article-v3-related-image { min-height: 106px; }
  .article-v3-related-body h3 { font-size: .94rem; }
  .article-v3-finder-points span { font-size: .66rem; }
}

@media (prefers-reduced-motion: reduce) {
  .article-v3-share-top .save-share::after,
  .article-v3-finder-box::before { animation: none; }
  .article-v3-sidebox,
  .article-v3-live-card,
  .article-v3-finder-box,
  .footer-v2-col a { transition: none; }
  .article-v3-sidebox:hover,
  .article-v3-live-card:hover,
  .article-v3-finder-box:hover,
  .footer-v2-col a:hover { transform: none; }
}

/* =====================================================
   PHASE 8.12 — WIDER, FULLER ARTICLE RESOURCE RAILS
   Keeps the article centered while making both side rails
   feel like intentional magazine panels rather than mini widgets.
   ===================================================== */
@media (min-width: 1081px) {
  .article-v3-shell {
    width: min(1460px, calc(100% - 24px));
  }

  .article-v3-layout {
    grid-template-columns: minmax(245px, 280px) minmax(0, 730px) minmax(245px, 280px);
    gap: clamp(.95rem, 1.35vw, 1.25rem);
  }

  .article-v3-main {
    max-width: 730px;
  }

  .article-v3-rail-inner {
    gap: 1rem;
    padding-inline: 2px;
  }

  .article-v3-sidebox,
  .article-v3-live-card,
  .article-v3-finder-box {
    padding: 1.15rem 1.1rem;
    border-radius: 18px;
  }

  .article-v3-sidebox h2,
  .article-v3-live-card h2 {
    font-size: 1.42rem;
    line-height: 1.08;
  }

  .article-v3-sidebox p,
  .article-v3-live-card p {
    line-height: 1.55;
  }

  .article-v2-searchbox {
    min-height: 168px;
  }

  .article-v2-searchbox form {
    gap: .55rem;
  }

  .article-v2-searchbox input {
    min-height: 44px;
  }

  .article-v2-searchbox button {
    min-height: 44px;
    padding-inline: .9rem;
  }

  .article-v2-topic-links a {
    min-height: 42px;
    padding-block: .62rem;
    font-size: .78rem;
  }

  .article-v3-tools-box {
    min-height: 218px;
  }

  .article-v3-tool-link {
    grid-template-columns: 40px minmax(0,1fr) auto;
    gap: .7rem;
    padding: .82rem .1rem;
  }

  .article-v3-tool-icon {
    width: 38px;
    height: 38px;
  }

  .article-v3-tool-link strong {
    font-size: .84rem;
  }

  .article-v3-tool-link small {
    margin-top: .2rem;
    font-size: .67rem;
    line-height: 1.4;
  }

  .article-v3-finder-box {
    min-height: 338px;
    padding: 1.3rem 1.2rem;
  }

  .article-v3-finder-box h2 {
    font-size: 1.62rem;
    line-height: 1.08;
  }

  .article-v3-finder-box p:not(.article-v2-small-label) {
    font-size: .8rem;
    line-height: 1.55;
  }

  .article-v3-finder-points {
    gap: .44rem;
    margin: 1rem 0 1.05rem;
  }

  .article-v3-finder-points span {
    padding: .55rem .62rem;
    font-size: .73rem;
  }

  .article-v3-finder-btn {
    min-height: 44px;
  }

  .article-v3-live-card {
    padding-bottom: 1.15rem;
  }

  .article-v3-pin-widget {
    min-height: 420px;
    margin-block: .7rem .85rem;
  }

  .article-v3-social-btn,
  .article-v3-facebook-btn {
    min-height: 44px;
  }

  .article-v3-facebook-frame iframe {
    min-height: 380px;
  }
}

/* Mid-size laptops: keep three columns, but avoid squeezing article copy. */
@media (min-width: 1081px) and (max-width: 1260px) {
  .article-v3-layout {
    grid-template-columns: minmax(215px, 235px) minmax(0, 690px) minmax(215px, 235px);
    gap: .9rem;
  }
  .article-v3-main { max-width: 690px; }
  .article-v3-sidebox,
  .article-v3-live-card,
  .article-v3-finder-box { padding: 1rem .95rem; }
}


/* =====================================================
   PHASE 8.13 — ARTICLE RAILS USE THE SAME PREMIUM CARDS
   AS THE HOMEPAGE. The rail width follows the homepage
   330px card width on large screens; responsive only when
   the viewport physically cannot fit two 330px rails.
   ===================================================== */

/* Neutralize the Phase 8.12 mini-widget sizing overrides. */
.article-v3-rail .home-side-card,
.article-v3-rail .home-tools-card {
  position: relative;
  top: auto;
  width: 100%;
  min-width: 0;
}

@media (min-width: 1320px) {
  .article-v3-shell { width: min(1400px, calc(100% - 24px)); }
  .article-v3-layout {
    grid-template-columns: 330px minmax(0, 680px) 330px;
    gap: 1.15rem;
  }
  .article-v3-main { max-width: 680px; }
}

@media (min-width: 1081px) and (max-width: 1319px) {
  .article-v3-shell { width: min(1240px, calc(100% - 24px)); }
  .article-v3-layout {
    grid-template-columns: minmax(250px, 285px) minmax(0, 650px) minmax(250px, 285px);
    gap: .9rem;
  }
  .article-v3-main { max-width: 650px; }
}

/* The same visual shell used by homepage Pinterest / tools cards. */
.article-v4-side-card,
.article-v4-finder-card,
.article-v4-facebook-card {
  padding: 1rem;
}
.article-v4-side-card h3,
.article-v4-finder-card h3,
.article-v4-facebook-card h3 {
  margin: .15rem 0 .4rem;
  color: var(--berry);
  font-family: var(--serif);
  font-size: 1.56rem;
  line-height: 1.04;
}
.article-v4-side-card > p:not(.home-kicker),
.article-v4-facebook-card > p:not(.home-kicker) {
  margin: 0 0 .75rem;
  color: rgba(48,52,58,.67);
  font-size: .72rem;
  line-height: 1.5;
}

.article-v4-search-form {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: .5rem;
  margin-top: .75rem;
}
.article-v4-search-form input {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  padding: 0 .8rem;
  border: 1px solid rgba(142,49,83,.14);
  border-radius: 999px;
  color: var(--charcoal);
  background: rgba(255,249,245,.95);
  outline: none;
}
.article-v4-search-form input:focus {
  border-color: rgba(142,49,83,.38);
  box-shadow: 0 0 0 3px rgba(232,200,199,.28);
}
.article-v4-search-form button {
  min-height: 44px;
  padding: 0 .9rem;
  border: 0;
  border-radius: 999px;
  color: #fff;
  background: var(--berry);
  font-size: .66rem;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 8px 18px rgba(142,49,83,.16);
}
.article-v4-search-form button:hover,
.article-v4-search-form button:focus-visible {
  background: #762542;
  box-shadow: 0 10px 22px rgba(142,49,83,.22), 0 0 20px rgba(232,200,199,.3);
}

.article-v4-topic-links a {
  min-height: 42px;
  padding: .62rem .08rem;
  font-size: .76rem;
}

/* Exact homepage tool-card language inside the article. */
.article-v4-tools-card { padding: 1rem; }
.article-v4-tools-card h3 { font-size: 1.72rem; }

/* Personalized card: same outer shell, premium dark interior treatment. */
.article-v4-finder-card {
  isolation: isolate;
  color: #fff;
  background:
    radial-gradient(circle at 100% 0%, rgba(201,164,93,.22), transparent 34%),
    linear-gradient(145deg, #30343A 0%, #5D3046 58%, #8E3153 125%);
  box-shadow: 0 14px 34px rgba(48,52,58,.11), 0 0 28px rgba(232,200,199,.12);
}
.article-v4-finder-card h3 {
  position: relative;
  z-index: 1;
  color: #fff;
  font-size: 1.72rem;
}
.article-v4-finder-card > p:not(.home-kicker) {
  position: relative;
  z-index: 1;
  margin: 0;
  color: rgba(255,249,245,.82);
  font-size: .74rem;
  line-height: 1.55;
}
.article-v4-finder-orbit {
  position: absolute;
  right: -72px;
  top: -72px;
  width: 180px;
  height: 180px;
  border: 1px solid rgba(201,164,93,.22);
  border-radius: 50%;
  box-shadow: inset 0 0 50px rgba(201,164,93,.04);
}
.article-v4-finder-steps {
  position: relative;
  z-index: 1;
  display: grid;
  gap: .45rem;
  margin: .95rem 0;
}
.article-v4-finder-steps span {
  display: grid;
  grid-template-columns: 26px minmax(0,1fr);
  gap: .45rem;
  align-items: center;
  padding: .58rem .65rem;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 11px;
  background: rgba(255,255,255,.07);
  color: rgba(255,249,245,.72);
  font-size: .64rem;
}
.article-v4-finder-steps strong {
  color: #fff;
  font-size: .7rem;
}
.article-v4-finder-btn {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  min-height: 42px;
  width: 100%;
  border-radius: 999px;
  color: var(--berry);
  background: linear-gradient(135deg, #FFF9F5, #E8C8C7);
  font-size: .67rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .03em;
  box-shadow: 0 10px 24px rgba(0,0,0,.14);
}
.article-v4-finder-btn:hover,
.article-v4-finder-btn:focus-visible {
  color: var(--berry);
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(0,0,0,.18), 0 0 24px rgba(232,200,199,.18);
}

/* Pinterest card is literally the homepage Pinterest card component. */
.article-v4-pinterest-card .home-pinterest-widget-wrap {
  min-height: 440px;
}

.article-v4-facebook-frame {
  overflow: hidden;
  margin-top: .7rem;
  border: 1px solid rgba(142,49,83,.09);
  border-radius: 13px;
  background: #fff;
}
.article-v4-facebook-frame iframe {
  display: block;
  width: 100% !important;
  max-width: 100%;
}

/* Premium Save & Share — Pinterest button repaired. */
.article-v3-share-top .share-pinterest,
.article-v2-save-card .share-pinterest {
  color: #fff !important;
  background: linear-gradient(135deg, #8E3153, #A83A62) !important;
  border-color: transparent !important;
  box-shadow: 0 9px 22px rgba(142,49,83,.18), 0 0 20px rgba(232,200,199,.16);
}
.article-v3-share-top .share-pinterest svg,
.article-v2-save-card .share-pinterest svg {
  fill: #fff !important;
  width: 18px;
  height: 18px;
}
.article-v3-share-top .share-pinterest:hover,
.article-v2-save-card .share-pinterest:hover {
  color: #fff !important;
  background: #762542 !important;
  box-shadow: 0 12px 26px rgba(142,49,83,.24), 0 0 28px rgba(232,200,199,.30);
}

/* Keep the sticky rail behavior: the whole stack scrolls with the article. */
@media (min-width: 1081px) {
  .article-v3-rail-inner {
    position: sticky;
    top: 88px;
    max-height: calc(100vh - 108px);
    overflow-y: auto;
    gap: 1rem;
    padding: 2px 3px 10px;
  }
}

@media (max-width: 1080px) {
  .article-v3-rail .home-side-card,
  .article-v3-rail .home-tools-card { position: relative; top: auto; }
  .article-v4-pinterest-card .home-pinterest-widget-wrap { min-height: 390px; }
}

@media (max-width: 720px) {
  .article-v4-side-card,
  .article-v4-tools-card,
  .article-v4-finder-card,
  .article-v4-pinterest-card,
  .article-v4-facebook-card { border-radius: 16px; }
  .article-v4-search-form { grid-template-columns: 1fr; }
  .article-v4-search-form button { width: 100%; }
  .article-v4-pinterest-card .home-pinterest-widget-wrap { min-height: 340px; }
  .article-v3-share-top .save-share-buttons a,
  .article-v3-share-top .save-share-buttons button {
    width: auto;
    min-width: 44px;
    padding: 0 .7rem;
  }
  .article-v3-share-top .share-pinterest {
    flex: 1 1 auto;
  }
  .article-v3-share-top .share-pinterest span {
    display: inline !important;
    font-size: .65rem;
  }
}

@media (max-width: 430px) {
  .article-v3-share-top .share-pinterest span { font-size: .6rem; }
  .article-v3-share-top .share-pinterest { padding-inline: .58rem; }
}

/* =====================================================
   PHASE 8.14 — ARTICLE ONE-BOX TEST: PINTEREST ONLY
   Clean article + one full Pinterest card. Do not add other rails yet.
   ===================================================== */
.article-v3-shell {
  width: min(1160px, calc(100% - 36px));
}

.article-v5-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(290px, 25vw, 330px);
  gap: clamp(1.25rem, 2.1vw, 1.8rem);
  align-items: start;
  justify-content: center;
}

.article-v5-layout.no-pinterest {
  grid-template-columns: minmax(0, 800px);
}

.article-v5-layout .article-v3-main {
  width: 100%;
  max-width: 800px;
  min-width: 0;
  margin-inline: auto;
}

.article-v5-pinterest-rail {
  min-width: 0;
  width: 100%;
}

.article-v5-pinterest-sticky {
  position: sticky;
  top: 92px;
  width: 100%;
}

.article-v5-pinterest-rail .home-pinterest-live-card {
  width: 100%;
  max-width: none;
  padding: 1.15rem;
  overflow: hidden;
  border: 1px solid rgba(232,200,199,.95);
  border-radius: 20px;
  background:
    radial-gradient(circle at 100% 0%, rgba(201,164,93,.10), transparent 34%),
    rgba(255,249,245,.98);
  box-shadow: 0 18px 44px rgba(48,52,58,.07), 0 0 28px rgba(232,200,199,.12);
}

.article-v5-pinterest-rail .home-pinterest-live-card:hover {
  transform: translateY(-2px);
  border-color: rgba(142,49,83,.28);
  box-shadow: 0 20px 48px rgba(142,49,83,.10), 0 0 32px rgba(232,200,199,.20);
}

.article-v5-pinterest-rail .home-pinterest-widget-wrap {
  width: 100%;
  min-height: 470px;
  overflow: hidden;
  margin-top: .8rem;
  border-radius: 15px;
  background: linear-gradient(180deg, rgba(232,200,199,.18), rgba(255,249,245,.95));
}

.article-v5-pinterest-rail .home-pinterest-widget-wrap > span,
.article-v5-pinterest-rail .home-pinterest-widget-wrap iframe {
  max-width: 100% !important;
}

/* Retire the old dual-rail layout for this test build. */
.article-v5-layout .article-v3-rail-left,
.article-v5-layout .article-v3-rail-right {
  display: none !important;
}

@media (max-width: 980px) {
  .article-v3-shell {
    width: min(840px, calc(100% - 28px));
  }
  .article-v5-layout,
  .article-v5-layout.has-pinterest,
  .article-v5-layout.no-pinterest {
    grid-template-columns: 1fr;
    gap: 1.15rem;
  }
  .article-v5-layout .article-v3-main {
    max-width: 800px;
    order: 1;
  }
  .article-v5-pinterest-rail {
    order: 2;
    max-width: 800px;
    margin-inline: auto;
  }
  .article-v5-pinterest-sticky {
    position: static;
  }
  .article-v5-pinterest-rail .home-pinterest-widget-wrap {
    min-height: 400px;
  }
}

@media (max-width: 720px) {
  .article-v3-shell {
    width: min(100% - 20px, 800px);
  }
  .article-v5-pinterest-rail .home-pinterest-live-card {
    padding: .95rem;
    border-radius: 17px;
  }
  .article-v5-pinterest-rail .home-pinterest-widget-wrap {
    min-height: 340px;
  }
}

/* =====================================================
   PHASE 8.15 — ARTICLE ONE-BY-ONE BOX TEST
   Add only Search on the left; keep Pinterest on the right.
   ===================================================== */
.article-v3-shell {
  width: min(1280px, calc(100% - 30px));
}

.article-v6-layout {
  display: grid;
  grid-template-columns: minmax(210px, 230px) minmax(0, 690px) minmax(280px, 310px);
  gap: clamp(1rem, 1.55vw, 1.35rem);
  align-items: start;
  justify-content: center;
}

.article-v6-layout.no-pinterest {
  grid-template-columns: minmax(210px, 230px) minmax(0, 760px);
}

.article-v6-layout .article-v3-main {
  width: 100%;
  max-width: 690px;
  min-width: 0;
  margin-inline: auto;
}

.article-v6-layout.no-pinterest .article-v3-main {
  max-width: 760px;
}

.article-v6-search-rail,
.article-v5-pinterest-rail {
  min-width: 0;
  width: 100%;
}

.article-v6-search-sticky,
.article-v5-pinterest-sticky {
  position: sticky;
  top: 92px;
  width: 100%;
}

.article-v6-search-card {
  width: 100%;
  max-width: none;
  padding: 1.15rem;
  overflow: hidden;
  border: 1px solid rgba(232,200,199,.95);
  border-radius: 20px;
  background:
    radial-gradient(circle at 0% 0%, rgba(120,150,173,.10), transparent 38%),
    radial-gradient(circle at 100% 100%, rgba(201,164,93,.08), transparent 34%),
    rgba(255,249,245,.98);
  box-shadow: 0 18px 44px rgba(48,52,58,.07), 0 0 28px rgba(232,200,199,.12);
  transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}

.article-v6-search-card:hover,
.article-v6-search-card:focus-within {
  transform: translateY(-2px);
  border-color: rgba(142,49,83,.26);
  box-shadow: 0 20px 48px rgba(142,49,83,.10), 0 0 32px rgba(232,200,199,.20);
}

.article-v6-search-card h2 {
  margin: .2rem 0 .45rem;
  color: var(--berry);
  font-size: clamp(1.35rem, 2vw, 1.75rem);
  line-height: 1.02;
}

.article-v6-search-card > p:not(.home-kicker) {
  margin: 0 0 .9rem;
  color: var(--charcoal);
  font-size: .82rem;
  line-height: 1.55;
}

.article-v6-search-form {
  display: grid;
  gap: .6rem;
}

.article-v6-search-form input[type="search"] {
  width: 100%;
  min-width: 0;
  height: 45px;
  padding: 0 .85rem;
  border: 1px solid rgba(120,150,173,.30);
  border-radius: 12px;
  background: #fff;
  color: var(--charcoal);
  font: inherit;
  font-size: .82rem;
  outline: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.article-v6-search-form input[type="search"]:focus {
  border-color: var(--dusty-blue);
  box-shadow: 0 0 0 3px rgba(120,150,173,.14), 0 0 22px rgba(232,200,199,.16);
}

.article-v6-search-form button {
  min-height: 44px;
  width: 100%;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--berry), #A83A62);
  color: #fff;
  font: inherit;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  cursor: pointer;
  box-shadow: 0 10px 22px rgba(142,49,83,.16), 0 0 20px rgba(232,200,199,.14);
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.article-v6-search-form button:hover,
.article-v6-search-form button:focus-visible {
  transform: translateY(-2px);
  background: #762542;
  box-shadow: 0 13px 28px rgba(142,49,83,.22), 0 0 28px rgba(232,200,199,.25);
}

/* Keep only the two test rails active in this build. */
.article-v6-layout .article-v3-rail-left,
.article-v6-layout .article-v3-rail-right {
  display: none !important;
}

/* Medium desktop: keep Pinterest beside article, move Search below so nothing is clipped. */
@media (max-width: 1239px) {
  .article-v3-shell {
    width: min(1040px, calc(100% - 28px));
  }
  .article-v6-layout,
  .article-v6-layout.has-pinterest {
    grid-template-columns: minmax(0, 1fr) minmax(280px, 310px);
  }
  .article-v6-layout.no-pinterest {
    grid-template-columns: minmax(0, 760px);
  }
  .article-v6-search-rail {
    grid-column: 1 / -1;
    order: 3;
    max-width: 760px;
    margin-inline: auto;
  }
  .article-v6-search-sticky {
    position: static;
  }
  .article-v6-layout .article-v3-main {
    max-width: 720px;
    order: 1;
  }
  .article-v5-pinterest-rail {
    order: 2;
  }
}

/* Tablet/mobile: article first, then Search, then Pinterest. */
@media (max-width: 980px) {
  .article-v3-shell {
    width: min(840px, calc(100% - 28px));
  }
  .article-v6-layout,
  .article-v6-layout.has-pinterest,
  .article-v6-layout.no-pinterest {
    grid-template-columns: 1fr;
    gap: 1.15rem;
  }
  .article-v6-layout .article-v3-main {
    max-width: 800px;
    order: 1;
  }
  .article-v6-search-rail {
    order: 2;
    max-width: 800px;
    margin-inline: auto;
  }
  .article-v5-pinterest-rail {
    order: 3;
    max-width: 800px;
    margin-inline: auto;
  }
  .article-v6-search-sticky,
  .article-v5-pinterest-sticky {
    position: static;
  }
}

@media (max-width: 720px) {
  .article-v3-shell {
    width: min(100% - 20px, 800px);
  }
  .article-v6-search-card {
    padding: .95rem;
    border-radius: 17px;
  }
}

/* =====================================================
   PHASE 8.16 — THIRD BOX TEST
   Keep Search left; stack Tools directly below Pinterest right.
   ===================================================== */
.article-v7-right-stack {
  display: grid;
  gap: 1rem;
  align-content: start;
}

/* Parent rail is sticky; child cards must not create nested sticky behavior. */
.article-v7-right-stack > .home-side-card,
.article-v7-right-stack .home-tools-card {
  position: relative;
  top: auto;
  width: 100%;
  max-width: none;
}

.article-v7-tools-card {
  padding: 1rem;
}

.article-v7-tools-card h3 {
  margin: .15rem 0 .35rem;
  color: var(--berry);
  font-family: var(--serif);
  font-size: 1.72rem;
  line-height: 1.03;
}

.article-v7-tools-card > p:not(.home-kicker) {
  margin: 0 0 .8rem;
  color: rgba(48,52,58,.67);
  font-size: .74rem;
  line-height: 1.55;
}

/* The right rail always exists now because the tools card is always available. */
.article-v6-layout.no-pinterest {
  grid-template-columns: minmax(210px, 230px) minmax(0, 690px) minmax(280px, 310px);
}
.article-v6-layout.no-pinterest .article-v3-main {
  max-width: 690px;
}

@media (max-width: 1239px) {
  .article-v6-layout.no-pinterest {
    grid-template-columns: minmax(0, 1fr) minmax(280px, 310px);
  }
}

@media (max-width: 980px) {
  .article-v7-right-stack {
    gap: .9rem;
  }
  .article-v6-layout.no-pinterest {
    grid-template-columns: 1fr;
  }
}

/* =====================================================
   PHASE 8.17 — PERSONALIZED IDEAS BELOW SEARCH
   One-by-one article rail build: left stack now contains
   Search first, Personalized Ideas directly underneath.
   ===================================================== */
.article-v8-left-stack {
  display: grid;
  gap: 1rem;
  align-content: start;
}

.article-v8-left-stack > * {
  width: 100%;
  max-width: none;
}

.article-v8-personalized-card {
  margin: 0;
  padding: 1.15rem;
  border-radius: 20px;
  box-shadow: 0 18px 44px rgba(48,52,58,.08), 0 0 30px rgba(232,200,199,.13);
}

.article-v8-personalized-card h2 {
  margin: .25rem 0 .55rem;
  font-size: clamp(1.35rem, 2vw, 1.72rem);
  line-height: 1.03;
}

.article-v8-personalized-card p:not(.article-v2-small-label) {
  margin-bottom: .85rem;
  font-size: .79rem;
  line-height: 1.55;
}

.article-v8-personalized-card .article-v3-finder-btn {
  width: 100%;
  justify-content: center;
  text-align: center;
}

@media (max-width: 1239px) {
  .article-v8-left-stack {
    position: static;
  }
}

@media (max-width: 980px) {
  .article-v8-left-stack {
    gap: .9rem;
  }
}

/* =========================================================
   Phase 8.18 — Explore box below Personalized Ideas
   ========================================================= */
.article-v9-explore-card{
  padding:24px;
  overflow:hidden;
}
.article-v9-explore-card h2{
  margin:4px 0 8px;
  font-size:clamp(1.45rem,1.8vw,1.8rem);
  line-height:1.06;
}
.article-v9-explore-card > p:not(.home-kicker){
  margin:0 0 16px;
  color:var(--ink-soft, #5c5f63);
  font-size:.92rem;
  line-height:1.55;
}
.article-v9-explore-links{
  display:grid;
  gap:8px;
}
.article-v9-explore-links a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:43px;
  padding:10px 12px;
  border:1px solid rgba(142,49,83,.12);
  border-radius:12px;
  background:rgba(255,249,245,.82);
  color:var(--ink, #30343A);
  font-size:.87rem;
  font-weight:700;
  line-height:1.25;
  text-decoration:none;
  transition:transform .22s ease, border-color .22s ease, box-shadow .22s ease, color .22s ease, background .22s ease;
}
.article-v9-explore-links a b{
  color:var(--berry, #8E3153);
  font-size:1rem;
  transition:transform .22s ease;
}
.article-v9-explore-links a:hover,
.article-v9-explore-links a:focus-visible{
  transform:translateX(4px);
  border-color:rgba(142,49,83,.30);
  background:#fff;
  color:var(--berry, #8E3153);
  box-shadow:0 10px 26px rgba(142,49,83,.10), 0 0 22px rgba(201,164,93,.08);
}
.article-v9-explore-links a:hover b,
.article-v9-explore-links a:focus-visible b{
  transform:translateX(2px);
}
.article-v9-explore-links a.is-current{
  border-color:rgba(120,150,173,.35);
  background:rgba(120,150,173,.10);
}
@media (max-width: 1180px){
  .article-v9-explore-card{padding:20px;}
}
@media (max-width: 820px){
  .article-v9-explore-links{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width: 560px){
  .article-v9-explore-links{grid-template-columns:1fr;}
}

/* =========================================================
   Phase 8.19 — Left rail overlap fix
   Only the rail itself is sticky. Child cards stay in normal flow.
   ========================================================= */
.article-v8-left-stack {
  max-height: calc(100vh - 112px);
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(142,49,83,.22) transparent;
  padding: 2px 3px 10px;
}
.article-v8-left-stack::-webkit-scrollbar { width: 5px; }
.article-v8-left-stack::-webkit-scrollbar-track { background: transparent; }
.article-v8-left-stack::-webkit-scrollbar-thumb { background: rgba(142,49,83,.22); border-radius: 999px; }

/* Prevent nested sticky cards from stacking on top of one another. */
.article-v8-left-stack > .home-side-card,
.article-v8-left-stack > .article-v2-sidebox,
.article-v8-left-stack > .article-v8-personalized-card,
.article-v8-left-stack > .article-v9-explore-card {
  position: relative !important;
  top: auto !important;
  inset-block-start: auto !important;
  margin-top: 0;
  margin-bottom: 0;
}

@media (max-width: 1239px) {
  .article-v8-left-stack {
    max-height: none;
    overflow: visible;
    padding: 0;
  }
}

/* =========================================================
   Phase 8.20 — Facebook box below Tools (right rail)
   ========================================================= */
.article-v10-facebook-card{
  padding:24px;
  overflow:hidden;
}
.article-v10-facebook-card h3{
  margin:4px 0 8px;
  color:var(--berry, #8E3153);
  font-family:var(--serif);
  font-size:clamp(1.45rem,1.8vw,1.8rem);
  line-height:1.06;
}
.article-v10-facebook-card > p:not(.home-kicker){
  margin:0 0 14px;
  color:var(--ink-soft, #5c5f63);
  font-size:.88rem;
  line-height:1.55;
}
.article-v10-facebook-embed{
  width:100%;
  min-height:420px;
  overflow:hidden;
  border:1px solid rgba(142,49,83,.12);
  border-radius:16px;
  background:rgba(255,255,255,.72);
  box-shadow:0 12px 30px rgba(48,52,58,.06);
}
.article-v10-facebook-embed iframe{
  display:block;
  width:100% !important;
  max-width:100%;
  margin:0 auto;
}
.article-v10-facebook-link{
  margin-top:12px;
}
@media (max-width:1239px){
  .article-v10-facebook-card{padding:20px;}
}
@media (max-width:980px){
  .article-v10-facebook-embed{
    min-height:360px;
  }
  .article-v10-facebook-embed iframe{
    height:360px;
  }
}

/* =========================================================
   Phase 8.21 — Left rail scroll behavior parity
   Match the right rail: one sticky stack, no inner scrollbar.
   ========================================================= */
@media (min-width: 1240px) {
  .article-v6-search-sticky.article-v8-left-stack {
    position: sticky;
    top: 92px;
    max-height: none;
    overflow: visible;
    overflow-y: visible;
    overflow-x: visible;
    overscroll-behavior: auto;
    scrollbar-width: auto;
    padding: 0;
  }

  .article-v6-search-sticky.article-v8-left-stack::-webkit-scrollbar {
    width: 0;
    height: 0;
  }
}

/* =========================================================
   Phase 8.22 — About Author + Trending Articles side cards
   ========================================================= */
.article-v11-author-card{
  margin:0;
}
.article-v11-author-card .home-author-socials{
  margin-top:.75rem;
}

.article-v11-trending-card{
  padding:24px;
  overflow:hidden;
}
.article-v11-trending-card h3{
  margin:4px 0 14px;
  color:var(--berry, #8E3153);
  font-family:var(--serif);
  font-size:clamp(1.35rem,1.7vw,1.72rem);
  line-height:1.06;
}
.article-v11-trending-list{
  display:grid;
  gap:9px;
}
.article-v11-trending-item{
  display:grid;
  grid-template-columns:62px minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  min-width:0;
  padding:8px;
  border:1px solid rgba(142,49,83,.11);
  border-radius:14px;
  background:rgba(255,255,255,.72);
  color:var(--charcoal, #30343A);
  text-decoration:none;
  transition:transform .22s ease, border-color .22s ease, box-shadow .22s ease, background .22s ease;
}
.article-v11-trending-thumb{
  display:grid;
  place-items:center;
  width:62px;
  height:62px;
  overflow:hidden;
  border-radius:11px;
  background:rgba(232,200,199,.24);
  color:var(--berry, #8E3153);
  font-family:var(--serif);
  font-size:1.25rem;
}
.article-v11-trending-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.article-v11-trending-copy{
  min-width:0;
}
.article-v11-trending-copy strong,
.article-v11-trending-copy small{
  display:block;
}
.article-v11-trending-copy strong{
  color:var(--charcoal, #30343A);
  font-family:var(--serif);
  font-size:.92rem;
  font-weight:600;
  line-height:1.16;
}
.article-v11-trending-copy small{
  margin-top:5px;
  color:rgba(48,52,58,.56);
  font-size:.64rem;
}
.article-v11-trending-item > b{
  color:var(--berry, #8E3153);
  font-size:1rem;
  transition:transform .22s ease;
}
.article-v11-trending-item:hover,
.article-v11-trending-item:focus-visible{
  transform:translateX(-3px);
  border-color:rgba(142,49,83,.28);
  background:#fff;
  box-shadow:0 10px 26px rgba(142,49,83,.09), 0 0 22px rgba(232,200,199,.22);
}
.article-v11-trending-item:hover > b,
.article-v11-trending-item:focus-visible > b{
  transform:translateX(2px);
}

@media (max-width:1239px){
  .article-v11-trending-card{padding:20px;}
}
@media (max-width:980px){
  .article-v11-trending-list{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:620px){
  .article-v11-trending-list{
    grid-template-columns:1fr;
  }
}

/* =========================================================
   PHASE 8.23 — ARTICLE SIDEBAR CONTENT / AUTHOR REPOSITION
   Existing columns and prior mobile stacking are preserved.
   Entire rails scroll with the page; child cards never stick.
   ========================================================= */
.article-v23-author-right,
.article-v23-topic-card,
.article-v23-budget-card {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: none;
  overflow: hidden;
  border: 1px solid rgba(142, 49, 83, .18);
  border-radius: 19px;
  box-shadow: 0 14px 34px rgba(48, 52, 58, .07), 0 0 25px rgba(232, 200, 199, .13);
  transition: border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}
.article-v23-author-right:hover,
.article-v23-topic-card:hover,
.article-v23-budget-card:hover {
  border-color: rgba(142, 49, 83, .3);
  box-shadow: 0 18px 38px rgba(142, 49, 83, .09), 0 0 29px rgba(232, 200, 199, .24);
}

/* Author is now the first card in the right rail, directly above Pinterest. */
.article-v7-right-stack > .article-v23-author-right {
  position: relative;
  top: auto;
  padding: 1.1rem;
  background:
    radial-gradient(circle at 100% 0%, rgba(201, 164, 93, .18), transparent 42%),
    radial-gradient(circle at 4% 100%, rgba(120, 150, 173, .09), transparent 42%),
    linear-gradient(145deg, #fff, #fff9f5 68%, rgba(232, 200, 199, .30));
}
.article-v23-author-right .home-author-head { gap: .72rem; }
.article-v23-author-right .home-author-socials { margin-top: .8rem; }
.article-v23-author-right .home-author-pinterest { min-height: 42px; }

/* Matching editorial cards; no independent or nested scrollbars. */
.article-v8-left-stack > .article-v23-topic-card {
  position: relative !important;
  inset-block-start: auto !important;
  top: auto !important;
  padding: 1.05rem;
  background:
    radial-gradient(circle at 95% 0%, rgba(120, 150, 173, .12), transparent 38%),
    linear-gradient(150deg, #fff, #fff9f5);
}
.article-v23-topic-card h2,
.article-v23-budget-card h3 {
  color: var(--berry, #8e3153);
  font-family: var(--serif, Georgia, serif);
  font-size: clamp(1.38rem, 1.6vw, 1.65rem);
  line-height: 1.08;
  margin: .2rem 0 .42rem;
  overflow-wrap: anywhere;
}
.article-v23-topic-card > p:not(.home-kicker),
.article-v23-budget-card > p:not(.home-kicker) {
  margin: 0 0 .85rem;
  color: rgba(48, 52, 58, .68);
  font-size: .76rem;
  line-height: 1.5;
}
.article-v23-topic-list {
  grid-template-columns: minmax(0, 1fr);
  gap: .55rem;
}
.article-v23-topic-list .article-v11-trending-item {
  grid-template-columns: 52px minmax(0, 1fr);
  gap: .55rem;
  padding: .45rem;
}
.article-v23-topic-list .article-v11-trending-thumb {
  width: 52px;
  height: 52px;
  border-radius: 9px;
}
.article-v23-topic-list .article-v11-trending-copy strong {
  font-size: .86rem;
  overflow-wrap: anywhere;
}

/* A real budget reading edit, using the existing homepage card component. */
.article-v7-right-stack > .article-v23-budget-card {
  position: relative;
  top: auto;
  padding: 1.1rem;
  background:
    radial-gradient(circle at 100% 0%, rgba(201, 164, 93, .16), transparent 42%),
    radial-gradient(circle at 0% 100%, rgba(232, 200, 199, .28), transparent 44%),
    rgba(255, 255, 255, .94);
}
.article-v23-budget-card .home-budget-list { gap: .55rem; }
.article-v23-budget-card .home-budget-item {
  grid-template-columns: 52px minmax(0, 1fr) 12px;
  min-width: 0;
  padding: .48rem;
}
.article-v23-budget-card .home-budget-thumb {
  width: 52px;
  height: 52px;
}
.article-v23-budget-card .home-budget-copy strong {
  font-size: .88rem;
  overflow-wrap: anywhere;
}
.article-v23-topic-card .home-side-link,
.article-v23-budget-card .home-side-link {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  overflow-wrap: anywhere;
  margin-top: .8rem;
  transition: color .18s ease, transform .18s ease;
}
.article-v23-topic-card .home-side-link:hover,
.article-v23-budget-card .home-side-link:hover {
  transform: translateX(2px);
}

@media (max-width: 980px) {
  .article-v23-topic-card,
  .article-v23-budget-card,
  .article-v23-author-right { padding: 1.15rem; }
  .article-v23-topic-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .article-v23-topic-list { grid-template-columns: minmax(0, 1fr); }
  .article-v23-topic-card,
  .article-v23-budget-card,
  .article-v23-author-right { border-radius: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .article-v23-author-right,
  .article-v23-topic-card,
  .article-v23-budget-card,
  .article-v23-topic-card .home-side-link,
  .article-v23-budget-card .home-side-link {
    transition: none;
  }
  .article-v23-author-right:hover,
  .article-v23-topic-card:hover,
  .article-v23-budget-card:hover {
    transform: none;
  }
}

/* =========================================================
   PHASE 8.24 — NATURAL ARTICLE SIDE-RAIL FLOW
   Both side columns move with the document and end after their
   last card. No independent scroll, no sticky-follow, no overlap.
   Scoped to article pages; category/home layouts stay unchanged.
   ========================================================= */
.article-v2.article-v3 .article-v6-layout > .article-v6-search-rail,
.article-v2.article-v3 .article-v6-layout > .article-v5-pinterest-rail {
  position: static !important;
  align-self: start;
  height: auto;
  min-height: 0;
  overflow: visible;
}

.article-v2.article-v3 .article-v6-search-rail > .article-v6-search-sticky.article-v8-left-stack,
.article-v2.article-v3 .article-v5-pinterest-rail > .article-v5-pinterest-sticky.article-v7-right-stack {
  position: static !important;
  top: auto !important;
  inset-block-start: auto !important;
  max-height: none !important;
  height: auto !important;
  overflow: visible !important;
  overflow-x: visible !important;
  overflow-y: visible !important;
  overscroll-behavior: auto;
  scrollbar-width: auto;
  padding: 0;
  align-content: start;
}

.article-v2.article-v3 .article-v8-left-stack > .home-side-card,
.article-v2.article-v3 .article-v8-left-stack > .article-v2-sidebox,
.article-v2.article-v3 .article-v7-right-stack > .home-side-card {
  position: relative !important;
  top: auto !important;
  inset-block-start: auto !important;
  margin-block: 0;
}

/* Facebook Page embed lives last in the left stack. Its 180px
   source width fits the current 210–230px left column safely. */
.article-v2.article-v3 .article-v24-facebook-left {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  padding: 12px;
}
.article-v2.article-v3 .article-v24-facebook-left .article-v10-facebook-embed {
  width: 100%;
  max-width: 100%;
  min-height: 420px;
  overflow: hidden;
}
.article-v2.article-v3 .article-v24-facebook-left .article-v10-facebook-embed iframe {
  display: block;
  max-width: 100%;
  width: 100% !important;
  height: 420px;
  border: 0;
}

/* Mobile keeps the established article-first stacking. */
@media (max-width: 980px) {
  .article-v2.article-v3 .article-v24-facebook-left { padding: 18px; }
}

/* =====================================================
   PHASE 8.25 — FIND MY DRESS + DRESS SIZE CONVERTER
   Scoped, original wedding-wardrobe tools. All earlier
   wedding homepage/category/article layouts stay intact.
   ===================================================== */
.hwd-tools {
  --hwd-bg: #FFF9F5;
  --hwd-blush: #E8C8C7;
  --hwd-berry: #8E3153;
  --hwd-blue: #7896AD;
  --hwd-gold: #C9A45D;
  --hwd-ink: #30343A;
  --hwd-border: rgba(142,49,83,.17);
  color: var(--hwd-ink);
  background: var(--hwd-bg);
  overflow: clip;
  padding-bottom: 68px;
}
.hwd-tools *, .hwd-tools *::before, .hwd-tools *::after { box-sizing: border-box; }
.hwd-tools [hidden] { display: none !important; }
.hwd-tools .hwd-container { width: min(1160px, calc(100% - 40px)); margin-inline: auto; }
.hwd-tools .hwd-main-column { max-width: 1080px; }
.hwd-tools .hwd-hero { margin: 20px 0 30px; }
.hwd-tools .hwd-hero-grid {
  display: grid; grid-template-columns: minmax(0,1.5fr) minmax(265px,.72fr);
  align-items: stretch; border: 1px solid var(--hwd-border); border-radius: 26px;
  overflow: hidden; background: linear-gradient(116deg,#fff,#fff9f5 67%,#faedef);
  box-shadow: 0 16px 60px rgba(48,52,58,.045);
}
.hwd-tools .hwd-hero-grid > div:first-child { padding: clamp(26px,4.5vw,65px); min-width: 0; }
.hwd-tools .hwd-breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; margin-bottom: clamp(20px,3vw,38px); font: 500 12px/1.5 var(--sans); color: #697478; }
.hwd-tools .hwd-breadcrumb a { color: #5d6771; text-decoration: none; }
.hwd-tools .hwd-breadcrumb a:hover { color: var(--hwd-berry); }
.hwd-tools .hwd-eyebrow { margin: 0 0 11px; color: var(--hwd-berry); letter-spacing: .19em; font: 700 11px/1.5 var(--sans); text-transform: uppercase; }
.hwd-tools .hwd-hero h1 { color: var(--hwd-ink); font: 500 clamp(3.8rem,7vw,6.8rem)/.98 var(--serif); letter-spacing: -.034em; margin: 0 0 18px; }
.hwd-tools .hwd-hero h1 em { color: var(--hwd-berry); font-weight: 500; }
.hwd-tools .hwd-hero-lede { margin: 0 0 22px; color: #52565a; max-width: 650px; font: 400 clamp(15px,1.6vw,17px)/1.75 var(--sans); }
.hwd-tools .hwd-hero-pills { display: flex; gap: 8px; flex-wrap: wrap; }
.hwd-tools .hwd-hero-pills span { display: inline-flex; align-items: center; gap: 6px; background: white; border: 1px solid var(--hwd-border); border-radius: 50px; padding: 7px 12px; font: 600 11px/1.4 var(--sans); color: #69616b; }
.hwd-tools .hwd-hero-pills span::before { content: '✧'; color: var(--hwd-gold); font-size: 14px; }
.hwd-tools .hwd-hero-decoration { position: relative; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; gap: 10px; padding: 30px; overflow: hidden; min-height: 310px; background: radial-gradient(ellipse at 85% 12%,rgba(255,255,255,.8),transparent 34%),linear-gradient(142deg,#f6e1e0,#e8c8c7 55%,#c4d3da); isolation: isolate; }
.hwd-tools .hwd-hero-decoration::before { content: ''; position: absolute; width: 250px; height: 250px; border: 1px solid rgba(142,49,83,.24); border-radius: 50%; top: -70px; right: -65px; box-shadow: 0 0 0 21px rgba(255,255,255,.22),0 0 0 41px rgba(255,255,255,.10); z-index: -1; }
.hwd-tools .hwd-hero-decoration::after { content: ''; position: absolute; right: 28px; top: 35px; width: 26px; height: 26px; border: 3px solid var(--hwd-gold); transform: rotate(45deg); border-radius: 4px; opacity: .9; }
.hwd-tools .hwd-dress-motif { position: absolute; font: 500 170px/1 var(--serif); top: 22px; left: 20px; opacity: .25; color: var(--hwd-berry); }
.hwd-tools .hwd-hero-deco-title { position: relative; font: 500 clamp(30px,3.4vw,47px)/1.05 var(--serif); color: #602f43; }
.hwd-tools .hwd-hero-deco-title i { font-weight: 500; }
.hwd-tools .hwd-hero-deco-caption { position: relative; font: 600 10px/1.4 var(--sans); letter-spacing: .16em; color: #6f5661; text-transform: uppercase; }
.hwd-tools .hwd-panel, .hwd-tools .hwd-results {
  border: 1px solid var(--hwd-border); border-radius: 25px; padding: clamp(22px,3.4vw,40px);
  background: #fff; box-shadow: 0 16px 48px rgba(48,52,58,.046); margin-bottom: 24px; position: relative; overflow: hidden;
}
.hwd-tools .hwd-panel::before { content: ''; position: absolute; width: 160px; height: 160px; right: -86px; top: -86px; border: 1px solid rgba(201,164,93,.33); border-radius: 50%; pointer-events: none; }
.hwd-tools .hwd-panel-heading { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 15px; margin-bottom: 22px; }
.hwd-tools .hwd-panel-heading h2 { color: var(--hwd-berry); font: 500 clamp(29px,3.9vw,43px)/1.12 var(--serif); margin: 0; }
.hwd-tools .hwd-panel-counter { border: 1px solid rgba(142,49,83,.18); color: var(--hwd-berry); border-radius: 30px; padding: 8px 13px; font: 700 11px/1.4 var(--sans); background: #fff7f6; }
.hwd-tools .hwd-progress-track { height: 5px; border-radius: 6px; background: #f2e6e2; overflow: hidden; margin-bottom: 26px; }
.hwd-tools .hwd-progress-track > span { display: block; height: 100%; background: linear-gradient(90deg,var(--hwd-berry),var(--hwd-gold)); border-radius: 6px; transition: width .27s ease; }
.hwd-tools .hwd-finder-step { padding: 0; border: 0; margin: 0; min-width: 0; }
.hwd-tools .hwd-finder-step legend { font: 500 clamp(26px,3.5vw,37px)/1.15 var(--serif); color: var(--hwd-ink); margin-bottom: 7px; padding: 0; }
.hwd-tools .hwd-field-help { color: #6d6d70; font-size: 14px; line-height: 1.6; margin: 0 0 22px; }
.hwd-tools .hwd-choice-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 13px; }
.hwd-tools .hwd-choice { cursor: pointer; position: relative; display: flex; flex-direction: column; gap: 4px; padding: 23px 18px; border: 1px solid rgba(142,49,83,.2); border-radius: 16px; background: linear-gradient(140deg,#fff,#fffbf9); transition: border-color .22s ease,box-shadow .22s ease, transform .22s ease, background .22s ease; min-width: 0; }
.hwd-tools .hwd-choice input { position: absolute; top: 14px; right: 14px; width: 18px; height: 18px; accent-color: var(--hwd-berry); }
.hwd-tools .hwd-choice > span { font-size: 27px; line-height: 1.1; color: var(--hwd-gold); }
.hwd-tools .hwd-choice strong { font: 600 clamp(19px,2.2vw,25px)/1.13 var(--serif); color: var(--hwd-ink); }
.hwd-tools .hwd-choice small { font: 400 12px/1.5 var(--sans); color: #6c6468; }
.hwd-tools .hwd-choice:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(142,49,83,.1); border-color: var(--hwd-blush); }
.hwd-tools .hwd-choice:has(input:checked) { border-color: var(--hwd-berry); background: #fff1f3; box-shadow: inset 0 0 0 1px rgba(142,49,83,.22),0 8px 22px rgba(142,49,83,.06); }
.hwd-tools .hwd-choice:has(input:focus-visible) { outline: 3px solid var(--hwd-blue); outline-offset: 3px; }
.hwd-tools .hwd-select-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.hwd-tools .hwd-select-grid label { font: 700 13px/1.4 var(--sans); color: var(--hwd-ink); }
.hwd-tools .hwd-select-grid select { margin-top: 9px; display: block; width: 100%; max-width: 100%; min-width: 0; appearance: auto; height: 55px; border: 1px solid rgba(142,49,83,.24); border-radius: 11px; padding: 0 14px; background: #fffdfc; font: 500 14px var(--sans); color: var(--hwd-ink); }
.hwd-tools .hwd-select-grid select:focus-visible { outline: 2px solid var(--hwd-blue); outline-offset: 2px; }
.hwd-tools .hwd-form-note { color: #69656c; font: 400 13px/1.7 var(--sans); margin: 20px 0 0; }
.hwd-tools .hwd-form-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; align-items: center; }
.hwd-tools .hwd-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; text-decoration: none; border: 1px solid transparent; border-radius: 999px; font: 700 13px/1.3 var(--sans); padding: 15px 24px; min-height: 48px; cursor: pointer; transition: transform .2s ease,box-shadow .2s ease,background-color .2s ease,border-color .2s ease; text-align: center; }
.hwd-tools .hwd-btn-primary { background: var(--hwd-berry); color: #fff; box-shadow: 0 8px 24px rgba(142,49,83,.16); }
.hwd-tools .hwd-btn-primary:hover { background: #722642; color: #fff; transform: translateY(-2px); box-shadow: 0 12px 30px rgba(142,49,83,.26),0 0 18px rgba(232,200,199,.6); }
.hwd-tools .hwd-btn-ghost { background: #fff; border-color: rgba(142,49,83,.23); color: var(--hwd-berry); }
.hwd-tools .hwd-btn-ghost:hover { border-color: var(--hwd-berry); color: var(--hwd-berry); transform: translateY(-2px); }
.hwd-tools .hwd-btn:focus-visible, .hwd-tools .hwd-text-btn:focus-visible, .hwd-tools .hwd-story-card a:focus-visible { outline: 2px solid var(--hwd-blue); outline-offset: 3px; }
.hwd-tools .hwd-text-btn { border: 0; background: transparent; color: var(--hwd-berry); font: 700 13px/1.5 var(--sans); cursor: pointer; padding: 10px 0; text-decoration: none; }
.hwd-tools .hwd-text-btn:hover { color: #6c233d; text-decoration: underline; }
.hwd-tools .hwd-error { background: #fff0ee; color: #8b2230; border: 1px solid #ebb2af; padding: 12px 15px; border-radius: 10px; font: 600 13px/1.5 var(--sans); margin: 16px 0 0; }
.hwd-tools .hwd-results { margin-top: 18px; scroll-margin-top: 25px; }
.hwd-tools .hwd-results-summary { font: 400 14px/1.75 var(--sans); color: #65616a; margin: 0 0 22px; }
.hwd-tools .hwd-results-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin: 14px 0 22px; }
.hwd-tools .hwd-story-card { display: grid; grid-template-columns: minmax(104px,36%) minmax(0,1fr); background: #fffdfc; border: 1px solid var(--hwd-border); border-radius: 16px; overflow: hidden; min-width: 0; box-shadow: 0 5px 18px rgba(48,52,58,.034); transition: transform .2s,box-shadow .2s; }
.hwd-tools .hwd-story-card:hover { transform: translateY(-3px); box-shadow: 0 15px 34px rgba(142,49,83,.11); }
.hwd-tools .hwd-story-image { background: linear-gradient(145deg,#e8c8c7,#fff2ed); height: 100%; min-height: 174px; display: grid; place-items: center; color: var(--hwd-berry); font: 500 70px var(--serif); overflow: hidden; }
.hwd-tools .hwd-story-image img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.hwd-tools .hwd-story-body { padding: 15px 15px 14px; min-width: 0; }
.hwd-tools .hwd-story-kicker { color: var(--hwd-berry); font: 700 9px/1.4 var(--sans); letter-spacing: .09em; text-transform: uppercase; }
.hwd-tools .hwd-story-body h3 { font: 600 clamp(20px,2.2vw,25px)/1.1 var(--serif); margin: 8px 0; overflow-wrap: break-word; }
.hwd-tools .hwd-story-body h3 a { color: var(--hwd-ink); }
.hwd-tools .hwd-story-body h3 a:hover { color: var(--hwd-berry); }
.hwd-tools .hwd-story-body p { font: 400 12px/1.6 var(--sans); margin: 0 0 13px; color: #666; }
.hwd-tools .hwd-story-cta { color: var(--hwd-berry); font: 700 12px/1.5 var(--sans); }
.hwd-tools .hwd-empty { border-radius: 15px; padding: 20px; background: #fff4f3; border: 1px solid var(--hwd-border); margin-bottom: 22px; }
.hwd-tools .hwd-empty h3 { font: 500 28px/1.15 var(--serif); margin: 0 0 8px; }
.hwd-tools .hwd-empty p { margin: 0; }
.hwd-tools .hwd-info-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin: 26px 0 38px; }
.hwd-tools .hwd-info-card { position: relative; overflow: hidden; border: 1px solid var(--hwd-border); border-radius: 22px; background: #fff; padding: clamp(22px,3.5vw,33px); }
.hwd-tools .hwd-info-accent { background: linear-gradient(130deg,#f8e8e8,#fff9f5); }
.hwd-tools .hwd-info-card::before { content: '✧'; position: absolute; right: 12px; top: -29px; color: rgba(142,49,83,.08); font: 150px/1 var(--serif); pointer-events: none; }
.hwd-tools .hwd-info-card h2 { font: 500 clamp(25px,3vw,36px)/1.12 var(--serif); color: var(--hwd-berry); margin: 0 0 14px; position: relative; }
.hwd-tools .hwd-info-card > p:not(.hwd-eyebrow) { max-width: 460px; color: #5c5b5e; font: 400 14px/1.75 var(--sans); margin: 0 0 19px; position: relative; }
.hwd-tools .hwd-education { max-width: 820px; margin: 10px auto 0; font: 400 15px/1.85 var(--sans); color: #555b5f; }
.hwd-tools .hwd-education h2 { margin: 30px 0 11px; font: 500 clamp(31px,4vw,43px)/1.11 var(--serif); color: var(--hwd-berry); }
.hwd-tools .hwd-education p, .hwd-tools .hwd-education li { line-height: 1.85; }
.hwd-tools .hwd-education ol { padding-left: 22px; }
.hwd-tools .hwd-education a { color: var(--hwd-berry); text-decoration: underline; text-underline-offset: 3px; }
.hwd-tools .hwd-source-note { background: #fff3f2; border-left: 3px solid var(--hwd-gold); padding: 16px 20px; border-radius: 0 12px 12px 0; margin-top: 25px; font-size: 13px; }
.hwd-tools .hwd-faqs { display: grid; gap: 10px; margin-bottom: 20px; }
.hwd-tools .hwd-faqs details { border: 1px solid var(--hwd-border); border-radius: 13px; padding: 15px 19px; background: #fffdfc; }
.hwd-tools .hwd-faqs summary { cursor: pointer; color: var(--hwd-ink); font-weight: 600; }
.hwd-tools .hwd-faqs details p { margin-bottom: 0; }
.hwd-tools .hwd-size-result-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 13px; margin-bottom: 24px; }
.hwd-tools .hwd-size-tile { background: #fff9f8; border: 1px solid var(--hwd-border); border-radius: 15px; padding: 19px; display: flex; flex-direction: column; gap: 5px; }
.hwd-tools .hwd-size-tile.is-selected { background: #f9e7e9; border-color: var(--hwd-berry); box-shadow: 0 8px 25px rgba(142,49,83,.08); }
.hwd-tools .hwd-size-tile > span { font: 700 11px/1.4 var(--sans); color: #68686a; text-transform: uppercase; letter-spacing: .06em; }
.hwd-tools .hwd-size-tile > strong { font: 600 clamp(28px,3.3vw,42px)/1.1 var(--serif); color: var(--hwd-berry); }
.hwd-tools .hwd-disclaimer { padding: 17px 19px; background: #fff5f2; border: 1px solid var(--hwd-border); border-radius: 13px; font: 400 13px/1.75 var(--sans); color: #655c61; }

/* Dress-category navigation and two concise standalone-tool invitations. */
.cat-archive-page .hwd-category-callout { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: clamp(24px,3vw,36px); background: linear-gradient(115deg,#58253d,#8e3153 65%,#aa6580); border-radius: 22px; margin: 0 0 38px; color: #fff; box-shadow: 0 17px 40px rgba(142,49,83,.14); }
.cat-archive-page .hwd-category-callout > div:first-child { min-width: 0; max-width: 690px; }
.cat-archive-page .hwd-category-callout .hwd-eyebrow { color: #efd9b8; font: 700 10px/1.4 var(--sans); letter-spacing: .15em; margin: 0 0 9px; }
.cat-archive-page .hwd-category-callout h2 { font: 500 clamp(28px,3.3vw,44px)/1.08 var(--serif); color: #fff; margin: 0 0 12px; }
.cat-archive-page .hwd-category-callout p:last-child { color: #fff0f3; font: 400 14px/1.65 var(--sans); margin: 0; }
.cat-archive-page .hwd-category-callout-actions { display: flex; flex-direction: column; gap: 10px; min-width: 215px; }
.cat-archive-page .hwd-category-callout .hwd-btn { padding: 13px 15px; min-height: 45px; border-radius: 40px; font: 700 12px/1.3 var(--sans); display: flex; align-items: center; justify-content: center; transition: transform .2s,box-shadow .2s; }
.cat-archive-page .hwd-category-callout .hwd-btn-light { background: #fff; color: #782b4b; }
.cat-archive-page .hwd-category-callout .hwd-btn-outline-light { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.55); color: #fff; }
.cat-archive-page .hwd-category-callout .hwd-btn:hover { transform: translateY(-2px); box-shadow: 0 0 26px rgba(255,255,255,.3); }
.cat-archive-page .cat-tool-chip.hwd-chip { background: #fff6f4; border-color: rgba(142,49,83,.34); }
.cat-archive-page .cat-tool-chip.hwd-chip:hover { background: #f6e7e7; box-shadow: 0 6px 20px rgba(142,49,83,.15); }
@media (max-width: 900px) {
  .hwd-tools .hwd-hero-grid { grid-template-columns: minmax(0,1fr) minmax(210px,.55fr); }
  .hwd-tools .hwd-hero-decoration { padding: 25px; min-height: 270px; }
  .hwd-tools .hwd-choice-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .cat-archive-page .hwd-category-callout { align-items: flex-start; flex-direction: column; }
  .cat-archive-page .hwd-category-callout-actions { flex-direction: row; flex-wrap: wrap; }
}
@media (max-width: 680px) {
  .hwd-tools .hwd-container { width: min(calc(100% - 28px),1160px); }
  .hwd-tools .hwd-hero { margin: 12px 0 20px; }
  .hwd-tools .hwd-hero-grid { display: block; border-radius: 18px; }
  .hwd-tools .hwd-hero-grid > div:first-child { padding: 24px 22px; }
  .hwd-tools .hwd-breadcrumb { margin-bottom: 22px; }
  .hwd-tools .hwd-hero h1 { font-size: clamp(3.5rem,15vw,5rem); }
  .hwd-tools .hwd-hero-decoration { display: none; }
  .hwd-tools .hwd-panel, .hwd-tools .hwd-results { border-radius: 18px; padding: 22px 18px; }
  .hwd-tools .hwd-choice-grid, .hwd-tools .hwd-select-grid { grid-template-columns: 1fr; }
  .hwd-tools .hwd-choice { min-height: 96px; padding: 18px 17px; }
  .hwd-tools .hwd-choice strong { font-size: 25px; }
  .hwd-tools .hwd-panel-counter { font-size: 10px; }
  .hwd-tools .hwd-results-grid, .hwd-tools .hwd-info-grid { grid-template-columns: 1fr; }
  .hwd-tools .hwd-story-card { grid-template-columns: minmax(90px,33%) minmax(0,1fr); }
  .hwd-tools .hwd-story-image { min-height: 150px; }
  .hwd-tools .hwd-story-body { padding: 14px; }
  .hwd-tools .hwd-story-body h3 { font-size: 23px; }
  .hwd-tools .hwd-size-result-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .hwd-tools .hwd-size-tile { padding: 15px; }
  .cat-archive-page .hwd-category-callout { padding: 22px; border-radius: 17px; }
  .cat-archive-page .hwd-category-callout-actions { width: 100%; }
  .cat-archive-page .hwd-category-callout-actions .hwd-btn { flex: 1 1 185px; }
}
@media (max-width: 360px) {
  .hwd-tools .hwd-hero h1 { font-size: 52px; }
  .hwd-tools .hwd-hero-pills span { font-size: 10px; }
  .hwd-tools .hwd-story-card { grid-template-columns: 90px minmax(0,1fr); }
  .hwd-tools .hwd-story-body h3 { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .hwd-tools *, .hwd-tools *::before, .hwd-tools *::after, .cat-archive-page .hwd-category-callout .hwd-btn { transition-duration: .01ms !important; animation: none !important; scroll-behavior: auto !important; }
}

/* Legend receives programmatic focus for screen readers, not a browser focus rectangle. */
.hwd-tools .hwd-finder-step legend:focus { outline: none; }


/* =====================================================
   PHASE 8.26 — DRESS TOOL DISCOVERY, HIGH-VISIBILITY CTAs
   Complete stylesheet, cumulative with all prior phases.
   ===================================================== */

/* Compact dress-tool launcher within the wedding-dresses category card. */
.home-category-card .hwd-home-category-quicklink {
  display: inline-flex; align-items: center; gap: .38rem; flex-wrap: wrap;
  align-self: flex-start; margin-top: .62rem; padding: .46rem .7rem;
  border: 1px solid rgba(142,49,83,.22); border-radius: 999px;
  background: #fff3f4; color: #782641; font: 700 .68rem/1.3 var(--sans);
  text-decoration: none; box-shadow: 0 5px 15px rgba(142,49,83,.07);
  transition: background .2s, border-color .2s, box-shadow .2s, transform .2s;
}
.home-category-card .hwd-home-category-quicklink:hover,
.home-category-card .hwd-home-category-quicklink:focus-visible {
  background: #8e3153; color: #fff; border-color: #8e3153;
  box-shadow: 0 9px 24px rgba(142,49,83,.20); transform: translateY(-2px);
}

/* Prominent but compact discovery ribbon, directly after homepage categories. */
.home-categories .hwd-home-dress-hub {
  position: relative; isolation: isolate; overflow: hidden;
  display: grid; grid-template-columns: minmax(0,1.07fr) minmax(0,.93fr);
  align-items: center; gap: clamp(1rem,3vw,2.7rem);
  margin-top: clamp(1.3rem,2.7vw,2.2rem);
  padding: clamp(1.25rem,2.9vw,2.5rem);
  border: 1px solid rgba(142,49,83,.20); border-radius: 22px;
  background: linear-gradient(113deg,#fffaf9 0%,#f8e8e8 60%,#e9d9e3 100%);
  box-shadow: 0 13px 36px rgba(142,49,83,.065), 0 0 35px rgba(232,200,199,.12);
}
.home-categories .hwd-home-dress-hub::before {
  content: ''; position: absolute; pointer-events: none; z-index: -1;
  width: min(320px,65%); aspect-ratio: 1; top: -170px; right: 21%;
  border-radius: 50%; background: radial-gradient(circle,rgba(255,255,255,.82),transparent 70%);
}
.home-categories .hwd-home-dress-hub::after {
  content: '✧'; position: absolute; top: .35rem; right: 1.1rem;
  color: rgba(201,164,93,.77); font: 500 2rem/1 var(--serif); pointer-events: none;
}
.hwd-home-dress-intro, .hwd-home-dress-actions { min-width: 0; }
.home-categories .hwd-home-dress-kicker {
  margin: 0 0 .32rem; font: 800 .62rem/1.45 var(--sans);
  text-transform: uppercase; letter-spacing: .18em; color: #8e3153;
}
.home-categories .hwd-home-dress-hub h3 {
  margin: 0 0 .5rem; font: 500 clamp(1.85rem,3.0vw,2.55rem)/1.04 var(--serif);
  color: #30343a; overflow-wrap: break-word;
}
.home-categories .hwd-home-dress-hub h3 em { color: #8e3153; }
.home-categories .hwd-home-dress-intro > p:not(.hwd-home-dress-kicker) {
  margin: 0 0 .7rem; color: #5b555b; font: 400 .82rem/1.65 var(--sans);
}
.hwd-home-dress-category { color: #842c4d; font: 800 .7rem/1.5 var(--sans); text-decoration: none; }
.hwd-home-dress-category:hover { color: #30343a; text-decoration: underline; text-underline-offset: 3px; }
.hwd-home-dress-actions { display: grid; gap: .65rem; }
.hwd-home-dress-action {
  display: grid; grid-template-columns: 37px minmax(0,1fr) auto;
  gap: .65rem; align-items: center; min-width: 0; min-height: 67px;
  padding: .76rem .85rem; border-radius: 14px;
  border: 1px solid rgba(142,49,83,.20);
  background: rgba(255,255,255,.87); color: #30343a; text-decoration: none;
  box-shadow: 0 6px 16px rgba(142,49,83,.04);
  transition: transform .22s, box-shadow .22s, border-color .22s;
}
.hwd-home-dress-action.hwd-action-primary { border-color: rgba(142,49,83,.36); background: #fffafa; }
.hwd-home-dress-action .hwd-home-dress-symbol {
  display: grid; place-items: center; height: 37px; width: 37px;
  border-radius: 50%; background: #8e3153; color: #fff;
  box-shadow: 0 6px 14px rgba(142,49,83,.14); font-size: 1.1rem;
}
.hwd-home-dress-action strong { display: block; font: 600 1.23rem/1.1 var(--serif); color: #762c49; }
.hwd-home-dress-action small { display: block; margin-top: .13rem; color: #666067; font: 500 .65rem/1.4 var(--sans); }
.hwd-home-dress-action > b { color: #8e3153; font-size: 1.1rem; }
.hwd-home-dress-action:hover, .hwd-home-dress-action:focus-visible {
  border-color: #c9a45d; transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(142,49,83,.13), 0 0 24px rgba(255,255,255,.8);
}
.hwd-home-dress-action:focus-visible, .hwd-home-dress-category:focus-visible,
.home-category-card .hwd-home-category-quicklink:focus-visible { outline: 2px solid #7896ad; outline-offset: 3px; }

/* Existing right-hand tool boxes: visually distinguish dress tools from other resources. */
.home-tools-card .home-tool-item.home-tool-dress,
.hwd-cat-tool-rail-card .home-tool-item.home-tool-dress {
  border-color: rgba(142,49,83,.33);
  background: linear-gradient(108deg,#fff3f5,#fffaf8);
}
.home-tools-card .home-tool-item.home-tool-size,
.hwd-cat-tool-rail-card .home-tool-item.home-tool-size {
  border-color: rgba(120,150,173,.37);
  background: linear-gradient(108deg,#f4f7fa,#fffaf8);
}
.home-tools-card .home-tool-item.home-tool-size .home-tool-icon,
.hwd-cat-tool-rail-card .home-tool-item.home-tool-size .home-tool-icon { background: #526f88; }
.home-tools-card .home-tool-item.home-tool-dress:hover,
.home-tools-card .home-tool-item.home-tool-size:hover {
  box-shadow: 0 10px 28px rgba(142,49,83,.15), 0 0 22px rgba(232,200,199,.5);
}

/* FIX: formerly pastel backgrounds inherited WHITE text from ring chips. */
.cat-archive-page .cat-archive-chips a.cat-tool-chip.hwd-chip {
  color: #fff; border: 1px solid rgba(201,164,93,.66);
  background: linear-gradient(115deg,#8e3153,#6c2340);
  box-shadow: 0 9px 23px rgba(142,49,83,.16);
}
.cat-archive-page .cat-archive-chips a.cat-tool-chip.hwd-size-chip {
  background: linear-gradient(115deg,#526e84,#40586c);
  border-color: rgba(120,150,173,.55);
}
.cat-archive-page .cat-archive-chips a.cat-tool-chip.hwd-chip span,
.cat-archive-page .cat-archive-chips a.cat-tool-chip.hwd-chip small {
  color: #fff;
}
.cat-archive-page .cat-archive-chips a.cat-tool-chip.hwd-chip .cat-tool-chip-icon {
  color: #fce6b9;
  border-color: rgba(255,255,255,.58);
}
.cat-archive-page .cat-archive-chips a.cat-tool-chip.hwd-chip small {
  background: rgba(255,255,255,.17);
  border-color: rgba(255,255,255,.32);
}
.cat-archive-page .cat-archive-chips a.cat-tool-chip.hwd-chip:hover,
.cat-archive-page .cat-archive-chips a.cat-tool-chip.hwd-chip:focus-visible {
  color: #fff; transform: translateY(-2px);
  box-shadow: 0 13px 30px rgba(142,49,83,.27), 0 0 0 4px rgba(232,200,199,.35);
}

/* Main Dresses & Attire tool banner appears directly AFTER Explore More. */
.cat-archive-page .cat-archive-content > .hwd-category-callout {
  position: relative; isolation: isolate; overflow: hidden;
  margin: 0 0 clamp(1.5rem,3vw,2.3rem);
  padding: clamp(22px,3vw,37px);
  border: 1px solid rgba(201,164,93,.35);
  background: linear-gradient(117deg,#55233a,#8e3153 62%,#9b4e6d);
  box-shadow: 0 15px 38px rgba(142,49,83,.16);
}
.cat-archive-page .cat-archive-content > .hwd-category-callout::before {
  content: ''; position: absolute; z-index: -1; pointer-events: none;
  width: 260px; height: 260px; top: -155px; right: 18%; border-radius: 50%;
  background: radial-gradient(circle,rgba(255,255,255,.22),transparent 74%);
}
.cat-archive-page .hwd-category-callout-copy { max-width: 680px; min-width: 0; }
.cat-archive-page .hwd-category-callout h2 em { color: #f3dbb0; font-weight: 500; }
.cat-archive-page .hwd-category-callout h2 { color: #fff; }
.cat-archive-page .hwd-category-callout-actions .hwd-btn-light:hover {
  background: #fff6ef; color: #70283f;
}
.cat-archive-page .hwd-category-callout-actions .hwd-btn-outline-light:hover {
  background: rgba(255,255,255,.20); color: #fff;
}
.cat-archive-page .hwd-category-callout-actions .hwd-btn:focus-visible {
  outline: 3px solid #f3dbb0; outline-offset: 3px;
}

/* All category landing pages now have an actual Wedding Tools sidebar card. */
.cat-archive-page .cat-latest-layout.has-pinterest { align-items: start; }
.cat-archive-page .hwd-cat-rail {
  display: flex; flex-direction: column; gap: 18px;
  min-width: 0; width: 100%; align-self: start;
}
.cat-archive-page .hwd-cat-rail > .cat-live-pinterest-card,
.cat-archive-page .hwd-cat-rail > .home-side-card {
  position: static; top: auto; max-height: none; overflow: visible;
  min-width: 0; width: 100%; margin: 0;
}
.cat-archive-page .hwd-cat-tool-rail-card { padding: 19px; }
.cat-archive-page .hwd-cat-tool-rail-card h3 { font-size: clamp(1.45rem,2.1vw,1.9rem); }
.cat-archive-page .hwd-cat-tool-rail-card .home-tool-item {
  max-width: 100%; min-width: 0;
  grid-template-columns: 38px minmax(0,1fr) 14px; gap: .55rem; padding: .66rem;
}
.cat-archive-page .hwd-cat-tool-rail-card .home-tool-icon { width: 38px; height: 38px; }
.cat-archive-page .hwd-cat-tool-rail-card .home-tool-item strong { overflow-wrap: anywhere; }
.cat-archive-page .hwd-cat-rail .cat-pinterest-widget-wrap { max-width: 100%; }

@media (max-width: 820px) {
  .home-categories .hwd-home-dress-hub { grid-template-columns: 1fr; gap: 18px; }
  .hwd-home-dress-actions { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 580px) {
  .home-categories .hwd-home-dress-hub { padding: 17px 15px; border-radius: 16px; }
  .hwd-home-dress-actions { grid-template-columns: 1fr; }
  .hwd-home-dress-action { min-height: 65px; }
  .hwd-home-dress-action strong { font-size: 1.15rem; }
  .cat-archive-page .hwd-cat-tool-rail-card { padding: 16px; }
  .cat-archive-page .hwd-category-callout-actions { width: 100%; flex-direction: column; }
  .cat-archive-page .hwd-category-callout-actions .hwd-btn { width: 100%; min-height: 45px; }
  .cat-archive-page .cat-archive-chips a.cat-tool-chip.hwd-chip { font-size: .79rem; }
}
@media (prefers-reduced-motion: reduce) {
  .hwd-home-dress-action,.hwd-home-category-quicklink,
  .cat-archive-page .cat-archive-chips a.cat-tool-chip.hwd-chip {
    transition: none !important; animation: none !important;
  }
  .hwd-home-dress-action:hover,.hwd-home-category-quicklink:hover,
  .cat-archive-page .cat-archive-chips a.cat-tool-chip.hwd-chip:hover { transform: none !important; }
}
/* Keep inherited decorative pseudo-elements within each category tool card. */
.cat-archive-page .hwd-cat-rail > .home-side-card { overflow: hidden; }
@media (max-width: 700px) {
  .cat-archive-page .cat-archive-chips { max-width: 100%; margin-right: 0; }
}
/* Existing decorative orbit sits 70px outside card, which caused page overflow. */
.cat-archive-page .hwd-cat-tool-rail-card::before { display: none; }

/* Mobile: the dress tools lead the horizontal category scroller and CTA buttons remain compact. */
@media (max-width: 680px) {
  .cat-archive-page .hwd-category-callout-actions .hwd-btn {
    flex: 0 0 auto; min-height: 46px; height: auto;
    padding: 12px 16px; font-size: 12px;
  }
}


/* =====================================================
   PHASE 8.27 — UNBROKEN CATEGORY TOOL / SUBCATEGORY STRIP
   One line at every viewport. Scroll within the strip when needed;
   never widen the entire document or shrink accessible tap targets.
   ===================================================== */
.cat-archive-page .cat-archive-chips {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  gap: .65rem;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 3px 2px 13px;
  margin-right: 0;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: #E8C8C7 transparent;
}
.cat-archive-page .cat-archive-chips > a {
  flex: 0 0 auto;
  white-space: nowrap;
  max-width: none;
}
.cat-archive-page .cat-archive-chips::-webkit-scrollbar { height: 5px; display: block; }
.cat-archive-page .cat-archive-chips::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(142,49,83,.28);
}
.cat-archive-page .cat-archive-chips::-webkit-scrollbar-track { background: transparent; }
@media (max-width: 700px) {
  .cat-archive-page .cat-archive-chips {
    flex-wrap: nowrap;
    padding-bottom: 13px;
    margin-right: 0;
    scrollbar-width: thin;
  }
  .cat-archive-page .cat-archive-chips > a { flex: 0 0 auto; }
}

/* =====================================================
   PHASE 8.28 — FIND MY DRESS: FIVE-PREFERENCE QUIZ
   Scoped only to the existing finder. Preserves other
   site layouts, Wedding Finder and Dress Size Converter.
   ===================================================== */
.hwd-finder-page .hwd-choice-grid-options { align-items: stretch; }
.hwd-finder-page .hwd-choice-option {
  min-height: 145px;
  padding: 24px 19px 19px;
  background: radial-gradient(circle at 8% 0%,rgba(232,200,199,.2),transparent 38%),linear-gradient(148deg,#fff,#fffaf8);
  border-color: rgba(142,49,83,.19);
}
.hwd-finder-page .hwd-choice-option > span { font-size: 30px; color: #b98e60; }
.hwd-finder-page .hwd-choice-option strong { max-width: calc(100% - 9px); overflow-wrap: anywhere; }
.hwd-finder-page .hwd-choice-option small { padding-right: 5px; }
.hwd-finder-page .hwd-finder-step legend { scroll-margin-top: 25px; }
.hwd-finder-page .hwd-dress-match {
  position: relative; overflow: hidden;
  padding: clamp(23px,4vw,37px);
  margin: 7px 0 31px;
  background: radial-gradient(circle at 97% 4%,rgba(232,200,199,.58),transparent 26%),
    linear-gradient(125deg,#fff9f5 0%,#fff6f5 54%,#f5e4e5 100%);
  border: 1px solid rgba(142,49,83,.2);
  border-radius: 21px;
  box-shadow: 0 11px 30px rgba(142,49,83,.06);
}
.hwd-finder-page .hwd-dress-match::before {
  content: '✧'; position: absolute; right: -7px; top: -40px;
  font: 170px/1 var(--serif); color: rgba(142,49,83,.075); pointer-events: none;
}
.hwd-finder-page .hwd-match-intro { display: flex; gap: 16px; align-items: center; position: relative; margin-bottom: 22px; }
.hwd-finder-page .hwd-match-intro .hwd-eyebrow { margin: 0 0 5px; }
.hwd-finder-page .hwd-match-intro p:not(.hwd-eyebrow) { color: #58535a; font: 400 14px/1.55 var(--sans); margin: 0; }
.hwd-finder-page .hwd-match-sparkle { flex: 0 0 54px; display: grid; place-items: center; width: 54px; height: 54px;
  background: #8e3153; color: #ffe0b4; border-radius: 17px; font: 42px/1 var(--serif); box-shadow: 0 9px 21px rgba(142,49,83,.18); }
.hwd-finder-page .hwd-match-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; position: relative; }
.hwd-finder-page .hwd-match-item { border: 1px solid rgba(142,49,83,.14); border-radius: 15px; background: rgba(255,255,255,.8);
  display: flex; flex-direction: column; gap: 6px; padding: 18px; min-width: 0; }
.hwd-finder-page .hwd-match-item span { font: 700 10px/1.4 var(--sans); letter-spacing: .105em; text-transform: uppercase; color: #7c6871; }
.hwd-finder-page .hwd-match-item strong { font: 600 clamp(21px,2.6vw,28px)/1.12 var(--serif); color: var(--hwd-ink); overflow-wrap: anywhere; }
.hwd-finder-page .hwd-match-feature { background: linear-gradient(125deg,#74304b,#8e3153); border-color: #8e3153; box-shadow: 0 8px 22px rgba(142,49,83,.15); }
.hwd-finder-page .hwd-match-feature span { color: #f7d8cf; }
.hwd-finder-page .hwd-match-feature strong { color: #fff; }
.hwd-finder-page .hwd-match-note { position: relative; max-width: 760px; font: 400 12px/1.7 var(--sans); color: #665d63; margin: 20px 0; }
.hwd-finder-page .hwd-dress-match .hwd-btn { position: relative; }
.hwd-finder-page .hwd-results-editorial { scroll-margin-top: 28px; }
.hwd-finder-page .hwd-results-editorial > h3 { color: var(--hwd-berry); font: 500 clamp(25px,3.2vw,35px)/1.15 var(--serif); margin: 0 0 8px; }
@media (max-width: 680px) {
  .hwd-finder-page .hwd-choice-grid-options { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
  .hwd-finder-page .hwd-choice-option { padding: 16px 12px; min-height: 119px; }
  .hwd-finder-page .hwd-choice-option > span { font-size: 23px; }
  .hwd-finder-page .hwd-choice-option strong { font-size: clamp(17px,4.5vw,20px); padding-right: 9px; }
  .hwd-finder-page .hwd-choice-option small { font-size: 10px; line-height: 1.45; }
  .hwd-finder-page .hwd-match-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
  .hwd-finder-page .hwd-match-item { padding: 13px 11px; }
  .hwd-finder-page .hwd-match-item strong { font-size: 21px; }
  .hwd-finder-page .hwd-match-item span { font-size: 9px; }
  .hwd-finder-page .hwd-dress-match { padding: 21px 15px; }
  .hwd-finder-page .hwd-match-sparkle { flex-basis: 43px; width: 43px; height: 43px; font-size: 32px; }
  .hwd-finder-page .hwd-match-intro { gap: 10px; }
}
@media (max-width: 340px) {
  .hwd-finder-page .hwd-choice-grid-options { grid-template-columns: 1fr; }
  .hwd-finder-page .hwd-choice-option { min-height: 91px; }
  .hwd-finder-page .hwd-match-grid { grid-template-columns: 1fr; }
}

.hwd-finder-page .hwd-match-story { position: relative; margin: 18px 0 5px; font: 500 clamp(17px,2vw,20px)/1.55 var(--serif); color: #6d2e4b; max-width: 790px; }

/* ========================================================
   PHASE 8.29 — FIND MY WEDDING DRESS SIZE
   Scoped to the existing Dress Size Converter page.
   Preserves all prior theme, finder, article and sidebar styles.
   ======================================================== */
.hwd-fit-page .hwd-fit-hero-note {
  margin: 17px 0 0; max-width: 620px; color:#655b61; font: 500 12px/1.7 var(--sans);
  padding-left: 13px; border-left: 2px solid var(--hwd-gold);
}
.hwd-fit-page .hwd-fit-workspace {max-width: 1040px; margin: 0 auto 24px;}
.hwd-fit-page .hwd-fit-workspace .hwd-panel-heading {margin-bottom:18px;}
.hwd-fit-page .hwd-fit-workspace .hwd-panel-heading h2 {font-size:clamp(27px,3.6vw,43px);}
.hwd-fit-page .hwd-fit-progress {margin-bottom:26px;}
.hwd-fit-page .hwd-fit-pane {min-width:0;}
.hwd-fit-page .hwd-fit-question {font:500 clamp(26px,3.5vw,38px)/1.12 var(--serif);color:var(--hwd-ink);margin:0 0 9px;}
.hwd-fit-page .hwd-field-help {font:400 14px/1.7 var(--sans);color:#646269;margin:0 0 22px;}
.hwd-fit-page .hwd-fit-paths {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;}
.hwd-fit-page .hwd-fit-path {width:100%;display:flex;text-align:left;align-items:flex-start;gap:16px;padding:clamp(20px,2.8vw,30px);min-height:200px;appearance:none;border:1px solid rgba(142,49,83,.22);border-radius:19px;background:linear-gradient(135deg,#fffdfb,#fff5f5);box-shadow:0 7px 26px rgba(48,52,58,.035);cursor:pointer;color:var(--hwd-ink);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background .2s ease;}
.hwd-fit-page .hwd-fit-path:nth-child(2) {background:linear-gradient(132deg,#fffdfa,#f0f5f8);}
.hwd-fit-page .hwd-fit-path:hover {transform:translateY(-3px);box-shadow:0 12px 34px rgba(142,49,83,.16),0 0 25px rgba(232,200,199,.55);border-color:var(--hwd-berry);}
.hwd-fit-page .hwd-fit-path-icon {display:grid;flex:0 0 48px;place-items:center;width:48px;height:48px;border-radius:50%;background:#f6e4e8;color:var(--hwd-berry);font:500 29px/1 var(--serif);}
.hwd-fit-page .hwd-fit-path:nth-child(2) .hwd-fit-path-icon {background:#e6eff4;color:#426a83;}
.hwd-fit-page .hwd-fit-path-body {min-width:0;display:flex;flex-direction:column;gap:10px;}
.hwd-fit-page .hwd-fit-path-body strong {font:500 clamp(24px,2.8vw,31px)/1.08 var(--serif);color:var(--hwd-berry);}
.hwd-fit-page .hwd-fit-path-body small {font:400 13px/1.65 var(--sans);color:#646269;}
.hwd-fit-page .hwd-fit-path-cta {color:var(--hwd-berry);font:700 12px/1.45 var(--sans);margin-top:auto;}
.hwd-fit-page .hwd-fit-path:focus-visible,.hwd-fit-page button:focus-visible,.hwd-fit-page input:focus-visible,.hwd-fit-page select:focus-visible,.hwd-fit-page .hwd-fit-help summary:focus-visible {outline:3px solid var(--hwd-blue);outline-offset:3px;}
.hwd-fit-page .hwd-fit-unit-chooser {border:0;padding:0;margin:3px 0 25px;min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:8px;}
.hwd-fit-page .hwd-fit-unit-chooser legend {display:block;width:100%;font:700 13px/1.5 var(--sans);margin-bottom:10px;}
.hwd-fit-page .hwd-fit-unit-chooser label {display:inline-flex;align-items:center;gap:8px;padding:10px 15px;background:#fffaf9;border:1px solid var(--hwd-border);border-radius:999px;cursor:pointer;font:600 13px/1.4 var(--sans);color:var(--hwd-ink);}
.hwd-fit-page .hwd-fit-unit-chooser label:has(input:checked) {background:#fae7ed;border-color:var(--hwd-berry);}
.hwd-fit-page .hwd-fit-unit-chooser input {accent-color:var(--hwd-berry);width:17px;height:17px;}
.hwd-fit-page .hwd-fit-measure-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
.hwd-fit-page .hwd-fit-measure-field {min-width:0;border:1px solid var(--hwd-border);border-radius:15px;background:#fffdfb;padding:19px;}
.hwd-fit-page .hwd-fit-measure-field>label {display:block;font:700 14px/1.4 var(--sans);color:var(--hwd-ink);}
.hwd-fit-page .hwd-fit-unit-text {font:500 12px/1.4 var(--sans);color:#666a72;}
.hwd-fit-page .hwd-fit-subhelp {font:400 12px/1.5 var(--sans);color:#6a686d;margin:6px 0 13px;}
.hwd-fit-page .hwd-fit-input-wrap {position:relative;min-width:0;}
.hwd-fit-page .hwd-fit-input-wrap input {display:block;width:100%;height:53px;border:1px solid rgba(142,49,83,.28);border-radius:11px;padding:9px 43px 9px 13px;background:#fff;color:var(--hwd-ink);font:500 17px/1.3 var(--sans);min-width:0;}
.hwd-fit-page .hwd-fit-input-wrap input[aria-invalid="true"] {border-color:#a72849;box-shadow:0 0 0 2px rgba(167,40,73,.10);}
.hwd-fit-page .hwd-fit-input-wrap input::-webkit-inner-spin-button {opacity:.2;}
.hwd-fit-page .hwd-fit-unit-abbrev {position:absolute;right:13px;top:50%;transform:translateY(-50%);color:#6c6670;font:700 12px/1.3 var(--sans);pointer-events:none;}
.hwd-fit-page .hwd-fit-help {margin-top:12px;color:#645860;font:400 12px/1.55 var(--sans);}
.hwd-fit-page .hwd-fit-help summary {color:#812b4c;font:700 12px/1.5 var(--sans);cursor:pointer;list-style:revert;}
.hwd-fit-page .hwd-fit-help p {margin:9px 0 0;}
.hwd-fit-page .hwd-form-actions {margin-top:25px;}
.hwd-fit-page .hwd-fit-result {background:linear-gradient(137deg,#fffbf9,#fff0f1);padding:0;}
.hwd-fit-page .hwd-fit-result-header {padding:8px 0 23px;}
.hwd-fit-page .hwd-fit-result-header h3 {margin:0 0 9px;color:var(--hwd-berry);font:500 clamp(31px,4.4vw,49px)/1.1 var(--serif);}
.hwd-fit-page .hwd-fit-result-header>p:last-child {font:400 14px/1.65 var(--sans);color:#5a5e63;margin:0;}
.hwd-fit-page .hwd-fit-result-feature {display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;border:1px solid rgba(142,49,83,.22);border-radius:19px;padding:24px;background:#fff;box-shadow:0 14px 35px rgba(142,49,83,.08);}
.hwd-fit-page .hwd-fit-result-feature>span:first-child {font:700 11px/1.4 var(--sans);letter-spacing:.16em;color:var(--hwd-berry);}
.hwd-fit-page .hwd-fit-result-feature strong {font:500 clamp(61px,8vw,100px)/1 var(--serif);color:var(--hwd-berry);}
.hwd-fit-page .hwd-fit-result-feature>span:last-child {font:500 13px/1.45 var(--sans);color:#62656c;}
.hwd-fit-page .hwd-fit-result h4 {margin:24px 0 13px;font:500 clamp(22px,3vw,30px)/1.16 var(--serif);color:var(--hwd-ink);}
.hwd-fit-page .hwd-fit-conversion-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.hwd-fit-page .hwd-fit-conversion-item {min-width:0;display:flex;flex-direction:column;gap:5px;padding:15px;background:#fff;border:1px solid var(--hwd-border);border-radius:14px;}
.hwd-fit-page .hwd-fit-conversion-item.is-us {background:#faedf1;border-color:rgba(142,49,83,.34);}
.hwd-fit-page .hwd-fit-conversion-item span {font:600 11px/1.4 var(--sans);color:#5e6570;}
.hwd-fit-page .hwd-fit-conversion-item strong {font:500 clamp(22px,2.9vw,31px)/1.15 var(--serif);color:var(--hwd-berry);}
.hwd-fit-page .hwd-fit-recap-items {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;}
.hwd-fit-page .hwd-fit-recap-items p {margin:0;display:flex;justify-content:space-between;gap:10px;padding:13px 15px;background:#fff;border-radius:11px;border:1px solid var(--hwd-border);font:500 13px/1.4 var(--sans);}
.hwd-fit-page .hwd-fit-recap-items strong {font-weight:700;color:var(--hwd-berry);}
.hwd-fit-page .hwd-fit-between {margin:15px 0 0;padding:13px 16px;border-left:3px solid var(--hwd-gold);border-radius:0 12px 12px 0;background:#fff;color:#5b5255;font:500 13px/1.7 var(--sans);}
.hwd-fit-page .hwd-fit-result .hwd-disclaimer {margin-top:26px;background:#fffaf8;}
.hwd-fit-page .hwd-fit-result-actions {display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:23px;}
.hwd-fit-page .hwd-fit-again {background:none;border:0;color:var(--hwd-berry);font:700 12px/1.5 var(--sans);cursor:pointer;padding:12px 3px;}
.hwd-fit-page .hwd-fit-again:hover {text-decoration:underline;}
.hwd-fit-page .hwd-fit-workspace [hidden] {display:none!important;}
@media (max-width:850px) {
 .hwd-fit-page .hwd-fit-measure-grid {grid-template-columns:1fr;gap:11px;}
 .hwd-fit-page .hwd-fit-measure-field {padding:15px 18px;}
}
@media (max-width:680px) {
 .hwd-fit-page .hwd-fit-paths {grid-template-columns:1fr;gap:12px;}
 .hwd-fit-page .hwd-fit-path {min-height:152px;padding:20px 17px;}
 .hwd-fit-page .hwd-fit-path-icon {width:43px;height:43px;flex-basis:43px;}
 .hwd-fit-page .hwd-fit-conversion-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;}
 .hwd-fit-page .hwd-fit-recap-items {grid-template-columns:1fr;}
 .hwd-fit-page .hwd-fit-result-actions {flex-direction:column;align-items:stretch;}
 .hwd-fit-page .hwd-fit-result-actions .hwd-btn {width:100%;}
 .hwd-fit-page .hwd-fit-again {align-self:center;}
 .hwd-fit-page .hwd-form-actions .hwd-btn {flex:1 1 180px;}
 .hwd-fit-page .hwd-fit-hero-note {font-size:12px;}
}
@media (max-width:360px) {
 .hwd-fit-page .hwd-fit-conversion-item {padding:12px;}
 .hwd-fit-page .hwd-fit-conversion-item strong {font-size:23px;}
}
@media (prefers-reduced-motion:reduce) {
 .hwd-fit-page .hwd-fit-path {transition:none;}
 .hwd-fit-page .hwd-fit-path:hover {transform:none;}
}

/* ==============================================================
   HEAVEN WEDDING IDEAS · WEDDING BUDGET CALCULATOR (Phase 8.30)
   All non-print styles are scoped to the standalone tool wrapper.
   =============================================================== */
.hwi-budget-calculator {
  --hwi-ink:#30343A; --hwi-berry:#8E3153; --hwi-blue:#7896AD;
  --hwi-gold:#C9A45D; --hwi-ivory:#FFF9F5; --hwi-blush:#E8C8C7;
  --hwi-line:rgba(142,49,83,.19); --hwi-muted:#626671;
  color:var(--hwi-ink); background:var(--hwi-ivory);
  font-family:var(--sans,"DM Sans",sans-serif); line-height:1.62;
  padding:0 0 74px; isolation:isolate;
}
.hwi-budget-calculator *,.hwi-budget-calculator *::before,.hwi-budget-calculator *::after {box-sizing:border-box;}
.hwi-budget-calculator .hwi-budget-wrap {width:min(1160px,calc(100% - 42px));margin-inline:auto;min-width:0;}
.hwi-budget-calculator .hwi-budget-eyebrow {color:var(--hwi-berry);font:700 10px/1.5 var(--sans,"DM Sans",sans-serif);letter-spacing:.17em;text-transform:uppercase;margin:0 0 11px;}
.hwi-budget-calculator h1,.hwi-budget-calculator h2,.hwi-budget-calculator h3 {font-family:var(--serif,"Cormorant Garamond",Georgia,serif);font-weight:500;line-height:1.13;letter-spacing:-.012em;margin:0;color:var(--hwi-ink);}
.hwi-budget-calculator h1 em,.hwi-budget-calculator h2 em {font-weight:500;color:var(--hwi-berry);}
.hwi-budget-calculator .hwi-budget-hero {padding:22px 0 0;}
.hwi-budget-calculator .hwi-budget-hero-grid {min-height:350px;display:grid;grid-template-columns:1.06fr .94fr;overflow:hidden;border:1px solid var(--hwi-line);background:#fff;border-radius:24px;box-shadow:0 22px 50px rgba(82,41,51,.045);}
.hwi-budget-calculator .hwi-budget-hero-copy {min-width:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:clamp(24px,4.2vw,62px);}
.hwi-budget-calculator .hwi-budget-breadcrumb {display:flex;flex-wrap:wrap;align-items:center;gap:10px;color:#74767a;font:500 11px/1.55 var(--sans,"DM Sans",sans-serif);margin-bottom:32px;}
.hwi-budget-calculator .hwi-budget-breadcrumb a {color:#656c77;text-decoration:none;}
.hwi-budget-calculator .hwi-budget-breadcrumb a:hover {color:var(--hwi-berry);}
.hwi-budget-calculator h1 {font-size:clamp(43px,5.9vw,78px);max-width:13ch;}
.hwi-budget-calculator .hwi-budget-lede {font-size:clamp(15px,1.65vw,18px);line-height:1.68;color:#585e66;margin:18px 0 16px;max-width:550px;}
.hwi-budget-calculator .hwi-budget-pills {display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.hwi-budget-calculator .hwi-budget-pills span {display:inline-flex;align-items:center;border:1px solid #eadbda;border-radius:999px;padding:5px 10px;font:700 11px/1.5 var(--sans,"DM Sans",sans-serif);color:#755064;background:#fffafb;}
.hwi-budget-calculator .hwi-budget-hero-art {position:relative;min-height:320px;overflow:hidden;padding:44px;background:linear-gradient(136deg,#fbe3e3 0%,#f9e8e9 51%,#d9e5eb 100%);display:flex;flex-direction:column;justify-content:flex-end;gap:13px;}
.hwi-budget-calculator .hwi-budget-hero-art::before {content:"";position:absolute;width:315px;aspect-ratio:1;right:-100px;top:-130px;border:1px solid rgba(142,49,83,.27);border-radius:50%;box-shadow:0 0 0 15px rgba(255,255,255,.29),0 0 0 31px rgba(255,255,255,.16);}
.hwi-budget-calculator .hwi-budget-hero-orbit {position:absolute;width:105px;height:105px;right:84px;top:28px;border:1px solid rgba(201,164,93,.44);border-radius:50%;}
.hwi-budget-calculator .hwi-budget-spark {position:absolute;color:var(--hwi-gold);font:500 54px/1 var(--serif,Georgia,serif);}
.hwi-budget-calculator .hwi-budget-spark-one {top:38px;left:52px;}
.hwi-budget-calculator .hwi-budget-spark-two {top:40px;right:44px;font-size:30px;}
.hwi-budget-calculator .hwi-budget-art-line {position:relative;z-index:1;display:flex;align-items:center;gap:14px;width:min(325px,100%);font:700 11px/1.4 var(--sans,"DM Sans",sans-serif);color:#714f5c;}
.hwi-budget-calculator .hwi-budget-art-line i {display:block;flex:1;max-width:110px;height:6px;border-radius:99px;background:linear-gradient(90deg,#8E3153,#D7ADB9);}
.hwi-budget-calculator .hwi-budget-art-line:nth-of-type(3) i {max-width:70px;background:linear-gradient(90deg,#7896AD,#bed2df);}
.hwi-budget-calculator .hwi-budget-art-line:nth-of-type(4) i {max-width:88px;background:linear-gradient(90deg,#C9A45D,#e9dabb);}
.hwi-budget-calculator .hwi-budget-hero-art strong {position:relative;z-index:1;font:500 clamp(27px,3.2vw,43px)/1.07 var(--serif,Georgia,serif);color:#553541;margin-top:18px;}
.hwi-budget-calculator .hwi-budget-hero-art strong em {color:var(--hwi-berry);}
.hwi-budget-calculator .hwi-budget-hero-art small {position:relative;z-index:1;font:700 9px/1.5 var(--sans,"DM Sans",sans-serif);letter-spacing:.2em;color:#785a62;}
.hwi-budget-calculator .hwi-budget-main {padding-top:25px;}
.hwi-budget-calculator .hwi-budget-workspace,.hwi-budget-calculator .hwi-budget-results {background:#fff;border:1px solid var(--hwi-line);border-radius:23px;box-shadow:0 16px 44px rgba(75,40,58,.05);padding:clamp(22px,3.7vw,44px);}
.hwi-budget-calculator .hwi-budget-panel-heading {display:flex;gap:20px;align-items:flex-start;justify-content:space-between;padding-bottom:24px;margin-bottom:26px;border-bottom:1px solid #f0e2e1;}
.hwi-budget-calculator .hwi-budget-panel-heading h2 {color:var(--hwi-berry);font-size:clamp(32px,4vw,49px);}
.hwi-budget-calculator .hwi-budget-panel-heading p:not(.hwi-budget-eyebrow) {color:var(--hwi-muted);font:400 14px/1.65 var(--sans,"DM Sans",sans-serif);margin:9px 0 0;}
.hwi-budget-calculator .hwi-budget-free-badge {white-space:nowrap;border-radius:99px;padding:8px 13px;border:1px solid #e5c8d0;background:#fff6f8;color:var(--hwi-berry);font:700 10px/1.4 var(--sans,"DM Sans",sans-serif);letter-spacing:.08em;}
.hwi-budget-calculator .hwi-budget-input-grid {display:grid;grid-template-columns:.85fr 1.1fr 1.1fr;gap:17px;}
.hwi-budget-calculator .hwi-budget-field {min-width:0;}
.hwi-budget-calculator .hwi-budget-field>label {display:block;color:var(--hwi-ink);font:700 13px/1.45 var(--sans,"DM Sans",sans-serif);margin-bottom:10px;}
.hwi-budget-calculator input:not([type="radio"]):not([type="checkbox"]),.hwi-budget-calculator select {appearance:none;background:#fffdfc;border:1px solid #dbc8c8;border-radius:12px;min-width:0;width:100%;height:53px;padding:10px 14px;color:var(--hwi-ink);font:500 14px/1.4 var(--sans,"DM Sans",sans-serif);}
.hwi-budget-calculator select {background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238E3153' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center;padding-right:35px;}
.hwi-budget-calculator .hwi-budget-currency-input {display:flex;align-items:center;gap:0;background:#fffdfc;border:1px solid #dbc8c8;border-radius:12px;overflow:hidden;}
.hwi-budget-calculator .hwi-budget-currency-input span {font:700 16px/1 var(--sans,"DM Sans",sans-serif);color:var(--hwi-berry);padding:0 0 0 14px;white-space:nowrap;}
.hwi-budget-calculator .hwi-budget-currency-input input {border:none!important;border-radius:0!important;height:51px!important;padding-left:8px!important;}
.hwi-budget-calculator .hwi-budget-help {color:var(--hwi-muted);font:400 12px/1.6 var(--sans,"DM Sans",sans-serif);margin:8px 0 0;}
.hwi-budget-calculator .hwi-budget-help strong {color:var(--hwi-berry);}
.hwi-budget-calculator .hwi-budget-choice-fieldset {padding:26px 0 0;margin:26px 0 0;border:0;border-top:1px solid #f0e2e1;min-width:0;}
.hwi-budget-calculator .hwi-budget-choice-fieldset>legend {float:left;width:100%;font:500 clamp(24px,2.9vw,32px)/1.17 var(--serif,"Cormorant Garamond",Georgia,serif);color:var(--hwi-berry);margin:0;}
.hwi-budget-calculator .hwi-budget-choice-fieldset>legend+.hwi-budget-help {clear:both;padding-top:5px;margin-bottom:18px;}
.hwi-budget-calculator .hwi-budget-style-grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;clear:both;}
.hwi-budget-calculator .hwi-budget-choice {position:relative;display:flex;gap:10px;align-items:flex-start;min-width:0;min-height:144px;background:linear-gradient(142deg,#fff,#fff9f8);border:1px solid #ebd6d8;border-radius:16px;padding:18px 14px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;}
.hwi-budget-calculator .hwi-budget-choice:has(input:checked) {border-color:var(--hwi-berry);background:#fff1f4;box-shadow:0 8px 21px rgba(142,49,83,.08);}
.hwi-budget-calculator .hwi-budget-choice:hover {transform:translateY(-2px);box-shadow:0 10px 27px rgba(142,49,83,.12);}
.hwi-budget-calculator .hwi-budget-choice input {position:absolute;right:13px;top:13px;width:17px;height:17px;accent-color:var(--hwi-berry);}
.hwi-budget-calculator .hwi-budget-choice-mark {display:inline-block;color:var(--hwi-gold);font:500 31px/1 var(--serif,Georgia,serif);flex:0 0 21px;margin-top:3px;}
.hwi-budget-calculator .hwi-budget-choice strong {display:block;margin-top:22px;color:#68263f;font:500 24px/1.05 var(--serif,Georgia,serif);}
.hwi-budget-calculator .hwi-budget-choice small {display:block;color:var(--hwi-muted);font:400 12px/1.5 var(--sans,"DM Sans",sans-serif);margin-top:7px;}
.hwi-budget-calculator .hwi-budget-priority-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.hwi-budget-calculator .hwi-budget-priority {position:relative;cursor:pointer;min-width:0;}
.hwi-budget-calculator .hwi-budget-priority input {position:absolute;left:14px;top:50%;transform:translateY(-50%);accent-color:var(--hwi-berry);width:17px;height:17px;z-index:1;}
.hwi-budget-calculator .hwi-budget-priority span {display:flex;align-items:center;min-height:48px;width:100%;padding:10px 11px 10px 41px;background:#fffbfa;border:1px solid #e6d5d6;border-radius:12px;color:var(--hwi-ink);font:600 12px/1.5 var(--sans,"DM Sans",sans-serif);transition:background .2s ease,border-color .2s ease,box-shadow .2s ease;}
.hwi-budget-calculator .hwi-budget-priority:hover span {box-shadow:0 0 18px rgba(232,200,199,.48);}
.hwi-budget-calculator .hwi-budget-priority:has(input:checked) span {background:#fcecf1;border-color:var(--hwi-berry);color:var(--hwi-berry);}
.hwi-budget-calculator .hwi-budget-cushion-choices {display:flex;flex-wrap:wrap;gap:10px;clear:both;}
.hwi-budget-calculator .hwi-budget-cushion-choices label {position:relative;cursor:pointer;}
.hwi-budget-calculator .hwi-budget-cushion-choices input {position:absolute;left:10px;top:50%;transform:translateY(-50%);accent-color:var(--hwi-berry);}
.hwi-budget-calculator .hwi-budget-cushion-choices span {display:block;border:1px solid #e3d0d1;background:#fffaf9;border-radius:99px;padding:12px 18px 12px 29px;color:var(--hwi-ink);font:700 12px/1.4 var(--sans,"DM Sans",sans-serif);}
.hwi-budget-calculator .hwi-budget-cushion-choices label:has(input:checked) span {background:#fae8ec;border-color:var(--hwi-berry);color:var(--hwi-berry);}
.hwi-budget-calculator .hwi-budget-field-error,.hwi-budget-calculator .hwi-budget-form-error {color:#a12445;font:600 12px/1.6 var(--sans,"DM Sans",sans-serif);margin:7px 0 0;}
.hwi-budget-calculator [hidden] {display:none!important;}
.hwi-budget-calculator input[aria-invalid="true"],.hwi-budget-calculator .hwi-budget-field:has(input[aria-invalid="true"]) .hwi-budget-currency-input {border-color:#b7284d!important;box-shadow:0 0 0 2px rgba(183,40,77,.12);}
.hwi-budget-calculator :is(input,select,button,a,summary,svg circle):focus-visible {outline:3px solid var(--hwi-blue)!important;outline-offset:3px!important;}
.hwi-budget-calculator .hwi-budget-form-actions {margin-top:28px;display:flex;align-items:center;flex-wrap:wrap;gap:14px;}
.hwi-budget-calculator .hwi-budget-form-actions>span {font:500 12px/1.6 var(--sans,"DM Sans",sans-serif);color:#727076;}
.hwi-budget-calculator .hwi-budget-button {display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:49px;padding:12px 22px;border-radius:999px;border:1px solid transparent;cursor:pointer;text-align:center;text-decoration:none;font:800 12px/1.45 var(--sans,"DM Sans",sans-serif);letter-spacing:.015em;transition:box-shadow .2s ease,transform .2s ease,background .2s ease;}
.hwi-budget-calculator .hwi-budget-button:hover {transform:translateY(-2px);box-shadow:0 8px 25px rgba(142,49,83,.20),0 0 16px rgba(232,200,199,.48);}
.hwi-budget-calculator .hwi-budget-button-primary {background:var(--hwi-berry);color:#fff;}
.hwi-budget-calculator .hwi-budget-button-secondary {background:#fff;border-color:var(--hwi-line);color:var(--hwi-berry);}
.hwi-budget-calculator .hwi-budget-button-text {color:var(--hwi-berry);background:transparent;border:0;}
.hwi-budget-calculator .hwi-budget-results {margin-top:25px;background:linear-gradient(160deg,#fff,#fffafa);scroll-margin-top:28px;}
.hwi-budget-calculator .hwi-budget-result-top {text-align:center;margin-bottom:25px;}
.hwi-budget-calculator .hwi-budget-result-top h2 {font-size:clamp(33px,4.8vw,59px);color:var(--hwi-berry);}
.hwi-budget-calculator .hwi-budget-result-top p:not(.hwi-budget-eyebrow) {margin:10px auto 0;color:var(--hwi-muted);font-size:13px;max-width:720px;}
.hwi-budget-calculator .hwi-budget-stat-grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;}
.hwi-budget-calculator .hwi-budget-stat {min-width:0;padding:18px;background:#fff;border:1px solid #eadddd;border-radius:14px;display:flex;flex-direction:column;gap:7px;}
.hwi-budget-calculator .hwi-budget-stat-primary {background:linear-gradient(134deg,#8E3153,#a15472);border-color:var(--hwi-berry);color:#fff;}
.hwi-budget-calculator .hwi-budget-stat>span {font:700 11px/1.4 var(--sans,"DM Sans",sans-serif);letter-spacing:.045em;color:#66636b;}
.hwi-budget-calculator .hwi-budget-stat-primary>span {color:#ffe5ed;}
.hwi-budget-calculator .hwi-budget-stat>strong {font:500 clamp(24px,2.85vw,36px)/1.14 var(--serif,Georgia,serif);overflow-wrap:anywhere;color:var(--hwi-berry);}
.hwi-budget-calculator .hwi-budget-stat-primary>strong {color:#fff;}
.hwi-budget-calculator .hwi-budget-stat>small {font:400 10px/1.5 var(--sans,"DM Sans",sans-serif);color:#68686b;}
.hwi-budget-calculator .hwi-budget-result-grid {display:grid;grid-template-columns:1.1fr .9fr;gap:17px;margin-top:24px;align-items:start;}
.hwi-budget-calculator .hwi-budget-breakdown,.hwi-budget-calculator .hwi-budget-chart-card {min-width:0;padding:clamp(17px,2.2vw,25px);border:1px solid #ead9d9;border-radius:18px;background:#fff;}
.hwi-budget-calculator .hwi-budget-breakdown h3,.hwi-budget-calculator .hwi-budget-chart-card h3 {font-size:clamp(25px,3.1vw,35px);color:var(--hwi-berry);}
.hwi-budget-calculator .hwi-budget-breakdown>p,.hwi-budget-calculator .hwi-budget-chart-card>p {font:400 12px/1.7 var(--sans,"DM Sans",sans-serif);color:var(--hwi-muted);margin:8px 0 18px;}
.hwi-budget-calculator .hwi-budget-breakdown-list {display:grid;gap:13px;}
.hwi-budget-calculator .hwi-budget-breakdown-row {min-width:0;}
.hwi-budget-calculator .hwi-budget-breakdown-row-head {display:flex;align-items:baseline;justify-content:space-between;gap:10px;min-width:0;}
.hwi-budget-calculator .hwi-budget-breakdown-name {font:700 12px/1.5 var(--sans,"DM Sans",sans-serif);color:var(--hwi-ink);min-width:0;}
.hwi-budget-calculator .hwi-budget-breakdown-figures {display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;justify-content:flex-end;}
.hwi-budget-calculator .hwi-budget-breakdown-figures strong {color:#754052;font:600 12px/1.5 var(--sans,"DM Sans",sans-serif);}
.hwi-budget-calculator .hwi-budget-breakdown-figures b {white-space:nowrap;color:var(--hwi-berry);font:800 13px/1.5 var(--sans,"DM Sans",sans-serif);}
.hwi-budget-calculator .hwi-budget-progress-track {height:7px;background:#f0e9e9;border-radius:99px;overflow:hidden;margin-top:6px;}
.hwi-budget-calculator .hwi-budget-progress-fill {display:block;height:100%;border-radius:99px;}
.hwi-budget-calculator .hwi-budget-breakdown-description {margin:4px 0 0;color:#727076;font:400 11px/1.45 var(--sans,"DM Sans",sans-serif);}
.hwi-budget-calculator .hwi-budget-total-check {margin-top:19px;padding:13px 0 0;border-top:1px solid #e7d9d9;display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--hwi-berry);font:700 13px/1.5 var(--sans,"DM Sans",sans-serif);}
.hwi-budget-calculator .hwi-budget-chart-stage {position:relative;max-width:300px;margin:9px auto;aspect-ratio:1;}
.hwi-budget-calculator .hwi-budget-chart {width:100%;height:100%;display:block;overflow:visible;}
.hwi-budget-calculator .hwi-budget-chart circle[role="button"] {cursor:pointer;transition:stroke-width .16s ease;}
.hwi-budget-calculator .hwi-budget-chart circle[role="button"]:hover,.hwi-budget-calculator .hwi-budget-chart circle[role="button"]:focus {stroke-width:34;}
.hwi-budget-calculator .hwi-budget-chart-center {position:absolute;inset:27%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none;}
.hwi-budget-calculator .hwi-budget-chart-center span {font:700 10px/1.2 var(--sans,"DM Sans",sans-serif);letter-spacing:.09em;color:#856a75;}
.hwi-budget-calculator .hwi-budget-chart-center strong {font:500 clamp(22px,3vw,37px)/1.08 var(--serif,Georgia,serif);color:var(--hwi-berry);overflow-wrap:anywhere;}
.hwi-budget-calculator .hwi-budget-chart-center small {font:600 10px/1.2 var(--sans,"DM Sans",sans-serif);color:#74787e;}
.hwi-budget-calculator .hwi-budget-chart-detail {min-height:42px;padding:10px 13px;border-radius:11px;background:#fff4f5;border:1px solid #efdde0;color:#76374f!important;text-align:center;font:700 12px/1.45 var(--sans,"DM Sans",sans-serif)!important;}
.hwi-budget-calculator .hwi-budget-legend {display:grid;gap:4px;}
.hwi-budget-calculator .hwi-budget-legend-item {width:100%;display:grid;grid-template-columns:13px minmax(0,1fr) auto;align-items:center;gap:10px;padding:7px 5px;border:0;border-bottom:1px solid #f2e7e7;background:transparent;color:var(--hwi-ink);cursor:pointer;text-align:left;font:600 11px/1.4 var(--sans,"DM Sans",sans-serif);}
.hwi-budget-calculator .hwi-budget-legend-item:hover {background:#fff6f8;}
.hwi-budget-calculator .hwi-budget-legend-swatch {width:11px;height:11px;border-radius:3px;}
.hwi-budget-calculator .hwi-budget-legend-name {min-width:0;}
.hwi-budget-calculator .hwi-budget-legend-item strong {color:var(--hwi-berry);}
.hwi-budget-calculator .hwi-budget-disclaimer {margin:24px 0 0;background:#fff6f5;border-left:3px solid var(--hwi-gold);padding:15px 17px;color:#605961;font:400 12px/1.8 var(--sans,"DM Sans",sans-serif);}
.hwi-budget-calculator .hwi-budget-result-actions {display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;}
.hwi-budget-calculator .hwi-budget-education {padding-top:48px;}
.hwi-budget-calculator .hwi-budget-education-title {text-align:center;margin-bottom:22px;}
.hwi-budget-calculator .hwi-budget-education h2,.hwi-budget-calculator .hwi-budget-faq h2 {font-size:clamp(32px,4.1vw,49px);color:var(--hwi-berry);}
.hwi-budget-calculator .hwi-budget-tip-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;}
.hwi-budget-calculator .hwi-budget-tip-grid p {margin:0;display:flex;gap:14px;min-height:105px;padding:18px;border:1px solid #ead7d9;background:#fff;border-radius:15px;box-shadow:0 9px 20px rgba(142,49,83,.035);color:#555860;font:500 13px/1.65 var(--sans,"DM Sans",sans-serif);}
.hwi-budget-calculator .hwi-budget-tip-grid span {color:var(--hwi-gold);font:500 29px/1 var(--serif,Georgia,serif);}
.hwi-budget-calculator .hwi-budget-faq {max-width:815px;margin:45px auto 0;}
.hwi-budget-calculator .hwi-budget-faq h2 {margin-bottom:20px;}
.hwi-budget-calculator .hwi-budget-faq details {margin:0 0 9px;border:1px solid #e9d9db;border-radius:13px;background:#fff;overflow:hidden;}
.hwi-budget-calculator .hwi-budget-faq summary {cursor:pointer;list-style:none;padding:16px 19px;color:var(--hwi-ink);font:700 13px/1.5 var(--sans,"DM Sans",sans-serif);display:flex;align-items:center;justify-content:space-between;gap:12px;}
.hwi-budget-calculator .hwi-budget-faq summary::-webkit-details-marker {display:none;}
.hwi-budget-calculator .hwi-budget-faq summary::after {content:"+";font:600 21px/1 var(--serif,Georgia,serif);color:var(--hwi-berry);}
.hwi-budget-calculator .hwi-budget-faq details[open] summary::after {content:"−";}
.hwi-budget-calculator .hwi-budget-faq details p {padding:0 19px 17px;margin:0;color:#5d6269;font:400 13px/1.8 var(--sans,"DM Sans",sans-serif);}
.hwi-budget-calculator .hwi-budget-footer-note {font:500 23px/1.4 var(--serif,Georgia,serif);text-align:center;margin:38px auto 0;color:var(--hwi-berry);}
@media (max-width:1050px) {
  .hwi-budget-calculator .hwi-budget-input-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
  .hwi-budget-calculator .hwi-budget-field:nth-child(3) {grid-column:1/-1;}
  .hwi-budget-calculator .hwi-budget-result-grid {grid-template-columns:1fr;}
  .hwi-budget-calculator .hwi-budget-chart-card {display:grid;grid-template-columns:1fr 1fr;column-gap:15px;}
  .hwi-budget-calculator .hwi-budget-chart-card>h3,.hwi-budget-calculator .hwi-budget-chart-card>p {grid-column:1/-1;}
  .hwi-budget-calculator .hwi-budget-chart-stage {grid-row:3/5;grid-column:1;}
  .hwi-budget-calculator .hwi-budget-chart-detail {grid-row:5;grid-column:1;}
  .hwi-budget-calculator .hwi-budget-legend {grid-column:2;grid-row:3/6;}
}
@media (max-width:740px) {
  .hwi-budget-calculator .hwi-budget-wrap {width:min(100% - 26px,640px);}
  .hwi-budget-calculator .hwi-budget-hero-grid {grid-template-columns:1fr;}
  .hwi-budget-calculator .hwi-budget-hero-copy {padding:27px 25px 25px;}
  .hwi-budget-calculator .hwi-budget-breadcrumb {margin-bottom:20px;}
  .hwi-budget-calculator .hwi-budget-hero-art {min-height:165px;padding:22px 30px;gap:8px;}
  .hwi-budget-calculator .hwi-budget-hero-orbit {width:72px;height:72px;right:30px;top:-17px;}
  .hwi-budget-calculator .hwi-budget-spark-one {font-size:35px;top:12px;left:22px;}
  .hwi-budget-calculator .hwi-budget-spark-two {font-size:22px;top:10px;right:23px;}
  .hwi-budget-calculator .hwi-budget-art-line {font-size:10px;}
  .hwi-budget-calculator .hwi-budget-hero-art strong {font-size:31px;margin-top:3px;}
  .hwi-budget-calculator .hwi-budget-input-grid {grid-template-columns:1fr;}
  .hwi-budget-calculator .hwi-budget-field:nth-child(3) {grid-column:auto;}
  .hwi-budget-calculator .hwi-budget-style-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
  .hwi-budget-calculator .hwi-budget-priority-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
  .hwi-budget-calculator .hwi-budget-stat-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
  .hwi-budget-calculator .hwi-budget-tip-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
  .hwi-budget-calculator .hwi-budget-chart-card {display:block;}
  .hwi-budget-calculator .hwi-budget-chart-stage {max-width:275px;}
}
@media (max-width:490px) {
  .hwi-budget-calculator .hwi-budget-wrap {width:calc(100% - 22px);}
  .hwi-budget-calculator .hwi-budget-hero-grid,.hwi-budget-calculator .hwi-budget-workspace,.hwi-budget-calculator .hwi-budget-results {border-radius:19px;}
  .hwi-budget-calculator .hwi-budget-hero-copy {padding:24px 20px;}
  .hwi-budget-calculator h1 {font-size:clamp(39px,10.9vw,53px);}
  .hwi-budget-calculator .hwi-budget-panel-heading {flex-direction:column;gap:13px;}
  .hwi-budget-calculator .hwi-budget-input-grid {gap:16px;}
  .hwi-budget-calculator .hwi-budget-style-grid {gap:9px;}
  .hwi-budget-calculator .hwi-budget-choice {padding:13px 10px;min-height:142px;gap:7px;}
  .hwi-budget-calculator .hwi-budget-choice strong {font-size:22px;}
  .hwi-budget-calculator .hwi-budget-choice small {font-size:11px;}
  .hwi-budget-calculator .hwi-budget-priority-grid {grid-template-columns:1fr;gap:8px;}
  .hwi-budget-calculator .hwi-budget-cushion-choices {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));}
  .hwi-budget-calculator .hwi-budget-form-actions {align-items:stretch;flex-direction:column;}
  .hwi-budget-calculator .hwi-budget-form-actions .hwi-budget-button {width:100%;}
  .hwi-budget-calculator .hwi-budget-stat {padding:13px;}
  .hwi-budget-calculator .hwi-budget-stat>strong {font-size:clamp(22px,6.5vw,30px);}
  .hwi-budget-calculator .hwi-budget-stat>span {font-size:10px;}
  .hwi-budget-calculator .hwi-budget-breakdown,.hwi-budget-calculator .hwi-budget-chart-card {padding:15px 12px;}
  .hwi-budget-calculator .hwi-budget-breakdown-row-head {align-items:flex-start;}
  .hwi-budget-calculator .hwi-budget-breakdown-figures {gap:3px;flex-direction:column;align-items:flex-end;}
  .hwi-budget-calculator .hwi-budget-legend {grid-template-columns:1fr;}
  .hwi-budget-calculator .hwi-budget-result-actions {display:grid;grid-template-columns:1fr;}
  .hwi-budget-calculator .hwi-budget-result-actions .hwi-budget-button {width:100%;}
  .hwi-budget-calculator .hwi-budget-tip-grid {grid-template-columns:1fr;}
  .hwi-budget-calculator .hwi-budget-tip-grid p {min-height:76px;}
}
@media (prefers-reduced-motion:reduce) {
  .hwi-budget-calculator .hwi-budget-button,.hwi-budget-calculator .hwi-budget-choice,.hwi-budget-calculator .hwi-budget-chart circle[role="button"] {transition:none;}
  .hwi-budget-calculator .hwi-budget-choice:hover,.hwi-budget-calculator .hwi-budget-button:hover {transform:none;}
}
@media print {
  body:has(.hwi-budget-calculator) .announcement-bar, body:has(.hwi-budget-calculator) .site-header,
  body:has(.hwi-budget-calculator) .site-footer, body:has(.hwi-budget-calculator) #wpadminbar {display:none!important;}
  .hwi-budget-calculator {background:#fff!important;padding:0!important;color:#000!important;}
  .hwi-budget-calculator .hwi-budget-hero,.hwi-budget-calculator .hwi-budget-workspace,
  .hwi-budget-calculator .hwi-budget-education,.hwi-budget-calculator .hwi-budget-faq,
  .hwi-budget-calculator .hwi-budget-footer-note,.hwi-budget-calculator .hwi-budget-result-actions {display:none!important;}
  .hwi-budget-calculator .hwi-budget-main {padding:0!important;width:100%!important;}
  .hwi-budget-calculator .hwi-budget-results {display:block!important;margin:0!important;padding:0!important;border:0!important;box-shadow:none!important;}
  .hwi-budget-calculator .hwi-budget-stat,.hwi-budget-calculator .hwi-budget-breakdown,
  .hwi-budget-calculator .hwi-budget-chart-card {break-inside:avoid;box-shadow:none!important;}
  .hwi-budget-calculator .hwi-budget-result-grid {display:grid;grid-template-columns:1.25fr .75fr;gap:12px;}
  .hwi-budget-calculator .hwi-budget-chart-stage {max-width:220px;}
  .hwi-budget-calculator .hwi-budget-chart-stage,.hwi-budget-calculator .hwi-budget-stat-primary,
  .hwi-budget-calculator .hwi-budget-progress-fill {print-color-adjust:exact;-webkit-print-color-adjust:exact;}
  @page {margin:12mm;}
}

.hwi-budget-calculator .hwi-budget-results:focus {outline:2px solid rgba(142,49,83,.28);outline-offset:2px;}


/* ============================================================
   PHASE 8.31 — DISCOVER THE WEDDING BUDGET CALCULATOR
   Reuse existing category and tools-card components. Keep the
   homepage hero actions adjacent whenever the left pane permits.
   ============================================================ */
@media (min-width: 701px) {
  .home-hero .home-hero-actions-clean {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: .55rem;
    max-width: 100%;
  }
  .home-hero .home-hero-actions-clean > a {
    flex: 0 1 auto;
    width: auto;
    min-width: 0;
    white-space: nowrap;
    padding-inline: clamp(.55rem, .85vw, .92rem);
    font-size: clamp(.64rem, .77vw, .73rem);
    letter-spacing: .016em;
  }
}
@media (max-width: 700px) {
  .home-hero .home-hero-actions-clean {
    display: flex;
    flex-wrap: nowrap;
    flex-direction: column;
    align-items: stretch;
    gap: .65rem;
  }
  .home-hero .home-hero-actions-clean > a {
    flex: none;
    width: 100%;
    max-width: 100%;
    min-height: 46px;
    white-space: normal;
    text-align: center;
  }
}
/* The planning category uses the same pill as the existing ring tool. */
.cat-archive-page .cat-archive-chips a.hwd-budget-category-chip {
  border-color: rgba(142,49,83,.38);
  background: linear-gradient(128deg, #8E3153 0%, #743149 100%);
  color: #fff;
}
.cat-archive-page .cat-archive-chips a.hwd-budget-category-chip:hover,
.cat-archive-page .cat-archive-chips a.hwd-budget-category-chip:focus-visible {
  background: linear-gradient(128deg, #78304A 0%, #63263F 100%);
  color: #fff;
  border-color: #C9A45D;
  box-shadow: 0 11px 28px rgba(142,49,83,.22), 0 0 0 4px rgba(232,200,199,.24);
}
/* Same free-tool card on homepage, category landings and articles. */
.home-tools-card .home-tool-item.hwd-budget-tool-item {
  border-color: rgba(142,49,83,.24);
  background: linear-gradient(135deg, rgba(255,249,245,.98), rgba(232,200,199,.21));
}
.home-tools-card .home-tool-item.hwd-budget-tool-item .home-tool-icon {
  background: #8E3153;
  color: #fff;
}
.home-tools-card .home-tool-item.hwd-budget-tool-item:hover,
.home-tools-card .home-tool-item.hwd-budget-tool-item:focus-visible {
  border-color: rgba(201,164,93,.70);
  box-shadow: 0 12px 25px rgba(142,49,83,.14), 0 0 20px rgba(232,200,199,.30);
}
@media (prefers-reduced-motion: reduce) {
  .home-tools-card .home-tool-item.hwd-budget-tool-item:hover,
  .home-tools-card .home-tool-item.hwd-budget-tool-item:focus-visible,
  .cat-archive-page .cat-archive-chips a.hwd-budget-category-chip:hover,
  .cat-archive-page .cat-archive-chips a.hwd-budget-category-chip:focus-visible {
    transform: none;
  }
}

/* ============================================================
   PHASE 8.32 — HONEYMOON BUDGET PLANNER
   Scoped to the standalone tool and its existing shared tool cards.
   The original Wedding Budget Calculator remains untouched.
   ============================================================ */
.hwi-honeymoon-calculator .hwi-honey-hero-art {
  background:linear-gradient(138deg,#f9e8e4 0%,#f7e6ea 46%,#dce8ed 100%);
}
.hwi-honeymoon-calculator .hwi-honey-hero-art .hwi-budget-art-line i {
  background:linear-gradient(90deg,#7896AD,#c4d6e2);
}
.hwi-honeymoon-calculator .hwi-honey-hero-art .hwi-budget-art-line:nth-of-type(4) i {
  background:linear-gradient(90deg,#C9A45D,#ead9b5);
}
.hwi-honeymoon-calculator .hwi-honey-optional {font:400 11px/1.4 var(--sans,"DM Sans",sans-serif);color:#737781;}
.hwi-honeymoon-calculator .hwi-honey-stat-grid {grid-template-columns:repeat(5,minmax(0,1fr));}
.hwi-honeymoon-calculator .hwi-honey-stat-grid .hwi-budget-stat {padding:clamp(11px,1.45vw,19px);}
.hwi-honeymoon-calculator .hwi-honey-stat-grid .hwi-budget-stat>strong {font-size:clamp(21px,2.55vw,34px);}
.hwi-honeymoon-calculator .hwi-honey-stat-grid .hwi-budget-stat>small {line-height:1.45;}
@media(min-width:701px){
  .hwi-honeymoon-calculator .hwi-honey-input-grid .hwi-budget-field:nth-child(3){grid-column:auto;}
}
@media(max-width:1060px){
  .hwi-honeymoon-calculator .hwi-honey-stat-grid {grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media(max-width:700px){
  .hwi-honeymoon-calculator .hwi-honey-stat-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
  .hwi-honeymoon-calculator .hwi-honey-stat-grid .hwi-budget-stat:last-child {grid-column:1/-1;}
}
/* Highlight the dedicated tool without changing other category chips. */
.cat-archive-page .cat-archive-chips a.hwi-honey-category-chip {
  background:linear-gradient(127deg,#415f76 0%,#53778f 100%);
  border-color:rgba(120,150,173,.54);color:#fff;
}
.cat-archive-page .cat-archive-chips a.hwi-honey-category-chip:hover,
.cat-archive-page .cat-archive-chips a.hwi-honey-category-chip:focus-visible {
  background:linear-gradient(127deg,#344e65 0%,#496b84 100%);
  border-color:#C9A45D;color:#fff;
  box-shadow:0 10px 25px rgba(65,95,118,.24),0 0 0 4px rgba(232,200,199,.28);
}
.hwd-category-callout.hwi-honeymoon-category-callout {
  background:linear-gradient(128deg,#40576a,#526c7a 50%,#8E3153 120%);
  border:1px solid rgba(201,164,93,.43);
  box-shadow:0 16px 38px rgba(48,52,58,.09);
}
.hwd-category-callout.hwi-honeymoon-category-callout .hwd-btn-light {
  color:#344e65;background:#fff;border-color:#fff;
}
.home-tools-card .home-tool-item.hwi-honeymoon-tool-item {
  border-color:rgba(120,150,173,.37);
  background:linear-gradient(126deg,#fffdfa,#eef5f8);
}
.home-tools-card .home-tool-item.hwi-honeymoon-tool-item .home-tool-icon {
  background:#53758d;color:#fff;
}
.home-tools-card .home-tool-item.hwi-honeymoon-tool-item:hover,
.home-tools-card .home-tool-item.hwi-honeymoon-tool-item:focus-visible {
  border-color:rgba(201,164,93,.82);
  box-shadow:0 9px 23px rgba(65,95,118,.14),0 0 18px rgba(232,200,199,.28);
}
@media(prefers-reduced-motion:reduce){
  .home-tools-card .home-tool-item.hwi-honeymoon-tool-item:hover,
  .home-tools-card .home-tool-item.hwi-honeymoon-tool-item:focus-visible,
  .cat-archive-page .cat-archive-chips a.hwi-honey-category-chip:hover,
  .cat-archive-page .cat-archive-chips a.hwi-honey-category-chip:focus-visible {transform:none;}
}

/* ================================================================
   PHASE 8.33 — WEDDING FASHION FINDER
   New standalone quiz only; existing wedding tools and page styles intact.
   ================================================================ */
.hwf-page {
  --hwf-berry: #8E3153;
  --hwf-blush: #E8C8C7;
  --hwf-ivory: #FFF9F5;
  --hwf-gold: #C9A45D;
  --hwf-blue: #7896AD;
  --hwf-ink: #30343A;
}
.hwf-page .hwd-hero h1 { font-size: clamp(43px, 6.2vw, 87px); line-height: 1.03; }
.hwf-page .hwf-hero-art { background: radial-gradient(circle at 84% 20%,rgba(255,255,255,.8),transparent 42%),linear-gradient(140deg,#f7e8e5 0%,#e8c8c7 63%,#cedae3 100%); }
.hwf-page .hwf-hero-art .hwd-dress-motif { font-size: 190px; opacity: .21; }
.hwf-page .hwf-hero-start { margin-top:22px; min-height:45px; }
.hwf-page .hwf-quiz { max-width: 1020px; margin: 0 auto 26px; scroll-margin-top: 30px; }
.hwf-page .hwf-intro-text { margin: 0 0 22px; color: #555b61; font: 400 clamp(15px,1.55vw,18px)/1.76 var(--sans,"DM Sans",sans-serif); max-width: 760px; }
.hwf-page .hwf-intro-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin: 0 0 26px; }
.hwf-page .hwf-intro-steps span { min-width: 0; padding: 15px 12px; border: 1px solid #efdfe2; border-radius: 13px; display: flex; align-items: center; gap: 10px; background: linear-gradient(145deg,#fff8f8,#fff); color: #4b4e52; font: 650 13px/1.4 var(--sans,"DM Sans",sans-serif); }
.hwf-page .hwf-intro-steps b { flex: none; color: var(--hwf-berry); border-radius: 50%; background: #faedef; border: 1px solid #efd2da; width: 32px; height: 32px; display: grid; place-items: center; font: 650 12px/1 var(--sans,"DM Sans",sans-serif); }
.hwf-page .hwf-start { min-height: 49px; padding-inline: 25px; }
.hwf-page .hwf-progress { margin: 0 0 27px; }
.hwf-page .hwf-step { padding: 0; border: none; min-width: 0; margin: 0; }
.hwf-page .hwf-step legend { color: var(--hwf-ink); padding: 0; margin: 0 0 9px; font: 500 clamp(27px,3.5vw,39px)/1.18 var(--serif,Georgia,serif); letter-spacing: -.018em; }
.hwf-page .hwf-step legend:focus { outline: none; }
.hwf-page .hwf-choice-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.hwf-page .hwf-choice { min-width: 0; min-height: 126px; padding: 19px 18px; background: linear-gradient(138deg,#fff,#fffafa); border: 1px solid #edced7; border-radius: 16px; box-shadow: 0 6px 14px rgba(142,49,83,.025); }
.hwf-page .hwf-choice:hover { transform: translateY(-2px); border-color: rgba(142,49,83,.53); box-shadow: 0 14px 25px rgba(142,49,83,.11); }
.hwf-page .hwf-choice.is-selected { border-color: var(--hwf-berry); background: linear-gradient(122deg,#fff5f6,#fff9f9); box-shadow: 0 0 0 1px rgba(142,49,83,.13),0 13px 23px rgba(142,49,83,.065); }
.hwf-page .hwf-choice:focus-within { outline: 3px solid rgba(120,150,173,.45); outline-offset: 3px; }
.hwf-page .hwf-choice input { width: 19px; height: 19px; cursor: pointer; }
.hwf-page .hwf-choice > span { color: var(--hwf-gold); font-size: 24px; }
.hwf-page .hwf-choice strong { color: #30343A; font: 600 clamp(20px,2.15vw,25px)/1.2 var(--serif,Georgia,serif); margin: 0 19px 0 0; }
.hwf-page .hwf-choice small { color: #656269; font: 400 12px/1.5 var(--sans,"DM Sans",sans-serif); }
.hwf-page .hwf-error { margin: 18px 0 0; color: #8E3153; background: #fff3f5; border: 1px solid #e7b6c6; border-radius: 10px; padding: 11px 14px; font: 650 13px/1.5 var(--sans,"DM Sans",sans-serif); }
.hwf-page .hwf-actions { display: flex; flex-wrap: wrap; gap: 11px; margin: 24px 0 0; }
.hwf-page .hwf-actions .hwd-btn { min-height: 45px; }
.hwf-page .hwf-results { max-width: 1020px; margin: 0 auto 28px; scroll-margin-top: 28px; }
.hwf-page .hwf-match { padding: clamp(23px,4vw,41px); border: 1px solid rgba(142,49,83,.22); border-radius: 21px; background: radial-gradient(ellipse at 96% 10%,rgba(255,255,255,.85),transparent 45%),linear-gradient(123deg,#fff6f6,#f6dfe0 66%,#f2e8e0); position: relative; overflow: hidden; box-shadow: 0 14px 35px rgba(142,49,83,.055); }
.hwf-page .hwf-match::after { content:""; position: absolute; pointer-events:none; width:170px; height:170px; top:-100px; right:-45px; border:1px solid rgba(201,164,93,.45); border-radius:50%; }
.hwf-page .hwf-match-mark { position: absolute; right: clamp(15px,4vw,39px); top: 15px; font: 400 68px/1 var(--serif,Georgia,serif); color: rgba(142,49,83,.2); }
.hwf-page .hwf-match > h3 { position: relative; max-width: 710px; margin: 0 0 14px; color: var(--hwf-berry); font: 500 clamp(37px,5.3vw,65px)/1.07 var(--serif,Georgia,serif); }
.hwf-page .hwf-match > p:not(.hwd-eyebrow) { max-width: 740px; font: 400 14px/1.75 var(--sans,"DM Sans",sans-serif); color: #55565c; margin: 0 0 18px; }
.hwf-page .hwf-match .hwf-editor-note { font-size: 12px!important; color: #705a60!important; margin: 15px 0 0!important; }
.hwf-page .hwf-summary-chips { display:flex; flex-wrap: wrap; gap: 8px; }
.hwf-page .hwf-summary-chips span { font: 650 11px/1.3 var(--sans,"DM Sans",sans-serif); padding: 9px 12px; border: 1px solid #e8cad2; border-radius: 40px; color: #74334b; background: rgba(255,255,255,.84); }
.hwf-page .hwf-categories,.hwf-page .hwf-picked { padding: 32px 0 6px; }
.hwf-page .hwf-categories h3,.hwf-page .hwf-picked h3 { margin: 0 0 13px; color: var(--hwf-berry); font: 500 clamp(29px,3.3vw,40px)/1.2 var(--serif,Georgia,serif); }
.hwf-page .hwf-small-note { font: 400 13px/1.55 var(--sans,"DM Sans",sans-serif); color: #64646b; margin: 0 0 16px; }
.hwf-page .hwf-category-list { display:flex; flex-wrap:wrap; gap: 9px; }
.hwf-page .hwf-category-chip { display:inline-flex; align-items:center; padding: 12px 16px; border: 1px solid #ecc8d1; border-radius: 40px; background: white; color: var(--hwf-berry); font: 700 12px/1.3 var(--sans,"DM Sans",sans-serif); text-decoration: none; transition: transform .2s,box-shadow .2s,border-color .2s; }
.hwf-page .hwf-category-chip:hover { transform: translateY(-2px); box-shadow: 0 9px 19px rgba(142,49,83,.1); border-color:var(--hwf-berry); }
.hwf-page .hwf-category-all { background: var(--hwf-berry); border-color:var(--hwf-berry); color: #fff; }
.hwf-page .hwf-category-all:hover { color:#fff; }
.hwf-page .hwf-picked-heading { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:end; gap:10px; }
.hwf-page #hwf-result-count { margin-bottom:15px; font:600 12px/1.4 var(--sans,"DM Sans",sans-serif); color:#69646a; }
.hwf-page .hwf-story-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }
.hwf-page .hwf-article-card { min-width:0; display:grid; grid-template-columns:minmax(112px,37%) minmax(0,1fr); overflow:hidden; border:1px solid #ebd7d9; border-radius:16px; background:white; box-shadow:0 5px 18px rgba(48,52,58,.035); transition:transform .2s,box-shadow .2s,border-color .2s; }
.hwf-page .hwf-article-card:hover { transform:translateY(-3px); border-color:#d49daa; box-shadow:0 14px 29px rgba(142,49,83,.11); }
.hwf-page .hwf-card-media { overflow:hidden; min-height:205px; display:flex; align-items:center; justify-content:center; background:linear-gradient(130deg,#f9e4e4,#e7d5d5); }
.hwf-page .hwf-card-media img { width:100%; height:100%; min-height:205px; object-fit:cover; display:block; transition:transform .3s ease; }
.hwf-page .hwf-article-card:hover .hwf-card-media img { transform:scale(1.035); }
.hwf-page .hwf-photo-fallback { color:#934262; font-size:48px; }
.hwf-page .hwf-card-body { min-width:0; padding:20px 17px; display:flex; flex-direction:column; align-items:flex-start; gap:8px; }
.hwf-page .hwf-card-kicker { margin:0!important; color:var(--hwf-berry)!important; font:700 10px/1.4 var(--sans,"DM Sans",sans-serif)!important; text-transform:uppercase; letter-spacing:.085em; }
.hwf-page .hwf-card-body h4 { margin:0; font:500 clamp(20px,2vw,26px)/1.16 var(--serif,Georgia,serif); }
.hwf-page .hwf-card-body h4 a { color:var(--hwf-ink); text-decoration:none; }
.hwf-page .hwf-card-body h4 a:hover { color:var(--hwf-berry); }
.hwf-page .hwf-card-body > p:not(.hwf-card-kicker) { margin:0; color:#596067; font:400 12px/1.55 var(--sans,"DM Sans",sans-serif); }
.hwf-page .hwf-read-link { margin-top:auto; color:var(--hwf-berry); font:750 11px/1.5 var(--sans,"DM Sans",sans-serif); text-transform:uppercase; letter-spacing:.06em; text-decoration:none; }
.hwf-page .hwf-read-link:hover { text-decoration:underline; }
.hwf-page .hwf-empty { border:1px dashed #d3a4b1; border-radius:14px; padding:22px; background:#fff9fa; }
.hwf-page .hwf-empty h4 { margin:0 0 7px; color:#8E3153; font:500 25px/1.25 var(--serif,Georgia,serif); }
.hwf-page .hwf-empty p { margin:0; color:#64636a; line-height:1.7; }
.hwf-page .hwf-explore { margin-top:26px; display:inline-flex; }
.hwf-page .hwf-related { margin-top:25px; }
.hwf-page .hwf-education { max-width:900px; margin-inline:auto; }
.hwf-page .hwd-btn:focus-visible,.hwf-page .hwd-text-btn:focus-visible,.hwf-page .hwf-category-chip:focus-visible,.hwf-page .hwf-read-link:focus-visible,.hwf-page .hwf-card-body a:focus-visible { outline:3px solid var(--hwf-blue);outline-offset:3px; }

/* Wedding Beauty & Fashion: the same premium chip/callout language as other tools. */
.cat-archive-page .cat-archive-chips .hwf-category-chip-tool { background:#8E3153; border-color:#8E3153; color:#fff; box-shadow:0 7px 17px rgba(142,49,83,.15); }
.cat-archive-page .cat-archive-chips .hwf-category-chip-tool span,.cat-archive-page .cat-archive-chips .hwf-category-chip-tool small { color:#fff; }
.cat-archive-page .cat-archive-chips .hwf-category-chip-tool .cat-tool-chip-icon { color:#f3dcad; }
.cat-archive-page .cat-archive-chips .hwf-category-chip-tool:hover { box-shadow:0 11px 24px rgba(142,49,83,.25); border-color:#8E3153; }
.cat-archive-page .cat-archive-content > .hwf-category-promo { background:radial-gradient(ellipse at 93% -10%,rgba(255,255,255,.17),transparent 48%),linear-gradient(111deg,#683149,#8E3153 67%,#7c5869); border-color:rgba(142,49,83,.35); }
.cat-archive-page .cat-archive-content > .hwf-category-promo .hwd-btn-light { color:#743049!important; background:#fff!important; }
.cat-archive-page .cat-archive-content > .hwf-category-promo .hwd-btn-light:hover { color:#8E3153!important; box-shadow:0 11px 25px rgba(255,255,255,.2); }

@media(max-width:900px) {
  .hwf-page .hwf-choice-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hwf-page .hwf-story-grid { grid-template-columns:1fr; }
}
@media(max-width:600px) {
  .hwf-page .hwf-intro-steps { grid-template-columns:1fr; gap:8px; }
  .hwf-page .hwf-intro-steps span { padding:11px 13px; }
  .hwf-page .hwf-quiz,.hwf-page .hwf-results { border-radius:17px; padding:20px 17px; }
  .hwf-page .hwf-step legend { font-size:29px; }
  .hwf-page .hwf-choice-grid { grid-template-columns:1fr; gap:10px; }
  .hwf-page .hwf-choice { min-height:91px; padding:14px 16px; }
  .hwf-page .hwf-choice strong { font-size:22px; }
  .hwf-page .hwf-actions { display:grid; grid-template-columns:1fr; }
  .hwf-page .hwf-actions .hwd-btn,.hwf-page .hwf-start { width:100%; justify-content:center; }
  .hwf-page .hwf-match { padding:23px 18px; }
  .hwf-page .hwf-match > h3 { font-size:39px; }
  .hwf-page .hwf-match-mark { font-size:42px; }
  .hwf-page .hwf-article-card { grid-template-columns:minmax(100px,33%) minmax(0,1fr); }
  .hwf-page .hwf-card-media,.hwf-page .hwf-card-media img { min-height:182px; }
  .hwf-page .hwf-card-body { padding:14px 12px; }
  .hwf-page .hwf-card-body h4 { font-size:20px; }
  .hwf-page .hwf-card-body > p:not(.hwf-card-kicker) { font-size:11px; }
  .hwf-page .hwf-explore { display:flex; width:100%; justify-content:center; }
}
@media(max-width:350px) {
  .hwf-page .hwf-article-card { grid-template-columns:minmax(95px,34%) minmax(0,1fr); }
  .hwf-page .hwf-card-media,.hwf-page .hwf-card-media img { min-height:200px; }
  .hwf-page .hwf-card-body > p:not(.hwf-card-kicker) { display:none; }
  .hwf-page .hwf-card-body h4 { font-size:19px; }
}
@media (prefers-reduced-motion:reduce) {
  .hwf-page *, .hwf-page *::before, .hwf-page *::after,
  .cat-archive-page .hwf-category-chip-tool { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}


/* ================================================================
   PHASE 8.34 — FOCUSED IN-PLACE HOMEPAGE SEARCH + INFORMATION PAGES
   Scoped new rules; does not change the global header, cards or tools.
   ================================================================ */
.home-search-strip {
    width: min(1480px, calc(100% - 24px));
    grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr);
    transition: grid-template-columns .3s ease, border-color .2s ease, box-shadow .3s ease, padding .3s ease;
}
.home-search-strip:focus-within {
    grid-template-columns: minmax(0, 0fr) minmax(0, 1fr);
    border-color: rgba(142,49,83,.4);
    box-shadow: 0 14px 42px rgba(142,49,83,.13), 0 0 0 3px rgba(232,200,199,.24);
    padding-block: .95rem;
}
.home-search-strip .home-search-copy {
    cursor: text;
    overflow: hidden;
    transition: opacity .2s ease, visibility .2s ease;
}
.home-search-strip:focus-within .home-search-copy {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
.home-search-strip:focus-within .home-search-form { width: 100%; min-width: 0; }
.home-search-strip:focus-within .home-search-form input {
    height: 58px;
    font-size: 1rem;
    padding-inline: 1.25rem;
    background: #fff;
}
.home-search-strip:focus-within .home-search-form button { min-height: 58px; padding-inline: 1.4rem; }
.home-search-strip .home-search-form input:focus-visible,
.home-search-strip .home-search-form button:focus-visible {
    outline: 2px solid #8E3153;
    outline-offset: 3px;
}
@media (max-width: 980px) {
    .home-search-strip { grid-template-columns: minmax(0, 1fr); }
    .home-search-strip:focus-within {
        width: calc(100% - 12px);
        padding-inline: .6rem;
        grid-template-columns: minmax(0, 1fr);
    }
    .home-search-strip:focus-within .home-search-copy { display: none; }
}
@media (max-width: 430px) {
    /* Keep the INPUT full-width; put Search underneath on small phones. */
    .home-search-strip:focus-within .home-search-form { grid-template-columns: minmax(0, 1fr); }
    .home-search-strip:focus-within .home-search-form button { width: 100%; }
    .home-search-strip:focus-within .home-search-form input { min-width: 0; padding-inline: .85rem; }
}
@media (prefers-reduced-motion: reduce) {
    .home-search-strip, .home-search-strip .home-search-copy { transition: none; }
}
/* Editorial information templates — scoped only to ordinary pages. */
.hwi-information-page { width: min(100% - 34px, 1120px); margin: 2.5rem auto 5rem; color: #30343A; }
.hwi-information-hero {
    position: relative; overflow: hidden; border: 1px solid rgba(142,49,83,.15);
    border-radius: 25px; background: linear-gradient(125deg, #fff9f5, #f9e9e9 72%, #f3f1ef);
    padding: clamp(1.5rem, 4vw, 4rem); box-shadow: 0 20px 54px rgba(48,52,58,.055);
}
.hwi-information-hero::after { content: '◇'; position: absolute; right: 5%; top: 0; font: 150px/1 Georgia, serif; color: rgba(201,164,93,.27); pointer-events: none; }
.hwi-information-kicker { color: #8E3153; font-size: .72rem; letter-spacing: .17em; font-weight: 700; text-transform: uppercase; }
.hwi-information-kicker span { color: #C9A45D; margin-inline: .5em; }
.hwi-information-breadcrumb { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; margin-top: 1.6rem; color: #566271; font-size: .83rem; }
.hwi-information-breadcrumb a { color: #8E3153; text-decoration: none; }
.hwi-information-breadcrumb a:hover { text-decoration: underline; }
.hwi-information-hero h1 { position: relative; z-index: 1; margin: 1.2rem 0 .65rem; font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 600; color: #8E3153; font-size: clamp(2.7rem, 6vw, 5.1rem); line-height: 1.04; }
.hwi-information-hero p { position: relative; z-index: 1; max-width: 45rem; font-size: clamp(.98rem, 1.6vw, 1.12rem); line-height: 1.65; }
.hwi-information-content { max-width: 900px; margin: 2rem auto 0; padding: clamp(1.25rem, 3vw, 3rem); background: #fff; border: 1px solid rgba(142,49,83,.13); border-radius: 22px; box-shadow: 0 14px 35px rgba(48,52,58,.04); overflow-wrap: anywhere; }
.hwi-information-content h2 { font: 600 clamp(1.65rem, 3.4vw, 2.25rem)/1.15 'Cormorant Garamond', Georgia, serif; color: #8E3153; margin: 1.8rem 0 .55rem; }
.hwi-information-content h2:first-child { margin-top: 0; }
.hwi-information-content p, .hwi-information-content li { color: #30343A; line-height: 1.8; }
.hwi-information-content a { color: #8E3153; text-underline-offset: 3px; }
.hwi-information-contact { margin-top: 1.3rem; display: grid; gap: .45rem; background: #FFF9F5; padding: 1.25rem; border: 1px solid #E8C8C7; border-radius: 14px; }
.hwi-information-back { max-width: 900px; margin: 1.25rem auto; }
.hwi-information-back a { color: #8E3153; font-weight: 700; text-decoration: none; }
.hwi-information-back a:hover { text-decoration: underline; }
@media (max-width: 540px) {
    .hwi-information-page { width: min(100% - 20px, 1120px); margin: 1.2rem auto 3rem; }
    .hwi-information-hero { border-radius: 18px; }
    .hwi-information-hero::after { font-size: 86px; opacity: .6; }
    .hwi-information-content { margin-top: 1rem; border-radius: 18px; }
}


/* ================================================================
   PHASE 8.36 — ARTICLE READING EXPERIENCE (SCOPED ONLY TO POSTS)
   1. Readable Pinterest brand logo and share button.
   2. Natural mid-large article images, no forced full-width portraits.
   3. The bottom of the rail stays visible during long articles without
      a separate scrollbar; sticky movement ends with the article grid.
   ================================================================ */

/* The existing heaven_social_icon('Pinterest') returns Pinterest's red P
   symbol. The earlier white fill and white-button combination obscured it. */
.article-v2.article-v3 .article-v3-share-top .share-pin.share-pinterest,
.article-v2.article-v3 .article-v2-save-card .share-pin.share-pinterest {
  color: #8E3153 !important;
  background: #fff !important;
  border: 1.5px solid #E60023 !important;
  border-radius: 999px;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: .55rem;
  min-width: 0;
  min-height: 45px;
  padding: .55rem 1.1rem;
  font-weight: 750;
  box-shadow: 0 8px 24px rgba(142,49,83,.09), 0 0 0 3px rgba(232,200,199,.11);
  text-decoration: none;
}
.article-v2.article-v3 .share-pin.share-pinterest svg {
  display: block !important;
  flex: 0 0 23px;
  width: 23px !important;
  height: 23px !important;
  fill: #E60023 !important;
  color: #E60023 !important;
  opacity: 1 !important;
  visibility: visible !important;
}
.article-v2.article-v3 .share-pin.share-pinterest svg path {
  fill: #E60023 !important;
  opacity: 1 !important;
}
.article-v2.article-v3 .share-pin.share-pinterest:hover,
.article-v2.article-v3 .share-pin.share-pinterest:focus-visible {
  color: #fff !important;
  background: #8E3153 !important;
  border-color: #8E3153 !important;
  box-shadow: 0 10px 28px rgba(142,49,83,.22), 0 0 0 3px rgba(232,200,199,.22);
}
.article-v2.article-v3 .share-pin.share-pinterest:hover svg path,
.article-v2.article-v3 .share-pin.share-pinterest:focus-visible svg path {
  fill: #fff !important;
}
.article-v2.article-v3 .share-pin.share-pinterest span {
  display: inline !important;
  font-size: .78rem;
  line-height: 1.25;
  color: inherit !important;
}
.article-v2.article-v3 .share-pin.share-pinterest:focus-visible {
  outline: 3px solid #7896AD;
  outline-offset: 3px;
}

/* The theme previously forced every image to width:100%, overriding
   editor-selected widths. Use a medium-large viewport-aware height cap
   for portrait images WITHOUT cropping or distorting them. Wide images
   can still fill the article column while editor widths are respected. */
.article-v2.article-v3 .article-v2-content img:not(.emoji):not(.wp-smiley) {
  display: block;
  width: auto;
  height: auto;
  max-width: 100% !important;
  max-height: min(86vh, 780px) !important;
  object-fit: contain;
  border-radius: 13px;
  margin: 1.15rem auto;
  box-shadow: 0 8px 26px rgba(48,52,58,.08);
}
.article-v2.article-v3 .article-v2-content figure,
.article-v2.article-v3 .article-v2-content .wp-caption {
  max-width: 100%;
  height: auto;
  margin-inline: auto;
}
.article-v2.article-v3 .article-v2-content .wp-caption-text,
.article-v2.article-v3 .article-v2-content figcaption {
  max-width: 640px;
  margin: .25rem auto 1.15rem;
  text-align: center;
  font-size: .85rem;
  color: #5e6268;
  line-height: 1.55;
}
.article-v2.article-v3 .article-v2-content .alignleft {
  float: left;
  margin: .65rem 1.1rem .8rem 0;
}
.article-v2.article-v3 .article-v2-content .alignright {
  float: right;
  margin: .65rem 0 .8rem 1.1rem;
}
.article-v2.article-v3 .article-v2-content .aligncenter {
  display: block;
  margin-inline: auto;
}
/* Hero already has a landscape frame; limit only its vertical footprint. */
.article-v2.article-v3 .article-v2-hero img {
  max-height: min(49vh, 460px);
  width: 100%;
  object-fit: cover;
}

/* A tall article used to leave two empty white columns after the widgets.
   Each rail now has a tall grid track and the stack becomes bottom-following:
   its LAST card remains inside the viewport when natural scrolling would
   otherwise leave white space. There is NO scrollbar within the sidebar. */
@media (min-width: 1240px) {
  .article-v2.article-v3 .article-v6-layout > .article-v6-search-rail,
  .article-v2.article-v3 .article-v6-layout > .article-v5-pinterest-rail {
    align-self: stretch !important;
    min-height: 0;
  }
  .article-v2.article-v3 .article-v6-search-rail > .article-v6-search-sticky.article-v8-left-stack,
  .article-v2.article-v3 .article-v5-pinterest-rail > .article-v5-pinterest-sticky.article-v7-right-stack {
    position: sticky !important;
    top: min(85px, calc(100vh - var(--hwi-rail-height, 2500px) - 20px)) !important;
    max-height: none !important;
    overflow: visible !important;
    overflow-y: visible !important;
    margin: 0;
  }
}
@media (min-width: 981px) and (max-width: 1239px) {
  .article-v2.article-v3 .article-v6-layout > .article-v5-pinterest-rail {
    align-self: stretch !important;
  }
  .article-v2.article-v3 .article-v5-pinterest-rail > .article-v5-pinterest-sticky.article-v7-right-stack {
    position: sticky !important;
    top: min(85px, calc(100vh - var(--hwi-rail-height, 2500px) - 20px)) !important;
    max-height: none !important;
    overflow: visible !important;
    overflow-y: visible !important;
  }
}
@media (max-width: 980px) {
  .article-v2.article-v3 .article-v6-search-sticky,
  .article-v2.article-v3 .article-v5-pinterest-sticky {
    position: static !important;
    top: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }
  .article-v2.article-v3 .article-v2-content img:not(.emoji):not(.wp-smiley) {
    max-height: min(84vh, 720px) !important;
  }
}
@media (max-width: 440px) {
  .article-v2.article-v3 .article-v3-share-top .share-pin.share-pinterest,
  .article-v2.article-v3 .article-v2-save-card .share-pin.share-pinterest {
    min-height: 44px;
    padding: .48rem .65rem;
  }
  .article-v2.article-v3 .share-pin.share-pinterest span { font-size: .68rem; }
  .article-v2.article-v3 .article-v2-content img:not(.emoji):not(.wp-smiley) {
    max-height: min(82vh, 690px) !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .article-v2.article-v3 .share-pin.share-pinterest {
    animation: none !important;
    transition: none !important;
  }
}


/* ================================================================
   PHASE 8.38 — SINGLE POST HERO WIDTH + REAL PINTEREST SAVE MARK
   Scope: post pages only. All in-article image sizes remain 8.37.
   ================================================================ */
@media (min-width: 981px) {
  .article-v2.article-v3 .article-v2-hero {
    width: min(100%, 1190px);
    max-width: 1190px;
    margin-inline: auto;
  }
}

/* The share markup uses its own inline Pinterest P, not an icon font,
   and provides a visible full-label fallback even on smaller screens. */
.article-v2.article-v3 .save-share .hwi-pin-share {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  min-height: 45px;
  min-width: 164px;
  padding: .55rem .9rem;
  border: 1px solid #C90020 !important;
  border-radius: 999px;
  background: #E60023 !important;
  color: #fff !important;
  font-weight: 750;
  box-shadow: 0 8px 20px rgba(230,0,35,.17);
  text-decoration: none;
}
.article-v2.article-v3 .save-share .hwi-pin-share:hover,
.article-v2.article-v3 .save-share .hwi-pin-share:focus-visible {
  background: #BD001D !important;
  border-color: #BD001D !important;
  color: #fff !important;
  box-shadow: 0 11px 24px rgba(230,0,35,.25);
}
.article-v2.article-v3 .save-share .hwi-pin-share .hwi-pin-mark {
  display: inline-flex !important;
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  margin: 0;
  padding: 0;
  align-items: center;
  justify-content: center;
  background: transparent;
  color: #fff !important;
  opacity: 1 !important;
  visibility: visible !important;
}
.article-v2.article-v3 .save-share .hwi-pin-share .hwi-pin-icon,
.article-v2.article-v3 .save-share .hwi-pin-share .hwi-pin-icon path,
.article-v2.article-v3 .save-share .hwi-pin-share:hover .hwi-pin-icon path,
.article-v2.article-v3 .save-share .hwi-pin-share:focus-visible .hwi-pin-icon path {
  display: block !important;
  width: 22px !important;
  height: 22px !important;
  color: #fff !important;
  fill: #fff !important;
  opacity: 1 !important;
  visibility: visible !important;
}
.article-v2.article-v3 .save-share .hwi-pin-share .hwi-pin-label {
  display: inline !important;
  color: #fff !important;
  font-size: .77rem;
  font-weight: 750;
  line-height: 1.25;
  white-space: nowrap;
  opacity: 1 !important;
  visibility: visible !important;
}
@media (max-width: 440px) {
  .article-v2.article-v3 .save-share .hwi-pin-share {
    min-width: 0;
    min-height: 44px;
    padding: .5rem .68rem;
  }
  .article-v2.article-v3 .save-share .hwi-pin-share .hwi-pin-label {
    font-size: .67rem;
  }
}


/* ================================================================
   PHASE 8.39 — WIDER FEATURE PHOTO + ON-IMAGE PIN + AMAZON CTA
   The existing image-size, sidebar and page components stay unchanged.
   ================================================================ */
.article-v2.article-v3 .article-v2-hero {
  position: relative;
  width: 100%;
  max-width: none !important;
}
@media (min-width: 1240px) {
  .article-v2.article-v3 .article-v3-shell {
    width: min(1360px, calc(100% - 40px));
  }
  .article-v2.article-v3 .article-v2-hero img {
    display: block;
    width: 100%;
    height: clamp(480px, 42vw, 600px) !important;
    max-height: none !important;
    aspect-ratio: auto;
    object-fit: cover;
    object-position: center;
  }
}
@media (min-width: 981px) and (max-width: 1239px) {
  .article-v2.article-v3 .article-v2-hero img {
    display: block;
    width: 100%;
    height: clamp(390px, 42vw, 520px) !important;
    max-height: none !important;
    aspect-ratio: auto;
    object-fit: cover;
  }
}
@media (max-width: 980px) {
  .article-v2.article-v3 .article-v2-hero img {
    width: 100%;
    height: auto !important;
    max-height: none !important;
    object-fit: cover;
  }
}
/* This wrapper is introduced in the browser for article-body pictures only. */
.article-v2.article-v3 .article-v2-content .hwi-pin-image-wrap {
  position: relative;
  display: table;
  width: fit-content;
  max-width: 100%;
  margin: 1.15rem auto;
  isolation: isolate;
}
.article-v2.article-v3 .article-v2-content .hwi-pin-image-wrap > img,
.article-v2.article-v3 .article-v2-content .hwi-pin-image-wrap > a:not(.hwi-image-pin) > img {
  margin: 0 !important;
  display: block;
}
.article-v2.article-v3 .hwi-image-pin,
.article-v2.article-v3 .article-v2-content a.hwi-image-pin {
  position: absolute;
  z-index: 5;
  inset: 12px 12px auto auto;
  width: 35px;
  height: 35px;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 7px;
  border: 1px solid rgba(255,255,255,.85);
  border-radius: 50%;
  color: #fff !important;
  background: #e60023 !important;
  text-decoration: none !important;
  box-shadow: 0 3px 13px rgba(39,15,21,.2);
  line-height: 1;
  transition: background .2s ease, transform .2s ease;
}
.article-v2.article-v3 .hwi-image-pin svg {
  width: 19px;
  height: 19px;
  fill: #fff !important;
  display: block;
}
.article-v2.article-v3 .hwi-image-pin:hover,
.article-v2.article-v3 .hwi-image-pin:focus-visible {
  background: #bd001d !important;
  transform: translateY(-1px);
}
.article-v2.article-v3 .hwi-image-pin:focus-visible {
  outline: 3px solid #7896ad;
  outline-offset: 2px;
}
/* Show the button consistently, including on touchscreen devices. */
@media (max-width: 600px) {
  .article-v2.article-v3 .hwi-image-pin,
  .article-v2.article-v3 .article-v2-content a.hwi-image-pin {
    inset: 8px 8px auto auto;
    width: 32px;
    height: 32px;
    padding: 6px;
  }
  .article-v2.article-v3 .hwi-image-pin svg { width: 18px; height: 18px; }
}
/* Amazon product anchors in a standalone paragraph become editorial CTAs.
   Inline citations or in-sentence links retain their original appearance. */
.article-v2.article-v3 .article-v2-content p.hwi-amazon-action {
  max-width: none;
  margin: 1.45rem auto 1.65rem;
  text-align: center;
}
.article-v2.article-v3 .article-v2-content a.hwi-amazon-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .85rem;
  max-width: 100%;
  min-height: 43px;
  box-sizing: border-box;
  padding: 12px 24px;
  border: 0;
  border-radius: 999px;
  background: #bd796b !important;
  color: #fff !important;
  font: 750 11px/1.35 'DM Sans', sans-serif;
  letter-spacing: .105em;
  text-align: center;
  text-decoration: none !important;
  box-shadow: 0 5px 18px rgba(142,49,83,.10);
  transition: background .2s ease, transform .2s ease, box-shadow .2s ease;
}
.article-v2.article-v3 .article-v2-content a.hwi-amazon-cta::after {
  content: '→';
  display: inline-block;
  font-size: 17px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0;
}
.article-v2.article-v3 .article-v2-content a.hwi-amazon-cta:hover,
.article-v2.article-v3 .article-v2-content a.hwi-amazon-cta:focus-visible {
  background: #9f5b55 !important;
  color: #fff !important;
  transform: translateY(-1px);
  box-shadow: 0 9px 24px rgba(142,49,83,.18);
}
.article-v2.article-v3 .article-v2-content a.hwi-amazon-cta:focus-visible {
  outline: 3px solid #7896ad;
  outline-offset: 3px;
}
@media (max-width: 440px) {
  .article-v2.article-v3 .article-v2-content a.hwi-amazon-cta {
    padding: 12px 17px;
    font-size: 10px;
    letter-spacing: .075em;
  }
}
@media (prefers-reduced-motion: reduce) {
  .article-v2.article-v3 .hwi-image-pin,
  .article-v2.article-v3 .article-v2-content a.hwi-amazon-cta { transition: none; }
}


/* ================================================================
   PHASE 8.40 — VISIBLE PINTEREST + CLOSED-BY-DEFAULT TOC + IMAGE PINS
   Scoped to single-post components; preserve the rest of 8.39.
   ================================================================ */
.article-v2.article-v3 .save-share .hwi-primary-pin {
  display: inline-flex !important;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 166px !important;
  min-height: 45px !important;
  width: auto !important;
  height: auto !important;
  padding: 9px 16px !important;
  border: 2px solid #B3001D !important;
  border-radius: 999px !important;
  background: #E60023 !important;
  color: #FFFFFF !important;
  font: 750 12px/1.25 'DM Sans', sans-serif !important;
  text-decoration: none !important;
  box-shadow: 0 4px 14px rgba(180,0,29,.18);
  transition: background .18s ease, box-shadow .18s ease;
}
.article-v2.article-v3 .save-share .hwi-primary-pin:hover,
.article-v2.article-v3 .save-share .hwi-primary-pin:focus-visible {
  background: #AE001C !important;
  color: #FFFFFF !important;
  border-color: #AE001C !important;
  box-shadow: 0 6px 18px rgba(180,0,29,.22);
}
.article-v2.article-v3 .save-share .hwi-primary-pin .hwi-pin-mark {
  display: inline-flex !important;
  flex: 0 0 25px;
  width: 25px; height: 25px;
  align-items: center; justify-content: center;
  padding: 0;
  background: #fff !important;
  border-radius: 50%;
  color: #E60023 !important;
  visibility: visible !important;
  opacity: 1 !important;
}
.article-v2.article-v3 .save-share .hwi-primary-pin .hwi-pin-mark .hwi-pin-icon,
.article-v2.article-v3 .save-share .hwi-primary-pin .hwi-pin-mark .hwi-pin-icon path {
  display: block !important;
  width: 17px !important; height: 17px !important;
  fill: #E60023 !important; color: #E60023 !important;
  visibility: visible !important; opacity: 1 !important;
}
.article-v2.article-v3 .save-share .hwi-primary-pin .hwi-pin-label {
  display: inline !important;
  width: auto !important;
  font: inherit !important;
  color: #fff !important;
  white-space: nowrap;
  letter-spacing: .005em;
  visibility: visible !important; opacity: 1 !important;
}
.article-v2.article-v3 .article-v2-toc { padding: 0 !important; overflow: hidden; }
.article-v2.article-v3 .article-v2-toc > summary {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 18px;
  margin: 0 !important;
  cursor: pointer;
  list-style: none;
}
.article-v2.article-v3 .article-v2-toc > summary::-webkit-details-marker { display: none; }
.article-v2.article-v3 .article-v2-toc > summary::marker { content: ''; }
.article-v2.article-v3 .article-v2-toc > summary .hwi-toc-heading {
  font-size: 12px; letter-spacing: .1em; font-weight: 800; color: #30343A;
}
.article-v2.article-v3 .article-v2-toc > summary .hwi-toc-closed-label,
.article-v2.article-v3 .article-v2-toc > summary .hwi-toc-open-label {
  margin-left: auto;
  color: #8E3153;
  font: 700 12px/1.3 'DM Sans', sans-serif;
  letter-spacing: 0;
  text-transform: none;
  white-space: nowrap;
}
.article-v2.article-v3 .article-v2-toc > summary b { font-size: 18px; vertical-align: -1px; }
.article-v2.article-v3 .article-v2-toc:not([open]) .hwi-toc-open-label { display: none; }
.article-v2.article-v3 .article-v2-toc[open] .hwi-toc-closed-label { display: none; }
.article-v2.article-v3 .article-v2-toc > #toc-list {
  padding: 4px 19px 18px 40px;
  margin: 0;
  border-top: 1px solid rgba(142,49,83,.13);
}
.article-v2.article-v3 .article-v2-toc .hwi-toc-sublist {
  list-style-type: disc;
  columns: 1;
  padding: 7px 0 1px 20px;
  margin: 0;
}
.article-v2.article-v3 .article-v2-toc .hwi-toc-sublist li {
  list-style-type: disc;
  margin: .3rem 0;
  font-size: .84rem;
}
.article-v2.article-v3 .article-v2-content .hwi-pin-image-wrap {
  position: relative;
  display: table;
  width: fit-content;
  max-width: 100%;
  margin: 1.15rem auto;
  isolation: isolate;
}
.article-v2.article-v3 .article-v2-content .hwi-pin-image-wrap > picture > img,
.article-v2.article-v3 .article-v2-content .hwi-pin-image-wrap > a > picture > img,
.article-v2.article-v3 .article-v2-content .hwi-pin-image-wrap > a > img,
.article-v2.article-v3 .article-v2-content .hwi-pin-image-wrap > img {
  display: block;
  margin: 0 !important;
  float: none !important;
}
.article-v2.article-v3 .article-v2-content .hwi-pin-image-wrap.hwi-pin-alignleft {
  float: left;
  margin: 1rem 1.2rem 1.1rem 0;
}
.article-v2.article-v3 .article-v2-content .hwi-pin-image-wrap.hwi-pin-alignright {
  float: right;
  margin: 1rem 0 1.1rem 1.2rem;
}
.article-v2.article-v3 .hwi-image-pin,
.article-v2.article-v3 .article-v2-content a.hwi-image-pin {
  z-index: 20 !important;
  inset: 10px 10px auto auto;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 34px !important;
  height: 34px !important;
  padding: 0 !important;
  border: 2px solid rgba(255,255,255,.96) !important;
  border-radius: 50% !important;
  background: #E60023 !important;
  color: #fff !important;
  text-decoration: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  box-shadow: 0 3px 14px rgba(0,0,0,.28) !important;
}
.article-v2.article-v3 .hwi-image-pin:hover,
.article-v2.article-v3 .hwi-image-pin:focus-visible { background: #AE001C !important; color: #fff !important; }
.article-v2.article-v3 .hwi-image-pin .hwi-image-pin-letter {
  display: block !important;
  color: #fff !important;
  font: italic bold 22px/1 Georgia, serif !important;
  text-transform: none !important;
  letter-spacing: -.07em;
  transform: translate(-1px,-1px);
  opacity: 1 !important;
  visibility: visible !important;
}
@media (max-width: 720px) {
  .article-v2.article-v3 .article-v3-share-top .save-share-buttons { flex-wrap: wrap !important; }
  .article-v2.article-v3 .save-share .hwi-primary-pin {
    width: auto !important;
    height: auto !important;
    min-width: 150px !important;
    min-height: 43px !important;
    padding: 8px 11px !important;
    font-size: 11px !important;
  }
  .article-v2.article-v3 .article-v2-toc > #toc-list { columns: 1; }
}
@media (max-width: 440px) {
  .article-v2.article-v3 .hwi-image-pin,
  .article-v2.article-v3 .article-v2-content a.hwi-image-pin { width: 32px !important; height: 32px !important; }
  .article-v2.article-v3 .hwi-image-pin .hwi-image-pin-letter { font-size: 21px !important; }
}
@media (prefers-reduced-motion: reduce) {
  .article-v2.article-v3 .save-share .hwi-primary-pin { transition: none !important; }
}


/* ================================================================
   PHASE 8.42 — MOBILE NAV / LIVE UX SAFETY
   Keep a long category menu usable when body scrolling is intentionally locked.
   ================================================================ */
@media (max-width: 1024px) {
  .site-nav.is-open {
    max-height: min(72vh, calc(100dvh - 112px));
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding-bottom: max(.75rem, env(safe-area-inset-bottom));
    scrollbar-gutter: stable;
  }
  .site-nav.is-open > ul { padding-bottom: .35rem; }
}
@supports not (height: 100dvh) {
  @media (max-width: 1024px) {
    .site-nav.is-open { max-height: min(72vh, calc(100vh - 112px)); }
  }
}


/* ================================================================
   PHASE 8.44 — FINAL HOMEPAGE POLISH
   1) Blend hero copy and image into one elegant composition.
   2) Keep category links moving as a gentle continuous ticker.
   3) Refresh Editor's Picks wording in front-page.php.
   4) Slightly enlarge horizontal story rows + add Read More pills.
   ================================================================ */

/* Hero: remove the hard 50/50 cut and softly merge copy into photography. */
.home-hero-inner {
  position: relative;
  isolation: isolate;
  display: block;
  min-height: 520px;
  overflow: hidden;
  background: linear-gradient(105deg, #fff9f5 0%, #f8eceb 46%, #fff9f5 100%);
}
.home-hero-copy {
  position: relative;
  z-index: 3;
  width: min(58%, 760px);
  min-height: 520px;
  padding: clamp(2.7rem, 5vw, 5rem) clamp(2.2rem, 5vw, 4.8rem);
  background: linear-gradient(90deg,
    rgba(255,249,245,.99) 0%,
    rgba(255,249,245,.97) 63%,
    rgba(255,249,245,.80) 79%,
    rgba(255,249,245,.34) 92%,
    rgba(255,249,245,0) 100%);
}
.home-hero-media,
.home-hero-media-clean {
  position: absolute;
  z-index: 1;
  inset: 0 0 0 37%;
  width: 63%;
  min-height: 100%;
  border-radius: 0;
  background-position: center center;
  -webkit-mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,.45) 10%, #000 27%, #000 100%);
  mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,.45) 10%, #000 27%, #000 100%);
}
.home-hero-media::before {
  background:
    linear-gradient(180deg, rgba(48,52,58,0) 58%, rgba(48,52,58,.13) 100%);
}
.home-hero-media-clean::after { border-radius: 0; }
.home-hero-copy h1 { max-width: 650px; }
.home-hero-lede { max-width: 570px; }

/* Category ticker: smooth, continuous and intentionally calm. */
.home-category-ticker {
  overflow: hidden;
  position: relative;
}
.home-category-ticker::before,
.home-category-ticker::after {
  content: "";
  position: absolute;
  z-index: 3;
  top: 0;
  bottom: 0;
  width: clamp(28px, 5vw, 86px);
  pointer-events: none;
}
.home-category-ticker::before {
  left: 0;
  background: linear-gradient(90deg, var(--paper), rgba(255,255,255,0));
}
.home-category-ticker::after {
  right: 0;
  background: linear-gradient(270deg, var(--paper), rgba(255,255,255,0));
}
.home-category-ticker .home-category-nav-inner {
  max-width: none;
  width: 100%;
  padding: .66rem 0;
  overflow: hidden;
  justify-content: flex-start;
  scroll-snap-type: none;
}
.home-category-nav-track {
  display: flex;
  width: max-content;
  will-change: transform;
  animation: heavenCategoryTicker 42s linear infinite;
}
.home-category-nav-set {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: space-around;
  width: max-content;
  min-width: 100vw;
  padding: 0 1.2rem;
}
.home-category-nav-set > a {
  flex: 0 0 auto;
}
@keyframes heavenCategoryTicker {
  from { transform: translate3d(0,0,0); }
  to { transform: translate3d(-50%,0,0); }
}

/* Slightly larger editorial rows without making the homepage bulky. */
.home-feature-card,
.home-feature-card-large,
.home-feature-card:not(.home-feature-card-large),
.home-latest-card {
  grid-template-columns: 176px minmax(0, 1fr);
  min-height: 142px;
}
.home-feature-card-media,
.home-feature-card-large .home-feature-card-media,
.home-feature-card:not(.home-feature-card-large) .home-feature-card-media,
.home-feature-card-media img,
.home-feature-card-large .home-feature-card-media img,
.home-latest-card-media,
.home-latest-card-media img,
.home-latest-card-media .home-feature-placeholder {
  min-height: 142px;
}
.home-feature-card-body,
.home-feature-card-large .home-feature-card-body,
.home-latest-card-body {
  padding: .9rem 1rem;
}
.home-feature-card h3,
.home-feature-card-large h3,
.home-latest-card h3 {
  font-size: 1.2rem;
  line-height: 1.18;
}
.home-feature-card p,
.home-feature-card-large p,
.home-latest-card p {
  font-size: .75rem;
  line-height: 1.45;
}
.home-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .7rem;
  margin-top: auto;
}
.home-card-footer .home-card-meta { margin-top: 0; }
.home-read-more-pill {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .32rem;
  min-height: 32px;
  padding: .45rem .72rem;
  border: 1px solid rgba(142,49,83,.24);
  border-radius: 999px;
  color: var(--berry);
  background: rgba(255,255,255,.84);
  box-shadow: 0 6px 16px rgba(142,49,83,.06);
  font-size: .61rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: .035em;
  text-transform: uppercase;
  transition: transform .2s ease, box-shadow .2s ease, color .2s ease, background .2s ease, border-color .2s ease;
}
.home-read-more-pill:hover,
.home-read-more-pill:focus-visible {
  color: #fff;
  background: var(--berry);
  border-color: var(--berry);
  transform: translateY(-2px) scale(1.025);
  box-shadow: 0 10px 22px rgba(142,49,83,.20), 0 0 0 4px rgba(232,200,199,.22);
}

@media (max-width: 900px) {
  .home-hero-inner {
    display: flex;
    flex-direction: column;
    min-height: 0;
  }
  .home-hero-copy {
    width: 100%;
    min-height: 0;
    padding: 2rem 1.5rem 1.5rem;
    background: linear-gradient(180deg, rgba(255,249,245,.99) 0%, rgba(255,249,245,.96) 80%, rgba(255,249,245,.50) 100%);
  }
  .home-hero-media,
  .home-hero-media-clean {
    position: relative;
    inset: auto;
    width: 100%;
    min-height: 330px;
    margin-top: -1rem;
    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 20%, #000 100%);
    mask-image: linear-gradient(to bottom, transparent 0%, #000 20%, #000 100%);
  }
}

@media (max-width: 700px) {
  .home-category-nav-set { padding-inline: .55rem; }
  .home-feature-card,
  .home-feature-card-large,
  .home-feature-card:not(.home-feature-card-large),
  .home-latest-card {
    grid-template-columns: 132px minmax(0,1fr);
    min-height: 132px;
  }
  .home-feature-card-media,
  .home-feature-card-large .home-feature-card-media,
  .home-feature-card:not(.home-feature-card-large) .home-feature-card-media,
  .home-feature-card-media img,
  .home-feature-card-large .home-feature-card-media img,
  .home-latest-card-media,
  .home-latest-card-media img,
  .home-latest-card-media .home-feature-placeholder { min-height: 132px; }
  .home-feature-card-body,
  .home-feature-card-large .home-feature-card-body,
  .home-latest-card-body { padding: .72rem .75rem; }
  .home-feature-card h3,
  .home-feature-card-large h3,
  .home-latest-card h3 { font-size: 1rem; }
  .home-feature-card p,
  .home-feature-card-large p,
  .home-latest-card p { -webkit-line-clamp: 1; font-size: .68rem; }
  .home-card-footer { align-items: flex-end; }
  .home-read-more-pill { min-height: 30px; padding: .4rem .58rem; font-size: .56rem; }
}

@media (max-width: 460px) {
  .home-hero-copy { padding: 1.65rem 1.15rem 1.25rem; }
  .home-hero-media,
  .home-hero-media-clean { min-height: 285px; }
  .home-feature-card,
  .home-feature-card-large,
  .home-feature-card:not(.home-feature-card-large),
  .home-latest-card {
    grid-template-columns: 112px minmax(0,1fr);
    min-height: 124px;
  }
  .home-feature-card-media,
  .home-feature-card-large .home-feature-card-media,
  .home-feature-card:not(.home-feature-card-large) .home-feature-card-media,
  .home-feature-card-media img,
  .home-feature-card-large .home-feature-card-media img,
  .home-latest-card-media,
  .home-latest-card-media img,
  .home-latest-card-media .home-feature-placeholder { min-height: 124px; }
  .home-card-footer { gap: .4rem; }
  .home-card-footer .home-card-meta { font-size: .52rem; }
  .home-read-more-pill { padding-inline: .5rem; }
}

@media (prefers-reduced-motion: reduce) {
  .home-category-nav-track { animation: none; transform: none; }
  .home-category-ticker .home-category-nav-inner { overflow-x: auto; }
  .home-category-nav-set[aria-hidden="true"] { display: none; }
  .home-read-more-pill { transition: none; }
}


@media (max-width: 980px) {
  .post-row {
    grid-template-columns: 220px 1fr;
  }
  .post-row-image {
    aspect-ratio: 4 / 5;
    min-height: 245px;
  }
}

@media (max-width: 700px) {
  .post-row {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .post-row-image {
    aspect-ratio: 16 / 10;
    min-height: 0;
  }
  .post-row-body {
    padding: 1rem;
  }
}

/* ================================================================
   PHASE 8.48 — SINGLE ARTICLE: ONE PREMIUM RIGHT SIDEBAR
   Search → Author → Pinterest → 4 Related → Facebook → Relevant Tools
   Left rail removed. Mobile places the sidebar below the article.
   ================================================================ */
.article-v2.article-v3.article-v48 .article-v48-layout {
  width: min(100%, 1160px);
  margin: 2rem auto 0;
  display: grid;
  grid-template-columns: minmax(0, 800px) minmax(270px, 320px);
  gap: clamp(1.5rem, 3vw, 2.5rem);
  align-items: start;
  justify-content: center;
}
.article-v2.article-v3.article-v48 .article-v48-main {
  min-width: 0;
  width: 100%;
}
.article-v48-sidebar {
  min-width: 0;
}
.article-v48-stack {
  display: flex;
  flex-direction: column;
  gap: .9rem;
}
.article-v48-card {
  position: relative;
  overflow: hidden;
  padding: 1rem;
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(232,200,199,.78);
  border-radius: 16px;
  box-shadow: 0 8px 22px rgba(48,52,58,.055);
}
.article-v48-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 2px;
  background: linear-gradient(90deg, rgba(201,164,93,.86), rgba(142,49,83,.52), transparent 80%);
  pointer-events: none;
}
.article-v48-eyebrow {
  margin: 0 0 .28rem;
  color: var(--berry);
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.article-v48-card h2 {
  margin: 0 0 .45rem;
  font-size: 1.28rem;
  line-height: 1.12;
}
.article-v48-card > p:not(.article-v48-eyebrow) {
  margin: 0 0 .75rem;
  color: #62666c;
  font-size: .76rem;
  line-height: 1.55;
}
.article-v48-text-link {
  display: inline-flex;
  align-items: center;
  gap: .28rem;
  color: var(--berry);
  font-size: .71rem;
  font-weight: 800;
}
.article-v48-text-link:hover,
.article-v48-text-link:focus-visible { color: #6f2340; }

/* compact search at the very top */
.article-v48-search-card { padding: .7rem; }
.article-v48-search {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: .35rem;
  padding: .26rem;
  background: #fff;
  border: 1px solid rgba(120,150,173,.36);
  border-radius: 999px;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.article-v48-search:focus-within {
  border-color: var(--berry);
  background: #fffafa;
  box-shadow: 0 0 0 4px rgba(142,49,83,.10);
}
.article-v48-search input {
  min-width: 0;
  width: 100%;
  height: 36px;
  padding: 0 .75rem;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--charcoal);
  font: inherit;
  font-size: .74rem;
}
.article-v48-search button {
  min-width: 70px;
  height: 36px;
  padding: 0 .8rem;
  border: 0;
  border-radius: 999px;
  background: var(--charcoal);
  color: #fff;
  font: inherit;
  font-size: .68rem;
  font-weight: 800;
  cursor: pointer;
  transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}
.article-v48-search button:hover,
.article-v48-search button:focus-visible,
.article-v48-search button:active {
  background: var(--berry);
  box-shadow: 0 7px 16px rgba(142,49,83,.20);
}
.article-v48-search button:active { transform: scale(.97); }

/* compact author */
.article-v48-author-head {
  display: grid;
  grid-template-columns: 58px minmax(0,1fr);
  gap: .72rem;
  align-items: center;
  margin: .25rem 0 .7rem;
}
.article-v48-author-head img,
.article-v48-author-head .avatar {
  width: 58px;
  height: 58px;
  object-fit: cover;
  border-radius: 50%;
  border: 2px solid #fff;
  box-shadow: 0 7px 18px rgba(48,52,58,.11);
}
.article-v48-author-head h2 { margin: 0 0 .1rem; font-size: 1.12rem; }
.article-v48-author-head small { display: block; color: #777b80; font-size: .65rem; }

/* compact Pinterest card */
.article-v48-pin-widget {
  width: 100%;
  max-height: 285px;
  overflow: hidden;
  margin: .45rem 0 .7rem;
  border-radius: 12px;
  background: var(--ivory);
}
.article-v48-pin-widget > span,
.article-v48-pin-widget iframe { max-width: 100% !important; width: 100% !important; }
.article-v48-pinterest-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  min-height: 40px;
  padding: .55rem .8rem;
  border-radius: 999px;
  background: #E60023;
  color: #fff !important;
  font-size: .69rem;
  font-weight: 800;
  box-shadow: 0 8px 18px rgba(230,0,35,.15);
  transition: transform .18s ease, box-shadow .18s ease;
}
.article-v48-pinterest-btn:hover,
.article-v48-pinterest-btn:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 11px 24px rgba(230,0,35,.20);
}

/* exactly four relevant reads */
.article-v48-related-list { display: grid; gap: .55rem; margin-top: .6rem; }
.article-v48-related-item {
  display: grid;
  grid-template-columns: 68px minmax(0,1fr);
  gap: .65rem;
  align-items: center;
  min-height: 76px;
  padding: .42rem;
  border: 1px solid rgba(232,200,199,.58);
  border-radius: 12px;
  background: #fff;
  color: var(--charcoal);
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;
}
.article-v48-related-item:hover,
.article-v48-related-item:focus-visible {
  transform: translateY(-3px);
  background: #fff9f8;
  border-color: rgba(142,49,83,.28);
  box-shadow: 0 9px 20px rgba(142,49,83,.10);
  color: var(--charcoal);
}
.article-v48-related-thumb {
  display: grid;
  place-items: center;
  width: 68px;
  height: 68px;
  overflow: hidden;
  border-radius: 10px;
  background: var(--cream);
  color: var(--berry);
}
.article-v48-related-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
  transition: transform .26s ease, filter .26s ease;
}
.article-v48-related-item:hover .article-v48-related-thumb img { transform: scale(1.05); filter: brightness(1.04); }
.article-v48-related-copy { min-width: 0; }
.article-v48-related-copy strong {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  color: var(--charcoal);
  font-family: var(--serif);
  font-size: .9rem;
  font-weight: 600;
  line-height: 1.17;
}
.article-v48-related-copy small {
  display: block;
  margin-top: .22rem;
  color: #7d8186;
  font-size: .61rem;
}

/* small Facebook timeline card */
.article-v48-facebook-embed {
  width: 100%;
  max-height: 300px;
  overflow: hidden;
  margin: .5rem 0 .65rem;
  border-radius: 12px;
  background: #f6f7f9;
}
.article-v48-facebook-embed iframe { display: block; width: 100% !important; max-width: 100%; }

/* context-sensitive tools: last box in the stack */
.article-v48-tools-list { display: grid; gap: .55rem; margin-top: .55rem; }
.article-v48-tool-item {
  display: grid;
  grid-template-columns: 36px minmax(0,1fr) auto;
  gap: .55rem;
  align-items: center;
  padding: .62rem .65rem;
  border: 1px solid rgba(120,150,173,.25);
  border-radius: 12px;
  background: linear-gradient(135deg, #fff, rgba(255,249,245,.86));
  color: var(--charcoal);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.article-v48-tool-item:hover,
.article-v48-tool-item:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(142,49,83,.28);
  box-shadow: 0 8px 18px rgba(48,52,58,.08);
  color: var(--charcoal);
}
.article-v48-tool-icon {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(232,200,199,.36);
  color: var(--berry);
  font-size: 1rem;
}
.article-v48-tool-item strong { display: block; color: var(--charcoal); font-size: .76rem; line-height: 1.2; }
.article-v48-tool-item small { display: block; margin-top: .12rem; color: #777b80; font-size: .61rem; line-height: 1.35; }
.article-v48-tool-item > b { color: var(--berry); font-size: .82rem; }

@media (max-width: 980px) {
  .article-v2.article-v3.article-v48 .article-v48-layout {
    grid-template-columns: minmax(0,1fr);
    width: min(100%, 820px);
  }
  .article-v48-sidebar { margin-top: .5rem; }
  .article-v48-stack {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    align-items: start;
  }
  .article-v48-search-card,
  .article-v48-tools { grid-column: 1 / -1; }
}
@media (max-width: 680px) {
  .article-v2.article-v3.article-v48 .article-v48-layout { margin-top: 1.25rem; gap: 1.25rem; }
  .article-v48-stack { grid-template-columns: minmax(0,1fr); gap: .75rem; }
  .article-v48-search-card,
  .article-v48-tools { grid-column: auto; }
  .article-v48-card { padding: .9rem; border-radius: 14px; }
  .article-v48-pin-widget { max-height: 250px; }
}
@media (prefers-reduced-motion: reduce) {
  .article-v48-search,
  .article-v48-search button,
  .article-v48-pinterest-btn,
  .article-v48-related-item,
  .article-v48-related-thumb img,
  .article-v48-tool-item { transition: none !important; }
  .article-v48-pinterest-btn:hover,
  .article-v48-related-item:hover,
  .article-v48-tool-item:hover { transform: none; }
}

/* ================================================================
   PHASE 8.49 — EDITORIAL ARTICLE FRAME + LARGER SOCIAL + STICKY RAIL
   ================================================================ */
@media (min-width: 981px) {
  .article-v2.article-v3.article-v48 .article-v48-layout {
    width: min(100%, 1220px);
    grid-template-columns: minmax(0, 800px) minmax(320px, 350px);
    gap: clamp(1.75rem, 2.6vw, 2.35rem);
  }

  .article-v48-sidebar {
    position: sticky;
    top: 1rem;
    align-self: start;
    height: max-content;
  }
}

/* Give the reading column the lined editorial-card treatment. */
.article-v2.article-v3.article-v48 .article-v48-main {
  box-sizing: border-box;
  padding: clamp(1.15rem, 2vw, 1.75rem);
  background: rgba(255,255,255,.985);
  border: 1px solid rgba(232,200,199,.88);
  border-radius: 18px;
  box-shadow: 0 12px 32px rgba(48,52,58,.045);
}

/* Larger social cards without making the entire rail feel bulky. */
.article-v48-pinterest,
.article-v48-facebook {
  padding: 1.15rem;
}
.article-v48-pinterest h2,
.article-v48-facebook h2 {
  font-size: 1.34rem;
}
.article-v48-pinterest > p:not(.article-v48-eyebrow),
.article-v48-facebook > p:not(.article-v48-eyebrow) {
  font-size: .79rem;
}
.article-v48-pin-widget {
  max-height: 390px;
  min-height: 330px;
  margin: .55rem 0 .8rem;
}
.article-v48-pin-widget > span,
.article-v48-pin-widget iframe {
  min-height: 330px !important;
}
.article-v48-facebook-embed {
  max-height: 390px;
  min-height: 360px;
  margin: .55rem 0 .75rem;
}
.article-v48-facebook-embed iframe {
  min-height: 360px;
}

/* Keep the rail visually anchored while the longer article continues. */
.article-v48-stack {
  width: 100%;
}

@media (max-width: 980px) {
  .article-v48-sidebar {
    position: static;
    top: auto;
  }
  .article-v2.article-v3.article-v48 .article-v48-main {
    padding: 1.15rem;
    border-radius: 16px;
  }
  .article-v48-pin-widget,
  .article-v48-facebook-embed {
    min-height: 0;
  }
  .article-v48-pin-widget > span,
  .article-v48-pin-widget iframe,
  .article-v48-facebook-embed iframe {
    min-height: 0 !important;
  }
}

@media (max-width: 680px) {
  .article-v2.article-v3.article-v48 .article-v48-main {
    padding: .95rem;
    border-radius: 14px;
  }
}

/* ================================================================
   PHASE 8.50 — WIDER EDITORIAL READING COLUMN + SMART BOTTOM STICKY RAIL
   - Reading card starts at the left edge of the article shell.
   - Sidebar scrolls naturally until its final card reaches the viewport,
     then remains anchored while the longer article continues.
   ================================================================ */
@media (min-width: 981px) {
  .article-v2.article-v3.article-v48 .article-v48-layout {
    width: 100%;
    max-width: none;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 350px);
    gap: clamp(1.45rem, 2vw, 2rem);
    justify-content: stretch;
  }

  .article-v2.article-v3.article-v48 .article-v48-main {
    max-width: none !important;
    margin-inline: 0 !important;
  }

  .article-v2.article-v3.article-v48 .article-v48-main .article-v2-content > p,
  .article-v2.article-v3.article-v48 .article-v48-main .article-v2-content > ul,
  .article-v2.article-v3.article-v48 .article-v48-main .article-v2-content > ol,
  .article-v2.article-v3.article-v48 .article-v48-main .article-v2-content > blockquote {
    max-width: none;
  }

  .article-v48-sidebar {
    position: sticky;
    /* If the rail is taller than the viewport this becomes negative, so the
       rail travels with the article until its bottom is visible. If the rail
       is short, it behaves like a normal 1rem top-sticky card stack. */
    top: min(1rem, calc(100vh - var(--hwi-v48-sidebar-height, 1200px) - 1rem));
    align-self: start;
    height: max-content;
  }
}

@media (min-width: 1240px) {
  .article-v2.article-v3.article-v48 .article-v3-shell {
    width: min(1360px, calc(100% - 40px));
  }
}

@media (max-width: 980px) {
  .article-v48-sidebar {
    position: static;
    top: auto;
  }
}
