:root{
  --bg:#f6fbff;
  --surface:#ffffff;
  --surface-soft:#eef7ff;
  --line:#d7e6f4;
  --text:#163b63;
  --muted:#617892;
  --blue:#1474d8;
  --blue-dark:#0b4d93;
  --orange:#ff9120;
  --orange-dark:#ec6f00;
  --shadow:0 14px 34px rgba(12,53,94,.08);
  --shadow-strong:0 24px 60px rgba(12,53,94,.14);
  --radius:22px;
  --max:1180px;
}

*{
  box-sizing:border-box;
  margin:0;
  padding:0;
}

html{
  scroll-behavior:smooth;
}

body{
  font-family:'Poppins',sans-serif;
  color:var(--text);
  background:
    radial-gradient(circle at top left, rgba(20,116,216,.08), transparent 24%),
    radial-gradient(circle at top right, rgba(255,145,32,.06), transparent 18%),
    linear-gradient(180deg,#fbfdff 0%,#f6fbff 100%);
  overflow-x:hidden;
}

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

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

button{
  font:inherit;
  border:none;
  background:none;
  cursor:pointer;
}

.container{
  width:min(var(--max), calc(100% - 26px));
  margin:auto;
}

.top-belt{
  position:sticky;
  top:0;
  z-index:1200;
  background:linear-gradient(90deg,var(--orange),var(--orange-dark));
  color:#fff;
  overflow:hidden;
  height:42px;
  display:flex;
  align-items:center;
}

.belt-track{
  white-space:nowrap;
  display:inline-block;
  padding-left:100%;
  animation:beltMove 22s linear infinite;
  font-size:13px;
  font-weight:800;
  letter-spacing:.03em;
}

@keyframes beltMove{
  0%{transform:translateX(0)}
  100%{transform:translateX(-100%)}
}

.site-header{
  position:sticky;
  top:42px;
  z-index:1100;
  background:rgba(246,251,255,.92);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(20,116,216,.08);
  transition:.25s ease;
}

.site-header.scrolled{
  box-shadow:var(--shadow);
}

.nav-row{
  min-height:76px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}

.brand{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
  transition:transform .2s ease;
}

.brand img{
  width:50px;
  height:50px;
  border-radius:16px;
  object-fit:cover;
  box-shadow:var(--shadow);
  flex-shrink:0;
}

.brand-copy strong{
  display:block;
  font-size:17px;
  line-height:1;
  font-weight:900;
}

.brand-copy span{
  display:block;
  margin-top:4px;
  font-size:10px;
  letter-spacing:.2em;
  color:var(--orange-dark);
  font-weight:800;
}

.desktop-nav{
  display:flex;
  align-items:center;
  gap:8px;
}

.desktop-nav a{
  padding:9px 13px;
  border-radius:999px;
  font-size:13px;
  font-weight:700;
  transition:all .22s ease;
  position:relative;
}

.desktop-nav a::after{
  content:"";
  position:absolute;
  left:14px;
  right:14px;
  bottom:6px;
  height:2px;
  background:linear-gradient(90deg,var(--orange),var(--orange-dark));
  transform:scaleX(0);
  transform-origin:center;
  transition:transform .22s ease;
  border-radius:999px;
}

.desktop-nav a:hover,
.desktop-nav a.active{
  background:var(--surface-soft);
  color:var(--blue-dark);
}

.desktop-nav a:hover::after,
.desktop-nav a.active::after{
  transform:scaleX(1);
}

.nav-actions{
  display:flex;
  align-items:center;
  gap:10px;
}

.nav-book{
  min-height:42px;
  padding:0 16px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,var(--orange),var(--orange-dark));
  color:#fff;
  font-size:13px;
  font-weight:800;
  box-shadow:0 12px 24px rgba(255,145,32,.2);
  transition:transform .22s ease, box-shadow .22s ease;
}

.nav-book:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 28px rgba(255,145,32,.28);
}

.menu-toggle{
  display:none;
  width:44px;
  height:44px;
  border-radius:14px;
  background:#fff;
  box-shadow:var(--shadow);
  transition:transform .2s ease;
}

.menu-toggle span{
  display:block;
  width:18px;
  height:2px;
  background:var(--blue-dark);
  margin:4px auto;
  border-radius:999px;
  transition:all .22s ease;
}

.mobile-menu{
  display:none;
  padding:0 13px 14px;
}

