  :root{
    --violet-deep:#1E0F49;    /* darkest, footer / depth */
    --violet:#3D2199;         /* primary background, sampled from logo */
    --violet-raise:#4B2BB8;   /* raised panels / cards */
    --violet-line:rgba(255,255,255,0.14);
    --gold:#F2AA06;           /* primary accent, sampled from logo */
    --gold-light:#FDE28A;     /* highlight / hover */
    --gold-deep:#C9830A;      /* pressed / darker accent */
    --white:#FFFFFF;
    --white-soft:rgba(255,255,255,0.78);
    --white-faint:rgba(255,255,255,0.55);
    --max:1120px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--violet);
    color:var(--white-soft);
    font-family:'Public Sans',sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{
    font-family:'Fraunces',serif;
    font-weight:600;
    line-height:1.12;
    margin:0;
    letter-spacing:-0.01em;
    color:var(--white);
  }
  a{color:inherit;}
  .wrap{max-width:var(--max); margin:0 auto; padding:0 28px;}
  .eyebrow{
    font-family:'IBM Plex Mono',monospace;
    font-size:12.5px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--gold-light);
  }
  :focus-visible{outline:2px solid var(--gold); outline-offset:3px;}

  /* ---------- NAV ---------- */
  header{
    position:sticky; top:0; z-index:50;
    background:rgba(30,15,73,0.9);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--violet-line);
  }
  nav.wrap{
    display:flex; align-items:center; justify-content:space-between;
    gap:28px;
    height:78px;
  }
  .brand{
    display:flex; align-items:center; gap:12px;
    font-family:'Fraunces',serif; font-weight:600; font-size:18px;
    text-decoration:none; color:var(--white);
    white-space:nowrap; flex:none;
  }
  .brand img{height:48px; width:48px; border-radius:50%; flex:none; box-shadow:0 0 0 1px rgba(242,170,6,0.4);}
  .navlinks{display:flex; gap:14px; list-style:none; margin:0; padding:0; white-space:nowrap;}
  .navlinks a{
    text-decoration:none; font-size:14.5px; font-weight:500; color:var(--white-soft);
    padding:6px 2px; border-bottom:1px solid transparent;
    transition:border-color .2s ease, color .2s ease;
  }
  .navlinks a:hover{border-color:var(--gold); color:var(--white);}
  .nav-cta{
    background:var(--gold); color:var(--violet-deep); font-size:14px; font-weight:700;
    padding:10px 20px; border-radius:100px; text-decoration:none;
    transition:background .2s ease;
    white-space:nowrap; flex:none;
  }
  .nav-cta:hover{background:var(--gold-light);}
  .menu-btn{
    display:none; background:none; border:none; cursor:pointer;
    flex-direction:column; gap:5px; align-items:center; justify-content:center;
    width:38px; height:38px; padding:0; flex:none;
  }
  .menu-btn span{
    display:block; width:22px; height:2px; border-radius:2px; background:var(--white);
    transition:transform .25s ease, opacity .2s ease;
  }
  .menu-btn[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .menu-btn[aria-expanded="true"] span:nth-child(2){ opacity:0; }
  .menu-btn[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

  .mobile-menu{
    display:none; flex-direction:column;
    background:var(--violet-deep); border-top:1px solid var(--violet-line);
    padding:6px 0 14px;
  }
  .mobile-menu.open{display:flex;}
  .mobile-menu a{
    padding:14px 28px; color:var(--white-soft); text-decoration:none;
    font-size:15.5px; font-weight:500; transition:background .15s ease, color .15s ease;
  }
  .mobile-menu a:hover{background:var(--violet-raise); color:var(--white);}
  .mobile-menu a.active{color:var(--gold-light);}
  .mobile-menu .mobile-cta{
    margin:12px 28px 4px; background:var(--gold); color:var(--violet-deep) !important;
    border-radius:100px; text-align:center; font-weight:700; padding:13px;
  }

  /* ---------- HERO ---------- */
  .hero{
    background:radial-gradient(ellipse at 50% 30%, #4E2BC2 0%, var(--violet) 45%, var(--violet-deep) 100%);
    position:relative; overflow:hidden;
    padding:96px 0 120px;
  }
  .hero .wrap{
    display:flex; flex-direction:column; align-items:center; text-align:center;
    position:relative; z-index:2;
  }
  .hero-logo{
    width:168px; height:168px; margin-bottom:28px;
    border-radius:50%; object-fit:cover;
    border:2px solid rgba(242,170,6,0.55);
    filter:drop-shadow(0 0 40px rgba(242,170,6,0.35));
    animation:logo-in 1.1s cubic-bezier(.2,.8,.3,1) both;
  }
  @keyframes logo-in{
    0%{opacity:0; transform:scale(0.85) translateY(10px);}
    100%{opacity:1; transform:scale(1) translateY(0);}
  }
  .hero h1{
    font-size:clamp(34px, 5vw, 56px);
    max-width:16ch;
  }
  .hero h1 em{color:var(--gold); font-style:italic;}
  .hero p.lede{
    margin-top:22px; font-size:18px; max-width:52ch; color:var(--white-soft);
  }
  .hero-ctas{display:flex; gap:14px; margin-top:34px; flex-wrap:wrap; justify-content:center;}
  .btn-primary{
    background:var(--gold); color:var(--violet-deep); font-weight:700; text-decoration:none;
    padding:14px 26px; border-radius:100px; font-size:15px;
    transition:background .2s ease, transform .2s ease;
    display:inline-block;
  }
  .btn-primary:hover{background:var(--gold-light); transform:translateY(-1px);}
  .btn-ghost{
    border:1px solid rgba(255,255,255,0.3); color:var(--white); text-decoration:none;
    padding:14px 26px; border-radius:100px; font-size:15px; font-weight:600;
    transition:border-color .2s ease, background .2s ease;
    display:inline-block;
  }
  .btn-ghost:hover{border-color:var(--gold); background:rgba(242,170,6,0.1);}

  .ray{
    position:absolute; inset:0; z-index:1; pointer-events:none;
    background-image:url('logo.jpg');
    background-repeat:no-repeat;
    background-position:center 40%;
    background-size:840px 840px;
    opacity:0.16;
    mix-blend-mode:screen;
  }

  /* ---------- MISSION STRIP ---------- */
  .mission{padding:64px 0; background:var(--violet-deep); border-top:1px solid var(--violet-line); border-bottom:1px solid var(--violet-line);}
  .mission .wrap{
    display:grid; grid-template-columns:0.6fr 1.4fr; gap:40px;
  }
  .mission h2{font-size:28px;}
  .mission p{max-width:62ch; font-size:17px; color:var(--white-soft);}

  /* ---------- ABOUT ---------- */
  .about{padding:80px 0;}
  .about-inner{display:grid; grid-template-columns:0.8fr 1.2fr; gap:56px; align-items:start;}
  .about h2{font-size:32px;}
  .about-figure{
    background:var(--violet-raise); border-radius:18px; padding:36px 30px;
    border:1px solid var(--violet-line);
  }
  .about-figure .ripple-mini{width:56px; height:56px; margin-bottom:18px;}
  .about-figure p{font-family:'Fraunces',serif; font-style:italic; font-size:18px; line-height:1.5; color:var(--white);}
  .about-figure cite{display:block; margin-top:14px; font-style:normal; font-size:13px; font-family:'IBM Plex Mono',monospace; color:var(--gold-light); opacity:0.9;}
  .about-body p{color:var(--white-soft); font-size:16.5px; max-width:64ch;}
  .about-body p + p{margin-top:16px;}
  .about-stats{display:flex; gap:36px; margin-top:28px; flex-wrap:wrap;}
  .about-stat b{display:block; font-family:'Fraunces',serif; font-size:26px; color:var(--gold);}
  .about-stat span{font-size:13px; color:var(--white-faint);}

  /* ---------- SERVICES ---------- */
  .services{padding:80px 0; background:var(--violet-deep); border-top:1px solid var(--violet-line);}
  .section-head{max-width:640px; margin-bottom:48px;}
  .section-head h2{font-size:34px; margin-top:10px;}
  .section-head p{color:var(--white-soft); font-size:16.5px; margin-top:14px;}

  .service{
    display:grid;
    grid-template-columns:64px 1fr auto;
    gap:24px;
    padding:32px 0;
    border-top:1px solid var(--violet-line);
    align-items:start;
  }
  .service:last-child{border-bottom:1px solid var(--violet-line);}
  .service-num{
    font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--gold);
    padding-top:6px;
  }
  .service-body h3{font-size:22px; font-weight:600;}
  .service-meta{
    font-family:'IBM Plex Mono',monospace; font-size:12.5px; color:var(--white-faint);
    margin-top:6px; letter-spacing:0.02em;
  }
  .service-topics{
    display:flex; flex-wrap:wrap; gap:8px 10px; margin-top:16px; padding:0; list-style:none;
  }
  .service-topics li{
    font-size:13.5px; background:var(--violet-raise); border:1px solid var(--violet-line);
    padding:5px 12px; border-radius:100px; color:var(--white-soft);
  }
  .service-for{
    margin-top:14px; font-size:14px; color:var(--white-faint); font-style:italic;
  }
  .service-price{
    text-align:right; white-space:nowrap; padding-top:4px;
  }
  .price-tag{
    font-family:'IBM Plex Mono',monospace; font-size:19px; font-weight:500; color:var(--gold-light);
  }
  .price-unit{display:block; font-size:12px; color:var(--white-faint); margin-top:4px;}

  /* ---------- ADDONS ---------- */
  .addons{background:var(--violet); padding:72px 0; border-top:1px solid var(--violet-line);}
  .addons h2{font-size:30px; margin-top:10px;}
  .addon-grid{
    display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
    background:var(--violet-line); margin-top:36px; border:1px solid var(--violet-line);
  }
  .addon-card{background:var(--violet-deep); padding:26px 22px;}
  .addon-card h4{font-family:'Fraunces',serif; font-weight:500; font-size:17px; margin-bottom:10px; color:var(--white);}
  .addon-price{font-family:'IBM Plex Mono',monospace; color:var(--gold); font-size:16px;}

  /* ---------- AUDIENCE ---------- */
  .audience{padding:72px 0;}
  .audience h2{font-size:30px; margin-top:10px;}
  .chip-row{display:flex; flex-wrap:wrap; gap:12px; margin-top:30px;}
  .chip{
    border:1px solid var(--violet-line); padding:10px 20px; border-radius:100px;
    font-size:14.5px; font-weight:500; background:var(--violet-raise); color:var(--white-soft);
  }

  /* ---------- BOOKING FORM ---------- */
  .booking{background:var(--violet-deep); padding:80px 0; border-top:1px solid var(--violet-line);}
  .booking-inner{display:grid; grid-template-columns:0.85fr 1.15fr; gap:48px;}
  .booking h2{font-size:32px;}
  .booking p.lead{color:var(--white-soft); margin-top:14px; max-width:44ch;}
  form.book-form{
    background:var(--violet-raise); border-radius:18px; padding:34px;
    display:grid; gap:18px; border:1px solid var(--violet-line);
  }
  .form-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
  .field{display:flex; flex-direction:column; gap:7px;}
  .field label{font-size:13px; font-family:'IBM Plex Mono',monospace; color:var(--white-faint);}
  .field input, .field select, .field textarea{
    background:rgba(255,255,255,0.06);
    border:1px solid var(--violet-line);
    border-radius:8px;
    padding:11px 13px;
    color:var(--white);
    font-family:'Public Sans',sans-serif;
    font-size:14.5px;
  }
  .field textarea{resize:vertical; min-height:88px;}
  .field select{appearance:none;}
  .field input::placeholder, .field textarea::placeholder{color:rgba(255,255,255,0.35);}
  .field input:focus, .field select:focus, .field textarea:focus{
    outline:2px solid var(--gold); outline-offset:1px; border-color:transparent;
  }
  .book-submit{
    background:var(--gold); color:var(--violet-deep); font-weight:700; border:none;
    padding:14px 26px; border-radius:100px; font-size:15px; cursor:pointer;
    transition:background .2s ease;
    justify-self:start;
  }
  .book-submit:hover{background:var(--gold-light);}
  .form-note{font-size:12.5px; color:var(--white-faint);}

  /* ---------- CONTACT ---------- */
  .contact{background:var(--violet); padding:88px 0; border-top:1px solid var(--violet-line);}
  .contact-inner{
    display:grid; grid-template-columns:1.1fr 0.9fr; gap:48px; align-items:center;
  }
  .contact h2{font-size:32px;}
  .contact p{color:var(--white-soft); margin-top:14px; max-width:48ch;}
  .contact-card{
    background:var(--violet-deep); border-radius:18px; padding:34px; border:1px solid var(--violet-line);
  }
  .contact-line{
    display:flex; justify-content:space-between; padding:14px 0; border-bottom:1px solid var(--violet-line);
    font-size:15px; color:var(--white-soft);
  }
  .contact-line:last-child{border-bottom:none;}
  .contact-line span:first-child{color:var(--white-faint);}
  .contact-card .btn-primary{width:100%; text-align:center; margin-top:20px;}

  footer{padding:60px 0 0; font-size:13px; color:var(--white-faint); background:var(--violet-deep);}
  .footer-grid{
    display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px;
    padding-bottom:36px; border-bottom:1px solid var(--violet-line);
  }
  .footer-brand{display:flex; flex-direction:column; align-items:flex-start;}
  .footer-blurb{font-size:14px; color:var(--white-faint); margin-top:16px; max-width:36ch; line-height:1.6;}
  .footer-col h4{font-family:'Fraunces',serif; font-size:15px; font-weight:600; color:var(--white); margin-bottom:14px;}
  .footer-col a{display:block; font-size:14px; color:var(--white-soft); text-decoration:none; margin-bottom:11px; transition:color .2s ease;}
  .footer-col a:hover{color:var(--gold-light);}
  .footer-bottom{padding:22px 28px; text-align:center; font-size:13px; color:var(--white-faint);}
  footer .brand-mark{display:flex; align-items:center; gap:10px;}
  footer .brand-mark img{height:34px; width:34px; border-radius:50%;}
  footer .social-row{justify-content:flex-start; margin:16px 0 0;}
  @media (max-width:1024px) and (min-width:861px){
    .footer-grid{grid-template-columns:1fr 1fr; gap:32px;}
    .footer-brand{grid-column:1 / -1;}
  }
  @media (max-width:860px){
    .footer-grid{grid-template-columns:1fr; gap:30px; text-align:center;}
    .footer-brand{align-items:center;}
    footer .social-row{justify-content:center;}
  }

  /* Nav collapses to hamburger earlier than the rest of the layout —
     7 nav items + CTA need more room than 860px gives them. */
  @media (max-width:1560px){
    .navlinks{display:none;}
    .nav-cta{display:none;}
    .menu-btn{display:flex;}
  }

  @media (max-width:860px){
    .mission .wrap{grid-template-columns:1fr;}
    .about-inner{grid-template-columns:1fr;}
    .service{grid-template-columns:40px 1fr; }
    .service-price{grid-column:1/-1; text-align:left; padding-top:10px;}
    .addon-grid{grid-template-columns:repeat(2,1fr);}
    .service-marker{width:34px; height:34px;}
    .service-marker svg{width:16px; height:16px;}
    .timeline-track{left:20px;}
    .booking-inner{grid-template-columns:1fr;}
    .form-row{grid-template-columns:1fr;}
    .contact-inner{grid-template-columns:1fr;}
  }

  /* ---------- MULTI-PAGE ADDITIONS ---------- */
  .navlinks a.active{
    color:var(--white); border-color:var(--gold);
  }

  .page-header{
    background:radial-gradient(ellipse at 50% 20%, #4E2BC2 0%, var(--violet) 55%, var(--violet-deep) 100%);
    padding:64px 0 56px;
    border-bottom:1px solid var(--violet-line);
  }
  .page-header .wrap{display:flex; flex-direction:column; align-items:flex-start; gap:12px;}
  .page-header .mark{width:52px; height:52px; border-radius:50%; box-shadow:0 0 0 1px rgba(242,170,6,0.4); margin-bottom:6px;}
  .page-header h1{font-size:clamp(30px,4vw,44px);}
  .page-header p.lede{color:var(--white-soft); font-size:16.5px; max-width:56ch; margin-top:6px;}

  .home-links{padding:80px 0; background:var(--violet-deep); border-top:1px solid var(--violet-line);}
  .home-links .grid{
    display:grid; grid-template-columns:repeat(6,1fr); gap:1px;
    background:var(--violet-line); border:1px solid var(--violet-line); margin-top:36px;
  }
  .home-links .card{
    background:var(--violet); padding:30px 26px; text-decoration:none;
    display:flex; flex-direction:column; gap:10px;
    transition:background .2s ease;
    grid-column:span 2;
  }
  .home-links .card:nth-child(4), .home-links .card:nth-child(5){
    grid-column:span 3;
  }
  .home-links .card:hover{background:var(--violet-raise);}
  .home-links .card .num{font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--gold);}
  .home-links .card h3{font-family:'Fraunces',serif; font-size:19px; color:var(--white); font-weight:600;}
  .home-links .card p{color:var(--white-soft); font-size:14.5px; margin:0;}
  .home-links .card .go{color:var(--gold-light); font-size:13.5px; font-weight:600; margin-top:auto;}

  @media (max-width:860px){
    .home-links .grid{grid-template-columns:1fr;}
    .home-links .card, .home-links .card:nth-child(4), .home-links .card:nth-child(5){
      grid-column:span 1;
    }
  }

  /* ---------- SERVICE BOOK BUTTON ---------- */
  .service-book-btn{
    display:inline-block; margin-top:14px;
    font-size:13px; font-weight:700; text-decoration:none;
    color:var(--violet-deep); background:var(--gold);
    padding:8px 16px; border-radius:100px;
    transition:background .2s ease;
    white-space:nowrap;
  }
  .service-book-btn:hover{background:var(--gold-light);}

  /* ---------- STICKY MOBILE CTA BAR ---------- */
  .sticky-cta{
    position:fixed; left:0; right:0; bottom:0; z-index:60;
    display:none; justify-content:center; padding:12px 20px;
    background:rgba(30,15,73,0.96); backdrop-filter:blur(8px);
    border-top:1px solid var(--violet-line);
    transform:translateY(100%); transition:transform .3s ease;
  }
  .sticky-cta.show{transform:translateY(0);}
  .sticky-cta .btn-primary{width:100%; max-width:420px; text-align:center;}
  @media (max-width:860px){
    .sticky-cta{display:flex;}
    body{padding-bottom:8px;}
  }

  /* ---------- FILTER CHIPS ---------- */
  .filter-chips{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:44px;}
  .chip.filter{
    border:1px solid var(--violet-line); background:var(--violet-raise); color:var(--white-soft);
    padding:9px 18px; border-radius:100px; font-size:14px; font-weight:500; cursor:pointer;
    transition:background .2s ease, color .2s ease, border-color .2s ease;
  }
  .chip.filter:hover{border-color:var(--gold-light);}
  .chip.filter.active{background:var(--gold); color:var(--violet-deep); border-color:var(--gold); font-weight:700;}
  .service[hidden]{display:none;}

  /* ---------- QUOTE CALCULATOR ---------- */
  .quote-calc-section{padding:80px 0; background:var(--violet-deep); border-top:1px solid var(--violet-line);}
  .quote-box{
    margin-top:36px; background:var(--violet-raise); border:1px solid var(--violet-line);
    border-radius:16px; overflow:hidden;
  }
  .quote-row{
    display:flex; align-items:center; justify-content:space-between; gap:16px;
    padding:16px 22px; border-bottom:1px solid var(--violet-line); flex-wrap:wrap;
  }
  .quote-row label{
    display:flex; align-items:center; gap:12px; font-size:15px; color:var(--white);
    cursor:pointer; font-weight:500;
  }
  .quote-row input[type="checkbox"]{
    width:18px; height:18px; accent-color:var(--gold); cursor:pointer;
  }
  .quote-row-unit{
    display:flex; align-items:center; gap:8px; font-size:13.5px; color:var(--white-faint);
  }
  .qc-qty{
    width:56px; padding:5px 8px; border-radius:6px; border:1px solid var(--violet-line);
    background:rgba(255,255,255,0.06); color:var(--white); font-family:'IBM Plex Mono',monospace; font-size:13px;
  }
  .quote-row-price{
    font-family:'IBM Plex Mono',monospace; font-size:13.5px; color:var(--gold-light); white-space:nowrap;
  }
  .quote-total{
    display:flex; justify-content:space-between; align-items:center;
    padding:20px 22px; font-family:'Fraunces',serif; font-size:19px; color:var(--white);
  }
  #quoteTotal{color:var(--gold); font-family:'IBM Plex Mono',monospace; font-size:22px;}
  .quote-cta-wrap{padding:0 22px 26px;}
  .quote-note{font-size:12.5px; color:var(--white-faint); margin-top:14px; max-width:60ch;}

  /* ---------- FAQ ---------- */
  .faq-section{padding:80px 0; background:var(--violet-deep); border-top:1px solid var(--violet-line);}
  .faq-list{
    margin-top:32px; display:flex; flex-direction:column; gap:1px;
    background:var(--violet-line); border:1px solid var(--violet-line); border-radius:12px; overflow:hidden;
  }
  .faq-item{background:var(--violet);}
  .faq-item summary{
    cursor:pointer; list-style:none; padding:20px 24px;
    font-family:'Fraunces',serif; font-weight:600; font-size:16.5px; color:var(--white);
    display:flex; justify-content:space-between; align-items:center; gap:16px;
  }
  .faq-item summary::-webkit-details-marker{display:none;}
  .faq-item summary::after{content:'+'; color:var(--gold); font-size:22px; font-weight:400; line-height:1;}
  .faq-item[open] summary::after{content:'\2013';}
  .faq-item .faq-a{padding:0 24px 22px; color:var(--white-soft); font-size:15px; max-width:70ch;}

  @media (max-width:860px){
    .quote-row{flex-direction:column; align-items:flex-start;}
    .quote-row-price{align-self:flex-end;}
  }

  /* ---------- WHATSAPP FLOAT BUTTON ---------- */
  .whatsapp-float{
    position:fixed; right:22px; bottom:22px; z-index:70;
    width:56px; height:56px; border-radius:50%;
    background:#25D366;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 6px 18px rgba(0,0,0,0.35);
    text-decoration:none;
    transition:transform .2s ease, box-shadow .2s ease;
  }
  .whatsapp-float:hover{transform:scale(1.07); box-shadow:0 8px 22px rgba(0,0,0,0.45);}
  @media (max-width:860px){
    .whatsapp-float{ bottom:92px; right:16px; width:50px; height:50px; }
  }

  /* ---------- SOCIAL ICON ROW ---------- */
  .social-row{
    display:flex; justify-content:center; gap:14px; margin:18px 0 22px;
  }
  .social-icon{
    width:38px; height:38px; border-radius:50%; border:1px solid var(--violet-line);
    background:var(--violet-raise); color:var(--white-soft);
    display:flex; align-items:center; justify-content:center;
    font-family:'IBM Plex Mono',monospace; font-size:12.5px; font-weight:600;
    text-decoration:none; transition:background .2s ease, color .2s ease, border-color .2s ease;
  }
  .social-icon:hover{background:var(--gold); color:var(--violet-deep); border-color:var(--gold);}

  /* ---------- SCROLL REVEAL ---------- */
  .reveal{opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease;}
  .reveal.is-visible{opacity:1; transform:translateY(0);}
  @media (prefers-reduced-motion: reduce){
    .reveal{opacity:1; transform:none; transition:none;}
  }

  /* ---------- BUTTON RIPPLE ---------- */
  .btn-primary, .btn-ghost, .nav-cta, .book-submit, .service-book-btn, .chip.filter{
    position:relative; overflow:hidden;
  }
  .btn-ripple{
    position:absolute; border-radius:50%; background:rgba(255,255,255,0.45);
    transform:scale(0); animation:btn-ripple-anim .6s ease-out forwards; pointer-events:none;
  }
  @keyframes btn-ripple-anim{ to{ transform:scale(1); opacity:0; } }

  /* ---------- CARD HOVER LIFT ---------- */
  .home-links .card, .addon-card, .value-card{
    transition:transform .2s ease, background .2s ease, box-shadow .2s ease;
  }
  .home-links .card:hover, .addon-card:hover, .value-card:hover{
    transform:translateY(-4px);
    box-shadow:0 10px 26px rgba(0,0,0,0.25);
  }
  .service{transition:background .2s ease;}
  .service:hover{background:rgba(255,255,255,0.02);}

  /* ---------- SERVICE ICON MARKERS ---------- */
  .service-num{
    display:flex; flex-direction:column; align-items:center; gap:8px; padding-top:2px;
  }
  .service-marker{
    width:44px; height:44px; border-radius:50%;
    background:var(--violet-raise); border:1px solid var(--violet-line);
    display:flex; align-items:center; justify-content:center; color:var(--gold);
    flex:none; transition:background .2s ease, border-color .2s ease;
  }
  .service:hover .service-marker{background:var(--gold); color:var(--violet-deep); border-color:var(--gold);}
  .service-marker svg{width:20px; height:20px;}
  .service-num .num-label{
    font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--gold);
  }

  /* ---------- VALUES SECTION (About page) ---------- */
  .values-section{padding:80px 0; border-top:1px solid var(--violet-line);}
  .values-grid{
    display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
    background:var(--violet-line); border:1px solid var(--violet-line); margin-top:36px;
  }
  .value-card{background:var(--violet-raise); padding:28px 24px;}
  .value-icon{
    width:44px; height:44px; border-radius:50%; background:var(--violet-deep);
    display:flex; align-items:center; justify-content:center; color:var(--gold); margin-bottom:14px;
  }
  .value-icon svg{width:20px; height:20px;}
  .value-card h3{font-family:'Fraunces',serif; font-size:17px; color:var(--white); margin-bottom:8px;}
  .value-card p{font-size:14px; color:var(--white-soft); margin:0;}
  @media (max-width:860px){
    .values-grid{grid-template-columns:repeat(2,1fr);}
  }

  /* ---------- PROCESS SECTION (Home page) ---------- */
  .process-section{padding:80px 0; background:var(--violet-deep); border-top:1px solid var(--violet-line); border-bottom:1px solid var(--violet-line);}
  .process-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:32px; margin-top:36px;}
  .process-step{position:relative;}
  .process-num{font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--gold); margin-bottom:12px;}
  .process-step h3{font-family:'Fraunces',serif; font-size:19px; color:var(--white); margin-bottom:10px;}
  .process-step p{font-size:14.5px; color:var(--white-soft); margin:0;}
  @media (max-width:1024px) and (min-width:861px){
    .process-grid{grid-template-columns:1fr 1fr; gap:28px;}
  }
  @media (max-width:860px){
    .process-grid{grid-template-columns:1fr; gap:26px;}
  }

  /* ---------- SERVICES SCROLL TIMELINE ---------- */
  .service-list{position:relative;}
  .timeline-track{
    position:absolute; left:32px; top:0; bottom:0; width:2px;
    background:var(--violet-line); z-index:0;
  }
  .timeline-fill{
    position:absolute; left:0; top:0; width:100%; height:0;
    background:linear-gradient(var(--gold), var(--gold-light));
    box-shadow:0 0 12px rgba(242,170,6,0.5);
  }
  .service-marker.is-filled{
    background:var(--gold); color:var(--violet-deep); border-color:var(--gold);
    box-shadow:0 0 0 4px rgba(242,170,6,0.18);
    transition:background .3s ease, border-color .3s ease, box-shadow .3s ease;
  }
  .service{position:relative; z-index:1;}
  .service-num{position:relative; z-index:1; background:transparent;}

  /* ---------- HERO CANVAS ---------- */
  .hero-canvas{
    position:absolute; inset:0; z-index:1; width:100%; height:100%;
  }

  /* ---------- SMALL PHONES ---------- */
  @media (max-width:480px){
    .hero-logo{width:120px; height:120px;}
    .ray{background-size:480px 480px; background-position:center 30%;}
    .addon-grid{grid-template-columns:1fr;}
    .values-grid{grid-template-columns:1fr;}
    .wrap{padding:0 18px;}
    .quote-row{padding:14px 16px;}
    .contact-card, form.book-form{padding:24px 20px;}
    .about-figure{padding:26px 20px;}
  }

  /* ---------- EVENTS PAGE ---------- */
  .events-section{padding:70px 0 90px;}
  .event-gallery{
    display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
  }
  .event-photo{
    margin:0; background:var(--violet-raise); border:1px solid var(--violet-line);
    border-radius:14px; overflow:hidden;
    transition:transform .2s ease, box-shadow .2s ease;
  }
  .event-photo:hover{transform:translateY(-4px); box-shadow:0 12px 28px rgba(0,0,0,0.3);}
  .event-photo img{
    display:block; width:100%; height:220px; object-fit:cover;
  }
  .event-photo figcaption{
    padding:14px 16px; font-size:13.5px; color:var(--white-soft); line-height:1.5;
  }
  .event-note{
    margin-top:40px; padding:22px 26px; background:var(--violet-deep);
    border:1px solid var(--violet-line); border-radius:14px;
  }
  .event-note p{margin:0; color:var(--white-faint); font-size:14px; max-width:70ch;}

  @media (max-width:1024px) and (min-width:861px){
    .event-gallery{grid-template-columns:repeat(2,1fr);}
  }
  @media (max-width:860px){
    .event-gallery{grid-template-columns:1fr;}
    .event-photo img{height:auto;}
  }

  /* ---------- TERMS & POLICIES PAGE ---------- */
  .policy-section{padding:70px 0 90px;}
  .policy-block{
    max-width:760px; margin:0 0 56px;
    padding-bottom:48px; border-bottom:1px solid var(--violet-line);
  }
  .policy-block:last-of-type{border-bottom:none; margin-bottom:0;}
  .policy-block h2{font-size:26px; margin-top:10px; margin-bottom:20px;}
  .policy-block p{color:var(--white-soft); font-size:15.5px; line-height:1.7; margin:0 0 14px;}
  .policy-block p:last-child{margin-bottom:0;}

  /* ---------- FORM STATUS MESSAGE ---------- */
  .form-status{
    font-size:14px; padding:0; border-radius:10px; transition:padding .2s ease;
  }
  .form-status:empty{padding:0; margin:0;}
  .form-status.success{
    padding:14px 16px; background:rgba(242,170,6,0.12); border:1px solid rgba(242,170,6,0.35);
    color:var(--gold-light); font-weight:500;
  }
  .form-status.error{
    padding:14px 16px; background:rgba(220,80,80,0.12); border:1px solid rgba(220,80,80,0.4);
    color:#ff9d9d; font-weight:500;
  }
  .book-submit:disabled{opacity:0.7; cursor:not-allowed;}

  /* ---------- DISTINCTION CALLOUT (Services page) ---------- */
  .distinction-section{padding:0 0 60px;}
  .distinction-box{
    display:flex; gap:22px; align-items:flex-start;
    background:var(--violet-raise); border:1px solid var(--violet-line);
    border-radius:14px; padding:28px 30px;
  }
  .distinction-icon{
    width:40px; height:40px; border-radius:50%; background:var(--violet-deep);
    display:flex; align-items:center; justify-content:center; color:var(--gold); flex:none;
  }
  .distinction-icon svg{width:20px; height:20px;}
  .distinction-box h3{font-family:'Fraunces',serif; font-size:18px; color:var(--white); margin-bottom:10px;}
  .distinction-box p{font-size:14.5px; color:var(--white-soft); line-height:1.7; margin:0;}
  .distinction-box a{color:var(--gold-light);}
  @media (max-width:860px){
    .distinction-box{flex-direction:column;}
  }

  /* ---------- FAQ NUDGE (non-home pages) ---------- */
  .faq-nudge{padding:36px 0; text-align:center; border-top:1px solid var(--violet-line);}
  .faq-nudge p{color:var(--white-soft); font-size:14.5px; margin:0;}
  .faq-nudge a{color:var(--gold-light); font-weight:600;}

  /* ---------- COMMUNITY SPACE SECTION (Home page) ---------- */
  .community-section{
    padding:64px 0; background:var(--violet-deep);
    border-top:1px solid var(--violet-line); border-bottom:1px solid var(--violet-line);
  }
  .community-section h2{font-size:30px; margin-top:10px;}
  .community-section .lede{color:var(--white-soft); font-size:16.5px; margin-top:12px;}
  .community-grid{
    display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:36px;
  }
  .community-card{
    background:var(--violet-raise); border:1px solid var(--violet-line);
    border-radius:14px; padding:28px 30px;
  }
  .community-card h3{font-family:'Fraunces',serif; font-size:18px; color:var(--white); margin-bottom:16px;}
  .community-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px;}
  .community-list li{
    display:flex; align-items:center; gap:10px; font-size:15px; color:var(--white-soft);
  }
  .community-list li svg{width:18px; height:18px; color:var(--gold); flex:none;}
  .community-note{
    margin-top:20px; padding-top:18px; border-top:1px solid var(--violet-line);
    font-size:14px; color:var(--gold-light); font-weight:600;
  }
  .community-info{
    background:var(--violet-raise); border:1px solid var(--violet-line);
    border-radius:14px; padding:28px 30px;
    display:flex; flex-direction:column; gap:24px; justify-content:center;
  }
  .community-info-row{display:flex; gap:16px; align-items:flex-start;}
  .info-icon{
    width:40px; height:40px; border-radius:50%; background:var(--violet-deep);
    display:flex; align-items:center; justify-content:center; color:var(--gold); flex:none;
  }
  .info-icon svg{width:19px; height:19px;}
  .community-info-row strong{display:block; color:var(--white); font-size:15px; margin-bottom:4px;}
  .community-info-row p{margin:0; color:var(--white-soft); font-size:14px; line-height:1.6;}
  .community-motto{
    text-align:center; margin-top:36px; font-family:'Fraunces',serif; font-style:italic;
    font-size:19px; color:var(--gold-light);
  }
  @media (max-width:860px){
    .community-grid{grid-template-columns:1fr;}
  }

  /* ---------- HEALING ROUND TABLES (Home page) ---------- */
  .roundtable-section{padding:64px 0; border-bottom:1px solid var(--violet-line);}
  .roundtable-section h2{font-size:30px; margin-top:10px;}
  .roundtable-section .lede{color:var(--white-soft); font-size:16.5px; margin-top:12px; max-width:70ch;}
  .roundtable-groups{display:flex; flex-wrap:wrap; gap:14px; margin-top:32px;}
  .roundtable-chip{
    display:flex; align-items:center; gap:10px;
    background:var(--violet-raise); border:1px solid var(--violet-line);
    padding:12px 22px; border-radius:100px; font-size:15px; font-weight:600; color:var(--white);
  }
  .roundtable-chip svg{width:19px; height:19px; color:var(--gold);}
  .roundtable-blurb{margin-top:24px; color:var(--white-soft); font-size:15px; font-style:italic; max-width:60ch;}
  .roundtable-note{
    margin-top:20px; padding:16px 22px; background:var(--violet-raise);
    border:1px solid var(--violet-line); border-radius:12px; display:inline-block;
    font-size:14.5px; color:var(--gold-light); font-weight:600;
  }
  @media (max-width:860px){
    .roundtable-note{display:block;}
  }

  /* ---------- FAMILY-CENTRED TAGLINE ---------- */
  .community-tagline-section{padding:36px 0; text-align:center;}
  .community-tagline{
    font-family:'Fraunces',serif; font-style:italic; font-size:20px; color:var(--gold-light); margin:0;
  }

  /* ---------- COMMUNITY SUB-NAV (sticky jump menu) ---------- */
  .subnav{
    position:sticky; top:78px; z-index:40;
    background:rgba(30,15,73,0.95); backdrop-filter:blur(8px);
    border-bottom:1px solid var(--violet-line);
  }
  .subnav-inner{
    display:flex; gap:10px; overflow-x:auto; padding:14px 28px;
    scrollbar-width:none;
  }
  .subnav-inner::-webkit-scrollbar{display:none;}
  .subnav-inner a{
    white-space:nowrap; padding:9px 18px; border-radius:100px;
    font-size:13.5px; font-weight:600; text-decoration:none;
    color:var(--white-soft); background:var(--violet-raise); border:1px solid var(--violet-line);
    transition:background .2s ease, color .2s ease, border-color .2s ease;
  }
  .subnav-inner a:hover{border-color:var(--gold-light);}
  .subnav-inner a.active{background:var(--gold); color:var(--violet-deep); border-color:var(--gold); font-weight:700;}
  @media (max-width:860px){
    .subnav{top:0;}
  }

  /* ---------- COMMUNITY TEASER (Home page) ---------- */
  .community-teaser{padding:80px 0; border-top:1px solid var(--violet-line); background:var(--violet-deep);}
  .community-teaser h2{font-size:30px; margin-top:10px;}
  .community-teaser .lede{color:var(--white-soft); margin-top:12px; max-width:70ch;}
  .teaser-grid{
    display:grid; grid-template-columns:repeat(6,1fr); gap:1px;
    background:var(--violet-line); border:1px solid var(--violet-line); margin-top:36px;
  }
  .teaser-card{
    background:var(--violet); padding:28px 26px; text-decoration:none;
    display:flex; flex-direction:column; gap:10px;
    transition:background .2s ease, transform .2s ease, box-shadow .2s ease;
    grid-column:span 2;
  }
  .teaser-card:nth-child(4), .teaser-card:nth-child(5){grid-column:span 3;}
  .teaser-card:hover{background:var(--violet-raise); transform:translateY(-4px); box-shadow:0 10px 26px rgba(0,0,0,0.25);}
  .teaser-card h3{font-family:'Fraunces',serif; font-size:18px; color:var(--white); font-weight:600;}
  .teaser-card p{color:var(--white-soft); font-size:14px; margin:0;}
  .teaser-card .go{color:var(--gold-light); font-size:13.5px; font-weight:600; margin-top:auto;}
  @media (max-width:860px){
    .teaser-grid{grid-template-columns:1fr;}
    .teaser-card, .teaser-card:nth-child(4), .teaser-card:nth-child(5){grid-column:span 1;}
  }

  /* ---------- HERO SCROLL CUE ---------- */
  .scroll-cue{
    position:absolute; left:50%; bottom:32px; transform:translateX(-50%);
    display:flex; flex-direction:column; align-items:center; gap:10px;
    color:var(--gold-light); text-decoration:none; z-index:3;
    font-size:12.5px; font-family:'IBM Plex Mono',monospace; letter-spacing:0.12em; text-transform:uppercase; font-weight:700;
    transition:color .2s ease, transform .2s ease;
  }
  .scroll-cue:hover{color:var(--white); transform:translateX(-50%) translateY(4px);}
  .scroll-cue .cue-circle{
    width:46px; height:46px; border-radius:50%;
    border:1.5px solid rgba(242,170,6,0.6); background:rgba(242,170,6,0.1);
    display:flex; align-items:center; justify-content:center;
  }
  .scroll-cue svg{width:20px; height:20px; color:var(--gold); animation:scroll-bounce 2.2s ease-in-out infinite;}
  @keyframes scroll-bounce{
    0%, 100%{ transform:translateY(0); opacity:0.7; }
    50%{ transform:translateY(6px); opacity:1; }
  }
  @media (prefers-reduced-motion: reduce){
    .scroll-cue svg{animation:none;}
  }

  /* ---------- ANCHOR SCROLL OFFSET (sticky header/sub-nav) ---------- */
  section{scroll-margin-top:100px;}
  #space, #roundtables, #couples, #workshops, #outings{scroll-margin-top:150px;}
