.site-header { --nav-height:84px; background:rgba(250,248,245,.985); backdrop-filter:none; transition:background-color .3s ease,box-shadow .3s ease,border-color .3s ease; }
.site-header .header-inner { position:relative; z-index:3; transition:min-height .32s cubic-bezier(.2,.8,.2,1); }
.site-header .brand img,.site-header .brand-name,.site-header .brand-mark { transition:max-height .32s ease,font-size .32s ease,transform .32s ease; }
.site-header.is-scrolled { --nav-height:68px; background:rgba(255,255,255,.985); border-color:#e9dddf; box-shadow:0 9px 28px rgba(41,53,59,.075); }
.site-header.is-scrolled .header-inner { min-height:68px; }
.site-header.is-scrolled .brand img { max-height:48px; }
.site-header.is-scrolled .brand-name { font-size:1.65rem; }
.site-header.is-scrolled .brand-mark { transform:scale(.91); }
.desktop-nav { padding:.3rem .8rem; border:1px solid transparent; border-radius:999px; transition:background-color .3s ease,border-color .3s ease; }
.desktop-nav a { transition:color .2s ease,transform .2s ease; }
.site-header.is-scrolled .desktop-nav { background:#f8f2f3; border-color:#eee1e4; }
.scroll-progress { position:absolute; z-index:4; right:0; bottom:-1px; left:0; height:2px; background:linear-gradient(90deg,#bd8d9e,#a6c4cf); transform:scaleX(var(--scroll-progress,0)); transform-origin:left; pointer-events:none; }
.header-booking { gap:.45rem; white-space:nowrap; }
.header-booking-arrow { display:inline-block; transition:transform .3s ease; }
.header-booking:hover .header-booking-arrow { transform:translate(3px,-3px); }
.menu-lines { position:relative; display:block; width:22px; height:20px; }
.menu-lines span { position:absolute; left:0; width:22px; height:2px; border-radius:2px; background:currentColor; transform-origin:center; transition:top .25s ease,transform .3s ease,opacity .2s ease,width .25s ease; }
.menu-lines span:nth-child(1) { top:2px; }
.menu-lines span:nth-child(2) { top:9px; width:16px; }
.menu-lines span:nth-child(3) { top:16px; }
.menu-toggle:hover .menu-lines span:nth-child(2) { width:22px; }
.menu-toggle.is-open .menu-lines span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.menu-toggle.is-open .menu-lines span:nth-child(2) { opacity:0; transform:scaleX(0); }
.menu-toggle.is-open .menu-lines span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
.menu-backdrop { display:none; }
.mobile-nav-label { margin:0 0 .7rem; color:var(--rose); font-size:.7rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.mobile-nav a[aria-current=page] { color:var(--rose-dark); }
@media (prefers-reduced-motion: no-preference) {
  .site-header { animation:header-arrive .55s cubic-bezier(.2,.8,.2,1) both; }
  .hero-copy { animation: hero-rise .72s cubic-bezier(.22,1,.36,1) both; }
  .hero-image img { animation: hero-image-in 8s ease-out both; }
  .motion-ready [data-reveal] { opacity: 0; transform: translate3d(0,20px,0); transition: opacity .65s ease, transform .65s cubic-bezier(.2,.8,.2,1); transition-delay: var(--reveal-delay,0ms); }
  .motion-ready [data-reveal].is-visible { opacity: 1; transform: translateZ(0); }
  .btn:active { transform: translateY(0) scale(.97); }
  .desktop-nav a::after { content: ''; position: absolute; left: 0; right: 0; bottom: .15rem; height: 1px; background: var(--rose); transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
  .desktop-nav a:hover::after,.desktop-nav a[aria-current=page]::after { transform: scaleX(1); }
  .desktop-nav a:hover { transform:translateY(-1px); }
  .brand-mark { transition: transform .35s ease, background-color .35s ease; }
  .brand:hover .brand-mark { transform: rotate(-10deg); background-color: var(--rose-pale); }
  .site-header.menu-open .mobile-nav a:not(.btn) { animation:nav-item-in .4s cubic-bezier(.2,.8,.2,1) both; }
  .site-header.menu-open .mobile-nav a:nth-of-type(1) { animation-delay:.04s; }
  .site-header.menu-open .mobile-nav a:nth-of-type(2) { animation-delay:.075s; }
  .site-header.menu-open .mobile-nav a:nth-of-type(3) { animation-delay:.11s; }
  .site-header.menu-open .mobile-nav a:nth-of-type(4) { animation-delay:.145s; }
  .site-header.menu-open .mobile-nav a:nth-of-type(5) { animation-delay:.18s; }
  .site-header.menu-open .mobile-nav a:nth-of-type(6) { animation-delay:.215s; }
  .site-header.menu-open .mobile-nav a:nth-of-type(7) { animation-delay:.25s; }
  .service-card,.person-card,.promo-card,.review-card,.photo-tile,.contact-panel { transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease; }
  .service-card-image img,.person-photo img,.promo-card img,.photo-tile img,.editorial-photo img,.detail-photo img { transition: transform .7s cubic-bezier(.2,.8,.2,1); }
  @media (hover:hover) {
    .service-card:hover,.person-card:hover,.promo-card:hover,.review-card:hover { transform: translateY(-4px); box-shadow: 0 12px 30px rgba(53,45,48,.065); border-color: #ddc5cd; }
    .service-card:hover img,.person-card:hover img,.promo-card:hover img,.photo-tile:hover img { transform: scale(1.03); }
    .photo-tile:hover { box-shadow: 0 18px 42px rgba(53,45,48,.11); }
    .detail-photo:hover img,.editorial-photo:hover img { transform: scale(1.025); }
  }
  @media (hover:none) {
    .service-card:hover,.promo-card:hover { transform: none; box-shadow: none; }
    .service-card:hover img,.photo-tile:hover img { transform: none; }
    .service-card:active,.promo-card:active,.photo-tile:active { transform: scale(.985); }
    .mobile-nav a:active { color: var(--rose-dark); transform: translateX(3px); }
  }
  @keyframes hero-rise { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
  @keyframes hero-image-in { from { transform: scale(1); } to { transform: scale(1.03); } }
  @keyframes header-arrive { from { opacity:0; } to { opacity:1; } }
  @keyframes nav-item-in { from { opacity:0; transform:translateX(12px); } to { opacity:1; transform:translateX(0); } }
}
@media (max-width:900px) {
  .hero-media { will-change:auto; }
  body.nav-open { overflow:hidden; }
  .menu-backdrop { position:fixed; z-index:1; inset:var(--nav-height) 0 0; display:block; background:rgba(28,36,41,.3); }
  .mobile-nav { position:fixed; z-index:2; top:calc(var(--nav-height) + 12px); right:12px; bottom:12px; left:auto; width:min(420px,calc(100% - 24px)); overflow-y:auto; padding:1.6rem .4rem 2rem; border:1px solid #e8dfe0; border-radius:22px; background:#fbfaf8; box-shadow:0 24px 60px rgba(41,53,59,.2); }
  .mobile-nav a:not(.btn) { display:flex; justify-content:space-between; align-items:center; min-height:56px; padding:.8rem .15rem; font-family:'Noto Serif Georgian',serif; font-size:1.18rem; font-weight:500; transition:color .2s ease,transform .2s ease; }
  .mobile-nav a:not(.btn)::after { content:'↗'; color:#ae8291; font-family:'DM Sans',sans-serif; font-size:.9rem; }
  .mobile-nav a[aria-current=page]::after { color:var(--rose-dark); }
  .mobile-nav .btn { margin-top:1.5rem; }
}
@media (max-width:700px) {
  .site-header { --nav-height:72px; }
  .site-header.is-scrolled { --nav-height:64px; }
  .site-header.is-scrolled .header-inner { min-height:64px; }
  body.has-mobile-booking-bar { padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
  .mobile-booking-bar { position: fixed; z-index: 35; right: 0; bottom: 0; left: 0; display:flex; gap:.6rem; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: rgba(250,248,245,.96); border-top: 1px solid var(--line); backdrop-filter: blur(16px); box-shadow: 0 -8px 28px rgba(41,53,59,.055); }
  .mobile-booking-bar .btn { flex:1; min-width:0; width:auto; min-height: 52px; gap: .55rem; }
  .mobile-contact-link { display:grid;place-items:center;flex:none;width:52px;height:52px;border:1px solid #d7bac4;border-radius:50%;background:#fff;color:var(--rose-dark);font-size:.85rem;font-weight:700;transition:transform .2s,background .2s; }
  .mobile-contact-link svg { width:24px;height:24px; }
  .mobile-contact-link:active { transform:scale(.94);background:var(--rose-pale); }
  .mobile-nav { top:var(--nav-height); right:0; bottom:0; left:0; width:100%; padding:1.7rem .25rem calc(2rem + env(safe-area-inset-bottom)); border:0; border-radius:0; box-shadow:0 20px 40px rgba(41,53,59,.1); }
  .mobile-nav a:not(.btn) { transition: color .2s ease, transform .2s ease; }
  .menu-toggle { transition: background .2s ease, border-color .2s ease, transform .2s ease; }
  .menu-toggle.is-open { background: var(--rose-pale); border-color: #d7bac4; }
  .motion-ready [data-reveal] { transform: translate3d(0,14px,0); transition-duration: .5s; }
  body.home-page .mobile-booking-bar { opacity:0; visibility:hidden; pointer-events:none; transform:translateY(100%); transition:opacity .28s ease,transform .28s ease,visibility .28s; }
  body.home-page.show-mobile-booking .mobile-booking-bar { opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0); }
}
@media (max-width:380px) {
  .mobile-booking-bar { gap:.4rem;padding-right:10px;padding-left:10px; }
  .mobile-booking-bar .btn { font-size:.82rem; }
  .mobile-contact-link { width:46px;height:46px;align-self:center; }
}
@media (min-width:701px) { .mobile-booking-bar { display: none; } }
@media (prefers-reduced-motion: reduce) {
  .motion-ready [data-reveal] { opacity: 1!important; transform: none!important; transition: none!important; }
  .hero-media { transform:none!important; will-change:auto; }
  body.home-page .mobile-booking-bar { transition:none; }
}
