/*!
 * Hela Lanka theme styles.
 *
 * Selector strategy: homepage rules are prefixed with `body` so they win over
 * Elementor's generic container/widget defaults (specificity 0,1,0–0,2,0)
 * while staying overridable by Elementor's per-element settings. The same
 * hl-* classes are applied by both the Elementor layout and the block-editor
 * fallback, so both render identically.
 */

/* ---------- Fonts (Poppins, SIL OFL 1.1 — see ../fonts/OFL-Poppins.txt) ---------- */
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/poppins-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/poppins-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/poppins-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/poppins-latin-700-normal.woff2") format("woff2"); }
/* Arial sized to Poppins' metrics, used until Poppins arrives, so the swap does not move the layout (CLS). */
@font-face { font-family: "Poppins Fallback"; src: local("Arial"), local("ArialMT"), local("Liberation Sans"); size-adjust: 112.1%; ascent-override: 93.62%; descent-override: 31.21%; line-gap-override: 8.92%; }

/* ---------- Tokens ---------- */
:root {
	--hl-navy: #0b1f3a;
	--hl-navy-2: #10294b;
	--hl-blue: #1b4f9c;
	--hl-blue-600: #1d5fbf;
	--hl-ink: #0f1b2d;
	--hl-text: #475467;
	--hl-muted: #667085;
	--hl-border: #e4e8ef;
	--hl-sky: #eef5fc;
	--hl-green: #15803d;
	--hl-green-700: #166534;
	--hl-green-500: #22c55e;
	--hl-green-50: #ecfdf3;
	--hl-amber: #b45309;
	--hl-white: #fff;
	--hl-radius: 10px;
	--hl-radius-sm: 8px;
	--hl-shadow-sm: 0 1px 3px rgba(15, 27, 45, .06), 0 1px 2px rgba(15, 27, 45, .04);
	--hl-shadow: 0 10px 30px rgba(15, 27, 45, .10);
	--hl-container: 1200px;
	--hl-gutter: 24px;
	--hl-font: "Poppins", "Poppins Fallback", system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans Sinhala", "Noto Sans Tamil", sans-serif;
	--hl-focus: 0 0 0 3px #fbbf24;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }
body { margin: 0; font-family: var(--hl-font); font-size: 16px; line-height: 1.6; color: var(--hl-text); background: var(--hl-white); -webkit-font-smoothing: antialiased; }
img, svg, video { max-width: 100%; height: auto; }
a { color: var(--hl-blue); text-decoration-thickness: 1px; text-underline-offset: 2px; }
a:hover { color: var(--hl-blue-600); }
h1, h2, h3, h4, h5, h6 { color: var(--hl-ink); font-family: var(--hl-font); line-height: 1.25; margin: 0 0 .5em; font-weight: 700; }
p { margin: 0 0 1em; }
:focus-visible { outline: none; box-shadow: var(--hl-focus); border-radius: 4px; }
button { font-family: inherit; }

.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; }
.screen-reader-text:focus { clip: auto !important; clip-path: none; height: auto; width: auto; margin: 0; z-index: 100000; }
.skip-link:focus { top: 8px; left: 8px; padding: 12px 18px; background: var(--hl-white); color: var(--hl-ink); font-weight: 600; box-shadow: var(--hl-shadow); }
.hl-main:focus { outline: none; }

.hl-container { width: 100%; max-width: calc(var(--hl-container) + var(--hl-gutter) * 2); margin-inline: auto; padding-inline: var(--hl-gutter); }

.hl-icon { width: 1em; height: 1em; flex: none; vertical-align: -.125em; }

/* ---------- Buttons ---------- */
.hl-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 11px 20px; border-radius: var(--hl-radius-sm); border: 2px solid transparent; font: 600 14px/1.2 var(--hl-font); text-decoration: none; cursor: pointer; transition: background-color .15s, color .15s, border-color .15s; }
.hl-button .hl-icon { width: 20px; height: 20px; }
.hl-button--whatsapp { background: var(--hl-green); color: var(--hl-white); }
.hl-button--whatsapp:hover, .hl-button--whatsapp:focus-visible { background: var(--hl-green-700); color: var(--hl-white); }
.hl-button--primary { background: var(--hl-blue); color: var(--hl-white); }
.hl-button--primary:hover { background: var(--hl-navy-2); color: var(--hl-white); }

/* ---------- Top bar ---------- */
.hl-topbar { background: var(--hl-navy); color: #dbe5f3; font-size: 12.5px; }
.hl-topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 38px; }
.hl-topbar__text { display: flex; align-items: center; gap: 6px; margin: 0; }
.hl-topbar__contact { display: flex; align-items: center; gap: 20px; }
.hl-topbar a { color: #dbe5f3; text-decoration: none; display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.hl-topbar a:hover { color: var(--hl-white); }
.hl-social { list-style: none; display: flex; gap: 8px; margin: 0; padding: 0; }
.hl-social__link { display: inline-flex !important; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; }
.hl-social--topbar .hl-social__link { background: rgba(255, 255, 255, .12); }
.hl-social--topbar .hl-icon { width: 13px; height: 13px; }
.hl-social--footer { margin-top: 14px; }
.hl-social--footer .hl-social__link { width: 32px; height: 32px; background: rgba(255, 255, 255, .1); color: var(--hl-white); }
.hl-social--footer .hl-icon { width: 16px; height: 16px; }

/* ---------- Header ---------- */
.hl-header { position: sticky; top: 0; z-index: 50; background: var(--hl-white); border-bottom: 1px solid var(--hl-border); }
.admin-bar .hl-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .hl-header { top: 0; } }
.hl-header__inner { display: flex; align-items: center; gap: 24px; min-height: 76px; }
.hl-header__brand { flex: none; }
.hl-header__brand .custom-logo { max-height: 56px; width: auto; display: block; }

.hl-wordmark { display: inline-flex; flex-direction: column; text-decoration: none; line-height: 1; }
.hl-wordmark__name { font: 700 30px/1 var(--hl-font); letter-spacing: -.5px; display: inline-flex; gap: 6px; }
.hl-wordmark__a { color: var(--hl-blue); }
.hl-wordmark__b { color: var(--hl-green); position: relative; padding-right: 2px; }
.hl-wordmark__palm { position: absolute; right: -14px; top: -14px; width: 22px; height: 22px; color: var(--hl-green); }
.hl-wordmark__tag { font-size: 10.5px; color: var(--hl-muted); margin-top: 5px; letter-spacing: .1px; }

.hl-nav { flex: 1; display: flex; justify-content: center; }
.hl-menu { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 4px; }
.hl-menu > li { position: relative; }
.hl-menu a { display: block; padding: 10px 12px; color: var(--hl-ink); font-size: 14px; font-weight: 500; text-decoration: none; border-radius: 6px; }
.hl-menu a:hover { color: var(--hl-green); }
.hl-menu > .current-menu-item > a, .hl-menu > .current_page_item > a, .hl-menu > .current-menu-ancestor > a { color: var(--hl-green); box-shadow: inset 0 -2px 0 var(--hl-green); border-radius: 0; }
.hl-menu .sub-menu { list-style: none; margin: 0; padding: 8px; position: absolute; left: 0; top: 100%; min-width: 220px; background: var(--hl-white); border: 1px solid var(--hl-border); border-radius: var(--hl-radius-sm); box-shadow: var(--hl-shadow); opacity: 0; visibility: hidden; transform: translateY(6px); transition: .15s; z-index: 60; }
.hl-menu li:hover > .sub-menu, .hl-menu li:focus-within > .sub-menu, .hl-menu li.is-open > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.hl-submenu-toggle { display: none; }
.hl-header__cta { flex: none; }
.hl-nav__cta-mobile { display: none; }

