/*
Theme Name: The Universe of Gigi
Theme URI: https://theuniverseofgigi.com
Description: Custom dark-royalty brand theme for author Gigi Joseph. Built by DetailedByDenise. Author-first branding with per-series accent colors. Do not edit parent theme files; all brand styling lives here.
Author: DetailedByDenise
Template: twentytwentyfive
Version: 2.9
*/

/* ============================================================
   THE UNIVERSE OF GIGI — BRAND FOUNDATION
   Fonts, palette, and typography as design tokens.
   ============================================================ */

/* ---- 1. LOAD HER CUSTOM FONTS ---- */
@font-face {
  font-family: "Mordo";
  src: url("fonts/Mordo.otf") format("opentype");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Encho";
  src: url("fonts/Encho.otf") format("opentype");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
/* EB Garamond loads from Google Fonts (enqueued in functions.php) */

/* ---- 2. BRAND TOKENS ---- */
:root {
  /* Core palette (author-level) */
  --gigi-abyss:    #0A0F0C;  /* base background — near-black, green undertone */
  --gigi-matte:    #1A1A1A;  /* matte black — panels/cards */
  --gigi-ivory:    #ECE7D8;  /* primary text on dark */
  --gigi-gold:     #C9A24B;  /* antique gold — the crown / primary accent */
  --gigi-gold-lt:  #E7CD86;  /* firefly gold — highlights/hover */
  --gigi-ash:      #8FA593;  /* muted green-grey — secondary text */
  --gigi-line:     #2B3A30;  /* hairline dividers */

  /* Series accent colors (used per-series, not site-wide) */
  --gigi-emerald:  #1F4A3A;
  --gigi-crimson:  #5A1020;
  --gigi-twilight: #241433;

  /* Fonts */
  --gigi-display: "Mordo", serif;       /* name, page titles, major headings */
  --gigi-accent:  "Encho", serif;       /* subheads, taglines, buttons */
  --gigi-body:    "EB Garamond", serif; /* body text, blurbs, posts */
}

/* ---- 3. GLOBAL BASE ---- */
body {
  background-color: var(--gigi-abyss);
  color: var(--gigi-ivory);
  font-family: var(--gigi-body);
  font-size: 1.125rem;
  line-height: 1.65;
}

/* ---- 4. HEADINGS ---- */
h1, .gigi-display {
  font-family: var(--gigi-display);
  color: var(--gigi-ivory);
  letter-spacing: 0.04em;
  line-height: 1.1;
}
h2, h3, .gigi-accent {
  font-family: var(--gigi-accent);
  color: var(--gigi-ivory);
  line-height: 1.2;
}
h4, h5, h6 {
  font-family: var(--gigi-accent);
  color: var(--gigi-gold-lt);
  letter-spacing: 0.02em;
}

/* ---- 5. LINKS ---- */
a {
  color: var(--gigi-gold);
  text-decoration: none;
  transition: color 0.2s ease;
}
a:hover, a:focus {
  color: var(--gigi-gold-lt);
}

/* ---- 6. BUTTONS ---- */
.wp-block-button__link,
button,
.gigi-btn {
  font-family: var(--gigi-accent);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-size: 0.95rem;
  background-color: var(--gigi-gold);
  color: var(--gigi-abyss);
  border: 1px solid var(--gigi-gold);
  border-radius: 3px;
  padding: 13px 30px;
  transition: background-color 0.2s ease;
}
.wp-block-button__link:hover,
button:hover,
.gigi-btn:hover {
  background-color: var(--gigi-gold-lt);
  color: var(--gigi-abyss);
}
/* Outlined (ghost) button variant */
.gigi-btn-ghost {
  background-color: transparent;
  color: var(--gigi-gold);
}
.gigi-btn-ghost:hover {
  background-color: rgba(201, 162, 75, 0.12);
  color: var(--gigi-gold-lt);
}

/* ---- 7. EYEBROW / LABEL UTILITY ---- */
.gigi-eyebrow {
  font-family: var(--gigi-accent);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  font-size: 0.78rem;
  color: var(--gigi-gold);
}

/* ---- 8. DIVIDER (gold rule with diamond ends) ---- */
.gigi-rule {
  width: 70px;
  height: 1px;
  background: var(--gigi-gold);
  margin: 30px auto;
  position: relative;
}
.gigi-rule::before,
.gigi-rule::after {
  content: "";
  position: absolute;
  top: -2px;
  width: 5px;
  height: 5px;
  background: var(--gigi-gold);
  transform: rotate(45deg);
}
.gigi-rule::before { left: -12px; }
.gigi-rule::after  { right: -12px; }

/* ---- 9. CARDS / PANELS ---- */
.gigi-card {
  background: linear-gradient(180deg, #101B15, #0B1410);
  border: 1px solid var(--gigi-line);
  border-radius: 7px;
  padding: 28px;
}

/* ---- 10. ACCESSIBILITY ---- */
:focus-visible {
  outline: 2px solid var(--gigi-gold-lt);
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
}

/* ============================================================
   HOMEPAGE HERO — forest, author-level
   ============================================================ */
.gigi-hero {
  position: relative;
  min-height: 90vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  overflow: hidden;
  padding: 80px 24px;
}
.gigi-hero__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  z-index: 0;
}
.gigi-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,
    rgba(10,15,12,0.55),
    rgba(10,15,12,0.35) 45%,
    rgba(10,15,12,0.88));
  z-index: 1;
}
.gigi-hero__content {
  position: relative;
  z-index: 2;
}
.gigi-hero__crest {
  font-family: var(--gigi-accent);
  letter-spacing: 0.34em;
  text-transform: uppercase;
  font-size: 0.78rem;
  color: var(--gigi-gold);
  margin-bottom: 24px;
  text-shadow: 0 1px 10px rgba(0,0,0,0.8);
}
.gigi-hero__name {
  font-family: var(--gigi-display);
  font-size: clamp(3rem, 9vw, 6.6rem);
  letter-spacing: 0.05em;
  line-height: 1;
  color: var(--gigi-ivory);
  margin: 0;
  text-shadow: 0 2px 40px rgba(0,0,0,0.85);
}
.gigi-hero__tagline {
  font-family: var(--gigi-accent);
  font-size: clamp(1.2rem, 2.6vw, 1.8rem);
  color: var(--gigi-gold-lt);
  margin-top: 22px;
  text-shadow: 0 1px 16px rgba(0,0,0,0.85);
}
.gigi-hero__cta {
  display: inline-block;
  font-family: var(--gigi-accent);
  font-size: 0.95rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 14px 36px;
  background: var(--gigi-gold);
  color: var(--gigi-abyss);
  border-radius: 3px;
  text-decoration: none;
  margin-top: 14px;
  transition: background-color 0.2s ease;
}
.gigi-hero__cta:hover {
  background: var(--gigi-gold-lt);
  color: var(--gigi-abyss);
}

/* ---- Force hero to break out of theme content column to full width ---- */
.gigi-hero {
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  max-width: 100vw;
}

/* ============================================================
   BOOK CATALOG — series grid with branded placeholder covers
   ============================================================ */
.gigi-catalog {
  max-width: 1100px;
  margin: 0 auto;
  padding: 70px 24px 90px;
}
.gigi-catalog__title {
  font-family: var(--gigi-display);
  font-size: clamp(2.4rem, 6vw, 4rem);
  text-align: center;
  color: var(--gigi-ivory);
  letter-spacing: 0.04em;
  margin-bottom: 8px;
}
.gigi-catalog__intro {
  font-family: var(--gigi-body);
  text-align: center;
  color: var(--gigi-ash);
  font-style: italic;
  max-width: 60ch;
  margin: 0 auto 50px;
}
.gigi-series {
  margin-bottom: 64px;
}
.gigi-series__head {
  font-family: var(--gigi-accent);
  font-size: 1.4rem;
  color: var(--gigi-gold-lt);
  letter-spacing: 0.04em;
  margin-bottom: 6px;
}
.gigi-series__sub {
  font-family: var(--gigi-body);
  font-style: italic;
  color: var(--gigi-ash);
  font-size: 0.95rem;
  margin-bottom: 26px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--gigi-line);
}
.gigi-books {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 28px;
}
.gigi-book {
  text-align: center;
}
.gigi-book__cover {
  position: relative;
  aspect-ratio: 2 / 3;
  border-radius: 5px;
  overflow: hidden;
  background:
    radial-gradient(120% 80% at 50% 0%, rgba(36,20,51,0.5), transparent 60%),
    linear-gradient(160deg, #14241C 0%, #0B1410 100%);
  border: 1px solid var(--gigi-gold);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 22px 16px;
  box-shadow: 0 8px 30px rgba(0,0,0,0.45);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.gigi-book__cover:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 40px rgba(0,0,0,0.6);
}
.gigi-book__crest {
  font-family: var(--gigi-accent);
  font-size: 0.62rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--gigi-gold);
  margin-bottom: 14px;
}
.gigi-book__name {
  font-family: var(--gigi-display);
  font-size: 1.35rem;
  color: var(--gigi-ivory);
  line-height: 1.15;
  letter-spacing: 0.03em;
}
.gigi-book__divider {
  width: 30px;
  height: 1px;
  background: var(--gigi-gold);
  margin: 14px auto 0;
}
.gigi-book__status {
  font-family: var(--gigi-accent);
  font-size: 0.6rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--gigi-ash);
  margin-top: 12px;
}
.gigi-book__label {
  font-family: var(--gigi-body);
  color: var(--gigi-ivory);
  font-size: 1rem;
  margin-top: 12px;
}
.gigi-book__note {
  font-family: var(--gigi-body);
  color: var(--gigi-ash);
  font-style: italic;
  font-size: 0.82rem;
  margin-top: 4px;
  line-height: 1.4;
}


