/* Hop On Panama — Brand System */
:root {
  --teal:#2D7A8F; --teal-dark:#1F5A6B; --teal-tint:#E8F2F4; --teal-deep:#0F3A47;
  --terracotta:#B8631A; --terracotta-dark:#8E4B12; --terracotta-tint:#F7E8D8;
  --green:#5C7A2D; --green-dark:#3F5520; --green-tint:#EEF3E5;
  --ink:#1A2530; --ink-soft:#2C3845;
  --muted:#6B7782; --muted-soft:#93A0AC;
  --paper:#FAF7F2; --paper-warm:#F4EEE3;
  --border:#E5DDD3; --border-soft:#F0E9DC;
  --gold:#C9A961;
}
* { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body {
  font-family:'DM Sans',sans-serif; background:var(--paper); color:var(--ink);
  line-height:1.65; -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }

/* NAV */
nav.top {
  position:sticky; top:0; z-index:50;
  padding:18px 36px;
  background:rgba(250,247,242,0.9); backdrop-filter:blur(14px);
  border-bottom:1px solid var(--border-soft);
}
.nav-inner {
  max-width:1240px; margin:0 auto;
  display:flex; justify-content:space-between; align-items:center; gap:24px;
}
.logo {
  font-family:'Fraunces',serif; font-weight:600; font-size:22px;
  letter-spacing:-0.02em; color:var(--ink);
  font-variation-settings:"opsz" 144, "SOFT" 50;
}
.logo em { font-style:italic; color:var(--teal); font-weight:400; }
.nav-links {
  display:flex; gap:30px; align-items:center;
  list-style:none; font-size:14px; font-weight:500;
}
.nav-links a {
  color:var(--ink-soft); transition:color .2s; position:relative;
  padding:6px 0;
}
.nav-links a:hover, .nav-links a.active { color:var(--teal); }
.nav-links a.active::after {
  content:''; position:absolute; bottom:-2px; left:0; right:0; height:2px;
  background:var(--teal); border-radius:2px;
}
.nav-cta { display:flex; gap:12px; align-items:center; }
.lang-toggle {
  display:flex; gap:4px; padding:4px;
  background:var(--paper-warm); border-radius:999px;
  font-size:12px; font-weight:600;
}
.lang-toggle button {
  border:none; background:none; padding:5px 12px; border-radius:999px;
  cursor:pointer; color:var(--muted); font-family:inherit; font-weight:600;
}
.lang-toggle button.active { background:var(--ink); color:white; }
.nav-book {
  padding:10px 20px; border-radius:999px;
  background:var(--ink); color:white !important;
  font-size:13px; font-weight:600; transition:background .2s;
}
.nav-book:hover { background:var(--teal-deep); }

/* TYPOGRAPHY HELPERS */
.eyebrow {
  display:inline-flex; align-items:center; gap:10px;
  font-size:12px; font-weight:600; letter-spacing:0.16em;
  text-transform:uppercase; color:var(--terracotta);
}
.eyebrow::before {
  content:''; width:36px; height:1px; background:var(--terracotta);
}
.h-display {
  font-family:'Fraunces',serif; font-weight:400;
  letter-spacing:-0.025em; color:var(--ink);
  font-variation-settings:"opsz" 144, "SOFT" 40;
  line-height:1.02;
}
.h-display em { font-style:italic; color:var(--teal); font-weight:400; }
.h-section {
  font-family:'Fraunces',serif; font-weight:500;
  letter-spacing:-0.02em; line-height:1.1;
  font-variation-settings:"opsz" 144;
}
.h-section em { font-style:italic; color:var(--teal); font-weight:400; }

/* BUTTONS */
.btn-primary {
  display:inline-flex; align-items:center; gap:10px;
  padding:16px 32px; border-radius:999px;
  background:var(--ink); color:white !important;
  font-size:14px; font-weight:600; cursor:pointer;
  border:none; font-family:inherit; transition:all .2s;
}
.btn-primary:hover { background:var(--teal-deep); transform:translateY(-1px); }
.btn-secondary {
  display:inline-flex; align-items:center; gap:10px;
  padding:16px 28px; border-radius:999px;
  background:transparent; color:var(--ink) !important;
  border:1.5px solid var(--ink);
  font-size:14px; font-weight:600; cursor:pointer;
  font-family:inherit; transition:all .2s;
}
.btn-secondary:hover { background:var(--ink); color:white !important; }

/* HERO */
.hero {
  max-width:1240px; margin:0 auto; padding:80px 36px 60px;
}
.hero h1 {
  font-size:clamp(40px, 6.5vw, 84px);
  margin:24px 0 28px; max-width:1000px;
}
.hero-sub {
  font-size:clamp(17px, 1.6vw, 21px); color:var(--ink-soft);
  max-width:640px; line-height:1.55; margin-bottom:36px;
}
.hero-actions { display:flex; gap:14px; flex-wrap:wrap; }

/* SECTION */
.section { max-width:1240px; margin:0 auto; padding:80px 36px; }
.section-narrow { max-width:880px; margin:0 auto; padding:80px 36px; }
.section h2 { font-size:clamp(34px, 4.5vw, 52px); margin-bottom:24px; }
.section-intro { text-align:center; margin-bottom:60px; }
.section-intro .eyebrow { margin-bottom:20px; }
.section-intro h2 { max-width:800px; margin:0 auto 24px; }
.section-intro p {
  font-size:17px; color:var(--muted); max-width:580px;
  margin:0 auto; line-height:1.6;
}

/* PILLAR CARDS */
.pillar-grid {
  display:grid; grid-template-columns:repeat(3, 1fr); gap:24px;
}
.pillar {
  border-radius:18px; overflow:hidden;
  transition:transform .3s;
  display:flex; flex-direction:column; min-height:540px;
}
.pillar:hover { transform:translateY(-6px); }
.pillar-img { height:220px; overflow:hidden; background:var(--paper-warm); }
.pillar-img img { width:100%; height:100%; object-fit:cover; }
.pillar-body { padding:28px 28px 32px; flex:1; display:flex; flex-direction:column; }
.pillar-tag {
  display:inline-flex; align-items:center; gap:8px;
  font-size:11px; font-weight:700; letter-spacing:0.14em;
  text-transform:uppercase; margin-bottom:16px;
}
.pillar-tag::before { content:''; width:24px; height:1px; }
.pillar h3 {
  font-family:'Fraunces',serif; font-weight:500; font-size:32px;
  line-height:1.1; letter-spacing:-0.02em; margin-bottom:14px;
  font-variation-settings:"opsz" 144;
}
.pillar h3 em { font-style:italic; font-weight:400; }
.pillar-desc {
  font-size:15px; line-height:1.6; color:var(--ink-soft);
  margin-bottom:22px; flex:1;
}
.pillar-features { list-style:none; font-size:13.5px; color:var(--ink-soft); margin-bottom:26px; }
.pillar-features li {
  padding:8px 0; border-top:1px solid var(--border);
  display:flex; align-items:center; gap:10px;
}
.pillar-features li:last-child { border-bottom:1px solid var(--border); }
.pillar-features li::before { content:'→'; font-size:14px; }
.pillar-cta {
  display:inline-flex; align-items:center; gap:10px;
  font-size:14px; font-weight:600;
  align-self:flex-start; transition:gap .2s;
}
.pillar-cta:hover { gap:16px; }
.pillar.explore { background:var(--teal-tint); }
.pillar.explore .pillar-tag, .pillar.explore .pillar-features li::before { color:var(--teal); }
.pillar.explore .pillar-tag::before { background:var(--teal); }
.pillar.explore .pillar-cta { color:var(--teal-dark); }
.pillar.settle { background:var(--terracotta-tint); }
.pillar.settle .pillar-tag, .pillar.settle .pillar-features li::before { color:var(--terracotta); }
.pillar.settle .pillar-tag::before { background:var(--terracotta); }
.pillar.settle .pillar-cta { color:var(--terracotta-dark); }
.pillar.thrive { background:var(--green-tint); }
.pillar.thrive .pillar-tag, .pillar.thrive .pillar-features li::before { color:var(--green); }
.pillar.thrive .pillar-tag::before { background:var(--green); }
.pillar.thrive .pillar-cta { color:var(--green-dark); }

/* CATEGORY CARDS (Explore overview) */
.cat-grid {
  display:grid; grid-template-columns:repeat(4, 1fr); gap:18px;
  margin-bottom:80px;
}
.cat-card {
  background:white; border:1px solid var(--border-soft); border-radius:14px;
  padding:24px 20px; cursor:pointer; transition:all .25s;
}
.cat-card:hover {
  transform:translateY(-3px); box-shadow:0 10px 28px rgba(26,37,48,0.07);
  border-color:var(--teal);
}
.cat-icon {
  width:40px; height:40px; border-radius:10px;
  background:var(--teal-tint); color:var(--teal-dark);
  display:flex; align-items:center; justify-content:center;
  font-size:20px; margin-bottom:14px;
}
.cat-card h4 {
  font-family:'Fraunces',serif; font-size:17px; font-weight:500;
  letter-spacing:-0.01em; color:var(--ink); margin-bottom:6px;
}
.cat-card p { font-size:12.5px; color:var(--muted); line-height:1.5; }

/* EXPERIENCE CARDS */
.cat-section { margin-bottom:80px; }
.cat-header {
  display:flex; justify-content:space-between; align-items:flex-end;
  margin-bottom:32px; gap:40px; padding-bottom:18px;
  border-bottom:1px solid var(--border-soft);
}
.cat-header .cat-count {
  font-family:'Fraunces',serif; font-style:italic; font-size:14px;
  color:var(--muted); padding-bottom:4px;
}
.exp-grid {
  display:grid; grid-template-columns:repeat(3, 1fr); gap:22px;
}
.exp-card {
  background:white; border-radius:14px; overflow:hidden;
  border:1px solid var(--border-soft);
  transition:transform .3s, box-shadow .3s;
  display:flex; flex-direction:column;
}
.exp-card:hover {
  transform:translateY(-4px); box-shadow:0 12px 32px rgba(26,37,48,0.08);
}
.exp-img {
  height:200px; overflow:hidden;
  background:var(--paper-warm); position:relative;
  display:flex; align-items:center; justify-content:center;
}
.exp-img img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.exp-card:hover .exp-img img { transform:scale(1.05); }
.exp-img.placeholder { background:var(--teal); }
.exp-img.placeholder.terra { background:var(--terracotta); }
.exp-img.placeholder.green { background:var(--green); }
.exp-img.placeholder.ink { background:var(--ink); }
.exp-img.placeholder.gold { background:var(--gold); }
.exp-img.placeholder.teal-d { background:var(--teal-dark); }
.exp-img.placeholder svg { width:48px; height:48px; opacity:0.85; }
.exp-tag {
  position:absolute; top:12px; left:12px;
  padding:5px 11px; border-radius:999px;
  background:rgba(255,255,255,0.95);
  font-size:10.5px; font-weight:700; letter-spacing:0.08em;
  text-transform:uppercase; color:var(--ink);
}
.exp-body {
  padding:20px 22px 22px; flex:1;
  display:flex; flex-direction:column;
}
.exp-card h3 {
  font-family:'Fraunces',serif; font-weight:500; font-size:19px;
  line-height:1.2; letter-spacing:-0.01em; color:var(--ink);
  margin-bottom:8px;
}
.exp-tagline {
  font-size:13.5px; color:var(--muted); line-height:1.5;
  font-style:italic; margin-bottom:16px; flex:1;
}
.exp-meta {
  display:flex; justify-content:space-between; align-items:center;
  padding-top:14px; border-top:1px solid var(--border-soft);
  font-size:13px;
}
.exp-inquire {
  font-family:'Fraunces',serif; font-style:italic; font-size:14.5px;
  color:var(--terracotta); font-weight:500; letter-spacing:-0.01em;
}
.exp-inquire-link {
  font-family:'Fraunces',serif; font-style:italic; font-size:14.5px;
  color:var(--terracotta); font-weight:500; letter-spacing:-0.01em;
  text-decoration:none;
  display:inline-flex; align-items:center; gap:4px;
  transition:color .2s, gap .2s;
}
.exp-inquire-link:hover { color:var(--terracotta-dark); gap:9px; }
.exp-price {
  font-family:'Fraunces',serif; font-size:19px; font-weight:500;
  color:var(--terracotta); letter-spacing:-0.01em;
}
.exp-price-prefix { font-size:11px; color:var(--muted); font-family:'DM Sans',sans-serif; font-weight:400; }
.exp-price.inquire { font-size:13.5px; color:var(--muted); font-style:italic; font-family:'DM Sans',sans-serif; font-weight:500; }
.exp-duration { color:var(--muted-soft); font-weight:500; }

/* COMING SOON HERO (Settle, Thrive, Group) */
.coming-soon-hero { padding:80px 36px 60px; max-width:1240px; margin:0 auto; }
.coming-soon-band {
  display:grid; grid-template-columns:1.1fr 1fr; gap:80px;
  align-items:center;
}
.coming-soon-status {
  display:inline-flex; align-items:center; gap:10px;
  padding:8px 16px; border-radius:999px;
  background:var(--paper-warm); color:var(--terracotta);
  font-size:12px; font-weight:600; letter-spacing:0.1em;
  text-transform:uppercase; margin-bottom:24px;
}
.coming-soon-status::before {
  content:''; width:8px; height:8px; border-radius:50%; background:var(--terracotta);
  animation: pulse 2s ease-in-out infinite;
}
@keyframes pulse {
  0%, 100% { opacity:1; transform:scale(1); }
  50% { opacity:0.5; transform:scale(0.85); }
}
.timeline {
  background:white; border-radius:16px; padding:32px 36px;
  border:1px solid var(--border);
}
.timeline-item {
  display:flex; gap:20px; padding:18px 0;
  border-bottom:1px solid var(--border-soft);
}
.timeline-item:last-child { border-bottom:none; }
.timeline-num {
  font-family:'Fraunces',serif; font-style:italic; font-size:22px;
  color:var(--teal); font-weight:500; min-width:44px;
}
.timeline-item h4 {
  font-family:'Fraunces',serif; font-size:17px; font-weight:500;
  margin-bottom:4px; letter-spacing:-0.01em; color:var(--ink);
}
.timeline-item p { font-size:14px; color:var(--muted); line-height:1.55; }

/* EMAIL CAPTURE */
.email-capture {
  background:var(--paper-warm); border-radius:16px; padding:32px;
  margin-top:36px;
}
.email-capture h4 {
  font-family:'Fraunces',serif; font-size:20px; font-weight:500;
  margin-bottom:8px; letter-spacing:-0.01em; color:var(--ink);
}
.email-capture p { font-size:14px; color:var(--muted); margin-bottom:18px; }
.email-form { display:flex; gap:10px; flex-wrap:wrap; }
.email-form input[type=email] {
  flex:1; min-width:240px; padding:14px 18px;
  border:1px solid var(--border); border-radius:999px;
  font-family:inherit; font-size:14px; background:white;
  transition:border-color .2s;
}
.email-form input[type=email]:focus {
  outline:none; border-color:var(--teal);
}
.email-form button {
  padding:14px 26px; border-radius:999px; border:none;
  background:var(--ink); color:white; font-family:inherit;
  font-size:13.5px; font-weight:600; cursor:pointer;
  transition:background .2s;
}
.email-form button:hover { background:var(--teal-deep); }

/* TEAM */
.team-grid {
  display:grid; grid-template-columns:repeat(4, 1fr); gap:22px;
  margin-top:48px;
}
.team-grid.team-grid-3 {
  grid-template-columns:repeat(3, 1fr); max-width:1000px; margin-left:auto; margin-right:auto;
}
.team-card {
  background:white; border-radius:14px; padding:28px 24px;
  border:1px solid var(--border-soft); text-align:left;
}
.team-avatar {
  width:64px; height:64px; border-radius:50%;
  background:var(--teal-tint); margin-bottom:18px;
  display:flex; align-items:center; justify-content:center;
  font-family:'Fraunces',serif; font-size:24px; font-weight:500;
  color:var(--teal-dark); letter-spacing:-0.02em;
}
.team-card:nth-child(2) .team-avatar { background:var(--terracotta-tint); color:var(--terracotta-dark); }
.team-card:nth-child(3) .team-avatar { background:var(--green-tint); color:var(--green-dark); }
.team-card:nth-child(4) .team-avatar { background:var(--paper-warm); color:var(--ink); }
.team-card h4 {
  font-family:'Fraunces',serif; font-size:19px; font-weight:500;
  margin-bottom:4px; letter-spacing:-0.01em; color:var(--ink);
}
.team-role {
  font-size:12.5px; color:var(--terracotta); font-weight:600;
  margin-bottom:12px; letter-spacing:0.04em;
}
.team-bio { font-size:13.5px; color:var(--muted); line-height:1.55; }

/* CTA BAND */
.cta-band {
  background:var(--teal); color:white; padding:90px 36px; text-align:center;
}
.cta-inner { max-width:800px; margin:0 auto; }
.cta-band h2 { color:white; max-width:none; margin-bottom:24px; }
.cta-band h2 em { color:var(--gold); }
.cta-band p { font-size:18px; color:rgba(255,255,255,0.85); margin-bottom:36px; }
.cta-buttons { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.cta-band .btn-primary { background:white; color:var(--teal-deep) !important; }
.cta-band .btn-primary:hover { background:var(--gold); color:var(--ink) !important; }
.cta-band .btn-secondary { color:white !important; border-color:rgba(255,255,255,0.4); }
.cta-band .btn-secondary:hover { background:white; color:var(--teal-deep) !important; }
.cta-band .eyebrow { color:var(--gold); }
.cta-band .eyebrow::before { background:var(--gold); }

/* CONTACT FORM */
.contact-grid {
  display:grid; grid-template-columns:1fr 1.2fr; gap:60px;
  align-items:start; margin-top:40px;
}
.contact-info-card {
  background:var(--paper-warm); border-radius:14px; padding:30px;
}
.contact-info-card h3 {
  font-family:'Fraunces',serif; font-size:20px; font-weight:500;
  margin-bottom:18px; letter-spacing:-0.01em;
}
.contact-row {
  padding:14px 0; border-bottom:1px solid var(--border-soft);
  display:flex; flex-direction:column; gap:4px;
}
.contact-row:last-child { border-bottom:none; }
.contact-label {
  font-size:11px; font-weight:700; color:var(--muted);
  letter-spacing:0.1em; text-transform:uppercase;
}
.contact-value { font-size:15px; color:var(--ink); font-weight:500; }
.contact-value a { color:var(--teal-dark); }
.contact-form-card {
  background:white; border-radius:14px; padding:34px;
  border:1px solid var(--border);
}
.form-row { margin-bottom:20px; }
.form-row label {
  display:block; font-size:12px; font-weight:700;
  color:var(--muted); letter-spacing:0.06em; text-transform:uppercase;
  margin-bottom:8px;
}
.form-row input, .form-row textarea, .form-row select {
  width:100%; padding:13px 16px; border:1px solid var(--border);
  border-radius:10px; font-family:inherit; font-size:14.5px;
  background:white; transition:border-color .2s;
}
.form-row input:focus, .form-row textarea:focus, .form-row select:focus {
  outline:none; border-color:var(--teal);
}
.form-row textarea { resize:vertical; min-height:120px; }
.form-row-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }

/* FOOTER */
footer {
  background:var(--ink); color:rgba(255,255,255,0.7);
  padding:70px 36px 30px;
}
.footer-inner {
  max-width:1240px; margin:0 auto;
  display:grid; grid-template-columns:2fr 1fr 1fr 1fr 1fr;
  gap:40px; padding-bottom:50px;
  border-bottom:1px solid rgba(255,255,255,0.1);
}
.footer-brand .logo { color:white; font-size:24px; margin-bottom:14px; display:inline-block; }
.footer-brand .logo em { color:var(--gold); }
.footer-brand p { font-size:14px; line-height:1.6; max-width:280px; margin-top:14px; }
footer h5 {
  font-size:12px; font-weight:700; letter-spacing:0.14em;
  text-transform:uppercase; color:white; margin-bottom:18px;
}
.footer-links { list-style:none; }
.footer-links li { margin-bottom:10px; }
.footer-links a {
  color:rgba(255,255,255,0.7); font-size:14px; transition:color .2s;
}
.footer-links a:hover { color:var(--gold); }
.footer-bottom {
  max-width:1240px; margin:30px auto 0;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:18px;
  font-size:13px; color:rgba(255,255,255,0.5);
}
.footer-domain {
  display:inline-flex; align-items:center; gap:6px;
}
.footer-domain::before {
  content:''; width:6px; height:6px; background:var(--gold);
  border-radius:50%; display:inline-block;
}

/* RESPONSIVE */
@media (max-width: 1024px) {
  .pillar-grid { grid-template-columns:1fr; gap:18px; }
  .cat-grid { grid-template-columns:repeat(2, 1fr); }
  .exp-grid { grid-template-columns:repeat(2, 1fr); }
  .team-grid { grid-template-columns:repeat(2, 1fr); }
  .coming-soon-band, .contact-grid { grid-template-columns:1fr; gap:40px; }
  .footer-inner { grid-template-columns:1fr 1fr; gap:32px; }
  .nav-links { display:none; }
}
@media (max-width: 600px) {
  nav.top { padding:14px 20px; }
  .hero, .section, .section-narrow, .coming-soon-hero, .cta-band { padding-left:20px !important; padding-right:20px !important; }
  .cat-grid { grid-template-columns:1fr; }
  .exp-grid { grid-template-columns:1fr; }
  .team-grid { grid-template-columns:1fr; }
  .footer-inner { grid-template-columns:1fr; }
  .hero-actions { flex-direction:column; align-items:stretch; }
  .btn-primary, .btn-secondary { justify-content:center; }
  .form-row-grid { grid-template-columns:1fr; }
}

/* ===== CINEMATIC HERO CAROUSEL — Ken Burns effect ===== */
.hero-cinema {
  position:relative; width:100%; height:70vh; min-height:520px; max-height:780px;
  overflow:hidden; border-radius:20px;
  background:var(--paper-warm);
  box-shadow:0 30px 80px rgba(26,37,48,0.18);
}
.hero-slide {
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  opacity:0; transition:opacity 1.4s cubic-bezier(0.4, 0, 0.2, 1);
  transform-origin:center center;
  will-change:transform, opacity;
}
.hero-slide.active {
  opacity:1;
  animation: kenburns 7.5s cubic-bezier(0.25, 0.1, 0.25, 1) forwards;
}
@keyframes kenburns {
  0%   { transform: scale(1.0) translate(0, 0); }
  100% { transform: scale(1.12) translate(-1.5%, -1.5%); }
}
.hero-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(26,37,48,0.55) 0%, rgba(26,37,48,0.05) 35%, transparent 60%);
  pointer-events:none; z-index:2;
}
.hero-caption {
  position:absolute; left:36px; right:36px; bottom:32px; z-index:3;
  display:flex; justify-content:space-between; align-items:flex-end; gap:24px;
  color:white;
}
.hero-caption .now {
  font-family:'Fraunces',serif; font-style:italic; font-size:22px;
  font-weight:400; letter-spacing:-0.01em;
  text-shadow:0 2px 12px rgba(0,0,0,0.4);
}
.hero-dots {
  display:flex; gap:8px; align-items:center;
}
.hero-dots button {
  width:32px; height:3px; border:none; padding:0;
  background:rgba(255,255,255,0.4); border-radius:2px;
  cursor:pointer; transition:background .3s, width .3s;
}
.hero-dots button.active {
  background:white; width:48px;
}
@media (max-width:600px) {
  .hero-cinema { height:55vh; min-height:400px; border-radius:14px; }
  .hero-caption { left:20px; right:20px; bottom:20px; flex-direction:column; align-items:flex-start; gap:14px; }
  .hero-caption .now { font-size:17px; }
}

