/* ============================================================================
   ALY DIGITAL — Design System
   Clean white + cream (sparingly) · coral · blush · teal
   Fraunces (display serif) · Hanken Grotesk (sans) · editorial, photo-forward
   ========================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,400&family=Hanken+Grotesk:wght@400;500;600;700&display=swap');

:root {
  /* Color */
  --white: #FFFFFF;
  --cream: #FBF4E9;          /* used sparingly */
  --cream-soft: #FDF9F2;
  --coral: #DD5E45;
  --coral-dark: #C2492F;
  --blush: #F6DCCE;
  --blush-soft: #FBEDE4;
  --teal: #2F6E5F;
  --teal-dark: #245446;
  --ink: #221C18;
  --ink-soft: #6E655D;
  --border: #ECE2D6;
  --border-strong: #DFD2C2;

  /* Type */
  --serif: 'Fraunces', Georgia, serif;
  --sans: 'Hanken Grotesk', system-ui, -apple-system, sans-serif;

  /* Spacing (4/8) */
  --s1:.25rem; --s2:.5rem; --s3:.75rem; --s4:1rem; --s5:1.25rem;
  --s6:1.5rem; --s8:2rem; --s10:2.5rem; --s12:3rem; --s16:4rem; --s20:5rem; --s24:6rem;

  /* Radius */
  --r-sm:10px; --r:16px; --r-lg:24px; --r-full:999px;

  /* Shadow */
  --shadow-sm: 0 1px 2px rgba(34,28,24,.05);
  --shadow: 0 10px 30px -12px rgba(34,28,24,.16);
  --shadow-lg: 0 30px 70px -24px rgba(34,28,24,.28);

  /* Layout */
  --container: 1240px;

  /* Motion */
  --ease: cubic-bezier(.22,1,.36,1);
  --dur: 220ms;

  /* z */
  --z-header:100; --z-mega:110; --z-overlay:200;
}

*,*::before,*::after{ box-sizing:border-box; }
*{ margin:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  font-family:var(--sans);
  background:var(--white);
  color:var(--ink);
  font-size:17px; line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  min-height:100dvh;
  overflow-x:hidden;
}
img,picture,svg,video{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; cursor:pointer; border:none; background:none; color:inherit; }
ul{ list-style:none; padding:0; }
input,select,textarea{ font:inherit; }
:focus-visible{ outline:3px solid var(--coral); outline-offset:2px; border-radius:4px; }

/* Type scale */
h1,h2,h3,h4{ font-family:var(--serif); font-weight:500; line-height:1.06; letter-spacing:-.015em; color:var(--ink); }
h1{ font-size:clamp(2.6rem,6vw,4.6rem); }
h2{ font-size:clamp(2rem,4vw,3.1rem); }
h3{ font-size:clamp(1.35rem,2.2vw,1.8rem); }
h4{ font-size:1.15rem; }
p{ max-width:68ch; }

.eyebrow{
  font-family:var(--sans); font-weight:700; font-size:.74rem;
  letter-spacing:.18em; text-transform:uppercase; color:var(--coral);
}
.eyebrow.teal{ color:var(--teal); }
.lead{ font-size:clamp(1.08rem,1.5vw,1.28rem); line-height:1.6; color:var(--ink-soft); }

/* Layout helpers */
.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:var(--s6); }
.section{ padding-block:clamp(3.5rem,8vw,var(--s24)); }
.section.tight{ padding-block:clamp(2.5rem,5vw,var(--s16)); }
.bg-blush{ background:var(--blush-soft); }
.bg-cream{ background:var(--cream); }
.bg-teal{ background:var(--teal); color:#fff; }
.center{ text-align:center; }
.section-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:var(--s6); margin-bottom:var(--s10); flex-wrap:wrap; }
.section-head p{ margin-top:var(--s3); }
.section-head.center{ flex-direction:column; align-items:center; text-align:center; }

