/* @override 
	https://www.pines-retreat.com/css/wp.css?* */

/* wp-main.css — Whispering Pines Retreat shared styles */

*, *::before, *::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0
}
/* ── SITE WRAP — constrains all non-full-bleed page content ── */

 

.site-wrap {
	max-width: 1180px;
	margin: 0 auto;
	background: var(--cr);
	box-shadow: 0 0 0 .5px var(--bd);
}

:root {
	--gd: #1e3020;
	--gm: #2c4a2e;
	--gl: #4a6e4c;
	--cr: #faf8f3;
	--cm: #f0ede5;
	--bk: #2c2a22;
	--bm: #5a5848;
	--bl: #7a7568;
	--bf: #9a9488;
	--gd2: #c9a84c;
	--bd: rgba(44,42,34,.12);
	--fs: 'Playfair Display',Georgia,serif;
	--ff: 'DM Sans',system-ui,sans-serif
}

.booking__clear-dates {
    background: none;
    border: none;
    font-family: var(--ff);
    font-size: 14px;
    color: var(--bl);
    cursor: pointer;
    text-decoration: underline;
    padding: 0;
    margin-top: 5px;
	margin-right: 50px;
 
} 
.booking__calendar-actions {
    display: flex;
    justify-content: space-between;
    align-items: start;
    margin-top: .35rem;
}

.booking__clear-dates:hover {
    color: var(--bk);
}

.freeform-label,
.freeform-instructions,
.freeform-pages,
.freeform-fieldtype-html  {
	font-family: var(--ff);
}
.freeform-input[type="checkbox"] {
    width: 20px;
    height: 20px;
    min-width: 20px;
    cursor: pointer;
    accent-color: var(--gm);
}

body {
	font-family: var(--ff);
	background: var(--cr);
	color: var(--bk);
	line-height: 1.6
}

.terms-modal {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.5);
    z-index: 200;
    display: flex;
    align-items: center;
    justify-content: center;
}

.terms-modal[hidden] {
    display: none;
}

.terms-modal__box {
    background: var(--cr);
    border-radius: 6px;
    padding: 2rem;
    max-width: 600px;
    width: 90%;
    max-height: 80vh;
    overflow-y: auto;
    position: relative;
}

.terms-modal__close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: none;
    border: none;
    font-size: 1.5rem;
    cursor: pointer;
    color: var(--bl);
    line-height: 1;
}

.terms-modal__body h3 {
    font-size: .85rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--bl);
    margin: 1.5rem 0 .5rem;
}

.terms-modal__body h3:first-child {
    margin-top: 0;
}

.terms-modal__body p {
    font-size: .9rem;
    line-height: 1.7;
    color: var(--bm);
    margin: 0;
}

.terms-modal__body ul {
    margin: 0;
    padding-left: 1.25rem;
}

.terms-modal__body ul li {
    font-size: .9rem;
    line-height: 1.7;
    color: var(--bm);
}

.rangerOption,
.rvOption {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 1.25rem;
    padding: 1rem;
    border: .5px solid #e3ddd0;
    border-radius: 6px;
    margin-bottom: .75rem;
    cursor: pointer;
}

/* Image — first */
.rangerOption::before,
.rvOption::before {
    order: 1;
    flex-shrink: 0;
    width: 100px;
    height: 75px;
}

.rangerOption::before {
    content: '';
    display: block;
    background: url('/images/ranger-silo.png') center / contain no-repeat;
}

.rvOption::before {
    content: '';
    display: block;
    background: url('/images/rv-silo.png') center / contain no-repeat;
}

/* Text block (label + instructions) — middle, takes remaining space */
.rangerOption .freeform-label,
.rvOption .freeform-label {
    order: 2;
    flex: 1;
    font-weight: 500;
    font-size: 1rem;
    margin: 0;
    /* Pull instructions up next to label using a trick below */
}

.rangerOption .freeform-instructions,
.rvOption .freeform-instructions {
    order: 2;  /* same order as label so they flow together */
    flex-basis: 100%;
    font-size: .85rem;
    color: #888 !important;
	font-size: 14px !important;;
    margin: 0;
}

/* Checkbox — last */
.rangerOption .freeform-input,
.rvOption .freeform-input {
    order: 3;
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    cursor: pointer;
    accent-color: var(--gm);
}

/* Hide the hidden input Freeform adds */
.rangerOption input[type="hidden"],
.rvOption input[type="hidden"] {
    display: none;
}

.rangerOption,
.rvOption {
    flex-wrap: wrap;
}

.rangerOption .freeform-label,
.rvOption .freeform-label {
    flex-basis: auto;
    flex-grow: 1;
}

.rangerOption .freeform-instructions,
.rvOption .freeform-instructions {
    flex-basis: auto;
    flex-grow: 1;
    order: 2;
}
.addon-text {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: .25rem;
    order: 2;
}

.agreement {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .75rem 1rem;
    border: .5px solid #e3ddd0;
    border-radius: 6px;
	border: none;
}

.agreement .freeform-label {
    flex: 1;
    margin: 0;
     font-size: 15px;
}
.freeform-fieldtype-html {
	  font-size: 15px;
	  padding-top: 0 !important;
 
  position: relative;
  padding-left: 22px;
  display: inline-block;
}

.freeform-fieldtype-html::before {
   content: '';
    display: inline-block;
    width: 16px;
    height: 16px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='%236b6655' d='M224,104a8,8,0,0,1-16,0V59.32l-82.34,82.34a8,8,0,0,1-11.32-11.32L196.68,48H152a8,8,0,0,1,0-16h64a8,8,0,0,1,8,8Zm-40,24a8,8,0,0,0-8,8v72H48V80h72a8,8,0,0,0,0-16H48A16,16,0,0,0,32,80V208a16,16,0,0,0,16,16H176a16,16,0,0,0,16-16V136A8,8,0,0,0,184,128Z'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    vertical-align: middle;
    margin-right: 5px;
}


.agreement .freeform-input {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    accent-color: var(--gm);
    order: 2;
}

.agreement input[type="hidden"] {
    display: none;
}
/* NAV */

.nav {
	position: sticky;
	top: 0;
	z-index: 100;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 40px;
	background: rgba(250,248,243,.86);
	backdrop-filter: blur(8px);
	border-bottom: .5px solid var(--bd)
}

.nav-logo {
	display: flex;
	align-items: center;
	gap: 11px;
	text-decoration: none
}

.nav-logo img {
	width: 80px;
	height: 80px;
	transition: width 0.3s ease, height 0.3s ease;
}

.nav-scrolled .nav-logo img {
    width: 48px;
    height: 48px;
}

.logo-name {
	font-family: var(--fs);
	font-size: 17px;
	font-weight: 500;
	color: var(--bk);
	display: block
}

.logo-place {
	font-size: 10px;
	font-weight: 300;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--bl);
	display: block
}

.nav-links {
	display: flex;
	gap: 28px;
	align-items: center
}

.nav-links a {
	font-size: 13px;
	font-weight: 400;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: var(--bm);
	text-decoration: none;
	transition: color .2s
}

.nav-links a:hover {
	color: var(--gm)
}

.nav-book {
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: #fff !important;
	background: var(--gm);
	padding: 9px 20px;
	border-radius: 2px;
	text-decoration: none;
	transition: background .2s
}

.nav-book:hover {
	background: var(--gd)
}
/* HERO */

.hero {
	position: relative;
	height: 88vh;
	min-height: 560px;
	max-height: 960px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-end;
	padding-bottom: 60px;
	overflow: hidden
}

.hero-bg {
	position: absolute;
	inset: 0;
	/*background-image: url('/images/drone-aerial-pond-sunset.jpg');*/
	background-size: cover;
	background-position: center 40%
}
/* Fix hero image centering */
.hero-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
}

/* Hero height responsive fixes */
.hero {
  height: 100svh;
  min-height: 500px;
  max-height: 960px;
}

.booking__confirmed {
    max-width: 640px;
    margin: 3rem auto;
    padding: 0 1.5rem;
}