.hl-nav-toggle { display: none; margin-left: auto; width: 44px; height: 44px; border: 1px solid var(--hl-border); border-radius: var(--hl-radius-sm); background: var(--hl-white); color: var(--hl-ink); cursor: pointer; align-items: center; justify-content: center; }
.hl-nav-toggle .hl-icon { width: 22px; height: 22px; }
.hl-nav-toggle__close { display: none; }
.hl-nav-toggle[aria-expanded="true"] .hl-nav-toggle__open { display: none; }
.hl-nav-toggle[aria-expanded="true"] .hl-nav-toggle__close { display: inline-flex; }

@media (max-width: 1080px) {
	.hl-nav-toggle { display: inline-flex; }
	.hl-header__inner { flex-wrap: wrap; gap: 12px; }
	.hl-nav { display: none; order: 10; flex-basis: 100%; flex-direction: column; padding: 8px 0 16px; border-top: 1px solid var(--hl-border); }
	.hl-nav.is-open { display: flex; }
	.hl-menu { flex-direction: column; align-items: stretch; gap: 0; }
	.hl-menu a { padding: 12px 4px; border-bottom: 1px solid var(--hl-border); }
	.hl-menu > .current-menu-item > a { box-shadow: none; }
	.hl-menu .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0 0 0 16px; display: none; }
	.hl-menu li.is-open > .sub-menu { display: block; }
	.hl-menu > li.menu-item-has-children { display: flex; flex-wrap: wrap; }
	.hl-menu > li.menu-item-has-children > a { flex: 1; }
	.hl-submenu-toggle { display: inline-flex; align-items: center; justify-content: center; width: 44px; border: 0; border-bottom: 1px solid var(--hl-border); background: none; color: var(--hl-ink); cursor: pointer; }
	.hl-menu li.is-open > .hl-submenu-toggle .hl-icon { transform: rotate(180deg); }
	.hl-menu .sub-menu { flex-basis: 100%; }
}
@media (max-width: 640px) {
	.hl-topbar__text { display: none; }
	.hl-topbar__inner { justify-content: center; }
	.hl-header__cta { display: none; }
	.hl-nav__cta-mobile { display: inline-flex; margin-top: 14px; }
	.hl-wordmark__name { font-size: 26px; }
	.hl-topbar__contact { gap: 14px; }
	.hl-calc-fallback { padding: 20px; }
	.hl-calc-fallback__head { flex-direction: column; align-items: flex-start; gap: 12px; }
	.hl-calc-fallback .hl-button { width: 100%; }
}
@media (max-width: 420px) { .hl-topbar__contact a[href^="mailto:"] span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; } } /* visually hidden, still announced */

/* ---------- Generic content templates ---------- */
.hl-content-area { padding-block: 48px 64px; }
.hl-has-sidebar .hl-content-area { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 48px; }
@media (max-width: 900px) { .hl-has-sidebar .hl-content-area { grid-template-columns: 1fr; } }
.hl-page-header { margin-bottom: 24px; }
.hl-page-title { font-size: clamp(28px, 4vw, 40px); }
.hl-entry__thumb { margin: 0 0 24px; }
.hl-entry__thumb img { border-radius: var(--hl-radius); }
.entry-content > * { max-width: 100%; }
.entry-content h2 { font-size: 26px; margin-top: 1.4em; }
.entry-content h3 { font-size: 21px; margin-top: 1.3em; }
.entry-content ul, .entry-content ol { padding-left: 1.3em; }
.entry-content table { border-collapse: collapse; width: 100%; }
.entry-content th, .entry-content td { border: 1px solid var(--hl-border); padding: 8px 12px; text-align: left; }
.entry-content blockquote { margin: 1.5em 0; padding: 4px 0 4px 18px; border-left: 4px solid var(--hl-green); color: var(--hl-ink); }
.alignwide { max-width: 1200px; }
.alignleft { float: left; margin: 0 1.5em 1em 0; }
.alignright { float: right; margin: 0 0 1em 1.5em; }
.aligncenter { display: block; margin-inline: auto; }
.wp-caption-text, figcaption { font-size: 13px; color: var(--hl-muted); }
.hl-entry-meta { font-size: 14px; color: var(--hl-muted); margin: 0; }
.hl-post-list { display: grid; gap: 28px; }
.hl-post-card { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 20px; padding-bottom: 28px; border-bottom: 1px solid var(--hl-border); }
.hl-post-card:not(:has(.hl-post-card__thumb)) { grid-template-columns: 1fr; }
.hl-post-card__thumb img { border-radius: var(--hl-radius-sm); aspect-ratio: 3 / 2; object-fit: cover; }
.hl-post-card__title { font-size: 21px; margin-bottom: 4px; }
.hl-post-card__title a { color: var(--hl-ink); text-decoration: none; }
@media (max-width: 640px) { .hl-post-card { grid-template-columns: 1fr; } }
.hl-pagination .nav-links, .nav-links { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 32px; }
.page-numbers { padding: 6px 12px; border: 1px solid var(--hl-border); border-radius: 6px; text-decoration: none; }
.page-numbers.current { background: var(--hl-blue); color: var(--hl-white); border-color: var(--hl-blue); }
.hl-sidebar .widget { margin-bottom: 32px; }
.widget-title { font-size: 17px; }
input[type="text"], input[type="email"], input[type="search"], input[type="url"], input[type="tel"], textarea, select { font: inherit; padding: 10px 12px; border: 1px solid #cfd6e1; border-radius: var(--hl-radius-sm); background: var(--hl-white); color: var(--hl-ink); max-width: 100%; }
.search-form { display: flex; gap: 8px; margin: 16px 0; }
.search-submit, input[type="submit"], .comment-form .submit { font: 600 14px var(--hl-font); padding: 10px 18px; border: 0; border-radius: var(--hl-radius-sm); background: var(--hl-blue); color: var(--hl-white); cursor: pointer; }
.hl-comments { margin-top: 48px; }
.hl-fullwidth-entry::after { content: ""; display: table; clear: both; }

/* ---------- Footer ---------- */
.hl-footer { background: var(--hl-navy); color: #c3cfe1; font-size: 14px; margin-top: 0; }
.hl-footer a { color: #c3cfe1; text-decoration: none; }
.hl-footer a:hover { color: var(--hl-white); text-decoration: underline; }
.hl-footer__grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.3fr; gap: 32px; padding-block: 48px 36px; }
.hl-footer__title { color: var(--hl-white); font-size: 15px; font-weight: 600; margin: 0 0 14px; }
.hl-footer__about { margin: 14px 0 0; max-width: 320px; line-height: 1.7; }
.hl-footer .hl-wordmark__a { color: var(--hl-white); }
.hl-footer .hl-wordmark__b, .hl-footer .hl-wordmark__palm { color: #4ade80; }
.hl-footer .hl-wordmark__tag { color: #9fb0c8; }
.hl-footer__links, .hl-footer__contact { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.hl-footer__contact li { display: flex; gap: 10px; align-items: flex-start; }
.hl-footer__contact .hl-icon { margin-top: 3px; color: #4ade80; }
.hl-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .1); }
.hl-footer__bottom-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding-block: 16px; font-size: 12.5px; }
.hl-footer__bottom p { margin: 0; }
.hl-footer__legal { list-style: none; display: flex; gap: 16px; margin: 0; padding: 0; }
@media (max-width: 1024px) { .hl-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .hl-footer__col--brand { grid-column: 1 / -1; } }
@media (max-width: 560px) { .hl-footer__grid { grid-template-columns: 1fr; } .hl-footer__bottom-inner { flex-direction: column; text-align: center; } }

/* =====================================================================
 * Homepage sections (Elementor containers or block groups)
 * =================================================================== */

/* Elementor resets for hl-* containers/widgets: theme CSS owns spacing. */
body .e-con[class*="hl-"] { --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-block-start: 0px; --padding-block-end: 0px; --padding-inline-start: 0px; --padding-inline-end: 0px; --gap: 0px; --row-gap: 0px; --column-gap: 0px; --width: 100%; --min-height: 0px; }
body .e-con[class*="hl-"] > .elementor-widget:not(:last-child),
body .e-con[class*="hl-"] > .elementor-widget { margin-block-end: 0; margin-bottom: 0; }
body .elementor-widget[class*="hl-"] > .elementor-widget-container > p:last-child,
body .elementor-widget[class*="hl-"] > p:last-child,
body .elementor-widget-text-editor[class*="hl-"] p { margin: 0; }
body .elementor-widget[class*="hl-"] .elementor-heading-title { font: inherit; color: inherit; line-height: inherit; letter-spacing: inherit; }
body .elementor-widget[class*="hl-"] .elementor-heading-title a { color: inherit; text-decoration: none; }
/* Block-editor fallback resets. */
body :where(.wp-block-group[class*="hl-"]) { margin-block: 0; } /* zero specificity: section rules may add margins */
body .wp-block-group[class*="hl-"] > .wp-block-group__inner-container { display: contents; } /* classic-theme inner wrapper */
body :where(.wp-block-group[class*="hl-"]) > *, body :where(.wp-block-group[class*="hl-"]) > .wp-block-group__inner-container > * { margin-block: 0; }
body figure.wp-block-image[class*="hl-"] { margin: 0; }
body .wp-block-heading[class*="hl-"] a { color: inherit; text-decoration: none; }

/* Layout primitives. */
body .hl-section { display: block; padding-block: 44px; width: 100%; }
body .hl-wrap { display: flex; flex-direction: column; gap: 20px; width: 100%; max-width: calc(var(--hl-container) + var(--hl-gutter) * 2); margin-inline: auto; padding-inline: var(--hl-gutter); }
body .hl-grid { display: grid; gap: 20px; width: 100%; }
body .hl-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 24px; }
body .hl-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body .hl-grid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
body .hl-grid--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; }
@media (max-width: 1080px) { body .hl-grid--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); } body .hl-grid--6 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 860px) { body .hl-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } body .hl-grid--2 { grid-template-columns: 1fr; } }
@media (max-width: 640px) { body .hl-grid--5, body .hl-grid--6 { grid-template-columns: repeat(2, minmax(0, 1fr)); } body .hl-grid--3 { grid-template-columns: 1fr; } body .hl-section { padding-block: 36px; } :root { --hl-gutter: 16px; } }

