/*
Theme Name: Instant Zen Child
Theme URI: https://instantzen.fr
Description: Child theme for Instant Zen — MAI-inspired smooth-scroll design with Rose/Vert/Crème palette. SEO + Local Business + AI/GEO schema baked in. Editable through Elementor Free.
Author: FrenchIsNow
Author URI: https://instantzen.fr
Template: hello-elementor
Version: 1.0.0
Text Domain: instantzen-child
*/

/* ============================================================
   INSTANT ZEN — DESIGN SYSTEM
   Base: MAI (cream/brown). Extensions: Rose, Vert.
   ============================================================ */

*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

:root {
  /* — MAI BASE (kept) — */
  --cream:        #FEF9ED;
  --cream-warm:   #FBF4E5;
  --card-bg:      #F5F0E4;
  /* "brown" tokens kept for compatibility — now resolve to the Reserver-button sage */
  --brown:        #8A9A82;   /* matches --vert-500 (Reserver button base) */
  --brown-soft:   rgba(138, 154, 130, 0.82);
  --brown-faint:  rgba(138, 154, 130, 0.65);

  /* Page accent — overridden per-service via body.iz-page-{slug} below. */
  --accent:       #5C6F58;   /* default: vert-700 */
  --accent-soft:  #D6DFD0;   /* light wash of accent for backgrounds */
}
/* Per-service accent palettes — pages keep editorial variety while
   service-body accents (kickers, checkmarks, FAQ carets, link colors,
   highlight pills) all stay coherent within each page. */