.mobile-menu.open{
  display:block;
  animation:menuFade .22s ease;
}

@keyframes menuFade{
  from{opacity:0;transform:translateY(-8px)}
  to{opacity:1;transform:translateY(0)}
}

.mobile-menu a{
  display:block;
  padding:13px 15px;
  border-radius:16px;
  background:#fff;
  box-shadow:var(--shadow);
  font-weight:700;
  font-size:14px;
  margin-top:8px;
  transition:transform .18s ease, background .18s ease;
}

.mobile-menu a:hover{
  transform:translateX(4px);
  background:var(--surface-soft);
}

.hero{
  position:relative;
  min-height:84vh;
  display:flex;
  align-items:center;
  overflow:hidden;
}

.hero-updated .hero-media img{
  object-position:center 30%;
}

.hero-media{
  position:absolute;
  inset:0;
}

.hero-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(1.08) contrast(1.02);
  transform:scale(1.05);
  transition:transform .35s ease;
}

.hero-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(8,31,58,.34) 0%, rgba(8,31,58,.14) 42%, rgba(8,31,58,.06) 100%),
    linear-gradient(180deg, rgba(8,31,58,.02) 0%, rgba(8,31,58,.08) 100%);
}

.hero-inner{
  position:relative;
  z-index:1;
  width:100%;
}

.hero-copy{
  max-width:780px;
  color:#fff;
  padding:92px 0 70px;
}

.section-tag{
  display:inline-flex;
  align-items:center;
  padding:7px 11px;
  border-radius:999px;
  background:var(--surface-soft);
  color:var(--blue-dark);
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.hero-tag{
  background:rgba(255,255,255,.18);
  border:1px solid rgba(255,255,255,.22);
  color:#fff;
  backdrop-filter:blur(8px);
  font-size:11px;
}

.hero-heading{
  margin-top:18px;
  font-size:clamp(42px, 6vw, 78px);
  line-height:.94;
  font-weight:900;
  letter-spacing:-0.02em;
  max-width:13ch;
  text-shadow:0 10px 30px rgba(0,0,0,.12);
}

.hero-heading .accent{
  color:#ffb351;
}

.hero-subtext{
  max-width:58ch;
  color:rgba(255,255,255,.97);
}

.hero-subtext-strong{
  margin-top:18px;
  font-size:19px;
  line-height:1.82;
  font-weight:600;
}

.hero-actions,
.review-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:22px;
}

.hero-actions-lower{
  margin-top:34px;
}

.btn{
  min-height:48px;
  padding:0 18px;
  border-radius:16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:800;
  font-size:13px;
  transition:.22s ease;
}

.btn:hover{
  transform:translateY(-2px);
}

.btn-primary{
  background:linear-gradient(135deg,var(--orange),var(--orange-dark));
  color:#fff;
  box-shadow:0 14px 30px rgba(255,145,32,.24);
}

.btn-secondary{
  background:rgba(255,255,255,.16);
  color:#fff;
  border:1px solid rgba(255,255,255,.26);
  backdrop-filter:blur(8px);
}

.btn-outline{
  background:#fff;
  color:var(--blue-dark);
  border:1px solid rgba(20,116,216,.12);
  box-shadow:var(--shadow);
}

.small-btn{
  margin-top:16px;
  width:max-content;
}

.hero-pills{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-top:30px;
}

.hero-pill{
  padding:15px;
  border-radius:18px;
  background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.20);
  backdrop-filter:blur(10px);
  transition:transform .2s ease, box-shadow .2s ease;
}

.hero-pill:hover{
  transform:translateY(-3px);
  box-shadow:0 18px 30px rgba(0,0,0,.08);
}

.hero-pill strong{
  display:block;
  font-size:14px;
}

.hero-pill span{
  display:block;
  margin-top:5px;
  font-size:12px;
  line-height:1.65;
  color:rgba(255,255,255,.92);
}

.hero-scroll-indicator{
  position:absolute;
  left:50%;
  bottom:14px;
  transform:translateX(-50%);
  z-index:2;
  color:#fff;
  font-size:11px;
  font-weight:800;
  letter-spacing:.2em;
  opacity:.92;
  animation:scrollPulse 1.8s ease-in-out infinite;
}

@keyframes scrollPulse{
  0%,100%{transform:translateX(-50%) translateY(0)}
  50%{transform:translateX(-50%) translateY(7px)}
}

