*{box-sizing:border-box}

:root{
  --bg:#120d0f;
  --bg-deep:#241518;
  --surface:#f0e4d8;
  --surface-alt:#e5d6c8;
  --surface-soft:#d6c4b3;
  --text:#f7eee9;
  --muted:#d2beb7;
  --line:rgba(255,255,255,.08);
  --line-strong:rgba(255,255,255,.14);
  --accent:#cb4337;
  --accent-dark:#f26d61;
  --accent-soft:rgba(203,67,55,.14);
  --accent-soft-2:rgba(203,67,55,.2);
  --green:#3f6458;
  --green-soft:rgba(63,100,88,.10);
  --shadow:0 22px 58px rgba(0,0,0,.24);
  --radius-xl:24px;
  --radius-lg:18px;
  --radius-md:14px;
}

html{scroll-behavior:smooth}

body{
  position:relative;
  min-height:100vh;
  margin:0;
  font-family:"Manrope",sans-serif;
  color:var(--text);
  background:
    radial-gradient(circle at 12% 18%, rgba(203,67,55,.24), transparent 24%),
    radial-gradient(circle at 88% 14%, rgba(203,67,55,.2), transparent 22%),
    radial-gradient(circle at 50% 100%, rgba(120,29,24,.28), transparent 36%),
    linear-gradient(180deg, #150f11 0%, #0f0b0c 100%);
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-1;
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);
  background-size:32px 32px;
  opacity:.3;
  mask-image:linear-gradient(180deg, rgba(0,0,0,.28), transparent 82%);
}

body::after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-1;
  background:
    radial-gradient(circle at 18% 76%, rgba(179,38,28,.16), transparent 26%),
    radial-gradient(circle at 82% 62%, rgba(203,67,55,.14), transparent 24%);
  filter:blur(20px);
}

a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button,input,select,textarea{font:inherit}

.container{
  width:min(1400px, calc(100% - 36px));
  margin:0 auto;
}

.site-header .container,
.topbar .container{
  width:calc(100% - 36px);
}

.site-main{padding-bottom:28px}

.topbar{
  position:relative;
  z-index:20;
  background:#1d1b18;
  color:#f4ecdf;
  border-bottom:1px solid rgba(255,255,255,.08);
}

.topbar-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:8px 0;
  font-size:13px;
}

.topbar-copy{
  font-weight:800;
  letter-spacing:.02em;
}

.topbar-links{
  display:flex;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
  color:#d3c5b3;
}

.topbar-links a:hover{color:#fff}

.site-header{
  position:sticky;
  top:0;
  z-index:40;
  background:rgba(15,10,12,.86);
  backdrop-filter:blur(20px);
  border-bottom:1px solid rgba(203,67,55,.18);
  box-shadow:0 12px 40px rgba(0,0,0,.22);
}

.header-shell{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:24px;
  align-items:center;
  padding:14px 0;
}

.brand{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}

.brand img{
  width:72px;
  height:72px;
  object-fit:contain;
  padding:8px;
  border-radius:20px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 12px 28px rgba(0,0,0,.16);
}

.brand-name{
  font-family:"Archivo",sans-serif;
  font-size:26px;
  font-weight:800;
  line-height:1;
  color:#f8efea;
}

.brand-sub{
  margin-top:6px;
  color:#cab7b0;
  font-size:13px;
  line-height:1.4;
}

.header-main{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:20px;
  min-width:0;
  flex-wrap:nowrap;
}

.main-nav{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:nowrap;
  flex:1 1 auto;
  min-width:0;
  overflow-x:auto;
  scrollbar-width:none;
}

.main-nav::-webkit-scrollbar{display:none}

.main-nav a{
  padding:11px 13px;
  border-radius:999px;
  color:rgba(248,239,234,.8);
  font-size:13px;
  font-weight:800;
  transition:background .18s ease,color .18s ease,transform .18s ease;
  white-space:nowrap;
}

.main-nav a:hover,
.main-nav a.active{
  background:rgba(203,67,55,.18);
  color:#fff4ef;
  transform:translateY(-1px);
}

.header-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
  margin-left:auto;
}

.user-chip,
.user-badge{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  max-width:240px;
  padding:0 14px;
  overflow:hidden;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.07);
  color:#f2e7e2;
  font-size:13px;
  font-weight:800;
  text-overflow:ellipsis;
  white-space:nowrap;
  box-shadow:0 10px 24px rgba(53,39,20,.06);
}

.btn,
.login-button,
.crm-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:42px;
  padding:0 16px;
  border:none;
  border-radius:14px;
  font-weight:800;
  letter-spacing:.01em;
  cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease,border-color .18s ease;
}

