/* ================================================================
   LF BnB — Single Property Page
   Palette: cream #FAF7F2 · ink #1C1916 · amber #D4860A
   Type: Georgia (display) + system-ui (body)
   ================================================================ */

/* ── Variables (extend main plugin vars) ── */
:root {
	--lfs-cream:      #FAF7F2;
	--lfs-white:      #FFFFFF;
	--lfs-ink:        #1C1916;
	--lfs-stone:      #7A736B;
	--lfs-amber:      #D4860A;
	--lfs-amber-bg:   #FBF1E0;
	--lfs-border:     #E4DDD4;
	--lfs-radius:     12px;
	--lfs-shadow:     0 2px 20px rgba(28,25,22,.09);
}

/* ── Page shell ── */
.lf-single-page {
	background: var(--lfs-cream);
	min-height: 100vh;
	font-family: "Plus Jakarta Sans"
	color: var(--lfs-ink);
}

/* ════════════════════════════════════════
   GALLERY
════════════════════════════════════════ */
.lf-gallery-section {
	max-width: 1280px;
	margin: 0 auto;
	padding: 24px 24px 0;
}

.lf-gallery-mosaic {
	display: grid;
	grid-template-columns: 3fr 2fr;
	gap: 4px;
	height: 500px;
	border-radius: var(--lfs-radius);
	overflow: hidden;
	position: relative;
}

.lf-gallery-main {
	overflow: hidden;
	cursor: pointer;
	background: #e9e6e0;
}

.lf-gallery-main img {
	width: 100%;
	height: 100%;
	/* "cover" mozaik kutusunun sabit oranına göre görselin üstünü/altını
	   kırpıyordu (ör. dikey/portre çekilmiş odalarda). "contain" görselin
	   tamamını, hiçbir kenarı kesmeden, tüm çözünürlüklerde gösterir —
	   oran uyuşmazsa üstte/altta nötr bir boşluk (letterbox) bırakır. */
	object-fit: contain;
	display: block;
	transition: transform .4s ease;
}

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

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

.lf-gallery-side {
	display: grid;
	grid-template-rows: 1fr 1fr;
	gap: 4px;
}

.lf-gallery-side-single { grid-template-rows: 1fr; }

.lf-gallery-thumb {
	overflow: hidden;
	cursor: pointer;
	position: relative;
}

.lf-gallery-thumb:hover img { transform: scale(1.05); }

.lf-gallery-more-overlay {
	position: absolute;
	inset: 0;
	background: rgba(28,25,22,.45);
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: 17px;
	font-weight: 600;
	letter-spacing: .3px;
	padding-bottom: 130px;
}

.lf-gallery-all-btn {
	position: absolute;
	bottom: 16px;
	right: 16px;
	background: rgba(255,255,255,.9);
	border: none;
	border-radius: 8px;
	padding: 9px 18px;
	font-size: 13px;
	font-weight: 600;
	color: var(--lfs-ink);
	cursor: pointer;
	display: flex;
	align-items: center;
	gap: 7px;
	backdrop-filter: blur(6px);
	box-shadow: 0 2px 10px rgba(28,25,22,.13);
	transition: background .2s, box-shadow .2s;
	font-family: inherit;
}

.lf-gallery-all-btn:hover {
	background: #fff;
	box-shadow: 0 4px 16px rgba(28,25,22,.18);
}

/* Video tiles içindeki mozaik */
.lf-gallery-video-thumb {
	width: 100%;
	height: 100%;
	/* "cover" YouTube'un 4:3'e yakın/letterbox'lı hqdefault görselini kırpıp
	   bozuk gösteriyordu — "contain" tüm thumbnail'i kırpmadan gösterir.
	   Uzun-form + !important: başka bir kuralın background-position'ı
	   ezip tek taraflı (asimetrik) boşluğa yol açmasını kesin olarak engeller. */
	background-color: #1c1916 !important;
	background-repeat: no-repeat !important;
	background-position: center center !important;
	background-size: contain !important;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: transform .4s ease;
}

.lf-gallery-main:hover .lf-gallery-video-thumb,
.lf-gallery-thumb:hover .lf-gallery-video-thumb {
	transform: scale(1.04);
}

.lf-gallery-play-icon {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: rgba(255,255,255,.9);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--lfs-ink);
	flex-shrink: 0;
	box-shadow: 0 2px 10px rgba(0,0,0,.25);
}

