/*
Theme Name: AsiamTravel Originale
Theme URI:
Author: AsiamTravel
Author URI:
Description: Custom theme for AsiamTravel.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.8
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: asiamtravel-originale
*/

/* ==========================================================================
   Self-hosted fonts (no external Google Fonts requests)
   ========================================================================== */

@font-face {
  font-family: 'Cormorant';
  font-style: normal;
  font-weight: 300 600;
  font-display: swap;
  src: url('assets/fonts/cormorant-variable.woff2') format('woff2-variations'),
       url('assets/fonts/cormorant-variable.woff2') format('woff2');
}

@font-face {
  font-family: 'Cormorant';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('assets/fonts/cormorant-italic-400.woff2') format('woff2');
}

@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('assets/fonts/jost-variable.woff2') format('woff2-variations'),
       url('assets/fonts/jost-variable.woff2') format('woff2');
}

/* ==========================================================================
   ASIAM Travel — Design tokens & component library
   Primitives -> semantics -> components. No raw values in component rules.
   ========================================================================== */

:root {

  /* -- Color primitives -- */
  --asiam-purple-900: #3E0F2D;
  --asiam-purple-700: #5C1943;
  --asiam-purple-100: rgba(92, 25, 67, 0.08);
  --asiam-purple-a15: rgba(92, 25, 67, 0.15);
  --asiam-purple-a55: rgba(98, 24, 73, 0.55);
  --asiam-purple-a82: rgba(62, 15, 45, 0.82);
  --asiam-purple-badge-bg: rgba(92, 25, 67, 0.85);

  --asiam-gold-600: #B98B2E;
  --asiam-gold-300: #E4BA6A;
  --asiam-gold-badge-bg: rgba(184, 136, 42, 0.85);

  --asiam-blue-700: #1C3C64;
  --asiam-blue-100: rgba(28, 60, 100, 0.08);
  --asiam-blue-badge-bg: rgba(28, 60, 100, 0.85);

  --asiam-green-600: #16A34A;
  --asiam-green-badge-bg: rgba(22, 163, 74, 0.85);

  --asiam-amber-600: #D97706;
  --asiam-red-600: #DC2626;

  --asiam-ink-900: #18121B;

  --asiam-neutral-700: #4A424C;
  --asiam-neutral-500: #6E6570;
  --asiam-neutral-400: #9992A0;
  --asiam-neutral-300: #B4AEB8;
  --asiam-neutral-250: #D8D3D6;
  --asiam-neutral-200: #E7E3E6;
  --asiam-neutral-150: #EDE9E6;
  --asiam-neutral-100: #F4F2F0;
  --asiam-neutral-050: #E4DFDB;

  --asiam-white: #FFFFFF;
  --asiam-white-a10: rgba(255, 255, 255, 0.1);
  --asiam-white-a12: rgba(255, 255, 255, 0.12);
  --asiam-white-a14: rgba(255, 255, 255, 0.14);
  --asiam-white-a16: rgba(255, 255, 255, 0.16);
  --asiam-white-a50: rgba(255, 255, 255, 0.5);
  --asiam-white-a55: rgba(255, 255, 255, 0.55);
  --asiam-white-a60: rgba(255, 255, 255, 0.6);
  --asiam-white-a65: rgba(255, 255, 255, 0.65);
  --asiam-white-a70: rgba(255, 255, 255, 0.7);
  --asiam-white-a72: rgba(255, 255, 255, 0.72);
  --asiam-white-a85: rgba(255, 255, 255, 0.85);

  /* -- Font primitives -- */
  --asiam-font-serif: 'Cormorant', serif;
  --asiam-font-sans: 'Jost', sans-serif;

  /* -- Type scale primitives -- */
  --asiam-text-2xs: 0.64rem;
  --asiam-text-xs: 0.72rem;
  --asiam-text-sm: 0.8rem;
  --asiam-text-base: 0.88rem;
  --asiam-text-md: 0.95rem;
  --asiam-text-lg: 1.1rem;
  --asiam-text-xl: 1.3rem;
  --asiam-text-2xl: 1.6rem;
  --asiam-text-3xl: 2rem;
  --asiam-text-display-sm: clamp(1.6rem, 3vw, 2.2rem);
  --asiam-text-display-md: clamp(2rem, 4vw, 2.8rem);
  --asiam-text-display-lg: clamp(2.2rem, 4.5vw, 3.2rem);
  --asiam-text-display-xl: clamp(2.6rem, 5.5vw, 4.2rem);

  /* -- Spacing primitives -- */
  --asiam-space-3xs: 0.25rem;
  --asiam-space-2xs: 0.375rem;
  --asiam-space-xs: 0.5rem;
  --asiam-space-sm: 0.75rem;
  --asiam-space-md: 1rem;
  --asiam-space-lg: 1.5rem;
  --asiam-space-xl: 2rem;
  --asiam-space-2xl: 2.5rem;
  --asiam-space-3xl: 3rem;
  --asiam-space-4xl: 4rem;

  /* -- Radius primitives -- */
  --asiam-radius-sm: 2px;
  --asiam-radius-md: 4px;
  --asiam-radius-pill: 999px;
  --asiam-radius-circle: 50%;

  /* -- Layout primitives -- */
  --asiam-container-width: 1360px;
  --asiam-container-width-narrow: 1160px;
  --asiam-border-width: 1px;
  --asiam-border-width-strong: 2px;

  /* ========================================================================
     Semantic tokens
     ==================================================================== */

  --asiam-color-bg: var(--asiam-white);
  --asiam-color-bg-inverse: var(--asiam-ink-900);
  --asiam-color-bg-accent: var(--asiam-purple-700);
  --asiam-color-surface: var(--asiam-neutral-100);
  --asiam-color-surface-alt: var(--asiam-neutral-150);
  --asiam-color-surface-inverse: var(--asiam-white-a10);

  --asiam-color-text: var(--asiam-neutral-700);
  --asiam-color-text-strong: var(--asiam-ink-900);
  --asiam-color-text-muted: var(--asiam-neutral-500);
  --asiam-color-text-faint: var(--asiam-neutral-400);
  --asiam-color-text-subtle: var(--asiam-neutral-300);

  --asiam-color-border: var(--asiam-neutral-200);
  --asiam-color-border-soft: var(--asiam-neutral-150);
  --asiam-color-border-inverse: var(--asiam-white-a16);

  --asiam-color-accent: var(--asiam-purple-700);
  --asiam-color-accent-strong: var(--asiam-purple-900);
  --asiam-color-accent-soft: var(--asiam-purple-100);

  --asiam-color-highlight: var(--asiam-gold-600);
  --asiam-color-highlight-soft: var(--asiam-gold-300);

  --asiam-color-success: var(--asiam-green-600);
  --asiam-color-warning: var(--asiam-amber-600);
  --asiam-color-danger: var(--asiam-red-600);
  --asiam-color-info: var(--asiam-blue-700);
  --asiam-color-info-soft: var(--asiam-blue-100);

  --asiam-color-text-inverse: var(--asiam-white);
  --asiam-color-text-inverse-soft: var(--asiam-white-a85);
  --asiam-color-text-inverse-muted: var(--asiam-white-a70);
  --asiam-color-text-inverse-faint: var(--asiam-white-a60);
  --asiam-color-text-inverse-subtle: var(--asiam-white-a55);
  --asiam-color-text-inverse-dim: var(--asiam-white-a50);

  --asiam-color-hero-overlay: var(--asiam-purple-a55);
  --asiam-color-hero-overlay-strong: var(--asiam-purple-a82);
  --asiam-color-selection-bg: var(--asiam-purple-a15);

  --asiam-color-toggle-off: var(--asiam-neutral-250);
  --asiam-color-toggle-on: var(--asiam-purple-700);

  --asiam-color-badge-gold-bg: var(--asiam-gold-badge-bg);
  --asiam-color-badge-blue-bg: var(--asiam-blue-badge-bg);
  --asiam-color-badge-green-bg: var(--asiam-green-badge-bg);
  --asiam-color-badge-purple-bg: var(--asiam-purple-badge-bg);

  --asiam-font-family-display: var(--asiam-font-serif);
  --asiam-font-family-body: var(--asiam-font-sans);

  --asiam-space-section-x: clamp(1.25rem, 4vw, 3.5rem);
  --asiam-space-section-y-sm: clamp(2.5rem, 5vw, 3.5rem);
  --asiam-space-section-y-md: clamp(3rem, 6vw, 4.5rem);
  --asiam-space-section-y-lg: clamp(4rem, 7vw, 6rem);
}

