:root{
  --green:#0F6737;
  --bronze:#816D48;
  --cream:#FDEFCF;
  --ink:#172019;
  --soft:#F7F2E7;
  --white:#fffdf8;
  --line:rgba(23,32,25,.16);
  --font:"Bahnschrift","Arial Narrow","Segoe UI",Arial,sans-serif;
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{position:relative;margin:0;font-family:var(--font);color:var(--ink);background:var(--white);letter-spacing:.01em} a{color:inherit;text-decoration:none} img{display:block;max-width:100%}
.site-header{height:92px;position:fixed;z-index:30;left:0;right:0;top:0;display:grid;grid-template-columns:220px 1fr auto auto;align-items:center;gap:32px;padding:0 4.5vw;color:white;border-bottom:1px solid rgba(255,255,255,.28);transform:translateZ(0);-webkit-transform:translateZ(0);will-change:transform;transition:height .28s ease, background-color .28s ease, backdrop-filter .28s ease, box-shadow .28s ease, padding .28s ease}.site-header.scrolled{height:68px;background:rgba(11,47,28,.84);backdrop-filter:blur(14px);box-shadow:0 10px 32px rgba(0,0,0,.14)}
.brand img{width:205px;filter:brightness(0) invert(1);transition:width .28s ease} .site-header.scrolled .brand img{width:178px}.main-nav{display:flex;justify-content:center;gap:32px;font-size:13px;text-transform:uppercase;letter-spacing:.15em}.main-nav a{opacity:.9}.main-nav a:hover{opacity:1}.lang-switch{display:flex;align-items:center;gap:7px;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.6);white-space:nowrap}.lang-switch a{color:rgba(255,255,255,.72);padding:8px 2px}.lang-switch a:hover,.lang-switch a.active{color:white}.lang-switch a.active{border-bottom:1px solid rgba(255,255,255,.9)}.lang-switch span{opacity:.45}.header-cta{border:1px solid rgba(255,255,255,.7);padding:14px 18px;text-transform:uppercase;font-size:12px;letter-spacing:.12em;border-radius:999px;transition:padding .28s ease, font-size .28s ease}.site-header.scrolled .header-cta{padding:10px 16px;font-size:11px}.menu-toggle{display:none}
.hero{height:min(900px,92vh);min-height:680px;position:relative;color:white;overflow:hidden}.hero-media{position:absolute;inset:0}.hero-video{width:100%;height:100%;object-fit:cover}.hero-video-start{display:none;position:absolute;z-index:3;left:50%;top:50%;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.75);background:rgba(11,47,28,.74);color:white;border-radius:999px;padding:15px 22px;font:inherit;font-size:11px;letter-spacing:.13em;text-transform:uppercase;cursor:pointer;backdrop-filter:blur(10px)}.hero-video-start.show{display:block}.hero-video-badge{position:absolute;right:22px;bottom:22px;background:rgba(253,239,207,.18);color:rgba(255,255,255,.9);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(10px);padding:9px 14px;border-radius:999px;font-size:10px;letter-spacing:.12em;text-transform:uppercase}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,25,15,.58) 0%,rgba(8,25,15,.18) 52%,rgba(8,25,15,.28) 100%),linear-gradient(0deg,rgba(0,0,0,.26),transparent 45%)}
.media-placeholder{background:linear-gradient(135deg,#9c8e6f 0%,#6e7f68 45%,#315c42 100%);position:relative;overflow:hidden}.media-placeholder:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,transparent 0 34px,rgba(255,255,255,.035) 35px 36px)}.media-placeholder.has-photo:after{background:linear-gradient(180deg,rgba(0,0,0,.02),rgba(0,0,0,.12))}.photo-fill{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;transition:transform .9s ease}.media-placeholder>span,.placeholder-copy{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;color:rgba(255,255,255,.82);font-size:12px;text-transform:uppercase;letter-spacing:.16em;width:80%}.placeholder-copy{display:grid;gap:10px}.placeholder-copy strong{font-size:18px;letter-spacing:.04em;text-transform:none;font-weight:400}.placeholder-copy small{font-size:10px;opacity:.75}
.hero-content{position:absolute;z-index:3;left:7vw;bottom:16%;max-width:760px}.kicker,.eyebrow{text-transform:uppercase;font-size:12px;letter-spacing:.19em;margin:0 0 22px}.hero h1{font-size:clamp(64px,8vw,126px);line-height:.82;letter-spacing:-.045em;margin:0;font-weight:300}.hero h1 em,.intro h2 em{font-style:normal;color:var(--cream)}.hero-lede{max-width:560px;font-size:20px;line-height:1.5;margin:34px 0 0;font-weight:300}.scroll-cue{position:absolute;z-index:3;right:4.5vw;bottom:46px;display:flex;align-items:center;gap:12px;font-size:11px;text-transform:uppercase;letter-spacing:.15em}.scroll-cue i{display:block;width:54px;height:1px;background:white}
.booking-shell{position:relative;z-index:8;margin-top:-40px;padding:0 5vw}.booking-bar{max-width:1080px;margin:auto;background:var(--cream);box-shadow:0 18px 44px rgba(17,38,24,.15);border:1px solid rgba(129,109,72,.14);display:grid;grid-template-columns:1fr 1fr .8fr auto;align-items:stretch;border-radius:26px;overflow:hidden;transition:max-width .25s ease,border-radius .25s ease,box-shadow .25s ease,transform .25s ease}.booking-bar label{padding:18px 22px;border-right:1px solid rgba(129,109,72,.26);transition:padding .25s ease}.booking-bar label span{display:block;color:var(--bronze);text-transform:uppercase;font-size:10px;letter-spacing:.15em;margin-bottom:8px}.booking-bar input,.booking-bar select{font:inherit;border:0;background:transparent;width:100%;font-size:15px;color:var(--ink);outline:none}.booking-bar button{border:0;border-left:1px solid rgba(253,238,207,.22);background:linear-gradient(180deg,#15703c 0%,#0f6737 100%);color:white;padding:0 28px;font:inherit;text-transform:uppercase;letter-spacing:.13em;font-size:11px;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(255,255,255,.05),0 10px 24px rgba(11,47,28,.14);position:relative;z-index:1}.booking-bar button:hover,.booking-bar button:focus-visible{background:linear-gradient(180deg,#1a7a42 0%,#126e3b 100%);outline:none}.booking-bar button:focus-visible{box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 0 0 3px rgba(253,238,207,.38),0 10px 24px rgba(11,47,28,.14)}
.section-pad{padding:120px 7vw}.compact{padding-top:92px;padding-bottom:55px}.intro{display:block;background:var(--white);padding-top:110px;padding-bottom:110px}.intro-inner{max-width:1220px;margin:0 auto;display:grid;grid-template-columns:250px minmax(0,1fr);gap:48px;align-items:center}.intro-logo-wrap{display:flex;justify-content:center;align-items:center}.intro-logo{width:min(280px,100%);height:auto;opacity:1}.intro-copy{max-width:980px}.bronze{color:var(--bronze)}.cream{color:var(--cream)}.intro h2,.section-heading h2,.gallery h2,.explore h2,.shop-heading h2{font-size:clamp(42px,5vw,76px);line-height:.98;font-weight:300;letter-spacing:-.03em;margin:0 0 30px}.intro p:not(.eyebrow){font-size:18px;line-height:1.75;max-width:760px;color:#445047}.text-link{display:inline-flex;gap:18px;align-items:center;border-bottom:1px solid var(--bronze);padding-bottom:7px;margin-top:25px;text-transform:uppercase;font-size:11px;letter-spacing:.14em;color:var(--bronze)}
.stay-section{background:#f5f0e5}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:50px}.section-heading>p{max-width:500px;line-height:1.65;color:#566057}.cabins-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;min-height:600px;gap:18px;padding:0 7vw 24px}.cabin-card{position:relative;min-height:600px;overflow:hidden;border-radius:28px;box-shadow:0 12px 28px rgba(17,38,24,.08)}.cabin-card .media-placeholder{position:absolute;inset:0;transition:transform .7s ease}.cabin-card:hover .media-placeholder{transform:none}.cabin-card:hover .photo-fill{transform:none}.cabin-overlay{position:absolute;z-index:3;inset:auto 14px 14px 14px;padding:28px;color:white;display:flex;justify-content:space-between;align-items:end;background:linear-gradient(0deg,rgba(8,25,15,.72),transparent);border-radius:22px}.cabin-overlay p{font-size:10px;letter-spacing:.14em;text-transform:uppercase;margin:0 0 8px}.cabin-overlay h3{font-size:34px;font-weight:300;margin:0}.cabin-overlay a,.cabin-overlay-label{font-size:10px;text-transform:uppercase;letter-spacing:.13em;border-bottom:1px solid white;padding-bottom:5px}
.cabin-overlay-label{opacity:.75;cursor:default}
.feature-split{display:grid;grid-template-columns:1.15fr .85fr;min-height:760px;margin:30px 7vw 0;border-radius:32px;overflow:hidden}.feature-copy{background:var(--green);color:white;padding:110px 7vw;display:flex;flex-direction:column;justify-content:center}.feature-copy h2{font-size:clamp(46px,5.4vw,82px);line-height:.95;letter-spacing:-.035em;font-weight:300;margin:0 0 34px}.feature-copy>p:not(.eyebrow){font-size:18px;line-height:1.7;color:rgba(255,255,255,.82);max-width:570px}.feature-list{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:35px 0 42px;border-top:1px solid rgba(255,255,255,.28)}.feature-list span{padding:16px 0;border-bottom:1px solid rgba(255,255,255,.2);font-size:12px;text-transform:uppercase;letter-spacing:.11em}.button-light{display:inline-block;border:1px solid rgba(255,255,255,.7);padding:15px 20px;text-transform:uppercase;font-size:11px;letter-spacing:.13em;width:max-content}.button-light.filled{background:var(--cream);color:var(--green);border-color:var(--cream)}
.gallery{background:var(--white)}.gallery-heading{display:flex;justify-content:space-between;align-items:end}.gallery-heading h2{margin-bottom:50px}.gallery-grid{height:720px;display:grid;grid-template-columns:1.5fr .8fr 1.1fr;grid-template-rows:1fr 1fr;gap:14px}.gallery-grid .media-placeholder{border-radius:26px}.gallery-grid .photo-fill,.closing-media .photo-fill,.feature-media .photo-fill{transform:none}.g1{grid-row:1/3}.g4{grid-column:2/3}.g5{grid-column:3/4}.gallery .text-link{float:right}
.dine-section{display:grid;grid-template-columns:.9fr 1.1fr;min-height:760px;background:#2d362e;margin:0 7vw;border-radius:32px;overflow:hidden}.dine-copy{background:var(--bronze);color:white;display:flex;flex-direction:column;justify-content:center}.dine-media{min-height:650px}
.explore-copy{display:grid;grid-template-columns:1.2fr 1fr;column-gap:7vw;align-items:end}.explore-copy .eyebrow{grid-column:1/3}.explore-copy h2{margin:0}.explore-copy>p:not(.eyebrow){font-size:18px;line-height:1.7;color:#566057}.explore-cards{margin-top:60px;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.explore-cards article{padding:14px;background:var(--white);border-radius:26px;box-shadow:0 10px 22px rgba(17,38,24,.06)}.explore-cards article .media-placeholder{aspect-ratio:4/5;border-radius:20px}.explore-cards span{display:block;margin-top:16px;text-transform:uppercase;letter-spacing:.12em;font-size:11px;color:var(--bronze)}
.shop-section{background:var(--cream);padding-bottom:150px}.shop-heading{display:flex;justify-content:space-between;align-items:end}.product-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:0 7vw}.product-row article{padding:14px;background:rgba(255,255,255,.28);border-radius:26px}.product-row .media-placeholder{aspect-ratio:1/1.1;background:linear-gradient(135deg,#c8baa0,#9c8d70);border-radius:20px}.product-row h3{font-size:18px;font-weight:400;margin:15px 0 3px}.product-row p{margin:0;color:var(--bronze);font-size:12px}
.closing-cta{height:720px;position:relative;color:white;display:grid;place-items:center;text-align:center;margin:58px 7vw 0;border-radius:32px;overflow:hidden}.closing-media,.closing-shade{position:absolute;inset:0}.closing-shade{background:linear-gradient(180deg,rgba(4,30,16,.12),rgba(4,30,16,.38) 42%,rgba(4,30,16,.56))}.closing-content{position:relative;z-index:3;display:grid;justify-items:center}.closing-content img{height:160px;width:160px;object-fit:contain;margin-bottom:15px}.closing-content .closing-mark{width:min(235px,26vw);height:auto;object-fit:contain;display:block;margin:0 auto 6px;opacity:.99;filter:drop-shadow(0 8px 20px rgba(0,0,0,.16))}.closing-content h2{font-size:clamp(64px,7vw,110px);font-weight:300;letter-spacing:-.04em;margin:0 0 38px;text-shadow:0 6px 20px rgba(0,0,0,.18)}
footer{background:#0b2f1c;color:white;padding:54px 7vw 26px;display:grid;grid-template-columns:1fr 1fr;gap:34px;margin:24px 7vw 0;border-radius:32px 32px 0 0}.footer-wordmark{font-size:28px;font-weight:300;letter-spacing:.16em;color:var(--cream)}.footer-brand p{margin:12px 0 0;color:rgba(255,255,255,.58);font-size:11px;letter-spacing:.14em;text-transform:uppercase}.footer-links{display:flex;justify-content:flex-end;align-items:center;gap:26px;flex-wrap:wrap;font-size:11px;text-transform:uppercase;letter-spacing:.13em}.footer-lang{color:var(--cream);border-left:1px solid rgba(255,255,255,.18);padding-left:26px}.footer-meta{grid-column:1/3;border-top:1px solid rgba(255,255,255,.12);padding-top:20px;display:flex;justify-content:space-between;color:rgba(255,255,255,.45);font-size:10px;letter-spacing:.03em}.mobile-book{display:none}
@media (max-width:980px){.site-header{height:78px;grid-template-columns:170px 1fr auto auto auto;padding:0 24px}.site-header.scrolled{height:64px}.brand img{width:165px}.site-header.scrolled .brand img{width:148px}.lang-switch{grid-column:3;justify-self:end;font-size:9px;gap:4px}.main-nav{display:none}.header-cta{display:none}.header-cart{grid-column:4;justify-self:end}.menu-toggle{grid-column:5;display:block;justify-self:end;width:34px;height:34px;background:none;border:0;padding:7px}.menu-toggle span{display:block;height:1px;background:white;margin:7px 0}.main-nav.open{display:flex;position:absolute;top:78px;left:7vw;right:7vw;background:#0b2f1c;padding:30px 24px;flex-direction:column;gap:22px;border-radius:24px}.site-header.scrolled .main-nav.open{top:64px}.hero{min-height:640px;height:84vh}.hero-content{left:7vw;right:7vw;bottom:14%}.hero h1{font-size:clamp(58px,13vw,96px)}.booking-shell{position:relative;top:auto;margin-top:0;padding:0}.booking-bar{grid-template-columns:1fr 1fr}.booking-bar button{min-height:70px}.intro{display:block}.intro-inner{grid-template-columns:1fr;gap:28px}.intro-logo{width:240px}.section-pad{padding:85px 7vw}.section-heading{display:block}.section-heading>p{margin-top:20px}.cabins-grid{grid-template-columns:1fr 1fr}.cabin-card{min-height:520px}.cabin-card.large{grid-column:1/3}.feature-split{grid-template-columns:1fr;margin-top:24px}.feature-media{min-height:520px}.gallery-grid{height:900px;grid-template-columns:1fr 1fr;grid-template-rows:1.5fr 1fr 1fr}.g1{grid-row:1/2;grid-column:1/3}.g5{grid-column:2/3}.explore-copy{grid-template-columns:1fr}.explore-copy .eyebrow{grid-column:1}.explore-copy>p:not(.eyebrow){margin-top:20px}.product-row{grid-template-columns:1fr 1fr}.footer-links{flex-wrap:wrap}.closing-content .closing-mark{width:min(220px,34vw);margin-bottom:6px}}
@media (max-width:640px){body{padding-bottom:62px}.hero{height:78vh;min-height:600px}.hero-content{bottom:12%}.hero h1{font-size:56px}.hero-lede{font-size:16px}.placeholder-copy strong{font-size:14px}.scroll-cue{display:none}.booking-bar{grid-template-columns:1fr 1fr}.booking-bar label{padding:17px 16px}.booking-bar label:nth-child(3){grid-column:1/2}.booking-bar button{grid-column:2/3;padding:0 12px}.intro h2,.section-heading h2,.gallery h2,.explore h2,.shop-heading h2{font-size:44px}.intro-inner{gap:22px}.intro-logo{width:200px}.cabins-grid{display:block}.cabin-card,.cabin-card.large{min-height:500px}.feature-copy{padding:75px 7vw}.feature-copy h2{font-size:50px}.feature-list{grid-template-columns:1fr}.gallery-grid{height:auto;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(3,230px)}.g1{grid-column:1/3;grid-row:auto}.g2,.g3,.g4,.g5{grid-column:auto;grid-row:auto}.gallery-heading{display:block}.explore-cards{grid-template-columns:1fr;gap:32px}.explore-cards article .media-placeholder{aspect-ratio:4/3}.shop-heading{display:block}.product-row{grid-template-columns:1fr 1fr;gap:24px 12px}.closing-cta{height:600px}.closing-content .closing-mark{width:min(195px,46vw);margin-bottom:4px}.closing-content h2{font-size:58px}footer{grid-template-columns:1fr;padding-bottom:40px}.footer-links{justify-content:flex-start;gap:18px}.footer-lang{border-left:0;padding-left:0}.footer-meta{grid-column:1;display:grid;gap:8px}.footer-wordmark{font-size:22px}.mobile-book{display:block;position:fixed;z-index:30;left:12px;right:12px;bottom:12px;background:var(--green);color:white;text-align:center;padding:20px;text-transform:uppercase;letter-spacing:.14em;font-size:11px;border-radius:999px;box-shadow:0 14px 32px rgba(15,103,55,.25)}.footer-brand img{width:260px}}

.bottom-booking-shell{position:fixed;left:0;right:0;bottom:0;z-index:28;padding:0 24px 18px;display:flex;justify-content:center;pointer-events:none;opacity:0;transform:translateY(120%);transition:opacity .28s ease,transform .32s ease}.bottom-booking-shell.show{opacity:1;transform:translateY(0)}.bottom-booking-bar{pointer-events:auto;width:min(1040px,calc(100vw - 48px));display:grid;grid-template-columns:1fr 1fr .75fr auto;background:rgba(253,239,207,.97);backdrop-filter:blur(14px);border:1px solid rgba(129,109,72,.18);border-radius:22px;overflow:hidden;box-shadow:0 18px 48px rgba(17,38,24,.22)}.bottom-booking-bar label{padding:13px 20px;border-right:1px solid rgba(129,109,72,.2)}.bottom-booking-bar label span{display:block;color:var(--bronze);text-transform:uppercase;font-size:9px;letter-spacing:.14em;margin-bottom:5px}.bottom-booking-bar input,.bottom-booking-bar select{font:inherit;border:0;background:transparent;width:100%;font-size:14px;color:var(--ink);outline:none}.bottom-booking-bar button{border:0;background:linear-gradient(180deg,#15703c 0%,#0f6737 100%);color:white;padding:0 26px;font:inherit;text-transform:uppercase;letter-spacing:.12em;font-size:10px;cursor:pointer;white-space:nowrap}.bottom-booking-bar button:hover,.bottom-booking-bar button:focus-visible{background:linear-gradient(180deg,#1a7a42 0%,#126e3b 100%);outline:none}@media (max-width:980px){.bottom-booking-shell{display:none}}

.bottom-booking-shell.at-panel-end .bottom-booking-bar{box-shadow:0 14px 36px rgba(17,38,24,.18)}


/* Local multi-page preview */
.inner-page { background:#fbf7ee; min-height:100vh; }
.inner-hero {
  margin:110px 5vw 40px;
  border-radius:30px;
  padding:72px clamp(28px,6vw,86px);
  background:#0b3b25;
  color:#fff7e6;
}
.inner-hero .eyebrow { color:#e0c48a; }
.inner-hero h1 { margin:8px 0 16px; font-size:clamp(48px,7vw,96px); line-height:.95; font-weight:400; }
.inner-hero p { max-width:760px; font-size:18px; line-height:1.6; }
.inner-content { padding:0 7vw 100px; }
.inner-content h2 { font-size:clamp(34px,4.5vw,62px); font-weight:400; margin:0 0 16px; }
.inner-content h3 { font-size:24px; margin:0 0 8px; }
.inner-content p { line-height:1.7; max-width:820px; }
.info-grid, .product-grid-local, .faq-grid, .policy-grid {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:34px;
}
.info-card, .product-card-local, .faq-card, .policy-card {
  background:#fffaf0; border:1px solid rgba(129,109,72,.18); border-radius:24px; padding:28px;
}
.product-card-local .media-placeholder { height:270px; border-radius:18px; margin-bottom:18px; }
.product-card-local .status { font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:#816D48; }
.stay-local-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px; margin-top:36px; }
.stay-local-card { border-radius:28px; overflow:hidden; background:#fffaf0; }
.stay-local-card img { width:100%; height:380px; object-fit:cover; display:block; }
.stay-local-copy { padding:26px; }
.coming-soon-card { display:flex; min-height:380px; align-items:center; justify-content:center; text-align:center; background:#e8dfcb; }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px; margin-top:32px; }
.contact-method { background:#fffaf0; border:1px solid rgba(129,109,72,.18); border-radius:24px; padding:28px; }
.simple-form { display:grid; gap:14px; max-width:760px; margin-top:28px; }
.simple-form input, .simple-form textarea, .simple-form select {
  width:100%; box-sizing:border-box; border:1px solid rgba(15,103,55,.25); border-radius:12px; padding:14px 16px; font:inherit; background:white;
}
.simple-form textarea { min-height:150px; resize:vertical; }
.simple-form button { width:max-content; border:0; border-radius:999px; padding:14px 24px; background:#0F6737; color:white; text-transform:uppercase; letter-spacing:.1em; font-size:11px; }
.notice { margin-top:24px; padding:18px 20px; border-radius:16px; background:#efe5d0; color:#4f4635; }
@media (max-width:980px) {
  .main-nav { gap:12px; font-size:9px; }
  .info-grid, .product-grid-local, .faq-grid, .policy-grid, .stay-local-grid, .contact-grid { grid-template-columns:1fr; }
  .inner-hero { margin-top:92px; }
}

.local-gallery-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  margin-top:34px;
}
.local-gallery-grid button{
  border:0;
  padding:0;
  background:none;
  cursor:pointer;
  border-radius:22px;
  overflow:hidden;
  aspect-ratio:4/3;
}
.local-gallery-grid img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .25s ease;
}
.local-gallery-grid button:hover img{transform:scale(1.025)}
.gallery-lightbox{
  position:fixed;
  inset:0;
  background:rgba(4,20,12,.92);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:9999;
  padding:32px;
}
.gallery-lightbox.open{display:flex}
.gallery-lightbox img{
  max-width:min(1200px,92vw);
  max-height:86vh;
  border-radius:18px;
}
.gallery-lightbox-close{
  position:absolute;
  top:20px;
  right:26px;
  border:0;
  background:transparent;
  color:white;
  font-size:42px;
  cursor:pointer;
}
@media(max-width:980px){.local-gallery-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.local-gallery-grid{grid-template-columns:1fr}}

/* Inner-page header: keep the full site navigation visible from the top */
.inner-page .site-header{
  background:rgba(11,47,28,.96);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(255,255,255,.16);
  box-shadow:0 8px 24px rgba(0,0,0,.10);
}
.inner-page .site-header.scrolled{
  background:rgba(11,47,28,.96);
}
.inner-page .main-nav a{color:white;}
.inner-page .header-cta{color:white;}
.inner-page .menu-toggle span{background:white;}


/* Compact persistent booking pill */
.bottom-booking-shell{
  position:fixed;
  left:0;
  right:0;
  bottom:18px;
  z-index:28;
  padding:0 20px;
  display:flex;
  justify-content:center;
  pointer-events:none;
  opacity:0;
  transform:translateY(120%);
  transition:opacity .28s ease,transform .32s ease;
}
.bottom-booking-shell.show{
  opacity:1;
  transform:translateY(0);
}
.bottom-booking-shell.at-panel-end{
  position:absolute;
}
.booking-pill-wrap{
  pointer-events:auto;
  width:min(720px,calc(100vw - 40px));
  position:relative;
}
.booking-pill-summary{
  width:100%;
  min-height:58px;
  border:1px solid rgba(129,109,72,.20);
  border-radius:999px;
  background:rgba(253,239,207,.98);
  backdrop-filter:blur(14px);
  box-shadow:0 14px 34px rgba(17,38,24,.20);
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:18px;
  padding:8px 10px 8px 22px;
  color:var(--ink);
  cursor:pointer;
}
.booking-pill-summary .pill-copy{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
  white-space:nowrap;
  overflow:hidden;
}
.booking-pill-summary .pill-label{
  color:var(--bronze);
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:9px;
  flex:0 0 auto;
}
.booking-pill-summary .pill-dates{
  font-size:13px;
  overflow:hidden;
  text-overflow:ellipsis;
}
.booking-pill-summary .pill-action{
  border-radius:999px;
  background:var(--green);
  color:white;
  padding:14px 20px;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:10px;
  flex:0 0 auto;
}
.booking-pill-panel{
  position:absolute;
  left:0;
  right:0;
  bottom:70px;
  background:rgba(253,239,207,.99);
  border:1px solid rgba(129,109,72,.18);
  border-radius:24px;
  box-shadow:0 18px 48px rgba(17,38,24,.24);
  overflow:hidden;
  opacity:0;
  transform:translateY(10px) scale(.985);
  pointer-events:none;
  transition:opacity .20s ease,transform .20s ease;
}
.booking-pill-wrap.open .booking-pill-panel{
  opacity:1;
  transform:translateY(0) scale(1);
  pointer-events:auto;
}
.booking-pill-panel .bottom-booking-bar{
  width:100%;
  display:grid;
  grid-template-columns:1fr 1fr .72fr auto;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
}
.booking-pill-panel .bottom-booking-bar label{
  padding:14px 18px;
}
.booking-pill-panel .bottom-booking-bar button{
  min-height:66px;
}
@media(max-width:980px){
  .bottom-booking-shell{display:none}
}


/* v5: floating booking button + booking drawer */
.bottom-booking-shell{
  display:none !important;
}

.floating-book-btn{
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:35;
  border:1px solid rgba(129,109,72,.28);
  border-radius:999px;
  background:rgba(253,239,207,.98);
  color:#0f3f29;
  box-shadow:0 14px 34px rgba(17,38,24,.22);
  padding:15px 22px;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:10px;
  font-weight:700;
  cursor:pointer;
  opacity:0;
  transform:translateY(18px);
  pointer-events:none;
  transition:opacity .24s ease, transform .24s ease, background .2s ease;
}
.floating-book-btn.show{
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
}
.floating-book-btn:hover{
  background:#f7e3b7;
}

.booking-drawer-backdrop{
  position:fixed;
  inset:0;
  background:rgba(5,24,14,.42);
  opacity:0;
  pointer-events:none;
  transition:opacity .24s ease;
  z-index:40;
}
.booking-drawer-backdrop.open{
  opacity:1;
  pointer-events:auto;
}

.booking-drawer{
  position:fixed;
  top:0;
  right:0;
  bottom:0;
  width:min(430px,92vw);
  background:#fcf8f0;
  z-index:41;
  box-shadow:-20px 0 50px rgba(11,39,25,.22);
  transform:translateX(105%);
  transition:transform .28s ease;
  display:flex;
  flex-direction:column;
}
.booking-drawer.open{
  transform:translateX(0);
}
.booking-drawer-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:26px 28px 20px;
  border-bottom:1px solid rgba(129,109,72,.16);
}
.booking-drawer-head h3{
  margin:0;
  font-size:30px;
  font-weight:400;
}
.booking-drawer-close{
  width:40px;
  height:40px;
  border:1px solid rgba(15,103,55,.18);
  border-radius:50%;
  background:white;
  color:#123b28;
  font-size:26px;
  line-height:1;
  cursor:pointer;
}
.booking-drawer-body{
  padding:26px 28px 32px;
  overflow:auto;
}
.booking-drawer-intro{
  margin:0 0 22px;
  color:#5d594f;
  line-height:1.6;
}
.booking-drawer-form{
  display:grid;
  gap:16px;
}
.booking-drawer-form label{
  display:grid;
  gap:8px;
}
.booking-drawer-form label > span{
  text-transform:uppercase;
  letter-spacing:.13em;
  font-size:9px;
  color:#816D48;
}
.booking-drawer-form input,
.booking-drawer-form select{
  width:100%;
  box-sizing:border-box;
  border:1px solid rgba(15,103,55,.22);
  border-radius:14px;
  background:white;
  padding:14px 15px;
  font:inherit;
  color:#1a261f;
}
.booking-drawer-submit{
  margin-top:4px;
  border:0;
  border-radius:999px;
  background:#0F6737;
  color:white;
  padding:16px 20px;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:10px;
  cursor:pointer;
}
.booking-drawer-note{
  margin-top:18px;
  font-size:12px;
  line-height:1.55;
  color:#746d5d;
}

@media(max-width:980px){
  .floating-book-btn{
    right:18px;
    bottom:18px;
    padding:14px 18px;
  }
  .booking-drawer{
    top:auto;
    left:0;
    right:0;
    width:100%;
    max-height:82vh;
    border-radius:26px 26px 0 0;
    transform:translateY(105%);
  }
  .booking-drawer.open{
    transform:translateY(0);
  }
}

.experience-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
  margin-top:34px;
}
.experience-card{
  border-radius:26px;
  overflow:hidden;
  background:#fffaf0;
  border:1px solid rgba(129,109,72,.16);
}
.experience-card img{
  width:100%;
  height:320px;
  object-fit:cover;
  display:block;
}
.experience-card-copy{
  padding:26px;
}
.experience-card-copy h3{
  margin:0 0 8px;
  font-size:26px;
  font-weight:400;
}
.experience-card-copy p{
  margin:0;
}
.experience-band{
  margin-top:42px;
  background:#0b3b25;
  color:#fff7e6;
  border-radius:28px;
  padding:38px;
}
.experience-band h2{
  color:#fff7e6;
}
@media(max-width:980px){
  .experience-grid{grid-template-columns:1fr;}
}



/* v15 clean homepage rhythm + image composition
   One source of truth replaces the stacked v8/v9 overrides. */
:root{
  --home-gap:72px;
  --home-gap-mobile:48px;
}

/* Major homepage section rhythm */
.intro.section-pad{
  padding-top:96px;
  padding-bottom:96px;
}

.stay-section .section-pad{
  padding-top:96px;
  padding-bottom:56px;
}

.cabins-grid{
  padding-bottom:0;
}

.feature-split{
  margin:var(--home-gap) 7vw 0;
}

.gallery.section-pad{
  padding:var(--home-gap) 7vw 0;
}

.gallery-heading h2{
  margin-bottom:42px;
}

/* Keep this in normal flow so the following section starts predictably. */
.gallery .text-link{
  float:none;
  display:flex;
  width:max-content;
  margin:24px 0 0 auto;
}

.explore.section-pad{
  padding:var(--home-gap) 7vw var(--home-gap);
}

.explore-cards{
  margin-top:42px;
}

.shop-section{
  padding-top:0;
  padding-bottom:54px;
}

.shop-section .section-pad{
  padding-top:var(--home-gap);
  padding-bottom:42px;
}

/* Restore a real white buffer between the cream Shop block and closing photo. */
.closing-cta{
  margin:var(--home-gap) 7vw 0;
}

/* Remove the subtle zooming while preserving the original mosaic/card layout. */
.photo-fill{
  image-rendering:auto;
}
.gallery-grid .photo-fill,
.feature-media .photo-fill,
.closing-media .photo-fill,
.cabin-card:hover .photo-fill{
  transform:none !important;
}
.cabin-card:hover .media-placeholder{
  transform:none !important;
}

/* Better focal positioning without changing container dimensions. */
.feature-media .photo-fill{
  object-position:center 48%;
}
.closing-media .photo-fill{
  object-position:center 44%;
}

/* Lower the complete closing composition together: flower, label, title, booking row. */
.closing-content{
  transform:translateY(64px);
}

@media(max-width:980px){
  .intro.section-pad,
  .stay-section .section-pad{
    padding-top:78px;
    padding-bottom:64px;
  }

  .feature-split{
    margin-top:var(--home-gap-mobile);
  }

  .gallery.section-pad,
  .explore.section-pad,
  .shop-section .section-pad{
    padding-top:var(--home-gap-mobile);
  }

  .closing-cta{
    margin-top:var(--home-gap-mobile);
  }

  .closing-content{
    transform:translateY(38px);
  }
}

@media(max-width:640px){
  .intro.section-pad,
  .stay-section .section-pad{
    padding-top:58px;
    padding-bottom:50px;
  }

  .gallery.section-pad,
  .explore.section-pad,
  .shop-section .section-pad{
    padding-top:38px;
  }

  .feature-split,
  .closing-cta{
    margin-top:38px;
  }

  .closing-content{
    transform:translateY(22px);
  }
}


/* v10: compact booking row inside the closing "Come stay a while" panel */
.closing-content{
  width:min(1120px,88%);
}

.closing-mini-booking{
  width:min(820px,88vw);
  margin:28px auto 0;
  display:grid;
  grid-template-columns:1fr 1fr .72fr auto;
  background:rgba(253,239,207,.96);
  border:1px solid rgba(255,255,255,.32);
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 16px 34px rgba(11,39,25,.22);
  text-align:left;
}

.closing-mini-booking label{
  padding:12px 16px;
  border-right:1px solid rgba(129,109,72,.22);
  min-width:0;
}

.closing-mini-booking label span{
  display:block;
  margin-bottom:5px;
  color:#816D48;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:8px;
}

.closing-mini-booking input,
.closing-mini-booking select{
  width:100%;
  border:0;
  outline:0;
  background:transparent;
  color:#17231c;
  font:inherit;
  font-size:13px;
}

.closing-mini-booking button{
  border:0;
  background:#0F6737;
  color:white;
  padding:0 20px;
  min-width:160px;
  text-transform:uppercase;
  letter-spacing:.11em;
  font-size:9px;
  cursor:pointer;
}

.closing-mini-booking button:hover,
.closing-mini-booking button:focus-visible{
  background:#126e3b;
  outline:none;
}

@media(max-width:780px){
  .closing-mini-booking{
    grid-template-columns:1fr 1fr;
    width:min(560px,92vw);
  }
  .closing-mini-booking label:nth-child(2){
    border-right:0;
  }
  .closing-mini-booking label:nth-child(3){
    border-top:1px solid rgba(129,109,72,.22);
  }
  .closing-mini-booking button{
    min-height:58px;
    min-width:0;
    border-top:1px solid rgba(253,239,207,.25);
  }
}

@media(max-width:520px){
  .closing-mini-booking{
    grid-template-columns:1fr;
  }
  .closing-mini-booking label{
    border-right:0;
    border-bottom:1px solid rgba(129,109,72,.22);
  }
  .closing-mini-booking button{
    min-height:56px;
  }
}


/* v14 gallery paging — plain arrows only */
.gallery-lightbox-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  border:0;
  background:transparent;
  color:#fff;
  padding:12px;
  font-size:54px;
  font-weight:300;
  line-height:1;
  cursor:pointer;
  z-index:2;
  text-shadow:0 2px 10px rgba(0,0,0,.45);
}
.gallery-lightbox-prev{left:22px;}
.gallery-lightbox-next{right:22px;}
.gallery-lightbox-nav:hover,
.gallery-lightbox-nav:focus-visible{
  background:transparent;
  border:0;
  outline:none;
  opacity:.72;
}
.gallery-lightbox-count{
  position:absolute;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  color:#fff;
  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
  text-shadow:0 2px 8px rgba(0,0,0,.5);
}
@media(max-width:700px){
  .gallery-lightbox-nav{font-size:44px;padding:8px;}
  .gallery-lightbox-prev{left:8px;}
  .gallery-lightbox-next{right:8px;}
}


/* v16: more breathing room between cabin cards and the next visual panel */
.feature-split{
  margin-top:104px !important;
}

@media(max-width:980px){
  .feature-split{
    margin-top:72px !important;
  }
}

@media(max-width:640px){
  .feature-split{
    margin-top:52px !important;
  }
}


/* v17: internal cream-section buffer below the Shop product tiles.
   This is padding INSIDE the shaded Shop section, not margin after it. */
.shop-section{
  padding-bottom:96px !important;
}

@media(max-width:980px){
  .shop-section{
    padding-bottom:72px !important;
  }
}

@media(max-width:640px){
  .shop-section{
    padding-bottom:52px !important;
  }
}


/* v18: correct Stay-section spacing
   The missing space was INSIDE the shaded Stay section below the cabin tiles,
   not the white gap after the section. */
.cabins-grid{
  padding-bottom:96px !important;
}

/* Return the following white transition to the standard site rhythm. */
.feature-split{
  margin-top:72px !important;
}

@media(max-width:980px){
  .cabins-grid{
    padding-bottom:72px !important;
  }
  .feature-split{
    margin-top:52px !important;
  }
}

@media(max-width:640px){
  .cabins-grid{
    padding-bottom:52px !important;
  }
  .feature-split{
    margin-top:38px !important;
  }
}


/* v22 — finished Stay page
   Scoped to .stay-page so other pages and homepage image treatment stay unchanged. */
.stay-page .stay-hero{
  margin-bottom:0;
}

.stay-page .booking-shell{
  margin-top:-34px;
  padding:0 7vw;
}

.stay-page-content{
  padding:92px 7vw 110px;
}

.stay-page-intro{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(280px,.7fr);
  gap:70px;
  align-items:end;
  max-width:1220px;
  margin:0 auto 48px;
}

.stay-page-intro h2,
.stay-section-heading h2,
.stay-coming-soon h2{
  margin:6px 0 0;
  font-size:clamp(38px,4.8vw,64px);
  line-height:1.02;
  font-weight:400;
}

.stay-page-intro > p{
  margin:0 0 7px;
  line-height:1.75;
  color:#566057;
  max-width:520px;
}

.stay-cabin-list{
  max-width:1220px;
  margin:0 auto;
  display:grid;
  gap:32px;
}

.stay-cabin-feature{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(380px,.92fr);
  background:#fffaf0;
  border:1px solid rgba(129,109,72,.18);
  border-radius:30px;
  overflow:hidden;
  min-height:500px;
}

.stay-cabin-feature.reverse{
  grid-template-columns:minmax(380px,.92fr) minmax(0,1.08fr);
}

.stay-cabin-feature.reverse .stay-cabin-photo{
  order:2;
}

.stay-cabin-photo{
  min-height:500px;
  background:#e9e1d2;
  overflow:hidden;
}

.stay-cabin-photo img{
  width:100%;
  height:100%;
  min-height:500px;
  object-fit:cover;
  display:block;
  transform:none !important;
}

.stay-cabin-body{
  padding:48px 44px 42px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.stay-cabin-body h3{
  margin:2px 0 14px;
  font-size:clamp(34px,4vw,52px);
  line-height:1;
  font-weight:400;
}

.stay-cabin-lede{
  margin:0;
  max-width:520px;
  color:#566057;
  line-height:1.7;
}

.stay-specs{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin:25px 0 30px;
}

.stay-specs span{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:0 13px;
  border:1px solid rgba(129,109,72,.22);
  border-radius:999px;
  color:#4f4635;
  background:#f8f1e4;
  font-size:12px;
  line-height:1;
}

.stay-cabin-meta{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid rgba(129,109,72,.18);
  border-bottom:1px solid rgba(129,109,72,.18);
  margin-bottom:28px;
}

.stay-cabin-meta > div{
  padding:18px 12px 18px 0;
}

.stay-cabin-meta > div + div{
  padding-left:18px;
  border-left:1px solid rgba(129,109,72,.18);
}

.stay-cabin-meta small{
  display:block;
  margin-bottom:6px;
  color:var(--bronze);
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:9px;
}

.stay-cabin-meta strong{
  font-weight:500;
  font-size:14px;
}

.stay-primary-link,
.stay-policy-link{
  width:max-content;
  color:var(--green);
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:10px;
  font-weight:700;
  border-bottom:1px solid rgba(15,103,55,.55);
  padding-bottom:5px;
}

.stay-included,
.stay-booking-details{
  max-width:1220px;
  margin:96px auto 0;
}

.stay-section-heading{
  max-width:760px;
  margin-bottom:34px;
}

.stay-fact-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}

.stay-fact-grid article{
  background:#efe5d0;
  border:1px solid rgba(129,109,72,.15);
  border-radius:24px;
  padding:30px 26px;
  min-height:210px;
}

.stay-fact-grid article > span{
  display:block;
  margin-bottom:28px;
  color:var(--bronze);
  font-size:11px;
  letter-spacing:.14em;
}

.stay-fact-grid h3,
.stay-detail-grid h3{
  margin:0 0 10px;
  font-size:22px;
  font-weight:500;
}

.stay-fact-grid p,
.stay-detail-grid p{
  margin:0;
  color:#566057;
  line-height:1.65;
}

.stay-booking-details{
  padding-top:4px;
}

.stay-detail-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}

.stay-detail-grid article{
  background:#fffaf0;
  border:1px solid rgba(129,109,72,.18);
  border-radius:24px;
  padding:30px;
}

.stay-policy-link{
  display:inline-flex;
  gap:10px;
  align-items:center;
  margin-top:26px;
}

.stay-coming-soon{
  max-width:1220px;
  margin:96px auto 0;
  padding:48px 54px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:50px;
  border:1px solid rgba(129,109,72,.20);
  border-radius:30px;
  background:#e8dfcb;
}

.stay-coming-soon > div{
  max-width:720px;
}

.stay-coming-soon p:last-child{
  margin:18px 0 0;
  color:#566057;
  line-height:1.7;
}

.stay-coming-soon img{
  width:130px;
  height:auto;
  opacity:.78;
}

@media(max-width:980px){
  .stay-page .booking-shell{
    margin-top:24px;
    padding:0 7vw;
  }

  .stay-page-content{
    padding-top:70px;
  }

  .stay-page-intro{
    grid-template-columns:1fr;
    gap:22px;
  }

  .stay-page-intro > p{
    max-width:680px;
  }

  .stay-cabin-feature,
  .stay-cabin-feature.reverse{
    grid-template-columns:1fr;
  }

  .stay-cabin-feature.reverse .stay-cabin-photo{
    order:0;
  }

  .stay-cabin-photo,
  .stay-cabin-photo img{
    min-height:430px;
    height:430px;
  }

  .stay-fact-grid{
    grid-template-columns:1fr 1fr;
  }

  .stay-coming-soon{
    padding:42px;
  }
}

@media(max-width:640px){
  .stay-page .stay-hero{
    margin-bottom:28px;
  }

  .stay-page .booking-shell{
    margin-top:0;
    padding:0 5vw;
  }

  .stay-page-content{
    padding:58px 5vw 80px;
  }

  .stay-page-intro{
    margin-bottom:32px;
  }

  .stay-cabin-list{
    gap:24px;
  }

  .stay-cabin-feature{
    border-radius:24px;
  }

  .stay-cabin-photo,
  .stay-cabin-photo img{
    min-height:300px;
    height:300px;
  }

  .stay-cabin-body{
    padding:30px 24px 28px;
  }

  .stay-cabin-meta{
    grid-template-columns:1fr;
  }

  .stay-cabin-meta > div{
    padding:14px 0;
  }

  .stay-cabin-meta > div + div{
    padding-left:0;
    border-left:0;
    border-top:1px solid rgba(129,109,72,.18);
  }

  .stay-included,
  .stay-booking-details,
  .stay-coming-soon{
    margin-top:64px;
  }

  .stay-fact-grid,
  .stay-detail-grid{
    grid-template-columns:1fr;
  }

  .stay-fact-grid article{
    min-height:0;
  }

  .stay-coming-soon{
    padding:32px 26px;
  }

  .stay-coming-soon img{
    width:82px;
  }
}


/* v23 — access note on Stay page */
.stay-access-note{
  margin-top:18px;
  padding:24px 28px;
  border:1px solid rgba(129,109,72,.18);
  border-radius:24px;
  background:#efe5d0;
}

.stay-access-note .eyebrow{
  margin-bottom:8px;
}

.stay-access-note p:last-child{
  margin:0;
  color:#3f4a42;
  line-height:1.65;
  font-size:17px;
}


/* v24 — shared cabin amenities on Stay page */
.stay-amenities-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin-bottom:20px;
}

.stay-amenity-item{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:58px;
  padding:14px 16px;
  border:1px solid rgba(129,109,72,.18);
  border-radius:18px;
  background:#fffaf0;
  color:#3f4a42;
  font-size:14px;
}

.stay-amenity-item span{
  color:var(--green);
  font-weight:700;
}

.stay-fact-grid.stay-fact-grid-compact{
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.stay-fact-grid.stay-fact-grid-compact article{
  min-height:170px;
}

@media(max-width:980px){
  .stay-amenities-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:640px){
  .stay-amenities-grid,
  .stay-fact-grid.stay-fact-grid-compact{
    grid-template-columns:1fr;
  }
}


/* v25 — emphasize that 4x4 is NOT required */
.stay-access-note strong em{
  font-weight:700;
  font-style:italic;
  color:inherit;
}

.faq-card strong em{
  font-weight:700;
  font-style:italic;
  color:var(--green);
}


/* v29 — finished Shop page
   Scoped to .shop-page. Product visuals are intentionally graphic placeholders
   until final merchandise photography is available. */
.shop-page-content{
  padding:92px 7vw 110px;
}

.shop-page-intro{
  max-width:1220px;
  margin:0 auto 48px;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(280px,.7fr);
  gap:70px;
  align-items:end;
}

.shop-page-intro h2,
.shop-section-heading h2,
.shop-note h2{
  margin:6px 0 0;
  font-size:clamp(38px,4.8vw,64px);
  line-height:1.02;
  font-weight:400;
}

.shop-page-intro > p{
  margin:0 0 7px;
  max-width:540px;
  color:#566057;
  line-height:1.75;
}

.shop-access-card{
  max-width:1220px;
  margin:0 auto;
  padding:42px 46px;
  display:grid;
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:48px;
  align-items:center;
  background:#efe5d0;
  border:1px solid rgba(129,109,72,.18);
  border-radius:30px;
}

.shop-access-copy h3{
  margin:3px 0 13px;
  font-size:clamp(28px,3.2vw,42px);
  line-height:1.05;
  font-weight:400;
}

.shop-access-copy > p:last-child{
  margin:0;
  color:#566057;
  line-height:1.7;
}

.shop-access-points{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-left:1px solid rgba(129,109,72,.18);
}

.shop-access-points > div{
  padding:12px 22px;
}

.shop-access-points > div + div{
  border-left:1px solid rgba(129,109,72,.18);
}

.shop-access-points span{
  display:block;
  margin-bottom:22px;
  color:var(--bronze);
  font-size:10px;
  letter-spacing:.15em;
}

.shop-access-points strong{
  display:block;
  margin-bottom:7px;
  font-size:15px;
  font-weight:600;
}

.shop-access-points small{
  display:block;
  color:#566057;
  line-height:1.5;
  font-size:12px;
}

.shop-products-section,
.shop-how-it-works{
  max-width:1220px;
  margin:96px auto 0;
}

.shop-section-heading{
  max-width:780px;
  margin-bottom:34px;
}

.shop-section-heading > p:last-child{
  margin:18px 0 0;
  color:#566057;
  line-height:1.7;
}

.shop-product-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
}

.shop-product-card{
  overflow:hidden;
  background:#fffaf0;
  border:1px solid rgba(129,109,72,.18);
  border-radius:30px;
}

.shop-product-visual{
  min-height:360px;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 42%, rgba(255,250,240,.95) 0 18%, transparent 19%),
    linear-gradient(145deg,#e7dcc5,#c8b792);
}

.shop-product-visual::before,
.shop-product-visual::after{
  content:"";
  position:absolute;
  width:230px;
  height:230px;
  border:1px solid rgba(129,109,72,.17);
  border-radius:50%;
}

.shop-product-visual::after{
  width:300px;
  height:300px;
  border-color:rgba(129,109,72,.10);
}

.shop-product-mug{
  background:
    radial-gradient(circle at 50% 42%, rgba(255,250,240,.96) 0 18%, transparent 19%),
    linear-gradient(145deg,#d7e0d1,#a9b7a5);
}

.shop-product-visual img{
  width:92px;
  height:auto;
  position:relative;
  z-index:2;
  opacity:.9;
}

.shop-product-visual > span{
  position:absolute;
  right:22px;
  bottom:18px;
  color:rgba(79,70,53,.55);
  font-size:10px;
  letter-spacing:.22em;
  z-index:2;
}

.shop-product-body{
  padding:28px 30px 30px;
}

.shop-product-status{
  margin:0 0 10px;
  color:var(--bronze) !important;
  text-transform:uppercase;
  letter-spacing:.13em;
  font-size:10px;
}

.shop-product-body h3{
  margin:0 0 10px;
  font-size:28px;
  font-weight:500;
}

.shop-product-body > p{
  margin:0;
  color:#566057;
  line-height:1.65;
}

.shop-product-footer{
  margin-top:26px;
  padding-top:20px;
  border-top:1px solid rgba(129,109,72,.17);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
}

.shop-product-footer > span{
  max-width:230px;
  color:#6c726c;
  font-size:11px;
  line-height:1.45;
}

.shop-product-footer button{
  appearance:none;
  border:1px solid rgba(15,103,55,.28);
  border-radius:999px;
  padding:11px 15px;
  background:rgba(15,103,55,.07);
  color:var(--green);
  font:inherit;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.09em;
  opacity:.74;
  cursor:not-allowed;
}

.shop-process-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}

.shop-process-grid article{
  min-height:225px;
  padding:30px 28px;
  background:#fffaf0;
  border:1px solid rgba(129,109,72,.18);
  border-radius:24px;
}

.shop-process-grid article > span{
  display:block;
  margin-bottom:35px;
  color:var(--bronze);
  font-size:11px;
  letter-spacing:.14em;
}

.shop-process-grid h3{
  margin:0 0 10px;
  font-size:22px;
  font-weight:500;
}

.shop-process-grid p{
  margin:0;
  color:#566057;
  line-height:1.65;
}

.shop-note{
  max-width:1220px;
  margin:96px auto 0;
  padding:46px 52px;
  display:flex;
  align-items:center;
  gap:48px;
  background:#e8dfcb;
  border:1px solid rgba(129,109,72,.18);
  border-radius:30px;
}

.shop-note img{
  width:112px;
  height:auto;
  opacity:.8;
  flex:0 0 auto;
}

.shop-note > div{
  max-width:760px;
}

.shop-note p:last-child{
  margin:18px 0 0;
  color:#566057;
  line-height:1.7;
}

@media(max-width:980px){
  .shop-page-content{
    padding-top:70px;
  }

  .shop-page-intro,
  .shop-access-card{
    grid-template-columns:1fr;
    gap:24px;
  }

  .shop-access-points{
    border-left:0;
    border-top:1px solid rgba(129,109,72,.18);
    padding-top:18px;
  }

  .shop-access-points > div:first-child{
    padding-left:0;
  }

  .shop-product-visual{
    min-height:310px;
  }

  .shop-note{
    padding:40px;
  }
}

@media(max-width:700px){
  .shop-page-content{
    padding:58px 5vw 80px;
  }

  .shop-access-card{
    padding:30px 25px;
  }

  .shop-access-points{
    grid-template-columns:1fr;
  }

  .shop-access-points > div{
    padding:18px 0;
  }

  .shop-access-points > div + div{
    border-left:0;
    border-top:1px solid rgba(129,109,72,.18);
  }

  .shop-access-points span{
    margin-bottom:10px;
  }

  .shop-products-section,
  .shop-how-it-works,
  .shop-note{
    margin-top:64px;
  }

  .shop-product-grid,
  .shop-process-grid{
    grid-template-columns:1fr;
  }

  .shop-product-visual{
    min-height:285px;
  }

  .shop-product-footer{
    align-items:flex-start;
    flex-direction:column;
  }

  .shop-note{
    padding:32px 26px;
    align-items:flex-start;
  }

  .shop-note img{
    width:72px;
  }
}


/* v31 — finished Gift Cards page */
.gift-card-page-content{
  padding:92px 7vw 110px;
}

.gift-card-intro{
  max-width:1220px;
  margin:0 auto 48px;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(280px,.7fr);
  gap:70px;
  align-items:end;
}

.gift-card-intro h2,
.gift-card-section-heading h2,
.gift-card-note h2{
  margin:6px 0 0;
  font-size:clamp(38px,4.8vw,64px);
  line-height:1.02;
  font-weight:400;
}

.gift-card-intro > p{
  margin:0 0 7px;
  color:#566057;
  line-height:1.75;
  max-width:540px;
}

.gift-card-feature{
  max-width:1220px;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(390px,.92fr);
  gap:0;
  overflow:hidden;
  border:1px solid rgba(129,109,72,.18);
  border-radius:30px;
  background:#fffaf0;
}

.gift-card-preview{
  min-height:560px;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:54px;
  overflow:hidden;
  background:
    linear-gradient(rgba(39,33,24,.30), rgba(39,33,24,.34)),
    url('photos/shared/gift-card-background.jpg') center center / cover no-repeat;
}

.gift-card-preview::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 20% 20%, rgba(255,255,255,.12), transparent 28%),
    linear-gradient(135deg, rgba(248,242,232,.14), rgba(15,103,55,.10));
  pointer-events:none;
}

.gift-card-preview-inner{
  width:min(460px,100%);
  aspect-ratio:1.58/1;
  padding:34px 36px;
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  border:1px solid rgba(253,238,207,.72);
  border-radius:22px;
  background:linear-gradient(rgba(13,28,19,.34), rgba(13,28,19,.24));
  box-shadow:0 24px 60px rgba(0,0,0,.22);
  backdrop-filter: blur(4px);
  color:#fdeecf;
}

.gift-card-preview-inner img{
  position:absolute;
  top:28px;
  left:34px;
  width:88px;
  filter:brightness(0) invert(88%) sepia(14%) saturate(682%) hue-rotate(346deg) brightness(108%);
  opacity:.94;
}

.gift-card-brand{
  font-size:22px;
  letter-spacing:.12em;
  margin-bottom:8px;
}

.gift-card-label{
  font-size:11px;
  letter-spacing:.24em;
  opacity:.82;
}

.gift-card-location{
  position:absolute;
  right:34px;
  bottom:34px;
  font-size:9px;
  letter-spacing:.08em;
  opacity:.78;
}

.gift-card-purchase{
  padding:48px 44px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.gift-card-purchase h3{
  margin:2px 0 14px;
  font-size:clamp(30px,3.7vw,48px);
  line-height:1.03;
  font-weight:400;
}

.gift-card-lede{
  margin:0;
  color:#566057;
  line-height:1.7;
}

.gift-card-choice-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin:28px 0;
}

.gift-card-choice-grid button{
  appearance:none;
  text-align:left;
  min-height:104px;
  padding:19px 18px;
  border:1px solid rgba(129,109,72,.22);
  border-radius:18px;
  background:#f5ecda;
  color:#3f4a42;
  opacity:1;
}

.gift-card-choice-grid strong{
  display:block;
  margin-bottom:7px;
  font-size:15px;
}

.gift-card-choice-grid span{
  display:block;
  color:#6a706b;
  font-size:11px;
  line-height:1.5;
}

.gift-card-delivery-summary{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid rgba(129,109,72,.18);
  border-bottom:1px solid rgba(129,109,72,.18);
  margin-bottom:26px;
}

.gift-card-delivery-summary > div{
  padding:16px 10px 16px 0;
}

.gift-card-delivery-summary > div + div{
  border-left:1px solid rgba(129,109,72,.18);
  padding-left:16px;
}

.gift-card-delivery-summary small{
  display:block;
  margin-bottom:5px;
  color:var(--bronze);
  text-transform:uppercase;
  letter-spacing:.11em;
  font-size:9px;
}

.gift-card-delivery-summary strong{
  font-size:13px;
  font-weight:500;
}

.gift-card-primary{
  appearance:none;
  border:0;
  border-radius:999px;
  padding:15px 22px;
  background:var(--green);
  color:white;
  text-transform:uppercase;
  letter-spacing:.11em;
  font:inherit;
  font-size:10px;
  opacity:.62;
  cursor:not-allowed;
}

.gift-card-prototype-note{
  margin:10px 0 0;
  color:#777c77;
  font-size:10px;
  line-height:1.5;
  text-align:center;
}

.gift-card-how,
.gift-card-rules{
  max-width:1220px;
  margin:96px auto 0;
}

.gift-card-section-heading{
  max-width:780px;
  margin-bottom:34px;
}

.gift-card-steps{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}

.gift-card-steps article{
  min-height:220px;
  padding:30px 26px;
  background:#efe5d0;
  border:1px solid rgba(129,109,72,.15);
  border-radius:24px;
}

.gift-card-steps article > span{
  display:block;
  margin-bottom:31px;
  color:var(--bronze);
  font-size:11px;
  letter-spacing:.14em;
}

.gift-card-steps h3,
.gift-card-rule-grid h3{
  margin:0 0 10px;
  font-size:21px;
  font-weight:500;
}

.gift-card-steps p,
.gift-card-rule-grid p{
  margin:0;
  color:#566057;
  line-height:1.65;
}

.gift-card-rule-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}

.gift-card-rule-grid article{
  min-height:180px;
  padding:28px;
  background:#fffaf0;
  border:1px solid rgba(129,109,72,.18);
  border-radius:24px;
}

.gift-card-note{
  max-width:1220px;
  margin:96px auto 0;
  padding:48px 54px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:48px;
  background:#e8dfcb;
  border:1px solid rgba(129,109,72,.18);
  border-radius:30px;
}

.gift-card-note > div{
  max-width:780px;
}

.gift-card-note p:last-child{
  margin:18px 0 0;
  color:#566057;
  line-height:1.7;
}

.gift-card-note img{
  width:118px;
  height:auto;
  opacity:.78;
}

@media(max-width:980px){
  .gift-card-page-content{
    padding-top:70px;
  }

  .gift-card-intro,
  .gift-card-feature{
    grid-template-columns:1fr;
    gap:24px;
  }

  .gift-card-preview{
    min-height:440px;
  }

  .gift-card-steps{
    grid-template-columns:1fr 1fr;
  }

  .gift-card-rule-grid{
    grid-template-columns:1fr 1fr;
  }

  .gift-card-note{
    padding:42px;
  }
}

@media(max-width:640px){
  .gift-card-page-content{
    padding:58px 5vw 80px;
  }

  .gift-card-preview{
    min-height:315px;
    padding:26px;
  }

  .gift-card-preview-inner{
    padding:25px;
  }

  .gift-card-preview-inner img{
    top:22px;
    left:24px;
    width:68px;
  }

  .gift-card-location{
    right:24px;
    bottom:25px;
  }

  .gift-card-purchase{
    padding:32px 24px 28px;
  }

  .gift-card-choice-grid,
  .gift-card-delivery-summary,
  .gift-card-steps,
  .gift-card-rule-grid{
    grid-template-columns:1fr;
  }

  .gift-card-delivery-summary > div{
    padding:13px 0;
  }

  .gift-card-delivery-summary > div + div{
    border-left:0;
    border-top:1px solid rgba(129,109,72,.18);
    padding-left:0;
  }

  .gift-card-how,
  .gift-card-rules,
  .gift-card-note{
    margin-top:64px;
  }

  .gift-card-note{
    padding:32px 26px;
    align-items:flex-start;
  }

  .gift-card-note img{
    width:74px;
  }
}


/* v33 — focused mobile cleanup
   1) Symmetric header spacing
   2) No floating/mobile booking bubble on phones
   3) Closing CTA re-composed so heading + booking form fit cleanly */
@media(max-width:640px){

  /* Header: keep equal left/right gutters and explicitly place language,
     cart and menu. Every header item at this width MUST have an explicit
     grid-column here - this grid does not use auto-placement, so an item
     left unassigned (as .header-cart was until v196) has nowhere to go and
     is pushed into an implicit second row, which is why it appeared to
     float below the header rather than sitting inline with everything else. */
  .site-header,
  .inner-page .site-header{
    height:72px;
    grid-template-columns:minmax(0,1fr) auto auto auto;
    gap:8px;
    padding:0 18px;
  }

  .site-header.scrolled,
  .inner-page .site-header.scrolled{
    height:62px;
    padding-left:18px;
    padding-right:18px;
  }

  .brand{
    grid-column:1;
    grid-row:1;
    min-width:0;
  }

  .brand img{
    width:148px;
    max-width:100%;
  }

  .site-header.scrolled .brand img{
    width:138px;
  }

  .lang-switch{
    grid-column:2;
    grid-row:1;
    justify-self:end;
    font-size:8px;
    gap:3px;
  }

  .header-cart{
    grid-column:3;
    grid-row:1;
    justify-self:end;
    min-width:32px;
    min-height:32px;
  }

  .menu-toggle{
    grid-column:4;
    grid-row:1;
    justify-self:end;
    width:32px;
    height:32px;
    padding:6px;
  }

  .main-nav.open{
    top:72px;
    left:18px;
    right:18px;
  }

  .site-header.scrolled .main-nav.open{
    top:62px;
  }

  /* User does not want a Book Your Stay bubble/bar on mobile. */
  .floating-book-btn,
  .mobile-book{
    display:none !important;
  }

  body{
    padding-bottom:0 !important;
  }

  /* Closing "Come stay a while" panel:
     let content determine height rather than clipping inside a fixed 600px box. */
  .closing-cta{
    height:auto !important;
    min-height:650px;
    margin-left:5vw;
    margin-right:5vw;
    padding:44px 0 34px;
    box-sizing:border-box;
  }

  .closing-content{
    width:90%;
    max-width:100%;
    transform:none !important;
  }

  .closing-content .closing-mark{
    width:132px;
    max-width:42vw;
    margin-bottom:6px;
  }

  .closing-content h2{
    width:100%;
    max-width:290px;
    margin:0 auto 18px;
    font-size:clamp(40px,12vw,48px);
    line-height:1.03;
    letter-spacing:-.035em;
    overflow-wrap:normal;
  }

  .closing-mini-booking{
    width:100%;
    max-width:310px;
    margin:16px auto 0;
    grid-template-columns:1fr;
    border-radius:18px;
  }

  .closing-mini-booking label{
    padding:11px 14px;
    border-right:0;
    border-bottom:1px solid rgba(129,109,72,.22);
  }

  .closing-mini-booking label:nth-child(2),
  .closing-mini-booking label:nth-child(3){
    border-top:0;
  }

  .closing-mini-booking button{
    min-height:52px;
    min-width:0;
  }
}


/* v34 — mobile booking clarification
   Keep the persistent green bottom booking bar.
   Hide only the duplicate cream floating booking pill on mobile. */
@media(max-width:640px){
  body{
    padding-bottom:86px !important;
  }

  .floating-book-btn{
    display:none !important;
  }

  .mobile-book{
    display:block !important;
    position:fixed;
    z-index:35;
    left:12px;
    right:12px;
    bottom:12px;
    background:var(--green);
    color:white;
    text-align:center;
    padding:20px;
    text-transform:uppercase;
    letter-spacing:.14em;
    font-size:11px;
    border-radius:999px;
    box-shadow:0 14px 32px rgba(15,103,55,.25);
  }
}


/* v36 — finished FAQ page */
.faq-page-content{
  padding:92px 7vw 110px;
}


.faq-intro{
  max-width:1220px;
  margin:0 auto 42px;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(280px,.7fr);
  gap:70px;
  align-items:end;
}

.faq-intro h2,
.faq-category-heading h2,
.faq-closing h2{
  margin:6px 0 0;
  font-size:clamp(36px,4.5vw,58px);
  line-height:1.03;
  font-weight:400;
}

.faq-intro > p{
  margin:0 0 6px;
  max-width:540px;
  color:#566057;
  line-height:1.75;
}

.faq-sections{
  max-width:1220px;
  margin:0 auto;
  display:grid;
  gap:28px;
}

.faq-category{
  display:grid;
  grid-template-columns:minmax(240px,.42fr) minmax(0,1fr);
  gap:34px;
  padding:34px;
  border:1px solid rgba(129,109,72,.18);
  border-radius:30px;
  background:#fffaf0;
}

.faq-category-heading{
  padding:7px 12px 0 4px;
}

.faq-category-heading > span{
  display:block;
  margin-bottom:42px;
  color:var(--bronze);
  font-size:11px;
  letter-spacing:.16em;
}

.faq-category-heading h2{
  font-size:clamp(30px,3.4vw,45px);
}

.faq-accordion{
  border-top:1px solid rgba(129,109,72,.20);
}

.faq-accordion details{
  border-bottom:1px solid rgba(129,109,72,.20);
}

.faq-accordion summary{
  position:relative;
  list-style:none;
  cursor:pointer;
  padding:22px 42px 22px 0;
  font-size:17px;
  font-weight:600;
  line-height:1.35;
}

.faq-accordion summary::-webkit-details-marker{
  display:none;
}

.faq-accordion summary::after{
  content:"+";
  position:absolute;
  right:3px;
  top:50%;
  transform:translateY(-50%);
  color:var(--green);
  font-size:25px;
  font-weight:300;
}

.faq-accordion details[open] summary::after{
  content:"−";
}

.faq-accordion details[open] summary{
  color:var(--green);
}

.faq-accordion details p{
  margin:-3px 46px 23px 0;
  max-width:760px;
  color:#566057;
  line-height:1.72;
}

.faq-accordion details p strong em{
  color:inherit;
  font-weight:700;
  font-style:italic;
}

.faq-closing{
  max-width:1220px;
  margin:96px auto 0;
  padding:46px 52px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:54px;
  align-items:center;
  border:1px solid rgba(129,109,72,.18);
  border-radius:30px;
  background:#e8dfcb;
}

.faq-closing > div:first-child{
  max-width:800px;
}

.faq-closing p:last-child{
  margin:18px 0 0;
  color:#566057;
  line-height:1.7;
}

.faq-closing-links{
  min-width:190px;
  display:grid;
  gap:12px;
}

.faq-closing-links a{
  display:flex;
  justify-content:space-between;
  gap:18px;
  padding:13px 0;
  color:var(--green);
  border-bottom:1px solid rgba(15,103,55,.35);
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:10px;
  font-weight:700;
}

@media(max-width:980px){
  .faq-page-content{
    padding-top:70px;
  }

  .faq-intro{
    grid-template-columns:1fr;
    gap:22px;
  }

  .faq-category{
    grid-template-columns:1fr;
    gap:20px;
  }

  .faq-category-heading{
    display:flex;
    gap:24px;
    align-items:flex-start;
  }

  .faq-category-heading > span{
    margin-bottom:0;
    padding-top:9px;
  }

  .faq-closing{
    grid-template-columns:1fr;
    gap:26px;
  }
}

@media(max-width:640px){
  .faq-page-content{
    padding:58px 5vw 80px;
  }


  .faq-category{
    padding:26px 22px;
    border-radius:24px;
  }

  .faq-category-heading{
    gap:15px;
  }

  .faq-category-heading > span{
    padding-top:7px;
  }

  .faq-accordion summary{
    padding:18px 34px 18px 0;
    font-size:16px;
  }

  .faq-accordion details p{
    margin:-1px 34px 20px 0;
  }

  .faq-closing{
    margin-top:64px;
    padding:32px 26px;
  }
}


/* v43 — finished Contact page */
.contact-page-content{
  padding:92px 7vw 110px;
}

.contact-intro{
  max-width:1220px;
  margin:0 auto 48px;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(280px,.7fr);
  gap:70px;
  align-items:end;
}

.contact-intro h2,
.contact-form-copy h2,
.contact-closing h2{
  margin:6px 0 0;
  font-size:clamp(38px,4.8vw,64px);
  line-height:1.02;
  font-weight:400;
}

.contact-intro > p{
  margin:0 0 7px;
  max-width:550px;
  color:#566057;
  line-height:1.75;
}

.contact-methods{
  max-width:1220px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}

.contact-method-card{
  min-height:300px;
  position:relative;
  padding:30px 28px 28px;
  display:flex;
  flex-direction:column;
  background:#fffaf0;
  border:1px solid rgba(129,109,72,.18);
  border-radius:24px;
}

.contact-method-number{
  display:block;
  margin-bottom:35px;
  color:var(--bronze);
  font-size:11px;
  letter-spacing:.15em;
}

.contact-method-card h3{
  margin:2px 0 12px;
  font-size:clamp(22px,2.3vw,30px);
  line-height:1.15;
  font-weight:500;
  overflow-wrap:anywhere;
}

.contact-method-card > p:not(.eyebrow){
  margin:0;
  color:#566057;
  line-height:1.68;
}

.contact-method-card a{
  width:max-content;
  margin-top:auto;
  padding-top:24px;
  color:var(--green);
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:10px;
  font-weight:700;
  border-bottom:1px solid rgba(15,103,55,.36);
}

.contact-method-muted{
  margin-top:auto;
  padding-top:24px;
  color:#777c77;
  font-size:11px;
  line-height:1.45;
}

.contact-method-location{
  background:#efe5d0;
}

.contact-form-section{
  max-width:1220px;
  margin:96px auto 0;
  display:grid;
  grid-template-columns:minmax(0,.78fr) minmax(420px,1.12fr);
  gap:56px;
  align-items:start;
}

.contact-form-copy > p:not(.eyebrow){
  margin:18px 0 0;
  max-width:520px;
  color:#566057;
  line-height:1.75;
}

.contact-help-notes{
  margin-top:32px;
  display:grid;
  gap:12px;
}

.contact-help-notes > div{
  padding:20px 22px;
  border:1px solid rgba(129,109,72,.18);
  border-radius:18px;
  background:#efe5d0;
}

.contact-help-notes strong{
  display:block;
  margin-bottom:6px;
  font-size:14px;
}

.contact-help-notes span{
  display:block;
  color:#566057;
  line-height:1.6;
  font-size:12px;
}

.contact-form{
  padding:32px;
  display:grid;
  gap:18px;
  background:#fffaf0;
  border:1px solid rgba(129,109,72,.18);
  border-radius:30px;
}

.contact-form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}

.contact-form label{
  display:grid;
  gap:8px;
}

.contact-form label > span{
  color:#4f4635;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:700;
}

.contact-form label small{
  color:#81857f;
  font-size:9px;
  font-weight:500;
  text-transform:none;
  letter-spacing:0;
}

.contact-form input,
.contact-form select,
.contact-form textarea{
  width:100%;
  box-sizing:border-box;
  border:1px solid rgba(129,109,72,.24);
  border-radius:14px;
  background:#fffdf8;
  color:#222;
  font:inherit;
  padding:14px 15px;
  outline:none;
}

.contact-form input,
.contact-form select{
  min-height:50px;
}

.contact-form textarea{
  resize:vertical;
  min-height:150px;
}

.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus{
  border-color:rgba(15,103,55,.55);
  box-shadow:0 0 0 3px rgba(15,103,55,.07);
}

.contact-form button{
  appearance:none;
  border:0;
  border-radius:999px;
  padding:16px 24px;
  background:var(--green);
  color:#fff;
  font:inherit;
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  cursor:pointer;
}

.contact-closing{
  max-width:1220px;
  margin:96px auto 0;
  padding:46px 52px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:54px;
  align-items:center;
  border:1px solid rgba(129,109,72,.18);
  border-radius:30px;
  background:#e8dfcb;
}

.contact-closing > div:first-child{
  max-width:790px;
}

.contact-closing p:last-child{
  margin:18px 0 0;
  color:#566057;
  line-height:1.7;
}

.contact-closing-links{
  min-width:190px;
  display:grid;
  gap:12px;
}

.contact-closing-links a{
  display:flex;
  justify-content:space-between;
  gap:18px;
  padding:13px 0;
  color:var(--green);
  border-bottom:1px solid rgba(15,103,55,.35);
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:10px;
  font-weight:700;
}

@media(max-width:980px){
  .contact-page-content{
    padding-top:70px;
  }

  .contact-intro{
    grid-template-columns:1fr;
    gap:22px;
  }

  .contact-methods{
    grid-template-columns:1fr 1fr;
  }

  .contact-method-location{
    grid-column:1 / -1;
    min-height:230px;
  }

  .contact-form-section{
    grid-template-columns:1fr;
    gap:34px;
  }

  .contact-closing{
    grid-template-columns:1fr;
    gap:26px;
  }
}

@media(max-width:640px){
  .contact-page-content{
    padding:58px 5vw 80px;
  }

  .contact-methods,
  .contact-form-row{
    grid-template-columns:1fr;
  }

  .contact-method-location{
    grid-column:auto;
  }

  .contact-method-card{
    min-height:0;
  }

  .contact-method-muted,
  .contact-method-card a{
    margin-top:24px;
  }

  .contact-form-section,
  .contact-closing{
    margin-top:64px;
  }

  .contact-form{
    padding:24px 20px;
    border-radius:24px;
  }

  .contact-closing{
    padding:32px 26px;
  }
}


/* v44 — live contact details */
.contact-method-actions{
  margin-top:auto;
  padding-top:24px;
  display:flex;
  flex-wrap:wrap;
  gap:10px 18px;
}

.contact-method-actions a{
  margin-top:0;
  padding-top:0;
}


/* v47 — keep the contact email on one line */
.contact-method-email h3{
  white-space:nowrap;
  font-size:clamp(18px,2.05vw,27px);
  letter-spacing:-.015em;
}

@media(max-width:980px) and (min-width:641px){
  .contact-methods{
    grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  }
}

@media(max-width:640px){
  .contact-method-email h3{
    font-size:clamp(17px,5.2vw,24px);
  }
}


/* v48 — finished Guest Policies page */
.policies-page-content{
  padding:92px 7vw 110px;
}

.policies-intro{
  max-width:1220px;
  margin:0 auto 46px;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(280px,.7fr);
  gap:70px;
  align-items:end;
}

.policies-intro h2,
.policies-group-heading h2,
.policies-acknowledgment h2{
  margin:6px 0 0;
  font-size:clamp(38px,4.7vw,62px);
  line-height:1.02;
  font-weight:400;
}

.policies-intro > p{
  margin:0 0 7px;
  max-width:550px;
  color:#566057;
  line-height:1.75;
}

.policies-summary{
  max-width:1220px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}

.policies-summary article{
  min-height:190px;
  padding:28px 24px;
  background:#efe5d0;
  border:1px solid rgba(129,109,72,.16);
  border-radius:24px;
}

.policies-summary span{
  display:block;
  margin-bottom:29px;
  color:var(--bronze);
  font-size:10px;
  letter-spacing:.15em;
}

.policies-summary strong{
  display:block;
  margin-bottom:10px;
  font-size:17px;
  line-height:1.35;
}

.policies-summary p{
  margin:0;
  color:#566057;
  line-height:1.6;
  font-size:13px;
}

.policies-group{
  max-width:1220px;
  margin:96px auto 0;
}

.policies-group-heading{
  max-width:820px;
  margin-bottom:34px;
}

.policies-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}

.policies-grid article{
  padding:29px 30px;
  background:#fffaf0;
  border:1px solid rgba(129,109,72,.18);
  border-radius:24px;
}

.policies-grid h3{
  margin:0 0 10px;
  font-size:21px;
  font-weight:600;
}

.policies-grid p{
  margin:0;
  color:#566057;
  line-height:1.7;
}

.policies-grid p strong em{
  color:inherit;
  font-weight:700;
  font-style:italic;
}

.policies-acknowledgment{
  max-width:1220px;
  margin:96px auto 0;
  padding:48px 54px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:48px;
  align-items:center;
  border:1px solid rgba(129,109,72,.18);
  border-radius:30px;
  background:#e8dfcb;
}

.policies-acknowledgment > div{
  max-width:820px;
}

.policies-acknowledgment p:last-child{
  margin:18px 0 0;
  color:#566057;
  line-height:1.7;
}

.policies-acknowledgment > a{
  width:max-content;
  color:var(--green);
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:10px;
  font-weight:700;
  border-bottom:1px solid rgba(15,103,55,.35);
  padding-bottom:6px;
}

@media(max-width:980px){
  .policies-page-content{
    padding-top:70px;
  }

  .policies-intro{
    grid-template-columns:1fr;
    gap:22px;
  }

  .policies-summary{
    grid-template-columns:1fr 1fr;
  }

  .policies-acknowledgment{
    grid-template-columns:1fr;
    gap:26px;
  }
}

@media(max-width:640px){
  .policies-page-content{
    padding:58px 5vw 80px;
  }

  .policies-summary,
  .policies-grid{
    grid-template-columns:1fr;
  }

  .policies-summary article{
    min-height:0;
  }

  .policies-group,
  .policies-acknowledgment{
    margin-top:64px;
  }

  .policies-grid article{
    padding:25px 23px;
  }

  .policies-acknowledgment{
    padding:32px 26px;
  }
}


/* v49 — consistent Contact card heading sizes */
.contact-method-card h3,
.contact-method-email h3{
  font-size:26px !important;
  line-height:1.15;
  letter-spacing:0;
}

.contact-method-email h3{
  white-space:nowrap;
}

@media(max-width:640px){
  .contact-method-card h3,
  .contact-method-email h3{
    font-size:22px !important;
  }
}


/* v51 — compact inner-page headers
   Keeps the existing design language but gets guests to useful content faster.
   Homepage hero is intentionally untouched. */

.inner-page .inner-hero{
  margin:104px 4.5vw 20px;
  padding:46px clamp(28px,5vw,72px);
  border-radius:28px;
}

.inner-page .inner-hero .eyebrow{
  margin-bottom:14px;
}

.inner-page .inner-hero h1{
  margin:5px 0 12px;
  font-size:clamp(46px,5.8vw,78px);
  line-height:.96;
}

.inner-page .inner-hero p{
  margin:0;
  max-width:720px;
  font-size:16px;
  line-height:1.55;
}

/* Reduce the second large vertical zone beneath the hero. */
.stay-page-content,
.shop-page-content,
.gift-card-page-content,
.faq-page-content,
.contact-page-content,
.policies-page-content{
  padding-top:52px;
}

/* Gallery and Privacy use the older .inner-content wrapper;
   their spacing is controlled primarily by the hero's smaller bottom margin. */

@media(max-width:980px){
  .inner-page .inner-hero{
    margin:86px 5vw 18px;
    padding:40px clamp(24px,5vw,54px);
  }

  .inner-page .inner-hero h1{
    font-size:clamp(44px,7vw,66px);
  }

  .stay-page-content,
  .shop-page-content,
  .gift-card-page-content,
  .faq-page-content,
  .contact-page-content,
  .policies-page-content{
    padding-top:44px;
  }
}

@media(max-width:640px){
  .inner-page .inner-hero{
    margin:82px 5vw 16px;
    padding:32px 24px 34px;
    border-radius:24px;
  }

  .inner-page .inner-hero .eyebrow{
    margin-bottom:10px;
  }

  .inner-page .inner-hero h1{
    margin:4px 0 10px;
    font-size:clamp(40px,12vw,54px);
    line-height:.98;
  }

  .inner-page .inner-hero p{
    font-size:15px;
    line-height:1.5;
  }

  .stay-page-content,
  .shop-page-content,
  .gift-card-page-content,
  .faq-page-content,
  .contact-page-content,
  .policies-page-content{
    padding-top:36px;
  }
}


/* v52 — finished Privacy Policy page */
.privacy-page-content{
  padding:52px 7vw 110px;
}

.privacy-intro{
  max-width:1220px;
  margin:0 auto 44px;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(280px,.7fr);
  gap:70px;
  align-items:end;
}

.privacy-intro h2,
.privacy-group-heading h2,
.privacy-contact h2{
  margin:6px 0 0;
  font-size:clamp(36px,4.4vw,58px);
  line-height:1.03;
  font-weight:400;
}

.privacy-intro-copy > p:first-child{
  margin:0;
  color:#566057;
  line-height:1.75;
}

.privacy-effective{
  margin:14px 0 0;
  color:var(--bronze);
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.11em;
}

.privacy-summary{
  max-width:1220px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}

.privacy-summary article{
  min-height:205px;
  padding:28px 24px;
  background:#efe5d0;
  border:1px solid rgba(129,109,72,.16);
  border-radius:24px;
}

.privacy-summary span{
  display:block;
  margin-bottom:28px;
  color:var(--bronze);
  font-size:10px;
  letter-spacing:.15em;
}

.privacy-summary h3{
  margin:0 0 10px;
  font-size:18px;
  font-weight:600;
}

.privacy-summary p{
  margin:0;
  color:#566057;
  line-height:1.62;
  font-size:13px;
}

.privacy-group{
  max-width:1220px;
  margin:88px auto 0;
}

.privacy-group-heading{
  max-width:850px;
  margin-bottom:32px;
}

.privacy-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}

.privacy-grid article{
  padding:28px 30px;
  background:#fffaf0;
  border:1px solid rgba(129,109,72,.18);
  border-radius:24px;
}

.privacy-grid h3{
  margin:0 0 10px;
  font-size:20px;
  font-weight:600;
}

.privacy-grid p{
  margin:0;
  color:#566057;
  line-height:1.72;
}

.privacy-grid a{
  color:var(--green);
  text-decoration:underline;
  text-underline-offset:3px;
}

.privacy-provider-list{
  display:grid;
  grid-template-columns:1fr;
  border:1px solid rgba(129,109,72,.18);
  border-radius:24px;
  overflow:hidden;
  background:#fffaf0;
}

.privacy-provider-list > div{
  display:grid;
  grid-template-columns:minmax(240px,.42fr) minmax(0,1fr);
  gap:36px;
  padding:22px 26px;
}

.privacy-provider-list > div + div{
  border-top:1px solid rgba(129,109,72,.18);
}

.privacy-provider-list strong{
  font-size:14px;
}

.privacy-provider-list span{
  color:#566057;
  line-height:1.62;
}

.privacy-provider-note{
  margin:17px 0 0;
  color:#777c77;
  font-size:11px;
  line-height:1.6;
}

.privacy-contact{
  max-width:1220px;
  margin:88px auto 0;
  padding:46px 52px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:48px;
  align-items:center;
  border:1px solid rgba(129,109,72,.18);
  border-radius:30px;
  background:#e8dfcb;
}

.privacy-contact > div{
  max-width:800px;
}

.privacy-contact p:last-child{
  margin:18px 0 0;
  color:#566057;
  line-height:1.7;
}

.privacy-contact > a{
  width:max-content;
  color:var(--green);
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:10px;
  font-weight:700;
  border-bottom:1px solid rgba(15,103,55,.35);
  padding-bottom:6px;
}

.privacy-review-note{
  max-width:1220px;
  margin:22px auto 0;
  color:#777c77;
  font-size:10px;
  line-height:1.6;
}

@media(max-width:980px){
  .privacy-page-content{
    padding-top:44px;
  }

  .privacy-intro{
    grid-template-columns:1fr;
    gap:22px;
  }

  .privacy-summary{
    grid-template-columns:1fr 1fr;
  }

  .privacy-provider-list > div{
    grid-template-columns:1fr;
    gap:7px;
  }

  .privacy-contact{
    grid-template-columns:1fr;
    gap:26px;
  }
}

@media(max-width:640px){
  .privacy-page-content{
    padding:36px 5vw 80px;
  }

  .privacy-summary,
  .privacy-grid{
    grid-template-columns:1fr;
  }

  .privacy-summary article{
    min-height:0;
  }

  .privacy-group,
  .privacy-contact{
    margin-top:64px;
  }

  .privacy-grid article{
    padding:24px 22px;
  }

  .privacy-provider-list > div{
    padding:19px 21px;
  }

  .privacy-contact{
    padding:32px 26px;
  }
}


/* ============================================================
   v53 — FULL MOBILE / TABLET CONSISTENCY PASS
   Final overrides intentionally live at the end of this file.
   ============================================================ */

html,
body{
  max-width:100%;
  overflow-x:hidden;
}

/* Shared footer currently uses .footer-bottom. */
.footer-bottom{
  grid-column:1 / 3;
  display:flex;
  justify-content:space-between;
  gap:24px;
  padding-top:20px;
  border-top:1px solid rgba(255,255,255,.12);
  color:rgba(255,255,255,.45);
  font-size:10px;
  line-height:1.5;
  letter-spacing:.03em;
}

.footer-currency{
  flex:1;
  text-align:center;
}

.tmr-currency-code{
  display:inline-block;
  margin-left:.18em;
  font-size:.68em;
  font-weight:650;
  letter-spacing:.075em;
  line-height:1;
  white-space:nowrap;
}

@media(max-width:980px){
  input,
  select,
  textarea,
  button{
    max-width:100%;
  }

  .booking-bar input,
  .booking-bar select,
  .booking-drawer-form input,
  .booking-drawer-form select,
  .closing-mini-booking input,
  .closing-mini-booking select,
  .contact-form input,
  .contact-form select,
  .contact-form textarea{
    min-width:0;
  }

  .stay-coming-soon,
  .shop-note,
  .gift-card-note{
    gap:28px;
  }

  .inner-page .inner-content{
    padding-left:5vw;
    padding-right:5vw;
  }
}

@media(max-width:640px){
  body{
    padding-bottom:94px !important;
  }

  /* Shared header */
  .site-header,
  .inner-page .site-header{
    height:72px;
    padding-left:16px;
    padding-right:16px;
    gap:8px;
  }

  .site-header.scrolled,
  .inner-page .site-header.scrolled{
    height:62px;
    padding-left:16px;
    padding-right:16px;
  }

  .brand img{
    width:142px;
  }

  .site-header.scrolled .brand img{
    width:132px;
  }

  .lang-switch{
    font-size:8px;
    gap:2px;
  }

  .lang-switch a{
    padding-left:1px;
    padding-right:1px;
  }

  .menu-toggle{
    width:32px;
    height:32px;
    padding:6px;
  }

  .main-nav.open{
    top:72px;
    left:12px;
    right:12px;
    padding:24px 20px;
    gap:18px;
    border-radius:20px;
    box-shadow:0 18px 44px rgba(0,0,0,.24);
    max-height:calc(100vh - 92px);
    overflow-y:auto;
  }

  .site-header.scrolled .main-nav.open{
    top:62px;
  }

  .main-nav.open a{
    font-size:12px;
    padding:3px 0;
  }

  /* Persistent mobile booking CTA on every page. */
  .floating-book-btn{
    display:none !important;
  }

  .mobile-book{
    display:block !important;
    position:fixed;
    z-index:35;
    left:12px;
    right:12px;
    bottom:12px;
    min-height:58px;
    padding:19px 18px;
    background:var(--green);
    color:#fff;
    border:1px solid rgba(255,255,255,.14);
    border-radius:999px;
    box-shadow:0 14px 32px rgba(15,103,55,.28);
    text-align:center;
    text-transform:uppercase;
    letter-spacing:.14em;
    font-size:11px;
    font-weight:700;
  }

  /* 16px controls prevent iOS focus zoom. */
  .booking-bar input,
  .booking-bar select,
  .booking-drawer-form input,
  .booking-drawer-form select,
  .closing-mini-booking input,
  .closing-mini-booking select,
  .contact-form input,
  .contact-form select,
  .contact-form textarea{
    font-size:16px !important;
  }

  input[type="date"],
  select{
    width:100%;
    min-width:0;
  }

  /* Homepage */
  .hero-content{
    left:6vw;
    right:6vw;
  }

  .hero h1{
    font-size:clamp(48px,14vw,56px);
  }

  .hero-lede{
    max-width:90%;
  }

  .booking-shell{
    padding-left:5vw;
    padding-right:5vw;
  }

  .booking-bar{
    border-radius:20px;
  }

  .booking-bar label{
    min-width:0;
  }

  .cabin-card,
  .cabin-card.large{
    min-height:440px;
  }

  .cabin-overlay{
    inset:auto 10px 10px;
    padding:22px 20px;
    gap:16px;
  }

  .cabin-overlay h3{
    font-size:30px;
  }

  .feature-media{
    min-height:400px;
  }

  .feature-copy{
    padding:58px 7vw;
  }

  .feature-copy h2{
    font-size:clamp(42px,12vw,50px);
  }

  .gallery-grid{
    grid-template-rows:repeat(3,190px);
    gap:10px;
  }

  .product-row{
    gap:20px 10px;
  }

  .closing-cta{
    min-height:680px;
  }

  .closing-mini-booking{
    max-width:320px;
  }

  .closing-mini-booking label{
    padding:12px 14px;
  }

  /* Inner pages */
  .inner-page .inner-content{
    padding:12px 5vw 80px;
  }

  .local-gallery-grid{
    margin-top:12px;
    gap:12px;
  }

  .local-gallery-grid button{
    border-radius:18px;
  }

  .stay-coming-soon,
  .shop-note,
  .gift-card-note{
    flex-direction:column;
    gap:20px;
  }

  .stay-coming-soon img,
  .shop-note img,
  .gift-card-note img{
    align-self:flex-end;
  }

  /* Gift cards */
  .gift-card-preview-inner{
    padding:24px;
  }

  .gift-card-brand{
    font-size:18px;
    letter-spacing:.09em;
  }

  .gift-card-label{
    font-size:9px;
  }

  .gift-card-location{
    right:24px;
    bottom:24px;
    max-width:115px;
    text-align:right;
    font-size:8px;
    line-height:1.35;
  }

  /* Contact */
  .contact-method-email h3{
    font-size:clamp(16px,4.65vw,19px) !important;
    white-space:nowrap;
    letter-spacing:-.02em;
  }

  .contact-method-actions{
    gap:10px 16px;
  }

  /* Footer */
  footer{
    margin-left:5vw;
    margin-right:5vw;
    padding:40px 24px 28px;
    gap:26px;
    border-radius:26px 26px 0 0;
  }

  .footer-links{
    display:grid;
    grid-template-columns:1fr;
    gap:13px;
    justify-content:start;
  }

  .footer-lang{
    width:max-content;
    padding-left:0;
    border-left:0;
  }

  .footer-bottom{
    grid-column:1;
    flex-direction:column;
    gap:5px;
    padding-top:18px;
  }
}

@media(max-width:360px){
  .site-header,
  .inner-page .site-header{
    padding-left:12px;
    padding-right:12px;
    gap:6px;
  }

  .site-header.scrolled,
  .inner-page .site-header.scrolled{
    padding-left:12px;
    padding-right:12px;
  }

  .brand img{
    width:126px;
  }

  .site-header.scrolled .brand img{
    width:120px;
  }

  .lang-switch{
    font-size:7px;
  }

  .menu-toggle{
    width:30px;
    height:30px;
    padding:5px;
  }

  .inner-page .inner-hero{
    padding-left:20px;
    padding-right:20px;
  }

  .contact-method-email h3{
    font-size:15px !important;
  }

  .mobile-book{
    left:9px;
    right:9px;
    bottom:9px;
  }
}


/* v54 — add breathing room between stacked Stay tiles on phones */
@media(max-width:640px){
  .cabin-grid{
    gap:16px !important;
  }

  .cabin-card,
  .cabin-card.large{
    margin-bottom:0 !important;
  }
}


/* v55 — correct mobile cabin-card spacing
   The older phone rule changed .cabins-grid to display:block, so CSS gap
   could not create spacing between the cards. Restore a one-column grid. */
@media(max-width:640px){
  .cabins-grid{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:16px !important;
  }

  .cabins-grid .cabin-card.large{
    grid-column:auto !important;
  }

  .cabins-grid .cabin-card{
    margin:0 !important;
  }
}


/* v57 — warmer emphasis for the homepage story statement */
.intro-copy h2 em{
  color:#C8AE7A !important;
}


/* v60 — Stay access-note emphasis */
.stay-access-note strong em{
  font-weight:700;
  font-style:italic;
  color:inherit !important;
}


/* v61 — three launch products on the Shop page */
@media(min-width:701px){
  .shop-product-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

.shop-product-coffee{
  background:
    radial-gradient(circle at 50% 42%, rgba(255,250,240,.96) 0 18%, transparent 19%),
    linear-gradient(145deg,#d8c8aa,#b89c73);
}


/* v76 — WooCommerce storefront foundation */
.tmr-live-product-footer{align-items:flex-end}
.tmr-product-meta{display:grid;gap:3px}.tmr-product-price{font-size:21px;color:var(--green);font-weight:500}.tmr-stock-label{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#6d746e}
.tmr-product-button,.shop-product-footer .tmr-product-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:999px;background:var(--green);color:white;text-decoration:none;text-transform:uppercase;font-size:10px;letter-spacing:.12em;border:1px solid var(--green);white-space:nowrap}
.tmr-product-button:hover{background:#0a512b;color:white}.tmr-product-button.is-disabled{pointer-events:none;opacity:.45}.tmr-product-button.admin-preview{background:transparent;color:var(--green)}
.shop-product-visual.has-product-image{background:#efe9dc;padding:0}.shop-product-visual.has-product-image::before,.shop-product-visual.has-product-image::after{display:none}.shop-product-visual.has-product-image>img{position:static;width:100%;height:100%;object-fit:cover;opacity:1;filter:none}
.tmr-product-detail-wrap{max-width:1240px;margin:0 auto;padding:70px 7vw 120px}.tmr-back-to-shop{display:inline-flex;margin-bottom:28px;color:var(--bronze);font-size:11px;letter-spacing:.13em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid rgba(129,109,72,.45);padding-bottom:5px}.tmr-product-detail{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);gap:58px;align-items:start}.tmr-product-gallery{min-height:620px;border-radius:28px;overflow:hidden}.tmr-product-gallery.has-product-image{min-height:0;aspect-ratio:1/1}.tmr-product-purchase-panel{padding:34px 0}.tmr-product-purchase-panel h2{font-size:clamp(38px,4vw,60px);line-height:1.02;font-weight:300;letter-spacing:-.03em;margin:4px 0 16px;color:#183b2a}.tmr-product-price-large{font-size:26px;color:var(--bronze);margin-bottom:24px}.tmr-product-description{font-size:17px;line-height:1.7;color:#4c574f;max-width:560px}.tmr-product-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#ded8c9;border:1px solid #ded8c9;border-radius:16px;overflow:hidden;margin:30px 0}.tmr-product-facts>div{background:#fbf6ea;padding:16px 14px;display:grid;gap:5px}.tmr-product-facts strong{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--bronze)}.tmr-product-facts span{font-size:13px;color:#2f3e34}.tmr-store-gate{border-radius:16px;background:#f4ecdb;border:1px solid #ddcfb1;padding:20px;display:grid;gap:5px;color:#294333}.tmr-store-gate.admin{background:#eef5f0;border-color:#c6d9ca}.tmr-store-gate strong{font-size:15px}.tmr-store-gate span{font-size:13px;line-height:1.5}.tmr-owner-preview-note{font-size:11px;color:#737b75;line-height:1.5;margin-top:12px}.tmr-add-to-cart-wrap form.cart{display:flex;gap:12px;align-items:stretch;margin:0}.tmr-add-to-cart-wrap .quantity .qty{height:52px;width:72px;border:1px solid #c9c3b7;border-radius:10px;background:white;padding:0 10px}.tmr-add-to-cart-wrap .single_add_to_cart_button{min-height:52px;border:0;border-radius:999px;background:var(--green)!important;color:white!important;padding:0 28px!important;text-transform:uppercase;letter-spacing:.12em;font-size:10px!important;font-weight:600!important}.tmr-commerce-content{max-width:1180px;margin:0 auto;padding:70px 7vw 120px}.tmr-commerce-content .woocommerce,.tmr-commerce-content .wp-block-woocommerce-cart,.tmr-commerce-content .wp-block-woocommerce-checkout{font-family:inherit}.tmr-commerce-content table.shop_table{border:1px solid #ddd5c3!important;border-radius:14px!important;overflow:hidden}.tmr-commerce-content table.shop_table th{color:#173d2b;font-weight:600}.tmr-commerce-content .button,.tmr-commerce-content button,.tmr-commerce-content .wc-block-components-button{border-radius:999px!important;min-height:46px!important;background:var(--green)!important;color:white!important;border:1px solid var(--green)!important;text-transform:uppercase!important;letter-spacing:.1em!important;font-size:10px!important;text-decoration:none!important}.tmr-commerce-content input,.tmr-commerce-content select,.tmr-commerce-content textarea,.tmr-commerce-content .wc-block-components-text-input input{border-radius:9px!important;border:1px solid #c9c3b7!important;min-height:46px!important;background:white!important}.tmr-commerce-content .cart_totals,.tmr-commerce-content .woocommerce-checkout-review-order,.tmr-commerce-content .wc-block-components-sidebar{background:#fbf5e8;border-radius:18px;padding:20px}.tmr-commerce-content .woocommerce-message,.tmr-commerce-content .woocommerce-info{border-top-color:var(--green);background:#f3f7f4}.tmr-commerce-content a{color:var(--green)}
@media(max-width:900px){.tmr-product-detail{grid-template-columns:1fr;gap:20px}.tmr-product-gallery{min-height:520px}.tmr-product-purchase-panel{padding-top:15px}.tmr-product-facts{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:640px){.tmr-product-detail-wrap,.tmr-commerce-content{padding:50px 6vw 90px}.tmr-product-gallery{min-height:420px;border-radius:22px}.tmr-product-facts{grid-template-columns:1fr}.tmr-add-to-cart-wrap form.cart{flex-direction:column}.tmr-add-to-cart-wrap .quantity .qty{width:100%}.tmr-live-product-footer{align-items:stretch}.tmr-product-button{width:100%}}


/* v77 — product alignment, cart visibility and checkout fulfillment */
@media (min-width:981px){
  .site-header{
    grid-template-columns:220px 1fr auto auto auto;
    gap:24px;
  }
}

.header-cart{
  justify-self:end;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:38px;
  padding:0 12px;
  border:1px solid rgba(255,255,255,.36);
  border-radius:999px;
  color:white;
  text-transform:uppercase;
  letter-spacing:.11em;
  font-size:10px;
  white-space:nowrap;
}
.header-cart:hover{border-color:rgba(255,255,255,.8);color:white}
.header-cart-icon{display:none}
.header-cart-count{
  display:grid;
  place-items:center;
  min-width:20px;
  height:20px;
  padding:0 5px;
  border-radius:999px;
  background:var(--cream);
  color:var(--green);
  font-size:10px;
  letter-spacing:0;
  font-weight:700;
}

.tmr-product-detail{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:34px;
  align-items:stretch;
}
.tmr-product-gallery,
.tmr-product-purchase-panel{
  min-height:560px;
  border-radius:28px;
  border:1px solid rgba(129,109,72,.14);
  box-sizing:border-box;
}
.tmr-product-gallery{
  background:#f1eadf;
  padding:42px;
  display:grid;
  place-items:center;
  overflow:hidden;
}
.tmr-product-gallery.has-product-image{
  min-height:560px;
  aspect-ratio:auto;
}
.tmr-product-gallery.has-product-image img{
  display:block;
  width:100%;
  height:100%;
  max-width:470px;
  max-height:470px;
  object-fit:contain;
  object-position:center;
  margin:auto;
}
.tmr-product-purchase-panel{
  background:rgba(255,255,255,.36);
  padding:44px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.tmr-product-purchase-panel .eyebrow{margin-bottom:18px}
.tmr-product-notices{margin-bottom:18px}
.tmr-product-notices .woocommerce-message,
.tmr-product-notices .woocommerce-error,
.tmr-product-notices .woocommerce-info{
  border:1px solid rgba(15,103,55,.2);
  border-top:3px solid var(--green);
  background:#f4f8f5;
  border-radius:12px;
  padding:14px 18px 14px 46px;
  margin:0;
}
.tmr-product-notices .button{
  color:var(--green);
  font-weight:700;
}

.tmr-fulfillment-banner{
  display:grid;
  gap:5px;
  margin-bottom:24px;
  padding:18px 20px;
  border:1px solid #dccfb6;
  border-radius:15px;
  background:#fbf4e5;
  color:#314238;
}
.tmr-fulfillment-banner strong{
  color:var(--green);
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.11em;
}
.tmr-fulfillment-banner span{font-size:14px;line-height:1.55}

.tmr-commerce-content .woocommerce-cart-form,
.tmr-commerce-content .cart-collaterals,
.tmr-commerce-content .woocommerce-checkout{
  margin-top:8px;
}
.tmr-commerce-content .woocommerce-cart-form{
  background:rgba(255,255,255,.42);
  border:1px solid rgba(129,109,72,.14);
  border-radius:18px;
  padding:18px;
}
.tmr-commerce-content .woocommerce-cart-form table.shop_table{
  margin-bottom:0;
}
.tmr-commerce-content .product-thumbnail img{
  width:88px!important;
  height:88px!important;
  object-fit:contain;
  border-radius:12px;
  background:#f0e8dc;
}
.tmr-commerce-content .product-name a{
  font-size:15px;
  font-weight:600;
}
.tmr-commerce-content .cart_totals h2{
  color:var(--green);
  font-size:24px;
  font-weight:400;
}
.tmr-commerce-content .wc-proceed-to-checkout .checkout-button{
  display:flex!important;
  justify-content:center;
  align-items:center;
  width:100%;
  box-sizing:border-box;
}

.tmr-checkout-fulfillment{
  margin:24px 0;
  padding:22px;
  border:1px solid #d8ccb3;
  border-radius:16px;
  background:#fbf4e5;
}
.tmr-checkout-fulfillment h3{
  margin:0 0 5px;
  color:var(--green);
  font-size:20px;
  font-weight:500;
}
.tmr-checkout-fulfillment>p{
  margin:0 0 16px;
  color:#566057;
  line-height:1.55;
}
.tmr-checkout-fulfillment .woocommerce-input-wrapper{
  display:grid;
  gap:10px;
}
.tmr-checkout-fulfillment label.radio{
  display:flex;
  align-items:center;
  gap:10px;
  background:white;
  border:1px solid #ded6c7;
  border-radius:11px;
  padding:13px 14px;
  cursor:pointer;
}
.tmr-checkout-fulfillment input[type="radio"]{
  min-height:0!important;
  width:auto!important;
  margin:0!important;
}

@media (max-width:980px){
  .header-cart-label{display:none}
  .header-cart-icon{display:block}
  .header-cart{
    position:relative;
    min-width:38px;
    min-height:38px;
    padding:0;
    border-color:rgba(255,255,255,.5);
  }
  .header-cart-count{
    position:absolute;
    top:-6px;
    right:-6px;
    min-width:17px;
    height:17px;
    padding:0 4px;
    font-size:9px;
    border:2px solid var(--green);
  }
  .site-header.scrolled .header-cart-count{border-color:#0b2f1c}
  .tmr-product-gallery,
  .tmr-product-gallery.has-product-image,
  .tmr-product-purchase-panel{min-height:0}
  .tmr-product-gallery{aspect-ratio:1/1;padding:32px}
  .tmr-product-purchase-panel{padding:32px}
}
@media (max-width:640px){
  .tmr-product-detail-wrap{padding-top:36px}
  .tmr-product-gallery{padding:24px;border-radius:20px}
  .tmr-product-purchase-panel{padding:26px;border-radius:20px}
  .tmr-commerce-content .woocommerce-cart-form{padding:10px}
}


/* v78 — persistent cart reminder */
.tmr-cart-reminder{
  position:fixed;
  z-index:42;
  right:22px;
  bottom:22px;
  display:flex;
  align-items:stretch;
  background:#0b2f1c;
  color:white;
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  box-shadow:0 16px 42px rgba(11,47,28,.28);
  overflow:hidden;
  opacity:0;
  pointer-events:none;
  transform:translateY(18px);
  transition:opacity .2s ease,transform .2s ease;
}
.tmr-cart-reminder.is-visible{
  opacity:1;
  pointer-events:auto;
  transform:translateY(0);
}
.tmr-cart-reminder-main{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 14px 10px 11px;
  color:white;
  text-decoration:none;
}
.tmr-cart-reminder-count{
  display:grid;
  place-items:center;
  min-width:30px;
  height:30px;
  padding:0 5px;
  border-radius:999px;
  background:var(--cream);
  color:var(--green);
  font-size:12px;
  font-weight:700;
}
.tmr-cart-reminder-copy{
  display:grid;
  gap:1px;
  min-width:78px;
}
.tmr-cart-reminder-copy strong{
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.11em;
  font-weight:600;
}
.tmr-cart-reminder-copy small{
  font-size:12px;
  color:rgba(255,255,255,.72);
}
.tmr-cart-reminder-checkout{
  display:flex;
  align-items:center;
  padding:0 18px;
  background:var(--cream);
  color:var(--green);
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:10px;
  font-weight:700;
}
.tmr-cart-reminder-checkout:hover{background:#f5dfb5;color:var(--green)}

@media(max-width:640px){
  .tmr-cart-reminder{
    left:12px;
    right:12px;
    bottom:82px;
    justify-content:space-between;
  }
  .tmr-cart-reminder-main{flex:1}
  .tmr-cart-reminder-checkout{padding:0 16px}
}


/* v79 — cart/checkout rendering and sticky-CTA priority */
body.tmr-cart-has-items .bottom-booking-shell{
  display:none!important;
}
@media(max-width:640px){
  body.tmr-cart-has-items .mobile-book{
    display:none!important;
  }
  body.tmr-cart-has-items .tmr-cart-reminder{
    bottom:12px;
  }
}

.tmr-commerce-content .woocommerce{
  width:100%;
}
.tmr-commerce-content .woocommerce-notices-wrapper{
  margin-bottom:18px;
}
.tmr-commerce-content .woocommerce-message,
.tmr-commerce-content .woocommerce-error,
.tmr-commerce-content .woocommerce-info{
  border:1px solid rgba(15,103,55,.16)!important;
  border-top:3px solid var(--green)!important;
  border-radius:12px!important;
  background:#f4f8f5!important;
  color:#2e4336!important;
}
.tmr-commerce-content .woocommerce-error{
  border-top-color:#9f493f!important;
  background:#fbf3f1!important;
}
.tmr-commerce-content .shop_table{
  background:white;
}
.tmr-commerce-content .cart-collaterals{
  margin-top:28px;
}
.tmr-commerce-content .cart_totals{
  margin-left:auto;
  max-width:480px;
}
.tmr-commerce-content .woocommerce-checkout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(360px,.78fr);
  gap:34px;
  align-items:start;
}
.tmr-commerce-content .woocommerce-checkout #customer_details{
  display:block;
}
.tmr-commerce-content .woocommerce-checkout #customer_details .col-1,
.tmr-commerce-content .woocommerce-checkout #customer_details .col-2{
  width:100%;
  float:none;
}
.tmr-commerce-content .woocommerce-checkout #order_review_heading,
.tmr-commerce-content .woocommerce-checkout #order_review{
  grid-column:2;
}
.tmr-commerce-content .woocommerce-checkout #customer_details{
  grid-column:1;
  grid-row:1 / span 3;
}
.tmr-commerce-content .woocommerce-billing-fields,
.tmr-commerce-content .woocommerce-additional-fields,
.tmr-commerce-content #order_review{
  background:rgba(255,255,255,.42);
  border:1px solid rgba(129,109,72,.14);
  border-radius:18px;
  padding:22px;
  box-sizing:border-box;
}
.tmr-commerce-content #order_review_heading{
  margin:0 0 12px;
  color:var(--green);
  font-size:24px;
  font-weight:400;
}
.tmr-commerce-content .woocommerce-billing-fields h3,
.tmr-commerce-content .woocommerce-additional-fields h3{
  color:var(--green);
  font-size:24px;
  font-weight:400;
  margin-top:0;
}
.tmr-commerce-content .form-row{
  box-sizing:border-box;
}
.tmr-commerce-content .woocommerce-checkout-payment{
  border-radius:14px!important;
  background:#f7f0e2!important;
}
.tmr-commerce-content .place-order{
  padding:18px!important;
}
.tmr-commerce-content #place_order{
  width:100%;
}

@media(max-width:900px){
  .tmr-commerce-content .woocommerce-checkout{
    grid-template-columns:1fr;
    gap:20px;
  }
  .tmr-commerce-content .woocommerce-checkout #customer_details,
  .tmr-commerce-content .woocommerce-checkout #order_review_heading,
  .tmr-commerce-content .woocommerce-checkout #order_review{
    grid-column:1;
    grid-row:auto;
  }
  .tmr-commerce-content .cart_totals{
    max-width:none;
  }
}


/* v80 — storefront polish */
.tmr-product-notices .woocommerce-message,
.tmr-product-notices .woocommerce-info{
  border:0!important;
  border-left:3px solid var(--green)!important;
  border-radius:10px!important;
  background:#f2f6f2!important;
  box-shadow:none!important;
  padding:14px 18px 14px 42px!important;
  color:#314238!important;
}
.tmr-product-notices .woocommerce-message .button,
.tmr-product-notices .woocommerce-info .button{
  display:none!important;
}
.tmr-product-notices .woocommerce-message::before{
  color:var(--green)!important;
  left:16px!important;
}

.tmr-continue-shopping{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:2px 0 22px;
  color:var(--bronze)!important;
  text-decoration:none!important;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:10px;
  border-bottom:1px solid rgba(129,109,72,.5);
  padding-bottom:5px;
}
.tmr-continue-shopping:hover{
  color:var(--green)!important;
  border-bottom-color:var(--green);
}

.tmr-commerce-content .coupon{
  display:flex!important;
  align-items:stretch;
  gap:10px;
  width:min(100%,520px);
}
.tmr-commerce-content .coupon #coupon_code{
  flex:1 1 280px!important;
  width:auto!important;
  min-width:220px!important;
  max-width:none!important;
  margin:0!important;
}
.tmr-commerce-content .coupon .button{
  flex:0 0 auto;
  white-space:nowrap;
}

body.tmr-cart-total-equals-subtotal .tmr-commerce-content .cart_totals .cart-subtotal{
  display:none;
}

/* The default empty-cart button felt detached; make it a simple inline link. */
.tmr-commerce-content .return-to-shop{
  margin-top:18px;
}
.tmr-commerce-content .return-to-shop .button{
  display:inline-flex!important;
  width:auto!important;
  min-height:auto!important;
  padding:0 0 6px!important;
  border:0!important;
  border-bottom:1px solid rgba(129,109,72,.55)!important;
  border-radius:0!important;
  background:transparent!important;
  color:var(--bronze)!important;
  box-shadow:none!important;
  text-transform:uppercase!important;
  letter-spacing:.12em!important;
  font-size:10px!important;
}
.tmr-commerce-content .return-to-shop .button:hover{
  color:var(--green)!important;
  border-bottom-color:var(--green)!important;
}

/* Fulfillment is informational now, so remove any old form-like appearance. */
.tmr-checkout-fulfillment{display:none!important;}

@media(max-width:640px){
  .tmr-commerce-content .coupon{
    display:grid!important;
    grid-template-columns:1fr;
    width:100%;
  }
  .tmr-commerce-content .coupon #coupon_code{
    width:100%!important;
    min-width:0!important;
  }
  .tmr-commerce-content .coupon .button{
    width:100%!important;
  }
}

.tmr-js .tmr-cart-page form.woocommerce-cart-form:not(.tmr-update-failed) button[name="update_cart"]{
  display:none!important;
}
.tmr-cart-page form.woocommerce-cart-form.tmr-is-updating{
  opacity:.62;
  pointer-events:none;
}


/* v81 — understated commerce notices + reliable live cart feedback */
.tmr-commerce-content .woocommerce-message,
.tmr-commerce-content .woocommerce-info,
.tmr-commerce-content .woocommerce-error{
  border:0!important;
  border-left:3px solid var(--green)!important;
  border-radius:10px!important;
  background:#f2f6f2!important;
  box-shadow:none!important;
  padding:14px 18px!important;
  color:#314238!important;
  min-height:0!important;
}
.tmr-commerce-content .woocommerce-error{
  border-left-color:#9f493f!important;
  background:#fbf3f1!important;
}
.tmr-commerce-content .woocommerce-message::before,
.tmr-commerce-content .woocommerce-info::before,
.tmr-commerce-content .woocommerce-error::before{
  display:none!important;
}
.tmr-commerce-content .woocommerce-message .button,
.tmr-commerce-content .woocommerce-info .button{
  display:none!important;
}
.tmr-commerce-content .woocommerce-message a,
.tmr-commerce-content .woocommerce-info a,
.tmr-commerce-content .woocommerce-error a{
  color:var(--green)!important;
  font-weight:650;
  text-decoration:none;
  border-bottom:1px solid rgba(15,103,55,.35);
}

/* We already provide a consistent Continue shopping link at the top of Cart. */
.tmr-cart-page .return-to-shop{
  display:none!important;
}

/* Give the cart a subtle visual state while the live quantity update is running. */
.tmr-cart-page form.woocommerce-cart-form.tmr-is-updating{
  opacity:.55;
  transition:opacity .15s ease;
}
.tmr-cart-page form.woocommerce-cart-form.tmr-is-updating::after{
  content:"Updating cart…";
  display:block;
  margin-top:10px;
  color:var(--bronze);
  font-size:10px;
  letter-spacing:.1em;
  text-transform:uppercase;
}

/* If live updating fails, restore WooCommerce's native Update Cart button. */
.tmr-js .tmr-cart-page form.woocommerce-cart-form:not(.tmr-update-failed) button[name="update_cart"]{
  display:none!important;
}
.tmr-cart-page form.woocommerce-cart-form.tmr-update-failed button[name="update_cart"]{
  display:inline-flex!important;
}


/* v82 — compact Shop landing: products first */
.shop-page-content.shop-page-content-compact{
  padding-top:46px;
}
.shop-products-section.shop-products-section-first{
  margin-top:0;
}
.shop-products-heading{
  max-width:1220px;
  margin:0 auto 28px;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(340px,.72fr);
  gap:70px;
  align-items:end;
}
.shop-products-heading h2{
  margin:6px 0 0;
  font-size:clamp(38px,4.8vw,64px);
  line-height:1.02;
  font-weight:400;
}
.shop-reservation-note{
  align-self:end;
  padding:0 0 4px;
}
.shop-reservation-note strong{
  display:block;
  margin-bottom:8px;
  color:var(--green);
  font-size:16px;
  font-weight:600;
}
.shop-reservation-note p{
  margin:0;
  color:#566057;
  line-height:1.65;
  font-size:14px;
}
.shop-reservation-note small{
  display:block;
  margin-top:9px;
  color:var(--bronze);
  font-size:11px;
  line-height:1.45;
}
.shop-products-section-first .shop-product-grid{
  margin-top:0;
}

/* Retired oversized intro/access modules are intentionally hidden if stale cached markup appears. */
.shop-page-content-compact > .shop-page-intro,
.shop-page-content-compact > .shop-access-card{
  display:none!important;
}

@media(max-width:980px){
  .shop-page-content.shop-page-content-compact{
    padding-top:38px;
  }
  .shop-products-heading{
    grid-template-columns:1fr;
    gap:18px;
    align-items:start;
  }
  .shop-reservation-note{
    max-width:720px;
  }
}
@media(max-width:700px){
  .shop-page-content.shop-page-content-compact{
    padding-top:30px;
  }
  .shop-products-heading{
    margin-bottom:22px;
  }
  .shop-reservation-note strong{
    font-size:15px;
  }
  .shop-reservation-note p{
    font-size:13px;
  }
}


/* v83 — aligned product-card actions + single-line Shop hero note */
.shop-product-card{
  display:flex;
  flex-direction:column;
  height:100%;
}
.shop-product-body{
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
}
.shop-product-footer{
  margin-top:auto;
}
.shop-product-body > p:not(.shop-product-status){
  margin-bottom:22px;
}

/* Keep the short Shop hero supporting line on one line at desktop widths. */
@media(min-width:981px){
  .shop-page .shop-hero > p:last-child{
    max-width:none;
    white-space:nowrap;
  }
}
@media(max-width:980px){
  .shop-page .shop-hero > p:last-child{
    white-space:normal;
  }
}


/* v85 — live item removal + mobile cart polish */
.tmr-commerce-content a.remove{
  display:inline-grid!important;
  place-items:center;
  width:34px!important;
  height:34px!important;
  min-width:34px!important;
  border-radius:999px!important;
  border:1px solid rgba(129,109,72,.24)!important;
  color:var(--bronze)!important;
  background:transparent!important;
  text-decoration:none!important;
  font-size:20px!important;
  line-height:1!important;
}
.tmr-commerce-content a.remove:hover{
  border-color:var(--green)!important;
  color:var(--green)!important;
  background:#f3f7f4!important;
}

@media(max-width:700px){
  .tmr-commerce-content{
    padding-left:5vw;
    padding-right:5vw;
  }

  .tmr-commerce-content .woocommerce-cart-form{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }

  .tmr-commerce-content table.shop_table{
    min-width:620px;
  }

  .tmr-commerce-content .product-thumbnail img{
    width:68px!important;
    height:68px!important;
  }

  .tmr-commerce-content .quantity .qty{
    min-width:68px;
  }

  .tmr-cart-reminder{
    left:10px;
    right:10px;
    bottom:10px;
    max-width:none;
  }

  .tmr-cart-reminder-main{
    padding-left:10px;
    padding-right:10px;
  }

  .tmr-cart-reminder-checkout{
    padding:0 14px;
  }
}


/* v86 — product fact layout */
.tmr-product-fact-fulfillment{
  grid-column:span 2;
}
@media(max-width:640px){
  .tmr-product-fact-fulfillment{
    grid-column:auto;
  }
}


/* v87 — checkout country/region SelectWoo cleanup */
.tmr-checkout-page .select2-container{
  width:100%!important;
  max-width:100%;
}
.tmr-checkout-page .select2-container .select2-selection--single{
  height:46px!important;
  min-height:46px!important;
  display:flex!important;
  align-items:center!important;
  border:1px solid #c9c3b7!important;
  border-radius:9px!important;
  background:#fff!important;
  box-sizing:border-box;
}
.tmr-checkout-page .select2-container .select2-selection--single .select2-selection__rendered{
  width:100%;
  padding:0 42px 0 12px!important;
  line-height:44px!important;
  color:#24342b!important;
}
.tmr-checkout-page .select2-container .select2-selection--single .select2-selection__arrow{
  height:44px!important;
  right:10px!important;
  top:0!important;
}

/* The searchable country field was creating the awkward blank input/gap.
   For this checkout, a normal scrollable country list is cleaner. */
.tmr-checkout-page .select2-dropdown{
  background:#fff!important;
  border:1px solid #c9c3b7!important;
  border-radius:9px!important;
  box-shadow:0 12px 28px rgba(17,38,24,.14);
  overflow:hidden;
  z-index:999999!important;
}
.tmr-checkout-page .select2-search--dropdown{
  display:none!important;
}
.tmr-checkout-page .select2-results{
  background:#fff!important;
}
.tmr-checkout-page .select2-results__options{
  max-height:260px!important;
}
.tmr-checkout-page .select2-results__option{
  padding:8px 12px!important;
  line-height:1.3!important;
}
.tmr-checkout-page .select2-container--default .select2-results__option--highlighted[aria-selected],
.tmr-checkout-page .select2-container--default .select2-results__option--highlighted[data-selected]{
  background:var(--green)!important;
  color:#fff!important;
}


/* v94 — admin-only test payment */
.tmr-checkout-page .payment_method_magnolia_admin_test{
  border:1px solid rgba(129,109,72,.22)!important;
  border-radius:12px!important;
  background:#fbf5e8!important;
  padding:14px!important;
  margin:10px 0!important;
}
.tmr-checkout-page .payment_method_magnolia_admin_test > label{
  font-weight:700!important;
  color:var(--green)!important;
}
.tmr-test-payment-box{
  margin-top:10px;
  padding:13px 14px;
  border-radius:10px;
  background:#fffaf0;
  border:1px solid rgba(129,109,72,.16);
}
.tmr-test-payment-box strong{
  display:block;
  margin-bottom:5px;
  color:var(--bronze);
  text-transform:uppercase;
  letter-spacing:.09em;
  font-size:10px;
}
.tmr-test-payment-box p{
  margin:0;
  color:#566057;
  line-height:1.55;
  font-size:13px;
}
.tmr-test-order-confirmation{
  max-width:1180px;
  margin:22px auto;
  padding:16px 18px;
  border-left:3px solid var(--bronze);
  border-radius:10px;
  background:#f7f1e5;
  display:grid;
  gap:4px;
}
.tmr-test-order-confirmation strong{
  color:var(--green);
}
.tmr-test-order-confirmation span{
  color:#566057;
  font-size:13px;
  line-height:1.5;
}


/* v95 — reliable searchable Country / Province checkout controls */
.tmr-checkout-page .tmr-select2-replaced{
  display:none!important;
}
.tmr-checkout-page select.tmr-combo-source{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0 0 0 0)!important;
  clip-path:inset(50%)!important;
  white-space:nowrap!important;
  border:0!important;
}
.tmr-checkout-page .tmr-search-combo{
  width:100%;
}
.tmr-checkout-page .tmr-search-combo-input{
  width:100%!important;
  box-sizing:border-box!important;
  font-family:inherit!important;
  font-weight:inherit!important;
  letter-spacing:inherit!important;
}
.tmr-checkout-page .tmr-search-combo-input[aria-invalid="true"]{
  border-color:#9f493f!important;
}


/* v96 — match searchable checkout field inner spacing */
.tmr-checkout-page .tmr-search-combo-input{
  padding-left:12px!important;
  padding-right:12px!important;
}


/* v97 — clean customer/order details presentation */
.tmr-commerce-content .woocommerce-customer-details--email::before{
  display:none!important;
  content:none!important;
}
.tmr-commerce-content .woocommerce-customer-details--email{
  padding-left:0!important;
  margin-left:0!important;
}


/* v98 — functional gift-card purchase flow */
.tmr-gift-card-form{display:grid;gap:20px;margin-top:24px}
.tmr-gift-fieldset{border:0;padding:0;margin:0;display:grid;gap:12px}
.tmr-gift-fieldset legend,
.tmr-gift-card-form label>span{
  display:block;margin-bottom:8px;color:#314238;font-size:12px;font-weight:600;
}
.tmr-gift-amounts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.tmr-gift-amount-option{
  min-height:52px;display:grid;place-items:center;border:1px solid #d4c7ac;border-radius:12px;
  background:#fffaf0;cursor:pointer;position:relative;transition:.15s ease;
}
.tmr-gift-amount-option>input{position:absolute;opacity:0;pointer-events:none}
.tmr-gift-amount-option>span{margin:0!important;font-size:14px!important;color:#314238!important}
.tmr-gift-amount-option:hover,.tmr-gift-amount-option.is-selected{
  border-color:var(--green);background:#eef5ef;
}
.tmr-gift-custom-row{display:none}
.tmr-gift-card-form:has(input[name="tmr_gift_amount_type"][value="custom"]:checked) .tmr-gift-custom-row{display:block}
.tmr-money-input{display:flex;align-items:center;border:1px solid #c9c3b7;border-radius:10px;background:#fff;overflow:hidden}
.tmr-money-input b{padding:0 0 0 14px;color:#566057;font-weight:400}
.tmr-money-input input{border:0!important;min-height:48px!important;flex:1;padding:0 14px!important;outline:0;background:transparent!important}
.tmr-money-input small{padding:0 14px 0 0;color:#566057;font-size:11px;font-weight:650;letter-spacing:.07em}
.tmr-gift-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.tmr-gift-card-form input[type="text"],
.tmr-gift-card-form input[type="email"],
.tmr-gift-card-form input[type="date"],
.tmr-gift-card-form textarea{
  width:100%;box-sizing:border-box;border:1px solid #c9c3b7;border-radius:10px;background:#fff;
  padding:13px 14px;font:inherit;color:#24342b;
}
.tmr-gift-card-form textarea{min-height:100px;resize:vertical}
.tmr-gift-card-form small{font-weight:400;color:#7a827c}
.tmr-gift-delivery-options{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.tmr-gift-delivery-options label{
  min-height:48px;display:flex;align-items:center;gap:9px;padding:0 13px;border:1px solid #d4c7ac;
  border-radius:10px;background:#fffaf0;cursor:pointer;
}
.tmr-gift-delivery-options label>span{margin:0}
.tmr-gift-date-row{display:none}
.tmr-gift-card-form:has(input[name="tmr_gift_delivery"][value="scheduled"]:checked) .tmr-gift-date-row{display:block}
.tmr-gift-payment-note{margin:0;color:#6b746e;font-size:11px;line-height:1.5}
.gift-card-primary{width:100%;cursor:pointer}
.gift-card-notices .woocommerce-message,
.gift-card-notices .woocommerce-error,
.gift-card-notices .woocommerce-info{
  margin:0 0 14px!important;border:0!important;border-left:3px solid var(--green)!important;
  border-radius:9px!important;background:#f2f6f2!important;padding:12px 14px!important;
}
.gift-card-notices .woocommerce-error{border-left-color:#9f493f!important;background:#fbf3f1!important}
.gift-card-notices li{list-style:none}
@media(max-width:700px){
  .tmr-gift-amounts{grid-template-columns:1fr 1fr}
  .tmr-gift-form-grid,.tmr-gift-delivery-options{grid-template-columns:1fr}
}

/* Gift-card cart items do not need product thumbnails. */
.woocommerce-cart-form .product-thumbnail img[src*="placeholder"]{display:none}


/* v99 — gift card primary button brand color */
.gift-card-primary{
  background:#0F6737!important;
  border-color:#0F6737!important;
  color:#fff!important;
  opacity:1!important;
  filter:none!important;
}
.gift-card-primary:hover,
.gift-card-primary:focus{
  background:#0B4F2B!important;
  border-color:#0B4F2B!important;
  color:#fff!important;
}
.gift-card-primary:disabled,
.gift-card-primary[aria-disabled="true"]{
  background:#9CAD9F!important;
  border-color:#9CAD9F!important;
  color:#fff!important;
  cursor:not-allowed!important;
}


/* v100 — compact Gift Cards intro matching Shop editorial layout */
.gift-card-intro.gift-card-intro-compact{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(340px,.72fr);
  gap:70px;
  align-items:end;
  margin-bottom:42px;
}
.gift-card-intro-compact h2{
  margin:6px 0 0;
  font-size:clamp(38px,4.8vw,64px);
  line-height:1.02;
  font-weight:400;
}
.gift-card-intro-note{
  align-self:end;
  padding-bottom:4px;
}
.gift-card-intro-note strong{
  display:block;
  margin-bottom:8px;
  color:var(--green);
  font-size:16px;
  font-weight:600;
}
.gift-card-intro-note p{
  margin:0;
  color:#566057;
  line-height:1.65;
  font-size:14px;
}
.gift-card-intro-note small{
  display:block;
  margin-top:9px;
  color:var(--bronze);
  font-size:11px;
  line-height:1.45;
}

/* v100 — Gift Card cart item */
.tmr-commerce-content .product-thumbnail{
  vertical-align:top!important;
}
.tmr-gift-cart-thumb{
  width:56px;
  height:56px;
  display:grid;
  place-items:start;
  background:transparent;
  border:none;
}
.tmr-gift-cart-thumb img{
  width:42px!important;
  height:42px!important;
  object-fit:contain!important;
  margin:0!important;
  opacity:.9;
}
.tmr-commerce-content .woocommerce-cart-form td.product-name,
.tmr-commerce-content .woocommerce-cart-form td.product-price,
.tmr-commerce-content .woocommerce-cart-form td.product-quantity,
.tmr-commerce-content .woocommerce-cart-form td.product-subtotal{
  vertical-align:top!important;
  padding-top:20px!important;
}
.tmr-commerce-content .woocommerce-cart-form td.product-name{
  line-height:1.45;
}
.tmr-commerce-content .woocommerce-cart-form td.product-name dl.variation{
  margin-top:10px!important;
  display:grid!important;
  grid-template-columns:max-content 1fr;
  column-gap:7px;
  row-gap:3px;
}
.tmr-commerce-content .woocommerce-cart-form td.product-name dl.variation dt,
.tmr-commerce-content .woocommerce-cart-form td.product-name dl.variation dd{
  float:none!important;
  clear:none!important;
  margin:0!important;
  padding:0!important;
}
.tmr-commerce-content .woocommerce-cart-form td.product-name dl.variation p{
  margin:0!important;
}
.tmr-gift-card-qty{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:50px;
  height:44px;
  border:1px solid #d5cdbd;
  border-radius:10px;
  background:#fff;
}

@media(max-width:980px){
  .gift-card-intro.gift-card-intro-compact{
    grid-template-columns:1fr;
    gap:18px;
    align-items:start;
    margin-bottom:34px;
  }
}
@media(max-width:700px){
  .gift-card-intro.gift-card-intro-compact{
    margin-bottom:28px;
  }
  .tmr-gift-cart-thumb{
    width:52px;
    height:52px;
  }
  .tmr-gift-cart-thumb img{
    width:38px!important;
    height:38px!important;
  }
}


/* v102 — truly transparent gift-card cart icon.
   A broader cart thumbnail rule was still painting the image beige. */
.tmr-commerce-content .product-thumbnail .tmr-gift-cart-thumb{
  width:56px!important;
  height:56px!important;
  display:grid!important;
  place-items:center!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  padding:0!important;
}
.tmr-commerce-content .product-thumbnail .tmr-gift-cart-thumb img{
  width:46px!important;
  height:46px!important;
  max-width:46px!important;
  max-height:46px!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}
@media(max-width:700px){
  .tmr-commerce-content .product-thumbnail .tmr-gift-cart-thumb{
    width:50px!important;
    height:50px!important;
  }
  .tmr-commerce-content .product-thumbnail .tmr-gift-cart-thumb img{
    width:40px!important;
    height:40px!important;
    max-width:40px!important;
    max-height:40px!important;
  }
}


/* v103 — gift-card cart thumbnail matches merchandise footprint */
.tmr-commerce-content .product-thumbnail .tmr-gift-cart-thumb{
  width:88px!important;
  height:88px!important;
  display:grid!important;
  place-items:center!important;
  box-sizing:border-box!important;
  padding:0!important;
  background:#fbf7ee!important;
  border:1px solid rgba(129,109,72,.28)!important;
  border-radius:12px!important;
  box-shadow:none!important;
}
.tmr-commerce-content .product-thumbnail .tmr-gift-cart-thumb img{
  width:52px!important;
  height:52px!important;
  max-width:52px!important;
  max-height:52px!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}

@media(max-width:700px){
  .tmr-commerce-content .product-thumbnail .tmr-gift-cart-thumb{
    width:68px!important;
    height:68px!important;
    border-radius:12px!important;
  }
  .tmr-commerce-content .product-thumbnail .tmr-gift-cart-thumb img{
    width:42px!important;
    height:42px!important;
    max-width:42px!important;
    max-height:42px!important;
  }
}


/* v104 — enlarge gift-card cart icon inside the thumbnail frame */
.tmr-commerce-content .product-thumbnail .tmr-gift-cart-thumb{
  overflow:hidden!important;
}
.tmr-commerce-content .product-thumbnail .tmr-gift-cart-thumb img{
  width:60px!important;
  height:60px!important;
  max-width:60px!important;
  max-height:60px!important;
  display:block!important;
  transform:scale(1.34)!important;
  transform-origin:center center!important;
}
@media(max-width:700px){
  .tmr-commerce-content .product-thumbnail .tmr-gift-cart-thumb img{
    width:48px!important;
    height:48px!important;
    max-width:48px!important;
    max-height:48px!important;
    transform:scale(1.26)!important;
  }
}


/* v105 — square cropped gift-card icon for cart thumbnail */
.tmr-commerce-content .product-thumbnail .tmr-gift-cart-thumb{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.tmr-commerce-content .product-thumbnail .tmr-gift-cart-thumb img{
  width:66px!important;
  height:66px!important;
  max-width:66px!important;
  max-height:66px!important;
  object-fit:contain!important;
  object-position:center center!important;
  transform:none!important;
  margin:auto!important;
}
@media(max-width:700px){
  .tmr-commerce-content .product-thumbnail .tmr-gift-cart-thumb img{
    width:52px!important;
    height:52px!important;
    max-width:52px!important;
    max-height:52px!important;
  }
}


/* v106 — cart-specific cropped Magnolia icon */
.tmr-commerce-content .product-thumbnail .tmr-gift-cart-thumb{
  background: #f7f2e9;
}
.tmr-commerce-content .product-thumbnail .tmr-gift-cart-thumb img{
  width: 74px !important;
  height: 74px !important;
  max-width: 74px !important;
  max-height: 74px !important;
  object-fit: contain !important;
  object-position: center center !important;
  display:block !important;
  margin:auto !important;
}
@media (max-width: 700px){
  .tmr-commerce-content .product-thumbnail .tmr-gift-cart-thumb img{
    width: 58px !important;
    height: 58px !important;
    max-width: 58px !important;
    max-height: 58px !important;
  }
}


/* v107 — merch thumbnails get the same soft framed outline as the gift card */
.tmr-commerce-content .product-thumbnail img{
  border:1px solid rgba(129,109,72,.28)!important;
  box-sizing:border-box!important;
  background:#f7f2e9!important;
}


/* v108 — cleaner checkout order-review alignment */
.tmr-checkout-page .woocommerce-checkout-review-order-table{
  table-layout:fixed!important;
}
.tmr-checkout-page .woocommerce-checkout-review-order-table th.product-name,
.tmr-checkout-page .woocommerce-checkout-review-order-table td.product-name{
  width:68%!important;
}
.tmr-checkout-page .woocommerce-checkout-review-order-table th.product-total,
.tmr-checkout-page .woocommerce-checkout-review-order-table td.product-total{
  width:32%!important;
  text-align:right!important;
}
.tmr-checkout-page .woocommerce-checkout-review-order-table td.product-name,
.tmr-checkout-page .woocommerce-checkout-review-order-table td.product-total{
  vertical-align:top!important;
  padding-top:14px!important;
  padding-bottom:14px!important;
}
.tmr-checkout-page .woocommerce-checkout-review-order-table td.product-name{
  padding-right:14px!important;
  line-height:1.45!important;
}
.tmr-checkout-page .woocommerce-checkout-review-order-table td.product-total{
  white-space:nowrap!important;
  font-weight:600!important;
}
.tmr-checkout-page .woocommerce-checkout-review-order-table .product-quantity{
  display:inline!important;
  white-space:nowrap!important;
  margin-left:4px!important;
  color:#566057!important;
  font-weight:500!important;
}

/* Gift-card recipient/delivery details: label and value line up cleanly. */
.tmr-checkout-page .woocommerce-checkout-review-order-table dl.variation{
  display:grid!important;
  grid-template-columns:78px minmax(0,1fr)!important;
  column-gap:8px!important;
  row-gap:4px!important;
  margin:10px 0 0!important;
  padding:0!important;
}
.tmr-checkout-page .woocommerce-checkout-review-order-table dl.variation dt,
.tmr-checkout-page .woocommerce-checkout-review-order-table dl.variation dd{
  float:none!important;
  clear:none!important;
  width:auto!important;
  margin:0!important;
  padding:0!important;
  line-height:1.4!important;
}
.tmr-checkout-page .woocommerce-checkout-review-order-table dl.variation dt{
  font-weight:600!important;
  color:#314238!important;
}
.tmr-checkout-page .woocommerce-checkout-review-order-table dl.variation dd{
  color:#314238!important;
  min-width:0!important;
  overflow-wrap:anywhere!important;
}
.tmr-checkout-page .woocommerce-checkout-review-order-table dl.variation dd p{
  margin:0!important;
  line-height:1.4!important;
}

/* Keep totals visually separated from line items. */
.tmr-checkout-page .woocommerce-checkout-review-order-table tfoot th,
.tmr-checkout-page .woocommerce-checkout-review-order-table tfoot td{
  padding-top:13px!important;
  padding-bottom:13px!important;
}
.tmr-checkout-page .woocommerce-checkout-review-order-table tfoot td{
  text-align:right!important;
  white-space:nowrap!important;
}

/* Narrow checkout column / phone treatment. */
@media(max-width:520px){
  .tmr-checkout-page .woocommerce-checkout-review-order-table th.product-name,
  .tmr-checkout-page .woocommerce-checkout-review-order-table td.product-name{
    width:72%!important;
  }
  .tmr-checkout-page .woocommerce-checkout-review-order-table th.product-total,
  .tmr-checkout-page .woocommerce-checkout-review-order-table td.product-total{
    width:28%!important;
  }
  .tmr-checkout-page .woocommerce-checkout-review-order-table dl.variation{
    grid-template-columns:68px minmax(0,1fr)!important;
    column-gap:6px!important;
  }
}


/* v109 — checkout additional-information polish */
.tmr-commerce-content .woocommerce-checkout #customer_details{
  display:grid;
  gap:16px;
  align-content:start;
}
.tmr-commerce-content .woocommerce-checkout #customer_details .col-1,
.tmr-commerce-content .woocommerce-checkout #customer_details .col-2{
  margin:0;
}
.tmr-commerce-content .woocommerce-additional-fields textarea,
.tmr-commerce-content .woocommerce-additional-fields #order_comments{
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
  display:block;
  resize:none!important;
  min-height:170px!important;
}
.tmr-commerce-content .woocommerce-additional-fields .form-row.notes{
  margin-bottom:0;
}
.tmr-commerce-content .woocommerce-additional-fields .form-row label{
  margin-bottom:8px;
  display:block;
}
.tmr-commerce-content .woocommerce-additional-fields .woocommerce-input-wrapper{
  display:block;
}
.tmr-commerce-content .woocommerce-additional-fields .form-row .optional{
  opacity:.75;
}
@media(max-width:768px){
  .tmr-commerce-content .woocommerce-checkout #customer_details{
    gap:14px;
  }
  .tmr-commerce-content .woocommerce-additional-fields textarea,
  .tmr-commerce-content .woocommerce-additional-fields #order_comments{
    min-height:150px!important;
  }
}


/* v110 — homepage shop cards use live WooCommerce product images */
.home-shop-product-row{
  grid-template-columns:repeat(var(--home-shop-cols,4),minmax(0,1fr));
}
.home-shop-product-card{
  padding:14px;
  background:rgba(255,255,255,.28);
  border-radius:26px;
  min-width:0;
}
.home-shop-product-link{
  display:block;
  color:inherit;
  text-decoration:none;
}
.home-shop-product-media{
  position:relative;
  aspect-ratio:1/1.1;
  overflow:hidden;
  border-radius:20px;
  background:#efe8dc;
  border:1px solid rgba(129,109,72,.14);
}
.home-shop-product-image{
  position:absolute;
  inset:0;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  display:block;
  transition:transform .45s ease;
}
.home-shop-product-link:hover .home-shop-product-image{
  transform:scale(1.025);
}
.home-shop-gift-media{
  display:grid;
  place-items:center;
  background:#f7f2e9;
  border:1px solid rgba(129,109,72,.28);
}
.home-shop-gift-media img{
  width:58%!important;
  height:58%!important;
  object-fit:contain!important;
  display:block;
}
.home-shop-product-fallback{
  display:grid;
  place-items:center;
  color:var(--bronze);
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.home-shop-product-card h3{
  color:#17271f;
  transition:color .2s ease;
}
.home-shop-product-link:hover h3{
  color:var(--green);
}

/* Make admin homepage-shop dropdowns easy to scan. */
.tmr-admin-wrap .tmr-setting-field select{
  width:100%;
  min-height:42px;
}

@media(max-width:980px){
  .home-shop-product-row{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:640px){
  .home-shop-product-row{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}


/* v114 — quieter, more editorial Jarabacoa destination section */
.explore.section-pad{
  padding:56px 7vw 62px!important;
}
.explore .explore-copy{
  grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr);
  column-gap:5vw;
  align-items:center;
}
.explore .explore-copy .eyebrow{
  margin-bottom:12px;
}
.explore .explore-copy h2{
  font-size:clamp(36px,3.7vw,54px)!important;
  line-height:1.03!important;
  margin:0!important;
  max-width:760px;
}
.explore .explore-copy>p:not(.eyebrow){
  font-size:15px!important;
  line-height:1.6!important;
  max-width:560px;
  margin:0!important;
  justify-self:end;
}
.explore .explore-cards{
  margin-top:30px!important;
  gap:18px;
}
.explore .explore-cards article{
  padding:10px!important;
  background:rgba(255,255,255,.56)!important;
  border:1px solid rgba(129,109,72,.10);
  border-radius:20px!important;
  box-shadow:0 6px 18px rgba(17,38,24,.035)!important;
}
.explore .explore-cards article .media-placeholder{
  aspect-ratio:3/2!important;
  border-radius:15px!important;
}

@media(max-width:980px){
  .explore.section-pad{
    padding:48px 7vw 54px!important;
  }
  .explore .explore-copy{
    grid-template-columns:1fr;
    row-gap:0;
  }
  .explore .explore-copy .eyebrow{
    grid-column:1;
  }
  .explore .explore-copy>p:not(.eyebrow){
    justify-self:start;
    max-width:680px;
    margin-top:12px!important;
  }
  .explore .explore-cards{
    margin-top:26px!important;
  }
}

@media(max-width:640px){
  .explore.section-pad{
    padding:38px 7vw 44px!important;
  }
  .explore .explore-copy h2{
    font-size:40px!important;
  }
  .explore .explore-copy>p:not(.eyebrow){
    font-size:14px!important;
  }
  .explore .explore-cards{
    margin-top:22px!important;
    gap:22px!important;
  }
  .explore .explore-cards article{
    padding:9px!important;
    border-radius:18px!important;
  }
  .explore .explore-cards article .media-placeholder{
    aspect-ratio:4/3!important;
    border-radius:14px!important;
  }
}


/* v119 — Stripe checkout presentation */
.tmr-checkout-page #payment,
.tmr-checkout-page .woocommerce-checkout-payment{
  background:#FBF7EE!important;
  border:1px solid rgba(129,109,72,.18)!important;
  border-radius:16px!important;
  padding:0!important;
  overflow:hidden!important;
  box-shadow:none!important;
}
.tmr-checkout-page #payment ul.payment_methods{
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
}
.tmr-checkout-page #payment ul.payment_methods > li{
  list-style:none!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
}
.tmr-checkout-page #payment ul.payment_methods > li > label{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  margin:0!important;
  padding:17px 18px!important;
  color:#173D2B!important;
  font-weight:600!important;
  line-height:1.3!important;
  background:#FBF7EE!important;
}
.tmr-checkout-page #payment ul.payment_methods > li > input[type="radio"]{
  margin-left:18px!important;
  margin-right:-6px!important;
  accent-color:#0F6737!important;
}
.tmr-checkout-page #payment div.payment_box,
.tmr-checkout-page #payment div.payment_box.payment_method_stripe{
  position:relative!important;
  width:auto!important;
  margin:0 14px 14px!important;
  padding:18px!important;
  background:#FFFDF8!important;
  border:1px solid rgba(129,109,72,.18)!important;
  border-radius:12px!important;
  color:#24342B!important;
  box-shadow:none!important;
}
.tmr-checkout-page #payment div.payment_box::before{
  display:none!important;
  content:none!important;
}
.tmr-checkout-page #payment .wc-stripe-upe-element,
.tmr-checkout-page #payment #wc-stripe-upe-form{
  margin:0!important;
  padding:0!important;
  background:transparent!important;
}
.tmr-checkout-page #payment .testmode-info,
.tmr-checkout-page #payment .woocommerce-SavedPaymentMethods-saveNew{
  color:#566057!important;
}
.tmr-checkout-page #payment .testmode-info{
  margin:0 0 14px!important;
  padding:10px 12px!important;
  border-radius:9px!important;
  background:#F1F6F2!important;
  border-left:3px solid #0F6737!important;
}
.tmr-checkout-page #payment .testmode-info a{
  color:#0F6737!important;
}
.tmr-checkout-page #payment .place-order{
  margin:0!important;
  padding:18px!important;
  background:#FBF7EE!important;
  border-top:1px solid rgba(129,109,72,.18)!important;
}
.tmr-checkout-page #payment #place_order{
  width:100%!important;
  min-height:52px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}

