/* =============================================================
   Atmosphere — premium refonte styles.
   Scoped to .wc-page.atm-page; relies on existing wc-styles.css
   for shared typography & layout primitives.
   ============================================================= */

.atm-page { --atm-accent: #ff4d6d; --atm-ink: #0d0d10; --atm-paper: #faf8f3; }
.atm-page .atm-kicker {
  display:inline-block; font-size:.78rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--atm-accent); font-weight:700;
  margin-bottom:.6rem;
}
.atm-page .atm-kicker--light { color:#ffd4dd; }
.atm-page .atm-display {
  font-size: clamp(2rem, 4.4vw, 3.4rem); line-height:1.05;
  font-weight:800; letter-spacing:-.02em; margin:.2rem 0 1rem;
}
.atm-page .atm-section-head { max-width:780px; margin:0 auto 1.6rem; text-align:center; padding:0 1rem; }
.atm-page .atm-section-title { font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight:800; letter-spacing:-.015em; margin:.1rem 0 .8rem; }
.atm-page .atm-section-lead { font-size:1.02rem; line-height:1.65; color:#444; }
.atm-page .atm-lead { font-size:1.08rem; line-height:1.7; max-width:62ch; color:#333; }

/* --- Intro --- */
.atm-page .atm-intro { padding:3rem 1.25rem 2rem; max-width:1100px; margin:0 auto; }
.atm-page .atm-stats { list-style:none; padding:0; margin:2rem 0 0; display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
.atm-page .atm-stat { background:var(--atm-paper); border:1px solid rgba(0,0,0,.06); border-radius:14px; padding:1.2rem 1.3rem; }
.atm-page .atm-stat b { display:block; font-size:2rem; font-weight:800; color:var(--atm-accent); line-height:1; }
.atm-page .atm-stat span { display:block; margin-top:.4rem; font-size:.92rem; color:#555; }

/* --- Pulse --- */
.atm-page .atm-pulse-section { padding:2.5rem 0; }
.atm-page .atm-pulse { list-style:none; margin:0; padding:1rem 1.25rem 1.5rem; display:flex; gap:1rem; overflow-x:auto; scroll-snap-type: x mandatory; scrollbar-width:thin; }
.atm-page .atm-pulse-card { flex:0 0 280px; scroll-snap-align:start; }
.atm-page .atm-pulse-link { position:relative; display:block; height:340px; border-radius:18px; overflow:hidden; color:#fff; text-decoration:none; box-shadow:0 14px 40px -22px rgba(0,0,0,.5); transition: transform .35s ease, box-shadow .35s ease; }
.atm-page .atm-pulse-link:hover { transform: translateY(-4px); box-shadow:0 22px 50px -22px rgba(0,0,0,.6); }
.atm-page .atm-pulse-img { position:absolute; inset:0; background-size:cover; background-position:center; transition: transform .8s ease; }
.atm-page .atm-pulse-link:hover .atm-pulse-img { transform: scale(1.06); }
.atm-page .atm-pulse-grad { position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0) 25%, rgba(0,0,0,.82) 100%); }
.atm-page .atm-pulse-body { position:absolute; left:0; right:0; bottom:0; padding:1.1rem 1.2rem 1.3rem; display:flex; flex-direction:column; gap:.35rem; }
.atm-page .atm-pulse-mood { font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:#ffb3c1; font-weight:700; }
.atm-page .atm-pulse-name { font-size:1.45rem; font-weight:800; letter-spacing:-.01em; }
.atm-page .atm-pulse-spot { font-size:.85rem; opacity:.92; }
.atm-page .atm-pulse-spot em { font-style:normal; opacity:.75; }
.atm-page .atm-pulse-cta { margin-top:.4rem; font-size:.85rem; font-weight:700; }

/* --- Nation editorial --- */
.atm-page .atm-nation { position:relative; min-height:520px; padding:3rem 1.5rem 2.5rem; color:#fff; overflow:hidden; margin:1.5rem 0; border-radius:0; }
.atm-page .atm-nation-cover { position:absolute; inset:0; background-size:cover; background-position:center; }
.atm-page .atm-nation-shade { position:absolute; inset:0; background:linear-gradient(120deg, rgba(0,0,0,.78) 0%, rgba(0,0,0,.4) 60%, rgba(0,0,0,.2) 100%); }
.atm-page .atm-nation--usa .atm-nation-shade { background:linear-gradient(120deg, rgba(10,30,80,.85) 0%, rgba(0,0,0,.3) 80%); }
.atm-page .atm-nation--can .atm-nation-shade { background:linear-gradient(120deg, rgba(120,20,30,.78) 0%, rgba(0,0,0,.35) 80%); }
.atm-page .atm-nation--mex .atm-nation-shade { background:linear-gradient(120deg, rgba(15,80,40,.82) 0%, rgba(0,0,0,.35) 80%); }
.atm-page .atm-nation-inner { position:relative; max-width:1100px; margin:0 auto; display:grid; gap:1.4rem; }
.atm-page .atm-nation-title { font-size: clamp(2.4rem, 5vw, 4rem); font-weight:900; letter-spacing:-.02em; margin:0; line-height:1; }
.atm-page .atm-triptych { display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); margin-top:.6rem; }
.atm-page .atm-triptych-card { background:rgba(255,255,255,.08); backdrop-filter: blur(6px); border:1px solid rgba(255,255,255,.14); border-radius:14px; padding:1rem 1.1rem; }
.atm-page .atm-triptych-label { font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; margin:0 0 .4rem; opacity:.85; }
.atm-page .atm-triptych-card p { margin:0; font-size:.94rem; line-height:1.6; }
.atm-page .atm-experiences { background:rgba(0,0,0,.35); border-radius:16px; padding:1.2rem 1.3rem; border:1px solid rgba(255,255,255,.1); }
.atm-page .atm-experiences-label { display:block; font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color:#ffd4dd; margin-bottom:.6rem; font-weight:700; }
.atm-page .atm-experiences ul { list-style:none; padding:0; margin:0; display:grid; gap:.7rem; }
.atm-page .atm-experiences li { display:grid; gap:.15rem; }
.atm-page .atm-experiences strong { font-size:1rem; }
.atm-page .atm-experiences span { font-size:.9rem; opacity:.85; line-height:1.5; }
.atm-page .atm-nation-cta { display:inline-flex; align-items:center; gap:.5rem; margin-top:1rem; padding:.85rem 1.4rem; background:#fff; color:#111; border-radius:999px; font-weight:700; text-decoration:none; transition:transform .25s ease; align-self:flex-start; }
.atm-page .atm-nation-cta:hover { transform: translateY(-2px); }

/* --- Trending --- */
.atm-page .atm-trending { padding:3rem 1.25rem; max-width:1100px; margin:0 auto; }
.atm-page .atm-trending-hint { text-align:center; font-size:.85rem; color:#888; margin:0 0 1.2rem; }
.atm-page .atm-chips { list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:.6rem; justify-content:center; }
.atm-page .atm-chip { display:inline-flex; align-items:center; gap:.3rem; padding:.55rem 1rem; background:#fff; border:1px solid rgba(0,0,0,.1); border-radius:999px; color:#111; text-decoration:none; font-size:.92rem; font-weight:600; transition: all .2s ease; }
.atm-page .atm-chip:hover { background:var(--atm-accent); color:#fff; border-color:var(--atm-accent); transform: translateY(-1px); }
.atm-page .atm-chip span { opacity:.5; }
.atm-page .atm-chip:hover span { opacity:.9; }

/* --- Places masonry --- */
.atm-page .atm-places-section { padding:3rem 1.25rem; max-width:1280px; margin:0 auto; }
.atm-page .atm-masonry { list-style:none; padding:0; margin:0; display:grid; gap:1.1rem; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); grid-auto-rows: 320px; }
.atm-page .atm-place[data-span="2"] { grid-column: span 2; }
@media (max-width: 720px) { .atm-page .atm-place[data-span="2"] { grid-column: span 1; } }
.atm-page .atm-place-link { position:relative; display:block; width:100%; height:100%; border-radius:18px; overflow:hidden; color:#fff; text-decoration:none; box-shadow:0 14px 40px -22px rgba(0,0,0,.5); transition: transform .35s ease; }
.atm-page .atm-place-link:hover { transform: translateY(-4px); }
.atm-page .atm-place-img { position:absolute; inset:0; background-size:cover; background-position:center; transition: transform .8s ease; }
.atm-page .atm-place-link:hover .atm-place-img { transform: scale(1.06); }
.atm-page .atm-place-grad { position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(0,0,0,.85) 100%); }
.atm-page .atm-place-tag { position:absolute; top:1rem; inset-inline-start:1rem; background:rgba(255,255,255,.92); color:#111; font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; padding:.32rem .6rem; border-radius:999px; font-weight:700; }
.atm-page .atm-place-body { position:absolute; inset-inline-start:0; inset-inline-end:0; bottom:0; padding:1.1rem 1.2rem 1.3rem; display:flex; flex-direction:column; gap:.35rem; }
.atm-page .atm-place-city { font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:#ffd4dd; font-weight:700; }
.atm-page .atm-place-name { font-size:1.3rem; font-weight:800; margin:.1rem 0 .2rem; }
.atm-page .atm-place-blurb { font-size:.9rem; line-height:1.5; margin:0; opacity:.92; }
.atm-page .atm-place-cta { margin-top:.5rem; font-size:.85rem; font-weight:700; }

/* --- Essentials --- */
.atm-page .atm-essentials { padding:3rem 1.25rem; max-width:1200px; margin:0 auto; }
.atm-page .atm-essentials-grid { display:grid; gap:1.2rem; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
.atm-page .atm-ess-card { display:flex; flex-direction:column; gap:.5rem; padding:1.6rem 1.5rem; border-radius:20px; text-decoration:none; color:#fff; min-height:240px; position:relative; overflow:hidden; transition: transform .3s ease, box-shadow .3s ease; }
.atm-page .atm-ess-card:hover { transform: translateY(-4px); box-shadow:0 20px 50px -22px rgba(0,0,0,.4); }
.atm-page .atm-ess-card--flights { background:linear-gradient(135deg, #0c2340 0%, #2d8a9e 100%); }
.atm-page .atm-ess-card--stays   { background:linear-gradient(135deg, #6b3a2a 0%, #e8b84a 100%); }
.atm-page .atm-ess-card--gear    { background:linear-gradient(135deg, #1a3c2a 0%, #5a8a5c 100%); }
.atm-page .atm-ess-icon { font-size:2rem; }
.atm-page .atm-ess-title { font-size:1.3rem; font-weight:800; margin:.2rem 0 .2rem; }
.atm-page .atm-ess-body { font-size:.95rem; line-height:1.55; margin:0; opacity:.95; flex:1; }
.atm-page .atm-ess-cta { font-weight:700; margin-top:.6rem; }

/* --- Survival grid --- */
.atm-page .atm-survival { padding:3rem 1.25rem; max-width:1200px; margin:0 auto; }
.atm-page .atm-survival-grid { list-style:none; padding:0; margin:0; display:grid; gap:1.1rem; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); }
.atm-page .atm-survival-tile { background:var(--atm-paper); border:1px solid rgba(0,0,0,.07); border-radius:16px; padding:1.4rem 1.3rem; transition: border-color .25s ease, transform .25s ease; }
.atm-page .atm-survival-tile:hover { border-color: var(--atm-accent); transform: translateY(-2px); }
.atm-page .atm-survival-icon { display:inline-flex; width:44px; height:44px; align-items:center; justify-content:center; background:#fff; border-radius:12px; color:var(--atm-accent); margin-bottom:.7rem; }
.atm-page .atm-survival-icon svg { width:26px; height:26px; }
.atm-page .atm-survival-tile h3 { margin:.2rem 0 .4rem; font-size:1.05rem; font-weight:800; }
.atm-page .atm-survival-tile p { margin:0; font-size:.92rem; line-height:1.55; color:#444; }

/* --- Final CTA --- */
.atm-page .atm-final { margin:2rem 0 0; padding: clamp(3rem, 6vw, 5rem) 1.5rem; text-align:center; color:#fff; background: linear-gradient(135deg, #ff4d6d 0%, #c92447 50%, #6b1525 100%); position:relative; overflow:hidden; }
.atm-page .atm-final::before { content:''; position:absolute; inset:0; background-image: radial-gradient(circle at 20% 30%, rgba(255,255,255,.18) 0, transparent 40%), radial-gradient(circle at 80% 70%, rgba(255,255,255,.12) 0, transparent 40%); pointer-events:none; }
.atm-page .atm-final-inner { position:relative; max-width:780px; margin:0 auto; }
.atm-page .atm-final-kicker { font-size:.85rem; letter-spacing:.2em; text-transform:uppercase; opacity:.85; font-weight:700; }
.atm-page .atm-final-title { font-size: clamp(2rem, 4vw, 3rem); font-weight:900; letter-spacing:-.02em; margin:.6rem 0 .8rem; line-height:1.05; }
.atm-page .atm-final-sub { font-size:1.05rem; line-height:1.6; opacity:.95; margin:0 auto 1.6rem; max-width:60ch; }
.atm-page .atm-final-actions { display:flex; gap:.8rem; justify-content:center; flex-wrap:wrap; }
.atm-page .atm-final-btn { display:inline-flex; align-items:center; padding:.95rem 1.6rem; border-radius:999px; font-weight:700; text-decoration:none; transition: transform .25s ease; }
.atm-page .atm-final-btn--primary { background:#fff; color:#c92447; }
.atm-page .atm-final-btn--ghost { border:1.5px solid rgba(255,255,255,.6); color:#fff; }
.atm-page .atm-final-btn:hover { transform: translateY(-2px); }

/* --- Reveal animation --- */
.atm-page [data-atm-reveal] { opacity:0; transform: translateY(14px); transition: opacity .6s ease, transform .6s ease; }
.atm-page [data-atm-reveal].is-in { opacity:1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
  .atm-page [data-atm-reveal] { opacity:1; transform:none; transition:none; }
  .atm-page .atm-pulse-link, .atm-page .atm-place-link, .atm-page .atm-ess-card { transition:none; }
}

/* RTL adjustments */
[dir="rtl"] .atm-page .atm-pulse { direction: rtl; }
[dir="rtl"] .atm-page .atm-place-tag { inset-inline-start:auto; inset-inline-end:1rem; }