.lf-gallery-thumb .lf-gallery-play-icon {
	width: 40px;
	height: 40px;
}

.lf-gallery-play-icon svg { margin-left: 3px; }

/* ════════════════════════════════════════
   CONTENT + SIDEBAR LAYOUT
════════════════════════════════════════ */
.lf-single-container {
	max-width: 1280px;
	margin: 0 auto;
	padding: 40px 24px 100px;
	display: grid;
	grid-template-columns: 1fr 380px;
	gap: 64px;
	align-items: start;
}

/* Sayfanın en altına eklenen üçüncü taraf shortcode/HTML alanı (ör. Trustindex).
   Tam genişlikte, ama içerik genişliği sitenin geri kalanıyla hizalı. */
.lf-single-embed {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 24px 60px;
}

/* ════════════════════════════════════════
   CONTENT COLUMN
════════════════════════════════════════ */
.lf-single-content { min-width: 0; }

/* Header */
.lf-single-header { margin-bottom: 28px; }

.lf-single-cats {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	margin-bottom: 10px;
}

.lf-single-cat-badge {
	background: var(--lfs-amber-bg);
	color: var(--lfs-amber);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .8px;
	text-transform: uppercase;
	padding: 3px 11px;
	border-radius: 20px;
}

.lf-single-title {
	font-family: "Plus Jakarta Sans";
	font-size: clamp(24px, 3.5vw, 38px);
	font-weight: 700;
	line-height: 1.15;
	color: var(--lfs-ink);
	margin: 0 0 14px;
}

.lf-single-permit {
	font-size: 13px;
	font-weight: 600;
	color: var(--lfs-stone);
	margin: -6px 0 14px;
}

.lf-single-meta-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
	font-size: 14px;
	color: var(--lfs-stone);
}

.lf-single-specs { font-weight: 500; }

.lf-single-meta-item {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-weight: 500;
}

.lf-single-meta-item svg {
	width: 15px;
	height: 15px;
	flex: 0 0 15px;
	color: var(--lfs-amber);
}

.lf-single-rating {
	display: flex;
	align-items: center;
	gap: 5px;
	color: var(--lfs-ink);
	font-weight: 700;
}

.lf-single-address {
	display: flex;
	align-items: center;
	gap: 4px;
}

/* Dividers */
.lf-s-divider {
	border: none;
	border-top: 1px solid var(--lfs-border);
	margin: 32px 0;
}

/* Sections */
.lf-s-section { margin-bottom: 0; }

.lf-s-section-title {
	font-family: "Plus Jakarta Sans";
	font-size: 21px;
	font-weight: 700;
	color: var(--lfs-ink);
	margin: 0 0 18px;
}

.lf-s-section-subtitle {
	margin: -8px 0 22px;
	font-size: 15px;
	color: var(--lfs-stone);
}

.lf-s-prose {
	font-size: 16px;
	line-height: 1.78;
	color: var(--lfs-stone);
}

.lf-s-prose p        { margin: 0 0 14px; }
.lf-s-prose p:last-child { margin-bottom: 0; }

/* House rules — subtle indent */
.lf-s-rules { padding-left: 2px; }

.lf-s-feature-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 12px;
}

.lf-s-feature-item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 16px;
	background: var(--lfs-white);
	border: 1px solid var(--lfs-border);
	border-radius: 10px;
	color: var(--lfs-ink);
	font-size: 14px;
	font-weight: 500;
}

.lf-s-feature-item strong {
	display: block;
	font-size: 20px;
	line-height: 1.1;
	color: var(--lfs-ink);
}

.lf-s-feature-icon,
.lf-s-icon-list-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 28px;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--lfs-amber-bg);
	color: var(--lfs-amber);
}

.lf-s-feature-icon svg,
.lf-s-icon-list-icon svg {
	width: 16px;
	height: 16px;
}

.lf-s-icon-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 12px;
}

.lf-s-icon-list li {
	display: flex;
	align-items: flex-start;
	gap: 11px;
	font-size: 15px;
	line-height: 1.55;
	color: var(--lfs-stone);
}

.lf-s-icon-list-icon--ok {
	background: var(--lfs-amber-bg);
	color: var(--lfs-amber);
}

.lf-s-icon-list-icon--danger {
	background: #FCEBE8;
	color: #8B1E16;
}

.lf-s-icon-list-icon--info {
	background: #F3EFE8;
	color: var(--lfs-stone);
}

