/* ============ TOKENS ============ */
:root{
  --stone-900:#221D19;
  --stone-800:#2C251F;
  --stone-700:#3B322A;
  --stone-600:#5A4C3F;
  --amber-300:#EAC189;
  --amber-500:#C6883F;
  --amber-600:#A96F30;
  --sage-400:#93A17D;
  --sage-600:#6C7A5A;
  --cream-50:#FBF7EF;
  --cream-100:#F4ECDD;
  --cream-200:#E9DCC4;
  --rose-500:#A66A57;

  --font-display:'Unbounded', sans-serif;
  --font-body:'Manrope', sans-serif;

  --radius-lg:28px;
  --radius-md:16px;
  --container:1180px;
  --wave:'';
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
[hidden]{display:none !important;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important;animation-iteration-count:1 !important;transition-duration:0.001ms !important;scroll-behavior:auto !important;}
}
body{
  font-family:var(--font-body);
  background:var(--cream-50);
  color:var(--stone-900);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
input,textarea,select{font-family:inherit;font-size:16px;}
.wrap{max-width:var(--container);margin:0 auto;padding:0 28px;}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1;transform:translateY(0);}

a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:2px solid var(--amber-500);
  outline-offset:3px;
  border-radius:6px;
}

.eyebrow{
  font-family:var(--font-body);
  font-weight:700;
  font-size:12.5px;
  letter-spacing:.14em;
  text-transform:uppercase;
  display:inline-flex;
  align-items:center;
  gap:9px;
}
.eyebrow::before{
  content:'';
  width:22px;height:2px;
  background:currentColor;
  display:inline-block;
  border-radius:2px;
}
h1,h2,h3{font-family:var(--font-display);line-height:1.12;letter-spacing:-.01em;}
.section{padding:112px 0;position:relative;}
@media (max-width:760px){.section{padding:76px 0;}}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:17px 30px;
  border-radius:100px;
  font-weight:700;
  font-size:15px;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
  white-space:nowrap;
}
.btn-primary{
  background:var(--amber-500);
  color:var(--stone-900);
}
.btn-primary:hover{background:var(--amber-300);transform:translateY(-2px);}
.btn-ghost{
  background:transparent;
  color:var(--cream-100);
  border:1.5px solid rgba(244,236,221,.35);
}
.btn-ghost:hover{border-color:var(--cream-100);background:rgba(244,236,221,.08);}
.btn-dark{
  background:var(--stone-900);
  color:var(--cream-50);
}
.btn-dark:hover{background:var(--stone-700);transform:translateY(-2px);}

/* ============ WAVE DIVIDER — signature stroke motif ============ */
.stroke-divider{
  width:100%;
  height:56px;
  display:block;
}
.stroke-divider path{
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
}

/* ============ HEADER ============ */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  padding:22px 0;
  transition:background .35s ease, padding .35s ease, box-shadow .35s ease;
}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;}
.site-header.scrolled{
  background:rgba(34,29,25,.92);
  backdrop-filter:blur(10px);
  padding:14px 0;
  box-shadow:0 8px 24px rgba(0,0,0,.18);
}
.logo{
  font-family:var(--font-display);
  font-weight:700;
  font-size:19px;
  color:var(--cream-50);
  display:flex;align-items:center;gap:10px;
}
.logo .dot{width:9px;height:9px;border-radius:50%;background:var(--amber-500);flex:none;}
.nav-links{display:flex;align-items:center;gap:34px;}
.nav-links a{
  color:rgba(244,236,221,.82);
  font-size:14.5px;
  font-weight:600;
  transition:color .2s ease;
  position:relative;
}
.nav-links a:hover{color:var(--cream-50);}
.header-right{display:flex;align-items:center;gap:18px;}
.header-phone{
  color:var(--cream-100);
  font-size:14.5px;
  font-weight:700;
  display:flex;align-items:center;gap:8px;
}
.header-phone svg{width:16px;height:16px;stroke:var(--amber-300);}
.account-trigger{
  display:flex;align-items:center;gap:7px;
  color:var(--cream-100);
  font-size:13.5px;font-weight:700;
  padding:9px 14px;border-radius:100px;
  border:1.5px solid rgba(244,236,221,.25);
  transition:border-color .2s ease, background .2s ease;
}
.account-trigger:hover{border-color:var(--cream-100);background:rgba(244,236,221,.08);}
.account-trigger svg{width:16px;height:16px;stroke:var(--amber-300);flex:none;}
.nav-toggle{display:none;flex-direction:column;gap:5px;width:26px;}
.nav-toggle span{height:2px;background:var(--cream-50);border-radius:2px;transition:transform .25s ease, opacity .25s ease;}
.mobile-panel{
  position:fixed;inset:0;z-index:99;
  background:var(--stone-900);
  display:flex;flex-direction:column;
  padding:100px 32px 40px;
  transform:translateX(100%);
  transition:transform .4s ease;
}
.mobile-panel.open{transform:translateX(0);}
.mobile-panel a{
  color:var(--cream-100);
  font-family:var(--font-display);
  font-size:26px;
  padding:14px 0;
  border-bottom:1px solid rgba(244,236,221,.1);
}
.mobile-panel .btn{
  margin-top:26px;width:100%;
  font-family:var(--font-body);
  font-size:15px;
  padding:17px 30px;
  border-bottom:none;
}