/* ==========================================================================
   Reset / base
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  font-family: var(--asiam-font-family-body);
  color: var(--asiam-color-text);
  background: var(--asiam-color-bg);
  line-height: 1.6;
}

a {
  color: inherit;
  text-decoration: none;
}

a:hover { color: var(--asiam-color-accent); }

img, svg { display: block; max-width: 100%; }

::selection { background: var(--asiam-color-selection-bg); }

/* ==========================================================================
   Layout
   ========================================================================== */

.asiam-container {
  max-width: var(--asiam-container-width);
  margin: 0 auto;
  padding-left: var(--asiam-space-section-x);
  padding-right: var(--asiam-space-section-x);
}

.asiam-container--narrow { max-width: var(--asiam-container-width-narrow); }

.asiam-section { padding-top: var(--asiam-space-section-y-md); padding-bottom: var(--asiam-space-section-y-md); }
.asiam-section--sm { padding-top: var(--asiam-space-section-y-sm); padding-bottom: var(--asiam-space-section-y-sm); }
.asiam-section--lg { padding-top: var(--asiam-space-section-y-lg); padding-bottom: var(--asiam-space-section-y-lg); }
.asiam-section--bordered { border-top: var(--asiam-border-width) solid var(--asiam-color-border); }
.asiam-section--inverse { background: var(--asiam-color-bg-inverse); }
.asiam-section--surface { background: var(--asiam-color-surface); }