/* ============================================================
   HOMEPAGE FEATURED BOOK — "The Latest"
   Full-width section between the hero and the newsletter.
   Two columns: real cover on the left, details + buy CTA on the
   right. Collapses to single centered column on mobile.
   ============================================================ */
.gigi-feature-wrap{
  position:relative; left:50%; transform:translateX(-50%);
  width:100vw; max-width:100vw; overflow:hidden;
  background:linear-gradient(180deg, var(--gigi-abyss) 0%, #0C1611 100%);
  border-top:1px solid var(--gigi-line);
  border-bottom:1px solid var(--gigi-line);
}
.gigi-feature{
  max-width:1040px; margin:0 auto; padding:6rem 32px;
  display:grid; grid-template-columns:300px minmax(0,440px);
  gap:3.5rem; align-items:center; justify-content:center;
}
/* Cover */
.gigi-feature__cover{
  position:relative; aspect-ratio:2 / 3; border-radius:6px; overflow:hidden;
  border:1px solid var(--gigi-gold);
  box-shadow:0 18px 50px rgba(0,0,0,0.6);
  transition:transform 0.3s ease, box-shadow 0.3s ease;
}
.gigi-feature__cover::after{
  content:""; position:absolute; inset:0;
  box-shadow:inset 0 0 60px rgba(231,205,134,0.12);
  pointer-events:none;
}
.gigi-feature__cover img{
  width:100%; height:100%; object-fit:cover; display:block;
}
.gigi-feature__cover:hover{
  transform:translateY(-5px);
  box-shadow:0 26px 64px rgba(0,0,0,0.7);
}
/* Details */
.gigi-feature__eyebrow{
  font-family:var(--gigi-accent); letter-spacing:0.3em; text-transform:uppercase;
  font-size:0.78rem; color:var(--gigi-gold); margin:0 0 1rem;
}
.gigi-feature__series{
  font-family:var(--gigi-accent); letter-spacing:0.16em; text-transform:uppercase;
  font-size:0.82rem; color:var(--gigi-ash); margin:0 0 0.75rem;
}
.gigi-feature__title{
  font-family:var(--gigi-display); color:var(--gigi-ivory);
  font-size:clamp(2.6rem,6vw,4.2rem); line-height:1; letter-spacing:0.03em;
  margin:0 0 1.5rem;
}
.gigi-feature__tagline{
  font-family:var(--gigi-body); font-style:italic;
  color:var(--gigi-gold-lt); font-size:1.3rem; line-height:1.5;
  margin:0 0 1.5rem; max-width:34ch;
}
.gigi-feature__blurb{
  font-family:var(--gigi-body); color:var(--gigi-ivory);
  font-size:1.08rem; line-height:1.75; margin:0 0 2rem; max-width:46ch;
}
.gigi-feature__actions{
  display:flex; gap:1rem; flex-wrap:wrap; align-items:center;
}
.gigi-feature__btn{
  display:inline-block; font-family:var(--gigi-accent);
  font-size:0.9rem; letter-spacing:0.16em; text-transform:uppercase;
  padding:14px 34px; border-radius:3px; text-decoration:none;
  transition:background-color 0.2s ease, color 0.2s ease;
}
.gigi-feature__btn--gold{
  background:var(--gigi-gold); color:var(--gigi-abyss);
}
.gigi-feature__btn--gold:hover{ background:var(--gigi-gold-lt); color:var(--gigi-abyss); }
.gigi-feature__btn--ghost{
  background:transparent; color:var(--gigi-gold);
  border:1px solid var(--gigi-gold);
}
.gigi-feature__btn--ghost:hover{ background:rgba(201,162,75,0.12); color:var(--gigi-gold-lt); }

@media(max-width:820px){
  .gigi-feature{
    grid-template-columns:1fr; gap:2.5rem; text-align:center;
    padding:4.5rem 24px;
  }
  .gigi-feature__cover{ max-width:260px; margin:0 auto; }
  .gigi-feature__tagline{ margin-left:auto; margin-right:auto; }
  .gigi-feature__blurb{ margin-left:auto; margin-right:auto; }
  .gigi-feature__actions{ justify-content:center; }
}


/* Our blocks provide their own styled headings; suppress the duplicate.
   Scoped to PAGES only — must not hide blog post/single titles. */
.gigi-worlds .wp-block-post-title,
.gigi-catalog .wp-block-post-title,
.gigi-news-section .wp-block-post-title {
  display: none !important;
}

/* ---- Prevent horizontal overflow/scroll site-wide ---- */
html, body {
  overflow-x: hidden;
  max-width: 100%;
  background-color: var(--gigi-abyss);
}
/* Full-width hero: use margin technique without scrollbar-width overflow */
.gigi-hero {
  overflow: hidden;
}

/* ============================================================
   HIDE THEME DEFAULT HEADER + COLLAPSE LEFTOVER SPACE
   ============================================================ */
header.wp-block-template-part,
.wp-site-blocks > header,
.wp-block-template-part:first-child {
  display: none !important;
}
/* Kill top spacing/margins that leave a black gap where header was */
.wp-site-blocks > main {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
.wp-site-blocks > main > .wp-block-group:first-child,
.wp-site-blocks > .wp-block-group {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
.wp-site-blocks { padding-top: 0 !important; margin-top: 0 !important; }
/* The constrained group wrapping page content adds spacing-60 top padding */
.entry-content { margin-top: 0 !important; }
body { padding-top: 0 !important; margin-top: 0 !important; }

/* ============================================================
   SITE NAVIGATION BAR (used at top of inner pages)
   ============================================================ */
.gigi-nav-wrap{
  position:relative; left:50%; transform:translateX(-50%);
  width:100vw; max-width:100vw; overflow:hidden;
  background:transparent;
  border-bottom:1px solid var(--gigi-line);
  z-index:2;
}
.gigi-nav{
  max-width:1100px; margin:0 auto; padding:22px 32px;
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px;
}
.gigi-nav__brand{
  font-family:var(--gigi-display); font-size:1.5rem; letter-spacing:0.08em;
  color:var(--gigi-ivory); text-decoration:none; white-space:nowrap;
}
.gigi-nav__links{ display:flex; gap:30px; flex-wrap:wrap; align-items:center; }
.gigi-nav__links a{
  font-family:var(--gigi-accent); font-size:0.82rem; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--gigi-ivory); text-decoration:none; transition:color 0.2s ease;
}
.gigi-nav__links a:hover{ color:var(--gigi-gold-lt); }
.gigi-nav__links a.gigi-nav__cta{
  color:var(--gigi-gold); border:1px solid var(--gigi-gold); border-radius:3px; padding:8px 18px;
}
.gigi-nav__links a.gigi-nav__cta:hover{ background:rgba(201,162,75,0.12); color:var(--gigi-gold-lt); }
@media(max-width:680px){
  .gigi-nav{ flex-direction:column; text-align:center; }
  .gigi-nav__links{ justify-content:center; gap:18px; }
}

/* ============================================================
   THE UNIVERSE OF GIGI — SITE FOOTER
   Appended to style.css. Uses existing --gigi-* tokens.
   Markup is injected site-wide via functions.php (wp_footer).
   ============================================================ */

.gigi-footer{
  background:transparent;
  color:var(--gigi-ivory);
  font-family:var(--gigi-body);
  padding:4.5rem 1.5rem 0;
  border-top:1px solid rgba(201,162,75,0.35);
  position:relative;
  z-index:2;
}
.gigi-footer::before{
  content:""; position:absolute; top:-1px; left:50%; transform:translateX(-50%);
  width:220px; height:1px;
  background:linear-gradient(90deg, transparent, var(--gigi-gold), transparent);
}
.gigi-footer__inner{
  max-width:1180px; margin:0 auto;
  display:grid; grid-template-columns:1.6fr 1fr 1fr 1.4fr; gap:3rem; align-items:start;
}

/* Brand */
.gigi-footer__brand-name{
  font-family:var(--gigi-display); font-size:1.9rem; letter-spacing:0.12em;
  color:var(--gigi-ivory); margin:0 0 0.75rem; line-height:1.1;
}
.gigi-footer__tagline{
  font-family:var(--gigi-accent); font-size:1.02rem; font-style:italic;
  color:var(--gigi-ash); margin:0; max-width:26ch; line-height:1.5;
}

/* Column headings */
.gigi-footer__heading{
  font-family:var(--gigi-body); font-size:0.78rem; letter-spacing:0.28em;
  text-transform:uppercase; color:var(--gigi-gold); margin:0 0 1.25rem; font-weight:600;
}

/* Explore links */
.gigi-footer__links{ list-style:none; margin:0; padding:0; }
.gigi-footer__links li{ margin:0 0 0.7rem; }
.gigi-footer__links a{
  color:var(--gigi-ivory); text-decoration:none; font-size:1.02rem;
  letter-spacing:0.02em; transition:color 0.25s ease;
}
.gigi-footer__links a:hover,
.gigi-footer__links a:focus-visible{ color:var(--gigi-gold-lt); }

/* Social row */
.gigi-footer__social{ display:flex; flex-wrap:wrap; gap:0.9rem; }
.gigi-footer__social a{
  display:inline-flex; align-items:center; justify-content:center;
  width:42px; height:42px; border:1px solid rgba(201,162,75,0.45); border-radius:50%;
  color:var(--gigi-ivory);
  transition:border-color 0.25s ease, color 0.25s ease, background 0.25s ease;
}
.gigi-footer__social a:hover,
.gigi-footer__social a:focus-visible{
  color:var(--gigi-abyss); background:var(--gigi-gold); border-color:var(--gigi-gold);
}
.gigi-footer__social svg{ width:19px; height:19px; fill:currentColor; display:block; }

/* Newsletter */
.gigi-footer__news-copy{
  font-size:1.05rem; line-height:1.6; color:var(--gigi-ivory); margin:0 0 1.25rem; max-width:30ch;
}
.gigi-footer__news-btn{
  display:inline-block; font-family:var(--gigi-accent);
  font-size:0.82rem; letter-spacing:0.22em; text-transform:uppercase;
  color:var(--gigi-gold-lt); background:transparent; border:1px solid var(--gigi-gold);
  padding:0.85rem 1.8rem; border-radius:3px; text-decoration:none; cursor:pointer;
  transition:background 0.25s ease, color 0.25s ease;
}
.gigi-footer__news-btn:hover,
.gigi-footer__news-btn:focus-visible{ background:var(--gigi-gold); color:var(--gigi-abyss); }

/* Bottom bar */
.gigi-footer__bottom{
  max-width:1180px; margin:4rem auto 0; padding:1.6rem 0 2rem;
  border-top:1px solid var(--gigi-line); text-align:center;
}
.gigi-footer__copy{ font-size:0.9rem; letter-spacing:0.04em; color:var(--gigi-ash); margin:0; }
.gigi-footer__copy a{
  color:var(--gigi-ash); text-decoration:none; border-bottom:1px solid transparent;
  transition:color 0.25s ease, border-color 0.25s ease;
}
.gigi-footer__copy a:hover,
.gigi-footer__copy a:focus-visible{ color:var(--gigi-gold); border-color:rgba(201,162,75,0.5); }

/* Responsive */
@media(max-width:900px){
  .gigi-footer__inner{ grid-template-columns:1fr 1fr; gap:2.5rem; }
  .gigi-footer__brand{ grid-column:1 / -1; }
}
@media(max-width:560px){
  .gigi-footer{ padding-top:3.5rem; }
  .gigi-footer__inner{ grid-template-columns:1fr; gap:2.25rem; text-align:center; }
  .gigi-footer__tagline, .gigi-footer__news-copy{ margin-left:auto; margin-right:auto; }
  .gigi-footer__social{ justify-content:center; }
}
@media(prefers-reduced-motion:reduce){
  .gigi-footer *, .gigi-footer *::before{ transition:none !important; }
}


/* ============================================================
   MAILERLITE EMBEDDED FORM — dark-royalty brand override
   Targets the homepage newsletter form (#mlb2-43242225) and
   restyles MailerLite's light defaults to match the site.
   Wrapped in .gigi-news-embed so it only applies where placed.
   ============================================================ */

.gigi-news-embed #mlb2-43242225.ml-form-embedContainer .ml-form-embedWrapper{
  background-color:transparent !important;
  max-width:520px !important;
  width:100% !important;
}
.gigi-news-embed #mlb2-43242225 .ml-form-embedBody{ padding:0 !important; }

/* Heading + subtext */
.gigi-news-embed #mlb2-43242225 .ml-form-embedContent h4{
  font-family:var(--gigi-display) !important;
  color:var(--gigi-ivory) !important;
  font-size:2rem !important;
  letter-spacing:0.06em !important;
  margin:0 0 0.5rem !important;
}
.gigi-news-embed #mlb2-43242225 .ml-form-embedContent p{
  font-family:var(--gigi-body) !important;
  color:var(--gigi-ash) !important;
  font-size:1.05rem !important;
  line-height:1.6 !important;
}