@media (max-width:1150px){
  .nav-links{display:none;}
  .header-phone span{display:none;}
  .account-trigger span{display:none;}
  .account-trigger{padding:9px;}
  .nav-toggle{display:flex;}
}

/* ============ ACCOUNT PANEL ============ */
.account-overlay{
  display:flex;
  position:fixed;inset:0;z-index:200;
  background:rgba(34,29,25,.55);
  backdrop-filter:blur(4px);
  align-items:center;justify-content:center;
  padding:20px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .25s ease, visibility .25s ease;
}
.account-overlay.open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.account-panel{
  position:relative;
  width:100%;max-width:400px;
  background:var(--cream-50);
  border-radius:24px;
  padding:36px 30px;
  box-shadow:0 30px 60px rgba(0,0,0,.3);
  max-height:90vh;overflow-y:auto;
  transform:translateY(14px) scale(.97);
  transition:transform .25s ease;
}
.account-overlay.open .account-panel{
  transform:translateY(0) scale(1);
}
@media (prefers-reduced-motion: reduce){
  .account-overlay,.account-panel{transition:none;}
}
.account-close{
  position:absolute;top:18px;right:18px;
  width:32px;height:32px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:var(--cream-100);
}
.account-close svg{width:15px;height:15px;stroke:var(--stone-700);}
.account-tabs{display:flex;gap:8px;margin-bottom:24px;}
.account-tab{
  flex:1;padding:11px;border-radius:100px;
  font-size:13.5px;font-weight:700;
  background:var(--cream-100);color:var(--stone-600);
  transition:.2s ease;
}
.account-tab.active{background:var(--stone-900);color:var(--cream-50);}
.account-form .btn-primary{width:100%;margin-top:6px;}
.account-error{color:var(--rose-500);font-size:13px;min-height:16px;margin:6px 0 2px;}
.account-greeting{font-family:var(--font-display);font-size:20px;margin-bottom:8px;}
.account-subtext{color:var(--stone-600);font-size:14px;margin-bottom:24px;}
.btn-ghost-dark{
  background:transparent;
  color:var(--stone-900);
  border:1.5px solid var(--cream-200);
}
.btn-ghost-dark:hover{border-color:var(--stone-600);background:var(--cream-100);}

/* ============ HERO ============ */
.hero{
  position:relative;
  background:var(--stone-900);
  color:var(--cream-100);
  padding:168px 0 120px;
  overflow:hidden;
}
.hero::before{
  content:'';
  position:absolute;
  top:-30%;right:-10%;
  width:70%;height:120%;
  background:radial-gradient(closest-side, rgba(198,136,63,.35), rgba(198,136,63,0) 72%);
  pointer-events:none;
}
.hero::after{
  content:'';
  position:absolute;
  bottom:-20%;left:-15%;
  width:50%;height:80%;
  background:radial-gradient(closest-side, rgba(108,122,90,.22), rgba(108,122,90,0) 70%);
  pointer-events:none;
}
.hero .wrap{
  position:relative;z-index:2;
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:64px;
  align-items:center;
}
.hero-eyebrow{color:var(--amber-300);margin-bottom:22px;}
.hero h1{
  font-size:clamp(38px,5vw,62px);
  color:var(--cream-50);
  margin-bottom:22px;
}
.hero h1 em{font-style:normal;color:var(--amber-300);}
.hero p.lead{
  font-size:18px;
  color:rgba(244,236,221,.78);
  max-width:480px;
  margin-bottom:36px;
}
.hero-cta{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:48px;}
.hero-stats{display:flex;gap:34px;flex-wrap:wrap;}
.hero-stat b{
  display:block;font-family:var(--font-display);font-size:26px;color:var(--cream-50);
}
.hero-stat span{font-size:13px;color:rgba(244,236,221,.6);}

