/* ── Scroll Progress Bar ── */
.scroll-progress{position:fixed;top:0;left:0;width:100%;height:3px;background:var(--coral-600);transform:scaleX(0);transform-origin:left;z-index:var(--z-progress);pointer-events:none;will-change:transform}
@media(max-width:767px){.scroll-progress{display:none}}

/* ── Hero Entrance Animations ── */
.hero-split__eyebrow,.hero-split__title,.hero-split__sub,.hero-split__ctas,.hero-split__facts{opacity:0;transform:translateY(var(--reveal-distance));transition:opacity var(--dur-section) var(--ease-enter),transform var(--dur-section) var(--ease-spring-soft)}
.hero-split__image img{opacity:0;transform:scale(1.03);transition:opacity var(--dur-ambient) var(--ease-enter),transform var(--dur-ambient) var(--ease-emphasized)}
.hero-split--loaded .hero-split__eyebrow{opacity:1;transform:translateY(0);transition-delay:100ms}
.hero-split--loaded .hero-split__title{opacity:1;transform:translateY(0);transition-delay:200ms}
.hero-split--loaded .hero-split__sub{opacity:1;transform:translateY(0);transition-delay:320ms}
.hero-split--loaded .hero-split__ctas{opacity:1;transform:translateY(0);transition-delay:440ms}
.hero-split--loaded .hero-split__facts{opacity:1;transform:translateY(0);transition-delay:560ms}
.hero-split--loaded .hero-split__image img{opacity:1;transform:scale(1);transition-delay:300ms}
@media(prefers-reduced-motion:reduce){
  .hero-split__eyebrow,.hero-split__title,.hero-split__sub,.hero-split__ctas,.hero-split__facts,.hero-split__image img{opacity:1;transform:none;transition:none}
}

/* ── Scroll Reveal System ── */
[data-reveal]{opacity:0;transform:translateY(var(--reveal-distance));transition:opacity var(--dur-section) var(--ease-enter),transform var(--dur-section) var(--ease-spring-soft)}
[data-reveal="fade"]{transform:none}
[data-reveal="fade-down"]{transform:translateY(calc(var(--reveal-distance) * -1))}
[data-reveal="fade-left"]{transform:translateX(calc(var(--reveal-distance) * -1))}
[data-reveal="fade-right"]{transform:translateX(var(--reveal-distance))}
[data-reveal="scale-soft"]{transform:scale(0.96);opacity:0}
[data-reveal].is-revealed{opacity:1;transform:none}
/* Stagger children */
[data-reveal="stagger-children"]{opacity:1;transform:none}
[data-reveal="stagger-children"] > *{opacity:0;transform:translateY(var(--reveal-distance-sm));transition:opacity var(--dur-section) var(--ease-enter),transform var(--dur-section) var(--ease-spring-soft)}
[data-reveal="stagger-children"].is-revealed > *{opacity:1;transform:none}
[data-reveal="stagger-children"].is-revealed > *:nth-child(1){transition-delay:0ms}
[data-reveal="stagger-children"].is-revealed > *:nth-child(2){transition-delay:60ms}
[data-reveal="stagger-children"].is-revealed > *:nth-child(3){transition-delay:120ms}
[data-reveal="stagger-children"].is-revealed > *:nth-child(4){transition-delay:180ms}
[data-reveal="stagger-children"].is-revealed > *:nth-child(5){transition-delay:240ms}
[data-reveal="stagger-children"].is-revealed > *:nth-child(6){transition-delay:300ms}
[data-reveal="stagger-children"].is-revealed > *:nth-child(n+7){transition-delay:360ms}
/* Image reveal */
[data-reveal="image-reveal"]{clip-path:inset(100% 0 0 0);opacity:1;transform:none;transition:clip-path var(--dur-ambient) var(--ease-emphasized)}
[data-reveal="image-reveal"].is-revealed{clip-path:inset(0 0 0 0)}
/* No-JS fallback */
.no-js [data-reveal],.no-js .hero-split__eyebrow,.no-js .hero-split__title,.no-js .hero-split__sub,.no-js .hero-split__ctas,.no-js .hero-split__facts,.no-js .hero-split__image img{opacity:1;transform:none;clip-path:none;transition:none}
/* Mobile: no horizontal reveals */
@media(max-width:767px){
  [data-reveal="fade-left"],[data-reveal="fade-right"]{transform:translateY(var(--reveal-distance-sm))}
  :root{--reveal-distance:14px;--reveal-distance-sm:8px}
}