.section{
  padding:58px 0;
}

.compact{
  padding-top:18px;
}

.section-head{
  margin-bottom:18px;
}

.section-head h2{
  margin-top:10px;
  font-size:clamp(28px,4vw,42px);
  line-height:1.05;
  font-weight:900;
}

.section-head p{
  margin-top:10px;
  color:var(--muted);
  font-size:14px;
  line-height:1.8;
  max-width:64ch;
}

.trust-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}

.trust-card{
  background:#fff;
  border:1px solid rgba(20,116,216,.08);
  border-radius:20px;
  padding:18px;
  box-shadow:var(--shadow);
  transition:transform .2s ease, box-shadow .2s ease;
}

.trust-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow-strong);
}

.trust-card strong{
  display:block;
  font-size:17px;
}

.trust-card p{
  margin-top:8px;
  font-size:13px;
  color:var(--muted);
  line-height:1.75;
}

.package-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
}

.package-card{
  background:#fff;
  border:1px solid rgba(20,116,216,.08);
  border-radius:20px;
  overflow:hidden;
  box-shadow:var(--shadow);
  transition:transform .22s ease, box-shadow .22s ease;
  text-align:left;
}

.package-card:hover{
  transform:translateY(-5px);
  box-shadow:var(--shadow-strong);
}

.package-art{
  aspect-ratio:1.12/1;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:10px;
}

.package-art img{
  width:100%;
  height:100%;
  object-fit:contain;
  transition:transform .22s ease;
}

.package-card:hover .package-art img{
  transform:scale(1.03);
}

.package-text{
  padding:15px;
  border-top:1px solid rgba(20,116,216,.08);
}

.package-topline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

.package-text h3{
  font-size:20px;
  line-height:1.05;
  font-weight:900;
}

.price-tag{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 10px;
  border-radius:999px;
  background:var(--surface-soft);
  color:var(--orange-dark);
  font-size:12px;
  font-weight:800;
  white-space:nowrap;
}

.package-text p{
  margin-top:8px;
  color:var(--muted);
  font-size:13px;
  line-height:1.75;
}

.two-col-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}

.content-card{
  background:#fff;
  border:1px solid rgba(20,116,216,.08);
  border-radius:22px;
  box-shadow:var(--shadow);
  padding:22px;
  transition:transform .2s ease, box-shadow .2s ease;
}

.content-card:hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow-strong);
}

.content-card h2{
  margin-top:10px;
  font-size:32px;
  line-height:1.06;
  font-weight:900;
}

.plain-copy{
  margin-top:10px;
  color:var(--muted);
  font-size:14px;
  line-height:1.8;
}

.qa-list{
  margin-top:16px;
  display:grid;
  gap:12px;
}

.qa-item{
  padding:14px;
  border-radius:16px;
  background:var(--surface-soft);
  transition:transform .18s ease;
}

.qa-item:hover{
  transform:translateX(4px);
}

.qa-item strong{
  display:block;
  font-size:15px;
}

.qa-item p{
  margin-top:6px;
  font-size:13px;
  color:var(--muted);
  line-height:1.75;
}

.guide-grid-home{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}

.guide-points{
  margin-top:16px;
  display:grid;
  gap:12px;
}

.guide-point{
  padding:14px;
  border-radius:16px;
  background:var(--surface-soft);
  transition:transform .18s ease;
}

.guide-point:hover{
  transform:translateX(4px);
}

.guide-point strong{
  display:block;
  font-size:15px;
}

.guide-point p{
  margin-top:6px;
  font-size:13px;
  color:var(--muted);
  line-height:1.75;
}

.guide-visuals{
  background:#fff;
  border:1px solid rgba(20,116,216,.08);
  border-radius:22px;
  box-shadow:var(--shadow);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  padding:12px;
}

.guide-visual{
  border:none;
  border-radius:16px;
  overflow:hidden;
  box-shadow:var(--shadow);
  transition:transform .22s ease, box-shadow .22s ease;
}

.guide-visual:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow-strong);
}

.guide-visual.large{
  grid-column:1 / -1;
}

.guide-visual img{
  width:100%;
  height:100%;
  object-fit:cover;
  min-height:180px;
}

.moments-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
}