.booking__confirmed h2:first-child {
    font-size: 2.5rem;
    margin: 0 0 .75rem;
    color: var(--bk);
	font-family: 'Playfair Display',Georgia,serif;
	text-transform: none;
	letter-spacing: 0;
}

.booking__confirmed-lead {
    font-size: 1.05rem;
    color: var(--bl);
    line-height: 1.6;
    margin-bottom: 2rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid #e3ddd0;
}

.booking__confirmed-summary {
    background: #f7f5f0;
    border: 1px solid #e3ddd0;
    border-radius: 8px;
    padding: 1.5rem;
    margin-bottom: 2rem;
}

.booking__confirmed-summary h2 {
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--bl);
    margin: 0 0 1.25rem;
}

.booking__confirmed-summary dl {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: .75rem 2rem;
    margin: 0;
}

.booking__confirmed-summary dt {
    font-size: .85rem;
    font-weight: 500;
    color: var(--bl);
    text-transform: uppercase;
    letter-spacing: .06em;
}

.booking__confirmed-summary dd {
    font-size: .95rem;
    color: var(--bk);
    margin: 0;
}

.booking__confirmed-summary dd:last-child {
    font-weight: 600;
    font-size: 1.1rem;
    color: var(--gm);
}

.booking__confirmed-next {
    margin-bottom: 2rem;
}

.booking__confirmed-next h2 {
    font-size: .75rem;
    font-weight: 600;
    
    text-transform: uppercase;
    color: var(--bl);
    margin: 0 0 1rem;
}

.booking__confirmed-next ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: .75rem;
}

.booking__confirmed-next li {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    font-size: .95rem;
    color: var(--bl);
    line-height: 1.5;
    padding: .75rem 1rem;
    background: #f7f5f0;
    border-radius: 6px;
    border: 1px solid #e3ddd0;
}

.booking__confirmed-next li::before {
    content: '';
    display: block;
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    margin-top: 1px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='%233b5c2f' d='M173.66,98.34a8,8,0,0,1,0,11.32l-56,56a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L112,148.69l50.34-50.35A8,8,0,0,1,173.66,98.34ZM232,128A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z'/%3E%3C/svg%3E") center/contain no-repeat;
}

.booking__confirmed-next a {
    color: var(--gm);
    text-decoration: underline;
}

@media (max-width: 600px) {
  .booking__clear-dates {

    font-size: 12px;

	margin-right: 0;
 
} 

  .hero {
    height: 100svh;
    min-height: 480px;
    max-height: 700px;
    padding-bottom: 32px;
  }

  .hero-content {
    padding: 0 20px;
  }

  .hero-h1 {
    font-size: clamp(28px, 8vw, 42px);
  }
}


.intro-photo-tall {
  border-radius: 3px;
  overflow: hidden;
 
}

 

.hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to bottom,rgba(14,22,14,.18) 0%,rgba(14,22,14,.06) 45%,rgba(10,18,10,.72) 100%)
}

.hero-content {
	position: relative;
	z-index: 2;
	text-align: center;
	color: #fff;
	padding: 0 24px;
	max-width: 680px
}

.hero-badge {
	display: inline-block;
	font-size: 12px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: rgba(255,255,255,1);
	border: .5px solid rgba(0,0,0,.6);
	padding: 5px 16px;
	border-radius: 20px;
	margin-bottom: 20px;
	font-weight: 300;
	background: rgba(0,0,0,.6);
}

.hero-h1 {
	font-family: var(--fs);
	font-size: clamp(36px,5vw,56px);
	font-weight: 400;
	line-height: 1.12;
	color: #fff;
	margin-bottom: 14px;
	letter-spacing: -.01em
}

.hero-h1 em {
	font-style: italic;
	color: rgba(255,255,255,1);
	text-shadow: 2px 2px 3px rgba(0, 0, 0, 0.74);
	 
}

.hero-sub {
	font-size: 14px;
	font-weight: 400;
	
	letter-spacing: .05em;
	margin-bottom: 32px;
 
}

.hero-btns {
	display: flex;
	gap: 16px;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap
}

.btn-white {
	background: #fff;
	color: var(--gm);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .1em;
	text-transform: uppercase;
	padding: 13px 26px;
	border-radius: 2px;
	text-decoration: none;
	transition: all .2s
}

.btn-white:hover {
	background: var(--cr)
}

.btn-ghost-w {
	color: rgba(255,255,255,.72);
	font-size: 11px;
	font-weight: 300;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-decoration: none;
	border-bottom: .5px solid rgba(255,255,255,.35);
	padding-bottom: 2px
}
/* TRUST */

.trust {
	background: var(--gm);
	padding: 14px 40px;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0;
	flex-wrap: wrap
}

.trust-item {
	font-size: 13px;
	letter-spacing: .1em;
	color: rgba(255,255,255,.72);
	font-weight: 300;
	padding: 3px 18px
}

.trust-div {
	width: 1px;
	height: 11px;
	background: rgba(255,255,255,.22);
	flex-shrink: 0
}
/* BOOKING */

..booking-wrap {
    background: #fff;
    border-bottom: .5px solid var(--bd);
}
.booking-strip {
    display: flex;
    gap: 14px;
    align-items: flex-end;
    justify-content: flex-end;
    padding: 26px 40px;
}
.bfield {
    width: auto;
}
.bfield label {
    display: block;
    font-size: 10px;
    letter-spacing: .13em;
    text-transform: uppercase;
    color: var(--bl);
    font-weight: 400;
    margin-bottom: 7px;
}
.bfield input, .bfield select {
    width: 100%;
    padding: 11px 13px;
    border: .5px solid rgba(44,42,34,.22);
    border-radius: 2px;
    font-size: 13px;
    font-family: var(--ff);
    font-weight: 300;
    color: var(--bk);
    background: var(--cr);
    -webkit-appearance: none;
    appearance: none;
    transition: border-color .2s;
}
.bfield input:focus, .bfield select:focus {
    outline: none;
    border-color: var(--gm);
}
.bfield input::placeholder {
    color: #b5b0a5;
}
.bfield select {
    color: var(--bl);
    cursor: pointer;
    min-width: 140px;
}
.bavail-btn {
    background: var(--gm);
    color: #fff;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .1em;
    text-transform: uppercase;
    padding: 12px 24px;
    border-radius: 2px;
    border: none;
    cursor: pointer;
    white-space: nowrap;
    font-family: var(--ff);
    transition: background .2s;
    flex-shrink: 0;
}
.bavail-btn:hover {
    background: var(--gd);
}
.booking-note {
    padding: 0 40px 14px;
    font-size: 11px;
    color: var(--bf);
    text-align: right;
}
.direct-badge {
    background: #eaf3de;
    color: #3b6d11;
    font-size: 9px;
    font-weight: 500;
    letter-spacing: .1em;
    text-transform: uppercase;
    padding: 2px 8px;
    border-radius: 10px;
    flex-shrink: 0;
}
/* PHOTOS */

.photo-section {
	padding: 52px 40px 0;
	background: var(--cr)
}

.photo-grid {
	display: grid;
grid-template-columns: 1.55fr 1fr 1fr;
  grid-template-rows: 260px 200px;
	gap: 6px
}

.photo-cell {
	border-radius: 3px;
	overflow: hidden;
	position: relative
}

.photo-cell img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .4s ease
}

.photo-cell:hover img {
	transform: scale(1.03)
}

.photo-cell.tall {
	grid-row: span 2
}

.photo-footer {
	display: flex;
	justify-content: flex-end;
	margin-top: 10px;
	padding-bottom: 4px
}

.photo-link {
	font-size: 11px;
	color: var(--gm);
	letter-spacing: .1em;
	text-transform: uppercase;
	text-decoration: none;
	font-weight: 500;
	border-bottom: .5px solid var(--gm);
	padding-bottom: 1px
}
/* INTRO */

.intro {
	padding: 60px 40px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 56px;
	align-items: start;
	background: var(--cr)
}