/* hero video card */
.hero-media{position:relative;width:100%;}
.blob-frame{
  position:relative;
  aspect-ratio:4/5;
  isolation:isolate;
}
.blob-visual{
  position:absolute;inset:0;
  border-radius:63% 37% 41% 59% / 55% 43% 57% 45%;
  overflow:hidden;
  background:linear-gradient(155deg,#3B322A 0%, #221D19 60%);
}
.blob-visual img,.blob-visual video{
  width:100%;height:100%;object-fit:cover;
  position:absolute;inset:0;
}
.blob-visual .ph-fill{
  position:absolute;inset:0;
  background:
    radial-gradient(circle at 30% 25%, rgba(234,193,137,.28), transparent 45%),
    radial-gradient(circle at 75% 70%, rgba(147,161,125,.24), transparent 50%),
    linear-gradient(160deg,#3B322A, #221D19);
}
.play-btn{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:78px;height:78px;border-radius:50%;
  background:rgba(251,247,239,.94);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 12px 30px rgba(0,0,0,.35);
  transition:transform .25s ease;
  z-index:3;
}
.play-btn:hover{transform:translate(-50%,-50%) scale(1.06);}
.play-btn svg{width:24px;height:24px;fill:var(--stone-900);margin-left:3px;}
.media-caption{
  position:absolute;left:22px;right:22px;bottom:22px;z-index:3;
  background:rgba(34,29,25,.55);
  backdrop-filter:blur(6px);
  color:var(--cream-50);
  font-size:13px;font-weight:700;
  padding:9px 16px;border-radius:100px;
  display:flex;align-items:center;gap:8px;
  width:fit-content;
  max-width:calc(100% - 44px);
}
.media-caption span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.media-caption .dot-live{width:7px;height:7px;border-radius:50%;background:var(--amber-500);flex:none;}
.float-card{
  position:absolute;
  background:var(--cream-50);
  color:var(--stone-900);
  border-radius:18px;
  padding:16px 18px;
  box-shadow:0 20px 40px rgba(0,0,0,.28);
  display:flex;align-items:center;gap:12px;
  z-index:4;
  max-width:210px;
}
.float-card svg{width:22px;height:22px;stroke:var(--amber-600);flex:none;}
.float-card b{display:block;font-size:14px;font-family:var(--font-display);}
.float-card span{font-size:12px;color:var(--stone-600);}
.float-card.one{top:-6%;left:-9%;}
.float-card.two{bottom:8%;right:-11%;}

@media (max-width:1000px){
  .hero .wrap{grid-template-columns:1fr;}
  .hero-media{max-width:420px;margin:0 auto;}
  .float-card{display:none;}
}
@media (max-width:600px){
  .hero{padding:130px 0 80px;}
  .hero-stats{gap:22px;}
}

/* ============ SERVICES ============ */
.services{background:var(--cream-50);}
.section-head{
  display:flex;justify-content:space-between;align-items:end;gap:24px;
  margin-bottom:56px;
}
.section-head .eyebrow{color:var(--amber-600);margin-bottom:14px;}
.section-head h2{font-size:clamp(28px,3.4vw,42px);max-width:560px;}
.section-head p{color:var(--stone-600);max-width:360px;font-size:15px;}

.svc-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
}
.svc-card{
  background:var(--cream-100);
  border-radius:var(--radius-md);
  padding:32px 28px;
  transition:transform .3s ease, background .3s ease, box-shadow .3s ease;
  position:relative;
  cursor:pointer;
}
.svc-card:hover{transform:translateY(-6px);background:var(--cream-50);box-shadow:0 18px 40px rgba(34,29,25,.1);}
.svc-card:focus-visible{outline:2px solid var(--amber-500);outline-offset:3px;}
.service-modal{max-width:480px;}
.svc-icon{
  width:52px;height:52px;border-radius:16px;
  background:var(--stone-900);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:22px;
}
.svc-icon svg{width:24px;height:24px;stroke:var(--amber-300);}
.svc-card h3{font-size:19px;margin-bottom:10px;font-weight:600;letter-spacing:0;}
.svc-card p{font-size:14.5px;color:var(--stone-600);margin-bottom:20px;}
.svc-meta{
  display:flex;justify-content:space-between;align-items:center;
  padding-top:16px;border-top:1px solid rgba(90,76,63,.15);
  font-size:13.5px;font-weight:700;
}
.svc-meta .price{color:var(--amber-600);}
.svc-featured{background:var(--stone-900);color:var(--cream-100);}
.svc-featured .svc-icon{background:var(--amber-500);}
.svc-featured .svc-icon svg{stroke:var(--stone-900);}
.svc-featured p{color:rgba(244,236,221,.68);}
.svc-featured .svc-meta{border-color:rgba(244,236,221,.15);}
.svc-featured:hover{background:var(--stone-800);}

@media (max-width:900px){.svc-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:600px){
  .svc-grid{grid-template-columns:1fr;}
  .section-head{flex-direction:column;align-items:start;}
}

/* ============ PROCESS ============ */
.process{background:var(--stone-900);color:var(--cream-100);}
.process .eyebrow{color:var(--sage-400);}
.process-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  margin-top:56px;
  border-top:1px solid rgba(244,236,221,.14);
}
.process-item{
  padding:38px 30px;
  border-right:1px solid rgba(244,236,221,.14);
  position:relative;
}
.process-item:last-child{border-right:none;}
.process-num{
  font-family:var(--font-display);
  font-size:14px;color:var(--amber-300);
  margin-bottom:16px;
}
.process-item h3{font-size:19px;font-weight:600;margin-bottom:10px;letter-spacing:0;}
.process-item p{font-size:14.5px;color:rgba(244,236,221,.65);}
@media (max-width:760px){
  .process-grid{grid-template-columns:1fr;}
  .process-item{border-right:none;border-bottom:1px solid rgba(244,236,221,.14);}
}

