/* ==========================================================================
   ALBI TRANSFORMATION — Design System
   Palette derived directly from brand mandala mark: rose/berry pink + cream.
   Type: Cormorant Garamond (display serif) + DM Sans (body/UI).
   ========================================================================== */

:root{
  /* ---- Brand palette (sampled from logo + legacy theme-color) ---- */
  --rose-50:  #fdf7f3;
  --rose-100: #fbeee8;
  --rose-200: #f3dbe1;
  --rose-300: #e8b8c9;
  --rose-400: #dd8aa8;
  --rose-500: #d15e88;   /* primary brand rose (sampled from mark) */
  --rose-600: #b23f68;   /* deep rose — headings on cream, hover state */
  --rose-700: #8a2f52;   /* deepest wine — text accents */
  --rose-800: #5e2038;

  --gold-accent: #e85d9f; /* legacy brand accent glow, used sparingly */

  --cream-50:  #fffdfb;
  --cream-100: #fdf8f1;
  --cream-200: #f5ede1;  /* primary cream background */
  --cream-300: #ede0cc;  /* deeper sand — borders, dividers */
  --cream-400: #e2d0b8;

  --ink-900: #2b1b22;    /* primary text — warm near-black */
  --ink-700: #4a3540;
  --ink-500: #6d5460;    /* secondary/muted text */
  --ink-300: #a68c96;

  --white: #ffffff;

  /* ---- Chakra accent spectrum (used on chakra guide pages) ---- */
  --chakra-root:        #c0392b;
  --chakra-sacral:      #d9762f;
  --chakra-solar:       #d9b23c;
  --chakra-heart:       #5e9c6c;
  --chakra-throat:      #4a90c4;
  --chakra-third-eye:   #4b5aa8;
  --chakra-crown:       #8b5fbf;

  /* ---- Semantic tokens ---- */
  --bg-page: var(--cream-100);
  --bg-alt: var(--cream-200);
  --bg-dark: var(--ink-900);
  --text-primary: var(--ink-900);
  --text-muted: var(--ink-500);
  --text-inverse: var(--cream-100);
  --accent: var(--rose-500);
  --accent-deep: var(--rose-600);
  --border-soft: rgba(94, 32, 56, 0.12);

  /* ---- Type ---- */
  --font-display: "Cormorant Garamond", "Times New Roman", serif;
  --font-body: "DM Sans", -apple-system, BlinkMacSystemFont, sans-serif;

  /* ---- Motion ---- */
  --ease-silk: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-soft: cubic-bezier(0.32, 0.72, 0, 1);

  /* ---- Radii / shadow ---- */
  --radius-lg: 2rem;
  --radius-md: 1.25rem;
  --radius-sm: 0.75rem;
  --shadow-soft: 0 30px 60px -25px rgba(94, 32, 56, 0.25);
  --shadow-card: 0 20px 40px -20px rgba(94, 32, 56, 0.18);
}

/* ---------------------------------------------------------------------- */
/* Reset & base                                                           */
/* ---------------------------------------------------------------------- */
*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--bg-page);
  color:var(--text-primary);
  font-family:var(--font-body);
  font-size:1rem;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  width:100%;
  max-width:100%;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3,h4,h5{
  font-family:var(--font-display);
  font-weight:600;
  line-height:1.08;
  margin:0 0 0.5em;
  color:var(--ink-900);
  letter-spacing:-0.01em;
}
h1{ font-size:clamp(2.75rem, 5.6vw, 5rem); font-weight:500; }
h2{ font-size:clamp(2.1rem, 4vw, 3.4rem); font-weight:500; }
h3{ font-size:clamp(1.5rem, 2.4vw, 2rem); }
h4{ font-size:1.25rem; font-family:var(--font-body); font-weight:700; text-transform:none; }
p{ margin:0 0 1.2em; color:var(--text-muted); }
p:last-child{ margin-bottom:0; }
ul,ol{ color:var(--text-muted); }
strong,b{ color:var(--ink-900); font-weight:700; }
.serif{ font-family:var(--font-display); }