.kicker {
	font-size: 10px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--bl);
	margin-bottom: 12px;
	font-weight: 400
}

.serif-h2 {
	font-family: var(--fs);
	font-size: 34px;
	font-weight: 400;
	line-height: 1.35;
	color: var(--bk);
	margin-bottom: 18px
}

.body-text {
	font-size: 15px;
	line-height: 1.82;
	color: var(--bm);
	font-weight: 300;
	margin-bottom: 18px
}

.text-link {
	font-size: 11px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--gm);
	text-decoration: none;
	font-weight: 500;
	border-bottom: .5px solid var(--gm);
	padding-bottom: 2px;
	transition: opacity .2s
}

.text-link:hover {
	opacity: .7
}

.stats {
	display: grid;
	grid-template-columns: repeat(4,1fr);
	margin-top: 32px;
	padding-top: 28px;
	border-top: .5px solid var(--bd)
}

.stat {
	text-align: center;
	padding: 0 8px;
	border-right: .5px solid var(--bd)
}

.stat:last-child {
	border-right: none
}

.stat-num {
	font-family: var(--fs);
	font-size: 28px;
	font-weight: 400;
	color: var(--gm);
	line-height: 1
}

.stat-label {
	font-size: 9px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--bf);
	margin-top: 5px;
	font-weight: 300
}

.intro-photos {
	display: flex;
	flex-direction: column;
	gap: 6px
}

.intro-photo-tall {
	border-radius: 3px;
	overflow: hidden;
	height: 220px
}

.intro-photo-tall img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block
}

.intro-photo-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 6px
}

.intro-photo-sm {
	border-radius: 3px;
	overflow: hidden;
 
}

.intro-photo-sm img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block
}
/* AMENITIES */

.amenities {
	background: var(--cm);
	padding: 60px 40px
}

.section-header {
	margin-bottom: 40px
}

.amenity-grid {
	display: grid;
	grid-template-columns: repeat(4,1fr);
	gap: 12px
}

.amenity-card {
	background: var(--cr);
	border-radius: 3px;
	padding: 22px 18px;
	border: .5px solid var(--bd)
}

.a-icon {
	float: left;
	margin-right: 10px;
	font-size: 42px;
	margin-bottom: 12px;
	color: var(--gm);
}

.a-name {
	font-size: 14px;
	font-weight: 500;
	color: var(--bk);
	margin-bottom: 4px
}

.a-desc {
	font-size: 12px;
	color: var(--bl);
	line-height: 1.5;
	font-weight: 300
}
/* PULL QUOTE */

.pullquote {
	background: var(--bk);
	padding: 72px 40px;
	text-align: center
}

.pq-stars {
	color: var(--gd2);
	font-size: 14px;
	letter-spacing: 3px;
	display: block;
	margin-bottom: 16px
}

.pq-open {
	font-family: var(--fs);
	font-size: 64px;
	line-height: .55;
	color: rgba(255,255,255,.1);
	display: block;
	margin-bottom: 20px
}

.pq-text {
	font-family: var(--fs);
	font-style: italic;
	font-size: clamp(16px,2.3vw,19px);
	line-height: 1.58;
	color: rgba(255,255,255,.88);
	max-width: 900px;
	margin: 0 auto 18px
}

.pq-attr {
	font-size: 10px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: rgba(255,255,255,.36);
	font-weight: 300
}
/* FEATURES */

.feature {
	padding: 64px 40px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 56px;
	align-items: top;
	border-bottom: .5px solid var(--bd)
}

.feature.alt {
	background: var(--cm)
}
 

.feature-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block
}

.feat-tag {
	display: inline-block;
	font-size: 9px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--gm);
	border: .5px solid rgba(44,74,46,.45);
	padding: 3px 10px;
	border-radius: 10px;
	margin-bottom: 14px;
	font-weight: 400
}

.feat-list {
	list-style: none;
	margin: 16px 0 22px
}

.feat-list li {

	color: var(--bm);
	font-weight: 300;
	padding: 6px 0;
	border-bottom: .5px solid rgba(44,42,34,.07);
	line-height: 1.5
}

.feat-list li::before {
	content: "—";
	color: var(--gm);
	margin-right: 9px;
	font-size: 11px
}
/* REVIEWS */

.reviews {
	background: var(--cm);
	padding: 60px 40px
}

.reviews-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	margin-top: 40px
}

.review-card {
	background: var(--cr);
	border-radius: 3px;
	padding: 24px;
	border: .5px solid var(--bd)
}

.rc-stars {
	color: var(--gd2);
	font-size: 12px;
	letter-spacing: 3px;
	display: block;
	margin-bottom: 14px
}

.rc-text {
	font-size: 15px;
	line-height: 1.82;
	color: var(--bk);
	font-weight: 300;
	font-style: normal;
	margin-bottom: 18px;
	position: relative;
}

.rc-text::before {
	content: open-quote;
	font-family: var(--fs);
	font-style: italic;
	font-size: 1.4em;
	color: var(--gd2);
	margin-right: 2px;
	vertical-align: -0.15em;
	line-height: 0;
}

.rc-text::after {
	content: close-quote;
	font-family: var(--fs);
	font-style: italic;
	font-size: 1.4em;
	color: var(--gd2);
	margin-left: 2px;
	vertical-align: -0.15em;
	line-height: 0;
}

.rc-attr {
	font-size: 11px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--bm);
}

.rc-platform {
	display: inline-block;
	font-size: 9px;
	background: rgba(44,42,34,.07);
	color: var(--bl);
	padding: 2px 8px;
	border-radius: 8px;
	margin-left: 8px;
	letter-spacing: .06em;
}

.reviews-cta {
	text-align: center;
	margin-top: 32px
}
/* FOOTER */

.footer {
	background: #171e17;
	padding: 40px
}

.footer-inner, .footer-bottom {
	max-width: 1180px;
	margin: 0 auto
}

.footer-inner {
	display: flex;
	justify-content: space-between;
	align-items: center
}

.footer-logo {
	display: flex;
	align-items: center;
	gap: 10px
}

.footer-logo img {
	width: 180px;
	height: 180px;

	margin-right: 10px;
}

.footer-brand {
	font-family: var(--fs);
	font-size: 20px;
	color: rgba(255,255,255,.55)
}

.footer-also {
	display: flex;
	gap: 8px;
	align-items: center;
	margin-top: 7px
}

.footer-also span {
	font-size: 12px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: rgba(255,255,255,.5)
}

.footer-plat {
	font-size: 11px;
	color: rgba(255,255,255,.5);
	letter-spacing: .1em;
	text-transform: uppercase;
	border: .5px solid rgba(255,255,255,.15);
	padding: 2px 8px;
	border-radius: 2px;
	text-decoration: none
}

.footer-plat:hover {
	color: rgba(255,255,255,.5)
}

.footer-links {
	display: flex;
	gap: 22px;
	font-size: 12px;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.footer-links a {
	
	color: rgba(255,255,255,.5);
	text-decoration: none;
	transition: color .2s
}

.footer-links a:hover {
	color: rgba(255,255,255,.55)
}

.footer-cta {
	font-size: 10px;
	font-weight: 500;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--gm);
	background: rgba(255,255,255,.9);
	padding: 10px 20px;
	border-radius: 2px;
	text-decoration: none;
	transition: background .2s
}

.footer-cta:hover {
	background: #fff
}

.footer-bottom {
	margin-top: 28px;
	padding-top: 20px;
	border-top: .5px solid rgba(255,255,255,.15);
	display: flex;
	justify-content: space-between;
	align-items: center
}

.footer-bottom p {
	font-size: 12px;
	color: rgba(255,255,255,.4);
	font-weight: 300;
	letter-spacing: .04em
}

.footer-social {
	display: flex;
	gap: 16px
}

.footer-social a {
	font-size: 10px;
	color: rgba(255,255,255,.25);
	text-decoration: none;
	letter-spacing: .08em;
	transition: color .2s
}

