/* Editorial refinement. Original transparent logo artwork and local photographs.
   Fonts use local @font-face declarations in local-fonts.css. */
:root {
  color-scheme: light;
  --serif: 'Siwa Display', 'Didot', 'Bodoni 72', 'Bodoni MT', 'GFS Didot', 'Baskerville', 'Iowan Old Style', 'Palatino Linotype', 'EB Garamond', 'Book Antiqua', 'Times New Roman', serif;
  --sans: 'Siwa Text', 'Avenir Next', 'Inter', 'Segoe UI', Arial, sans-serif;
  --page: 1360px;
  --header: 94px;
  --eco-green: #365B3D;
  --scrollbar-track: transparent;
  --scrollbar-thumb: #95765C;
  --scrollbar-thumb-hover: #745840;
}

/* Shared by the page, photo viewer, tables and form fields. */
.lightbox-thumbs { overflow-y: hidden; }
@media (forced-colors: none) {
  *, .lightbox-thumbs {
    scrollbar-width: thin;
    scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
  }

  /* Keep native overlay scrollbars on touch devices. */
  @media (hover: hover) and (pointer: fine) {
    @supports selector(::-webkit-scrollbar) {
      /* Standard properties otherwise override these rounded scrollbars. */
      *, .lightbox-thumbs { scrollbar-width: auto; scrollbar-color: auto; }
      ::-webkit-scrollbar { width: 10px; height: 10px; }
      .lightbox-thumbs::-webkit-scrollbar { height: 8px; }
      ::-webkit-scrollbar-track { background: var(--scrollbar-track); }
      ::-webkit-scrollbar-thumb {
        min-width: 44px;
        min-height: 44px;
        border: 2px solid var(--scrollbar-track);
        border-radius: 999px;
        background: var(--scrollbar-thumb);
        background-clip: padding-box;
      }
      ::-webkit-scrollbar-thumb:hover { background-color: var(--scrollbar-thumb-hover); }
      ::-webkit-scrollbar-thumb:active { background-color: var(--accent-dark); }
      ::-webkit-scrollbar-button { display: none; width: 0; height: 0; }
      ::-webkit-scrollbar-corner { background: var(--scrollbar-track); }
    }
  }
}

.page-scrollbar-thumb { display: none; }
@media (hover: hover) and (pointer: fine) and (forced-colors: none) {
  /* A floating page thumb removes the native viewport gutter as well as its track. */
  html.has-overlay-scrollbar { scrollbar-width: none; }
  html.has-overlay-scrollbar::-webkit-scrollbar { display: none; width: 0; height: 0; }
  .page-scrollbar-thumb {
    display: block;
    position: fixed;
    z-index: 100;
    top: 0;
    right: 0;
    width: 20px;
    border-radius: 10px;
    cursor: grab;
    touch-action: none;
    user-select: none;
  }
  /* Draw the 6px capsule separately from its larger, invisible drag target. */
  .page-scrollbar-thumb::before {
    content: '';
    position: absolute;
    inset: 2px 7px;
    border-radius: 3px;
    background: var(--scrollbar-thumb);
    pointer-events: none;
  }
  .page-scrollbar-thumb:hover::before { background-color: var(--scrollbar-thumb-hover); }
  .page-scrollbar-thumb:active { cursor: grabbing; }
  .page-scrollbar-thumb:active::before { background-color: var(--accent-dark); }
  .page-scrollbar-thumb:focus-visible { outline: 2px solid var(--accent-dark); outline-offset: -4px; }
}

body { font-weight:400; letter-spacing: .005em; }
h1,h2,h3 { font-weight:400; letter-spacing: -.025em; }
h2 { font-size:clamp(42px,4.2vw,66px); line-height:1.04; }
h3 { font-size:clamp(31px,2.8vw,43px); }
.eyebrow { font-size:10px; font-weight:500; letter-spacing:.21em; }
.button { font-size:12px; font-weight:500; letter-spacing:.035em; padding:15px 24px; min-height:52px; }
.text-link { font-weight:500; letter-spacing:.02em; }
/* Let longer headings and descriptions determine the height instead of clipping
   above the bottom-aligned content. These are minimum image heights only. */