.lf-s-offer-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px 40px;
	max-width: 760px;
}

.lf-s-offer-item {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	min-width: 0;
	color: var(--lfs-ink);
	font-size: 16px;
	line-height: 1.35;
}

.lf-s-offer-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 26px;
	width: 26px;
	height: 26px;
	color: var(--lfs-ink);
}

.lf-s-offer-icon svg {
	width: 24px;
	height: 24px;
}

.lf-s-offer-item strong {
	display: block;
	font-weight: 500;
	color: var(--lfs-ink);
}

.lf-s-offer-item small {
	display: block;
	margin-top: 3px;
	font-size: 13px;
	line-height: 1.4;
	color: var(--lfs-stone);
}

/* Amenities grid */
.lf-s-amenities-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
	gap: 10px 16px;
}

.lf-s-amenity-item {
	display: flex;
	align-items: center;
	gap: 9px;
	font-size: 14px;
	font-weight: 500;
	color: var(--lfs-ink);
}

/* Location map */
.lf-s-address-label {
	font-size: 14px;
	color: var(--lfs-stone);
	margin: 0 0 12px;
	display: flex;
	align-items: center;
	gap: 5px;
}

#lf-single-map {
	height: 320px;
	border-radius: var(--lfs-radius);
	overflow: hidden;
	border: 1px solid var(--lfs-border);
}

/* ════════════════════════════════════════
   STICKY BOOKING WIDGET
════════════════════════════════════════ */
.lf-single-sidebar-col {
	position: sticky;
	top: 96px;
}

.lf-bw {
	background: var(--lfs-white);
	border: 1px solid var(--lfs-border);
	border-radius: 18px;
	box-shadow: var(--lfs-shadow);
	padding: 24px;
}

/* Price */
.lf-bw-top {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 10px;
	padding-bottom: 18px;
	margin-bottom: 18px;
	border-bottom: 1px solid var(--lfs-border);
}

.lf-bw-price-line {
	display: flex;
	align-items: baseline;
	gap: 4px;
	flex: 1;
}

.lf-bw-price-amt {
	font-family: Georgia, serif;
	font-size: 28px;
	font-weight: 700;
	color: var(--lfs-ink);
}

.lf-bw-price-per,
.lf-bw-price-range {
	font-size: 14px;
	color: var(--lfs-stone);
}

.lf-bw-price-cta { font-size: 15px; color: var(--lfs-stone); }

.lf-bw-status {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .6px;
	text-transform: uppercase;
	padding: 3px 10px;
	border-radius: 20px;
}