.asiam-grid { display: grid; gap: var(--asiam-space-lg); }
.asiam-grid--2 { grid-template-columns: 1fr 1fr; }
.asiam-grid--3 { grid-template-columns: repeat(3, 1fr); }

@media (max-width: 880px) {
  .asiam-grid--2, .asiam-grid--3 { grid-template-columns: 1fr !important; }
}

.asiam-layout {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: var(--asiam-space-3xl);
  align-items: start;
}

.asiam-layout--narrow { grid-template-columns: 1fr 280px; }
.asiam-layout--toc { grid-template-columns: 220px 1fr; gap: 3.5rem; }

.asiam-sidebar { position: sticky; top: 24px; display: flex; flex-direction: column; gap: var(--asiam-space-lg); }
.asiam-toc-wrap { position: sticky; top: 24px; }

@media (max-width: 960px) {
  .asiam-layout, .asiam-layout--narrow, .asiam-layout--toc { grid-template-columns: 1fr !important; }
  .asiam-sidebar { position: static !important; }
  .asiam-toc-wrap { position: static !important; order: -1; }
}

/* ==========================================================================
   Typography
   ========================================================================== */

.asiam-eyebrow {
  display: inline-block;
  font-size: var(--asiam-text-2xs);
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--asiam-color-highlight);
}

.asiam-eyebrow--inverse { color: var(--asiam-color-highlight-soft); }

.asiam-heading {
  font-family: var(--asiam-font-family-display);
  font-weight: 400;
  letter-spacing: -0.02em;
  color: var(--asiam-color-text-strong);
  margin: 0;
}

.asiam-heading--xl { font-size: var(--asiam-text-display-xl); line-height: 1.05; }
.asiam-heading--lg { font-size: var(--asiam-text-display-lg); line-height: 1.1; }
.asiam-heading--md { font-size: var(--asiam-text-display-md); }
.asiam-heading--sm { font-size: var(--asiam-text-display-sm); }
.asiam-heading--inverse { color: var(--asiam-color-text-inverse); }
.asiam-heading--medium { font-weight: 500; }

.asiam-lede {
  font-size: var(--asiam-text-md);
  color: var(--asiam-color-text-muted);
  line-height: 1.8;
  max-width: 560px;
  margin-top: var(--asiam-space-md);
}

.asiam-breadcrumb {
  font-size: var(--asiam-text-xs);
  color: var(--asiam-color-text-faint);
  margin-bottom: var(--asiam-space-md);
}