.footer-social a:hover {
	color: rgba(255,255,255,.5)
}

/* ─────────────────────────────────────────
   RESPONSIVE — mobile-first breakpoints
   Tablet ≤900px  |  Mobile ≤600px
───────────────────────────────────────── */

/* ── TABLET (≤900px) ── */

@media (max-width:900px) {
	/* Nav: hide text links, keep logo + book CTA */
	
	.nav {
		padding: 12px 24px
	}
	
	.nav-links>a:not(.nav-book) {
		display: none
	}
	
	.nav-links {
		gap: 12px
	}
	
	  /* Hero */
	
	.hero {
		height: 75vh;
		min-height: 480px;
		padding-bottom: 48px
	}
	
	  /* Trust bar: allow items to wrap, hide dividers on wrap */
	
	.trust {
		padding: 12px 24px
	}
	
	.trust-div {
		display: none
	}
	
	.trust-item {
		padding: 4px 12px
	}
	
	  /* Booking strip: wrap to 2 columns */
	
	.booking-strip {
		flex-wrap: wrap;
		padding: 20px 24px;
		gap: 12px
	}
	
	.bfield {
		min-width: calc(50% - 8px)
	}
	
	.bavail-btn {
		width: 100%;
		text-align: center;
		margin-top: 4px
	}
	
	.booking-note {
		padding: 8px 24px 14px
	}
	
	  /* Photo grid: tall left + 2×2 right */
	
	.photo-section {
		padding: 36px 24px 0
	}
	
	.photo-grid {
		grid-template-rows: 180px 140px
	}
	
	  /* Intro: stack */
	
	.intro {
		grid-template-columns: 1fr;
		gap: 36px;
		padding: 48px 24px
	}
	
	.intro-photos {
		order: -1
	}
	
	.intro-photo-tall {
		height: 280px
	}
	
	  /* Stats: 2×2 */
	
	.stats {
		grid-template-columns: 1fr 1fr;
		row-gap: 24px
	}
	
	.stat:nth-child(2) {
		border-right: none
	}
	
	.stat:nth-child(3) {
		border-right: .5px solid var(--bd)
	}
	
	.stat:nth-child(3),.stat:nth-child(4) {
		padding-top: 24px;
		border-top: .5px solid var(--bd)
	}
	
	  /* Amenities: 2 columns */
	
	.amenities {
		padding: 48px 24px
	}
	
	.amenity-grid {
		grid-template-columns: 1fr 1fr
	}
	
	  /* Pull quote */
	
	.pullquote {
		padding: 56px 24px
	}
	
	  /* Feature sections: stack */
	
	.feature {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 48px 24px;
  }

  /* Image always goes below text on mobile */
  .feature .feature-img {
    order: 2;
  }

  /* Text always goes above on mobile */
  .feature > div:first-child {
    order: 1;
  }

  /* Alt sections: same rule, override the previous alt flip */
  .feature.alt .feature-img {
    order: 2;
  }

  .feature.alt > div:first-child {
    order: 1;
  }
	
	  /* Reviews: single column */
	
	.reviews {
		padding: 48px 24px
	}
	
	.reviews-grid {
		grid-template-columns: 1fr
	}
	
	  /* Footer */
	
	.footer {
		padding: 32px 24px
	}
	
	.footer-inner {
		flex-direction: column;
		gap: 28px;
		align-items: flex-start
	}
	
	.footer-links {
		flex-wrap: wrap;
		gap: 14px 20px
	}
	
	.footer-cta {
	
		text-align: center
	}
	
	.footer-bottom {
		flex-direction: column;
		gap: 12px;
		align-items: flex-start
	}
}

/* ── MOBILE (≤600px) ── */

@media (max-width:600px) {
	/* Nav: hamburger */
	
	.nav {
		padding: 12px 20px
	}
	
	.nav-links {
		display: none
	}
	
	.nav-mobile-open .nav-links {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		position: fixed;
		inset: 0;
		top: 68px;
		background: rgba(250,248,243,.98);
		backdrop-filter: blur(12px);
		padding: 24px 20px;
		gap: 0;
		z-index: 99;
		border-top: .5px solid var(--bd)
	}
	
	.nav-mobile-open .nav-links>a {
		display: block;
		padding: 16px 0;
		font-size: 13px;
		letter-spacing: .1em;
		border-bottom: .5px solid var(--bd)
	}
	
	.nav-mobile-open .nav-book {
		margin-top: 20px;
		text-align: center;
		padding: 14px;
		display: block
	}
	
	.hamburger {
		display: flex;
		flex-direction: column;
		gap: 5px;
		cursor: pointer;
		padding: 4px;
		background: none;
		border: none
	}
	
	.hamburger span {
		display: block;
		width: 22px;
		height: 1.5px;
		background: var(--bk);
		transition: all .25s
	}
	
	.nav-mobile-open .hamburger span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
	  .nav-mobile-open .hamburger span:nth-child(2) {
		opacity: 0
	}
	
	.nav-mobile-open .hamburger span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
	
	  /* Hero */
	  .hero {
		height: 92vh;
		min-height: 420px;
		padding-bottom: 40px
	}
	
	.hero-badge {
		font-size: 9px;
		letter-spacing: .14em;
		padding: 4px 12px
	}
	
	.hero-sub {
		font-size: 13px
	}
	
	.hero-btns {
		flex-direction: column;
		gap: 12px
	}
	
	.btn-white {
		width: 100%;
		text-align: center
	}
	
	.btn-ghost-w {
		font-size: 10px
	}
	
	  /* Trust: single line scroll or 2-col wrap */
	
	.trust {
		padding: 10px 20px;
		justify-content: flex-start;
		overflow-x: auto;
		flex-wrap: nowrap;
		-webkit-overflow-scrolling: touch
	}
	
	.trust-item {
		white-space: nowrap
	}
	
	  /* Booking: full stack */
	
	.booking-strip {
		padding: 18px 20px;
		gap: 12px
	}
	
	.bfield {
		min-width: 100%
	}
	
	.booking-note {
		padding: 8px 20px 14px;
		flex-wrap: wrap;
		gap: 6px
	}
	
	  /* Photo grid: tall left + 2 stacked right (keep grid, reduce height) */
	
	.photo-section {
		padding: 28px 20px 0
	}
	
	.photo-grid {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: 140px 110px
	}
	
	.photo-cell.tall {
		grid-row: span 2
	}
	
	  /* Intro */
	
	.intro {
		padding: 40px 20px;
		gap: 28px
	}
	
	.intro-photo-tall {
		height: 220px
	}
	
	/*.intro-photo-sm {
		height: 90px
	}*/
	
	.serif-h2 {
		font-size: 26px
	}
	
	  /* Stats: 2×2, tighter */
	
	.stats {
		margin-top: 24px;
		padding-top: 20px
	}
	
	  /* Amenities: single column */
	
	.amenities {
		padding: 40px 20px
	}
	
	.amenity-grid {
		grid-template-columns: 1fr
	}
	
	  /* Pull quote */
	
	.pullquote {
		padding: 48px 20px
	}
	
	.pq-open {
		font-size: 48px
	}
	
	  /* Features */
	
	.feature {
		padding: 40px 20px;
		gap: 24px
	}
	
	/*.feature-img {
		height: 240px
	}*/
	
	  /* Reviews */
	
	.reviews {
		padding: 40px 20px
	}
	
	  /* Footer */
	
	.footer {
		padding: 28px 20px
	}
	
	.footer-inner {
		gap: 24px
	}
	
	.footer-bottom {
		gap: 10px
	}
}

/* ── HAMBURGER hidden on tablet+ ── */

@media (min-width:601px) {
	.hamburger {
		display: none
	}
}


/* ============================================================
   CONTENT PAGE LAYOUT — The Cabin and similar pages
   ============================================================ */

/* wp-cabin.css — The Cabin page styles */

.page-header {
	background: var(--cr);
	padding: 56px 40px 40px;
	border-bottom: .5px solid var(--bd);
}

