
:root{
 --bg: #152319;
 --bg-2: #1B2E22;
 --surface: #1E3A2B;
 --paper: #F5F1E8;
 --paper-2: #EDEAE2;
 --text: #1E352A;
 --text-2: #4A5D52;
 --muted: #6B7D72;
 --brand: #2F4F3E;
 --brand-light: #3D6650;
 --accent: #C46A2D;
 --accent-2: #B8B2A6;
 --border: rgba(47, 79, 62, .14);
 --shadow: 0 16px 40px rgba(21, 35, 25, .16);
 --radius: 18px;
 --radius-sm: 12px;
 --container: 1160px;
 --focus: rgba(196, 106, 45, .30);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
 margin:0;
 font-family: Lato, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
 color: var(--text);
 background: var(--paper);
 line-height: 1.55;
}
img{max-width:100%; height:auto; display:block}
a{color:inherit; text-decoration:none}
p{margin:0 0 14px}
small{color:var(--muted)}
ul{margin:0; padding-left: 18px}
li{margin:6px 0}
.container{
 max-width: var(--container);
 margin: 0 auto;
 padding: 0 clamp(14px, 3vw, 18px);
}
.skip-link{
 position:absolute;
 left:-999px;
 top: 8px;
 background: var(--paper);
 border: 2px solid var(--accent);
 padding: 10px 12px;
 border-radius: 10px;
 z-index: 9999;
}
.skip-link:focus{left: 12px; outline: none}
.btn{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 gap:10px;
 padding: 12px 16px;
 border-radius: 999px;
 border: 1px solid transparent;
 font-weight: 650;
 letter-spacing: .2px;
 cursor: pointer;
 transition: transform .08s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;
 user-select:none;
}
.btn:active{transform: translateY(1px)}
.btn-primary{
 background: linear-gradient(135deg, var(--brand), var(--brand-light));
 color: white;
 box-shadow: 0 12px 26px rgba(47, 79, 62, .28);
}
.btn-primary:hover{box-shadow: 0 16px 34px rgba(47, 79, 62, .38)}
.btn-ghost{
 background: rgba(255,255,255,.12);
 color: white;
 border-color: rgba(255,255,255,.18);
}
.btn-ghost:hover{background: rgba(255,255,255,.18)}
.btn-light{
 background: var(--paper);
 border-color: var(--border);
}
.btn-light:hover{border-color: rgba(47, 79, 62, .30)}
.btn-accent{
 background: linear-gradient(135deg, var(--accent), #D4843F);
 color: white;
 box-shadow: 0 12px 24px rgba(196, 106, 45, .24);
}
.btn-accent:hover{box-shadow: 0 16px 32px rgba(196, 106, 45, .34)}
.badge{
 display:inline-flex;
 align-items:center;
 gap:8px;
 padding: 8px 12px;
 border-radius: 999px;
 background: rgba(47, 79, 62, .10);
 color: var(--brand);
 border: 1px solid rgba(47, 79, 62, .18);
 font-weight: 600;
 font-size: 13px;
}
.kicker{
 display:flex;
 align-items:center;
 gap:10px;
 color: rgba(255,255,255,.82);
 font-weight: 600;
 letter-spacing: .3px;
 text-transform: uppercase;
 font-size: 12px;
}
.kicker .dot{
 width: 8px; height: 8px;
 border-radius: 999px;
 background: var(--accent);
 box-shadow: 0 0 0 6px rgba(196, 106, 45, .20);
}
h1,h2,h3{
 font-family: "Playfair Display", Georgia, "Times New Roman", Times, serif;
 letter-spacing: .2px;
 margin: 0 0 10px;
}
h1{font-size: clamp(24px, 3.2vw, 38px); line-height: 1.1}
h2{font-size: clamp(20px, 2.5vw, 30px); line-height: 1.14}
h3{
 font-size: clamp(16px, 1.6vw, 18px);
 line-height: 1.2;
 font-family: Lato, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
}
.header{
 position: sticky;
 top: 0;
 z-index: 100;
 background: rgba(21, 35, 25, .82);
 backdrop-filter: blur(14px);
 -webkit-backdrop-filter: blur(14px);
 border-bottom: 1px solid rgba(255,255,255,.08);
}
.header-inner{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap: 14px;
 padding: 12px 0;
}
.brand{
 display:flex;
 align-items:center;
 gap: 12px;
 color: white;
}
.brand img{
 width: 42px;
 height: 42px;
 border-radius: 12px;
 background: rgba(255,255,255,.10);
 padding: 6px;
}
.brand .title{
 display:flex;
 flex-direction:column;
 line-height: 1.05;
}
.brand .title strong{font-weight: 800; letter-spacing: .2px}
.brand .title span{font-size: 12px; color: rgba(255,255,255,.72)}
.nav{
 display:flex;
 align-items:center;
 gap: 6px;
}
.nav a{
 color: rgba(255,255,255,.88);
 padding: 10px 12px;
 border-radius: 999px;
 font-weight: 600;
 font-size: 14px;
 transition: background .2s ease, color .2s ease;
}
.nav a:hover{background: rgba(255,255,255,.10)}
.nav a.active{
 background: rgba(196, 106, 45, .18);
 color: white;
 border: 1px solid rgba(196, 106, 45, .25);
}
.header-cta{
 display:flex;
 align-items:center;
 gap: 10px;
}
.mobile-toggle{
 display:none;
 background: rgba(255,255,255,.10);
 border: 1px solid rgba(255,255,255,.16);
 color: white;
 border-radius: 12px;
 padding: 10px 12px;
 cursor:pointer;
}
.hero{
 background: radial-gradient(80% 130% at 20% 30%, rgba(47, 79, 62, .30), transparent 60%),
 radial-gradient(70% 120% at 80% 20%, rgba(196, 106, 45, .22), transparent 55%),
 linear-gradient(180deg, rgba(21, 35, 25, .82), rgba(21, 35, 25, .92));
 color: white;
 position: relative;
 overflow:hidden;
}
.hero .bg{
 position:absolute;
 inset:0;
 overflow:hidden;
 opacity:.38;
}
.hero .bg img{
 width:100%;
 height:100%;
 object-fit:cover;
 object-position:center center;
 display:block;
}
.hero .overlay{
 position:absolute;
 inset:0;
 background: linear-gradient(rgba(21, 35, 25, .18), rgba(21, 35, 25, .92));
}
.hero .content{
 position:relative;
 padding: clamp(24px, 3.5vh, 42px) 0 clamp(18px, 2.8vh, 32px);
 z-index: 2;
}
.hero h1{
 font-size: clamp(28px, 3.5vw, 46px);
 line-height: 1.08;
 margin-bottom: clamp(8px, 1vh, 12px);
}
.hero-grid{
 display:grid;
 grid-template-columns: 1.2fr .8fr;
 gap: clamp(10px, 1.5vw, 18px);
 align-items: end;
}
.hero p{
 color: rgba(255,255,255,.86);
 font-size: clamp(14px, 1.3vw, 16px);
 max-width: 62ch;
 margin-bottom: clamp(4px, 1vh, 10px);
}
.hero .actions{
 display:flex;
 flex-wrap:wrap;
 gap: clamp(6px, 1vw, 10px);
 margin-top: clamp(8px, 1.5vw, 14px);
}
.hero .actions .btn{
 font-size: clamp(12px, 1.2vw, 14px);
 padding: clamp(7px, 1vw, 10px) clamp(12px, 1.5vw, 18px);
}
.hero .badge{
 font-size: clamp(10px, 1vw, 12px);
 padding: clamp(4px, .6vw, 6px) clamp(8px, 1vw, 12px);
 background: rgba(255, 255, 255, .12);
 border-color: rgba(255, 255, 255, .25);
 color: rgba(255, 255, 255, .9);
 backdrop-filter: blur(6px);
 -webkit-backdrop-filter: blur(6px);
}

/* Inner page heroes — more breathing room since no booking form */
.hero-inner .content{
 padding: clamp(28px, 4vh, 48px) 0 clamp(20px, 3vh, 36px);
 min-height: 280px;
 display: flex;
 flex-direction: column;
 justify-content: flex-end;
}
.hero-inner .bg{
 background-position: center 40%;
}
.hero-inner h1{
 font-size: clamp(24px, 3.8vw, 42px);
}

.card{
 background: var(--paper);
 border: 1px solid var(--border);
 border-radius: var(--radius);
 box-shadow: 0 8px 26px rgba(21, 35, 25, .06);
}
.card.pad{padding: 18px}
.card.dark{
 background: rgba(30, 58, 43, .40);
 backdrop-filter: blur(20px);
 -webkit-backdrop-filter: blur(20px);
 border-color: rgba(255,255,255,.08);
 color: white;
}
.card.dark small{color: rgba(255,255,255,.68)}
.card.dark label{color: rgba(255,255,255,.72)}
.form-grid{
 display:grid;
 grid-template-columns: 1fr 1fr;
 gap: 12px;
 margin-top: 12px;
}
label{
 display:block;
 font-size: 12px;
 font-weight: 700;
 color: var(--text-2);
 margin-bottom: 6px;
}
input, select, textarea{
 width: 100%;
 padding: 12px 12px;
 border-radius: 14px;
 border: 1px solid var(--border);
 background: var(--paper);
 font: inherit;
 outline: none;
}
textarea{min-height: 110px; resize: vertical}
input:focus, select:focus, textarea:focus{
 box-shadow: 0 0 0 4px var(--focus);
 border-color: rgba(196, 106, 45, .55);
}
.form-actions{
 display:flex;
 gap: 10px;
 flex-wrap: wrap;
 align-items:center;
 justify-content: space-between;
 margin-top: 14px;
}
.card.dark input,
.card.dark select,
.card.dark textarea{
 background: rgba(255,255,255,.08);
 border-color: rgba(255,255,255,.14);
 color: white;
}
.card.dark input::placeholder,
.card.dark textarea::placeholder{
 color: rgba(255,255,255,.35);
}
.card.dark input:focus,
.card.dark select:focus,
.card.dark textarea:focus{
 background: rgba(255,255,255,.12);
 border-color: var(--accent);
 box-shadow: 0 0 0 4px rgba(196, 106, 45, .18);
}
.card.dark select{
 -webkit-appearance: none;
 appearance: none;
 background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l5 5 5-5' stroke='rgba(255,255,255,0.5)' stroke-width='2' fill='none'/%3E%3C/svg%3E");
 background-repeat: no-repeat;
 background-position: right 14px center;
 padding-right: 36px;
}
.card.dark .form-actions small{
 color: rgba(255,255,255,.5);
}
.booking {
 padding: 16px;
}
.booking h3 {
 color: white;
 margin-bottom: 2px;
 font-family: "Playfair Display", Georgia, serif;
 font-size: 18px;
}
.booking > small {
 color: rgba(255,255,255,.6);
}
.book-form {
 display: grid;
 gap: 10px;
}
.book-row {
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 10px;
}
.book-field {
 display: flex;
 flex-direction: column;
}
.book-field.full {
 grid-column: 1 / -1;
}
.book-field label {
 font-size: 11px;
 font-weight: 700;
 color: rgba(255,255,255,.55);
 text-transform: uppercase;
 letter-spacing: .5px;
 margin-bottom: 5px;
}
.booking .book-field input,
.booking .book-field select {
 width: 100%;
 padding: 10px 12px;
 border-radius: 10px;
 border: 1px solid rgba(255,255,255,.18);
 background: rgba(255,255,255,.08);
 color: white;
 font-family: Lato, system-ui, sans-serif;
 font-size: 14px;
 font-weight: 500;
 outline: none;
 -webkit-appearance: none;
 appearance: none;
 transition: border-color .2s, background .2s, box-shadow .2s;
 box-sizing: border-box;
}
.booking .book-field input:focus,
.booking .book-field select:focus {
 border-color: var(--accent);
 background: rgba(255,255,255,.12);
 box-shadow: 0 0 0 3px rgba(196,106,45,.18);
}
.booking .book-field input::placeholder {
 color: rgba(255,255,255,.35);
}
.booking .book-field select {
 cursor: pointer;
 background-image: url("data:image/svg+xml,%3Csvg width='12' height='7' viewBox='0 0 12 7' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l5 5 5-5' stroke='rgba(255,255,255,0.5)' stroke-width='2' fill='none'/%3E%3C/svg%3E");
 background-repeat: no-repeat;
 background-position: right 12px center;
 padding-right: 34px;
}
.booking .book-field select option {
 background: #1E3A2B;
 color: white;
}
.booking .book-field label {
 font-size: 11px;
 font-weight: 700;
 color: rgba(255,255,255,.55);
 text-transform: uppercase;
 letter-spacing: .5px;
 margin-bottom: 5px;
}
.book-hint {
 font-size: 11px;
 color: rgba(255,255,255,.4);
 margin-top: 4px;
}
.booking .book-field input[type="date"]::-webkit-calendar-picker-indicator {
 filter: invert(1) brightness(0.7);
 cursor: pointer;
}
.booking .book-field input[type="date"] {
 color-scheme: dark;
}
.book-submit {
 width: 100%;
 padding: 14px;
 border: none;
 border-radius: 999px;
 background: linear-gradient(135deg, var(--brand), var(--brand-light));
 color: white;
 font-family: Lato, system-ui, sans-serif;
 font-size: 15px;
 font-weight: 700;
 cursor: pointer;
 box-shadow: 0 8px 20px rgba(47,79,62,.25);
 transition: box-shadow .2s, transform .1s;
 margin-top: 4px;
}
.book-submit:hover {
 box-shadow: 0 12px 28px rgba(47,79,62,.35);
 transform: translateY(-1px);
}
.oh-widget {
 overflow: visible;
}
.oh-widget table,
.booking table {
 width: 100% !important;
 border-collapse: collapse;
}
.oh-widget td,
.booking td {
 padding: 4px 3px;
 color: rgba(255,255,255,.78) !important;
 font-size: 12px;
 font-weight: 600;
 vertical-align: top;
}
.oh-widget select,
.oh-widget input[type="text"],
.oh-widget input[type="date"],
.booking .oh-widget select,
.booking .oh-widget input[type="text"] {
 background: rgba(255,255,255,.10) !important;
 border: 1px solid rgba(255,255,255,.22) !important;
 color: white !important;
 border-radius: 10px !important;
 padding: 9px 10px !important;
 font-family: Lato, system-ui, sans-serif !important;
 font-size: 13px !important;
 outline: none !important;
 width: 100% !important;
 max-width: 100% !important;
 box-sizing: border-box !important;
 -webkit-appearance: none;
 appearance: none;
 cursor: pointer;
}
.oh-widget select:focus,
.oh-widget input[type="text"]:focus {
 border-color: var(--accent) !important;
 background: rgba(255,255,255,.15) !important;
 box-shadow: 0 0 0 3px rgba(196, 106, 45, .20);
}
.oh-widget select {
 background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='rgba(255,255,255,0.6)' stroke-width='1.5' fill='none'/%3E%3C/svg%3E") !important;
 background-repeat: no-repeat !important;
 background-position: right 10px center !important;
 padding-right: 28px !important;
}
.oh-widget select option {
 background: #1E3A2B;
 color: white;
}
.oh-widget input[type="submit"],
.oh-widget input[type="button"] {
 background: linear-gradient(135deg, var(--accent), #D4843F) !important;
 color: white !important;
 border: none !important;
 border-radius: 999px !important;
 padding: 12px 22px !important;
 font-family: Lato, system-ui, sans-serif !important;
 font-size: 14px !important;
 font-weight: 700 !important;
 letter-spacing: .3px !important;
 cursor: pointer !important;
 width: 100% !important;
 margin-top: 6px;
 box-shadow: 0 6px 18px rgba(196, 106, 45, .25);
 transition: box-shadow .2s ease, transform .1s ease;
}
.oh-widget input[type="submit"]:hover,
.oh-widget input[type="button"]:hover {
 box-shadow: 0 10px 28px rgba(196, 106, 45, .38) !important;
 transform: translateY(-1px);
}
.oh-widget img {
 vertical-align: middle;
 filter: brightness(2);
 width: 18px;
 height: 18px;
}
.oh-widget font {
 color: rgba(255,255,255,.78) !important;
 font-family: Lato, system-ui, sans-serif !important;
 font-size: 12px !important;
 font-weight: 600 !important;
}
.oh-widget a {
 color: rgba(255,255,255,.6);
}
.oh-widget a:hover {
 color: var(--accent);
}
.section{
 padding: clamp(32px, 5vh, 56px) 0;
}
.section.alt{
 background: var(--paper-2);
 border-top: 1px solid rgba(47, 79, 62, .06);
 border-bottom: 1px solid rgba(47, 79, 62, .06);
}
.section .head{
 display:flex;
 align-items:end;
 justify-content:space-between;
 gap: 16px;
 margin-bottom: 18px;
}
.section .head p{max-width: 68ch; color: var(--text-2)}
.grid-3{
 display:grid;
 grid-template-columns: repeat(3, 1fr);
 gap: 16px;
}
.grid-2{
 display:grid;
 grid-template-columns: repeat(2, 1fr);
 gap: 16px;
}
.feature{
 padding: 18px;
 border-radius: var(--radius);
 background: var(--paper);
 border: 1px solid var(--border);
}
.feature .icon{
 width: 44px; height: 44px;
 border-radius: 14px;
 background: rgba(47, 79, 62, .10);
 display:grid;
 place-items:center;
 color: var(--brand);
 margin-bottom: 10px;
}
.feature p{color: var(--text-2)}
.media-grid{
 display:grid;
 grid-template-columns: 1.1fr .9fr;
 gap: 16px;
 align-items: stretch;
}
.media-grid .col{
 display:grid;
 gap: 16px;
}
.media{
 border-radius: var(--radius);
 overflow:hidden;
 border: 1px solid rgba(47, 79, 62, .10);
 background: var(--paper-2);
 box-shadow: 0 10px 28px rgba(21, 35, 25, .08);
}
.media img{width:100%; height:100%; object-fit: cover; display:block}
.split{
 display:grid;
 grid-template-columns: 1fr 1fr;
 gap: 18px;
 align-items:center;
}
.split .text p{color: var(--text-2)}
.checks{
 display:grid;
 gap: 10px;
 padding-left: 0;
 list-style: none;
}
.checks li{
 display:flex;
 gap: 10px;
 align-items:flex-start;
}
.checks li .tick{
 width: 22px; height: 22px;
 border-radius: 8px;
 background: rgba(196, 106, 45, .16);
 border: 1px solid rgba(196, 106, 45, .30);
 display:grid;
 place-items:center;
 margin-top: 2px;
 flex: 0 0 auto;
 color: #7a3a12;
 font-size: 12px;
}
.room-card{
 overflow:hidden;
}
.room-card .img{
 aspect-ratio: 16 / 10;
 background: var(--paper-2);
}
.room-card .img img{height:100%; width:100%; object-fit: cover; transition: transform .45s ease}
.room-card .img.slideshow{aspect-ratio:auto;height:220px}
.room-card .img.slideshow img{height:220px;width:100%;object-fit:cover}
.room-card:hover .img img{transform: scale(1.04)}
.room-card .body{padding: 16px}
.room-card .meta{
 display:flex;
 flex-wrap: wrap;
 gap: 10px;
 margin: 10px 0 12px;
}
.pill{
 display:inline-flex;
 align-items:center;
 gap: 8px;
 padding: 8px 12px;
 border-radius: 999px;
 background: rgba(47, 79, 62, .06);
 border: 1px solid rgba(47, 79, 62, .12);
 font-weight: 650;
 font-size: 13px;
 color: var(--text-2);
}
.gallery-controls{
 display:flex;
 gap: 10px;
 flex-wrap: wrap;
 margin: 14px 0 18px;
}
.chip{
 border: 1px solid rgba(255,255,255,.14);
 background: rgba(255,255,255,.08);
 color: rgba(255,255,255,.7);
 padding: 10px 12px;
 border-radius: 999px;
 cursor:pointer;
 font-weight: 650;
 transition: all .2s ease;
}
.chip:hover{
 background: rgba(255,255,255,.14);
 color: white;
}
.chip.active{
 background: rgba(196, 106, 45, .20);
 border-color: rgba(196, 106, 45, .32);
 color: #D4843F;
}
.gallery{
 display:grid;
 grid-template-columns: repeat(3, 1fr);
 gap: 14px;
}
.gallery a{
 border-radius: var(--radius);
 overflow:hidden;
 position:relative;
 border: 1px solid rgba(47, 79, 62, .10);
 box-shadow: 0 10px 24px rgba(21, 35, 25, .08);
 background: var(--paper-2);
}
.gallery img{
 width:100%;
 height: 240px;
 object-fit: cover;
 transition: transform .35s ease;
}
.gallery a:hover img{transform: scale(1.03)}
.gallery a .cap{
 position:absolute;
 left: 12px; right: 12px; bottom: 12px;
 padding: 10px 12px;
 border-radius: 14px;
 background: rgba(21, 35, 25, .68);
 backdrop-filter: blur(10px);
 -webkit-backdrop-filter: blur(10px);
 color: white;
 font-weight: 650;
 font-size: 13px;
 border: 1px solid rgba(255,255,255,.10);
}
.lightbox{
 position: fixed;
 inset:0;
 display:none;
 align-items:center;
 justify-content:center;
 background: rgba(21, 35, 25, .82);
 backdrop-filter: blur(8px);
 -webkit-backdrop-filter: blur(8px);
 padding: 20px;
 z-index: 999;
}
.lightbox.open{display:flex}
.lightbox .panel{
 max-width: min(1100px, 100%);
 width: 100%;
 background: rgba(30, 58, 43, .50);
 border: 1px solid rgba(255,255,255,.12);
 border-radius: 18px;
 overflow:hidden;
 box-shadow: 0 22px 80px rgba(21, 35, 25, .55);
}
.lightbox header{
 display:flex;
 align-items:center;
 justify-content:space-between;
 padding: 12px 14px;
 color: white;
}
.lightbox header strong{font-weight: 800}
.lightbox button{
 background: rgba(255,255,255,.10);
 border: 1px solid rgba(255,255,255,.16);
 color: white;
 border-radius: 12px;
 padding: 10px 12px;
 cursor:pointer;
 transition: background .2s ease;
}
.lightbox button:hover{background: rgba(255,255,255,.18)}
.lightbox img{width:100%; max-height: 78vh; object-fit: contain; background: rgba(21, 35, 25, .70)}
.footer{
 background: rgba(30,58,43,.92);
 color: rgba(255,255,255,.9);
 padding: 28px 0 20px;
 text-align: center;
 font-size: 14px;
 position: relative;
}
.footer::before{
 content: '';
 position: absolute;
 top: -60px;
 left: 0;
 right: 0;
 height: 60px;
 background: linear-gradient(0deg, rgba(30,58,43,.92) 0%, rgba(30,58,43,.5) 40%, rgba(30,58,43,0) 100%);
 pointer-events: none;
}
.footer-nav{
 display: flex;
 justify-content: center;
 flex-wrap: wrap;
 gap: 0;
 margin-bottom: 12px;
}
.footer-nav a{
 color: rgba(255,255,255,.85);
 text-decoration: none;
 padding: 0 14px;
 border-right: 2px solid #C46A2D;
 line-height: 1;
 font-size: 14px;
}
.footer-nav a:last-child{ border-right: none; }
.footer-nav a:hover{ text-decoration: underline; color: #C46A2D; }
.footer-copy{
 color: rgba(255,255,255,.6);
 font-size: 13px;
 margin-bottom: 14px;
}
.footer-brand{
 margin-top: 8px;
}
.footer-brand a{
 color: rgba(255,255,255,.6);
 text-decoration: none;
 font-size: 12px;
}
.footer-brand a:hover{ text-decoration: underline; color: #C46A2D; }
.footer-brand img{
 display: inline-block;
 height: 22px;
 vertical-align: middle;
 margin-left: 4px;
}
.footer-grid{ display: none; }
.footer .fine{ display: none; }
.footer .badge{ display: none; }
.footer .brand{ display: none; }
.notice{
 background: rgba(196, 106, 45, .10);
 border: 1px solid rgba(196, 106, 45, .22);
 padding: 14px 14px;
 border-radius: var(--radius);
 color: #3b2e0e;
}
.card.dark .notice,
.hero .card.dark .notice,
.hero .notice{
 background: rgba(255, 255, 255, .08);
 border-color: rgba(255, 255, 255, .15);
 color: rgba(255, 255, 255, .9) !important;
}
.card.dark .notice strong,
.hero .card.dark .notice strong,
.hero .notice strong{
 color: white !important;
}
.map{
 border-radius: var(--radius);
 border: 1px solid rgba(47, 79, 62, .10);
 overflow:hidden;
 background: white;
}
.map iframe{width:100%; height: 360px; border: 0}
.reveal.reveal-ready{
 opacity: 0;
 transform: translateY(14px);
 transition: opacity .7s ease, transform .7s ease;
}
.reveal.visible{
 opacity: 1 !important;
 transform: translateY(0) !important;
}
@media (prefers-reduced-motion: reduce) {
 .reveal, .reveal.reveal-ready { opacity: 1; transform: none; transition: none; }
}
.back-to-top{
 position: fixed;
 right: 16px;
 bottom: 16px;
 background: rgba(47, 79, 62, .92);
 border: 1px solid rgba(255,255,255,.14);
 color: white;
 padding: 10px 12px;
 border-radius: 999px;
 box-shadow: 0 18px 40px rgba(21, 35, 25, .30);
 cursor:pointer;
 display:none;
 transition: background .2s ease;
}
.back-to-top.show{display:inline-flex}
.back-to-top:hover{background: var(--accent)}
@media (max-width: 980px){
 .grid-3{grid-template-columns: 1fr 1fr}
 .gallery{grid-template-columns: 1fr 1fr}
 .media-grid{grid-template-columns: 1fr}
 .footer-grid{grid-template-columns: 1fr}
}
@media (max-width: 740px){
 .hero-grid{grid-template-columns: 1fr}
 .nav{display:none}
 .mobile-toggle{display:inline-flex}
 .header-cta{display:none}
 .grid-2, .grid-3{grid-template-columns: 1fr}
 .form-grid{grid-template-columns: 1fr}
 .gallery{grid-template-columns: 1fr}
 .split{grid-template-columns: 1fr}

 .container{padding: 0 16px}
 .hero .content{padding: 24px 16px 20px}
 .hero h1{font-size: 24px; line-height: 1.2}
 .hero p{font-size: 14px; margin-bottom: 8px}
 .hero .kicker{font-size: 11px}
 .hero .actions{margin-top: 12px; gap: 8px}
 .hero .actions .btn{font-size: 13px; padding: 10px 16px}
 .hero .badge{font-size: 11px; padding: 5px 10px}

 .hero .card.dark.booking{
  margin: 0;
  border-radius: 0;
  border: none;
  border-top: 2px solid rgba(196,106,45,.4);
  padding: 20px 16px;
 }
}

/* High-DPI laptops with short effective viewport (e.g. 2880x1620 at 200% = 810px tall) */
@media (max-height: 860px) and (min-width: 900px){
 .hero .content{padding: 10px 0 8px}
 .hero h1{font-size: clamp(20px, 3vw, 32px);margin-bottom:4px}
 .hero p{font-size: 13px;margin-bottom:4px}
 .hero .actions{margin-top:6px;gap:6px}
 .hero .actions .btn{font-size:12px;padding:7px 14px}
 .hero .badge{font-size:10px;padding:3px 8px}
 .hero-grid{gap:8px}
 .booking{padding:12px}
 .booking h3{font-size:16px;margin-bottom:0}
 .book-form{gap:6px}
 .book-row{gap:8px}
 .booking .book-field input,
 .booking .book-field select{padding:8px 10px;font-size:13px}
 .booking .book-field label{font-size:10px;margin-bottom:2px}
 .book-submit{padding:10px;font-size:13px}
 .book-hint{font-size:10px;margin-top:2px}
}

@media (max-height: 500px) and (orientation: landscape){
 .nav{display:none}
 .mobile-toggle{display:inline-flex}
 .header-cta{display:none}
 .hero-grid{grid-template-columns: 1fr}
 .hero .content{padding: 16px 16px 12px}
 .hero h1{font-size: 22px; line-height: 1.2}
 .hero p{font-size: 13px;margin-bottom:6px}
 .hero .actions{margin-top:8px;gap:6px}
 .hero .actions .btn{padding:6px 14px;font-size:12px}
 .hero .badge{font-size:10px;padding:4px 8px}
 .hero-grid{gap:10px;align-items:center}
 .hero .card.dark.booking{
  margin: 0;
  border-radius: 0;
  border: none;
  border-top: 2px solid rgba(196,106,45,.4);
  padding: 16px;
 }
}
.mobile-nav{
 display:none;
 padding: 12px 0 14px;
 border-top: 1px solid rgba(255,255,255,.10);
}
.mobile-nav.open{display:block}
.mobile-nav a{
 display:block;
 padding: 12px 12px;
 border-radius: 12px;
 color: rgba(255,255,255,.92);
 font-weight: 650;
 transition: background .2s ease;
}
.mobile-nav a:hover{background: rgba(255,255,255,.10)}
.hidden{display:none !important}
.spec-grid{
 display:grid;
 grid-template-columns: repeat(3, 1fr);
 gap: 12px;
 margin-top: 14px;
}
.spec{
 background: rgba(47, 79, 62, .06);
 border: 1px solid rgba(47, 79, 62, .12);
 border-radius: 14px;
 padding: 12px 14px;
}
.spec strong{
 display:block;
 font-weight: 800;
 letter-spacing: .2px;
}
.spec span{
 color: var(--muted);
 font-size: 13px;
}
.list-grid{
 list-style: none;
 padding-left: 0;
 margin: 0;
 display:grid;
 grid-template-columns: 1fr 1fr;
 gap: 8px 18px;
}
.list-grid li{
 margin: 0;
 display:flex;
 gap: 10px;
 align-items:flex-start;
 color: var(--text-2);
}
.list-grid li::before{
 content: "✓";
 display:inline-grid;
 place-items:center;
 width: 20px;
 height: 20px;
 border-radius: 7px;
 background: rgba(196, 106, 45, .12);
 border: 1px solid rgba(196, 106, 45, .24);
 color: #7a3a12;
 font-weight: 800;
 flex: 0 0 auto;
 margin-top: 2px;
 font-size: 11px;
}
@media (max-width: 740px){
 .spec-grid{grid-template-columns: 1fr}
 .list-grid{grid-template-columns: 1fr}
}
.results-overlay {
 position: fixed;
 inset: 0;
 z-index: 500;
 background: rgba(21, 35, 25, .70);
 backdrop-filter: blur(6px);
 -webkit-backdrop-filter: blur(6px);
 display: none;
 align-items: center;
 justify-content: center;
 padding: 20px;
}
.results-overlay.open {
 display: flex;
}
.results-panel {
 width: 100%;
 max-width: 1100px;
 height: 85vh;
 background: var(--paper);
 border-radius: var(--radius);
 overflow: hidden;
 box-shadow: 0 24px 80px rgba(21, 35, 25, .40);
 display: flex;
 flex-direction: column;
}
.results-header {
 display: flex;
 align-items: center;
 justify-content: space-between;
 padding: 14px 20px;
 background: var(--bg);
 color: white;
 border-bottom: 2px solid var(--accent);
 flex-shrink: 0;
}
.results-header strong {
 font-family: "Playfair Display", Georgia, serif;
 font-size: 16px;
}
.results-body {
 flex: 1;
 position: relative;
 overflow: hidden;
}
.results-body iframe {
 width: 100%;
 height: 100%;
 border: none;
 background: white;
}
.results-loading {
 position: absolute;
 inset: 0;
 display: flex;
 flex-direction: column;
 align-items: center;
 justify-content: center;
 gap: 14px;
 background: var(--paper);
 z-index: 2;
 transition: opacity .4s ease;
}
.results-loading.hidden {
 opacity: 0;
 pointer-events: none;
}
.spinner {
 width: 36px;
 height: 36px;
 border: 3px solid var(--border);
 border-top-color: var(--accent);
 border-radius: 50%;
 animation: spin .8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
.results-loading p {
 color: var(--text-2);
 font-size: 14px;
 font-weight: 600;
}
@media (max-width: 740px) {
 .results-panel {
 height: 92vh;
 border-radius: 12px;
 }
 .results-header {
 padding: 10px 14px;
 flex-wrap: wrap;
 gap: 8px;
 }
}

/* ---- Slideshow / Carousel ---- */
.slideshow{position:relative;overflow:hidden;border-radius:inherit}
.slideshow>img{width:100%;object-fit:cover;display:block}
.room-card .img.slideshow{height:220px;background:var(--paper-2)}
.ss-track{display:flex;transition:transform .6s cubic-bezier(.4,0,.2,1);height:220px}
.ss-slide{min-width:100%;width:100%;height:220px;flex-shrink:0;overflow:hidden}
.ss-slide img{width:100%;height:220px;object-fit:cover;display:block}
.media .slideshow{width:100%;height:100%}
.gallery .slideshow img{height:240px}