/* Section headings. */
body .hl-section-head { display: flex; flex-direction: column; gap: 2px; }
body .hl-section-head--split { flex-direction: row; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
body .hl-section-head__text { display: flex; flex-direction: column; gap: 2px; }
body .hl-h2, body .hl-h2 .elementor-heading-title { font: 700 26px/1.25 var(--hl-font); color: var(--hl-ink); letter-spacing: -.2px; margin: 0; }
body .hl-subtitle, body .hl-subtitle p { font-size: 14.5px; color: var(--hl-muted); margin: 0; }
@media (max-width: 640px) { body .hl-h2, body .hl-h2 .elementor-heading-title { font-size: 22px; } }

/* Arrow text link (Elementor button widget or core button). */
body .hl-link-arrow :is(.elementor-button, .wp-block-button__link) { display: inline-flex; align-items: center; background: none; border: 0; padding: 4px 0; color: var(--hl-blue); font: 600 14px/1.4 var(--hl-font); border-radius: 0; box-shadow: none; text-decoration: none; }
body .hl-link-arrow :is(.elementor-button, .wp-block-button__link)::after { content: "→"; margin-left: 6px; display: inline-block; transition: transform .15s; }
body .hl-link-arrow :is(.elementor-button, .wp-block-button__link):hover { color: var(--hl-navy); background: none; }
body .hl-link-arrow :is(.elementor-button, .wp-block-button__link):hover::after { transform: translateX(3px); }
body .hl-link-arrow--sm :is(.elementor-button, .wp-block-button__link) { font-size: 13px; }

/* Outline button. */
body .hl-btn-outline :is(.elementor-button, .wp-block-button__link) { background: var(--hl-white); color: var(--hl-green); border: 1.5px solid var(--hl-green); border-radius: 6px; font: 600 13px/1.2 var(--hl-font); padding: 9px 18px; text-decoration: none; }
body .hl-btn-outline :is(.elementor-button, .wp-block-button__link):hover { background: var(--hl-green); color: var(--hl-white); }
body .hl-btn-sm :is(.elementor-button, .wp-block-button__link) { padding: 7px 16px; font-size: 12.5px; }

/* ---------- Hero ---------- */
body .hl-hero { position: relative; padding-block: 64px 150px; background-color: var(--hl-navy); background-image: url("../img/hero.webp"); background-size: cover; background-position: 65% 60%; color: var(--hl-white); overflow: hidden; }
body .hl-hero::before, body .e-con.hl-hero::before { content: ""; position: absolute; inset: 0; z-index: 0; background: linear-gradient(90deg, rgba(8, 18, 36, .88) 0%, rgba(8, 18, 36, .62) 42%, rgba(8, 18, 36, .05) 75%); opacity: 1; mix-blend-mode: normal; }
body .hl-hero > *, body .hl-hero > .wp-block-group__inner-container > * { position: relative; z-index: 1; }
body .hl-hero__content { display: flex; flex-direction: column; gap: 14px; max-width: 700px; }
body .hl-hero__title, body .hl-hero__title .elementor-heading-title { font: 700 clamp(32px, 4.6vw, 48px)/1.12 var(--hl-font); color: var(--hl-white); letter-spacing: -.5px; margin: 0; }
body .hl-hero__lead, body .hl-hero__lead p { font-size: clamp(15px, 1.6vw, 17.5px); line-height: 1.6; color: #e6edf7; margin: 0; max-width: 540px; }
.hl-chips { list-style: none; display: flex; flex-wrap: wrap; gap: 10px 18px; margin: 10px 0 0; padding: 0; }
.hl-chip { display: inline-flex; align-items: center; gap: 10px; font: 600 14px/1.2 var(--hl-font); color: var(--hl-white); }
.hl-chip__icon { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 8px; background: var(--hl-white); color: var(--hl-navy); }
.hl-chip__icon .hl-icon { width: 19px; height: 19px; }
@media (max-width: 640px) { body .hl-hero { padding-block: 40px 120px; } body .hl-hero::before, body .e-con.hl-hero::before { background: linear-gradient(180deg, rgba(8, 18, 36, .85), rgba(8, 18, 36, .55)); } .hl-chip { font-size: 13px; } }

/* ---------- Calculator slot (card itself is styled by the plugin) ---------- */
body .hl-calc-section { padding-block: 0; margin-top: -110px; position: relative; z-index: 5; }
@media (max-width: 640px) { body .hl-calc-section { margin-top: -90px; } }
.hl-calc-fallback { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 20px; padding: 26px 28px; background: var(--hl-white); border-radius: 12px; box-shadow: var(--hl-shadow); border: 1px solid var(--hl-border); }
.hl-calc-fallback__head { display: flex; gap: 16px; align-items: center; max-width: 720px; }
.hl-calc-fallback__icon { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 10px; background: var(--hl-green); color: var(--hl-white); }
.hl-calc-fallback__icon .hl-icon { width: 26px; height: 26px; }
.hl-calc-fallback__title { font-size: 22px; margin: 0 0 2px; }
.hl-calc-fallback__text { margin: 0; color: var(--hl-muted); font-size: 14.5px; }
.hl-calc-fallback .hl-admin-note { flex-basis: 100%; }
.hl-admin-note { margin: 12px 0 0; padding: 8px 12px; border: 1px dashed var(--hl-amber); border-radius: 6px; background: #fffbeb; color: #78350f; font-size: 13px; }
.hl-vehicles-fallback { padding: 22px; border: 1px dashed #cfd6e1; border-radius: var(--hl-radius); text-align: center; color: var(--hl-muted); font-size: 14.5px; }
.hl-vehicles-fallback p { margin: 0; }

/* ---------- Why choose ---------- */
body .hl-why { background: var(--hl-sky); padding-block: 34px; }
body .hl-why .hl-wrap { gap: 22px; }
body .hl-feature { display: flex; flex-direction: row; align-items: center; gap: 14px; }
body .hl-feature__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
body .hl-feature__media { flex: none; width: auto; }
.hl-feature__icon { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; }
.hl-feature__icon .hl-icon { width: 24px; height: 24px; }
.hl-tone--green { background: #dcfce7; color: #15803d; }
.hl-tone--blue { background: #dbeafe; color: #1d4ed8; }
.hl-tone--orange { background: #ffedd5; color: #c2410c; }
.hl-tone--purple { background: #ede9fe; color: #6d28d9; }
.hl-tone--teal { background: #ccfbf1; color: #0f766e; }
body .hl-feature__title, body .hl-feature__title .elementor-heading-title { font: 600 14.5px/1.3 var(--hl-font); color: var(--hl-ink); margin: 0; }
body .hl-feature__text, body .hl-feature__text p { font-size: 12.5px; color: var(--hl-muted); margin: 0; line-height: 1.4; }

/* ---------- Cards ---------- */
body .hl-card { display: flex; flex-direction: column; background: var(--hl-white); border: 1px solid var(--hl-border); border-radius: var(--hl-radius); overflow: hidden; box-shadow: var(--hl-shadow-sm); transition: box-shadow .2s, transform .2s; }
body .hl-card:hover { box-shadow: var(--hl-shadow); transform: translateY(-2px); }
body .hl-card__media, body .hl-card__media a { display: block; line-height: 0; }
body .hl-card__media img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 0; }
body .hl-card__body { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px 14px; flex: 1; }
body .hl-card__title, body .hl-card__title .elementor-heading-title { font: 600 15px/1.3 var(--hl-font); color: var(--hl-ink); margin: 0; }
body .hl-card__title a:hover { color: var(--hl-green); }
body .hl-card__meta, body .hl-card__meta p { font-size: 12.5px; color: var(--hl-muted); margin: 0; }

/* Tours */
body .hl-tour-card .hl-card__media img { aspect-ratio: 16 / 7.5; }
body .hl-tour-card .hl-card__body { gap: 12px; padding: 14px 16px 16px; }
body .hl-tour-card__row { display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 12px; }
body .hl-tour-card .hl-card__title, body .hl-tour-card .hl-card__title .elementor-heading-title { font-size: 16px; }
body .hl-tour-card__price, body .hl-tour-card__price p { font: 600 12.5px/1.3 var(--hl-font); color: var(--hl-green); margin: 0; white-space: nowrap; text-align: right; }
.hl-tour-meta { list-style: none; display: flex; gap: 14px; margin: 0; padding: 0; font-size: 12.5px; color: var(--hl-muted); }
.hl-tour-meta li { display: inline-flex; align-items: center; gap: 5px; }
.hl-tour-meta__icon { display: inline-flex; color: var(--hl-green); }
.hl-tour-meta__icon .hl-icon { width: 15px; height: 15px; }

/* Testimonials (hidden by default) */
body .hl-review { flex-direction: row; gap: 14px; padding: 18px; }
body .hl-review__body { display: flex; flex-direction: column; gap: 4px; }
.hl-review__avatar { display: inline-flex; width: 52px; height: 52px; border-radius: 50%; align-items: center; justify-content: center; background: var(--hl-sky); color: var(--hl-blue); }
body .hl-review__name, body .hl-review__name .elementor-heading-title { font: 600 14.5px/1.3 var(--hl-font); margin: 0; color: var(--hl-ink); }
body .hl-review__text, body .hl-review__text p { font-size: 13px; color: var(--hl-muted); margin: 0; }

/* ---------- FAQ ---------- */
body .hl-faq { padding-bottom: 56px; }
.hl-faq__col { display: flex; flex-direction: column; gap: 10px; }
.hl-faq__item { border: 1px solid var(--hl-border); border-radius: var(--hl-radius-sm); background: var(--hl-white); }
.hl-faq__q { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; cursor: pointer; font: 600 14px/1.4 var(--hl-font); color: var(--hl-ink); }
.hl-faq__q::-webkit-details-marker { display: none; }
.hl-faq__chevron { width: 18px; height: 18px; transition: transform .2s; color: var(--hl-muted); }
.hl-faq__item[open] .hl-faq__chevron { transform: rotate(180deg); }
.hl-faq__item[open] .hl-faq__q { color: var(--hl-green); }
.hl-faq__a { padding: 0 16px 14px; font-size: 14px; color: var(--hl-text); }
.hl-faq__a p { margin: 0; }
/* Elementor 4 sets flex-direction from --flex-direction with `.e-con.e-flex` / `.elementor-widget`
   selectors, which outrank the plain rules above. Repeat the direction as the variable, one class deeper. */
body .e-con.hl-section-head--split { --flex-direction: row; --align-items: flex-end; --justify-content: space-between; --flex-wrap: wrap; flex-direction: row; }
body .e-con.hl-section-head--split > .e-con.hl-section-head__text { --width: auto; flex: 1 1 auto; min-width: min(100%, 280px); }
body .e-con.hl-feature { --flex-direction: row; --align-items: center; flex-direction: row; }
body .e-con.hl-tour-card__row { --flex-direction: row; --align-items: center; --justify-content: space-between; flex-direction: row; }
body .elementor-widget.hl-faq__col { --flex-direction: column; flex-direction: column; }

/* Shortcode wrappers */
body .hl-calc-slot, body .hl-vehicles-slot { width: 100%; }
body .hl-calc-slot > p:empty, body .hl-vehicles-slot > p:empty { display: none; }

/* =====================================================================
 * Destination guides
 * =================================================================== */
.hl-breadcrumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 4px 0; margin: 0 0 14px; padding: 0; font-size: 13px; }
.hl-breadcrumbs li { display: inline-flex; align-items: center; }
.hl-breadcrumbs li + li::before { content: "/"; margin: 0 8px; opacity: .6; }
.hl-breadcrumbs a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.hl-breadcrumbs [aria-current] { opacity: .85; }

.hl-dest__hero { position: relative; background: var(--hl-navy); color: #e6edf7; padding-block: 44px 40px; overflow: hidden; }
.hl-dest__hero.has-image { padding-block: 120px 44px; }
.hl-dest__hero-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.hl-dest__hero.has-image::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(8, 18, 36, .15) 0%, rgba(8, 18, 36, .82) 100%); }
.hl-dest__hero-inner { position: relative; z-index: 2; }
.hl-dest__hero .hl-breadcrumbs { color: #dbe5f3; }
.hl-dest__region { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 8px; padding: 4px 12px; border-radius: 999px; background: rgba(255, 255, 255, .14); color: #fff; font-size: 13px; font-weight: 500; text-decoration: none; }
.hl-dest__region:hover { background: rgba(255, 255, 255, .24); color: #fff; }
.hl-dest__title { margin: 0; color: #fff; font-size: clamp(30px, 4.4vw, 46px); line-height: 1.12; letter-spacing: -.4px; }
.hl-dest__lead { margin: 12px 0 0; max-width: 720px; font-size: clamp(15px, 1.6vw, 18px); color: #e6edf7; }
.hl-dest__layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 40px; align-items: start; padding-block: 40px 24px; }
.hl-dest__content { min-width: 0; font-size: 16.5px; line-height: 1.75; }
.hl-dest__content h2 { font-size: 25px; margin-top: 1.6em; }
.hl-dest__content > :first-child { margin-top: 0; }
.hl-dest__aside { position: sticky; top: 100px; }
.admin-bar .hl-dest__aside { top: 132px; }
.hl-dest__cta { background: var(--hl-green-50); border: 1px solid #d1fadf; border-radius: 12px; padding: 18px; }
.hl-dest__cta-title { font-size: 18px; margin: 0 0 6px; }
.hl-dest__cta p { font-size: 14px; color: var(--hl-text); }
.hl-dest__cta .hl-button { width: 100%; }
.hl-dest__related { padding-block: 16px 56px; }
.hl-dest__related .hl-h2 { margin-bottom: 16px; }
@media (max-width: 960px) {
	.hl-dest__layout { grid-template-columns: 1fr; gap: 28px; }
	.hl-dest__aside { position: static; order: -1; } /* Fare box right under the hero, before the guide text. */
}

/* ---------- Contact page (inc/home/contact-layout.php, inc/contact.php) ---------- */
body .hl-chero { position: relative; padding-block: 28px 120px; background-color: var(--hl-navy); background-size: cover; background-position: center 40%; color: var(--hl-white); overflow: hidden; }
body .hl-chero::before { content: ""; position: absolute; inset: 0; z-index: 0; background: linear-gradient(90deg, rgba(8, 18, 36, .86) 0%, rgba(8, 18, 36, .6) 45%, rgba(8, 18, 36, .1) 80%); }
body .hl-chero > * { position: relative; z-index: 1; }
body .hl-chero__inner { gap: 12px; --align-items: stretch; align-items: stretch; }
/* Elementor containers read flex settings from custom properties. */
body :is(.hl-cform, .hl-cside, .hl-cmap-block, .hl-cbox__head-text, .hl-cfaq, .hl-ccta__text) { --flex-direction: column; --align-items: stretch; align-items: stretch; }
body :is(.hl-cbox__head, .hl-cfaq__head, .hl-ccta__inner) { --flex-direction: row; --flex-wrap: nowrap; }
body .hl-chero .hl-breadcrumbs { color: #dbe5f3; }
body .hl-chero .hl-breadcrumbs ol { margin: 0 0 6px; }
body .hl-chero__title, body .hl-chero__title .elementor-heading-title { font: 700 clamp(30px, 4.4vw, 46px)/1.12 var(--hl-font); color: var(--hl-white); letter-spacing: -.5px; margin: 0; }
body .hl-chero__lead, body .hl-chero__lead p { max-width: 600px; margin: 0; font-size: clamp(15px, 1.6vw, 17px); line-height: 1.6; color: #e6edf7; }
.hl-cfeatures { list-style: none; display: flex; flex-wrap: wrap; gap: 14px 32px; margin: 10px 0 0; padding: 0; }
.hl-cfeature { display: flex; align-items: center; gap: 12px; }
.hl-cfeature__icon { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; flex: none; border-radius: 50%; background: var(--hl-white); color: var(--hl-navy); }
.hl-cfeature__icon .hl-icon { width: 22px; height: 22px; }
.hl-cfeature__text { display: flex; flex-direction: column; font-size: 13.5px; line-height: 1.35; color: #dbe5f3; }
.hl-cfeature__text strong { font-size: 14.5px; font-weight: 600; color: var(--hl-white); }

/* Cards that overlap the hero. */
body .hl-cmain { padding-block: 0 28px; margin-top: -92px; position: relative; z-index: 2; }
body .hl-cmain__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 24px; align-items: start; }
body .hl-cbox { background: var(--hl-white); border: 1px solid var(--hl-border); border-radius: 14px; box-shadow: var(--hl-shadow); }
body .hl-cform { display: flex; flex-direction: column; gap: 20px; padding: 26px; }
body .hl-cbox__head { display: flex; flex-direction: row; --align-items: flex-start; align-items: flex-start; gap: 14px; }
body .hl-cbox__head-text { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
body .e-con.hl-cbox__head-text { --width: auto; flex: 1 1 0; } /* Stay beside the icon at every width. */
body .hl-cfaq__head > .elementor-widget-heading { flex: 1 1 0; min-width: 0; }
.hl-cbox__icon { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; flex: none; border-radius: 10px; background: var(--hl-green); color: var(--hl-white); }
.hl-cbox__icon .hl-icon { width: 24px; height: 24px; }
.hl-cbox__icon--line { width: 30px; height: 30px; background: none; color: var(--hl-navy); border-radius: 0; }
.hl-cbox__icon--line .hl-icon { width: 28px; height: 28px; }
body .hl-cbox__title, body .hl-cbox__title .elementor-heading-title { font: 700 22px/1.25 var(--hl-font); color: var(--hl-ink); margin: 0; }
body .hl-cbox__title--sm, body .hl-cbox__title--sm .elementor-heading-title { font-size: 18px; }
body .hl-cbox__lead, body .hl-cbox__lead p { margin: 0; font-size: 13.5px; line-height: 1.5; color: var(--hl-muted); }
body .hl-cside { display: flex; flex-direction: column; gap: 22px; }

.hl-ccards { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 0; padding: 14px; }
.hl-ccard { --c: var(--hl-green); --c-bg: #ecfdf3; display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 16px 10px; border-radius: 10px; background: linear-gradient(180deg, var(--c-bg), var(--hl-white) 70%); min-width: 0; }
.hl-ccard--call { --c: #1d6fe0; --c-bg: #eef4ff; }
.hl-ccard--email { --c: #d92d20; --c-bg: #fff1f0; }
.hl-ccard--location { --c: #7e3bd0; --c-bg: #f6f0ff; }
.hl-ccard__icon { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; margin-bottom: 10px; border-radius: 50%; background: var(--c); color: var(--hl-white); }
.hl-ccard__icon .hl-icon { width: 22px; height: 22px; }
.hl-ccard__title { margin: 0; font: 600 15px/1.3 var(--hl-font); color: var(--hl-ink); }
.hl-ccard__sub { margin: 0; font-size: 12.5px; color: var(--hl-muted); }
.hl-ccard__value { margin: 8px 0 12px; font: 600 13px/1.35 var(--hl-font); color: var(--hl-ink); overflow-wrap: break-word; max-width: 100%; }
.hl-ccard__cta { display: inline-flex; align-items: center; gap: 5px; margin-top: auto; padding: 8px 10px; border-radius: 6px; background: var(--c-bg); color: var(--c); font: 600 12.5px/1.2 var(--hl-font); text-decoration: none; transition: background-color .15s, color .15s; }
.hl-ccard__cta .hl-icon { width: 15px; height: 15px; }
.hl-ccard__cta:hover, .hl-ccard__cta:focus-visible { background: var(--c); color: var(--hl-white); }

body .hl-cmap-block { display: flex; flex-direction: column; gap: 14px; }
body .hl-cbox__head--plain { --align-items: center; align-items: center; }
.hl-cmap { position: relative; border-radius: 12px; overflow: hidden; border: 1px solid var(--hl-border); background: var(--hl-sky); aspect-ratio: 16 / 7; min-height: 220px; }
.hl-cmap__frame { display: block; width: 100%; height: 100%; border: 0; }
.hl-cmap__link { position: absolute; top: 10px; right: 10px; padding: 6px 10px; border-radius: 6px; background: var(--hl-white); box-shadow: var(--hl-shadow-sm); font: 600 12.5px/1.2 var(--hl-font); color: var(--hl-blue); text-decoration: none; }
.hl-cmap__link:hover { text-decoration: underline; }

/* Office details + FAQ. */
body .hl-cinfo { padding-block: 24px 48px; }
body .hl-cinfo__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.hl-office { display: flex; flex-direction: column; gap: 18px; padding: 24px; border-radius: 14px; background: var(--hl-sky); }
.hl-office__head { display: flex; align-items: center; gap: 14px; }
.hl-office__icon { color: var(--hl-navy); display: inline-flex; }
.hl-office__icon .hl-icon { width: 34px; height: 34px; stroke-width: 1.6; }
.hl-office__title { margin: 0; font: 700 18px/1.25 var(--hl-font); color: var(--hl-ink); }
.hl-office__company { margin: 2px 0 0; font: 600 14px/1.3 var(--hl-font); color: var(--hl-text); }
.hl-office__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px 24px; padding: 16px; border-radius: 10px; background: rgba(255, 255, 255, .55); }
.hl-office__list { display: flex; flex-direction: column; gap: 14px; margin: 0; }
.hl-office__item { display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: 4px 12px; font-size: 14px; }
.hl-office__item dt { display: inline-flex; align-items: center; gap: 12px; font-weight: 600; color: var(--hl-ink); }
.hl-office__item dt .hl-icon { width: 18px; height: 18px; color: var(--hl-navy); flex: none; }
.hl-office__item dd { margin: 0; color: var(--hl-text); line-height: 1.55; overflow-wrap: anywhere; }
.hl-office__item dd a { color: var(--hl-blue); text-decoration: none; }
.hl-office__item dd a:hover { text-decoration: underline; }
.hl-office__item--stack { grid-template-columns: 1fr; }
.hl-office__item--stack dd { padding-left: 30px; }

body .hl-cfaq { display: flex; flex-direction: column; gap: 14px; }
body .hl-cfaq__head { display: flex; flex-direction: row; --align-items: center; align-items: center; gap: 12px; }
/* Elementor nested Accordion + block-editor Details fallback. */
body .hl-cfaq__list .e-n-accordion { display: flex; flex-direction: column; gap: 8px; }
body .hl-cfaq__list .e-n-accordion-item, body .hl-cfaq__list details { border: 1px solid var(--hl-border); border-radius: 8px; background: var(--hl-white); }
body .hl-cfaq__list .e-n-accordion-item-title, body .hl-cfaq__list summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; border: 0; background: none; font: 600 14.5px/1.4 var(--hl-font); color: var(--hl-ink); cursor: pointer; list-style: none; }
body .hl-cfaq__list summary::-webkit-details-marker { display: none; }
body .hl-cfaq__list details.wp-block-details summary::after { content: ""; width: 9px; height: 9px; flex: none; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-3px); transition: transform .15s; }
body .hl-cfaq__list details.wp-block-details[open] summary::after { transform: rotate(-135deg); }
body .hl-cfaq__list .e-n-accordion-item-title-text { font: inherit; color: inherit; }
body .hl-cfaq__list .e-n-accordion-item-title-icon { color: var(--hl-ink); }
body .hl-cfaq__list .e-n-accordion-item-title-icon svg { width: 12px; height: 12px; fill: currentColor; }
body .hl-cfaq__list .e-n-accordion-item > [role="region"], body .hl-cfaq__list details > p { padding: 0 16px 14px; font-size: 14px; line-height: 1.6; color: var(--hl-text); }
body .hl-cfaq__list .e-n-accordion-item > [role="region"] p { margin: 0; }
body .hl-cfaq__list .e-n-accordion-item-title:focus-visible, body .hl-cfaq__list summary:focus-visible { outline: 3px solid #fbbf24; outline-offset: 2px; border-radius: 8px; }

/* WhatsApp banner. */
body .hl-ccta { position: relative; padding-block: 28px; background-color: var(--hl-navy); background-size: cover; background-position: center 60%; color: var(--hl-white); overflow: hidden; }
body .hl-ccta::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8, 18, 36, .88) 0%, rgba(8, 18, 36, .6) 55%, rgba(8, 18, 36, .35) 100%); }
body .hl-ccta > * { position: relative; z-index: 1; }
body .hl-ccta__inner { flex-direction: row; --align-items: center; align-items: center; --justify-content: space-between; justify-content: space-between; --flex-wrap: wrap; flex-wrap: wrap; gap: 16px 32px; }
body .hl-ccta__text { display: flex; flex-direction: column; gap: 4px; width: auto; }
body .hl-ccta__title, body .hl-ccta__title .elementor-heading-title { margin: 0; font: 700 clamp(20px, 2.4vw, 26px)/1.25 var(--hl-font); color: var(--hl-white); }
body .hl-ccta__lead, body .hl-ccta__lead p { margin: 0; font-size: 15px; color: #e6edf7; }
body .hl-ccta__button { width: auto; }
.hl-wa-button { padding: 14px 22px; font-size: 15px; }
.hl-wa-button .hl-icon:last-child { width: 18px; height: 18px; }

@media (max-width: 1080px) {
	body .hl-cmain__grid, body .hl-cinfo__grid { grid-template-columns: 1fr; }
}
@media (max-width: 760px) { .hl-ccards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) {
	body .hl-chero { padding-block: 22px 96px; }
	body .hl-chero::before { background: linear-gradient(180deg, rgba(8, 18, 36, .85), rgba(8, 18, 36, .6)); }
	.hl-cfeatures { gap: 12px; flex-direction: column; }
	body .hl-cmain { margin-top: -72px; }
	body .hl-cform { padding: 20px 16px; }
	.hl-ccards { padding: 10px; gap: 10px; }
	.hl-ccard { padding: 14px 12px; }
	.hl-cmap { aspect-ratio: 4 / 3; }
	.hl-office { padding: 18px 16px; }
	.hl-office__grid { grid-template-columns: 1fr; padding: 14px; }
	body .hl-ccta__inner { --flex-direction: column; flex-direction: column; --align-items: stretch; align-items: stretch; }
	.hl-wa-button { width: 100%; }
}
@media (max-width: 340px) { .hl-ccards { grid-template-columns: 1fr; } }

/* ---------- FAQ page (inc/home/faq-layout.php) ---------- */
body .hl-chero--compact { padding-block: 28px 56px; }
body .hl-faqpage { padding-block: 40px 56px; }
body .hl-faqpage__grid { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 40px; align-items: start; }
body .hl-faqpage__nav { position: sticky; top: 96px; }
.admin-bar .hl-faqpage__nav { top: 128px; }
.hl-faqnav { padding: 16px; border: 1px solid var(--hl-border); border-radius: 12px; background: var(--hl-white); box-shadow: var(--hl-shadow-sm); }
.hl-faqnav__title { margin: 0 0 8px; padding: 0 8px; font: 600 12px/1.4 var(--hl-font); letter-spacing: .06em; text-transform: uppercase; color: var(--hl-muted); }
.hl-faqnav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.hl-faqnav a { display: flex; align-items: center; gap: 10px; padding: 9px 8px; border-radius: 8px; font: 600 14px/1.3 var(--hl-font); color: var(--hl-ink); text-decoration: none; transition: background-color .15s, color .15s; }
.hl-faqnav a .hl-icon { width: 18px; height: 18px; flex: none; color: var(--hl-green); }
.hl-faqnav a:hover, .hl-faqnav a:focus-visible { background: var(--hl-green-50); color: var(--hl-green-700); }
body .hl-faqpage__list { display: flex; flex-direction: column; gap: 36px; }
body .hl-faqcat { display: flex; flex-direction: column; gap: 14px; scroll-margin-top: 100px; --align-items: stretch; align-items: stretch; }
body .hl-faqcat__head { display: flex; flex-direction: row; align-items: center; gap: 12px; }
body .e-con.hl-faqcat__head { --flex-direction: row; --align-items: center; flex-direction: row; }
.hl-faqcat__icon { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; flex: none; border-radius: 10px; background: var(--hl-green-50); color: var(--hl-green); }
.hl-faqcat__icon .hl-icon { width: 22px; height: 22px; }
body .hl-faqcat__title, body .hl-faqcat__title .elementor-heading-title { margin: 0; font: 700 22px/1.25 var(--hl-font); color: var(--hl-ink); }
body .hl-faqcat__head > .elementor-widget-heading { flex: 1 1 0; min-width: 0; }
body .hl-faqcat .hl-cfaq__list .e-n-accordion-item-title, body .hl-faqcat .hl-cfaq__list summary { padding: 14px 18px; font-size: 15px; }
body .hl-faqcat .hl-cfaq__list .e-n-accordion-item > [role="region"], body .hl-faqcat .hl-cfaq__list details > p { padding: 0 18px 16px; font-size: 14.5px; }
body .hl-faqcat .hl-cfaq__list .e-n-accordion-item[open] .e-n-accordion-item-title { color: var(--hl-green); }
body .hl-ccta__actions { display: flex; flex-direction: row; align-items: center; flex-wrap: wrap; gap: 12px; width: auto; }
body .e-con.hl-ccta__actions { --flex-direction: row; --align-items: center; --width: auto; flex-direction: row; }
body .hl-btn-light :is(.elementor-button, .wp-block-button__link) { display: inline-flex; align-items: center; padding: 14px 22px; border: 2px solid rgba(255, 255, 255, .85); border-radius: var(--hl-radius-sm); background: transparent; color: var(--hl-white); font: 600 15px/1.2 var(--hl-font); text-decoration: none; transition: background-color .15s, color .15s; }
body .hl-btn-light :is(.elementor-button, .wp-block-button__link):hover, body .hl-btn-light :is(.elementor-button, .wp-block-button__link):focus-visible { background: var(--hl-white); color: var(--hl-navy); }
@media (max-width: 900px) {
	body .hl-faqpage__grid { grid-template-columns: 1fr; gap: 24px; }
	body .hl-faqpage__nav { position: static; }
	.hl-faqnav { padding: 0; border: 0; box-shadow: none; background: none; }
	.hl-faqnav__title { display: none; }
	.hl-faqnav ul { flex-direction: row; gap: 8px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: thin; }
	.hl-faqnav a { white-space: nowrap; border: 1px solid var(--hl-border); border-radius: 999px; padding: 8px 14px; background: var(--hl-white); }
}
@media (max-width: 640px) {
	body .hl-faqpage { padding-block: 28px 40px; }
	body .hl-faqcat__title, body .hl-faqcat__title .elementor-heading-title { font-size: 19px; }
	body .hl-ccta__actions { --flex-direction: column; flex-direction: column; --align-items: stretch; align-items: stretch; width: 100%; }
	body .hl-btn-light, body .hl-btn-light :is(.elementor-button, .wp-block-button__link) { width: 100%; justify-content: center; }
}
@media (prefers-reduced-motion: no-preference) { html:has(.hl-faqpage) { scroll-behavior: smooth; } }

/* ---------- About Us page (inc/home/about-layout.php) ---------- */
body .hl-eyebrow, body .hl-eyebrow p { margin: 0; font: 700 12.5px/1.4 var(--hl-font); letter-spacing: .08em; text-transform: uppercase; color: var(--hl-green); }
body .hl-h2--lg, body .hl-h2--lg .elementor-heading-title { font-size: clamp(26px, 3vw, 34px); line-height: 1.18; }
body .hl-section-head--center { align-items: center; text-align: center; --align-items: center; }
body .hl-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
body .hl-btn-solid :is(.elementor-button, .wp-block-button__link) { display: inline-flex; align-items: center; gap: 8px; padding: 13px 24px; border: 0; border-radius: var(--hl-radius-sm); background: var(--hl-green); color: var(--hl-white); font: 600 15px/1.2 var(--hl-font); text-decoration: none; transition: background-color .15s; }
body .hl-btn-solid :is(.elementor-button, .wp-block-button__link)::after { content: "→"; transition: transform .15s; }
body .hl-btn-solid :is(.elementor-button, .wp-block-button__link):hover { background: var(--hl-green-700); color: var(--hl-white); }
body .hl-btn-solid :is(.elementor-button, .wp-block-button__link):hover::after { transform: translateX(3px); }
body .hl-astory__p, body .hl-astory__p p { margin: 0; font-size: 15.5px; line-height: 1.7; color: var(--hl-text); }

body .hl-astory { padding-block: 48px; }
body .hl-astory__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 40px; align-items: center; }
body .hl-astory__text, body .hl-afleet__text { display: flex; flex-direction: column; gap: 14px; --align-items: flex-start; align-items: flex-start; }
body .hl-astory__media { position: relative; }
body .hl-astory__img img, body .hl-afleet__img img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 14px; }
body .hl-astats { position: absolute; top: 16px; right: 16px; bottom: 16px; width: 200px; display: flex; flex-direction: column; justify-content: space-around; gap: 12px; padding: 18px 16px; background: var(--hl-white); border-radius: 12px; box-shadow: var(--hl-shadow); }
body .hl-astat { display: flex; flex-direction: row; align-items: flex-start; gap: 12px; }
body .e-con.hl-astat, body .e-con.hl-person { --flex-direction: row; flex-direction: row; }
body .hl-astat__body { display: flex; flex-direction: column; min-width: 0; }
body .e-con.hl-astat__body, body .e-con.hl-person__body { --width: auto; flex: 1 1 0; }
.hl-astat__icon { display: inline-flex; color: var(--hl-amber); }
.hl-astat__icon .hl-icon { width: 26px; height: 26px; }
body .hl-astat__num, body .hl-astat__num .elementor-heading-title { margin: 0; font: 700 22px/1.2 var(--hl-font); color: var(--hl-green); }
body .hl-astat__label, body .hl-astat__label p { margin: 0; font-size: 12.5px; line-height: 1.4; color: var(--hl-muted); }

body .hl-awhy { background: var(--hl-sky); padding-block: 44px; }
body .hl-acard { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 24px 18px; text-align: center; background: var(--hl-white); border: 1px solid var(--hl-border); border-radius: 12px; box-shadow: var(--hl-shadow-sm); --align-items: center; }
.hl-acard__icon { display: inline-flex; color: var(--hl-green); margin-bottom: 4px; }
.hl-acard__icon .hl-icon { width: 34px; height: 34px; }
body .hl-acard__title, body .hl-acard__title .elementor-heading-title { margin: 0; font: 600 16px/1.3 var(--hl-font); color: var(--hl-ink); }
body .hl-acard__text, body .hl-acard__text p { margin: 0; font-size: 14px; line-height: 1.55; color: var(--hl-muted); }

body .hl-afleet { padding-block: 48px; }
body .hl-afleet__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 40px; align-items: center; }

body .hl-ateam, body .hl-areviews { padding-block: 40px; }
body .hl-ateam { background: var(--hl-sky); }
body .hl-person { flex-direction: row; align-items: center; gap: 16px; padding: 18px; }
body .hl-person--review { align-items: flex-start; }
body .hl-avatar { flex: none; width: 72px; }
body .hl-avatar img { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; display: block; }
body .hl-person--review .hl-avatar, body .hl-person--review .hl-avatar img { width: 56px; height: 56px; }
body .hl-person__body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
body .hl-person__name, body .hl-person__name .elementor-heading-title { margin: 0; font: 600 16px/1.3 var(--hl-font); color: var(--hl-ink); }
body .hl-person__role, body .hl-person__role p { margin: 0; font-size: 14px; color: var(--hl-text); }
body .hl-person__text, body .hl-person__text p { margin: 0; font-size: 13.5px; line-height: 1.55; color: var(--hl-muted); }
.hl-stars { display: inline-flex; gap: 2px; color: #f5a524; }
.hl-stars .hl-icon { width: 15px; height: 15px; fill: currentColor; }

@media (max-width: 1080px) {
	body .hl-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
	body .hl-astory__grid, body .hl-afleet__grid { grid-template-columns: 1fr; gap: 24px; }
	body .hl-astats { position: static; width: auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 14px; }
}
@media (max-width: 640px) {
	body .hl-grid--4 { grid-template-columns: 1fr; }
	body .hl-astory, body .hl-afleet { padding-block: 32px; }
}

/* ---------- Our Fleet page (inc/home/fleet-layout.php; vehicle markup: plugin fleet.css) ---------- */
body .hl-ffleet { padding-block: 36px 28px; }
body .hl-ffleet .hl-wrap { gap: 18px; }
body .hl-fcompare { padding-block: 20px 48px; }
body .hl-fcompare__grid { display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr); gap: 32px; align-items: start; }
body .hl-fcompare__table { display: flex; flex-direction: column; gap: 14px; --align-items: stretch; align-items: stretch; }
body .hl-fwhy { display: flex; flex-direction: column; gap: 16px; padding: 22px; border-radius: 14px; background: var(--hl-white); border: 1px solid var(--hl-border); box-shadow: var(--hl-shadow-sm); --align-items: stretch; align-items: stretch; }
body .hl-fwhy__heading, body .hl-fwhy__heading .elementor-heading-title { margin: 0; font: 700 20px/1.3 var(--hl-font); color: var(--hl-ink); }
body .hl-fwhy__list { display: flex; flex-direction: column; gap: 14px; }
body .hl-fwhy__item { display: flex; flex-direction: row; align-items: center; gap: 14px; }
body .e-con.hl-fwhy__item { --flex-direction: row; --align-items: center; flex-direction: row; }
body .e-con.hl-fwhy__body { --width: auto; flex: 1 1 0; }
body .hl-fwhy__media { flex: none; width: auto; }
body .hl-fwhy__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.hl-fwhy__icon { --c: var(--hl-green); display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: color-mix(in srgb, var(--c) 14%, #fff); color: var(--c); }
.hl-fwhy__icon .hl-icon { width: 20px; height: 20px; }
.hl-fwhy__icon--blue { --c: #0e7fc2; }
.hl-fwhy__icon--indigo { --c: #2f5fd0; }
.hl-fwhy__icon--amber { --c: #d97706; }
.hl-fwhy__icon--purple { --c: #7e3bd0; }
.hl-fwhy__icon--red { --c: #d92d20; }
.hl-fwhy__icon--green { --c: var(--hl-green); }
body .hl-fwhy__title, body .hl-fwhy__title .elementor-heading-title { margin: 0; font: 600 14.5px/1.3 var(--hl-font); color: var(--hl-ink); }
body .hl-fwhy__text, body .hl-fwhy__text p { margin: 0; font-size: 13px; line-height: 1.45; color: var(--hl-muted); }
@media (max-width: 1000px) {
	body .hl-fcompare__grid { grid-template-columns: 1fr; }
}
