  :root{
    --bg:#0a0a0a;
    --bg-1:#131313;
    --bg-2:#060606;
    --mint:#cda86b;
    --mint-bright:#e9cd9c;
    --mint-deep:#8a6a35;
    --ivory:#f3efe6;
    --muted:#9c968a;
    --glass:rgba(255,255,255,0.045);
    --glass-strong:rgba(255,255,255,0.08);
    --glass-border:rgba(255,255,255,0.14);
    --glass-border-soft:rgba(255,255,255,0.08);
    --serif:'Fraunces', Georgia, serif;
    --sans:'Jost', system-ui, -apple-system, sans-serif;
    --ease: cubic-bezier(.16,1,.3,1);
    --r-lg: 28px;
    --r-md: 20px;
    --r-sm: 14px;
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--bg);
    color:var(--ivory);
    font-family:var(--sans);
    font-weight:300;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
    overflow-x:hidden;
    position:relative;
  }
  a{color:inherit;text-decoration:none;}
  img{max-width:100%;display:block;}
  button, input, textarea{font-family:inherit;}
  ::selection{background:var(--mint);color:#151109;}

  .wrap{max-width:1320px;margin:0 auto;padding:0 6vw;}

  /* ---------- ambient glass background ---------- */
  .ambient{ position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
  .ambient::before{
    content:''; position:absolute; inset:0;
    background:
      radial-gradient(1100px 700px at 82% -6%, rgba(205,168,107,0.13), transparent 60%),
      radial-gradient(900px 600px at -6% 30%, rgba(138,106,53,0.18), transparent 60%),
      radial-gradient(1000px 800px at 90% 78%, rgba(205,168,107,0.08), transparent 55%),
      linear-gradient(180deg, var(--bg-1) 0%, var(--bg) 30%, var(--bg-2) 100%);
  }
  .ambient::after{
    content:'';
    position:absolute; inset:0;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    opacity:.035; mix-blend-mode:overlay;
  }
  .blob{ position:absolute; border-radius:50%; filter:blur(70px); opacity:.5; will-change:transform; }
  .blob-a{ width:460px; height:460px; background:radial-gradient(circle, rgba(205,168,107,.28), transparent 70%); top:6%; right:8%; }
  .blob-b{ width:380px; height:380px; background:radial-gradient(circle, rgba(138,106,53,.32), transparent 70%); top:55%; left:-6%; }
  .blob-c{ width:340px; height:340px; background:radial-gradient(circle, rgba(205,168,107,.16), transparent 70%); bottom:4%; right:18%; }
  .logo-watermark{ position:absolute; top:8%; right:-6%; width:min(48vw, 620px); height:auto; opacity:.035; filter:saturate(0); }
  @media (max-width:900px){ .logo-watermark{ display:none; } }

  /* ---------- glass base ---------- */
  .glass{
    background:var(--glass);
    border:1px solid var(--glass-border);
    border-radius:var(--r-lg);
    backdrop-filter:blur(22px) saturate(140%);
    -webkit-backdrop-filter:blur(22px) saturate(140%);
    box-shadow:0 1px 0 rgba(255,255,255,0.10) inset, 0 20px 50px rgba(0,0,0,0.35);
    position:relative;
  }
  .glass::before{
    content:'';
    position:absolute; inset:0; border-radius:inherit; padding:1px;
    background:linear-gradient(155deg, rgba(255,255,255,.28), rgba(255,255,255,0) 40%);
    -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite:xor; mask-composite:exclude;
    pointer-events:none;
  }

  /* ---------- nav ---------- */
  header.nav{
    position:fixed; top:0; left:0; right:0; z-index:60;
    display:flex; align-items:center; justify-content:space-between;
    padding:18px 6vw;
  }
  .nav-inner{
    width:100%; display:flex; align-items:center; justify-content:space-between;
    padding:12px 22px; border-radius:999px;
  }
  .brand{ display:flex; align-items:center; gap:10px; font-family:var(--serif); font-style:italic; font-weight:500; font-size:19px; letter-spacing:.01em; }
  .brand img{ height:34px; width:auto; display:block; }
  .nav-links{ display:flex; gap:8px; }
  .nav-links a{ font-size:12.5px; letter-spacing:.08em; padding:9px 16px; border-radius:999px; color:var(--muted); transition:background .3s ease, color .3s ease; }
  .nav-links a:hover{ background:rgba(255,255,255,.08); color:var(--ivory); }
  .nav-book{
    font-size:12.5px; letter-spacing:.08em; padding:11px 20px; border-radius:999px;
    background:linear-gradient(135deg, var(--mint-bright), var(--mint-deep));
    color:#151109; font-weight:500; box-shadow:0 8px 24px rgba(205,168,107,.24);
  }
  .burger{
    width:44px; height:44px; border-radius:50%; display:none; place-items:center; cursor:pointer;
    background:var(--glass-strong); border:1px solid var(--glass-border);
  }
  .burger span{ display:block; width:16px; height:1.4px; background:var(--ivory); border-radius:2px; }
  .burger span + span{ margin-top:4px; }
  @media (max-width:900px){ .nav-links{ display:none; } .nav-book{ display:none; } .burger{ display:grid; } }

  .mobile-menu{
    position:fixed; inset:0; z-index:59; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px;
    background:rgba(2,30,5,.72); backdrop-filter:blur(30px); -webkit-backdrop-filter:blur(30px);
    opacity:0; visibility:hidden; transition:opacity .35s ease, visibility .35s ease;
  }
  body.menu-open .mobile-menu{ opacity:1; visibility:visible; }
  .mobile-menu a{ font-family:var(--serif); font-style:italic; font-size:26px; padding:10px 0; }

  /* ---------- buttons ---------- */
  .btn{
    position:relative; display:inline-flex; align-items:center; gap:10px; white-space:nowrap;
    padding:16px 28px; border-radius:999px; font-size:12.5px; letter-spacing:.1em; text-transform:uppercase;
    cursor:pointer; transition:transform .35s var(--ease), box-shadow .35s ease, background .35s ease;
  }
  .btn-primary{
    background:linear-gradient(135deg, var(--mint-bright), var(--mint-deep));
    color:#151109; font-weight:500; border:1px solid rgba(255,255,255,.4);
    box-shadow:0 10px 30px rgba(205,168,107,.22), inset 0 1px 0 rgba(255,255,255,.5);
  }
  .btn-primary:hover{ transform:translateY(-2px); box-shadow:0 16px 40px rgba(205,168,107,.32), inset 0 1px 0 rgba(255,255,255,.5); }
  .btn-ghost{
    background:var(--glass); border:1px solid var(--glass-border); color:var(--ivory);
    backdrop-filter:blur(18px);
  }
  .btn-ghost:hover{ background:var(--glass-strong); transform:translateY(-2px); }

  /* ---------- section shared ---------- */
  main, footer{ position:relative; z-index:1; }
  section{ position:relative; padding:120px 0; }
  .eyebrow{ font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:var(--mint); margin-bottom:18px; display:inline-flex; align-items:center; gap:8px; }
  .eyebrow::before{ content:''; width:16px; height:1px; background:var(--mint); }
  .section-head{ max-width:720px; margin-bottom:56px; }
  .section-head h2{ font-family:var(--serif); font-weight:400; font-size:clamp(28px, 3.6vw, 46px); line-height:1.16; color:var(--ivory); }
  .section-head p{ margin-top:18px; color:var(--muted); font-size:15px; line-height:1.75; max-width:62ch; }

  /* ---------- hero ---------- */
  .hero{ min-height:100svh; display:flex; align-items:center; padding-top:110px; padding-bottom:70px; }
  .hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center; width:100%; }
  .hero-eyebrow{ font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:var(--mint); margin-bottom:22px; }
  .hero h1{ font-family:var(--sans); font-weight:500; font-size:clamp(34px, 4.6vw, 56px); line-height:1.1; letter-spacing:-.01em; color:var(--ivory); }
  .hero h1 em{ font-family:var(--serif); font-style:italic; font-weight:400; color:var(--mint-bright); }
  .hero-sub{ margin-top:24px; max-width:52ch; color:var(--muted); font-size:15px; line-height:1.8; }
  .hero-actions{ display:flex; gap:14px; flex-wrap:wrap; margin-top:36px; }

  .chip-row{ display:flex; gap:16px; margin-top:44px; flex-wrap:wrap; }
  .chip{ padding:18px 20px; display:flex; align-items:flex-start; gap:14px; min-width:220px; flex:1; }
  .chip .ic{ width:38px; height:38px; border-radius:12px; background:var(--glass-strong); display:grid; place-items:center; flex-shrink:0; }
  .chip .ic svg{ width:18px; height:18px; color:var(--mint); }
  .chip h4{ font-size:14px; font-weight:500; margin-bottom:4px; }
  .chip p{ font-size:12.5px; color:var(--muted); line-height:1.5; }

  .hero-visual{ position:relative; }
  .hero-photo-frame{ aspect-ratio:4/5; border-radius:32px; overflow:hidden; position:relative; }
  .hero-photo-frame img{ width:100%; height:100%; object-fit:cover; }
  .hero-photo-frame::after{ content:''; position:absolute; inset:0; background:linear-gradient(200deg, rgba(2,30,5,0) 40%, rgba(2,30,5,.55) 100%); }
  .hero-float-card{ position:absolute; bottom:-26px; left:-30px; padding:18px 22px; display:flex; align-items:center; gap:14px; max-width:250px; }
  .hero-float-card .ic{ width:40px; height:40px; border-radius:12px; background:linear-gradient(135deg, var(--mint-bright), var(--mint-deep)); display:grid; place-items:center; flex-shrink:0; }
  .hero-float-card .ic svg{ width:19px; height:19px; color:#151109; }
  .hero-float-card h4{ font-size:13.5px; font-weight:500; }
  .hero-float-card p{ font-size:11.5px; color:var(--muted); }
  @media (max-width:980px){
    .hero-grid{ grid-template-columns:1fr; }
    .hero-visual{ order:-1; max-width:420px; margin:0 auto; }
    .hero-float-card{ left:12px; }
  }

  /* ---------- services ---------- */
  .services-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
  .service-card{ padding:26px 26px 0; overflow:hidden; }
  .service-top{ display:flex; align-items:flex-start; gap:16px; cursor:pointer; padding-bottom:24px; }
  .service-top .ic{ width:46px; height:46px; border-radius:14px; background:var(--glass-strong); display:grid; place-items:center; flex-shrink:0; }
  .service-top .ic svg{ width:22px; height:22px; color:var(--mint); }
  .service-top .txt{ flex:1; }
  .service-top h3{ font-family:var(--serif); font-style:italic; font-weight:400; font-size:19px; margin-bottom:5px; }
  .service-top .teaser{ font-size:13px; color:var(--muted); line-height:1.5; }
  .service-arrow{ width:30px; height:30px; border-radius:50%; border:1px solid var(--glass-border); display:grid; place-items:center; flex-shrink:0; transition:transform .4s var(--ease), background .3s ease; }
  .service-arrow svg{ width:13px; height:13px; color:var(--mint); }
  .service-card.is-open .service-arrow{ transform:rotate(90deg); background:var(--glass-strong); }
  .service-panel{ max-height:0; overflow:hidden; transition:max-height .55s var(--ease); }
  .service-panel-inner{ padding:0 0 28px 62px; color:var(--muted); font-size:14px; line-height:1.8; }
  @media (max-width:820px){ .services-grid{ grid-template-columns:1fr; } .service-panel-inner{ padding-left:0; } }

  /* ---------- why choose us ---------- */
  .why-panel{ padding:60px 6vw; }
  .why-head{ text-align:center; margin-bottom:50px; }
  .why-head .eyebrow{ justify-content:center; }
  .why-head .eyebrow::before{ display:none; }
  .why-head h2{ font-family:var(--serif); font-weight:400; font-style:italic; font-size:clamp(24px,3vw,36px); }
  .why-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:30px; text-align:center; }
  .why-item .ic{ width:56px; height:56px; margin:0 auto 18px; border-radius:16px; background:var(--glass-strong); display:grid; place-items:center; }
  .why-item .ic svg{ width:24px; height:24px; color:var(--mint); }
  .why-item h4{ font-size:14.5px; font-weight:500; margin-bottom:8px; }
  .why-item p{ font-size:12.5px; color:var(--muted); line-height:1.6; max-width:22ch; margin:0 auto; }
  @media (max-width:820px){ .why-grid{ grid-template-columns:repeat(2,1fr); gap:36px 20px; } }

  /* ---------- about ---------- */
  .about .wrap{ display:grid; grid-template-columns:1.15fr .85fr; gap:50px; align-items:start; }
  .about-copy p{ color:var(--muted); font-size:15px; line-height:1.85; margin-top:18px; max-width:60ch; }
  .signature{ font-family:var(--serif); font-style:italic; font-size:26px; color:var(--mint-bright); margin-top:30px; }
  .about-card{ padding:34px; }
  .about-card h4{ font-family:var(--serif); font-style:italic; font-weight:400; font-size:20px; margin-bottom:22px; }
  .about-card ul{ list-style:none; display:flex; flex-direction:column; gap:16px; margin-bottom:26px; }
  .about-card li{ display:flex; align-items:center; gap:14px; font-size:14.5px; border-top:1px solid var(--glass-border-soft); padding-top:16px; }
  .about-card li .ic{ width:34px; height:34px; border-radius:10px; background:var(--glass-strong); display:grid; place-items:center; flex-shrink:0; }
  .about-card li .ic svg{ width:15px; height:15px; color:var(--mint); }
  .about-card li:first-child{ border-top:none; padding-top:0; }
  @media (max-width:900px){ .about .wrap{ grid-template-columns:1fr; } }

  /* ---------- team ---------- */
  .team-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:24px; margin-top:10px; }
  .team-card{ padding:20px; display:flex; gap:20px; align-items:center; }
  .team-photo{ width:104px; height:104px; border-radius:20px; overflow:hidden; flex-shrink:0; }
  .team-photo img{ width:100%; height:100%; object-fit:cover; }
  .team-card h4{ font-family:var(--serif); font-style:italic; font-weight:400; font-size:19px; }
  .team-card .role{ font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--mint); margin:6px 0 8px; }
  .team-card p{ color:var(--muted); font-size:13px; line-height:1.6; }
  @media (max-width:700px){ .team-grid{ grid-template-columns:1fr; } }

  /* ---------- lookbook carousel ---------- */
  .lookbook-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:34px; flex-wrap:wrap; }
  .carousel-controls{ display:flex; gap:10px; }
  .car-btn{ width:44px; height:44px; border-radius:50%; display:grid; place-items:center; cursor:pointer; }
  .car-btn svg{ width:16px; height:16px; color:var(--ivory); }
  .lookbook-track{ display:flex; gap:18px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:10px; scrollbar-width:none; cursor:grab; user-select:none; -webkit-user-select:none; }
  .lookbook-track::-webkit-scrollbar{ display:none; }
  .lookbook-track.is-dragging{ cursor:grabbing; scroll-snap-type:none; }
  .look-card{ flex:0 0 auto; width:min(72vw, 260px); scroll-snap-align:start; }
  .look-frame{ aspect-ratio:3/4; border-radius:22px; overflow:hidden; position:relative; }
  .look-frame img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); pointer-events:none; }
  .look-frame::after{ content:''; position:absolute; inset:0; background:linear-gradient(200deg, rgba(0,0,0,0) 55%, rgba(0,0,0,.45) 100%); opacity:0; transition:opacity .6s var(--ease); }
  .look-card:hover .look-frame img{ transform:scale(1.16); }
  .look-card:hover .look-frame::after{ opacity:1; }
  .look-cap{ margin-top:14px; font-family:var(--serif); font-style:italic; font-size:15px; transition:color .4s ease; }
  .look-card:hover .look-cap{ color:var(--mint-bright); }
  .dots{ display:flex; justify-content:center; gap:8px; margin-top:30px; }
  .dot{ width:6px; height:6px; border-radius:50%; background:var(--glass-border); transition:all .3s ease; }
  .dot.is-active{ width:20px; border-radius:4px; background:var(--mint); }

  /* ---------- cta band ---------- */
  .cta-panel{ padding:56px 6vw; display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap; }
  .cta-panel .ic{ width:54px; height:54px; border-radius:16px; background:var(--glass-strong); display:grid; place-items:center; flex-shrink:0; }
  .cta-panel .ic svg{ width:24px; height:24px; color:var(--mint); }
  .cta-text{ display:flex; align-items:center; gap:20px; flex:1; min-width:260px; }
  .cta-text h3{ font-family:var(--serif); font-style:italic; font-weight:400; font-size:clamp(19px,2.2vw,25px); line-height:1.35; max-width:34ch; }

  /* ---------- contact ---------- */
  .contact .wrap{ display:grid; grid-template-columns:.85fr 1.15fr; gap:50px; align-items:start; }
  .contact-info h3{ font-family:var(--serif); font-style:italic; font-weight:400; font-size:clamp(22px,2.6vw,30px); margin-bottom:14px; line-height:1.3; }
  .contact-info .lede{ color:var(--muted); font-size:15px; line-height:1.75; margin-bottom:28px; max-width:38ch; }
  .contact-list{ list-style:none; display:flex; flex-direction:column; gap:14px; margin-bottom:28px; }
  .contact-list li{ display:flex; align-items:center; gap:14px; font-size:14.5px; padding:14px 16px; }
  .contact-list .ic{ width:36px; height:36px; border-radius:10px; background:var(--glass-strong); display:grid; place-items:center; flex-shrink:0; }
  .contact-list .ic svg{ width:16px; height:16px; color:var(--mint); }
  .map-frame{ border-radius:22px; overflow:hidden; margin-bottom:40px; }
  .map-frame iframe{ width:100%; height:200px; border:0; display:block; filter:grayscale(1) invert(.9) contrast(.88) brightness(.82) sepia(.35) hue-rotate(2deg) saturate(2.4); opacity:.9; }

  .contact-form{ padding:38px; }
  form.salon-form{ display:flex; flex-direction:column; gap:20px; }
  .form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  .field{ display:flex; flex-direction:column; gap:8px; }
  .field label{ font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
  .field input, .field textarea{
    background:rgba(255,255,255,.04); border:1px solid var(--glass-border-soft); border-radius:14px;
    color:var(--ivory); font-size:14.5px; padding:14px 16px; outline:none; transition:border-color .3s ease, background .3s ease;
  }
  .field input:focus, .field textarea:focus{ border-color:var(--mint); background:rgba(255,255,255,.07); }
  .field textarea{ resize:vertical; min-height:110px; }
  .form-note{ font-size:12px; color:var(--muted); margin-top:-6px; }
  @media (max-width:900px){ .contact .wrap{ grid-template-columns:1fr; } .form-row{ grid-template-columns:1fr; } }

  /* ---------- footer ---------- */
  footer{ padding:90px 0 34px; }
  .footer-panel{ padding:56px 6vw 34px; }
  .footer-grid{ display:grid; grid-template-columns:1.3fr .8fr .8fr; gap:50px; }
  .footer-brand{ display:flex; align-items:center; gap:10px; font-family:var(--serif); font-style:italic; font-size:24px; margin-bottom:16px; }
  .footer-brand img{ height:40px; width:auto; display:block; }
  .footer-tag{ color:var(--muted); font-size:13.5px; max-width:32ch; line-height:1.7; }
  .footer-col h4{ font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--mint); margin-bottom:18px; }
  .footer-col a{ display:block; font-size:14px; color:var(--ivory); line-height:2; opacity:.85; transition:opacity .3s ease; }
  .footer-col a:hover{ opacity:1; color:var(--mint-bright); }
  .footer-socials{ display:flex; gap:10px; margin-top:14px; }
  .footer-socials a{ width:38px; height:38px; border-radius:50%; display:grid; place-items:center; background:var(--glass-strong); border:1px solid var(--glass-border); }
  .footer-socials svg{ width:15px; height:15px; color:var(--ivory); }
  .footer-bottom{ margin-top:50px; padding-top:24px; border-top:1px solid var(--glass-border-soft); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:12px; color:var(--muted); }
  @media (max-width:820px){ .footer-grid{ grid-template-columns:1fr; gap:36px; } }

  .appear{ opacity:0; transform:translateY(26px); }
  .appear.is-in{ opacity:1; transform:none; }

  @media (prefers-reduced-motion:reduce){
    *{ animation:none !important; transition:none !important; }
    .appear{ opacity:1 !important; transform:none !important; }
  }

  /* ---------- booking modal ---------- */
  .booking-modal{
    position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center;
    padding:26px; opacity:0; visibility:hidden; transition:opacity .35s ease, visibility .35s ease;
  }
  .booking-modal.is-open{ opacity:1; visibility:visible; }
  .booking-modal-backdrop{
    position:absolute; inset:0; background:rgba(4,4,4,.78);
    backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  }
  .booking-modal-panel{
    position:relative; width:min(980px, 100%); height:min(88vh, 920px);
    background:var(--bg-1); border:1px solid var(--glass-border); border-radius:var(--r-lg);
    box-shadow:0 30px 80px rgba(0,0,0,.6); display:flex; flex-direction:column; overflow:hidden;
    transform:translateY(18px) scale(.98); transition:transform .4s var(--ease);
  }
  .booking-modal.is-open .booking-modal-panel{ transform:translateY(0) scale(1); }
  .booking-modal-head{
    display:flex; align-items:center; justify-content:space-between; gap:14px;
    padding:16px 18px 16px 22px; border-bottom:1px solid var(--glass-border-soft); flex-shrink:0;
  }
  .booking-modal-title{ display:flex; align-items:center; gap:10px; font-family:var(--serif); font-style:italic; font-size:17px; color:var(--ivory); }
  .booking-modal-title svg{ width:17px; height:17px; color:var(--mint); flex-shrink:0; }
  .booking-modal-actions{ display:flex; align-items:center; gap:8px; }
  .booking-modal-link{
    display:flex; align-items:center; gap:6px; font-size:11.5px; letter-spacing:.05em; color:var(--muted);
    padding:8px 12px; border-radius:999px; border:1px solid var(--glass-border-soft); transition:color .3s ease, border-color .3s ease;
    white-space:nowrap;
  }
  .booking-modal-link:hover{ color:var(--mint-bright); border-color:var(--glass-border); }
  .booking-modal-link svg{ width:12px; height:12px; }
  .booking-modal-close{
    width:36px; height:36px; border-radius:50%; display:grid; place-items:center; cursor:pointer; flex-shrink:0;
    background:var(--glass-strong); border:1px solid var(--glass-border); color:var(--ivory);
    transition:background .3s ease, transform .3s ease;
  }
  .booking-modal-close:hover{ background:rgba(255,255,255,.14); transform:rotate(90deg); }
  .booking-modal-close svg{ width:15px; height:15px; }
  .booking-modal-body{ position:relative; flex:1; background:#fff; }
  .booking-modal-body iframe{
    width:100%; height:100%; border:0; display:block; position:relative; z-index:1;
    background:#0a0a0a;
  }
  .booking-modal-loading{
    position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px;
    background:var(--bg-1); z-index:2; transition:opacity .4s ease, visibility .4s ease;
  }
  .booking-modal-loading.is-hidden{ opacity:0; visibility:hidden; pointer-events:none; }
  .booking-modal-spinner{
    width:34px; height:34px; border-radius:50%; border:2.5px solid var(--glass-border);
    border-top-color:var(--mint); animation:booking-spin 0.9s linear infinite;
  }
  @keyframes booking-spin{ to{ transform:rotate(360deg); } }
  .booking-modal-loading p{ font-size:12.5px; color:var(--muted); letter-spacing:.03em; }
  body.modal-open{ overflow:hidden; }
  @media (max-width:720px){
    .booking-modal{ padding:0; }
    .booking-modal-panel{ width:100%; height:100%; border-radius:0; }
    .booking-modal-link span{ display:none; }
  }
  @media (prefers-reduced-motion:reduce){
    .booking-modal-spinner{ animation:none; border-top-color:var(--glass-border); }
  }

  /* === Legal pages (Impressum / Datenschutz) === */
  .legal-hero{ padding:170px 0 40px; }
  .legal-hero .wrap{ max-width:820px; }
  .legal-hero .eyebrow{ display:flex; align-items:center; gap:10px; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--mint); margin-bottom:18px; }
  .legal-hero .eyebrow::before{ content:''; width:26px; height:1px; background:var(--mint); display:inline-block; }
  .legal-hero h1{ font-family:var(--serif); font-weight:500; font-size:clamp(32px,5vw,46px); letter-spacing:-.01em; margin-bottom:10px; }
  .legal-hero .sub{ color:var(--muted); font-size:15px; }
  .legal-body{ padding:0 0 140px; }
  .legal-body .wrap{ max-width:820px; }
  .legal-card{ padding:clamp(28px,5vw,56px); border-radius:var(--r-lg); }
  .legal-card h2{ font-family:var(--serif); font-weight:500; font-size:22px; color:var(--mint-bright); margin:40px 0 14px; letter-spacing:-.005em; }
  .legal-card h2:first-child{ margin-top:0; }
  .legal-card p{ color:var(--muted); line-height:1.75; font-size:15px; margin-bottom:14px; }
  .legal-card p strong{ color:var(--ivory); font-weight:500; }
  .legal-card ul{ margin:0 0 14px; padding-left:20px; color:var(--muted); line-height:1.75; font-size:15px; }
  .legal-card ul li{ margin-bottom:4px; }
  .legal-card a{ color:var(--mint); text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(205,168,107,.4); transition:color .3s ease; }
  .legal-card a:hover{ color:var(--mint-bright); }
  .legal-card .addr{ color:var(--ivory); font-style:normal; line-height:1.7; margin-bottom:14px; }
  .legal-card hr{ border:none; border-top:1px solid var(--glass-border-soft); margin:36px 0; }