/* Logged-in admins may see Stripe's save-card option. Keep it visually quiet;
   normal guest checkout does not depend on a customer account. */
.tmr-checkout-page #payment .woocommerce-SavedPaymentMethods-saveNew{
  margin-top:12px!important;
  padding-top:12px!important;
  border-top:1px solid rgba(129,109,72,.14)!important;
  font-size:13px!important;
  line-height:1.45!important;
}

@media(max-width:700px){
  .tmr-checkout-page #payment div.payment_box,
  .tmr-checkout-page #payment div.payment_box.payment_method_stripe{
    margin:0 10px 10px!important;
    padding:14px!important;
  }
  .tmr-checkout-page #payment ul.payment_methods > li > label{
    padding:15px 14px!important;
  }
}


/* v120 — remove extra outlines around Stripe payment tiles */
.tmr-checkout-page #payment div.payment_box,
.tmr-checkout-page #payment div.payment_box.payment_method_stripe{
  border:0!important;
  background:transparent!important;
  padding-top:8px!important;
}
.tmr-checkout-page #payment .woocommerce-SavedPaymentMethods-saveNew{
  border-top:0!important;
}


/* v122 — remove the actual rectangular frame around Stripe's card element.
   WooCommerce Stripe renders the Payment Element inside a <fieldset class="wc-upe-form">.
   The visible rectangle was the fieldset border, not the Stripe input styling. */