.page-header .kicker {
	margin-bottom: 10px
}

.page-header h1 {
	font-family: var(--fs);
	font-size: clamp(32px,4vw,46px);
	font-weight: 400;
	line-height: 1.15;
	color: var(--bk);
	margin-bottom: 14px;
}

.page-header .page-desc {
	font-size: 15px;
	font-weight: 300;
	color: var(--bm);
	max-width: 580px;
	line-height: 1.7;
	margin-bottom: 20px;
}

.page-header-meta {
	display: flex;
	gap: 24px;
	align-items: center;
	flex-wrap: wrap;
}

.meta-badge {
	font-size: 10px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--bl);
	font-weight: 400;
}

.meta-badge strong {
	color: var(--bk);
	font-weight: 500
}

/* ── PAGE LAYOUT ── */

/* ════════════════════════════════════════════════════════
   PROSE — comprehensive rich text styles
   Applied via .prose class or .page-content.prose wrapper.
   Styles all native HTML tags output by Craft's rich text
   editor without requiring extra classes on each element.
════════════════════════════════════════════════════════ */

/* Base */

.prose {
	font-family: var(--ff);
	font-size: 15px;
	line-height: 1.8;
	color: var(--bm);
	font-weight: 300;
}

/* Paragraphs */

.prose p {
	margin-top: 0;
	margin-bottom: 1.25em;
}

.prose p:last-child {
	margin-bottom: 0;
}

/* Headings */

.prose h1, .prose h2, .prose h3, .prose h4, .prose h5, .prose h6 {
	font-family: var(--fs);
	color: var(--bk);
	font-weight: 400;
	line-height: 1.25;
	margin-top: 1.75em;
	margin-bottom: 0.6em;
}

.prose h1 {
	font-size: 2em;
}

.prose h2 {
	font-size: 1.5em;
	padding-bottom: 0.4em;
	border-bottom: .5px solid var(--bd);

}
.matrix-content .prose h2 {
	margin-top: 1em ;
}


.prose h3 {
	font-size: 1.2em;
	font-style: italic;
}

.prose h4 {
	font-size: 1em;
	font-weight: 500;
	letter-spacing: .04em;
	text-transform: uppercase;
	font-family: var(--ff);
}

.prose h5, .prose h6 {
	font-size: 0.9em;
	font-weight: 500;
	font-family: var(--ff);
}
/* Don't add top margin to headings that open the container */

.prose > :first-child {
	margin-top: 0;
}
 
.highlight-box h2 {
	margin-top: 0 !important;
}

/* Inline */

.prose strong, .prose b {
	font-weight: 500;
	color: var(--bk);
}

.prose em, .prose i {
	font-style: italic;
}

.prose u {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.prose s, .prose del {
	text-decoration: line-through;
	color: var(--bf);
}

.prose mark {
	background: rgba(201,168,76,.25);
	padding: 0 3px;
	border-radius: 2px;
}

.prose small {
	font-size: 0.85em;
	color: var(--bf);
}

.prose abbr {
	text-decoration: underline dotted;
	cursor: help;
}

.prose code {
	font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
	font-size: 0.875em;
	background: var(--cm);
	border: .5px solid var(--bd);
	border-radius: 3px;
	padding: 0.15em 0.4em;
	color: var(--bk);
}

.prose pre {
	background: #1e2319;
	border-radius: 4px;
	padding: 1.25em 1.5em;
	overflow-x: auto;
	margin: 1.5em 0;
}

.prose pre code {
	background: none;
	border: none;
	padding: 0;
	color: rgba(255,255,255,.85);
	font-size: 0.875em;
}

/* Links */

.prose a {
	color: var(--gm);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-color: rgba(44,74,46,.4);
	transition: text-decoration-color .2s, color .2s;
}

.prose a:hover {
	color: var(--gd);
	text-decoration-color: var(--gm);
}

/* Unordered lists */

.prose ul {
	list-style: none;
	margin: 0 0 1.25em;
	padding: 0;
}

.prose ul li {
	position: relative;
	padding: 0.45em 0 0.45em 1.4em;
	border-bottom: .5px solid rgba(44,42,34,.06);
	font-size: 0.95em;
	line-height: 1.65;
	color: var(--bm);
}

.prose ul li:last-child {
	border-bottom: none;
}

.prose ul li::before {
	content: "—";
	position: absolute;
	left: 0;
	color: var(--gm);
	font-size: 0.8em;
	top: 0.55em;
}
/* Nested lists */

.prose ul ul {
	margin: 0.4em 0 0.2em 1em;
}

.prose ul ul li::before {
	content: "·";
}

/* Ordered lists */

.prose ol {
	list-style: none;
	counter-reset: prose-counter;
	margin: 0 0 1.25em;
	padding: 0;
}

.prose ol li {
	counter-increment: prose-counter;
	position: relative;
	padding: 0.45em 0 0.45em 2em;
	border-bottom: .5px solid rgba(44,42,34,.06);
	font-size: 0.95em;
	line-height: 1.65;
	color: var(--bm);
}

.prose ol li:last-child {
	border-bottom: none;
}

.prose ol li::before {
	content: counter(prose-counter) ".";
	position: absolute;
	left: 0;
	color: var(--gm);
	font-weight: 500;
	font-size: 0.8em;
	top: 0.55em;
	min-width: 1.4em;
}

/* Blockquote */

.prose blockquote {
	border-left: 3px solid var(--gm);
	background: var(--cm);
	border-radius: 0 3px 3px 0;
	padding: 1em 1.25em;
	margin: 1.5em 0;
	font-style: italic;
	color: var(--bm);
}

.prose blockquote p {
	margin-bottom: 0;
}

.prose blockquote cite {
	display: block;
	margin-top: 0.6em;
	font-size: 0.85em;
	font-style: normal;
	color: var(--bf);
	letter-spacing: .04em;
}

/* Horizontal rule */

.prose hr {
	border: none;
	border-top: .5px solid var(--bd);
	margin: 2.5em 0;
}

/* Images */

.prose img {
	border-radius: 3px;
	width: 100%;
	height: auto;
	margin: 1.5em 0;
	display: block;
}

.prose figure {
	margin: 1.5em 0;
}

.prose figcaption {
	font-size: 0.8em;
	color: var(--bf);
	text-align: center;
	margin-top: 0.5em;
	letter-spacing: .04em;
}

/* Tables */

.prose table {
	width: 100%;
	border-collapse: collapse;
	margin: 1.5em 0;
	font-size: 0.9em;
}

.prose thead th {
	font-weight: 500;
	color: var(--bk);
	text-align: left;
	padding: 0.6em 1em;
	background: var(--cm);
	border-bottom: 1px solid var(--bd);
}

.prose tbody td {
	padding: 0.6em 1em;
	border-bottom: .5px solid var(--bd);
	color: var(--bm);
	font-weight: 300;
	vertical-align: top;
}

.prose tbody tr:last-child td {
	border-bottom: none;
}

/* Definition lists */

.prose dl {
	margin: 0 0 1.25em;
}

.prose dt {
	font-weight: 500;
	color: var(--bk);
	margin-top: 0.75em;
}

.prose dd {
	margin-left: 1.5em;
	color: var(--bm);
	font-weight: 300;
}

/* Size variant — smaller text in sidebars etc */

.prose.prose-sm {
	font-size: 13px;
}

.prose.prose-sm h2 {
	font-size: 1.3em;
}

.prose.prose-sm h3 {
	font-size: 1.1em;
}

.page-body {
    max-width: 1100px;
    margin: 0 auto;
    padding: 20px 20px;
    display: flex;
  
    flex-wrap: wrap;
    gap: 64px;
    align-items: flex-start;
 
    flex-direction: column;
}

@media (min-width: 800px) {
    .page-body {
        flex-direction: row;
        gap: 64px;
        align-items: flex-start;
    }

    .page-body > :first-child {
        flex: 1;
        min-width: 0;
    }

    .page-body > :last-child {
        width: 320px;
        flex-shrink: 0;
    }
}


.page-content {
    flex: 1;
    min-width: 0;
}

.page-sidebar {
    width: 320px;
    flex-shrink: 0;
}
/*.page-body > :first-child {
    flex: 1;
    min-width: 0;
}

.page-body > :last-child {
    width: 320px;
    flex-shrink: 0;
}*/
 
 .freeform-fieldtype-rich-text {
 	font-size: 12px;
 	text-transform: uppercase;
 	letter-spacing: 1px;
 	color: #999;
 }

/* ── PAGE CONTAINER — shared max-width box for contact and reviews ── */

.page-container {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 40px;
}

@media (max-width: 900px) {
	.page-container {
		padding: 0 24px;
	}
}
@media (max-width: 600px) {
	.page-container {
		padding: 0 20px;
	}
}

/*.page-sidebar {
	position: static
}*/

/* ── CONTENT TYPOGRAPHY ── */

.content-section {
	margin-bottom: 56px
}

.content-section:last-child {
	margin-bottom: 0
}

.content-h2 {
	font-family: var(--fs);
	font-size: 22px;
	font-weight: 400;
	color: var(--bk);
	margin-bottom: 16px;
	padding-bottom: 12px;
	border-bottom: .5px solid var(--bd);
}

.content-h3 {
	font-family: var(--fs);
	font-size: 16px;
	font-weight: 500;
	color: var(--bk);
	margin: 20px 0 8px;
	font-style: italic;
}

.content-p {
	font-size: 14px;
	line-height: 1.82;
	color: var(--bm);
	font-weight: 300;
	margin-bottom: 14px
}

.content-p:last-child {
	margin-bottom: 0
}

.content-ul {
	list-style: none;
	margin: 0 0 14px
}

.content-ul li {
	font-size: 13px;
	color: var(--bm);
	font-weight: 300;
	padding: 5px 0;
	border-bottom: .5px solid rgba(44,42,34,.06);
	line-height: 1.5;
}

.content-ul li::before {
	content: "—";
	color: var(--gm);
	margin-right: 8px;
	font-size: 11px
}

.content-ul li:last-child {
	border-bottom: none
}

/* ── PHOTO GALLERY ── */

.gallery {
	margin: 28px 0 36px;
	display: grid;
	gap: 6px
}

.gallery.two-col {
	grid-template-columns: 1fr 1fr
}

.gallery.three-col {
	grid-template-columns: 1fr 1fr 1fr
}

.gallery-img {
	border-radius: 3px;
	overflow: hidden;
	aspect-ratio: 4/3
}

.gallery-img.wide {
	aspect-ratio: 16/7
}

.gallery-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .4s
}