.lf-bw-open   { background: #EBF8F0; color: #1A7F4B; }
.lf-bw-closed { background: #FEF0EE; color: #C0392B; }

/* Date cells */
.lf-bw-dates {
	display: grid;
	grid-template-columns: 1fr 1fr;
	border: 1.5px solid var(--lfs-border);
	border-radius: 10px;
	overflow: hidden;
	margin-bottom: 12px;
}

.lf-bw-date-cell {
	padding: 10px 13px;
}

.lf-bw-date-left { border-right: 1px solid var(--lfs-border); }

.lf-bw-label {
	display: block;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .8px;
	color: var(--lfs-stone);
	margin-bottom: 4px;
}

.lf-bw-date-input {
	width: 100%;
	border: none;
	background: transparent;
	font-size: 14px;
	font-weight: 500;
	color: var(--lfs-ink);
	cursor: pointer;
	padding: 0;
	outline: none;
	font-family: inherit;
}

/* Guests */
.lf-bw-guests {
	position: relative;
	border: 1.5px solid var(--lfs-border);
	border-radius: 10px;
	margin-bottom: 16px;
}

.lf-bw-guests-trigger {
	padding: 10px 13px;
	cursor: pointer;
}

.lf-bw-guests-val {
	font-size: 14px;
	font-weight: 500;
	color: var(--lfs-ink);
}

.lf-bw-guests-dd {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	right: 0;
	background: var(--lfs-white);
	border: 1px solid var(--lfs-border);
	border-radius: 12px;
	box-shadow: 0 8px 28px rgba(28,25,22,.13);
	padding: 8px 0;
	z-index: 200;
	display: none;
}

.lf-bw-guests-dd.open { display: block; }

.lf-bw-grow {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 11px 16px;
}

.lf-bw-gtype {
	display: block;
	font-size: 14px;
	font-weight: 600;
	color: var(--lfs-ink);
}

.lf-bw-gsub {
	font-size: 12px;
	color: var(--lfs-stone);
}

.lf-bw-counter {
	display: flex;
	align-items: center;
	gap: 11px;
}

.lf-bw-cnt {
	width: 29px;
	height: 29px;
	border-radius: 50%;
	border: 1.5px solid var(--lfs-border);
	background: transparent;
	font-size: 17px;
	line-height: 1;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--lfs-ink);
	transition: border-color .15s;
	font-family: inherit;
}

.lf-bw-cnt:disabled { opacity: .3; cursor: not-allowed; }
.lf-bw-cnt:not(:disabled):hover { border-color: var(--lfs-ink); }

.lf-bw-cnt-val {
	min-width: 18px;
	text-align: center;
	font-size: 14px;
	font-weight: 600;
}

/* Breakdown */
.lf-bw-breakdown {
	background: var(--lfs-cream);
	border-radius: 10px;
	padding: 14px 16px;
	margin-bottom: 16px;
	display: none;
}

.lf-bw-breakdown.visible { display: block; }

.lf-bw-bd-row {
	display: flex;
	justify-content: space-between;
	font-size: 14px;
	color: var(--lfs-stone);
	margin-bottom: 10px;
}

.lf-bw-bd-total {
	display: flex;
	justify-content: space-between;
	font-size: 15px;
	font-weight: 700;
	color: var(--lfs-ink);
	padding-top: 10px;
	border-top: 1px solid var(--lfs-border);
}

/* CTA */
.lf-bw-cta {
	width: 100%;
	background: var(--lfs-amber);
	color: #fff;
	border: none;
	border-radius: 10px;
	padding: 14px;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
	letter-spacing: .2px;
	transition: background .2s, transform .1s;
	margin-bottom: 10px;
	font-family: inherit;
}

.lf-bw-cta:hover  { background: #B87209; }
.lf-bw-cta:active { transform: scale(.98); }

.lf-bw-min-note {
	text-align: center;
	font-size: 12px;
	color: var(--lfs-stone);
	margin: 0 0 10px;
}

.lf-bw-stars {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 2px;
	font-size: 13px;
	color: var(--lfs-stone);
	font-weight: 500;
}

.lf-bw-stars span { margin-left: 5px; }

/* Shake animation for empty dates */
@keyframes lf-shake {
	0%,100% { transform: translateX(0); }
	25%      { transform: translateX(-5px); }
	75%      { transform: translateX(5px); }
}
.lf-shake { animation: lf-shake .35s ease; }

/* ════════════════════════════════════════
   BOOKING MODAL
════════════════════════════════════════ */
.lf-modal-overlay {
	position: fixed;
	inset: 0;
	background: rgba(28,25,22,.55);
	backdrop-filter: blur(4px);
	z-index: 9000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	opacity: 0;
	pointer-events: none;
	transition: opacity .22s;
}

.lf-modal-overlay.open {
	opacity: 1;
	pointer-events: auto;
}

.lf-modal-box {
	background: var(--lfs-white);
	border-radius: 20px;
	width: 100%;
	max-width: 560px;
	max-height: 92vh;
	overflow-y: auto;
	position: relative;
	padding: 32px;
	box-shadow: 0 28px 70px rgba(28,25,22,.22);
	animation: lf-modal-in .22s ease;
}

@keyframes lf-modal-in {
	from { transform: translateY(18px); opacity: 0; }
	to   { transform: translateY(0);    opacity: 1; }
}

.lf-modal-x {
	position: absolute;
	top: 18px;
	right: 18px;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: 1.5px solid var(--lfs-border);
	background: transparent;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background .15s;
	font-family: inherit;
	z-index: 1;
}

.lf-modal-x:hover { background: var(--lfs-cream); }

/* Steps bar */
.lf-modal-stepsbar {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-bottom: 26px;
}

.lf-mstep {
	display: flex;
	align-items: center;
	gap: 7px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .3px;
	text-transform: uppercase;
	color: var(--lfs-stone);
	transition: color .2s;
}

.lf-mstep.active { color: var(--lfs-ink); }
.lf-mstep.done   { color: var(--lfs-amber); }

.lf-mstep-num {
	width: 24px;
	height: 24px;
	border-radius: 50%;
	border: 2px solid var(--lfs-border);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 11px;
	font-weight: 700;
	color: var(--lfs-stone);
	transition: all .2s;
	flex-shrink: 0;
}

.lf-mstep.active .lf-mstep-num {
	border-color: var(--lfs-amber);
	background: var(--lfs-amber);
	color: #fff;
}

.lf-mstep.done .lf-mstep-num {
	border-color: var(--lfs-amber);
	background: var(--lfs-amber-bg);
	color: var(--lfs-amber);
}

.lf-mstep-line {
	flex: 1;
	height: 1.5px;
	background: var(--lfs-border);
}

/* Modal panels */
.lf-modal-title {
	font-family: Georgia, serif;
	font-size: 21px;
	font-weight: 700;
	color: var(--lfs-ink);
	margin: 0 0 14px;
}

.lf-modal-summary {
	background: var(--lfs-cream);
	border-radius: 10px;
	padding: 13px 15px;
	margin-bottom: 20px;
	font-size: 14px;
	line-height: 1.7;
	color: var(--lfs-stone);
}

.lf-modal-summary strong {
	display: block;
	font-size: 15px;
	font-weight: 700;
	color: var(--lfs-ink);
	margin-bottom: 3px;
}

/* Add-ons / upsell step */
.lf-modal-subtitle {
	font-size: 13px;
	color: var(--lfs-stone);
	margin: -6px 0 18px;
}

.lf-addon-list {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-bottom: 20px;
	max-height: 46vh;
	overflow-y: auto;
	padding-right: 2px;
}

.lf-addon-empty {
	font-size: 14px;
	color: var(--lfs-stone);
	text-align: center;
	padding: 24px 0;
}

.lf-addon-card {
	display: flex;
	align-items: center;
	gap: 14px;
	border: 1.5px solid var(--lfs-border);
	border-radius: 12px;
	padding: 12px;
	transition: border-color .15s;
}

.lf-addon-card.lf-addon-selected {
	border-color: var(--lfs-amber);
	background: var(--lfs-amber-bg);
}

.lf-addon-img {
	width: 56px;
	height: 56px;
	border-radius: 10px;
	background: var(--lfs-cream);
	background-size: cover;
	background-position: center;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--lfs-amber);
}

.lf-addon-img svg { width: 24px; height: 24px; }

.lf-addon-body { flex: 1; min-width: 0; }

.lf-addon-title {
	font-size: 14.5px;
	font-weight: 700;
	color: var(--lfs-ink);
	margin: 0 0 2px;
}

.lf-addon-desc {
	font-size: 12.5px;
	color: var(--lfs-stone);
	margin: 0 0 4px;
	line-height: 1.4;
}

.lf-addon-price {
	font-size: 13px;
	font-weight: 700;
	color: var(--lfs-ink);
}

.lf-addon-price span {
	font-weight: 400;
	color: var(--lfs-stone);
	font-size: 11.5px;
}

.lf-addon-btn {
	flex-shrink: 0;
	border: 1.5px solid var(--lfs-border);
	background: var(--lfs-white);
	border-radius: 8px;
	padding: 9px 18px;
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
	color: var(--lfs-ink);
	transition: all .15s;
	font-family: inherit;
	min-width: 84px;
}

.lf-addon-btn:hover { border-color: var(--lfs-ink); }

.lf-addon-btn.lf-addon-btn-added {
	background: var(--lfs-amber);
	border-color: var(--lfs-amber);
	color: #fff;
}

.lf-addon-btn.lf-addon-btn-added:hover { background: #B87209; border-color: #B87209; }

/* Forms */
.lf-mform-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	margin-bottom: 12px;
}

.lf-mform-field { margin-bottom: 12px; }

.lf-mform-field label {
	display: block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .6px;
	text-transform: uppercase;
	color: var(--lfs-stone);
	margin-bottom: 6px;
}

.lf-mform-field input,
.lf-mform-field textarea {
	width: 100%;
	border: 1.5px solid var(--lfs-border);
	border-radius: 8px;
	padding: 10px 12px;
	font-size: 15px;
	color: var(--lfs-ink);
	background: var(--lfs-white);
	transition: border-color .15s;
	outline: none;
	box-sizing: border-box;
	font-family: inherit;
}

.lf-mform-field input:focus,
.lf-mform-field textarea:focus { border-color: var(--lfs-amber); }

.lf-mform-field textarea { resize: vertical; min-height: 78px; }

.lf-input-error { border-color: #C0392B !important; }

.lf-req { color: var(--lfs-amber); }

/* Payment */
.lf-modal-recap {
	background: var(--lfs-cream);
	border-radius: 10px;
	padding: 13px 15px;
	margin-bottom: 20px;
	font-size: 14px;
	color: var(--lfs-stone);
	line-height: 1.7;
}

.lf-recap-row {
	display: flex;
	justify-content: space-between;
}

.lf-recap-total {
	font-size: 15px;
	font-weight: 700;
	color: var(--lfs-ink);
	border-top: 1px solid var(--lfs-border);
	margin-top: 8px;
	padding-top: 8px;
}

.lf-secure-note {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	color: var(--lfs-stone);
	background: var(--lfs-amber-bg);
	border-radius: 8px;
	padding: 10px 12px;
	margin-bottom: 18px;
}

.lf-mform-actions {
	display: flex;
	gap: 12px;
	align-items: center;
}

.lf-mbtn-primary {
	flex: 1;
	background: var(--lfs-amber);
	color: #fff;
	border: none;
	border-radius: 10px;
	padding: 13px 20px;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	transition: background .18s;
	width: 100%;
	margin-top: 4px;
	font-family: inherit;
}

.lf-mbtn-primary:hover { background: #B87209; }

.lf-mbtn-secondary {
	background: transparent;
	border: 1.5px solid var(--lfs-border);
	border-radius: 10px;
	padding: 13px 18px;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	color: var(--lfs-ink);
	display: flex;
	align-items: center;
	gap: 6px;
	transition: border-color .15s;
	font-family: inherit;
}

.lf-mbtn-secondary:hover { border-color: var(--lfs-ink); }

/* Success */
.lf-mpanel-success { text-align: center; padding: 12px 0 8px; }

.lf-success-ring {
	width: 72px;
	height: 72px;
	border-radius: 50%;
	background: var(--lfs-amber);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 20px;
	animation: lf-pop .3s cubic-bezier(.34,1.56,.64,1);
}

@keyframes lf-pop {
	from { transform: scale(0); }
	to   { transform: scale(1); }
}

.lf-success-msg {
	font-size: 15px;
	color: var(--lfs-stone);
	line-height: 1.65;
	margin: 0 0 18px;
}

.lf-success-details {
	background: var(--lfs-cream);
	border-radius: 10px;
	padding: 13px 15px;
	margin-bottom: 22px;
	font-size: 14px;
	color: var(--lfs-stone);
	line-height: 1.7;
	text-align: left;
}

/* ════════════════════════════════════════
   LIGHTBOX
════════════════════════════════════════ */
.lf-lightbox {
	position: fixed;
	inset: 0;
	background: rgba(20,18,16,.95);
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	pointer-events: none;
	transition: opacity .2s;
}

.lf-lightbox.open {
	opacity: 1;
	pointer-events: auto;
}

.lf-lb-stage {
	display: flex;
	align-items: center;
	justify-content: center;
	max-width: 88vw;
	max-height: 85vh;
}

.lf-lb-stage img {
	max-width: 88vw;
	max-height: 85vh;
	object-fit: contain;
	border-radius: 4px;
}

.lf-lb-video {
	max-width: 88vw;
	max-height: 85vh;
	border-radius: 4px;
	background: #000;
}

.lf-lb-iframe {
	width: min(88vw, 1000px);
	height: min(85vh, 562px);
	aspect-ratio: 16 / 9;
	border-radius: 4px;
	background: #000;
}

.lf-lb-x,
.lf-lb-prev,
.lf-lb-next {
	position: absolute;
	background: rgba(255,255,255,.13);
	border: none;
	color: #fff;
	cursor: pointer;
	border-radius: 50%;
	width: 46px;
	height: 46px;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background .18s;
	font-family: inherit;
}

.lf-lb-x    { top: 20px; right: 20px; }
.lf-lb-prev { left: 20px; top: 50%; transform: translateY(-50%); }
.lf-lb-next { right: 20px; top: 50%; transform: translateY(-50%); }

.lf-lb-x:hover,
.lf-lb-prev:hover,
.lf-lb-next:hover { background: rgba(255,255,255,.26); }

.lf-lb-counter {
	position: absolute;
	bottom: 20px;
	left: 50%;
	transform: translateX(-50%);
	color: rgba(255,255,255,.65);
	font-size: 13px;
	font-weight: 500;
	margin: 0;
}

/* ════════════════════════════════════════
   RESPONSIVE
════════════════════════════════════════ */
@media (max-width: 1024px) {
	.lf-single-container {
		grid-template-columns: 1fr;
		gap: 36px;
	}
	.lf-single-sidebar-col { position: static; }
	.lf-gallery-mosaic     { height: 400px; }
}

@media (max-width: 640px) {
	.lf-gallery-section { padding: 16px 16px 0; }
	.lf-gallery-mosaic  { grid-template-columns: 1fr; height: 280px; }
	.lf-gallery-side    { display: none; }
	.lf-single-container{ padding: 24px 16px 60px; }
	.lf-single-embed    { padding: 0 16px 40px; }
	.lf-mform-row       { grid-template-columns: 1fr; }
	.lf-modal-box       { padding: 24px 18px; }
	.lf-s-offer-grid    { grid-template-columns: 1fr; gap: 16px; }
	.lf-bw-dates        { grid-template-columns: 1fr; }
	.lf-bw-date-left    { border-right: none; border-bottom: 1px solid var(--lfs-border); }
}

@media (prefers-reduced-motion: reduce) {
	.lf-gallery-main img,
	.lf-gallery-thumb img { transition: none; }
	.lf-modal-box { animation: none; }
	.lf-success-ring { animation: none; }
}

/* ════════════════════════════════════════
   CUSTOM CALENDAR PICKER
════════════════════════════════════════ */

/* Date cell — clickable trigger */
.lf-bw-date-cell {
	cursor: pointer;
	transition: background .15s;
}

.lf-bw-date-cell:hover { background: var(--lfs-cream); }

.lf-bw-date-val {
	font-size: 14px;
	font-weight: 500;
	color: #AEA79F;  /* placeholder */
	font-family: inherit;
}

.lf-bw-date-val.lf-has-date { color: var(--lfs-ink); }

/* Highlight active cell + border on open */
.lf-bw-dates.lf-dates-open { border-color: var(--lfs-amber); }

.lf-bw-date-cell.lf-date-active {
	background: var(--lfs-amber-bg);
}

.lf-bw-date-cell.lf-date-active .lf-bw-label { color: var(--lfs-amber); }

/* Positioning parent for popup */
.lf-bw { position: relative; }

/* ── Popup container ── */
.lf-cal-popup {
	display:       none;
	position:      absolute;
	left:          0;
	right:         0;
	z-index:       500;
	background:    var(--lfs-white);
	border:        1.5px solid var(--lfs-border);
	border-radius: 16px;
	box-shadow:    0 10px 40px rgba(28,25,22,.15);
	padding:       16px;
	user-select:   none;
}

/* ── Header (month nav) ── */
.lf-cal-header {
	display:         flex;
	align-items:     center;
	justify-content: space-between;
	margin-bottom:   14px;
}

.lf-cal-month-title {
	font-size:   14px;
	font-weight: 700;
	color:       var(--lfs-ink);
	font-family: Georgia, serif;
}

.lf-cal-nav {
	width:           30px;
	height:          30px;
	border-radius:   50%;
	border:          1.5px solid var(--lfs-border);
	background:      transparent;
	cursor:          pointer;
	display:         flex;
	align-items:     center;
	justify-content: center;
	color:           var(--lfs-ink);
	transition:      border-color .15s, background .15s;
	flex-shrink:     0;
	font-family:     inherit;
}

.lf-cal-nav:hover:not(:disabled) { border-color: var(--lfs-ink); background: var(--lfs-cream); }
.lf-cal-nav:disabled { opacity: .3; cursor: default; }

/* ── Days of week header ── */
.lf-cal-dow-row {
	display:               grid;
	grid-template-columns: repeat(7, 1fr);
	margin-bottom:         4px;
}

.lf-cal-dow {
	text-align:     center;
	font-size:      11px;
	font-weight:    700;
	letter-spacing: .5px;
	color:          var(--lfs-stone);
	padding:        4px 0;
}

/* ── Day grid ── */
.lf-cal-grid {
	display:               grid;
	grid-template-columns: repeat(7, 1fr);
	gap:                   2px 0;
}

/* ── Base day cell ── */
.lf-cal-day {
	position:   relative;
	height:     40px;
	display:    flex;
	align-items: center;
	justify-content: center;
	font-size:  13px;
	font-weight: 500;
	color:      var(--lfs-ink);
	cursor:     pointer;
}

.lf-cal-day > span {
	width:           34px;
	height:          34px;
	border-radius:   50%;
	display:         flex;
	align-items:     center;
	justify-content: center;
	position:        relative;
	z-index:         1;
	transition:      background .12s;
}

/* ── Available ── */
.lf-cal-avail:hover > span { background: var(--lfs-cream); }

/* ── Today ── */
.lf-cal-today > span { border: 2px solid var(--lfs-amber); }

/* ── Past (unselectable) ── */
.lf-cal-past { cursor: default; }
.lf-cal-past > span { color: #C4BEB6; }

/* ── Booked nights — reddish circle, strikethrough ── */
.lf-cal-booked { cursor: not-allowed; }
.lf-cal-booked > span {
	background:      #FCECEA;
	color:           #C4717A;
	text-decoration: line-through;
}

/* ── Too close (within min stay window) ── */
.lf-cal-too-close { cursor: not-allowed; }
.lf-cal-too-close > span { color: #C4BEB6; }

/* ── Blocked (after next booked range) ── */
.lf-cal-blocked { cursor: not-allowed; }
.lf-cal-blocked > span { color: #C4BEB6; }

/* ── Selected check-in / check-out ── */
.lf-cal-selected-in  > span,
.lf-cal-selected-out > span {
	background: var(--lfs-amber);
	color:      #fff;
	font-weight: 700;
}

/* Override today border on selected dates */
.lf-cal-selected-in.lf-cal-today  > span,
.lf-cal-selected-out.lf-cal-today > span { border-color: transparent; }

/* ── Strip connecting selected range ── */
/* When both dates selected: fill between them */
.lf-cal-in-range {
	background: var(--lfs-amber-bg);
}

/* Half-strip connectors on the endpoints */
.has-checkout .lf-cal-selected-in {
	background: linear-gradient(to right, transparent 50%, var(--lfs-amber-bg) 50%);
}
.has-checkout .lf-cal-selected-out {
	background: linear-gradient(to left, transparent 50%, var(--lfs-amber-bg) 50%);
}

/* Remove strip when it's the same-day (checkin = checkout, shouldn't happen but safety) */
.has-checkout .lf-cal-selected-in.lf-cal-selected-out {
	background: transparent;
}

/* Check-in cell shown in checkout mode but not yet confirmed as range */
.lf-cal-ci-only { background: transparent; }

/* ── Hover range preview ── */
.lf-cal-hover-range { background: #FDF4E7; }

.lf-cal-hover-end > span {
	background: rgba(212,134,10,.22);
	color:      var(--lfs-ink);
}

/* ── Footer ── */
.lf-cal-footer {
	display:         flex;
	justify-content: space-between;
	align-items:     center;
	margin-top:      12px;
	padding-top:     12px;
	border-top:      1px solid var(--lfs-border);
}

.lf-cal-clear-btn {
	background:   transparent;
	border:       none;
	font-size:    12px;
	font-weight:  600;
	color:        var(--lfs-stone);
	cursor:       pointer;
	text-decoration: underline;
	padding:      0;
	font-family:  inherit;
}

.lf-cal-clear-btn:hover { color: var(--lfs-ink); }

.lf-cal-hint {
	font-size:  12px;
	color:      var(--lfs-stone);
	font-style: italic;
}

/* ── Legend (shown at bottom of calendar) ── */
.lf-cal-legend {
	display:     flex;
	gap:         14px;
	margin-top:  10px;
	padding-top: 10px;
	border-top:  1px solid var(--lfs-border);
	font-size:   11px;
	color:       var(--lfs-stone);
}

.lf-cal-legend-item {
	display:     flex;
	align-items: center;
	gap:         5px;
}

.lf-cal-legend-dot {
	width:         12px;
	height:        12px;
	border-radius: 50%;
}

.lf-cal-legend-dot--booked   { background: #FCECEA; border: 1px solid #E8B4B4; }
.lf-cal-legend-dot--selected { background: var(--lfs-amber); }

/* ── WooCommerce states ── */
.lf-modal-error {
	margin-top: 12px;
	padding: 10px 14px;
	border-radius: 8px;
	background: #FEF0EE;
	color: #C0392B;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.5;
}

.lf-bw-cta:disabled {
	background: #C8B89A;
	cursor: not-allowed;
}

#lf-mpay-btn:disabled {
	opacity: .7;
	cursor: not-allowed;
}