.tmr-checkout-page #payment fieldset.wc-upe-form,
.tmr-checkout-page #payment fieldset.wc-payment-form,
.tmr-checkout-page #payment #wc-stripe-upe-form{
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  margin:0!important;
  padding:0!important;
  min-width:0!important;
  background:transparent!important;
}


/* v126 — Stripe express checkout + Magnolia two-column checkout layout.
   WooCommerce Stripe 11 renders the wallet element, attribution element, and
   "OR" separator as separate direct children before #customer_details.
   The Magnolia checkout grid must explicitly place those children so they
   do not create tall implicit grid rows that push the order/payment panel
   far below the billing form. */
@media (min-width:901px){
  .tmr-checkout-page form.checkout.woocommerce-checkout:has(#wc-stripe-express-checkout-element){
    grid-template-rows:auto auto minmax(0,auto);
    row-gap:18px;
  }

  .tmr-checkout-page form.checkout.woocommerce-checkout:has(#wc-stripe-express-checkout-element)
  #wc-stripe-express-checkout-element{
    grid-column:1 / -1;
    grid-row:1;
    justify-self:center;
    width:min(100%,680px);
    margin:0 auto!important;
  }

  .tmr-checkout-page form.checkout.woocommerce-checkout:has(#wc-stripe-express-checkout-element)
  #wc-stripe-express-checkout__order-attribution-inputs{
    grid-column:1 / -1;
    grid-row:1;
    align-self:start;
    min-width:0;
  }

  .tmr-checkout-page form.checkout.woocommerce-checkout:has(#wc-stripe-express-checkout-element)
  #wc-stripe-express-checkout-button-separator{
    grid-column:1 / -1;
    grid-row:2;
    justify-self:center;
    width:min(100%,680px);
    margin:2px auto 4px!important;
    color:#6b746e;
    font-size:11px;
    line-height:1.2;
  }

  .tmr-checkout-page form.checkout.woocommerce-checkout:has(#wc-stripe-express-checkout-element)
  #customer_details{
    grid-column:1;
    grid-row:3!important;
    align-self:start;
  }

  .tmr-checkout-page form.checkout.woocommerce-checkout:has(#wc-stripe-express-checkout-element)
  #order_review_heading{
    grid-column:2;
    grid-row:3!important;
    align-self:start;
    z-index:2;
    margin:0!important;
  }

  .tmr-checkout-page form.checkout.woocommerce-checkout:has(#wc-stripe-express-checkout-element)
  #order_review{
    grid-column:2;
    grid-row:3!important;
    align-self:start;
    margin-top:42px;
  }
}


