
    :root {
      --bg: #050505;
      --bg-soft: #0c0910;
      --bg-card: rgba(18, 14, 22, 0.72);
      --violet: #cf7cff;
      --violet-soft: #b25ce8;
      --violet-dark: #5f247d;
      --silver: #f2f2f2;
      --silver-muted: #a9a9a9;
      --border: rgba(207, 124, 255, 0.22);
      --border-soft: rgba(255, 255, 255, 0.08);
      --radius: 30px;
    }

    * { box-sizing: border-box; }

    body {
      margin: 0;
      font-family: 'Manrope', system-ui, sans-serif;
      background:
        radial-gradient(circle at 50% -10%, rgba(207, 124, 255, 0.13), transparent 35%),
        radial-gradient(circle at 10% 20%, rgba(207, 124, 255, 0.06), transparent 25%),
        linear-gradient(180deg, #030303 0%, #08050b 45%, #030303 100%);
      color: #e8e8e8;
      font-size: 1.04rem;
      line-height: 1.75;
      overflow-x: hidden;
    }

    body::before {
      content: "";
      position: fixed;
      inset: 0;
      pointer-events: none;
      z-index: -1;
      background-image:
        linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px);
      background-size: 56px 56px;
      mask-image: radial-gradient(circle at center, black, transparent 78%);
    }

    h1, h2, h3, .brand-font { font-family: 'Cinzel', serif; }

    ::selection { background: rgba(207, 124, 255, .35); color: white; }
    ::-webkit-scrollbar { width: 9px; }
    ::-webkit-scrollbar-track { background: #050505; }
    ::-webkit-scrollbar-thumb {
      background: linear-gradient(180deg, var(--violet), #fff, var(--violet-dark));
      border-radius: 999px;
    }

    .accent { color: var(--violet); }
    .silver { color: var(--silver); }
    .muted { color: var(--silver-muted); }

    .glass {
      background: var(--bg-card);
      border: 1px solid var(--border-soft);
      backdrop-filter: blur(26px);
      -webkit-backdrop-filter: blur(26px);
      box-shadow: 0 24px 70px rgba(0,0,0,.38), inset 0 1px 0 rgba(255,255,255,.05);
    }

    .neon-border {
      position: relative;
      overflow: hidden;
    }

    .neon-border::before {
      content: "";
      position: absolute;
      inset: 0;
      border-radius: inherit;
      padding: 1px;
      background: linear-gradient(135deg, rgba(207,124,255,.65), rgba(255,255,255,.22), rgba(207,124,255,.18));
      -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
      -webkit-mask-composite: xor;
      mask-composite: exclude;
      pointer-events: none;
    }

    .btn-lux {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: .6rem;
      color: #070707;
      background: linear-gradient(180deg, #ffffff 0%, #d8d8d8 48%, #a8a8a8 100%);
      border: 1px solid rgba(255,255,255,.75);
      box-shadow: 0 12px 38px rgba(255,255,255,.12), 0 0 22px rgba(207,124,255,.18);
      transition: transform .45s cubic-bezier(.22,1,.36,1), box-shadow .45s ease, filter .45s ease;
    }

    .btn-lux:hover {
      transform: translateY(-3px);
      filter: brightness(1.08);
      box-shadow: 0 20px 55px rgba(255,255,255,.18), 0 0 36px rgba(207,124,255,.28);
    }

    .section-header {
      position: relative;
      letter-spacing: .09em;
      text-shadow: 0 0 24px rgba(207,124,255,.32);
    }

    .section-header::after {
      content: "";
      position: absolute;
      bottom: -18px;
      left: 50%;
      width: min(240px, 55vw);
      height: 1px;
      transform: translateX(-50%);
      background: linear-gradient(90deg, transparent, var(--violet), #ffffff, var(--violet), transparent);
      box-shadow: 0 0 22px rgba(207,124,255,.75);
    }

    .section-header::before {
      content: "";
      position: absolute;
      bottom: -23px;
      left: 50%;
      width: 9px;
      height: 9px;
      transform: translateX(-50%) rotate(45deg);
      background: var(--violet);
      border: 1px solid rgba(255,255,255,.65);
      box-shadow: 0 0 14px rgba(207,124,255,.75);
      z-index: 2;
    }

    .site-frame {
      position: fixed;
      inset: 14px;
      border: 1px solid rgba(207,124,255,.34);
      pointer-events: none;
      z-index: 10000;
      box-shadow: inset 0 0 28px rgba(207,124,255,.08);
    }

    /* Desktop menu should not switch to the mobile version on small laptops. */
    .desktop-nav { display: none; }
    .mobile-nav-toggle { display: flex; }
    @media (min-width: 900px) {
      .desktop-nav { display: flex; }
      .mobile-nav-toggle { display: none; }
      #mobile-menu { display: none !important; }
    }

    .nav-link {
      transition: color .35s ease, background .35s ease, transform .35s ease;
      letter-spacing: .06em;
    }

    .nav-link:hover {
      color: var(--violet);
      background: rgba(207,124,255,.08);
      transform: translateY(-1px);
    }

    .hero-bg {
      min-height: 100svh;
      position: relative;
      background-image:
        linear-gradient(rgba(0,0,0,.62), rgba(0,0,0,.82)),
        url('/assets/hero.webp');
      background-size: cover;
      background-position: center;
      background-attachment: fixed;
      overflow: hidden;
    }

    .hero-bg::before {
      content: "";
      position: absolute;
      inset: 0;
      background:
        radial-gradient(circle at center, rgba(207,124,255,.2), transparent 42%),
        linear-gradient(90deg, rgba(0,0,0,.88), transparent 48%, rgba(0,0,0,.88));
      pointer-events: none;
    }

    .hero-bg::after {
      content: "";
      position: absolute;
      left: 8%;
      right: 8%;
      bottom: 9%;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(207,124,255,.8), rgba(255,255,255,.65), rgba(207,124,255,.8), transparent);
      box-shadow: 0 0 22px rgba(207,124,255,.8);
    }

    .hero-logo {
      width: min(330px, 72vw);
      margin: 0 auto 1.6rem;
      animation: floatLogo 5.6s ease-in-out infinite;
    }

    .hero-logo img { width: 100%; height: auto; display: block; }

    @keyframes floatLogo {
      0%, 100% { transform: translateY(0); }
      50% { transform: translateY(-10px); }
    }

    .hero-title {
      letter-spacing: .16em;
      text-shadow: 0 0 30px rgba(255,255,255,.18), 0 0 28px rgba(207,124,255,.25);
    }

    .hero-subtitle { letter-spacing: .22em; }

    .fade-in {
      opacity: 1;
      transform: none;
      transition: opacity .85s ease, transform .85s cubic-bezier(.22,1,.36,1);
    }

    .fade-in.visible { opacity: 1; transform: translateY(0); }

    .program-card,
    .principle-card,
    .privilege-card,
    .contact-card,
    .work-card {
      border-radius: var(--radius);
      transition: transform .48s cubic-bezier(.22,1,.36,1), box-shadow .48s ease, border-color .48s ease, background .48s ease;
    }

    .program-card:hover,
    .principle-card:hover,
    .privilege-card:hover,
    .contact-card:hover,
    .work-card:hover {
      transform: translateY(-9px) scale(1.012);
      border-color: rgba(207,124,255,.48);
      box-shadow: 0 28px 80px rgba(0,0,0,.48), 0 0 38px rgba(207,124,255,.18), inset 0 1px 0 rgba(255,255,255,.08);
    }

    .program-card {
      min-height: 330px;
      padding: 2.35rem;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      text-align: center;
    }

    .program-title {
      font-size: 1.55rem;
      line-height: 1.22;
      letter-spacing: .08em;
    }

    .program-desc {
      color: #b7b7b7;
      font-style: italic;
      line-height: 1.65;
    }

    .program-price {
      font-family: 'Cinzel', serif;
      color: var(--violet);
      font-size: 1.34rem;
      font-weight: 600;
      line-height: 1.45;
      text-shadow: 0 0 18px rgba(207,124,255,.24);
    }

    .featured-card {
      background:
        radial-gradient(circle at 50% 0%, rgba(207,124,255,.24), transparent 48%),
        linear-gradient(145deg, rgba(42,28,52,.95), rgba(14,11,18,.88));
      border: 1px solid rgba(207,124,255,.6) !important;
      box-shadow: 0 0 48px rgba(207,124,255,.14), inset 0 0 30px rgba(207,124,255,.06);
    }

    .principle-card {
      min-height: 270px;
      padding: 2.2rem;
      text-align: center;
      display: flex;
      flex-direction: column;
      justify-content: center;
    }

    .principle-card h3 {
      letter-spacing: .06em;
      font-size: 1.08rem;
      line-height: 1.25;
      word-break: normal;
      overflow-wrap: normal;
      hyphens: none;
    }

    .privilege-card {
      min-height: 285px;
      padding: 1.35rem 1.25rem;
      display: flex;
      flex-direction: column;
      text-align: center;
    }

    .privilege-benefit {
      font-family: "Times New Roman", Times, serif;
      font-size: 1.45rem;
      line-height: 1.18;
      color: var(--violet);
      text-shadow: 0 0 14px rgba(207,124,255,.18);
      font-weight: 400;
      letter-spacing: 0;
    }

    .contact-icon {
      width: 54px;
      height: 54px;
      border-radius: 18px;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      background: linear-gradient(145deg, rgba(207,124,255,.18), rgba(255,255,255,.06));
      border: 1px solid rgba(207,124,255,.24);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 0 24px rgba(207,124,255,.08);
    }

    .gallery-item {
      position: relative;
      overflow: hidden;
      border-radius: 28px;
      border: 1px solid rgba(255,255,255,.08);
      cursor: pointer;
      box-shadow: 0 18px 45px rgba(0,0,0,.35);
    }

    .gallery-item img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      transition: transform .7s cubic-bezier(.22,1,.36,1), filter .7s ease;
    }

    .gallery-item:hover img { transform: scale(1.08); filter: brightness(1.08); }

    .gallery-item::after {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(180deg, transparent 40%, rgba(0,0,0,.42));
      opacity: 0;
      transition: opacity .45s ease;
    }

    .gallery-item:hover::after { opacity: 1; }

    .modal {
      position: fixed;
      inset: 0;
      background: rgba(0,0,0,.92);
      z-index: 10001;
      display: none;
      align-items: center;
      justify-content: center;
      padding: 24px;
    }

    .modal.open { display: flex; }

    .modal img {
      max-width: min(1050px, 92vw);
      max-height: 88vh;
      border-radius: 28px;
      border: 1px solid rgba(207,124,255,.35);
      box-shadow: 0 0 70px rgba(207,124,255,.22);
    }

    .modal button {
      position: absolute;
      top: 22px;
      right: 22px;
      width: 48px;
      height: 48px;
      border-radius: 999px;
      color: white;
      background: rgba(255,255,255,.08);
      border: 1px solid rgba(255,255,255,.16);
      font-size: 28px;
      line-height: 1;
    }

    .age-card {
      width: min(450px, calc(100vw - 36px));
      padding: 3rem 2.3rem;
      text-align: center;
      border-radius: 34px;
    }

    @media (max-width: 1023px) {
      .hero-bg { background-attachment: scroll; }
    }

    @media (max-width: 767px) {
      .site-frame { display: none; }
      body { font-size: 1rem; }
      .hero-bg { background-attachment: scroll; }
      .hero-title { letter-spacing: .08em; }
      .hero-subtitle { letter-spacing: .12em; }
      .program-card, .principle-card { min-height: auto; padding: 1.55rem; }
      .privilege-card { min-height: auto; padding: 1.25rem; }
      .program-title { font-size: 1.3rem; }
      .program-price { font-size: 1.18rem; }
      .section-header { letter-spacing: .045em; }
      .section-header::after { width: 170px; }
    }
    /* Respect the visitor's motion preference without changing the default design. */
    @media (prefers-reduced-motion: reduce) {
      html { scroll-behavior: auto !important; }
      *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
      }
      .fade-in { opacity: 1; transform: none; }
    }
  
nav a.hidden{display:none} @media(min-width:768px){nav a.md\:inline-flex{display:inline-flex}nav a.md\:hidden{display:none}}
.content-page{max-width:1100px;margin:auto;padding:3rem 1.5rem 7rem}.content-page h1{font-size:clamp(1.9rem,4vw,3.2rem);line-height:1.25;margin:1rem 0 2rem}.content-page h2{font-size:1.65rem;line-height:1.4;margin:2rem 0 1rem;color:#cf7cff}.content-page p{margin:1rem 0}.content-page a:not(.btn-lux),.site-links a{color:#e1b0ff;text-decoration:underline;text-underline-offset:4px}.content-page ul{padding-left:1.5rem;list-style:disc}.content-page li{margin:.5rem 0}.table-scroll{overflow:auto;margin:1.5rem 0}.price-table{width:100%;border-collapse:collapse;min-width:560px}.price-table th,.price-table td{text-align:left;padding:1rem;border-bottom:1px solid #5f247d}.price-table caption{text-align:left;padding:.5rem 0;color:#b7b7b7}.faq-item{padding:1rem 0;border-bottom:1px solid #5f247d}.faq-item summary{cursor:pointer;font-weight:600}.page-card{padding:1.5rem;border:1px solid #5f247d;border-radius:20px;margin:1rem 0}.site-links{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center;padding:1.5rem}.book-row{display:flex;gap:1rem;flex-wrap:wrap;margin:1.5rem 0}.book-row a{padding:.8rem 1.2rem;border-radius:24px}.program-card .book-row{justify-content:center}.program-details{display:block;margin:1rem 0;color:#e1b0ff;text-decoration:underline}.mobile-book{display:none}.breadcrumb{font-size:.9rem;color:#aaa}.status-note{color:#bbb;font-size:.9rem}.route-map{display:block;width:100%;height:420px;border:0;border-radius:20px}.skip-link{position:absolute;left:-9999px}.skip-link:focus{position:fixed;left:1rem;top:1rem;z-index:10003;background:#fff;color:#000;padding:1rem}
@media(max-width:767px){.mobile-book{position:fixed;bottom:0;left:0;right:0;z-index:1000;display:flex;justify-content:space-around;gap:1rem;background:#100b15;padding:.8rem;border-top:1px solid #5f247d}.mobile-book a{color:white;text-decoration:none;font-weight:600}body{padding-bottom:65px}.site-links{gap:.8rem}.content-page{padding-top:1.5rem}}

/* Contact links must fit within their cards on narrow screens. */
@media(max-width:767px){
  .contact-card .contact-icon{display:none}
  .contact-card .flex>div{min-width:0;max-width:100%}
  .contact-card a{font-size:1rem;line-height:1.5;overflow-wrap:anywhere;word-break:break-word}
  .contact-card a[href^="tel:"]{font-size:1.25rem;white-space:nowrap}
  .content-page #contacts{padding:1.5rem 0}
  .content-page #contacts>.max-w-7xl{padding-left:0;padding-right:0}
}

/* A restrained sans-serif treatment for offers and discount values. */
.promo-section{padding:3rem 0;background:rgba(0,0,0,.45)}
.promo-container{max-width:1140px;margin:auto;padding:0 24px}
.promo-heading{font-family:Manrope,system-ui,sans-serif;font-size:clamp(1.3rem,3vw,2.1rem);font-weight:500;line-height:1.4;text-align:center;letter-spacing:.075em;text-transform:uppercase;color:#e5c7f5;margin:0 0 4rem}
.promo-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.promo-card{padding:32px 24px;border-radius:28px;display:flex;align-items:center;gap:12px;min-height:280px}
.promo-icon{width:140px;height:140px;object-fit:contain;flex-shrink:0}
.promo-copy{flex:1;min-width:0;text-align:center}
.promo-label,.promo-service,.promo-gift,.promo-amount,.promo-caption,.promo-discount{font-family:Manrope,system-ui,sans-serif!important;font-style:normal;font-weight:400;letter-spacing:0;line-height:1.4}
.promo-label{font-size:18px;color:#d9d2df;margin:0}
.promo-service{font-size:24px;font-weight:500;margin:4px 0 0;color:#f5eef8}
.promo-amount{font-size:60px;line-height:1.15;font-weight:500;letter-spacing:-.055em;color:#d493f2;margin:16px 0 8px;font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}
.promo-amount span{font-size:.7em;letter-spacing:0}
.promo-caption{font-size:16px;color:#bdb3c6;margin:0}
.promo-gift{font-size:30px;font-weight:500;color:#d493f2;line-height:1.2;letter-spacing:-.025em;margin:18px 0 12px}
.promo-company{grid-column:1/-1;display:grid;grid-template-columns:.85fr 1.15fr;padding:28px 64px;gap:36px;min-height:240px}
.promo-brand{display:flex;align-items:center;justify-content:center}
.promo-brand img{width:190px;height:190px;object-fit:contain}
.promo-company-copy{text-align:left}
.promo-company .promo-label{font-size:22px}
.promo-discount{display:flex;align-items:baseline;gap:20px;color:#d493f2;margin:2px 0 0;white-space:nowrap}
.promo-discount-label{font-size:30px;font-weight:400;letter-spacing:-.03em}
.promo-discount strong{font-size:82px;font-weight:500;letter-spacing:-.06em;line-height:1.15}
.promo-discount strong span{font-size:.65em;letter-spacing:-.03em}
.privilege-benefit{font-family:Manrope,system-ui,sans-serif;font-size:1.65rem;font-weight:500;line-height:1.3;letter-spacing:-.025em;text-shadow:none}
#privileges h3{font-family:Manrope,system-ui,sans-serif;font-weight:600;font-size:1rem;line-height:1.4;letter-spacing:.025em}
.site-credit{font-family:Manrope,system-ui,sans-serif;font-size:12px;line-height:1.6;font-weight:400;letter-spacing:.08em;color:#857b8d;margin:24px auto 0;text-align:center}
.site-credit a{color:#bd9bd0;text-decoration:none;transition:color .2s}
.site-credit a:hover,.site-credit a:focus-visible{color:#e5c7f5;text-decoration:underline;text-underline-offset:4px}
@media(max-width:960px){.promo-card{flex-direction:column;padding:24px;gap:8px}.promo-icon{width:110px;height:110px}.promo-company{display:grid;grid-template-columns:.8fr 1.2fr;padding:24px 40px;gap:24px}.promo-company .promo-label{font-size:19px}.promo-discount strong{font-size:70px}}
@media(max-width:600px){.promo-section{padding:2.5rem 0}.promo-container{padding:0 20px}.promo-grid{grid-template-columns:1fr;gap:20px}.promo-heading{margin-bottom:3rem}.promo-card{flex-direction:row;padding:24px 16px;gap:8px;min-height:230px}.promo-icon{width:90px;height:90px}.promo-label{font-size:15px}.promo-service{font-size:20px}.promo-amount{font-size:46px}.promo-gift{font-size:25px}.promo-caption{font-size:14px}.promo-company{grid-template-columns:100px 1fr;gap:14px;padding:24px 18px;min-height:180px}.promo-brand img{width:100px;height:120px}.promo-company .promo-label{font-size:16px}.promo-discount{display:block;margin-top:12px;line-height:1.1}.promo-discount-label{font-size:20px;display:block}.promo-discount strong{font-size:58px}.site-credit{font-size:11px}}
@media(prefers-reduced-motion:reduce){.site-credit a{transition:none}}

section[id]{scroll-margin-top:100px}
.work-card{padding:clamp(24px,5vw,56px)}
.work-card h3{margin-bottom:24px}
.work-card .space-y-6>p+p{margin-top:20px}
.work-card .mt-10{margin-top:32px}
.work-card .pt-8{padding-top:24px}
.work-card a[href^="tel:"]{font-size:clamp(20px,5vw,32px);white-space:nowrap}

/* Restore the original brand-first hero and center the added information block. */
.hero-title{font-size:2.25rem;line-height:1; font-weight:400}
.homepage-help{text-align:center}
.homepage-help .faq-item summary{list-style:none;position:relative;padding:0 1.5rem;display:block;text-align:center}
.homepage-help .faq-item summary::-webkit-details-marker{display:none}
.homepage-help .faq-item summary::before{content:"▸";display:inline-block;margin-right:.65rem;color:#cf7cff}
.homepage-help .faq-item[open] summary::before{content:"▾"}
.homepage-help .faq-item p{max-width:780px;margin:1rem auto}
@media(min-width:640px){.hero-title{font-size:3rem}}
@media(min-width:768px){.hero-title{font-size:4.5rem}}
@media(min-width:1024px){.hero-title{font-size:6rem}}
/* Focused programme menu and grouped price list. */
#programs .program-menu{border-top:1px solid var(--border)}
#programs .menu-entry{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,360px);column-gap:48px;row-gap:14px;padding:28px 0;border-bottom:1px solid var(--border);text-align:left}
#programs .menu-copy{min-width:0}
#programs .menu-copy h3,.price-group h2{font-family:Manrope,system-ui,sans-serif;font-size:1.2rem;font-weight:600;line-height:1.4;letter-spacing:.025em;color:#f2edf5;margin:0 0 8px}
#programs .menu-copy p{color:#c7bfcc;font-style:normal;line-height:1.65;margin:0;max-width:560px}
#programs .menu-rates{align-self:center;text-align:left;min-width:0}
.menu-rate{font-size:1rem;line-height:1.65;color:#d2c9d8;font-variant-numeric:tabular-nums}
.menu-rate strong,.rate-cost strong{font-weight:650;font-size:1.2rem;color:#f4eff7;white-space:nowrap}
#programs .menu-actions{grid-column:1/-1;display:flex;gap:24px;flex-wrap:wrap;line-height:1.5}
#programs .menu-detail{font-size:.9rem;color:#d4a8eb;text-decoration:underline;text-underline-offset:5px}
#programs .menu-detail:hover{color:#fff}
#programs .menu-featured,.price-group.menu-featured{background:rgba(122,69,148,.1);box-shadow:none;padding-left:24px;padding-right:24px}
#programs .program-subgroup{margin-top:40px;border-top:1px solid var(--border)}
.price-menu{margin:32px 0}
.content-page .price-caption{color:#c7bfcc;font-size:.9rem;margin:0 0 24px}
.price-columns{display:grid;grid-template-columns:minmax(0,1fr) 170px 280px;gap:24px;font-size:.85rem;color:#c7bfcc;padding-bottom:16px;border-bottom:1px solid var(--border);line-height:1.5}
.price-group{display:grid;grid-template-columns:minmax(0,1fr) 474px;gap:24px;padding:24px 0;border-bottom:1px solid var(--border)}
.content-page .price-group h2{margin:0;font-size:1.1rem;line-height:1.6}
.content-page .price-group h2 a{color:#f2edf5;text-decoration:none}
.content-page .price-group h2 a:hover{text-decoration:underline;text-underline-offset:5px}
.price-option{display:grid;grid-template-columns:170px minmax(0,280px);gap:8px 24px;align-items:baseline;font-variant-numeric:tabular-nums}
.price-option+.price-option{margin-top:12px}
.rate-duration{color:#d2c9d8;white-space:nowrap}
.rate-cost{min-width:0;color:#e8e1ec;line-height:1.6}
.rate-standard,.rate-promotion{display:block;font-size:.85rem;color:#c7bfcc}
.rate-standard s{white-space:nowrap}
.rate-format{grid-column:1/-1;color:#d2c9d8;font-size:.95rem}
.price-subgroup{margin-top:36px;border-top:1px solid var(--border)}
/* Internal section navigation: links remain in place, with clear hit areas. */
#mobile-menu+.site-links{background:rgba(18,14,22,.7);border-bottom:1px solid var(--border-soft);gap:4px 12px;padding:12px 24px}
#mobile-menu+.site-links a{padding:8px 10px;color:#d9ccdf;font-size:.9rem;text-decoration:none;line-height:1.5;border-bottom:1px solid transparent}
#mobile-menu+.site-links a:hover,#mobile-menu+.site-links a:focus-visible{color:#f3e4fb;border-bottom-color:var(--violet)}
.menu-detail:focus-visible,.price-group a:focus-visible{outline:2px solid var(--violet);outline-offset:5px}
#mobile-menu{padding-bottom:env(safe-area-inset-bottom)}
@media(max-width:767px){
 #programs .menu-entry{grid-template-columns:minmax(0,1fr);gap:14px;padding:24px 0}
 #programs .menu-rates{grid-row:2}
 #programs .menu-copy h3{font-size:1.08rem}
 #programs .menu-copy p{font-size:.95rem}
 #programs .menu-featured,.price-group.menu-featured{padding-left:16px;padding-right:16px}
 #programs .menu-actions{gap:12px 24px}
 .price-columns{display:none}
 .price-group{display:block;padding:24px 0}
 .content-page .price-group h2{margin-bottom:16px}
 .price-option{grid-template-columns:76px minmax(0,1fr);gap:6px 12px}
 .price-option+.price-option{margin-top:16px}
 .price-options .rate-cost strong{font-size:1.15rem}
 .rate-promotion strong{display:block}
 .rate-duration{font-size:.95rem}
 .content-page.prices-page{padding-left:20px;padding-right:20px}
 #mobile-menu+.site-links{justify-content:flex-start;padding:10px;gap:0 4px}
 .mobile-book{padding-bottom:calc(.8rem + env(safe-area-inset-bottom));min-height:58px}
 body{padding-bottom:calc(70px + env(safe-area-inset-bottom))}
 #mobile-menu .flex-1{min-height:0}
}
#programs .menu-rental-rate>span{display:block;font-size:.9rem;color:#c7bfcc;line-height:1.5}
#programs .menu-rental-rate+.menu-rental-rate{margin-top:12px}
/* Keep comparison columns aligned through the softly highlighted programme. */
#programs .menu-featured,.price-group.menu-featured{margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px}
#mobile-menu .text-gray-500{color:#bdb3c6}
/* Programme illustrations reuse the existing purple line-icon style. */
#programs .menu-entry{grid-template-columns:140px minmax(0,1fr);gap:28px;align-items:center}
#programs .program-illustration{display:block;width:140px;height:140px;object-fit:contain;grid-column:1;grid-row:1}
#programs .menu-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,330px);gap:14px 32px;min-width:0;grid-column:2;grid-row:1}
#programs .program-menu .menu-entry:nth-child(even){grid-template-columns:minmax(0,1fr) 140px}
#programs .program-menu .menu-entry:nth-child(even) .program-illustration{grid-column:2}
#programs .program-menu .menu-entry:nth-child(even) .menu-content{grid-column:1}
@media(max-width:1000px){
 #programs .menu-content{grid-template-columns:minmax(0,1fr)}
 #programs .menu-rates{grid-row:2}
}
@media(max-width:767px){
 #programs .menu-entry{grid-template-columns:76px minmax(0,1fr);gap:16px;align-items:start}
 #programs .program-illustration{width:76px;height:76px;margin-top:2px}
 #programs .program-menu .menu-entry:nth-child(even){grid-template-columns:minmax(0,1fr) 76px}
 #programs .menu-content{gap:12px}
 #programs .menu-actions{gap:12px 18px}
}
@media(max-width:360px){
 #programs .menu-entry{grid-template-columns:60px minmax(0,1fr);gap:12px}
 #programs .program-illustration{width:60px;height:60px}
 #programs .program-menu .menu-entry:nth-child(even){grid-template-columns:minmax(0,1fr) 60px}
}
/* Anchor each text block to the edge opposite its illustration. */
#programs .menu-content{grid-template-columns:minmax(0,1fr);text-align:right}
#programs .menu-copy p{margin-left:auto}
#programs .menu-rates{text-align:right;grid-row:2}
#programs .menu-actions{justify-content:flex-end}
#programs .program-menu .menu-entry:nth-child(even) .menu-content,
#programs .program-menu .menu-entry:nth-child(even) .menu-rates{text-align:left}
#programs .program-menu .menu-entry:nth-child(even) .menu-copy p{margin-left:0;margin-right:auto}
#programs .program-menu .menu-entry:nth-child(even) .menu-actions{justify-content:flex-start}
/* Uniform compact programme rows: copy, rates, illustration. */
#programs .menu-entry,#programs .program-menu .menu-entry:nth-child(even){grid-template-columns:minmax(0,1fr) 100px;gap:24px;min-height:200px;padding-top:24px;padding-bottom:24px;align-items:center}
#programs .program-illustration,#programs .program-menu .menu-entry:nth-child(even) .program-illustration{grid-column:2;grid-row:1;width:100px;height:100px;margin:0;align-self:center}
#programs .menu-content,#programs .program-menu .menu-entry:nth-child(even) .menu-content{grid-column:1;grid-row:1;grid-template-columns:minmax(0,1fr) 340px;gap:12px 32px;text-align:left;align-items:center}
#programs .menu-copy{grid-column:1;grid-row:1}
#programs .menu-copy p,#programs .program-menu .menu-entry:nth-child(even) .menu-copy p{margin:0;color:#c7bfcc;max-width:460px}
#programs .menu-rates,#programs .program-menu .menu-entry:nth-child(even) .menu-rates{grid-column:2;grid-row:1/3;text-align:center;align-self:center}
#programs .menu-actions,#programs .program-menu .menu-entry:nth-child(even) .menu-actions{grid-column:1;grid-row:2;justify-content:flex-start;align-self:start}
#programs .menu-rental-rate+.menu-rental-rate{margin-top:4px}
#programs .menu-rental-rate{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
#programs .menu-rental-rate>span{font-size:.85rem}
#programs .menu-rental-rate .menu-rate{font-size:.9rem}
#programs .menu-rental-rate .menu-rate strong{font-size:1.05rem}
@media(max-width:1000px) and (min-width:768px){
 #programs .menu-content,#programs .program-menu .menu-entry:nth-child(even) .menu-content{grid-template-columns:minmax(0,1fr) 280px;column-gap:20px}
 #programs .menu-entry,#programs .program-menu .menu-entry:nth-child(even){grid-template-columns:minmax(0,1fr) 80px;gap:16px}
 #programs .program-illustration,#programs .program-menu .menu-entry:nth-child(even) .program-illustration{width:80px;height:80px}
}
@media(max-width:767px){
 #programs .menu-entry,#programs .program-menu .menu-entry:nth-child(even){grid-template-columns:minmax(0,1fr) 64px;gap:16px;min-height:290px;padding-top:24px;padding-bottom:24px}
 #programs .program-illustration,#programs .program-menu .menu-entry:nth-child(even) .program-illustration{width:64px;height:64px}
 #programs .menu-content,#programs .program-menu .menu-entry:nth-child(even) .menu-content{grid-template-columns:minmax(0,1fr);gap:12px}
 #programs .menu-copy{grid-row:1}
 #programs .menu-rates,#programs .program-menu .menu-entry:nth-child(even) .menu-rates{grid-column:1;grid-row:2;text-align:left}
 #programs .menu-actions,#programs .program-menu .menu-entry:nth-child(even) .menu-actions{grid-row:3;gap:10px 16px}
 #programs .menu-rental-rate{display:block}
 #programs .menu-rental-rate+.menu-rental-rate{margin-top:6px}
 #programs .menu-detail{font-size:.85rem}
}
@media(max-width:767px){
 #programs .menu-entry,#programs .program-menu .menu-entry:nth-child(even){grid-template-columns:minmax(0,1fr) 64px;grid-template-rows:1fr auto auto;height:310px;min-height:310px;gap:12px 16px;padding-top:20px;padding-bottom:20px}
 #programs .menu-content,#programs .program-menu .menu-entry:nth-child(even) .menu-content{display:contents}
 #programs .menu-copy{grid-column:1;grid-row:1;align-self:center}
 #programs .menu-rates,#programs .program-menu .menu-entry:nth-child(even) .menu-rates{grid-column:1/-1;grid-row:2;text-align:left}
 #programs .menu-actions,#programs .program-menu .menu-entry:nth-child(even) .menu-actions{grid-column:1/-1;grid-row:3}
 #programs .menu-rental-rate{display:flex}
}
/* Center the company offer between two matching salon logos. */
.promo-company{grid-template-columns:160px minmax(0,1fr) 160px;padding:28px 40px;gap:24px}
.promo-company .promo-brand img{width:160px;height:160px}
.promo-company-copy{text-align:center}
.promo-company .promo-discount{justify-content:center}
/* Mirrored programme rows for client privileges. */
.privilege-menu{border-top:1px solid var(--border)}
#privileges .privilege-row{display:grid;grid-template-columns:100px minmax(0,1fr) 260px;gap:32px;align-items:center;min-height:200px;padding:24px 0;border-bottom:1px solid var(--border);text-align:left}
.privilege-row>img{width:100px;height:100px;object-fit:contain}
#privileges .privilege-copy h3{font-family:Manrope,system-ui,sans-serif;font-size:1.15rem;font-weight:600;line-height:1.4;letter-spacing:.025em;color:#f2edf5;margin:0 0 8px}
.privilege-copy>p{color:#c7bfcc;font-style:normal;line-height:1.65;margin:0;max-width:560px}
.privilege-copy .privilege-condition{margin-top:8px;font-size:.85rem;color:#c7bfcc}
.privilege-value{font-size:1.35rem;font-weight:600;color:#f4eff7;text-align:center;line-height:1.5;margin:0}
#privileges .privilege-special{margin-top:32px;border-top:1px solid var(--border)}
@media(max-width:960px){.promo-company{grid-template-columns:110px minmax(0,1fr) 110px;padding:24px;gap:16px}.promo-company .promo-brand img{width:110px;height:130px}#privileges .privilege-row{grid-template-columns:80px minmax(0,1fr) 170px;gap:20px}.privilege-row>img{width:80px;height:80px}}
@media(max-width:600px){.promo-company{grid-template-columns:60px minmax(0,1fr) 60px;padding:20px 12px;gap:8px;min-height:200px}.promo-company .promo-brand img{width:60px;height:90px}.promo-company .promo-label{font-size:14px}.promo-company .promo-discount{display:block}.promo-company .promo-discount-label{font-size:18px}.promo-company .promo-discount strong{font-size:48px}#privileges .privilege-row{grid-template-columns:64px minmax(0,1fr);grid-template-rows:1fr auto;gap:12px 16px;min-height:270px;padding:24px 0}.privilege-row>img{width:64px;height:64px;grid-column:1;grid-row:1/3;align-self:center}.privilege-copy{grid-column:2;grid-row:1;align-self:center}#privileges .privilege-copy h3{font-size:1rem}.privilege-copy>p{font-size:.9rem}.privilege-value{grid-column:2;grid-row:2;text-align:left;font-size:1.2rem}}
@media(min-width:601px){#privileges .privilege-row{grid-template-columns:100px 260px minmax(0,1fr)}.privilege-copy{grid-column:3;grid-row:1}.privilege-value{grid-column:2;grid-row:1}}
@media(min-width:601px) and (max-width:960px){#privileges .privilege-row{grid-template-columns:80px 170px minmax(0,1fr)}}
/* Mirror the programme layout exactly, including spacing and alignment. */
#privileges .privilege-row{grid-template-columns:100px minmax(0,1fr);gap:24px;min-height:200px;padding:24px 0;align-items:center}
#privileges .privilege-row>img{grid-column:1;grid-row:1;width:100px;height:100px;margin:0}
.privilege-content{grid-column:2;grid-row:1;display:grid;grid-template-columns:340px minmax(0,1fr);gap:32px;align-items:center;min-width:0}
#privileges .privilege-copy{grid-column:2;grid-row:1;text-align:right;min-width:0}
#privileges .privilege-copy>p{margin-left:auto;max-width:460px}
#privileges .privilege-value{grid-column:1;grid-row:1;text-align:center;font-size:1.2rem;line-height:1.65}
@media(max-width:1000px) and (min-width:768px){#privileges .privilege-row{grid-template-columns:80px minmax(0,1fr);gap:16px}#privileges .privilege-row>img{width:80px;height:80px}.privilege-content{grid-template-columns:280px minmax(0,1fr);gap:20px}}
@media(max-width:767px){
 #privileges .privilege-row{grid-template-columns:64px minmax(0,1fr);grid-template-rows:1fr auto;gap:12px 16px;height:310px;min-height:310px;padding:20px 0}
 #privileges .privilege-row>img{width:64px;height:64px;grid-column:1;grid-row:1}
 .privilege-content{display:contents}
 #privileges .privilege-copy{grid-column:2;grid-row:1;align-self:center}
 #privileges .privilege-value{grid-column:1/-1;grid-row:2;text-align:right}
}
/* Larger offer label, retaining the approved company-offer layout. */
.promo-company .promo-discount-label{font-size:44px}
@media(max-width:960px){.promo-company .promo-discount-label{font-size:36px}}
@media(max-width:600px){.promo-company .promo-discount-label{font-size:24px}}
