:root{--ink:#29353b;--muted:#657078;--rose:#9d6679;--rose-dark:#784659;--rose-pale:#f5e9eb;--blue-pale:#e9f1f4;--cream:#faf8f5;--line:#e8e2de;--white:#fff;--radius:22px}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:'Noto Sans Georgian','DM Sans',sans-serif;-webkit-font-smoothing:antialiased}
body,button,input,select,textarea{font-size:16px}
a{text-decoration:none;color:inherit}
button{cursor:pointer}
img{max-width:100%;display:block}
[x-cloak]{display:none!important}
::selection{background:#e9cbd4;color:var(--ink)}
:focus-visible{outline:3px solid #b77f92;outline-offset:3px}
.serif{font-family:'Noto Serif Georgian','Cormorant Garamond',serif;font-weight:500;letter-spacing:-.035em;line-height:1.18}
.muted{color:var(--muted)}
.eyebrow{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--rose)}
.section-title{font-size:clamp(2rem,4vw,3.6rem);max-width:14ch}
.page-title{font-size:clamp(2.7rem,6vw,5.1rem)}
.site-section{padding:clamp(4.5rem,8vw,8rem) 0}
.site-container{width:min(100% - 2.5rem,1240px);margin-inline:auto}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:1.5rem;margin-bottom:2.6rem}
.section-head p{max-width:35rem}
.text-link{color:var(--rose-dark);font-weight:700;border-bottom:1px solid #cda6b4;padding-bottom:.2rem;white-space:nowrap;transition:border-color .2s,color .2s}
.text-link:hover{color:var(--ink);border-color:var(--ink)}
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:none}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:.8rem 1.45rem;border:1px solid var(--rose);border-radius:999px;background:var(--rose);color:white;font-weight:700;font-size:.91rem;line-height:1.3;text-align:center;transition:background .2s,border-color .2s,transform .2s}
.btn:hover{background:var(--rose-dark);border-color:var(--rose-dark);transform:translateY(-2px)}
.btn-light{background:transparent;color:var(--rose-dark);border-color:#d7bac4}
.btn-light:hover{background:var(--rose-pale);border-color:var(--rose);color:var(--rose-dark)}
.btn-white{background:#fff;color:var(--rose-dark);border-color:#fff}
.btn-white:hover{background:#f8f1f3;border-color:#f8f1f3;color:var(--rose-dark)}
.site-header{position:sticky;top:0;z-index:40;background:rgba(250,248,245,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(16px)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:2rem;min-height:84px}
.brand{display:inline-flex;align-items:center;gap:.75rem;flex-shrink:0}
.brand img{max-height:58px;max-width:190px;object-fit:contain}
.brand-mark{display:grid;place-items:center;width:42px;height:42px;border:1px solid #d8bcc5;border-radius:50%;color:var(--rose);font-family:'Cormorant Garamond',serif;font-size:1.8rem;font-weight:600}
.brand-name{display:block;font-family:'Cormorant Garamond','Noto Serif Georgian',serif;font-size:1.85rem;font-weight:600;line-height:1;letter-spacing:-.04em}
.brand-sub{display:block;margin-top:.18rem;color:var(--muted);font-size:.55rem;letter-spacing:.19em;text-transform:uppercase}
.desktop-nav{display:flex;align-items:center;gap:clamp(.8rem,1.8vw,1.6rem);font-size:.8rem;font-weight:600;white-space:nowrap}
.desktop-nav a{position:relative;padding:.55rem 0;transition:color .2s}
.desktop-nav a:hover,.desktop-nav a[aria-current=page]{color:var(--rose-dark)}
.desktop-nav a[aria-current=page]::after{content:'';position:absolute;left:0;right:0;bottom:.15rem;height:1px;background:var(--rose)}
.header-actions{display:flex;align-items:center;gap:.75rem}
.menu-toggle{display:none;align-items:center;justify-content:center;width:46px;height:46px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink);font-size:1.4rem}
.mobile-nav{border-top:1px solid var(--line);padding:1rem 0 1.5rem;background:var(--cream)}
.mobile-nav a:not(.btn){display:block;padding:.85rem .15rem;border-bottom:1px solid var(--line);font-weight:600}
.mobile-nav .btn{margin-top:1.25rem;width:100%}
.site-footer{margin-top:5rem;background:#29353b;color:#f7f4f0}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:clamp(2rem,5vw,6rem);padding:5rem 0 3.5rem}
.site-footer .brand-name{font-size:2.25rem}
.site-footer .brand-sub,.site-footer .muted{color:#c9d1d4}
.site-footer h3{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:#e7cbd4;margin-bottom:1.4rem}
.site-footer a:not(.brand){color:#f4ecee;transition:color .2s}
.site-footer a:hover{color:#e7b8c8}
.footer-social-links{display:flex;flex-direction:column;align-items:flex-start;gap:.7rem}
.footer-social-link{display:inline-flex;align-items:center;gap:.75rem;min-height:44px;font-weight:600;font-size:.9rem}
.footer-social-icon{display:grid;place-items:center;width:42px;height:42px;border:1px solid #728087;border-radius:50%;background:#35434b;color:#f7e7ec;transition:background-color .25s ease,border-color .25s ease,transform .25s ease}
.footer-social-icon svg{width:21px;height:21px}
.footer-social-link:hover .footer-social-icon,.footer-social-link:focus-visible .footer-social-icon{background:#88596b;border-color:#c69aaa;transform:translateY(-2px)}
.footer-booking-link{display:inline-block;margin-top:1.3rem;font-size:.85rem}
.footer-bottom{display:flex;justify-content:space-between;gap:1rem;padding:1.25rem 0;border-top:1px solid #526068;color:#c9d1d4;font-size:.75rem}
.hero{background:#f2ece8;overflow:hidden}
.hero-inner{display:grid;grid-template-columns:.88fr 1.12fr;min-height:650px;max-width:1600px;margin:auto}
.hero-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(4rem,7vw,7rem) clamp(1.25rem,6vw,7rem);max-width:720px;justify-self:end}
.hero-title{font-size:clamp(2.8rem,4vw,4.8rem);margin:1.6rem 0 1.6rem;max-width:100%;overflow-wrap:break-word}
.hero-subtitle{font-size:1.06rem;line-height:1.9;max-width:31rem;color:#59646a}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1.1rem;margin-top:2.5rem}
.hero-image{position:relative;min-height:520px;overflow:hidden;background:#e8e0db}
.hero-media{position:absolute;inset:-7% 0;transform:translate3d(0,var(--hero-parallax,0px),0);will-change:transform}
.hero-image img{width:100%;height:100%;object-fit:cover;object-position:center}
.hero-image::after{content:'';position:absolute;inset:0;border:18px solid rgba(255,255,255,.12);pointer-events:none}
.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.service-card{display:flex;flex-direction:column;min-width:0;overflow:hidden;transition:transform .25s,border-color .25s}
.service-card:hover{transform:translateY(-5px);border-color:#d9bbc5}
.service-card-image{aspect-ratio:1.24;overflow:hidden;background:var(--rose-pale)}
.service-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.service-card:hover .service-card-image img{transform:scale(1.04)}
.image-fallback{display:grid;place-items:center;width:100%;height:100%;background:linear-gradient(135deg,#f5e8eb,#e9f1f4);color:#a87285;font-family:'Cormorant Garamond',serif;font-size:3rem}
.service-card-body{display:flex;flex:1;flex-direction:column;padding:1.5rem}
.service-card h3{font-size:1.42rem;margin:.6rem 0 .7rem}
.service-card .description{color:var(--muted);font-size:.84rem;line-height:1.7;flex:1}
.service-card-meta{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--line);font-size:.8rem;font-weight:700;color:var(--rose-dark)}
.featured-services-action{display:flex;justify-content:center;margin-top:2.5rem}
.editorial-split{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(2.5rem,7vw,7rem)}
.editorial-photo{aspect-ratio:1.1;overflow:hidden;border-radius:var(--radius);background:var(--blue-pale)}
.editorial-photo img{width:100%;height:100%;object-fit:cover}
.editorial-copy p:not(.eyebrow){color:var(--muted);line-height:1.9;max-width:34rem}
.editorial-copy .btn{margin-top:1.5rem}
.tinted-section{background:#edf2f3}
.blush-section{background:#f5ecee}
.person-grid,.promo-grid,.review-grid,.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.person-card{overflow:hidden}
.person-photo{aspect-ratio:.9;background:#efe4e5;overflow:hidden}
.person-photo img{width:100%;height:100%;object-fit:cover;object-position:center top}
.person-photo-placeholder{width:100%;height:100%;background:#e9e4e1;position:relative;overflow:hidden}
.person-photo-placeholder::before{content:'';position:absolute;width:46%;aspect-ratio:1;border-radius:50%;left:27%;top:15%;background:#d8d0cc}
.person-photo-placeholder::after{content:'';position:absolute;width:78%;height:57%;border-radius:50% 50% 0 0;left:11%;bottom:-20%;background:#d8d0cc}
.person-copy{padding:1.5rem}
.person-copy h3{font-size:1.55rem;margin:0 0 .35rem}
.person-copy p{line-height:1.7}
.photo-tile{position:relative;overflow:hidden;border-radius:var(--radius);background:#e7eaeb;aspect-ratio:1.1}
.photo-tile img{width:100%;height:100%;object-fit:cover;transition:transform .45s}
.photo-tile:hover img{transform:scale(1.04)}
.photo-caption{padding:.9rem 1.1rem;background:#fff;font-size:.85rem}
.promo-card,.review-card{padding:2rem;display:flex;flex-direction:column;min-height:250px}
.promo-card img{height:190px;width:100%;object-fit:cover;border-radius:15px;margin-bottom:1.3rem}
.promo-card h3{font-size:1.55rem;margin:0 0 .8rem}
.promo-card p,.review-card p{line-height:1.8;color:var(--muted)}
.promo-card .text-link{align-self:flex-start;margin-top:auto}
.review-card{background:#fff}
.review-card blockquote{font-family:'Noto Serif Georgian',serif;font-size:1.1rem;line-height:1.8;flex:1}
.review-card footer{margin-top:1.5rem;color:var(--rose-dark);font-size:.82rem;font-weight:700}
.cta-band{background:#a06b7c;color:white;padding:4.5rem 0}
.cta-band-inner{display:flex;align-items:center;justify-content:space-between;gap:2rem}
.cta-band .serif{font-size:clamp(2rem,4vw,3.4rem);max-width:18ch}
.contact-panel{display:grid;grid-template-columns:1fr 1fr;gap:0;overflow:hidden;border-radius:var(--radius);border:1px solid var(--line);background:#fff}
.contact-panel-main{padding:clamp(2rem,5vw,4rem)}
.contact-panel-main p{line-height:1.8}
.contact-panel-aside{padding:clamp(2rem,5vw,4rem);background:var(--blue-pale);display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.contact-page-panel .contact-map{position:relative;padding:0;overflow:hidden}
.contact-map iframe{position:absolute;inset:0;display:block;width:100%;height:100%;border:0}
.contact-map-link{position:absolute;left:1.25rem;bottom:1.25rem;z-index:1;box-shadow:0 4px 16px rgba(41,53,59,.16)}
@media(max-width:700px){.contact-page-panel .contact-map{height:320px;min-height:0}}
.inner-hero{padding:clamp(4rem,8vw,7rem) 0 3rem}
.inner-hero .page-title{margin:1rem 0 1.2rem}
.inner-hero p:last-child{max-width:42rem;line-height:1.85}
.detail-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.detail-photo{aspect-ratio:1.1;overflow:hidden;border-radius:var(--radius);background:var(--rose-pale)}
.detail-photo img{width:100%;height:100%;object-fit:cover}
.detail-copy{padding:2rem 0}
.detail-copy .page-title{margin:1rem 0 1.5rem}
.detail-copy .long-copy{font-size:1.02rem;line-height:1.95;color:var(--muted)}
.detail-meta{display:flex;gap:2rem;flex-wrap:wrap;margin:2rem 0;padding:1.4rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.detail-meta small{display:block;margin-bottom:.45rem;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.detail-meta strong{font-size:1.1rem;color:var(--ink)}
.detail-actions{display:flex;flex-wrap:wrap;gap:.75rem}
.booking-shell{max-width:820px;margin-inline:auto}
.booking-card{padding:clamp(1.5rem,5vw,3.5rem)}
.booking-card .form-label{color:var(--ink);font-size:.84rem}
.booking-card input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.booking-card select,.booking-card textarea{min-height:52px;border-color:#dcd5d1;border-radius:12px;background:#fdfcfb}
.booking-card input:focus-visible,.booking-card select:focus-visible,.booking-card textarea:focus-visible{outline-color:#b77f92;border-color:var(--rose)}
.booking-card .form-actions{border-color:var(--line);margin-top:2rem;padding-top:1.5rem}
.booking-step{display:flex;align-items:center;gap:.9rem;margin-bottom:2rem}
.booking-step-number{display:grid;place-items:center;flex:none;width:38px;height:38px;border:1px solid #d9b8c3;border-radius:50%;color:var(--rose-dark);font-size:.82rem;font-weight:700}
.booking-step h2{font-size:1.35rem;font-weight:700}
.booking-divider{border-top:1px solid var(--line);margin-top:2.2rem;padding-top:2.2rem}
.booking-done{text-align:center;padding:clamp(2rem,6vw,4rem)}
.booking-check{display:grid;place-items:center;width:70px;height:70px;margin:auto;border-radius:50%;background:var(--rose-pale);color:var(--rose-dark);font-size:2rem}
.booking-done h1{margin-top:1.6rem}
.booking-service-preview{display:grid;grid-template-columns:72px 1fr;gap:1rem;align-items:center;margin:.25rem 0 1.4rem;padding:1rem;border:1px solid var(--line);border-radius:16px;background:#fff}
.booking-service-preview[hidden]{display:none}
.booking-service-preview img{width:72px;height:72px;object-fit:cover;border-radius:11px}
.booking-service-preview img[hidden]{display:none}
.booking-service-preview.no-image{grid-template-columns:1fr}
.booking-service-preview h3{font-size:1.15rem;margin:0 0 .3rem}
.booking-service-preview p{font-size:.85rem;line-height:1.6;color:var(--muted)}
.booking-service-meta{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin:.5rem 0;color:var(--rose-dark);font-size:.86rem;font-weight:700}
.booking-service-meta del{color:var(--muted);font-weight:400}
.booking-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:2rem 0;text-align:left}
.booking-summary div{padding:1rem;border:1px solid var(--line);border-radius:14px;background:var(--cream)}
.booking-summary dt{font-size:.76rem;color:var(--muted);margin-bottom:.35rem}
.booking-summary dd{font-weight:700;line-height:1.5}
.booking-done-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:1.7rem}
.booking-guidance{text-align:left;border-top:1px solid var(--line);margin-top:2rem;padding-top:1.5rem}
.booking-guidance h2{font-size:1.3rem;margin-bottom:.5rem}
.floating-contact{position:fixed;right:18px;bottom:20px;z-index:34;display:flex;flex-direction:column;align-items:flex-end;gap:.45rem}
.floating-contact a{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:42px;padding:.55rem .9rem;border:1px solid #d8c8cd;border-radius:999px;background:rgba(255,255,255,.96);box-shadow:0 4px 16px rgba(41,53,59,.08);color:var(--rose-dark);font-size:.78rem;font-weight:700;backdrop-filter:blur(10px);transition:transform .2s,background .2s}
.floating-contact a svg{width:20px;height:20px;flex:none}
.floating-contact a:hover{transform:translateY(-2px);background:var(--rose-pale)}
.empty-state{padding:2rem;border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--muted)}
@media(max-width:1150px){.desktop-nav{gap:.8rem;font-size:.75rem}.header-actions .btn{padding:.75rem 1rem}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.desktop-nav{display:none}.menu-toggle{display:inline-flex}.hero-inner{grid-template-columns:1fr 1fr;min-height:540px}.hero-copy{padding:3rem 2rem}.hero-title{font-size:clamp(2.7rem,5vw,4.5rem)}.person-grid,.promo-grid,.review-grid,.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.site-section{padding:4.5rem 0}.site-container{width:min(100% - 2rem,1240px)}.header-inner{min-height:72px}.header-actions>.btn{display:none}.hero-inner{display:flex;flex-direction:column-reverse}.hero-image{min-height:340px;max-height:420px}.hero-copy{width:100%;padding:3rem 1.25rem 3.5rem}.hero-title{font-size:clamp(1.75rem,7.5vw,3.2rem);line-height:1.23;max-width:100%;overflow-wrap:normal}.hero-actions .btn{width:100%;min-height:54px}.section-head,.cta-band-inner{align-items:flex-start;flex-direction:column}.section-head .btn{min-height:48px}.editorial-split,.detail-hero,.contact-panel{grid-template-columns:1fr}.detail-copy{padding:0}.detail-photo{aspect-ratio:1.3}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}.footer-bottom{flex-direction:column}.booking-shell{width:min(100% - 2rem,820px)}}
@media(max-width:700px){.footer-social-links{flex-direction:row;flex-wrap:wrap;gap:.8rem 1.1rem}}
@media(max-width:700px){.floating-contact{display:none}.booking-summary{grid-template-columns:1fr}.booking-done-actions .btn{width:100%}}
@media(max-width:520px){.service-grid,.person-grid,.promo-grid,.review-grid,.gallery-grid{grid-template-columns:1fr}.service-card-image{aspect-ratio:1.6}.person-photo{aspect-ratio:1.15}.photo-tile{aspect-ratio:1.25}.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}.detail-actions .btn{width:100%}.cta-band .btn{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