/* v127 — cart totals contrast / Magnolia visual treatment */
.tmr-commerce-content .cart_totals{
  background:#fbf3e3!important;
  border:1px solid rgba(129,109,72,.38);
  box-shadow:0 8px 24px rgba(50,42,28,.04);
}

.tmr-commerce-content .cart_totals h2{
  margin:0 0 20px;
  padding-bottom:12px;
  border-bottom:1px solid rgba(129,109,72,.28);
}

.tmr-commerce-content .cart_totals table.shop_table{
  background:#fffdf8!important;
  border:1px solid rgba(129,109,72,.42)!important;
  border-radius:14px!important;
  overflow:hidden;
  box-shadow:none!important;
}

.tmr-commerce-content .cart_totals table.shop_table th,
.tmr-commerce-content .cart_totals table.shop_table td{
  border-top:0!important;
  padding:14px 16px!important;
}

.tmr-commerce-content .cart_totals table.shop_table th{
  color:#173d2b!important;
  font-weight:700!important;
}

.tmr-commerce-content .cart_totals table.shop_table td{
  color:#17281f!important;
  font-weight:700!important;
}

.tmr-commerce-content .wc-proceed-to-checkout{
  padding-top:20px!important;
}

.tmr-commerce-content .wc-proceed-to-checkout .checkout-button{
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.10);
}