.container{
  width:100%;
  max-width:1200px;
  margin:0 auto;
  padding:0 1.5rem;
}
@media(min-width:768px){ .container{ padding:0 2.5rem; } }

section{ position:relative; }
.section{ padding:5rem 0; }
.section-lg{ padding:6rem 0; }
@media(min-width:900px){
  .section{ padding:7rem 0; }
  .section-lg{ padding:9rem 0; }
}
.bg-cream{ background:var(--cream-200); }
.bg-white{ background:var(--white); }
.bg-dark{
  background:radial-gradient(120% 140% at 15% 0%, #3a2130 0%, var(--ink-900) 55%, #1c1117 100%);
  color:var(--cream-100);
}
.bg-dark p, .bg-dark .text-muted{ color:rgba(245,237,225,0.72); }
.bg-dark h1,.bg-dark h2,.bg-dark h3{ color:var(--cream-100); }

/* Eyebrow tag */
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:0.5rem;
  padding:0.4rem 0.95rem;
  border-radius:999px;
  background:var(--rose-100);
  border:1px solid var(--border-soft);
  color:var(--rose-600);
  font-size:0.72rem;
  font-weight:700;
  letter-spacing:0.18em;
  text-transform:uppercase;
  margin-bottom:1.25rem;
}
.eyebrow::before{
  content:"";
  width:6px; height:6px; border-radius:50%;
  background:var(--rose-500);
  display:inline-block;
}
.bg-dark .eyebrow{ background:rgba(209,94,136,0.14); border-color:rgba(209,94,136,0.3); color:var(--rose-300); }

.lede{ font-size:clamp(1.05rem, 1.4vw, 1.25rem); color:var(--text-muted); max-width:56ch; }
.center{ text-align:center; margin-left:auto; margin-right:auto; }

/* ---------------------------------------------------------------------- */
/* Buttons                                                                 */
/* ---------------------------------------------------------------------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:0.65rem;
  padding:0.9rem 1.7rem;
  border-radius:999px;
  font-family:var(--font-body);
  font-weight:700;
  font-size:0.95rem;
  border:1px solid transparent;
  cursor:pointer;
  transition:transform 0.5s var(--ease-soft), box-shadow 0.5s var(--ease-soft), background 0.4s var(--ease-soft);
  white-space:nowrap;
}
.btn:active{ transform:scale(0.97); }
.btn-primary{
  background:linear-gradient(135deg, var(--rose-500), var(--rose-600));
  color:var(--white);
  box-shadow:0 16px 30px -12px rgba(178,63,104,0.55);
}
.btn-primary:hover{ box-shadow:0 20px 38px -12px rgba(178,63,104,0.65); transform:translateY(-2px); }
.btn-ghost{
  background:transparent;
  border-color:rgba(43,27,34,0.18);
  color:var(--ink-900);
}
.btn-ghost:hover{ border-color:var(--rose-500); color:var(--rose-600); transform:translateY(-2px); }
.bg-dark .btn-ghost{ border-color:rgba(245,237,225,0.3); color:var(--cream-100); }
.bg-dark .btn-ghost:hover{ border-color:var(--rose-300); color:var(--rose-200); }
.btn-icon{
  width:2.1rem; height:2.1rem;
  border-radius:50%;
  background:rgba(255,255,255,0.22);
  display:inline-flex; align-items:center; justify-content:center;
  transition:transform 0.5s var(--ease-soft);
}
.btn-primary:hover .btn-icon{ transform:translate(2px,-2px); }
.btn-ghost .btn-icon{ background:rgba(43,27,34,0.06); }
.btn-block{ width:100%; justify-content:center; }

/* ---------------------------------------------------------------------- */
/* Splash intro                                                           */
/* ---------------------------------------------------------------------- */
#splash{
  position:fixed; inset:0; z-index:999;
  display:flex; align-items:center; justify-content:center;
  background:radial-gradient(130% 130% at 50% 20%, #fbeee8 0%, #f5ede1 55%, #ecd9db 100%);
  transition:opacity 0.9s var(--ease-silk), visibility 0.9s var(--ease-silk);
}
#splash.is-hidden{ opacity:0; visibility:hidden; pointer-events:none; }
.splash-inner{ text-align:center; }
.splash-mark{
  width:120px; height:120px;
  margin:0 auto 1.25rem;
  opacity:0;
  transform:scale(0.8);
  animation:splashMarkIn 1.1s var(--ease-silk) forwards 0.15s;
}
.splash-mark img{ width:100%; height:100%; object-fit:contain; }
.splash-word{
  font-family:var(--font-display);
  font-size:clamp(1.6rem, 4vw, 2.4rem);
  letter-spacing:0.06em;
  color:var(--rose-700);
  opacity:0;
  transform:translateY(10px);
  animation:splashWordIn 1s var(--ease-silk) forwards 0.55s;
}
.splash-sub{
  font-size:0.72rem;
  letter-spacing:0.32em;
  text-transform:uppercase;
  color:var(--rose-500);
  margin-top:0.6rem;
  opacity:0;
  animation:splashWordIn 1s var(--ease-silk) forwards 0.85s;
}
.splash-bar{
  width:140px; height:2px; margin:1.6rem auto 0;
  background:rgba(178,63,104,0.18);
  border-radius:2px;
  overflow:hidden;
}
.splash-bar-fill{
  height:100%; width:0%;
  background:linear-gradient(90deg, var(--rose-400), var(--rose-600));
  animation:splashBar 2.2s var(--ease-soft) forwards 0.3s;
}
@keyframes splashMarkIn{ to{ opacity:1; transform:scale(1); } }
@keyframes splashWordIn{ to{ opacity:1; transform:translateY(0); } }
@keyframes splashBar{ to{ width:100%; } }
body.no-scroll{ overflow:hidden; height:100%; }