.skip-link{ position:absolute; left:-999px; top:var(--s2); z-index:var(--z-overlay); background:var(--ink); color:#fff; padding:var(--s2) var(--s4); border-radius:var(--r-sm); }
.skip-link:focus{ left:var(--s4); }

/* Buttons */
.btn{ display:inline-flex; align-items:center; gap:var(--s2); font-weight:600; font-size:.95rem; padding:.8rem 1.5rem; border-radius:var(--r-full); transition:transform var(--dur) var(--ease),background var(--dur),color var(--dur),box-shadow var(--dur),border-color var(--dur); min-height:46px; white-space:nowrap; }
.btn svg{ width:18px; height:18px; }
.btn-primary{ background:var(--coral); color:#fff; box-shadow:var(--shadow); }
.btn-primary:hover{ background:var(--coral-dark); transform:translateY(-2px); }
.btn-ghost{ background:transparent; color:var(--ink); border:1.5px solid var(--border-strong); }
.btn-ghost:hover{ border-color:var(--ink); transform:translateY(-2px); }
.btn-light{ background:#fff; color:var(--ink); box-shadow:var(--shadow); }
.btn-light:hover{ transform:translateY(-2px); }
.btn-teal{ background:var(--teal); color:#fff; }
.btn-teal:hover{ background:var(--teal-dark); transform:translateY(-2px); }

.link-arrow{ display:inline-flex; align-items:center; gap:var(--s2); font-weight:600; color:var(--coral); }
.link-arrow svg{ width:18px; height:18px; transition:transform var(--dur) var(--ease); }
.link-arrow:hover svg{ transform:translateX(4px); }

/* Chips / tags */
.chip{ display:inline-flex; align-items:center; gap:6px; font-family:var(--sans); font-weight:600; font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; padding:6px 12px; border-radius:var(--r-full); background:var(--blush-soft); color:var(--coral-dark); border:1px solid var(--border); transition:background var(--dur),color var(--dur); }
a.chip:hover{ background:var(--coral); color:#fff; border-color:var(--coral); }
.chip-light{ background:rgba(255,255,255,.18); color:#fff; border-color:rgba(255,255,255,.4); backdrop-filter:blur(6px); }
.chip-teal{ background:rgba(47,110,95,.1); color:var(--teal); border-color:rgba(47,110,95,.2); }

/* ============================================================================
   HEADER + MEGA MENU
   ========================================================================== */
.site-header{ position:sticky; top:0; z-index:var(--z-header); background:rgba(255,255,255,.86); backdrop-filter:blur(14px); border-bottom:1px solid var(--border); }
.header-inner{ display:flex; align-items:center; justify-content:space-between; gap:var(--s8); height:78px; }

.brand{ display:inline-flex; align-items:center; gap:10px; }
.brand-mark{ width:46px; height:44px; flex-shrink:0; }
.brand-mark svg{ width:100%; height:100%; }
.brand-word{ font-family:var(--serif); font-weight:600; font-size:1.4rem; letter-spacing:.01em; }
.brand-word .est{ display:block; font-family:var(--sans); font-weight:600; font-size:.56rem; letter-spacing:.32em; color:var(--ink-soft); margin-top:-2px; }

.nav{ display:flex; align-items:center; gap:var(--s1); }
.nav-link{ display:inline-flex; align-items:center; gap:6px; font-weight:600; font-size:.96rem; padding:.6rem .95rem; border-radius:var(--r-sm); color:var(--ink); transition:background var(--dur),color var(--dur); min-height:44px; }
.nav-link:hover{ background:var(--blush-soft); color:var(--coral-dark); }
.nav-link[aria-current="page"]{ color:var(--coral-dark); }
.nav-link .caret{ width:16px; height:16px; transition:transform var(--dur) var(--ease); }
.nav-item.open .nav-link .caret{ transform:rotate(180deg); }

.header-actions{ display:flex; align-items:center; gap:var(--s2); }
.icon-btn{ width:44px; height:44px; border-radius:var(--r-sm); display:grid; place-items:center; color:var(--ink); transition:background var(--dur); }
.icon-btn:hover{ background:var(--blush-soft); }
.icon-btn svg{ width:22px; height:22px; }

/* Mega menu */
.mega{ position:absolute; left:0; right:0; top:100%; z-index:var(--z-mega); background:var(--white); border-top:1px solid var(--border); border-bottom:1px solid var(--border); box-shadow:var(--shadow-lg); opacity:0; visibility:hidden; transform:translateY(-8px); transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease),visibility var(--dur); }
.nav-item.open .mega{ opacity:1; visibility:visible; transform:translateY(0); }
.mega-inner{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--s8) var(--s10); padding-block:var(--s12); }
.mega-region > .region-title{ display:block; font-family:var(--sans); font-weight:700; color:var(--ink); padding-bottom:var(--s3); margin-bottom:var(--s2); border-bottom:1px solid var(--border); text-decoration:none; transition:color var(--dur) var(--ease); }
a.region-title:hover{ color:var(--coral); }
.mega-region ul{ display:flex; flex-direction:column; gap:2px; }
.mega-region a{ display:block; padding:8px 10px; margin-inline:-10px; border-radius:var(--r-sm); font-weight:500; color:var(--ink-soft); transition:background var(--dur),color var(--dur); }
.mega-region a:hover{ background:var(--blush-soft); color:var(--coral-dark); }
.mega-footer{ grid-column:1/-1; margin-top:var(--s6); padding-top:var(--s6); border-top:1px solid var(--border); display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:var(--s4); }
.mega-footer .note{ color:var(--ink-soft); font-size:.92rem; }

.hamburger{ display:none; }

/* Search overlay */
.search-overlay{ position:fixed; inset:0; z-index:var(--z-overlay); background:rgba(34,28,24,.5); backdrop-filter:blur(4px); opacity:0; visibility:hidden; transition:opacity var(--dur),visibility var(--dur); }
.search-overlay.open{ opacity:1; visibility:visible; }
.search-panel{ position:relative; background:var(--white); max-width:680px; margin:10vh auto 0; border-radius:var(--r-lg); box-shadow:var(--shadow-lg); padding:var(--s6); transform:translateY(-12px); transition:transform var(--dur) var(--ease); }
.search-close{ position:absolute; top:var(--s3); right:var(--s3); width:44px; height:44px; border-radius:var(--r-sm); display:grid; place-items:center; color:var(--ink-soft); transition:background var(--dur); }
.search-close:hover{ background:var(--blush-soft); color:var(--ink); }
.search-close svg{ width:22px; height:22px; }
.search-overlay.open .search-panel{ transform:none; }
.search-field{ display:flex; align-items:center; gap:var(--s3); border-bottom:2px solid var(--border); padding-bottom:var(--s3); padding-right:52px; }
.search-field svg{ width:24px; height:24px; color:var(--ink-soft); flex-shrink:0; }
.search-field input{ width:100%; border:none; outline:none; font-size:1.3rem; font-family:var(--serif); background:transparent; color:var(--ink); }
.search-results{ margin-top:var(--s4); max-height:46vh; overflow-y:auto; display:flex; flex-direction:column; gap:2px; }
.search-result{ display:flex; gap:var(--s3); padding:var(--s3); border-radius:var(--r-sm); transition:background var(--dur); }
.search-result:hover{ background:var(--blush-soft); }
.search-result img{ width:60px; height:60px; border-radius:10px; object-fit:cover; flex-shrink:0; }
.search-result .title{ font-weight:600; }
.search-result .meta{ font-size:.82rem; color:var(--ink-soft); }
.search-empty{ color:var(--ink-soft); padding:var(--s4); text-align:center; }
.search-hint{ font-size:.8rem; color:var(--ink-soft); margin-top:var(--s4); }

/* ============================================================================
   HERO
   ========================================================================== */
.hero{ position:relative; isolation:isolate; color:#fff; min-height:clamp(540px,84vh,800px); display:flex; align-items:flex-end; overflow:hidden; }
.hero img.hero-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.hero::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(to top,rgba(34,28,24,.74) 0%,rgba(34,28,24,.15) 50%,rgba(34,28,24,.3) 100%); }
.hero-content{ padding-block:clamp(2.5rem,6vw,var(--s24)); max-width:780px; }
.hero h1{ color:#fff; margin-top:var(--s4); }
.hero .lead{ color:rgba(255,255,255,.92); margin-top:var(--s4); max-width:54ch; }
.hero-actions{ display:flex; gap:var(--s3); margin-top:var(--s8); flex-wrap:wrap; }
.hero-script{ font-style:italic; }

/* ============================================================================
   POST CARDS / GRID
   ========================================================================== */
.grid{ display:grid; gap:var(--s8); }
.grid-3{ grid-template-columns:repeat(3,1fr); }
.grid-2{ grid-template-columns:repeat(2,1fr); }
.grid-4{ grid-template-columns:repeat(4,1fr); }

.card{ background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg); overflow:hidden; display:flex; flex-direction:column; transition:transform var(--dur) var(--ease),box-shadow var(--dur); }
.card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.card .thumb{ position:relative; aspect-ratio:3/2; overflow:hidden; display:block; }
.card .thumb img{ width:100%; height:100%; object-fit:cover; transition:transform 500ms var(--ease); }
.card:hover .thumb img{ transform:scale(1.05); }
.card .thumb .chip{ position:absolute; top:var(--s3); left:var(--s3); }
.card .body{ padding:var(--s6); display:flex; flex-direction:column; gap:var(--s3); flex:1; }
.card .post-meta{ font-family:var(--sans); font-weight:600; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); display:flex; gap:10px; align-items:center; }
.card .post-meta .dot{ width:3px; height:3px; border-radius:50%; background:var(--border-strong); }
.card h3{ font-size:1.4rem; }
.card h3 a:hover{ color:var(--coral-dark); }
.card .excerpt{ color:var(--ink-soft); font-size:.96rem; }
.card .card-foot{ margin-top:auto; padding-top:var(--s2); display:flex; gap:var(--s2); flex-wrap:wrap; }

/* Feature row */
.feature-row{ display:grid; grid-template-columns:1.5fr 1fr; gap:var(--s8); align-items:stretch; }
.feature-lead{ position:relative; border-radius:var(--r-lg); overflow:hidden; min-height:480px; display:flex; align-items:flex-end; color:#fff; isolation:isolate; }
.feature-lead img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform 600ms var(--ease); }
.feature-lead:hover img{ transform:scale(1.04); }
.feature-lead::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(to top,rgba(34,28,24,.85),rgba(34,28,24,0) 62%); }
.feature-lead .body{ padding:var(--s8); }
.feature-lead h3{ color:#fff; font-size:clamp(1.8rem,3vw,2.6rem); margin-block:10px; }
.feature-lead p{ color:rgba(255,255,255,.9); }
.feature-side{ display:flex; flex-direction:column; gap:var(--s6); }
.feature-mini{ display:grid; grid-template-columns:120px 1fr; gap:var(--s4); align-items:center; background:var(--white); border:1px solid var(--border); border-radius:var(--r); overflow:hidden; padding-right:var(--s4); transition:transform var(--dur) var(--ease),box-shadow var(--dur); }
.feature-mini:hover{ transform:translateY(-3px); box-shadow:var(--shadow); }
.feature-mini .mini-thumb{ position:relative; width:120px; height:118px; }
.feature-mini img{ width:120px; height:118px; object-fit:cover; }
.feature-mini .title{ font-family:var(--serif); font-weight:600; font-size:1.08rem; line-height:1.25; }
.feature-mini .post-meta{ font-weight:600; font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); margin-top:6px; }

/* ============================================================================
   DESTINATIONS
   ========================================================================== */
.dest-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--s5); }
.dest-card{ position:relative; border-radius:var(--r); overflow:hidden; aspect-ratio:3/4; display:flex; align-items:flex-end; color:#fff; isolation:isolate; }
.dest-card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform 600ms var(--ease); }
.dest-card:hover img{ transform:scale(1.07); }
.dest-card::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(to top,rgba(34,28,24,.82),rgba(34,28,24,0) 68%); }
.dest-card .body{ padding:var(--s5); }
.dest-card .name{ font-family:var(--serif); font-weight:600; font-size:1.4rem; }
.dest-card .count{ font-weight:600; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.85); margin-top:4px; }