.asiam-breadcrumb a { color: var(--asiam-color-text-faint); }

/* Long-form article / legal prose */
.asiam-article p,
.asiam-legal p {
  font-size: var(--asiam-text-md);
  color: var(--asiam-color-text);
  line-height: 1.9;
  margin: 0 0 1.4rem;
}

.asiam-article h2,
.asiam-legal h2 {
  font-family: var(--asiam-font-family-display);
  font-weight: 500;
  font-size: var(--asiam-text-2xl);
  color: var(--asiam-color-text-strong);
  margin: 2.4rem 0 1rem;
  scroll-margin-top: 24px;
}

.asiam-legal h2 { font-size: 1.4rem; margin: 2.2rem 0 0.9rem; }

.asiam-legal h3 {
  font-family: var(--asiam-font-family-display);
  font-weight: 500;
  font-size: var(--asiam-text-lg);
  color: var(--asiam-color-text-strong);
  margin: 1.6rem 0 0.6rem;
  scroll-margin-top: 24px;
}

.asiam-article li, .asiam-legal li {
  font-size: var(--asiam-text-md);
  color: var(--asiam-color-text);
  line-height: 1.9;
  margin-bottom: var(--asiam-space-xs);
}

.asiam-legal p, .asiam-legal li { font-size: var(--asiam-text-base); line-height: 1.85; }

.asiam-pullquote {
  border-left: var(--asiam-border-width-strong) solid var(--asiam-color-accent);
  padding-left: 1.2rem;
  font-family: var(--asiam-font-family-display);
  font-size: var(--asiam-text-xl);
  font-style: italic;
  color: var(--asiam-color-text-strong);
  margin: var(--asiam-space-xl) 0;
}

.asiam-toc { border-left: var(--asiam-border-width-strong) solid var(--asiam-color-border); padding-left: var(--asiam-space-md); }

.asiam-toc-title {
  font-size: var(--asiam-text-2xs);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--asiam-color-text-muted);
  margin-bottom: var(--asiam-space-sm);
}

.asiam-toc-title + .asiam-toc-title { margin-top: 1.2rem; }

.asiam-toc a {
  display: block;
  font-size: var(--asiam-text-xs);
  color: var(--asiam-color-text-muted);
  padding: 6px 0;
}

/* ==========================================================================
   Buttons
   ========================================================================== */

.asiam-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--asiam-font-family-body);
  font-size: var(--asiam-text-xs);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 14px 28px;
  border-radius: var(--asiam-radius-sm);
  border: var(--asiam-border-width) solid transparent;
  cursor: pointer;
}

.asiam-btn--sm { padding: 11px 22px; font-weight: 600; }
.asiam-btn--block { display: flex; width: 100%; padding: 13px; }

.asiam-btn--primary { background: var(--asiam-color-accent); color: var(--asiam-color-text-inverse); }
.asiam-btn--primary:hover { background: var(--asiam-color-accent-strong); color: var(--asiam-color-text-inverse); }
.asiam-btn--light { background: var(--asiam-color-bg); color: var(--asiam-color-text-strong); }
.asiam-btn--outline { background: transparent; border-color: var(--asiam-color-border); color: var(--asiam-color-text-strong); }
.asiam-btn--outline-inverse { background: transparent; border-color: var(--asiam-color-border-inverse); color: var(--asiam-color-text-inverse); }
.asiam-btn--text { padding: 0; background: none; border: none; font-weight: 600; color: var(--asiam-color-accent); text-transform: none; letter-spacing: normal; }

.asiam-link-arrow {
  font-size: var(--asiam-text-xs);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--asiam-color-accent);
}

.asiam-filter-btn {
  padding: 8px 18px;
  border-radius: var(--asiam-radius-sm);
  font-size: var(--asiam-text-xs);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  font-family: var(--asiam-font-family-body);
  background: var(--asiam-color-bg);
  color: var(--asiam-color-text-muted);
  border: var(--asiam-border-width) solid var(--asiam-color-border);
}

.asiam-filter-btn.is-active {
  background: var(--asiam-color-accent);
  color: var(--asiam-color-text-inverse);
  border-color: var(--asiam-color-accent);
}