.page-hero { height:auto; max-height:none; min-height:clamp(420px,56svh,610px); }
.page-hero--home { min-height:clamp(550px,76svh,820px); }
.page-hero--arrival { min-height:400px; }
.page-hero--compact { min-height:320px; }
@media(max-width:900px) {
  .page-hero { min-height:510px; }
  .page-hero--home { min-height:620px; }
  .page-hero--arrival { min-height:380px; }
  .page-hero--compact { min-height:300px; }
}
@media(max-width:650px) {
  .page-hero { min-height:490px; }
  .page-hero--home { min-height:max(510px,calc(100svh - 150px)); }
  .page-hero--arrival { min-height:380px; }
  .page-hero--compact { min-height:310px; }
}
.page-hero h1 { font-size:clamp(58px,6.6vw,106px); line-height:.98; }
.page-hero--compact h1 { font-size:clamp(48px,5.5vw,80px); }
.hero-description { font-size:15px; font-weight:400; }
.header-inner { width:min(1696px,calc(100% - 88px)); gap:28px; }
.brand { width:clamp(250px,22vw,328px); }
.site-nav ul { gap:23px; }
.site-nav a { font-family:var(--sans); font-size:12px; font-weight:500; letter-spacing:.015em; }
.header-book { min-height:46px; padding:12px 18px; font-size:12px; gap:16px; }
.site-header { transition:background-color .25s,border-color .25s,box-shadow .25s; }
.mobile-nav-book .button span { margin:0; color:inherit; font-size:inherit; }
.site-footer { background:var(--cream); }
.footer-links, .footer-contact>a { font-size:13px; }
.footer-heading { font-weight:500; }
.room-jump a { font-size:23px; }
.room-copy h2 { font-size:clamp(46px,4.8vw,70px); }
.room-copy>p { line-height:1.85; }
.room-card-content h3 { font-size:clamp(34px,3vw,46px); }
.facility-card h3 { font-size:30px; line-height:1.08; }
.contact-introduction h2 { font-size:clamp(46px,4.8vw,70px); }
.lightbox { color-scheme:light; } /* Preserve the requested light viewer. */

