@font-face{font-family:"RBDigits";src:local("Arial"),local("Helvetica Neue"),local("Helvetica"),local("Roboto"),local("Noto Sans");unicode-range:U+0030-0039}
:root{--navy:#062a3a;--deep:#031d28;--gold:#d4b36a;--gold-light:#efd99f;--paper:#f4efe3;--ink:#20201d;--line:#cdbf9f;--white:#fffdf8}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:var(--paper);font-family:"RBDigits","Noto Serif Georgian",Sylfaen,Georgia,"Times New Roman",serif}
button,input,select{font:inherit}
.nav-shell{background:var(--deep);color:#fff;border-bottom:1px solid rgba(212,179,106,.5)}
.nav{width:min(1220px,calc(100% - 48px));min-height:104px;margin:auto;display:flex;align-items:center;gap:28px}
.brand{flex:0 0 460px;display:flex;justify-content:space-between;align-items:center;gap:48px;margin-right:32px;color:var(--gold-light);text-decoration:none}
.brand img{width:76px;height:auto}
.brand-name{margin-left:auto;font-size:24px;letter-spacing:.06em;white-space:nowrap}
.nav-links{margin-left:auto;display:flex;align-items:center;gap:16px}
.nav-links a,.language button{color:#f8f3e8;text-decoration:none;font:600 13px/1.2 "Noto Sans Georgian",Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.nav-links a.active{color:var(--gold-light)}
.book-link{padding:13px 18px;border:1px solid var(--gold);color:var(--gold-light)!important}
.language{display:flex;align-items:center;gap:5px}
.language button{padding:6px 5px;border:0;background:transparent;cursor:pointer;opacity:.6}
.language button[aria-pressed="true"]{color:var(--gold-light);opacity:1;border-bottom:1px solid var(--gold)}
.page-head{color:#f8f3e8;background:var(--navy);position:relative;overflow:hidden;padding:70px max(24px,calc((100vw - 1220px)/2)) 58px}
.page-head::before{content:"";position:absolute;inset:0;background:url("/front/assets/img/royal-lion.png") 22px 22px/155px auto repeat;filter:grayscale(1) brightness(3);opacity:.055}
.page-head>*{position:relative}
.kicker{margin:0 0 12px;color:var(--gold-light);font:700 12px/1.3 Arial,sans-serif;letter-spacing:.2em;text-transform:uppercase}
h1{max-width:760px;margin:0;font-size:clamp(46px,6vw,78px);line-height:1;font-weight:400;letter-spacing:-.025em}
.intro{max-width:710px;margin:18px 0 0;color:#ddd2ba;font:17px/1.65 Arial,sans-serif}
.room-tabs{width:min(1220px,calc(100% - 48px));margin:34px auto 0;display:grid;grid-template-columns:repeat(var(--n,5),1fr);border:1px solid rgba(212,179,106,.5)}
.room-tab{min-height:72px;padding:10px 14px;border:0;border-right:1px solid rgba(212,179,106,.35);color:#f8f3e8;background:rgba(3,29,40,.72);cursor:pointer;text-align:left}
.room-tab:last-child{border-right:0}
.room-tab strong{display:block;font-size:16px;font-weight:400}
.room-tab span{display:block;margin-top:5px;color:#cfc3ad;font:12px/1.3 Arial,sans-serif}
.room-tab[aria-selected="true"]{color:var(--deep);background:var(--gold-light)}
.room-tab[aria-selected="true"] span{color:#67542e}
.detail{padding:72px max(24px,calc((100vw - 1220px)/2)) 100px;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(350px,.75fr);gap:54px;align-items:start}
.gallery{min-width:0}
.main-photo{width:100%;aspect-ratio:4/3;display:block;object-fit:contain;background:transparent;border:0}
.thumbnails{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-top:10px}
.thumb{padding:0;border:2px solid transparent;background:none;cursor:pointer;opacity:.7}
.thumb[aria-current="true"]{border-color:var(--gold);opacity:1}
.thumb img{width:100%;aspect-ratio:1;display:block;object-fit:cover}
.room-copy{margin-top:36px}
.room-copy h2{margin:0;color:var(--deep);font-size:clamp(34px,4vw,55px);line-height:1.05;font-weight:400}
.facts{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}
.fact{padding:9px 12px;border:1px solid #c9b98f;color:#574f43;background:#fbf8f0;font:700 12px/1.2 Arial,sans-serif;letter-spacing:.04em}
.room-copy p{max-width:720px;color:#5e584e;font:17px/1.7 Arial,sans-serif}
.booking{position:sticky;top:28px;color:var(--ink);background:var(--white);border:1px solid #cdbf9f;box-shadow:0 20px 55px rgba(27,24,18,.11)}
.booking-head{padding:28px 30px 24px;color:#f8f3e8;background:var(--navy);border-bottom:1px solid var(--gold)}
.booking-head small{display:block;color:var(--gold-light);font:700 11px/1.2 Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase}
.booking-head strong{display:block;margin-top:9px;font-size:28px;font-weight:400}
.booking-body{padding:26px 30px 30px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 16px}
label{display:block;margin-bottom:8px;color:#716958;font:700 11px/1 Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase}
input[type="date"],input[type="time"],select{width:100%;min-height:44px;padding:0 10px;border:1px solid #cdbf9f;color:#25241f;background:#fff;font-size:15px}
.extras{margin-top:26px;padding-top:24px;border-top:1px solid #d8cbae}
.extras h3{margin:0 0 15px;color:var(--deep);font-size:21px;font-weight:400}
.extra{display:flex;align-items:center;gap:10px;margin:12px 0;color:#514c43;font:14px/1.4 Arial,sans-serif;cursor:pointer}
.extra input{width:18px;height:18px;accent-color:var(--navy)}
.extra span:last-child{margin-left:auto;color:#8a6d35;white-space:nowrap}
.total{display:flex;justify-content:space-between;align-items:baseline;margin-top:24px;padding-top:20px;border-top:1px solid #d8cbae}
.total span{color:#6a6255;font:700 12px/1 Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase}
.total strong{color:var(--deep);font-size:28px;font-weight:400}
.reserve{width:100%;min-height:54px;margin-top:18px;border:1px solid var(--navy);color:#fff;background:var(--navy);cursor:pointer;font:700 13px/1 Arial,sans-serif;letter-spacing:.09em;text-transform:uppercase}
.reserve:hover{background:#0a3b50}
.confirmation{display:none;margin:14px 0 0;color:#275441;font:14px/1.5 Arial,sans-serif}
.confirmation.show{display:block}
footer{padding:30px max(24px,calc((100vw - 1220px)/2));display:flex;justify-content:space-between;gap:20px;color:#8e887c;background:#04161e;font:13px/1.5 Arial,sans-serif}
@media(max-width:1000px){
.nav-links a:not(.book-link){display:none}.brand{flex:1 1 auto;gap:30px;margin-right:0}.detail{grid-template-columns:1fr}.booking{position:static}.room-tabs{grid-template-columns:repeat(3,1fr)}.room-tab:nth-child(3){border-right:0}.room-tab:nth-child(-n+3){border-bottom:1px solid rgba(212,179,106,.35)}
}
@media(max-width:620px){
.nav,.room-tabs{width:calc(100% - 30px)}.nav{min-height:78px;gap:14px}.brand{gap:16px}.brand img{width:62px}.brand-name{font-size:16px}.nav-links{display:none}.room-tabs{grid-template-columns:1fr 1fr}.room-tab{border-bottom:1px solid rgba(212,179,106,.35)}.room-tab:nth-child(odd){border-right:1px solid rgba(212,179,106,.35)}.room-tab:nth-child(even){border-right:0}.room-tab:last-child{grid-column:1/-1}.detail{padding-top:48px}.thumbnails{grid-template-columns:repeat(4,1fr)}.form-grid{grid-template-columns:1fr}.booking-body,.booking-head{padding-left:22px;padding-right:22px}footer{display:grid}
}
.language a{padding:6px 5px;color:#f8f3e8;text-decoration:none;font:600 13px/1.2 Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;opacity:.6}
.language a[aria-current="true"]{color:var(--gold-light);opacity:1;border-bottom:1px solid var(--gold)}

/* mobile: show menu links in a second row */
@media(max-width:1050px){
.nav{flex-wrap:wrap;row-gap:10px;padding-bottom:14px}
.nav-links{display:flex!important;order:3;width:100%;margin:0;justify-content:space-between;gap:6px;flex-wrap:wrap}
.nav-links a:not(.book-link){display:inline-block!important}
.nav-links a{font-size:12px;letter-spacing:.03em}
.nav-links .book-link{padding:8px 10px}
}

/* larger logo */
.brand img{width:auto;height:auto;max-width:132px;max-height:88px}
@media(max-width:620px){.brand img{max-width:104px;max-height:64px}}

/* logo: fixed larger size (image has padding) */
.brand img{width:80px;max-width:none;height:auto;max-height:none}
@media(max-width:620px){.brand img{width:64px}}

/* nav from the updated draft */
.brand-name{font-weight:700}.nav-links a{font-weight:800}.brand{flex-basis:360px;margin-right:12px}.nav-links{gap:14px}
@media(max-width:1100px){.nav{flex-wrap:wrap;padding-top:12px;padding-bottom:16px;gap:14px}.brand{flex:1 1 auto}.nav-links{display:flex!important;order:3;flex:0 0 100%;justify-content:center;flex-wrap:wrap;margin:0}.nav-links a{display:block!important}.nav-links .book-link{padding:8px 12px}}
@media(max-width:620px){.nav-links a{font-size:11px;letter-spacing:.03em}.nav-links{gap:14px}.brand-name{font-size:17px}}
.brand-name{font-family:Georgia,"Noto Serif Georgian",Sylfaen,serif;font-weight:400;letter-spacing:.06em}

/* logo fits inside the header bar */
.brand img{height:68px!important;width:auto!important;max-width:none!important;max-height:68px!important;object-fit:contain;align-self:center;flex:0 0 auto;margin:0!important}
@media(min-width:1101px){.nav{min-height:116px!important;padding-top:16px!important;padding-bottom:16px!important;box-sizing:border-box}}
@media(max-width:1100px){.brand img{height:62px!important;max-height:62px!important}}
@media(max-width:620px){.brand img{height:54px!important;max-height:54px!important}}

/* time picker (dropdown look; booked hours red, works on phones) */
.time-pick{position:relative}
.time-btn{width:100%;min-height:44px;padding:0 34px 0 10px;border:1px solid #cdbf9f;background:#fff;color:#25241f;font-size:15px;text-align:left;cursor:pointer;position:relative}
.time-btn:after{content:"";position:absolute;right:13px;top:50%;width:7px;height:7px;margin-top:-6px;border-right:2px solid #25241f;border-bottom:2px solid #25241f;transform:rotate(45deg)}
.time-list{position:absolute;z-index:30;left:0;right:0;top:100%;max-height:272px;overflow-y:auto;border:1px solid #cdbf9f;background:#fff;box-shadow:0 10px 24px rgba(3,29,40,.18)}
.time-list[hidden]{display:none}
.tslot{display:block;width:100%;min-height:42px;padding:0 12px;border:0;border-bottom:1px solid #eee6d2;background:#fff;color:#25241f;font-size:15px;text-align:left;cursor:pointer}
.tslot.sel{background:#efd99f}
.tslot.busy,.tslot.busy:disabled{background:#fde8e8;color:#b3261e;opacity:1;cursor:not-allowed}

/* date shown as dd/mm/yyyy, same box as the other fields */
.datebox{position:relative}
.datebox input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;z-index:2;border:0;padding:0;min-height:0}
.datetext:after{content:"";flex:0 0 18px;height:18px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2325241f' stroke-width='2'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E") no-repeat center/contain}
.datetext{display:flex;align-items:center;justify-content:space-between;box-sizing:border-box;width:100%;min-height:44px;padding:0 10px;border:1px solid #cdbf9f;background:#fff;color:#25241f;font-size:15px}

/* mobile safety: nothing may be wider than the screen (all phone models) */
html,body{max-width:100%;overflow-x:hidden}
.nav>*,.hero-inner>*,.detail>*,.booking-wrap,.booking,.field,.room,.room-body,.gallery,.room-copy{min-width:0}
@media(max-width:1050px){.two-col>*,.history-grid>*,.contact-layout>*,.story>*,.guide-grid>*{min-width:0}}
.thumbnails{grid-template-columns:repeat(7,minmax(0,1fr))}
@media(max-width:1050px){
.hero-inner,.detail,.two-col,.history-grid,.water-grid,.contact-layout,.story,.guide-grid,.ritual-grid{grid-template-columns:minmax(0,1fr)}
.rooms-grid{grid-template-columns:repeat(12,minmax(0,1fr))}
}
@media(max-width:620px){
.rooms-grid,.booking-fields,.form-grid,.field-grid{grid-template-columns:minmax(0,1fr)}
.room-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:420px){
.nav{gap:8px 10px}
.brand{gap:10px;min-width:0}
.brand-name{font-size:15px;letter-spacing:.03em}
.language a{padding:6px 3px}
.nav-links{gap:10px}
.nav-links a{font-size:10.5px;letter-spacing:.02em}
.nav-links .book-link{padding:7px 10px}
}

/* room tabs: FIXED card size, identical in every language and on every device */
.room-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;height:112px;min-height:0;overflow:hidden}
.room-tab strong,.room-tab span{text-align:center}
@media(max-width:1050px){
.room-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:128px;gap:10px;border:0;background:none}
.room-tab,.room-tab:nth-child(n){grid-column:span 2;min-width:0;height:128px;min-height:0;padding:10px 10px;border:1px solid rgba(212,179,106,.55)!important;border-radius:6px;overflow-wrap:anywhere}
.room-tab:nth-child(4){grid-column:2/4}
.room-tab:nth-child(5){grid-column:4/6}
.room-tab:nth-child(4):last-child{grid-column:3/5}
.room-tab:not([aria-selected="true"]){background:rgba(3,29,40,.88)}
.room-tab strong{font-size:12px;line-height:1.3}
.room-tab span{margin-top:6px;font-size:11px;line-height:1.3}
}
@media(max-width:420px){
.room-tabs{gap:8px;grid-auto-rows:136px}
.room-tab,.room-tab:nth-child(n){height:136px;padding:8px 6px}
.room-tab strong{font-size:10.5px}
.room-tab span{font-size:9.5px}
}

/* nav: no boxed button; only the current page (and the link under the mouse) is highlighted */
.nav-links a.book-link{padding:0!important;border:0!important;background:none!important;color:#f8f3e8!important}
.nav-links a.active{color:var(--gold-light)!important}
.nav-links a{transition:color .15s}
@media(hover:hover){.nav-links a:hover{color:var(--gold-light)!important}}
.nav-links a:focus-visible{color:var(--gold-light)!important;outline:1px solid var(--gold);outline-offset:4px}

/* long headings must never overflow their column (Georgian, Russian, English) */
h1,h2,h3{overflow-wrap:break-word;max-width:100%}
@media(max-width:620px){h2{font-size:clamp(28px,8.2vw,34px)}h1{font-size:clamp(34px,10vw,46px)}}

/* long labels / extras rows must fit on narrow phones and in every language */
.field label,label{overflow-wrap:anywhere}
.booking-fields .field label{letter-spacing:.08em}
@media(max-width:420px){
.booking-head,.booking-body{padding-left:16px;padding-right:16px}
.extra{flex-wrap:wrap;row-gap:2px}
.extra span:first-of-type{flex:1 1 0;min-width:120px}
.extra span:last-child{margin-left:28px;white-space:normal;flex-basis:100%}
}

/* booking panel: duration/guests selects look exactly like the time dropdown; checkboxes never shrink */
select#duration,select#guests{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0 34px 0 10px;border-radius:0;cursor:pointer;background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='10' viewBox='0 0 16 10'><path d='M2.4 2 8 7.6 13.6 2' fill='none' stroke='%2325241f' stroke-width='2'/></svg>") no-repeat right 9px top calc(50% + 1px)}
.extra input[type="checkbox"]{flex:0 0 18px;width:18px;min-width:18px;max-width:18px;height:18px;min-height:18px;margin:0}

/* extras list: every row has the same fixed height, so checkboxes are the same size and evenly spaced in all languages */
.extras-list .extra,.extra{box-sizing:border-box;height:42px;margin:0;padding:0;align-items:center;align-content:center}
@media(max-width:420px){
.extras-list .extra,.extra{height:56px;row-gap:0}
.extra span:last-child{margin-left:28px}
}

/* sticky header */
html,body{overflow-x:clip!important}
html{scroll-padding-top:150px}
.nav-shell{position:sticky;top:0;z-index:1000}

/* fix: no fi/fl ligatures in form fields (missing glyph hid letters in e-mail) */
input,textarea,select,button{font-variant-ligatures:none;font-feature-settings:"liga" 0,"clig" 0,"calt" 0}