/* ===== SCROLL REVEAL ===== */
.reveal {
  opacity:0; transform:translateY(28px);
  transition:opacity 0.9s cubic-bezier(0.25, 0.1, 0.25, 1),
             transform 0.9s cubic-bezier(0.25, 0.1, 0.25, 1);
}
.reveal.is-visible {
  opacity:1; transform:translateY(0);
}
.reveal-stagger-1 { transition-delay:0.06s; }
.reveal-stagger-2 { transition-delay:0.12s; }
.reveal-stagger-3 { transition-delay:0.18s; }

/* ===== HERO TEXT ENTRANCE ===== */
.hero h1, .hero .eyebrow, .hero-sub, .hero-actions {
  opacity:0; transform:translateY(20px);
  animation: heroFadeUp 1s cubic-bezier(0.25, 0.1, 0.25, 1) forwards;
}
.hero .eyebrow { animation-delay:0.05s; }
.hero h1 { animation-delay:0.15s; }
.hero-sub { animation-delay:0.30s; }
.hero-actions { animation-delay:0.45s; }
@keyframes heroFadeUp {
  to { opacity:1; transform:translateY(0); }
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  .hero-slide.active { animation:none; }
  .reveal { opacity:1; transform:none; }
  .hero h1, .hero .eyebrow, .hero-sub, .hero-actions {
    opacity:1; transform:none; animation:none;
  }
}