/* ---------------------------------------------------------------------- */
/* Nav                                                                     */
/* ---------------------------------------------------------------------- */
.nav-wrap{
  position:fixed; top:0; left:0; right:0; z-index:200;
  padding:1.1rem 1.25rem;
  transition:padding 0.4s var(--ease-soft);
}
.nav-pill{
  max-width:1180px; margin:0 auto;
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem;
  padding:0.6rem 0.7rem 0.6rem 1.1rem;
  border-radius:999px;
  background:rgba(253,248,241,0.78);
  border:1px solid rgba(94,32,56,0.08);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  box-shadow:0 12px 30px -18px rgba(94,32,56,0.25);
  transition:box-shadow 0.4s var(--ease-soft);
}
.nav-wrap.is-scrolled .nav-pill{ box-shadow:0 16px 34px -14px rgba(94,32,56,0.3); }
.nav-logo{ display:flex; align-items:center; gap:0.6rem; }
.nav-logo img{ width:34px; height:34px; object-fit:contain; }
.nav-logo span{ font-family:var(--font-display); font-size:1.15rem; color:var(--rose-700); letter-spacing:0.01em; }
.nav-links{ display:none; align-items:center; gap:1.9rem; }
.nav-links a{
  font-size:0.86rem; font-weight:600; color:var(--ink-700);
  position:relative; padding:0.3rem 0;
  transition:color 0.3s var(--ease-soft);
}
.nav-links a::after{
  content:""; position:absolute; left:0; right:100%; bottom:-2px; height:1.5px;
  background:var(--rose-500); transition:right 0.4s var(--ease-soft);
}
.nav-links a:hover{ color:var(--rose-600); }
.nav-links a:hover::after{ right:0; }
.nav-links a.active{ color:var(--rose-600); }
.nav-cta-group{ display:flex; align-items:center; gap:0.6rem; }
.nav-cta-group .btn{ padding:0.7rem 1.3rem; font-size:0.85rem; }
@media(min-width:1020px){ .nav-links{ display:flex; } }
.nav-call-link{ display:none; }
@media(min-width:1180px){ .nav-call-link{ display:inline-flex; } }