/* Email input */
.gigi-news-embed #mlb2-43242225 .ml-form-fieldRow input{
  background-color:rgba(255,255,255,0.04) !important;
  color:var(--gigi-ivory) !important;
  border:1px solid var(--gigi-gold) !important;
  border-radius:3px !important;
  font-family:var(--gigi-body) !important;
  font-size:1rem !important;
  padding:0.85rem 1rem !important;
}
.gigi-news-embed #mlb2-43242225 .ml-form-fieldRow input::placeholder{ color:var(--gigi-ash) !important; }
.gigi-news-embed #mlb2-43242225 .ml-form-fieldRow input:focus{
  outline:none !important;
  border-color:var(--gigi-gold-lt) !important;
  background-color:rgba(255,255,255,0.07) !important;
}

/* Privacy + checkbox text */
.gigi-news-embed #mlb2-43242225 .ml-form-embedPermissions p,
.gigi-news-embed #mlb2-43242225 .ml-form-checkboxRow .label-description p{
  color:var(--gigi-ash) !important;
  font-family:var(--gigi-body) !important;
}
.gigi-news-embed #mlb2-43242225 .ml-form-embedPermissions p a,
.gigi-news-embed #mlb2-43242225 .ml-form-checkboxRow label a{
  color:var(--gigi-gold) !important;
}
.gigi-news-embed #mlb2-43242225 .ml-form-checkboxRow .label-description::before{
  background-color:rgba(255,255,255,0.04) !important;
  border-color:var(--gigi-gold) !important;
}
.gigi-news-embed #mlb2-43242225 .ml-form-checkboxRow input[type=checkbox]:checked~.label-description::before{
  background-color:var(--gigi-gold) !important;
  border-color:var(--gigi-gold) !important;
}

/* Subscribe button */
.gigi-news-embed #mlb2-43242225 .ml-form-embedSubmit button{
  background-color:var(--gigi-gold) !important;
  color:var(--gigi-abyss) !important;
  font-family:var(--gigi-accent) !important;
  font-size:0.85rem !important;
  letter-spacing:0.22em !important;
  text-transform:uppercase !important;
  border-radius:3px !important;
  padding:0.95rem !important;
  transition:background-color 0.25s ease !important;
}
.gigi-news-embed #mlb2-43242225 .ml-form-embedSubmit button:hover{
  background-color:var(--gigi-gold-lt) !important;
}

/* Success message */
.gigi-news-embed #mlb2-43242225 .ml-form-successContent h4{
  font-family:var(--gigi-display) !important;
  color:var(--gigi-ivory) !important;
}
.gigi-news-embed #mlb2-43242225 .ml-form-successContent p{
  font-family:var(--gigi-body) !important;
  color:var(--gigi-ash) !important;
}


/* ============================================================
   HOMEPAGE NEWSLETTER SECTION wrapper
   ============================================================ */
.gigi-news-section{
  background:transparent;
  padding:5rem 1.5rem;
  border-top:1px solid var(--gigi-line);
  text-align:center;
  position:relative;
  z-index:1;
}
/* Soft dark backing that dissolves toward the edges (matches About/catalog),
   so the newsletter photo/vines read dark and moody instead of a hard box. */