.moment-card{
  border:none;
  border-radius:14px;
  overflow:hidden;
  box-shadow:var(--shadow);
  aspect-ratio:1/1;
  transition:transform .22s ease, box-shadow .22s ease;
}

.moment-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow-strong);
}

.moment-card img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .24s ease;
}

.moment-card:hover img{
  transform:scale(1.05);
}

.compact-guest-grid .moment-card{
  aspect-ratio:.95/1;
}

.map-frame{
  margin-top:14px;
  overflow:hidden;
  border-radius:18px;
  border:1px solid var(--line);
}

.map-frame iframe{
  width:100%;
  height:280px;
  border:0;
}

.address-card{
  margin-top:14px;
  padding:14px;
  border-radius:16px;
  background:var(--surface-soft);
  transition:transform .18s ease;
}

.address-card:hover{
  transform:translateX(4px);
}

.address-card strong{
  display:block;
  font-size:15px;
}

.address-card p,
.address-card a{
  display:block;
  margin-top:6px;
  font-size:13px;
  color:var(--muted);
  line-height:1.75;
}

.partner-strip{
  background:#fff;
  border:1px solid rgba(20,116,216,.08);
  border-radius:22px;
  box-shadow:var(--shadow);
  padding:22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}

.partner-strip h2{
  margin-top:10px;
  font-size:32px;
  line-height:1.06;
  font-weight:900;
}

.partner-strip p{
  margin-top:10px;
  color:var(--muted);
  font-size:14px;
  line-height:1.8;
}

.site-footer{
  padding:28px 0 96px;
}

.footer-grid{
  display:grid;
  grid-template-columns:1.05fr 1fr 1fr 1fr;
  gap:14px;
}

.footer-box{
  background:#fff;
  border:1px solid rgba(20,116,216,.08);
  border-radius:18px;
  padding:18px;
  box-shadow:var(--shadow);
  transition:transform .2s ease;
}

.footer-box:hover{
  transform:translateY(-3px);
}

.footer-logo{
  width:52px;
  height:52px;
  border-radius:16px;
  object-fit:cover;
  margin-bottom:10px;
}

.footer-box h3{
  font-size:22px;
  font-weight:900;
}

.footer-box h4{
  font-size:15px;
  font-weight:800;
  margin-bottom:8px;
}

.footer-subhead{
  margin-top:12px;
}

.footer-box p,
.footer-box a{
  font-size:13px;
  color:var(--muted);
  line-height:1.8;
}

