/*
Theme Name: Holidays Feeling
Theme URI: https://holidaysfeeling.com
Author: Parvez
Author URI: https://breezweb.com/
Description: A clean, flexible WordPress theme built around an easy, intuitive built-in page builder. Add sections, rows, and columns to any page, choose from a wide range of ready-made elements — headings, images, galleries, testimonials, accordions, and more — and style everything (colors, borders, shadows, spacing) without touching code. Not built for any one niche, so it works well for almost any kind of business or site.
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 7.4
Tested up to: 6.6
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: holidays-feeling
Tags: custom-menu, custom-logo, translation-ready, block-styles, threaded-comments, theme-options
*/

/* ==========================================================================
   0. Custom properties & base
   ========================================================================== */
:root{
	--hf-navy:#10344C;
	--hf-navy-2:#0C2A3E;
	--hf-lagoon:#1E9E8C;
	--hf-lagoon-2:#166F62;
	--hf-coral:#F1653B;
	--hf-coral-2:#C24825;
	--hf-sand:#F4E9D8;
	--hf-foam:#FBFAF7;
	--hf-ink:#1B2430;
	--hf-ink-soft:#5B6572;
	--hf-line:#E4DED2;
	--hf-font-display:'Fraunces', Georgia, serif;
	--hf-font-body:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	--hf-font-label:'Space Grotesk', -apple-system, sans-serif;
	--hf-font-karla:'Karla', -apple-system, BlinkMacSystemFont, sans-serif;
	--hf-font-mulish:'Mulish', -apple-system, BlinkMacSystemFont, sans-serif;
	--hf-font-alata:'Alata', -apple-system, BlinkMacSystemFont, sans-serif;
	--hf-header-h:76px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{
	margin:0;
	font-family:var(--hf-font-body);
	color:var(--hf-ink);
	background:var(--hf-foam);
	line-height:1.65;
	font-size:16px;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; }
h1,h2,h3,h4,h5,h6{
	font-family:var(--hf-font-display);
	font-weight:500;
	color:var(--hf-navy);
	line-height:1.15;
	margin:0 0 .5em;
}
p{ margin:0 0 1em; }
button{ font-family:inherit; }

.screen-reader-text{
	position:absolute !important;
	left:-9999px;
	top:auto;
	width:1px;
	height:1px;
	overflow:hidden;
}
.skip-link{
	position:absolute;
	left:-9999px;
	background:var(--hf-navy);
	color:#fff;
	padding:10px 16px;
	z-index:10000;
}
.skip-link:focus{ left:8px; top:8px; }
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
	outline:2px solid var(--hf-lagoon);
	outline-offset:2px;
}

/* ==========================================================================
   1. Layout containers
   ========================================================================== */
.hf-container{ max-width:var(--hf-container-width, 1120px) !important; margin:0 auto !important; padding:0 24px !important; }
.hf-container--wide{ max-width:var(--hf-container-wide-width, 1360px) !important; }
.hf-container--full{ max-width:none !important; padding:0 24px !important; }

/*
 * Some plugins (e.g. custom post type archives/singles that use their own
 * template_include override) render straight into #hf-content without
 * ever using our .hf-container classes. This keeps those pages visually
 * consistent with the rest of the site without editing the plugin itself.
 * Extend this selector list if other plugin-rendered pages need it too.
 */
body.post-type-archive-abt_activity #hf-content,
body.single-abt_activity #hf-content{
	max-width:var(--hf-container-width, 1120px);
	margin-left:auto;
	margin-right:auto;
	padding-left:24px;
	padding-right:24px;
	box-sizing:border-box;
}

/* ==========================================================================
   2. Header & navigation
   ========================================================================== */
.hf-site-header{
	background:var(--hf-header-bg);
	position:relative;
	z-index:100;
}
.hf-site-header.is-sticky{
	position:sticky;
	top:0;
}
.hf-header-inner{
	display:flex;
	align-items:center;
	justify-content:space-between;
	min-height:var(--hf-header-h);
	gap:24px;
}
.hf-logo{ display:flex; align-items:center; }
.hf-logo img{ max-height:44px; width:auto; }
.hf-logo-text{
	font-family:var(--hf-font-display);
	font-size:21px;
	font-weight:600;
	color:#fff;
}

.hf-nav-actions{
	display:flex;
	align-items:center;
	gap:40px;
}

.hf-menu{
	display:flex;
	align-items:center;
	gap:28px;
	list-style:none;
}
.hf-menu li{ position:relative; }
.hf-menu > li > a{
	color:var(--hf-menu-color);
	font-family:var(--hf-menu-font);
	font-size:var(--hf-menu-font-size);
	font-weight:var(--hf-menu-font-weight, 500);
	padding:10px 2px;
	display:inline-block;
}
.hf-menu > li > a:hover,
.hf-menu > li.current-menu-item > a{ color:var(--hf-lagoon); }