/* Region block (destinations overview) */
.region-block{ margin-bottom:var(--s16); scroll-margin-top:100px; }
.region-block .region-head{ display:flex; align-items:baseline; gap:var(--s4); margin-bottom:var(--s6); flex-wrap:wrap; }
.loc-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:var(--s4); }
.loc-pill{ display:flex; flex-direction:column; gap:6px; }
.loc-pill .loc-img{ aspect-ratio:1/1; border-radius:var(--r); overflow:hidden; }
.loc-pill img{ width:100%; height:100%; object-fit:cover; transition:transform 500ms var(--ease); }
.loc-pill:hover img{ transform:scale(1.06); }
.loc-pill .loc-name{ font-weight:600; }
.loc-pill .loc-count{ font-size:.78rem; color:var(--ink-soft); }

/* ============================================================================
   INTRO (homepage about block)
   ========================================================================== */
.intro{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:var(--s12); align-items:center; }
.intro .portrait{ border-radius:var(--r-lg); overflow:hidden; height:clamp(320px,32vw,410px); box-shadow:var(--shadow); }
.intro .portrait img{ width:100%; height:100%; object-fit:cover; }
.intro .sig{ font-family:var(--serif); font-style:italic; font-size:1.7rem; color:var(--coral); margin-top:var(--s4); }