/* v131 — brighter closing logo/tagline + consistent gift-card hover zoom */
.closing-shade{
  background:linear-gradient(180deg,rgba(4,30,16,.20),rgba(4,30,16,.42) 42%,rgba(4,30,16,.62));
}
.closing-content .closing-mark{
  filter:brightness(1.08) contrast(.98) drop-shadow(0 10px 26px rgba(0,0,0,.24));
}
.closing-content .eyebrow.cream{
  color:#F7F3EA;
  text-shadow:0 4px 16px rgba(0,0,0,.24);
}
.home-shop-gift-media img{
  transition:transform .45s ease;
}
.home-shop-product-link:hover .home-shop-gift-media img{
  transform:scale(1.025);
}


/* v132 — gift-card preview: keep transparency only on the card itself */
.gift-card-preview{
  background:url('photos/shared/gift-card-background.jpg') center center / cover no-repeat;
}

.gift-card-preview::before{
  display:none;
}

/* The translucent treatment remains intentionally confined to the card. */
.gift-card-preview-inner{
  background:linear-gradient(rgba(13,28,19,.34), rgba(13,28,19,.24));
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}


/* v133 — Gift Cards closing note now mirrors the Shop note layout */
.gift-card-note.gift-card-note-shop-layout{
  padding:46px 52px;
  justify-content:flex-start;
  gap:48px;
}
.gift-card-note.gift-card-note-shop-layout img{
  width:112px;
  flex:0 0 auto;
  order:0;
}
.gift-card-note.gift-card-note-shop-layout > div{
  max-width:760px;
  order:1;
}
@media(max-width:980px){
  .gift-card-note.gift-card-note-shop-layout{
    padding:40px;
  }
}
@media(max-width:700px){
  .gift-card-note.gift-card-note-shop-layout{
    padding:32px 26px;
    align-items:flex-start;
  }
  .gift-card-note.gift-card-note-shop-layout img{
    width:72px;
  }
}


