/*
Theme Name: Ehsan Travel & Tours
Theme URI: https://ehsantravel.com
Author: Ehsan Travel & Tours
Description: Custom theme for Ehsan Travel & Tours, the social enterprise of Global Ehsan Relief. Umrah, Umrah for Orphans, humanitarian and heritage journeys from Malaysia and Singapore, with MY/SG pricing, a Plan My Trip enquiry form and Customizer-editable prices. On activation it creates all pages, menus and the static front page.
Version: 1.0.0
Requires at least: 6.3
Tested up to: 6.8
Requires PHP: 7.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ehsan-travel
Tags: custom-logo, custom-menu, one-column, translation-ready
*/

/* Brand: Deep Royal Blue #2D3B90 and Warm Metallic Gold #EEA63C (Ehsan logo guidelines). */
:root {
	--blue: #2D3B90;
	--blue-deep: #1E2766;
	--blue-ink: #2D3B90;
	--gold: #EEA63C;
	--gold-ink: #8F5A08;
	--gold-soft: #FCEFD9;
	--bg: #F5F6FB;
	--surface: #FFFFFF;
	--ink: #161B3D;
	--muted: #535A7A;
	--line: #DCDFEC;
	--soft: #ECEEF8;
	--band-ink: #F2F3FA;
	--band-muted: #C3C8E6;
	--paper: #FBF8F1;
	--paper-ink: #2A2A26;
	--f-display: "Marcellus", "Cormorant Garamond", Georgia, serif;
	--f-body: "Figtree", "Segoe UI", system-ui, sans-serif;
	--f-mono: "IBM Plex Mono", ui-monospace, Menlo, monospace;
	--f-arabic: "Amiri", "Traditional Arabic", serif;
	--r: 12px;
	--wrap: 1180px;
	--hdr: 76px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--hdr) + 16px); }
body { margin: 0; background: var(--bg); color: var(--ink); font-family: var(--f-body); font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--blue-ink); }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
h1, h2, h3, h4 { font-family: var(--f-display); font-weight: 400; line-height: 1.15; text-wrap: balance; margin: 0; }
h1 { font-size: clamp(2.1rem, 5vw, 3.6rem); }
h2 { font-size: clamp(1.7rem, 3.4vw, 2.5rem); }
h3 { font-size: 1.35rem; }
.h-md { font-size: 1.9rem; }
.h-sm { font-size: 1.7rem; }
p { margin: 0; }
dl, dd { margin: 0; }

.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.skip { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--blue); color: #fff; padding: 10px 16px; border-radius: 8px; }
.skip:focus { top: 12px; }
.hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; opacity: 0; }