.btn:hover,
.login-button:hover,
.crm-button:hover{transform:translateY(-1px)}

.btn-small{min-height:40px;padding:0 14px;font-size:13px}

.btn-primary{
  background:linear-gradient(135deg, var(--accent), #e64d3d);
  color:#fff;
  box-shadow:0 18px 34px rgba(203,67,55,.3);
}

.btn-primary:hover{box-shadow:0 24px 40px rgba(203,67,55,.36)}

.btn-secondary{
  background:#1a1415;
  color:#fff;
  box-shadow:0 18px 32px rgba(0,0,0,.24);
}

.btn-outline,
.login-button,
.crm-button{
  background:rgba(255,255,255,.07);
  color:#f3e7e1;
  border:1px solid rgba(255,255,255,.09);
  box-shadow:0 12px 26px rgba(0,0,0,.14);
}

.btn-outline:hover,
.login-button:hover,
.crm-button:hover{background:rgba(255,255,255,.12)}

.lang-dropdown{position:relative}

.lang-current{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:44px;
  padding:0 14px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.07);
  color:#f3e7e1;
  font-weight:800;
  cursor:pointer;
  box-shadow:0 12px 26px rgba(56,40,18,.06);
}

.lang-menu{
  position:absolute;
  right:0;
  top:calc(100% + 10px);
  display:none;
  min-width:170px;
  padding:8px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(20,15,16,.96);
  box-shadow:var(--shadow);
}

.lang-dropdown.open .lang-menu{display:grid;gap:4px}

.lang-option{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  border:none;
  border-radius:12px;
  background:transparent;
  color:#f1e6e0;
  font-weight:700;
  cursor:pointer;
}

.lang-option:hover,
.lang-option.active{
  background:var(--accent-soft);
  color:var(--accent-dark);
}

.lang-option-code{
  font-family:"Archivo",sans-serif;
  font-weight:800;
}

.google-auth-shell{
  appearance:none;
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:46px;
  min-width:46px;
  height:46px;
  padding:0;
  overflow:hidden;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.07);
  box-shadow:0 14px 26px rgba(0,0,0,.16);
  cursor:pointer;
}

.google-auth-shell::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(135deg, rgba(197,54,29,.12), transparent 65%);
  opacity:.9;
}

.google-auth-visual{
  position:relative;
  z-index:1;
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
}

.google-auth-logo{
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  border-radius:12px;
  background:linear-gradient(180deg, #fff, #f7f2ea);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5), 0 8px 14px rgba(0,0,0,.06);
}

.google-auth-logo-user{
  display:grid;
  place-items:center;
  width:18px;
  height:18px;
}

.google-auth-logo-user svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:#1e1b17;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.google-auth-copy,
.google-auth-arrow{display:none}

.hero,
.page-hero{padding:32px 0 10px}

.page-hero.small{padding:26px 0 10px}

.hero-grid,
.booking-hero-grid,
.service-layout,
.contacts-layout,
.cta-band,
.narrative-grid{display:grid;gap:18px}

.hero-grid{
  grid-template-columns:minmax(0,1.2fr) 420px;
  align-items:stretch;
}

.hero-grid.hero-grid-simple{grid-template-columns:1fr}

.hero-copy,
.hero-panel,
.glass,
.surface-panel,
.contact-box,
.calendar-card,
.form-wrap,
.booking-intro-card,
.booking-contact-card{
  border-radius:var(--radius-xl);
  border:1px solid rgba(203,67,55,.12);
  background:linear-gradient(180deg, rgba(248,238,230,.98), rgba(233,218,205,.94));
  box-shadow:var(--shadow);
  color:#231b18;
}

.hero-copy,
.hero-panel,
.surface-panel,
.contact-box,
.calendar-card,
.form-wrap,
.booking-intro-card,
.booking-contact-card{padding:22px}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:7px 12px;
  width:100%;
  max-width:none;
  border-radius:999px;
  border:1px solid rgba(73,57,36,.10);
  background:rgba(255,255,255,.48);
  color:#7c564f;
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  justify-content:flex-start;
  justify-self:stretch;
  align-self:start;
}

.eyebrow::before{
  content:"";
  width:6px;
  height:6px;
  border-radius:999px;
  background:#8f6a60;
}

.hero h1,
.page-hero h1,
.hero-title,
.section-title,
.section-title-home{
  margin:14px 0;
  font-family:"Archivo",sans-serif;
  font-size:clamp(2rem, 4.2vw, 4rem);
  line-height:.96;
  letter-spacing:-.03em;
}