/* v134 — gift-card intro note refinement */
.gift-card-intro-note-lead{
  font-weight:600;
  color:#314238;
}


/* v136 — move the closing panel logo back down above the supporting line */
.home .closing-content .closing-mark{
  width:min(210px, 24vw);
  max-width:min(210px, 24vw);
  height:auto;
  margin:0 auto 10px;
}
@media (max-width:980px){
  .home .closing-content .closing-mark{
    width:min(190px, 34vw);
    max-width:min(190px, 34vw);
    margin:0 auto 8px;
  }
}
@media (max-width:640px){
  .home .closing-content .closing-mark{
    width:min(170px, 42vw);
    max-width:min(170px, 42vw);
    margin:0 auto 6px;
  }
}


/* v137 — stabilize homepage merch hover zoom and visually match Gift Card */
.home-shop-product-image{
  object-position:50% 50%!important;
  transform-origin:50% 50%;
  transform:translate3d(0,0,0) scale(1);
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  will-change:transform;
}

.home-shop-product-link:hover .home-shop-product-image{
  transform:translate3d(0,0,0) scale(1.025);
}

/* The gift-card art occupies a smaller portion of its tile than the merch photos,
   so a slightly larger scale gives it the same perceived zoom. */
.home-shop-gift-media img{
  transform-origin:50% 50%;
  transform:translate3d(0,0,0) scale(1);
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  will-change:transform;
  transition:transform .45s ease;
}

.home-shop-product-link:hover .home-shop-gift-media img{
  transform:translate3d(0,0,0) scale(1.045);
}


/* v138 — visually join “Your order” to the order-summary card */
@media (min-width:901px){
  .tmr-checkout-page form.checkout.woocommerce-checkout #order_review_heading{
    background:rgba(255,255,255,.42);
    border:1px solid rgba(129,109,72,.14);
    border-bottom:0;
    border-radius:18px 18px 0 0;
    padding:20px 22px 10px;
    box-sizing:border-box;
    margin:0!important;
    min-height:58px;
  }

  .tmr-checkout-page form.checkout.woocommerce-checkout #order_review{
    border-top:0!important;
    border-radius:0 0 18px 18px!important;
    margin-top:58px!important;
    padding-top:8px!important;
  }

  .tmr-checkout-page form.checkout.woocommerce-checkout:has(#wc-stripe-express-checkout-element)
  #order_review{
    margin-top:58px!important;
  }
}

@media (max-width:900px){
  .tmr-checkout-page #order_review_heading{
    margin-bottom:10px!important;
  }
}


/* v139 — align the order-summary card with the Billing Details card */
@media (min-width:901px){
  .tmr-checkout-page form.checkout.woocommerce-checkout:has(#wc-stripe-express-checkout-element)
  #order_review_heading{
    margin-top:16px!important;
  }

  .tmr-checkout-page form.checkout.woocommerce-checkout:has(#wc-stripe-express-checkout-element)
  #order_review{
    margin-top:74px!important;
  }

  /* Keep the two pieces reading as one panel. */
  .tmr-checkout-page form.checkout.woocommerce-checkout #order_review_heading{
    border-bottom:0!important;
    box-shadow:none!important;
  }

  .tmr-checkout-page form.checkout.woocommerce-checkout #order_review{
    box-shadow:none!important;
  }
}


/* v140 — lift gift-card preview card slightly above center on desktop */
@media (min-width: 981px){
  .gift-card-preview{
    align-items:flex-start;
    padding-top:94px;
    padding-bottom:54px;
  }
}


/* v141 — functional contact form feedback + spam honeypot */
.tmr-contact-honeypot{
  position:absolute!important;
  left:-10000px!important;
  top:auto!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
}

.tmr-contact-status{
  padding:13px 15px;
  border-radius:13px;
  font-size:13px;
  line-height:1.5;
  border:1px solid transparent;
}

.tmr-contact-status.is-success{
  color:#0f5a32;
  background:#edf6ef;
  border-color:rgba(15,103,55,.25);
}

.tmr-contact-status.is-error{
  color:#7b3029;
  background:#fbf0ed;
  border-color:rgba(159,73,63,.28);
}

.contact-form button:disabled{
  opacity:.68;
  cursor:wait;
}


/* v146 — streamlined Contact page business-card treatment */
.contact-methods-business{
  grid-template-columns:minmax(0,1.45fr) minmax(320px,.75fr);
  gap:20px;
  align-items:stretch;
}

.contact-business-card{
  min-height:300px;
  padding:34px 36px 30px;
  justify-content:flex-start;
  background:#fffaf0;
}

.contact-business-brand{
  padding-bottom:24px;
  border-bottom:1px solid rgba(129,109,72,.18);
}

.contact-business-brand img{
  display:block;
  width:min(310px,78%);
  height:auto;
}

.contact-business-details{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(180px,.8fr);
  gap:26px 42px;
  padding-top:26px;
}

.contact-business-detail{
  min-width:0;
}

.contact-business-detail > span{
  display:block;
  margin-bottom:8px;
  color:var(--bronze);
  font-size:10px;
  line-height:1.2;
  font-weight:700;
  letter-spacing:.13em;
  text-transform:uppercase;
}

.contact-business-card .contact-business-value{
  display:inline-block;
  width:auto;
  margin:0;
  padding:0;
  border:0;
  color:#142219;
  font-size:clamp(20px,2vw,28px);
  line-height:1.18;
  font-weight:600;
  letter-spacing:-.02em;
  text-transform:none;
  overflow-wrap:anywhere;
}

.contact-business-card .contact-business-value:hover{
  color:var(--green);
}

.contact-business-actions{
  margin-top:auto;
  padding-top:30px;
  gap:12px 24px;
}

.contact-business-actions a{
  width:max-content;
  margin:0;
  padding:0 0 3px;
}

@media(max-width:980px){
  .contact-methods-business{
    grid-template-columns:1fr;
  }

  .contact-methods-business .contact-method-location{
    grid-column:auto;
    min-height:230px;
  }
}

@media(max-width:640px){
  .contact-business-card{
    padding:28px 24px 26px;
  }

  .contact-business-brand img{
    width:min(280px,88%);
  }

  .contact-business-details{
    grid-template-columns:1fr;
    gap:20px;
    padding-top:24px;
  }

  .contact-business-card .contact-business-value{
    font-size:clamp(18px,5.4vw,24px);
  }

  .contact-business-actions{
    margin-top:28px;
    padding-top:0;
  }
}

/* v147 — reserve Stripe express-checkout space before Apple Pay / Google Pay finish rendering.
   WooCommerce Stripe mounts the wallet UI asynchronously. Without a reserved first row,
   Billing Details / Your Order visibly jump downward when the wallet element gains height. */
.tmr-checkout-page #wc-stripe-express-checkout-element{
  min-height:48px!important;
  box-sizing:border-box;
}

.tmr-checkout-page #wc-stripe-express-checkout-button-separator{
  min-height:18px;
  box-sizing:border-box;
}

@media (min-width:901px){
  .tmr-checkout-page form.checkout.woocommerce-checkout:has(#wc-stripe-express-checkout-element){
    /* Keep the wallet and OR rows at their finished heights from first paint. */
    grid-template-rows:48px 18px minmax(0,auto)!important;
  }

  .tmr-checkout-page form.checkout.woocommerce-checkout:has(#wc-stripe-express-checkout-element)
  #wc-stripe-express-checkout-element{
    height:48px;
    min-height:48px!important;
    overflow:visible;
  }

  .tmr-checkout-page form.checkout.woocommerce-checkout:has(#wc-stripe-express-checkout-element)
  #wc-stripe-express-checkout-button-separator{
    height:18px;
    min-height:18px;
    display:flex;
    align-items:center;
    justify-content:center;
  }
}


/* v148 — refined Contact business-card panel using the supplied green/gold brand mark. */
.contact-business-card{
  background:linear-gradient(145deg,#f8f2e8 0%,#f0e4d1 100%);
  border-color:rgba(129,109,72,.24);
  box-shadow:0 18px 44px rgba(73,58,37,.07);
}

.contact-business-brand{
  display:flex;
  align-items:center;
  min-height:104px;
  padding:0 0 24px;
  border-bottom:1px solid rgba(129,109,72,.22);
}

.contact-business-brand img{
  width:min(390px,86%);
  max-height:116px;
  object-fit:contain;
  object-position:left center;
}

.contact-business-details{
  padding-top:28px;
}

.contact-business-detail > span{
  color:#8a6b3f;
}

.contact-business-card .contact-business-value{
  color:#173523;
}

.contact-business-actions{
  border-top:1px solid rgba(129,109,72,.18);
  margin-top:auto;
  padding-top:24px;
}

.contact-business-actions a{
  color:#0f6737;
}

.contact-methods-business .contact-method-location{
  background:#f3ead9;
  border-color:rgba(129,109,72,.21);
}

@media(max-width:640px){
  .contact-business-brand{
    min-height:88px;
    padding-bottom:20px;
  }

  .contact-business-brand img{
    width:min(350px,94%);
    max-height:100px;
  }
}

/* v149 — closing hero contrast/readability refinement.
   Keeps the mountain photo visible while giving the thin cream mark and white type
   a stable contrast field across bright sky/clouds and varied green terrain. */
.home .closing-shade{
  background:
    radial-gradient(ellipse at 50% 29%,rgba(4,30,16,.34) 0%,rgba(4,30,16,.16) 38%,rgba(4,30,16,0) 68%),
    linear-gradient(180deg,rgba(4,30,16,.18) 0%,rgba(4,30,16,.28) 30%,rgba(4,30,16,.48) 58%,rgba(4,30,16,.72) 100%);
}

.home .closing-brand-lockup{
  display:grid;
  justify-items:center;
  padding:16px 30px 14px;
  margin:0 auto 14px;
  border:1px solid rgba(253,239,207,.28);
  border-radius:28px;
  background:rgba(8,42,24,.44);
  -webkit-backdrop-filter:blur(4px) saturate(.92);
  backdrop-filter:blur(4px) saturate(.92);
  box-shadow:0 14px 38px rgba(0,0,0,.18);
}

.home .closing-brand-lockup .closing-mark{
  width:min(205px,23vw);
  max-width:min(205px,23vw);
  margin:0 auto 8px;
  filter:brightness(1.08) contrast(1.02) drop-shadow(0 4px 10px rgba(0,0,0,.32));
}

.home .closing-brand-lockup .eyebrow.cream{
  margin:0;
  color:#fff5d9;
  font-weight:700;
  letter-spacing:.20em;
  text-shadow:0 3px 12px rgba(0,0,0,.48);
}

.home .closing-content h2{
  color:#fffdf8;
  text-shadow:0 3px 3px rgba(0,0,0,.22),0 10px 30px rgba(0,0,0,.52);
}

@media(max-width:980px){
  .home .closing-brand-lockup{
    padding:14px 26px 13px;
    margin-bottom:12px;
    border-radius:24px;
  }
  .home .closing-brand-lockup .closing-mark{
    width:min(185px,32vw);
    max-width:min(185px,32vw);
    margin-bottom:7px;
  }
}

@media(max-width:640px){
  .home .closing-shade{
    background:
      radial-gradient(ellipse at 50% 26%,rgba(4,30,16,.38) 0%,rgba(4,30,16,.18) 40%,rgba(4,30,16,0) 70%),
      linear-gradient(180deg,rgba(4,30,16,.22) 0%,rgba(4,30,16,.34) 34%,rgba(4,30,16,.54) 62%,rgba(4,30,16,.76) 100%);
  }
  .home .closing-brand-lockup{
    width:min(310px,86vw);
    padding:13px 22px 12px;
    margin-bottom:10px;
    border-radius:22px;
  }
  .home .closing-brand-lockup .closing-mark{
    width:min(160px,40vw);
    max-width:min(160px,40vw);
    margin-bottom:6px;
  }
  .home .closing-brand-lockup .eyebrow.cream{
    font-size:10px;
    letter-spacing:.17em;
  }
  .home .closing-content h2{
    text-shadow:0 3px 3px rgba(0,0,0,.24),0 9px 26px rgba(0,0,0,.56);
  }
}


/* v153 — stable checkout-wallet placement.
   Keep WooCommerce Stripe's Express Checkout Element in the DOM location where
   the plugin expects to initialize it. We do NOT move or re-hook the Stripe node.
   Instead, its original node is absolutely positioned over a reserved panel
   beneath the card-entry area. This preserves Stripe initialization and avoids
   the top-of-checkout layout jump. */

.tmr-checkout-page form.checkout.woocommerce-checkout{
  position:relative;
}

/* The native Stripe node stays a direct child of checkout but no longer occupies
   the checkout grid's top row. It remains invisible until our positioning script
   has calculated its final coordinates. */
.tmr-checkout-page form.checkout.woocommerce-checkout > #wc-stripe-express-checkout-element{
  position:absolute!important;
  z-index:8;
  margin:0!important;
  opacity:0;
  pointer-events:none;
}

/* Stripe's old OR row is not useful once Express Checkout has its own panel. */
.tmr-checkout-page form.checkout.woocommerce-checkout > #wc-stripe-express-checkout-button-separator{
  display:none!important;
}

/* Do not reserve the old top-of-checkout express rows from v126/v147. */
@media (min-width:901px){
  .tmr-checkout-page form.checkout.woocommerce-checkout:has(> #wc-stripe-express-checkout-element){
    grid-template-rows:auto!important;
    row-gap:34px!important;
  }

  .tmr-checkout-page form.checkout.woocommerce-checkout:has(> #wc-stripe-express-checkout-element) #customer_details{
    grid-column:1;
    grid-row:1!important;
  }

  .tmr-checkout-page form.checkout.woocommerce-checkout:has(> #wc-stripe-express-checkout-element) #order_review_heading{
    grid-column:2;
    grid-row:1!important;
    margin-top:16px!important;
  }

  .tmr-checkout-page form.checkout.woocommerce-checkout:has(> #wc-stripe-express-checkout-element) #order_review{
    grid-column:2;
    grid-row:1!important;
    margin-top:74px!important;
  }
}

/* Reserved visual home for Apple Pay / Google Pay. */
.tmr-checkout-page #payment .tmr-wallet-slot{
  margin:14px 18px 0!important;
  padding:15px 18px 17px!important;
  min-height:82px;
  box-sizing:border-box;
  background:#FFFDF8!important;
  border:1px solid rgba(129,109,72,.18)!important;
  border-radius:12px!important;
  visibility:hidden;
}

.tmr-checkout-page #payment .tmr-wallet-slot.is-active{
  visibility:visible;
}

.tmr-checkout-page #payment .tmr-wallet-slot.is-unavailable{
  display:none!important;
}

.tmr-checkout-page #payment .tmr-wallet-slot-title{
  display:block;
  margin:0 0 10px;
  color:#8a6b3f;
  font-size:10px;
  line-height:1.2;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.tmr-checkout-page #payment .tmr-wallet-slot-body{
  min-height:48px;
  position:relative;
}

/* Reveal the original Stripe node only after it has been precisely positioned
   over the reserved slot. */
.tmr-checkout-page form.checkout.woocommerce-checkout.tmr-wallet-positioned
  > #wc-stripe-express-checkout-element{
  opacity:1;
  pointer-events:auto;
}

/* Repair the responsive order panel: heading and contents should read as one card. */
@media (max-width:900px){
  .tmr-checkout-page #order_review_heading{
    margin:0!important;
    padding:18px 20px 10px!important;
    min-height:0!important;
    background:rgba(255,255,255,.42)!important;
    border:1px solid rgba(129,109,72,.14)!important;
    border-bottom:0!important;
    border-radius:18px 18px 0 0!important;
    box-sizing:border-box;
  }

  .tmr-checkout-page #order_review{
    margin-top:0!important;
    padding-top:8px!important;
    border-top:0!important;
    border-radius:0 0 18px 18px!important;
  }

  .tmr-checkout-page #payment .tmr-wallet-slot{
    margin:10px 14px 0!important;
    padding:14px!important;
  }
}

/* Carry forward the requested v151 lift of the closing brand lockup. */
.home .closing-brand-lockup{
  transform:translateY(-30px);
}
@media(max-width:980px){
  .home .closing-brand-lockup{ transform:translateY(-22px); }
}
@media(max-width:640px){
  .home .closing-brand-lockup{ transform:translateY(-16px); }
}


/* v154 — switch the contact card to the alternate cream/gold logo and increase contrast
   by giving the brand lockup its own darker inset area. Also darken the location tile so
   the two cards feel intentionally distinct. */
.contact-business-card{
  background:linear-gradient(145deg,#f7efe2 0%,#efe2ce 100%);
  border-color:rgba(129,109,72,.24);
}

.contact-business-brand{
  min-height:118px;
  padding:22px 24px;
  margin:0 0 22px;
  border:0;
  border-radius:20px;
  background:linear-gradient(145deg,#576a58 0%,#48604d 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06), 0 10px 24px rgba(48,62,51,.12);
}

.contact-business-brand img{
  width:min(400px,88%);
  max-height:120px;
}

.contact-business-details{
  padding-top:0;
}

.contact-methods-business .contact-method-location{
  background:linear-gradient(160deg,#ddcfb7 0%,#d1bfa3 100%);
  border-color:rgba(129,109,72,.28);
  box-shadow:0 14px 34px rgba(73,58,37,.08);
}

.contact-methods-business .contact-method-location .eyebrow,
.contact-methods-business .contact-method-location .contact-method-number,
.contact-methods-business .contact-method-location .contact-method-muted{
  color:#785e39;
}

@media(max-width:640px){
  .contact-business-brand{
    min-height:98px;
    padding:18px 18px;
    margin-bottom:18px;
    border-radius:16px;
  }

  .contact-business-brand img{
    width:min(340px,96%);
    max-height:98px;
  }
}


/* v155 — express checkout spacing refinement. The wallets are now in the right place,
   but when Stripe renders two buttons they need a taller reserved area so Google Pay
   does not crowd the Place Order button. */
.tmr-checkout-page #payment .tmr-wallet-slot{
  min-height:146px;
  margin:18px 18px 0!important;
  padding:15px 18px 19px!important;
}

.tmr-checkout-page #payment .tmr-wallet-slot-body{
  min-height:104px;
}

.tmr-checkout-page #payment .tmr-wallet-slot.is-active + .place-order{
  margin-top:18px!important;
}

@media (max-width:900px){
  .tmr-checkout-page #payment .tmr-wallet-slot{
    min-height:146px;
    margin:14px 14px 0!important;
    padding:14px 14px 18px!important;
  }

  .tmr-checkout-page #payment .tmr-wallet-slot-body{
    min-height:104px;
  }

  .tmr-checkout-page #payment .tmr-wallet-slot.is-active + .place-order{
    margin-top:16px!important;
  }
}


/* v156 — Contact page only: restore the lighter pre-v154 card styling.
   Keep all v155 checkout/wallet behavior unchanged; only swap the contact logo. */
.contact-business-card{
  background:linear-gradient(145deg,#f8f2e8 0%,#f0e4d1 100%)!important;
  border-color:rgba(129,109,72,.24)!important;
  box-shadow:0 18px 44px rgba(73,58,37,.07)!important;
}

.contact-business-brand{
  display:flex!important;
  align-items:center!important;
  min-height:104px!important;
  padding:0 0 24px!important;
  margin:0!important;
  border:0!important;
  border-bottom:1px solid rgba(129,109,72,.22)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

.contact-business-brand img{
  width:min(390px,86%)!important;
  max-height:116px!important;
  object-fit:contain!important;
  object-position:left center!important;
}

.contact-business-details{
  padding-top:28px!important;
}

.contact-business-detail > span{
  color:#8a6b3f!important;
}

.contact-business-card .contact-business-value{
  color:#173523!important;
}

.contact-business-actions{
  border-top:1px solid rgba(129,109,72,.18)!important;
  margin-top:auto!important;
  padding-top:24px!important;
}

.contact-business-actions a{
  color:#0f6737!important;
}

.contact-methods-business .contact-method-location{
  background:#f3ead9!important;
  border-color:rgba(129,109,72,.21)!important;
  box-shadow:none!important;
}

.contact-methods-business .contact-method-location .eyebrow{
  color:var(--bronze)!important;
}

.contact-methods-business .contact-method-location .contact-method-number,
.contact-methods-business .contact-method-location .contact-method-muted{
  color:inherit!important;
}

@media(max-width:640px){
  .contact-business-brand{
    min-height:88px!important;
    padding-bottom:20px!important;
  }

  .contact-business-brand img{
    width:min(350px,94%)!important;
    max-height:100px!important;
  }
}


/* v157 — place Express Checkout above the card-entry fields inside the Stripe
   payment box, and restore an "OR" separator before the card section below. */
.tmr-checkout-page #payment .payment_box.payment_method_stripe{
  position:relative;
}

.tmr-checkout-page #payment .payment_box.payment_method_stripe .tmr-wallet-slot{
  margin:0 0 18px!important;
  padding:15px 18px 10px!important;
  min-height:146px;
  box-sizing:border-box;
  background:#FFFDF8!important;
  border:1px solid rgba(129,109,72,.18)!important;
  border-radius:12px!important;
  visibility:hidden;
}

