/*
Theme Name: Wijha
Theme URI: https://seifweb.com
Author: SeifWeb
Author URI: https://seifweb.com
Description: موقع باقات سياحية لشركة سفر في دبي على WooCommerce: كل باقة بفندق 4 أو 5 نجوم وسعر للشخص، والكمية عدد المسافرين مع إجمالي مباشر، وإضافات مثل تأمين السفر وشريحة البيانات، وعند إتمام الحجز تاريخ السفر المفضل ومرونته وتأكيد صلاحية الجوازات، والدفع بعد اتصال المستشار وتأكيد السعر. عربي أولًا ومصمَّم للهاتف. A holiday-packages site for a Dubai tour operator on WooCommerce — each package with a 4- or 5-star stay priced per person, the quantity as travellers with a live total, extras such as travel insurance and an eSIM, a preferred travel date, its flexibility and a passport confirmation at checkout, and payment only after a consultant confirms — Arabic first and built for phones.
Version: 1.0.0
Requires at least: 6.5
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: wijha
Tags: e-commerce, rtl-language-support, custom-logo, custom-menu
*/

/* ---------- Tokens: white surfaces, cool grey panels, deep navy text, one ocean-blue action, a small coral accent ---------- */
:root {
	--ink: #0b2545;
	--ink-2: #334862;
	--muted: #526079;
	--line: #e3e8ef;
	--line-2: #cfd8e3;
	--paper: #ffffff;
	--panel: #f3f6f9;
	--panel-2: #e9eef4;
	--blue: #1d4ed8;
	--blue-2: #1e40af;
	--blue-soft: #e8efff;
	--coral: #c2410c;
	--coral-soft: #fff1e8;
	--navy: #0b2545;
	--navy-2: #13315c;
	--on-dark: #e6edf6;
	--on-dark-2: #b8c6d9;
	--sky: #93c5fd;
	--ok: #15803d;
	--radius: 14px;
	--shadow: 0 1px 2px rgba(11, 37, 69, .05), 0 12px 32px rgba(11, 37, 69, .08);
	--font: "Tajawal", "Segoe UI", Tahoma, sans-serif;
	--font-head: "Alexandria", "Tajawal", "Segoe UI", Tahoma, sans-serif;
	--gutter: 16px;
	--header-h: 64px;
	--tabbar-h: 62px;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 12px); }