.wrap { max-width: var(--wrap); margin: 0 auto; padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); }
.wrap.narrow { max-width: 860px; }
.eyebrow { font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; color: var(--gold-ink); }
.lead { font-size: 1.15rem; color: var(--muted); max-width: 62ch; }
.stack { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.gap-lg { gap: 28px; }
.gap20 { gap: 20px; }
.gap16 { gap: 16px !important; }
.section { padding-block: clamp(48px, 7vw, 88px); }
.section.alt { background: var(--surface); border-block: 1px solid var(--line); }
.section.pt0 { padding-top: 0; }
.section-head { display: flex; flex-direction: column; gap: 12px; margin-bottom: 32px; max-width: 720px; }
.section-head.m0 { margin: 0; }
.muted { color: var(--muted); }
.small { font-size: .875rem; }
.fw4 { font-weight: 400; }
.mt20 { margin-top: 20px; }
.self-start { align-self: flex-start; }
.textlink { font-weight: 600; }

/* notice bar */
.notice-bar { background: var(--gold-soft); color: var(--ink); font-size: .85rem; text-align: center; border-bottom: 1px solid var(--line); }
.notice-bar .wrap { padding-block: 8px; }

/* ---------- header ---------- */
header.site { position: sticky; top: 0; z-index: 50; background: rgba(255, 255, 255, .96); backdrop-filter: saturate(1.4) blur(8px); -webkit-backdrop-filter: saturate(1.4) blur(8px); border-bottom: 1px solid var(--line); }
.admin-bar header.site { top: 32px; }
@media (max-width: 782px) { .admin-bar header.site { top: 46px; } }
@media (max-width: 600px) { .admin-bar header.site { top: 0; } }
.hbar { display: flex; align-items: center; gap: 18px; min-height: var(--hdr); max-width: 1380px; }
.brand { display: flex; align-items: center; gap: 8px; text-decoration: none; flex-shrink: 0; }
.brand-icon { width: 58px; height: auto; }
.brand-word { width: 128px; height: auto; }
.brand-custom { max-height: 56px; width: auto; }

nav.main { display: flex; align-items: center; margin-left: auto; }
nav.main .menu { display: flex; gap: 0; list-style: none; margin: 0; padding: 0; flex-wrap: nowrap; }
nav.main .menu a { display: block; padding: 8px 9px; border-radius: 6px; text-decoration: none; color: var(--ink); font-size: .92rem; font-weight: 500; white-space: nowrap; }
nav.main .menu a:hover { background: var(--soft); }
nav.main .current-menu-item > a, nav.main .current_page_item > a, nav.main .current-page-ancestor > a { color: var(--blue-ink); box-shadow: inset 0 -2px 0 var(--gold); }
nav.main .nav-cta { display: none; }
.hright { display: flex; align-items: center; gap: 10px; }
.region { display: inline-flex; border: 1px solid var(--line); border-radius: 999px; padding: 3px; background: var(--bg); }
.region button { border: 0; background: transparent; color: var(--muted); font: 700 .78rem var(--f-body); padding: 6px 11px; border-radius: 999px; cursor: pointer; letter-spacing: .06em; }
.region button[aria-pressed="true"] { background: var(--blue); color: #fff; }
.menu-btn { display: none; border: 1px solid var(--line); background: var(--surface); color: var(--ink); border-radius: 10px; width: 44px; height: 44px; cursor: pointer; padding: 0; place-items: center; }
.bars { display: grid; gap: 5px; width: 20px; }
.bars span { display: block; height: 2px; background: currentColor; border-radius: 2px; transition: transform .2s ease, opacity .2s ease; }
.menu-btn[aria-expanded="true"] .bars span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-btn[aria-expanded="true"] .bars span:nth-child(2) { opacity: 0; }
.menu-btn[aria-expanded="true"] .bars span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 1279px) {
	.menu-btn { display: grid; }
	nav.main { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--surface); border-bottom: 1px solid var(--line); box-shadow: 0 18px 30px rgba(22, 27, 61, .12); flex-direction: column; align-items: stretch; padding: 8px max(16px, env(safe-area-inset-right, 0px)) 20px max(16px, env(safe-area-inset-left, 0px)); max-height: calc(100vh - var(--hdr)); max-height: calc(100dvh - var(--hdr)); overflow-y: auto; }
	nav.main.open { display: flex; }
	nav.main .menu { flex-direction: column; gap: 0; }
	nav.main .menu a { padding: 14px 8px; font-size: 1.02rem; border-bottom: 1px solid var(--line); border-radius: 0; }
	nav.main .current-menu-item > a, nav.main .current_page_item > a { box-shadow: inset 3px 0 0 var(--gold); padding-left: 14px; }
	nav.main .nav-cta { display: flex; margin-top: 16px; }
	.hright { margin-left: auto; }
}
@media (max-width: 560px) {
	:root { --hdr: 66px; }
	.hright .hide-sm { display: none; }
	.brand-icon { width: 48px; }
	.brand-word { width: 104px; }
	.hbar { gap: 10px; }
}
@media (max-width: 360px) { .brand-word { display: none; } }