.tmr-checkout-page #payment .payment_box.payment_method_stripe .tmr-wallet-slot.is-active{
  visibility:visible;
}

.tmr-checkout-page #payment .payment_box.payment_method_stripe .tmr-wallet-slot.is-unavailable{
  display:none!important;
}

.tmr-checkout-page #payment .payment_box.payment_method_stripe .tmr-wallet-slot-title{
  display:block;
  margin:0 0 10px;
  color:#8a6b3f;
  font-size:10px;
  line-height:1.2;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.tmr-checkout-page #payment .payment_box.payment_method_stripe .tmr-wallet-slot-body{
  min-height:104px;
  position:relative;
}

.tmr-checkout-page #payment .payment_box.payment_method_stripe .tmr-wallet-slot-separator{
  margin:10px 0 0;
  text-align:center;
}

.tmr-checkout-page #payment .payment_box.payment_method_stripe .tmr-wallet-slot-separator span{
  display:inline-block;
  position:relative;
  padding:0 12px;
  color:#8a6b3f;
  font-size:10px;
  line-height:1.2;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  background:var(--panel);
}

.tmr-checkout-page #payment .payment_box.payment_method_stripe .tmr-wallet-slot-separator span::before,
.tmr-checkout-page #payment .payment_box.payment_method_stripe .tmr-wallet-slot-separator span::after{
  content:'';
  position:absolute;
  top:50%;
  width:54px;
  height:1px;
  background:rgba(129,109,72,.22);
  transform:translateY(-50%);
}

.tmr-checkout-page #payment .payment_box.payment_method_stripe .tmr-wallet-slot-separator span::before{
  right:100%;
}

.tmr-checkout-page #payment .payment_box.payment_method_stripe .tmr-wallet-slot-separator span::after{
  left:100%;
}

@media (max-width:900px){
  .tmr-checkout-page #payment .payment_box.payment_method_stripe .tmr-wallet-slot{
    margin:0 0 16px!important;
    padding:14px 14px 10px!important;
    min-height:146px;
  }

  .tmr-checkout-page #payment .payment_box.payment_method_stripe .tmr-wallet-slot-separator span::before,
  .tmr-checkout-page #payment .payment_box.payment_method_stripe .tmr-wallet-slot-separator span::after{
    width:42px;
  }
}


/* v158 — crop the supplied cream/gold contact logo asset so it displays at the intended size. */
.contact-business-brand img{
  width:min(460px, 92%)!important;
  max-height:132px!important;
  object-fit:contain!important;
  object-position:left center!important;
}
@media(max-width:640px){
  .contact-business-brand img{
    width:min(360px, 96%)!important;
    max-height:108px!important;
  }
}


/* v159 — put Express Checkout in its own panel below the credit/debit-card box,
   still above Place Order. Remove the OR separator. */
.tmr-checkout-page #payment .payment_box.payment_method_stripe{
  margin-bottom:16px!important;
}

.tmr-checkout-page #payment > .tmr-wallet-slot{
  margin:0 18px 16px!important;
  padding:15px 18px 17px!important;
  min-height:146px;
  box-sizing:border-box;
  background:#FFFDF8!important;
  border:1px solid rgba(129,109,72,.18)!important;
  border-radius:12px!important;
  visibility:hidden;
}

.tmr-checkout-page #payment > .tmr-wallet-slot.is-active{
  visibility:visible;
}

.tmr-checkout-page #payment > .tmr-wallet-slot.is-unavailable{
  display:none!important;
}

.tmr-checkout-page #payment > .tmr-wallet-slot .tmr-wallet-slot-title{
  display:block;
  margin:0 0 10px;
  color:#8a6b3f;
  font-size:10px;
  line-height:1.2;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.tmr-checkout-page #payment > .tmr-wallet-slot .tmr-wallet-slot-body{
  min-height:104px;
  position:relative;
}

.tmr-checkout-page #payment > .tmr-wallet-slot .tmr-wallet-slot-separator{
  display:none!important;
}

@media (max-width:900px){
  .tmr-checkout-page #payment .payment_box.payment_method_stripe{
    margin-bottom:14px!important;
  }

  .tmr-checkout-page #payment > .tmr-wallet-slot{
    margin:0 14px 14px!important;
    padding:14px!important;
    min-height:146px;
  }
}


/* v160 — Contact page only: make the Location card a shade darker for more contrast. */
.contact-methods-business .contact-method-location{
  background:#eadbc2!important;
  border-color:rgba(129,109,72,.24)!important;
}


/* v161 — place Express Checkout completely outside and below the whole Your Order panel,
   matching the width of the Your Order column/card. */
.tmr-checkout-page form.checkout.woocommerce-checkout > .tmr-wallet-slot{
  margin:16px 0 0!important;
  padding:15px 18px 17px!important;
  min-height:146px;
  box-sizing:border-box;
  background:rgba(255,255,255,.42)!important;
  border:1px solid rgba(129,109,72,.14)!important;
  border-radius:18px!important;
  visibility:hidden;
}

.tmr-checkout-page form.checkout.woocommerce-checkout > .tmr-wallet-slot.is-active{
  visibility:visible;
}

.tmr-checkout-page form.checkout.woocommerce-checkout > .tmr-wallet-slot.is-unavailable{
  display:none!important;
}

.tmr-checkout-page form.checkout.woocommerce-checkout > .tmr-wallet-slot .tmr-wallet-slot-title{
  display:block;
  margin:0 0 10px;
  color:#8a6b3f;
  font-size:10px;
  line-height:1.2;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.tmr-checkout-page form.checkout.woocommerce-checkout > .tmr-wallet-slot .tmr-wallet-slot-body{
  min-height:104px;
  position:relative;
}

.tmr-checkout-page form.checkout.woocommerce-checkout > .tmr-wallet-slot .tmr-wallet-slot-separator{
  display:none!important;
}

@media (min-width:901px){
  .tmr-checkout-page form.checkout.woocommerce-checkout > .tmr-wallet-slot{
    grid-column:2;
    grid-row:2;
    width:100%;
    align-self:start;
  }
}

@media (max-width:900px){
  .tmr-checkout-page form.checkout.woocommerce-checkout > .tmr-wallet-slot{
    margin:14px 0 0!important;
    padding:14px!important;
  }
}


/* v163 — keep Express Checkout directly under the Your Order panel with normal spacing.
   The previous version let the grid auto-place the wallet slot in a row that could stretch
   because of the customer-details column. Give the wallet its own row directly beneath
   the order-review card. */
@media (min-width:901px){
  .tmr-checkout-page form.checkout.woocommerce-checkout > .tmr-wallet-slot{
    grid-column:2!important;
    grid-row:4!important;
    width:100%;
    align-self:start;
    margin:16px 0 0!important;
  }
}

@media (max-width:900px){
  .tmr-checkout-page form.checkout.woocommerce-checkout > .tmr-wallet-slot{
    grid-column:1!important;
    grid-row:auto!important;
    margin:14px 0 0!important;
  }
}


/* v164 — Contact page palette swap.
   - Make the contact card the lighter cream the form was using.
   - Make the form the warmer cream/tan the contact card was using.
   - Darken the location panel one more step. */
.contact-business-card{
  background:#fffaf0!important;
  border-color:rgba(129,109,72,.18)!important;
  box-shadow:0 12px 28px rgba(73,58,37,.04)!important;
}

.contact-form{
  background:linear-gradient(145deg,#f8f2e8 0%,#f0e4d1 100%)!important;
  border-color:rgba(129,109,72,.24)!important;
  box-shadow:0 18px 44px rgba(73,58,37,.07)!important;
}

.contact-form input,
.contact-form select,
.contact-form textarea{
  background:#fffdf8!important;
}

.contact-methods-business .contact-method-location{
  background:#e4d2b8!important;
  border-color:rgba(129,109,72,.27)!important;
}


/* v165 — checkout cleanup.
   On desktop, position Express Checkout relative to the actual bottom of the
   Your Order panel instead of placing it in a shared CSS-grid row. This avoids
   the huge blank gap caused by the taller Billing Details column. */
@media (min-width:901px){
  .tmr-checkout-page form.checkout.woocommerce-checkout > .tmr-wallet-slot{
    position:absolute!important;
    grid-column:auto!important;
    grid-row:auto!important;
    margin:0!important;
    z-index:4;
  }
}

/* On mobile/tablet it remains in normal document flow immediately after Your Order. */
@media (max-width:900px){
  .tmr-checkout-page form.checkout.woocommerce-checkout > .tmr-wallet-slot{
    position:static!important;
    width:auto!important;
    left:auto!important;
    top:auto!important;
    margin:14px 0 0!important;
  }
}

/* Hide Stripe's staging helper card. This is only the visible 4242 test-card hint;
   it does not switch Stripe out of test mode. */
.tmr-checkout-page #payment .testmode-info{
  display:none!important;
}


/* v166 — Contact page: simplify the Special requests note.
   Remove the card treatment and style it as a clean text block in the same location. */
.contact-help-notes{
  margin-top:30px;
  display:block;
}

.contact-help-notes > div{
  padding:0!important;
  border:none!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  max-width:520px;
}

.contact-help-notes strong{
  display:block;
  margin:0 0 8px;
  color:#0f6737;
  font-size:17px;
  line-height:1.35;
  font-weight:600;
  letter-spacing:.01em;
}

.contact-help-notes span{
  display:block;
  color:#24342b;
  line-height:1.72;
  font-size:15px;
  max-width:500px;
}

@media (max-width:900px){
  .contact-help-notes{
    margin-top:24px;
  }

  .contact-help-notes strong{
    font-size:16px;
  }

  .contact-help-notes span{
    font-size:14px;
  }
}

/* v189 — Check dates and View gallery sit in their own row, since their
   parent .stay-cabin-body is flex-direction:column and would otherwise stack
   every direct child on its own line regardless of the links' own margins. */
.stay-cabin-actions{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:22px;
}

.stay-cabin-body .stay-gallery-link{
  color:var(--green);
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:10px;
  font-weight:700;
  text-decoration:none;
  border-bottom:1px solid rgba(15,103,55,.55);
  padding-bottom:5px;
  transition:border-color .2s ease;
}
.stay-cabin-body .stay-gallery-link:hover{border-bottom-color:var(--green);}
.stay-cabin-body .stay-gallery-link span{margin-left:6px;}

@media (max-width:480px){
  .stay-cabin-actions{
    flex-direction:column;
    align-items:flex-start;
    gap:14px;
  }
}

.cabin-gallery-links{
  display:flex;
  flex-wrap:wrap;
  gap:28px;
  margin-top:48px;
  padding-top:28px;
  border-top:1px solid #e3d8c2;
}

.cabin-gallery-empty{
  margin:0;
  padding:48px 0;
  text-align:center;
  color:#687268;
}



/* v198 — temporary direct-reservation inquiry mode for Stripe website review.
   Live booking code remains in the theme and can be restored by setting
   $site['booking']['online_booking_enabled'] to true in includes/config.php. */

.booking-inquiry-shell{
  max-width:1220px;
  margin:-34px auto 0;
  padding:0 7vw;
  position:relative;
  z-index:8;
  background:transparent;
}

.booking-inquiry-bar{
  min-height:104px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:34px;
  padding:24px 28px;
  box-sizing:border-box;
  border:1px solid rgba(129,109,72,.18);
  border-radius:22px;
  background:#fdefcf;
  background-clip:padding-box;
  opacity:1;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
  box-shadow:0 18px 44px rgba(17,38,24,.12);
  overflow:hidden;
}

.booking-inquiry-bar-copy{
  display:grid;
  gap:4px;
}

.booking-inquiry-bar-copy > span{
  color:var(--bronze);
  font-size:9px;
  line-height:1.3;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.booking-inquiry-bar-copy > strong{
  color:var(--green);
  font-size:21px;
  line-height:1.25;
  font-weight:500;
}

.booking-inquiry-bar-copy > small{
  color:#566057;
  font-size:13px;
  line-height:1.5;
}

.booking-inquiry-bar > a{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:0 24px;
  border-radius:999px;
  background:linear-gradient(180deg,#15703c 0%,#0f6737 100%);
  color:#fff!important;
  text-decoration:none!important;
  text-transform:uppercase;
  letter-spacing:.10em;
  font-size:10px;
  font-weight:700;
}

.booking-inquiry-bar > a:hover,
.booking-inquiry-bar > a:focus-visible{
  background:linear-gradient(180deg,#1a7a42 0%,#126e3b 100%);
}

.booking-inquiry-page .booking-inquiry-hero{
  padding-bottom:78px;
}

.booking-inquiry-content{
  max-width:1220px;
  margin:0 auto;
  padding:86px 7vw 110px;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(330px,.72fr);
  gap:74px;
  align-items:start;
}

.booking-inquiry-copy h2,
.booking-inquiry-actions h2{
  margin:6px 0 0;
  color:var(--green);
  font-size:clamp(34px,4vw,54px);
  line-height:1.04;
  font-weight:400;
}

.booking-inquiry-copy > p:not(.eyebrow),
.booking-inquiry-actions > p:not(.eyebrow){
  margin:20px 0 0;
  color:#566057;
  line-height:1.75;
}

.booking-inquiry-steps{
  margin-top:38px;
  display:grid;
  gap:0;
  border-top:1px solid rgba(129,109,72,.22);
}

.booking-inquiry-steps > div{
  display:grid;
  grid-template-columns:52px 1fr;
  gap:20px;
  padding:22px 0;
  border-bottom:1px solid rgba(129,109,72,.22);
}

.booking-inquiry-steps > div > span{
  color:var(--bronze);
  font-size:11px;
  letter-spacing:.14em;
}

.booking-inquiry-steps strong{
  display:block;
  margin-bottom:5px;
  color:#173523;
  font-size:16px;
}

.booking-inquiry-steps p{
  margin:0;
  color:#566057;
  font-size:13px;
  line-height:1.65;
}

.booking-policy-link{
  display:inline-flex;
  margin-top:26px;
  padding-bottom:4px;
  border-bottom:1px solid rgba(129,109,72,.55);
  color:var(--bronze)!important;
  text-decoration:none!important;
  text-transform:uppercase;
  letter-spacing:.11em;
  font-size:10px;
}

.booking-inquiry-actions{
  padding:34px;
  border:1px solid rgba(129,109,72,.22);
  border-radius:28px;
  background:#f3ead9;
}

.booking-inquiry-actions h2{
  font-size:clamp(31px,3.2vw,44px);
}

.booking-inquiry-primary,
.booking-inquiry-secondary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  text-decoration:none!important;
}

.booking-inquiry-primary{
  margin-top:28px;
  min-height:52px;
  padding:0 20px;
  border-radius:999px;
  background:var(--green);
  color:white!important;
  text-transform:uppercase;
  letter-spacing:.10em;
  font-size:10px;
  font-weight:700;
}

.booking-inquiry-secondary{
  padding:17px 2px;
  border-bottom:1px solid rgba(129,109,72,.24);
  color:#173523!important;
  font-size:14px;
}

.booking-inquiry-note{
  margin-top:26px;
  padding-top:0;
  border-top:0;
}

.booking-inquiry-note strong,
.booking-inquiry-note span{
  display:block;
}

.booking-inquiry-note strong{
  color:var(--green);
  font-size:13px;
}

.booking-inquiry-note span{
  margin-top:6px;
  color:#566057;
  font-size:12px;
  line-height:1.6;
}

/* Home/closing CTA version while direct online booking is disabled. */
.closing-mini-booking.closing-booking-inquiry{
  width:min(620px,82vw);
  min-height:78px;
  padding:0;
  display:flex;
  align-items:stretch;
  justify-content:space-between;
  grid-template-columns:none;
  border-radius:20px;
}

.closing-booking-inquiry > div{
  padding:15px 20px;
  display:grid;
  align-content:center;
  text-align:left;
}

.closing-booking-inquiry > div span{
  color:var(--bronze);
  font-size:9px;
  line-height:1.3;
  letter-spacing:.13em;
}

.closing-booking-inquiry > div strong{
  margin-top:3px;
  color:var(--green);
  font-size:17px;
  line-height:1.3;
  font-weight:500;
}

.closing-booking-inquiry > a{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:165px;
  padding:0 22px;
  background:var(--green);
  color:#fff!important;
  text-decoration:none!important;
  text-transform:uppercase;
  letter-spacing:.10em;
  font-size:10px;
  font-weight:700;
}

/* The temporary floating CTA is a link, not a drawer trigger. */
a.floating-book-btn{
  text-decoration:none!important;
}

@media(max-width:900px){
  .booking-inquiry-shell{
    margin:-22px auto 0;
    padding:0 5vw;
  }

  .booking-inquiry-bar{
    align-items:flex-start;
    flex-direction:column;
    gap:18px;
  }

  .booking-inquiry-bar > a{
    width:100%;
    box-sizing:border-box;
  }

  .booking-inquiry-content{
    grid-template-columns:1fr;
    gap:44px;
    padding:70px 7vw 90px;
  }
}

@media(max-width:640px){
  .booking-inquiry-shell{
    margin:-18px auto 0;
  }

  .booking-inquiry-bar{
    min-height:0;
    padding:20px;
    border-radius:18px;
  }

  .booking-inquiry-bar-copy > strong{
    font-size:18px;
  }

  .booking-inquiry-content{
    padding:58px 6vw 78px;
  }

  .booking-inquiry-steps > div{
    grid-template-columns:38px 1fr;
    gap:14px;
  }

  .booking-inquiry-actions{
    padding:26px 22px;
    border-radius:22px;
  }

  .closing-mini-booking.closing-booking-inquiry{
    width:min(310px,88vw);
    display:grid;
    grid-template-columns:1fr;
  }

  .closing-booking-inquiry > div{
    text-align:center;
  }

  .closing-booking-inquiry > a{
    min-height:52px;
    min-width:0;
  }
}


/* v200 — Guest-only Ranch Shop gate */
.tmr-shop-access{
  max-width:1220px;
  margin:0 auto 42px;
  padding:0 7vw;
  box-sizing:border-box;
}

.tmr-shop-access-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);
  gap:48px;
  align-items:center;
  padding:34px 36px;
  border:1px solid rgba(129,109,72,.22);
  border-radius:26px;
  background:#f3ead9;
}

.tmr-shop-access-copy h2{
  margin:6px 0 14px;
  color:var(--green);
  font-size:clamp(34px,4vw,52px);
  line-height:1.04;
  font-weight:400;
}

.tmr-shop-access-copy > p:not(.eyebrow){
  margin:0;
  max-width:650px;
  color:#566057;
  line-height:1.7;
}

.tmr-shop-access-copy small{
  display:block;
  margin-top:16px;
  color:#816d48;
  font-size:12px;
  line-height:1.5;
}

.tmr-shop-access-form{
  display:grid;
  gap:13px;
  padding:24px;
  border-radius:20px;
  background:#fffaf0;
  border:1px solid rgba(129,109,72,.18);
}

.tmr-shop-access-form label{
  display:grid;
  gap:7px;
}

.tmr-shop-access-form label span{
  color:#4f4635;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.10em;
  font-weight:700;
}

.tmr-shop-access-form input{
  width:100%;
  box-sizing:border-box;
  min-height:50px;
  padding:13px 15px;
  border:1px solid rgba(129,109,72,.26);
  border-radius:13px;
  background:#fffdf8;
  color:#173523;
  font-size:18px;
  font-weight:650;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.tmr-shop-access-form button{
  min-height:48px;
  border:0;
  border-radius:999px;
  background:var(--green);
  color:#fff;
  text-transform:uppercase;
  letter-spacing:.10em;
  font-size:10px;
  font-weight:700;
  cursor:pointer;
}

.tmr-shop-access-form p{
  margin:2px 0 0;
  color:#687268;
  font-size:11px;
  line-height:1.5;
}

.tmr-shop-access-unlocked{
  display:flex;
  justify-content:space-between;
  gap:24px;
  align-items:center;
  padding:22px 26px;
  border:1px solid rgba(15,103,55,.22);
  border-radius:20px;
  background:#f2f6f2;
}

.tmr-shop-access-unlocked > div{
  display:grid;
  gap:5px;
}

.tmr-shop-access-unlocked strong{
  color:var(--green);
  font-size:19px;
  font-weight:600;
}

.tmr-shop-access-unlocked span{
  color:#566057;
  font-size:12px;
  line-height:1.5;
}

.tmr-shop-access-unlocked > a{
  flex:0 0 auto;
  color:var(--bronze)!important;
  text-decoration:none!important;
  text-transform:uppercase;
  letter-spacing:.10em;
  font-size:9px;
  border-bottom:1px solid rgba(129,109,72,.45);
  padding-bottom:3px;
}

.tmr-shop-gate-status{
  margin:0 0 14px;
  padding:12px 15px;
  border-radius:12px;
  font-size:13px;
  line-height:1.45;
}

.tmr-shop-gate-status.is-success{
  background:#edf5ef;
  color:#0f6737;
  border:1px solid rgba(15,103,55,.20);
}

.tmr-shop-gate-status.is-error{
  background:#fbf0ed;
  color:#8a473b;
  border:1px solid rgba(138,71,59,.20);
}

/*
 * When locked, product cards stay visible for Stripe/business transparency,
 * but merchandise purchase controls are disabled/hidden by the server-side
 * add-to-cart validation. These visual rules reduce false affordance.
 */
body:not(.logged-in) .tmr-shop-access.is-locked ~ .products .add_to_cart_button,
body:not(.logged-in) .tmr-shop-access.is-locked ~ .products .product_type_simple{
  opacity:.45;
  pointer-events:none;
}

@media(max-width:900px){
  .tmr-shop-access-grid{
    grid-template-columns:1fr;
    gap:26px;
  }
}

@media(max-width:640px){
  .tmr-shop-access{
    padding:0 5vw;
    margin-bottom:30px;
  }
  .tmr-shop-access-grid{
    padding:26px 22px;
    border-radius:22px;
  }
  .tmr-shop-access-unlocked{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* v202 — place guest-access panel below the standard green shop hero.
   Preserve the green hero unchanged for cross-page consistency. */
.shop-page .tmr-shop-access,
.tmr-shop-page .tmr-shop-access,
body.woocommerce-shop .tmr-shop-access{
  margin-top:34px;
  margin-bottom:48px;
}

@media(max-width:640px){
  .shop-page .tmr-shop-access,
  .tmr-shop-page .tmr-shop-access,
  body.woocommerce-shop .tmr-shop-access{
    margin-top:24px;
    margin-bottom:36px;
  }
}


/* v203 — widen guest-access panel to align with the major inner-page panels/green shop hero. */
.shop-page .tmr-shop-access,
.tmr-shop-page .tmr-shop-access,
body.woocommerce-shop .tmr-shop-access{
  width:auto;
  max-width:none;
  margin-left:4.5vw;
  margin-right:4.5vw;
  padding-left:0;
  padding-right:0;
}

@media(max-width:980px){
  .shop-page .tmr-shop-access,
  .tmr-shop-page .tmr-shop-access,
  body.woocommerce-shop .tmr-shop-access{
    margin-left:5vw;
    margin-right:5vw;
  }
}

@media(max-width:640px){
  .shop-page .tmr-shop-access,
  .tmr-shop-page .tmr-shop-access,
  body.woocommerce-shop .tmr-shop-access{
    margin-left:5vw;
    margin-right:5vw;
    padding-left:0;
    padding-right:0;
  }
}


/* v204 — align guest gate with the shop PAGE CONTENT panels, not the hero/header.
   The other shop panels use max-width:1220px within 7vw page gutters. */
.shop-page .tmr-shop-access,
.tmr-shop-page .tmr-shop-access,
body.woocommerce-shop .tmr-shop-access{
  width:86vw;
  max-width:1220px;
  margin-left:auto;
  margin-right:auto;
  padding-left:0;
  padding-right:0;
}

@media(max-width:700px){
  .shop-page .tmr-shop-access,
  .tmr-shop-page .tmr-shop-access,
  body.woocommerce-shop .tmr-shop-access{
    width:90vw;
    max-width:none;
    margin-left:auto;
    margin-right:auto;
  }
}


/* v205 — unlock merchandise directly from the product detail panel. */
.tmr-product-unlock-gate{
  gap:9px;
}
.tmr-product-unlock-form{
  margin-top:5px;
}
.tmr-product-unlock-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:9px;
  align-items:stretch;
}
.tmr-product-unlock-row input{
  width:100%;
  min-width:0;
  height:46px;
  box-sizing:border-box;
  border:1px solid #cfc3a8;
  border-radius:11px;
  background:#fffdf7;
  padding:0 14px;
  color:#233b2d;
  font:inherit;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.tmr-product-unlock-row input:focus{
  outline:2px solid rgba(15,103,55,.18);
  outline-offset:1px;
  border-color:var(--green);
}
.tmr-product-unlock-row button{
  min-height:46px;
  border:1px solid var(--green);
  border-radius:999px;
  background:var(--green);
  color:#fff;
  padding:0 19px;
  font:inherit;
  font-size:10px;
  font-weight:700;
  letter-spacing:.11em;
  text-transform:uppercase;
  cursor:pointer;
  white-space:nowrap;
}
.tmr-product-unlock-row button:hover{
  background:#0a512b;
}
.tmr-product-unlock-help{
  width:max-content;
  max-width:100%;
  color:var(--green);
  font-size:11px;
  text-decoration:none;
  border-bottom:1px solid rgba(15,103,55,.35);
  padding-bottom:2px;
}
.tmr-product-unlock-help:hover{
  color:#0a512b;
  border-bottom-color:#0a512b;
}
.tmr-product-unlock-gate .tmr-shop-access-message{
  margin:0 0 2px;
}

@media(max-width:640px){
  .tmr-product-unlock-row{
    grid-template-columns:1fr;
  }
  .tmr-product-unlock-row button{
    width:100%;
  }
}


/* ==========================================================================
   v210 — MOBILE COMMERCE PASS
   Cart, Checkout, Pay-for-order / Special Payment, and confirmation screens.
   Desktop layout is intentionally unchanged.
   ========================================================================== */

@media (max-width:700px){

  /* Prevent any WooCommerce child from forcing the page wider than the viewport. */
  .tmr-commerce-page main,
  .tmr-commerce-content,
  .tmr-commerce-content .woocommerce,
  .tmr-commerce-content form,
  .tmr-commerce-content table,
  .tmr-commerce-content #customer_details,
  .tmr-commerce-content #order_review,
  .tmr-commerce-content #payment{
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }

  .tmr-commerce-page{
    overflow-x:hidden;
  }

  .tmr-commerce-content{
    width:100%;
    padding:42px 5vw 82px!important;
    overflow:hidden;
  }

  .tmr-commerce-hero{
    padding-left:5vw!important;
    padding-right:5vw!important;
  }

  .tmr-fulfillment-banner{
    margin-bottom:18px;
    padding:15px 16px;
    border-radius:13px;
  }

  .tmr-fulfillment-banner strong{
    font-size:11px;
  }

  .tmr-fulfillment-banner span{
    font-size:13px;
    line-height:1.5;
  }

  /* ------------------------------------------------------------------
     CART
     Turn the desktop Woo table into individual product cards.
     ------------------------------------------------------------------ */
  .tmr-cart-page .woocommerce-cart-form{
    overflow:visible!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    border-radius:0!important;
  }

  .tmr-cart-page .woocommerce-cart-form table.shop_table{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    border:0!important;
    border-radius:0!important;
    overflow:visible!important;
    background:transparent!important;
  }

  .tmr-cart-page .woocommerce-cart-form table.shop_table thead{
    display:none!important;
  }

  .tmr-cart-page .woocommerce-cart-form table.shop_table tbody{
    display:block!important;
    width:100%!important;
  }

  .tmr-cart-page .woocommerce-cart-form table.shop_table tr{
    box-sizing:border-box!important;
  }

  .tmr-cart-page .woocommerce-cart-form table.shop_table tr.cart_item{
    position:relative;
    display:block!important;
    width:100%!important;
    margin:0 0 14px!important;
    padding:16px!important;
    border:1px solid rgba(129,109,72,.25)!important;
    border-radius:16px!important;
    background:#fffdf8!important;
    overflow:hidden;
  }

  .tmr-cart-page .woocommerce-cart-form table.shop_table tr.cart_item td{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
    border:0!important;
    padding:9px 0!important;
    text-align:left!important;
    overflow-wrap:anywhere;
  }

  /* Remove control sits in the upper-right corner of each product card. */
  .tmr-cart-page .woocommerce-cart-form table.shop_table tr.cart_item td.product-remove{
    position:absolute!important;
    top:12px;
    right:12px;
    z-index:2;
    width:auto!important;
    padding:0!important;
  }

  .tmr-cart-page .woocommerce-cart-form table.shop_table td.product-thumbnail{
    padding:0 46px 13px 0!important;
  }

  .tmr-cart-page .woocommerce-cart-form .product-thumbnail img{
    display:block;
    width:82px!important;
    height:82px!important;
    margin:0!important;
    object-fit:contain;
  }

  .tmr-cart-page .woocommerce-cart-form td.product-name{
    padding-top:0!important;
    padding-bottom:13px!important;
  }

  .tmr-cart-page .woocommerce-cart-form td.product-name a{
    display:block;
    padding-right:6px;
    font-size:16px!important;
    line-height:1.35;
  }

  .tmr-cart-page .woocommerce-cart-form td.product-name dl.variation{
    margin-top:8px!important;
  }

  /* Price / quantity / subtotal become labelled rows rather than columns. */
  .tmr-cart-page .woocommerce-cart-form td.product-price,
  .tmr-cart-page .woocommerce-cart-form td.product-quantity,
  .tmr-cart-page .woocommerce-cart-form td.product-subtotal{
    display:grid!important;
    grid-template-columns:minmax(92px,.8fr) minmax(0,1fr)!important;
    align-items:center!important;
    gap:14px!important;
    padding:11px 0!important;
    border-top:1px solid rgba(129,109,72,.16)!important;
    text-align:right!important;
  }

  .tmr-cart-page .woocommerce-cart-form td.product-price::before,
  .tmr-cart-page .woocommerce-cart-form td.product-quantity::before,
  .tmr-cart-page .woocommerce-cart-form td.product-subtotal::before{
    content:attr(data-title)!important;
    display:block!important;
    position:static!important;
    width:auto!important;
    color:#173d2b!important;
    font-size:11px!important;
    line-height:1.3!important;
    font-weight:700!important;
    letter-spacing:.08em!important;
    text-transform:uppercase!important;
    text-align:left!important;
  }

  .tmr-cart-page .woocommerce-cart-form td.product-price > *,
  .tmr-cart-page .woocommerce-cart-form td.product-quantity > *,
  .tmr-cart-page .woocommerce-cart-form td.product-subtotal > *{
    justify-self:end;
  }

  .tmr-cart-page .woocommerce-cart-form .quantity{
    display:flex!important;
    justify-content:flex-end!important;
    width:100%!important;
  }

  .tmr-cart-page .woocommerce-cart-form .quantity .qty{
    width:76px!important;
    min-width:76px!important;
    max-width:76px!important;
    height:44px!important;
    min-height:44px!important;
    text-align:center;
  }

  /* WooCommerce action/coupon row. */
  .tmr-cart-page .woocommerce-cart-form table.shop_table tr:not(.cart_item){
    display:block!important;
    width:100%!important;
  }

  .tmr-cart-page .woocommerce-cart-form td.actions{
    display:block!important;
    width:100%!important;
    padding:4px 0 0!important;
    border:0!important;
    background:transparent!important;
  }

  .tmr-cart-page .woocommerce-cart-form .coupon{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
    width:100%!important;
    float:none!important;
  }

  .tmr-cart-page .woocommerce-cart-form .coupon #coupon_code,
  .tmr-cart-page .woocommerce-cart-form .coupon .button,
  .tmr-cart-page .woocommerce-cart-form button[name="update_cart"]{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0!important;
    box-sizing:border-box!important;
  }

  .tmr-cart-page .woocommerce-cart-form .coupon .button,
  .tmr-cart-page .woocommerce-cart-form button[name="update_cart"]{
    white-space:normal!important;
    padding-left:14px!important;
    padding-right:14px!important;
  }

  .tmr-cart-page .woocommerce-cart-form button[name="update_cart"]{
    margin-top:10px!important;
  }

  .tmr-cart-page .cart-collaterals{
    width:100%!important;
    margin-top:22px!important;
  }

  .tmr-cart-page .cart_totals{
    width:100%!important;
    max-width:none!important;
    padding:18px!important;
    box-sizing:border-box!important;
  }

  .tmr-cart-page .cart_totals table.shop_table{
    display:table!important;
    width:100%!important;
    min-width:0!important;
    table-layout:fixed!important;
  }

  .tmr-cart-page .cart_totals table.shop_table th,
  .tmr-cart-page .cart_totals table.shop_table td{
    width:50%!important;
    padding:12px 10px!important;
    overflow-wrap:anywhere;
  }

  .tmr-cart-page .wc-proceed-to-checkout{
    padding-top:16px!important;
  }

  .tmr-cart-page .wc-proceed-to-checkout .checkout-button{
    min-height:50px!important;
    padding:0 16px!important;
    white-space:normal!important;
    text-align:center!important;
  }

  /* ------------------------------------------------------------------
     CHECKOUT
     One clean column, full-width fields and payment controls.
     ------------------------------------------------------------------ */
  .tmr-checkout-page .woocommerce-checkout{
    display:block!important;
    width:100%!important;
  }

  .tmr-checkout-page .woocommerce-checkout #customer_details,
  .tmr-checkout-page .woocommerce-checkout #order_review_heading,
  .tmr-checkout-page .woocommerce-checkout #order_review{
    width:100%!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  .tmr-checkout-page .woocommerce-billing-fields,
  .tmr-checkout-page .woocommerce-additional-fields,
  .tmr-checkout-page #order_review{
    padding:17px!important;
    border-radius:16px!important;
  }

  .tmr-checkout-page .woocommerce-billing-fields h3,
  .tmr-checkout-page .woocommerce-additional-fields h3,
  .tmr-checkout-page #order_review_heading{
    font-size:21px!important;
  }

  /* WooCommerce half-width billing fields need to become full width. */
  .tmr-checkout-page .form-row-first,
  .tmr-checkout-page .form-row-last,
  .tmr-checkout-page .form-row-wide{
    float:none!important;
    clear:both!important;
    width:100%!important;
    max-width:100%!important;
  }

  .tmr-checkout-page .form-row{
    padding-left:0!important;
    padding-right:0!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  .tmr-checkout-page input.input-text,
  .tmr-checkout-page select,
  .tmr-checkout-page textarea,
  .tmr-checkout-page .select2-container,
  .tmr-checkout-page .tmr-search-combo,
  .tmr-checkout-page .tmr-search-combo-input{
    width:100%!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }

  /* Order review stays a compact two-column table rather than overflowing. */
  .tmr-checkout-page .woocommerce-checkout-review-order-table{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    table-layout:fixed!important;
  }

  .tmr-checkout-page .woocommerce-checkout-review-order-table th,
  .tmr-checkout-page .woocommerce-checkout-review-order-table td{
    padding:11px 7px!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
  }

  .tmr-checkout-page .woocommerce-checkout-review-order-table th.product-name,
  .tmr-checkout-page .woocommerce-checkout-review-order-table td.product-name{
    width:66%!important;
  }

  .tmr-checkout-page .woocommerce-checkout-review-order-table th.product-total,
  .tmr-checkout-page .woocommerce-checkout-review-order-table td.product-total{
    width:34%!important;
  }

  .tmr-checkout-page .woocommerce-checkout-review-order-table td.product-total,
  .tmr-checkout-page .woocommerce-checkout-review-order-table tfoot td{
    white-space:normal!important;
    text-align:right!important;
  }

  .tmr-checkout-page .woocommerce-checkout-review-order-table dl.variation{
    grid-template-columns:64px minmax(0,1fr)!important;
    column-gap:6px!important;
  }

  /* Payment area / Stripe. */
  .tmr-checkout-page #payment,
  .tmr-checkout-page .woocommerce-checkout-payment{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
  }

  .tmr-checkout-page #payment ul.payment_methods{
    padding:12px!important;
  }

  .tmr-checkout-page #payment ul.payment_methods > li{
    min-width:0!important;
    overflow:hidden!important;
  }

  .tmr-checkout-page #payment div.payment_box,
  .tmr-checkout-page #payment div.payment_box.payment_method_stripe,
  .tmr-checkout-page #payment fieldset.wc-upe-form,
  .tmr-checkout-page #payment fieldset.wc-payment-form,
  .tmr-checkout-page #payment #wc-stripe-upe-form,
  .tmr-checkout-page #payment .wc-stripe-upe-element{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }

  .tmr-checkout-page #payment div.payment_box,
  .tmr-checkout-page #payment div.payment_box.payment_method_stripe{
    margin-left:0!important;
    margin-right:0!important;
    padding:14px!important;
  }

  .tmr-checkout-page #payment .place-order{
    padding:14px!important;
  }

  .tmr-checkout-page #payment #place_order{
    width:100%!important;
    min-height:50px!important;
    padding-left:14px!important;
    padding-right:14px!important;
    white-space:normal!important;
    line-height:1.35!important;
  }

  /* Express wallet card must never be wider than the checkout column. */
  .tmr-checkout-page form.checkout.woocommerce-checkout > .tmr-wallet-slot,
  .tmr-checkout-page #payment > .tmr-wallet-slot,
  .tmr-checkout-page #payment .payment_box.payment_method_stripe .tmr-wallet-slot{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:0!important;
    box-sizing:border-box!important;
  }

  /* ------------------------------------------------------------------
     PAY-FOR-ORDER / SPECIAL PAYMENT LINK
     WooCommerce renders this as a form#order_review instead of the normal
     checkout grid. Keep the entire one-time payment experience phone-safe.
     ------------------------------------------------------------------ */
  .tmr-checkout-page form#order_review:not(.woocommerce-checkout){
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    padding:17px!important;
    box-sizing:border-box!important;
    border:1px solid rgba(129,109,72,.18)!important;
    border-radius:16px!important;
    background:rgba(255,255,255,.42)!important;
    overflow:hidden!important;
  }

  .tmr-checkout-page form#order_review:not(.woocommerce-checkout) table.shop_table{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    table-layout:fixed!important;
    margin-bottom:18px!important;
  }

  .tmr-checkout-page form#order_review:not(.woocommerce-checkout) table.shop_table th,
  .tmr-checkout-page form#order_review:not(.woocommerce-checkout) table.shop_table td{
    padding:11px 7px!important;
    overflow-wrap:anywhere!important;
  }

  .tmr-checkout-page form#order_review:not(.woocommerce-checkout) table.shop_table th:first-child,
  .tmr-checkout-page form#order_review:not(.woocommerce-checkout) table.shop_table td:first-child{
    width:66%!important;
  }

  .tmr-checkout-page form#order_review:not(.woocommerce-checkout) table.shop_table th:last-child,
  .tmr-checkout-page form#order_review:not(.woocommerce-checkout) table.shop_table td:last-child{
    width:34%!important;
    text-align:right!important;
  }

  .tmr-checkout-page form#order_review:not(.woocommerce-checkout) #payment{
    margin-top:6px!important;
  }

  /* ------------------------------------------------------------------
     ORDER RECEIVED / RECEIPTS
     Stack Woo's float-based order-detail metadata so it cannot overflow.
     ------------------------------------------------------------------ */
  .tmr-checkout-page ul.woocommerce-order-overview,
  .tmr-commerce-page ul.woocommerce-order-overview{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:0!important;
    width:100%!important;
    margin:0 0 22px!important;
    padding:0!important;
  }

  .tmr-checkout-page ul.woocommerce-order-overview li,
  .tmr-commerce-page ul.woocommerce-order-overview li{
    float:none!important;
    width:100%!important;
    box-sizing:border-box!important;
    margin:0!important;
    padding:11px 0!important;
    border-right:0!important;
    border-bottom:1px solid rgba(129,109,72,.18)!important;
    overflow-wrap:anywhere!important;
  }

  .tmr-checkout-page .woocommerce-order-details table.shop_table,
  .tmr-commerce-page .woocommerce-order-details table.shop_table{
    width:100%!important;
    min-width:0!important;
    table-layout:fixed!important;
  }

  .tmr-checkout-page .woocommerce-order-details table.shop_table th,
  .tmr-checkout-page .woocommerce-order-details table.shop_table td,
  .tmr-commerce-page .woocommerce-order-details table.shop_table th,
  .tmr-commerce-page .woocommerce-order-details table.shop_table td{
    padding:11px 7px!important;
    overflow-wrap:anywhere!important;
  }

  /* Generic Woo buttons inside commerce pages should never be clipped. */
  .tmr-commerce-content .button,
  .tmr-commerce-content button,
  .tmr-commerce-content .wc-block-components-button{
    max-width:100%!important;
    box-sizing:border-box!important;
  }
}