/* ==========================================================================
   Badges
   ========================================================================== */

.asiam-badge {
  display: inline-block;
  font-size: var(--asiam-text-2xs);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: var(--asiam-radius-sm);
  color: var(--asiam-color-text-inverse);
}

.asiam-badge--photo {
  position: absolute;
  top: 10px;
  left: 10px;
  font-size: 0.6rem;
  padding: 4px 9px;
}

.asiam-badge--soft { color: var(--asiam-color-accent); background: var(--asiam-color-accent-soft); }
.asiam-badge--info { color: var(--asiam-color-info); background: var(--asiam-color-info-soft); }

.asiam-badge--gold { background: var(--asiam-color-badge-gold-bg); }
.asiam-badge--blue { background: var(--asiam-color-badge-blue-bg); }
.asiam-badge--green { background: var(--asiam-color-badge-green-bg); }
.asiam-badge--purple { background: var(--asiam-color-badge-purple-bg); }

/* ==========================================================================
   Photo placeholder (temporary, until real photography is wired in)
   ========================================================================== */

.asiam-ph {
  background-image: repeating-linear-gradient(135deg, var(--asiam-color-border-soft) 0px, var(--asiam-color-border-soft) 11px, var(--asiam-neutral-050) 11px, var(--asiam-neutral-050) 22px);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  border-radius: var(--asiam-radius-md);
}

.asiam-ph-label {
  font-family: var(--asiam-font-family-body);
  font-size: 0.66rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--asiam-color-text-faint);
  background: var(--asiam-white-a72);
  padding: 5px 10px;
  border-radius: var(--asiam-radius-sm);
}

/* ==========================================================================
   Forms
   ========================================================================== */

.asiam-label {
  display: block;
  font-size: var(--asiam-text-2xs);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--asiam-color-text-muted);
  margin-bottom: 0.45rem;
}

.asiam-input {
  width: 100%;
  padding: 11px 13px;
  border: var(--asiam-border-width) solid var(--asiam-color-border);
  border-radius: var(--asiam-radius-sm);
  font-family: var(--asiam-font-family-body);
  font-size: var(--asiam-text-base);
  color: var(--asiam-color-text-strong);
  background: var(--asiam-color-bg);
  outline: none;
}

.asiam-input:focus { border-color: var(--asiam-color-accent); }
.asiam-input::placeholder { color: var(--asiam-color-text-subtle); }
.asiam-input--select { cursor: pointer; }
.asiam-input--textarea { min-height: 100px; resize: vertical; }

.asiam-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--asiam-space-md); }

.asiam-contact-grid { display: grid; grid-template-columns: 1fr 380px; gap: var(--asiam-space-3xl); align-items: start; }

.asiam-newsletter-form { display: flex; gap: var(--asiam-space-sm); flex-wrap: wrap; justify-content: center; }
.asiam-newsletter-form .asiam-input { flex: 1; min-width: 220px; max-width: 320px; }

@media (max-width: 880px) {
  .asiam-form-row, .asiam-contact-grid { grid-template-columns: 1fr !important; }
}

/* ==========================================================================
   Site header / navigation
   ========================================================================== */

.asiam-header { border-bottom: var(--asiam-border-width) solid var(--asiam-color-border); }

.asiam-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: var(--asiam-container-width);
  margin: 0 auto;
  padding: 20px var(--asiam-space-section-x);
}

.asiam-brand { display: flex; align-items: center; gap: 10px; }
.asiam-brand-mark { flex-shrink: 0; fill: var(--asiam-color-accent); }
.asiam-brand-text { display: flex; flex-direction: column; line-height: 1.15; }
.asiam-brand-name { font-family: var(--asiam-font-family-display); font-size: var(--asiam-text-lg); font-weight: 600; color: var(--asiam-color-text-strong); }
.asiam-brand-tagline { font-size: 0.58rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--asiam-color-highlight); font-weight: 500; }