.hero-copy h1,
.booking-intro-card h1,
.hero-panel h2,
.surface-panel h3,
.site-box h3,
.contact-box h2,
.calendar-card h3,
.form-wrap h2,
.slots-card h3{
  color:#1f1815;
}

.service-card h3,
.service-card h3 span,
.info-value,
.info-value span,
.detail-value,
.detail-value span,
.contact-box h2,
.contact-box h2 span,
.form-wrap h2,
.form-wrap h2 span,
.calendar-card h3,
.calendar-card h3 span,
.review-body,
.review-body span{
  color:#241d1a !important;
}

.hero p,
.hero-text{
  margin:0;
  color:#5e5449;
  font-size:16px;
  line-height:1.62;
}

.page-hero p,
.section-subtitle,
.section-subtitle-home{
  margin:0;
  color:var(--muted);
  font-size:16px;
  line-height:1.62;
}

.booking-intro-card p{
  color:#65584f;
}

.hero-copy .info-card,
.contact-box .contact-row span,
.contact-box .contact-row a,
.contact-box .contact-actions,
.surface-panel .review-note,
.calendar-card,
.form-wrap,
.service-card,
.review-card,
.process-card,
.site-box-item,
.booking-promise{
  color:#241d1a;
}

.contact-row span,
.contact-row a{
  color:#3b312d;
}

.calendar-head h2{
  color:#251d1a;
}

.weekdays{
  color:#7a6d62;
}

.day{
  color:#261d1a;
}

.day small{
  color:#7b6d61;
}

.service-card p,
.service-card p span,
.review-note,
.review-note span,
.process-card span,
.process-card span span,
.booking-promise span,
.booking-promise span span,
.surface-panel p,
.surface-panel p span,
.contact-box p,
.contact-box p span,
.calendar-card p,
.calendar-card p span,
.form-wrap p,
.form-wrap p span,
.contact-row span,
.contact-row span *,
.contact-row a,
.contact-row a *,
.booking-intro-card p,
.booking-intro-card p span,
.hero-copy p,
.hero-copy p span{
  color:#65584f !important;
}

.hero-actions,
.hero-buttons,
.site-box-buttons,
.contact-actions,
.footer-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:20px;
}

.hero-quick-grid,
.booking-promise-grid{display:grid;gap:12px}

.hero-service-area{
  margin-top:14px;
  color:#433a31;
  font-size:14px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.hero-service-pills{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
}

.hero-service-pills .detail-chip{
  background:rgba(255,255,255,.64);
}

.hero-service-note{
  margin:10px 0 0;
  color:#5e5449;
  font-size:14px;
  line-height:1.58;
}

.hero-quick-grid{
  grid-template-columns:repeat(3, minmax(0,1fr));
  margin-top:18px;
}

.info-card,
.metric-card,
.process-card,
.site-box-item,
.booking-promise,
.review-card,
.service-card,
.detail-card{
  padding:16px;
  border-radius:18px;
  border:1px solid rgba(96,75,45,.12);
  background:linear-gradient(180deg, rgba(247,242,235,.92), rgba(236,228,216,.92));
  box-shadow:0 10px 22px rgba(65,48,24,.05);
}

.info-label,
.metric-label,
.detail-label{
  margin-bottom:10px;
  color:var(--accent-dark);
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.info-value,
.metric-value,
.detail-value{
  color:#2a2621;
  font-size:15px;
  line-height:1.6;
}

.info-value a,
.detail-value a,
.contact-row a,
.site-footer a{color:var(--accent-dark)}

.hero-panel{
  display:grid;
  align-content:start;
  gap:14px;
}

.hero-panel h2,
.side-title,
.surface-panel h3,
.site-box h3,
.contact-box h2,
.calendar-card h3,
.form-wrap h2,
.slots-card h3{
  margin:0 0 10px;
  font-family:"Archivo",sans-serif;
  font-size:27px;
  line-height:1.05;
}

.feature-list,
.detail-list,
.site-box-list,
.booking-steps{
  display:grid;
  gap:10px;
  margin:0;
  padding:0;
  list-style:none;
}

.feature-list li,
.detail-list li,
.booking-steps li{
  position:relative;
  padding:12px 14px 12px 42px;
  border-radius:16px;
  border:1px solid rgba(73,57,36,.10);
  background:rgba(255,255,255,.42);
  color:#2c2824;
  line-height:1.55;
}

.feature-list li::before,
.detail-list li::before,
.booking-steps li::before{
  content:"";
  position:absolute;
  left:16px;
  top:16px;
  width:8px;
  height:8px;
  border-radius:999px;
  background:#826158;
  box-shadow:none;
}

.notice,
.side-news,
.account-note,
.privacy-note,
.contact-note{
  padding:14px 16px;
  border-radius:16px;
  border:1px solid rgba(73,57,36,.10);
  background:rgba(255,255,255,.46);
  color:#51473c;
  line-height:1.65;
}

.section,
.home-section{padding:28px 0}

.section.alt{
  border-top:1px solid rgba(96,75,45,.08);
  border-bottom:1px solid rgba(96,75,45,.08);
  background:rgba(255,255,255,.26);
}

.section-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:16px;
}

.section-head > div{
  flex:1 1 auto;
  min-width:0;
}

.section-head .section-title,
.section-head .section-title-home{
  margin:10px 0 8px;
  font-size:clamp(1.8rem, 3vw, 2.7rem);
}

.section-head p{max-width:700px}

.services-grid,
.home-services-grid,
.service-grid-page,
.process-grid,
.contact-card-grid{display:grid;gap:14px}

.services-grid,
.home-services-grid{grid-template-columns:repeat(3, minmax(0,1fr))}

.service-grid-page{grid-template-columns:repeat(2, minmax(0,1fr))}

.service-card{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:12px;
  min-height:100%;
  overflow:hidden;
}

.service-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}