/* ---------- buttons ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 1px solid transparent; border-radius: 10px; padding: 12px 20px; min-height: 46px; font: 700 .95rem var(--f-body); text-decoration: none; cursor: pointer; transition: transform .15s ease, background .15s ease, box-shadow .15s ease; text-align: center; white-space: nowrap; }
@media (max-width: 480px) { .btn { white-space: normal; } }
.btn:hover { transform: translateY(-1px); }
.btn-primary { background: var(--blue); color: #fff; }
.btn-primary:hover { background: var(--blue-deep); }
.btn-gold { background: var(--gold); color: #1B1F3B; }
.btn-gold:hover { background: #F3B455; box-shadow: 0 6px 16px rgba(238, 166, 60, .35); }
.btn-ghost { background: transparent; color: var(--ink); border-color: var(--line); }
.btn-ghost:hover { border-color: var(--blue); }
.on-band .btn-ghost, .band .btn-ghost { color: var(--band-ink); border-color: rgba(242, 243, 250, .4); }
.btn-wa { background: #1F8A5B; color: #fff; }
.btn-wa svg { width: 18px; height: 18px; }
.btn-block { align-self: stretch; width: 100%; }
.btn-row { display: flex; gap: 12px; flex-wrap: wrap; }
@media (max-width: 480px) { .hero .btn-row .btn, .cta .btn-row .btn { flex: 1 1 100%; } }

/* ---------- bands ---------- */
.band { background: linear-gradient(160deg, var(--blue) 0%, var(--blue-deep) 100%); color: var(--band-ink); position: relative; overflow: hidden; }
.band .lead, .band .muted { color: var(--band-muted); }
.band .eyebrow { color: var(--gold); }
.band a:not(.btn) { color: var(--band-ink); }
.on-band { position: relative; }
.lattice { position: absolute; inset: 0; opacity: .1; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72' viewBox='0 0 72 72'%3E%3Cg fill='none' stroke='%23F2F3FA' stroke-width='1'%3E%3Crect x='22' y='22' width='28' height='28'/%3E%3Crect x='22' y='22' width='28' height='28' transform='rotate(45 36 36)'/%3E%3Ccircle cx='36' cy='36' r='6'/%3E%3Cpath d='M0 36h12M60 36h12M36 0v12M36 60v12'/%3E%3C/g%3E%3C/svg%3E"); pointer-events: none; }
@media (prefers-reduced-motion: no-preference) { .lattice { animation: drift 60s linear infinite; } @keyframes drift { to { background-position: 72px 72px; } } }

/* ---------- hero ---------- */
.hero-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 48px; align-items: center; padding-block: clamp(48px, 7vw, 96px); }
.hero h1 em { font-style: normal; color: var(--gold); }
.hero-copy { display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.ar { font-family: var(--f-arabic); font-size: 1.6rem; color: var(--gold); line-height: 1; }
.ar-lg { font-size: 2.4rem; color: var(--gold-ink); }
.trust { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: .86rem; color: var(--band-muted); padding-top: 12px; border-top: 1px solid rgba(242, 243, 250, .18); }
.trust > span::before { content: ""; display: inline-block; width: 6px; height: 6px; background: var(--gold); transform: rotate(45deg); margin-right: 8px; vertical-align: middle; }
.arch { aspect-ratio: 4 / 5; width: 100%; border-radius: 220px 220px 14px 14px; background: radial-gradient(120% 80% at 50% 0%, #4555B8 0%, #26317A 55%, #18205A 100%); position: relative; overflow: hidden; border: 1px solid rgba(242, 243, 250, .25); box-shadow: 0 30px 60px rgba(10, 14, 50, .35); display: grid; place-items: center; }
.arch .lattice { opacity: .16; }
.arch-logo { width: 62%; position: relative; filter: drop-shadow(0 10px 24px rgba(0, 0, 0, .25)); }
.arch.has-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.arch-cap { position: absolute; left: 16px; right: 16px; bottom: 16px; background: rgba(14, 18, 54, .6); border: 1px solid rgba(238, 166, 60, .35); border-radius: 10px; padding: 12px 14px; font-size: .85rem; color: #E6E8F5; text-align: center; letter-spacing: .02em; }
@media (max-width: 860px) {
	.hero-grid { grid-template-columns: 1fr; gap: 32px; }
	.arch { aspect-ratio: auto; height: 300px; border-radius: 150px 150px 14px 14px; max-width: 520px; justify-self: center; }
	.arch-logo { width: auto; height: 62%; margin-bottom: 40px; }
}

/* ---------- grids & cards ---------- */
.grid { display: grid; gap: 20px; }
.grid.top, .split.top { align-items: start; }
.g4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.g3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.g2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 980px) { .g4, .g3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .g4, .g3, .g2 { grid-template-columns: 1fr; } }
.card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); padding: 24px; display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.card > .btn:last-child { margin-top: auto; align-self: flex-start; }
.jcard { text-decoration: none; color: inherit; transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease; }
.jcard:hover { border-color: var(--gold); transform: translateY(-3px); box-shadow: 0 14px 30px rgba(45, 59, 144, .1); }
.jicon { width: 46px; height: 46px; color: var(--blue-ink); padding: 8px; background: var(--soft); border-radius: 12px; }
.jlink { margin-top: auto; font-weight: 700; color: var(--blue-ink); font-size: .92rem; }

/* receipt strip */
.receipt { background: var(--paper); color: var(--paper-ink); font-family: var(--f-mono); font-size: .86rem; border-radius: 4px; padding: 18px 20px; position: relative; line-height: 1.75; min-width: 0; box-shadow: 0 1px 0 var(--line); }
.receipt::after { content: ""; position: absolute; left: 0; right: 0; bottom: -8px; height: 8px; background: linear-gradient(-45deg, transparent 6px, var(--paper) 0) 0 0 / 12px 8px, linear-gradient(45deg, transparent 6px, var(--paper) 0) 0 0 / 12px 8px; }
.receipt .row { display: flex; gap: 8px; align-items: baseline; }
.receipt .row .k { flex-shrink: 1; min-width: 0; }
.receipt .row .dots { flex: 1; border-bottom: 1px dotted currentColor; opacity: .45; transform: translateY(-4px); min-width: 12px; }
.receipt .row .v { flex-shrink: 0; font-variant-numeric: tabular-nums; text-align: right; }
.receipt .hl { color: var(--gold-ink); font-weight: 500; }
.receipt .rule { border-top: 1px dashed currentColor; opacity: .4; margin: 6px 0; }
.receipt .tag { font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; opacity: .7; }
.receipt.slim { font-size: .78rem; padding: 10px 14px; margin-bottom: 8px; }
@media (max-width: 420px) { .receipt { font-size: .76rem; padding: 14px; } }

.split { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
@media (max-width: 860px) { .split { grid-template-columns: 1fr; gap: 32px; } }

/* why */
.why { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; }
@media (max-width: 900px) { .why { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .why { grid-template-columns: 1fr; } }
.why > div { display: flex; flex-direction: column; gap: 8px; border-top: 2px solid var(--gold); padding-top: 16px; }
.why h3 { font-size: 1.25rem; }

/* package cards */
.pcard { padding: 0; overflow: hidden; }
.pcard-top { padding: 22px 22px 0; display: flex; flex-direction: column; gap: 8px; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chip { font-size: .75rem; font-weight: 700; padding: 4px 10px; border-radius: 999px; background: var(--soft); color: var(--blue-ink); }
.chip.warn { background: var(--gold-soft); color: var(--gold-ink); }
.price { font-family: var(--f-display); font-size: 1.75rem; font-variant-numeric: tabular-nums; color: var(--ink); }
.price small { font-family: var(--f-body); font-size: .8rem; color: var(--muted); }
.pcard .receipt { margin: 16px 22px 26px; font-size: .78rem; padding: 12px 14px; line-height: 1.6; }
.pcard-foot { padding: 0 22px 22px; display: flex; gap: 10px; flex-wrap: wrap; margin-top: auto; }
.pcard-foot .btn { flex: 1 1 auto; }

/* tables */
.tscroll { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--r); background: var(--surface); }
table { border-collapse: collapse; width: 100%; font-size: .94rem; }
th, td { padding: 14px 16px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: top; }
th { font-size: .76rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); font-weight: 700; background: var(--bg); white-space: nowrap; }
tr:last-child td { border-bottom: 0; }
td.num { font-variant-numeric: tabular-nums; white-space: nowrap; }
@media (max-width: 600px) {
	table.stack-sm thead { display: none; }
	table.stack-sm tr { display: block; padding: 12px 16px; border-bottom: 1px solid var(--line); }
	table.stack-sm tr:last-child { border-bottom: 0; }
	table.stack-sm td { display: flex; justify-content: space-between; gap: 16px; padding: 4px 0; border: 0; text-align: right; white-space: normal; }
	table.stack-sm td::before { content: attr(data-label); font-size: .74rem; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); font-weight: 700; text-align: left; flex-shrink: 0; }
}

/* page header */
.phead .wrap { padding-block: clamp(44px, 6vw, 76px); display: flex; flex-direction: column; gap: 16px; }
.crumb { font-size: .84rem; color: var(--band-muted); display: flex; flex-wrap: wrap; gap: 6px; }
.crumb a { color: var(--band-ink); }

/* lists */
ul.tick { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
ul.tick li { padding-left: 28px; position: relative; }
ul.tick li::before { content: ""; position: absolute; left: 4px; top: .55em; width: 9px; height: 9px; background: var(--gold); transform: rotate(45deg); }
ul.cross li::before { background: transparent; border: 1.5px solid var(--muted); }

/* testimonials */
.qcard { margin: 0; }
blockquote { margin: 0; font-family: var(--f-display); font-size: 1.2rem; line-height: 1.45; }
.qcard figcaption { font-size: .85rem; color: var(--muted); margin-top: auto; }

/* option panels */
.opt { border-top: 4px solid var(--blue); }
.opt.alt-opt { border-top-color: var(--gold); }
.note { background: var(--soft); border-radius: 10px; padding: 12px 14px; font-size: .9rem; }
.callout { border-left: 3px solid var(--gold); padding: 4px 0 4px 16px; color: var(--muted); }

/* humanitarian trips */
.trip-list { display: grid; gap: 14px; }
.trip { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 2fr) auto; gap: 24px; align-items: center; }
.trip h3 { font-size: 1.3rem; }
.trip-main { display: flex; flex-direction: column; gap: 6px; }
.trip-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.trip-facts dt { font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); font-weight: 700; }
.trip-facts dd { font-size: .94rem; }
.price-sm { font-family: var(--f-display); font-size: 1.15rem; white-space: nowrap; }
.trip > .btn { align-self: center; margin: 0; }
@media (max-width: 980px) {
	.trip { grid-template-columns: 1fr; gap: 14px; }
	.trip > .btn { justify-self: start; }
}
@media (max-width: 520px) { .trip-facts { grid-template-columns: 1fr 1fr; } }

/* impact */
.steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; counter-reset: s; }
@media (max-width: 760px) { .steps { grid-template-columns: 1fr; } }
.steps > div { counter-increment: s; display: flex; flex-direction: column; gap: 8px; }
.steps > div::before { content: counter(s); font-family: var(--f-display); font-size: 2.6rem; color: var(--gold-ink); line-height: 1; }
.counter { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 16px; }
@media (max-width: 700px) { .counter { grid-template-columns: 1fr; gap: 16px; } }
.counter > div { display: flex; flex-direction: column; gap: 4px; border-left: 2px solid var(--gold); padding-left: 16px; }
.counter b { font-family: var(--f-display); font-weight: 400; font-size: 2.3rem; font-variant-numeric: tabular-nums; }