.lang-switch{
  display:inline-flex; align-items:center; justify-content:center;
  width:2.3rem; height:2.3rem; border-radius:50%;
  font-size:0.72rem; font-weight:800; letter-spacing:0.02em;
  color:var(--rose-700); background:var(--rose-100);
  border:1px solid rgba(94,32,56,0.12); flex:0 0 auto;
  transition:background 0.3s var(--ease-soft), color 0.3s var(--ease-soft), transform 0.4s var(--ease-soft);
}
.lang-switch:hover{ background:var(--rose-500); color:#fff; transform:translateY(-1px); }

.nav-toggle{
  width:2.6rem; height:2.6rem; border-radius:50%;
  background:rgba(94,32,56,0.06);
  display:inline-flex; align-items:center; justify-content:center;
  position:relative; cursor:pointer; border:none;
}
@media(min-width:1020px){ .nav-toggle{ display:none; } }
.nav-toggle span{
  position:absolute; width:16px; height:1.5px; background:var(--ink-900);
  transition:transform 0.4s var(--ease-soft), opacity 0.3s var(--ease-soft);
}
.nav-toggle span:nth-child(1){ transform:translateY(-4px); }
.nav-toggle span:nth-child(3){ transform:translateY(4px); }
.nav-toggle.is-open span:nth-child(1){ transform:rotate(45deg); }
.nav-toggle.is-open span:nth-child(2){ opacity:0; }
.nav-toggle.is-open span:nth-child(3){ transform:rotate(-45deg); }

.mobile-menu{
  position:fixed; inset:0; z-index:190;
  background:rgba(245,237,225,0.98);
  backdrop-filter:blur(20px);
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  gap:1.6rem;
  opacity:0; visibility:hidden;
  transition:opacity 0.5s var(--ease-soft), visibility 0.5s var(--ease-soft);
}
.mobile-menu.is-open{ opacity:1; visibility:visible; }
.mobile-menu a{
  font-family:var(--font-display); font-size:2rem; color:var(--ink-900);
  opacity:0; transform:translateY(16px);
  transition:opacity 0.5s var(--ease-soft), transform 0.5s var(--ease-soft);
}
.mobile-menu.is-open a{ opacity:1; transform:translateY(0); }
.mobile-menu a:nth-child(1){ transition-delay:0.08s; }
.mobile-menu a:nth-child(2){ transition-delay:0.13s; }
.mobile-menu a:nth-child(3){ transition-delay:0.18s; }
.mobile-menu a:nth-child(4){ transition-delay:0.23s; }
.mobile-menu a:nth-child(5){ transition-delay:0.28s; }
.mobile-menu a:nth-child(6){ transition-delay:0.33s; }
.mobile-menu a:nth-child(7){ transition-delay:0.38s; }

/* ---------------------------------------------------------------------- */
/* Hero (full-bleed image background)                                     */
/* ---------------------------------------------------------------------- */
.hero{
  position:relative;
  min-height:100dvh;
  display:flex; align-items:flex-end;
  padding:8rem 0 5rem;
  overflow:hidden;
}
.hero-media{ position:absolute; inset:0; z-index:0; }
.hero-media img{
  width:100%; height:100%; object-fit:cover; object-position:center 30%;
}
.hero-media::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(43,27,34,0.15) 0%, rgba(43,27,34,0.35) 55%, rgba(43,27,34,0.82) 100%);
}
.hero-content{ position:relative; z-index:2; color:var(--cream-100); max-width:760px; }
.hero-content .eyebrow{ background:rgba(255,255,255,0.14); border-color:rgba(255,255,255,0.25); color:#fbeee8; }
.hero-content h1{ color:var(--white); text-shadow:0 4px 30px rgba(0,0,0,0.2); }
.hero-content p{ color:rgba(255,253,251,0.85); }
.hero-actions{ display:flex; flex-wrap:wrap; gap:1rem; margin-top:2rem; }
.hero-scroll{
  position:absolute; bottom:2rem; right:2.5rem; z-index:2;
  writing-mode:vertical-rl; color:rgba(255,255,255,0.7);
  font-size:0.7rem; letter-spacing:0.25em; text-transform:uppercase;
  display:flex; align-items:center; gap:0.6rem;
}
.hero-scroll::after{ content:""; width:1px; height:50px; background:rgba(255,255,255,0.4); }

/* Page (interior) header — shorter hero for sub-pages */
.page-hero{
  position:relative;
  padding:10rem 0 4.5rem;
  overflow:hidden;
}
.page-hero .hero-media img{ object-position:center 35%; }
.page-hero .hero-content{ max-width:820px; }
.breadcrumb{ display:flex; gap:0.5rem; align-items:center; font-size:0.8rem; color:rgba(255,255,255,0.75); margin-bottom:1.2rem; flex-wrap:wrap; }
.breadcrumb a:hover{ color:var(--white); }
.breadcrumb span{ opacity:0.5; }

/* ---------------------------------------------------------------------- */
/* Grid / cards                                                            */
/* ---------------------------------------------------------------------- */
.grid{ display:grid; gap:1.5rem; }
.grid-2{ grid-template-columns:1fr; }
.grid-3{ grid-template-columns:1fr; }
.grid-4{ grid-template-columns:1fr; }
@media(min-width:700px){
  .grid-2{ grid-template-columns:repeat(2,1fr); }
  .grid-4{ grid-template-columns:repeat(2,1fr); }
}
@media(min-width:960px){
  .grid-3{ grid-template-columns:repeat(3,1fr); }
  .grid-4{ grid-template-columns:repeat(4,1fr); }
}

.card{
  background:var(--white);
  border:1px solid var(--border-soft);
  border-radius:var(--radius-md);
  padding:2rem;
  box-shadow:var(--shadow-card);
  transition:transform 0.6s var(--ease-soft), box-shadow 0.6s var(--ease-soft);
}
.card:hover{ transform:translateY(-6px); box-shadow:0 30px 55px -22px rgba(94,32,56,0.3); }
.card-icon{
  width:3rem; height:3rem; border-radius:50%;
  background:var(--rose-100);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:1.25rem;
  color:var(--rose-600);
}
.card-icon svg{ width:22px; height:22px; }

.service-card{
  position:relative;
  border-radius:var(--radius-md);
  overflow:hidden;
  aspect-ratio:4/5;
  display:flex; align-items:flex-end;
  box-shadow:var(--shadow-card);
}
.service-card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease-soft); }
.service-card:hover img{ transform:scale(1.06); }
.service-card::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(43,27,34,0) 30%, rgba(43,27,34,0.88) 100%);
}
.service-card-body{ position:relative; z-index:2; padding:1.75rem; color:var(--white); }
.service-card-body h3{ color:var(--white); margin-bottom:0.4rem; font-size:1.5rem; }
.service-card-body p{ color:rgba(255,255,255,0.82); font-size:0.92rem; margin-bottom:0.75rem; }
.service-card-body .tag-link{ font-size:0.82rem; font-weight:700; color:var(--rose-300); display:inline-flex; align-items:center; gap:0.4rem; }