.service-tag,
.review-chip,
.detail-chip,
.service-price,
.service-price-home,
.service-price-note{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:8px 12px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.service-tag,
.detail-chip{
  border:1px solid rgba(67,106,95,.16);
  background:var(--green-soft);
  color:#37594f;
}

.service-price,
.service-price-home{
  border:1px solid rgba(186,74,54,.14);
  background:rgba(255,255,255,.46);
  color:#8b4e43;
}

.service-price-note{
  border:1px solid rgba(96,75,45,.10);
  background:rgba(255,255,255,.72);
  color:#4b4339;
}

.service-card h3,
.service-title-home{
  margin:0;
  font-family:"Archivo",sans-serif;
  font-size:24px;
  line-height:1.04;
  letter-spacing:-.02em;
}

.service-card p,
.service-text-home{
  margin:0;
  color:var(--muted);
  line-height:1.58;
}

.service-card-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:auto;
}

.service-card .btn-outline,
.surface-panel .btn-outline,
.contact-box .btn-outline,
.form-wrap .btn-outline,
.booking-intro-card .btn-outline{
  background:rgba(34,24,24,.06);
  color:#2d2522;
  border:1px solid rgba(78,58,48,.16);
  box-shadow:none;
}

.service-card .btn-outline:hover,
.surface-panel .btn-outline:hover,
.contact-box .btn-outline:hover,
.form-wrap .btn-outline:hover,
.booking-intro-card .btn-outline:hover{
  background:rgba(34,24,24,.1);
  color:#211a17;
}

.detail-chip-row{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.surface-panel,
.site-box,
.contact-box{display:grid;gap:14px}

.surface-panel p,
.site-box p,
.contact-box p,
.calendar-card p,
.form-wrap p{
  margin:0;
  color:#5e5449;
  line-height:1.7;
}

.narrative-grid{
  grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
  align-items:start;
}

.process-grid{grid-template-columns:repeat(3, minmax(0,1fr))}

.site-box-list-benefits{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:14px;
}

.process-card strong{
  display:block;
  margin-bottom:8px;
  font-family:"Archivo",sans-serif;
  font-size:20px;
}

.process-card span{
  color:var(--muted);
  line-height:1.6;
}

.review-shell{display:grid;gap:14px}

.reviews-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}

.reviews-meta,
.review-dots{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}

.review-chip{
  border:1px solid rgba(96,75,45,.12);
  background:rgba(255,255,255,.68);
  color:#39332c;
}

.review-chip.google{
  background:rgba(234,240,255,.9);
  color:#2d457d;
}

.review-link{
  display:inline-flex;
  align-items:center;
  min-height:42px;
  padding:0 15px;
  border-radius:999px;
  background:#1d1b18;
  color:#fff;
  font-size:13px;
  font-weight:800;
}

.review-stage{position:relative}

.review-card{
  display:none;
  gap:16px;
}

.review-card.active{
  display:grid;
  animation:riseIn .45s ease;
}

.review-stars{
  display:flex;
  gap:4px;
  color:#f59e0b;
  font-size:18px;
}

.review-body{
  margin:0;
  color:#2e2a24;
  font-size:16px;
  line-height:1.62;
}

.review-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}

.review-author{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}

.review-avatar,
.review-author img{
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border-radius:999px;
  flex:0 0 auto;
}

.review-avatar{
  background:#1d1b18;
  color:#fff;
  font-weight:900;
}

.review-author img{object-fit:cover}

.review-author-name,
.review-author-name a{
  color:#29251f;
  font-weight:900;
}