.gallery-img:hover img {
	transform: scale(1.03)
}

/* ── HIGHLIGHT BOX ── */

.highlight-box {
	background: var(--cm);
	border-left: 3px solid var(--gm);
	border-radius: 0 3px 3px 0;
	padding: 20px 24px;
	margin: 28px 0 !important;
}

.highlight-box p {
 
	line-height: 1.75;
	color: var(--bm);
	font-weight: 300;
	font-style: italic
}

/* ── SIDEBAR ── */

.sidebar-card {
	background: #fff;
	border: .5px solid var(--bd);
	border-radius: 3px;
	overflow: hidden;
	margin-bottom: 16px;
}

.sidebar-book {
	padding: 24px
}

.sidebar-book .kicker {
	margin-bottom: 10px
}

.sidebar-book .serif-h2 {
	font-size: 20px;
	margin-bottom: 6px
}

.sidebar-book p {
	font-size: 12px;
	color: var(--bm);
	font-weight: 300;
	margin-bottom: 20px;
	line-height: 1.6
}

.sidebar-cta {
	display: block;
	width: 100%;
	text-align: center;
	background: var(--gm);
	color: #fff;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .1em;
	text-transform: uppercase;
	padding: 13px 20px;
	border-radius: 2px;
	text-decoration: none;
	transition: background .2s;
	margin-bottom: 10px;
}

.sidebar-cta:hover {
	background: var(--gd)
}

.sidebar-cta.ghost {
	background: none;
	color: var(--gm);
	border: .5px solid var(--gm);
	margin-bottom: 0;
}

.sidebar-cta.ghost:hover {
	background: rgba(44,74,46,.06)
}

.sidebar-specs {
	padding: 20px 24px;
	border-top: .5px solid var(--bd)
}

.spec-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	padding: 8px 0;
	border-bottom: .5px solid rgba(44,42,34,.07);
	font-size: 12px;
}

.spec-row:last-child {
	border-bottom: none
}

.spec-label {
	color: var(--bl);
	font-weight: 300;
	letter-spacing: .04em
}

.spec-val {
	color: var(--bk);
	font-weight: 500;
	text-align: right
}

/* ── QUICK HIGHLIGHTS GRID ── */

.highlights-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	margin: 24px 0 32px;
}

.highlight-item {
	background: var(--cm);
	border-radius: 3px;
	padding: 16px;
}

.hi-icon {
	width: 22px;
	height: 22px;
	color: var(--gm);
	margin-bottom: 8px
}

.hi-name {
	font-size: 12px;
	font-weight: 500;
	color: var(--bk);
	margin-bottom: 2px
}

.hi-desc {
	font-size: 10px;
	color: var(--bl);
	font-weight: 300;
	line-height: 1.4
}

/* ── RESPONSIVE ── */

@media(max-width:900px) {
	.page-header{
	padding: 40px 24px 32px
}

.page-body {
        gap: 40px;
        padding: 40px 24px;
    }

    .page-sidebar {
        width: 100%;
    }

 
}

@media(max-width:600px) {
	
	.page-header{
	padding: 32px 20px 24px
}

.page-body {
    padding: 32px 20px;
    gap: 32px;
  }

.gallery.three-col {
	grid-template-columns: 1fr 1fr
}

.highlights-grid {
	grid-template-columns: 1fr
}

.page-header-meta {
	gap: 14px
}
}


/* ============================================================
   CONTACT PAGE
   ============================================================ */

/* wp-contact.css — Contact page styles */

.contact-layout {
	display: grid;
	grid-template-columns: 1fr 420px;
	min-height: calc(100vh - 68px);
}

/* Left panel — form */

.contact-form-panel {
	padding: 64px 56px 64px 40px;
	background: var(--cr);
	border-right: .5px solid var(--bd);
}

.contact-form-panel .kicker {
	margin-bottom: 12px;
}

.contact-form-panel h1 {
	font-family: var(--fs);
	font-size: clamp(28px, 3.5vw, 40px);
	font-weight: 400;
	line-height: 1.2;
	color: var(--bk);
	margin-bottom: 10px;
}

.contact-intro {
	font-size: 14px;
	font-weight: 300;
	color: var(--bm);
	line-height: 1.75;
	margin-bottom: 40px;
 
}

/* Form fields */

.form-row {
	margin-bottom: 22px;
}

.form-row-2 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	margin-bottom: 22px;
}

.form-row label, .form-row-2 label {
	display: block;
	font-size: 10px;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: var(--bl);
	font-weight: 400;
	margin-bottom: 7px;
}

.form-control {
	width: 100%;
	padding: 12px 14px;
	border: .5px solid rgba(44,42,34,.2);
	border-radius: 2px;
	font-size: 14px;
	font-family: var(--ff);
	font-weight: 300;
	color: var(--bk);
	background: #fff;
	transition: border-color .2s;
	-webkit-appearance: none;
	appearance: none;
}

.form-control:focus {
	outline: none;
	border-color: var(--gm);
}

.form-control::placeholder {
	color: #b5b0a5;
}

select.form-control {
	color: var(--bl);
	cursor: pointer;
}

select.form-control:not([data-selected]) {
	color: #b5b0a5;
}

textarea.form-control {
	resize: vertical;
	min-height: 130px;
	line-height: 1.6;
}

/* Subject tabs */

.subject-tabs {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	margin-bottom: 24px;
}