/* A true edge-to-edge opening. The header sits over the image, not above it. */
.home-page .site-header { position:fixed; inset:0 0 auto; background:transparent; border-color:rgba(255,255,255,.22); }
.home-page .header-inner { min-height:100px; }
.home-page .brand { width:306px; padding:0; background:transparent; border-radius:0; }
.home-page .site-nav ul a { color:var(--cream); }
.home-page .site-nav ul a::after { background:var(--cream); height:1px; }
.home-page .site-nav ul a[aria-current] { color:var(--cream); }
.home-page .header-book { border-radius:2px; }
.home-page .menu-toggle { color:var(--cream); border-color:rgba(255,255,255,.5); }
.home-page .site-header.is-scrolled, .home-page.menu-open .site-header {
  background:rgba(250,246,239,.98); border-color:var(--line); box-shadow:0 3px 16px rgba(52,44,37,.035);
}
.home-page .site-header.is-scrolled .site-nav ul a,
.home-page.menu-open .site-header .site-nav ul a { color:var(--ink); }
.home-page .site-header.is-scrolled .site-nav ul a::after,
.home-page.menu-open .site-header .site-nav ul a::after { background:var(--accent); }
.home-page .site-header.is-scrolled .menu-toggle,
.home-page.menu-open .site-header .menu-toggle { color:var(--ink); border-color:var(--line); }
.home-page .site-header.is-scrolled .brand,
.home-page.menu-open .site-header .brand { background:transparent; }
.immersive-hero { position:relative; isolation:isolate; min-height:100vh; min-height:100svh; color:var(--cream); background:#342C25; overflow:hidden; }
.immersive-photo,.immersive-shade { position:absolute; inset:0; z-index:-2; }
.immersive-photo picture { display:block; width:100%; height:100%; }
.immersive-photo img { width:100%; height:100%; max-width:none; object-fit:cover; object-position:50% 50%; }
.immersive-shade { z-index:-1; background:linear-gradient(180deg,rgba(19,20,18,.55) 0%,rgba(19,20,18,.04) 25%,rgba(22,21,18,.07) 40%,rgba(22,20,16,.52) 66%,rgba(22,20,16,.88) 100%),linear-gradient(90deg,rgba(26,22,17,.10),transparent 70%); }
.immersive-layout { width:min(1600px,calc(100% - 144px)); margin:auto; min-height:100vh; min-height:100svh; display:flex; flex-direction:column; justify-content:flex-end; padding-top:250px; padding-bottom:26px; }
.immersive-main { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(240px,.65fr); align-items:end; gap:6%; padding-bottom:52px; }
.immersive-copy { min-width:0; }
.immersive-eyebrow { color:var(--cream); display:flex; align-items:center; gap:18px; margin-bottom:25px; font-size:10px; letter-spacing:.22em; font-weight:500; }
.immersive-eyebrow::before { content:''; width:34px; height:1px; background:var(--cream); flex:none; }
.immersive-title { font-size:clamp(72px,7.5vw,132px); font-weight:400; line-height:.94; letter-spacing:-.032em; margin:0; white-space:normal!important; text-shadow:0 2px 30px rgba(0,0,0,.07); }
.immersive-title .title-line { display:block; }
.immersive-title .title-line+ .title-line { margin-top:5px; }
.immersive-title em { font-weight:400; color:#F1DFC1; }
.immersive-aside { padding-bottom:6px; max-width:360px; justify-self:end; }
.immersive-description { font-size:14px; line-height:1.9; font-weight:400; color:var(--cream); margin-bottom:20px; max-width:33ch; }
.immersive-explore { display:inline-flex; align-items:center; justify-content:space-between; gap:24px; font-size:12px; letter-spacing:.025em; min-height:48px; }
.round-arrow { width:42px; height:42px; border:1px solid rgba(250,246,239,.6); border-radius:50%; display:grid; place-items:center; transition:background .2s,color .2s; }
.round-arrow .icon { width:18px; height:18px; }
.immersive-explore:hover .round-arrow { background:var(--cream); color:var(--ink); }
.stay-dock { display:grid; grid-template-columns:1fr 1fr 250px; gap:0; padding:15px; border:1px solid rgba(250,246,239,.38); border-radius:3px; background:rgba(250,246,239,.12); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); }
.stay-dock-link { padding:5px 30px; display:flex; align-items:center; gap:30px; justify-content:space-between; position:relative; min-width:0; }
.stay-dock-link+.stay-dock-link { border-left:1px solid rgba(250,246,239,.3); margin-right:20px; }
.stay-dock-text { display:block; }
.dock-kicker { display:block; font-size:9px; line-height:1.5; font-weight:500; letter-spacing:.17em; text-transform:uppercase; margin-bottom:5px; }
.dock-title { display:block; font-family:var(--serif); font-size:29px; line-height:1.12; font-weight:400; }
.stay-dock-link>.icon { width:18px; height:18px; opacity:.88; transition:transform .2s; }
.stay-dock-link:hover>.icon { transform:translate(2px,-2px); }
.stay-dock-link:hover .dock-title { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:6px; }
.stay-dock-book { justify-content:space-between; padding:19px 25px; gap:18px; border-radius:2px; font-size:13px; white-space:normal; min-height:64px; }
.stay-dock-book .icon { width:20px; height:20px; }
.hero-footline { display:flex; justify-content:space-between; align-items:center; padding-top:15px; gap:24px; }
.hero-scroll { display:inline-flex; gap:12px; align-items:center; min-height:34px; font-size:9px; font-weight:500; letter-spacing:.17em; text-transform:uppercase; }
.hero-scroll .icon { width:18px; height:18px; }
.hero-photo-caption { font-size:10px; font-weight:400; letter-spacing:.08em; }
.immersive-hero a:focus-visible { outline-color:var(--cream); outline-offset:5px; }

/* Calm, more editorial rhythm below the fold. */
.home-page .container { width:min(1360px,calc(100% - 144px)); }
.home-page .section { padding-block:116px; }
.home-highlights { padding:24px 0; }
.home-highlights .container { justify-content:space-around; }
.home-highlights span { font-size:10px; letter-spacing:.12em; }
.home-highlights span+span::before { content:none; }
.home-page .welcome-grid { gap:9%; grid-template-columns:1.05fr 1fr; }
.home-page .welcome-main { height:530px; }
.home-page .welcome-detail { height:275px; border-width:10px; width:40%; }
.home-page .welcome-images { padding-bottom:55px; }
.home-page .editorial-heading { font-size:clamp(45px,4.55vw,73px); line-height:1.04; margin-bottom:30px; }
.editorial-heading em { font-weight:400; color:var(--muted); }
.home-page .editorial-copy>p:not(.eyebrow) { font-size:14px; line-height:1.95; max-width:41ch; }
.home-stays { background:#F0E8DA; }
.home-stays .section-heading { margin-bottom:48px; }
.home-stays .room-cards { gap:34px; }
.home-stays .card-photo { aspect-ratio:1/1.02; }
.home-stays .room-card-content { padding:27px 0 0; }
.home-stays .room-card-content h3 { font-size:40px; margin-bottom:10px; }
.home-stays .photo-badge { font-size:10px; padding:8px 12px; left:16px; bottom:16px; }
.room-card-meta { display:flex; gap:0; margin-bottom:22px; font-size:11px; color:var(--muted); letter-spacing:.035em; }
.room-card-meta span+span:not([hidden]) { border-left:1px solid var(--line); padding-left:13px; margin-left:13px; }
.home-stays .room-card-content .text-link { justify-content:space-between; width:100%; padding-bottom:15px; border-color:var(--line); }
.home-stays .room-card-content .text-link:hover { border-color:var(--accent); }
.home-page #facilities { border-bottom:1px solid var(--line); }
.home-page .facility-grid { row-gap:40px; }
.home-page .experience-intro { gap:7%; grid-template-columns:1fr 1.75fr; }
.home-page .experience-intro h2 { font-size:clamp(44px,4.6vw,70px); }
.home-page .experience-pair figure:first-child img { height:455px; }
.home-page .experience-pair figure:last-child img { height:335px; }
.home-page .stay-banner { min-height:520px; }
.home-page .stay-banner h2 { font-size:clamp(52px,5.5vw,86px); line-height:1.02; }
.home-page .footer-main { padding-top:80px; padding-bottom:65px; }
/* System fallback mode is slightly narrower to accommodate wider native serifs. */
html.native-fonts .immersive-title { font-size:clamp(68px,7vw,122px); }

@media(min-width:1700px) {
  .immersive-main { padding-bottom:68px; }
  .immersive-layout { padding-bottom:35px; }
  .immersive-description { font-size:16px; }
  .home-page .header-inner { min-height:112px; }
  .header-inner { gap:42px; }
  .site-nav a { font-size:13px; }
  .site-nav ul { gap:29px; }
}
@media(min-width:1101px) and (max-width:1240px) {
  .header-inner { width:calc(100% - 60px); gap:20px; }
  .brand,.home-page .brand { width:265px; }
  .site-nav ul { gap:17px; }
  .site-nav a { font-size:11px; }
  .immersive-layout,.home-page .container { width:calc(100% - 96px); }
}
@media(max-width:1100px) {
  .header-inner { width:calc(100% - 56px); }
  .home-page .header-inner { min-height:90px; }
  .home-page .brand { width:290px; }
  .home-page .site-nav.is-open ul a { color:var(--ink); }
  .js .site-nav ul a { font-size:32px; }
  .home-page .site-nav { max-height:calc(100svh - 90px); }
  .immersive-layout,.home-page .container { width:calc(100% - 88px); }
  .immersive-layout { padding-top:260px; padding-bottom:24px; }
  .immersive-main { grid-template-columns:minmax(0,1.6fr) minmax(220px,.65fr); gap:5%; padding-bottom:38px; }
  .immersive-title { font-size:clamp(66px,8vw,88px); }
  .immersive-description { font-size:13px; }
  .immersive-eyebrow { font-size:9px; letter-spacing:.16em; gap:12px; }
  .stay-dock { grid-template-columns:1fr 1fr 210px; padding:12px; }
  .stay-dock-link { padding-inline:18px; gap:20px; }
  .dock-kicker { font-size:8px; letter-spacing:.1em; }
  .dock-title { font-size:25px; }
  .stay-dock-book { font-size:12px; padding-inline:19px; }
  .home-page .section { padding-block:85px; }
  .home-page .welcome-main { height:420px; }
  .home-page .welcome-detail { height:225px; border-width:7px; }
  .home-page .welcome-images { padding-bottom:42px; }
  .home-page .editorial-heading { font-size:52px; }
  .home-stays .room-cards { gap:24px; }
  .home-stays .room-card-content h3 { font-size:34px; }
  .home-page .experience-intro { grid-template-columns:1fr; gap:40px; }
}
@media(max-width:800px) {
  .immersive-main { grid-template-columns:1fr; gap:25px; }
  .immersive-aside { justify-self:start; max-width:440px; padding:0; }
  .immersive-description { max-width:42ch; margin-bottom:14px; line-height:1.8; }
  .immersive-explore { min-height:38px; }
  .round-arrow { width:36px; height:36px; }
  .immersive-title { font-size:clamp(64px,10vw,88px); }
  .immersive-eyebrow { margin-bottom:19px; }
  .stay-dock { grid-template-columns:1fr 1fr 190px; padding:12px; }
  .stay-dock-link { padding-inline:13px; gap:12px; }
  .stay-dock-link+.stay-dock-link { margin-right:10px; }
  .dock-title { font-size:23px; }
  .dock-kicker { font-size:8px; letter-spacing:.035em; }
  .home-page .container { width:calc(100% - 56px); }
  .home-page .welcome-grid { gap:40px; }
  .home-page .editorial-heading { font-size:45px; }
  .home-page .welcome-main { height:385px; }
  .home-page .welcome-detail { height:220px; }
  .home-page .room-card-meta { font-size:10px; }
  .home-page .room-card-content h3 { font-size:32px; }
  .home-page .stay-banner { min-height:440px; }
}
@media(max-width:650px) {
  :root { --header:80px; }
  .header-inner { width:calc(100% - 32px); gap:12px; }
  .brand { width:clamp(215px,65vw,280px); }
  .home-page .header-inner { min-height:82px; }
  .home-page .brand { width:clamp(223px,66vw,282px); padding:0; }
  .home-page .menu-toggle { background:rgba(52,44,37,.12); }
  .home-page .site-header.is-scrolled .menu-toggle, .home-page.menu-open .site-header .menu-toggle { background:transparent; }
  .home-page .site-nav { max-height:calc(100svh - 82px); }
  .js .site-nav ul a { font-size:29px; }
  .page-hero h1 { font-size:54px; }
  .page-hero--compact h1 { font-size:48px; }
  h2 { font-size:44px; }
  .section-heading h2 { font-size:43px; }
  .room-copy h2 { font-size:49px; }
  .room-jump a { font-size:22px; }
  .facility-card h3 { font-size:28px; }
  .immersive-layout { width:calc(100% - 44px); min-height:100svh; padding-top:max(220px,28svh); padding-bottom:17px; }

  .immersive-shade { background:linear-gradient(180deg,rgba(20,18,15,.34),rgba(20,18,15,.03) 25%,rgba(20,18,15,.27) 39%,rgba(20,18,15,.7) 67%,rgba(20,18,15,.91)); }
  .immersive-main { display:block; padding-bottom:27px; }
  .immersive-eyebrow { font-size:8px; letter-spacing:.13em; gap:10px; margin-bottom:16px; line-height:1.6; }
  .immersive-eyebrow::before { width:20px; }
  .immersive-title,html.native-fonts .immersive-title { font-size:clamp(49px,13.5vw,80px); letter-spacing:-.035em; line-height:.96; }
  .immersive-title .title-line+.title-line { margin-top:4px; }
  .immersive-aside { margin-top:21px; }
  .immersive-description { font-size:12px; line-height:1.8; max-width:37ch; margin-bottom:0; }
  .immersive-explore { display:none; } /* The scroll link and gallery tile retain these actions. */
  .stay-dock { padding:12px; grid-template-columns:1fr 1fr; gap:14px 0; background:rgba(250,246,239,.13); }
  .stay-dock-link { padding:2px 9px; gap:10px; }
  .stay-dock-link+.stay-dock-link { margin:0; padding-left:17px; }
  .stay-dock-link>.icon { width:14px; height:14px; }
  .dock-kicker { font-size:7px; letter-spacing:.075em; margin-bottom:5px; }
  .dock-title { font-size:23px; }
  .stay-dock-book { grid-column:1/-1; min-height:48px; padding:12px 17px; font-size:12px; }
  .hero-footline { padding-top:10px; gap:12px; }
  .hero-scroll { min-height:30px; font-size:8px; letter-spacing:.11em; gap:8px; }
  .hero-scroll .icon { width:16px; height:16px; }
  .hero-photo-caption { font-size:8px; letter-spacing:.01em; }
  .js .home-page:not(.past-hero) .mobile-booking { visibility:hidden; }
  .home-page .container { width:calc(100% - 44px); }
  .home-page .section { padding-block:66px; }
  .home-highlights { padding:20px 0; }
  .home-highlights .container { gap:12px; }
  .home-highlights span { font-size:9px; letter-spacing:.07em; }
  .home-highlights span:last-child { display:block; }
  .home-page .welcome-grid { grid-template-columns:1fr; gap:35px; }
  .home-page .welcome-main { height:390px; }
  .home-page .welcome-detail { height:230px; }
  .home-page .welcome-images { padding-bottom:38px; }
  .home-page .editorial-heading { font-size:46px; margin-bottom:25px; }
  .home-page .editorial-copy>p:not(.eyebrow) { max-width:none; font-size:14px; }
  .home-stays .section-heading { margin-bottom:35px; }
  .home-stays .room-cards { gap:40px; }
  .home-stays .card-photo { aspect-ratio:1.06; }
  .home-stays .room-card-content h3 { font-size:40px; }
  .home-stays .room-card-content { padding-top:23px; }
  .home-page .room-card-meta { font-size:11px; margin-bottom:18px; }
  .home-page .experience-intro { gap:35px; }
  .home-page .experience-intro h2 { font-size:46px; }
  .home-page .experience-pair figure:first-child img { height:315px; }
  .home-page .experience-pair figure:last-child img { height:240px; }
  .home-page .stay-banner h2 { font-size:54px; }
  .home-page .footer-main { padding-top:60px; padding-bottom:38px; }
}
@media(max-width:359px) {
  .home-page .brand { width:218px; padding:0; }
  .home-page .header-inner { width:calc(100% - 24px); gap:8px; }
  .immersive-layout { width:calc(100% - 36px); padding-top:210px; }
  .immersive-eyebrow { font-size:7px; letter-spacing:.11em; }
  .immersive-title,html.native-fonts .immersive-title { font-size:46px; }
  .immersive-aside { margin-top:18px; }
  .immersive-description { font-size:11px; }
  .dock-title { font-size:21px; }
  .dock-kicker { font-size:6.5px; }
  .stay-dock { padding:10px; }
  .stay-dock-link { padding-left:4px; }
  .stay-dock-link+.stay-dock-link { padding-left:12px; }
  .hero-photo-caption { display:none; }
}
@media(max-height:700px) and (min-width:801px) {
  .immersive-layout { padding-top:180px; padding-bottom:14px; }
  .immersive-main { padding-bottom:26px; }
  .immersive-title { font-size:clamp(65px,7vw,105px); }
  .immersive-eyebrow { margin-bottom:17px; }
  .hero-footline { padding-top:8px; }
  .immersive-description { font-size:13px; }
}
@media(prefers-reduced-motion:reduce) {
  .site-header,.round-arrow,.stay-dock-link>.icon { transition:none; }
}
@media print {
  .immersive-hero { min-height:0!important; }
  .immersive-layout { min-height:0!important; padding-block:80px 35px; }
  .immersive-title { font-size:54px; }
  .stay-dock,.hero-footline { display:none; }
}

@media(max-width:650px) {
  .stay-dock-link>.icon { display:none; }
  .stay-dock-link { padding-inline:8px; }
  .stay-dock-link+.stay-dock-link { padding-left:15px; padding-right:4px; }
  .dock-title { font-size:22px; }
}
@media(max-width:359px) { .dock-title { font-size:20px; } }
@media(max-width:650px) {
  .immersive-title, html.native-fonts .immersive-title { font-size:clamp(39px,12vw,72px); }
}
@media(max-width:359px) {
  .immersive-title, html.native-fonts .immersive-title { font-size:39px; }
}

/* Keep the owner's original orange mark at all times. Only the lettering
   receives a white overlay, using the very same artwork, not a new wordmark.
   The clear gap between mark and lettering lies at 42% of the image width. */
.home-page .site-header .brand { position:relative; }
.home-page .site-header .brand > .brand-artwork { filter:none; }
.home-page .brand-lettering {
  position:absolute; inset:0; pointer-events:none;
  clip-path:inset(0 0 0 42%); opacity:1; transition:opacity .22s ease;
}
.home-page .brand-lettering img { width:100%; height:auto; filter:brightness(0) invert(1); }
.home-page .site-header.is-scrolled .brand-lettering,
.home-page.menu-open .site-header .brand-lettering { opacity:0; }
@media(prefers-reduced-motion:reduce) { .home-page .brand-lettering { transition:none; } }
html.native-fonts {
  --serif:'Didot','Bodoni 72','Bodoni MT','GFS Didot','Baskerville','Iowan Old Style','Palatino Linotype','EB Garamond',Georgia,serif;
  --sans:'Avenir Next','Inter','Segoe UI',Arial,sans-serif;
}
/* Let the portrait image keep its central arch and vertical courtyard axis.
   Wide/landscape displays retain the unchanged desktop image. */
@media (max-width:800px) and (orientation:portrait) {
  .immersive-photo .home-hero-picture img { object-position:var(--home-hero-mobile-position,50% 48%); }
  .immersive-shade {
    background:linear-gradient(180deg,rgba(26,22,17,.6) 0%,rgba(26,22,17,.12) 17%,rgba(26,22,17,.05) 33%,rgba(26,22,17,.30) 48%,rgba(26,22,17,.73) 72%,rgba(26,22,17,.91) 100%);
  }
}
@media (prefers-reduced-motion:reduce) { .brand img { transition:none; } }

body, button, input, select, textarea { font-family:var(--sans); }


/* Larger, clearer opening text that emphasises the lakeside setting. */
.immersive-aside { max-width: 420px; }
.immersive-description { font-size:18px; line-height:1.65; max-width:24ch; text-wrap:balance; text-shadow:0 2px 18px rgba(0,0,0,.16); }
@media(max-width:1100px){ .immersive-description { font-size:16px; max-width:28ch; } }
@media(max-width:650px){ .immersive-description { font-size:15px; line-height:1.7; max-width:28ch; } }

/* Meet the owner */
.owner-feature { background:linear-gradient(180deg, rgba(232,220,200,.36), rgba(250,246,239,0) 28%), var(--cream); }
.owner-grid { display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); gap:48px; align-items:center; }
.owner-copy > p:not(.eyebrow) { font-size:15px; line-height:1.95; max-width:52ch; }
.owner-copy h2 { margin-bottom:20px; }
.owner-actions { display:flex; flex-wrap:wrap; gap:20px 28px; align-items:center; margin-top:28px; }
.owner-social-wrap { display:flex; flex-direction:column; gap:12px; }
.owner-social-label { font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
.owner-gallery { display:grid; grid-template-columns:1.15fr .85fr; gap:20px; align-items:end; }
.owner-photo { margin:0; overflow:hidden; border-radius:3px; background:#E8DCC8; }
.owner-photo img { display:block; width:100%; height:100%; object-fit:cover; }
.owner-photo--portrait { aspect-ratio:0.8; }
.owner-photo--landscape { aspect-ratio:0.72; transform:translateY(36px); box-shadow:0 18px 40px rgba(52,44,37,.08); }
@media(max-width:900px){ .owner-grid { grid-template-columns:1fr; gap:34px; } .owner-gallery { order:-1; grid-template-columns:1fr 1fr; } .owner-photo--landscape { transform:none; } }
@media(max-width:650px){ .owner-copy > p:not(.eyebrow) { font-size:14px; line-height:1.85; } .owner-actions { align-items:flex-start; } .owner-gallery { gap:14px; } }

/* Social links */
.footer-social { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.social-link { display:inline-flex; align-items:center; gap:10px; min-height:38px; padding:9px 13px; border:1px solid var(--line); border-radius:999px; color:var(--ink); background:rgba(255,255,255,.45); font-size:12px; letter-spacing:.02em; transition:border-color .2s, transform .2s, background .2s; }
.social-link:hover { border-color:var(--accent); background:#fff; transform:translateY(-1px); }
.social-icon { display:grid; place-items:center; width:18px; height:18px; }
.social-icon svg { width:18px; height:18px; }
.owner-social .social-link { background:transparent; }
@media(prefers-reduced-motion:reduce){ .social-link { transition:none; } }


/* Hot spring: an editorial lakeside feature, directly before Meet the owner. */
.spring-feature { background:#F1E9DC; border-block:1px solid var(--line); }
.spring-grid { display:grid; grid-template-columns:minmax(0,1.18fr) minmax(0,1fr); gap:clamp(32px,5.4vw,84px); align-items:center; }
.spring-image-wrap { aspect-ratio:4/4.15; overflow:hidden; background:var(--sand); }
.spring-image-wrap img { width:100%; height:100%; object-fit:cover; }
.spring-photograph figcaption { margin-top:14px; font-size:11px; line-height:1.6; color:var(--muted); letter-spacing:.035em; }
.home-page .spring-copy .editorial-heading { font-size:clamp(42px,4.25vw,66px); line-height:1.04; margin-bottom:26px; }
.spring-copy>p:not(.eyebrow) { font-size:15px; line-height:1.9; max-width:46ch; color:var(--muted); }
.spring-copy>p.spring-introduction { color:var(--ink); }
.spring-copy>p.spring-closing { font-family:var(--serif); font-size:25px; line-height:1.35; color:var(--ink); margin-top:25px; margin-bottom:18px; }
.spring-source { display:inline-flex; align-items:center; gap:16px; padding-block:8px; font-size:11px; color:var(--muted); text-decoration:underline; text-underline-offset:4px; }
.spring-source:hover { color:var(--accent-dark); }
.owner-heading { white-space:normal; }
@media(max-width:900px) {
  .spring-grid { grid-template-columns:1fr; gap:35px; }
  .spring-image-wrap { aspect-ratio:4/3; }
  .spring-copy>p:not(.eyebrow) { max-width:62ch; }
  .home-page .spring-copy .editorial-heading { font-size:clamp(40px,6.4vw,60px); }
}
@media(max-width:650px) {
  .spring-grid { gap:28px; }
  .spring-copy>p:not(.eyebrow) { font-size:14px; line-height:1.85; }
  .spring-copy>p.spring-closing { font-size:24px; line-height:1.35; }
  .home-page .spring-copy .editorial-heading { font-size:42px; }
}

/* Stronger homepage room-card hover without moving the layout. */
.home-stays .card-photo img { transition:transform .7s cubic-bezier(.22,.61,.36,1); }
@media(hover:hover) and (pointer:fine) {
  .home-stays .card-photo:hover img { transform:scale(var(--home-room-hover-scale,1.1)); }
}
.home-stays .card-photo:focus-visible img { transform:scale(var(--home-room-hover-scale,1.1)); }
@media(prefers-reduced-motion:reduce) {
  .home-stays .card-photo img { transition:none; }
  .home-stays .card-photo:hover img,.home-stays .card-photo:focus-visible img { transform:none; }
}

/* Icon-only social shortcuts in the header, with accessible platform labels. */
.header-social { display:flex; align-items:center; gap:2px; flex:none; }
.header-social-link { display:inline-flex; align-items:center; justify-content:center; width:40px; height:44px; padding:0; color:var(--ink); background:transparent; border:0; border-radius:50%; transition:color .2s,background-color .2s; }
.header-social-link .social-icon,.header-social-link .social-icon svg { width:20px; height:20px; }
.header-social-link:hover { color:var(--accent-dark); background:rgba(206,72,6,.08); }
.home-page .site-header:not(.is-scrolled) .header-social-link { color:var(--cream); }
.home-page .site-header:not(.is-scrolled) .header-social-link:hover { background:rgba(250,246,239,.14); }
.home-page.menu-open .site-header .header-social-link { color:var(--ink); }
.home-page .site-header:not(.is-scrolled) .header-social-link:focus-visible { outline-color:var(--cream); }
.home-page.menu-open .site-header .header-social-link:focus-visible { outline-color:var(--accent); }
.header-inner { gap:22px; }
@media(min-width:1101px) and (max-width:1399px) {
  .header-inner { gap:16px; width:calc(100% - 60px); }
  .brand,.home-page .brand { width:248px; }
  .site-nav ul { gap:16px; }
  .site-nav a { font-size:11px; }
  .header-book { padding-inline:14px; gap:10px; }
}
@media(max-width:1100px) {
  .header-social { margin-left:auto; }
  .header-inner { gap:14px; }
  .header-book { margin-left:0; }
}
@media(max-width:650px) {
  .header-inner,.home-page .header-inner { gap:6px; width:calc(100% - 24px); }
  .brand,.home-page .brand { width:clamp(156px,50vw,260px); }
  .header-social { gap:0; }
  .header-social-link { width:40px; height:42px; }
  .header-social-link .social-icon,.header-social-link .social-icon svg { width:18px; height:18px; }
  .menu-toggle { width:40px; height:42px; flex:none; }
}
@media(prefers-reduced-motion:reduce) { .header-social-link { transition:none; } }

/* Nine facilities form an even three-column grid on larger screens. */
@media(min-width:1101px) { .home-page #facilities .facility-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }


/* Lakeshore opening — supporting copy belongs below the heading at every size. */
.immersive-hero--stacked .immersive-main {
  display:block; padding-bottom:34px;
}
.immersive-hero--stacked .immersive-copy { width:100%; }
.immersive-hero--stacked .immersive-aside {
  display:flex; align-items:center; justify-content:space-between; gap:26px;
  margin-top:24px; padding:0; width:100%; max-width:none;
}
.immersive-hero--stacked .immersive-description {
  font-family:var(--sans); font-size:clamp(22px,1.9vw,30px);
  font-weight:400; line-height:1.55; max-width:51ch; margin:0;
  letter-spacing:0; text-wrap:pretty;
}
.immersive-hero--stacked .immersive-explore { flex-shrink:0; white-space:nowrap; }
@media(max-width:1100px) {
  .immersive-hero--stacked .immersive-description { font-size:22px; max-width:45ch; }
  .immersive-hero--stacked .immersive-aside { align-items:flex-start; gap:20px; }
  .immersive-hero--stacked .immersive-explore { margin-top:4px; }
}
@media(max-width:800px) {
  .immersive-hero--stacked .immersive-aside { display:block; margin-top:22px; }
  .immersive-hero--stacked .immersive-description { font-size:21px; max-width:45ch; }
  .immersive-hero--stacked .immersive-explore { display:none; }
}
@media(max-width:650px) {
  .immersive-hero--stacked .immersive-main { padding-bottom:25px; }
  .immersive-hero--stacked .immersive-description { font-size:19px; line-height:1.55; max-width:32ch; }
  .immersive-hero--stacked .immersive-aside { margin-top:21px; }
}
@media(max-width:359px) {
  .immersive-hero--stacked .immersive-description { font-size:18px; }
}
@media(max-height:700px) and (min-width:801px) {
  .immersive-hero--stacked .immersive-main { padding-bottom:23px; }
  .immersive-hero--stacked .immersive-aside { margin-top:18px; }
  .immersive-hero--stacked .immersive-description { font-size:22px; }
}
/* Landscape activity photographs retain the pool edges and the safari vehicles. */
.home-page .experience-pair--activities figure:first-child img { height:auto; aspect-ratio:4/5; }
.home-page .experience-pair--activities figure:last-child img { height:auto; aspect-ratio:1; }
.experience-pair--activities figure > a { display:block; }
.home-activities-credits { display:block; width:fit-content; margin-top:18px; font-size:10px; color:var(--muted); text-decoration:underline; text-underline-offset:3px; }
.owner-gallery .owner-photo img { image-orientation:from-image; }
@media(max-width:600px) {
  .home-page .experience-pair--activities { grid-template-columns:1fr; gap:24px; }
  .home-page .experience-pair--activities figure:last-child { margin-top:0; }
  .home-page .experience-pair--activities figure:last-child img { aspect-ratio:4/3; }
}

/* Retain the complete composition of the newly supplied root-level photographs. */
.gallery-grid .gallery-item.gallery-item--original-ratio img { aspect-ratio:auto; height:auto; }

/* The supplied olive branch marks our practical care for the oasis. */
.immersive-layout { position:relative; }
.hero-eco-note { position:absolute; top:132px; right:0; display:inline-flex; align-items:center; gap:9px; max-width:100%; margin:0; padding:0; background:transparent; color:var(--eco-green); font-size:11px; font-weight:500; line-height:1.4; letter-spacing:.02em; text-shadow:0 1px 4px rgba(0,0,0,.35); }
.hero-eco-note > img { flex:0 0 24px; width:24px; height:24px; }
@media(min-width:1700px) { .hero-eco-note { top:144px; } }
@media(max-width:1100px) { .hero-eco-note { top:114px; } }
@media(max-width:650px) { .hero-eco-note { top:104px; gap:7px; font-size:10px; } }
@media print { .hero-eco-note { position:static; margin-bottom:20px; } }
.eco-note { display:flex; gap:18px; align-items:flex-start; border-top:1px solid var(--line); margin-top:28px; padding-top:24px; }
.eco-note > img { flex:0 0 48px; width:48px; height:48px; }
.eco-note .eyebrow { color:var(--eco-green); margin-bottom:10px; }
.eco-note p:last-child { font-size:16px; line-height:1.75; margin-bottom:0; }