/* faq */
details.faq { border-bottom: 1px solid var(--line); padding: 4px 0; }
details.faq summary { cursor: pointer; padding: 16px 0; font-weight: 700; font-size: 1.05rem; list-style: none; display: flex; justify-content: space-between; gap: 16px; }
details.faq summary::-webkit-details-marker { display: none; }
details.faq summary::after { content: "+"; font-family: var(--f-display); font-size: 1.5rem; line-height: 1; color: var(--gold-ink); flex-shrink: 0; }
details.faq[open] summary::after { content: "\2212"; }
details.faq p { padding: 0 0 18px; color: var(--muted); max-width: 70ch; }

/* about */
.meaning { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); padding: 28px; }
.photo { margin: 0; border-radius: var(--r); overflow: hidden; }
.photo img { width: 100%; height: 100%; object-fit: cover; }
.split .photo { aspect-ratio: 4 / 5; max-height: 640px; }
.photo.wide { border-radius: var(--r); }
.photo.wide img { aspect-ratio: 16 / 10; object-position: center 30%; }
.photo figcaption { padding-top: 12px; }
.team { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 8px; }
@media (max-width: 480px) { .team { grid-template-columns: 1fr; } }
.member { display: flex; gap: 14px; align-items: center; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); padding: 14px; }
.member h3 { font-size: 1.1rem; }
.avatar { width: 54px; height: 54px; border-radius: 50%; background: var(--blue); flex-shrink: 0; display: grid; place-items: center; font-family: var(--f-display); font-size: 1.2rem; color: var(--gold); }
.badges { margin-top: 32px; gap: 10px; }