/* Postcards from the road (home intro) */
.postcards{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--s6); margin-top:var(--s10); max-width:720px; margin-inline:auto; }
.postcard{ margin:0; background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg); padding:var(--s3) var(--s3) 0; box-shadow:var(--shadow); transition:transform var(--dur) var(--ease); }
.postcard:nth-child(1){ transform:rotate(-1.4deg); }
.postcard:nth-child(2){ transform:rotate(1deg); }
.postcard:nth-child(3){ transform:rotate(-.7deg); }
.postcard:hover{ transform:rotate(0deg) translateY(-4px); }
.postcard img{ width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:calc(var(--r-lg) - 8px); }
.postcard figcaption{ font-family:var(--serif); font-style:italic; text-align:center; color:var(--ink-soft); padding:var(--s3) 0; font-size:1.05rem; }

/* ============================================================================
   BRANDS STRIP
   ========================================================================== */
.brands{ border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.brands-inner{ display:flex; align-items:center; justify-content:center; gap:clamp(1.5rem,4vw,var(--s12)); flex-wrap:wrap; padding-block:var(--s10); }
.brands .label{ font-weight:700; font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color:var(--teal); width:100%; text-align:center; margin-bottom:var(--s4); }
.brands .brand-logo{ font-family:var(--serif); font-weight:600; font-size:clamp(1.1rem,2vw,1.6rem); color:var(--ink); opacity:.55; transition:opacity var(--dur); }
.brands .brand-logo:hover{ opacity:1; }

/* ============================================================================
   PAGE HERO (interior)
   ========================================================================== */
.page-hero{ padding-block:clamp(3rem,7vw,var(--s20)) var(--s12); border-bottom:1px solid var(--border); }
.page-hero .eyebrow{ margin-bottom:var(--s4); }
.page-hero p{ margin-top:var(--s4); }
.breadcrumb{ display:flex; gap:8px; align-items:center; font-weight:600; font-size:.78rem; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:var(--s6); flex-wrap:wrap; }
.breadcrumb a:hover{ color:var(--coral); }
.breadcrumb svg{ width:14px; height:14px; }

/* Location hero (Italy-style) */
.loc-hero{ position:relative; isolation:isolate; color:#fff; min-height:clamp(420px,64vh,580px); display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; }
.loc-hero img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.loc-hero::after{ content:""; position:absolute; inset:0; z-index:-1; background:rgba(34,28,24,.42); }
.loc-hero .wrap{ padding:var(--s8); }
.loc-hero .label{ font-weight:700; letter-spacing:.3em; text-transform:uppercase; font-size:.8rem; color:rgba(255,255,255,.85); }
.loc-hero h1{ color:#fff; font-style:italic; font-size:clamp(3rem,8vw,5.5rem); margin-block:var(--s2) var(--s3); }
.loc-hero p{ color:rgba(255,255,255,.9); max-width:46ch; margin-inline:auto; }

/* Category hero (dark band) */
.cat-hero{ background:var(--ink); color:#fff; text-align:center; padding-block:clamp(3rem,7vw,var(--s20)); }
.cat-hero .label{ font-weight:700; letter-spacing:.28em; text-transform:uppercase; font-size:.78rem; color:rgba(255,255,255,.6); }
.cat-hero h1{ color:#fff; margin-top:var(--s3); }
.cat-hero p{ color:rgba(255,255,255,.7); margin:var(--s4) auto 0; max-width:48ch; }

/* Filter bar */
.filter-bar{ display:flex; gap:var(--s2); flex-wrap:wrap; margin-bottom:var(--s10); }
.filter-btn{ font-weight:600; font-size:.84rem; padding:.6rem 1.2rem; border-radius:var(--r-full); border:1.5px solid var(--border-strong); color:var(--ink-soft); min-height:42px; transition:all var(--dur) var(--ease); }
.filter-btn:hover{ border-color:var(--ink); color:var(--ink); }
.filter-btn[aria-pressed="true"]{ background:var(--coral); color:#fff; border-color:var(--coral); }

.empty-state{ text-align:center; padding:var(--s16) var(--s6); color:var(--ink-soft); }
.empty-state svg{ width:44px; height:44px; margin:0 auto var(--s4); color:var(--border-strong); }

/* ============================================================================
   PORTFOLIO
   ========================================================================== */
.port-intro{ text-align:center; max-width:760px; margin:0 auto var(--s16); }
.port-intro h1{ font-style:italic; }
.masonry{ columns:3; column-gap:var(--s6); }
.masonry .ph{ break-inside:avoid; margin-bottom:var(--s6); border-radius:var(--r); overflow:hidden; position:relative; cursor:zoom-in; display:block; width:100%; }
.masonry .ph img{ width:100%; height:auto; transition:transform 500ms var(--ease); }
.masonry .ph:hover img{ transform:scale(1.05); }
.masonry .ph .ov{ position:absolute; inset:0; background:linear-gradient(to top,rgba(34,28,24,.72),transparent 55%); opacity:0; transition:opacity var(--dur); display:flex; align-items:flex-end; padding:var(--s4); color:#fff; }
.masonry .ph:hover .ov,.masonry .ph:focus-within .ov{ opacity:1; }
.masonry .ph .cap-t{ font-family:var(--serif); font-weight:600; font-size:1.15rem; }
.masonry .ph .cap-p{ font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; opacity:.85; margin-top:2px; }

.video-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--s6); }
.video-card{ display:block; padding:0; width:100%; }
.video-thumb{ display:block; position:relative; aspect-ratio:9/16; border-radius:var(--r); overflow:hidden; box-shadow:var(--shadow-sm); }
.video-thumb img{ width:100%; height:100%; object-fit:cover; transition:transform 500ms var(--ease); }
.video-card:hover .video-thumb img{ transform:scale(1.05); }
.video-play{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; z-index:2; }
.video-play span{ width:60px; height:60px; border-radius:50%; background:rgba(255,255,255,.92); display:grid; place-items:center; box-shadow:var(--shadow); transition:transform var(--dur) var(--ease); }
.video-card:hover .video-play span{ transform:scale(1.1); }
.video-play svg{ width:24px; height:24px; color:var(--coral); margin-left:3px; }
.video-card .v-title{ display:block; font-family:var(--serif); font-weight:600; font-size:1.05rem; line-height:1.25; margin-top:var(--s3); }
.video-card .v-note{ display:block; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); margin-top:4px; }

/* Lightbox */
.lightbox{ position:fixed; inset:0; z-index:var(--z-overlay); background:rgba(20,17,15,.93); display:none; align-items:center; justify-content:center; padding:var(--s6); }
.lightbox.open{ display:flex; }
.lightbox img{ max-width:92vw; max-height:86vh; border-radius:var(--r); box-shadow:var(--shadow-lg); }
.lightbox-close{ position:absolute; top:var(--s6); right:var(--s6); width:48px; height:48px; border-radius:var(--r-full); background:rgba(255,255,255,.14); color:#fff; display:grid; place-items:center; }
.lightbox-close:hover{ background:rgba(255,255,255,.26); }
.lightbox-close svg{ width:26px; height:26px; }

/* Brands image (portfolio) */
.brands-img{ display:block; width:100%; max-width:920px; height:auto; margin-inline:auto; }

/* Video modal (portfolio) */
.video-modal{ position:fixed; inset:0; z-index:var(--z-overlay); background:rgba(20,17,15,.93); display:none; align-items:center; justify-content:center; padding:var(--s6); }
.video-modal.open{ display:flex; }
.video-modal video{ max-width:min(440px,92vw); max-height:86vh; width:auto; border-radius:var(--r); box-shadow:var(--shadow-lg); background:#000; }

/* ============================================================================
   PORTFOLIO v2 — partnerships intro, featuring marquee, project cases
   ========================================================================== */
/* Intro */
.partnerships{ padding-block:clamp(1.25rem,3vw,var(--s8)); }
.partner-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.5rem,4vw,var(--s12)); align-items:center; }
.partner-h{ display:flex; align-items:baseline; flex-wrap:wrap; column-gap:.55rem; font-size:clamp(2.4rem,5vw,3.9rem); line-height:1.05; }
.partner-script{ font-style:italic; color:var(--coral); font-size:.34em; white-space:nowrap; transform:translateY(.2em); }
.partner-info .lead{ max-width:52ch; font-size:clamp(.9rem,1.05vw,1rem); line-height:1.6; }
.partner-tag{ font-family:var(--serif); font-style:italic; color:var(--coral); font-size:clamp(1.05rem,1.6vw,1.35rem); line-height:1.4; margin-top:var(--s5); max-width:34ch; }
.partner-portrait{ border-radius:var(--r-lg); overflow:hidden; height:clamp(380px,48vw,560px); box-shadow:var(--shadow-lg); }
.partner-portrait img{ width:100%; height:100%; object-fit:cover; object-position:center; }

/* Brands strip */
.brands-strip{ padding-block:var(--s12); border-bottom:1px solid var(--border); }

/* Featuring marquee (sticky) */
.featuring{ position:sticky; top:77px; z-index:60; display:flex; align-items:stretch; height:54px; background:#D07E90; color:#fff; overflow:hidden; }
.featuring-label{ flex:0 0 auto; display:flex; align-items:center; gap:.5rem; padding:0 var(--s5); background:#BC5B72; color:#fff; font-weight:800; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; }
.featuring-label::before{ content:"\2726"; font-size:.9rem; line-height:1; }
.marquee{ flex:1; overflow:hidden; display:flex; align-items:center; }
.marquee-track{ display:inline-flex; align-items:center; gap:var(--s5); white-space:nowrap; padding-left:var(--s5); animation:marquee 60s linear infinite; will-change:transform; }
.marquee:hover .marquee-track{ animation-play-state:paused; }
.mq-item{ color:#fff; font-weight:700; font-size:.96rem; letter-spacing:.01em; flex:0 0 auto; transition:color var(--dur); }
.mq-item:hover{ text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:2px; }
.mq-dot{ flex:0 0 auto; color:rgba(255,255,255,.75); font-size:.85rem; line-height:1; }
.mq-dot::before{ content:"\2726"; }
@keyframes marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* Section heading tag */
.port-section{ padding-block:clamp(2.5rem,5vw,var(--s16)); scroll-margin-top:150px; }

/* Section jump-nav (clean white strip at the top of the portfolio) */
.port-nav{ padding-block:var(--s6); border-bottom:1px solid var(--border); background:var(--white); }
.port-nav .container{ display:flex; align-items:center; gap:var(--s3); justify-content:center; flex-wrap:wrap; }
.port-nav-label{ font-family:var(--sans); font-weight:700; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); margin-right:.35rem; }
.port-nav-link{ display:inline-flex; align-items:center; gap:.45rem; font-weight:700; font-size:.82rem; letter-spacing:.06em; text-transform:uppercase; padding:.6rem 1.25rem; background:var(--white); border:1.5px solid var(--coral); border-radius:var(--r-full); color:var(--coral); box-shadow:0 1px 2px rgba(34,28,24,.05); transition:background var(--dur) var(--ease), color var(--dur), border-color var(--dur), transform var(--dur); }
.port-nav-link svg{ width:14px; height:14px; }
.port-nav-link:hover{ background:var(--coral); color:#fff; border-color:var(--coral); transform:translateY(-1px); }
.port-sec-head{ margin-bottom:var(--s10); }
.sec-tag{ display:inline-block; background:var(--coral); color:#fff; font-weight:700; font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; padding:9px 20px; border-radius:8px; }
/* give each section a distinct, bright label + a little background rhythm */
#sec-tourism{ background:var(--cream-soft); }
#sec-tourism .sec-tag{ background:var(--teal); }

/* Featured case */
.case{ display:flex; gap:clamp(2rem,4vw,var(--s12)); align-items:center; padding-block:clamp(2rem,4vw,var(--s12)); scroll-margin-top:150px; flex-wrap:wrap; }
.case:nth-of-type(even){ flex-direction:row-reverse; }
.case + .case{ border-top:1px solid var(--border); }
.case-info{ flex:1 1 300px; }
.case-name{ font-family:var(--serif); font-size:clamp(2rem,3.4vw,3rem); line-height:1.04; color:#E2A695; margin-top:6px; }
.checklist{ list-style:none; margin-top:var(--s6); display:flex; flex-direction:column; gap:var(--s3); }
.checklist li{ position:relative; padding-left:2rem; font-weight:600; color:var(--ink); }
.checklist li::before{ content:""; position:absolute; left:0; top:1px; width:20px; height:20px; border-radius:6px; background:var(--teal); }
.checklist li::after{ content:""; position:absolute; left:7px; top:5px; width:5px; height:9px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg); }
.back-top{ display:inline-flex; align-items:center; gap:6px; margin-top:var(--s8); font-weight:600; font-size:.85rem; color:var(--ink-soft); }
.back-top:hover{ color:var(--coral); }
.back-top svg{ width:16px; height:16px; }
.case-media{ flex:1.5 1 460px; display:grid; grid-template-columns:repeat(3,1fr); gap:var(--s3); align-content:start; }
.case-tile{ position:relative; padding:0; aspect-ratio:4/5; border-radius:var(--r-sm); overflow:hidden; cursor:zoom-in; background:var(--muted); }
/* video-only cases (Tourism Boards, Paid Ads featured): show full 9:16, uncropped */
.case-media.vids916{ display:flex; flex-wrap:wrap; gap:var(--s4); align-content:start; }
.case-media.vids916 .case-tile{ flex:0 0 auto; width:clamp(150px,30%,185px); aspect-ratio:9/16; }
.case-tile img{ width:100%; height:100%; object-fit:cover; transition:transform 500ms var(--ease); }
.case-tile:hover img{ transform:scale(1.05); }
.case-tile.is-video{ cursor:pointer; }
.case-tile .video-play{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; z-index:2; }
.case-tile .video-play span{ width:46px; height:46px; }
.case-tile .video-play svg{ width:18px; height:18px; }
/* More-here heading above the single-project grid */
.more-here{ font-family:var(--sans); font-weight:700; font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); margin:var(--s12) 0 var(--s5); }

/* Others (single-video, side by side) */
.others-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--s6); margin-top:var(--s8); }
.other-card{ scroll-margin-top:150px; }
.o-brand{ display:block; font-family:var(--serif); font-weight:600; font-size:1.02rem; line-height:1.25; margin-top:var(--s3); }
.o-label{ display:block; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); margin-top:4px; }

@media (max-width:820px){
  .partner-grid{ grid-template-columns:1fr; }
  .partner-portrait{ max-width:420px; }
  .featuring{ top:65px; }
  .case-imgs{ grid-template-columns:repeat(3,1fr); }
  .others-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:560px){
  .case-vid{ width:42%; }
  .others-grid{ grid-template-columns:1fr 1fr; }
  .case-media{ grid-template-columns:repeat(2,1fr); }
  /* Jump-to pills: tidy 2-up grid with the last one centered below */
  .port-nav .container{ display:grid; grid-template-columns:1fr 1fr; gap:var(--s3); }
  .port-nav-label{ grid-column:1/-1; text-align:center; margin:0 0 .15rem; }
  .port-nav-link{ justify-content:center; text-align:center; padding:.6rem .5rem; font-size:.72rem; letter-spacing:.04em; }
  /* Only span full width when there's an odd one out, so an even count fills the grid cleanly */
  .port-nav-link:last-child:nth-child(odd){ grid-column:1/-1; justify-self:center; min-width:62%; }
}

/* ============================================================================
   CONTACT
   ========================================================================== */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:var(--s16); align-items:start; }
.contact-portrait{ border-radius:var(--r-lg); overflow:hidden; aspect-ratio:4/5; box-shadow:var(--shadow); margin-bottom:var(--s8); max-width:420px; }
.contact-portrait img{ width:100%; height:100%; object-fit:cover; object-position:50% 82%; }
.contact-aside .sig{ font-family:var(--serif); font-style:italic; font-size:1.6rem; color:var(--coral); margin-top:var(--s4); }
.contact-aside .detail{ display:flex; align-items:center; gap:var(--s3); margin-top:var(--s5); }
.contact-aside .detail svg{ width:22px; height:22px; color:var(--teal); }
.contact-aside .detail a{ font-weight:600; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:var(--s4); }
.field{ margin-bottom:var(--s4); }
.field label{ display:block; font-weight:600; font-size:.82rem; margin-bottom:6px; }
.field .req{ color:var(--coral); }
.field input,.field select,.field textarea{ width:100%; padding:.85rem 1rem; border:1.5px solid var(--border-strong); border-radius:var(--r-sm); background:var(--white); color:var(--ink); min-height:48px; transition:border-color var(--dur); }
.field textarea{ min-height:140px; resize:vertical; }
.field input:focus,.field select:focus,.field textarea:focus{ outline:none; border-color:var(--coral); }
.field .help{ font-size:.78rem; color:var(--ink-soft); margin-top:6px; }
.form-msg{ min-height:1.2em; font-size:.95rem; margin-top:var(--s3); }
.form-msg.success{ color:var(--teal); font-weight:600; }

/* ============================================================================
   ARTICLE (single post)
   ========================================================================== */
.read-progress{ position:fixed; top:0; left:0; height:3px; width:0; background:var(--coral); z-index:calc(var(--z-header) + 1); transition:width 80ms linear; }
.article-hero{ position:relative; isolation:isolate; color:#fff; min-height:clamp(440px,68vh,620px); display:flex; align-items:flex-end; overflow:hidden; }
.article-hero img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.article-hero::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(to top,rgba(34,28,24,.85),rgba(34,28,24,.12) 66%); }
.article-hero .wrap{ padding-block:var(--s16); max-width:840px; }
.article-hero h1{ color:#fff; margin-block:var(--s4); font-size:clamp(2rem,4.2vw,3.2rem); }
.article-hero h1,.article-hero .breadcrumb,.article-hero .article-meta{ text-shadow:0 1px 14px rgba(34,28,24,.4); }
.article-meta{ display:flex; align-items:center; gap:var(--s4); flex-wrap:wrap; font-weight:600; font-size:.78rem; letter-spacing:.05em; text-transform:uppercase; color:rgba(255,255,255,.85); }

.article-body{ max-width:720px; margin-inline:auto; padding-block:var(--s16); }
.article-body > *{ margin-bottom:var(--s6); }
.article-body p{ font-size:1.16rem; line-height:1.8; max-width:none; color:#2f2823; }
.article-body h2{ margin-top:var(--s12); }
.article-body h3{ margin-top:var(--s8); }
.article-body figure{ margin-block:var(--s12); }
.article-body figure img{ width:100%; border-radius:var(--r); }
.article-body figcaption{ font-weight:500; font-size:.82rem; color:var(--ink-soft); text-align:center; margin-top:var(--s3); }
.article-body blockquote{ border-left:4px solid var(--coral); padding-left:var(--s6); margin-block:var(--s12); font-family:var(--serif); font-style:italic; font-size:1.55rem; line-height:1.4; color:var(--ink); }
.article-body ul.bullets{ list-style:disc; padding-left:1.4rem; display:flex; flex-direction:column; gap:var(--s2); }
.article-body ul.bullets li{ font-size:1.1rem; }
.article-body ol{ padding-left:1.4rem; display:flex; flex-direction:column; gap:var(--s2); }
.article-body ol li{ font-size:1.1rem; padding-left:.25rem; }
.article-body .note{ background:var(--blush-soft); border-left:4px solid var(--coral); border-radius:0 var(--r-sm) var(--r-sm) 0; padding:var(--s4) var(--s5); margin-block:var(--s8); font-size:1.02rem; color:#3a322c; }
.article-body .note strong{ color:var(--coral-dark); }
.article-body figure.tall{ text-align:center; }
.article-body figure.tall img{ display:inline-block; width:auto; max-width:100%; max-height:780px; }
.article-body figure.square{ text-align:center; }
.article-body figure.square img{ display:inline-block; width:100%; max-width:440px; aspect-ratio:1/1; object-fit:cover; }
/* Side-by-side images (two or three across) to cut down on scrolling */
.article-body .figrow{ display:grid; grid-template-columns:repeat(auto-fit,minmax(0,1fr)); gap:var(--s4); margin-block:var(--s12); }
.article-body .figrow figure{ margin-block:0; display:flex; flex-direction:column; }
.article-body .figrow img{ width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; border-radius:var(--r); }
.article-body .figrow figcaption{ margin-top:var(--s2); }
/* Anchor targets clear the sticky header when jumping from the table of contents */
.article-body [id]{ scroll-margin-top:96px; }
/* In-article table of contents */
.article-body .toc{ background:var(--cream); border:1px solid var(--border); border-radius:var(--r); padding:var(--s5) var(--s6); }
.article-body .toc .toc-title{ font-family:var(--sans); font-weight:700; font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--coral-dark); margin-bottom:var(--s3); }
.article-body .toc ul{ list-style:none; padding-left:0; display:flex; flex-direction:column; gap:var(--s2); }
.article-body .toc li{ font-size:1.05rem; }
.article-body .toc a{ color:var(--ink); text-decoration:underline; text-underline-offset:3px; transition:color .15s; }
.article-body .toc a:hover{ color:var(--coral-dark); }
.article-body a.inline-link,.article-body p a{ color:var(--coral-dark); text-decoration:underline; text-underline-offset:3px; }

/* Cost table (budget posts) */
.article-body table.cost{ width:100%; border-collapse:collapse; margin-block:var(--s8); font-size:1rem; border:1px solid var(--border); border-radius:var(--r); overflow:hidden; }
.article-body table.cost th{ text-align:left; background:var(--blush-soft); font-family:var(--sans); font-weight:700; font-size:.74rem; letter-spacing:.08em; text-transform:uppercase; color:var(--coral-dark); padding:var(--s3) var(--s4); }
.article-body table.cost th:not(:first-child),.article-body table.cost td:not(:first-child){ text-align:right; font-variant-numeric:tabular-nums; }
.article-body table.cost td{ padding:var(--s3) var(--s4); border-top:1px solid var(--border); }
.article-body table.cost tfoot td{ font-weight:700; background:var(--cream); border-top:2px solid var(--border-strong); color:var(--ink); }
/* Multi-column comparison table (left-aligned text, tighter type) */
.article-body table.cost.compare{ font-size:.9rem; }
.article-body table.cost.compare th:not(:first-child),.article-body table.cost.compare td:not(:first-child){ text-align:left; font-variant-numeric:normal; }
.article-body table.cost.compare td:first-child{ font-weight:600; }
.article-body table.cost.compare td,.article-body table.cost.compare th{ vertical-align:top; }

.tags{ display:flex; gap:var(--s2); flex-wrap:wrap; align-items:center; padding-top:var(--s8); border-top:1px solid var(--border); }
.tags .t-label{ font-weight:700; font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); margin-right:var(--s2); }

.share{ display:flex; align-items:center; gap:var(--s3); margin-top:var(--s8); flex-wrap:wrap; }
.share .s-label{ font-weight:700; font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); }
.share a,.share button{ width:42px; height:42px; border-radius:var(--r-full); display:grid; place-items:center; background:var(--blush-soft); color:var(--ink); transition:background var(--dur),color var(--dur),transform var(--dur); }
.share a:hover,.share button:hover{ background:var(--coral); color:#fff; transform:translateY(-2px); }
.share svg{ width:19px; height:19px; }

.back-to-top{ position:fixed; right:var(--s6); bottom:var(--s6); width:48px; height:48px; border-radius:var(--r-full); background:var(--ink); color:#fff; display:grid; place-items:center; box-shadow:var(--shadow); z-index:90; opacity:0; visibility:hidden; transform:translateY(10px); transition:opacity var(--dur),visibility var(--dur),transform var(--dur); }
.back-to-top.show{ opacity:1; visibility:visible; transform:none; }
.back-to-top:hover{ background:var(--coral); }
.back-to-top svg{ width:22px; height:22px; }

/* ============================================================================
   FOOTER
   ========================================================================== */
.site-footer{ background:var(--cream); border-top:1px solid var(--border); margin-top:var(--s24); }
.footer-inner{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:var(--s12); padding-block:var(--s16) var(--s12); }
.footer-logo{ width:160px; margin-bottom:var(--s4); }
.footer-about{ color:var(--ink-soft); max-width:36ch; font-size:.95rem; }
.footer-col h4{ font-family:var(--sans); font-weight:700; font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:var(--s4); }
.footer-col ul{ display:flex; flex-direction:column; gap:var(--s3); }
.footer-col a{ color:var(--ink); transition:color var(--dur); }
.footer-col a:hover{ color:var(--coral); }
.socials{ display:flex; gap:var(--s3); margin-top:var(--s5); }
.socials a{ width:42px; height:42px; border-radius:var(--r-full); display:grid; place-items:center; background:var(--white); border:1px solid var(--border); transition:background var(--dur),transform var(--dur),color var(--dur); }
.socials a:hover{ background:var(--coral); color:#fff; transform:translateY(-2px); }
.socials svg{ width:20px; height:20px; }
.footer-bottom{ border-top:1px solid var(--border); padding-block:var(--s6); display:flex; justify-content:space-between; flex-wrap:wrap; gap:var(--s3); font-size:.85rem; color:var(--ink-soft); }

/* ============================================================================
   MOBILE DRAWER
   ========================================================================== */
.drawer-backdrop{ position:fixed; inset:0; z-index:var(--z-overlay); background:rgba(34,28,24,.5); backdrop-filter:blur(2px); opacity:0; visibility:hidden; transition:opacity var(--dur),visibility var(--dur); }
.drawer-backdrop.open{ opacity:1; visibility:visible; }
.drawer{ position:fixed; top:0; right:0; bottom:0; z-index:calc(var(--z-overlay) + 1); width:min(360px,88vw); background:var(--white); box-shadow:var(--shadow-lg); transform:translateX(100%); transition:transform var(--dur) var(--ease); display:flex; flex-direction:column; overflow-y:auto; padding:var(--s6); }
.drawer.open{ transform:translateX(0); }
.drawer-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:var(--s8); }
.drawer-close{ width:44px; height:44px; border-radius:var(--r-sm); display:grid; place-items:center; }
.drawer-close:hover{ background:var(--blush-soft); }
.drawer-close svg{ width:26px; height:26px; }
.drawer nav > a{ display:block; font-size:1.1rem; font-weight:600; padding:var(--s3) 0; border-bottom:1px solid var(--border); }
.drawer .accordion-trigger{ display:flex; align-items:center; justify-content:space-between; width:100%; font-size:1.1rem; font-weight:600; padding:var(--s3) 0; border-bottom:1px solid var(--border); }
.drawer .accordion-trigger svg{ width:18px; height:18px; transition:transform var(--dur); }
.drawer .accordion-trigger[aria-expanded="true"] svg{ transform:rotate(180deg); }
.drawer .accordion-panel{ display:none; padding:var(--s2) 0 var(--s3) var(--s4); }
.drawer .accordion-panel.open{ display:block; }
.drawer .accordion-panel .region-label{ font-weight:700; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--teal); margin-top:var(--s3); margin-bottom:var(--s1); }
.drawer .accordion-panel a{ display:block; font-size:.98rem; font-weight:500; padding:6px 0; color:var(--ink-soft); }
.drawer .drawer-cta{ margin-top:var(--s8); }

/* Reveal on scroll */
.reveal{ opacity:0; transform:translateY(24px); transition:opacity 600ms var(--ease),transform 600ms var(--ease); }
.reveal.in{ opacity:1; transform:none; }

/* ============================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1024px){
  .mega-inner{ grid-template-columns:repeat(2,1fr); }
  .footer-inner{ grid-template-columns:1fr 1fr; gap:var(--s8); }
  .intro,.contact-grid{ grid-template-columns:1fr; gap:var(--s8); }
  .intro .portrait{ max-width:380px; height:auto; aspect-ratio:4/5; }
  .dest-grid,.grid-4,.video-grid{ grid-template-columns:repeat(2,1fr); }
  .loc-grid{ grid-template-columns:repeat(3,1fr); }
  .masonry{ columns:2; }
}
@media (max-width:820px){
  .nav,.header-actions .btn-desktop,.icon-search-desktop{ display:none; }
  .hamburger{ display:grid; }
  .grid-3,.grid-2{ grid-template-columns:1fr; }
  .feature-row{ grid-template-columns:1fr; }
  .feature-lead{ min-height:380px; }
  .form-row{ grid-template-columns:1fr; }
  .article-hero::after{ background:linear-gradient(to top,rgba(34,28,24,.88),rgba(34,28,24,.45) 58%,rgba(34,28,24,.18)); }
}
@media (max-width:560px){
  body{ font-size:16px; }
  .header-inner{ height:66px; }
  .postcards{ display:flex; overflow-x:auto; gap:var(--s4); padding:var(--s2) var(--s2) var(--s4); scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
  .postcards::-webkit-scrollbar{ display:none; }
  .postcard{ flex:0 0 58%; scroll-snap-align:center; }
  .postcard figcaption{ font-size:.9rem; padding:var(--s2) 0; }
  .brand-word{ font-size:1.2rem; }
  .dest-grid,.grid-4,.video-grid{ grid-template-columns:1fr 1fr; }
  .loc-grid{ grid-template-columns:1fr 1fr; }
  .masonry{ columns:1; }
  .article-body p{ font-size:1.06rem; }
  .article-body blockquote{ font-size:1.3rem; }
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.001ms !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
  .reveal{ opacity:1; transform:none; }
}