.hf-menu .sub-menu{
	list-style:none;
	position:absolute;
	top:100%;
	left:0;
	background:#fff;
	min-width:200px;
	box-shadow:0 12px 24px rgba(16,52,76,.15);
	border-radius:8px;
	padding:8px;
	opacity:0;
	visibility:hidden;
	transform:translateY(6px);
	transition:opacity .15s ease, transform .15s ease;
}
.hf-menu li:hover > .sub-menu,
.hf-menu li.is-open > .sub-menu{
	opacity:1;
	visibility:visible;
	transform:translateY(0);
}
.hf-menu .sub-menu a{
	color:var(--hf-submenu-color, var(--hf-ink));
	display:block;
	padding:8px 10px;
	border-radius:6px;
	font-family:var(--hf-submenu-font);
	font-size:var(--hf-submenu-font-size);
	font-weight:var(--hf-submenu-font-weight, 400);
}
.hf-menu .sub-menu li.current-menu-item > a{ color:var(--hf-submenu-active, var(--hf-lagoon)); }
.hf-menu .sub-menu a:hover{
	background:var(--hf-submenu-hover-bg, var(--hf-sand));
	color:var(--hf-submenu-hover-color, var(--hf-ink));
}

/* Button-style menu item (CSS class "menu-button" / "menu-button-outline" in Appearance → Menus) */
.hf-menu-btn{
	font-family:var(--hf-menu-btn-font) !important;
	font-weight:var(--hf-menu-btn-font-weight, 600) !important;
	font-size:var(--hf-menu-btn-font-size) !important;
	padding:10px 20px !important;
	border-radius:var(--hf-menu-btn-radius, 8px);
	display:inline-block;
}
.hf-menu-btn--solid{
	background:var(--hf-menu-btn-bg, var(--hf-coral));
	color:var(--hf-menu-btn-color) !important;
}
.hf-menu-btn--solid:hover{ background:var(--hf-menu-btn-bg-hover, var(--hf-coral-2)); color:var(--hf-menu-btn-color) !important; }
.hf-menu-btn--outline{
	border:1.5px solid rgba(255,255,255,.5);
	color:var(--hf-menu-btn-color) !important;
}
.hf-menu-btn--outline:hover{ border-color:var(--hf-lagoon); color:var(--hf-lagoon) !important; }

.hf-header-cta{
	background:var(--hf-menu-btn-bg, var(--hf-coral));
	color:var(--hf-menu-btn-color);
	font-family:var(--hf-menu-btn-font) !important;
	font-weight:var(--hf-menu-btn-font-weight, 600);
	font-size:var(--hf-menu-btn-font-size) !important;
	padding:10px 20px;
	border-radius:var(--hf-menu-btn-radius, 8px);
	white-space:nowrap;
}
.hf-header-cta:hover{ background:var(--hf-menu-btn-bg-hover, var(--hf-coral-2)); color:var(--hf-menu-btn-color); }

.hf-header-actions{ display:flex; align-items:center; gap:16px; }

.hf-menu-toggle{
	display:none;
	background:transparent;
	border:0;
	color:var(--hf-hamburger-color, var(--hf-menu-color));
	padding:8px;
	cursor:pointer;
}
.hf-menu-toggle svg{ width:26px; height:26px; }

.hf-mobile-menu{
	display:none;
	background:var(--hf-mobile-nav-bg, var(--hf-navy-2));
}
.hf-mobile-menu.is-open{ display:block; }
.hf-mobile-menu ul{ list-style:none; padding:12px 24px 20px; }
.hf-mobile-menu li{ border-bottom:1px solid rgba(255,255,255,.08); }
.hf-mobile-menu a{
	display:block;
	padding:12px 0;
	color:var(--hf-mobile-nav-text, var(--hf-menu-color));
	font-family:var(--hf-menu-font);
	font-size:var(--hf-menu-font-size);
	font-weight:var(--hf-menu-font-weight, 500);
}

/* Parent items with a sub-menu: link + toggle button sit side by side,
   the sub-menu itself wraps to its own full-width row underneath. */
.hf-mobile-menu .menu-item-has-children{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
}
.hf-mobile-menu .menu-item-has-children > a{ flex:1 1 auto; }

.hf-mobile-submenu-toggle{
	background:transparent;
	border:0;
	color:var(--hf-mobile-arrow-color, inherit);
	padding:10px;
	margin:-10px 0;
	cursor:pointer;
	display:flex;
	align-items:center;
	justify-content:center;
	flex-shrink:0;
}
.hf-mobile-submenu-toggle svg{
	width:18px;
	height:18px;
	transition:transform .2s ease;
}
.hf-mobile-menu li.is-submenu-open > .hf-mobile-submenu-toggle svg{ transform:rotate(180deg); }

/* Collapsed by default; expands via max-height when the parent <li>
   gets .is-submenu-open (added by frontend.js on toggle click). */
.hf-mobile-menu .sub-menu{
	list-style:none;
	flex-basis:100%;
	margin:6px 0 10px;
	background:var(--hf-mobile-submenu-bg, var(--hf-navy));
	border-radius:6px;
}
.hf-mobile-menu .sub-menu li{ border-bottom-color:rgba(255,255,255,.06); }
.hf-mobile-menu .sub-menu a{
	color:var(--hf-mobile-submenu-color, var(--hf-menu-color));
	padding:10px 16px;
	font-size:calc(var(--hf-menu-font-size) - 1px);
}

@media (max-width:860px){
	.hf-menu, .hf-header-actions .hf-header-cta{ display:none; }
	.hf-menu-toggle{ display:inline-flex; }
}

/* ==========================================================================
   3. Page builder front-end output
   ========================================================================== */