.subject-tab {
	font-size: 11px;
	font-weight: 400;
	letter-spacing: .07em;
	color: var(--bm);
	background: none;
	border: .5px solid var(--bd);
	border-radius: 20px;
	padding: 6px 14px;
	cursor: pointer;
	font-family: var(--ff);
	transition: all .18s;
}

.subject-tab:hover {
	border-color: var(--gm);
	color: var(--gm);
}

.subject-tab.active {
	background: var(--gm);
	color: #fff;
	border-color: var(--gm);
}

/* Submit */

.form-submit {
	display: flex;
	align-items: center;
	gap: 20px;
	margin-top: 32px;
}

.submit-btn {
	background: var(--gm);
	color: #fff;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .1em;
	text-transform: uppercase;
	padding: 14px 32px;
	border-radius: 2px;
	border: none;
	cursor: pointer;
	font-family: var(--ff);
	transition: background .2s;
}

.submit-btn:hover {
	background: var(--gd);
}

.form-note {
	font-size: 11px;
	color: var(--bf);
	font-weight: 300;
	line-height: 1.5;
}

/* Success state */

.form-success {
	display: none;
	text-align: center;
	padding: 48px 24px;
}

.form-success svg {
	color: var(--gm);
	margin-bottom: 16px;
}

.form-success h3 {
	font-family: var(--fs);
	font-size: 22px;
	font-weight: 400;
	color: var(--bk);
	margin-bottom: 10px;
}

.form-success p {
	font-size: 14px;
	color: var(--bm);
	font-weight: 300;
}
.freeform-form button {
	background: #1e3020 !important;
	font-size: 16px !important;
	font-family: 'Playfair Display',Georgia,serif !important;
}

/* Right panel — info */

.contact-info-panel {
	background: var(--green-dark, #1e3020);
	display: flex;
	flex-direction: column;
	position: relative;
	overflow: hidden;
}

.contact-photo {
	width: 100%;
	height: 260px;
	overflow: hidden;
	flex-shrink: 0;
}

.contact-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 30%;
	display: block;
	filter: brightness(.88);
}

.contact-info-content {
	padding: 36px 36px 40px;
	flex: 1;
	background: #1e3020;
}

.info-section {
	margin-bottom: 32px;
}

.info-section:last-child {
	margin-bottom: 0;
}

.info-label {
	font-size: 9px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: rgba(255,255,255,.38);
	font-weight: 400;
	margin-bottom: 10px;
	display: block;
}

.info-value {
	font-size: 13px;
	color: rgba(255,255,255,.82);
	font-weight: 300;
	line-height: 1.7;
}

.info-value a {
	color: rgba(255,255,255,.82);
	text-decoration: none;
}

.info-value a:hover {
	color: #fff;
}

.info-divider {
	height: .5px;
	background: rgba(255,255,255,.1);
	margin: 28px 0;
}

/* FAQ section */

.faq-list {
	margin-top: 40px;
}

.faq-item {
	border-bottom: .5px solid var(--bd);
	padding: 20px 0;
}

.faq-item:first-child {
	border-top: .5px solid var(--bd);
}

.faq-q {
	font-size: 16px;
	font-weight: 500;
	color: var(--bk);
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	list-style: none;
	font-family: var(--ff);
}

.faq-q::after {
  content: "+";
  font-size: 22px;
  font-weight: 300;
  color: var(--gm);
  flex-shrink: 0;
  transition: transform 0.3s ease;
}

.faq-item.open .faq-q::after {
	transform: rotate(45deg);
}

.faq-a {
	font-size: 16px;
	font-weight: 300;
	color: var(--bm);
	line-height: 1.75;
	padding-top: 12px;
	display: none;
	margin-right: 32px;
	transition: max-height 0.3s ease, padding-top 0.3s ease;
}

.faq-item.open .faq-a {
	display: block;
 
  max-height: 300px;
  padding-top: 12px;
}


/* Responsive */

@media (max-width: 900px) {
	.contact-layout {
		grid-template-columns: 1fr;
	}
	
	.contact-form-panel {
		padding: 40px 24px;
		border-right: none;
		border-bottom: .5px solid var(--bd);
	}
	
	.contact-info-panel {
		flex-direction: row;
		flex-wrap: wrap;
	}
	
	.contact-photo {
		height: 200px;
		width: 100%;
	}
	
	.contact-info-content {
		padding: 28px 24px;
	}
	
	.faq-list {
		margin-top: 0;
	}
}
@media (max-width: 600px) {
	.contact-form-panel {
		padding: 32px 20px;
	}
	
	.form-row-2 {
		grid-template-columns: 1fr;
		gap: 0;
	}
	
	.form-row-2 > div:first-child {
		margin-bottom: 22px;
	}
	
	.contact-info-content {
		padding: 24px 20px;
	}
	
	.form-submit {
		flex-direction: column;
		align-items: flex-start;
		gap: 14px;
	}
	
	.submit-btn {
		width: 100%;
		text-align: center;
	}
}


/* ============================================================
   _PAGES.TWIG — standard pages + reviews page
   ============================================================ */

/* Page header image strip (optional, only when entry.images set) */

.page-header-img {
	margin-top: 28px;
	border-radius: 3px;
	overflow: hidden;
	height: 240px;
}

.page-header-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Reviews page intro */

.reviews-page-intro {
	background: var(--cr);
	padding: 56px 40px 40px;
	border-bottom: .5px solid var(--bd);
}

.reviews-intro-inner {
	max-width: 760px;
}

.reviews-stats-row {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	margin-top: 24px;
}

.reviews-stat-pill {
	font-size: 12px;
	font-weight: 300;
	color: var(--bm);
	background: var(--cm);
	border: .5px solid var(--bd);
	border-radius: 20px;
	padding: 6px 14px;
}

.reviews-stat-pill strong {
	font-weight: 500;
	color: var(--bk);
}

/* Pull quotes banner */

.reviews-quotes-banner {
	background: var(--gd);
	padding: 40px;
}

.reviews-quotes-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
	max-width: 1100px;
	margin: 0 auto;
}

.q-card {
	background: rgba(255,255,255,.06);
	border: .5px solid rgba(255,255,255,.12);
	border-radius: 3px;
	padding: 18px 20px;
	font-family: var(--fs);
	font-style: italic;
	font-size: 13px;
	color: rgba(255,255,255,.78);
	line-height: 1.6;
}

/* Leave a review */

.leave-review-wrap {
	padding: 24px 40px;
	background: var(--cr);
	border-bottom: .5px solid var(--bd);
}

.leave-review-wrap > * {
	max-width: 1100px;
	margin-left: auto;
	margin-right: auto;
}

.leave-review-btn {
	display: inline-block;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--gm);
	border: .5px solid var(--gm);
	border-radius: 2px;
	padding: 10px 20px;
	text-decoration: none;
	transition: all .2s;
}

.leave-review-btn:hover {
	background: var(--gm);
	color: #fff;
}

/* Sort bar */

.reviews-sort-bar {
	display: flex;
	gap: 8px;
	padding: 20px 40px;
	background: var(--cr);
	border-bottom: .5px solid var(--bd);
}

.sort-btn {
	font-size: 11px;
	font-weight: 400;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--bm);
	background: none;
	border: .5px solid var(--bd);
	border-radius: 20px;
	padding: 6px 16px;
	cursor: pointer;
	font-family: var(--ff);
	transition: all .18s;
}

.sort-btn:hover {
	border-color: var(--gm);
	color: var(--gm);
}

.sort-btn.active {
	background: var(--gm);
	color: #fff;
	border-color: var(--gm);
}

/* Full reviews grid */

.reviews-full-grid {
	list-style: none;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	padding: 40px;
	background: var(--cm);
}

.reviews-full-grid .review-card {
	background: var(--cr);
	border-radius: 3px;
	padding: 24px;
	border: .5px solid var(--bd);
}

.reviews-full-grid blockquote {
	border: none;
	margin: 0;
	padding: 0;
}