/* forms */
.field { display: flex; flex-direction: column; gap: 6px; }
label { font-weight: 700; font-size: .9rem; }
input, select, textarea { font: inherit; font-size: 16px; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--bg); color: var(--ink); width: 100%; min-height: 46px; }
input:focus, select:focus, textarea:focus { outline: 2px solid var(--blue); outline-offset: 0; border-color: var(--blue); }
textarea { min-height: 110px; resize: vertical; }
.check { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; font-size: .9rem; color: var(--muted); }
.check input { width: 20px; height: 20px; min-height: 0; margin-top: 2px; flex-shrink: 0; accent-color: var(--blue); }
.err { color: #B4302E; font-size: .9rem; font-weight: 600; }
.err-on-band { color: #FFC9C0; margin-top: 8px; }
.thanks { display: flex; flex-direction: column; gap: 10px; }
.contact-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 32px; align-items: start; }
@media (max-width: 900px) { .contact-grid { grid-template-columns: 1fr; } }
.office dl { display: grid; gap: 10px; }
.office dl > div { display: grid; grid-template-columns: 90px 1fr; gap: 12px; }
.office dt { font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); font-weight: 700; padding-top: 3px; }

/* package detail */
.detail { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 40px; align-items: start; }
.detail-main { gap: 40px; }
@media (max-width: 920px) { .detail { grid-template-columns: 1fr; } .aside { order: -1; } }
.aside { position: sticky; top: calc(var(--hdr) + 20px); display: flex; flex-direction: column; gap: 16px; }
@media (max-width: 920px) { .aside { position: static; } }
.aside .card { gap: 14px; }
.aside .receipt { margin-bottom: 8px; }
.itin { list-style: none; padding: 0; margin: 0; }
.itin li { display: grid; grid-template-columns: 90px 1fr; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.itin .d { font-family: var(--f-mono); font-size: .82rem; color: var(--gold-ink); padding-top: 2px; }

/* CTA band */
.cta-inner { padding-block: 64px; display: flex; flex-wrap: wrap; gap: 24px; align-items: center; justify-content: space-between; }
.cta-inner .stack { max-width: 620px; }

/* prose (editor content) */
.prose > * + * { margin-top: 1em; }
.prose h2 { font-size: 1.8rem; margin-top: 1.6em; }
.prose h3 { margin-top: 1.4em; }
.prose ul, .prose ol { padding-left: 1.3em; }
.post-card + .post-card { margin-top: 16px; }

/* ---------- footer ---------- */
footer.site { padding-bottom: env(safe-area-inset-bottom, 0px); }
footer.site a { text-decoration: none; }
footer.site a:hover { text-decoration: underline; }
.fgrid { position: relative; display: grid; grid-template-columns: 1.3fr 1fr 1fr 1.4fr; gap: 32px; padding-block: 56px 32px; }
@media (max-width: 860px) { .fgrid { grid-template-columns: 1fr 1fr; } .fbrand, #newsletter { grid-column: 1 / -1; } }
.flogo { width: 150px; height: auto; }
.fgrid h4 { margin: 0 0 12px; font-family: var(--f-body); font-weight: 700; font-size: .76rem; letter-spacing: .14em; text-transform: uppercase; color: var(--gold); }
.fgrid ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; font-size: .95rem; }
.licence { position: relative; border-top: 1px solid rgba(242, 243, 250, .18); padding-block: 18px; font-family: var(--f-mono); font-size: .76rem; color: var(--band-muted); display: flex; flex-wrap: wrap; gap: 6px 20px; }
.legal { position: relative; padding-block: 0 28px; font-size: .84rem; color: var(--band-muted); display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: center; }
.legal-menu { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 18px; }
.legal a { color: var(--band-muted) !important; }
.nl { display: flex; gap: 8px; flex-wrap: wrap; }
.nl label { width: 100%; font-weight: 400; }
.nl input { flex: 1 1 180px; min-width: 0; background: rgba(255, 255, 255, .08); border-color: rgba(242, 243, 250, .3); color: var(--band-ink); }
.nl input::placeholder { color: var(--band-muted); }

/* floating WhatsApp */
.wa { position: fixed; right: calc(18px + env(safe-area-inset-right, 0px)); bottom: calc(18px + env(safe-area-inset-bottom, 0px)); z-index: 40; background: #1F8A5B; color: #fff; border-radius: 999px; padding: 12px 18px; display: flex; align-items: center; gap: 8px; font-weight: 700; text-decoration: none; box-shadow: 0 8px 24px rgba(0, 0, 0, .22); font-size: .92rem; }
.wa svg { width: 22px; height: 22px; }
@media (max-width: 560px) { .wa { padding: 14px; } .wa span { display: none; } }

/* ---------- Elementor ---------- */
.grid.center { align-items: center; }
.col-text > * + * { margin-top: .8em; }
.col-text ul, .col-text ol { padding-left: 1.2em; margin: 0; }
.badges-row { gap: 10px; }
img.avatar { object-fit: cover; padding: 0; }
.ett-elementor .elementor-section.elementor-section-full_width > .elementor-container,
.ett-elementor .e-con-full { max-width: none; }
.ett-elementor .elementor-widget-wrap > .elementor-widget[class*="elementor-widget-ett-"] { margin-bottom: 0; }
.ett-elementor .elementor-column-gap-no > .elementor-column > .elementor-element-populated { padding: 0; }
.elementor-editor-active .lattice { animation: none; }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; } }