/* ── Parallax Base ── */
[data-parallax]{will-change:transform;transition:none}
[data-parallax].parallax-active{will-change:transform}
[data-parallax].parallax-inactive{will-change:auto}
@media(prefers-reduced-motion:reduce){[data-parallax]{transform:none!important}}
@media(max-width:767px){[data-parallax]{transform:none!important}}

/* ── Button Micro-Interactions ── */
.btn{transition:background var(--dur-micro) var(--ease-standard),color var(--dur-micro) var(--ease-standard),transform var(--dur-micro) var(--ease-standard),box-shadow var(--dur-micro) var(--ease-standard);position:relative}
.btn:active{transform:scale(0.97)}
.btn--loading{pointer-events:none;opacity:.8}
.btn--loading::after{content:'';position:absolute;right:12px;top:50%;width:16px;height:16px;margin-top:-8px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:btn-spin .6s linear infinite}
.btn--success{background:var(--success)!important;color:#fff!important}
@keyframes btn-spin{to{transform:rotate(360deg)}}
@media(hover:none){.btn:active{transform:scale(0.97)}.btn:active::after{display:none}}

/* ── Link Underline Animation ── */
@media(hover:hover){
  .animated-link{position:relative;text-decoration:none}
  .animated-link::after{content:'';position:absolute;bottom:-1px;left:0;width:0;height:1px;background:currentColor;transition:width var(--dur-micro) var(--ease-standard)}
  .animated-link:hover::after{width:100%}
}

/* ── Tour Card Enhanced ── */
@media(hover:hover){
  .tour-card{transition:box-shadow var(--dur-section) var(--ease-standard),transform var(--dur-section) var(--ease-standard)}
  .tour-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}
  .tour-card:hover .tour-card__image img{transform:scale(1.05);transition:transform var(--dur-ambient) var(--ease-emphasized)}
}
.tour-card__image img{transition:transform var(--dur-ambient) var(--ease-emphasized)}

/* ── Tour Quiz ── */
.tour-quiz{max-width:600px;margin:var(--sp-8) auto 0;text-align:center}
.tour-quiz__question{font-family:var(--ff-serif);font-size:var(--fs-lg);font-weight:600;margin-bottom:var(--sp-5)}
.tour-quiz__options{display:grid;grid-template-columns:1fr;gap:var(--sp-3)}
.tour-quiz__option{padding:var(--sp-4) var(--sp-5);border:1px solid var(--sand-200);border-radius:var(--r-md);font-size:var(--fs-sm);font-weight:500;cursor:pointer;transition:all var(--dur-micro) var(--ease-standard);text-align:left;background:var(--white)}
.tour-quiz__option:hover{border-color:var(--sea-500);background:rgba(40,103,122,.04)}
.tour-quiz__option:focus-visible{outline:2px solid var(--sea-500);outline-offset:2px}
.tour-quiz__option--selected{border-color:var(--coral-600);background:rgba(217,101,67,.06)}
.tour-quiz__result{margin-top:var(--sp-5);padding:var(--sp-5);background:var(--bone-100);border-radius:var(--r-md);text-align:left;opacity:0;transform:translateY(8px);transition:opacity var(--dur-section) var(--ease-enter),transform var(--dur-section) var(--ease-spring-soft)}
.tour-quiz__result--visible{opacity:1;transform:none}
.tour-quiz__reset{margin-top:var(--sp-3);font-size:var(--fs-sm);color:var(--muted);cursor:pointer;border:none;background:none;text-decoration:underline}
@media(min-width:480px){.tour-quiz__options{grid-template-columns:1fr 1fr}}

/* ── Enhanced FAQ Accordion ── */
.faq-a{max-height:0;overflow:hidden;transition:max-height var(--dur-section) var(--ease-standard),padding var(--dur-section) var(--ease-standard),opacity var(--dur-micro) var(--ease-standard);opacity:0}
.faq-item[data-open="true"] .faq-a{max-height:500px;padding-bottom:var(--sp-5);opacity:1}
.faq-q__icon{transition:transform var(--dur-micro) var(--ease-standard)}