/* Testimonial */
.quote-card{
  background:var(--white);
  border:1px solid var(--border-soft);
  border-radius:var(--radius-md);
  padding:2.25rem;
  box-shadow:var(--shadow-card);
}
.quote-card .stars{ color:var(--rose-500); font-size:0.9rem; letter-spacing:0.15em; margin-bottom:1rem; }
.quote-card p{ font-family:var(--font-display); font-size:1.25rem; color:var(--ink-800); font-style:italic; line-height:1.5; }
.quote-attrib{ margin-top:1.25rem; font-family:var(--font-body); font-size:0.85rem; font-weight:700; color:var(--rose-600); font-style:normal; }
.quote-attrib span{ display:block; font-weight:400; color:var(--text-muted); font-size:0.8rem; margin-top:0.15rem; }

/* FAQ accordion */
.faq-item{
  border-bottom:1px solid var(--border-soft);
  padding:1.5rem 0;
}
.faq-q{
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem; cursor:pointer; font-family:var(--font-display); font-size:1.2rem; color:var(--ink-900);
}
.faq-q .plus{
  flex:0 0 auto; width:1.8rem; height:1.8rem; border-radius:50%;
  border:1px solid var(--border-soft);
  display:flex; align-items:center; justify-content:center;
  position:relative; transition:transform 0.4s var(--ease-soft), background 0.3s var(--ease-soft);
}
.faq-q .plus::before, .faq-q .plus::after{
  content:""; position:absolute; background:var(--rose-600);
}
.faq-q .plus::before{ width:9px; height:1.4px; }
.faq-q .plus::after{ width:1.4px; height:9px; transition:transform 0.4s var(--ease-soft); }
.faq-item.is-open .faq-q .plus{ background:var(--rose-500); transform:rotate(180deg); }
.faq-item.is-open .faq-q .plus::before,.faq-item.is-open .faq-q .plus::after{ background:var(--white); }
.faq-item.is-open .faq-q .plus::after{ transform:scaleY(0); }
.faq-a{
  max-height:0; overflow:hidden;
  transition:max-height 0.5s var(--ease-soft);
}
.faq-a-inner{ padding-top:1rem; max-width:70ch; }
.faq-item.is-open .faq-a{ max-height:600px; }

