/* =========================
       Design tokens
       ========================= */
    :root{
      --green-dark:#0f2f23; --green:#1f5f44; --green-600:#2a7a56;
      --gold:#c79b49; --taupe:#dcd0bb; --lgray:#e6e8e2; --dgray:#3f4540; --white:#ffffff;

      --bg-grad-1:#f9faf7; --bg-grad-2:#eef5f0;
      --surface:#ffffff; --surface-soft:#f7f8f5; --surface-muted:#eef2ef;
      --ink:color-mix(in srgb, var(--green-dark) 78%, #111);
      --muted:color-mix(in srgb, var(--dgray) 65%, color-mix(in srgb, var(--green) 35%, #95a097));
      --border-soft:rgba(11,54,29,.12);
      --shadow:0 24px 60px rgba(11,54,29,.08);
      --shadow-card:0 30px 60px rgba(18,56,42,.12);
 
      --free:var(--green); --busy:#d6453d; --today-bg:#f4faf6; --grid-border:#e2e7df; --chip-bg:#f9fbf9;

      --radius-xl:2.4rem; --radius-lg:1.35rem; --radius-md:.95rem; --radius-sm:.65rem;
      --container:clamp(280px,92vw,1180px);
      --header-blur:rgba(255,255,255,.9);
      --icon-bg:rgba(15,47,35,.08);
      --icon-color:#1f5f44;

      --font-ui:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;
      --font-heading:var(--font-ui);
    }

    /* =========================
       Base
       ========================= */
    *,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
    html{font-size:16px;scroll-behavior:smooth}
    body{
      font-family:var(--font-ui); color:var(--ink); line-height:1.6;
      background:linear-gradient(135deg, var(--bg-grad-1) 0%, var(--bg-grad-2) 100%);
      min-height:100vh;
    }
    img{max-width:100%;display:block}
    a{color:inherit;text-decoration:none;transition:color .2s ease}
    .sr-only{
      position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
      clip:rect(0,0,0,0);white-space:nowrap;border:0;
    }
    .mobile-close{display:none;}
    .mobile-close__label{font-weight:700;}
    .container{width:var(--container);margin-inline:auto;padding-inline:1.25rem}

    /* =========================
       Buttons
       ========================= */
    .btn{
      display:inline-flex;align-items:center;justify-content:center;gap:.55em;
      padding:.85rem 1.4rem;border-radius:999px;border:1px solid transparent;
      font-weight:700;cursor:pointer;transition:.22s ease;white-space:nowrap;user-select:none;line-height:1;
      font-family:var(--font-heading);
    }
    .btn:focus-visible{outline:2px solid color-mix(in srgb, var(--gold) 60%, #fff);outline-offset:2px}
    .btn--primary{
      background:linear-gradient(135deg,#153d30,#2d7a58);color:#fff;border:0;
      box-shadow:0 18px 40px rgba(17,59,44,.28);
    }
    .btn--primary:hover{transform:translateY(-2px);filter:brightness(1.03)}
    .btn--ghost{
      background:var(--surface);border-color:color-mix(in srgb, var(--green-dark) 12%, transparent);
      color:var(--green-dark);box-shadow:0 10px 26px rgba(18,56,42,.12);
    }
    .btn--outline{
      color:var(--green-dark);border-color:rgba(21,63,47,.2);background:transparent;
    }
    .btn--outline:hover{border-color:rgba(21,63,47,.4);color:var(--green)}
    .btn--loading{position:relative;pointer-events:none;opacity:.85}
    .btn--loading::after{content:'';position:absolute;width:1rem;height:1rem;border:2px solid rgba(255,255,255,.9);border-top-color:transparent;border-radius:999px;right:.75rem;animation:spin 1s linear infinite}
    @keyframes spin{to{transform:rotate(360deg);}}
    .btn--ghost[disabled], .btn--primary[disabled], .btn--outline[disabled]{opacity:.5;cursor:not-allowed}
    .floating-cart{
      position:fixed;
      right:2.5rem;
      bottom:2rem;
      display:flex;
      align-items:center;
      gap:.4rem;
      padding:.65rem 1rem;
      border:none;
      border-radius:999px;
      background:var(--green-dark);
      color:#fff;
      font-weight:700;
      box-shadow:0 22px 48px rgba(15,47,35,.35);
      opacity:0;
      pointer-events:none;
      transform:translateY(12px);
      transition:opacity .2s ease, transform .2s ease;
      z-index:90;
    }
    .floating-cart--visible{opacity:1;pointer-events:auto;transform:translateY(0);}
    .floating-cart__icon{font-size:1rem;line-height:1;}
    .floating-cart__count{font-size:1rem;font-weight:800;min-width:1.5rem;text-align:center;}

    /* =========================
       Header & hero
       ========================= */
    .site-header{
      position:sticky;top:0;z-index:120;
      background:var(--header-blur);
      backdrop-filter:blur(24px);
      border-bottom:1px solid rgba(14,46,34,.08);
      box-shadow:0 12px 30px rgba(15,47,35,.05);
    }
    .site-header__inner{display:flex;align-items:center;gap:1.5rem;padding-block:.85rem;}
    .brand{display:flex;align-items:center;gap:.85rem;color:var(--green-dark);font-weight:800;text-decoration:none;}
    .brand__mark{
      width:var(--site-logo-size,46px);height:var(--site-logo-size,46px);border-radius:50%;background:var(--green-dark);color:#fff;
      display:grid;place-items:center;font-weight:800;letter-spacing:.08em;font-size:1rem;
      box-shadow:0 16px 32px rgba(16,54,38,.35);
    }
    .brand__mark--image{padding:0;background:transparent;box-shadow:none;}
    .brand__mark--image img{width:100%;height:100%;object-fit:contain;display:block;}
    @media (max-width: 768px){
      .brand__mark{
        width:var(--site-logo-mobile-size, var(--site-logo-size,46px));
        height:var(--site-logo-mobile-size, var(--site-logo-size,46px));
      }
    }
    .brand__copy{display:flex;flex-direction:column;line-height:1;}
    .brand__copy strong{font-size:1.1rem;}
    .brand__copy small{font-size:.78rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;}
    .mobile-nav-btn{
      display:none;align-items:center;justify-content:center;width:2.7rem;height:2.7rem;
      border-radius:999px;border:1px solid rgba(16,54,38,.14);background:var(--surface);
      color:var(--green-dark);font-size:1.35rem;transition:.2s ease;
    }
    .mobile-nav-btn:active{transform:scale(.94);}
    .header-actions{display:flex;align-items:center;gap:1rem;margin-left:auto;}
    .nav-link{
      padding:.42rem .9rem;border-radius:999px;font-weight:600;color:var(--muted);
      border:1px solid transparent;
    }
    .nav-link:hover{color:var(--green);}
    .nav-link--pill{
      border-color:rgba(18,56,42,.14);
      background:var(--surface);
      box-shadow:0 12px 26px rgba(18,56,42,.12);
      color:var(--green-dark);
    }
    .header-controls{display:flex;align-items:center;gap:.75rem;}
    .lang-picker{display:flex;flex-direction:column;gap:.15rem;font-size:.78rem;color:var(--muted);}
    .lang-picker__label{font-weight:700;letter-spacing:.08em;text-transform:uppercase;}
    .lang-picker__select{
      appearance:none;border-radius:.8rem;border:1px solid rgba(14,46,34,.14);
      background:var(--surface);padding:.45rem .9rem;font-weight:600;color:var(--green-dark);cursor:pointer;
    }
    .cart-bubble{display:inline-flex;align-items:center;justify-content:center;min-width:1.7rem;height:1.7rem;border-radius:999px;background:rgba(255,255,255,.15);font-size:.85rem;font-weight:700;border:1px solid rgba(255,255,255,.35);}
    .cart-button{display:inline-flex;align-items:center;gap:.45rem;padding-inline:1.15rem;}
    .cart-button__icon{font-size:1rem}
    .header-auth{display:flex;align-items:center;gap:.75rem;}

    .user-menu{position:relative;}
    .user-menu__trigger{
      display:flex;align-items:center;gap:.75rem;padding:.35rem .85rem .35rem .35rem;
      border-radius:999px;border:1px solid rgba(16,54,38,.14);background:var(--surface);
      box-shadow:0 16px 32px rgba(15,47,35,.16);cursor:pointer;
    }
    .user-menu__avatar{
      width:42px;height:42px;border-radius:50%;background:var(--green-dark);
      color:#fff;display:grid;place-items:center;font-weight:800;
    }
    .user-menu__label{display:flex;flex-direction:column;line-height:1;}
    .user-menu__greeting{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
    .user-menu__dropdown{
      position:absolute;right:0;top:calc(100% + .65rem);width:min(320px,90vw);
      background:var(--surface);border-radius:1.3rem;padding:1.2rem;
      box-shadow:var(--shadow-card);opacity:0;pointer-events:none;transform:translateY(-8px);
      transition:.2s ease;
    }
    .user-menu.is-open .user-menu__dropdown{opacity:1;pointer-events:auto;transform:translateY(0);}
    .user-menu__header{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.8rem;}
    .user-menu__header small{font-size:.85rem;color:var(--muted);}
    .user-menu__list{display:flex;flex-direction:column;gap:.2rem;}
    .user-menu__link{
      display:flex;align-items:center;gap:.65rem;padding:.55rem .4rem;border-radius:.85rem;
      transition:background .2s ease, color .2s ease;font-weight:600;color:var(--ink);
    }
    .user-menu__link svg{width:18px;height:18px;color:var(--icon-color);}
    .user-menu__link:hover{background:var(--surface-muted);}
    .user-menu__link--danger{color:#d6453d;}
    .user-menu__footer{margin-top:.9rem;padding-top:.9rem;border-top:1px solid rgba(16,54,38,.08);display:flex;flex-direction:column;gap:.4rem;}
    .user-menu__footer-link{font-size:.85rem;color:var(--muted);}

    .hero{padding:4.75rem 0 3.1rem;}
    .hero__inner{
      display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,320px);
      gap:3rem;align-items:center;
    }
    .hero__badge{
      display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .85rem;
      border-radius:999px;background:rgba(31,95,68,.12);color:var(--green-dark);
      font-size:.85rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
    }
    .hero h1{font:900 clamp(2.2rem,5vw,3.4rem)/1.05 var(--font-heading);color:var(--green-dark);margin-top:1rem;}
    .hero p{font-size:1.06rem;color:var(--muted);max-width:46ch;margin-top:.85rem;}
    .hero__actions{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:1.35rem;}
    .hero__card{
      background:var(--surface);border-radius:var(--radius-xl);padding:1.6rem;
      box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:1.1rem;
      border:1px solid rgba(16,54,38,.05);
    }
    .hero__stat{display:flex;flex-direction:column;gap:.2rem;}
    .hero__stat strong{font-size:1.45rem;color:var(--green-dark);}
    .hero__stat span{font-size:.9rem;color:var(--muted);}

    h2{font:900 1.5rem/1.2 var(--font-heading)}
    h3{font:800 1.1rem/1.2 var(--font-heading)}

    /* =========================
       Filters & Cards
       ========================= */
    .search-panel{
      margin-top:1.75rem;background:var(--surface);border-radius:var(--radius-xl);
      padding:1.6rem;border:1px solid rgba(16,54,38,.06);box-shadow:var(--shadow-card);
    }
    .services-shell{padding-block:3rem;}
    .filters{display:flex;flex-direction:column;gap:1.25rem;}
    .filters__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;}
    .pill-input{display:flex;flex-direction:column;gap:.35rem;}
    .pill-input__label{font-size:.78rem;font-weight:700;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;}
    .pill-input__control{
      display:flex;align-items:center;gap:.6rem;padding:.75rem 1rem;border-radius:999px;
      border:1px solid rgba(16,54,38,.12);background:var(--surface-soft);box-shadow:inset 0 1px 0 rgba(255,255,255,.6);
    }
    .pill-input__icon{width:1.2rem;height:1.2rem;color:var(--icon-color);display:grid;place-items:center;}
    .pill-input input,.pill-input select{
      border:0;background:transparent;font-size:1rem;color:var(--ink);flex:1;min-width:0;
    }
    .pill-input input:focus,.pill-input select:focus{outline:none;}
    .filters__actions{display:flex;flex-wrap:wrap;gap:.75rem;}
    .category-headline{display:flex;flex-direction:column;gap:.45rem;margin-top:2.5rem;}
    .category-headline p{color:var(--muted);max-width:60ch;}
    .category-pills{
      margin-top:1rem;display:flex;flex-wrap:wrap;gap:.6rem;
    }
    .category-pill{
      display:inline-flex;align-items:center;justify-content:center;
      padding:.4rem 1.15rem;border-radius:999px;border:1px solid rgba(16,54,38,.18);
      font-weight:600;color:var(--muted);background:var(--surface);transition:.2s ease;
    }
    .category-pill.is-active{background:var(--green-dark);color:#fff;border-color:var(--green-dark);box-shadow:0 10px 24px rgba(18,56,42,.26);}

    .services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:1.5rem;margin-top:1.5rem;}
    .service-card{
      background:var(--surface);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;
      border:1px solid rgba(16,54,38,.06);box-shadow:var(--shadow-card);height:100%;transition:transform .2s ease, box-shadow .2s ease;
      cursor:pointer;
    }
    .service-card:focus-visible{outline:2.5px solid color-mix(in srgb,var(--gold) 70%,#fff);outline-offset:4px}
    .service-card:hover{transform:translateY(-4px);box-shadow:0 30px 70px rgba(15,47,35,.15);}
    .service-card__img{position:relative;aspect-ratio:5/3;background:var(--surface-muted);}
    .service-card__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
    .service-card__img--empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--muted);font-size:.9rem;}
    .service-card__tags{position:absolute;top:1rem;left:1rem;display:flex;flex-wrap:wrap;gap:.4rem;}
    .service-card__tag{
      padding:.2rem .75rem;border-radius:999px;font-size:.8rem;font-weight:600;
      background:rgba(255,255,255,.9);color:var(--green-dark);backdrop-filter:blur(6px);
    }
    .service-card__tag--accent{background:rgba(199,155,73,.9);color:#fff;}
    .service-card__body{padding:1.25rem;display:flex;flex-direction:column;gap:.65rem;flex:1;}
    .service-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;}
    .service-card__header h3{font-size:1.15rem;font-weight:800;color:var(--ink);flex:1;min-width:0;}
    .service-card__duration{font-size:.9rem;color:var(--muted);font-weight:600;flex-shrink:0;white-space:nowrap;}
    .service-card__desc{font-size:.92rem;color:var(--muted);}
    .service-card__price{display:flex;align-items:center;gap:.4rem;font-weight:700;color:var(--green-dark);}
    .service-card__price .old{font-size:.9rem;color:#9aa0a0;text-decoration:line-through;}
    .service-card__actions{
      margin-top:auto;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:.75rem;
      flex-wrap:wrap;
    }
    .service-card__cta{
      flex-shrink:0;
      white-space:nowrap;
    }
    .stub{font-style:italic;color:var(--muted);padding:1rem;border:1px dashed rgba(16,54,38,.2);border-radius:var(--radius-md);}
    .section-heading{margin:2rem 0 1rem;font:800 1.25rem/1.2 var(--font-heading);color:var(--green-dark);}
    .section-divider{margin:2rem 0;border:none;border-top:1px solid rgba(16,54,38,.12);}
    .category-section{margin-top:2.5rem;}
    .catalog-content{margin-top:1.5rem;}
    .muted{color:var(--muted);font-size:.92rem}
    .old{color:#9aa0a0;text-decoration:line-through}
    .badge{font-size:.75rem;background:var(--gold);color:#fff;border-radius:999px;padding:.18rem .55rem;margin-left:.35rem}

    /* =========================
       Footer
       ========================= */
    .site-footer{text-align:center;font-size:.875rem;color:var(--muted);padding:2rem 1rem}

    /* =========================
       Modal
       ========================= */
    .modal{position:fixed;inset:0;background:rgba(0,0,0,.42);display:none;align-items:center;justify-content:center;padding:1rem;z-index:1000;overscroll-behavior:contain}
    .modal--open{display:flex}
    .modal__dialog{
      background:#fff;border-radius:1rem;box-shadow:0 14px 36px rgba(0,0,0,.22);
      width:min(940px,96vw); border:1px solid color-mix(in srgb, var(--green) 14%, var(--lgray));
      padding:1.2rem 1.25rem 1rem; max-height:92vh; display:flex; flex-direction:column; overflow:hidden;
    }
    .modal__dialog--payment{
      width:min(960px,96vw);
      max-height:88vh;
      padding:0;
    }
    .modal__dialog--payment .modal__header{padding:1.5rem 1.75rem 0;margin-bottom:1rem}
    .modal__dialog--payment .modal__title{font-size:1.35rem}
    .modal__dialog--payment .payment-body{flex:1 1 auto;padding:0 1.75rem 1.75rem;overflow-y:auto;scrollbar-gutter:stable}
    .modal__dialog--payment .modal__footer{padding:1.1rem 1.75rem;border-top:1px solid color-mix(in srgb, var(--green) 10%, #dadada);background:#fff;position:sticky;bottom:0}
    .modal__header{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:1rem}
    .modal__title{font:900 1.18rem/1 var(--font-heading); color:var(--green)}
    .modal__close{background:transparent;border:none;font-size:1.4rem;line-height:1;cursor:pointer;color:var(--muted)}
    .grid-2{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:1rem;flex:1 1 auto;min-height:0}
    .grid-2 > div{min-height:0}
    .field{display:flex;flex-direction:column;gap:.35rem}
    .field label{font-size:.9rem;color:#555}
    .field input,.field select{padding:.6rem .8rem;border:1px solid var(--lgray);border-radius:.6rem;font-size:.95rem;background:#fff}

    .modal__footer{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}
    .modal__dialog--narrow{width:min(540px,96vw)}
    .cart-list{display:flex;flex-direction:column;gap:.75rem;overflow-y:auto;max-height:50vh;padding-right:.25rem}
    .cart-item{display:flex;justify-content:space-between;gap:.75rem;padding:.75rem;border:1px solid var(--grid-border);border-radius:.75rem;background:var(--chip-bg)}
    .cart-item__info{flex:1 1 auto}
    .cart-item__info strong{display:block;font-weight:800;color:var(--green-dark);margin-bottom:.35rem}
    .cart-item__meta{font-size:.85rem;color:var(--muted)}
    .cart-remove{border:none;background:transparent;color:var(--busy);font-weight:900;font-size:1.1rem;cursor:pointer;line-height:1;padding:.15rem}
    .cart-empty{color:var(--muted);font-size:.95rem;text-align:center;padding:1rem 0}
    .cart-footer{display:flex;justify-content:space-between;align-items:center;width:100%;gap:.75rem}
    .cart-summary{font-size:.95rem;color:var(--muted)}
    .payment-body{display:flex;flex-direction:column;gap:1.25rem;background:#fff}
    .payment-layout{display:grid;grid-template-columns: minmax(0,1fr) minmax(0,1.2fr);gap:1.5rem;align-items:flex-start}
    @media(max-width:900px){.payment-layout{grid-template-columns:1fr;}}
    .payment-panel{background:var(--chip);border:1px solid var(--grid-border);border-radius:var(--radius-lg);padding:1.25rem;box-shadow:0 6px 16px rgba(32,64,41,.08)}
    .payment-panel__title{font-size:1rem;font-weight:800;color:var(--green-dark);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.08em}
    .payment-panel__line{display:flex;justify-content:space-between;font-size:.95rem;margin:.35rem 0;color:var(--muted)}
    .payment-panel__line strong{color:var(--green-dark)}
    .payment-panel__items{margin-top:.75rem;display:flex;flex-direction:column;gap:.45rem}
    .payment-panel__chip{display:flex;flex-direction:column;gap:.35rem;padding:.6rem .85rem;border-radius:.85rem;background:#fff;border:1px solid rgba(32,64,41,.12);font-size:.9rem;box-shadow:0 4px 12px rgba(32,64,41,.08)}
    .payment-panel__chip span{display:block;font-weight:700;color:var(--green-dark);font-size:.92rem}
    .payment-panel__meta{font-size:.78rem;color:var(--muted);line-height:1.3}
    .payment-options{display:flex;flex-direction:column;gap:.65rem;margin:.5rem 0 1rem}
    .payment-options.is-loading{opacity:.5;pointer-events:none}
    .payment-option{display:flex;gap:.65rem;padding:.8rem 1rem;border:1px solid rgba(32,64,41,.2);border-radius:var(--radius-md);background:#fff;cursor:pointer;transition:border-color .2s,box-shadow .2s}
    .payment-option:hover{border-color:var(--green-600);box-shadow:0 4px 12px rgba(32,64,41,.12)}
    .payment-option:focus-within{outline:2px solid color-mix(in srgb,var(--gold) 70%,#fff);outline-offset:3px}
    .payment-option input{margin-top:.2rem}
    .payment-option__body{display:flex;flex-direction:column;gap:.2rem}
    .payment-option__title{font-weight:600;color:var(--green-dark)}
    .payment-option__meta{font-size:.85rem;color:var(--muted)}

    /* =========================
       Service detail modal
       ========================= */
    .service-detail{
      padding:0;
      overflow-x:hidden;
      overflow-y:auto;
      display:grid;
      grid-template-columns:minmax(0,420px) minmax(0,1fr);
      gap:0;
      max-height:calc(100dvh - 2rem);
      scrollbar-gutter:stable both-edges;
      -webkit-overflow-scrolling:touch;
    }
    .service-detail__media{
      position:relative;
      background:linear-gradient(135deg,rgba(5,34,22,.95),rgba(15,67,42,.9));
      min-height:360px;
      display:flex;
      align-items:center;
      justify-content:center;
      padding:1.5rem;
    }
    .service-detail__media::after{
      content:'';
      position:absolute;
      inset:.9rem;
      border-radius:1.75rem;
      border:1px solid rgba(255,255,255,.12);
      pointer-events:none;
    }
    .service-detail__image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
    .service-detail__image[hidden]{display:none}
    .service-detail__image--empty{
      position:relative;
      z-index:1;
      color:rgba(255,255,255,.9);
      font-size:1rem;
      font-weight:600;
      text-align:center;
      display:flex;
      align-items:center;
      justify-content:center;
      width:100%;
      height:100%;
      border-radius:1.25rem;
      border:1px dashed rgba(255,255,255,.45);
      background:rgba(5,26,17,.55);
      backdrop-filter:blur(6px);
      padding:1rem;
    }
    .service-detail__badge{position:absolute;top:1.2rem;left:1.2rem;background:rgba(255,255,255,.12);color:#fff;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;padding:.35rem .95rem;border-radius:999px;font-weight:700;backdrop-filter:blur(12px)}
    .service-detail__body{
      padding:2rem 2.25rem;
      display:flex;
      flex-direction:column;
      gap:1.5rem;
      overflow-y:auto;
      scrollbar-gutter:stable;
      min-height:0;
    }
    .service-detail__top{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
    .service-detail__eyebrow{font-size:.85rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
    .service-detail__title{font:900 2rem/1.1 var(--font-heading);color:var(--green-dark);margin:0}
    .service-detail__description{color:var(--muted);font-size:1rem;line-height:1.6}
    .service-detail__meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;border:1px solid rgba(32,64,41,.12);border-radius:1rem;padding:1rem}
    .service-detail__meta-label{font-size:.78rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
    .service-detail__meta-value{display:block;font:700 1.1rem/1.3 var(--font-heading);color:var(--green-dark);margin-top:.25rem}
    .service-detail__meta-hint{display:block;font-size:.82rem;color:var(--muted);margin-top:.15rem}
    .service-detail__price{display:flex;flex-direction:column;gap:.25rem}
    .service-detail__price-values{display:flex;align-items:center;gap:.5rem}
    .service-detail__price-old{color:#9aa0a0;text-decoration:line-through;font-weight:600}
    .service-detail__price-current{font:800 1.35rem/1 var(--font-heading);color:var(--green-dark)}
    .service-detail__discount{display:inline-flex;align-items:center;gap:.25rem;background:rgba(199,155,73,.12);color:var(--gold);border-radius:999px;padding:.2rem .7rem;font-size:.85rem;font-weight:700}
    .service-detail__lists{display:flex;flex-direction:column;gap:1.25rem}
    .service-detail__list-title{font:700 .9rem/1 var(--font-heading);color:var(--green-dark);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.45rem}
    .service-detail__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem}
    .service-detail__list li{display:flex;gap:.4rem;align-items:flex-start;font-size:.95rem;color:var(--muted)}
    .service-detail__list li::before{content:'•';color:var(--gold);font-weight:900;line-height:1}
    .service-detail__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:auto}
    .service-detail__actions .btn{flex:1 1 auto;min-width:180px}
    .service-detail__forms-count{font-size:.85rem;color:var(--muted);margin-top:.2rem}
    @media(max-width:1100px){
      .service-detail{grid-template-columns:1fr;max-height:none;overflow-y:visible}
      .service-detail__media{min-height:260px}
      .service-detail__body{overflow:visible}
    }
    @media(max-width:640px){
      .service-detail__body{padding:1.5rem}
      .service-detail__title{font-size:1.65rem}
      .service-detail__actions{flex-direction:column}
      .service-detail__actions .btn{width:100%}
      .service-card__header{flex-direction:column;gap:.35rem;}
      .service-card__duration{align-self:flex-start;}
      .service-card__actions{flex-direction:column;align-items:stretch;}
      .service-card__price{width:100%;justify-content:space-between;gap:.35rem;flex-wrap:wrap;}
      .service-card__cta{width:100%;}
    }
    .payment-partial-note{font-size:.85rem;color:var(--muted);margin-top:-.35rem;margin-bottom:.25rem}
    .payment-form{display:flex;flex-direction:column;gap:1rem}
    .payment-fieldset{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.85rem}
    .field{display:flex;flex-direction:column;gap:.35rem}
    .field label{font-weight:700;font-size:.85rem;color:var(--green-dark);text-transform:uppercase;letter-spacing:.06em}
    .field input, .field select{height:2.7rem;padding:.55rem .75rem;border-radius:.75rem;border:1.5px solid var(--grid-border);background:#fff;font-size:.95rem;transition:.2s ease;border-color:color-mix(in srgb, var(--grid-border) 92%, #fff 8%)}
    .field input:focus,.field select:focus{outline:none;border-color:color-mix(in srgb, var(--green) 55%, transparent);box-shadow:0 0 0 3px color-mix(in srgb, var(--green) 15%, transparent)}
    #cardElementWrapper{
      display:none;
      border:1.5px solid var(--grid-border);
      border-radius:.85rem;
      padding:.6rem .7rem;
      background:#fff;
      box-shadow:inset 0 1px 4px rgba(32,64,41,.08);
      min-height:56px;
      align-items:center;
    }
    #cardElementWrapper.is-visible{display:flex;}
    .stripe-card-element{width:100%;}
    .payment-meta{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;color:var(--muted);flex-wrap:wrap;gap:.65rem}
    .payment-meta__secure{display:flex;align-items:center;gap:.35rem;font-weight:600}
    .payment-meta__logos{display:flex;gap:.4rem;flex-wrap:wrap}
    .payment-meta__chip{padding:.25rem .55rem;border-radius:.6rem;background:rgba(32,64,41,.08);font-size:.72rem;font-weight:700;color:var(--green-dark);letter-spacing:.08em;text-transform:uppercase;display:flex;align-items:center;justify-content:center}
    .payment-badges{display:flex;gap:.4rem;margin-top:.75rem;flex-wrap:wrap}
    .payment-badge{height:24px;border-radius:6px;background:rgba(32,64,41,.08);padding:.2rem .55rem;font-size:.7rem;font-weight:700;color:var(--green-dark);letter-spacing:.08em;text-transform:uppercase;display:flex;align-items:center;justify-content:center}
    .status, #paymentMessage{font-size:.92rem;color:var(--muted);line-height:1.45}
    .payment-status--error{color:#d6453d}
    .payment-status--success{color:var(--green)}
    .payment-status--info{color:var(--muted)}
    .hint{font-size:.85rem;color:var(--muted)}
    .error{color:#b00020;font-size:.9rem;margin-top:.5rem}
    .success{color:#0a7a3b;font-size:.95rem;margin-top:.5rem}
    .skeleton{background:linear-gradient(90deg,#eee,#f6f6f6,#eee);background-size:200% 100%;animation:sh 1.2s ease-in-out infinite;border-radius:.5rem;height:36px}
    @keyframes sh{0%{background-position:200% 0}100%{background-position:-200% 0}}

    /* =========================
       Outlook grid
       ========================= */
    .outlook{display:flex;flex-direction:column;min-height:0;border:1px solid var(--grid-border);border-radius:var(--radius-md);overflow:visible;background:#fff;margin-top:.45rem}
    .outlook__toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.55rem .75rem;border-bottom:1px solid var(--grid-border)}
    .outlook__toolbar .controls{display:flex;gap:.4rem}
    .outlook__toolbar .range{font-weight:900;color:var(--green-dark)}
    .outlook__toolbar button{border:1px solid var(--grid-border);background:#fff;border-radius:.5rem;padding:.35rem .65rem;cursor:pointer;line-height:1; font-weight:700}

    .outlook__wrap{
      flex:1 1 auto;
      overflow-x: scroll; overflow-y: auto;
      max-height:56vh; min-height:300px; max-width:100%;
      padding-bottom:10px;
      scrollbar-gutter:stable both-edges; -webkit-overflow-scrolling:touch;
    }
    .outlook__grid{
      display:grid; min-width:calc(96px + (var(--days,14) * 160px) + 1px);
      grid-auto-rows:minmax(36px, auto);
      grid-template-columns: 96px repeat(var(--days, 14), 160px);
      font-family:var(--font-ui);
    }
    .outlook__cell{border-bottom:1px solid var(--grid-border); border-right:1px solid var(--grid-border); padding:.25rem .4rem; background:#fff; white-space:nowrap; text-overflow:ellipsis}
    .outlook__cell.time{position:sticky;left:0;background:#fff;z-index:2;font-size:.85rem;color:#666}
    .outlook__head{position:sticky;top:0;background:#fff;z-index:3;border-bottom:2px solid var(--grid-border);box-shadow:0 1px 0 rgba(0,0,0,.04); padding:.4rem .45rem}
    .outlook__head.day--selected{box-shadow:0 0 0 2px color-mix(in srgb, var(--gold) 45%, transparent);border-bottom-color:color-mix(in srgb, var(--gold) 55%, transparent);}
    .day-head{display:flex;flex-direction:column}
    .day-title{font:800 .92rem/1.1 var(--font-heading); color:var(--green-dark); text-transform:capitalize}
    .day-sub{font-size:.75rem;color:#666;margin-top:.15rem}
    .day--today{background:var(--today-bg)}

    .slot-chip{
      display:inline-flex;align-items:center;justify-content:center;
      height:1.7rem; min-width:3.6rem; padding:0 .5rem; border-radius:.5rem;
      border:1.6px solid transparent; font-weight:900; font-size:.9rem; user-select:none; line-height:1;
      font-family:var(--font-heading);
    }
    .slot-free{color:var(--free);border-color:color-mix(in srgb, var(--free) 55%, #fff);background:var(--chip-bg);cursor:pointer}
    .slot-free:hover{filter:brightness(.98)}
    .slot-busy{color:#fff;background:var(--busy);opacity:.92}
    .slot-cart{background:color-mix(in srgb, var(--busy) 92%, #fff 8%);color:#fff;border-color:color-mix(in srgb, var(--busy) 70%, #fff 30%);box-shadow:0 0 0 2px rgba(211,47,47,.18)}
    .slot-selected{background:var(--free)!important;color:#fff;border-color:var(--free)!important;box-shadow:0 0 0 2px color-mix(in srgb, var(--free) 20%, transparent)}
    .slot-chip[disabled]{cursor:not-allowed;opacity:.85}

    .legend{display:flex;gap:.75rem;margin-top:.5rem;font-size:.85rem;color:#666}
    .legend > span{display:inline-flex;align-items:center;gap:.35rem}
    .legend i{display:inline-block;width:14px;height:14px;border-radius:4px}
    .legend .lg-free i{background:var(--chip-bg);border:2px solid color-mix(in srgb, var(--free) 60%, #fff)}
    .legend .lg-busy i{background:var(--busy)}

    .book-mobile{display:none;margin-top:.75rem;border:1px solid #DAD3C1;border-radius:1rem;padding:1rem;background:#fff;box-shadow:0 16px 30px rgba(32,64,41,.12)}
    .book-mobile__date{display:flex;flex-direction:column;gap:.45rem}
    .book-mobile__date label{font-size:.82rem;font-weight:700;color:#204029;text-transform:uppercase;letter-spacing:.06em}
    .book-mobile__date input{height:2.65rem;border:1px solid #DAD3C1;border-radius:.65rem;padding:0 .75rem;font:600 .95rem/1 var(--font-ui);color:#204029;background:#fff}
    .book-mobile__date input:focus{outline:2px solid color-mix(in srgb, var(--green) 45%, transparent);outline-offset:2px}
    .book-mobile__times{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:1rem;max-height:min(44vh,320px);overflow-y:auto;padding-right:.35rem;margin-right:-.35rem;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
    .book-mobile__times::-webkit-scrollbar{width:6px}
    .book-mobile__times::-webkit-scrollbar-thumb{background:rgba(32,64,41,.25);border-radius:999px}
    .book-mobile__time{padding:.7rem .8rem;border-radius:.75rem;border:1.5px solid #DAD3C1;background:#fff;font-weight:700;color:#204029;box-shadow:0 12px 26px rgba(32,64,41,.14);transition:.18s ease;text-align:center}
    .book-mobile__time:focus-visible{outline:2px solid color-mix(in srgb, var(--gold) 55%, transparent);outline-offset:2px}
    .book-mobile__time.is-selected{background:#204029;color:#fff;border-color:#204029;box-shadow:0 16px 32px rgba(32,64,41,.26)}
    .book-mobile__time.is-in-cart{background:color-mix(in srgb, var(--busy) 92%, #fff 8%);color:#fff;border-color:color-mix(in srgb, var(--busy) 70%, #fff 30%);box-shadow:0 0 0 2px rgba(211,47,47,.18)}
    .book-mobile__empty{margin-top:1rem;font-size:.85rem;color:#6b7a6f;text-align:center;display:none}

    .book-cart-preview{
      display:flex;
      flex-direction:column;
      gap:.65rem;
      border:1px solid var(--grid-border);
      border-radius:.95rem;
      padding:.9rem 1rem;
      background:#fff;
      box-shadow:0 14px 30px rgba(32,64,41,.12);
      max-height:46vh;
      overflow-y:auto;
      scrollbar-width:thin;
    }
    .book-cart-preview::-webkit-scrollbar{width:6px}
    .book-cart-preview::-webkit-scrollbar-thumb{background:rgba(32,64,41,.22);border-radius:999px}
    .book-cart-preview__item{display:flex;flex-direction:column;gap:.2rem}
    .book-cart-preview__item strong{font-weight:800;color:var(--green-dark);font-size:.95rem}
    .book-cart-preview__meta{font-size:.82rem;color:var(--muted);line-height:1.35}
    .book-cart-preview__empty{font-size:.88rem;color:var(--muted);text-align:center}
    .book-cart-preview__totals{font-size:.85rem;color:var(--muted);border-top:1px solid var(--grid-border);padding-top:.65rem;margin-top:.25rem}

    /* Zoom-proof modal sizes */
    .modal__dialog{ width:min(940px, calc(100dvw - 2rem)); max-height:calc(100dvh - 2rem); }
    @supports not (height: 100dvh){
      .modal__dialog{ width:min(940px, calc(100vw - 2rem)); max-height:calc(100vh - 2rem); }
    }

    @media (max-width: 900px){
      .modal__dialog{width:min(96vw, 720px)}
      .grid-2{grid-template-columns:1fr}
      .outlook__wrap{max-height:50vh}
      .modal__dialog--payment .modal__header{padding:1.1rem 1.25rem 0}
      .modal__dialog--payment .payment-body{padding:0 1.25rem 1.25rem}
      .modal__dialog--payment .modal__footer{padding:1rem 1.25rem}
      .payment-fieldset{grid-template-columns:1fr}
      .book-desktop{display:none}
      .book-mobile{display:block}
    }

    @media (max-width: 560px){
      .book-mobile__times{grid-template-columns:1fr}
    }

    @media (max-width: 900px){
      html.nav-open,
      body.nav-open{overflow:hidden;touch-action:none;}
      .container{padding-inline:1rem;}
      .site-header{padding-block:.65rem;}
      .site-header__inner{gap:.9rem;}
      .mobile-nav-btn{display:inline-flex;margin-left:auto;}
      .header-actions{
        position:fixed;
        top:0;
        right:0;
        bottom:0;
        width:min(360px,calc(100vw - 1.5rem));
        max-width:100%;
        background:var(--surface);
        padding-top:calc(1.75rem + env(safe-area-inset-top));
        padding-bottom:calc(2rem + env(safe-area-inset-bottom));
        padding-inline:1.5rem;
        border-radius:0;
        transform:translateX(100%);
        transition:transform .3s ease,opacity .3s ease;
        opacity:0;
        display:flex;
        flex-direction:column;
        align-items:stretch;
        gap:1.25rem;
        box-shadow:-18px 0 35px rgba(0,0,0,.15);
        z-index:130;
        margin-left:0;
        overflow-y:auto;
        overscroll-behavior:contain;
        scrollbar-gutter:stable both-edges;
        -webkit-overflow-scrolling:touch;
      }
      .header-actions::-webkit-scrollbar{width:6px;}
      .header-actions::-webkit-scrollbar-thumb{background:rgba(15,47,35,.2);border-radius:999px;}
      body.nav-open .header-actions{transform:translateX(0);opacity:1;}
      .header-actions::before{content:'';width:72px;height:4px;border-radius:999px;background:rgba(15,47,35,.12);align-self:center;margin-bottom:.75rem;}
      .header-actions .btn{width:100%;justify-content:center;}
      .header-actions .lang-picker{flex-direction:column;align-items:stretch;gap:.5rem;margin-right:0;color:var(--muted);}
      .header-actions .lang-picker__select{width:100%;}
      .mobile-close{display:inline-flex;align-items:center;gap:.5rem;color:var(--green-dark);background:rgba(15,47,35,.06);border:1px solid rgba(15,47,35,.12);font-size:.95rem;font-weight:700;justify-content:flex-start;padding:.45rem .85rem;border-radius:999px;}
      .mobile-close__label{font-size:.95rem;}
      .mobile-nav-backdrop{position:fixed;top:0;bottom:0;left:0;right:0;background:rgba(15,23,17,.35);opacity:0;pointer-events:none;transition:opacity .3s ease;z-index:110;display:none;}
      body.nav-open .mobile-nav-backdrop{opacity:1;pointer-events:auto;display:block;}
      .hero{padding:3.5rem 0 2.5rem;}
      .hero__inner{grid-template-columns:1fr;gap:2rem;}
      .filters__grid{grid-template-columns:1fr;}
      .filters .btn{width:100%;justify-content:center;}
      .services-grid{grid-template-columns:1fr;}
      .floating-cart{right:1rem;bottom:1.1rem;}
      body.modal-open .floating-cart,
      body.nav-open .floating-cart{display:none;}
    }

    @media (prefers-reduced-motion: reduce){
      .header-actions{transition:none;}
      .mobile-nav-backdrop{transition:none;}
    }

    @media (max-width: 540px){
      .hero{padding-top:3.2rem;}
      .btn{width:100%;justify-content:center;}
      .services-grid{grid-template-columns:1fr;}
    }

/* Mobile drawer: stack items vertically, one per row */
@media (max-width: 900px){
  /* 1) Stack the control row itself */
  .header-controls{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:1rem;                 /* consistent spacing between rows */
  }

  /* 2) Make auth area vertical too */
  .header-actions .header-auth{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:.75rem;
  }
  .header-actions .header-auth__cta{ width:100%; }  /* full-width buttons */

  /* 3) Language block already adapts; ensure full width */
  .header-actions .lang-picker{ align-items:stretch; }
  .header-actions .lang-picker__select{ width:100%; }

  /* 4) User menu fits the column layout and opens inline */
  .header-actions .user-menu{ width:100%; }
  .header-actions .user-menu__trigger{
    width:100%;
    justify-content:flex-start;   /* label-aligned, not centered */
  }
  /* On mobile, show the dropdown inline (not absolute) so it flows vertically */
  .header-actions .user-menu__dropdown{
    position:static;
    width:100%;
    margin-top:.35rem;
    box-shadow:var(--shadow-card);
    /* avoid reserving space when closed */
    display:none;
    opacity:1;           /* layout-driven show/hide, no fade needed */
    transform:none;
    pointer-events:auto;
  }
  .header-actions .user-menu.is-open .user-menu__dropdown{
    display:block;
  }

  /* 5) Ensure all buttons expand to a single full-width row */
  .header-actions .btn{
    width:100%;
    justify-content:center;
  }
}

/* ===== 1) User menu: hide username in the trigger (keep dropdown header intact) ===== */
.user-menu__trigger .user-menu__label strong{ display:none; }  /* trigger only */

/* ===== 2) Mobile search card overflow fix ===== */
@media (max-width: 900px){
  /* allow grid items to shrink and never spill */
  .filters__grid{ grid-template-columns: minmax(0,1fr); }
  .filters__grid > *{ min-width:0; }

  /* make the pill controls strictly fit the card */
  .pill-input{ min-width:0; }
  .pill-input__control{ max-width:100%; }
  .pill-input input,
  .pill-input select{ width:100%; min-width:0; }

  /* slight padding tweak + clipping guard on the card */
  .search-panel{
    padding:1.25rem;
    overflow:hidden; /* prevents sub-pixel bleed on iOS */
  }
}

/* ---------- Mobile timeslots: frosted backdrop to mask background noise ---------- */
@media (max-width: 900px){
  /* Создаём собственные слои рендеринга, чтобы блюр не «просачивался» наружу */
  .book-mobile,
  .book-mobile__times{
    position: relative;
    isolation: isolate;             /* надёжный stacking context для ::before */
  }

  /* Полупрозрачная «подложка» под таймслотами */
  .book-mobile__times::before{
    content:'';
    position: absolute;
    /* покрываем всю область списка, включая узкий right gutter (см. margin-right:-.35rem) */
    top: 0; left: 0; bottom: 0; right: -0.35rem;
    z-index: 0;
    pointer-events: none;           /* клики проходят к кнопкам-таймслотам */
    border-radius: .75rem;          /* мягкие края внутри карточки */
    background: #fff;               /* надёжный фоллбек без блюра */
    opacity: .92;                   /* минимальная просадка контраста */
  }

  /* Если есть поддержка backdrop-filter — используем аккуратный blur */
  @supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))){
    .book-mobile__times::before{
      background: rgba(255,255,255,.72);
      -webkit-backdrop-filter: blur(12px) saturate(115%);
      backdrop-filter: blur(12px) saturate(115%);
      opacity: 1;                   /* с блюром непрозрачность не нужна */
    }
  }

  /* Контент списка всегда поверх подложки */
  .book-mobile__time,
  .book-mobile__empty{
    position: relative;
    z-index: 1;
  }

  /* Дополнительно страхуем прорисовку на iOS при интенсивном скролле */
  .book-mobile{
    contain: paint;                 /* исключает «bleed-through» из соседних блоков */
  }
}

/* Пользовательские настройки доступности: без прозрачности — без блюра */
@media (prefers-reduced-transparency: reduce){
  .book-mobile__times::before{
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    background: #fff !important;
    opacity: 1 !important;
  }
}