/* ============ GALLERY ============ */
.gallery{background:var(--cream-100);}
.gal-tabs{display:flex;gap:10px;margin-bottom:32px;}
.gal-tab{
  padding:10px 20px;border-radius:100px;font-size:13.5px;font-weight:700;
  background:var(--cream-50);color:var(--stone-600);transition:.2s ease;
}
.gal-tab.active{background:var(--stone-900);color:var(--cream-50);}
.gal-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-auto-rows:150px;
  gap:14px;
}
.gal-item{
  position:relative;border-radius:20px;overflow:hidden;
  grid-column:span 1;grid-row:span 1;
  cursor:pointer;
}
.gal-item.big{grid-column:span 2;grid-row:span 2;}
.gal-item .ph{
  position:absolute;inset:0;
  transition:transform .5s ease;
}
.gal-item:hover .ph{transform:scale(1.06);}
.gal-item::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(0deg, rgba(34,29,25,.45), transparent 55%);
}
.gal-tag{
  position:absolute;bottom:14px;left:14px;z-index:2;
  color:var(--cream-50);font-size:13px;font-weight:700;
  display:flex;align-items:center;gap:7px;
}
.gal-item.video::before{
  content:'';position:absolute;top:14px;right:14px;z-index:2;
  width:34px;height:34px;border-radius:50%;
  background:rgba(251,247,239,.9);
}
.gal-item.video .vicon{
  position:absolute;top:22px;right:22px;z-index:3;
  width:0;height:0;border-style:solid;border-width:6px 0 6px 10px;
  border-color:transparent transparent transparent var(--stone-900);
}
@media (max-width:900px){
  .gal-grid{grid-template-columns:repeat(2,1fr);}
  .gal-item.big{grid-column:span 2;}
}
@media (max-width:560px){
  .gal-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:120px;}
}

/* ============ ABOUT ============ */
.about{background:var(--cream-50);}
.about .wrap{
  display:grid;grid-template-columns:.8fr 1.2fr;gap:64px;align-items:center;
}
.about-photo{position:relative;width:100%;}
.about-photo .blob-frame{aspect-ratio:3/4;}
.about-badge{
  position:absolute;bottom:-22px;left:-22px;
  background:var(--amber-500);color:var(--stone-900);
  padding:18px 22px;border-radius:18px;
  font-family:var(--font-display);
  box-shadow:0 16px 34px rgba(0,0,0,.18);
}
.about-badge b{display:block;font-size:24px;}
.about-badge span{font-size:12px;font-weight:600;font-family:var(--font-body);}
.about-content h2{font-size:clamp(26px,3.2vw,38px);margin:16px 0 22px;}
.about-content p{color:var(--stone-600);margin-bottom:16px;font-size:15.5px;max-width:520px;}
.cert-list{display:flex;flex-direction:column;gap:14px;margin-top:26px;}
.cert-item{display:flex;align-items:center;gap:14px;}
.cert-item svg{width:20px;height:20px;stroke:var(--amber-600);flex:none;}
.cert-item span{font-size:14.5px;font-weight:600;}
@media (max-width:900px){
  .about .wrap{grid-template-columns:1fr;}
  .about-photo{max-width:340px;margin:0 auto 40px;}
}

/* ============ TESTIMONIALS ============ */
.testi{background:var(--stone-900);color:var(--cream-100);}
.testi .eyebrow{color:var(--amber-300);}
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:50px;}
.testi-card{
  background:var(--stone-800);
  border-radius:var(--radius-md);
  padding:30px 26px;
}
.testi-stars{display:flex;gap:4px;margin-bottom:18px;}
.testi-stars svg{width:15px;height:15px;fill:var(--amber-300);}
.testi-card p{font-size:15px;color:rgba(244,236,221,.85);margin-bottom:22px;}
.testi-person{display:flex;align-items:center;gap:12px;}
.testi-avatar{
  width:40px;height:40px;border-radius:50%;
  background:linear-gradient(140deg,var(--amber-500),var(--rose-500));
  flex:none;
}
.testi-person b{display:block;font-size:14px;}
.testi-person span{font-size:12.5px;color:rgba(244,236,221,.55);}
@media (max-width:900px){.testi-grid{grid-template-columns:1fr;}}