.asiam-nav-links { display: flex; align-items: center; gap: 2.5rem; }
.asiam-nav-links a { font-size: var(--asiam-text-sm); font-weight: 500; color: var(--asiam-color-text); }
.asiam-nav-links a:hover { color: var(--asiam-color-accent); }
.asiam-nav-links a.is-current { font-weight: 600; color: var(--asiam-color-text-strong); }

.asiam-nav-actions { display: flex; align-items: center; gap: 0.9rem; }

.asiam-hamburger { display: none; flex-direction: column; gap: 4px; cursor: pointer; padding: 6px; }
.asiam-hamburger span { display: block; width: 20px; height: 2px; background: var(--asiam-color-text-strong); }

.asiam-menu-toggle { display: none; }

.asiam-mobile-menu {
  display: none;
  flex-direction: column;
  gap: 1.1rem;
  padding: 0 var(--asiam-space-section-x) 1.5rem;
}

.asiam-mobile-menu a { font-size: var(--asiam-text-md); font-weight: 500; color: var(--asiam-color-text-strong); }
.asiam-mobile-menu a:hover { color: var(--asiam-color-accent); }
.asiam-mobile-menu .asiam-btn { align-self: flex-start; }

.asiam-menu-toggle:checked ~ .asiam-mobile-menu { display: flex !important; }

@media (max-width: 880px), (max-width: 960px) {
  .asiam-nav-links, .asiam-nav-cta { display: none !important; }
  .asiam-hamburger { display: flex !important; }
}

/* ==========================================================================
   Hero
   ========================================================================== */

.asiam-hero { position: relative; overflow: hidden; }

.asiam-hero-media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

.asiam-hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(120deg, var(--asiam-color-hero-overlay-strong) 0%, var(--asiam-color-hero-overlay) 100%);
}

.asiam-hero-inner {
  position: relative;
  z-index: 2;
  max-width: var(--asiam-container-width);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: var(--asiam-space-4xl);
  align-items: center;
}

.asiam-hero-copy p { color: var(--asiam-color-text-inverse-soft); max-width: 440px; }
.asiam-hero-actions { display: flex; gap: 0.9rem; flex-wrap: wrap; }

.asiam-hero-card {
  background: var(--asiam-color-surface-inverse);
  backdrop-filter: blur(6px);
  border: var(--asiam-border-width) solid var(--asiam-color-border-inverse);
  border-radius: var(--asiam-radius-md);
  padding: 2.2rem;
}

.asiam-hero-card-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  padding-top: var(--asiam-space-lg);
  border-top: var(--asiam-border-width) solid var(--asiam-color-border-inverse);
}

@media (max-width: 880px) { .asiam-hero-inner { grid-template-columns: 1fr !important; } }

/* ==========================================================================
   Trust strip
   ========================================================================== */

.asiam-trust {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: var(--asiam-border-width) solid var(--asiam-color-border);
  border-bottom: var(--asiam-border-width) solid var(--asiam-color-border);
}

.asiam-trust-item {
  padding: 1.75rem var(--asiam-space-section-x);
  display: flex;
  align-items: center;
  gap: 14px;
  border-left: var(--asiam-border-width) solid var(--asiam-color-border);
}

.asiam-trust-item:first-child { border-left: none; }

@media (max-width: 880px) { .asiam-trust { grid-template-columns: 1fr !important; } }

/* ==========================================================================
   Cards
   ========================================================================== */