body {
	margin: 0; font-family: var(--font); font-size: 17px; line-height: 1.7; color: var(--ink); background: var(--paper);
	-webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
	padding-bottom: calc(var(--tabbar-h) + env(safe-area-inset-bottom));
}
body.no-scroll { overflow: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--blue); }
h1, h2, h3, h4 { font-family: var(--font-head); line-height: 1.4; margin: 0 0 .5em; font-weight: 700; letter-spacing: 0; }
p { margin: 0 0 1em; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; border-radius: 6px; }
.site-footer :focus-visible, .demo-bar :focus-visible, .trust :focus-visible, .contact-card :focus-visible, .toast :focus-visible, .hero-card :focus-visible { outline-color: #ffffff; }
.screen-reader-text, .skip-link:not(:focus) { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.skip-link:focus { position: fixed; inset-inline-start: 12px; top: 12px; z-index: 100; background: var(--ink); color: #fff; padding: 10px 16px; border-radius: 8px; }
.container { width: 100%; max-width: 1240px; margin-inline: auto; padding-inline: var(--gutter); }
.icon { flex: none; }
.muted { color: var(--muted); }
.only-desktop { display: none !important; }

/* ---------- Buttons ---------- */
.btn, .button, button.button, a.button, input[type="submit"],
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 48px; padding: 0 22px; border: 1px solid transparent; border-radius: 10px;
	font-family: var(--font-head); font-weight: 600; font-size: 15.5px; line-height: 1.2; letter-spacing: 0; text-align: center;
	cursor: pointer; transition: background .2s, color .2s, border-color .2s, opacity .2s;
	background: var(--ink); color: #fff; text-decoration: none;
}
.btn .icon { width: 19px; height: 19px; }
.btn:hover, .button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover { background: var(--navy-2); color: #fff; }
/* The one action colour: ocean blue with white text (6.7:1). */
.btn-blue, .btn.btn-blue { background: var(--blue); color: #fff; border-color: var(--blue); }
.btn-blue:hover, .btn.btn-blue:hover { background: var(--blue-2); border-color: var(--blue-2); color: #fff; }
.btn-line { background: #fff; color: var(--ink); border-color: var(--line-2); }
.btn-line:hover { background: var(--panel); color: var(--ink); border-color: var(--ink); }
.btn-light { background: #fff; color: var(--ink); }
.btn-light:hover { background: var(--blue-soft); color: var(--ink); }
.btn-ghost { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .7); }
.btn-ghost:hover { background: rgba(255, 255, 255, .14); color: #fff; border-color: #fff; }
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce button.single_add_to_cart_button { background: var(--blue); color: #fff; border-color: var(--blue); }
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce button.single_add_to_cart_button:hover { background: var(--blue-2); color: #fff; }
.btn-sm { min-height: 44px; padding: 0 16px; font-size: 14.5px; }
.btn-block { width: 100%; }
/* WooCommerce paints disabled buttons in its own purple: keep the brand colour. */
.woocommerce button.button.alt.disabled, .woocommerce button.button.alt:disabled, .woocommerce button.button.alt:disabled[disabled],
.woocommerce button.button.alt.disabled:hover, .woocommerce div.product form.cart .button.disabled {
	background: var(--blue) !important; color: #fff !important; opacity: .5; cursor: not-allowed;
}
.icon-btn { display: inline-grid; place-items: center; position: relative; width: 44px; height: 44px; border-radius: 10px; background: transparent; border: 0; cursor: pointer; color: var(--ink); }
.icon-btn:hover { background: var(--panel); color: var(--ink); }
.lang-btn { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 36px; padding: 0 10px; margin-inline-end: 2px; border: 1px solid var(--line-2); border-radius: 8px; background: #fff; color: var(--ink); font-size: 14px; font-weight: 700; line-height: 1; }
.lang-btn:hover { border-color: var(--ink); color: var(--ink); }
.lang-btn[lang="en"] { letter-spacing: .04em; }
.lang-link .icon, .lang-foot .icon { width: 18px; height: 18px; }
.lang-foot { display: inline-flex; align-items: center; gap: 6px; }

/* ---------- Demo notice ---------- */
.demo-bar { background: var(--navy-2); color: #fff; font-size: 13.5px; }
.demo-bar-inner { display: flex; align-items: center; gap: 6px 14px; min-height: 40px; padding-block: 4px; }
.demo-bar p { margin: 0; flex: 1; min-width: 0; line-height: 1.5; }
.demo-bar a { color: #fff; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.demo-bar a:hover { color: var(--sky); }
.demo-bar-close { display: grid; place-items: center; flex: none; width: 36px; height: 36px; border: 0; border-radius: 8px; background: none; color: #fff; cursor: pointer; }
.demo-bar-close:hover { background: rgba(255, 255, 255, .14); }
.demo-bar-close .icon { width: 18px; height: 18px; }

/* ---------- Announcement bar (static: on phones it scrolls sideways) ---------- */
.notes-bar { background: var(--panel); border-bottom: 1px solid var(--line); color: var(--ink-2); font-size: 14px; font-weight: 500; }
.notes-list { list-style: none; margin: 0 auto; display: flex; gap: 4px 26px; overflow-x: auto; scrollbar-width: none; white-space: nowrap; }
.notes-list::-webkit-scrollbar { display: none; }
.note-item { position: relative; flex: none; display: inline-flex; align-items: center; gap: 7px; padding-block: 8px; }
.note-item .icon { width: 17px; height: 17px; color: var(--blue); }
/* Phones show the first note only, whole and centred, instead of a row cut at the edge. */
@media (max-width: 759.98px) {
	.notes-bar .notes-list { justify-content: center; }
	.notes-bar .note-item:not(:first-child) { display: none; }
}

/* ---------- Header ---------- */
.site-header { position: sticky; top: 0; z-index: 40; background: rgba(255, 255, 255, .97); backdrop-filter: saturate(1.4) blur(14px); -webkit-backdrop-filter: saturate(1.4) blur(14px); border-bottom: 1px solid var(--line); }
.site-header.is-scrolled { box-shadow: 0 6px 24px rgba(11, 37, 69, .07); }
.admin-bar .site-header { top: 46px; }
.header-row { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 8px; min-height: var(--header-h); }
.header-row > .icon-btn:first-child { justify-self: start; }
.brand { display: inline-flex; align-items: center; gap: 9px; justify-self: center; color: var(--ink); min-width: 0; }
.brand:hover { color: var(--ink); }
.brand-logo { max-height: 44px; width: auto; }
.brand-mark { width: 38px; height: 38px; flex: none; }
.brand-words { display: grid; row-gap: 5px; line-height: 1.15; min-width: 0; } /* the gap keeps the tail of «ج» off the tagline */
.brand-name { font-family: var(--font-head); font-weight: 700; font-size: 23px; line-height: 1.25; white-space: nowrap; }
.brand-sub { font-size: 12px; font-weight: 500; color: var(--muted); white-space: nowrap; }
html[lang^="en"] .brand-name { text-transform: uppercase; letter-spacing: .12em; font-size: 19px; }
html[lang^="en"] .brand-sub { text-transform: uppercase; letter-spacing: .16em; font-size: 10px; }
.header-actions { display: flex; align-items: center; gap: 2px; justify-self: end; }
.header-phone { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 10px; margin-inline-end: 4px; font-weight: 700; font-size: 15px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.header-phone .icon { width: 19px; height: 19px; color: var(--blue); }
.wijha-cart-count { position: absolute; top: 3px; inset-inline-end: 1px; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 9px; background: var(--blue); color: #fff; font-size: 11px; font-weight: 700; line-height: 18px; text-align: center; box-shadow: 0 0 0 2px #fff; }
.wijha-cart-count.is-empty { display: none; }
.nav-list, .drawer-list { list-style: none; margin: 0; padding: 0; }
.main-nav { align-self: stretch; }
.main-nav .nav-list { display: flex; gap: 2px; height: 100%; }
.main-nav .nav-list > li { position: relative; display: flex; align-items: center; }
.main-nav .nav-list a { display: block; padding: 10px 13px; font-family: var(--font-head); font-weight: 500; font-size: 15px; color: var(--ink-2); white-space: nowrap; }
.main-nav .nav-list a:hover, .main-nav .current-menu-item > a, .main-nav .current-menu-ancestor > a { color: var(--ink); }
.main-nav .nav-list > li > a { position: relative; }
.main-nav .nav-list > li > a::after { content: ""; position: absolute; inset-inline: 13px; bottom: 4px; height: 2px; border-radius: 2px; background: var(--blue); transform: scaleX(0); transition: transform .2s; }
.main-nav .nav-list > li:hover > a::after, .main-nav .current-menu-item > a::after, .main-nav .current-menu-ancestor > a::after { transform: scaleX(1); }
.main-nav .menu-item-has-children > a { padding-inline-end: 28px; }
.main-nav .menu-item-has-children > a::before { content: ""; position: absolute; inset-inline-end: 12px; top: 50%; width: 6px; height: 6px; margin-top: -5px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); }
.main-nav .sub-menu { list-style: none; margin: 0; padding: 8px; position: absolute; top: 100%; inset-inline-start: 0; min-width: 230px; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow); opacity: 0; visibility: hidden; transform: translateY(6px); transition: .2s; z-index: 5; }
.main-nav .sub-menu a { border-radius: 8px; padding: 9px 12px; }
.main-nav .sub-menu a::after { display: none; }
.main-nav .sub-menu a:hover { background: var(--panel); }
.main-nav li:hover > .sub-menu, .main-nav li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }

/* The packages panel: the destinations with their photo and starting price, and a promo card. */
.main-nav .nav-list > li.is-mega { position: static; }
.main-nav .mega-panel {
	position: absolute; top: 100%; left: 50%; width: min(960px, calc(100vw - 48px)); z-index: 5;
	display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 18px; padding: 18px;
	background: #fff; border: 1px solid var(--line); border-top: 0; border-radius: 0 0 16px 16px; box-shadow: var(--shadow);
	opacity: 0; visibility: hidden; transform: translate(-50%, 8px); transition: opacity .2s, transform .2s, visibility .2s;
}
.main-nav li.is-mega:hover > .mega-panel, .main-nav li.is-mega:focus-within > .mega-panel { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.main-nav .mega-panel .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0; min-width: 0; }
.main-nav .mega-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; align-content: start; }
.main-nav .mega-list a { display: flex; align-items: center; gap: 12px; padding: 8px; border: 1px solid var(--line); border-radius: 12px; white-space: normal; color: var(--ink); }
.main-nav .mega-list a:hover { background: var(--panel); border-color: var(--line-2); }
.mega-thumb { width: 84px; height: 60px; flex: none; border-radius: 8px; object-fit: cover; background: var(--panel); }
.mega-name { display: grid; min-width: 0; line-height: 1.4; font-weight: 600; }
.mega-from { font-family: var(--font); font-size: 14px; font-weight: 500; color: var(--muted); }
.main-nav .nav-list .mega-promo { position: relative; display: flex; align-items: flex-end; min-height: 190px; padding: 0; border-radius: 12px; overflow: hidden; color: #fff; background: var(--navy); white-space: normal; }
.mega-promo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mega-promo::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(to top, rgba(11, 37, 69, .95) 0%, rgba(11, 37, 69, .72) 50%, rgba(11, 37, 69, .05) 100%); }
.mega-promo-text { position: relative; z-index: 2; display: grid; gap: 2px; padding: 14px; line-height: 1.45; }
.mega-promo-text strong { font-size: 15.5px; font-weight: 600; }
.mega-promo-text span { font-family: var(--font); font-size: 14px; color: #fff; font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
.main-nav .nav-list .mega-promo:hover { color: #fff; }

/* ---------- Drawer ---------- */
.drawer { position: fixed; inset: 0; z-index: 60; }
.drawer-backdrop { position: absolute; inset: 0; background: rgba(11, 37, 69, .5); opacity: 0; transition: opacity .25s; }
.drawer-panel { position: absolute; top: 0; bottom: 0; inset-inline-start: 0; width: min(86vw, 360px); background: #fff; display: flex; flex-direction: column; transform: translateX(100%); transition: transform .25s ease; padding-bottom: env(safe-area-inset-bottom); }
[dir="ltr"] .drawer-panel { transform: translateX(-100%); }
.drawer.is-open .drawer-backdrop { opacity: 1; }
.drawer.is-open .drawer-panel { transform: none; }
.drawer-head { display: flex; align-items: center; justify-content: space-between; padding: 10px var(--gutter); border-bottom: 1px solid var(--line); }
.drawer-head .brand-mark { width: 34px; height: 34px; }
.drawer-head .brand-name { font-size: 21px; }
.drawer-list { flex: 1; overflow: auto; padding: 8px var(--gutter); }
.drawer-list a { display: block; padding: 13px 2px; border-bottom: 1px solid var(--line); font-family: var(--font-head); font-weight: 500; font-size: 16px; }
.drawer-list .sub-menu { list-style: none; padding-inline-start: 14px; margin: 0; }
.drawer-list .sub-menu a { font-family: var(--font); font-size: 16px; font-weight: 500; color: var(--ink-2); padding-block: 10px; }
.drawer-foot { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; padding: 16px var(--gutter); border-top: 1px solid var(--line); }
.drawer-foot > :first-child, .drawer-foot .lang-link, .drawer-foot .drawer-account { grid-column: 1 / -1; }
.drawer-foot .btn { padding-inline: 12px; }

/* ---------- Sections ---------- */
.section { padding-block: 48px; }
.section + .section { padding-top: 8px; }
.section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.section-head > div { min-width: 0; }
.section-head h2 { font-size: clamp(23px, 5.8vw, 32px); margin: 0; }
.eyebrow { display: inline-block; font-size: 14px; font-weight: 700; color: var(--blue); margin-bottom: 4px; }
.link-more { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; font-weight: 700; font-size: 15px; white-space: nowrap; color: var(--blue); }
.link-more:hover { color: var(--blue-2); text-decoration: underline; text-underline-offset: 4px; }
.link-more .icon { width: 18px; height: 18px; }
[dir="ltr"] .link-more .icon { transform: scaleX(-1); }

/* ---------- Home: hero with the trip finder ---------- */
.hero { padding-block: 16px 8px; }
/* Phones and tablets: the photo is a band at the top that fades into navy, and the text sits on the navy below it
   (only the small kicker overlaps the darkest part of the fade), so white text always has full contrast. */
.hero-card { --hero-img-h: min(72vw, 440px); position: relative; display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; border-radius: 20px; overflow: hidden; background: var(--navy); isolation: isolate; }
.hero-img { position: absolute; inset: 0 0 auto 0; width: 100%; height: var(--hero-img-h); object-fit: cover; object-position: 50% 40%; z-index: -2; }
.hero-card::after { content: ""; position: absolute; inset: 0 0 auto 0; height: var(--hero-img-h); z-index: -1; background: linear-gradient(to top, var(--navy) 0%, rgba(11, 37, 69, .9) 28%, rgba(11, 37, 69, 0) 70%); }
.hero-body { min-width: 0; padding: calc(var(--hero-img-h) * .76) 18px 22px; color: #fff; }
.hero-kicker { display: inline-block; margin-bottom: 8px; padding: 4px 12px; border-radius: 999px; background: rgba(255, 255, 255, .16); font-size: 14px; font-weight: 700; color: #fff; }
.hero-title { font-size: clamp(28px, 7.6vw, 52px); font-weight: 700; line-height: 1.35; margin: 0 0 10px; color: #fff; max-width: 15em; }
.hero-lead { font-size: 17px; color: var(--on-dark); max-width: 560px; margin-bottom: 18px; }
.finder { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; max-width: 580px; padding: 12px; background: #fff; color: var(--ink); border-radius: var(--radius); box-shadow: 0 16px 40px rgba(11, 37, 69, .25); }
.finder-label { display: inline-flex; align-items: center; gap: 6px; font-size: 14.5px; font-weight: 700; color: var(--ink-2); padding-inline: 4px; }
.finder-label .icon { width: 18px; height: 18px; color: var(--blue); }
.finder-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
.finder select {
	appearance: none; -webkit-appearance: none; width: 100%; min-width: 0; min-height: 50px; padding: 0 14px; padding-inline-end: 40px;
	border: 1px solid var(--line-2); border-radius: 10px; background: var(--panel) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b2545' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat left 12px center / 18px;
	font-size: 16px; font-weight: 500; cursor: pointer; text-overflow: ellipsis;
}
[dir="ltr"] .finder select { background-position: right 12px center; }
.finder select:focus-visible { outline: 2px solid var(--blue); outline-offset: 1px; }
.finder :focus-visible { outline-color: var(--blue); }
.finder .btn { width: 100%; min-height: 50px; }
.hero-links { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin-top: 16px; }
.hero-note { display: inline-flex; align-items: center; gap: 6px; font-size: 15px; font-weight: 500; color: var(--on-dark); }
.hero-note .icon { width: 18px; height: 18px; color: var(--sky); }

/* ---------- Home: the destinations ---------- */
.dest-row { list-style: none; margin: 0; padding: 2px 0 10px; display: grid; grid-auto-flow: column; grid-auto-columns: 62%; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.dest-item { position: relative; min-width: 0; scroll-snap-align: start; }
.dest-card { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2px; height: 100%; padding: 8px 8px 14px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); color: var(--ink); transition: border-color .2s, box-shadow .2s; }
.dest-card:hover { color: var(--ink); border-color: var(--line-2); box-shadow: var(--shadow); }
.dest-img { display: grid; place-items: center; aspect-ratio: 4 / 3; margin-bottom: 8px; border-radius: 10px; overflow: hidden; background: var(--panel); color: var(--muted); }
.dest-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.dest-img .icon { width: 40px; height: 40px; }
.dest-card:hover .dest-img img { transform: scale(1.04); }
.dest-name { font-family: var(--font-head); font-weight: 600; font-size: 16.5px; line-height: 1.45; padding-inline: 4px; overflow-wrap: anywhere; }
.dest-from { font-size: 15px; color: var(--muted); padding-inline: 4px; font-variant-numeric: tabular-nums; }

/* ---------- Package cards (WooCommerce loop) ---------- */
.woocommerce ul.products, .woocommerce-page ul.products { display: grid !important; grid-template-columns: minmax(0, 1fr); gap: 16px; margin: 0 !important; padding: 0; list-style: none; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product {
	width: auto !important; margin: 0 !important; float: none !important; clear: none !important; position: relative; display: flex; flex-direction: column; min-width: 0;
	padding: 0 0 16px; text-align: start; color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; transition: border-color .2s, box-shadow .2s;
}
.woocommerce ul.products li.product:hover { border-color: var(--line-2); box-shadow: var(--shadow); }
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { display: flex; flex-direction: column; flex: 1; color: var(--ink); text-decoration: none; }
.card-media { position: relative; display: block; aspect-ratio: 4 / 3; margin-bottom: 12px; overflow: hidden; background: var(--panel); }
.woocommerce ul.products li.product .card-media img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; margin: 0; border-radius: 0; }
.woocommerce ul.products li.product .card-media .card-alt { position: absolute; inset: 0; opacity: 0; transition: opacity .35s ease; }
.card-badges { position: absolute; top: 10px; inset-inline-start: 10px; z-index: 2; display: flex; flex-wrap: wrap; align-items: flex-start; gap: 6px; pointer-events: none; max-width: calc(100% - 20px); }
.woocommerce .card-badges .onsale, .woocommerce ul.products li.product .card-badges .onsale, .badge-popular {
	position: static; margin: 0; min-width: 0; min-height: 0; padding: 3px 10px; line-height: 1.6; border-radius: 8px;
	background: var(--coral); color: #fff; font-size: 13px; font-weight: 700; font-family: var(--font);
}
.badge-popular { background: var(--navy); }
.duration { display: inline-flex; align-items: center; padding: 3px 10px; border-radius: 8px; background: var(--coral); color: #fff; font-size: 13.5px; font-weight: 700; line-height: 1.6; white-space: nowrap; font-variant-numeric: tabular-nums; }
.card-duration { position: absolute; bottom: 10px; inset-inline-start: 10px; z-index: 2; }
.card-place { display: flex; align-items: center; gap: 5px; padding-inline: 16px; font-size: 14px; font-weight: 500; color: var(--muted); margin-bottom: 2px; min-width: 0; }
.card-place .icon { width: 16px; height: 16px; color: var(--blue); }
.card-place > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { padding: 0 16px; font-family: var(--font-head); font-size: 17.5px; font-weight: 600; line-height: 1.5; margin: 0 0 10px; color: var(--ink); }
.woocommerce ul.products li.product .price {
	display: flex; flex-wrap: wrap; align-items: baseline; align-content: center; gap: 2px 6px; margin: auto 0 0; padding: 12px 16px 0; padding-inline-end: 112px; min-height: 58px;
	border-top: 1px solid var(--line); color: var(--ink); font-family: var(--font-head); font-weight: 700; font-size: 20px; font-variant-numeric: tabular-nums;
}
.woocommerce ul.products li.product .price del { color: var(--muted); font-weight: 500; font-size: 14px; opacity: 1; }
.woocommerce ul.products li.product .price ins { text-decoration: none; color: var(--coral); }
.price-from, .price-unit { font-family: var(--font); font-size: .7em; font-weight: 500; color: var(--muted); }
.woocommerce ul.products li.product .card-btn { position: absolute; bottom: 16px; inset-inline-end: 16px; z-index: 3; min-width: 84px; margin: 0; }
.woocommerce ul.products li.product .card-btn.loading { opacity: .6; pointer-events: none; }
.woocommerce ul.products li.product .card-btn.added { background: var(--ink); border-color: var(--ink); color: #fff; }
.woocommerce ul.products li.product .card-btn.loading::after, .woocommerce ul.products li.product .card-btn.added::after { display: none !important; }
.woocommerce ul.products li.product a.added_to_cart { display: none; }
.woocommerce .star-rating { display: none; }

/* What a package includes: small icons on a card, icons with names on the package page. */
.inc-strip { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.inc-card { padding: 0 16px 14px; }
.inc-card li { position: relative; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 9px; background: var(--blue-soft); color: var(--blue); }
.inc-card .icon { width: 18px; height: 18px; }
.inc-box { margin: 0 0 6px; }
.inc-title { font-size: 15px; font-weight: 600; margin: 0 0 8px; color: var(--ink-2); }
.inc-full { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.inc-full li { display: flex; align-items: center; gap: 8px; min-width: 0; padding: 8px 10px; border-radius: 10px; background: var(--panel); font-size: 14.5px; font-weight: 500; line-height: 1.45; color: var(--ink); }
.inc-full li span { min-width: 0; }
.inc-full .icon { width: 20px; height: 20px; color: var(--blue); }

/* ---------- Home: featured packages, steps, offer, trust, questions ---------- */
.featured { background: #fff; }
.steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.step { position: relative; display: grid; gap: 6px; align-content: start; padding: 20px; background: var(--panel); border-radius: var(--radius); min-width: 0; }
.step-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 4px; }
.step-num { display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--blue); color: #fff; font-family: var(--font-head); font-weight: 700; font-size: 17px; line-height: 1; font-variant-numeric: tabular-nums; }
.step-icon { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 12px; background: #fff; color: var(--blue); }
.step-icon .icon { width: 24px; height: 24px; }
.step-title { font-family: var(--font-head); font-size: 18px; font-weight: 600; line-height: 1.45; }
.step-text { color: var(--ink-2); font-size: 16px; }

.section.offer-sec { padding-top: 40px; }
.offer { display: grid; grid-template-columns: minmax(0, 1fr); border-radius: 20px; overflow: hidden; background: var(--navy); color: var(--on-dark); }
.offer-text { display: grid; align-content: center; justify-items: start; gap: 4px; padding: 26px 20px; min-width: 0; }
.offer-text h2 { font-size: clamp(23px, 5.6vw, 34px); color: #fff; margin: 8px 0 6px; }
.offer-text p { color: var(--on-dark-2); max-width: 520px; margin-bottom: 16px; }
.badge-offer { display: inline-flex; align-items: center; gap: 6px; padding: 4px 12px; border-radius: 8px; background: var(--coral); color: #fff; font-size: 14px; font-weight: 700; }
.badge-offer .icon { width: 16px; height: 16px; }
.offer-media { margin: 0; min-width: 0; min-height: 220px; order: -1; }
.offer-media img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 16 / 10; }
.site-main .offer .btn-blue { color: #fff; }

.trust { background: var(--navy); color: var(--on-dark); padding-block: 30px; }
.trust-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; }
.trust-item { display: flex; gap: 14px; align-items: flex-start; min-width: 0; }
.trust-icon { display: grid; place-items: center; flex: none; width: 46px; height: 46px; border-radius: 12px; background: var(--navy-2); color: var(--sky); }
.trust-icon .icon { width: 24px; height: 24px; }
.trust-text { display: grid; grid-template-columns: minmax(0, 1fr); min-width: 0; font-size: 15.5px; line-height: 1.6; color: var(--on-dark-2); }
.trust-text strong { font-family: var(--font-head); font-size: 16.5px; font-weight: 600; color: #fff; }

.faq-sec { background: #fff; }
.faq-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; }
.faq-intro { min-width: 0; }
.faq-intro h2 { font-size: clamp(23px, 5.8vw, 32px); }
.faq-intro p { color: var(--ink-2); }
.faq-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; min-width: 0; }
.faq { background: var(--panel); border: 1px solid transparent; border-radius: 12px; min-width: 0; }
.faq[open] { background: #fff; border-color: var(--line-2); }
.faq summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 56px; padding: 14px 18px; font-family: var(--font-head); font-weight: 500; font-size: 16px; line-height: 1.55; cursor: pointer; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; display: grid; place-items: center; flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--blue-soft); color: var(--blue); font-size: 20px; font-weight: 700; line-height: 1; }
.faq[open] summary::after { content: "–"; }
.faq p { margin: 0; padding: 0 18px 16px; color: var(--ink-2); }
.faq-more { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0; font-weight: 700; }

/* ---------- The packages page and the destinations ---------- */
.shop-wrap { padding-block: 14px 56px; }
.shop-head { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; align-items: center; margin: 6px 0 18px; padding: 18px; background: var(--panel); border-radius: 18px; }
.shop-head-text { min-width: 0; }
.shop-head-title { font-size: clamp(27px, 7vw, 42px); margin: 2px 0 8px; }
.shop-head-desc { color: var(--ink-2); max-width: 640px; }
.shop-head-desc p { margin: 0 0 10px; }
.shop-head-from { display: inline-block; margin: 0; padding: 4px 12px; border-radius: 8px; background: var(--blue); color: #fff; font-family: var(--font-head); font-weight: 600; }
.shop-head-img { margin: 0; min-width: 0; }
.shop-head-img img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 14px; }
.woocommerce-products-header { margin-bottom: 6px; }
.woocommerce-products-header__title.page-title { font-size: clamp(26px, 7vw, 38px); margin: 4px 0; }
.term-description { color: var(--ink-2); font-size: 15px; max-width: 760px; }
.breadcrumb, .woocommerce .woocommerce-breadcrumb { font-size: 14px; color: var(--muted); margin: 0 0 6px; }
.breadcrumb a, .woocommerce .woocommerce-breadcrumb a { color: var(--ink-2); }
.breadcrumb .sep { margin-inline: 6px; opacity: .6; }
.list-bar { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; margin-bottom: 10px; min-width: 0; }
.chips { display: flex; gap: 8px; overflow-x: auto; padding: 4px 0 8px; scrollbar-width: none; }
.chips::-webkit-scrollbar { display: none; }
.chip { position: relative; flex: none; display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--line-2); background: #fff; font-size: 15px; font-weight: 500; color: var(--ink-2); }
.chip .icon { width: 16px; height: 16px; }
.chip:hover { border-color: var(--ink); color: var(--ink); }
.chip.is-active { background: var(--ink); color: #fff; border-color: var(--ink); }
.chip-offer { color: var(--coral); border-color: #f2c4a8; }
.chip-offer.is-active { background: var(--coral); border-color: var(--coral); color: #fff; }
.filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; min-width: 0; padding: 8px 12px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.filters > .icon { width: 19px; height: 19px; color: var(--muted); }
.filter-label { font-size: 14px; font-weight: 700; color: var(--muted); margin-inline-end: 2px; }
.filter-chip { position: relative; display: inline-flex; align-items: center; min-height: 36px; padding: 0 12px; border-radius: 8px; border: 1px solid var(--line-2); background: #fff; font-size: 14.5px; font-weight: 500; color: var(--ink-2); }
.filter-chip:hover { border-color: var(--ink); color: var(--ink); }
.filter-chip.is-active { background: var(--blue); border-color: var(--blue); color: #fff; }
.filter-clear { font-size: 14px; font-weight: 700; color: var(--blue); text-decoration: underline; text-underline-offset: 3px; }
.list-empty { margin: 0 0 20px; }
.woocommerce .woocommerce-result-count { margin: 0 0 14px; font-size: 14px; color: var(--muted); float: none; }
.woocommerce .woocommerce-ordering { float: none; margin: 0 0 16px; }
.woocommerce .woocommerce-ordering select {
	appearance: none; -webkit-appearance: none; min-height: 44px; padding: 0 16px; padding-inline-end: 40px; border: 1px solid var(--line-2); border-radius: 10px;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23334862' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat left 14px center / 18px; font-size: 15px; cursor: pointer; width: 100%;
}
[dir="ltr"] .woocommerce .woocommerce-ordering select { background-position: right 14px center; }
.woocommerce nav.woocommerce-pagination { margin-top: 32px; }
.woocommerce nav.woocommerce-pagination ul { border: 0; display: inline-flex; flex-wrap: wrap; gap: 6px; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { min-width: 44px; height: 44px; display: grid; place-items: center; border-radius: 10px; border: 1px solid var(--line-2); background: #fff; padding: 0 10px; }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--ink); color: #fff; border-color: var(--ink); }
.woocommerce-info, .woocommerce-message, .woocommerce-error, .woocommerce-noreviews, p.no-comments { border: 1px solid var(--line) !important; border-radius: 12px; background: #fff !important; color: var(--ink) !important; padding: 14px 18px !important; margin: 0 0 18px !important; list-style: none; }
.woocommerce-message { border-color: #bfd0f6 !important; background: var(--blue-soft) !important; }
.woocommerce-error { border-color: #f3c2bd !important; background: #fff5f4 !important; }
.woocommerce-info::before, .woocommerce-message::before, .woocommerce-error::before { display: none; }
.woocommerce-message .button, .woocommerce-info .button { float: none !important; min-height: 40px; margin-inline-start: 12px; }

/* ---------- The package page ---------- */
.woocommerce div.product { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; margin-top: 4px; }
.woocommerce div.product div.images, .woocommerce div.product div.summary { width: auto !important; float: none !important; margin: 0 !important; min-width: 0; }
.woocommerce div.product div.images { position: relative; margin-inline: calc(var(--gutter) * -1) !important; }
.woocommerce div.product div.images img { background: var(--panel); }
.woocommerce div.product div.images .flex-control-thumbs { display: flex; gap: 8px; margin-top: 8px; padding-inline: var(--gutter); }
.woocommerce div.product div.images .flex-control-thumbs li { width: 84px !important; }
.woocommerce div.product div.images .flex-control-thumbs img { border-radius: 8px; opacity: .6; aspect-ratio: 3 / 2; object-fit: cover; }
.woocommerce div.product div.images .flex-control-thumbs img.flex-active { opacity: 1; outline: 2px solid var(--blue); outline-offset: -2px; }
.woocommerce div.product div.images .woocommerce-product-gallery__trigger { top: 12px; background: rgba(255, 255, 255, .95); border-radius: 10px; }
[dir="rtl"] .woocommerce div.product div.images .woocommerce-product-gallery__trigger { left: 12px; right: auto; }
.woocommerce div.product span.onsale { position: absolute; top: 12px; z-index: 3; margin: 0; min-width: 0; min-height: 0; padding: 3px 10px; line-height: 1.6; border-radius: 8px; background: var(--coral); color: #fff; font-size: 13px; font-weight: 700; }
[dir="rtl"] .woocommerce div.product span.onsale { right: 12px; left: auto; }
[dir="ltr"] .woocommerce div.product span.onsale { left: 12px; right: auto; }
.summary-kicker { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 4px; font-size: 14.5px; font-weight: 700; color: var(--blue); }
.summary-kicker:hover { text-decoration: underline; text-underline-offset: 4px; }
.woocommerce div.product .product_title { font-size: clamp(25px, 6.4vw, 36px); margin-bottom: 10px; }
.trip-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin: 0 0 14px; }
.trip-meta-item { display: inline-flex; align-items: center; gap: 6px; font-size: 15px; font-weight: 500; color: var(--ink-2); min-width: 0; }
.trip-meta-item .icon { width: 18px; height: 18px; color: var(--blue); }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--ink); font-family: var(--font-head); font-size: 28px; font-weight: 700; display: flex; align-items: baseline; gap: 4px 10px; flex-wrap: wrap; margin-bottom: 4px; font-variant-numeric: tabular-nums; }
.woocommerce div.product p.price del, .woocommerce div.product span.price del { color: var(--muted); font-size: 17px; font-weight: 500; opacity: 1; }
.woocommerce div.product p.price ins, .woocommerce div.product span.price ins { color: var(--coral); text-decoration: none; }
.price-note { margin: 0 0 14px; font-size: 14.5px; color: var(--muted); }
.woocommerce-product-details__short-description { color: var(--ink-2); font-size: 16.5px; }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; margin: 18px 0; padding: 16px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow); }
.woocommerce div.product form.cart::before, .woocommerce div.product form.cart::after { display: none; }
.woocommerce div.product form.cart.variations_form { display: block; position: relative; }
.woocommerce div.product form.cart .variations { width: 100%; margin-bottom: 8px; border: 0; }
.woocommerce div.product form.cart .variations tr { display: block; }
.woocommerce div.product form.cart .variations th, .woocommerce div.product form.cart .variations td { display: block; padding: 0; text-align: start; line-height: 1.5; }
.woocommerce div.product form.cart .variations label { font-weight: 700; font-size: 15.5px; }
.woocommerce div.product form.cart .variations td.value { position: relative; margin: 8px 0 4px; }
.woocommerce div.product form.cart .variations select { min-height: 44px; border: 1px solid var(--line-2); border-radius: 10px; padding: 0 14px; width: 100%; background: #fff; }
.woocommerce div.product form.cart .variations select.is-replaced { position: absolute !important; top: 0; inset-inline-start: 0; width: 1px !important; height: 1px !important; opacity: 0; pointer-events: none; }
.option-buttons { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.option-btn { display: grid; justify-items: center; align-content: center; gap: 0; min-width: 0; min-height: 60px; padding: 6px 8px; border-radius: 10px; border: 1px solid var(--line-2); background: #fff; font-family: var(--font-head); font-weight: 500; font-size: 15px; line-height: 1.4; cursor: pointer; transition: .15s; }
.option-btn small { font-family: var(--font); font-size: 14px; font-weight: 500; color: var(--muted); font-variant-numeric: tabular-nums; }
.option-btn:hover { border-color: var(--ink); }
.option-btn[aria-pressed="true"] { background: var(--blue-soft); border-color: var(--blue); box-shadow: inset 0 0 0 1px var(--blue); color: var(--ink); }
.option-btn[aria-pressed="true"] small { color: var(--blue-2); }
.option-btn:disabled { opacity: .4; text-decoration: line-through; cursor: not-allowed; }
form.cart.needs-option .option-buttons { animation: wijha-shake .4s; }
form.cart.needs-option .variations label { color: var(--coral); }
@keyframes wijha-shake { 25% { transform: translateX(-6px); } 50% { transform: translateX(6px); } 75% { transform: translateX(-3px); } }
.woocommerce div.product form.cart .reset_variations { font-size: 14px; color: var(--muted); display: inline-block; margin-top: 8px; }
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.woocommerce div.product .woocommerce-variation-price { margin-bottom: 10px; }
.woocommerce div.product .woocommerce-variation-price .price { font-size: 22px; }
.woocommerce div.product form.cart .quantity { order: 1; display: inline-flex; align-items: center; margin: 0 !important; }
.woocommerce .quantity.hidden { display: none !important; }
.quantity.has-steps { border: 1px solid var(--line-2); border-radius: 10px; overflow: hidden; background: #fff; }
.quantity.has-steps .qty { border: 0 !important; border-radius: 0 !important; width: 52px !important; }
.qty-step { display: grid; place-items: center; width: 44px; min-height: 52px; border: 0; background: var(--panel); color: var(--ink); font-size: 22px; font-weight: 500; line-height: 1; cursor: pointer; }
.qty-step:hover { background: var(--blue-soft); color: var(--blue); }
.qty-label { order: 2; flex: 1 1 160px; align-self: center; display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; min-width: 0; line-height: 1.5; }
.qty-label strong { font-family: var(--font-head); font-size: 15.5px; font-weight: 600; }
.qty-help { font-size: 14px; color: var(--muted); }
.trip-total { flex: 0 0 100%; order: 3; display: flex; flex-wrap: wrap; gap: 4px 8px; margin: 0; padding: 10px 12px; background: var(--blue-soft); border-radius: 10px; font-size: 15.5px; font-weight: 500; color: var(--ink); font-variant-numeric: tabular-nums; }
.trip-total output { font-family: var(--font-head); font-weight: 700; }
.woocommerce .quantity .qty { width: 92px; min-height: 52px; border: 1px solid var(--line-2); border-radius: 10px; text-align: center; background: #fff; font-weight: 700; font-size: 17px; -moz-appearance: textfield; }
.quantity.has-steps .qty::-webkit-inner-spin-button, .quantity.has-steps .qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.woocommerce div.product form.cart .button { flex: 1 1 180px; min-height: 52px; font-size: 16.5px; }
.woocommerce div.product form.cart .single_add_to_cart_button { order: 4; }

/* The extras under the booking form and on the cart page. */
.extras { margin: 0 0 18px; padding: 16px; border-radius: var(--radius); background: var(--panel); }
.extras-cart { margin-top: 28px; }
.extras-title { font-size: 18px; margin: 0 0 2px; }
.extras-note { margin: 0 0 12px; font-size: 14.5px; color: var(--muted); }
.extras-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
.extra { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 8px 12px; padding: 10px 12px; background: #fff; border: 1px solid var(--line); border-radius: 12px; min-width: 0; }
.extra-icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 10px; background: var(--blue-soft); color: var(--blue); }
.extra-icon .icon { width: 22px; height: 22px; }
.extra-text { display: grid; grid-template-columns: minmax(0, 1fr); min-width: 0; line-height: 1.5; }
.extra-name { font-family: var(--font-head); font-weight: 600; font-size: 15px; color: var(--ink); }
.extra-name:hover { text-decoration: underline; text-underline-offset: 3px; }
.extra-price { font-size: 14.5px; font-weight: 700; color: var(--ink-2); font-variant-numeric: tabular-nums; }
.extra-price .price-unit { font-size: 13.5px; }
.extra-form { grid-column: 1 / -1; display: flex; align-items: center; justify-content: flex-end; gap: 8px; margin: 0; }
.extra-count, .extra-once { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 500; color: var(--muted); }
.extra-qty { width: 64px; min-height: 44px; padding: 0 6px; border: 1px solid var(--line-2); border-radius: 10px; background: #fff; text-align: center; font-weight: 700; font-size: 16px; }
.extra-add .icon { width: 17px; height: 17px; }
.extra-add.loading { opacity: .6; pointer-events: none; }
.extra-add.added { background: var(--ink); color: #fff; border-color: var(--ink); }
.extra-add.loading::after, .extra-add.added::after { display: none !important; }
.extra-form .added_to_cart { display: none !important; }
.extra-done { grid-column: 1 / -1; justify-self: end; display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: 14px; color: var(--ok); }
.extra-done .icon { width: 18px; height: 18px; }

.promise { list-style: none; padding: 14px 16px; margin: 0 0 18px; display: grid; gap: 11px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.promise li { display: flex; gap: 10px; align-items: flex-start; font-size: 15.5px; line-height: 1.6; }
.promise li span { min-width: 0; }
.promise a { font-weight: 700; color: var(--blue); text-decoration: underline; text-underline-offset: 4px; }
.promise .icon { color: var(--blue); width: 21px; height: 21px; margin-top: 2px; }
.woocommerce div.product .woocommerce-tabs { grid-column: 1 / -1; margin-top: 8px; min-width: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; gap: 22px; padding: 0; margin: 0 0 16px; border-bottom: 1px solid var(--line); overflow-x: auto; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { position: relative; flex: none; border: 0; background: none; border-radius: 0; margin: 0; padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 10px 0; font-family: var(--font-head); font-weight: 500; font-size: 15.5px; color: var(--muted); white-space: nowrap; border-bottom: 2px solid transparent; display: block; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--ink); border-bottom-color: var(--blue); }
.woocommerce div.product .woocommerce-tabs .panel { padding: 0; margin: 0; background: none; border: 0; max-width: 860px; }
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child { display: none; }
.woocommerce div.product .woocommerce-tabs .panel ul:not(.tick-list), .woocommerce div.product .woocommerce-tabs .panel ol { padding-inline-start: 1.3em; }
.woocommerce div.product .woocommerce-tabs .panel h3 { font-size: 17px; margin-top: 1.2em; }

/* The day-by-day programme and the include / exclude lists. */
.days { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
.day { border: 1px solid var(--line); border-radius: 12px; background: #fff; min-width: 0; }
.day[open] { border-color: var(--line-2); background: var(--panel); }
.day summary { list-style: none; display: flex; align-items: center; gap: 12px; min-height: 54px; padding: 10px 16px; cursor: pointer; }
.day summary::-webkit-details-marker { display: none; }
.day summary::after { content: "+"; margin-inline-start: auto; display: grid; place-items: center; flex: none; width: 26px; height: 26px; border-radius: 50%; background: var(--blue-soft); color: var(--blue); font-size: 18px; font-weight: 700; line-height: 1; }
.day[open] summary::after { content: "–"; }
.day-num { flex: none; padding: 2px 10px; border-radius: 8px; background: var(--blue); color: #fff; font-size: 13.5px; font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; }
.day-title { min-width: 0; font-family: var(--font-head); font-weight: 500; font-size: 15.5px; line-height: 1.5; }
.day p { margin: 0; padding: 0 16px 14px; color: var(--ink-2); }
.best-months { display: flex; gap: 8px; align-items: flex-start; margin: 16px 0 0; padding: 12px 14px; border-radius: 12px; background: var(--coral-soft); color: var(--ink); }
.best-months .icon { width: 20px; height: 20px; color: var(--coral); margin-top: 3px; }
.best-months span { min-width: 0; }
.lists { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.list-col { min-width: 0; padding: 16px; border-radius: 12px; background: var(--panel); }
.woocommerce div.product .woocommerce-tabs .panel .list-col h3, .list-col h3 { font-size: 17px; margin: 0 0 10px; }
.tick-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.tick-list li { display: flex; gap: 8px; align-items: flex-start; line-height: 1.6; }
.tick-list li span { min-width: 0; }
.tick-list .icon { width: 19px; height: 19px; margin-top: 3px; }
.is-in .icon { color: var(--ok); }
.is-out .icon { color: var(--muted); }
.woocommerce div.product .related, .woocommerce div.product .upsells { grid-column: 1 / -1; margin-top: 20px; min-width: 0; }
.woocommerce div.product .related > h2, .woocommerce div.product .upsells > h2 { font-size: 23px; margin-bottom: 16px; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select { border: 1px solid var(--line-2); border-radius: 10px; background: #fff; padding: 12px 14px; min-height: 48px; font-size: 16px; }
.woocommerce form .form-row label { font-weight: 700; }

/* Phone buy bar */
.buybar { position: fixed; inset-inline: 0; bottom: 0; z-index: 46; display: flex; align-items: center; gap: 12px; padding: 10px var(--gutter) calc(10px + env(safe-area-inset-bottom)); background: rgba(255, 255, 255, .97); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-top: 1px solid var(--line); box-shadow: 0 -8px 24px rgba(11, 37, 69, .08); }
.buybar-info { flex: 1; min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr); line-height: 1.4; }
.buybar-name { font-size: 14px; color: var(--ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.buybar-price { font-family: var(--font-head); font-weight: 700; font-size: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.buybar-price del { color: var(--muted); font-weight: 500; font-size: 12px; }
.buybar-price ins { text-decoration: none; color: var(--coral); }
.buybar .btn { flex: 0 0 auto; min-height: 46px; padding: 0 20px; }
body.single-product .tabbar { display: none; }
body.single-product { padding-bottom: 80px; }

/* Toast */
.toast { position: fixed; z-index: 70; inset-inline: 16px; bottom: calc(var(--tabbar-h) + 14px + env(safe-area-inset-bottom)); margin-inline: auto; max-width: 460px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 18px; border-radius: 12px; background: var(--ink); color: #fff; font-weight: 700; box-shadow: var(--shadow); opacity: 0; transform: translateY(10px); transition: opacity .25s, transform .25s; }
.toast span { min-width: 0; }
.toast.is-on { opacity: 1; transform: none; }
.toast a, .toast a:hover { color: #fff; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
body.single-product .toast { bottom: calc(86px + env(safe-area-inset-bottom)); }

/* ---------- Pages, cart, checkout, account ---------- */
.page-wrap { padding-block: 20px 56px; }
.page-wrap.narrow { max-width: 820px; }
.page-head h1 { font-size: clamp(27px, 7vw, 40px); margin-top: 4px; }
.page-lead { color: var(--ink-2); max-width: 700px; font-size: 17.5px; }
.entry { font-size: 17px; min-width: 0; }
.entry > :first-child { margin-top: 0; }
.entry h2 { font-size: 22px; margin-top: 1.4em; }
.entry h3 { font-size: 18.5px; margin-top: 1.2em; }
.entry ul, .entry ol { padding-inline-start: 1.3em; }
.entry li { margin-bottom: .35em; }
.narrow-entry { max-width: 820px; margin-top: 28px; }
.page-cta { margin: 24px 0 0; }
:where(.page-wrap:not(.is-store-page)) .entry a:where(:not(.button):not(.btn):not(.wc-block-components-button)) { color: var(--blue); font-weight: 600; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.is-store-page .entry a:where(:not(.button):not(.btn):not([class*="wc-block"])) { text-decoration: underline; text-underline-offset: 3px; }
.woocommerce-MyAccount-content a:where(:not(.button)) { color: var(--blue); }
.entry ul.products { padding: 0; }
.entry ul.products li { margin-bottom: 0; }
.entry ul.products a { color: var(--ink); text-decoration: none; }
.entry figure { margin: 0 0 1.4em; max-width: 100%; overflow-x: auto; }
.entry table { width: 100%; border-collapse: collapse; background: #fff; border-radius: 12px; overflow: hidden; }
.entry th, .entry td { padding: 12px; border-bottom: 1px solid var(--line); text-align: start; vertical-align: top; overflow-wrap: anywhere; }
.entry th { background: var(--panel); font-weight: 700; }
.credits-table { font-size: 14.5px; }
.credits-table small { display: block; margin-top: 4px; color: var(--muted); font-size: 13px; }
.store-note { display: flex; gap: 10px; align-items: flex-start; padding: 14px 16px; margin: 0 0 20px; border: 1px solid #bfd0f6; border-radius: 12px; background: var(--blue-soft); font-size: 15.5px; color: var(--ink); line-height: 1.7; }
.store-note span { min-width: 0; }
.store-note .icon { color: var(--blue); width: 22px; height: 22px; margin-top: 2px; }
.wc-block-components-button:not(.is-link), .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button { background: var(--blue) !important; color: #fff !important; border-radius: 10px !important; min-height: 52px; font-family: var(--font-head); font-weight: 600; }
.wc-block-components-button:not(.is-link):hover { background: var(--blue-2) !important; color: #fff !important; }
.wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input, .wc-block-components-textarea, .wc-blocks-components-select .wc-blocks-components-select__select { border-radius: 10px !important; border-color: var(--line-2) !important; }
.wc-block-components-product-name { font-weight: 700; color: var(--ink) !important; }
.wc-block-components-product-details { font-size: 14px; }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked { background: var(--blue) !important; border-color: var(--blue) !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: #fff !important; }
.wc-block-components-checkbox label { line-height: 1.6; }
.woocommerce table.shop_table { border: 1px solid var(--line); border-radius: 12px; background: #fff; border-collapse: separate; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { border-top-color: var(--line); padding: 12px; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0 0 20px; display: flex; gap: 6px; overflow-x: auto; }
.woocommerce-account .woocommerce-MyAccount-navigation li { position: relative; flex: none; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: flex; align-items: center; min-height: 40px; padding: 0 16px; border: 1px solid var(--line-2); border-radius: 8px; background: #fff; white-space: nowrap; font-size: 15px; text-decoration: none; color: inherit; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--ink); color: #fff; border-color: var(--ink); }
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; min-width: 0; }
.woocommerce-account .woocommerce::before, .woocommerce-account .woocommerce::after { display: none; }
.woocommerce form.login, .woocommerce form.register { border: 1px solid var(--line) !important; border-radius: 12px !important; background: #fff; padding: 22px !important; margin: 0 0 18px !important; }
.order-next { margin: 0 0 24px; padding: 18px; border: 1px solid #bfd0f6; border-radius: 14px; background: var(--blue-soft); color: var(--ink); }
.order-next h2 { font-size: 20px; margin-bottom: 10px; }
.order-next h3 { font-size: 16.5px; margin: 16px 0 8px; }
.order-dates { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; margin: 0; }
.order-dates > div { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2px; padding: 12px 14px; border-radius: 10px; background: #fff; min-width: 0; }
.order-dates dt { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; color: var(--muted); }
.order-dates dt .icon { width: 19px; height: 19px; color: var(--blue); }
.order-dates dd { margin: 0; font-family: var(--font-head); font-size: 16.5px; font-weight: 600; overflow-wrap: anywhere; }
.order-dates dd small { display: block; font-family: var(--font); font-size: 14px; font-weight: 500; color: var(--muted); }
.next-list { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 8px; }
.next-list li { display: flex; gap: 10px; align-items: flex-start; }
.next-list li span { min-width: 0; }
.next-list .icon { color: var(--blue); width: 21px; height: 21px; margin-top: 3px; }
.empty-state { text-align: center; display: grid; grid-template-columns: minmax(0, 1fr); justify-items: center; gap: 10px; min-width: 0; }
.empty-state > * { min-width: 0; max-width: 100%; }
.empty-state h1 { font-size: clamp(24px, 6.4vw, 36px); }
.empty-mark { width: 88px; height: 88px; }
.empty-state .big { font-family: var(--font-head); font-size: 64px; font-weight: 700; color: var(--blue); line-height: 1; font-variant-numeric: tabular-nums; }
.empty-state .search-form { width: 100%; }
.empty-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.post-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; }
.post-card img, .post-cover img { border-radius: 12px; margin-bottom: 10px; }
.faq-page { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; max-width: 900px; }
.service-page .steps { margin-top: 4px; }

/* Search form */
.search-form { display: flex; align-items: center; gap: 8px; background: #fff; border: 1px solid var(--line-2); border-radius: 12px; padding: 5px; padding-inline-start: 14px; max-width: 640px; margin-inline: auto; min-width: 0; }
.search-form:focus-within { border-color: var(--blue); box-shadow: 0 0 0 2px var(--blue); }
.search-form .icon { color: var(--muted); width: 20px; height: 20px; }
.search-form input[type="search"] { flex: 1; min-width: 0; border: 0; background: transparent; padding: 8px 4px; outline: none; font-size: 16px; text-overflow: ellipsis; }
.search-form .btn { flex: none; min-height: 42px; padding: 0 18px; }

/* Contact page */
.contact-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; align-items: start; }
.contact-card { padding: 18px; border-radius: 18px; background: var(--navy); color: var(--on-dark); min-width: 0; }
.map-card { position: relative; margin: 0 0 18px; border-radius: 12px; overflow: hidden; background: #eef3f8; }
.map-art { display: block; width: 100%; height: auto; }
.contact-card .map-link { position: absolute; bottom: 10px; inset-inline-end: 10px; color: var(--ink); text-decoration: none; box-shadow: 0 4px 14px rgba(11, 37, 69, .2); }
.contact-card .map-link:hover { color: var(--ink); }
.contact-card .map-link .icon { width: 17px; height: 17px; margin: 0; color: var(--blue); }
.contact-card ul { list-style: none; margin: 0 0 18px; padding: 0; display: grid; gap: 14px; }
.contact-card li { display: flex; gap: 12px; align-items: flex-start; }
.contact-card li > span { display: grid; min-width: 0; overflow-wrap: anywhere; }
.contact-card strong { font-weight: 700; font-size: 14px; color: var(--on-dark-2); }
.contact-card .icon { color: var(--sky); width: 22px; height: 22px; margin-top: 2px; }
.contact-card a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.contact-card .btn-blue, .contact-card .btn-blue:hover { color: #fff; text-decoration: none; }
.contact-card .btn-blue .icon { color: #fff; margin: 0; }
.contact-card .contact-hint { margin: 14px 0 0; font-size: 14.5px; color: var(--on-dark-2); }
.contact-form { padding: 20px; border: 1px solid var(--line); border-radius: 18px; background: #fff; }
.swst-contact { display: block !important; margin: 0 !important; color: var(--ink); }
.swst-contact .swst-contact-form { padding: 0 !important; border: 0 !important; background: none !important; }
.swst-contact .swst-contact-details { display: none !important; }
.swst-contact h2 { margin-top: 0 !important; font-size: 22px !important; font-family: var(--font-head) !important; }
.swst-contact .swst-intro { color: var(--muted) !important; }
.swst-contact input:not([type=hidden]), .swst-contact textarea { background: #fff !important; border-color: var(--line-2) !important; }
.swst-contact .swst-submit { font-family: var(--font-head) !important; background: var(--blue) !important; color: #fff !important; }
.swst-contact .swst-trap { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; clip-path: inset(50%) !important; white-space: nowrap !important; }

/* ---------- Footer ---------- */
.site-footer { background: var(--navy); color: var(--on-dark); padding-top: 40px; font-size: 15.5px; }
.site-footer a { color: var(--on-dark-2); }
.site-footer a:hover { color: #fff; }
.site-footer .brand { color: #fff; justify-self: start; }
.site-footer .brand-sub { color: var(--on-dark-2); }
.site-footer .brand-mark .mark-pin { stroke: #ffffff; }
.site-footer .brand-mark .mark-in { stroke: var(--sky); }
.site-footer .btn-blue, .site-footer .btn-blue:hover { color: #fff; margin-bottom: 16px; }
.footer-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 18px; padding-bottom: 20px; }
.footer-brand, .footer-contact { grid-column: 1 / -1; }
.footer-brand { padding-bottom: 20px; min-width: 0; }
.footer-brand p { margin: 12px 0 16px; color: var(--on-dark-2); max-width: 420px; }
.footer-col { border-top: 1px solid rgba(255, 255, 255, .12); min-width: 0; }
.footer-col summary { list-style: none; display: flex; align-items: center; justify-content: space-between; min-height: 52px; padding: 4px 0; cursor: pointer; font-family: var(--font-head); font-weight: 600; font-size: 15.5px; color: #fff; }
.footer-col summary::-webkit-details-marker { display: none; }
.footer-col summary::after { content: "+"; font-size: 22px; font-weight: 400; color: var(--sky); }
.footer-col[open] summary::after { content: "–"; }
.footer-col ul { list-style: none; margin: 0; padding: 0 0 16px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
.footer-col li { color: var(--on-dark-2); min-width: 0; }
.footer-contact li { display: flex; gap: 10px; align-items: flex-start; overflow-wrap: anywhere; }
.footer-contact li > span, .footer-contact li > a { min-width: 0; }
.footer-contact .icon { width: 18px; height: 18px; margin-top: 4px; color: var(--sky); }
.socials { display: flex; gap: 8px; }
.socials a { position: relative; width: 44px; height: 44px; border-radius: 10px; display: grid; place-items: center; background: rgba(255, 255, 255, .08); }
.socials a:hover { background: var(--navy-2); color: #fff; }
.socials .icon { width: 19px; height: 19px; }
.footer-bottom { display: flex; flex-wrap: wrap; gap: 8px 20px; justify-content: space-between; align-items: center; border-top: 1px solid rgba(255, 255, 255, .12); padding-block: 16px; font-size: 14px; color: var(--on-dark-2); }
.footer-legal { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; }
.site-footer .footer-legal a { color: var(--on-dark); }
.pay-badge { display: inline-flex; align-items: center; gap: 6px; }
.pay-badge .icon { width: 18px; height: 18px; color: var(--sky); }

/* ---------- Phone tab bar ---------- */
.tabbar { position: fixed; inset-inline: 0; bottom: 0; z-index: 45; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); background: rgba(255, 255, 255, .97); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-top: 1px solid var(--line); padding-bottom: env(safe-area-inset-bottom); }
.tabbar a { position: relative; display: grid; justify-items: center; gap: 2px; padding: 8px 0 6px; font-size: 12.5px; font-weight: 700; color: var(--muted); min-width: 0; }
.tabbar a > span:last-child { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tabbar .icon { width: 22px; height: 22px; }
.tabbar [aria-current="page"] { color: var(--blue); }
.tabbar [aria-current="page"]::before { content: ""; position: absolute; top: 0; width: 28px; height: 3px; border-radius: 0 0 3px 3px; background: var(--blue); }
.tab-icon { position: relative; display: inline-grid; }
.tabbar .wijha-cart-count { top: -6px; inset-inline-end: -10px; }

/* ---------- Phones ---------- */
@media (max-width: 599px) {
	.demo-bar { font-size: 12.5px; }
	.demo-bar-inner { flex-wrap: wrap; }
	.hero { padding-top: 10px; }
	.hero-card { border-radius: 16px; }
	.woocommerce .card-badges .onsale, .badge-popular { font-size: 12.5px; padding: 2px 8px; }
	.section-head { flex-wrap: wrap; align-items: flex-start; }
}

@media (max-width: 380px) {
	.brand-name { font-size: 20px; }
	.brand-mark { width: 32px; height: 32px; }
	.brand { gap: 7px; }
	.brand-sub { font-size: 11px; }
	html[lang^="en"] .brand-name { font-size: 16px; letter-spacing: .08em; }
	.hero-body { padding-inline: 14px; padding-bottom: 18px; }
	.woocommerce ul.products li.product .price { font-size: 18px; padding-inline-end: 100px; }
	.woocommerce ul.products li.product .card-btn { min-width: 74px; padding-inline: 12px; }
	.option-btn { padding-inline: 4px; font-size: 14px; }
	.extra-form { flex-wrap: wrap; }
	.inc-full { grid-template-columns: minmax(0, 1fr); }
	.qty-step { width: 40px; }
}

@media (max-width: 1023px) {
	.header-actions .icon-btn { width: 42px; }
	.header-actions .lang-btn { min-width: 38px; padding: 0 8px; margin-inline-end: 0; }
}

/* ---------- Larger screens ---------- */
@media (min-width: 560px) {
	.woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
	.dest-row { grid-auto-columns: 40%; }
	.trust-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.finder-row { grid-template-columns: minmax(0, 1fr) auto; }
	.finder .btn { width: auto; }
	.extras-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.order-dates { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.lists { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 600px) {
	:root { --gutter: 24px; }
	.woocommerce .woocommerce-ordering select { width: auto; }
	.shop-wrap .woocommerce-result-count { float: right !important; }
	[dir="rtl"] .shop-wrap .woocommerce-ordering { float: left !important; }
	[dir="ltr"] .shop-wrap .woocommerce-result-count { float: left !important; }
	[dir="ltr"] .shop-wrap .woocommerce-ordering { float: right !important; }
	.shop-wrap ul.products { clear: both; }
	.steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.woocommerce div.product div.images { margin-inline: 0 !important; }
	.woocommerce div.product div.images img { border-radius: 16px; }
	.woocommerce div.product div.images .flex-control-thumbs { padding-inline: 0; }
	.hero-body { padding-inline: 32px; padding-bottom: 32px; }
}

@media (min-width: 760px) {
	.shop-head { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); padding: 24px; gap: 28px; }
	.contact-grid { grid-template-columns: minmax(0, .85fr) minmax(0, 1.3fr); gap: 28px; }
	.contact-card, .contact-form { padding: 26px; }
	.dest-row { grid-auto-flow: row; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: visible; }
	.offer { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.offer-media { order: 0; }
	.offer-media img { aspect-ratio: auto; min-height: 340px; }
	.offer-text { padding: 40px; }
	.footer-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr); }
	.footer-brand { grid-column: 1 / -1; }
	.footer-contact { grid-column: auto; }
}

@media (min-width: 960px) {
	.section { padding-block: 72px; }
	.section + .section { padding-top: 16px; }
	.section.offer-sec { padding-top: 56px; }
	.section-head { margin-bottom: 24px; }
	.hero { padding-block: 20px 8px; }
	/* Desktop: one full photo, the text on the start side over a strong navy fade. */
	.hero-card { align-items: center; min-height: 600px; }
	.hero-img { inset: 0; height: 100%; }
	.hero-card::after { inset: 0; height: auto; }
	[dir="rtl"] .hero-card::after { background: linear-gradient(to left, rgba(11, 37, 69, .94) 0%, rgba(11, 37, 69, .86) 55%, rgba(11, 37, 69, .12) 86%); }
	[dir="ltr"] .hero-card::after { background: linear-gradient(to right, rgba(11, 37, 69, .94) 0%, rgba(11, 37, 69, .86) 55%, rgba(11, 37, 69, .12) 86%); }
	.hero-body { max-width: 620px; padding: 56px; }
	.hero-lead { font-size: 18px; }
	.dest-row { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
	.trust { padding-block: 34px; }
	.trust-list { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
	.faq-grid { grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: 48px; align-items: start; }
	.woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
	.woocommerce div.product { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 48px; align-items: start; margin-top: 12px; }
	/* The summary is not sticky: with the booking form, options and extras it is taller than a laptop screen, and a sticky one slid under the related cards. */
	.list-bar { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
	.list-bar .chips { padding-bottom: 4px; }
	.footer-grid { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr) minmax(0, .8fr) minmax(0, 1.4fr); gap: 40px; padding-bottom: 40px; }
	.footer-brand { grid-column: auto; }
	.footer-col { border: 0; }
	.footer-col summary { pointer-events: none; min-height: 0; padding: 0 0 12px; }
	.footer-col summary::after { display: none; }
	.woocommerce-account .woocommerce { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 32px; }
	.woocommerce-account .woocommerce-MyAccount-navigation ul { display: grid; }
	.woocommerce-account .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
	.order-dates { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 960px) and (hover: hover) {
	.woocommerce ul.products li.product:hover .card-media.has-alt .card-alt { opacity: 1; }
}

/* The header becomes the desktop one when the menu fits. */
@media (min-width: 1024px) {
	:root { --header-h: 76px; }
	body, body.single-product { padding-bottom: 0; }
	.only-mobile { display: none !important; }
	.main-nav.only-desktop { display: flex !important; }
	.icon-btn.only-desktop { display: inline-grid !important; }
	.admin-bar .site-header { top: 32px; }
	.header-row { grid-template-columns: auto minmax(0, 1fr) auto; gap: 20px; }
	.brand { justify-self: start; }
	.main-nav { justify-self: center; }
	.toast, body.single-product .toast { bottom: 24px; }
	.notes-list { justify-content: center; }
}

@media (min-width: 1200px) {
	.site-header .header-phone.only-desktop { display: inline-flex !important; }
}

@media (min-width: 1024px) and (max-width: 1199px) {
	.main-nav .nav-list a { padding-inline: 10px; font-size: 14.5px; }
	.main-nav .menu-item-has-children > a { padding-inline-end: 24px; }
	.main-nav .menu-item-has-children > a::before { inset-inline-end: 9px; }
	.main-nav .nav-list > li > a::after { inset-inline: 10px; }
}

/* Touch screens: every control is at least 44px (scoped rules: nothing here shows what another rule hides). */
@media (pointer: coarse) {
	.lang-btn { height: 44px; min-width: 44px; }
	.chip, .filter-chip, .link-more, .woocommerce-account .woocommerce-MyAccount-navigation li a { min-height: 44px; }
	.demo-bar-close { width: 44px; height: 44px; }
	.footer-col li a, .footer-legal a, .demo-bar a, .breadcrumb a, .filter-clear, .extra-name, .promise a, .summary-kicker { display: inline-flex; align-items: center; min-height: 44px; }
	.footer-col ul { gap: 0; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
	.dest-card:hover .dest-img img { transform: none; }
}

/* English pages: the headline fits. */
html[lang^="en"] .hero-title { font-size: clamp(28px, 7vw, 50px); }