.testi-empty{color:rgba(244,236,221,.6);font-size:14.5px;margin-top:24px;}
.testi-cta{margin-top:36px;}
.review-form-wrap{
  margin-top:28px;
  background:var(--stone-800);
  border-radius:20px;
  padding:32px 28px;
  max-width:560px;
}
.review-form-wrap .field,.review-form-wrap .field-row{margin-bottom:16px;}
.review-form-wrap .field label{color:rgba(244,236,221,.75);}
.star-picker{display:flex;gap:6px;}
.star-picker button{
  font-size:28px;line-height:1;
  color:rgba(244,236,221,.25);
  transition:color .15s ease, transform .15s ease;
}
.star-picker button:hover{transform:scale(1.1);}
.star-picker button.active{color:var(--amber-300);}

/* ============ BOOKING + CONTACTS ============ */
.book{background:var(--cream-100);}
.book-panel{
  display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:0;
  border-radius:32px;overflow:hidden;
  box-shadow:0 30px 60px rgba(34,29,25,.12);
}
.book-form{
  background:var(--cream-50);
  padding:56px 52px;
  min-width:0;
}
.book-form h2{font-size:clamp(24px,3vw,32px);margin-bottom:10px;}
.book-form > p{color:var(--stone-600);margin-bottom:32px;font-size:14.5px;}
.field-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-bottom:16px;}
.field{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;min-width:0;}
.field label{font-size:12.5px;font-weight:700;letter-spacing:.03em;color:var(--stone-700);}
.field input,.field select,.field textarea{
  width:100%;
  padding:13px 16px;
  border-radius:12px;
  border:1.5px solid var(--cream-200);
  background:var(--cream-50);
  color:var(--stone-900);
  transition:border-color .2s ease;
  color-scheme:light;
}
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:var(--amber-500);outline:none;
}
.field textarea{resize:vertical;min-height:88px;}

.slot-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(52px,1fr));
  gap:6px;
  max-height:216px;
  overflow-y:auto;
  padding-right:4px;
}
.slot{
  padding:7px 4px;
  border-radius:8px;
  border:1.5px solid var(--cream-200);
  background:var(--cream-50);
  color:var(--stone-900);
  font-size:12px;font-weight:700;
  text-align:center;
  transition:border-color .15s ease, background .15s ease, color .15s ease;
}
.slot:not(:disabled):hover{border-color:var(--amber-500);}
.slot.selected{background:var(--amber-500);border-color:var(--amber-500);color:var(--stone-900);}
.slot.booked{
  background:var(--cream-100);
  color:var(--stone-600);
  opacity:.5;
  text-decoration:line-through;
  cursor:not-allowed;
}
.slot-hint{font-size:12.5px;color:var(--stone-600);margin-top:10px;}

/* ============ CUSTOM CALENDAR (DATEPICKER) ============ */
.datepicker{position:relative;}
.datepicker-trigger{
  width:100%;
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:13px 16px;
  border-radius:12px;
  border:1.5px solid var(--cream-200);
  background:var(--cream-50);
  color:var(--stone-900);
  font-size:15px;font-weight:600;
  text-align:left;
  transition:border-color .2s ease;
}
.datepicker-trigger svg{width:18px;height:18px;stroke:var(--amber-600);flex:none;}
.datepicker-trigger:hover,#dpPanel.open ~ .datepicker-trigger{border-color:var(--amber-500);}
.datepicker[data-empty="true"] .datepicker-trigger span{color:var(--stone-600);font-weight:400;}

.datepicker-panel{
  display:none;
  position:absolute;top:calc(100% + 8px);left:0;
  width:290px;max-width:calc(100vw - 56px);
  z-index:20;
  background:var(--cream-50);
  border:1px solid var(--cream-200);
  border-radius:14px;
  box-shadow:0 20px 40px rgba(34,29,25,.16);
  padding:14px;
}
.datepicker-panel.open{display:block;}
.dp-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.dp-header span{font-family:var(--font-display);font-size:13.5px;font-weight:600;text-transform:capitalize;}
.dp-nav{
  width:26px;height:26px;border-radius:7px;
  display:flex;align-items:center;justify-content:center;
  background:var(--cream-100);
  transition:background .15s ease;
}
.dp-nav svg{width:13px;height:13px;stroke:var(--stone-700);}
.dp-nav:not(:disabled):hover{background:var(--cream-200);}
.dp-nav:disabled{opacity:.35;cursor:not-allowed;}
.dp-weekdays{
  display:grid;grid-template-columns:repeat(7,1fr);
  margin-bottom:4px;
}
.dp-weekdays span{
  text-align:center;font-size:10.5px;font-weight:700;color:var(--stone-600);
  text-transform:uppercase;
}
.dp-days{
  display:grid;grid-template-columns:repeat(7,1fr);
  gap:2px;
}
.dp-day{
  aspect-ratio:1;
  border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  font-size:12.5px;font-weight:600;
  color:var(--stone-900);
  transition:background .15s ease, color .15s ease;
}
.dp-day:not(:disabled):hover{background:var(--cream-200);}
.dp-day.today{box-shadow:inset 0 0 0 1.5px var(--amber-500);}
.dp-day.selected{background:var(--amber-500);color:var(--stone-900);}
.dp-day:disabled{color:var(--cream-200);cursor:not-allowed;}
.dp-day-blocked{color:var(--rose-500);text-decoration:line-through;text-decoration-color:rgba(166,106,87,.5);}
.dp-day-blocked:not(:disabled):hover{background:rgba(166,106,87,.12);}
.book-form .btn-primary{width:100%;margin-top:8px;padding:18px;font-size:15.5px;}
.form-note{font-size:12px;color:var(--stone-600);margin-top:14px;text-align:center;}
.form-success{
  display:none;
  text-align:center;padding:40px 10px;
}
.form-success.show{display:block;}
.form-success svg{width:52px;height:52px;stroke:var(--sage-600);margin:0 auto 18px;}
.form-success h3{font-size:22px;margin-bottom:8px;}
.form-success p{color:var(--stone-600);font-size:14.5px;}

