  :root{
    --bg:#FAF7FC;          /* lavanda alb */
    --ink:#2E1F3D;          /* violet foarte închis, pt text */
    --lilac:#C7A9EA;        /* LILA principal */
    --lilac-deep:#8158C0;   /* lila principal, butoane */
    --lilac-dark:#6B44A8;
    --lilac-soft:#F2EBFB;   /* fundal delicat */
    --lilac-line:#E4D6F5;   /* borduri */
    --mauve:#7E6A99;        /* text secundar */
    --blush:#F3D9E8;        /* roz pudrat, accente mici */
    --plum:#3B1D63;         /* mov închis, pentru titluri */
    --gold:#C79A3C;         /* auriu, conturul titlurilor */
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{
    scroll-behavior:smooth;
    -webkit-text-size-adjust:100%;   /* Safari pe iOS nu mai umflă textul în peisaj */
    text-size-adjust:100%;
  }
  img{max-width:100%}
  a,button{-webkit-tap-highlight-color:rgba(129,88,192,.15)}
  body{
    background:
      linear-gradient(180deg,#F3EBFC 0px, rgba(250,247,252,0) 560px) no-repeat,
      var(--bg);
    font-family:'Karla',sans-serif;
    color:var(--ink);
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  .wrap{max-width:980px;margin:0 auto;padding:0 20px}

  /* ---------- top bar ---------- */
  header{
    position:sticky;top:0;z-index:50;
    background:rgba(250,247,252,.9);
    -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
    border-bottom:1px solid var(--lilac-line);
  }
  .bar{display:flex;align-items:center;justify-content:space-between;padding:8px 0;gap:10px}
  .brand img{height:84px;width:auto;display:block}
  .topright{display:flex;align-items:center;gap:14px}
  .topsoc{display:flex;align-items:center;gap:4px}
  .topsoc a{
    display:flex;align-items:center;justify-content:center;
    width:34px;height:34px;border-radius:50%;
    color:var(--lilac-deep);transition:background .18s;
  }
  .topsoc a svg{width:18px;height:18px;fill:currentColor}
  .topsoc a:hover{background:var(--lilac-soft)}
  .lang{display:flex;border:1px solid var(--lilac-deep);border-radius:99px;overflow:hidden;flex-shrink:0}
  .lang a{
    font-family:'Karla',sans-serif;font-weight:700;font-size:.78rem;
    letter-spacing:.08em;padding:7px 12px;border:none;cursor:pointer;
    background:transparent;color:var(--lilac-deep);
    display:flex;align-items:center;gap:6px;
  }
  .lang a svg{width:17px;height:12px;border-radius:2.5px;display:block}
  .lang a.on{background:var(--lilac-deep);color:#fff}
  .lang a:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
  @media (max-width:640px){
    .brand img{height:52px}
    .topright{gap:8px}
    .topsoc a{width:30px;height:30px}
    .topsoc a svg{width:16px;height:16px}
    .topsoc .hide-sm{display:none}   /* pe ecrane mici rămân Instagram, TikTok și WhatsApp */
    .lang a{padding:6px 9px}
  }

  /* ---------- hero ---------- */
  .hero{
    display:grid;grid-template-columns:1.1fr .9fr;gap:40px;
    align-items:center;padding:64px 0 56px;
  }
  .hero h1{
    font-family:'Playfair Display',Fraunces,Georgia,serif;font-weight:600;
    font-size:clamp(2.2rem,5.5vw,3.5rem);
    line-height:1.07;letter-spacing:-.01em;
    overflow-wrap:anywhere;
  }
  .hero > div{min-width:0}
  .hero h1 .shine{
    max-width:100%;
    font-style:italic;display:inline-block;
    padding:0 .06em .14em 0;margin-bottom:-.14em;  /* loc pentru codițele literelor (y, g), tăiate altfel de clip */
    background:linear-gradient(105deg,var(--lilac-deep) 38%,var(--lilac) 50%,var(--lilac-deep) 62%);
    background-size:250% 100%;
    -webkit-background-clip:text;background-clip:text;
    -webkit-text-fill-color:transparent;
    animation:gloss 5.5s ease-in-out infinite;
  }
  @keyframes gloss{0%,55%{background-position:120% 0}78%{background-position:-20% 0}100%{background-position:-20% 0}}
  @media (prefers-reduced-motion:reduce){.hero h1 .shine{animation:none}}
  .hero p{margin-top:18px;max-width:50ch;font-size:1.03rem;color:#54426B}
  .cta{
    display:inline-block;margin-top:24px;
    background:var(--lilac-deep);color:#fff;text-decoration:none;
    font-weight:700;font-size:.84rem;letter-spacing:.045em;
    padding:11px 24px;border-radius:99px;
    box-shadow:0 4px 14px rgba(129,88,192,.22);
    transition:background .2s, transform .15s;
  }
  .cta:hover{background:var(--lilac-dark);transform:translateY(-1px)}
  .hero .loc{display:block;margin-top:16px;font-size:.85rem;color:var(--mauve)}

  /* poza hero — se topeste in fundal, pe un halou lila care se
     deschide spre alb. Fara rama, ca sa nu taie marginea difuza.
     Daca browserul nu stie mask-image, poza ramane intreaga, cu
     colturi rotunjite (vezi @supports mai jos). */
  .arch{
    position:relative;
    width:100%;max-width:400px;margin-left:auto;   /* nu mai creste oricat */
    aspect-ratio:3/4;                               /* proportia sta pe cutie */
    background:none;border:none;padding:0;box-shadow:none;
  }
  .arch::before{            /* haloul lila din spate */
    content:"";position:absolute;z-index:0;
    left:-8%;right:-8%;top:-6%;bottom:-6%;
    background:radial-gradient(ellipse 66% 62% at 50% 48%,
               rgba(199,169,234,.42) 40%,
               rgba(214,190,242,.28) 66%,
               rgba(255,255,255,0) 88%);
    filter:blur(16px);
    pointer-events:none;
  }
  .arch img{
    position:relative;z-index:1;
    width:100%;height:100%;object-fit:cover;display:block;
    border-radius:0;
  }
  @supports ((-webkit-mask-image:linear-gradient(#000,transparent)) or (mask-image:linear-gradient(#000,transparent))){
    .arch img{
      /* Doua masti suprapuse: una pe orizontala, una pe verticala.
         Poza ramane 100% clara in mijloc si se stinge DOAR in ultimii
         ~10% de la fiecare margine, ca sa nu para taiata in patrat.
         Creste procentele (11%/89%) daca vrei marginea si mai difuza. */
      -webkit-mask-image:
        linear-gradient(to right,  transparent 0%, #000 11%, #000 89%, transparent 100%),
        linear-gradient(to bottom, transparent 0%, #000 9%,  #000 91%, transparent 100%);
      mask-image:
        linear-gradient(to right,  transparent 0%, #000 11%, #000 89%, transparent 100%),
        linear-gradient(to bottom, transparent 0%, #000 9%,  #000 91%, transparent 100%);
      -webkit-mask-composite:source-in;   /* Safari / Chrome vechi */
      mask-composite:intersect;           /* standard */
      -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
      -webkit-mask-size:100% 100%;mask-size:100% 100%;
    }
  }
  @supports not ((-webkit-mask-image:linear-gradient(#000,transparent)) or (mask-image:linear-gradient(#000,transparent))){
    .arch img{border-radius:18px;box-shadow:0 18px 44px rgba(129,88,192,.16)}
  }

  /* ---------- included strip ---------- */
  .included{
    background:linear-gradient(120deg,var(--lilac-deep),#7A44B8);
    color:var(--lilac-soft);padding:26px 0;
  }
  .included .wrap{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:center;justify-content:center}
  .included span{font-size:.86rem;font-weight:500;white-space:nowrap}
  .included span::before{content:"✓";margin-right:7px;color:var(--lilac)}

  /* ---------- sections ---------- */
  section.svc{padding:52px 0 8px}
  .eyebrow{
    font-size:.74rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
    color:var(--lilac-deep);margin-bottom:8px;
  }
  .svc h2{
    font-family:'Fraunces',serif;font-weight:500;font-size:1.85rem;
    letter-spacing:-.01em;margin-bottom:6px;
  }
  .svc .sub{font-size:.94rem;color:var(--mauve);margin-bottom:22px;max-width:62ch}

  .card{
    background:#fff;border:1px solid var(--lilac-line);border-radius:18px;
    padding:20px 20px 18px;margin-bottom:12px;
    position:relative;overflow:hidden;
    box-shadow:0 3px 14px rgba(129,88,192,.05);
    transition:box-shadow .2s, transform .2s;
  }
  .card:hover{box-shadow:0 10px 30px rgba(129,88,192,.12);transform:translateY(-2px)}
  .card::after{
    content:"";position:absolute;top:0;left:-70%;width:45%;height:100%;
    background:linear-gradient(100deg,transparent,rgba(239,231,248,.9),transparent);
    transform:skewX(-18deg);transition:left .55s ease;pointer-events:none;
  }
  .card:hover::after{left:130%}
  @media (prefers-reduced-motion:reduce){
    .card::after{display:none}
    .card:hover{transform:none}
  }
  .row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
  .row h3{font-family:'Fraunces',serif;font-weight:600;font-size:1.12rem;line-height:1.25}
  .price{font-family:'Fraunces',serif;font-weight:600;font-size:1.2rem;color:var(--lilac-deep);white-space:nowrap}
  .meta{font-size:.8rem;color:var(--mauve);margin-top:3px}
  .desc{font-size:.91rem;color:#54426B;margin-top:9px;max-width:60ch}
  .book{
    display:inline-block;margin-top:14px;
    color:var(--lilac-deep);border:1.5px solid var(--lilac-deep);
    text-decoration:none;font-weight:700;font-size:.82rem;letter-spacing:.05em;
    padding:9px 22px;border-radius:99px;transition:all .18s;
  }
  .book:hover{background:var(--lilac-deep);color:#fff}

  .note{
    font-size:.85rem;color:#54426B;background:var(--lilac-soft);
    border:1px solid var(--lilac-line);
    border-radius:14px;padding:15px 17px;margin:14px 0 6px;
  }
  .addons{list-style:none;margin-top:6px}
  .addons li{
    display:flex;justify-content:space-between;gap:10px;
    font-size:.9rem;padding:9px 2px;border-bottom:1px dashed var(--lilac-line);
  }
  .addons li:last-child{border-bottom:none}
  .addons b{color:var(--lilac-deep);font-weight:700;white-space:nowrap}

  /* ---------- galerie ---------- */
  .gallery{padding:56px 0 10px;text-align:center}
  .gallery h2{font-family:'Fraunces',serif;font-weight:500;font-size:1.85rem;margin-bottom:6px}
  .gallery .sub{font-size:.94rem;color:var(--mauve);margin-bottom:26px}
  .ggrid{
    display:grid;grid-template-columns:repeat(3,1fr);
    gap:30px 24px;
    align-items:start;
  }
  .gitem{
    position:relative;
    aspect-ratio:3/4;
    background:none;border:none;padding:0;box-shadow:none;
    transition:transform .3s ease;
  }
  .gitem::before{               /* halou lila discret in spate */
    content:"";position:absolute;z-index:0;
    left:-9%;right:-9%;top:-7%;bottom:-7%;
    background:radial-gradient(ellipse 64% 60% at 50% 48%,
               rgba(199,169,234,.34) 42%,
               rgba(214,190,242,.20) 68%,
               rgba(255,255,255,0) 90%);
    filter:blur(14px);pointer-events:none;
  }
  .gitem img{
    position:relative;z-index:1;
    width:100%;height:100%;object-fit:cover;display:block;
    transition:transform .45s ease;
  }
  @supports ((-webkit-mask-image:linear-gradient(#000,transparent)) or (mask-image:linear-gradient(#000,transparent))){
    .gitem img{
      /* aceeasi topire ca la poza mare, putin mai stransa */
      -webkit-mask-image:
        linear-gradient(to right,  transparent 0%, #000 9%, #000 91%, transparent 100%),
        linear-gradient(to bottom, transparent 0%, #000 7%, #000 93%, transparent 100%);
      mask-image:
        linear-gradient(to right,  transparent 0%, #000 9%, #000 91%, transparent 100%),
        linear-gradient(to bottom, transparent 0%, #000 7%, #000 93%, transparent 100%);
      -webkit-mask-composite:source-in;
      mask-composite:intersect;
      -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
      -webkit-mask-size:100% 100%;mask-size:100% 100%;
    }
  }
  /* ritm editorial: pozele din mijlocul randului coboara putin */
  .ggrid > .gitem:nth-child(2),
  .ggrid > .gitem:nth-child(5){margin-top:26px}
  .gitem:hover{transform:translateY(-4px)}
  .gitem:hover img{transform:scale(1.03)}
  @media (prefers-reduced-motion:reduce){
    .gitem, .gitem img{transition:none}
    .gitem:hover, .gitem:hover img{transform:none}
  }
  .gallery .ig{display:inline-block;margin-top:24px;color:var(--lilac-deep);font-weight:700;font-size:.9rem;text-decoration:none}
  .gallery .ig:hover{text-decoration:underline}

  /* ---------- testimoniale ---------- */
  .testi{padding:56px 0 8px;text-align:center}
  .testi h2{font-family:'Fraunces',serif;font-weight:500;font-size:1.85rem;margin-bottom:6px}
  .testi .sub{font-size:.94rem;color:var(--mauve);margin-bottom:24px}
  .tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;text-align:left}
  .tcard{
    background:#fff;border:1px solid var(--lilac-line);border-radius:16px;
    padding:20px;box-shadow:0 3px 14px rgba(129,88,192,.05);
    display:flex;flex-direction:column;
  }
  .tstars{color:#E8A33D;font-size:.95rem;letter-spacing:2px;margin-bottom:8px}
  .tcard p{font-size:.9rem;color:#54426B;flex:1}
  .tcard .tname{margin-top:12px;font-weight:700;font-size:.85rem;color:var(--lilac-deep)}
  .testi .rcta{
    display:inline-block;margin-top:24px;
    color:var(--lilac-deep);border:1.5px solid var(--lilac-deep);
    text-decoration:none;font-weight:700;font-size:.86rem;letter-spacing:.04em;
    padding:12px 26px;border-radius:99px;transition:all .18s;
  }
  .testi .rcta:hover{background:var(--lilac-deep);color:#fff}
  @media (max-width:720px){.tgrid{grid-template-columns:1fr}}

  /* ---------- quiz: ce ti se potriveste ---------- */
  .quiz{
    margin-top:52px;background:linear-gradient(150deg,#fff, var(--lilac-soft));
    border:1px solid var(--lilac-line);border-radius:20px;padding:30px 26px;
    box-shadow:0 3px 14px rgba(129,88,192,.05);
  }
  .quiz h2{font-family:'Fraunces',serif;font-weight:500;font-size:1.55rem;margin-bottom:6px}
  .quiz .sub{font-size:.92rem;color:var(--mauve);margin-bottom:18px}
  .qq{margin-bottom:16px}
  .qq .qt{font-weight:700;font-size:.95rem;margin-bottom:9px}
  .qopts{display:flex;flex-wrap:wrap;gap:8px}
  .qopts button{
    font-family:'Karla',sans-serif;font-size:.86rem;font-weight:500;
    padding:10px 16px;border-radius:99px;cursor:pointer;
    border:1.5px solid var(--lilac-line);background:#fff;color:#54426B;
    transition:all .15s;
  }
  .qopts button:hover{border-color:var(--lilac-deep)}
  .qopts button.sel{background:var(--lilac-deep);border-color:var(--lilac-deep);color:#fff}
  .qresult{
    margin-top:20px;background:#fff;border:1.5px solid var(--lilac-deep);
    border-radius:16px;padding:20px;display:none;
  }
  .qresult.show{display:block;animation:qin .3s ease}
  @keyframes qin{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
  .qresult .qlabel{
    font-size:.74rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
    color:var(--lilac-deep);margin-bottom:6px;
  }
  .qresult h3{font-family:'Fraunces',serif;font-weight:600;font-size:1.2rem}
  .qresult .qprice{font-family:'Fraunces',serif;color:var(--lilac-deep);font-weight:600;font-size:1.15rem}
  .qresult .qnote{font-size:.87rem;color:var(--mauve);margin-top:8px}
  .qresult .book{margin-top:14px}

  /* ---------- aftercare ---------- */
  .aftercare{
    margin-top:52px;background:#fff;border:1px solid var(--lilac-line);
    border-radius:20px;padding:30px 26px;
    box-shadow:0 3px 14px rgba(129,88,192,.05);
  }
  .aftercare h2{font-family:'Fraunces',serif;font-weight:500;font-size:1.55rem;margin-bottom:6px}
  .aftercare .sub{font-size:.92rem;color:var(--mauve);margin-bottom:14px}
  .aftercare ul{list-style:none}
  .aftercare li{
    font-size:.92rem;color:#54426B;padding:7px 0 7px 24px;position:relative;
  }
  .aftercare li::before{content:"✓";position:absolute;left:2px;color:var(--lilac-deep);font-weight:700}
  .aftercare .guar{
    margin-top:14px;background:var(--lilac-soft);border-radius:12px;
    padding:13px 16px;font-size:.9rem;color:#3D2650;
  }
  .aftercare .dl{
    display:inline-block;margin-top:16px;
    background:var(--lilac-deep);color:#fff;text-decoration:none;
    font-weight:700;font-size:.86rem;letter-spacing:.04em;
    padding:12px 26px;border-radius:99px;transition:background .2s;
  }
  .aftercare .dl:hover{background:var(--lilac-dark)}

  /* ---------- offer ---------- */
  .offer{margin:52px 0 0;padding:36px 26px;border-radius:20px;
    background:linear-gradient(135deg,var(--lilac-deep),#8A50C7 60%,var(--lilac));
    color:#fff;text-align:center;
    box-shadow:0 10px 28px rgba(129,88,192,.18)}
  .offer h2{font-family:'Fraunces',serif;font-weight:500;font-size:1.55rem;margin-bottom:8px}
  .offer p{font-size:.96rem;color:#F0E6FB;max-width:48ch;margin:0 auto}

  /* ---------- footer ---------- */
  footer{padding:96px 0 60px;text-align:center}
  /* linie subțire care desparte conținutul paginii de subsol, ca logoul
     să nu mai stea lipit de ultimul rând de text */
  footer::before{
    content:"";display:block;width:72px;height:1px;
    background:var(--lilac-line);margin:0 auto 56px;
  }
  footer .fbrand{margin:0 0 28px}
  footer .fbrand img{height:120px;width:auto;margin:0 auto;display:block;max-width:100%;object-fit:contain}
  footer p{font-size:.88rem;color:var(--mauve)}
  footer a{color:var(--lilac-deep);font-weight:700;text-decoration:none}
  footer a:hover{text-decoration:underline}
  .flinks{margin-top:14px;display:flex;justify-content:center;gap:22px;flex-wrap:wrap}
  .socials{margin-top:20px;display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
  .socials a{
    display:flex;align-items:center;justify-content:center;
    width:46px;height:46px;border-radius:50%;
    color:var(--lilac-deep);border:1.5px solid var(--lilac-line);
    background:#fff;transition:all .18s;
  }
  .socials a svg{width:21px;height:21px;fill:currentColor}
  .socials a:hover{border-color:var(--lilac-deep);background:var(--lilac-deep);color:#fff}
  /* reper invizibil: când ajunge în ecran, bara de jos se retrage */
  #footer-end{height:1px;width:100%}
  .legal{
    margin-top:28px;padding-top:20px;border-top:1px solid var(--lilac-line);
    font-size:.76rem;color:var(--mauve);line-height:1.6;max-width:64ch;
    margin-left:auto;margin-right:auto;
  }
  .legal .disc{margin-top:8px}
  .legal .ver{margin-top:10px;font-size:.66rem;letter-spacing:.14em;color:var(--lilac-line)}

  @media (max-width:720px){
    .hero{grid-template-columns:1fr;gap:28px;padding:44px 0 40px}
    .arch{max-width:320px;margin:0 auto}
    .ggrid{grid-template-columns:repeat(2,1fr);gap:20px 16px}
    .ggrid > .gitem:nth-child(2),
    .ggrid > .gitem:nth-child(5){margin-top:0}
    .row{flex-wrap:wrap}
    .book{padding:12px 26px;font-size:.88rem}   /* buton mai ușor de atins cu degetul */
    footer{padding-top:88px;padding-bottom:56px}
    footer::before{margin-bottom:48px}
    footer .fbrand{margin-bottom:24px}
    footer .fbrand img{height:96px}
  }

  /* ---------- bara fixă de booking, doar pe mobil ---------- */
  .stickybar{
    position:fixed;left:0;right:0;bottom:0;z-index:60;
    display:none;padding:12px 16px;
    padding-bottom:calc(12px + env(safe-area-inset-bottom));
    background:rgba(250,247,252,.94);
    -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
    border-top:1px solid var(--lilac-line);
    transform:translateY(110%);transition:transform .3s ease;
  }
  .stickybar.show{transform:translateY(0)}
  .stickybar a{
    display:block;text-align:center;
    background:var(--lilac-deep);color:#fff;text-decoration:none;
    font-weight:700;font-size:.95rem;letter-spacing:.04em;
    padding:12px;border-radius:99px;font-size:.86rem;
    box-shadow:0 4px 16px rgba(129,88,192,.24);
  }
  @media (max-width:720px){.stickybar{display:block}}
  @media (prefers-reduced-motion:reduce){.stickybar{transition:none}}

  /* ============ MENIU: butoane mici, mereu vizibile ============ */
  .brand{display:block}
  .mainnav{
    display:flex;flex-wrap:wrap;align-items:center;
    padding:2px 0 4px;
  }
  .mainnav a{
    font-size:.82rem;font-weight:500;letter-spacing:.02em;
    color:var(--lilac-deep);text-decoration:none;
    padding:8px 15px;border-radius:99px;margin:0 8px 8px 0;
    background:#fff;border:1px solid var(--lilac-line);
    transition:background .18s,border-color .18s,color .18s;
  }
  .mainnav a:hover{background:var(--lilac-soft);border-color:var(--lilac)}
  .mainnav a[aria-current]{
    background:var(--lilac-soft);border-color:var(--lilac);
    color:var(--lilac-dark);font-weight:700;
  }
  .mainnav a:focus-visible{outline:2px solid var(--lilac-deep);outline-offset:2px}

  @media (max-width:720px){
    /* pe telefon meniul se poate trage cu degetul, fara sa se rupa in randuri */
    .mainnav{
      flex-wrap:nowrap;overflow-x:auto;
      -webkit-overflow-scrolling:touch;scrollbar-width:none;
      padding:2px 20px 4px;margin:0 -20px;
    }
    .mainnav::-webkit-scrollbar{display:none}
    .mainnav a{flex:none;font-size:.8rem;padding:8px 14px}
  }

  /* ============ CAP DE PAGINĂ INTERIOARĂ ============ */
  .pagehead{padding:44px 0 4px}
  .pagehead h1{
    font-family:'Fraunces',serif;font-weight:500;
    font-size:clamp(2.35rem,8vw,3rem);line-height:1.08;
  }
  /* prima secțiune de sub titlu nu mai are nevoie de spațiul ei obișnuit de sus */
  #services section.svc:first-child{padding-top:22px}
  .pagehead + .gallery{padding-top:22px}
  .pagehead + .aftercare{margin-top:24px}   /* e cutie cu chenar: mutăm marginea, nu padding-ul dinăuntru */
  .pagehead + .stops{margin-top:24px}
  .pagehead p{margin-top:14px;max-width:56ch;color:#54426B}
  .pagelinks{padding:10px 0 40px}
  .pagelinks a{
    color:var(--lilac-deep);font-weight:700;font-size:.92rem;text-decoration:none;
  }
  .pagelinks a:hover{text-decoration:underline}

  /* ============ ADRESA ============ */
  .addrcard{
    display:flex;flex-wrap:wrap;align-items:baseline;
    background:var(--lilac-soft);border:1px solid var(--lilac-line);
    border-radius:16px;padding:20px 22px;margin-top:26px;
  }
  .addrcard > *{margin:0 16px 6px 0}
  .addrcard strong{font-family:'Fraunces',serif;font-size:1.3rem;font-weight:500}
  .addrcard span{color:var(--mauve)}
  .addrcard a{margin-left:auto;color:var(--lilac-deep);font-weight:700;font-size:.9rem;text-decoration:none}
  .addrcard a:hover{text-decoration:underline}
  .faddr{margin-top:4px}
  .faddr strong{display:block;font-family:'Fraunces',serif;font-size:1.05rem;font-weight:500}
  .faddr span{color:var(--mauve);font-size:.92rem}

  /* ============ PLANIFICATOR DE DRUM ============ */
  .planner{
    background:#fff;border:1px solid var(--lilac-line);
    border-radius:18px;padding:24px;margin-top:26px;
    box-shadow:0 10px 30px rgba(129,88,192,.06);
  }
  .planner h2{font-family:'Fraunces',serif;font-weight:500;font-size:1.5rem}
  .planner .sub{color:var(--mauve);margin-top:8px;font-size:.95rem}
  .planner label{
    display:block;margin-top:20px;margin-bottom:8px;
    font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--mauve);
  }
  .planner input,
  .planner select,
  .planner textarea{
    width:100%;font-family:'Karla',sans-serif;font-size:1rem;
    padding:14px 16px;border:1px solid var(--lilac-line);border-radius:12px;
    background:var(--bg);color:var(--ink);
    -webkit-appearance:none;appearance:none;
  }
  .planner textarea{resize:vertical;min-height:88px;line-height:1.5}
  /* sageata de la lista derulantă, desenată în CSS ca să arate la fel peste tot */
  .planner select{
    padding-right:42px;
    background-image:
      linear-gradient(45deg,transparent 50%,var(--lilac-deep) 50%),
      linear-gradient(135deg,var(--lilac-deep) 50%,transparent 50%);
    background-position:calc(100% - 22px) 22px, calc(100% - 16px) 22px;
    background-size:6px 6px, 6px 6px;
    background-repeat:no-repeat;
  }
  .planner input:focus,
  .planner select:focus,
  .planner textarea:focus{outline:2px solid var(--lilac-deep);outline-offset:1px}
  .planner .btnrow{display:flex;flex-wrap:wrap;margin-top:14px}
  .planner .btnrow button{margin:0 10px 10px 0}
  .planner button{
    font-family:'Karla',sans-serif;font-weight:700;font-size:.92rem;
    letter-spacing:.04em;padding:14px 26px;border-radius:99px;cursor:pointer;border:none;
  }
  #plan-go{background:var(--lilac-deep);color:#fff;flex:1 1 200px}
  #plan-go:hover{background:var(--lilac-dark)}
  #plan-here{background:transparent;color:var(--lilac-deep);border:1px solid var(--lilac-line);flex:1 1 180px}
  /* butonul de WhatsApp: verdele lor, ca să se recunoască din prima */
  .planner button.wa{background:#25D366;color:#0B3B22;flex:1 1 100%}
  .planner button.wa:hover{background:#1FB855;color:#fff}
  #plan-here:hover{border-color:var(--lilac-deep)}
  .planner .pnote{margin-top:12px;font-size:.88rem;color:var(--mauve);min-height:1.2em}

  /* varianta secundară de contact, sub formular */
  .orelse{text-align:center;margin-top:22px}
  .cta.ghost{
    background:transparent;color:var(--lilac-deep);
    border:1px solid var(--lilac-line);box-shadow:none;margin-top:0;
  }
  .cta.ghost:hover{background:var(--lilac-soft);border-color:var(--lilac)}

  /* ============ CELE DOUĂ STAȚII ============ */
  .stops{margin-top:34px}
  .stops h2{font-family:'Fraunces',serif;font-weight:500;font-size:1.5rem}
  .stops .sub{color:var(--mauve);margin-top:8px;font-size:.95rem}
  /* textul de la "Driving here" (satnav) — putin mai mare, se citea greu */
  .stops.drive .sub{font-size:1.08rem;color:#54426B}
  .stop{display:flex;align-items:flex-start;padding:16px 0}
  .stop .no{margin-right:14px}
  .stop .no{
    flex:none;width:52px;height:34px;border-radius:99px;
    background:var(--lilac-deep);color:#fff;
    display:flex;align-items:center;justify-content:center;
    font-weight:700;font-size:.82rem;letter-spacing:.03em;
  }
  .stop .no.alt{background:var(--lilac)}
  .stop b{display:block;font-weight:700;font-size:1rem}
  .stop p{color:var(--mauve);font-size:.93rem;margin-top:2px}
  .tarmac{
    position:relative;height:26px;
    background:
      repeating-linear-gradient(90deg,var(--lilac-line) 0 14px,transparent 14px 28px)
      center/100% 2px no-repeat;
  }
  .tarmac span{
    position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
    background:var(--bg);padding:0 12px;
    font-size:.7rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--mauve);
  }
  .walkline{
    margin-top:14px;padding-left:16px;border-left:3px solid var(--blush);
    color:#54426B;font-size:.95rem;
  }
  .kv{list-style:none;margin-top:24px}
  .kv li{
    display:flex;padding:12px 0;border-top:1px solid var(--lilac-line);
    font-size:.95rem;
  }
  .kv .k{margin-right:16px}
  .kv .k{
    flex:none;width:96px;color:var(--mauve);
    font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding-top:3px;
  }
  .kv a{color:var(--lilac-deep)}
  @media (max-width:520px){
    .kv li{flex-direction:column}
    .kv .k{width:auto;margin:0 0 4px}
  }

  /* ============ PLASE DE SIGURANȚĂ PENTRU TELEFOANE MAI VECHI ============ */

  /* aspect-ratio a apărut abia în Safari 15. Fără ea, pozele ar avea
     înălțime zero, așa că le ținem cu vechiul truc cu padding. */
  @supports not (aspect-ratio: 3 / 4){
    .arch{height:0;padding-top:133.33%}
    .arch img{position:absolute;top:0;left:0;height:100%}
    .gitem{height:0;padding-top:133.33%}
    .gitem img{position:absolute;top:0;left:0;height:100%}
  }

  /* ============ TITLURI ============
     Playfair Display: serif elegant, cu contrast mare intre linii
     groase si subtiri — arata a brand de lux si ramane foarte lizibil.
     Litera e mov plin; peste ea trece rar o sclipire aurie, ca lumina
     pe gel. Daca browserul nu stie sa decupeze fundalul pe litera,
     ramane movul simplu, deci nu dispare niciun titlu.
     Ritmul sclipirii: durata din "animation" (mai jos). */
  .pagehead h1,
  .svc h2, .gallery h2, .testi h2, .quiz h2,
  .aftercare h2, .planner h2, .stops h2, .vipcheck h2{
    font-family:'Playfair Display',Fraunces,Georgia,serif;
    font-weight:600;
    letter-spacing:-.005em;
    color:var(--lilac-dark);
  }
  .hero h1 .shine{color:var(--lilac-dark)}
  .pagehead h1,
  .svc h2, .gallery h2, .testi h2, .quiz h2,
  .aftercare h2, .planner h2, .stops h2{
    width:-moz-fit-content;width:fit-content;max-width:100%;
  }
  .vipcheck h2{color:#fff}

  @supports (-webkit-background-clip: text) or (background-clip: text){
    .pagehead h1,
    .svc h2, .gallery h2, .testi h2, .quiz h2,
    .aftercare h2, .planner h2, .stops h2{
      background:linear-gradient(100deg,
        var(--lilac-dark) 40%,
        #C79A3C 47%, #F6E3A8 50%, #C79A3C 53%,
        var(--lilac-dark) 60%);
      background-size:300% 100%;
      background-position:130% 0;
      -webkit-background-clip:text;background-clip:text;
      -webkit-text-fill-color:transparent;
      padding-bottom:.08em;
      animation:goldshine 4.8s ease-in-out infinite;
    }
    /* pe fundal violet, sclipirea porneste de la alb */
    .vipcheck h2{
      background:linear-gradient(100deg,
        #fff 40%, #E8C877 47%, #FFF6DC 50%, #E8C877 53%, #fff 60%);
      background-size:300% 100%;
      background-position:130% 0;
      -webkit-background-clip:text;background-clip:text;
      -webkit-text-fill-color:transparent;
      animation:goldshine 4.8s ease-in-out infinite;
    }
  }
  @keyframes goldshine{
    0%      {background-position:130% 0}
    35%     {background-position:-30% 0}   /* sclipirea trece devreme */
    36%,100%{background-position:130% 0}   /* apoi pauza pana la urmatoarea */
  }
  @media (prefers-reduced-motion:reduce){
    .pagehead h1, .svc h2, .gallery h2, .testi h2, .quiz h2,
    .aftercare h2, .planner h2, .stops h2, .vipcheck h2{animation:none}
  }

  /* titlurile centrate rămân centrate */
  .testi h2, .gallery h2{margin-left:auto;margin-right:auto}
  @media (prefers-reduced-motion:reduce){
    .pagehead h1{animation:none}
  }

  /* ============ ECRANE FOARTE MICI ============ */
  @media (max-width:380px){
    .brand img{height:46px}
    footer::before{margin-bottom:40px}
    footer .fbrand img{height:82px}
    .wrap{padding:0 16px}
    .mainnav{padding-left:16px;padding-right:16px;margin:0 -16px}
    .hero h1{font-size:1.9rem}
    .pagehead h1{font-size:2rem}
    .addrcard{padding:16px}
    .planner{padding:18px}
  }

  /* ============ TABLETE ȘI LAPTOPURI ============ */
  @media (min-width:721px) and (max-width:1024px){
    .ggrid{gap:12px}
    .hero{gap:32px}
  }
  @media (min-width:1200px){
    .wrap{max-width:1060px}
  }

  /* pe ecrane late galeria stă mai bine pe trei coloane egale, deja e așa;
     aici doar lăsăm pozele să nu devină uriașe pe monitoare mari */
  @media (min-width:1400px){
    .arch{max-width:430px}
  }

  /* ---------- Wow VIP Club ---------- */
  .vipcheck{
    margin-top:52px;padding:30px 26px;border-radius:20px;
    background:linear-gradient(135deg,var(--lilac-deep),#8A50C7 60%,var(--lilac));
    color:#fff;box-shadow:0 10px 28px rgba(129,88,192,.18);
  }
  .vipcheck h2{font-family:'Playfair Display',Fraunces,Georgia,serif;font-weight:600;font-size:1.55rem;margin-bottom:6px}
  .vipcheck .sub{font-size:.92rem;color:#F0E6FB;margin-bottom:16px}
  .vcform{display:flex;gap:10px;flex-wrap:wrap}
  .vcform input{
    flex:1 1 200px;min-width:0;font-family:'Karla',sans-serif;font-size:1rem;
    padding:13px 16px;border:none;border-radius:99px;color:var(--ink);background:#fff;
  }
  .vcform input:focus{outline:3px solid rgba(255,255,255,.55);outline-offset:1px}
  .vcform button{
    font-family:'Karla',sans-serif;font-weight:700;font-size:.9rem;letter-spacing:.04em;
    padding:13px 30px;border:none;border-radius:99px;cursor:pointer;
    background:#fff;color:var(--lilac-deep);transition:transform .15s;
  }
  .vcform button:hover{transform:translateY(-1px)}
  .vcresult{display:none}
  .vcresult.show{
    display:block;margin-top:16px;background:rgba(255,255,255,.16);
    border:1px solid rgba(255,255,255,.35);border-radius:14px;padding:16px 18px;
  }
  .vcresult.warn{font-size:.92rem;line-height:1.5}
  .vchi{font-size:.9rem;color:#F0E6FB}
  .vcbig{font-family:'Fraunces',serif;font-size:2.3rem;line-height:1.1;margin:2px 0 6px}
  .vcbig span{font-family:'Karla',sans-serif;font-size:.95rem;font-weight:500}
  .vcnext{font-size:.9rem;color:#F3ECFC}
  .vcnote{margin-top:14px;font-size:.82rem;color:#E7D9F8}

  .ptable{margin-top:4px}
  .prow{
    display:flex;gap:14px;align-items:baseline;
    padding:10px 2px;border-bottom:1px dashed var(--lilac-line);
  }
  .prow:last-child{border-bottom:none}
  .ppts{
    flex:0 0 auto;min-width:74px;font-family:'Fraunces',serif;font-weight:600;
    font-size:1rem;color:var(--lilac-deep);
  }
  .ptxt{font-size:.92rem;color:#54426B}
  @media (max-width:420px){
    .ppts{min-width:64px;font-size:.94rem}
    .vcbig{font-size:2rem}
  }

  /* ---------- Wow VIP Club: anunt "in curand" ---------- */
  .soonbar{
    margin-top:26px;padding:28px 26px;border-radius:20px;text-align:center;
    background:linear-gradient(135deg,var(--lilac-deep),#8A50C7 60%,var(--lilac));
    color:#fff;box-shadow:0 12px 30px rgba(129,88,192,.20);
  }
  .soonpill{
    display:inline-block;margin-bottom:10px;
    font-size:.68rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
    padding:6px 14px;border-radius:99px;
    background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.45);
    color:#fff;
  }
  .soonbar h2{
    font-family:'Playfair Display',Fraunces,Georgia,serif;font-weight:600;
    font-size:1.7rem;margin-bottom:8px;color:#fff;
  }
  .soonbar p{font-size:.95rem;color:#F1E7FB;max-width:52ch;margin:0 auto}
  .soonbar .cta{
    margin-top:18px;background:#fff;color:var(--lilac-deep);
    box-shadow:0 8px 20px rgba(0,0,0,.12);
  }
  .soonbar .cta:hover{background:#F6F0FF}

  /* continutul de dedesubt: se vede, dar estompat, ca o previzualizare */
  .preview{
    position:relative;
    filter:blur(3.4px) saturate(.85);
    opacity:.62;
    pointer-events:none;        /* nu se poate apasa nimic */
    user-select:none;
    margin-top:10px;
  }
  .preview::after{              /* voal care il stinge spre jos */
    content:"";position:absolute;inset:0;
    background:linear-gradient(180deg, rgba(250,247,252,.25) 0%, rgba(250,247,252,.75) 100%);
    pointer-events:none;
  }
  @media (max-width:480px){
    .preview{filter:blur(2.6px) saturate(.85)}
    .soonbar h2{font-size:1.4rem}
  }

  /* punctul auriu de langa VIP Club, cat timp e "in curand" */
  #mainnav .navdot{
    display:inline-block;width:5px;height:5px;margin-left:6px;
    border-radius:50%;background:var(--gold);vertical-align:middle;
  }

/* Pasul 185: same lilac identity, compact booking and preparation notices. */
.booking-help{margin:22px 0;padding:20px;border:1px solid var(--lilac-line);border-radius:18px;background:var(--lilac-soft)}
.booking-help h2{font-family:'Fraunces',Georgia,serif;font-size:1.35rem;line-height:1.3;color:var(--plum)}
.booking-help p{margin-top:10px;max-width:76ch;font-size:.95rem}
.booking-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.booking-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border:1px solid var(--lilac-dark);border-radius:99px;color:var(--plum);font-weight:700;text-decoration:none;background:#fff;overflow-wrap:anywhere}
.booking-actions a:hover{background:var(--lilac-soft)}
.booking-help .booking-request-note{font-size:.85rem;color:#54426B}
.paraffin-notice{padding:15px 17px;margin:16px 0;background:#fff9ee;border:1px solid #c79a3c;border-radius:14px;color:var(--ink)}
.paraffin-notice h3{font-family:'Karla',sans-serif;font-size:1rem;line-height:1.4}
.paraffin-notice p{font-size:.9rem;margin-top:7px}
.paraffin-notice[hidden]{display:none}
.booking-hint{font-size:.9rem;color:#54426B;max-width:75ch}
.mainnav a.nav-booking{background:var(--lilac-dark);color:#fff}
.cta,.book{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--plum);outline-offset:3px}
html{scroll-padding-top:170px}
@media(max-width:720px){
  body{padding-bottom:84px}
  .booking-help{padding:16px}
  .booking-actions a{flex:1 1 200px}
  .booking-help h2{font-size:1.2rem}
  .mainnav a{min-height:36px;display:inline-flex;align-items:center;justify-content:center}
}
@media(max-width:720px){
  /* The nav scrolls inside the viewport; negative outer margins caused overflow. */
  .mainnav{margin:0;max-width:100%;width:100%}
}
@media(max-width:360px){
  .bar{flex-wrap:wrap;justify-content:center;padding:8px 12px}
  .topright{justify-content:center;flex-wrap:wrap}
}
/* Keep decorative image halos within the page gutters. */
.arch::before{left:max(-8%,-14px);right:max(-8%,-14px)}
.gitem::before{left:max(-9%,-14px);right:max(-9%,-14px)}
.included span{max-width:100%;white-space:normal}

@media(max-width:720px){html{scroll-padding-bottom:96px}}

.stickybar:not(.show){visibility:hidden}
.stickybar.show{visibility:visible}

/* Pasul 187: existing pedicure add-ons become contextual booking links. */
.addon-booking{display:flex;flex-direction:column;justify-content:center;min-height:44px;min-width:0;flex:1;padding:8px 10px 8px 0;color:var(--plum);text-underline-offset:3px;overflow-wrap:anywhere}
.addon-booking small{display:block;font-size:.78rem;text-decoration:none;color:#54426B}
.addons li{align-items:center}
.addon-booking-note{font-size:.85rem;color:#54426B;margin-top:12px}
.addon-details{flex:1;min-width:0}
.addon-time,.addon-description{display:block;font-size:.85rem;color:#54426B;line-height:1.5}
.addon-description{margin:6px 0 4px}

/* Accessible entry point without changing the visual identity. */
.skip-link{position:fixed;left:12px;top:-100px;z-index:1000;background:#2E1F3D;color:#fff;padding:12px 18px;border-radius:8px}
.skip-link:focus{top:8px}
.lang a{text-decoration:none;display:flex;align-items:center;gap:5px}
:focus-visible{outline:3px solid #6B44A8;outline-offset:3px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Catalogue 210A: Pedicure Extras remain informational. */
.addon-name{display:block;font-weight:600;overflow-wrap:anywhere}
/* Long catalogue headings also reflow with text enlarged to 200%. */
.svc h2{max-inline-size:100%;overflow-wrap:anywhere}

/* Long contact and privacy wording must reflow at 200% text on narrow screens. */
#l-registered,#l-email,#l-email-note,#wa-privacy{overflow-wrap:anywhere}
/* Booking/aftercare wording and page titles must reflow at 320px / 200% text. */
.pagehead h1,.booking-help,#wa-form,.aftercare{overflow-wrap:anywhere}
