  :root{
    --rose:#e11d48;
    --rose-soft:#fbdce2;
    --gold:#f5ac27;
    --gold-soft:#fdecd1;
    --cream:#fbf9f6;
    --white:#ffffff;
    --maroon:#991b1b;
    --brick:#8b2500;
    --ink:#2b1712;
    --ink-soft:#6b5850;
    --line:#efe4dc;
    --shadow: 0 20px 50px -20px rgba(139,37,0,0.25);
    --radius-lg: 28px;
    --radius-md: 18px;
    --radius-sm: 12px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Plus Jakarta Sans', sans-serif;
    color:var(--ink);
    background:var(--white);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img{max-width:100%; display:block;}
  a{color:inherit; text-decoration:none;}
  ul{list-style:none;}
  .wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
  h1,h2,h3,h4{font-family:'Fraunces', serif; font-weight:600; color:var(--maroon); letter-spacing:-0.01em;}
  .eyebrow{
    font-size:12.5px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase;
    color:var(--rose); display:inline-flex; align-items:center; gap:8px;
  }
  .eyebrow::before{content:''; width:18px; height:2px; background:var(--gold); display:inline-block; border-radius:2px;}
  .eyebrow.no-dash::before{ display:none; }
  .level-tag{ font-size:12.5px; font-weight:700; letter-spacing:0.03em; color:#c97a12; margin-bottom:8px; text-transform:none; }
  section{position:relative;}
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    padding:15px 30px; border-radius:100px; font-weight:700; font-size:15.5px;
    cursor:pointer; border:none; transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
    white-space:nowrap;
  }
  .btn-primary{ background:linear-gradient(135deg, var(--rose), #c81440); color:#fff; box-shadow:0 14px 30px -10px rgba(225,29,72,0.55);}
  .btn-primary:hover{ transform:translateY(-2px); box-shadow:0 18px 36px -10px rgba(225,29,72,0.6);}
  .btn-ghost{ background:transparent; color:var(--maroon); border:1.5px solid var(--line); }
  .btn-ghost:hover{ border-color:var(--maroon); transform:translateY(-2px); }
  .btn-light{ background:#fff; color:var(--rose); }
  .btn-light:hover{ transform:translateY(-2px); box-shadow:0 14px 30px -10px rgba(0,0,0,0.25);}

  /* ---------- NAV ---------- */
  header{
    position:sticky; top:0; z-index:100;
    background:rgba(255,255,255,0.85); backdrop-filter:blur(14px);
    border-bottom:1px solid var(--line);
  }
  nav{ display:flex; align-items:center; justify-content:space-between; padding:14px 32px; max-width:1180px; margin:0 auto; }
  .brand{ display:flex; align-items:center; gap:12px; }
  .brand img{ height:44px; width:auto; }
  .brand-word{ font-family:'Fraunces', serif; font-weight:700; font-size:19px; color:var(--maroon); line-height:1.1; }
  .brand-word span{ display:block; font-family:'Plus Jakarta Sans',sans-serif; font-weight:600; font-size:11px; letter-spacing:0.12em; color:var(--gold); text-transform:uppercase; margin-top:2px;}
  .nav-links{ display:flex; align-items:center; gap:34px; }
  .nav-links a{ font-size:14.5px; font-weight:600; color:var(--ink); position:relative; padding:4px 0; }
  .nav-links a::after{ content:''; position:absolute; left:0; bottom:-2px; width:0; height:2px; background:var(--rose); transition:width .25s ease; }
  .nav-links a:hover::after{ width:100%; }
  .nav-cta{ display:flex; align-items:center; gap:18px; }
  .burger{ display:none; }

  /* ---------- HERO ---------- */
  .hero{ padding:88px 0 60px; background:
      radial-gradient(60% 60% at 85% 10%, var(--gold-soft) 0%, rgba(253,236,209,0) 70%),
      radial-gradient(50% 50% at 0% 100%, var(--rose-soft) 0%, rgba(251,220,226,0) 70%);
  }
  .hero .wrap{ display:grid; grid-template-columns:1.05fr 0.95fr; gap:56px; align-items:center; }
  .hero h1{ font-size:clamp(36px, 4.6vw, 58px); line-height:1.06; letter-spacing:-0.02em; }
  .hero h1 em{ font-style:italic; color:var(--rose); }
  .hero p.lead{ margin-top:22px; font-size:18px; color:var(--ink-soft); max-width:480px; }
  .hero-ctas{ display:flex; gap:16px; margin-top:34px; flex-wrap:wrap; }
  .trust-strip{ display:flex; flex-wrap:wrap; gap:22px; margin-top:40px; padding-top:28px; border-top:1px solid var(--line); }
  .trust-item{ display:flex; align-items:center; gap:9px; font-size:13.5px; font-weight:600; color:var(--ink-soft); }
  .trust-item .dot{ width:8px; height:8px; border-radius:50%; background:var(--gold); flex-shrink:0; }

  .hero-visual{ position:relative; }
  .hero-blob{
    position:relative; border-radius:44% 56% 62% 38% / 48% 42% 58% 52%;
    overflow:hidden; box-shadow:var(--shadow); aspect-ratio:1/1.05;
    background:linear-gradient(160deg, var(--gold-soft), var(--rose-soft));
  }
  .hero-blob img{ width:100%; height:100%; object-fit:cover; }
  .hero-card{
    position:absolute; bottom:-22px; left:-30px; background:#fff; padding:16px 20px;
    border-radius:var(--radius-sm); box-shadow:0 18px 40px -14px rgba(139,37,0,0.35);
    display:flex; align-items:center; gap:12px; max-width:230px;
  }
  .hero-card .badge{ width:38px; height:38px; border-radius:50%; background:var(--gold-soft); display:flex; align-items:center; justify-content:center; font-size:18px; flex-shrink:0;}
  .hero-card strong{ display:block; font-size:14px; color:var(--maroon); }
  .hero-card span{ font-size:12px; color:var(--ink-soft); }
  .hero-tag{
    position:absolute; top:22px; right:-18px; background:var(--maroon); color:#fff;
    padding:10px 16px; border-radius:100px; font-size:12.5px; font-weight:700;
    box-shadow:0 14px 28px -10px rgba(139,37,0,0.5); transform:rotate(4deg);
  }

  /* ---------- VALUE STRIP ---------- */
  .values{ padding:70px 0; background:var(--cream); }
  .values-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
  .value-card{ background:#fff; padding:28px 24px; border-radius:var(--radius-md); border:1px solid var(--line); transition:transform .25s ease, box-shadow .25s ease; }
  .value-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
  .value-icon{ width:46px; height:46px; border-radius:14px; display:flex; align-items:center; justify-content:center; font-size:22px; margin-bottom:16px; }
  .value-card:nth-child(1) .value-icon{ background:var(--rose-soft); }
  .value-card:nth-child(2) .value-icon{ background:var(--gold-soft); }
  .value-card:nth-child(3) .value-icon{ background:var(--rose-soft); }
  .value-card:nth-child(4) .value-icon{ background:var(--gold-soft); }
  .value-card h3{ font-size:17px; margin-bottom:8px; }
  .value-card p{ font-size:14.5px; color:var(--ink-soft); }

  /* ---------- SECTION HEAD ---------- */
  .section-head{ text-align:center; max-width:640px; margin:0 auto 56px; }
  .section-head h2{ font-size:clamp(28px,3.4vw,42px); margin-top:14px; line-height:1.15; }
  .section-head p{ margin-top:16px; font-size:16.5px; color:var(--ink-soft); }

  /* ---------- PROGRAMS / GROWTH PATH ---------- */
  .programs{ padding:110px 0 100px; }
  .growth-path{
    position:relative; max-width:820px; margin:0 auto; display:flex; flex-direction:column;
  }
  .growth-hline{
    position:absolute; left:50%; top:6px; bottom:6px; width:3px; transform:translateX(-50%);
    background:linear-gradient(180deg, var(--gold) 0%, var(--rose) 100%);
    border-radius:4px; z-index:0;
  }
  .growth-stop{
    position:relative; z-index:1; display:grid; grid-template-columns:1fr 60px 1fr; align-items:center;
    margin-bottom:18px;
  }
  .growth-stop:last-child{ margin-bottom:0; }
  .growth-connector{ display:none; }
  .growth-node{
    grid-column:2; justify-self:center;
    width:20px; height:20px; border-radius:50%; background:#fff; border:4px solid var(--rose); box-shadow:0 0 0 6px #fff; flex-shrink:0;
  }
  .growth-stop:nth-child(2) .growth-node{ border-color:var(--gold); }
  .growth-stop:nth-child(3) .growth-node{ border-color:#ef7f2e; }
  .growth-stop:nth-child(4) .growth-node{ border-color:#df3d5c; }
  .growth-stop:nth-child(5) .growth-node{ border-color:var(--maroon); }
  .growth-top .growth-card{ grid-column:1; margin-right:26px; }
  .growth-bottom .growth-card{ grid-column:3; margin-left:26px; }
  .growth-card{
    background:#fff; border:1px solid var(--line); border-radius:var(--radius-md); padding:24px 22px;
    box-shadow:0 10px 30px -18px rgba(139,37,0,0.2); transition:transform .25s ease, box-shadow .25s ease;
    width:100%;
  }
  .growth-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
  .growth-card h3{ font-size:19px; margin-bottom:4px; }
  .growth-card p{ font-size:13.5px; color:var(--ink-soft); }

  /* ---------- METHOD ---------- */
  .method{ padding:100px 0; background:var(--cream); overflow:hidden; }
  .method-grid{ display:grid; grid-template-columns:0.95fr 1.05fr; gap:60px; align-items:center; }
  .method-photo{ position:relative; }
  .method-photo img{ border-radius:var(--radius-lg); box-shadow:var(--shadow); width:100%; aspect-ratio:4/5; object-fit:cover; }
  .method-photo::before{
    content:''; position:absolute; inset:-16px -16px auto auto; width:90%; height:90%;
    border:2px solid var(--gold); border-radius:var(--radius-lg); z-index:-1; top:20px; right:-20px;
  }
  .steps{ counter-reset:step; }
  .step{ display:flex; gap:20px; padding:22px 0; border-bottom:1px solid var(--line); }
  .step:last-child{ border-bottom:none; }
  .step-num{
    counter-increment:step; flex-shrink:0; width:44px; height:44px; border-radius:50%;
    background:#fff; border:2px solid var(--rose); color:var(--rose); font-family:'Fraunces',serif; font-weight:700;
    display:flex; align-items:center; justify-content:center; font-size:17px;
  }
  .step-num::before{ content:counter(step, decimal-leading-zero); }
  .step h4{ font-size:17px; margin-bottom:5px; }
  .step p{ font-size:14.5px; color:var(--ink-soft); }

  /* ---------- PACKAGES ---------- */
  .packages{ padding:110px 0 100px; }
  .pack-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; align-items:stretch; }
  .pack-card{
    background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:38px 32px;
    display:flex; flex-direction:column; transition:transform .25s ease, box-shadow .25s ease;
  }
  .pack-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
  .pack-card.featured{ background:linear-gradient(165deg, var(--maroon), #6e1509); color:#fff; position:relative; transform:scale(1.04); box-shadow:0 26px 55px -18px rgba(139,37,0,0.55); }
  .pack-card.featured:hover{ transform:scale(1.04) translateY(-6px); }
  .pack-card.featured h3, .pack-card.featured .pack-desc{ color:#fff; }
  .pack-badge{ position:absolute; top:-14px; left:50%; transform:translateX(-50%); background:var(--gold); color:var(--maroon); font-size:12px; font-weight:800; letter-spacing:0.04em; padding:7px 18px; border-radius:100px; box-shadow:0 8px 18px -6px rgba(0,0,0,0.3); }
  .pack-icon{ font-size:26px; margin-bottom:14px; }
  .pack-card h3{ font-size:22px; margin-bottom:6px; }
  .pack-desc{ font-size:14px; color:var(--ink-soft); margin-bottom:22px; }
  .pack-price{ font-family:'Fraunces',serif; font-size:38px; font-weight:700; margin-bottom:4px; }
  .pack-price span{ font-family:'Plus Jakarta Sans',sans-serif; font-size:14px; font-weight:600; color:var(--ink-soft); }
  .pack-card.featured .pack-price span{ color:rgba(255,255,255,0.75); }
  .pack-note{ font-size:12.5px; color:var(--ink-soft); margin-bottom:26px; }
  .pack-card.featured .pack-note{ color:rgba(255,255,255,0.7); }
  .pack-features{ margin-bottom:30px; flex-grow:1; }
  .pack-features li{ display:flex; align-items:flex-start; gap:10px; font-size:14.5px; padding:7px 0; }
  .pack-features li::before{ content:'✓'; color:var(--gold); font-weight:800; flex-shrink:0; }
  .pack-card.featured .pack-features li::before{ color:var(--gold); }
  .pack-card .btn{ width:100%; }
  .pack-card:not(.featured) .btn{ background:var(--cream); color:var(--maroon); border:1.5px solid var(--line); }
  .pack-card:not(.featured) .btn:hover{ border-color:var(--rose); color:var(--rose); }
  .pricing-note{ text-align:center; margin-top:36px; font-size:13.5px; color:var(--ink-soft); }

  /* ---------- GALLERY ---------- */
  .gallery{ padding:100px 0; background:var(--cream); }
  .gallery-grid{ display:grid; grid-template-columns:repeat(4,1fr); grid-template-rows:repeat(2,220px); gap:18px; }
  .gallery-grid figure{ border-radius:var(--radius-md); overflow:hidden; position:relative; }
  .gallery-grid img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
  .gallery-grid figure:hover img{ transform:scale(1.06); }
  .gallery-grid figure:nth-child(1){ grid-column:span 2; grid-row:span 2; }
  .gallery-grid figure:nth-child(4){ grid-column:span 2; }
  figure figcaption{ position:absolute; left:14px; bottom:12px; color:#fff; font-size:12.5px; font-weight:700; background:rgba(139,37,0,0.55); padding:6px 12px; border-radius:100px; backdrop-filter:blur(4px); }

  /* ---------- TESTIMONIALS ---------- */
  .testimonials{ padding:110px 0; }
  .test-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
  .test-card{ background:var(--cream); border-radius:var(--radius-md); padding:30px 26px; border:1px solid var(--line); }
  .stars{ color:var(--gold); font-size:15px; letter-spacing:2px; margin-bottom:14px; }
  .test-card p{ font-size:15px; color:var(--ink); margin-bottom:20px; }
  .test-person{ display:flex; align-items:center; gap:12px; }
  .test-avatar{ width:42px; height:42px; border-radius:50%; background:linear-gradient(135deg,var(--rose),var(--gold)); display:flex; align-items:center; justify-content:center; color:#fff; font-weight:700; font-family:'Fraunces',serif; }
  .test-person strong{ display:block; font-size:14px; }
  .test-person span{ font-size:12.5px; color:var(--ink-soft); }

  /* ---------- FAQ ---------- */
  .faq{ padding:100px 0; background:var(--cream); }
  .faq-list{ max-width:760px; margin:0 auto; }
  .faq-item{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-sm); margin-bottom:14px; overflow:hidden; }
  .faq-q{ display:flex; align-items:center; justify-content:space-between; padding:20px 24px; cursor:pointer; font-weight:700; font-size:15.5px; color:var(--maroon); }
  .faq-q .icon{ width:26px; height:26px; border-radius:50%; background:var(--rose-soft); color:var(--rose); display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:transform .3s ease; font-weight:800; }
  .faq-item.open .faq-q .icon{ transform:rotate(45deg); }
  .faq-a{ max-height:0; overflow:hidden; transition:max-height .35s ease, padding .35s ease; padding:0 24px; font-size:14.5px; color:var(--ink-soft); }
  .faq-item.open .faq-a{ max-height:420px; padding:0 24px 20px; }

  /* ---------- CTA BANNER ---------- */
  .cta-banner{ padding:90px 0; background:linear-gradient(135deg, var(--maroon), var(--brick)); text-align:center; position:relative; overflow:hidden; }
  .cta-banner::before{ content:''; position:absolute; width:500px; height:500px; border-radius:50%; background:radial-gradient(circle, rgba(245,172,39,0.25), transparent 70%); top:-200px; right:-100px; }
  .cta-banner h2{ color:#fff; font-size:clamp(28px,3.6vw,44px); max-width:600px; margin:0 auto 16px; position:relative; }
  .cta-banner p{ color:rgba(255,255,255,0.85); max-width:480px; margin:0 auto 32px; font-size:16px; position:relative; }
  .cta-banner .btn-primary{ background:#fff; color:var(--rose); box-shadow:0 14px 30px -10px rgba(0,0,0,0.35); position:relative; }
  .cta-banner .btn-primary:hover{ background:var(--gold); color:#fff; }

  /* ---------- FOOTER ---------- */
  footer{ background:var(--ink); color:#f2e8e2; padding:70px 0 26px; background:#241109; }
  .footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.1fr; gap:40px; padding-bottom:46px; border-bottom:1px solid rgba(255,255,255,0.1); }
  .footer-brand{ display:flex; align-items:center; gap:12px; margin-bottom:16px; }
  .footer-brand img{ height:40px; }
  .footer-brand strong{ font-family:'Fraunces',serif; color:#fff; font-size:18px; }
  footer .desc{ font-size:13.5px; color:rgba(255,255,255,0.55); max-width:260px; }
  footer h5{ color:#fff; font-size:13px; letter-spacing:0.08em; text-transform:uppercase; margin-bottom:18px; font-family:'Plus Jakarta Sans',sans-serif; }
  footer ul li{ margin-bottom:11px; }
  footer ul li a{ font-size:14px; color:rgba(255,255,255,0.65); transition:color .2s ease; }
  footer ul li a:hover{ color:var(--gold); }
  .footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding-top:26px; font-size:12.5px; color:rgba(255,255,255,0.4); flex-wrap:wrap; gap:12px; }
  .social{ display:flex; gap:10px; }
  .social a{ width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,0.08); display:flex; align-items:center; justify-content:center; font-size:14px; }
  .social a:hover{ background:var(--rose); }

  /* ---------- REVEAL ANIM ---------- */
  .reveal{ opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease; }
  .reveal.in{ opacity:1; transform:translateY(0); }

  @media (prefers-reduced-motion: reduce){
    .reveal{ opacity:1; transform:none; transition:none; }
    html{ scroll-behavior:auto; }
  }

  /* ---------- RESPONSIVE ---------- */
  @media (max-width:1024px){
    .hero .wrap{ grid-template-columns:1fr; }
    .hero-visual{ max-width:420px; margin:0 auto; }
    .values-grid{ grid-template-columns:repeat(2,1fr); }
    .method-grid{ grid-template-columns:1fr; }
    .method-photo{ max-width:420px; margin:0 auto; }
    .pack-grid{ grid-template-columns:1fr; max-width:440px; margin:0 auto; }
    .pack-card.featured{ transform:none; order:-1; }
    .pack-card.featured:hover{ transform:translateY(-6px); }
    .test-grid{ grid-template-columns:1fr; max-width:480px; margin:0 auto; }
    .gallery-grid{ grid-template-columns:repeat(2,1fr); grid-template-rows:repeat(3,180px); }
    .gallery-grid figure:nth-child(1){ grid-column:span 2; grid-row:span 1; }
    .footer-grid{ grid-template-columns:1fr 1fr; }
  }
  @media (max-width:900px){
    .growth-path{ max-width:480px; }
    .growth-hline{ left:19px; }
    .growth-stop{ display:flex; align-items:flex-start; gap:16px; margin-bottom:0; padding:14px 0; }
    .growth-node{ margin-top:6px; flex-shrink:0; order:-1; }
    .growth-top .growth-card, .growth-bottom .growth-card{ margin:0; order:0; }
  }
  @media (max-width:760px){
    .nav-links{ display:flex; gap:0; }
    .nav-links > li{ display:none; }
    .nav-links > li.lang-item{ display:block; }
    .wrap{ padding:0 20px; }
    .hero-tag{ display:none; }
    .footer-grid{ grid-template-columns:1fr; }
  }

  /* ---------- LANGUAGE SWITCHER ---------- */
  .lang-switch{ position:relative; margin-left:6px; }
  .lang-switch summary{
    list-style:none; cursor:pointer; display:flex; align-items:center; gap:6px;
    font-size:14px; font-weight:700; color:var(--maroon); padding:8px 14px;
    border:1.5px solid var(--line); border-radius:100px; user-select:none;
  }
  .lang-switch summary::-webkit-details-marker{ display:none; }
  .lang-switch summary:hover{ border-color:var(--maroon); }
  .lang-switch .chev{ font-size:10px; transition:transform .2s ease; }
  .lang-switch[open] .chev{ transform:rotate(180deg); }
  .lang-menu{
    position:absolute; top:calc(100% + 8px); right:0; background:#fff; border:1px solid var(--line);
    border-radius:14px; box-shadow:0 18px 40px -14px rgba(139,37,0,0.3); overflow:hidden; min-width:170px; z-index:50;
  }
  .lang-menu a{
    display:flex; align-items:center; gap:10px; padding:12px 16px; font-size:14px; font-weight:600; color:var(--ink);
  }
  .lang-menu a:hover{ background:var(--cream); color:var(--rose); }
  .lang-menu a.active{ color:var(--rose); background:var(--rose-soft); }

  /* ---------- STORY / READ MORE PANEL ---------- */
  .story-section{ padding:100px 0; }
  .story-section.alt{ background:var(--cream); }
  .story-panel{ max-width:760px; margin:0 auto; }
  .story-panel .lead-line{ font-size:18px; font-weight:600; color:var(--maroon); margin-bottom:24px; }
  .story-more{
    max-height:0; overflow:hidden; transition:max-height .5s ease;
  }
  .story-more.open{ max-height:3200px; }
  .story-more p{ font-size:15.5px; color:var(--ink-soft); margin-bottom:18px; }
  .story-more h4{ font-size:17px; color:var(--maroon); margin:26px 0 10px; }
  .story-more ul{ margin:0 0 18px; }
  .story-more ul li{
    font-size:15px; color:var(--ink-soft); padding:10px 0 10px 22px; position:relative; border-bottom:1px solid var(--line);
  }
  .story-more ul li:last-child{ border-bottom:none; }
  .story-more ul li::before{ content:'🌱'; position:absolute; left:0; top:9px; font-size:12px; }
  .story-more .source-note{ font-size:12.5px; color:var(--ink-soft); opacity:.75; margin-top:-8px; }
  .read-more-btn{
    display:inline-flex; align-items:center; gap:8px; background:none; border:none; cursor:pointer;
    font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:14.5px; color:var(--rose); padding:6px 0; margin-top:6px;
  }
  .read-more-btn .arrow{ transition:transform .3s ease; }
  .read-more-btn.open .arrow{ transform:rotate(180deg); }