.gigi-news-section::before{
  content:"";
  position:absolute;
  top:0; bottom:0;
  left:50%;
  transform:translateX(-50%);
  width:min(900px, 90vw);
  background:radial-gradient(70% 50% at 50% 40%,
      rgba(10,15,12,0.55) 0%,
      rgba(10,15,12,0.35) 55%,
      transparent 85%);
  z-index:-1;
  pointer-events:none;
}
.gigi-news-section__inner{ max-width:640px; margin:0 auto; position:relative; z-index:1; }
.gigi-news-section__eyebrow{
  font-family:var(--gigi-body); font-size:0.78rem; letter-spacing:0.28em;
  text-transform:uppercase; color:var(--gigi-gold); margin:0 0 1rem;
}
.gigi-news-section__title{
  font-family:var(--gigi-display); color:var(--gigi-ivory);
  font-size:2.4rem; letter-spacing:0.04em; margin:0 0 1rem; line-height:1.15;
}
.gigi-news-section__lede{
  font-family:var(--gigi-body); color:var(--gigi-ash);
  font-size:1.1rem; line-height:1.6; margin:0 0 2.5rem; max-width:46ch;
  margin-left:auto; margin-right:auto;
}
.gigi-news-section .gigi-news-embed{ display:flex; justify-content:center; }


/* ============================================================
   MY WORLDS — manifesto / editorial page
   ============================================================ */
.gigi-worlds{
  background:transparent;
  color:var(--gigi-ivory);
  font-family:var(--gigi-body);
  padding:5rem 1.5rem 6rem;
}
.gigi-worlds__inner{ max-width:820px; margin:0 auto; position:relative; z-index:1; }

/* Title match: the "MY WORLDS" heading renders as an h2 (theme.json maps h2 to the
   Encho accent font, which is why it looked small/different). The About page title
   is an h1 (Mordo). Force headings inside this section to Mordo, but only the FIRST
   heading (the page title) is large; the section headers below match The Journal's
   post-title size (1.8rem) so they don't compete with the title. */
.gigi-worlds h1,
.gigi-worlds h2,
.gigi-worlds h3,
.gigi-worlds .wp-block-heading,
.gigi-worlds__eyebrow{
  font-family:var(--gigi-display) !important;
  font-size:1.8rem !important;
  letter-spacing:0.02em !important;
  color:var(--gigi-ivory) !important;
  line-height:1.2 !important;
}
/* The main page title only: first heading in the section, rendered large. */
.gigi-worlds__inner > h1:first-child,
.gigi-worlds__inner > h2:first-child,
.gigi-worlds > h1:first-child,
.gigi-worlds > h2:first-child,
.gigi-worlds .wp-block-heading:first-of-type,
.gigi-worlds__eyebrow{
  font-size:clamp(2.4rem, 6vw, 4rem) !important;
  letter-spacing:0.04em !important;
  text-transform:uppercase;
  line-height:1.1 !important;
  margin:0 0 1.25rem;
}

/* Intro */
.gigi-worlds__intro{ margin:0 auto 4.5rem; text-align:center; max-width:680px; }
.gigi-worlds__intro-lead{
  font-family:var(--gigi-display); color:var(--gigi-ivory);
  font-size:1.9rem; line-height:1.3; letter-spacing:0.02em; margin:0 0 1.5rem;
}
.gigi-worlds__intro p{
  font-size:1.15rem; line-height:1.7; color:var(--gigi-ash); margin:0 0 1rem;
}

/* Q&A editorial blocks */
.gigi-worlds__block{
  margin:0 0 3.5rem; padding:0 0 3.5rem;
  border-bottom:1px solid var(--gigi-line);
}
.gigi-worlds__block:last-of-type{ border-bottom:none; }
.gigi-worlds__q{
  font-family:var(--gigi-display); color:var(--gigi-gold-lt);
  font-size:1.5rem; letter-spacing:0.02em; margin:0 0 1.25rem; line-height:1.25;
}
.gigi-worlds__block p{
  font-size:1.12rem; line-height:1.75; color:var(--gigi-ivory); margin:0 0 1.1rem;
}
.gigi-worlds__block p.muted{ color:var(--gigi-ash); }
.gigi-worlds__answer-lead{
  font-family:var(--gigi-accent); font-style:italic;
  color:var(--gigi-gold-lt); font-size:1.25rem; margin:0 0 1.25rem;
}
.gigi-worlds__centered{
  text-align:center; font-family:var(--gigi-accent); font-style:italic;
  color:var(--gigi-ash); font-size:1.3rem; line-height:1.5;
  margin:2rem auto; max-width:34ch;
}

/* Bullet lists */
.gigi-worlds__list{ list-style:none; margin:0 0 1.25rem; padding:0; }
.gigi-worlds__list li{
  position:relative; padding-left:1.75rem; margin:0 0 0.85rem;
  font-size:1.12rem; line-height:1.6; color:var(--gigi-ivory);
}
.gigi-worlds__list li::before{
  content:""; position:absolute; left:0; top:0.62em;
  width:7px; height:7px; transform:rotate(45deg);
  background:var(--gigi-gold);
}

/* women / men columns */
.gigi-worlds__cols{
  display:grid; grid-template-columns:1.1fr auto 1fr; gap:2rem;
  align-items:start; margin:1.5rem 0 1.5rem;
}
.gigi-worlds__cols-statement{
  font-size:1.12rem; line-height:1.6; color:var(--gigi-ivory);
}
.gigi-worlds__cols-mid{
  font-family:var(--gigi-accent); font-style:italic;
  color:var(--gigi-gold); font-size:1.1rem; white-space:nowrap; padding-top:0.1rem;
}
.gigi-worlds__cols .gigi-worlds__list{ margin:0; }

/* subheads inside blocks */
.gigi-worlds__sub{
  font-family:var(--gigi-accent); color:var(--gigi-ivory);
  font-size:1.15rem; margin:1.75rem 0 1rem; letter-spacing:0.01em;
}
.gigi-worlds__lines p{
  font-size:1.15rem; color:var(--gigi-ash); margin:0 0 0.6rem;
  font-family:var(--gigi-accent); font-style:italic;
}

/* Pull quote finale */
.gigi-worlds__quote{
  margin:4rem auto 0; max-width:640px; text-align:center;
  border-top:1px solid var(--gigi-line); padding-top:3.5rem;
}
.gigi-worlds__quote blockquote{
  font-family:var(--gigi-display); color:var(--gigi-gold-lt);
  font-size:2rem; line-height:1.35; letter-spacing:0.02em; margin:0;
}

@media(max-width:640px){
  .gigi-worlds{ padding:3.5rem 1.25rem 4.5rem; }
  .gigi-worlds__intro-lead{ font-size:1.55rem; }
  .gigi-worlds__q{ font-size:1.3rem; }
  .gigi-worlds__cols{ grid-template-columns:1fr; gap:1rem; }
  .gigi-worlds__cols-mid{ color:var(--gigi-gold); }
  .gigi-worlds__quote blockquote{ font-size:1.55rem; }
}


/* ============================================================
   IVY SIDE BORDERS — decorative margin foliage
   Fixed to the viewport edges, behind content, faded.
   Left uses the image as-is; right is mirrored.
   Hidden on narrow screens (no room for margins).
   ============================================================ */