.book-contacts{
  background:var(--stone-900);
  color:var(--cream-100);
  padding:56px 44px;
  display:flex;flex-direction:column;
  gap:24px;
  position:relative;
  overflow:hidden;
  min-width:0;
}
.book-contacts::before{
  content:'';position:absolute;top:-20%;right:-30%;width:70%;height:60%;
  background:radial-gradient(closest-side, rgba(198,136,63,.28), transparent 70%);
}
.book-contacts h3{font-family:var(--font-display);font-size:19px;position:relative;z-index:1;}
.contact-row{
  display:flex;align-items:flex-start;gap:14px;
  position:relative;z-index:1;
  min-width:0;
}
.contact-row .ic{
  width:42px;height:42px;border-radius:12px;flex:none;
  background:rgba(244,236,221,.08);
  display:flex;align-items:center;justify-content:center;
}
.contact-row .ic svg{width:19px;height:19px;stroke:var(--amber-300);}
.contact-row b{display:block;font-size:15px;margin-bottom:2px;}
.contact-row span,.contact-row a{font-size:13.5px;color:rgba(244,236,221,.66);word-break:break-word;}
.contact-row a:hover{color:var(--cream-50);}

.map-link-row{
  display:flex;align-items:center;gap:8px;
  position:relative;z-index:1;
  font-size:13.5px;font-weight:700;
  color:var(--amber-300);
  width:fit-content;
}
.map-link-row svg{width:15px;height:15px;stroke:var(--amber-300);}
.map-link-row:hover{color:var(--cream-50);}
.map-link-row:hover svg{stroke:var(--cream-50);}

.map-embed{
  position:relative;z-index:1;
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(244,236,221,.14);
  aspect-ratio:16/11;
  background:var(--stone-800);
}
.map-embed iframe{width:100%;height:100%;border:0;display:block;filter:grayscale(.15) contrast(1.05);}

.social-row{display:flex;gap:10px;position:relative;z-index:1;margin-top:auto;padding-top:8px;}
.social-row a{
  width:42px;height:42px;border-radius:50%;
  background:rgba(244,236,221,.08);
  display:flex;align-items:center;justify-content:center;
  transition:background .2s ease;
}
.social-row a:hover{background:var(--amber-500);}
.social-row svg{width:17px;height:17px;stroke:var(--cream-100);}
.social-row a:hover svg{stroke:var(--stone-900);}

@media (max-width:940px){
  .book-panel{grid-template-columns:1fr;border-radius:24px;}
  .book-form,.book-contacts{padding:40px 26px;}
  .field-row{grid-template-columns:1fr;}
}

/* ============ CTA BAND (main site — links out to booking page) ============ */
.cta-band{
  background:var(--stone-900);
  color:var(--cream-100);
  position:relative;
  overflow:hidden;
  text-align:center;
  padding:96px 0;
}
.cta-band::before{
  content:'';position:absolute;top:-30%;left:50%;transform:translateX(-50%);
  width:60%;height:120%;
  background:radial-gradient(closest-side, rgba(198,136,63,.3), transparent 72%);
  pointer-events:none;
}
.cta-band .eyebrow{color:var(--amber-300);justify-content:center;position:relative;z-index:1;}
.cta-band h2{
  font-size:clamp(28px,3.6vw,44px);
  color:var(--cream-50);
  max-width:640px;margin:18px auto 16px;
  position:relative;z-index:1;
}
.cta-band p{
  color:rgba(244,236,221,.7);
  max-width:480px;margin:0 auto 36px;
  font-size:15.5px;
  position:relative;z-index:1;
}
.cta-actions{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;position:relative;z-index:1;margin-bottom:44px;}
.cta-info{
  display:flex;justify-content:center;gap:36px;flex-wrap:wrap;
  position:relative;z-index:1;
}
.cta-info-item{display:flex;align-items:center;gap:10px;font-size:14px;color:rgba(244,236,221,.72);}
.cta-info-item svg{width:18px;height:18px;stroke:var(--amber-300);flex:none;}