.asiam-card {
  border: var(--asiam-border-width) solid var(--asiam-color-border);
  border-radius: var(--asiam-radius-md);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.asiam-card--featured { border-width: var(--asiam-border-width-strong); border-color: var(--asiam-color-accent); }
.asiam-card--muted { opacity: 0.7; }

.asiam-card-body { padding: var(--asiam-space-lg); display: flex; flex-direction: column; flex: 1; gap: 0.6rem; }
.asiam-card-body--roomy { padding: 2.5rem; }

.asiam-card-title {
  font-family: var(--asiam-font-family-display);
  font-weight: 600;
  color: var(--asiam-color-text-strong);
  line-height: 1.25;
}

.asiam-card-excerpt { font-size: var(--asiam-text-base); color: var(--asiam-color-text-muted); line-height: 1.7; flex: 1; }

.asiam-card-meta { font-size: var(--asiam-text-xs); color: var(--asiam-color-text-faint); }

.asiam-card-footer {
  margin-top: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: var(--asiam-space-md);
  border-top: var(--asiam-border-width) solid var(--asiam-color-border);
}

/* Offer tiles (home page "two ways to travel") */
.asiam-offer-card {
  border-radius: var(--asiam-radius-md);
  padding: 2.5rem;
  display: flex;
  flex-direction: column;
  gap: var(--asiam-space-md);
}

.asiam-offer-card--accent { background: var(--asiam-color-bg-accent); }
.asiam-offer-card--surface { background: var(--asiam-color-surface); border: var(--asiam-border-width) solid var(--asiam-color-border); }

.asiam-offer-icon {
  width: 42px;
  height: 42px;
  border-radius: var(--asiam-radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
}

.asiam-offer-icon--accent { background: var(--asiam-color-surface-inverse); }
.asiam-offer-icon--soft { background: var(--asiam-color-accent-soft); }

/* Departure list row (compact) */
.asiam-depart-row {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: var(--asiam-space-xl);
  align-items: center;
  padding: 1.4rem 0;
  border-bottom: var(--asiam-border-width) solid var(--asiam-color-border);
}

.asiam-depart-row:last-child { border-bottom: none; }

.asiam-depart-price {
  text-align: right;
  font-family: var(--asiam-font-family-display);
  font-size: var(--asiam-text-xl);
  font-weight: 600;
  color: var(--asiam-color-accent);
}

@media (max-width: 880px) {
  .asiam-depart-row { grid-template-columns: 1fr !important; gap: 8px !important; }
  .asiam-depart-price { text-align: left !important; }
}

/* Included / not-included list rows */
.asiam-inc {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: var(--asiam-text-base);
  color: var(--asiam-color-text);
  line-height: 1.5;
  padding: var(--asiam-space-xs) 0;
  border-bottom: var(--asiam-border-width) solid var(--asiam-color-border);
}

.asiam-inc:last-child { border-bottom: none; }
.asiam-inc svg { flex-shrink: 0; margin-top: 2px; stroke: var(--asiam-color-accent); }

/* ==========================================================================
   Toggle switch + option row (departure/pack customization)
   ========================================================================== */

.asiam-opt-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-bottom: var(--asiam-border-width) solid var(--asiam-color-border);
  cursor: pointer;
}

.asiam-opt-row:last-child { border-bottom: none; }
.asiam-opt-label { flex: 1; }
.asiam-opt-title { font-size: var(--asiam-text-base); font-weight: 500; color: var(--asiam-color-text-strong); }
.asiam-opt-desc { font-size: 0.76rem; color: var(--asiam-color-text-faint); }
.asiam-opt-price { font-size: var(--asiam-text-base); font-weight: 600; color: var(--asiam-color-accent); white-space: nowrap; }

.asiam-toggle {
  width: 34px;
  height: 19px;
  border-radius: var(--asiam-radius-pill);
  position: relative;
  flex-shrink: 0;
  background: var(--asiam-color-toggle-off);
  transition: background 0.15s;
}

.asiam-toggle.is-on { background: var(--asiam-color-toggle-on); }

.asiam-toggle-knob {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 15px;
  height: 15px;
  border-radius: var(--asiam-radius-circle);
  background: var(--asiam-color-bg);
  transition: left 0.15s;
}

.asiam-toggle.is-on .asiam-toggle-knob { left: 17px; }

/* ==========================================================================
   Sidebar booking summary
   ========================================================================== */

.asiam-booking-box { border: var(--asiam-border-width) solid var(--asiam-color-border); border-radius: var(--asiam-radius-md); padding: 1.75rem; }

.asiam-booking-row { display: flex; justify-content: space-between; align-items: baseline; }
.asiam-booking-row--base { margin-bottom: var(--asiam-space-md); font-size: var(--asiam-text-xs); color: var(--asiam-color-text-muted); }

.asiam-booking-options {
  display: flex;
  flex-direction: column;
  gap: var(--asiam-space-xs);
  padding-bottom: var(--asiam-space-md);
  margin-bottom: var(--asiam-space-md);
  border-bottom: var(--asiam-border-width) solid var(--asiam-color-border);
}

.asiam-booking-options-row { display: flex; justify-content: space-between; font-size: var(--asiam-text-xs); color: var(--asiam-color-text-muted); }

.asiam-booking-total {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin-bottom: 1.25rem;
}

.asiam-booking-total-label { font-size: var(--asiam-text-2xs); font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--asiam-color-text-muted); }
.asiam-booking-total-value {
  font-family: var(--asiam-font-family-display);
  font-size: clamp(1.6rem, 5vw, var(--asiam-text-3xl));
  font-weight: 600;
  color: var(--asiam-color-accent);
  line-height: 1.15;
  white-space: nowrap;
}