.hf-section{ position:relative; }
.hf-section--valign-center,
.hf-section--valign-bottom{ overflow:hidden; }
.hf-section-inner{ position:relative; z-index:1; }
.hf-section--valign-center .hf-section-inner,
.hf-section--valign-bottom .hf-section-inner{
	position:absolute;
	left:0;
	right:0;
}
.hf-section--valign-center .hf-section-inner{
	top:50%;
	transform:translateY(-50%);
}
.hf-section--valign-bottom .hf-section-inner{ bottom:0; }
.hf-section-overlay{
	position:absolute;
	inset:0;
}

.hf-row{
	display:flex;
	flex-wrap:wrap;
	gap:32px;
}
.hf-col{ flex:1 1 0; min-width:0; display:flex; flex-direction:column; }
.hf-col--valign-center{ justify-content:center; }
.hf-col--valign-bottom{ justify-content:flex-end; }
.hf-col--halign-left{ align-items:flex-start; }
.hf-col--halign-center{ align-items:center; }
.hf-col--halign-right{ align-items:flex-end; }

@media (max-width:760px){
	.hf-row{ gap:24px; }
	.hf-row > .hf-col{ flex-basis:100% !important; max-width:100% !important; }
}

.hf-heading{ margin:0 0 .5em; }
.hf-heading--sm{ font-size:20px; }
.hf-heading--md{ font-size:28px; }
.hf-heading--lg{ font-size:38px; }
.hf-heading--xl{ font-size:52px; line-height:1.08; }

.hf-text{ color:var(--hf-ink-soft); margin:0 0 1em; }
.hf-text--sm{ font-size:14px; }
.hf-text--md{ font-size:16.5px; }
.hf-text--lg{ font-size:19px; }
.hf-text p:last-child{ margin-bottom:0; }
.hf-text ul, .hf-text ol, .hf-text-icon-content ul, .hf-text-icon-content ol{
	margin:0 0 1em;
	padding-left:1.4em;
}
.hf-text ul:last-child, .hf-text ol:last-child, .hf-text-icon-content ul:last-child, .hf-text-icon-content ol:last-child{
	margin-bottom:0;
}
.hf-text li, .hf-text-icon-content li{ margin-bottom:.35em; }
.hf-text li:last-child, .hf-text-icon-content li:last-child{ margin-bottom:0; }
.hf-text a, .hf-text-icon-content a{
	color:var(--hf-coral);
	text-decoration:underline;
}

.hf-align-left{ text-align:left; }
.hf-align-center{ text-align:center; }
.hf-align-right{ text-align:right; }

.hf-btn-group{ display:flex; gap:14px; flex-wrap:wrap; margin:6px 0; }
.hf-align-center.hf-btn-group{ justify-content:center; }
.hf-align-right.hf-btn-group{ justify-content:flex-end; }