/* ============ BOOKING PAGE HERO BANNER ============ */
.page-hero{
  background:var(--stone-900);
  color:var(--cream-100);
  padding:150px 0 64px;
  position:relative;overflow:hidden;
}
.page-hero::before{
  content:'';position:absolute;top:-40%;right:-10%;width:60%;height:120%;
  background:radial-gradient(closest-side, rgba(198,136,63,.3), transparent 72%);
  pointer-events:none;
}
.page-hero .wrap{position:relative;z-index:1;}
.page-hero .eyebrow{color:var(--amber-300);margin-bottom:16px;}
.page-hero h1{font-size:clamp(30px,4vw,46px);color:var(--cream-50);max-width:640px;}
.page-hero p{color:rgba(244,236,221,.7);max-width:480px;margin-top:14px;font-size:15.5px;}
.back-link{
  display:inline-flex;align-items:center;gap:8px;
  font-size:13.5px;font-weight:700;color:rgba(244,236,221,.7);
  margin-bottom:22px;position:relative;z-index:1;
}
.back-link:hover{color:var(--cream-50);}
.back-link svg{width:15px;height:15px;stroke:currentColor;}


/* ============ FOOTER ============ */
.site-footer{background:var(--stone-900);color:rgba(244,236,221,.6);padding:56px 0 28px;}
.footer-top{
  display:flex;justify-content:space-between;align-items:start;gap:40px;
  padding-bottom:40px;border-bottom:1px solid rgba(244,236,221,.1);
  flex-wrap:wrap;
}
.footer-brand .logo{margin-bottom:14px;}
.footer-brand p{max-width:280px;font-size:14px;}
.footer-cols{display:flex;gap:60px;flex-wrap:wrap;}
.footer-col h4{color:var(--cream-100);font-size:13px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;margin-bottom:16px;}
.footer-col a{display:block;font-size:14px;margin-bottom:11px;transition:color .2s ease;}
.footer-col a:hover{color:var(--cream-50);}
.footer-bottom{
  padding-top:24px;display:flex;justify-content:space-between;gap:12px;
  font-size:12.5px;flex-wrap:wrap;
}
@media (max-width:700px){.footer-top{flex-direction:column;}}

/* ============ FLOATING MOBILE BAR ============ */
.mobile-cta{
  position:fixed;bottom:0;left:0;right:0;z-index:90;
  background:rgba(34,29,25,.96);
  backdrop-filter:blur(10px);
  display:none;
  padding:12px 18px;
  gap:10px;
  box-shadow:0 -8px 24px rgba(0,0,0,.2);
}
.mobile-cta a{
  flex:1;display:flex;align-items:center;justify-content:center;gap:8px;
  padding:13px;border-radius:100px;font-size:14px;font-weight:700;
}
.mobile-cta .call{background:rgba(244,236,221,.1);color:var(--cream-50);}
.mobile-cta .book{background:var(--amber-500);color:var(--stone-900);}
@media (max-width:760px){
  .mobile-cta{display:flex;}
  body{padding-bottom:78px;}
}