/* Extra-narrow phones. */
@media (max-width:390px){
  .tmr-commerce-content{
    padding-left:16px!important;
    padding-right:16px!important;
  }

  .tmr-cart-page .woocommerce-cart-form table.shop_table tr.cart_item{
    padding:14px!important;
  }

  .tmr-checkout-page .woocommerce-billing-fields,
  .tmr-checkout-page .woocommerce-additional-fields,
  .tmr-checkout-page #order_review,
  .tmr-checkout-page form#order_review:not(.woocommerce-checkout){
    padding:14px!important;
  }

  .tmr-checkout-page .woocommerce-checkout-review-order-table th.product-name,
  .tmr-checkout-page .woocommerce-checkout-review-order-table td.product-name,
  .tmr-checkout-page form#order_review:not(.woocommerce-checkout) table.shop_table th:first-child,
  .tmr-checkout-page form#order_review:not(.woocommerce-checkout) table.shop_table td:first-child{
    width:62%!important;
  }

  .tmr-checkout-page .woocommerce-checkout-review-order-table th.product-total,
  .tmr-checkout-page .woocommerce-checkout-review-order-table td.product-total,
  .tmr-checkout-page form#order_review:not(.woocommerce-checkout) table.shop_table th:last-child,
  .tmr-checkout-page form#order_review:not(.woocommerce-checkout) table.shop_table td:last-child{
    width:38%!important;
  }
}


/* ==========================================================================
   v215 — Special Payment pay-for-order layout
   Quantity is intentionally not part of Special Payments.
   ========================================================================== */

.tmr-special-payment-page .tmr-commerce-content{
  max-width:1180px;
  margin-left:auto;
  margin-right:auto;
}

.tmr-special-payment-page form#order_review.tmr-special-payment-form{
  width:100%;
  box-sizing:border-box;
}

.tmr-special-payment-page .tmr-special-payment-summary{
  width:100%;
  margin:0 0 24px;
  border:1px solid rgba(129,109,72,.20);
  border-radius:16px;
  background:rgba(255,255,255,.54);
  padding:22px;
  box-sizing:border-box;
}

.tmr-special-payment-page table.tmr-special-payment-table{
  width:100%!important;
  min-width:0!important;
  table-layout:fixed!important;
  margin:0!important;
  border:1px solid rgba(129,109,72,.30)!important;
  border-radius:14px!important;
  overflow:hidden!important;
  background:#fff!important;
  border-collapse:separate!important;
  border-spacing:0!important;
}

.tmr-special-payment-page table.tmr-special-payment-table th,
.tmr-special-payment-page table.tmr-special-payment-table td{
  box-sizing:border-box!important;
  padding:16px 18px!important;
  border:0!important;
  border-bottom:1px solid rgba(129,109,72,.22)!important;
  text-align:left!important;
  vertical-align:top!important;
}

.tmr-special-payment-page table.tmr-special-payment-table thead th{
  color:#173d2b!important;
  font-size:12px!important;
  font-weight:700!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
}

.tmr-special-payment-page table.tmr-special-payment-table .tmr-special-request{
  width:72%!important;
}

.tmr-special-payment-page table.tmr-special-payment-table .tmr-special-amount{
  width:28%!important;
  text-align:right!important;
  white-space:nowrap!important;
}

.tmr-special-payment-page table.tmr-special-payment-table tbody .tmr-special-request strong{
  display:block;
  color:#173d2b;
  font-size:17px;
  line-height:1.35;
}

.tmr-special-payment-page .tmr-special-reference,
.tmr-special-payment-page .tmr-special-note{
  display:block;
  margin-top:7px;
  color:#6a736d;
  font-size:12px;
  line-height:1.5;
}

.tmr-special-payment-page table.tmr-special-payment-table tbody .tmr-special-amount{
  color:#173d2b!important;
  font-size:18px!important;
  font-weight:700!important;
}

.tmr-special-payment-page table.tmr-special-payment-table tfoot th,
.tmr-special-payment-page table.tmr-special-payment-table tfoot td{
  border-bottom:0!important;
  color:#173d2b!important;
  font-size:17px!important;
  font-weight:700!important;
}

.tmr-special-payment-page #payment{
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}

.tmr-special-payment-page #payment #place_order{
  width:100%!important;
  min-height:50px!important;
}

/* Wallet buttons: side-by-side on desktop where there is room. */
.tmr-special-payment-page .tmr-wallet-slot{
  width:100%!important;
  max-width:100%!important;
}

@media(max-width:700px){
  .tmr-special-payment-page .tmr-commerce-hero{
    padding-bottom:30px!important;
  }

  .tmr-special-payment-page .tmr-commerce-content{
    padding-top:30px!important;
  }

  .tmr-special-payment-page form#order_review.tmr-special-payment-form{
    padding:14px!important;
    border-radius:16px!important;
  }

  .tmr-special-payment-page .tmr-special-payment-summary{
    padding:0!important;
    margin-bottom:18px!important;
    border:0!important;
    background:transparent!important;
  }

  .tmr-special-payment-page table.tmr-special-payment-table th,
  .tmr-special-payment-page table.tmr-special-payment-table td{
    padding:14px 13px!important;
  }

  .tmr-special-payment-page table.tmr-special-payment-table .tmr-special-request{
    width:66%!important;
  }

  .tmr-special-payment-page table.tmr-special-payment-table .tmr-special-amount{
    width:34%!important;
  }

  .tmr-special-payment-page table.tmr-special-payment-table thead th{
    font-size:10px!important;
  }

  .tmr-special-payment-page table.tmr-special-payment-table tbody .tmr-special-request strong{
    font-size:15px!important;
  }

  .tmr-special-payment-page table.tmr-special-payment-table tbody .tmr-special-amount,
  .tmr-special-payment-page table.tmr-special-payment-table tfoot th,
  .tmr-special-payment-page table.tmr-special-payment-table tfoot td{
    font-size:15px!important;
  }

  .tmr-special-payment-page #payment ul.payment_methods{
    padding:0!important;
  }

  .tmr-special-payment-page #payment .form-row{
    padding-left:0!important;
    padding-right:0!important;
  }

  .tmr-special-payment-page #payment #place_order{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    white-space:normal!important;
  }
}

@media(max-width:390px){
  .tmr-special-payment-page table.tmr-special-payment-table .tmr-special-request{
    width:62%!important;
  }

  .tmr-special-payment-page table.tmr-special-payment-table .tmr-special-amount{
    width:38%!important;
  }

  .tmr-special-payment-page table.tmr-special-payment-table th,
  .tmr-special-payment-page table.tmr-special-payment-table td{
    padding-left:11px!important;
    padding-right:11px!important;
  }
}

/* ========================================================================== 
   v224 — Owner-verified review-platform ratings + weighted property aggregate
   ========================================================================== */
.tmr-home-ratings{
  max-width:780px;
  margin:30px 0 10px;
  padding:20px 24px 21px;
  border-left:3px solid var(--bronze);
  background:rgba(192,157,102,.09);
}
.tmr-home-ratings-label{
  margin-bottom:10px;
  color:var(--bronze);
  font-size:10px;
  font-weight:650;
  letter-spacing:.17em;
}
.tmr-home-ratings-feature{
  display:flex;
  align-items:center;
  gap:24px;
}
.tmr-home-rating-score{
  display:flex;
  flex:0 0 auto;
  align-items:baseline;
  gap:7px;
  color:var(--green);
  white-space:nowrap;
}
.tmr-home-rating-score .tmr-rating-star{
  align-self:center;
  margin-right:2px;
  font-size:28px;
}
.tmr-home-rating-score strong{
  color:var(--green);
  font-size:44px;
  font-weight:500;
  letter-spacing:-.045em;
  line-height:.95;
}
.tmr-home-rating-scale{
  color:#6e726d;
  font-size:14px;
  font-weight:500;
}
.tmr-home-rating-summary{
  display:grid;
  gap:3px;
  min-width:0;
  padding-left:22px;
  border-left:1px solid rgba(129,109,72,.25);
  color:#566159;
}
.tmr-home-rating-summary strong{
  color:#24372c;
  font-size:14px;
  font-weight:650;
}
.tmr-home-rating-summary span{
  font-size:12px;
  line-height:1.45;
}
.tmr-home-rating-summary small{
  margin-top:2px;
  color:#7b7b74;
  font-size:10px;
  letter-spacing:.02em;
}
.tmr-rating-star{color:var(--bronze);line-height:1}
.tmr-cabin-rating{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
  margin:-2px 0 15px;
  color:#6a6254;
  font-size:11px;
  line-height:1.45;
}
.tmr-cabin-rating .tmr-rating-star{font-size:.95em}
.tmr-cabin-rating strong{color:var(--green);font-size:13px;font-weight:650}
.tmr-cabin-rating-separator{color:#b3a58d}
.tmr-cabin-rating-date{color:#7b7a73}
@media(max-width:640px){
  .tmr-home-ratings{margin-top:23px;padding:18px 18px 19px}
  .tmr-home-ratings-feature{display:grid;gap:13px}
  .tmr-home-rating-score strong{font-size:40px}
  .tmr-home-rating-summary{padding:12px 0 0;border-left:0;border-top:1px solid rgba(129,109,72,.22)}
  .tmr-cabin-rating{gap:5px;margin-bottom:13px}
}

/* v226 — Owner-managed listing copy */
.stay-cabin-description{margin:14px 0 0;max-width:540px;color:#566057;line-height:1.7;font-size:14px}
.stay-cabin-rules{margin:-8px 0 28px;padding:14px 16px;border-left:2px solid rgba(129,109,72,.5);background:#f8f1e4}
.stay-cabin-rules small{display:block;margin-bottom:7px;color:var(--bronze);font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.stay-cabin-rules ul{margin:0;padding-left:17px;color:#566057;font-size:12px;line-height:1.55}
.stay-cabin-rules li+li{margin-top:4px}

/* v228 — Optional owner-managed guest testimonial section */
.guest-voices{background:#f5efe4}
.guest-voices-heading{max-width:720px;margin:0 auto 30px;text-align:center}
.guest-voices-heading h2{margin:7px 0 0}
.guest-voices-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;max-width:1180px;margin:0 auto}
.guest-voices-grid article{display:flex;flex-direction:column;min-height:190px;padding:26px;border:1px solid rgba(129,109,72,.2);background:#fffaf1}
.guest-voices-grid blockquote{margin:0;color:var(--green);font-size:19px;line-height:1.55;font-weight:300}
.guest-voices-grid article>p{display:flex;align-items:flex-end;gap:7px;flex-wrap:wrap;margin:auto 0 0;padding-top:24px;color:#777065;font-size:10px}
.guest-voices-grid article>p strong{color:var(--bronze);font-size:11px}
.guest-voices-grid article>p span::before{content:"·";margin-right:7px}
@media(max-width:900px){.guest-voices-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.guest-voices-grid{grid-template-columns:1fr}.guest-voices-grid article{min-height:0;padding:21px}.guest-voices-grid blockquote{font-size:17px}}

/* ========================================================================== 
   v230 — Mobile product facts and cart-card alignment
   ========================================================================== */
@media(max-width:900px){
  .tmr-product-facts{
    grid-template-columns:1fr!important;
  }
  .tmr-product-facts>div{
    min-width:0;
    align-content:start;
    padding:16px 18px;
  }
}

@media(max-width:700px){
  /* WooCommerce supplies mobile data-title pseudo-labels. The product-card
     design draws its own labels, so suppress the defaults (and their colon). */
  .tmr-cart-page .woocommerce-cart-form tr.cart_item td::before{
    content:none!important;
    display:none!important;
  }
  .tmr-cart-page .woocommerce-cart-form tr.cart_item td.product-price::before,
  .tmr-cart-page .woocommerce-cart-form tr.cart_item td.product-quantity::before,
  .tmr-cart-page .woocommerce-cart-form tr.cart_item td.product-subtotal::before{
    content:attr(data-title)!important;
    display:block!important;
    float:none!important;
  }
  .tmr-cart-page .woocommerce-cart-form tr.cart_item td.product-thumbnail,
  .tmr-cart-page .woocommerce-cart-form tr.cart_item td.product-name{
    text-align:left!important;
  }
  .tmr-cart-page .woocommerce-cart-form tr.cart_item td.product-price,
  .tmr-cart-page .woocommerce-cart-form tr.cart_item td.product-quantity,
  .tmr-cart-page .woocommerce-cart-form tr.cart_item td.product-subtotal{
    min-height:58px;
  }
}

/* ========================================================================== 
   v231 — Mobile coupon and cart-totals refinement
   ========================================================================== */
@media(max-width:700px){
  .tmr-cart-page .woocommerce-cart-form td.actions{
    margin-top:16px!important;
    padding:16px!important;
    border:1px solid rgba(129,109,72,.28)!important;
    border-radius:16px!important;
    background:#fbf3e3!important;
    box-shadow:0 8px 24px rgba(50,42,28,.035);
  }
  .tmr-cart-page .woocommerce-cart-form td.actions::before{
    content:none!important;
    display:none!important;
  }
  .tmr-cart-page .woocommerce-cart-form .coupon{
    gap:12px!important;
  }
  .tmr-cart-page .woocommerce-cart-form .coupon #coupon_code{
    height:50px!important;
    padding:0 15px!important;
    border-color:rgba(129,109,72,.42)!important;
    background:#fffdf8!important;
    font-size:14px!important;
  }
  .tmr-cart-page .woocommerce-cart-form .coupon .button{
    min-height:50px!important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
  }

  .tmr-cart-page .cart-collaterals{
    margin-top:24px!important;
  }
  .tmr-cart-page .cart_totals{
    overflow:hidden;
    padding:18px!important;
    border:1px solid rgba(129,109,72,.36)!important;
    border-radius:18px!important;
    background:#fbf3e3!important;
    box-shadow:0 10px 28px rgba(50,42,28,.045);
  }
  .tmr-cart-page .cart_totals h2{
    margin:0 0 14px!important;
    padding:0 0 13px!important;
    border-bottom:1px solid rgba(129,109,72,.25)!important;
    color:#173d2b!important;
    font-size:25px!important;
    line-height:1.15!important;
  }
  .tmr-cart-page .cart_totals table.shop_table{
    display:table!important;
    overflow:hidden!important;
    margin:0!important;
    border:1px solid rgba(129,109,72,.30)!important;
    border-radius:13px!important;
    background:#fffdf8!important;
    border-collapse:separate!important;
    border-spacing:0!important;
  }
  .tmr-cart-page .cart_totals table.shop_table tbody{
    display:table-row-group!important;
  }
  .tmr-cart-page .cart_totals table.shop_table tr{
    display:table-row!important;
  }
  .tmr-cart-page .cart_totals table.shop_table th,
  .tmr-cart-page .cart_totals table.shop_table td{
    display:table-cell!important;
    width:50%!important;
    padding:14px 13px!important;
    border:0!important;
    border-bottom:1px solid rgba(129,109,72,.17)!important;
    background:transparent!important;
    vertical-align:middle!important;
    line-height:1.4!important;
  }
  .tmr-cart-page .cart_totals table.shop_table tr:last-child th,
  .tmr-cart-page .cart_totals table.shop_table tr:last-child td{
    border-bottom:0!important;
  }
  .tmr-cart-page .cart_totals table.shop_table th{
    color:#294333!important;
    font-size:11px!important;
    letter-spacing:.07em!important;
    text-transform:uppercase!important;
    text-align:left!important;
  }
  .tmr-cart-page .cart_totals table.shop_table td{
    color:#173d2b!important;
    font-size:15px!important;
    font-weight:650!important;
    text-align:right!important;
  }
  .tmr-cart-page .cart_totals table.shop_table td::before{
    content:none!important;
    display:none!important;
  }
  .tmr-cart-page .cart_totals table.shop_table .order-total th,
  .tmr-cart-page .cart_totals table.shop_table .order-total td{
    background:rgba(192,157,102,.10)!important;
    font-weight:750!important;
  }
  .tmr-cart-page .cart_totals table.shop_table .order-total td{
    font-size:18px!important;
  }
  .tmr-cart-page .wc-proceed-to-checkout{
    padding:15px 0 0!important;
  }
  .tmr-cart-page .wc-proceed-to-checkout .checkout-button{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    min-height:52px!important;
    margin:0!important;
  }
}