body.iz-page-shiatsu                       { --accent: #B36F6A; --accent-soft: #FBE9E7; } /* rose */
body.iz-page-qi-gong                       { --accent: #5C6F58; --accent-soft: #EEF2EC; } /* vert */
body.iz-page-massage-aux-huiles            { --accent: #8C6440; --accent-soft: #F2E8D8; } /* gold */
body.iz-page-massage-visage-shiatsu-beaute { --accent: #B36F6A; --accent-soft: #FBE9E7; } /* rose */
body.iz-page-multi-sessions                { --accent: #5C6F58; --accent-soft: #EEF2EC; } /* vert */
:root {
  /* (close re-open of :root for the rest of the variable block) */
  --hero-bg:      #fbd3be;
  --gold:         #A67C52;

  /* — INSTANT ZEN EXTENSIONS — */
  /* Rose: feminine warmth, harmonizes with hero peach */
  --rose-50:  #FBE9E7;
  --rose-100: #F5CDC8;
  --rose-300: #E8B4B8;
  --rose-500: #D4948C;   /* primary rose */
  --rose-700: #B36F6A;
  --rose-ink: #8A4B47;

  /* Vert: zen sage / jade */
  --vert-50:  #EEF2EC;
  --vert-100: #D6DFD0;
  --vert-300: #A9B9A1;
  --vert-500: #8A9A82;   /* primary vert */
  --vert-700: #5C6F58;
  --vert-ink: #3E4D3A;

  /* — TYPOGRAPHY — */
  --serif: 'Playfair Display', Georgia, serif;
  --sans:  'DM Sans', system-ui, -apple-system, sans-serif;

  /* — LAYOUT — */
  --max-w: 1200px;
  --ease:  cubic-bezier(.16, 1, .3, 1);
}

html { font-size: 16px; }
body {
  font-family: var(--sans);
  background: var(--cream);
  color: var(--brown);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
img { max-width: 100%; display: block; }

/* ── LOADER ── */
.iz-loader { position: fixed; inset: 0; background: var(--cream); z-index: 9999; transition: opacity 1s var(--ease); pointer-events: none; }
.iz-loader.hide { opacity: 0; }

/* ── SCROLL REVEAL ── */
[data-reveal] { opacity: 0; transform: translateY(50px); transition: opacity 1s var(--ease), transform 1.2s var(--ease); }
[data-reveal].is-visible { opacity: 1; transform: translateY(0); }
[data-reveal="delay-1"] { transition-delay: .12s; }
[data-reveal="delay-2"] { transition-delay: .24s; }
[data-reveal="delay-3"] { transition-delay: .36s; }
[data-scale] { scale: 1.15; transition: scale 1.4s var(--ease); will-change: scale, translate; }
[data-scale].is-visible { scale: 1; }
[data-parallax] { will-change: transform; transition: transform .1s linear; }

/* ── NAV (fixed, MAI pill style) ── */
.iz-nav {
  position: fixed; top: 20px; left: 50%;
  transform: translateX(-50%);
  width: min(92%, 1100px);
  z-index: 1000;
  opacity: 0; animation: navIn .9s var(--ease) .6s forwards;
}
@keyframes navIn { from { opacity: 0; transform: translateX(-50%) translateY(-14px); } to { opacity: 1; transform: translateX(-50%) translateY(0); } }
.iz-nav-inner {
  background: var(--cream);
  border-radius: 5px;
  padding: 18px 28px;
  display: flex; align-items: center; justify-content: space-between;
  box-shadow: 0 4px 80px rgba(138, 154, 130, .18);
}
.iz-nav-left { display: flex; align-items: center; gap: 10px; font-size: .85rem; }
.iz-nav-left svg { width: 16px; height: 16px; }
.iz-nav-logo {
  font-family: var(--serif);
  font-size: 1.6rem; font-weight: 600;
  letter-spacing: .04em;
  text-decoration: none;
  color: var(--brown);
}
.iz-nav-logo .accent { color: var(--rose-500); font-style: italic; }
.iz-nav-links { display: flex; gap: 1.4em; list-style: none; font-size: .82rem; }
.iz-nav-links a { text-decoration: none; transition: opacity .3s, color .3s; color: var(--brown); }
.iz-nav-links a:hover { color: var(--rose-500); opacity: .85; }
.iz-nav-cta {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--vert-500); color: var(--cream);
  padding: 8px 16px; border-radius: 50px;
  font-size: .8rem; text-decoration: none;
  transition: background .3s var(--ease);
}
.iz-nav-cta:hover { background: var(--vert-700); }
@media (max-width: 768px) {
  .iz-nav { top: 12px; width: 94%; }
  .iz-nav-inner { padding: 14px 18px; }
  .iz-nav-links { display: none; }
  .iz-nav-left span { display: none; }
}

/* ── HERO ── */
.iz-hero {
  position: relative; width: 100%;
  height: 100vh; min-height: 600px;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
  background: var(--hero-bg);
}
.iz-hero-canvas { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; }
.iz-hero::before {
  /* legibility scrim — darker vignette under the title */
  content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    radial-gradient(ellipse at 50% 60%, rgba(0,0,0,0.22), transparent 60%),
    linear-gradient(180deg, transparent 55%, rgba(0,0,0,0.20));
}
.iz-hero::after {
  content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.04'/%3E%3C/svg%3E");
  background-repeat: repeat; background-size: 200px;
  mix-blend-mode: soft-light; opacity: .25;
}
.iz-hero-content { position: relative; z-index: 2; text-align: center; color: var(--cream); padding: 0 20px; text-shadow: 0 2px 36px rgba(0,0,0,0.22); }
.iz-hero-title {
  font-family: var(--serif);
  font-weight: 400;
  line-height: 1.05;
  font-size: clamp(3rem, 7.5vw, 6.5rem);
  margin-bottom: .4em;
}
.iz-hero-title .line { display: block; overflow: hidden; }
.iz-hero-title .line-inner { display: block; transform: translateY(115%); animation: heroSlide 1.3s var(--ease) forwards; }
.iz-hero-title .line:nth-child(1) .line-inner { animation-delay: .8s; }
.iz-hero-title .line:nth-child(2) .line-inner { animation-delay: 1s; }
.iz-hero-title .italic { font-style: italic; }
.iz-hero-subtitle {
  font-family: var(--sans);
  font-size: clamp(.95rem, 1.4vw, 1.15rem);
  font-weight: 300; letter-spacing: .03em;
  opacity: 0; animation: heroFade 1s var(--ease) 1.5s forwards;
  max-width: 560px; margin: 0 auto;
}
@keyframes heroSlide { from { transform: translateY(115%); } to { transform: translateY(0); } }
@keyframes heroFade  { from { opacity: 0; transform: translateY(18px); } to { opacity: .92; transform: translateY(0); } }
.iz-hero-scroll {
  position: absolute; bottom: 40px; left: 50%; transform: translateX(-50%);
  z-index: 3; opacity: 0; animation: heroFade 1s var(--ease) 2.2s forwards;
}
.iz-hero-scroll .scroll-line { width: 1px; height: 44px; background: rgba(254,249,237,.35); margin: 0 auto; position: relative; overflow: hidden; }
.iz-hero-scroll .scroll-line::after { content: ''; position: absolute; top: -100%; left: 0; width: 100%; height: 100%; background: var(--cream); animation: scrollPulse 2.2s ease-in-out infinite; }
@keyframes scrollPulse { 0% { top: -100%; } 50% { top: 100%; } 100% { top: 100%; } }

/* ── STATEMENT ── */
.iz-statement {
  position: relative;
  padding: clamp(80px, 15vw, 280px) 0;
  text-align: center;
  background: linear-gradient(to bottom, var(--hero-bg) 0%, var(--cream) 100%);
}
.iz-statement p {
  font-family: var(--serif);
  font-size: clamp(1.3rem, 2.3vw, 1.9rem);
  font-weight: 400; line-height: 1.5;
  max-width: 720px; margin: 0 auto;
  padding: 0 24px;
}

/* ── CARDS ── */
.iz-card-section { max-width: var(--max-w); margin: 0 auto 40px; padding: 0 20px; }
.iz-card {
  background: var(--card-bg);
  border-radius: 8px; overflow: hidden;
  padding: clamp(24px, 4vw, 60px);
  display: flex; align-items: center;
  gap: clamp(24px, 4vw, 60px);
}
.iz-card.reverse { flex-direction: row-reverse; }
.iz-card.theme-rose { background: linear-gradient(135deg, var(--rose-50), var(--rose-100)); }
.iz-card.theme-vert { background: linear-gradient(135deg, var(--vert-50), var(--vert-100)); }
.iz-card-img {
  flex: 0 0 45%;
  aspect-ratio: 1 / 1;
  border-radius: 8px;
  overflow: hidden;
  background: transparent;  /* lets the card's gradient show during reveal/load — no beige flash */
}
.iz-card-img-inner { width: 100%; height: 100%; display: block; }
.iz-card-img-inner img { width: 100%; height: 100%; object-fit: cover; display: block; }
.iz-card-text { flex: 1; }
.iz-card-text h2 {
  font-family: var(--serif);
  font-size: clamp(1.5rem, 2.6vw, 2.1rem);
  font-weight: 400;
  margin-bottom: .6em;
  color: var(--brown);
}
.iz-card-text p {
  font-family: var(--sans);
  font-size: clamp(.9rem, 1.05vw, 1rem);
  line-height: 1.7;
  color: var(--brown-soft);
  margin-bottom: 1em;
}
.iz-card-text p:last-child { margin-bottom: 0; }
@media (max-width: 768px) {
  .iz-card, .iz-card.reverse { flex-direction: column; padding: 22px; }
  .iz-card-img { flex: none; width: 100%; }
}

/* ── MODELS / SOINS GRID ── */
.iz-models { text-align: center; padding: clamp(80px, 12vw, 190px) 20px; }
.iz-models h2 {
  font-family: var(--serif);
  font-size: clamp(1.9rem, 3.5vw, 3rem);
  font-weight: 400;
  margin-bottom: clamp(30px, 4vw, 50px);
  color: var(--brown);
}
.iz-models-grid {
  max-width: var(--max-w);
  margin: 0 auto clamp(40px, 5vw, 80px);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(16px, 2vw, 26px);
}
.iz-model-card {
  border-radius: 10px;
  padding: clamp(20px, 2vw, 30px);
  display: flex; align-items: center;
  gap: clamp(14px, 1.5vw, 20px);
  color: var(--cream); text-align: left;
  cursor: pointer;
  transition: filter .4s var(--ease), transform .4s var(--ease);
  text-decoration: none;
}
.iz-model-card:hover { filter: brightness(.9); transform: translateY(-2px); }
/* Original MAI 4 colors kept for design coherence */
.iz-model-card.c1 { background: var(--rose-700); }   /* Shiatsu — rose deep */
.iz-model-card.c2 { background: var(--vert-700); }   /* Qi Gong — vert deep */
.iz-model-card.c3 { background: var(--gold); }       /* Massages — or */
.iz-model-card.c4 { background: var(--brown); }      /* Beauté — brown */
.iz-model-icon {
  width: clamp(48px, 5vw, 70px); height: clamp(48px, 5vw, 70px);
  border-radius: 10px;
  background: rgba(255,255,255,.12);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.iz-model-icon svg { width: 50%; height: 50%; stroke: var(--cream); fill: none; }

/* Photo thumbnails inside the soin cards */
.iz-model-img {
  width: clamp(82px, 9vw, 110px);
  height: clamp(82px, 9vw, 110px);
  border-radius: 10px;
  overflow: hidden;
  flex-shrink: 0;
  background: rgba(0,0,0,0.15);
  isolation: isolate;
}
.iz-model-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  filter: brightness(0.97) saturate(1.05);
  transition: transform 0.7s var(--ease), filter 0.5s var(--ease);
}
.iz-model-card:hover .iz-model-img img { transform: scale(1.08); filter: brightness(1.05) saturate(1.15); }
.iz-model-link { text-decoration: underline; }
.iz-model-info h3 {
  font-family: var(--sans);
  font-size: clamp(.95rem, 1.1vw, 1.05rem);
  font-weight: 500;
  margin-bottom: .3em;
}
.iz-model-info p { font-size: clamp(.78rem, .88vw, .85rem); line-height: 1.55; opacity: .8; }
.iz-model-info a { text-decoration: underline; opacity: 1; }
@media (max-width: 768px) { .iz-models-grid { grid-template-columns: 1fr; } }

/* ── BUTTONS ── */
.iz-btn {
  display: inline-flex; align-items: center;
  gap: 8px;
  background: var(--brown); color: var(--cream);
  border: none;
  padding: 14px 28px;
  border-radius: 50px;
  font-family: var(--sans);
  font-size: .95rem;
  cursor: pointer;
  text-decoration: none;
  transition: all .35s var(--ease);
}
.iz-btn:hover { opacity: .9; transform: translateY(-2px); }
.iz-btn .arrow {
  display: flex; align-items: center; justify-content: center;
  width: 36px; height: 36px;
  border-radius: 50%;
  background: rgba(254,249,237,.15);
}
.iz-btn.rose  { background: var(--rose-500); }
.iz-btn.rose:hover  { background: var(--rose-700); }
.iz-btn.vert  { background: var(--vert-500); }
.iz-btn.vert:hover  { background: var(--vert-700); }
.iz-btn.gold  { background: var(--gold); }

/* ── PRODUCTS / TABS (massages, programmes…) ── */
.iz-products { text-align: center; padding: clamp(60px, 10vw, 120px) 20px clamp(80px, 14vw, 230px); }
.iz-products h2 {
  font-family: var(--serif);
  font-size: clamp(2rem, 4.5vw, 4rem);
  font-weight: 400;
  margin-bottom: .5em;
  line-height: 1.1;
  color: var(--brown);
}
.iz-products > p {
  max-width: 660px; margin: 0 auto clamp(30px, 5vw, 76px);
  font-size: clamp(.88rem, 1vw, .98rem);
  line-height: 1.7;
  color: var(--brown-faint);
}
.iz-tab-bar {
  display: inline-flex; padding: 10px;
  background: #F7ECD9;
  border-radius: 80px;
  margin-bottom: clamp(40px, 5vw, 70px);
  flex-wrap: wrap;
}
.iz-tab-btn {
  padding: 12px clamp(20px, 3vw, 40px);
  border: none;
  border-radius: 80px;
  background: transparent;
  font-family: var(--sans);
  font-size: clamp(.8rem, .95vw, .92rem);
  cursor: pointer;
  transition: all .35s var(--ease);
  color: var(--brown);
}
.iz-tab-btn.active { background: var(--cream); color: var(--accent); font-weight: 500; box-shadow: 0 2px 12px rgba(0,0,0,0.06); }
.iz-tab-content { max-width: 820px; margin: 0 auto; position: relative; overflow: hidden; }
.iz-tab-panel { display: none; animation: tabIn .6s var(--ease); }
.iz-tab-panel.active { display: block; }
@keyframes tabIn { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
.iz-tab-img {
  width: 100%; aspect-ratio: 16/9;
  border-radius: 8px;
  overflow: hidden;
  margin-bottom: clamp(24px, 4vw, 50px);
  position: relative;
  background: var(--card-bg); /* fallback while image loads */
  isolation: isolate;
}
.iz-tab-img > img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  z-index: 0;
  filter: brightness(0.92) saturate(1.05);
}
.iz-tab-img::after {
  content: ''; position: absolute; inset: 0; z-index: 1;
  pointer-events: none;
  /* per-tab tint overlay applied via tinted gradient stops below */
  background:
    radial-gradient(ellipse at 50% 60%, rgba(0,0,0,0.20), transparent 65%),
    linear-gradient(180deg, transparent 35%, rgba(0,0,0,0.45));
  mix-blend-mode: normal;
}
.iz-tab-img-inner {
  position: relative; z-index: 2;
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--serif);
  font-size: clamp(1.6rem, 3.5vw, 3rem);
  color: var(--cream); font-weight: 500;
  text-shadow: 0 2px 30px rgba(0,0,0,.4);
  letter-spacing: 0.005em;
  text-align: center;
  padding: 0 1em;
}
/* Per-tab color washes — sit over the image as a tint */
.iz-tab-img.rose::after  { background: linear-gradient(135deg, rgba(212,148,140,0.40), rgba(138,75,71,0.55)), linear-gradient(180deg, transparent 40%, rgba(0,0,0,0.35)); }
.iz-tab-img.vert::after  { background: linear-gradient(135deg, rgba(138,154,130,0.40), rgba(138, 154, 130,0.55)), linear-gradient(180deg, transparent 40%, rgba(0,0,0,0.35)); }
.iz-tab-img.gold::after  { background: linear-gradient(135deg, rgba(166,124,82,0.40), rgba(78,55,34,0.55)), linear-gradient(180deg, transparent 40%, rgba(0,0,0,0.35)); }
.iz-tab-img.peach::after { background: linear-gradient(135deg, rgba(232,164,184,0.35), rgba(140,92,80,0.50)), linear-gradient(180deg, transparent 40%, rgba(0,0,0,0.35)); }
/* Gentle hover zoom */
.iz-tab-panel.active .iz-tab-img > img { transition: transform 6s var(--ease); transform: scale(1.02); }
.iz-tab-panel p { font-size: clamp(.88rem, 1vw, .98rem); line-height: 1.7; color: var(--brown-soft); }

/* ── CEO QUOTE / PRACTITIONER ── */
.iz-ceo {
  background: linear-gradient(to bottom right, var(--rose-300), var(--hero-bg));
  position: relative; overflow: hidden;
}
.iz-ceo::after {
  content: ''; position: absolute; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.04'/%3E%3C/svg%3E");
  mix-blend-mode: soft-light; opacity: .15; pointer-events: none;
}
.iz-ceo-inner {
  max-width: var(--max-w); margin: 0 auto;
  position: relative; z-index: 1;
  display: flex; align-items: center;
}
.iz-ceo-img { flex: 0 0 38%; }
.iz-ceo-placeholder {
  width: 100%; aspect-ratio: 3/4;
  background: linear-gradient(160deg, #c8a88a, #b8947a 50%, #a07060);
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
.iz-ceo-placeholder img { width: 100%; height: 100%; object-fit: cover; }
.iz-ceo-text { flex: 1; padding: clamp(40px, 5vw, 80px) clamp(20px, 3vw, 40px); }
.iz-ceo-text blockquote {
  font-family: var(--serif);
  font-size: clamp(1.05rem, 1.7vw, 1.45rem);
  line-height: 1.55;
  margin-bottom: clamp(30px, 4vw, 60px);
  color: var(--brown);
}
.iz-ceo-text .sig {
  font-family: 'Brush Script MT', 'Segoe Script', cursive;
  font-size: clamp(2rem, 3vw, 2.8rem);
  margin-bottom: 12px;
  color: var(--rose-700); opacity: .8;
}
.iz-ceo-text .name {
  font-family: var(--sans);
  font-size: .85rem;
  color: var(--brown-faint);
  letter-spacing: .02em;
}
@media (max-width: 768px) {
  .iz-ceo-inner { flex-direction: column-reverse; }
  .iz-ceo-img { flex: none; width: 100%; }
}

/* ── JOIN / CTA ── */
.iz-join {
  background: var(--cream-warm);
  padding: clamp(60px, 6vw, 80px) 20px;
}
.iz-join-inner {
  max-width: 620px;
  margin: 0 auto 0 clamp(40px, 15vw, 260px);
}
.iz-join h2 {
  font-family: var(--serif);
  font-size: clamp(1.6rem, 2.5vw, 2.2rem);
  font-weight: 400;
  margin-bottom: clamp(30px, 4vw, 57px);
  color: var(--brown);
}
.iz-join p {
  font-size: clamp(.9rem, 1vw, 1rem);
  line-height: 1.7;
  color: var(--brown-soft);
  margin-bottom: clamp(20px, 3vw, 30px);
}
@media (max-width: 768px) { .iz-join-inner { margin-left: 20px; } }

/* ── FOOTER ── */
.iz-footer {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: clamp(60px, 8vw, 105px) 20px clamp(20px, 2vw, 27px);
  display: flex; flex-wrap: wrap;
  gap: clamp(20px, 3vw, 40px);
  font-size: .82rem;
  line-height: 1.7;
  color: var(--brown-faint);
}
.iz-footer a { text-decoration: none; transition: opacity .3s, color .3s; }
.iz-footer a:hover { color: var(--rose-500); }
.iz-footer .f-logo { flex: 0 0 200px; }
.iz-footer .f-logo .brand {
  font-family: var(--serif);
  font-size: 1.6rem;
  color: var(--brown);
  margin-bottom: .3em;
  display: block;
}
.iz-footer .f-logo .brand .accent { color: var(--rose-500); font-style: italic; }
.iz-footer .f-logo p { font-size: .78rem; color: var(--brown-faint); }
.iz-footer .f-col { flex: 1; min-width: 140px; }
.iz-footer .f-col h4 { font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 10px; color: var(--brown); }
.iz-footer .f-col ul { list-style: none; }
.iz-footer .f-col li { margin-bottom: 4px; }
.iz-footer .f-copy {
  width: 100%;
  margin-top: clamp(30px, 4vw, 60px);
  font-size: .72rem;
  border-top: 1px solid rgba(138, 154, 130,.08);
  padding-top: 20px;
}
@media (max-width: 768px) {
  .iz-footer { flex-direction: column; gap: 24px; }
  .iz-footer .f-logo { flex: none; }
}

/* ── A11Y PILL ── */
.iz-a11y {
  position: fixed; bottom: 27px; left: 27px;
  z-index: 100;
  display: flex; align-items: center; gap: 8px;
  background: var(--cream);
  padding: 4px 15px 4px 5px;
  border-radius: 50px;
  box-shadow: 0 4px 40px rgba(138, 154, 130,.3);
  font-size: .72rem;
  opacity: 0;
  animation: heroFade .8s ease 2.5s forwards;
  cursor: pointer;
}
.iz-a11y .pill { width: 47px; height: 26px; background: #F7ECD9; border-radius: 50px; text-align: center; line-height: 26px; font-size: .65rem; transition: background .3s; }
.iz-a11y.active .pill { background: var(--vert-300); }
@media (max-width: 768px) { .iz-a11y { display: none; } }

/* ── ELEMENTOR OVERRIDES ──
   Map Elementor's default classes onto our design system.
   When user edits in Elementor, classes written in widgets above auto-style.
*/
.elementor-widget-heading h1.elementor-heading-title,
.elementor-widget-heading h2.elementor-heading-title,
.elementor-widget-heading h3.elementor-heading-title { font-family: var(--serif); color: var(--brown); font-weight: 400; }

.elementor-widget-text-editor { font-family: var(--sans); color: var(--brown-soft); line-height: 1.7; }

.elementor-widget-button .elementor-button {
  font-family: var(--sans);
  border-radius: 50px;
  padding: 14px 28px;
  background: var(--brown);
  color: var(--cream);
  transition: all .35s var(--ease);
}
.elementor-widget-button .elementor-button:hover { opacity: .9; transform: translateY(-2px); }

/* Elementor section presets via custom CSS class */
.iz-section-cream  { background: var(--cream); }
.iz-section-rose   { background: linear-gradient(135deg, var(--rose-50), var(--rose-100)); }
.iz-section-vert   { background: linear-gradient(135deg, var(--vert-50), var(--vert-100)); }
.iz-section-warm   { background: var(--cream-warm); }
.iz-section-peach  { background: var(--hero-bg); }

/* ── ACCESSIBILITY MODE (toggled by JS .iz-a11y.active on body) ── */
body.iz-a11y-on { font-size: 18px; }
body.iz-a11y-on [data-reveal],
body.iz-a11y-on [data-scale] { opacity: 1 !important; transform: none !important; scale: 1 !important; translate: 0 0 !important; }
body.iz-a11y-on .iz-loader { display: none; }

/* ── SR-ONLY ── */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* ── PRINT ── */
@media print {
  .iz-nav, .iz-loader, .iz-a11y, .iz-hero-canvas, .iz-hero-scroll { display: none !important; }
  body { background: white; color: black; }
}

/* ============================================================
   SERVICE PAGES — sales funnel sections
   ============================================================ */

.iz-svc-inner { max-width: var(--max-w); margin: 0 auto; padding: 0 20px; }
.iz-svc-inner-narrow { max-width: 800px; }

/* HERO (per service, with palette tint) */
.iz-svc-hero {
  position: relative; width: 100%;
  min-height: 88vh;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
  padding: 100px 20px 80px;
  text-align: center;
}
/* Darker, editorial gradients — cream text now hits WCAG AA contrast */
.iz-svc-palette-rose { background: linear-gradient(160deg, #C97A6E 0%, #A85657 55%, #6E3A3F 100%); }
.iz-svc-palette-vert { background: linear-gradient(160deg, #6F8569 0%, #4F6B4D 55%, #2E4234 100%); }
.iz-svc-palette-gold { background: linear-gradient(160deg, #B88A5E 0%, #8C6440 55%, #4F3722 100%); }
.iz-svc-hero::before {
  /* darkening scrim from bottom for CTA legibility */
  content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    radial-gradient(ellipse at 50% 75%, rgba(0,0,0,0.18), transparent 65%),
    linear-gradient(180deg, transparent 55%, rgba(0,0,0,0.20));
}
.iz-svc-hero::after {
  content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.05'/%3E%3C/svg%3E");
  mix-blend-mode: soft-light; opacity: .3;
}
.iz-svc-hero-content { position: relative; z-index: 2; max-width: 820px; color: var(--cream); text-shadow: 0 2px 30px rgba(0,0,0,0.18); }
.iz-svc-palette-rose .iz-svc-hero-content,
.iz-svc-palette-vert .iz-svc-hero-content,
.iz-svc-palette-gold .iz-svc-hero-content { color: var(--cream); }
.iz-svc-kicker {
  font-family: var(--sans);
  text-transform: uppercase;
  letter-spacing: .15em;
  font-size: .78rem;
  margin-bottom: 1.6em;
  opacity: .85;
}
.iz-svc-hero .iz-hero-title { font-size: clamp(2.6rem, 6.5vw, 5.5rem); margin-bottom: .35em; }
.iz-svc-hero .iz-hero-subtitle { max-width: 600px; margin: 0 auto 2em; }
.iz-svc-hero-cta { margin-top: 1em; opacity: 0; animation: heroFade 1s var(--ease) 1.8s forwards; }

/* PROBLEM */
.iz-svc-problem { padding: clamp(80px, 10vw, 140px) 0 clamp(60px, 8vw, 100px); text-align: center; }
.iz-svc-problem h2 {
  font-family: var(--serif);
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  font-weight: 400; margin-bottom: clamp(30px, 4vw, 50px);
  color: var(--brown);
}
.iz-svc-pain-list {
  list-style: none;
  max-width: 720px; margin: 0 auto;
  display: grid; gap: 14px;
}
.iz-svc-pain-list li {
  display: flex; align-items: flex-start; gap: 14px;
  padding: 18px 24px;
  background: var(--card-bg); border-radius: 10px;
  text-align: left;
  font-size: clamp(.95rem, 1.05vw, 1.05rem);
  line-height: 1.55;
  color: var(--brown);
}
.iz-svc-pain-list .check { flex-shrink: 0; color: var(--accent); margin-top: 2px; }

/* SOLUTION */
.iz-svc-solution { padding: clamp(80px, 12vw, 160px) 0; }
.iz-svc-solution h2 {
  font-family: var(--serif);
  font-size: clamp(2rem, 3.5vw, 3rem);
  font-weight: 400; margin-bottom: .6em;
  text-align: center;
  color: var(--brown);
}
.iz-svc-lede {
  max-width: 760px; margin: 0 auto;
  font-family: var(--serif);
  font-size: clamp(1.05rem, 1.4vw, 1.3rem);
  line-height: 1.6;
  text-align: center;
  color: var(--brown);
}

/* PROCESS — 3 steps */
.iz-svc-process { padding: clamp(80px, 10vw, 140px) 0; text-align: center; }
.iz-svc-process h2 {
  font-family: var(--serif);
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  font-weight: 400; margin-bottom: clamp(40px, 5vw, 70px);
  color: var(--brown);
}
.iz-svc-steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: clamp(20px, 3vw, 40px);
  max-width: 1100px; margin: 0 auto;
}
.iz-svc-step {
  background: var(--card-bg);
  padding: clamp(28px, 3vw, 40px);
  border-radius: 12px;
  text-align: left;
}
.iz-svc-step-num {
  font-family: var(--serif);
  font-size: 2.4rem;
  color: var(--accent);
  margin-bottom: .3em;
  font-weight: 500;
}
.iz-svc-step h3 {
  font-family: var(--serif);
  font-size: 1.25rem;
  font-weight: 500;
  margin-bottom: .6em;
  color: var(--brown);
}
.iz-svc-step p {
  font-size: .95rem;
  line-height: 1.65;
  color: var(--brown-soft);
}

/* BENEFITS grid */
.iz-svc-benefits { padding: clamp(80px, 10vw, 140px) 0; background: var(--cream-warm); text-align: center; }
.iz-svc-benefits h2 {
  font-family: var(--serif);
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  font-weight: 400; margin-bottom: clamp(40px, 5vw, 70px);
  color: var(--brown);
}
.iz-svc-benefits-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: clamp(20px, 2.5vw, 32px);
  max-width: 1100px; margin: 0 auto;
}
.iz-svc-benefit {
  background: var(--cream);
  padding: clamp(24px, 3vw, 36px);
  border-radius: 12px;
  text-align: left;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.iz-svc-benefit:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(138, 154, 130,.08); }
.iz-svc-benefit-icon {
  width: 56px; height: 56px;
  border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  background: var(--accent-soft);
  color: var(--accent);
  margin-bottom: 1em;
}
.iz-svc-benefit h3 {
  font-family: var(--serif);
  font-size: 1.15rem;
  font-weight: 500;
  margin-bottom: .4em;
  color: var(--brown);
}
.iz-svc-benefit p {
  font-size: .92rem;
  line-height: 1.55;
  color: var(--brown-soft);
}

/* PRICING */
.iz-svc-pricing { padding: clamp(80px, 10vw, 140px) 0; text-align: center; }
.iz-svc-pricing h2 {
  font-family: var(--serif);
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  font-weight: 400; margin-bottom: clamp(40px, 5vw, 70px);
  color: var(--brown);
}
.iz-svc-pricing-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: clamp(20px, 2.5vw, 30px);
  max-width: 1100px; margin: 0 auto;
}
.iz-svc-pricing-grid[data-cols="1"] { grid-template-columns: 1fr; max-width: 500px; }
.iz-svc-pricing-grid[data-cols="2"] { grid-template-columns: repeat(2, 1fr); max-width: 750px; }
.iz-svc-price {
  background: var(--cream);
  border: 1px solid rgba(138, 154, 130,.08);
  border-radius: 14px;
  padding: clamp(28px, 3vw, 40px) clamp(24px, 2.5vw, 32px);
  text-align: center;
  position: relative;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.iz-svc-price:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(138, 154, 130,.1); }
.iz-svc-price.highlight {
  background: linear-gradient(160deg, var(--cream), var(--accent-soft));
  border-color: var(--accent);
  transform: scale(1.04);
}
.iz-svc-price-tag {
  position: absolute; top: -12px; left: 50%;
  transform: translateX(-50%);
  background: var(--accent);
  color: var(--cream);
  padding: 4px 16px;
  font-size: .72rem;
  border-radius: 50px;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.iz-svc-price h3 {
  font-family: var(--serif);
  font-size: 1.2rem;
  font-weight: 500;
  margin-bottom: .8em;
  color: var(--brown);
}
.iz-svc-price-amount {
  font-family: var(--serif);
  font-size: clamp(2.2rem, 3.5vw, 3rem);
  font-weight: 500;
  color: var(--brown);
  margin-bottom: .4em;
  line-height: 1;
}
.iz-svc-price p {
  font-size: .9rem;
  line-height: 1.55;
  color: var(--brown-soft);
  margin-bottom: 1.5em;
  min-height: 3em;
}

/* TRUST (mutuelles + disclaimer) */
.iz-svc-trust { padding: clamp(60px, 8vw, 100px) 0; background: var(--card-bg); }
.iz-svc-trust-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: clamp(20px, 3vw, 40px);
  max-width: 1000px; margin: 0 auto;
}
.iz-svc-trust-card {
  background: var(--cream);
  padding: clamp(24px, 3vw, 36px);
  border-radius: 12px;
}
.iz-svc-trust-card h3 {
  font-family: var(--sans);
  font-size: 1.05rem;
  font-weight: 500;
  margin-bottom: .8em;
  color: var(--brown);
}
.iz-svc-trust-card p {
  font-size: .9rem;
  line-height: 1.65;
  color: var(--brown-soft);
}
.iz-svc-trust-card a { color: var(--accent); text-decoration: underline; }

/* FAQ */
.iz-svc-faq { padding: clamp(80px, 10vw, 140px) 0; background: var(--cream); }
.iz-svc-faq h2 {
  font-family: var(--serif);
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  font-weight: 400;
  text-align: center;
  margin-bottom: clamp(40px, 5vw, 60px);
  color: var(--brown);
}
.iz-svc-faq-list { display: grid; gap: 12px; }
.iz-svc-faq-item {
  background: var(--card-bg);
  border-radius: 10px;
  overflow: hidden;
  transition: background .3s;
}
.iz-svc-faq-item[open] { background: var(--rose-50); }
.iz-svc-faq-item summary {
  padding: 20px 24px;
  font-family: var(--sans);
  font-size: 1rem;
  font-weight: 500;
  cursor: pointer;
  list-style: none;
  display: flex; justify-content: space-between; align-items: center;
  color: var(--brown);
}
.iz-svc-faq-item summary::-webkit-details-marker { display: none; }
.iz-svc-faq-item summary::after {
  content: '+';
  font-size: 1.4rem;
  font-weight: 300;
  color: var(--accent);
  transition: transform .3s;
}
.iz-svc-faq-item[open] summary::after { content: '−'; }
.iz-svc-faq-a {
  padding: 0 24px 22px;
  font-size: .95rem;
  line-height: 1.65;
  color: var(--brown-soft);
}
.iz-svc-faq-a a { color: var(--accent); text-decoration: underline; }

/* FINAL CTA — wider centered version */
.iz-svc-final .iz-join-inner {
  margin: 0 auto !important;
  text-align: center;
}

/* TESTIMONIAL section adjust */
.iz-svc-testimonial { background: linear-gradient(135deg, var(--accent-soft), var(--cream-warm)); }

/* ── GHOST BUTTON (secondary CTA, e.g. phone) ── */
.iz-btn-ghost {
  display: inline-flex; align-items: center; gap: 8px;
  background: transparent;
  color: var(--brown);
  border: 1px solid rgba(138, 154, 130,.2);
  padding: 13px 24px;
  border-radius: 50px;
  font-family: var(--sans);
  font-size: .92rem;
  text-decoration: none;
  transition: all .35s var(--ease);
}
.iz-btn-ghost:hover { background: rgba(138, 154, 130,.06); transform: translateY(-2px); }
.iz-svc-palette-rose .iz-btn-ghost,
.iz-svc-palette-vert .iz-btn-ghost,
.iz-svc-palette-gold .iz-btn-ghost {
  color: var(--cream);
  border-color: rgba(254,249,237,.4);
}
.iz-svc-palette-rose .iz-btn-ghost:hover,
.iz-svc-palette-vert .iz-btn-ghost:hover,
.iz-svc-palette-gold .iz-btn-ghost:hover { background: rgba(254,249,237,.1); }

/* Hero CTA stack */
.iz-svc-hero-cta {
  display: inline-flex; gap: 14px; flex-wrap: wrap; justify-content: center;
}

/* ── SOCIAL PROOF BAR ── */
.iz-svc-proof {
  background: var(--brown);
  color: var(--cream);
  padding: clamp(36px, 5vw, 56px) 20px;
}
.iz-svc-proof-inner {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(20px, 3vw, 40px);
  text-align: center;
}
.iz-svc-proof-num {
  font-family: var(--serif);
  font-size: clamp(2rem, 3.5vw, 3.2rem);
  font-weight: 500;
  margin-bottom: .15em;
  color: var(--cream);   /* proof numbers stay cream — never pink */
}
.iz-svc-proof-label {
  font-family: var(--sans);
  font-size: clamp(.78rem, .9vw, .9rem);
  opacity: .85;
  letter-spacing: .04em;
}
@media (max-width: 720px) { .iz-svc-proof-inner { grid-template-columns: repeat(2, 1fr); gap: 28px; } }

/* ── ABOUT AMANDINE ── */
.iz-svc-about { padding: clamp(80px, 10vw, 140px) 0; }
.iz-svc-about-inner {
  display: flex; align-items: flex-start;
  gap: clamp(30px, 5vw, 80px);
}
.iz-svc-about-img {
  flex: 0 0 38%;
  aspect-ratio: 3/4;
  border-radius: 12px;
  overflow: hidden;
  background: var(--card-bg);
}
.iz-svc-about-img-inner {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(160deg, var(--rose-300), var(--rose-500), var(--rose-700));
  overflow: hidden;
}
.iz-svc-about-img-inner svg {
  width: 50%; opacity: .2; fill: var(--cream);
}
.iz-svc-about-img-inner img {
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.iz-svc-about-text { flex: 1; }
.iz-svc-about-text h2 {
  font-family: var(--serif);
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  font-weight: 400;
  margin: .15em 0 .15em;
  color: var(--brown);
}
.iz-svc-about-role {
  font-family: var(--sans);
  font-size: 1rem;
  color: var(--brown-soft);
  margin-bottom: 1.4em;
  font-style: italic;
}
.iz-svc-about-bio { margin-bottom: 1.5em; }
.iz-svc-about-bio p {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--brown-soft);
  margin-bottom: 1em;
}
.iz-svc-credentials {
  list-style: none;
  display: grid;
  gap: 10px;
}
.iz-svc-credentials li {
  display: flex; align-items: center; gap: 12px;
  font-size: .92rem;
  color: var(--brown);
}
.iz-svc-credentials svg { color: var(--vert-500); flex-shrink: 0; }
@media (max-width: 768px) {
  .iz-svc-about-inner { flex-direction: column; }
  .iz-svc-about-img { flex: none; width: 100%; max-width: 320px; margin: 0 auto; }
}

/* ── MID-PAGE CTA BANNERS ── */
.iz-svc-mid-cta { padding: clamp(60px, 7vw, 100px) 0; }
.iz-svc-mid-cta-inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: clamp(24px, 4vw, 60px);
  flex-wrap: wrap;
}
.iz-svc-mid-cta-inner > div:first-child { flex: 1; min-width: 280px; }
.iz-svc-mid-cta h3 {
  font-family: var(--serif);
  font-size: clamp(1.6rem, 2.6vw, 2.2rem);
  font-weight: 400;
  margin-bottom: .4em;
  color: var(--brown);
}
.iz-svc-mid-cta p {
  font-size: clamp(.95rem, 1.05vw, 1.05rem);
  line-height: 1.6;
  color: var(--brown-soft);
}
.iz-svc-mid-cta-btns {
  display: flex; gap: 14px; flex-wrap: wrap;
}

/* ── COMPARISON TABLE ── */
.iz-svc-compare { padding: clamp(80px, 10vw, 140px) 0; background: var(--cream-warm); }
.iz-svc-compare h2 {
  font-family: var(--serif);
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  font-weight: 400;
  text-align: center;
  margin-bottom: .4em;
  color: var(--brown);
}
.iz-svc-compare-lede {
  text-align: center;
  max-width: 620px;
  margin: 0 auto clamp(40px, 5vw, 60px);
  font-size: 1rem;
  line-height: 1.65;
  color: var(--brown-soft);
}
.iz-svc-compare-wrap { overflow-x: auto; max-width: 1100px; margin: 0 auto; }
.iz-svc-compare-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: var(--cream);
  border-radius: 12px;
  overflow: hidden;
  font-size: .9rem;
  min-width: 620px;
}
.iz-svc-compare-table th,
.iz-svc-compare-table td {
  padding: 16px 18px;
  text-align: left;
  border-bottom: 1px solid rgba(138, 154, 130,.06);
  vertical-align: top;
}
.iz-svc-compare-table thead th {
  font-family: var(--sans);
  font-weight: 500;
  font-size: .82rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--brown-soft);
  background: var(--card-bg);
}
.iz-svc-compare-table .iz-svc-compare-cri { font-weight: 500; color: var(--brown); width: 22%; }
.iz-svc-compare-table .iz-svc-compare-us { background: var(--rose-50); color: var(--brown); font-weight: 500; }
.iz-svc-compare-table thead .iz-svc-compare-us { background: var(--accent); color: var(--cream); }
.iz-svc-compare-table tbody tr:last-child td { border-bottom: 0; }

/* ── EXTRA TESTIMONIALS ── */
.iz-svc-testimonials-extra { padding: clamp(80px, 10vw, 140px) 0; }
.iz-svc-testimonials-extra h2 {
  font-family: var(--serif);
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  font-weight: 400;
  text-align: center;
  margin-bottom: clamp(40px, 5vw, 60px);
  color: var(--brown);
}
.iz-svc-testimonials-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: clamp(20px, 2.5vw, 32px);
  max-width: 1100px; margin: 0 auto;
}
.iz-svc-tcard {
  background: var(--card-bg);
  padding: clamp(24px, 3vw, 32px);
  border-radius: 12px;
  display: flex; flex-direction: column;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.iz-svc-tcard:hover { transform: translateY(-3px); box-shadow: 0 12px 40px rgba(138, 154, 130,.08); }
.iz-svc-tcard-stars {
  display: flex; gap: 3px; color: var(--gold); margin-bottom: 1em;
}
.iz-svc-tcard blockquote {
  font-family: var(--serif);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--brown);
  margin-bottom: 1em;
  flex: 1;
  font-style: italic;
}
.iz-svc-tcard-author {
  font-family: var(--sans);
  font-size: .9rem;
  font-weight: 500;
  color: var(--brown);
  margin-bottom: 4px;
}
.iz-svc-tcard-context {
  font-size: .78rem;
  color: var(--brown-faint);
  font-style: italic;
}
.iz-svc-tcard-more { text-align: center; margin-top: clamp(30px, 4vw, 50px); }

/* ── GUARANTEE / RISK REVERSAL ── */
.iz-svc-guarantee {
  padding: clamp(80px, 10vw, 140px) 0;
  background: linear-gradient(135deg, var(--vert-50), var(--cream-warm));
  text-align: center;
}
.iz-svc-guarantee-inner { max-width: 900px; margin: 0 auto; padding: 0 20px; }
.iz-svc-guarantee h2 {
  font-family: var(--serif);
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  font-weight: 400;
  margin: .3em 0 .6em;
  color: var(--brown);
}
.iz-svc-guarantee-body {
  max-width: 680px; margin: 0 auto clamp(40px, 5vw, 60px);
  font-size: 1.05rem;
  line-height: 1.7;
  color: var(--brown-soft);
}
.iz-svc-guarantee-badges {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: clamp(20px, 3vw, 32px);
  max-width: 900px; margin: 0 auto;
}
.iz-svc-gb {
  background: var(--cream);
  padding: clamp(24px, 3vw, 32px);
  border-radius: 12px;
  text-align: center;
}
.iz-svc-gb-icon {
  width: 60px; height: 60px;
  border-radius: 50%;
  background: var(--vert-100);
  color: var(--vert-700);
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 1em;
}
.iz-svc-gb h4 {
  font-family: var(--serif);
  font-size: 1.05rem;
  font-weight: 500;
  margin-bottom: .4em;
  color: var(--brown);
}
.iz-svc-gb p {
  font-size: .85rem;
  line-height: 1.55;
  color: var(--brown-soft);
}

/* ── URGENCY ── */
.iz-svc-urgency {
  padding: clamp(60px, 8vw, 100px) 0;
  background: var(--brown);
  color: var(--cream);
  text-align: center;
}
.iz-svc-urgency-inner { max-width: 720px; margin: 0 auto; padding: 0 20px; }
.iz-svc-urgency-icon { color: var(--accent-soft); margin-bottom: 1em; }
.iz-svc-urgency h3 {
  font-family: var(--serif);
  font-size: clamp(1.6rem, 2.6vw, 2.2rem);
  font-weight: 400;
  margin-bottom: .6em;
}
.iz-svc-urgency p {
  font-size: 1rem;
  line-height: 1.7;
  opacity: .9;
  margin-bottom: 2em;
}
.iz-svc-urgency .iz-btn { background: var(--accent); }
.iz-svc-urgency .iz-btn:hover { background: var(--accent); filter: brightness(0.88); }

/* Final CTA buttons stack */
.iz-svc-final-btns { display: flex; gap: 14px; flex-wrap: wrap; justify-content: center; }
.iz-svc-final .iz-join-inner { text-align: center; }

/* ── STICKY DESKTOP CTA ── */
.iz-sticky-cta {
  position: fixed; bottom: 0; left: 0; right: 0;
  z-index: 999;
  background: var(--cream);
  box-shadow: 0 -4px 30px rgba(138, 154, 130,.12);
  padding: 14px 20px;
  transform: translateY(100%);
  transition: transform .45s var(--ease);
  pointer-events: none;
}
.iz-sticky-cta.is-visible { transform: translateY(0); pointer-events: auto; }
.iz-sticky-cta-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.iz-sticky-cta-text {
  display: flex; flex-direction: column; gap: 2px;
}
.iz-sticky-cta-text strong {
  font-family: var(--serif);
  font-size: 1.05rem;
  color: var(--brown);
}
.iz-sticky-cta-text span {
  font-size: .8rem;
  color: var(--brown-faint);
}
.iz-sticky-cta-tel { font-size: .88rem; padding: 10px 18px; }
@media (max-width: 768px) {
  .iz-sticky-cta { display: none; } /* mobile uses floating CTA below */
}

/* ── ABOUT page TIMELINE ── */
.iz-about-journey {
  padding: clamp(80px, 10vw, 140px) 0;
  background: var(--cream);
}
.iz-about-journey h2 {
  font-family: var(--serif);
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  font-weight: 400;
  text-align: center;
  margin-bottom: clamp(40px, 5vw, 70px);
  color: var(--brown);
}
.iz-about-timeline {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: clamp(20px, 2.5vw, 32px);
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
}
.iz-about-step {
  background: var(--card-bg);
  padding: clamp(24px, 3vw, 32px);
  border-radius: 12px;
  position: relative;
  border-top: 3px solid var(--rose-500);
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.iz-about-step:nth-child(2) { border-top-color: var(--vert-500); }
.iz-about-step:nth-child(3) { border-top-color: var(--gold); }
.iz-about-step:nth-child(4) { border-top-color: var(--brown); }
.iz-about-step:nth-child(5) { border-top-color: var(--rose-700); }
.iz-about-step:hover { transform: translateY(-3px); box-shadow: 0 12px 40px rgba(138, 154, 130,.08); }
.iz-about-year {
  font-family: var(--serif);
  font-size: 1.6rem;
  font-weight: 500;
  color: var(--rose-500);
  margin-bottom: .2em;
}
.iz-about-step:nth-child(2) .iz-about-year { color: var(--vert-700); }
.iz-about-step:nth-child(3) .iz-about-year { color: var(--gold); }
.iz-about-step:nth-child(4) .iz-about-year { color: var(--brown); }
.iz-about-step:nth-child(5) .iz-about-year { color: var(--rose-700); }
.iz-about-step h3 {
  font-family: var(--serif);
  font-size: 1.15rem;
  font-weight: 500;
  margin-bottom: .5em;
  color: var(--brown);
}
.iz-about-step p {
  font-size: .9rem;
  line-height: 1.6;
  color: var(--brown-soft);
}

.iz-about-hero { min-height: 70vh; }

/* ── MOBILE FLOATING CTA ── */
.iz-mobile-cta {
  display: none;
  position: fixed; bottom: 20px; right: 20px;
  z-index: 999;
  background: var(--rose-500);
  color: var(--cream);
  padding: 14px 22px;
  border-radius: 50px;
  font-family: var(--sans);
  font-size: .92rem;
  font-weight: 500;
  text-decoration: none;
  box-shadow: 0 8px 30px rgba(212,148,140,.4);
  align-items: center; gap: 8px;
  animation: heroFade .8s var(--ease) 1.5s forwards;
  opacity: 0;
}
.iz-mobile-cta:hover { background: var(--rose-700); }
@media (max-width: 768px) { .iz-mobile-cta { display: inline-flex; } }
@media print { .iz-sticky-cta, .iz-mobile-cta { display: none !important; } }

/* Elementor edit zone — invisible when empty, full canvas when used */
.iz-elementor-zone[aria-hidden="true"] { display: none; }
.iz-elementor-zone { max-width: var(--iz-max, 1200px); margin: 0 auto; padding: 0 20px; }

/* =====================================================================
   PARALLAX BREAKOUT — full-bleed editorial moment
   ===================================================================== */
.iz-parallax-break {
	position: relative;
	min-height: 56vh;
	display: flex; align-items: center; justify-content: center;
	overflow: hidden;
	margin: clamp(60px, 10vw, 140px) 0;
	isolation: isolate;
}
.iz-parallax-img-wrap {
	position: absolute; inset: -8% 0;
	z-index: 0;
	overflow: hidden;
}
.iz-parallax-img {
	width: 100%; height: 100%;
	object-fit: cover;
	object-position: center 35%;
	will-change: transform;
	transform: translateZ(0);
}
.iz-parallax-break::after {
	content: ''; position: absolute; inset: 0; z-index: 1;
	background:
		radial-gradient(ellipse at 50% 60%, rgba(0,0,0,0.18), transparent 60%),
		linear-gradient(180deg, rgba(138, 154, 130,0.20) 0%, rgba(138, 154, 130,0.45) 50%, rgba(138, 154, 130,0.65) 100%);
	pointer-events: none;
}
.iz-parallax-content {
	position: relative; z-index: 2;
	text-align: center;
	color: var(--cream);
	max-width: 820px;
	padding: 0 clamp(20px, 5vw, 60px);
	text-shadow: 0 2px 36px rgba(0,0,0,0.32);
}
.iz-parallax-kicker {
	font-family: var(--serif);
	font-style: italic;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	font-size: clamp(0.78rem, 1vw, 0.92rem);
	margin: 0 0 1.6em;
	opacity: 0.9;
}
.iz-parallax-quote {
	font-family: var(--serif);
	font-weight: 400;
	font-size: clamp(1.6rem, 4vw, 3.2rem);
	line-height: 1.18;
	margin: 0 0 1.4em;
	letter-spacing: -0.005em;
}
.iz-parallax-quote em { font-style: italic; }
.iz-parallax-lead {
	font-family: var(--sans);
	font-size: clamp(0.95rem, 1.15vw, 1.08rem);
	line-height: 1.7;
	max-width: 620px;
	margin: 0 auto 1.4em;
	opacity: 0.94;
	font-weight: 300;
}
.iz-parallax-lead strong {
	font-weight: 500;
	color: #ffe6ee;
	border-bottom: 1px dashed rgba(255,230,238,0.45);
	padding-bottom: 1px;
}
.iz-parallax-cite {
	font-family: var(--sans);
	letter-spacing: 0.07em;
	font-size: 0.9rem;
	opacity: 0.85;
	margin: 0;
}

/* =====================================================================
   RITUELS GALLERY — 6-image editorial mosaic
   ===================================================================== */
.iz-rituals {
	max-width: var(--iz-max, 1200px);
	margin: clamp(60px, 8vw, 140px) auto;
	padding: 0 20px;
}
.iz-rituals-eyebrow {
	font-family: var(--serif);
	font-style: italic;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	font-size: 0.85rem;
	color: var(--rose-700);
	text-align: center;
	margin: 0 0 0.8em;
}
.iz-rituals h2 {
	font-family: var(--serif);
	font-weight: 400;
	font-size: clamp(1.8rem, 3.5vw, 2.8rem);
	text-align: center;
	margin: 0 0 0.5em;
	color: var(--brown);
	line-height: 1.1;
}
.iz-rituals h2 .italic { font-style: italic; color: var(--rose-700); }
.iz-rituals-lede {
	font-family: var(--sans);
	color: var(--brown-soft);
	font-size: clamp(0.92rem, 1.05vw, 1rem);
	line-height: 1.7;
	max-width: 600px;
	margin: 0 auto clamp(36px, 5vw, 70px);
	text-align: center;
}
.iz-rituals-grid {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	grid-template-rows: 280px 280px;
	gap: 14px;
}
.iz-rituals-grid > a {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: 6px;
	background: var(--card-bg);
	text-decoration: none;
	color: inherit;
	isolation: isolate;
}
.iz-rituals-grid > a:nth-child(1) { grid-row: 1 / span 2; }
.iz-rituals-grid > a img {
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 1.6s var(--ease), filter 0.6s var(--ease);
	filter: brightness(0.95) saturate(1.04);
}
.iz-rituals-grid > a::after {
	content: ''; position: absolute; inset: 0;
	background: linear-gradient(180deg, transparent 45%, rgba(35,25,20,0.55));
	pointer-events: none;
	transition: background 0.6s var(--ease);
}
.iz-rituals-grid > a:hover img { transform: scale(1.06); filter: brightness(1.02) saturate(1.12); }
.iz-rituals-grid > a:hover::after { background: linear-gradient(180deg, transparent 30%, rgba(35,25,20,0.65)); }
.iz-rituals-grid > a span {
	position: absolute;
	bottom: 18px; left: 22px;
	z-index: 2;
	color: var(--cream);
	font-family: var(--serif);
	font-style: italic;
	font-size: clamp(1rem, 1.3vw, 1.25rem);
	letter-spacing: 0.01em;
	text-shadow: 0 2px 16px rgba(0,0,0,0.35);
	transition: transform 0.5s var(--ease);
}
.iz-rituals-grid > a:hover span { transform: translateX(4px); }
@media (max-width: 768px) {
	.iz-rituals-grid {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: repeat(4, 200px);
	}
	.iz-rituals-grid > a:nth-child(1) { grid-column: 1 / span 2; grid-row: auto; }
}
@media (prefers-reduced-motion: reduce) {
	.iz-parallax-img { transform: none !important; }
	.iz-rituals-grid > a img { transition: none; }
}

/* =====================================================================
   PER-SERVICE SIGNATURE SECTIONS — one distinctive editorial moment per discipline
   ===================================================================== */

.iz-svc-signature {
	position: relative;
	padding: clamp(80px, 14vw, 200px) 0;
	background: radial-gradient(ellipse at 75% 25%, rgba(232, 180, 184, 0.18), transparent 65%),
	            linear-gradient(180deg, var(--cream) 0%, var(--cream-warm) 100%);
	overflow: hidden;
	color: var(--brown);
	isolation: isolate;
}
.iz-svc-signature__grain {
	position: absolute; inset: 0;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.95' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
	background-size: 220px;
	mix-blend-mode: multiply;
	opacity: 0.05;
	pointer-events: none;
	z-index: 0;
}
.iz-svc-signature__inner {
	max-width: var(--iz-max, 1200px);
	margin: 0 auto;
	padding: 0 clamp(20px, 4vw, 60px);
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(40px, 7vw, 110px);
	align-items: center;
	position: relative;
	z-index: 1;
}
.iz-svc-signature__num {
	font-family: var(--serif);
	font-style: italic;
	font-size: clamp(0.85rem, 1vw, 0.95rem);
	letter-spacing: 0.22em;
	color: var(--rose-700);
	text-transform: uppercase;
	margin: 0 0 1.2em;
	display: flex;
	align-items: center;
	gap: 18px;
}
.iz-svc-signature__num span {
	font-style: normal;
	font-weight: 500;
	font-size: 1.4em;
	color: var(--rose-700);
	letter-spacing: 0;
}
.iz-svc-signature__num::after {
	content: '';
	flex: 0 1 90px;
	height: 1px;
	background: linear-gradient(90deg, var(--rose-300), transparent);
}
.iz-svc-signature h2 {
	font-family: var(--serif);
	font-weight: 400;
	font-size: clamp(2rem, 4vw, 3.4rem);
	line-height: 1.05;
	letter-spacing: -0.01em;
	margin: 0 0 0.9em;
	color: var(--brown);
}
.iz-svc-signature h2 .italic { font-style: italic; color: var(--accent); }
.iz-svc-signature p {
	font-family: var(--sans);
	font-size: clamp(0.92rem, 1.05vw, 1rem);
	line-height: 1.75;
	color: var(--brown-soft);
	margin: 0 0 1.4em;
	max-width: 520px;
}
.iz-svc-signature p strong { color: var(--brown); font-weight: 500; }
.iz-svc-signature p em     { color: var(--accent); font-style: italic; }

@media (max-width: 900px) {
	.iz-svc-signature__inner { grid-template-columns: 1fr; gap: clamp(30px, 6vw, 60px); }
	.iz-svc-signature h2 { font-size: clamp(1.8rem, 7vw, 2.4rem); }
}

/* ----- Meridian buttons (Shiatsu) ----- */
.iz-meridian-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 1.6em 0 1em;
}
.iz-meridian-btn {
	padding: 9px 22px;
	border: 1px solid var(--rose-300);
	background: transparent;
	border-radius: 999px;
	font-family: var(--sans);
	font-size: 0.86rem;
	letter-spacing: 0.04em;
	color: var(--brown);
	cursor: pointer;
	transition: background 0.4s var(--ease), color 0.4s var(--ease), border-color 0.4s var(--ease), transform 0.3s var(--ease);
}
.iz-meridian-btn:hover,
.iz-meridian-btn:focus-visible,
.iz-meridian-btn.is-active {
	background: var(--rose-700);
	border-color: var(--rose-700);
	color: var(--cream);
	transform: translateY(-1px);
}
.iz-meridian-btn:focus-visible { outline: 2px solid var(--rose-300); outline-offset: 3px; }
.iz-meridian-organ {
	font-family: var(--serif);
	font-style: italic;
	color: var(--rose-700);
	font-size: clamp(0.95rem, 1.15vw, 1.08rem);
	display: flex;
	align-items: baseline;
	gap: 12px;
	min-height: 1.6em;
	margin-top: 0.5em;
	transition: opacity 0.3s var(--ease);
}
.iz-meridian-organ__caret {
	font-style: normal;
	color: var(--rose-300);
	transition: transform 0.4s var(--ease), color 0.4s var(--ease);
}
.iz-meridian-organ.is-set .iz-meridian-organ__caret {
	color: var(--rose-700);
	transform: translateX(4px);
}
.iz-meridian-organ.is-set .iz-meridian-organ__text { color: var(--brown); }

/* ----- Meridian SVG figure ----- */
.iz-meridian-figure {
	position: relative;
	margin: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}
.iz-meridian-svg {
	width: 100%;
	max-width: 420px;
	height: auto;
	color: var(--brown);
	filter: drop-shadow(0 30px 60px rgba(138, 154, 130, 0.08));
}
.iz-meridian-rings circle { transform-origin: 200px 410px; transform-box: fill-box; }
.iz-svc-signature.is-revealed .iz-meridian-rings circle:nth-child(1) {
	animation: iz-ring-in 1.4s var(--ease) 0.1s backwards;
}
.iz-svc-signature.is-revealed .iz-meridian-rings circle:nth-child(2) {
	animation: iz-ring-in 1.4s var(--ease) 0.25s backwards;
}
.iz-svc-signature.is-revealed .iz-meridian-rings circle:nth-child(3) {
	animation: iz-ring-in 1.4s var(--ease) 0.4s backwards;
}
@keyframes iz-ring-in {
	from { stroke-opacity: 0; transform: scale(0.7); }
	to   { stroke-opacity: 0.08; transform: scale(1); }
}

/* meridian paths — draw on reveal */
.iz-meridian-paths .iz-meridian {
	stroke: var(--rose-500);
	stroke-dasharray: 1200;
	stroke-dashoffset: 1200;
	opacity: 0.55;
	transition: opacity 0.5s var(--ease), stroke 0.5s var(--ease), stroke-width 0.5s var(--ease);
}
.iz-svc-signature.is-revealed .iz-meridian {
	animation: iz-meridian-draw 1.8s cubic-bezier(.22,1,.36,1) forwards;
}
.iz-svc-signature.is-revealed .iz-meridian-foie    { animation-delay: 0.6s; }
.iz-svc-signature.is-revealed .iz-meridian-rate    { animation-delay: 0.85s; }
.iz-svc-signature.is-revealed .iz-meridian-estomac { animation-delay: 1.1s; }
.iz-svc-signature.is-revealed .iz-meridian-rein    { animation-delay: 1.35s; }
@keyframes iz-meridian-draw { to { stroke-dashoffset: 0; } }

/* dim non-active meridians when one is selected */
.iz-svc-signature--meridians.has-active .iz-meridian-paths .iz-meridian { opacity: 0.18; }
.iz-svc-signature--meridians .iz-meridian.is-active {
	stroke: var(--rose-700);
	opacity: 1;
	stroke-width: 3.4;
}

/* tsubo points */
.iz-meridian-points .iz-tsubo {
	fill: var(--rose-700);
	opacity: 0;
	transform-origin: center;
	transform-box: fill-box;
	transition: opacity 0.4s var(--ease), r 0.3s var(--ease);
}
.iz-svc-signature.is-revealed .iz-tsubo {
	animation: iz-tsubo-in 0.55s cubic-bezier(.34,1.56,.64,1) forwards;
}
/* stagger tsubo entrance based on meridian pairing */
.iz-svc-signature.is-revealed .iz-tsubo--foie    { animation-delay: 1.7s; }
.iz-svc-signature.is-revealed .iz-tsubo--rate    { animation-delay: 1.85s; }
.iz-svc-signature.is-revealed .iz-tsubo--estomac { animation-delay: 2s; }
.iz-svc-signature.is-revealed .iz-tsubo--rein    { animation-delay: 2.15s; }
@keyframes iz-tsubo-in {
	from { opacity: 0; transform: scale(0); }
	to   { opacity: 0.85; transform: scale(1); }
}

.iz-svc-signature--meridians.has-active .iz-tsubo { opacity: 0.12; }
.iz-svc-signature--meridians .iz-tsubo.is-active {
	opacity: 1;
	animation: iz-tsubo-pulse 1.8s ease-in-out infinite;
}
@keyframes iz-tsubo-pulse {
	0%, 100% { transform: scale(1); }
	50%      { transform: scale(1.55); }
}

.iz-meridian-annot text { letter-spacing: 0.08em; }
.iz-meridian-caption {
	margin-top: 1.5em;
	font-family: var(--serif);
	font-style: italic;
	font-size: 0.82rem;
	color: var(--brown-faint);
	letter-spacing: 0.04em;
}

/* a11y mode — strip animations, show all states */
body.iz-a11y-on .iz-svc-signature .iz-meridian {
	stroke-dashoffset: 0; opacity: 0.7; animation: none;
}
body.iz-a11y-on .iz-svc-signature .iz-tsubo {
	opacity: 0.85; animation: none;
}
@media (prefers-reduced-motion: reduce) {
	.iz-svc-signature .iz-meridian,
	.iz-svc-signature .iz-tsubo,
	.iz-svc-signature .iz-meridian-rings circle { animation: none !important; transition: none !important; }
	.iz-svc-signature .iz-meridian { stroke-dashoffset: 0; }
	.iz-svc-signature .iz-tsubo { opacity: 0.85; }
}

/* ============================================================
   BLOG — single post + listing
   ============================================================ */

/* ── BLOG INDEX ── */
.iz-blog { max-width: var(--max-w); margin: 0 auto; padding: 140px 24px 100px; }
.iz-blog-hero { text-align: center; margin: 0 auto 48px; max-width: 720px; }
.iz-blog-kicker {
	font-size: .72rem; letter-spacing: .18em; text-transform: uppercase;
	color: var(--rose-500); font-weight: 500; margin-bottom: 14px;
}
.iz-blog-title {
	font-family: var(--serif); font-weight: 500; font-size: clamp(2.2rem, 5vw, 3.6rem);
	line-height: 1.1; letter-spacing: -0.01em; color: var(--brown); margin-bottom: 16px;
}
.iz-blog-title::first-line { font-style: italic; color: var(--vert-700); }
.iz-blog-sub { font-size: 1.02rem; color: var(--brown-soft); line-height: 1.6; }

.iz-blog-cats {
	display: flex; flex-wrap: wrap; gap: 8px; justify-content: center;
	margin-bottom: 56px; padding: 0 8px;
}
.iz-blog-cat {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 8px 16px; background: var(--card-bg); color: var(--brown);
	border-radius: 999px; text-decoration: none; font-size: .82rem;
	transition: all .25s var(--ease); border: 1px solid transparent;
}
.iz-blog-cat:hover { background: var(--rose-50); border-color: var(--rose-100); color: var(--rose-ink); }
.iz-blog-cat.is-active { background: var(--vert-700); color: var(--cream); }
.iz-blog-cat-n {
	font-size: .68rem; padding: 2px 8px; background: rgba(255,255,255,.5);
	border-radius: 10px; font-weight: 500;
}
.iz-blog-cat.is-active .iz-blog-cat-n { background: rgba(255,255,255,.18); }

.iz-blog-grid {
	display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 32px;
}
.iz-blog-card {
	background: var(--cream-warm); border-radius: 14px; overflow: hidden;
	transition: transform .35s var(--ease), box-shadow .35s var(--ease);
	border: 1px solid rgba(138, 154, 130,.06);
}
.iz-blog-card:hover { transform: translateY(-4px); box-shadow: 0 14px 36px rgba(138, 154, 130,.10); }
.iz-blog-card-link { display: block; text-decoration: none; color: inherit; }
.iz-blog-card-img {
	aspect-ratio: 16/10; overflow: hidden; background: var(--card-bg);
	display: flex; align-items: center; justify-content: center;
}
.iz-blog-card-img img { width: 100%; height: 100%; object-fit: cover; transition: scale .6s var(--ease); }
.iz-blog-card:hover .iz-blog-card-img img { scale: 1.04; }
.iz-blog-card-img-placeholder svg { width: 60px; height: 60px; color: var(--rose-300); }
.iz-blog-card-body { padding: 22px 24px 26px; }
.iz-blog-card-cat {
	font-size: .68rem; letter-spacing: .12em; text-transform: uppercase;
	color: var(--rose-500); font-weight: 500;
}
.iz-blog-card-title {
	font-family: var(--serif); font-weight: 500; font-size: 1.32rem;
	line-height: 1.28; margin: 10px 0 12px; color: var(--brown);
	display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.iz-blog-card-desc {
	font-size: .88rem; color: var(--brown-soft); line-height: 1.6;
	display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.iz-blog-card-more {
	display: inline-block; margin-top: 16px; font-size: .82rem;
	color: var(--vert-700); font-weight: 500; transition: color .2s;
}
.iz-blog-card:hover .iz-blog-card-more { color: var(--rose-500); }

.iz-blog-pager { margin-top: 64px; text-align: center; }
.iz-blog-pager .nav-links { display: inline-flex; gap: 6px; flex-wrap: wrap; justify-content: center; }
.iz-blog-pager a, .iz-blog-pager span {
	padding: 8px 14px; border-radius: 8px; text-decoration: none;
	background: var(--card-bg); color: var(--brown); font-size: .88rem;
	transition: background .2s;
}
.iz-blog-pager a:hover { background: var(--rose-100); }
.iz-blog-pager .current { background: var(--vert-700); color: var(--cream); }
.iz-blog-empty { text-align: center; padding: 60px 0; color: var(--brown-faint); font-style: italic; }

/* ── SINGLE POST ── */
.iz-post { max-width: 760px; margin: 0 auto; padding: 130px 24px 80px; }

.iz-post-hero { margin-bottom: 36px; text-align: center; }
.iz-post-hero-inner { max-width: 720px; margin: 0 auto; }
.iz-breadcrumb {
	font-size: .76rem; color: var(--brown-faint); margin-bottom: 24px;
	display: flex; gap: 10px; flex-wrap: wrap; justify-content: center;
}
.iz-breadcrumb a { color: var(--brown-soft); text-decoration: none; transition: color .2s; }
.iz-breadcrumb a:hover { color: var(--rose-500); }

.iz-post-cat {
	display: inline-block; padding: 6px 14px; background: var(--rose-50);
	color: var(--rose-ink); border-radius: 999px; font-size: .72rem;
	letter-spacing: .12em; text-transform: uppercase; font-weight: 500;
	text-decoration: none; transition: background .2s; margin-bottom: 22px;
}
.iz-post-cat:hover { background: var(--rose-100); }

.iz-post-title {
	font-family: var(--serif); font-weight: 500;
	font-size: clamp(2rem, 5vw, 3.2rem); line-height: 1.12;
	letter-spacing: -0.01em; color: var(--brown); margin-bottom: 22px;
}

.iz-post-meta {
	font-size: .82rem; color: var(--brown-faint);
	display: flex; gap: 10px; flex-wrap: wrap; justify-content: center;
}
.iz-post-meta a { color: var(--brown-soft); text-decoration: underline; text-decoration-color: var(--rose-100); text-underline-offset: 4px; transition: color .2s; }
.iz-post-meta a:hover { color: var(--rose-500); }

.iz-post-cover {
	margin: 0 auto 48px; max-width: 880px; border-radius: 16px; overflow: hidden;
}
.iz-post-cover img { width: 100%; height: auto; display: block; }

/* Body content — generous typography for reading */
.iz-post-body { font-size: 1.05rem; line-height: 1.85; color: var(--brown); }
.iz-post-body > * + * { margin-top: 1em; }
.iz-post-body h2 {
	font-family: var(--serif); font-weight: 500;
	font-size: 1.7rem; line-height: 1.25; color: var(--vert-700);
	margin: 2.2em 0 .4em; padding-bottom: .4em;
	border-bottom: 1px solid var(--vert-100);
}
.iz-post-body h3 {
	font-family: var(--serif); font-weight: 500; font-style: italic;
	font-size: 1.28rem; color: var(--brown); margin: 1.6em 0 .35em;
}
.iz-post-body p { margin-bottom: 1em; }
.iz-post-body p:last-child {
	margin-top: 2em; padding: 22px 26px;
	background: var(--rose-50); border-left: 3px solid var(--rose-500);
	border-radius: 0 8px 8px 0; color: var(--brown);
	font-size: .95rem; font-style: italic;
}
.iz-post-body strong { color: var(--vert-ink); font-weight: 600; }
.iz-post-body em { color: var(--brown-soft); }
.iz-post-body a { color: var(--rose-700); text-decoration: underline; text-decoration-color: var(--rose-100); text-underline-offset: 3px; }
.iz-post-body a:hover { text-decoration-color: var(--rose-500); }
.iz-post-body ul, .iz-post-body ol { padding-left: 1.4em; margin-bottom: 1em; }
.iz-post-body li { margin-bottom: .4em; }
.iz-post-body blockquote {
	border-left: 3px solid var(--vert-300); padding-left: 22px;
	font-family: var(--serif); font-style: italic; font-size: 1.18rem;
	color: var(--vert-700); margin: 1.6em 0;
}

.iz-post-tags { margin-top: 48px; display: flex; flex-wrap: wrap; gap: 8px; }
.iz-post-tag {
	font-size: .76rem; padding: 4px 12px; background: var(--card-bg);
	color: var(--brown-soft); border-radius: 999px; text-decoration: none;
	transition: background .2s;
}
.iz-post-tag:hover { background: var(--rose-100); color: var(--rose-ink); }

/* Author bio */
.iz-post-author-bio {
	display: flex; gap: 24px; align-items: flex-start;
	margin: 64px 0 0; padding: 32px;
	background: linear-gradient(135deg, var(--vert-50), var(--cream-warm));
	border-radius: 16px;
}
.iz-post-author-img { flex-shrink: 0; }
.iz-post-author-img img {
	width: 96px; height: 96px; border-radius: 50%; object-fit: cover;
	border: 3px solid var(--cream);
}
.iz-post-author-avatar {
	width: 96px; height: 96px; border-radius: 50%;
	background: var(--vert-700); color: var(--cream);
	display: flex; align-items: center; justify-content: center;
	font-family: var(--serif); font-size: 2.4rem; font-weight: 500;
	border: 3px solid var(--cream);
}
.iz-post-author-text h3 {
	font-family: var(--serif); font-weight: 500; font-size: 1.4rem;
	color: var(--brown); margin-bottom: 4px;
}
.iz-post-author-text .role {
	font-size: .82rem; color: var(--rose-500); font-weight: 500;
	letter-spacing: .04em; text-transform: uppercase; margin-bottom: 12px;
}
.iz-post-author-text p { font-size: .92rem; line-height: 1.7; color: var(--brown-soft); margin-bottom: 12px; }
.iz-post-author-cta {
	display: inline-block; color: var(--vert-700); font-size: .88rem;
	font-weight: 500; text-decoration: none; transition: color .2s;
}
.iz-post-author-cta:hover { color: var(--rose-500); }

/* CTA block */
.iz-post-cta {
	margin-top: 56px; padding: 48px 32px; text-align: center;
	background: linear-gradient(135deg, var(--rose-50), var(--rose-100));
	border-radius: 16px;
}
.iz-post-cta h2 {
	font-family: var(--serif); font-weight: 500; font-size: 1.7rem;
	color: var(--rose-ink); margin-bottom: 12px;
}
.iz-post-cta p { font-size: .98rem; color: var(--brown); margin-bottom: 22px; max-width: 480px; margin-left: auto; margin-right: auto; line-height: 1.6; }
.iz-post-cta-btn {
	display: inline-block; padding: 14px 32px; background: var(--vert-700);
	color: var(--cream); border-radius: 999px; text-decoration: none;
	font-size: .92rem; font-weight: 500; letter-spacing: .03em;
	transition: background .25s, transform .25s;
}
.iz-post-cta-btn:hover { background: var(--vert-ink); transform: translateY(-1px); }

/* Related */
.iz-post-related { margin-top: 80px; }
.iz-post-related > h2 {
	font-family: var(--serif); font-weight: 500; font-size: 1.8rem;
	color: var(--brown); margin-bottom: 28px; text-align: center;
}
.iz-post-related-grid {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 20px;
}
.iz-post-related-card {
	display: block; padding: 24px; background: var(--cream-warm);
	border-radius: 12px; text-decoration: none; color: inherit;
	transition: transform .3s var(--ease), box-shadow .3s var(--ease);
	border: 1px solid rgba(138, 154, 130,.06);
}
.iz-post-related-card:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(138, 154, 130,.08); }
.iz-post-related-cat {
	font-size: .66rem; letter-spacing: .12em; text-transform: uppercase;
	color: var(--rose-500); font-weight: 500;
}
.iz-post-related-card h3 {
	font-family: var(--serif); font-weight: 500; font-size: 1.05rem;
	line-height: 1.3; margin: 8px 0 10px; color: var(--brown);
}
.iz-post-related-card p {
	font-size: .82rem; color: var(--brown-soft); line-height: 1.55;
	margin-bottom: 10px;
}
.iz-post-related-link { font-size: .78rem; color: var(--vert-700); font-weight: 500; }

/* Mobile */
@media (max-width: 700px) {
	.iz-blog { padding: 110px 16px 60px; }
	.iz-blog-grid { gap: 22px; grid-template-columns: 1fr; }
	.iz-post { padding: 110px 18px 60px; }
	.iz-post-body { font-size: 1rem; line-height: 1.78; }
	.iz-post-body h2 { font-size: 1.4rem; }
	.iz-post-body h3 { font-size: 1.15rem; }
	.iz-post-author-bio { flex-direction: column; align-items: center; text-align: center; padding: 26px 22px; }
	.iz-post-cta { padding: 36px 22px; }
}

/* Answer-first lead paragraph (GEO best practice — first 50 words target) */
.iz-post-body .iz-post-lead {
	font-family: var(--serif);
	font-style: italic;
	font-size: 1.18rem;
	line-height: 1.6;
	color: var(--vert-700);
	padding: 22px 26px;
	background: var(--vert-50);
	border-left: 3px solid var(--vert-700);
	border-radius: 0 8px 8px 0;
	margin-bottom: 2em;
}
.iz-post-body .iz-post-lead strong { color: var(--vert-ink); font-weight: 500; }