/* ── Timeline Progressive Reveal ── */
.timeline__step{opacity:0;transform:translateY(12px);transition:opacity var(--dur-section) var(--ease-enter),transform var(--dur-section) var(--ease-spring-soft)}
[data-reveal].is-revealed .timeline__step{opacity:1;transform:none}
[data-reveal].is-revealed .timeline__step:nth-child(1){transition-delay:0ms}
[data-reveal].is-revealed .timeline__step:nth-child(2){transition-delay:100ms}
[data-reveal].is-revealed .timeline__step:nth-child(3){transition-delay:200ms}
[data-reveal].is-revealed .timeline__step:nth-child(4){transition-delay:300ms}
[data-reveal].is-revealed .timeline__step:nth-child(5){transition-delay:400ms}
.no-js .timeline__step{opacity:1;transform:none}

/* ── Enhanced Lightbox ── */
.lightbox{transition:opacity var(--dur-section) var(--ease-standard)}
.lightbox__img{transition:opacity var(--dur-micro) var(--ease-standard)}
.lightbox__prev,.lightbox__next{transition:background var(--dur-micro) var(--ease-standard)}
@media(hover:none){.lightbox__prev,.lightbox__next{width:52px;height:52px}}
@media(max-width:767px){.lightbox__prev{left:var(--sp-2)}.lightbox__next{right:var(--sp-2)}}

/* ── Safe Area Support ── */
.mobile-booking-bar{padding-bottom:calc(var(--sp-3) + var(--sab-bottom))}
.cookie-banner{padding-bottom:calc(var(--sp-5) + var(--sab-bottom))}
.lightbox{padding-top:var(--sab-top);padding-bottom:var(--sab-bottom)}
.mobile-menu{padding-top:calc(var(--sp-6) + var(--sab-top));padding-bottom:var(--sab-bottom)}

/* ── Container Queries ── */
.tour-compare{container-type:inline-size;container-name:tour-compare}
@container tour-compare (min-width:700px){
  .tour-compare{grid-template-columns:1fr 1fr;gap:var(--sp-6)}
}
@container tour-compare (max-width:400px){
  .tour-card__body{padding:var(--sp-4)}
  .tour-card__facts{font-size:var(--fs-xs)}
}
.trust-bar{container-type:inline-size;container-name:trust-bar}
@container trust-bar (max-width:480px){
  .trust-bar__inner{flex-direction:column;align-items:center;gap:var(--sp-3)}
}
.footer-grid{container-type:inline-size;container-name:footer}
@container footer (min-width:600px){
  .footer-grid{grid-template-columns:2fr 1fr 1fr 1fr}
}

/* ── Hover/Pointer Media Queries ── */
@media(hover:none){
  .tour-card:hover{transform:none;box-shadow:var(--shadow-sm)}
  .gallery-grid__item:hover img{transform:none}
  .occasion-card:hover{border-color:var(--sand-200);box-shadow:none}
  /* Touch active states */
  .tour-card:active{background:var(--bone-100)}
  .gallery-grid__item:active img{opacity:.85}
}
@media(pointer:coarse){
  .calendar__day{min-width:36px;min-height:36px}
  .faq-q{min-height:48px;padding-block:var(--sp-4)}
}

/* ── Scroll-Driven Animation (Progressive Enhancement) ── */
@supports (animation-timeline:view()){
  .scroll-reveal-css{
    animation:css-reveal linear both;
    animation-timeline:view();
    animation-range:entry 0% entry 30%;
  }
  @keyframes css-reveal{from{opacity:0;transform:translateY(var(--reveal-distance))}to{opacity:1;transform:none}}
}

/* ── Header Hidden on Scroll Down ── */
.site-header{transition:transform var(--dur-section) var(--ease-standard),background var(--dur-micro) var(--ease-standard)}
.site-header--hidden{transform:translateY(-100%)}
@media(max-width:767px){.site-header--hidden{transform:translateY(-100%)}}

/* ── Form Error Messages ── */
.form-error{font-size:var(--fs-xs);color:var(--danger);min-height:1.2em;margin-top:var(--sp-1);transition:opacity var(--dur-micro) var(--ease-standard)}
.form-input--error{border-color:var(--danger)}
.form-group--error .form-label{color:var(--danger)}

/* ── Calendar Focused Day ── */
.calendar__day--focused{outline:2px solid var(--sea-500);outline-offset:-2px}

/* ── FAQ Icon Rotation ── */
.faq-item[data-open="true"] .faq-q__icon{transform:rotate(45deg)}