.floating-actions{
  position:fixed;
  right:14px;
  bottom:14px;
  z-index:1100;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.float-btn{
  width:52px;
  height:52px;
  border-radius:50%;
  display:grid;
  place-items:center;
  box-shadow:0 14px 28px rgba(12,53,94,.18);
  animation:floatPulse 2.2s ease-in-out infinite;
  transition:transform .2s ease;
}

.float-btn:hover{
  transform:translateY(-4px) scale(1.03);
}

.float-btn svg{
  width:20px;
  height:20px;
  fill:none;
  stroke:#fff;
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.call-btn{
  background:linear-gradient(135deg,var(--blue),var(--blue-dark));
}

.wa-btn{
  background:linear-gradient(135deg,#24ca64,#14984b);
}

.wa-btn svg{
  fill:#fff;
  stroke:none;
}

@keyframes floatPulse{
  0%,100%{transform:translateY(0) scale(1)}
  50%{transform:translateY(-4px) scale(1.03)}
}

.modal-overlay{
  position:fixed;
  inset:0;
  z-index:1400;
  display:none;
  align-items:center;
  justify-content:center;
  background:rgba(5,18,36,.78);
  padding:16px;
}

.modal-overlay.open{
  display:flex;
  animation:fadeIn .22s ease;
}

@keyframes fadeIn{
  from{opacity:0}
  to{opacity:1}
}

.modal-card{
  width:min(880px,100%);
  background:#fff;
  border-radius:22px;
  overflow:hidden;
  display:grid;
  grid-template-columns:1fr 1fr;
  position:relative;
  box-shadow:var(--shadow-strong);
  animation:modalPop .22s ease;
}

@keyframes modalPop{
  from{opacity:0;transform:scale(.96)}
  to{opacity:1;transform:scale(1)}
}

.modal-close{
  position:absolute;
  top:12px;
  right:12px;
  width:42px;
  height:42px;
  border-radius:50%;
  background:#fff;
  font-size:24px;
  box-shadow:var(--shadow);
  z-index:2;
  transition:transform .18s ease;
}

.modal-close:hover{
  transform:scale(1.06);
}

.modal-image{
  min-height:300px;
}

.modal-image img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.modal-body{
  padding:22px;
}

.modal-body h3{
  margin-top:10px;
  font-size:28px;
  font-weight:900;
}

.modal-price{
  margin-top:10px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:7px 12px;
  border-radius:999px;
  background:var(--surface-soft);
  color:var(--orange-dark);
  font-size:13px;
  font-weight:800;
}

.modal-body p{
  margin-top:12px;
  color:var(--muted);
  font-size:14px;
  line-height:1.8;
}

.modal-body ul{
  margin-top:12px;
  padding-left:18px;
  display:grid;
  gap:7px;
  font-size:14px;
}

.lightbox{
  position:fixed;
  inset:0;
  z-index:1500;
  display:none;
  align-items:center;
  justify-content:center;
  background:rgba(3,13,28,.82);
  padding:18px;
}

.lightbox.open{
  display:flex;
  animation:fadeIn .22s ease;
}

.lightbox img{
  max-width:min(1000px,100%);
  max-height:88vh;
  border-radius:16px;
  box-shadow:var(--shadow-strong);
  animation:modalPop .22s ease;
}

.lightbox-close{
  position:absolute;
  top:16px;
  right:16px;
  width:44px;
  height:44px;
  border-radius:50%;
  background:#fff;
  color:var(--text);
  font-size:24px;
  box-shadow:var(--shadow);
  transition:transform .18s ease;
}

.lightbox-close:hover{
  transform:scale(1.06);
}

.tap-animate{
  -webkit-tap-highlight-color:transparent;
}

.tap-animate:active,
.touch-active{
  transform:scale(.98);
}

.reveal{
  opacity:0;
  transform:translateY(30px);
  transition:opacity .8s ease, transform .8s ease;
}

.reveal.show{
  opacity:1;
  transform:none;
}

.reveal-delay-1{
  transition-delay:.05s;
}

.reveal-delay-2{
  transition-delay:.15s;
}

.reveal-delay-3{
  transition-delay:.25s;
}

@media (max-width:1080px){
  .package-grid,
  .footer-grid{
    grid-template-columns:repeat(2,1fr);
  }

  .two-col-grid,
  .guide-grid-home,
  .modal-card{
    grid-template-columns:1fr;
  }
}

@media (max-width:860px){
  .desktop-nav,
  .nav-book{
    display:none;
  }

  .menu-toggle{
    display:block;
  }

  .hero{
    min-height:80vh;
  }

  .hero-copy{
    padding:78px 0 56px;
  }

  .hero-pills,
  .trust-grid{
    grid-template-columns:1fr;
  }

  .moments-grid{
    grid-template-columns:repeat(2,1fr);
  }

  .hero-media img{
    object-position:center 22%;
  }

  .hero-heading{
    font-size:48px;
    max-width:10ch;
  }

  .hero-subtext-strong{
    font-size:16px;
    line-height:1.78;
    max-width:34ch;
  }
}

@media (max-width:640px){
  .section{
    padding:46px 0;
  }

  .hero-actions,
  .review-actions,
  .partner-strip{
    flex-direction:column;
    align-items:stretch;
  }

  .btn{
    width:100%;
  }

  .package-grid,
  .footer-grid{
    grid-template-columns:1fr 1fr;
  }

  .package-text h3{
    font-size:18px;
  }

  .content-card h2,
  .partner-strip h2{
    font-size:28px;
  }

  .compact-guest-grid .moment-card{
    aspect-ratio:1/1;
  }
}

@media (max-width:520px){
  .package-grid,
  .footer-grid,
  .moments-grid{
    grid-template-columns:1fr 1fr;
  }

  .brand-copy strong{
    font-size:15px;
  }

  .brand-copy span{
    font-size:9px;
  }

  .hero{
    min-height:86vh;
  }

  .hero-media img{
    object-position:center 16%;
  }

  .hero-heading{
    font-size:40px;
    max-width:10ch;
  }

  .hero-subtext-strong{
    font-size:15px;
    line-height:1.75;
    max-width:30ch;
  }

  .moments-grid{
    gap:8px;
  }

  .moment-card{
    border-radius:12px;
  }

  .package-card{
    border-radius:16px;
  }
}