/* ============ ADMIN PANEL ============ */
.admin-page{
  background:linear-gradient(180deg, var(--cream-100) 0%, var(--cream-50) 55%);
  background-repeat:no-repeat;
  background-attachment:fixed;
  min-height:100vh;
  min-height:100dvh;
}
.admin-login-screen{
  min-height:100vh;   /* фолбек для старих браузерів */
  min-height:100dvh;  /* реальна видима висота — без цього на мобільних 100vh може бути
                          більшим за фактично видиму область (через панель браузера),
                          через що фон "не дотягує" і повторюється смугами при скролі */
  display:flex;align-items:center;justify-content:center;padding:20px;
  background:var(--stone-900);
  position:relative;overflow:hidden;
}
.admin-login-screen::before{
  content:'';position:absolute;top:-25%;left:50%;transform:translateX(-50%);
  width:75%;height:110%;
  background:radial-gradient(closest-side, rgba(198,136,63,.32), transparent 72%);
  pointer-events:none;
}
.admin-login-screen::after{
  content:'';position:absolute;bottom:-25%;right:-10%;
  width:55%;height:80%;
  background:radial-gradient(closest-side, rgba(108,122,90,.2), transparent 70%);
  pointer-events:none;
}
.admin-login-card{
  position:relative;z-index:1;
  width:100%;max-width:380px;
  background:var(--cream-50);
  border-radius:24px;
  padding:40px 34px;
  box-shadow:0 30px 70px rgba(0,0,0,.35);
}
.admin-header{background:var(--cream-50);border-bottom:1px solid var(--cream-200);padding:18px 0;}
.admin-header-inner{
  max-width:1180px;margin:0 auto;padding:0 28px;
  display:flex;align-items:center;justify-content:space-between;
}
.admin-tabs{
  max-width:1180px;margin:24px auto 0;padding:0 28px;
  display:flex;gap:10px;
}
.admin-tab{
  padding:11px 22px;border-radius:100px;
  font-size:14px;font-weight:700;
  background:var(--cream-50);color:var(--stone-600);
  transition:.2s ease;
}
.admin-tab.active{background:var(--stone-900);color:var(--cream-50);}
.admin-panel-section{max-width:1180px;margin:28px auto 80px;padding:0 28px;}
.admin-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;flex-wrap:wrap;}
.admin-filter-tabs{display:flex;gap:8px;flex-wrap:wrap;}
.admin-filter{
  padding:9px 16px;border-radius:100px;
  font-size:13px;font-weight:700;
  background:var(--cream-100);color:var(--stone-600);
}
.admin-filter.active{background:var(--amber-500);color:var(--stone-900);}
.admin-card{
  background:var(--cream-50);border-radius:20px;padding:28px;
  max-width:560px;box-shadow:0 10px 30px rgba(34,29,25,.06);
}
.admin-list{display:flex;flex-direction:column;gap:12px;}
.admin-row{
  background:var(--cream-50);
  border-radius:16px;
  padding:20px 22px;
  display:flex;justify-content:space-between;align-items:flex-start;gap:16px;
  flex-wrap:wrap;
  box-shadow:0 6px 20px rgba(34,29,25,.05);
}
.admin-row-main{flex:1;min-width:220px;}
.admin-row-head{display:flex;align-items:center;gap:10px;margin-bottom:6px;flex-wrap:wrap;}
.admin-row-head b{font-size:15px;}
.status-badge{
  font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;
  padding:4px 10px;border-radius:100px;
}
.status-pending{background:rgba(198,136,63,.15);color:var(--amber-600);}
.status-approved{background:rgba(108,122,90,.15);color:var(--sage-600);}
.status-rejected{background:rgba(166,106,87,.15);color:var(--rose-500);}
.admin-row-stars{color:var(--amber-500);font-size:14px;margin-bottom:6px;}
.admin-row-text{font-size:14.5px;color:var(--stone-700);margin-bottom:6px;}
.admin-row-meta{font-size:12px;color:var(--stone-600);}
.admin-row-actions{display:flex;gap:8px;flex:none;}
.admin-row-actions .btn{padding:9px 16px;font-size:13px;}
.testi-empty-dark{color:var(--stone-600);font-size:14.5px;}

@media (max-width:600px){
  .admin-header-inner{padding:0 20px;}
  .admin-header .logo{font-size:16px;}
  .admin-tabs,.admin-panel-section{padding:0 20px;}
  .admin-toolbar{gap:12px;}
  .admin-card{padding:22px 20px;}
  .admin-row{padding:16px 18px;}
  .admin-row-actions{width:100%;}
  .admin-row-actions .btn{flex:1;}
  .service-modal,.account-panel{padding:30px 22px;}
}

.phone-input-group{display:flex;gap:8px;}
.phone-input-group select{
  flex:none;width:auto;min-width:96px;
  padding:13px 6px;
}
.phone-input-group input{flex:1;min-width:0;width:auto;}

/* ============ SCHEDULE TABLE (admin) ============ */
.schedule-toolbar{
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  margin-bottom:20px;flex-wrap:wrap;
}
.schedule-daynav{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.schedule-nav-btn{padding:9px 15px;font-size:16px;line-height:1;}
.schedule-day-label{
  font-family:var(--font-display);font-size:16px;font-weight:600;
  min-width:180px;text-align:center;
}
.schedule-actions{display:flex;gap:10px;flex-wrap:wrap;}
.schedule-daybanner{
  background:rgba(198,136,63,.15);
  color:var(--amber-600);
  border:1.5px solid rgba(198,136,63,.35);
  border-radius:14px;
  padding:14px 18px;
  font-weight:700;
  font-size:14px;
  margin-bottom:18px;
}
.schedule-table-wrap{
  background:var(--cream-50);
  border-radius:18px;
  overflow-x:auto;
  box-shadow:0 6px 20px rgba(34,29,25,.05);
}
.schedule-table{width:100%;border-collapse:collapse;min-width:640px;}
.schedule-table th{
  text-align:left;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;
  color:var(--stone-600);padding:14px 16px;border-bottom:1px solid var(--cream-200);white-space:nowrap;
}
.schedule-table td{
  padding:13px 16px;font-size:14px;border-bottom:1px solid var(--cream-200);vertical-align:top;
}
.schedule-table tr:last-child td{border-bottom:none;}
.schedule-row-free td{color:var(--stone-600);font-style:italic;}
.schedule-row-booking td:first-child,.schedule-row-booking td:nth-child(2){font-weight:700;}
.schedule-row-blocked td{color:var(--rose-500);}
@media (max-width:700px){
  .schedule-day-label{min-width:0;}
  .schedule-toolbar{flex-direction:column;align-items:stretch;}
  .schedule-daynav,.schedule-actions{justify-content:center;}
}
