:root{--color-linen: #f4efe7;--color-stone: #d8d3c6;--color-moss: #7a846e;--color-river: #2f3f37;--color-charcoal: #1f2322;--color-terracotta: #a96546;--font-serif: "Playfair Display", Georgia, serif;--font-sans: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--site-pad: clamp(20px, 4vw, 64px);--max-width: 1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--color-linen);color:var(--color-charcoal);font-family:var(--font-sans);line-height:1.6;text-rendering:optimizeLegibility}body:has(.lightbox:not([hidden])){overflow:hidden}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}:focus-visible{outline:2px solid var(--color-terracotta);outline-offset:4px}.site-header{position:fixed;top:0;left:0;z-index:20;width:100%;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:28px;padding:18px var(--site-pad);color:#fff;background:linear-gradient(180deg,#1f23229e,#1f232200)}.brand{font-family:var(--font-serif);font-size:clamp(1.2rem,1.7vw,1.55rem);font-weight:600;line-height:1.1}.main-nav,.language-nav{display:flex;align-items:center;gap:18px;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.main-nav a,.language-nav a{opacity:.9}.main-nav a:hover,.language-nav a:hover,.language-nav a[aria-current=page]{opacity:1;text-decoration:underline;text-underline-offset:5px}.hero{position:relative;min-height:96svh;display:grid;align-items:end;padding:160px var(--site-pad) 72px;overflow:hidden;color:#fff}.hero__image,.hero__shade{position:absolute;inset:0}.hero__image{width:100%;height:100%;object-fit:cover}.hero__shade{background:linear-gradient(90deg,#1f2322c2,#1f23222e 58%,#1f232252),linear-gradient(0deg,#1f23229e,#1f232214 48%)}.hero__content{position:relative;max-width:850px}.eyebrow,.section__kicker{margin:0 0 18px;color:var(--color-moss);font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.hero .eyebrow{color:#f4efe7db}h1,h2,h3{margin:0;font-family:var(--font-serif);font-weight:600;line-height:1;letter-spacing:0}h1{max-width:760px;font-size:clamp(3.4rem,8vw,7.6rem)}h2{font-size:clamp(2.15rem,4.8vw,4.7rem)}h3{font-size:clamp(1.55rem,2.6vw,2.3rem)}.hero p:not(.eyebrow),.section p,.river-section p,.amenities p,.booking p{font-size:clamp(1rem,1.3vw,1.16rem)}.hero p:not(.eyebrow){max-width:680px;margin:28px 0 0;color:#ffffffe8}.hero__actions,.booking-form__actions,.booking__quick-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}.button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;border:1px solid currentColor;border-radius:4px;padding:12px 18px;font-size:.84rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.button--primary{border-color:var(--color-river);background:var(--color-river);color:#fff}.button--secondary{border-color:var(--color-charcoal);background:transparent;color:var(--color-charcoal)}.button--ghost{color:#fff;background:#f4efe714}.section,.amenities,.booking,.river-section{width:min(var(--max-width),calc(100% - var(--site-pad) * 2));margin-inline:auto}.section,.amenities,.booking{padding:clamp(76px,10vw,140px) 0}.intro__grid,.editorial,.river-section,.amenities,.booking,.nearby{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1fr);gap:clamp(34px,6vw,90px);align-items:start}.intro h2,.editorial h2,.river-section h2,.amenities h2,.booking h2,.nearby h2{max-width:740px}.intro__copy,.editorial__copy,.river-section__copy,.nearby__copy{max-width:620px}.intro__copy p:first-child,.editorial__copy p,.river-section__copy p,.nearby__copy p{margin-top:0}.editorial{width:min(var(--max-width),calc(100% - var(--site-pad) * 2));margin-inline:auto;padding:clamp(72px,9vw,132px) 0}.editorial__images{display:grid;grid-template-columns:1.15fr .85fr;gap:14px}.editorial__image{margin:0;min-height:220px;background:var(--color-stone);overflow:hidden}.editorial__image--large{grid-row:span 2;min-height:620px}.editorial__image img,.spaces__grid img,.river-section__gallery img{width:100%;height:100%;object-fit:cover}.river-section{padding:clamp(78px,11vw,150px) 0;align-items:center}.river-section__gallery{display:grid;grid-template-columns:1fr .76fr;gap:14px;min-height:560px}.river-section__gallery img{min-height:400px}.river-section__gallery img:last-child{align-self:end;height:72%}.spaces{border-top:1px solid rgba(47,63,55,.18)}.spaces__copy{max-width:780px;margin-bottom:40px}.spaces__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.spaces__grid img{aspect-ratio:4 / 5;background:var(--color-stone)}.spaces__grid img:nth-child(2n){aspect-ratio:4 / 4.35;margin-top:38px}.gallery-section{border-top:1px solid rgba(47,63,55,.18)}.gallery-section__intro{max-width:820px}.gallery-tabs{display:flex;gap:8px;margin:38px 0 54px;overflow-x:auto;padding-bottom:8px}.gallery-tabs__button{flex:0 0 auto;border:1px solid rgba(47,63,55,.22);border-radius:999px;background:transparent;color:var(--color-charcoal);padding:9px 14px;font-size:.78rem;font-weight:700;cursor:pointer}.gallery-tabs__button.is-active{background:var(--color-river);color:#fff}.gallery-group{margin-top:54px}.gallery-group[hidden]{display:none}.gallery-group h3{margin-bottom:22px}.photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:dense;gap:12px}.photo-card{position:relative;min-height:230px;border:0;padding:0;background:var(--color-stone);overflow:hidden;cursor:pointer}.photo-card:nth-child(7n+1){grid-column:span 2;grid-row:span 2}.photo-card img{width:100%;height:100%;min-height:230px;object-fit:cover;transition:transform .35s ease}.photo-card:hover img{transform:scale(1.035)}.photo-card span{position:absolute;left:12px;right:12px;bottom:12px;display:inline-flex;width:fit-content;max-width:calc(100% - 24px);padding:8px 10px;background:#f4efe7e6;color:var(--color-charcoal);font-size:.78rem;font-weight:700}.lightbox{position:fixed;inset:0;z-index:50;display:grid;grid-template-columns:80px 1fr 80px;align-items:center;gap:12px;padding:28px;background:#1f2322ed}.lightbox[hidden]{display:none}.lightbox figure{min-width:0;margin:0;color:#fff;text-align:center}.lightbox img{width:auto;max-width:100%;max-height:calc(100svh - 110px);margin-inline:auto;object-fit:contain}.lightbox figcaption{margin-top:14px;color:#ffffffd1;font-size:.92rem}.lightbox__close,.lightbox__nav{border:1px solid rgba(255,255,255,.35);background:#f4efe714;color:#fff;cursor:pointer}.lightbox__close{position:absolute;top:22px;right:22px;width:46px;height:46px;font-size:2rem;line-height:1}.lightbox__nav{width:58px;height:58px;justify-self:center;font-size:2.4rem;line-height:1}.amenities{border-top:1px solid rgba(47,63,55,.18)}.amenities__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none}.amenities__grid li{padding:14px 0;border-bottom:1px solid rgba(47,63,55,.18);font-weight:600}.amenities__grid li:before{content:"";display:inline-block;width:7px;height:7px;margin-right:10px;background:var(--color-moss);vertical-align:.08em}.booking{width:100%;max-width:none;padding-inline:var(--site-pad);background:var(--color-stone)}.booking__copy,.booking-form{width:min(100%,560px)}.booking__quick-links a{border-bottom:1px solid currentColor;color:var(--color-river);font-weight:700}.booking-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:clamp(20px,4vw,44px);background:#f4efe7b8}.booking-form label{display:grid;gap:8px;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.booking-form__wide,.booking-form__actions{grid-column:1 / -1}.booking-form input,.booking-form textarea{width:100%;border:1px solid rgba(47,63,55,.24);border-radius:0;background:#fffaf3;color:var(--color-charcoal);padding:13px 12px;font-size:1rem;font-weight:400;letter-spacing:0;text-transform:none}.nearby{align-items:start}.nearby__links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 22px}.nearby__links a{padding:14px 0;border-bottom:1px solid rgba(47,63,55,.18);color:var(--color-river);font-weight:700}.availability{width:100%;max-width:none;padding:clamp(76px,10vw,132px) var(--site-pad);background:#fffaf3}.availability__intro,.availability__panel{width:min(var(--max-width),100%);margin-inline:auto}.availability__intro{max-width:760px;margin-bottom:40px}.availability__panel{padding:clamp(18px,4vw,34px);border:1px solid rgba(47,63,55,.2);background:var(--color-linen)}.availability__toolbar,.availability__legend{display:flex;align-items:center;justify-content:space-between;gap:14px}.availability__toolbar strong{font-family:var(--font-serif);font-size:clamp(1.3rem,2vw,2rem);font-weight:600;text-transform:capitalize}.availability__nav{width:42px;height:42px;border:1px solid rgba(47,63,55,.3);background:transparent;color:var(--color-river);font-size:1.8rem;line-height:1;cursor:pointer}.availability__legend{justify-content:flex-start;margin:22px 0;font-size:.9rem;font-weight:700}.availability__legend i{display:inline-block;width:12px;height:12px;margin-right:8px;vertical-align:-1px}.availability__legend .is-free{background:#fff;border:1px solid rgba(47,63,55,.22)}.availability__legend .is-occupied{background:var(--color-river)}.availability__months{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.availability-month{min-width:0}.availability-month h3{margin-bottom:16px;font-size:clamp(1.25rem,2vw,1.8rem);text-transform:capitalize}.availability-month__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.availability-month__weekday{color:var(--color-moss);font-size:.72rem;font-weight:800;text-align:center;text-transform:uppercase}.availability-day,.availability-month__empty{display:grid;min-height:38px;place-items:center;border:1px solid rgba(47,63,55,.14);background:#fff;font-size:.86rem;font-weight:700}.availability-day--occupied{border-color:var(--color-river);background:var(--color-river);color:#fff}.availability__status{min-height:24px;margin:22px 0 0;color:var(--color-river);font-weight:700}.admin-page{min-height:100svh;padding:48px var(--site-pad);background:var(--color-linen)}.admin-shell{width:min(1360px,100%);margin-inline:auto}.admin-header,.admin-grid,.admin-list__header,.admin-form__actions{display:flex;gap:18px}.admin-header{align-items:flex-start;justify-content:space-between;margin-bottom:36px}.admin-header h1{color:var(--color-charcoal);font-size:clamp(2.8rem,6vw,5rem)}.admin-token,.admin-form,.admin-list{border:1px solid rgba(47,63,55,.2);background:#fffaf3;padding:clamp(20px,3vw,32px)}.admin-token{max-width:520px}.admin-token label,.admin-form label{display:grid;gap:8px;margin-bottom:16px;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.admin-token input,.admin-form input,.admin-form select,.admin-form textarea{width:100%;border:1px solid rgba(47,63,55,.24);background:#fff;color:var(--color-charcoal);padding:12px;font-size:1rem;font-weight:400;letter-spacing:0;text-transform:none}.admin-grid{align-items:flex-start}.admin-form{flex:0 0 min(420px,100%)}.admin-form h2,.admin-list h2{margin-bottom:22px;font-size:clamp(1.6rem,2.4vw,2.4rem)}.admin-form__wide,.admin-form__actions{margin-top:4px}.admin-list{flex:1;min-width:0}.admin-list__header{align-items:center;justify-content:space-between}.admin-status{min-height:24px;color:var(--color-river);font-weight:700}.admin-table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;min-width:760px}.admin-table th,.admin-table td{padding:12px 10px;border-bottom:1px solid rgba(47,63,55,.16);text-align:left;vertical-align:top}.admin-table th{color:var(--color-moss);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.admin-pill{display:inline-flex;border:1px solid rgba(47,63,55,.2);padding:4px 8px;color:var(--color-river);font-size:.78rem;font-weight:800;text-transform:uppercase}.admin-edit{border:0;border-bottom:1px solid currentColor;background:transparent;color:var(--color-river);cursor:pointer;font-weight:800}.site-footer{display:grid;grid-template-columns:150px 1fr;gap:36px;align-items:center;padding:52px var(--site-pad);background:var(--color-river);color:var(--color-linen)}.site-footer img{width:150px;border:1px solid rgba(244,239,231,.22)}.brand--footer{margin:0 0 10px}.site-footer p{margin:6px 0}@media(max-width:980px){.site-header{grid-template-columns:1fr auto}.main-nav{display:none}.intro__grid,.editorial,.river-section,.amenities,.booking,.nearby{grid-template-columns:1fr}.editorial__image--large{min-height:420px}.river-section__gallery{min-height:0}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.spaces__grid{grid-template-columns:repeat(2,1fr)}.availability__months,.admin-grid{grid-template-columns:1fr}.admin-grid{display:grid}}@media(max-width:640px){.site-header{position:absolute;align-items:start;gap:12px}.language-nav{gap:10px;font-size:.72rem}.hero{min-height:92svh;padding-top:126px;padding-bottom:48px}.hero__actions,.booking-form__actions{flex-direction:column}.button{width:100%}.editorial__images,.river-section__gallery,.spaces__grid,.photo-grid,.amenities__grid,.booking-form,.nearby__links,.site-footer{grid-template-columns:1fr}.editorial__image,.editorial__image--large,.river-section__gallery img,.spaces__grid img,.spaces__grid img:nth-child(2n){min-height:0;height:auto;aspect-ratio:4 / 3;margin-top:0}.photo-card,.photo-card:nth-child(7n+1){grid-column:auto;grid-row:auto;min-height:220px}.lightbox{grid-template-columns:1fr;padding:18px}.lightbox__nav{position:absolute;top:50%;width:46px;height:46px;font-size:2rem}.lightbox__nav--previous{left:14px}.lightbox__nav--next{right:14px}.lightbox img{max-height:calc(100svh - 150px)}.site-footer img{width:120px}.availability__toolbar{align-items:stretch}.availability__months{grid-template-columns:1fr}.availability-day,.availability-month__empty{min-height:34px;font-size:.78rem}.admin-header,.admin-list__header,.admin-form__actions{flex-direction:column}}