.review-author-sub{
  margin-top:4px;
  color:var(--muted);
  font-size:13px;
}

.review-note{
  margin:0;
  color:#5e5449;
  line-height:1.6;
}

.review-dot{
  width:12px;
  height:12px;
  padding:0;
  border:none;
  border-radius:999px;
  background:rgba(0,0,0,.12);
  cursor:pointer;
}

.review-dot.active{
  background:#8b4e43;
  box-shadow:0 0 0 4px rgba(139,78,67,.12);
}

.review-layout{
  display:grid;
  grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);
  gap:24px;
  align-items:start;
}

.reviews-preview-grid{
  display:grid;
  grid-template-columns:minmax(320px,.85fr) minmax(0,1.15fr);
  gap:24px;
  align-items:start;
}

.review-card-compact{min-height:100%}

.review-grid-page{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:14px;
}

.review-page-head{display:grid;gap:18px}

.review-page-meta{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}

.review-side{
  display:grid;
  gap:14px;
  align-content:start;
}

.site-box-list{grid-template-columns:1fr 1fr}

.site-box-item strong{
  display:block;
  margin-bottom:8px;
  color:#241d1a;
  font-size:15px;
}

.site-box-item span{
  color:#65584f !important;
  line-height:1.6;
}

.cta-band{
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  padding:28px;
  border-radius:28px;
  background:linear-gradient(135deg, #180f11, #3a1719);
  color:#fff;
  box-shadow:0 22px 40px rgba(0,0,0,.24);
}

.cta-band h3{
  margin:0 0 12px;
  font-family:"Archivo",sans-serif;
  font-size:36px;
  line-height:1;
}

.cta-band p{
  max-width:700px;
  margin:0;
  color:rgba(255,255,255,.78);
  line-height:1.7;
}

.page-hero .container{display:grid;gap:14px}

.page-hero h1{
  margin:0;
  font-size:clamp(2.1rem, 4.2vw, 4rem);
}

.page-hero p{max-width:760px}

.service-layout{
  grid-template-columns:minmax(0,1fr) 330px;
  align-items:start;
}

.service-layout.single-column{grid-template-columns:1fr}

.side-stack{
  position:sticky;
  top:120px;
  display:grid;
  gap:16px;
}

.side-stack .surface-panel{padding:18px}

.contact-card-grid{grid-template-columns:repeat(3, minmax(0,1fr))}

.contacts-layout{
  grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
  align-items:stretch;
}

.map-box{
  padding:10px;
  border-radius:var(--radius-xl);
  border:1px solid rgba(203,67,55,.12);
  background:linear-gradient(180deg, rgba(248,238,230,.98), rgba(233,218,205,.94));
  box-shadow:var(--shadow);
}

.map-box iframe{
  width:100%;
  height:100%;
  min-height:420px;
  border:0;
  border-radius:16px;
}

.contact-row{
  display:grid;
  grid-template-columns:140px 1fr;
  gap:18px;
  padding:12px 0;
  border-bottom:1px solid rgba(96,75,45,.10);
}

.contact-row:last-child{border-bottom:none}

.contact-row strong{
  color:var(--accent-dark);
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.contact-actions .btn{
  flex:1 1 190px;
}

.booking-hero-grid{
  grid-template-columns:minmax(0,1.06fr) minmax(320px,.94fr);
  align-items:start;
}

.booking-intro-card,
.booking-contact-card{display:grid;gap:14px}

.booking-intro-card-wide{
  width:100%;
  max-width:none;
}

.booking-promise-grid{grid-template-columns:repeat(3, minmax(0,1fr))}

.booking-promise strong{
  display:block;
  margin-bottom:8px;
  font-family:"Archivo",sans-serif;
  font-size:20px;
}

.booking-promise span{
  color:var(--muted);
  line-height:1.6;
}

.booking-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:18px;
  align-items:start;
}

.booking-side{
  display:grid;
  gap:14px;
}

.calendar-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}

.calendar-head h2{
  margin:0;
  font-family:"Archivo",sans-serif;
  font-size:30px;
}

.calendar-nav{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:12px;
  background:#1d1b18;
  color:#fff;
  box-shadow:0 14px 24px rgba(29,27,24,.14);
}

button.calendar-nav{
  border:none;
  cursor:pointer;
  font:inherit;
}

.weekdays,
.calendar-grid{
  display:grid;
  grid-template-columns:repeat(7, minmax(0,1fr));
  gap:8px;
}