.hf-btn{
	font-family:var(--hf-font-body);
	font-weight:600;
	font-size:14.5px;
	padding:13px 26px;
	border-radius:8px;
	display:inline-flex;
	align-items:center;
	gap:8px;
	border:1.5px solid transparent;
	transition:transform .12s ease, opacity .12s ease;
}
a.hf-btn{ cursor:pointer; }
span.hf-btn{ cursor:default; }
a.hf-btn:hover{ opacity:.92; }
.hf-btn--full-width{ width:100%; justify-content:center; }
.hf-btn--icon-right{ flex-direction:row-reverse; }
.hf-btn-icon{ display:inline-flex; flex-shrink:0; }
.hf-btn-icon svg{ width:16px; height:16px; }
.hf-btn--solid{ background:var(--hf-coral); color:#fff; }

.hf-text-icon-row{
	display:flex;
	align-items:flex-start;
	gap:10px;
}
.hf-text-icon-badge{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	flex-shrink:0;
	color:var(--hf-coral);
	margin-top:.2em;
}
.hf-text-icon-badge .hf-text-icon{ display:flex; width:100%; height:100%; }
.hf-text-icon-badge svg{ width:100%; height:100%; }
.hf-text-icon-content{ flex:1 1 auto; min-width:0; }
.hf-btn--outline{ border-color:currentColor; color:var(--hf-navy); background:transparent; }

.hf-image-wrap{ margin:0 0 1em; }
.hf-image-wrap.hf-align-center{ text-align:center; }
.hf-image-wrap.hf-align-right{ text-align:right; }
.hf-image{ border-radius:0; display:block; }
.hf-image--rounded{ border-radius:16px; }
.hf-image-wrap figcaption{ font-size:13px; color:var(--hf-ink-soft); margin-top:8px; font-style:italic; }

.hf-image-wrap--zoom{ overflow:hidden; }
.hf-image-wrap--zoom .hf-image{ transition:transform .5s ease; }
.hf-image-wrap--zoom:hover .hf-image{ transform:scale(1.08); }

/* Image Banner element — a full-bleed background photo with an optional
   dark overlay and a title that can be positioned anywhere in the box. */
.hf-banner{
	position:relative;
	overflow:hidden;
	width:100%;
	display:block;
}
.hf-banner--linked{
	color:inherit;
	text-decoration:none;
	cursor:pointer;
}
.hf-banner-media{
	position:absolute;
	inset:0;
	background-size:cover;
	background-position:center;
	background-repeat:no-repeat;
	transition:transform .6s ease;
}
.hf-banner--zoom:hover .hf-banner-media{ transform:scale(1.08); }
.hf-banner-overlay{
	position:absolute;
	inset:0;
}
.hf-banner-content{
	position:absolute;
	inset:0;
	display:flex;
	padding:28px;
	box-sizing:border-box;
}
.hf-banner-title{
	margin:0;
	max-width:100%;
}

.hf-banner-pos-top-left{ align-items:flex-start; justify-content:flex-start; }
.hf-banner-pos-top-left .hf-banner-title{ text-align:left; }
.hf-banner-pos-top-center{ align-items:flex-start; justify-content:center; }
.hf-banner-pos-top-center .hf-banner-title{ text-align:center; }
.hf-banner-pos-top-right{ align-items:flex-start; justify-content:flex-end; }
.hf-banner-pos-top-right .hf-banner-title{ text-align:right; }
.hf-banner-pos-middle-left{ align-items:center; justify-content:flex-start; }
.hf-banner-pos-middle-left .hf-banner-title{ text-align:left; }
.hf-banner-pos-middle-center{ align-items:center; justify-content:center; }
.hf-banner-pos-middle-center .hf-banner-title{ text-align:center; }
.hf-banner-pos-middle-right{ align-items:center; justify-content:flex-end; }
.hf-banner-pos-middle-right .hf-banner-title{ text-align:right; }
.hf-banner-pos-bottom-left{ align-items:flex-end; justify-content:flex-start; }
.hf-banner-pos-bottom-left .hf-banner-title{ text-align:left; }
.hf-banner-pos-bottom-center{ align-items:flex-end; justify-content:center; }
.hf-banner-pos-bottom-center .hf-banner-title{ text-align:center; }
.hf-banner-pos-bottom-right{ align-items:flex-end; justify-content:flex-end; }
.hf-banner-pos-bottom-right .hf-banner-title{ text-align:right; }

@media (max-width:600px){
	.hf-banner-content{ padding:18px; }
}

/* Small dashed "stamp" badge — handy inside a Custom HTML element for
   card-style content (e.g. a destination tag above a heading). */
.hf-stamp{
	font-family:var(--hf-font-label);
	font-size:11px;
	font-weight:600;
	letter-spacing:.06em;
	text-transform:uppercase;
	border:1.5px dashed var(--hf-navy);
	border-radius:999px;
	padding:5px 12px;
	display:inline-flex;
	align-items:center;
	gap:6px;
	color:var(--hf-navy);
}
.hf-stamp::before{
	content:"";
	width:6px;
	height:6px;
	border-radius:50%;
	background:var(--hf-coral);
	flex-shrink:0;
}

/* Card element — image + badge + heading + text + link, self-contained. */
.hf-card{
	background:#fff;
	border:1px solid var(--hf-line);
	border-radius:16px;
	overflow:hidden;
	display:flex;
	flex-direction:column;
	height:100%;
	text-decoration:none;
	color:inherit;
}
.hf-card--linked{ transition:transform .18s ease, box-shadow .18s ease; }
.hf-card--linked:hover{ transform:translateY(-3px); box-shadow:0 14px 30px rgba(16,52,76,.14); text-decoration:none; }
.hf-card-media{
	aspect-ratio:4/3;
	overflow:hidden;
	background:var(--hf-sand);
}
.hf-card-img{ width:100%; height:100%; object-fit:cover; display:block; }
.hf-card-media--zoom .hf-card-img{ transition:transform .5s ease; }
.hf-card-media--zoom:hover .hf-card-img{ transform:scale(1.08); }
.hf-card-body{ padding:24px; flex:1; display:flex; flex-direction:column; }
.hf-card-badge{ margin-bottom:14px; align-self:flex-start; }
.hf-card-title{ font-size:21px; margin-bottom:8px; }
.hf-card-desc{ color:var(--hf-ink-soft); font-size:15px; margin-bottom:16px; flex:1; }
.hf-card-desc p:last-child{ margin-bottom:0; }
.hf-card-link{
	font-family:var(--hf-font-label);
	font-size:13.5px;
	font-weight:600;
	color:var(--hf-lagoon-2);
	align-self:flex-start;
	display:inline-flex;
	align-items:center;
	gap:6px;
}
.hf-card-link--icon-right{ flex-direction:row-reverse; }
.hf-card-link .hf-btn-icon{ width:14px; height:14px; }
a.hf-card-link{ cursor:pointer; }
span.hf-card-link{ cursor:default; }
a.hf-card-link:hover{ color:var(--hf-navy); }

/* Icon Box element ------------------------------------------------- */
.hf-iconbox{
	display:flex;
	gap:16px;
}
.hf-iconbox--pos-top{
	flex-direction:column;
}
.hf-iconbox--pos-top.hf-iconbox--align-center{ align-items:center; text-align:center; }
.hf-iconbox--pos-top.hf-iconbox--align-left{ align-items:flex-start; text-align:left; }
.hf-iconbox--pos-left{
	flex-direction:row;
	align-items:flex-start;
	text-align:left;
}
.hf-iconbox-icon-wrap{
	display:flex;
	align-items:center;
	justify-content:center;
	flex-shrink:0;
	line-height:1;
	color:var(--hf-lagoon-2);
}
.hf-iconbox-icon-wrap i{ display:block; }
.hf-iconbox-content{ min-width:0; }
.hf-iconbox-title{ font-size:21px; margin:0 0 8px; }
.hf-iconbox-desc{ color:var(--hf-ink-soft); font-size:15px; margin:0 0 16px; }
.hf-iconbox-desc p:last-child{ margin-bottom:0; }
.hf-iconbox-link{
	font-family:var(--hf-font-label);
	font-size:13.5px;
	font-weight:600;
	color:var(--hf-lagoon-2);
	display:inline-flex;
	align-items:center;
	gap:6px;
}
.hf-iconbox--pos-top.hf-iconbox--align-center .hf-iconbox-link{ align-self:center; }
.hf-iconbox-link--icon-right{ flex-direction:row-reverse; }
.hf-iconbox-link .hf-btn-icon{ width:14px; height:14px; }
a.hf-iconbox-link{ cursor:pointer; }
span.hf-iconbox-link{ cursor:default; }
a.hf-iconbox-link:hover{ color:var(--hf-navy); }

/* Blog element — grid of latest-posts cards, same visual language as Card. */
.hf-blog-grid{
	display:grid;
	grid-template-columns:var(--hf-blog-cols);
	gap:32px;
}
@media (max-width:900px){ .hf-blog-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .hf-blog-grid{ grid-template-columns:1fr; } }
.hf-blog-card{
	background:#fff;
	border:1px solid var(--hf-line);
	border-radius:16px;
	overflow:hidden;
	display:flex;
	flex-direction:column;
	height:100%;
	transition:transform .18s ease, box-shadow .18s ease;
}
.hf-blog-card:hover{ transform:translateY(-3px); box-shadow:0 14px 30px rgba(16,52,76,.14); }
.hf-blog-media{
	display:block;
	aspect-ratio:16/9;
	overflow:hidden;
	background:var(--hf-sand);
}
.hf-blog-img{ width:100%; height:100%; object-fit:cover; display:block; }
.hf-blog-media--zoom .hf-blog-img{ transition:transform .5s ease; }
.hf-blog-media--zoom:hover .hf-blog-img{ transform:scale(1.08); }
.hf-blog-body{ padding:22px 24px 26px; flex:1; display:flex; flex-direction:column; }
.hf-blog-meta{
	font-size:12.5px;
	color:var(--hf-ink-soft);
	text-transform:uppercase;
	letter-spacing:.04em;
	margin-bottom:10px;
	display:flex;
	align-items:center;
	gap:6px;
	flex-wrap:wrap;
}
.hf-blog-meta-dot{ opacity:.5; }
.hf-blog-title{ font-size:19px; line-height:1.3; margin:0 0 10px; }
.hf-blog-title a{ color:inherit; text-decoration:none; }
.hf-blog-title a:hover{ color:var(--hf-lagoon-2); }
.hf-blog-excerpt{ color:var(--hf-ink-soft); font-size:15px; margin:0 0 16px; flex:1; }
.hf-blog-readmore{
	font-family:var(--hf-font-label);
	font-size:13.5px;
	font-weight:600;
	color:var(--hf-lagoon-2);
	align-self:flex-start;
	display:inline-flex;
	align-items:center;
	gap:6px;
	text-decoration:none;
}
.hf-blog-readmore--icon-right{ flex-direction:row-reverse; }
.hf-blog-readmore .hf-btn-icon{ width:14px; height:14px; }
.hf-blog-readmore:hover{ color:var(--hf-navy); }

.hf-builder-admin-hint{ font-size:13px; font-style:italic; color:var(--hf-ink-soft); }

.hf-spacer{ width:100%; }
.hf-custom-html{ width:100%; }
.hf-shortcode-wrap{ width:100%; }

.hf-testimonial-carousel{
	width:100%;
	position:relative;
}
.hf-testimonial-track{
	display:flex;
	gap:24px;
	overflow-x:auto;
	scroll-snap-type:x mandatory;
	scroll-behavior:smooth;
	-webkit-overflow-scrolling:touch;
	scrollbar-width:none;
	-ms-overflow-style:none;
	padding:2px;
	margin:-2px;
}
.hf-testimonial-track::-webkit-scrollbar{ display:none; }
.hf-testimonial-card{
	background:#fff;
	border:1px solid var(--hf-line);
	border-radius:16px;
	padding:28px;
	scroll-snap-align:start;
	flex:0 0 calc((100% - 48px) / 3);
	min-width:0;
}
@media (max-width:760px){
	.hf-testimonial-card{ flex:0 0 100%; }
}
.hf-testimonial-stars{
	color:var(--hf-coral);
	font-size:15px;
	letter-spacing:2px;
	margin-bottom:14px;
}
.hf-testimonial-quote{
	font-style:italic;
	font-size:16.5px;
	line-height:1.55;
	color:var(--hf-ink);
	margin:0 0 18px;
}
.hf-testimonial-byline{
	font-size:14px;
	margin:0;
}
.hf-testimonial-byline strong{ color:var(--hf-ink); font-weight:700; }
.hf-testimonial-byline span{ color:var(--hf-ink-soft); }

/* Accordion element (native <details>/<summary> — no JS needed) */
.hf-accordion{ width:100%; }
.hf-accordion-item{
	border-bottom:1px solid var(--hf-line);
}
.hf-accordion-item:first-child{ border-top:1px solid var(--hf-line); }
.hf-accordion-question{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:20px;
	padding:19px 4px;
	cursor:pointer;
	list-style:none;
	font-size:16px;
}
.hf-accordion-question::-webkit-details-marker{ display:none; }
.hf-accordion-question::marker{ content:""; }
.hf-accordion-icon{
	flex-shrink:0;
	width:22px;
	height:22px;
	display:flex;
	align-items:center;
	justify-content:center;
	color:var(--hf-coral);
	transition:transform .3s ease;
}
.hf-accordion-icon svg{ width:18px; height:18px; }
.hf-accordion-item[open] .hf-accordion-icon{ transform:rotate(45deg); }
.hf-accordion-answer{
	padding:0 4px 20px;
	color:var(--hf-ink-soft);
	font-size:15px;
	line-height:1.6;
}
.hf-accordion-answer p:last-child{ margin-bottom:0; }

/* ==========================================================================
   4. Trust / stat style rows (built from builder columns, generic helpers)
   ========================================================================== */
.hf-alt-bg{ background:var(--hf-sand); }

/* ==========================================================================
   5. Blog: listing cards, single post, comments
   ========================================================================== */
.hf-blog-grid{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:28px;
	padding:64px 0;
}
@media (max-width:900px){ .hf-blog-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .hf-blog-grid{ grid-template-columns:1fr; } }

.hf-post-card{
	background:#fff;
	border:1px solid var(--hf-line);
	border-radius:14px;
	overflow:hidden;
	display:flex;
	flex-direction:column;
}
.hf-post-card-thumb{ aspect-ratio:4/3; overflow:hidden; background:var(--hf-sand); }
.hf-post-card-thumb img{ width:100%; height:100%; object-fit:cover; }
.hf-post-card-body{ padding:20px; flex:1; display:flex; flex-direction:column; }
.hf-post-card-body h2{ font-size:19px; margin-bottom:8px; }
.hf-post-card-body h2 a:hover{ color:var(--hf-lagoon-2); }
.hf-post-card-excerpt{ color:var(--hf-ink-soft); font-size:14px; flex:1; }
.hf-meta-date, .hf-meta-author{
	font-family:var(--hf-font-label);
	font-size:11.5px;
	text-transform:uppercase;
	letter-spacing:.04em;
	color:var(--hf-coral-2);
	margin-right:10px;
}

.hf-single-article{ padding-top:64px !important; padding-bottom:64px !important; }
.hf-page-fallback{ padding-top:64px !important; padding-bottom:64px !important; }
.hf-header-top-pad{ padding-top:64px !important; }
.hf-single-article .hf-post-thumb{ margin-bottom:32px; border-radius:14px; overflow:hidden; }
.hf-single-article h1{ font-size:38px; margin-bottom:12px; }
.hf-single-meta{ margin-bottom:28px; }
.hf-entry-content{ font-size:17px; }
.hf-entry-content p{ margin-bottom:1.3em; }
.hf-entry-content img{ border-radius:12px; }
.hf-entry-content h2{ font-size:26px; margin-top:1.6em; }
.hf-entry-content h3{ font-size:21px; margin-top:1.4em; }
.hf-entry-content a{ color:var(--hf-lagoon-2); text-decoration:underline; }
.hf-tags{ margin-top:32px; font-size:13px; color:var(--hf-ink-soft); }

.hf-pagination{ display:flex; gap:8px; justify-content:center; padding:0 0 64px; }
.hf-pagination .page-numbers{
	border:1px solid var(--hf-line);
	border-radius:6px;
	padding:8px 14px;
	font-size:14px;
}
.hf-pagination .page-numbers.current{ background:var(--hf-navy); color:#fff; border-color:var(--hf-navy); }

.hf-comments{ margin-top:48px; border-top:1px solid var(--hf-line); padding-top:32px; }
.hf-single-comments{ padding-bottom:64px !important; }
.hf-comments .comment-list{ list-style:none; padding:0; }
.hf-comments .comment{ margin-bottom:20px; }
.hf-comments textarea, .hf-comments input[type="text"], .hf-comments input[type="email"], .hf-comments input[type="url"]{
	width:100%;
	padding:10px 12px;
	border:1px solid var(--hf-line);
	border-radius:8px;
	margin-bottom:12px;
	font-family:var(--hf-font-body);
}
.hf-comments .submit{
	background:var(--hf-coral);
	color:#fff;
	border:0;
	padding:12px 22px;
	border-radius:8px;
	font-weight:600;
	cursor:pointer;
}

/* ==========================================================================
   6. Gallery: masonry + lightbox
   ========================================================================== */
.hf-gallery-masonry{
	display:grid;
	grid-template-columns:var(--hf-gallery-cols, repeat(3,1fr));
	gap:22px;
	padding:64px 0;
}
.hf-gallery-masonry--el{ padding:0; width:100%; }
@media (max-width:900px){ .hf-gallery-masonry{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .hf-gallery-masonry{ grid-template-columns:1fr; } }

.hf-gallery-item{
	display:block;
	aspect-ratio:4/3;
	border-radius:16px;
	overflow:hidden;
	position:relative;
	box-shadow:0 1px 2px rgba(16,52,76,.06);
	transition:box-shadow .4s cubic-bezier(.22,.61,.36,1), transform .4s cubic-bezier(.22,.61,.36,1);
}
.hf-gallery-item:hover{
	box-shadow:0 22px 38px -12px rgba(16,52,76,.35);
	transform:translateY(-4px);
}
.hf-gallery-item img{
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
	transition:transform .7s cubic-bezier(.22,.61,.36,1);
}
.hf-gallery-item:hover img{ transform:scale(1.12); }

.hf-gallery-item::after{
	content:"";
	position:absolute;
	inset:0;
	background:linear-gradient(180deg, rgba(16,52,76,0) 40%, rgba(16,52,76,.68) 100%);
	opacity:0;
	transition:opacity .4s ease;
	z-index:1;
}
.hf-gallery-item:hover::after{ opacity:1; }

.hf-gallery-zoom-icon{
	position:absolute;
	top:50%;
	left:50%;
	width:48px;
	height:48px;
	margin:-24px 0 0 -24px;
	border-radius:50%;
	background:rgba(255,255,255,.95);
	color:var(--hf-navy);
	display:flex;
	align-items:center;
	justify-content:center;
	opacity:0;
	transform:scale(.6);
	transition:opacity .35s ease, transform .45s cubic-bezier(.34,1.56,.64,1);
	pointer-events:none;
	z-index:2;
}
.hf-gallery-item:hover .hf-gallery-zoom-icon{ opacity:1; transform:scale(1); }
.hf-gallery-zoom-icon svg{ width:20px; height:20px; }

.hf-gallery-caption{
	position:absolute;
	left:0;
	right:0;
	bottom:0;
	padding:18px;
	color:#fff;
	font-size:13.5px;
	font-weight:500;
	line-height:1.4;
	opacity:0;
	transform:translateY(10px);
	transition:opacity .35s ease .05s, transform .35s ease .05s;
	z-index:2;
}
.hf-gallery-item:hover .hf-gallery-caption{ opacity:1; transform:translateY(0); }

.hf-lightbox{
	position:fixed;
	inset:0;
	background:rgba(11,20,28,.92);
	display:flex;
	align-items:center;
	justify-content:center;
	z-index:9999;
	padding:32px;
	opacity:0;
	visibility:hidden;
	transition:opacity .35s ease, visibility 0s linear .35s;
}
.hf-lightbox.is-open{
	opacity:1;
	visibility:visible;
	transition:opacity .35s ease, visibility 0s linear;
}
.hf-lightbox img{
	max-width:min(1100px,92vw);
	max-height:88vh;
	border-radius:8px;
	box-shadow:0 30px 60px rgba(0,0,0,.4);
	transform:scale(.94);
	transition:transform .35s cubic-bezier(.22,.61,.36,1);
}
.hf-lightbox.is-open img{ transform:scale(1); }
.hf-lightbox-close, .hf-lightbox-prev, .hf-lightbox-next{
	position:absolute;
	background:rgba(255,255,255,.12);
	color:#fff;
	border:0;
	border-radius:50%;
	width:44px;
	height:44px;
	cursor:pointer;
	font-size:20px;
	display:flex;
	align-items:center;
	justify-content:center;
	transition:background .2s ease;
}
.hf-lightbox-close:hover, .hf-lightbox-prev:hover, .hf-lightbox-next:hover{ background:rgba(255,255,255,.22); }
.hf-lightbox-close{ top:24px; right:24px; }
.hf-lightbox-prev{ left:24px; top:50%; transform:translateY(-50%); }
.hf-lightbox-next{ right:24px; top:50%; transform:translateY(-50%); }

/* ==========================================================================
   7. Contact page
   ========================================================================== */
.hf-contact-grid{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:48px;
	padding:64px 0;
	align-items:start;
}
@media (max-width:860px){ .hf-contact-grid{ grid-template-columns:1fr; } }

.hf-contact-info-list{ list-style:none; padding:0; margin:0 0 28px; }
.hf-contact-info-list li{
	display:flex;
	align-items:flex-start;
	gap:14px;
	margin-bottom:18px;
	font-size:15px;
}
.hf-contact-icon{
	width:38px;
	height:38px;
	border-radius:50%;
	background:var(--hf-sand);
	color:var(--hf-coral-2);
	display:flex;
	align-items:center;
	justify-content:center;
	flex-shrink:0;
}
.hf-contact-icon svg{ width:18px; height:18px; }

.hf-contact-form-wrap{
	background:#fff;
	border:1px solid var(--hf-line);
	border-radius:16px;
	padding:32px;
}
.hf-contact-form-wrap .wpcf7-form p{ margin-bottom:16px; }
.hf-contact-form-wrap input[type="text"],
.hf-contact-form-wrap input[type="email"],
.hf-contact-form-wrap input[type="tel"],
.hf-contact-form-wrap textarea,
.hf-contact-form-wrap select{
	width:100%;
	padding:12px 14px;
	border:1px solid var(--hf-line);
	border-radius:8px;
	font-family:var(--hf-font-body);
	font-size:15px;
}
.hf-contact-form-wrap input[type="submit"]{
	background:var(--hf-coral);
	color:#fff;
	border:0;
	padding:13px 28px;
	border-radius:8px;
	font-weight:600;
	cursor:pointer;
	font-size:15px;
}
.hf-contact-form-wrap input[type="submit"]:hover{ background:var(--hf-coral-2); }
.hf-contact-form-wrap .wpcf7-not-valid-tip{ color:#C24825; font-size:13px; }
.hf-contact-form-wrap .wpcf7-response-output{
	border-radius:8px;
	margin-top:16px;
	padding:12px;
}
.hf-map-wrap{ border-radius:16px; overflow:hidden; margin-top:12px; border:1px solid var(--hf-line); }
.hf-map-wrap iframe{ width:100%; height:340px; border:0; display:block; }
.hf-footer-map-wrap{ margin-top:0; border-color:rgba(255,255,255,.18); }
.hf-footer-map-wrap iframe{ height:260px; }
.hf-cf7-missing{
	background:var(--hf-sand);
	border-radius:12px;
	padding:20px;
	font-size:14px;
	color:var(--hf-ink-soft);
}

/* ==========================================================================
   8. 404 & search
   ========================================================================== */
.hf-error-page, .hf-search-page{ padding-top:96px !important; padding-bottom:96px !important; text-align:center; }
.hf-error-page .hf-error-code{
	font-family:var(--hf-font-label);
	font-size:14px;
	color:var(--hf-coral-2);
	letter-spacing:.1em;
}
.hf-error-page h1{ font-size:40px; }
.hf-search-form{ display:flex; gap:10px; max-width:480px; margin:24px auto 0; }
.hf-search-form input[type="search"]{
	flex:1;
	padding:12px 16px;
	border:1px solid var(--hf-line);
	border-radius:8px;
	font-size:15px;
}
.hf-search-form button{
	background:var(--hf-navy);
	color:#fff;
	border:0;
	padding:12px 20px;
	border-radius:8px;
	font-weight:600;
	cursor:pointer;
}
.hf-search-results-list{ text-align:left; max-width:720px; margin:40px auto 0; }
.hf-search-results-list article{ padding:20px 0; border-bottom:1px solid var(--hf-line); }
.hf-search-results-list h2{ font-size:20px; margin-bottom:6px; }

/* ==========================================================================
   9. Footer
   ========================================================================== */
.hf-site-footer{ position:relative; background:var(--hf-navy-2); background-repeat:no-repeat; color:#C9D4DC; padding:64px 0 28px; }
.hf-footer-overlay{ position:absolute; inset:0; }
.hf-site-footer > .hf-container{ position:relative; z-index:1; }
.hf-footer-grid{
	display:grid;
	grid-template-columns:var(--hf-footer-cols, repeat(4,1fr));
	gap:32px;
	margin-bottom:48px;
	overflow:hidden;
}
.hf-footer-col{
	/* Grid items default to min-width:auto, meaning they won't shrink
	   below their content's natural size — an iframe (the map embed)
	   has a real intrinsic minimum width, which without this would
	   force its column (and the whole row) wider than its assigned
	   percentage, overflowing the container regardless of how the
	   widths are split. */
	min-width:0;
}
@media (max-width:860px){ .hf-footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .hf-footer-grid{ grid-template-columns:1fr; } }
.hf-footer-grid h5{
	/* Font family/size/weight/color come from the Customizer's "Footer"
	   section (Column title font/size/weight/color) as an inline style
	   on the element itself — see hf_footer_title_style(). */
	letter-spacing:.08em;
	text-transform:uppercase;
	margin-bottom:16px;
}
.hf-footer-grid ul{ list-style:none; }
.hf-footer-grid li{ margin-bottom:10px; font-size:var(--hf-footer-body-size, 13.5px); color:var(--hf-footer-body-color, #B8C4CD); }
.hf-footer-grid a, .hf-footer-grid p, .hf-footer-grid span{ font-size:var(--hf-footer-body-size, 13.5px); color:var(--hf-footer-body-color, #B8C4CD); }
.hf-footer-grid a:hover{ color:#fff; }
.hf-footer-widget:last-child{ margin-bottom:0; }

/* WhatsApp Activities footer list — a small featured-image thumbnail
   beside each activity's title, instead of a plain text link. */
.hf-footer-whatsapp-item a{
	display:flex;
	align-items:center;
	gap:10px;
}
.hf-footer-whatsapp-thumb{
	width:40px;
	height:40px;
	border-radius:8px;
	object-fit:cover;
	flex-shrink:0;
	display:block;
}
.hf-foot-logo{ font-family:var(--hf-font-display); font-size:19px; color:#fff; margin-bottom:12px; }
.hf-footer-social{ display:flex; gap:10px; margin-top:14px; }
.hf-footer-social a{
	width:34px; height:34px;
	border:1px solid rgba(255,255,255,.2);
	border-radius:50%;
	display:flex; align-items:center; justify-content:center;
	flex-shrink:0;
}
.hf-footer-social svg{ width:16px; height:16px; }

.hf-footer-contact-sitename{ margin-bottom:16px; line-height:1.3; }
.hf-footer-contact-list li{
	display:flex;
	align-items:flex-start;
	gap:10px;
	margin-bottom:14px;
}
.hf-footer-contact-icon{
	width:26px; height:26px;
	border-radius:50%;
	background:rgba(255,255,255,.08);
	color:#B8C4CD;
	display:flex; align-items:center; justify-content:center;
	flex-shrink:0;
	margin-top:1px;
}
.hf-footer-contact-icon svg{ width:13px; height:13px; }
.hf-footer-hours strong{ color:#fff; font-weight:600; }
.hf-footer-admin-hint{ font-size:12.5px; font-style:italic; color:#8FA0AB; }

.hf-footer-bottom{
	border-top:1px solid rgba(255,255,255,.12);
	padding-top:22px;
	font-size:var(--hf-footer-credit-size, 12px);
	color:var(--hf-footer-credit-color, #8FA0AB);
	display:flex;
	justify-content:space-between;
	flex-wrap:wrap;
	gap:10px;
}
.hf-footer-bottom a{ color:var(--hf-footer-credit-color, #8FA0AB); }
.hf-footer-bottom a:hover{ color:#fff; }
.hf-footer-widget{ margin-bottom:16px; }
