:root {
    --primary: #D97706;
    --primary-bright: #FBBF24;
    --secondary: #12372A;
    --navy-deep: #07140F;
    --surface-dark: #10231B;
    --surface-light: #F7F1E5;
    --accent: #9CA986;
    --accent-metallic: #F4E2B7;
    --text-light: #F8FAFC;
    --text-muted: #9EACC0;
    --text-dark: #101828;
    --success: #12B76A;
    --warning: #E38B29;
    --danger: #F04438;
    --border-light: rgba(255, 255, 255, 0.12);
    --shadow-premium: 0 24px 70px rgba(0, 0, 0, 0.28);
    --radius-sm: 10px;
    --radius-md: 16px;
    --radius-lg: 24px;
    --radius-xl: 32px;
    --container: 1180px;
    --font-heading: "Manrope", "Plus Jakarta Sans", Inter, system-ui, sans-serif;
    --font-body: Inter, "DM Sans", system-ui, sans-serif;
    --ease: 180ms ease;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: var(--font-body); color: var(--text-dark); background: linear-gradient(180deg, #F7F1E5, #F1E6D2); line-height: 1.6; }
a { color: inherit; text-decoration: none; }
img, video { max-width: 100%; height: auto; display: block; }
.container { width: min(var(--container), calc(100% - 32px)); margin-inline: auto; }
.skip-link { position: absolute; left: 12px; top: -60px; z-index: 99; padding: 10px 14px; background: var(--primary); color: white; border-radius: var(--radius-sm); }
.skip-link:focus { top: 12px; }
.site-header { position: sticky; top: 0; z-index: 50; background: rgba(7, 20, 15, .92); backdrop-filter: blur(18px); color: var(--text-light); border-bottom: 1px solid rgba(244, 226, 183, .15); }
.header-inner { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; align-items: center; gap: 12px; font-family: var(--font-heading); font-weight: 800; letter-spacing: 0; }
.brand-mark { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: linear-gradient(135deg, #315C42, var(--primary)); box-shadow: 0 14px 36px rgba(217, 119, 6, .28); color: white; }
.primary-nav { display: flex; align-items: center; gap: 22px; color: var(--accent-metallic); font-size: 14px; }
.primary-nav a:hover, .primary-nav a:focus-visible { color: white; }
.nav-toggle { display: none; }
.hero { min-height: 70vh; display: grid; align-items: center; color: var(--text-light); background: radial-gradient(circle at 72% 12%, rgba(251,191,36,.25), transparent 34%), linear-gradient(135deg, var(--navy-deep), var(--secondary)); overflow: hidden; }
.hero-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 48px; align-items: center; padding-block: 64px; }
.eyebrow { color: var(--accent-metallic); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; font-size: 12px; }
h1, h2, h3 { font-family: var(--font-heading); line-height: 1.04; letter-spacing: 0; margin: 0 0 16px; }
h1 { font-size: clamp(2.35rem, 6vw, 5.7rem); max-width: 11ch; }
h2 { font-size: clamp(1.9rem, 4vw, 3.2rem); }
h3 { font-size: 1.24rem; }
.lead { color: var(--accent-metallic); font-size: clamp(1.02rem, 1.8vw, 1.25rem); max-width: 64ch; }
.button-row { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 28px; }
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 12px 18px; border-radius: 999px; font-weight: 800; border: 1px solid transparent; transition: transform var(--ease), box-shadow var(--ease), background var(--ease); }
.btn:hover { transform: translateY(-2px); }
.btn-primary { background: linear-gradient(135deg, #B45309, var(--primary-bright)); color: #fffaf0; box-shadow: 0 18px 42px rgba(217, 119, 6, .28); }
.btn-secondary { color: white; border-color: var(--border-light); background: rgba(255,255,255,.08); }
.hero-media { border-radius: var(--radius-xl); overflow: hidden; box-shadow: var(--shadow-premium); border: 1px solid var(--border-light); background: rgba(255,255,255,.06); }
.hero-media img { width: 100%; height: 100%; object-fit: cover; }
.editorial-media { min-height: 360px; display: grid; place-items: center; background:
    linear-gradient(135deg, rgba(255,255,255,.12), rgba(255,255,255,.03)),
    radial-gradient(circle at 72% 18%, rgba(47,124,255,.48), transparent 32%),
    linear-gradient(160deg, #071A33, #030B17);
}
.editorial-media img { width: 100%; min-height: 360px; object-fit: cover; }
.trust-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: 34px; border: 1px solid var(--border-light); border-radius: var(--radius-md); overflow: hidden; background: var(--border-light); max-width: 720px; }
.trust-strip span { padding: 16px; background: rgba(255,255,255,.06); color: var(--accent-metallic); font-weight: 700; }
.section { padding: 84px 0; }
.section.dark { color: var(--text-light); background: radial-gradient(circle at 15% 12%, rgba(217,119,6,.16), transparent 32%), linear-gradient(160deg, var(--navy-deep), var(--surface-dark)); }
.section-header { max-width: 760px; margin-bottom: 34px; }
.section-header p { color: #536176; font-size: 1.04rem; }
.dark .section-header p { color: var(--accent); }
.grid { display: grid; gap: 24px; }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.card { background: rgba(255, 252, 245, .92); border: 1px solid #E6D6BD; border-radius: var(--radius-md); padding: 24px; box-shadow: 0 14px 40px rgba(67, 36, 12, .08); transition: transform var(--ease), box-shadow var(--ease); }
.card:hover { transform: translateY(-3px); box-shadow: 0 18px 48px rgba(16, 24, 40, .1); }
.dark .card { background: rgba(255,255,255,.06); border-color: var(--border-light); color: var(--text-light); }
.media-card { padding: 0; overflow: hidden; }
.media-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: #D8C7A7; }
.media-card .card-body { padding: 22px; }
.article-card h3 a { color: inherit; }
.article-card .read-more { display: inline-flex; margin-top: 8px; font-weight: 900; color: var(--primary); }
.dark .article-card .read-more { color: #8FB8FF; }
.gallery-section { background: linear-gradient(180deg, #F8FBFF, #EEF4FB); }
.gallery-toolbar { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 30px; }
.gallery-toolbar button { border: 1px solid #DDE7F3; background: white; color: #344054; border-radius: 999px; padding: 10px 15px; font-weight: 900; }
.gallery-toolbar button.is-active { background: linear-gradient(135deg, var(--primary), var(--primary-bright)); color: white; border-color: transparent; box-shadow: 0 14px 32px rgba(21,94,239,.22); }
.gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; align-items: stretch; }
.gallery-card { overflow: hidden; border: 1px solid #DDE7F3; border-radius: 24px; background: white; box-shadow: 0 18px 52px rgba(16,24,40,.09); transition: transform var(--ease), box-shadow var(--ease); }
.gallery-card:hover { transform: translateY(-4px); box-shadow: 0 26px 72px rgba(16,24,40,.14); }
.gallery-media { position: relative; aspect-ratio: 16 / 11; overflow: hidden; background: #D8DEE8; }
.gallery-media img, .gallery-media video { width: 100%; height: 100%; object-fit: cover; }
.gallery-kind, .gallery-play { position: absolute; z-index: 2; border-radius: 999px; font-size: 12px; font-weight: 900; }
.gallery-kind { left: 14px; top: 14px; padding: 6px 10px; background: rgba(3,11,23,.76); color: white; }
.gallery-play { right: 14px; bottom: 14px; padding: 8px 12px; background: rgba(255,255,255,.92); color: var(--primary); box-shadow: 0 12px 28px rgba(0,0,0,.18); }
.gallery-copy { padding: 22px; }
.gallery-copy .eyebrow { color: var(--primary); margin: 0 0 8px; }
.gallery-copy h2 { font-size: clamp(1.35rem, 2vw, 1.8rem); margin-bottom: 10px; }
.gallery-copy p { color: #536176; margin: 0 0 10px; }
.gallery-caption { font-size: .94rem; color: #667085; border-top: 1px solid #EEF2F6; padding-top: 12px; }
.gallery-empty { border: 1px dashed #BFD0E7; border-radius: 18px; padding: 24px; text-align: center; background: white; color: #475467; font-weight: 800; }
.blog-index-section { background: linear-gradient(180deg, #F8FBFF, #EEF4FB); }
.blog-index-head { display: grid; grid-template-columns: 1fr minmax(280px, 380px); gap: 28px; align-items: end; margin-bottom: 28px; }
.blog-search-card { background: white; border: 1px solid #DDE7F3; border-radius: 20px; padding: 18px; box-shadow: 0 18px 48px rgba(16,24,40,.08); }
.blog-search-card label { display: block; margin-bottom: 8px; font-weight: 900; }
.featured-post-card { display: grid; grid-template-columns: 1.08fr .92fr; gap: 0; overflow: hidden; margin-bottom: 28px; border: 1px solid #DDE7F3; border-radius: 28px; background: white; box-shadow: 0 24px 74px rgba(16,24,40,.12); }
.featured-post-media { min-height: 360px; background: #D8DEE8; }
.featured-post-media img { width: 100%; height: 100%; object-fit: cover; }
.featured-post-copy { padding: clamp(24px, 4vw, 44px); align-self: center; }
.featured-post-copy h2 { font-size: clamp(2rem, 4vw, 3.4rem); max-width: 12ch; }
.post-meta { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; color: #536176; font-size: 13px; font-weight: 800; }
.post-meta span { display: inline-flex; align-items: center; border-radius: 999px; padding: 6px 10px; background: #EAF1FF; color: var(--primary); }
.post-meta span:not(:first-child) { background: #F2F6FC; color: #475467; }
.blog-toolbar { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 24px; }
.blog-toolbar button { border: 1px solid #DDE7F3; background: white; color: #344054; border-radius: 999px; padding: 10px 15px; font-weight: 900; }
.blog-toolbar button.is-active { background: linear-gradient(135deg, var(--primary), var(--primary-bright)); color: white; border-color: transparent; box-shadow: 0 14px 32px rgba(21,94,239,.22); }
.blog-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.blog-card { overflow: hidden; border: 1px solid #DDE7F3; border-radius: 24px; background: white; box-shadow: 0 18px 52px rgba(16,24,40,.08); transition: transform var(--ease), box-shadow var(--ease); }
.blog-card:hover { transform: translateY(-4px); box-shadow: 0 26px 72px rgba(16,24,40,.13); }
.blog-card-media { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: #D8DEE8; }
.blog-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--ease); }
.blog-card:hover .blog-card-media img { transform: scale(1.035); }
.blog-card-copy { padding: 22px; }
.blog-card-copy h2 { font-size: clamp(1.45rem, 2.2vw, 2rem); margin-bottom: 10px; }
.blog-card-copy p, .featured-post-copy p { color: #536176; }
.blog-card .read-more { display: inline-flex; margin-top: 8px; color: var(--primary); font-weight: 900; }
.blog-empty { border: 1px dashed #BFD0E7; border-radius: 18px; padding: 24px; text-align: center; background: white; color: #475467; font-weight: 800; }
.post-hero { position: relative; isolation: isolate; overflow: hidden; color: white; background: radial-gradient(circle at 75% 18%, rgba(47,124,255,.38), transparent 32%), linear-gradient(135deg, #030B17, #071A33); padding: clamp(72px, 10vw, 140px) 0; }
.post-hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -3; transform: scale(1.01); }
.post-hero-shade { position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, rgba(3,11,23,.92), rgba(7,26,51,.72), rgba(3,11,23,.38)); }
.post-hero::after { content: ""; position: absolute; inset: auto 0 0; height: 44%; z-index: -1; background: linear-gradient(0deg, rgba(3,11,23,.48), transparent); }
.post-hero-grid { display: grid; grid-template-columns: minmax(0, 760px); gap: 48px; align-items: center; }
.post-hero h1 { max-width: 12ch; font-size: clamp(2.6rem, 7vw, 6rem); }
.post-hero .lead { color: #E7EDF7; }
.post-body-section { background: #F8FBFF; }
.post-layout { display: grid; grid-template-columns: 240px minmax(0, 820px); gap: 52px; align-items: start; }
.post-side { position: sticky; top: 104px; display: grid; gap: 16px; }
.post-side .btn { width: 100%; background: white; border-color: #DDE7F3; color: var(--text-dark); }
.post-side-card { background: white; border: 1px solid #DDE7F3; border-radius: 18px; padding: 18px; box-shadow: 0 14px 38px rgba(16,24,40,.07); display: grid; gap: 8px; }
.post-side-card .eyebrow { color: var(--primary); margin: 0; }
.post-side-card span { color: #667085; }
.post-content { background: white; border: 1px solid #E6EAF0; border-radius: 24px; padding: clamp(24px, 4vw, 52px); box-shadow: 0 18px 52px rgba(16,24,40,.08); }
.post-content p:first-child { margin-top: 0; }
.related-posts { background: #EEF4FB; }
.badge { display: inline-flex; align-items: center; border-radius: 999px; padding: 6px 10px; font-size: 12px; font-weight: 800; background: #EAF1FF; color: var(--primary); margin-bottom: 12px; }
.stars { color: #F79009; letter-spacing: 2px; }
.accordion button { width: 100%; text-align: left; border: 0; background: white; padding: 20px; border-radius: var(--radius-sm); font: inherit; font-weight: 800; display: flex; justify-content: space-between; gap: 12px; }
.accordion-panel { padding: 0 20px 20px; background: white; border-radius: 0 0 var(--radius-sm) var(--radius-sm); }
.contact-panel { display: grid; grid-template-columns: .8fr 1.2fr; gap: 32px; }
.contact-page-section { background: radial-gradient(circle at 72% 12%, rgba(47,124,255,.32), transparent 34%), linear-gradient(145deg, #030B17, #071A33 55%, #0A1628); color: white; }
.contact-copy { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.16); border-radius: var(--radius-lg); padding: clamp(24px, 3vw, 36px); box-shadow: var(--shadow-premium); align-self:start; }
.contact-copy .eyebrow { color: #8FB8FF; }
.contact-copy p { color: var(--accent-metallic); }
.contact-copy a { color: white; }
.contact-page-section .contact-form { background: linear-gradient(160deg, rgba(255,255,255,.12), rgba(255,255,255,.055)); border: 1px solid rgba(255,255,255,.22); box-shadow: var(--shadow-premium); }
.contact-page-section .contact-form::before { background: linear-gradient(135deg, rgba(47,124,255,.22), transparent 48%); }
.contact-page-section .contact-form label { color: #F8FAFC; text-shadow: 0 1px 10px rgba(0,0,0,.26); }
.contact-page-section .contact-form input, .contact-page-section .contact-form textarea { background: rgba(255,255,255,.98); border-color: rgba(255,255,255,.25); }
.faq-hero { color:white; padding:86px 0 72px; background: radial-gradient(circle at 76% 18%, rgba(47,124,255,.42), transparent 32%), linear-gradient(135deg, #030B17, #071A33); }
.faq-hero-grid { display:grid; grid-template-columns:1fr .82fr; gap:40px; align-items:center; }
.faq-search-card { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); border-radius:var(--radius-lg); padding:24px; box-shadow:var(--shadow-premium); }
.faq-search-card h2 { font-size:clamp(1.8rem,3vw,2.7rem); margin-bottom:10px; }
.faq-search-card label { color:white; }
.faq-search-card input { margin-top:10px; min-height:56px; border-color:rgba(255,255,255,.22); }
.faq-search-card p { color:var(--accent-metallic); margin-bottom:0; }
.faq-section { background: radial-gradient(circle at 82% 8%, rgba(47,124,255,.12), transparent 30%), linear-gradient(180deg, #F8FBFF, #EEF4FB); }
.faq-toolbar { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:28px; padding:8px; border:1px solid #DDE7F3; border-radius:999px; background:rgba(255,255,255,.72); width:fit-content; box-shadow:0 14px 38px rgba(16,24,40,.06); }
.faq-toolbar button { border:1px solid transparent; background:transparent; color:#344054; border-radius:999px; padding:10px 14px; font-weight:900; }
.faq-toolbar button.is-active { background:linear-gradient(135deg,var(--primary),var(--primary-bright)); color:white; border-color:transparent; box-shadow:0 14px 32px rgba(21,94,239,.22); }
.faq-layout { display:grid; grid-template-columns:.72fr 1.28fr; gap:36px; align-items:start; }
.faq-intro { position:sticky; top:100px; overflow:hidden; background:linear-gradient(160deg,#FFFFFF,#F8FBFF); border:1px solid #DDE7F3; border-radius:28px; padding:clamp(24px,3vw,36px); box-shadow:0 24px 70px rgba(16,24,40,.1); }
.faq-intro::before { content:""; position:absolute; inset:0 0 auto; height:5px; background:linear-gradient(90deg,var(--primary),var(--primary-bright)); }
.faq-intro .eyebrow { color:var(--primary); }
.faq-intro h2 { font-size:clamp(2rem,4vw,3rem); }
.faq-support-points { display:grid; gap:8px; margin:20px 0 22px; }
.faq-support-points span { display:flex; align-items:center; gap:8px; color:#475467; font-weight:800; }
.faq-support-points span::before { content:""; width:8px; height:8px; border-radius:999px; background:var(--success); box-shadow:0 0 0 4px rgba(18,183,106,.12); }
.faq-list { display:grid; gap:14px; }
.faq-card { border:1px solid #DDE7F3; border-radius:20px; background:white; overflow:hidden; box-shadow:0 14px 36px rgba(16,24,40,.07); transition:transform var(--ease), box-shadow var(--ease), border-color var(--ease); }
.faq-card:hover { transform:translateY(-2px); border-color:#BFD0E7; box-shadow:0 20px 54px rgba(16,24,40,.11); }
.faq-card button { align-items:center; border-radius:0; padding:22px 24px; background:white; color:var(--text-dark); }
.faq-number { display:grid; place-items:center; width:38px; height:38px; flex:0 0 auto; border-radius:12px; background:#EAF1FF; color:var(--primary); font-size:12px; font-weight:900; }
.faq-question { flex:1; font-size:1.08rem; display:grid; gap:3px; }
.faq-question small { color:var(--primary); font-size:11px; text-transform:uppercase; letter-spacing:.08em; }
.faq-icon { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:#F2F6FC; color:var(--primary); font-weight:900; transition:transform var(--ease), background var(--ease); }
.faq-card button[aria-expanded="true"] .faq-icon { transform:rotate(45deg); background:#EAF1FF; }
.faq-card .accordion-panel { padding:0 24px 24px 76px; color:#475467; background:white; font-size:1.03rem; }
.faq-card .accordion-panel p:first-child { margin-top:0; }
.faq-empty { border:1px dashed #BFD0E7; border-radius:18px; padding:22px; color:#475467; background:white; font-weight:800; text-align:center; }
.form-grid { display: grid; gap: 16px; }
label { font-weight: 800; color: var(--text-dark); }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.form-trap { position: absolute !important; left: -10000px !important; top: auto !important; width: 1px !important; height: 1px !important; overflow: hidden !important; opacity: 0 !important; pointer-events: none !important; }
.form-trap input { tabindex: -1; }
input, textarea, select { width: 100%; min-height: 48px; padding: 12px 14px; border: 1px solid #D5DCE7; border-radius: var(--radius-sm); font: inherit; background: white; }
textarea { min-height: 140px; resize: vertical; }
.contact-form { position: relative; padding: clamp(22px, 3vw, 34px); border-radius: var(--radius-lg); background: linear-gradient(160deg, rgba(255,255,255,.10), rgba(255,255,255,.045)); border: 1px solid rgba(255,255,255,.18); box-shadow: var(--shadow-premium); backdrop-filter: blur(18px); }
.contact-form::before { content: ""; position: absolute; inset: 0; pointer-events: none; border-radius: inherit; background: linear-gradient(135deg, rgba(47,124,255,.20), transparent 45%); }
.contact-form label { position: relative; color: #EAF1FF; font-size: 13px; letter-spacing: 0; }
.contact-form input, .contact-form textarea { position: relative; margin-top: 7px; border-color: rgba(255,255,255,.20); background: rgba(255,255,255,.95); color: var(--text-dark); border-radius: 14px; box-shadow: inset 0 1px 0 rgba(255,255,255,.55); }
.contact-form input:focus, .contact-form textarea:focus { outline: 3px solid rgba(47,124,255,.34); border-color: var(--primary-bright); }
.contact-form .btn { position: relative; min-height: 54px; margin-top: 4px; }
.site-slider { position: relative; min-height: clamp(360px, 58vh, 680px); overflow: hidden; color: white; background: var(--navy-deep); }
.site-slide { position: absolute; inset: 0; display: grid; align-items: center; opacity: 0; transition: opacity .35s ease; }
.site-slide.is-active { opacity: 1; z-index: 1; }
.site-slide img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.site-slide-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(3,11,23,.86), rgba(7,26,51,.56), rgba(3,11,23,.28)); }
.site-slide-content { position: relative; z-index: 2; padding-block: 72px; }
.site-slide-content.align-center { text-align: center; }
.site-slide-content.align-right { text-align: right; }
.site-slide-content h2 { font-size: clamp(2.2rem, 6vw, 5.5rem); max-width: 10ch; }
.site-slide-content.align-center h2 { margin-inline: auto; }
.site-slide-content.align-right h2 { margin-left: auto; }
.site-slide-content p { color: var(--accent-metallic); max-width: 660px; font-size: clamp(1.03rem, 2vw, 1.35rem); }
.site-slide-content.align-center p { margin-inline: auto; }
.site-slide-content.align-right p { margin-left: auto; }
.slider-arrow { position: absolute; z-index: 3; top: 50%; transform: translateY(-50%); width: 48px; height: 48px; border-radius: 999px; border: 1px solid rgba(255,255,255,.28); background: rgba(3,11,23,.45); color: white; font-size: 34px; display: grid; place-items: center; }
.slider-prev { left: 18px; }
.slider-next { right: 18px; }
.slider-dots { position: absolute; z-index: 3; left: 50%; bottom: 20px; transform: translateX(-50%); display: flex; gap: 9px; }
.slider-dots button { width: 10px; height: 10px; border-radius: 999px; border: 0; background: rgba(255,255,255,.42); }
.slider-dots button.is-active { width: 28px; background: white; }
.site-footer { background: radial-gradient(circle at 20% 0, rgba(47,124,255,.26), transparent 28%), linear-gradient(160deg, #030B17, #02050B); color: var(--text-light); padding: 70px 0 28px; }
.footer-grid { display: grid; grid-template-columns: 1.3fr .7fr 1fr; gap: 36px; }
.footer-grid h2 { font-size: 1rem; }
.footer-grid a { display: block; color: var(--accent-metallic); margin: 8px 0; }
.footer-brand-text { align-items:flex-start; font-size:1rem; }
.footer-bottom { margin-top: 38px; padding-top: 22px; border-top: 1px solid var(--border-light); display: flex; justify-content: space-between; gap: 18px; }
.footer-bottom button { background: transparent; border: 1px solid var(--border-light); color: white; border-radius: 999px; padding: 10px 14px; }
.floating-actions { position: fixed; right: 18px; bottom: 18px; z-index: 40; display: grid; gap: 10px; }
.floating-action { width: 62px; height: 62px; border-radius: 50%; display: grid; place-items: center; color: white; box-shadow: var(--shadow-premium); border: 1px solid rgba(255,255,255,.2); }
.floating-action svg { width: 30px; height: 30px; fill: currentColor; }
.floating-action.whatsapp { background: #19B84A; }
.floating-action.imessage { background: linear-gradient(135deg, #34C759, #0A84FF); outline: 2px solid rgba(255,255,255,.22); }
.floating-action.messenger { background: linear-gradient(135deg, #006AFF, #A033FF 58%, #FF4F8B); }
.floating-action.email { background: linear-gradient(135deg, #253A54, #F26A4F); }
.inner-hero { min-height: 34vh; display: grid; align-items: end; padding: 72px 0 42px; color: white; background: radial-gradient(circle at 75% 20%, rgba(47,124,255,.34), transparent 32%), linear-gradient(135deg, var(--navy-deep), var(--secondary)); }
.inner-hero.rich-hero { min-height: 58vh; align-items: center; padding: 58px 0; }
.inner-hero h1 { font-size: clamp(2.1rem, 5vw, 4.6rem); max-width: 14ch; }
.article { max-width: 820px; }
.article p, .article li { font-size: 1.08rem; }
@media (max-width: 900px) {
    .hero-grid, .contact-panel, .footer-grid, .grid-2, .grid-3, .faq-layout, .faq-hero-grid { grid-template-columns: 1fr; }
    .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .blog-index-head, .featured-post-card, .post-hero-grid, .post-layout { grid-template-columns: 1fr; }
    .blog-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .post-side { position: static; }
    .featured-post-media { min-height: 280px; }
    .faq-intro { position:static; }
    .hero { min-height: 52vh; }
    .primary-nav { position: fixed; inset: 76px 0 auto 0; display: none; padding: 20px; background: var(--navy-deep); flex-direction: column; align-items: flex-start; }
    .primary-nav.is-open { display: flex; }
    .nav-toggle { display: inline-flex; border: 1px solid var(--border-light); background: rgba(255,255,255,.08); color: white; border-radius: 999px; padding: 10px 14px; }
    .trust-strip { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
    .container { width: min(100% - 24px, var(--container)); }
    .section { padding: 56px 0; }
    .gallery-grid { grid-template-columns: 1fr; gap: 18px; }
    .blog-card-grid { grid-template-columns: 1fr; gap: 18px; }
    .blog-toolbar { gap: 8px; }
    .blog-toolbar button { padding: 9px 12px; font-size: 13px; }
    .featured-post-card, .blog-card, .post-content { border-radius: 20px; }
    .featured-post-copy, .blog-card-copy { padding: 18px; }
    .post-hero { padding: 48px 0; }
    .gallery-toolbar { gap: 8px; margin-bottom: 22px; }
    .gallery-toolbar button { padding: 9px 12px; font-size: 13px; }
    .gallery-card { border-radius: 20px; }
    .gallery-copy { padding: 18px; }
    .hero-grid { padding-block: 42px; gap: 28px; }
    .button-row { flex-direction: column; }
    .btn { width: 100%; }
    .footer-bottom { flex-direction: column; }
    .slider-arrow { display: none; }
    .floating-actions { right: 14px; bottom: 14px; gap: 8px; }
    .floating-action { width: 54px; height: 54px; }
    .floating-action svg { width: 26px; height: 26px; }
    .site-slider { min-height: 420px; }
    .faq-toolbar { width:100%; border-radius:20px; }
    .faq-toolbar button { flex:1; }
    .faq-card button { padding:18px; }
    .faq-number { width:34px; height:34px; }
    .faq-card .accordion-panel { padding:0 18px 20px; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
.brand-logo { width:auto; height:44px; max-width:150px; object-fit:contain; display:block; }
.footer-brand .brand-logo { height:48px; }
.site-slide picture, .site-slide video { position:absolute; inset:0; width:100%; height:100%; display:block; }
.site-slide picture img, .site-slide video { width:100%; height:100%; object-fit:cover; }
.site-slide-overlay.overlay-light { background:linear-gradient(90deg, rgba(3,11,23,.62), rgba(7,26,51,.34), rgba(3,11,23,.16)); }
.site-slide-overlay.overlay-strong { background:linear-gradient(90deg, rgba(3,11,23,.92), rgba(7,26,51,.68), rgba(3,11,23,.44)); }
.page-block .lead { color:#475467; }
.page-block.dark .lead { color:var(--accent-metallic); }
.cms-hero { position:relative; isolation:isolate; min-height:38vh; display:grid; align-items:center; overflow:hidden; color:white; background:#030B17; }
.cms-hero.home-hero { min-height:58vh; }
.cms-hero.hero-height-compact { min-height:28vh; }
.cms-hero.hero-height-standard { min-height:38vh; }
.cms-hero.hero-height-tall { min-height:48vh; }
.cms-hero.hero-height-full { min-height:72vh; }
.cms-hero-media { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transform:scale(1.01); }
.cms-hero-overlay { position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg, rgba(3,11,23,.86), rgba(7,26,51,.58), rgba(3,11,23,.34)); }
.cms-hero-overlay.overlay-light { background:linear-gradient(90deg, rgba(3,11,23,.62), rgba(7,26,51,.32), rgba(3,11,23,.12)); }
.cms-hero-overlay.overlay-strong { background:linear-gradient(90deg, rgba(3,11,23,.94), rgba(7,26,51,.76), rgba(3,11,23,.56)); }
.cms-hero-content { padding-block:clamp(46px, 7vw, 92px); }
.cms-hero.align-center .cms-hero-content { text-align:center; }
.cms-hero.align-right .cms-hero-content { text-align:right; }
.cms-hero h1 { max-width:12ch; font-size:clamp(2.7rem, 8vw, 7rem); text-wrap:balance; }
.cms-hero.align-center h1, .cms-hero.align-center .lead, .cms-hero.align-center .hero-buttons { margin-inline:auto; justify-content:center; }
.cms-hero.align-right h1, .cms-hero.align-right .lead, .cms-hero.align-right .hero-buttons { margin-left:auto; justify-content:flex-end; }
.cms-hero .lead { max-width:720px; color:#E7EDF7; font-size:clamp(1.08rem, 2vw, 1.42rem); }
.cms-hero .eyebrow { color:#D8E6FF; }
.hero-buttons { max-width:760px; }
@media (max-width: 760px) {
    .cms-hero,.cms-hero.hero-height-standard,.cms-hero.hero-height-full,.cms-hero.hero-height-tall{min-height:360px;align-items:end}
    .cms-hero.home-hero{min-height:460px}
    .cms-hero.hero-height-compact{min-height:300px}
    .cms-hero-media{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important}
    .cms-hero-overlay{background:linear-gradient(180deg,rgba(3,11,23,.2) 0%,rgba(3,11,23,.58) 40%,rgba(3,11,23,.92) 100%)!important}
    .cms-hero-content{position:relative;z-index:1;padding-block:68px 38px}
    .cms-hero h1{font-size:clamp(2.35rem,13vw,4.2rem);max-width:10ch}
    .cms-hero .lead{font-size:1.02rem;max-width:34ch;color:#F1F5FB}
    .cms-hero.align-center .cms-hero-content,.cms-hero.align-right .cms-hero-content{text-align:left}
    .cms-hero.align-center h1,.cms-hero.align-center .lead,.cms-hero.align-center .hero-buttons,.cms-hero.align-right h1,.cms-hero.align-right .lead,.cms-hero.align-right .hero-buttons{margin-left:0;margin-right:0;justify-content:flex-start}
}
.cms-hero.inner-cms-hero{min-height:32vh}
.cms-hero.inner-cms-hero.hero-height-compact{min-height:24vh}
.cms-hero.inner-cms-hero.hero-height-standard{min-height:32vh}
.cms-hero.inner-cms-hero.hero-height-tall{min-height:38vh}
.cms-hero.inner-cms-hero.hero-height-full{min-height:46vh}
.cms-hero.inner-cms-hero .cms-hero-content{padding-block:clamp(34px,5vw,68px)}
.site-slider:not(.slider-placement-homepage-hero){min-height:38vh}
@media (max-width:760px){
    .cms-hero.inner-cms-hero,.cms-hero.inner-cms-hero.hero-height-standard,.cms-hero.inner-cms-hero.hero-height-tall,.cms-hero.inner-cms-hero.hero-height-full{min-height:300px}
    .cms-hero.inner-cms-hero.hero-height-compact{min-height:260px}
    .cms-hero.inner-cms-hero .cms-hero-content{padding-block:54px 30px}
    .site-slider:not(.slider-placement-homepage-hero){min-height:300px}
}
.section.page-block{padding:42px 0}
.section.page-block+.section.page-block{padding-top:18px}
.page-block .container.grid-2{gap:30px;align-items:center}
.page-block .hero-media{border-radius:22px;box-shadow:0 22px 58px rgba(16,24,40,.16)}
.page-block .editorial-media{min-height:300px}
.page-block .editorial-media img{min-height:300px;object-position:center}
@media(max-width:760px){
    .section.page-block{padding:30px 0}
    .section.page-block+.section.page-block{padding-top:6px}
    .page-block .container.grid-2{gap:18px;overflow:hidden}
    .page-block .hero-media{display:block;width:100%;max-width:100%;min-width:0;margin:0;border-radius:20px;box-shadow:0 18px 44px rgba(16,24,40,.16)}
    .page-block .editorial-media{min-height:0;aspect-ratio:16/11}
    .page-block .editorial-media img{display:block;min-height:0;height:100%;width:100%;max-width:100%;object-fit:cover;object-position:center center}
}
@media(max-width:480px){
    .section.page-block{padding:24px 0}
    .page-block .container{width:min(100% - 36px,var(--container));overflow:hidden}
    .page-block .editorial-media{aspect-ratio:16/12}
}
.thank-you-hero{min-height:68vh;display:grid;align-items:center;color:white;background:radial-gradient(circle at 74% 18%,rgba(18,183,106,.3),transparent 30%),radial-gradient(circle at 14% 16%,rgba(47,124,255,.28),transparent 34%),linear-gradient(135deg,var(--navy-deep),var(--secondary));padding:72px 0}
.thank-you-panel{max-width:920px;padding:clamp(28px,5vw,58px);border:1px solid rgba(255,255,255,.16);border-radius:var(--radius-xl);background:linear-gradient(160deg,rgba(255,255,255,.12),rgba(255,255,255,.055));box-shadow:var(--shadow-premium);backdrop-filter:blur(20px)}
.thank-you-panel h1{max-width:12ch}
.thank-you-actions{display:flex;flex-wrap:wrap;gap:14px;margin:28px 0 34px}
.thank-you-next{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.thank-you-next article{padding:16px;border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-md);background:rgba(255,255,255,.08)}
.thank-you-next strong{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;margin-bottom:10px;background:linear-gradient(135deg,var(--primary),var(--primary-bright))}
.thank-you-next span{color:var(--accent-metallic);font-weight:800}
.thank-you-contact{background:linear-gradient(180deg,#F8FBFF,#EEF4FB)}
.thank-you-contact .card{display:grid;gap:12px}
.thank-you-contact .card .eyebrow{color:var(--primary);margin:0}
@media(max-width:760px){
    .thank-you-hero{min-height:auto;padding:42px 0}
    .thank-you-next{grid-template-columns:1fr}
    .thank-you-actions .btn{width:100%}
}

/* Safari travel redesign v0.5.1 */
:root {
    --primary: #F47B2F;
    --primary-bright: #FFB164;
    --secondary: #183024;
    --navy-deep: #101C15;
    --surface-dark: #142219;
    --surface-light: #F7F0E6;
    --accent: #B9A27D;
    --accent-metallic: #F1D6AA;
    --safari-cream: #FBF7EF;
    --safari-paper: #F5EFE5;
    --safari-ink: #27231D;
    --safari-muted: #736B5D;
    --safari-gold: #BE8B45;
    --font-serif: Georgia, "Times New Roman", serif;
}
body { color: var(--safari-ink); background: var(--safari-paper); }
.site-header { background: rgba(18, 29, 22, .96); border-bottom-color: rgba(241, 214, 170, .18); }
.header-inner { min-height: 86px; }
.brand { letter-spacing: .04em; text-transform: uppercase; }
.brand-mark { background: linear-gradient(135deg, #27452F, #C18A3E); box-shadow: 0 18px 42px rgba(146, 87, 32, .3); }
.primary-nav { color: #EFE4D2; }
h1, h2 { font-family: var(--font-serif); font-weight: 500; letter-spacing: -.01em; }
h3 { color: inherit; }
.btn { border-radius: 0; letter-spacing: .08em; text-transform: uppercase; font-size: 13px; }
.btn-primary { background: #F47B2F; color: #FFF8ED; box-shadow: 0 20px 44px rgba(244, 123, 47, .24); }
.btn-secondary { background: rgba(255,255,255,.08); border-color: rgba(241,214,170,.32); }
.eyebrow { color: var(--safari-gold); letter-spacing: .18em; }
.section { padding: 92px 0; background: var(--safari-paper); }
.section.dark { background: #101C15; color: #FCF8EF; }
.section-header p { color: var(--safari-muted); }
.dark .section-header p { color: #CDBB9C; }
.cms-hero { min-height: 72vh; background: #101C15; }
.cms-hero.home-hero { min-height: 78vh; }
.cms-hero.inner-cms-hero { min-height: 42vh; }
.cms-hero-overlay,
.cms-hero-overlay.overlay-medium { background: linear-gradient(90deg, rgba(18,29,22,.82), rgba(28,45,34,.42), rgba(18,29,22,.18)); }
.cms-hero-overlay.overlay-light { background: linear-gradient(90deg, rgba(18,29,22,.58), rgba(28,45,34,.24), rgba(18,29,22,.08)); }
.cms-hero-overlay.overlay-strong { background: linear-gradient(90deg, rgba(18,29,22,.9), rgba(28,45,34,.62), rgba(18,29,22,.34)); }
.cms-hero-content { padding-block: clamp(78px, 11vw, 150px); }
.cms-hero h1 { max-width: 13ch; font-size: clamp(3.1rem, 8vw, 7.4rem); text-shadow: 0 18px 48px rgba(0,0,0,.36); }
.cms-hero .lead { color: #FFF8ED; font-family: var(--font-serif); font-size: clamp(1.28rem, 2.6vw, 2.15rem); max-width: 780px; }
.cms-hero .button-row { margin-top: 34px; }
.safari-intro-section { background: var(--safari-cream); }
.safari-intro-grid { display: grid; grid-template-columns: .95fr 1fr .48fr; gap: 42px; align-items: start; }
.safari-intro-grid h2 { font-size: clamp(2.3rem, 4.5vw, 4.2rem); }
.safari-intro-copy { color: #61584C; columns: 2 260px; column-gap: 34px; }
.safari-stats { display: grid; gap: 18px; border-left: 1px solid #E3D6C2; padding-left: 26px; }
.safari-stats div { display: grid; grid-template-columns: 70px 1fr; gap: 14px; align-items: center; }
.safari-stats strong { font-family: var(--font-serif); font-size: 2.1rem; color: var(--primary); line-height: 1; }
.safari-stats span { color: #61584C; font-weight: 800; }
.safari-photo-strip { display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; margin-top: 56px; }
.safari-photo-card { position: relative; min-height: 230px; overflow: hidden; color: white; background: #D9C7AA; }
.safari-photo-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.safari-photo-card::after { content:""; position:absolute; inset:45% 0 0; background: linear-gradient(0deg, rgba(16,28,21,.78), transparent); }
.safari-photo-card span { position:absolute; z-index:1; left:18px; right:18px; bottom:16px; font-family: var(--font-serif); font-size:1.45rem; line-height:1.05; text-shadow: 0 12px 30px rgba(0,0,0,.42); }
.safari-photo-card:hover img { transform: scale(1.04); }
.safari-centered { text-align: center; margin-inline: auto; }
.safari-offers { padding-top: 96px; }
.safari-card-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.safari-offer-card { overflow:hidden; border:1px solid rgba(241,214,170,.2); background:rgba(255,255,255,.055); color:#FFF8ED; box-shadow:0 20px 60px rgba(0,0,0,.22); }
.safari-offer-media { display:block; aspect-ratio: 16 / 11; overflow:hidden; background:#273827; }
.safari-offer-media img { width:100%; height:100%; object-fit:cover; transition: transform .35s ease; }
.safari-offer-card:hover img { transform:scale(1.04); }
.safari-offer-card div { padding:22px; }
.safari-offer-card p { color:#D7C8AE; }
.safari-offer-card a:not(.safari-offer-media) { color:#FFB164; font-weight:900; }
.badge { background:#FFF2DD; color:#B85E23; }
.dark .badge,.safari-offer-card .badge { background:#FFF2DD; color:#B85E23; }
.safari-packages { background:#F8F1E8; }
.safari-package-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.safari-package-card { background:white; border:1px solid #E7D7C1; box-shadow:0 16px 42px rgba(78,45,22,.08); overflow:hidden; }
.safari-package-card img { width:100%; aspect-ratio:16/10; object-fit:cover; background:#DED0BA; }
.safari-package-card div { padding:24px; }
.safari-package-card p { color:#665D51; }
.safari-review-proof { background:#FBF7EF; }
.safari-review-grid { display:grid; grid-template-columns: 300px minmax(0, 1fr); gap:42px; align-items:center; }
.safari-score-card { display:grid; justify-items:center; gap:24px; border-right:1px solid #E5D7C2; padding-right:36px; }
.score-ring { --score: 92; width:180px; height:180px; border-radius:50%; display:grid; place-items:center; text-align:center; background:conic-gradient(var(--primary) calc(var(--score) * 1%), #F2E3CE 0); position:relative; color:#544A3D; }
.score-ring::before { content:""; position:absolute; inset:24px; border-radius:50%; background:#FBF7EF; }
.score-ring strong,.score-ring span { position:relative; z-index:1; display:block; }
.score-ring strong { font-size:2.35rem; line-height:1; }
.score-ring span { text-transform:uppercase; letter-spacing:.12em; font-weight:900; font-size:12px; color:#7E7467; }
.score-bars { width:100%; display:grid; gap:12px; }
.score-bars p { display:grid; grid-template-columns:80px 1fr 24px; gap:10px; align-items:center; margin:0; color:#6B6256; font-size:13px; font-weight:800; }
.score-bars i { height:8px; border-radius:999px; background:linear-gradient(90deg,#A5A77E var(--bar),#E6DED2 0); }
.review-carousel-cards { display:grid; grid-template-columns:repeat(3,minmax(240px,1fr)); gap:24px; overflow:hidden; }
.safari-review-card { min-height:260px; padding:28px; border:1px solid #E7D7C1; background:white; box-shadow:0 18px 46px rgba(72,44,23,.08); }
.safari-review-card blockquote { margin:0 0 18px; font-family:var(--font-serif); font-size:1.45rem; line-height:1.25; color:#3D352C; }
.review-meta { color:#7E7467; font-weight:900; font-size:12px; letter-spacing:.08em; text-transform:uppercase; }
.stars { color:#F4A340; letter-spacing:.08em; }
.safari-booking-section { background:#142219; color:#F8F1E8; }
.safari-booking-grid { display:grid; grid-template-columns:.9fr 1fr; gap:58px; align-items:start; }
.safari-booking-copy { max-width:560px; }
.safari-booking-copy h2 { font-size:clamp(2.4rem,5vw,4.5rem); }
.safari-booking-copy p { color:#CDBB9C; font-size:1.1rem; }
.safari-checks { display:grid; gap:12px; margin:28px 0 0; padding:0; list-style:none; color:#DDCFB8; }
.safari-checks li { position:relative; padding-left:28px; }
.safari-checks li::before { content:""; position:absolute; left:0; top:.7em; width:9px; height:9px; border-radius:50%; background:#F47B2F; box-shadow:0 0 0 6px rgba(244,123,47,.16); }
.booking-form { background:transparent; border:0; box-shadow:none; backdrop-filter:none; padding:0; border-radius:0; grid-template-columns:1fr 1fr; }
.booking-form::before { display:none; }
.booking-form-head { grid-column:1/-1; margin-bottom:2px; }
.booking-form-head h2 { margin-bottom:8px; }
.booking-form-head p:not(.eyebrow), .booking-privacy { color:#AFA796; font-size:.92rem; margin:0; }
.booking-form label { color:#D8CCB8; text-transform:uppercase; letter-spacing:.16em; font-size:11px; }
.booking-form input,.booking-form textarea,.booking-form select { margin-top:8px; min-height:54px; border:0; border-radius:0; background:#F8F3EA; color:#2F2A22; box-shadow:none; }
.booking-form textarea { min-height:150px; }
.booking-form label:has(textarea), .booking-form .btn, .booking-privacy { grid-column:1/-1; }
.booking-date-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; grid-column:1/-1; }
.booking-form .btn { justify-self:start; min-width:230px; background:#BE8B45; }
.safari-journal-section { background:#F5EFE5; }
.safari-journal-list { display:grid; gap:16px; }
.safari-journal-card,.safari-faq { border:1px solid #E7D7C1; background:#FFFDF8; padding:22px; box-shadow:0 14px 34px rgba(78,45,22,.06); }
.safari-journal-card p { color:#665D51; }
.safari-journal-card a:last-child { color:#D56D29; font-weight:900; }
.safari-faq { padding:0; }
.safari-faq button { padding:20px; background:#FFFDF8; color:#27231D; }
.safari-faq .accordion-panel { padding:0 20px 20px; color:#665D51; }
.safari-footer { background:#121D15; color:#D8CCB8; padding:80px 0 0; }
.safari-footer-grid { display:grid; grid-template-columns:1.5fr 1fr 1fr 1.4fr 1fr; gap:38px; }
.safari-footer h2 { font-family:var(--font-body); font-size:13px; text-transform:uppercase; letter-spacing:.08em; color:#D8A768; margin-bottom:18px; }
.safari-footer a { display:block; color:#D8CCB8; margin:10px 0; }
.safari-footer a:hover { color:#FFF7E8; }
.safari-footer-brand .brand { color:white; margin-bottom:18px; }
.safari-footer-brand p { max-width:270px; color:#B8AE9E; }
.safari-footer-proof { margin-top:58px; padding:22px 0; display:flex; flex-wrap:wrap; gap:28px; border-top:1px solid rgba(241,214,170,.13); border-bottom:1px solid rgba(241,214,170,.13); color:#AAA292; }
.safari-footer-proof .stars { color:#D8A768; }
.footer-bottom { padding:22px 0; margin-top:0; border-top:0; color:#908777; }
.footer-bottom button { color:#D8CCB8; border-color:rgba(241,214,170,.24); }
.reviews-page-proof { padding-top:86px; }
.safari-review-gallery { background:#FBF7EF; padding-top:0; }
.safari-large-photo-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.safari-large-photo-grid figure { margin:0; position:relative; overflow:hidden; min-height:460px; background:#D9C7AA; }
.safari-large-photo-grid img { width:100%; height:100%; min-height:460px; object-fit:cover; }
.safari-large-photo-grid figcaption { position:absolute; left:20px; bottom:18px; color:white; font-family:var(--font-serif); font-size:1.7rem; text-shadow:0 10px 32px rgba(0,0,0,.55); }
.contact-page-section { background:#142219; }
.contact-page-section .contact-panel { align-items:start; }
.contact-copy { border:1px solid rgba(241,214,170,.22); background:rgba(255,255,255,.055); padding:clamp(24px,3vw,36px); color:#F8F1E8; }
.contact-copy p { color:#D8CCB8; }
.contact-page-section .contact-form { background:transparent; border:0; box-shadow:none; }
.contact-page-section .contact-form label { color:#D8CCB8; text-shadow:none; }
.contact-page-section .contact-form input,.contact-page-section .contact-form textarea,.contact-page-section .contact-form select { background:#F8F3EA; color:#27231D; }
@media (max-width: 980px) {
    .safari-intro-grid,.safari-booking-grid,.safari-review-grid { grid-template-columns:1fr; }
    .safari-stats { border-left:0; border-top:1px solid #E3D6C2; padding:24px 0 0; grid-template-columns:repeat(3,1fr); }
    .safari-stats div { grid-template-columns:1fr; }
    .safari-photo-strip,.safari-card-grid,.safari-package-grid,.review-carousel-cards,.safari-large-photo-grid { grid-template-columns:1fr 1fr; }
    .safari-footer-grid { grid-template-columns:1fr 1fr; }
    .safari-score-card { border-right:0; padding-right:0; border-bottom:1px solid #E5D7C2; padding-bottom:28px; }
}
@media (max-width: 680px) {
    .header-inner { min-height:78px; }
    .brand { font-size:.92rem; }
    .cms-hero,.cms-hero.home-hero { min-height:560px; align-items:end; }
    .cms-hero.inner-cms-hero { min-height:330px; }
    .cms-hero-content { padding-block:72px 46px; }
    .cms-hero h1 { font-size:clamp(2.6rem,14vw,4.4rem); max-width:9.5ch; }
    .cms-hero .lead { font-size:1.22rem; }
    .section { padding:62px 0; }
    .safari-intro-copy { columns:auto; }
    .safari-stats,.safari-photo-strip,.safari-card-grid,.safari-package-grid,.review-carousel-cards,.safari-large-photo-grid,.safari-footer-grid { grid-template-columns:1fr; }
    .safari-photo-card { min-height:260px; }
    .booking-form { grid-template-columns:1fr; }
    .booking-date-grid { grid-template-columns:1fr; gap:14px; }
    .booking-form .btn { width:100%; }
    .safari-footer-proof { display:grid; gap:10px; }
    .safari-large-photo-grid figure,.safari-large-photo-grid img { min-height:330px; }
}

/* v0.5.2 refinement: smaller heroes, 8-card experiences, guesthouse page, score ring fit */
.cms-hero { min-height: 56vh; }
.cms-hero.home-hero { min-height: 62vh; }
.cms-hero.inner-cms-hero { min-height: 32vh; }
.cms-hero-content { padding-block: clamp(54px, 7vw, 104px); }
.cms-hero h1 { font-size: clamp(2.45rem, 6vw, 5.9rem); max-width: 14ch; }
.cms-hero .lead { font-size: clamp(1.08rem, 1.8vw, 1.55rem); max-width: 720px; }
.safari-card-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.safari-offer-card div { padding: 18px; }
.safari-offer-card h3 { font-size: 1.05rem; }
.safari-offer-card p { font-size: .94rem; }
.safari-offer-media { aspect-ratio: 16 / 10; }
.score-ring { width: 176px; height: 176px; }
.score-ring::before { inset: 30px; }
.score-ring strong,
.score-ring span { grid-area: 1 / 1; }
.score-ring strong { align-self: center; transform: translateY(-8px); font-size: clamp(1.75rem, 2.5vw, 2.1rem); white-space: nowrap; }
.score-ring span { align-self: center; transform: translateY(34px); font-size: 10px; letter-spacing: .18em; }
.guesthouse-overview-section { background: #FBF7EF; }
.guesthouse-overview-section .grid-2 { align-items: center; border-top: 1px solid #E7D7C1; border-bottom: 1px solid #E7D7C1; padding-block: 46px; }
.guesthouse-feature-section { background: #F5EFE5; padding-top: 0; }
.guesthouse-feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.guesthouse-feature-grid article { background: #FFFDF8; border: 1px solid #E7D7C1; padding: 30px; box-shadow: 0 16px 42px rgba(78,45,22,.08); }
.guesthouse-feature-grid span { display: inline-flex; margin-bottom: 18px; color: #F47B2F; font-weight: 900; letter-spacing: .16em; }
.guesthouse-feature-grid h2 { font-size: clamp(1.6rem, 2.4vw, 2.4rem); }
.guesthouse-feature-grid p { color: #665D51; }
.guesthouse-mini-packages { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.guesthouse-mini-packages span { border: 1px solid rgba(241,214,170,.28); background: rgba(255,255,255,.08); color: #F8F1E8; padding: 10px 12px; font-weight: 800; }
@media (max-width: 1100px) {
    .safari-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .cms-hero,.cms-hero.home-hero { min-height: 420px; }
    .cms-hero.inner-cms-hero { min-height: 270px; }
    .cms-hero-content { padding-block: 58px 34px; }
    .cms-hero h1 { font-size: clamp(2.15rem, 11vw, 3.6rem); max-width: 11ch; }
    .cms-hero .lead { font-size: 1.05rem; }
    .guesthouse-feature-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
    .safari-card-grid { grid-template-columns: 1fr; }
    .score-ring { width: 158px; height: 158px; }
    .score-ring::before { inset: 27px; }
    .score-ring strong { font-size: 1.75rem; transform: translateY(-7px); }
.score-ring span { transform: translateY(30px); font-size: 9px; }
}

/* v0.5.3 menu and login support */
.header-inner { align-items: center; }
.primary-nav { flex-wrap: wrap; justify-content: flex-end; row-gap: 8px; column-gap: 18px; max-width: 760px; }
.primary-nav a { white-space: nowrap; }
@media (max-width: 1120px) {
    .primary-nav { column-gap: 13px; font-size: 13px; max-width: 650px; }
    .brand { font-size: .95rem; }
}
@media (max-width: 900px) {
    .primary-nav { max-width: none; flex-wrap: nowrap; }
}

/* v0.5.4 guesthouse page */
.guesthouse-split { display:grid; grid-template-columns:.86fr 1.14fr; gap:56px; align-items:start; }
.guesthouse-split .section-header { margin-bottom:0; }
.guesthouse-split h2 { font-size:clamp(2.35rem,4.6vw,4.6rem); }
.guesthouse-copy { color:#62594C; font-size:1.08rem; }
.guesthouse-showcase-section { background:#F8F1E8; padding-top:0; }
.guesthouse-showcase-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:28px; align-items:stretch; }
.guesthouse-gallery-card { position:relative; overflow:hidden; min-height:520px; background:#D9C7AA; box-shadow:0 24px 70px rgba(78,45,22,.12); }
.guesthouse-gallery-card img { width:100%; height:100%; min-height:520px; object-fit:cover; }
.guesthouse-gallery-card::after { content:""; position:absolute; inset:40% 0 0; background:linear-gradient(0deg,rgba(18,29,22,.78),transparent); }
.guesthouse-gallery-card span { position:absolute; z-index:1; left:28px; right:28px; bottom:26px; color:white; font-family:var(--font-serif); font-size:clamp(1.8rem,3vw,3.1rem); line-height:1.05; max-width:14ch; text-shadow:0 14px 34px rgba(0,0,0,.42); }
.guesthouse-amenity-list { display:grid; gap:18px; }
.guesthouse-amenity-list article { background:#FFFDF8; border:1px solid #E7D7C1; padding:28px; display:grid; align-content:center; }
.guesthouse-amenity-list strong { color:#F47B2F; letter-spacing:.18em; font-size:12px; margin-bottom:12px; }
.guesthouse-amenity-list h3 { font-family:var(--font-serif); font-size:clamp(1.55rem,2.3vw,2.2rem); }
.guesthouse-amenity-list p { color:#665D51; margin:0; }
.guesthouse-photo-row { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:28px; }
.guesthouse-photo-row figure { margin:0; position:relative; overflow:hidden; min-height:250px; background:#D9C7AA; }
.guesthouse-photo-row img { width:100%; height:100%; min-height:250px; object-fit:cover; }
.guesthouse-photo-row figcaption { position:absolute; left:16px; bottom:14px; color:white; font-weight:900; text-shadow:0 10px 26px rgba(0,0,0,.48); }
.guesthouse-booking-section { background:radial-gradient(circle at 10% 10%,rgba(244,123,47,.12),transparent 28%),#142219; }
@media (max-width: 900px) {
    .guesthouse-split,.guesthouse-showcase-grid { grid-template-columns:1fr; }
    .guesthouse-gallery-card,.guesthouse-gallery-card img { min-height:380px; }
    .guesthouse-photo-row { grid-template-columns:1fr; }
}