.reviews-full-grid-wrap {
	background: var(--cm);
	padding: 40px 0;
}

/* Responsive — reviews page */

@media (max-width: 900px) {
	.reviews-page-intro {
		padding: 40px 24px 32px;
	}
	
	.reviews-quotes-banner {
		padding: 28px 24px;
	}
	
	.reviews-quotes-grid {
		grid-template-columns: 1fr 1fr;
	}
	
	.leave-review-wrap {
		padding: 20px 24px;
	}
	
	.reviews-sort-bar {
		padding: 16px 24px;
	}
	
	.reviews-full-grid {
		padding: 24px;
		grid-template-columns: 1fr;
	}
	
	.page-header-img {
		height: 180px;
	}
}
@media (max-width: 600px) {
	.reviews-quotes-grid {
		grid-template-columns: 1fr;
	}
	
	.reviews-full-grid {
		padding: 20px;
	}
	
	.reviews-sort-bar {
		padding: 14px 20px;
	}
	
	.leave-review-wrap {
		padding: 16px 20px;
	}
	
	.reviews-page-intro {
		padding: 32px 20px 24px;
	}
	
	.page-header-img {
		height: 140px;
	}
}

/* ── STICKY BOOK BUTTON ── */

.sticky-book {
	position: fixed;
	bottom: 24px;
	right: 24px;
	z-index: 90;
	opacity: 0;
	pointer-events: none;
	transform: translateY(8px);
	transition: opacity .25s,transform .25s
}

.sticky-book.is-visible {
	opacity: 1;
	pointer-events: auto;
	transform: none
}

.sticky-book-btn {
	display: inline-block;
	background: var(--gm);
	color: #fff;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .1em;
	text-transform: uppercase;
	padding: 13px 22px;
	border-radius: 2px;
	text-decoration: none;
	box-shadow: 0 4px 20px rgba(0,0,0,.25);
	transition: background .2s
}

.sticky-book-btn:hover {
	background: var(--gd)
}

/* ── PHOTO CAROUSEL / LIGHTBOX ── */

.carousel {
	margin: 28px 0 36px;
	position: relative;
	padding-top: 28px;
	
}

.carousel-track-wrap {
	overflow: hidden;
	border-radius: 3px;
	 border: 1px solid #b2b2b2;
}

.carousel-track {
	display: flex;
	transition: transform .35s ease;
	will-change: transform;
}
.carousel-slide {
  flex: 0 0 100%;
  position: relative;
   
    /*box-shadow: 0px 6px 6px #333;*/

}

.carousel-slide img {
  width: 100%;
  height: 520px;
  object-fit: cover;
  object-position: center center;
  display: block;

}

/* Multi-slide (2-up on wide) */

.carousel.two-up .carousel-slide {
	flex: 0 0 50%;
}

.carousel.two-up .carousel-slide img {
	aspect-ratio: 4/3;
}

.carousel-btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background: rgba(250,248,243,.5);
	border: .5px solid var(--bd);
	color: var(--bk);
	width: 40px;
	height: 40px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	z-index: 2;
	transition: background .2s;
	font-size: 20px;
	line-height: 1;
}

.carousel-btn:hover {
	background: #fff;
}

.carousel-btn.prev {
	left: 12px;
}

.carousel-btn.next {
	right: 12px;
}

.carousel-dots {
	display: flex;
	justify-content: center;
	gap: 6px;
	margin-top: 12px;
}

.carousel-dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--bd);
	border: none;
	cursor: pointer;
	padding: 0;
	transition: background .2s;
}

.carousel-dot.active {
	background: var(--gm);
}

/* Lightbox */

.lightbox {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 1000;
	background: rgba(28,26,18,.92);
	align-items: center;
	justify-content: center;
}

.lightbox.open {
	display: flex;
}

.lightbox-img-wrap {
	position: relative;
	max-width: 90vw;
	max-height: 90vh;
}

.lightbox-img-wrap img {
	max-width: 90vw;
	max-height: 86vh;
	object-fit: contain;
	border-radius: 2px;
	display: block;
}

.lightbox-close {
	position: fixed;
	top: 20px;
	right: 24px;
	background: none;
	border: .5px solid rgba(255,255,255,.3);
	color: #fff;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
}

.lightbox-prev, .lightbox-next {
	position: fixed;
	top: 50%;
	transform: translateY(-50%);
	background: rgba(255,255,255,.1);
	border: .5px solid rgba(255,255,255,.2);
	color: #fff;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	font-size: 20px;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
}

.lightbox-prev {
	left: 20px;
}

.lightbox-next {
	right: 20px;
}

.lightbox-caption {
	position: fixed;
	bottom: 24px;
	left: 50%;
	transform: translateX(-50%);
	font-size: 11px;
	color: rgba(255,255,255,.5);
	letter-spacing: .08em;
	white-space: nowrap;
}

/* ════════════════════════════════════════════════════════
   MATRIX BLOCK STYLES
════════════════════════════════════════════════════════ */

/* Book button (replaces Webflow primary-button-wrapper) */

.matrix-book-btn-wrap {
	margin:0 0 32px 0;
	padding-top: 32px;
}
.faqWrapper {
	margin-top: 48px;
}
.homeFAQ {
		padding: 60px 40px;
		margin: 0;
}

.matrix-book-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: var(--gm);
	color: #fff;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .1em;
	text-transform: uppercase;
	padding: 14px 28px;
	border-radius: 2px;
	text-decoration: none;
	transition: background .2s;
}

.matrix-book-btn:hover {
	background: var(--gd);
	color: #fff;
}

.matrix-book-btn svg {
	flex-shrink: 0;
}

/* Inline positioned images */

.prose-img {
	margin: 1.5em 0;
	padding-bottom: 32px;
}
.matrix-content .prose-img {
	margin-top: 1.5em;
	margin-bottom: 0;
}

.prose-img img {
	border-radius: 3px;
	display: block;
	max-width: 100%;
	height: auto;
}

.prose-img--full img {
	width: 100%;
}

.prose-img--left {
	float: left;
	margin: 0.5em 1.5em 1em 0;
	max-width: 45%;
}

.prose-img--right {
	float: right;
	margin: 0.5em 0 1em 1.5em;
	max-width: 45%;
}

.prose-img figcaption {
	font-size: 0.8em;
	color: var(--bf);
	margin-top: 0.4em;
	letter-spacing: .04em;
}
/* Clear floats after image blocks */

.prose-img--left + *, .prose-img--right + * {
	overflow: hidden;
}

/* Two / three column layouts */

.matrix-cols {
	display: grid;
	gap: 32px;
	margin: 24px 0;
}

.matrix-cols--2 {
	grid-template-columns: 1fr 1fr;
}

.matrix-cols--3 {
	grid-template-columns: 1fr 1fr 1fr;
}

/* Video embed */

.matrix-video {
	margin: 28px 0;
	border-radius: 3px;
	overflow: hidden;
	aspect-ratio: 16/9;
	background: var(--bk);
}

.matrix-video iframe, .matrix-video video {
	width: 100%;
	height: 100%;
	display: block;
}

/* Inline form */

.matrix-form-wrap {
	margin: 32px 0;
	padding: 28px;
	background: var(--cm);
	border-radius: 3px;
	border: .5px solid var(--bd);
}

.matrix-form-wrap h3 {
	margin-bottom: 16px;
}

/* Raw code */

.matrix-code {
	margin: 24px 0;
}

/* Responsive matrix */

@media (max-width: 700px) {
	.matrix-cols--2, .matrix-cols--3 {
		grid-template-columns: 1fr;
	}
	
	.prose-img--left, .prose-img--right {
		float: none;
		max-width: 100%;
		margin: 1em 0;
	}
}

/* Matrix content wrapper — clears floated images */

.matrix-content {
	overflow: hidden;
}

.matrix-content > * + * {
	margin-top: 0;
}

/* page-container vertical padding when wrapping full-page layouts */

.page-container > .contact-layout {
	/* contact fills the container naturally */
}