.gigi-ivy{
  position:fixed;
  top:0;
  bottom:0;
  width:320px;
  z-index:0;
  pointer-events:none;
  background-repeat:repeat-y;
  background-size:320px 390px;
  opacity:0.55;
}
.gigi-ivy--left{
  left:0;
  background-image:url("assets/ivy-left.png");
  background-position:left top;
  -webkit-mask-image:linear-gradient(to right, #000 55%, transparent 100%);
          mask-image:linear-gradient(to right, #000 55%, transparent 100%);
}
.gigi-ivy--right{
  right:0;
  background-image:url("assets/ivy-left.png");
  background-position:right top;
  transform:scaleX(-1);
  -webkit-mask-image:linear-gradient(to right, #000 55%, transparent 100%);
          mask-image:linear-gradient(to right, #000 55%, transparent 100%);
}

/* Keep page content above the ivy */
.gigi-worlds,
.gigi-news-section{ position:relative; z-index:1; }

/* Light center backing only, so text stays readable while the ivy shows through
   richly at the sides like the About page (which has no box at all). */
.gigi-worlds::before,
.gigi-catalog::before{
  content:"";
  position:absolute;
  top:0; bottom:0;
  left:50%;
  transform:translateX(-50%);
  width:min(900px, 90vw);
  background:radial-gradient(70% 50% at 50% 40%,
      rgba(10,15,12,0.55) 0%,
      rgba(10,15,12,0.35) 55%,
      transparent 85%);
  z-index:-1;
  pointer-events:none;
}
.gigi-catalog{ position:relative; z-index:2; }
.gigi-catalog::before{ width:min(1000px, 92vw); }

@media(max-width:1100px){
  .gigi-ivy{ display:none; }
}
@media(prefers-reduced-motion:reduce){
  .gigi-ivy{ opacity:0.4; }
}


/* ============================================================
   BLOG — listing (The Journal) + single post
   ============================================================ */
.gigi-blog, .gigi-single{
  color:var(--gigi-ivory);
  font-family:var(--gigi-body);
  padding:5rem 1.5rem 6rem;
  position:relative;
  z-index:1;
  width:100% !important;
  max-width:100% !important;
  margin:0 auto !important;
  left:auto !important;
  right:auto !important;
}
/* Neutralize WordPress constrained-layout offset on the blog wrappers */
.gigi-blog.is-layout-constrained > *,
.gigi-single.is-layout-constrained > *,
.gigi-blog > .is-layout-constrained,
.gigi-single > .is-layout-constrained{
  margin-left:auto !important;
  margin-right:auto !important;
  max-width:760px !important;
}
.gigi-blog > *, .gigi-single > *{
  margin-left:auto !important;
  margin-right:auto !important;
}
/* One consistent centered column for header, content, list */
.gigi-single__head, .gigi-single__content, .gigi-single__foot,
.gigi-blog__head, .gigi-blog__list, .gigi-blog .wp-block-query{
  max-width:760px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  float:none !important;
}
.gigi-blog__head, .gigi-single__head{
  max-width:760px; margin:0 auto 3.5rem; text-align:center !important;
}
.gigi-blog__head *, .gigi-single__head *{ text-align:center !important; }
.gigi-blog__title, .gigi-single__title,
.gigi-single .wp-block-post-title{
  text-align:center !important;
}
.gigi-single__back{ text-align:center !important; }
.gigi-blog__title, .gigi-single__title{
  font-family:var(--gigi-display) !important;
  color:var(--gigi-ivory) !important;
  font-size:clamp(2.2rem,5vw,3.4rem) !important;
  letter-spacing:0.04em; line-height:1.15; margin:0 0 1rem !important;
}
.gigi-blog__intro{
  font-family:var(--gigi-body); font-style:italic;
  color:var(--gigi-ash) !important; font-size:1.15rem; line-height:1.6;
}

/* Post cards (listing) */
.gigi-blog__list{ max-width:760px; margin:0 auto !important; }
.gigi-blog .wp-block-query{ max-width:760px; margin:0 auto !important; }
.gigi-blog__items{
  display:flex !important; flex-direction:column; gap:0 !important;
  list-style:none !important; margin:0 !important; padding:0 !important;
}
/* Each post is a <li> in the post-template */
.gigi-blog__items > li{
  padding:2.5rem 0;
  margin:0 !important;
  border-bottom:1px solid var(--gigi-line);
  text-align:left;
}
/* Post title (WP renders as h2.wp-block-post-title) */
.gigi-blog h1.wp-block-post-title,
.gigi-blog h2.wp-block-post-title,
.gigi-blog h3.wp-block-post-title,
.gigi-blog .wp-block-post-title,
.gigi-post-card__title{
  font-family:var(--gigi-display) !important;
  font-size:1.8rem !important; line-height:1.2 !important; letter-spacing:0.02em;
  margin:0 0 0.6rem !important;
  color:var(--gigi-ivory) !important;
}
.gigi-blog .wp-block-post-title a,
.gigi-post-card__title a{
  color:var(--gigi-ivory) !important;
  text-decoration:none !important; transition:color 0.25s ease;
}
.gigi-post-card__title a:hover,
.gigi-blog__items .wp-block-post-title a:hover{ color:var(--gigi-gold-lt) !important; }
.gigi-post-card__date,
.gigi-blog__items .wp-block-post-date{
  font-family:var(--gigi-body) !important; font-style:italic;
  color:var(--gigi-gold) !important; font-size:0.9rem !important; margin:0 0 1rem !important;
}
.gigi-post-card__excerpt,
.gigi-blog__items .wp-block-post-excerpt{
  font-family:var(--gigi-body) !important; color:var(--gigi-ash) !important;
  font-size:1.1rem !important; line-height:1.7 !important;
}
.gigi-post-card__excerpt a,
.gigi-blog__items .wp-block-post-excerpt a,
.gigi-blog__items .wp-block-post-excerpt__more-link{
  color:var(--gigi-gold) !important; text-decoration:none;
  font-style:italic; display:inline-block; margin-top:0.5rem;
}
.gigi-post-card__excerpt a:hover{ color:var(--gigi-gold-lt) !important; }

/* Pagination */
.gigi-blog__pagination{
  margin-top:3rem !important; gap:1rem !important;
  font-family:var(--gigi-accent);
}
.gigi-blog__pagination a, .gigi-blog__pagination span{
  color:var(--gigi-ash) !important; text-decoration:none;
  letter-spacing:0.1em; font-size:0.95rem; transition:color 0.25s ease;
}
.gigi-blog__pagination a:hover{ color:var(--gigi-gold-lt) !important; }
.gigi-blog__pagination .current{ color:var(--gigi-gold) !important; }

.gigi-blog__empty{
  color:var(--gigi-ash) !important; font-style:italic;
  font-size:1.15rem; padding:3rem 0;
}

/* Single post */
.gigi-single__content{ max-width:760px; margin:2.5rem auto 0; }
.gigi-single__date{
  font-family:var(--gigi-body); font-style:italic;
  color:var(--gigi-gold) !important; font-size:0.95rem; margin-top:0.5rem !important;
}
.gigi-single__image{ max-width:900px; margin:0 auto 2.5rem; }
.gigi-single__image img{ border-radius:5px; border:1px solid var(--gigi-line); }
.gigi-single__content p{
  font-family:var(--gigi-body); color:var(--gigi-ivory) !important;
  font-size:1.15rem !important; line-height:1.8; margin:0 0 1.4rem;
}
.gigi-single__content h2, .gigi-single__content h3{
  font-family:var(--gigi-display) !important; color:var(--gigi-gold-lt) !important;
  letter-spacing:0.02em; margin:2rem 0 1rem !important;
}
.gigi-single__content a{ color:var(--gigi-gold) !important; }
.gigi-single__content blockquote{
  border-left:2px solid var(--gigi-gold);
  padding-left:1.5rem; margin:2rem 0; font-style:italic;
  color:var(--gigi-ash) !important;
}
.gigi-single__foot{
  max-width:720px; margin:3.5rem auto 0; text-align:center;
  padding-top:2.5rem; border-top:1px solid var(--gigi-line);
}
.gigi-single__back, .gigi-single__back a{
  font-family:var(--gigi-accent) !important;
  color:var(--gigi-gold) !important; text-decoration:none !important;
  letter-spacing:0.15em; text-transform:uppercase; font-size:0.85rem;
}
.gigi-single__back a:hover{ color:var(--gigi-gold-lt) !important; }

/* Readable backing over ivy for blog too */
.gigi-blog::before, .gigi-single::before{
  content:""; position:absolute; top:0; bottom:0; left:50%;
  transform:translateX(-50%); width:min(900px, 90vw);
  background:radial-gradient(70% 50% at 50% 35%,
      rgba(10,15,12,0.55) 0%, rgba(10,15,12,0.35) 55%,
      transparent 85%);
  z-index:-1; pointer-events:none;
}

@media(max-width:640px){
  .gigi-blog, .gigi-single{ padding:3.5rem 1.25rem 4.5rem; }
  .gigi-post-card__title, .gigi-post-card__title a{ font-size:1.5rem !important; }
}


/* ============================================================
   BONUS PAGE — subscriber vault
   Styles the WordPress password prompt (locked state) and
   the unlocked bonus content, all in dark-royalty brand.
   ============================================================ */

/* --- Locked state: style WP's default password form --- */
.gigi-bonus-lock{
  min-height:60vh; display:flex; align-items:center; justify-content:center;
  padding:5rem 1.5rem; position:relative; z-index:1;
}
.gigi-bonus-lock__inner{
  max-width:520px; text-align:center;
}
.gigi-bonus-lock__eyebrow{
  font-family:var(--gigi-body); font-size:0.78rem; letter-spacing:0.28em;
  text-transform:uppercase; color:var(--gigi-gold); margin:0 0 1.25rem;
}
.gigi-bonus-lock__title{
  font-family:var(--gigi-display); color:var(--gigi-ivory);
  font-size:clamp(2rem,5vw,3rem); letter-spacing:0.04em; line-height:1.15; margin:0 0 1.25rem;
}
.gigi-bonus-lock__text{
  font-family:var(--gigi-body); color:var(--gigi-ash);
  font-size:1.1rem; line-height:1.65; margin:0 0 2rem; max-width:44ch;
  margin-left:auto; margin-right:auto;
}

/* Target WordPress's actual post-password form */
.post-password-form{
  max-width:440px; margin:0 auto; text-align:center;
}
.post-password-form p{
  font-family:var(--gigi-body); color:var(--gigi-ash);
  font-size:1rem; line-height:1.6; margin:0 0 1.25rem;
}
.post-password-form label{
  display:block; font-family:var(--gigi-body); color:var(--gigi-ivory);
  font-size:0.95rem; letter-spacing:0.02em;
}
.post-password-form input[type=password]{
  display:block; width:100%; margin:0.9rem auto 1.25rem;
  background:rgba(255,255,255,0.04); color:var(--gigi-ivory);
  border:1px solid var(--gigi-gold); border-radius:3px;
  font-family:var(--gigi-body); font-size:1rem; padding:0.85rem 1rem;
}
.post-password-form input[type=password]:focus{
  outline:none; border-color:var(--gigi-gold-lt);
  background:rgba(255,255,255,0.07);
}
.post-password-form input[type=submit]{
  font-family:var(--gigi-accent); font-size:0.82rem; letter-spacing:0.22em;
  text-transform:uppercase; color:var(--gigi-abyss); background:var(--gigi-gold);
  border:none; border-radius:3px; padding:0.9rem 2rem; cursor:pointer;
  transition:background 0.25s ease;
}
.post-password-form input[type=submit]:hover{ background:var(--gigi-gold-lt); }

.gigi-bonus-lock__note{
  font-family:var(--gigi-body); font-style:italic; color:var(--gigi-ash);
  font-size:0.95rem; margin-top:1.75rem;
}
.gigi-bonus-lock__note a{ color:var(--gigi-gold); text-decoration:none; }
.gigi-bonus-lock__note a:hover{ color:var(--gigi-gold-lt); }

/* --- Unlocked state: the bonus content --- */
.gigi-bonus{
  color:var(--gigi-ivory); font-family:var(--gigi-body);
  padding:5rem 1.5rem 6rem; position:relative; z-index:1;
}
.gigi-bonus::before{
  content:""; position:absolute; top:0; bottom:0; left:50%;
  transform:translateX(-50%); width:min(900px, 90vw);
  background:radial-gradient(70% 50% at 50% 35%,
      rgba(10,15,12,0.55) 0%, rgba(10,15,12,0.35) 55%,
      transparent 85%);
  z-index:-1; pointer-events:none;
}
.gigi-bonus__inner{ max-width:820px; margin:0 auto; text-align:center; }
.gigi-bonus__eyebrow{
  font-family:var(--gigi-body); font-size:0.78rem; letter-spacing:0.28em;
  text-transform:uppercase; color:var(--gigi-gold); margin:0 0 1.25rem;
}
.gigi-bonus__title{
  font-family:var(--gigi-display); color:var(--gigi-ivory);
  font-size:clamp(2.2rem,5vw,3.4rem); letter-spacing:0.04em; line-height:1.15; margin:0 0 1.5rem;
}
.gigi-bonus__lede{
  font-family:var(--gigi-body); font-style:italic; color:var(--gigi-ash);
  font-size:1.2rem; line-height:1.6; margin:0 auto 3rem; max-width:52ch;
}
.gigi-bonus__divider{
  width:60px; height:1px; background:var(--gigi-gold); margin:0 auto 3rem;
}
.gigi-bonus__empty{
  font-family:var(--gigi-accent); font-style:italic; color:var(--gigi-gold-lt);
  font-size:1.4rem; line-height:1.5; margin:3rem auto; max-width:40ch;
}
.gigi-bonus__section{ margin:3.5rem 0; text-align:left; }
.gigi-bonus__section h2{
  font-family:var(--gigi-display); color:var(--gigi-gold-lt);
  font-size:1.6rem; letter-spacing:0.02em; margin:0 0 1rem;
}
.gigi-bonus__section p{
  font-family:var(--gigi-body); color:var(--gigi-ivory);
  font-size:1.12rem; line-height:1.75; margin:0 0 1.1rem;
}

@media(max-width:640px){
  .gigi-bonus{ padding:3.5rem 1.25rem 4.5rem; }
}


/* ============================================================
   WOOCOMMERCE — dark-royalty store styling
   Styles the shop grid, product cards, buttons, single product,
   cart, and checkout to match the brand. Ready for products.
   ============================================================ */

.gigi-shop, .woocommerce, .woocommerce-page{
  color:var(--gigi-ivory);
  font-family:var(--gigi-body);
  position:relative; z-index:1;
}
.gigi-shop{ padding:4rem 1.5rem 6rem; }

/* Readable backing over ivy */
.gigi-shop::before{
  content:""; position:absolute; top:0; bottom:0; left:50%;
  transform:translateX(-50%); width:min(900px, 90vw);
  background:radial-gradient(70% 50% at 50% 30%,
      rgba(10,15,12,0.55) 0%, rgba(10,15,12,0.35) 55%,
      transparent 85%);
  z-index:-1; pointer-events:none;
}

/* Page/shop title */
.woocommerce-products-header__title,
.woocommerce .woocommerce-breadcrumb + h1,
.gigi-shop h1{
  font-family:var(--gigi-display) !important; color:var(--gigi-ivory) !important;
  font-size:clamp(2.2rem,5vw,3.4rem) !important; letter-spacing:0.04em;
}
.woocommerce-breadcrumb{
  font-family:var(--gigi-body); color:var(--gigi-ash) !important; font-size:0.9rem;
}
.woocommerce-breadcrumb a{ color:var(--gigi-gold) !important; text-decoration:none; }

/* Result count + ordering */
.woocommerce-result-count, .woocommerce-ordering select{
  font-family:var(--gigi-body); color:var(--gigi-ash) !important;
}
.woocommerce-ordering select{
  background:rgba(255,255,255,0.04); color:var(--gigi-ivory);
  border:1px solid var(--gigi-gold); border-radius:3px; padding:0.5rem 0.75rem;
}

/* Product grid cards */
.woocommerce ul.products li.product{
  text-align:center; margin-bottom:2.5rem;
}
.woocommerce ul.products li.product a img{
  border-radius:5px; border:1px solid var(--gigi-line); margin-bottom:1rem;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--gigi-display) !important; color:var(--gigi-ivory) !important;
  font-size:1.15rem !important; letter-spacing:0.02em; padding:0 !important;
}
.woocommerce ul.products li.product .price{
  font-family:var(--gigi-body) !important; color:var(--gigi-gold-lt) !important;
  font-size:1.05rem !important;
}
.woocommerce ul.products li.product .price del{ color:var(--gigi-ash) !important; }
.woocommerce span.onsale{
  background:var(--gigi-crimson) !important; color:var(--gigi-ivory) !important;
  font-family:var(--gigi-accent); letter-spacing:0.1em; border-radius:3px;
}

/* Buttons (add to cart, etc.) */
.woocommerce a.button, .woocommerce button.button,
.woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt{
  font-family:var(--gigi-accent) !important; font-size:0.8rem !important;
  letter-spacing:0.2em !important; text-transform:uppercase !important;
  color:var(--gigi-abyss) !important; background:var(--gigi-gold) !important;
  border:none !important; border-radius:3px !important; padding:0.85rem 1.6rem !important;
  transition:background 0.25s ease !important;
}
.woocommerce a.button:hover, .woocommerce button.button:hover,
.woocommerce input.button:hover, .woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover{
  background:var(--gigi-gold-lt) !important; color:var(--gigi-abyss) !important;
}

/* Single product page */
.woocommerce div.product .product_title{
  font-family:var(--gigi-display) !important; color:var(--gigi-ivory) !important;
  font-size:clamp(1.8rem,4vw,2.6rem) !important; letter-spacing:0.03em;
}
.woocommerce div.product p.price, .woocommerce div.product span.price{
  color:var(--gigi-gold-lt) !important; font-family:var(--gigi-body) !important;
  font-size:1.4rem !important;
}
.woocommerce div.product .woocommerce-product-details__short-description,
.woocommerce div.product .woocommerce-Tabs-panel{
  font-family:var(--gigi-body); color:var(--gigi-ivory); line-height:1.7;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{
  background:transparent; border-bottom:2px solid var(--gigi-gold);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{
  font-family:var(--gigi-accent); color:var(--gigi-ash);
}
.woocommerce .quantity input.qty{
  background:rgba(255,255,255,0.04); color:var(--gigi-ivory);
  border:1px solid var(--gigi-gold); border-radius:3px;
}

/* Cart + checkout */
.woocommerce table.shop_table{
  border:1px solid var(--gigi-line); color:var(--gigi-ivory);
}
.woocommerce table.shop_table th, .woocommerce table.shop_table td{
  border-color:var(--gigi-line) !important; color:var(--gigi-ivory);
}
.woocommerce-cart table.cart td.actions .coupon .input-text,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce-checkout input, .woocommerce-checkout textarea, .woocommerce-checkout select{
  background:rgba(255,255,255,0.04) !important; color:var(--gigi-ivory) !important;
  border:1px solid var(--gigi-gold) !important; border-radius:3px !important;
}
.woocommerce-checkout label, .woocommerce-cart label{ color:var(--gigi-ivory) !important; }
.cart_totals h2, .woocommerce-checkout h3, #order_review_heading{
  font-family:var(--gigi-display) !important; color:var(--gigi-gold-lt) !important;
}

/* Messages / notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews{
  background:var(--gigi-matte) !important; color:var(--gigi-ivory) !important;
  border-top:3px solid var(--gigi-gold) !important;
}
.woocommerce-message a, .woocommerce-info a{ color:var(--gigi-gold) !important; }

/* Empty store state */
.woocommerce-info, .woocommerce .cart-empty, .woocommerce-no-products-found{
  font-family:var(--gigi-accent); font-style:italic;
  color:var(--gigi-ash) !important; font-size:1.15rem;
}

/* ------------------------------------------------------------
   Shop intro block — branded lead-in above the product grid.
   Paste the .gigi-shop-intro markup into the Shop page content
   (Code editor) so it sits above the WooCommerce grid.
   ------------------------------------------------------------ */
.gigi-shop-intro{
  text-align:center; max-width:640px; margin:0 auto 3.5rem;
}
.gigi-shop-intro h1{
  font-family:var(--gigi-display) !important; color:var(--gigi-ivory) !important;
  font-size:clamp(2.4rem,5vw,3.6rem) !important; letter-spacing:0.04em;
  margin:0 0 1rem;
}
.gigi-shop-intro p{
  font-family:var(--gigi-body); color:var(--gigi-ash);
  font-size:1.15rem; line-height:1.7; margin:0 auto;
}
.gigi-shop-intro .gigi-shop-intro__rule{
  width:60px; height:1px; background:var(--gigi-gold);
  margin:1.75rem auto 0; border:none;
}

/* ------------------------------------------------------------
   Product category cards (shown when the shop lists categories)
   ------------------------------------------------------------ */
.woocommerce ul.products li.product-category{
  text-align:center; margin-bottom:2.5rem;
}
.woocommerce ul.products li.product-category a img{
  border-radius:5px; border:1px solid var(--gigi-line); margin-bottom:1rem;
}
.woocommerce ul.products li.product-category h2,
.woocommerce ul.products li.product-category h2.woocommerce-loop-category__title{
  font-family:var(--gigi-display) !important; color:var(--gigi-ivory) !important;
  font-size:1.2rem !important; letter-spacing:0.02em;
}
.woocommerce ul.products li.product-category h2 mark,
.woocommerce ul.products li.product-category .count{
  background:transparent !important; color:var(--gigi-ash) !important;
  font-family:var(--gigi-body); font-size:0.9rem;
}
.woocommerce .term-description{
  font-family:var(--gigi-body); color:var(--gigi-ash);
  text-align:center; max-width:620px; margin:0 auto 2.5rem; line-height:1.7;
}

/* ------------------------------------------------------------
   Branded empty / coming-soon state.
   This store uses WooCommerce's BLOCK notice banner (confirmed via
   dev tools): the "No products found" message renders as
   .woocommerce-no-products-found > .wc-block-components-notice-banner.is-info
   with a white background (#fff), grey text (#2f2f2f), and an inline
   SVG info icon. WooCommerce's packages-style sheet sets these with
   high specificity, so we override the block-notice classes directly
   and hide the SVG icon.
   ------------------------------------------------------------ */

/* Outer wrapper — the dark framed panel */
.gigi-shop .woocommerce-no-products-found{
  text-align:center; padding:3rem 1.5rem;
  border:1px solid var(--gigi-line); border-radius:6px;
  background:rgba(26,26,26,0.5); max-width:640px; margin:2rem auto;
}

/* Branded heading above the notice */
.gigi-shop .woocommerce-no-products-found::before{
  content:"The shelves are being stocked.";
  display:block;
  font-family:var(--gigi-display); color:var(--gigi-ivory);
  font-size:1.6rem; letter-spacing:0.03em; margin-bottom:1.25rem;
}

/* The block notice banner itself — kill the white box */
.gigi-shop .wc-block-components-notice-banner,
.gigi-shop .woocommerce-no-products-found .wc-block-components-notice-banner.is-info{
  background:transparent !important;
  background-color:transparent !important;
  color:var(--gigi-ash) !important;
  border:none !important;
  border-radius:0 !important;
  box-shadow:none !important;
  padding:0 !important; margin:0 !important;
  justify-content:center !important;
}

/* Notice text */
.gigi-shop .wc-block-components-notice-banner__content{
  color:var(--gigi-ash) !important;
  font-family:var(--gigi-accent); font-style:italic;
  font-size:1.2rem !important; text-align:center !important;
  flex-basis:auto !important;
}
.gigi-shop .wc-block-components-notice-banner a{ color:var(--gigi-gold) !important; }

/* Hide the blue info SVG icon */
.gigi-shop .wc-block-components-notice-banner > svg,
.gigi-shop .wc-block-components-notice-banner__icon{
  display:none !important;
}

/* Fallback: also handle the classic .woocommerce-info form if it ever
   renders that way instead of the block notice */
.gigi-shop .woocommerce-info:not(.wc-block-components-notice-banner){
  background:transparent !important; color:var(--gigi-ash) !important;
  border:none !important; box-shadow:none !important;
  font-family:var(--gigi-accent); font-style:italic; text-align:center;
}
.gigi-shop .woocommerce-info:not(.wc-block-components-notice-banner)::before{
  display:none !important;
}

@media(max-width:640px){
  .gigi-shop{ padding:3rem 1.25rem 4.5rem; }
  .gigi-shop-intro{ margin-bottom:2.5rem; }
}


/* ============================================================
   CONTACT PAGE — "Send a Whisper"
   Branded shell around a form-plugin shortcode. The form fields
   are styled generically enough to catch WPForms / Fluent Forms /
   Contact Form 7 markup and make them match the dark-royalty look.
   ============================================================ */
.gigi-contact{
  color:var(--gigi-ivory);
  font-family:var(--gigi-body);
  padding:5rem 1.5rem 6rem;
  position:relative;
  z-index:1;
}
.gigi-contact::before{
  content:""; position:absolute; top:0; bottom:0; left:50%;
  transform:translateX(-50%); width:min(900px, 90vw);
  background:radial-gradient(70% 50% at 50% 35%,
      rgba(10,15,12,0.55) 0%, rgba(10,15,12,0.35) 55%,
      transparent 85%);
  z-index:-1; pointer-events:none;
}
.gigi-contact__inner{ max-width:680px; margin:0 auto; text-align:center; }
.gigi-contact__eyebrow{
  font-family:var(--gigi-body); font-size:0.78rem; letter-spacing:0.28em;
  text-transform:uppercase; color:var(--gigi-gold); margin:0 0 1.25rem;
}
.gigi-contact__title{
  font-family:var(--gigi-display); color:var(--gigi-ivory);
  font-size:clamp(2.4rem,6vw,4rem); letter-spacing:0.04em; line-height:1.1; margin:0 0 1.25rem;
}
.gigi-contact__lede{
  font-family:var(--gigi-body); font-style:italic; color:var(--gigi-ash);
  font-size:1.2rem; line-height:1.6; margin:0 auto 2.5rem; max-width:48ch;
}
.gigi-contact__divider{
  width:60px; height:1px; background:var(--gigi-gold); margin:0 auto 3rem;
}
/* Form card */
.gigi-contact__form-wrap{
  background:linear-gradient(180deg, rgba(26,26,26,0.6), rgba(10,15,12,0.4));
  border:1px solid var(--gigi-line);
  border-radius:6px;
  padding:2.75rem 2.25rem;
  text-align:left;
  box-shadow:0 18px 50px rgba(0,0,0,0.45);
}
/* Style common form-plugin field markup to match the brand.
   Targets WPForms, Fluent Forms, and Contact Form 7 inputs. */
.gigi-contact__form-wrap label,
.gigi-contact__form-wrap .wpforms-field-label,
.gigi-contact__form-wrap .ff-el-input--label label{
  font-family:var(--gigi-accent) !important;
  color:var(--gigi-gold-lt) !important;
  font-size:0.82rem !important; letter-spacing:0.12em; text-transform:uppercase;
  margin-bottom:0.5rem !important; display:block;
}
.gigi-contact__form-wrap input[type=text],
.gigi-contact__form-wrap input[type=email],
.gigi-contact__form-wrap input[type=tel],
.gigi-contact__form-wrap textarea,
.gigi-contact__form-wrap .wpforms-field input,
.gigi-contact__form-wrap .wpforms-field textarea,
.gigi-contact__form-wrap .ff-el-form-control{
  width:100% !important;
  background:rgba(10,15,12,0.7) !important;
  border:1px solid var(--gigi-line) !important;
  border-radius:3px !important;
  color:var(--gigi-ivory) !important;
  font-family:var(--gigi-body) !important;
  font-size:1rem !important;
  padding:0.85rem 1rem !important;
  margin-bottom:1.35rem !important;
  transition:border-color 0.2s ease, box-shadow 0.2s ease;
}
.gigi-contact__form-wrap input:focus,
.gigi-contact__form-wrap textarea:focus,
.gigi-contact__form-wrap .ff-el-form-control:focus{
  outline:none !important;
  border-color:var(--gigi-gold) !important;
  box-shadow:0 0 0 2px rgba(201,162,75,0.18) !important;
}
.gigi-contact__form-wrap input::placeholder,
.gigi-contact__form-wrap textarea::placeholder{ color:var(--gigi-ash) !important; }
.gigi-contact__form-wrap textarea{ min-height:150px !important; resize:vertical; }
/* Submit button */
.gigi-contact__form-wrap button[type=submit],
.gigi-contact__form-wrap input[type=submit],
.gigi-contact__form-wrap .wpforms-submit,
.gigi-contact__form-wrap .ff-btn-submit{
  display:inline-block !important;
  font-family:var(--gigi-accent) !important;
  font-size:0.9rem !important; letter-spacing:0.16em; text-transform:uppercase;
  padding:14px 40px !important;
  background:var(--gigi-gold) !important;
  color:var(--gigi-abyss) !important;
  border:none !important; border-radius:3px !important;
  cursor:pointer;
  transition:background-color 0.2s ease;
  margin-top:0.5rem !important;
}
.gigi-contact__form-wrap button[type=submit]:hover,
.gigi-contact__form-wrap input[type=submit]:hover,
.gigi-contact__form-wrap .wpforms-submit:hover,
.gigi-contact__form-wrap .ff-btn-submit:hover{
  background:var(--gigi-gold-lt) !important;
}
/* Confirmation message */
.gigi-contact__form-wrap .wpforms-confirmation-container-full,
.gigi-contact__form-wrap .ff-message-success{
  background:rgba(201,162,75,0.08) !important;
  border:1px solid var(--gigi-gold) !important;
  color:var(--gigi-ivory) !important;
  font-family:var(--gigi-body) !important;
  border-radius:4px !important; padding:1.25rem !important;
}
/* Alt contact line under the form */
.gigi-contact__alt{
  font-family:var(--gigi-body); color:var(--gigi-ash);
  font-size:0.98rem; margin-top:2rem; text-align:center;
}
.gigi-contact__alt a{ color:var(--gigi-gold); text-decoration:none; }
.gigi-contact__alt a:hover{ color:var(--gigi-gold-lt); }

@media(max-width:640px){
  .gigi-contact{ padding:3.5rem 1.25rem 4.5rem; }
  .gigi-contact__form-wrap{ padding:2rem 1.35rem; }
}


/* ============================================================
   INTERVIEWS PAGE — "In Her Own Words"
   Editorial Q&A layout, echoes the My Worlds manifesto styling.
   ============================================================ */
.gigi-interviews{
  color:var(--gigi-ivory);
  font-family:var(--gigi-body);
  padding:5rem 1.5rem 6rem;
  position:relative;
  z-index:1;
}
.gigi-interviews::before{
  content:""; position:absolute; top:0; bottom:0; left:50%;
  transform:translateX(-50%); width:min(900px, 90vw);
  background:radial-gradient(70% 50% at 50% 35%,
      rgba(10,15,12,0.55) 0%, rgba(10,15,12,0.35) 55%,
      transparent 85%);
  z-index:-1; pointer-events:none;
}
.gigi-interviews__inner{ max-width:760px; margin:0 auto; }
.gigi-interviews__head{ text-align:center; margin:0 auto 4rem; max-width:680px; }
.gigi-interviews__eyebrow{
  font-family:var(--gigi-body); font-size:0.78rem; letter-spacing:0.28em;
  text-transform:uppercase; color:var(--gigi-gold); margin:0 0 1.25rem;
}
.gigi-interviews__title{
  font-family:var(--gigi-display); color:var(--gigi-ivory);
  font-size:clamp(2.4rem,6vw,4rem); letter-spacing:0.04em; line-height:1.1; margin:0 0 1.25rem;
}
.gigi-interviews__lede{
  font-family:var(--gigi-body); font-style:italic; color:var(--gigi-ash);
  font-size:1.2rem; line-height:1.6; margin:0 auto; max-width:52ch;
}
/* Each interview entry */
.gigi-interview{
  margin:0 0 3.5rem; padding:0 0 3.5rem;
  border-bottom:1px solid var(--gigi-line);
}
.gigi-interview:last-child{ border-bottom:none; }
.gigi-interview__source{
  font-family:var(--gigi-accent); color:var(--gigi-gold);
  font-size:0.8rem; letter-spacing:0.16em; text-transform:uppercase; margin:0 0 1.5rem;
}
.gigi-interview__q{
  font-family:var(--gigi-display); color:var(--gigi-gold-lt);
  font-size:1.5rem; letter-spacing:0.02em; line-height:1.3; margin:0 0 1rem;
}
.gigi-interview__a{
  font-family:var(--gigi-body); color:var(--gigi-ivory);
  font-size:1.12rem; line-height:1.75; margin:0 0 2rem;
}
.gigi-interview__a:last-child{ margin-bottom:0; }

@media(max-width:640px){
  .gigi-interviews{ padding:3.5rem 1.25rem 4.5rem; }
}


/* ============================================================
   404 PAGE — "Lost in the Woods"
   Branded not-found, on-theme copy and a way back.
   ============================================================ */
.gigi-404{
  color:var(--gigi-ivory);
  font-family:var(--gigi-body);
  min-height:60vh;
  display:flex; align-items:center; justify-content:center;
  padding:5rem 1.5rem 6rem;
  position:relative; z-index:1; text-align:center;
}
.gigi-404::before{
  content:""; position:absolute; top:0; bottom:0; left:50%;
  transform:translateX(-50%); width:min(900px, 90vw);
  background:radial-gradient(70% 50% at 50% 45%,
      rgba(10,15,12,0.55) 0%, rgba(10,15,12,0.35) 55%,
      transparent 85%);
  z-index:-1; pointer-events:none;
}
.gigi-404__inner{ max-width:560px; margin:0 auto; }
.gigi-404__code{
  font-family:var(--gigi-accent); color:var(--gigi-gold);
  font-size:0.85rem; letter-spacing:0.3em; text-transform:uppercase; margin:0 0 1.5rem;
}
.gigi-404__title{
  font-family:var(--gigi-display); color:var(--gigi-ivory);
  font-size:clamp(2.4rem,7vw,4.2rem); letter-spacing:0.03em; line-height:1.05; margin:0 0 1.5rem;
}
.gigi-404__text{
  font-family:var(--gigi-body); font-style:italic; color:var(--gigi-ash);
  font-size:1.2rem; line-height:1.6; margin:0 auto 2.5rem; max-width:44ch;
}
.gigi-404__btn{
  display:inline-block; font-family:var(--gigi-accent);
  font-size:0.9rem; letter-spacing:0.16em; text-transform:uppercase;
  padding:14px 38px; background:var(--gigi-gold); color:var(--gigi-abyss);
  border-radius:3px; text-decoration:none; transition:background-color 0.2s ease;
}
.gigi-404__btn:hover{ background:var(--gigi-gold-lt); color:var(--gigi-abyss); }

/* ============================================================
   LAYOUT FIXES (v2.5)
   Blog "The Journal" top spacing so the title sits below the nav
   like the other pages. (Shop left untouched.)
   ============================================================ */

/* ---- 1. BLOG TOP SPACING ----
   Ensures the blog listing has breathing room under the nav even
   when the content is not wrapped in .gigi-blog. Targets the blog
   body class so it never affects other pages. */
body.blog .wp-site-blocks > main,
body.blog main.wp-block-group,
body.archive:not(.post-type-archive-product) .wp-site-blocks > main {
  padding-top: 4rem !important;
}