.asiam-booking-facts {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  font-size: var(--asiam-text-base);
  color: var(--asiam-color-text);
  padding-bottom: 1.1rem;
  border-bottom: var(--asiam-border-width) solid var(--asiam-color-border);
  margin-bottom: 1.1rem;
}

.asiam-booking-facts-row { display: flex; justify-content: space-between; align-items: baseline; gap: 0.75rem; }
.asiam-booking-facts-row dt { color: var(--asiam-color-text-faint); flex-shrink: 0; }
.asiam-booking-facts-row dd { margin: 0; text-align: right; }

.asiam-booking-facts-row dd.asiam-booking-facts-value--sm {
  font-size: var(--asiam-text-xs);
  line-height: 1.4;
}

.asiam-help-box { background: var(--asiam-color-surface); border-radius: var(--asiam-radius-md); padding: var(--asiam-space-lg); font-size: var(--asiam-text-base); color: var(--asiam-color-text-muted); line-height: 1.7; }
.asiam-help-box a { color: var(--asiam-color-accent); font-weight: 600; }

/* ==========================================================================
   CTA band / newsletter
   ========================================================================== */

.asiam-cta-band { text-align: center; }
.asiam-cta-band p { color: var(--asiam-color-text-inverse-faint); max-width: 440px; margin: 0 auto var(--asiam-space-lg); line-height: 1.75; }

.asiam-newsletter { text-align: center; }
.asiam-newsletter-inner { max-width: 600px; margin: 0 auto; }

/* ==========================================================================
   Footer
   ========================================================================== */

.asiam-footer { padding-top: var(--asiam-space-section-y-md); padding-bottom: var(--asiam-space-lg); border-top: var(--asiam-border-width) solid var(--asiam-color-border); }

.asiam-footer-top {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr;
  gap: var(--asiam-space-2xl);
  padding-bottom: var(--asiam-space-2xl);
  border-bottom: var(--asiam-border-width) solid var(--asiam-color-border);
}

.asiam-footer-brand p { font-size: var(--asiam-text-base); color: var(--asiam-color-text-faint); line-height: 1.75; max-width: 280px; }

.asiam-footer-heading {
  font-size: var(--asiam-text-2xs);
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--asiam-color-text-muted);
  margin-bottom: var(--asiam-space-md);
}

.asiam-footer-links { display: flex; flex-direction: column; gap: var(--asiam-space-xs); }
.asiam-footer-links a, .asiam-footer-contact { font-size: var(--asiam-text-base); color: var(--asiam-color-text-faint); }
.asiam-footer-links a:hover { color: var(--asiam-color-accent); }
.asiam-footer-contact { display: flex; flex-direction: column; gap: var(--asiam-space-xs); }

.asiam-footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--asiam-space-md);
  padding-top: var(--asiam-space-lg);
}

.asiam-footer-bottom small { font-size: var(--asiam-text-xs); color: var(--asiam-color-text-subtle); }
.asiam-footer-credit a { color: var(--asiam-color-text-subtle); font-weight: 600; }
.asiam-footer-credit a:hover { color: var(--asiam-color-accent); }
.asiam-footer-legal { display: flex; gap: 1.25rem; }
.asiam-footer-legal a { font-size: var(--asiam-text-xs); color: var(--asiam-color-text-subtle); }
.asiam-footer-legal a:hover { color: var(--asiam-color-accent); }

@media (max-width: 880px), (max-width: 960px) {
  .asiam-footer-top { grid-template-columns: 1fr 1fr !important; }
}
