/*
Theme Name: DKW Child
Template: twentytwentyfive
*/

/* Typography and spacing for Extra shortcode outputs */
.dkw-extra-item-price,
.dkw-extra-rate-hours,
.dkw-extra-rate-days,
.dkw-acf-fields,
.wp-block-group { /* limit to our blocks if needed */
	font-family: "Cabin", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
	font-weight: 400;
}

.dkw-extra-rate-hours br + br,
.dkw-extra-rate-days br + br { display: none; }

.dkw-extra-rate-label { display:block; font-weight:600; font-size:1.25rem; color:#2a1b11; margin-bottom:8px; }
.dkw-extra-rate-lines,
.dkw-extra-rates-hours .dkw-extra-rate-lines,
.dkw-extra-rates-days .dkw-extra-rate-lines { display:block; font-size:1.20rem !important; line-height:1.4; color:#2a1b11; }
.dkw-extra-rate-line { display:block; margin-bottom:2px; }
.dkw-extra-label { white-space:normal; word-spacing:0; letter-spacing:0; }

.dkw-acf-list { margin: 0; padding: 0; }
.dkw-acf-list dt { font-weight: 600; margin-top: 0.6rem; }
.dkw-acf-list dd { margin: 0 0 0.7rem 0; }

/* ACF gallery slider */
.dkw-acf-gallery { margin: 1rem 0; }
.dkw-acf-gallery-slider { position: relative; }
.dkw-acf-gallery-slider .dkw-gallery-track {
	display: flex;
	gap: 12px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	padding-bottom: 4px;
	scrollbar-width: none;
}
.dkw-acf-gallery-slider .dkw-gallery-track::-webkit-scrollbar { display: none; }
.dkw-acf-gallery-slider .dkw-gallery-slide {
	flex: 0 0 100%;
	scroll-snap-align: center;
	margin: 0;
}
.dkw-acf-gallery-slider img { width: 100%; height: auto; display: block; border-radius: 6px; }
.dkw-acf-gallery-slider .dkw-gallery-nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 36px;
	height: 36px;
	border: 0;
	border-radius: 50%;
	background: rgba(0,0,0,0.55);
	color: #fff;
	font-size: 22px;
	line-height: 36px;
	text-align: center;
	cursor: pointer;
	z-index: 2;
}
.dkw-acf-gallery-slider .dkw-gallery-prev { left: 10px; }
.dkw-acf-gallery-slider .dkw-gallery-next { right: 10px; }

/* Bungalow details modal */
.dkw-bungalow-capacity,
.dkw-bungalow-beds,
.dkw-bungalow-view { display:block; margin:0 0 6px 0; font-weight:500; color:#2a1b11; }
.dkw-bungalow-details-trigger,
.dkw-bungalow-details-fetch { font-weight:600; text-decoration:underline; cursor:pointer; font-size:0.98rem; color:#8f5c57; }
.dkw-bungalow-details-trigger:hover,
.dkw-bungalow-details-fetch:hover { color:#ff6a3d; }
.dkw-modal { position:fixed; inset:0; display:none; align-items:center; justify-content:center; z-index:100000; }
.dkw-modal.is-open { display:flex; }
.dkw-modal-backdrop { position:absolute; inset:0; background:rgba(0,0,0,0.5); }
.dkw-modal-dialog { position:relative; z-index:2; background:#fff; width:min(720px, 92vw); max-height:80vh; overflow:auto; padding:20px 22px; border-radius:10px; box-shadow:0 18px 40px rgba(0,0,0,0.25); }
.dkw-modal-title { margin:0 0 10px 0; font-size:1.4rem; }
.dkw-modal-excerpt { margin:0 0 12px 0; color:#2a1b11; line-height:1.45; }
.dkw-modal-included { margin:0 0 12px 0; font-weight:600; color:#2a1b11; font-size:1.25rem; }
.dkw-modal-meta { margin:0 0 12px 0; }
.dkw-modal-line { margin:0 0 6px 0; font-size:1.25rem; }
.dkw-modal-line-view { margin-top:6px; }
.dkw-modal-features { margin:10px 0 12px 0; color:#2a1b11; font-size:1.15rem; }
.dkw-modal-note { font-size:1.10rem; color:#603e28; }
.dkw-modal-close { position:absolute; top:10px; right:12px; border:0; background:transparent; font-size:22px; cursor:pointer; }

/* Page No Title components */
.pnt-cover { position:relative; background-size:cover; background-position:center; background-repeat:no-repeat; display:flex; align-items:flex-end; padding:2rem 1.5rem; border-radius:4px; overflow:hidden; }
.pnt-cover.fullwidth { width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); border-radius:0; }
.pnt-cover-overlay { position:absolute; top:0; right:0; bottom:0; left:0; }
.pnt-cover-content { position:relative; z-index:2; color:#FFFFDF; max-width:1200px; width:100%; }
.pnt-cover-content .pnt-heading { margin:0; font-weight:500; font-size:2rem; line-height:1.1; color:#FFFFDF; font-family:"Sniglet", system-ui, -apple-system, Segoe UI, Roboto, sans-serif !important; }

/* Responsive cover heading sizes */
@media (min-width: 640px) {
	.pnt-cover-content .pnt-heading { font-size:2.6rem; }
}
@media (min-width: 1024px) {
	.pnt-cover-content .pnt-heading { font-size:3.2rem; }
}
.pnt-cover.h-center { justify-content:center; text-align:center; }
.pnt-cover.h-right { justify-content:flex-end; text-align:right; }
.pnt-cover.v-center { align-items:center; }
.pnt-cover.v-top { align-items:flex-start; }
.pnt-cover { text-align:left; }
.pnt-cover .pnt-cover-content { width:100%; }
.pnt-section { margin:2.5rem 0; }
.pnt-section-title { margin:0 0 .65rem 0; font-weight:500; font-family:"Sniglet", system-ui, -apple-system, Segoe UI, Roboto, sans-serif !important; position:relative; display:inline-block; padding-bottom:.6rem; }
.pnt-section-title::after { content:""; position:absolute; left:0; bottom:0; width:64px; height:6px; background:#ff9e57; border-radius:3px; }
.pnt-section-subdesc { margin:.35rem 0 .5rem 0; font-family:"Cabin", system-ui, -apple-system, Segoe UI, Roboto, sans-serif; font-weight:600; font-size:1rem; color:#8f5c57; line-height:1.35; }
.pnt-section-desc { line-height:1.5; font-family:"Cabin", system-ui, -apple-system, Segoe UI, Roboto, sans-serif; }
.pnt-extras { margin:3rem 0; }
.pnt-extras-heading { margin:0 0 1rem 0; font-weight:600; }
.pnt-extras-list { display:grid; gap:1.25rem; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); }
.pnt-extra-card { background:#fff; border:1px solid #e5e7eb; padding:0; border-radius:8px; overflow:hidden; position:relative; display:flex; flex-direction:column; }
.pnt-extra-card:hover { box-shadow:0 4px 18px -6px rgba(0,0,0,.18); }
.pnt-extra-figure { position:relative; width:100%; margin:0; overflow:hidden; padding-top:75%; }
.pnt-extra-figure img { position:absolute; top:0; left:0; width:100%; height:100%; object-fit:cover; display:block; }
.pnt-extra-title-overlay { position:absolute; left:0; top:0; right:0; padding:.6rem .75rem; font-weight:500; font-size:1.25rem; color:#2A1B11; font-family:"Josefin Sans", system-ui, -apple-system, Segoe UI, Roboto, sans-serif !important; background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(255,255,255,.55),rgba(255,255,255,0)); }
.pnt-extra-info { padding:.75rem .85rem 1rem; display:flex; flex-direction:column; gap:.4rem; }
.pnt-extra-title { margin:.2rem 0 .4rem 0; font-size:1.25rem; font-weight:500; font-family:"Josefin Sans", system-ui, -apple-system, Segoe UI, Roboto, sans-serif !important; }
.pnt-extra-price { display:block; font-size:.95rem; color:#57B8FF; font-weight:500; font-family:"Raleway", system-ui, -apple-system, Segoe UI, Roboto, sans-serif; }
.pnt-extra-more { font-size:.90rem; font-weight:500; color:#8f5c57; text-decoration:none; align-self:flex-start; font-family:"Lato", system-ui, -apple-system, Segoe UI, Roboto, sans-serif; }
.pnt-extra-more:hover { text-decoration:underline; }

@media (min-width: 820px) {
	/* Horizontal list layout variant triggered by columns attribute >=3 naturally */
	.pnt-extras.cols-3 .pnt-extras-list,
	.pnt-extras.cols-4 .pnt-extras-list,
	.pnt-extras.cols-5 .pnt-extras-list { grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); }
}

/* Bungalow rate plans compact list used inside linked bungalows cards */
.dkw-bungalow-rate-plans { list-style:none; margin:0.25rem 0 0; padding:0; }
.dkw-bungalow-rate-plans .dkw-bungalow-plan { font-size:0.9rem; color:#0f172a; margin:0; padding:0; }
.dkw-bungalow-rate-plans .dkw-bungalow-plan-rate { color:#064e3b; font-weight:600; margin-left:.35rem; }
.pnt-extra-rate-plans { margin-top:.35rem; }

/* Make sure rate list fits compactly inside the card info area */
.pnt-extra-card .pnt-extra-info { gap:.25rem; padding:.5rem .6rem .8rem; }
.pnt-extra-card .pnt-extra-excerpt { display:block; font-size:0.9rem; color:#334155; max-height:3.6rem; overflow:hidden; }

/* Terms & Privacy template styles */
.dkw-terms-page-label,
.dkw-privacy-page-label {
	margin:0 0 1rem 0;
	font-family:"Josefin Sans", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
	font-weight:600;
	font-size:2rem;
	color:#2a1b11;
	text-align:center;
}

.dkw-terms-intro,
.dkw-privacy-intro {
	margin:0 0 1.5rem 0;
	font-family:"Cabin", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
	font-weight:400;
	font-size:1rem;
	color:#334155;
	line-height:1.6;
}

.dkw-terms-section-title,
.dkw-privacy-section-title {
	margin:1.5rem 0 .5rem 0;
	font-family:"Josefin Sans", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
	font-weight:500;
	font-size:1.35rem;
	color:#111827;
}

.dkw-terms-section-desc,
.dkw-privacy-section-desc {
	margin:0 0 1rem 0;
	font-family:"Cabin", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
	font-weight:400;
	font-size:1rem;
	color:#334155;
	line-height:1.6;
}

/* Make top-level alignfull groups break out to viewport and remove unintended top gap */
/* Keep cover media centered and spanning */
.wp-block-cover.alignfull .wp-block-cover__image-background,
.wp-block-cover.alignfull .wp-block-cover__video-background {
	width: 100vw !important;
	left: 50% !important;
	transform: translateX(-50%) !important;
}

/* Role-based navigation visibility using block classes
	Add these block classes to your Navigation blocks in Site Editor:
	- nav-anon   (menus for users not logged in)
	- nav-team   (menus for Resa Team / staff)
	- nav-guest  (menus for logged-in guests)
*/
.user-logged-out .nav-team,
.user-logged-out .nav-guest { display: none !important; }

.user-logged-in.user-role-team .nav-anon,
.user-logged-in.user-role-team .nav-guest { display: none !important; }

.user-logged-in.user-role-guest .nav-anon,
.user-logged-in.user-role-guest .nav-team { display: none !important; }

/* Resa search form styling */
.resa-dkw-search {
	display: grid;
	grid-template-columns: minmax(130px, 1fr) minmax(130px, 1fr) minmax(110px, .8fr) minmax(110px, .8fr) minmax(130px, .9fr) auto;
	column-gap: 14px;
	row-gap: 10px;
	align-items: flex-end;
	font-family: "Cabin", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
	position: relative;
	padding: 20px 14px 55px;
	background: #ede9d0;
	border-radius: 12px;
}
.resa-dkw-search::before { content: none; }
.resa-dkw-search br { display: none !important; }
.resa-dkw-search p { margin: 0 !important; }
.resa-dkw-search > p,
.resa-dkw-search .resa-field > p { display: none !important; }
.resa-dkw-search .resa-field { display: flex; flex-direction: column; gap: 0; min-width: 0; }
.resa-dkw-search .resa-field-checkin { grid-column: 1; grid-row: 1; }
.resa-dkw-search .resa-field-checkout { grid-column: 2; grid-row: 1; }
.resa-dkw-search .resa-field-adults { grid-column: 3; grid-row: 1; }
.resa-dkw-search .resa-field-children { grid-column: 4; grid-row: 1; }
.resa-dkw-search .resa-field-category { grid-column: 5; grid-row: 1; }
.resa-dkw-search .resa-field-submit { grid-column: 6; grid-row: 1; }
.resa-dkw-search label {
	font-weight: 500;
	font-family: "Josefin Sans", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
	color: #2a1b11 !important;
	background: transparent;
	padding: 0;
	border-radius: 0;
	display: inline-block;
	align-self: flex-start;
	margin-bottom: 12px;
}
.resa-dkw-search input[type="date"],
.resa-dkw-search select {
	padding: 10px 12px;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	font-family: "Cabin", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
	color: #2a1b11 !important;
	background: #fff;
}
.resa-dkw-search select option,
.resa-dkw-search .resa-age { color: #2a1b11 !important; }
.resa-dkw-search input[type="date"]::placeholder,
.resa-dkw-search select::placeholder { color: #6b7280; }
.wp-block-cover .resa-dkw-search,
.wp-block-cover .resa-dkw-search label { color: #2a1b11 !important; }
.wp-block-cover .resa-dkw-search input[type="date"],
.wp-block-cover .resa-dkw-search select { color: #2a1b11 !important; }
.resa-dkw-search .resa-search-btn {
	padding: 11px 18px;
	border-radius: 999px;
	border: 0;
	background: #ff6a3d;
	color: #fff;
	font-weight: 600;
	cursor: pointer;
}
.resa-dkw-search .resa-search-btn:hover { background: #8f5c57; }
.resa-dkw-search .resa-field-submit { margin-left: 0; }
.resa-dkw-search .resa-field-category { margin-right: 0; min-width: 120px; }
.resa-dkw-search .resa-field-children { position: relative; min-width: 130px; }

/* Children ages layout (rendered below Children field) */
.resa-children-ages { display: none; flex-direction: row; flex-wrap: nowrap; gap: 12px; align-items: center; position: absolute; left: 0; top: calc(100% + 10px); z-index: 2; }
.resa-children-ages.is-active { display: flex !important; }
.resa-child-age { display: flex; flex-direction: row; align-items: center; gap: 6px; white-space: nowrap; }
.resa-child-age select { width: 120px; }
.resa-child-label { font-weight: 500; font-family: "Josefin Sans", system-ui, -apple-system, Segoe UI, Roboto, sans-serif; color: #2a1b11 !important; white-space: nowrap; display: inline-block; }

/* Search results + validation copy: force readable dark text on light cards */
.resa-dkw-results,
.resa-dkw-results .resa-cards,
.resa-dkw-results .resa-card,
.resa-dkw-results .resa-prices,
.resa-dkw-results .resa-accommodation,
.resa-dkw-results .resa-inclusions,
.resa-dkw-results .resa-linked-bungalows-top,
.resa-dkw-results .resa-capacity-note,
.resa-dkw-results .resa-search-note,
.resa-dkw-results .resa-package-note,
.resa-dkw-results .resa-package-warning,
.resa-dkw-results .resa-min-nights-note,
.resa-dkw-results .resa-empty,
.resa-dkw-results .resa-loading {
	color: #1f2937 !important;
}

.resa-dkw-results .resa-card h3,
.resa-dkw-results .resa-card-title,
.resa-dkw-results .resa-accommodation-title {
	color: #2a1b11 !important;
}

.resa-dkw-results .resa-error {
	color: #991b1b !important;
	background: #fff1f2;
	border: 1px solid #fecdd3;
	padding: 10px 12px;
	border-radius: 8px;
}

.resa-dkw-results .resa-select,
.resa-dkw-results .resa-pill {
	color: #2a1b11 !important;
}

/* Hard override: keep desktop search fields on one row in the intended order */
@media (min-width: 761px) {
	form#resa-dkw-search-form.resa-dkw-search {
		display: grid !important;
		grid-template-columns: minmax(130px, 1fr) minmax(130px, 1fr) minmax(110px, .8fr) minmax(110px, .8fr) minmax(130px, .9fr) auto !important;
		column-gap: 14px !important;
		row-gap: 10px !important;
		align-items: end !important;
	}
	form#resa-dkw-search-form.resa-dkw-search > .resa-field { min-width: 0 !important; align-self: end !important; }
	form#resa-dkw-search-form.resa-dkw-search > .resa-field.resa-field-checkin { grid-column: 1 !important; grid-row: 1 !important; }
	form#resa-dkw-search-form.resa-dkw-search > .resa-field.resa-field-checkout { grid-column: 2 !important; grid-row: 1 !important; }
	form#resa-dkw-search-form.resa-dkw-search > .resa-field.resa-field-adults { grid-column: 3 !important; grid-row: 1 !important; }
	form#resa-dkw-search-form.resa-dkw-search > .resa-field.resa-field-children { grid-column: 4 !important; grid-row: 1 !important; position: relative !important; align-self: end !important; }
	form#resa-dkw-search-form.resa-dkw-search > .resa-field.resa-field-category { grid-column: 5 !important; grid-row: 1 !important; }
	form#resa-dkw-search-form.resa-dkw-search > .resa-field.resa-field-submit { grid-column: 6 !important; grid-row: 1 !important; }
	form#resa-dkw-search-form.resa-dkw-search .resa-field-children .resa-children-ages {
		position: absolute !important;
		left: 0 !important;
		top: calc(100% + 10px) !important;
		z-index: 2 !important;
		display: none;
	}
	form#resa-dkw-search-form.resa-dkw-search .resa-field-children .resa-children-ages.is-active { display: flex !important; }
}

@media (max-width: 760px) {
	.resa-dkw-search {
		display: flex;
		flex-wrap: wrap;
		gap: 14px;
	}
}

/* Mobile: stack and show icons instead of visible labels */
@media (max-width: 640px) {
	.resa-dkw-search { flex-direction: column; align-items: stretch; }
	.resa-dkw-search label {
		position: absolute;
		width: 1px;
		height: 1px;
		padding: 0;
		margin: -1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
		border: 0;
	}
	.resa-dkw-search .resa-field { position: relative; }
	.resa-dkw-search input[type="date"],
	.resa-dkw-search select { padding-left: 38px; }
	.resa-dkw-search .resa-field::before {
		content: "";
		position: absolute;
		left: 12px;
		top: 32px;
		width: 16px;
		height: 16px;
		opacity: 0.7;
		background-size: 16px 16px;
		background-repeat: no-repeat;
	}
	.resa-dkw-search .resa-field-checkin::before {
		background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="%238f5c57"><path d="M7 2h2v2h6V2h2v2h3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h3V2zm13 8H4v9h16v-9z"/></svg>');
	}
	.resa-dkw-search .resa-field-checkout::before {
		background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="%238f5c57"><path d="M7 2h2v2h6V2h2v2h3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h3V2zm2 10h6v2H9v-2z"/></svg>');
	}
	.resa-dkw-search .resa-field-adults::before,
	.resa-dkw-search .resa-field-children::before {
		background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="%238f5c57"><path d="M12 12a4 4 0 1 0-4-4 4 4 0 0 0 4 4zm0 2c-4 0-8 2-8 5v3h16v-3c0-3-4-5-8-5z"/></svg>');
	}
	.resa-dkw-search .resa-field-category::before {
		background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="%238f5c57"><path d="M4 4h7l2 2h7v14H4V4zm0 4h16v2H4V8zm0 4h10v2H4v-2z"/></svg>');
	}
	.resa-dkw-search .resa-field-submit::before { display:none; }
}