.weekdays{
  margin-bottom:8px;
  color:#7a736b;
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.weekdays .weekend{color:#c24545}

.day{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:8px;
  min-height:82px;
  padding:10px;
  border-radius:16px;
  border:1px solid rgba(96,75,45,.10);
  background:rgba(255,255,255,.76);
  transition:border-color .18s ease,transform .18s ease,background .18s ease;
}

button.day{
  font:inherit;
  font-family:inherit;
  color:inherit;
  text-align:left;
  cursor:pointer;
  appearance:none;
  -webkit-appearance:none;
}

.day span{font-weight:900}
.day small{color:var(--muted)}
.day.weekend span,
.day.holiday span{color:#c24545}

.day:hover{
  transform:translateY(-1px);
  border-color:rgba(139,78,67,.22);
}

.day.muted{opacity:.42}
.day.past{pointer-events:none;opacity:.42}
.day.closed{background:rgba(139,78,67,.06)}

.day.selected{
  border-color:rgba(139,78,67,.30);
  background:rgba(139,78,67,.08);
  box-shadow:0 0 0 4px rgba(139,78,67,.07);
}

.booking-form-card{
  display:grid;
  gap:14px;
}

.booking-form{
  display:grid;
  gap:12px;
}

.booking-form label{display:grid;gap:8px}

.booking-form label span{
  color:#4b4339;
  font-size:13px;
  font-weight:800;
}

.booking-form input,
.booking-form select,
.booking-form textarea{
  width:100%;
  padding:12px 14px;
  border:1px solid rgba(96,75,45,.14);
  border-radius:14px;
  background:rgba(255,255,255,.82);
  color:#221f1b;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.48);
}

/* Выбор услуги: более аккуратный вид в стиле language picker. */
.booking-form .service-select{
  appearance:none;
  -webkit-appearance:none;
  cursor:pointer;
  font-weight:700;
  border-radius:16px;
  padding-right:42px;
  background-image:
    linear-gradient(45deg, transparent 50%, #7d2f2f 50%),
    linear-gradient(135deg, #7d2f2f 50%, transparent 50%),
    linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.82));
  background-position:
    calc(100% - 18px) calc(50% - 3px),
    calc(100% - 12px) calc(50% - 3px),
    0 0;
  background-size:6px 6px, 6px 6px, 100% 100%;
  background-repeat:no-repeat;
}
.booking-form .service-select:focus{
  border-color:rgba(154,43,43,.38);
  box-shadow:0 0 0 4px rgba(154,43,43,.10);
}

.booking-form input:focus,
.booking-form select:focus,
.booking-form textarea:focus{
  outline:none;
  border-color:rgba(139,78,67,.30);
  box-shadow:0 0 0 4px rgba(139,78,67,.07);
}

.slot-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:8px;
}

.slot-chip{
  display:grid;
  align-content:center;
  justify-items:center;
  gap:4px;
  min-height:78px;
  padding:12px 8px;
  border-radius:14px;
  border:1px solid rgba(96,75,45,.12);
  background:rgba(255,255,255,.82);
  color:#2d2924;
  text-align:center;
  font-weight:900;
  cursor:pointer;
  transition:transform .18s ease,border-color .18s ease,background .18s ease;
}

.slot-time{
  display:block;
  color:#2b2622;
  font-size:18px;
  font-weight:900;
  line-height:1.05;
}

.slot-status{
  display:block;
  color:#413b35;
  font-size:13px;
  font-weight:800;
  line-height:1.15;
}

.slot-chip.free:hover{
  transform:translateY(-1px);
  border-color:rgba(139,78,67,.26);
}

.slot-chip.busy{
  border-color:rgba(139,78,67,.16);
  background:rgba(139,78,67,.05);
  color:#9e4b42;
}

.slot-chip.busy .slot-time,
.slot-chip.busy .slot-status{
  color:#9e4b42;
}

.slot-chip:has(input:checked){
  border-color:rgba(139,78,67,.30);
  background:rgba(139,78,67,.08);
  box-shadow:0 0 0 4px rgba(139,78,67,.07);
}

.slot-chip.selected{
  border-color:rgba(139,78,67,.30);
  background:rgba(139,78,67,.08);
  box-shadow:0 0 0 4px rgba(139,78,67,.07);
}

button.slot-chip{
  font:inherit;
  font-family:inherit;
}

.service-meta{
  display:grid;
  gap:12px;
  padding:14px 16px;
  border-radius:18px;
  border:1px solid rgba(73,57,36,.10);
  background:rgba(255,255,255,.44);
}

.service-meta[hidden]{display:none}

.service-meta-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}

.service-meta-title{
  color:#231f1b;
  font-family:"Archivo",sans-serif;
  font-size:20px;
  line-height:1.1;
}

.service-meta-price{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 12px;
  border-radius:999px;
  background:#2a2521;
  color:#fff;
  font-size:12px;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase;
}

.service-meta-desc{
  margin:0;
  color:#4a433a;
  line-height:1.65;
}

.service-meta-chips{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.service-meta-chip{
  display:inline-flex;
  align-items:center;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid rgba(96,75,45,.10);
  background:rgba(255,255,255,.82);
  color:#2f2b26;
  font-size:12px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.booking-channel{
  display:grid;
  gap:10px;
}

.booking-channel.is-compact-hidden{
  display:none;
}

.booking-channel-title{
  color:#4d463e;
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.booking-channel-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:8px;
}

.booking-channel-option{
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 14px;
  border-radius:16px;
  border:1px solid rgba(96,75,45,.12);
  background:rgba(255,255,255,.82);
  color:#2a2722;
  font-weight:700;
  cursor:pointer;
}

.booking-channel-option input{accent-color:var(--accent)}

/* Радио в блоке канала: отменяем общие стили .booking-form input */
.booking-channel-option input[type="radio"]{
  width:16px;
  min-width:16px;
  height:16px;
  padding:0;
  margin:0;
  border:none;
  border-radius:50%;
  background:transparent;
  box-shadow:none;
  display:inline-block;
  vertical-align:middle;
}

.booking-channel-option input[type="radio"]:focus{
  outline:none;
  box-shadow:none;
}

.booking-channel-note{
  padding:12px 14px;
  border-radius:16px;
  border:1px solid rgba(96,75,45,.12);
  background:rgba(255,255,255,.58);
  color:#5b5148;
  font-size:13px;
  line-height:1.55;
}

.booking-field-note{
  display:block;
  margin-top:6px;
  color:#6a5d53;
  font-size:12px;
  line-height:1.45;
}

.booking-optional-fields{
  border:1px solid rgba(96,75,45,.12);
  border-radius:18px;
  background:rgba(255,255,255,.54);
  overflow:hidden;
}

.booking-optional-fields.has-value{
  border-color:rgba(139,78,67,.24);
}

.booking-optional-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px;
  cursor:pointer;
  list-style:none;
  color:#352e29;
  font-size:13px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.booking-optional-summary::-webkit-details-marker{
  display:none;
}

.booking-optional-summary::after{
  content:"+";
  color:#8b4e43;
  font-size:18px;
  line-height:1;
}

.booking-optional-fields[open] .booking-optional-summary::after{
  content:"−";
}

.booking-optional-body{
  display:grid;
  gap:12px;
  padding:0 16px 16px;
}

.btn.btn-primary.booking-submit{
  border:1px solid rgba(96,75,45,.14) !important;
  background:rgba(29,27,24,.20) !important;
  color:#8a8074 !important;
  box-shadow:none !important;
}

.btn.btn-primary.booking-submit.is-ready{
  border-color:transparent !important;
  background:linear-gradient(135deg, var(--accent), #df5134) !important;
  color:#fff !important;
  box-shadow:0 18px 30px rgba(197,54,29,.22) !important;
}

.btn.btn-primary.booking-submit[disabled]{cursor:not-allowed}

.btn.btn-primary.booking-submit[disabled]:hover{transform:none}

.booking-modal-backdrop{
  position:fixed;
  inset:0;
  z-index:60;
  display:grid;
  place-items:center;
  padding:20px;
  background:rgba(32,24,15,.42);
  backdrop-filter:blur(8px);
}

.booking-modal{
  display:grid;
  gap:16px;
  width:min(100%, 620px);
  padding:24px;
  border-radius:24px;
  border:1px solid rgba(96,75,45,.12);
  background:rgba(255,253,248,.98);
  box-shadow:0 28px 80px rgba(44,31,16,.24);
  color:#231b18;
}

.booking-modal h3{
  margin:0;
  font-family:"Archivo",sans-serif;
  font-size:32px;
  line-height:1;
  color:#241b18;
}

.booking-modal p{
  margin:0;
  color:#6a5d53;
  line-height:1.65;
}

.booking-modal-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:12px;
}

.booking-modal-card,
.booking-modal-status{
  padding:14px 16px;
  border-radius:16px;
  border:1px solid rgba(197,54,29,.12);
  background:rgba(244,226,216,.58);
  color:#2c231f;
}

.booking-modal-card strong{
  display:block;
  margin-bottom:6px;
  color:var(--accent-dark);
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.booking-modal-card > div,
.booking-modal-status > div{
  color:#2c231f;
  font-size:16px;
  font-weight:700;
  line-height:1.55;
}

.booking-modal .btn-outline{
  background:rgba(34,24,24,.08);
  color:#231b18;
  border:1px solid rgba(78,58,48,.16);
}

.booking-modal .btn-outline:hover{
  background:rgba(34,24,24,.12);
  color:#1f1815;
}

.booking-modal-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}

.flash-stack{padding-top:14px}

.flash{
  margin-bottom:12px;
  padding:14px 16px;
  border-radius:16px;
}

.flash.success{
  border:1px solid rgba(45,115,95,.20);
  background:rgba(45,115,95,.12);
}

.flash.error{
  border:1px solid rgba(197,54,29,.16);
  background:rgba(197,54,29,.10);
}

.site-footer{
  margin-top:24px;
  padding-top:18px;
  background:linear-gradient(180deg, #100b0c, #160d0f);
  color:#f6efe3;
}

.footer-shell{
  display:grid;
  gap:14px;
  padding:0 0 14px;
}

.footer-brand-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  padding-bottom:12px;
  border-bottom:1px solid rgba(255,255,255,.08);
}

.footer-brand-meta{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
  color:#d7cab8;
}

.footer-brand-meta span,
.footer-brand-meta a{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:0 12px;
  border-radius:999px;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.07);
  color:#d7cab8;
}

.footer-grid{
  display:grid;
  grid-template-columns:1.2fr .9fr .9fr;
  gap:16px;
}

.footer-section{display:grid;align-content:start;gap:2px}

.footer-title{
  margin-bottom:8px;
  font-family:"Archivo",sans-serif;
  font-size:16px;
}

.site-footer p,
.site-footer a{
  color:#d7cab8;
  line-height:1.45;
  margin:0;
}

.site-footer a:hover{color:#fff}

.footer-bottom{
  padding:12px 0 14px;
  border-top:1px solid rgba(255,255,255,.08);
  color:#c1b19e;
  text-align:center;
  font-size:13px;
}

.whatsapp-float{
  position:fixed;
  right:16px;
  bottom:16px;
  z-index:45;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:12px 16px;
  border-radius:999px;
  background:#1f9d56;
  color:#fff;
  font-weight:900;
  box-shadow:0 20px 30px rgba(28,98,60,.28);
}

.whatsapp-float-icon{
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:999px;
  background:rgba(255,255,255,.2);
}

.reveal-up{animation:riseIn .6s ease both}

@keyframes riseIn{
  from{opacity:0;transform:translateY(18px)}
  to{opacity:1;transform:translateY(0)}
}

@media (max-width:1320px){
  .header-shell{grid-template-columns:1fr}

  .header-main{
    flex-direction:column;
    align-items:stretch;
  }

  .main-nav{justify-content:flex-start}
  .header-actions{justify-content:flex-start}
}

@media (max-width:1100px){
  .hero-grid,
  .service-layout,
  .review-layout,
  .reviews-preview-grid,
  .contacts-layout,
  .booking-hero-grid,
  .narrative-grid,
  .cta-band,
  .booking-layout,
  .footer-grid{grid-template-columns:1fr}

  .hero-quick-grid,
  .services-grid,
  .home-services-grid,
  .service-grid-page,
  .site-box-list,
  .site-box-list-benefits,
  .contact-card-grid,
  .process-grid,
  .booking-promise-grid{grid-template-columns:1fr 1fr}

  .side-stack{position:static}

  .main-nav{justify-content:center}
  .header-actions{justify-content:center}
}

@media (max-width:760px){
  .footer-brand-row{
    flex-direction:column;
    align-items:flex-start;
  }

  .footer-brand-meta{
    justify-content:flex-start;
  }

  .topbar-inner{
    flex-direction:column;
    align-items:flex-start;
  }

  .hero-copy,
  .hero-panel,
  .surface-panel,
  .contact-box,
  .calendar-card,
  .form-wrap,
  .booking-intro-card,
  .booking-contact-card{padding:18px}

  .hero h1,
  .page-hero h1,
  .hero-title,
  .section-title,
  .section-title-home{font-size:clamp(1.9rem, 10vw, 3rem)}

  .hero-quick-grid,
  .services-grid,
  .home-services-grid,
  .service-grid-page,
  .review-grid-page,
  .contact-card-grid,
  .process-grid,
  .booking-promise-grid,
  .site-box-list,
  .site-box-list-benefits,
  .booking-channel-grid,
  .booking-modal-grid{grid-template-columns:1fr}

  .section-head,
  .reviews-head{
    flex-direction:column;
    align-items:flex-start;
  }

  .contact-row{grid-template-columns:1fr}

  .slot-grid{grid-template-columns:repeat(2, minmax(0,1fr))}

  .weekdays,
  .calendar-grid{gap:6px}

  .day{
    min-height:70px;
    padding:8px;
  }

  .whatsapp-float-label{display:none}
}