/* Steps */
.steps{ counter-reset:step; }
.step{ position:relative; padding-left:3.75rem; margin-bottom:2.25rem; }
.step:last-child{ margin-bottom:0; }
.step::before{
  counter-increment:step; content:counter(step);
  position:absolute; left:0; top:0;
  width:2.75rem; height:2.75rem; border-radius:50%;
  background:linear-gradient(135deg, var(--rose-400), var(--rose-600));
  color:var(--white); font-family:var(--font-display); font-size:1.2rem;
  display:flex; align-items:center; justify-content:center;
}

/* Chakra chip / rows */
.chakra-row{
  display:flex; align-items:center; gap:1.25rem;
  padding:1.5rem; border-radius:var(--radius-md);
  background:var(--white); border:1px solid var(--border-soft);
  box-shadow:var(--shadow-card);
  margin-bottom:1rem;
}
.chakra-dot{ width:3rem; height:3rem; border-radius:50%; flex:0 0 auto; box-shadow:inset 0 0 0 4px rgba(255,255,255,0.5); }

/* Form */
.form-panel{
  background:var(--white);
  border-radius:var(--radius-lg);
  border:1px solid var(--border-soft);
  padding:2.25rem;
  box-shadow:var(--shadow-soft);
}
.field{ margin-bottom:1.1rem; }
.field label{ display:block; font-size:0.8rem; font-weight:700; color:var(--ink-700); margin-bottom:0.4rem; }
.field input, .field select, .field textarea{
  width:100%; padding:0.85rem 1rem;
  border-radius:0.85rem; border:1px solid rgba(94,32,56,0.16);
  background:var(--cream-100);
  font-family:var(--font-body); font-size:0.95rem; color:var(--ink-900);
  transition:border-color 0.3s var(--ease-soft), box-shadow 0.3s var(--ease-soft);
}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:var(--rose-500); box-shadow:0 0 0 4px rgba(209,94,136,0.14);
}
.field-row{ display:grid; gap:1.1rem; grid-template-columns:1fr; }
@media(min-width:600px){ .field-row{ grid-template-columns:1fr 1fr; } }
.form-note{ font-size:0.78rem; color:var(--text-muted); margin-top:0.75rem; }
.form-status{ font-size:0.9rem; font-weight:600; margin-top:1rem; display:none; }
.form-status.is-visible{ display:block; }
.form-status.ok{ color:#3f7d52; }
.form-status.err{ color:#b23f4b; }

/* Footer */
footer{ background:var(--ink-900); color:rgba(245,237,225,0.75); padding:5rem 0 2rem; }
footer h4{ color:var(--cream-100); font-family:var(--font-display); font-weight:500; font-size:1.15rem; margin-bottom:1.1rem; }
footer a{ color:rgba(245,237,225,0.65); font-size:0.9rem; transition:color 0.3s var(--ease-soft); }
footer a:hover{ color:var(--rose-300); }
.footer-grid{ display:grid; gap:2.5rem; grid-template-columns:1fr; }
@media(min-width:800px){ .footer-grid{ grid-template-columns:1.6fr 1fr 1fr 1fr; } }
.footer-links{ display:flex; flex-direction:column; gap:0.7rem; }
.footer-bottom{
  margin-top:3.5rem; padding-top:1.75rem; border-top:1px solid rgba(245,237,225,0.1);
  display:flex; flex-wrap:wrap; gap:1rem; justify-content:space-between; align-items:center;
  font-size:0.8rem; color:rgba(245,237,225,0.5);
}
.social-row{ display:flex; gap:0.75rem; margin-top:1.25rem; }
.social-row a{
  width:2.4rem; height:2.4rem; border-radius:50%;
  background:rgba(245,237,225,0.08);
  display:flex; align-items:center; justify-content:center;
}
.social-row a:hover{ background:var(--rose-600); color:var(--white); }

/* Sticky mobile CTA bar */
.sticky-cta{
  position:fixed; left:0; right:0; bottom:0; z-index:150;
  display:flex; gap:0.6rem; padding:0.75rem 1rem;
  background:rgba(253,248,241,0.95);
  backdrop-filter:blur(14px);
  border-top:1px solid var(--border-soft);
}
.sticky-cta .btn{ flex:1; justify-content:center; padding:0.85rem 1rem; }
@media(min-width:1020px){ .sticky-cta{ display:none; } }

/* Reveal-on-scroll base state (GSAP toggles .is-in) */
.reveal{ opacity:0; transform:translateY(28px); }
.reveal.is-in{ opacity:1; transform:translateY(0); transition:opacity 0.9s var(--ease-silk), transform 0.9s var(--ease-silk); }

/* Blog / article typography */
.prose{ max-width:72ch; }
.prose h2{ margin-top:2.4em; font-size:1.9rem; }
.prose h3{ margin-top:1.9em; font-size:1.4rem; }
.prose p{ font-size:1.05rem; }
.prose ul, .prose ol{ padding-left:1.3rem; margin-bottom:1.4em; }
.prose li{ margin-bottom:0.55em; }
.prose blockquote{
  border-left:3px solid var(--rose-400);
  padding:0.4rem 0 0.4rem 1.4rem;
  margin:2rem 0;
  font-family:var(--font-display);
  font-size:1.3rem;
  color:var(--rose-700);
  font-style:italic;
}
.article-meta{ display:flex; gap:1rem; align-items:center; font-size:0.82rem; color:var(--text-muted); flex-wrap:wrap; }
.pill{ display:inline-block; padding:0.3rem 0.8rem; border-radius:999px; background:var(--rose-100); color:var(--rose-600); font-size:0.72rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; }

/* Utility */
.mt-0{ margin-top:0; } .mb-0{ margin-bottom:0; }
.flex{ display:flex; } .items-center{ align-items:center; } .justify-between{ justify-content:space-between; }
.gap-2{ gap:0.5rem;} .gap-3{ gap:0.85rem; } .gap-4{ gap:1.25rem; }
.text-muted{ color:var(--text-muted); }
.divider{ height:1px; background:var(--border-soft); margin:3rem 0; }
.badge-row{ display:flex; flex-wrap:wrap; gap:0.6rem; }
.badge{ font-size:0.78rem; padding:0.4rem 0.85rem; border-radius:999px; background:var(--white); border:1px solid var(--border-soft); color:var(--ink-700); }

::selection{ background:var(--rose-300); color:var(--ink-900); }

/* Skip link for a11y */
.skip-link{
  position:absolute; left:-999px; top:0; background:var(--rose-600); color:#fff;
  padding:0.75rem 1.25rem; z-index:999; border-radius:0 0 0.5rem 0;
}
.skip-link:focus{ left:0; }
