/* ============================================================
   HOTEL MAHEK — Sections CSS (Part 2)
   ============================================================ */

/* ============================
   WAVE DIVIDER
   ============================ */
.wave { display:block; width:100%; overflow:hidden; line-height:0; }
.wave svg { display:block; }

/* ============================
   HIGHLIGHTS STRIP
   ============================ */
.highlights-strip {
  background:var(--navy);
  padding:0;
  overflow:hidden;
  max-width:100vw;
  contain:paint;
}

/* ─ Desktop: full-width wrapper, no clip ─ */
.hl-marquee-wrap {
  width:100%;
  overflow:hidden;
  position:relative;
  max-width:100vw;
  contain:paint;
}

/* Fade edge masks on mobile (added via media query below) */
.hl-marquee-wrap::before,
.hl-marquee-wrap::after {
  content:''; position:absolute; top:0; bottom:0; width:0;
  z-index:2; pointer-events:none;
}

/* Desktop: track = grid */
.hl-track {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  max-width:100%;
  /* hide the duplicate set on desktop */
}
.hl-track .hl-item[aria-hidden="true"] { display:none; }

.hl-item {
  display:flex; align-items:center; gap:16px;
  padding:18px 20px;
  transition:background 0.3s;
}
.hl-item:hover { background:rgba(255,255,255,0.04); }
.hl-icon {
  flex-shrink:0;
  font-size:28px;
  color:var(--gold);
  width:36px; text-align:center;
  line-height:1;
}
.hl-text strong { display:block; font-size:13px; color:var(--white); font-weight:600; line-height:1.2; }
.hl-text span { font-size:11px; color:rgba(255,255,255,0.45); }


/* ============================
   HIGHLIGHTS GRID (full section)
   ============================ */
.highlights-section { background:var(--sand); }
.hl-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(190px,1fr));
  gap:20px;
}
.hl-card {
  background:var(--white);
  border-radius:var(--radius);
  padding:32px 22px;
  text-align:center;
  border:1px solid transparent;
  box-shadow:var(--shadow-sm);
  transition:var(--t);
  cursor:default;
  position:relative; overflow:hidden;
}
.hl-card::after {
  content:''; position:absolute; bottom:0; left:0;
  width:100%; height:3px;
  background:linear-gradient(90deg,var(--ocean),var(--gold));
  transform:scaleX(0); transition:transform 0.4s var(--ease-out);
}
.hl-card:hover { transform:translateY(-7px); box-shadow:var(--shadow-lg); border-color:var(--gray-light); }
.hl-card:hover::after { transform:scaleX(1); }
.hl-card .ic {
  width:58px; height:58px; border-radius:16px; margin:0 auto 18px;
  background:linear-gradient(135deg,rgba(26,111,168,0.1),rgba(201,149,42,0.08));
  display:flex; align-items:center; justify-content:center;
  font-size:22px; color:var(--ocean);
  transition:background 0.3s, color 0.3s;
}
.hl-card:hover .ic { background:linear-gradient(135deg,var(--ocean),var(--ocean-light)); color:var(--white); }
.hl-card h4 { font-size:14px; color:var(--navy); margin-bottom:4px; }
.hl-card p { font-size:12px; color:var(--gray); }

/* ============================
   ABOUT SECTION
   ============================ */
.about { background:var(--off-white); }
.about-wrap {
  display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center;
}
/* Image collage */
.about-media {
  position:relative; height:580px;
}
.am-main {
  position:absolute; top:0; left:0;
  width:72%; height:75%;
  border-radius:var(--radius-lg); overflow:hidden;
  box-shadow:var(--shadow-xl);
}
.am-side {
  position:absolute; bottom:0; right:0;
  width:52%; height:55%;
  border-radius:var(--radius-lg); overflow:hidden;
  box-shadow:var(--shadow-lg);
  border:5px solid var(--off-white);
}
.am-accent {
  position:absolute; top:50%; left:68%;
  transform:translate(-50%,-50%);
  width:44%; height:35%;
  border-radius:var(--radius); overflow:hidden;
  box-shadow:var(--shadow);
  border:5px solid var(--off-white);
  z-index:2;
}
.am-stat {
  position:absolute; bottom:18%; left:-24px;
  background:var(--navy);
  border-radius:var(--radius);
  padding:20px 24px;
  box-shadow:var(--shadow-lg);
  z-index:3;
}
.am-stat strong { display:block; font-family:'Cormorant Garamond',serif; font-size:36px; color:var(--gold); line-height:1; }
.am-stat span { font-size:12px; color:rgba(255,255,255,0.55); }
.about-media img { width:100%; height:100%; object-fit:cover; transition:transform 0.6s var(--ease); }
.about-media div:hover img { transform:scale(1.04); }

/* About content */
.about-content .sec-sub { margin-bottom:28px; }
.about-am-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:10px; margin-bottom:18px;
}
.about-am-item {
  display:flex; align-items:center; gap:9px;
  padding:11px 14px;
  background:var(--white);
  border-radius:var(--radius-sm);
  border:1px solid var(--gray-light);
  transition:background 0.3s, border-color 0.3s;
}
.about-am-item:hover {
  background:rgba(201,149,42,0.05);
  border-color:rgba(201,149,42,0.3);
}
.about-am-item i { font-size:13px; color:var(--gold); width:18px; text-align:center; flex-shrink:0; }
.about-am-item span { font-size:12.5px; color:var(--navy); font-weight:500; }
.about-am-link {
  display:inline-flex; align-items:center; gap:6px;
  font-size:13px; font-weight:600;
  color:var(--ocean); margin-bottom:32px;
  text-decoration:none;
  transition:gap 0.3s, color 0.3s;
}
.about-am-link:hover { color:var(--gold); gap:10px; }
.about-am-link i { font-size:11px; transition:transform 0.3s; }
.about-am-link:hover i { transform:translateX(3px); }
.about-list { list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:10px 24px; margin-bottom:36px; }
.about-list li {
  display:flex; align-items:center; gap:9px;
  font-size:14px; color:#3a4a5c;
}
.about-list li i { color:var(--gold); font-size:13px; flex-shrink:0; }
.about-counters {
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:20px; padding-top:32px;
  border-top:1px solid var(--gray-light);
}
.ac-item { text-align:center; }
.ac-num {
  font-family:'Cormorant Garamond',serif;
  font-size:38px; color:var(--ocean); line-height:1;
  font-weight:700;
}
.ac-label { font-size:11px; color:var(--gray); letter-spacing:1px; text-transform:uppercase; margin-top:4px; }

/* ============================
   ROOMS SECTION
   ============================ */
.rooms { background:var(--sand); }
.rooms-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(280px, 380px));
  gap:28px;
  justify-content:center;
}
.room-card {
  background:var(--white);
  border-radius:var(--radius-lg); overflow:hidden;
  box-shadow:var(--shadow-sm);
  transition:var(--t);
  display:flex; flex-direction:column;
}
.room-card:hover { transform:translateY(-10px); box-shadow:var(--shadow-xl); }
.room-thumb {
  position:relative; height:210px; overflow:hidden;
}
.room-carousel,
.room-carousel-track,
.room-carousel-slide {
  position:absolute;
  inset:0;
}
.room-carousel {
  overflow:hidden;
  background:var(--navy);
}
.room-carousel-slide {
  opacity:0;
  transform:scale(1.02);
  transition:opacity 0.55s ease, transform 0.75s var(--ease);
}
.room-carousel-slide.active {
  opacity:1;
  transform:scale(1);
  z-index:1;
}
.room-carousel-slide img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 0.65s var(--ease);
}
.room-card:hover .room-carousel-slide.active img { transform:scale(1.06); }
.room-carousel-nav {
  position:absolute;
  top:50%;
  z-index:4;
  width:30px;
  height:30px;
  border:1px solid rgba(255,255,255,0.28);
  border-radius:50%;
  background:rgba(8,25,46,0.42);
  color:var(--white);
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  transform:translateY(-50%);
  cursor:pointer;
  transition:opacity 0.25s, background 0.25s, border-color 0.25s;
}
.room-carousel-prev { left:12px; }
.room-carousel-next { right:12px; }
.room-card:hover .room-carousel-nav,
.room-detail-card:hover .room-carousel-nav,
.room-carousel:focus-within .room-carousel-nav {
  opacity:1;
}
.room-carousel-nav:hover {
  background:rgba(201,149,42,0.88);
  border-color:rgba(201,149,42,0.95);
  color:var(--navy);
}
.room-carousel-nav i {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:1em;
  height:1em;
  font-size:11px;
  line-height:1;
}
.room-carousel-dots {
  position:absolute;
  left:50%;
  bottom:14px;
  z-index:4;
  display:flex;
  gap:6px;
  transform:translateX(-50%);
}
.room-carousel-dots button {
  width:7px;
  height:7px;
  padding:0;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,0.45);
  cursor:pointer;
  transition:width 0.25s, border-radius 0.25s, background 0.25s;
}
.room-carousel-dots button.active {
  width:20px;
  border-radius:999px;
  background:var(--gold);
}
.room-badge {
  position:absolute; top:18px; left:18px;
  z-index:5;
  background:linear-gradient(135deg,var(--gold),var(--gold-light));
  color:var(--navy); font-size:11px; font-weight:700;
  letter-spacing:1.5px; text-transform:uppercase;
  padding:5px 14px; border-radius:30px;
}
.room-fav {
  position:absolute; top:16px; right:16px;
  z-index:5;
  width:36px; height:36px; border-radius:50%;
  background:rgba(255,255,255,0.15); backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,0.2);
  display:flex; align-items:center; justify-content:center;
  color:var(--white); font-size:14px; cursor:pointer;
  transition:var(--t);
}
.room-fav:hover { background:rgba(255,255,255,0.9); color:var(--gold); }
.room-body { padding:18px 20px; display:flex; flex-direction:column; flex:1; }
.room-type { font-size:11px; color:var(--ocean); font-weight:700; letter-spacing:2.5px; text-transform:uppercase; margin-bottom:4px; }
.room-name { font-size:19px; color:var(--navy); margin-bottom:8px; }
.room-desc { font-size:12.5px; color:var(--gray); margin-bottom:14px; line-height:1.6; flex:1; }
.room-amenities {
  display:flex; flex-wrap:wrap; gap:6px 12px;
  margin-bottom:14px; padding-bottom:14px;
  border-bottom:1px solid var(--gray-light);
}
.room-amenities span { display:flex; align-items:center; gap:5px; font-size:12px; color:var(--gray); }
.room-amenities i { color:var(--ocean); font-size:13px; }
.room-footer { display:flex; justify-content:space-between; align-items:center; }
.room-price strong {
  font-family:'Cormorant Garamond',serif;
  font-size:24px; color:var(--navy); font-weight:700;
}
.room-price-old {
  display:inline-block;
  font-size:13px; color:var(--gray);
  text-decoration:line-through;
  margin-right:4px; vertical-align:middle;
}
.room-price small { font-size:11px; color:var(--gray); }
.room-price em { display:block; font-size:10px; color:var(--gray); font-style:normal; margin-bottom:2px; }

/* ============================
   AMENITIES
   ============================ */
.amenities {
  background:var(--navy);
  padding:62px 0;
  border-top:1px solid rgba(255,255,255,0.07);
  border-bottom:1px solid rgba(255,255,255,0.07);
}
.amenities .tag { color:var(--gold-light); border-color:rgba(201,149,42,0.3); }
/* Header row */
.am-top {
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:32px; margin-bottom:44px;
  padding-bottom:32px;
  border-bottom:1px solid rgba(255,255,255,0.07);
}
.am-heading {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(26px,3vw,40px);
  color:var(--white); line-height:1.1;
  margin-top:12px;
}
.am-tagline {
  font-size:13px; color:rgba(255,255,255,0.4);
  max-width:360px; line-height:1.7; text-align:right;
  flex-shrink:0;
}
/* Category columns */
.am-categories {
  display:grid;
  grid-template-columns:1fr 1px 1fr 1px 1fr 1px 1fr;
  gap:0 44px;
  align-items:start;
}
.am-vline {
  background:linear-gradient(to bottom, transparent, rgba(255,255,255,0.1) 20%, rgba(255,255,255,0.1) 80%, transparent);
  align-self:stretch;
}
.am-cat-hd {
  font-size:9.5px; font-weight:700; letter-spacing:3px;
  text-transform:uppercase; color:var(--gold);
  display:flex; align-items:center; gap:7px;
  padding-bottom:14px;
  margin-bottom:18px;
  border-bottom:1px solid rgba(201,149,42,0.18);
}
.am-cat-hd i { font-size:10px; }
.am-cat-list { display:flex; flex-direction:column; gap:13px; }
.am-item {
  display:flex; align-items:center; gap:11px;
  transition:transform 0.25s;
}
.am-item:hover { transform:translateX(4px); }
.am-item i {
  width:30px; height:30px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  background:rgba(201,149,42,0.08);
  border:1px solid rgba(201,149,42,0.15);
  border-radius:8px;
  font-size:12px; color:var(--gold);
  transition:background 0.3s, border-color 0.3s;
}
.am-item:hover i {
  background:rgba(201,149,42,0.18);
  border-color:rgba(201,149,42,0.35);
}
.am-item span {
  font-size:13px; color:rgba(255,255,255,0.62);
  font-weight:400; transition:color 0.25s;
}
.am-item:hover span { color:rgba(255,255,255,0.92); }

/* ============================
   EXPERIENCE / PARALLAX
   ============================ */
.experience {
  position:relative; min-height:520px;
  display:flex; align-items:center; justify-content:center; text-align:center;
  background:#08192e;
  overflow:hidden;
}
.exp-video-bg {
  position:absolute; inset:0;
  z-index:0; overflow:hidden;
  background:#08192e;
}
.exp-video-bg iframe {
  position:absolute;
  top:50%; left:50%;
  /* Cover the container in both orientations */
  width:calc(100% + 200px);
  height:calc(100% + 200px);
  min-width:calc(100vh * 16 / 9);
  min-height:calc(100vw * 9 / 16);
  transform:translate(-50%,-50%) scale(1.05);
  pointer-events:none;
  border:none;
}
.exp-overlay {
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(135deg,rgba(8,25,46,0.68),rgba(26,111,168,0.5));
  pointer-events:all;
}
.exp-body { position:relative; z-index:2; max-width:720px; padding:70px 28px; text-shadow:0 2px 12px rgba(0,0,0,0.4); }
.exp-body .tag { color:var(--gold-light); border-color:rgba(201,149,42,0.35); }
.exp-body h2 { font-size:clamp(32px,5vw,58px); color:var(--white); margin-bottom:18px; }
.exp-body p { font-size:17px; color:rgba(255,255,255,0.78); margin-bottom:34px; }
.exp-line { width:52px; height:2px; background:var(--gold); margin:0 auto 24px; border-radius:2px; }


/* ============================
   ATTRACTIONS — MARQUEE
   ============================ */
.attractions {
  background:var(--white);
  padding:64px 0 60px;
  overflow:hidden;
  border-top:1px solid var(--gray-light);
  border-bottom:1px solid var(--gray-light);
}
.attractions .tag { color:var(--gold); border-color:rgba(201,149,42,0.3); }
.attr-header {
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:24px; margin-bottom:40px;
}
.attr-hd {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(26px,3vw,40px);
  color:var(--navy); line-height:1.1; margin-top:12px;
}
.attr-sub {
  font-size:13px; color:var(--gray);
  line-height:1.75; text-align:right; flex-shrink:0;
}
/* Marquee wrapper — full viewport width, faded edges */
.attr-marquee-wrap {
  overflow:hidden;
  -webkit-mask-image:linear-gradient(to right,transparent 0%,#fff 7%,#fff 93%,transparent 100%);
  mask-image:linear-gradient(to right,transparent 0%,#fff 7%,#fff 93%,transparent 100%);
}
.attr-track {
  display:flex;
  width:max-content;
  animation:attrMarquee 26s linear infinite;
  padding:6px 0 10px;
}
.attr-track:hover { animation-play-state:paused; }
@keyframes attrMarquee {
  0%   { transform:translateX(0); }
  100% { transform:translateX(-50%); }
}
/* Individual card */
.attr-mc {
  position:relative;
  width:290px; height:360px; flex-shrink:0;
  margin-right:20px;
  border-radius:18px; overflow:hidden;
  cursor:pointer;
  transition:transform 0.4s;
}
.attr-mc:hover { transform:translateY(-6px) scale(1.02); }
.attr-mc img {
  width:100%; height:100%; object-fit:cover;
  transition:transform 0.7s ease;
}
.attr-mc:hover img { transform:scale(1.08); }
.attr-mc-overlay {
  position:absolute; inset:0;
  background:linear-gradient(
    to top,
    rgba(8,25,46,0.96) 0%,
    rgba(8,25,46,0.55) 40%,
    rgba(8,25,46,0.1)  70%,
    transparent 100%
  );
}
.attr-mc-body {
  position:absolute; bottom:0; left:0; right:0;
  padding:22px 20px;
}
.attr-mc-dist {
  display:inline-flex; align-items:center; gap:5px;
  background:rgba(201,149,42,0.15);
  border:1px solid rgba(201,149,42,0.4);
  border-radius:30px;
  padding:4px 11px;
  font-size:10px; font-weight:700;
  color:var(--gold); letter-spacing:0.5px;
  margin-bottom:10px;
}
.attr-mc-body h4 {
  font-family:'Cormorant Garamond',serif;
  font-size:21px; color:var(--white);
  line-height:1.2; margin-bottom:7px;
}
.attr-mc-body p {
  font-size:11px; color:rgba(255,255,255,0.5);
  display:flex; align-items:center; gap:5px;
}
.attr-mc-body p i { color:var(--gold-light); font-size:10px; }

/* ============================
   GALLERY
   ============================ */
.home-dining {
  background:var(--white);
  padding:76px 0;
  border-top:1px solid var(--gray-light);
  border-bottom:1px solid var(--gray-light);
}
.dining-home-wrap {
  display:grid;
  grid-template-columns:minmax(0,0.9fr) minmax(360px,1.1fr);
  gap:42px;
  align-items:center;
}
.dining-home-copy h2 {
  color:var(--navy);
  font-size:clamp(34px,4.5vw,58px);
  margin:8px 0 14px;
}
.dining-home-copy p {
  max-width:560px;
  color:var(--gray);
  line-height:1.8;
  margin-bottom:22px;
}
.dining-home-points {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-bottom:26px;
}
.dining-home-points div {
  display:flex;
  align-items:center;
  gap:8px;
  padding:11px 12px;
  border:1px solid var(--gray-light);
  border-radius:10px;
  color:var(--navy);
  font-size:12px;
  font-weight:800;
}
.dining-home-points i { color:var(--gold); }
.dining-home-media {
  height:430px;
  border-radius:18px;
  overflow:hidden;
  box-shadow:var(--shadow-lg);
}
.dining-home-media img {
  width:100%;
  height:100%;
  object-fit:cover;
}

.gallery-section {
  background:
    radial-gradient(ellipse 700px 560px at 95% -5%,  rgba(201,149,42,0.08), transparent),
    radial-gradient(ellipse 500px 400px at 2%  105%, rgba(26,111,168,0.06), transparent),
    radial-gradient(rgba(201,149,42,0.13) 1.5px, transparent 1.5px) 0 0 / 28px 28px,
    var(--sand);
  position:relative;
  overflow:hidden;
}
/* Editorial split header */
.gal-header {
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:32px; margin-bottom:28px;
}
.gal-header .sec-title { margin-bottom:0; }
.gal-header-right { text-align:right; flex-shrink:0; }
.gal-header-right p {
  font-size:13px; color:var(--gray); line-height:1.75;
  margin-bottom:20px; max-width:300px; margin-left:auto;
}
/* Gold decorative rule */
.gal-rule {
  width:100%; height:1px;
  background:linear-gradient(to right, transparent, rgba(201,149,42,0.28) 25%, rgba(201,149,42,0.28) 75%, transparent);
  margin-bottom:36px;
}
/* Bento grid */
.gallery-masonry {
  display:grid;
  grid-template-columns:1.45fr 1fr 1fr;
  grid-template-rows:250px 210px 270px;
  gap:14px;
  grid-template-areas:
    "a b c"
    "a d d"
    "e e f";
}
.g-item:nth-child(1) { grid-area:a; }
.g-item:nth-child(2) { grid-area:b; }
.g-item:nth-child(3) { grid-area:c; }
.g-item:nth-child(4) { grid-area:d; }
.g-item:nth-child(5) { grid-area:e; }
.g-item:nth-child(6) { grid-area:f; }
.g-item {
  position:relative; overflow:hidden; cursor:pointer;
  border-radius:18px;
  border:3px solid rgba(255,255,255,0.75);
  box-shadow:0 4px 20px rgba(8,25,46,0.07);
  transition:transform 0.4s var(--ease), box-shadow 0.4s, border-color 0.4s;
}
.g-item:hover {
  transform:scale(1.018);
  box-shadow:0 14px 44px rgba(8,25,46,0.15);
  border-color:var(--gold-pale);
}
.g-item img { width:100%; height:100%; object-fit:cover; transition:transform 0.7s var(--ease); }
.g-item:hover img { transform:scale(1.08); }
/* Overlay */
.g-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(8,25,46,0.84) 0%, rgba(8,25,46,0.2) 48%, transparent 100%);
  display:flex; flex-direction:column; justify-content:space-between;
  padding:14px;
  opacity:0; transition:opacity 0.4s;
}
.g-item:hover .g-overlay { opacity:1; }
.g-zoom {
  align-self:flex-end;
  width:34px; height:34px;
  background:rgba(255,255,255,0.14);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,0.28);
  border-radius:9px;
  display:flex; align-items:center; justify-content:center;
  font-size:13px; color:var(--white);
  transform:scale(0.65) translateY(-10px);
  transition:transform 0.35s var(--ease);
}
.g-item:hover .g-zoom { transform:scale(1) translateY(0); }
.g-caption { transform:translateY(12px); transition:transform 0.4s var(--ease); }
.g-item:hover .g-caption { transform:translateY(0); }
.g-caption span {
  font-size:13px; color:var(--white); font-weight:500; letter-spacing:0.3px;
  text-shadow:0 1px 8px rgba(0,0,0,0.45);
}

/* ============================
   TESTIMONIALS
   ============================ */
.testimonials {
  background:
    radial-gradient(ellipse 700px 550px at 90% 8%, rgba(13,122,110,0.13), transparent),
    radial-gradient(ellipse 500px 400px at 4% 92%, rgba(201,149,42,0.10), transparent),
    linear-gradient(160deg, #0c1e38 0%, #091526 100%);
  padding:60px 0 0;
  border-top:2px solid rgba(201,149,42,0.22);
  overflow:hidden;
  max-width:100vw;
  contain:paint;
}
.testimonials .tag { color:var(--gold-light); border-color:rgba(201,149,42,0.3); }

/* Header */
.testi-header {
  display:flex; align-items:center; justify-content:space-between;
  gap:32px; margin-bottom:40px; flex-wrap:wrap;
}
.testi-header-left { flex:1; min-width:220px; }
.testi-hd {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(26px,3.2vw,42px);
  color:var(--white); line-height:1.1; margin:12px 0 8px;
}
.testi-sub { font-size:13px; color:rgba(255,255,255,0.42); line-height:1.7; max-width:360px; }

/* Score block */
.testi-score-block {
  flex-shrink:0; text-align:center;
  padding:20px 28px;
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(201,149,42,0.25);
  border-radius:18px; min-width:180px;
  backdrop-filter:blur(10px);
}
.tsb-num {
  font-family:'Cormorant Garamond',serif;
  font-size:50px; color:var(--gold); line-height:1; font-weight:600;
}
.tsb-stars { font-size:16px; color:var(--gold); letter-spacing:2px; margin:5px 0 3px; }
.tsb-count { font-size:10px; color:rgba(255,255,255,0.35); letter-spacing:0.5px; margin-bottom:14px; }
.tsb-platforms { display:flex; gap:6px; justify-content:center; flex-wrap:wrap; }
.tsb-plat {
  display:flex; align-items:center; gap:4px;
  padding:3px 8px;
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.1);
  border-radius:20px;
  font-size:10px; font-weight:600; color:rgba(255,255,255,0.55);
}
.tsb-booking span:first-child,
.tsb-mmt span:first-child {
  width:13px; height:13px; border-radius:3px;
  display:inline-flex; align-items:center; justify-content:center;
  font-family:Arial,sans-serif; font-size:9px; font-weight:900; line-height:1; color:#fff;
}
.tsb-booking span:first-child { background:#003580; }
.tsb-mmt span:first-child     { background:#E8173B; }

/* Swiper */
.testi-swiper {
  padding-bottom:0 !important;
  overflow:hidden !important;
  max-width:100%;
  contain:paint;
}
.testi-swiper .swiper-wrapper {
  align-items:stretch;
  max-width:100%;
}
.testi-swiper .swiper-slide {
  max-width:100%;
  min-width:0;
}

/* Card */
.testi-card {
  background:rgba(255,255,255,0.05);
  border:1px solid rgba(255,255,255,0.09);
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  border-radius:20px; padding:28px 24px 22px;
  position:relative; overflow:hidden;
  transition:background 0.35s, border-color 0.35s, transform 0.35s;
  height:100%; box-sizing:border-box;
}
.testi-card:hover {
  background:rgba(255,255,255,0.08);
  border-color:rgba(201,149,42,0.28);
  transform:translateY(-4px);
}

/* Platform badge */
.testi-card-plat {
  position:absolute; top:14px; right:14px;
  display:flex; align-items:center; gap:5px;
  padding:4px 10px;
  background:rgba(255,255,255,0.07);
  border:1px solid rgba(255,255,255,0.14);
  border-radius:20px;
  font-size:10px; font-weight:600; color:rgba(255,255,255,0.6);
  backdrop-filter:blur(6px); z-index:2;
}
.testi-card-plat[data-platform="google"]      { border-color:rgba(66,133,244,0.4); }
.testi-card-plat[data-platform="booking"]     { border-color:rgba(0,53,128,0.5); }
.testi-card-plat[data-platform="makemytrip"]  { border-color:rgba(232,23,59,0.45); }
.testi-card-plat[data-platform="tripadvisor"] { border-color:rgba(52,224,161,0.45); }
.tplat-b-icon {
  font-family:Arial,sans-serif; font-size:10px; font-weight:900;
  color:#003580; background:#fff;
  width:15px; height:15px; border-radius:3px;
  display:inline-flex; align-items:center; justify-content:center; line-height:1;
}
.tplat-mmt-icon {
  font-family:Arial,sans-serif; font-size:10px; font-weight:900;
  color:#fff; background:#E8173B;
  width:15px; height:15px; border-radius:3px;
  display:inline-flex; align-items:center; justify-content:center; line-height:1;
}

.testi-quote-mark {
  position:absolute; top:4px; left:16px;
  font-family:'Cormorant Garamond',serif; font-size:88px; line-height:1;
  color:var(--gold); opacity:0.1; pointer-events:none; user-select:none;
}
.testi-stars { display:flex; gap:3px; margin-bottom:12px; position:relative; z-index:1; }
.testi-stars i { font-size:13px; color:var(--gold); }
.testi-text {
  font-size:13.5px; color:rgba(255,255,255,0.72);
  line-height:1.82; margin-bottom:20px; font-style:italic;
  position:relative; z-index:1;
}
.testi-author { display:flex; align-items:center; gap:11px; position:relative; z-index:1; }
.testi-av {
  width:42px; height:42px; border-radius:50%; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  font-size:14px; font-weight:700; color:var(--white);
  border:2px solid rgba(255,255,255,0.15);
}
.testi-info { flex:1; }
.testi-info strong { font-size:13.5px; color:var(--white); display:block; margin-bottom:2px; }
.testi-info span { font-size:11px; color:rgba(255,255,255,0.4); display:flex; align-items:center; gap:4px; }
.testi-info span i { font-size:9px; color:var(--gold-light); }
.testi-verified { font-size:10px; color:var(--gold-light); font-weight:600; display:flex; align-items:center; gap:3px; flex-shrink:0; }
.testi-verified i { font-size:12px; }

/* Controls: [←]  [• • •]  [→] */
.testi-controls {
  display:flex; align-items:center; justify-content:center;
  gap:14px; margin-top:30px; padding-bottom:60px;
}
.testi-dots { position:static !important; flex:1; max-width:200px; }
.testi-btn-prev, .testi-btn-next {
  width:40px; height:40px; border-radius:50%; flex-shrink:0;
  background:rgba(255,255,255,0.07);
  border:1px solid rgba(255,255,255,0.15);
  color:rgba(255,255,255,0.7); font-size:13px;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:all 0.28s;
}
.testi-btn-prev:hover, .testi-btn-next:hover {
  background:var(--gold); border-color:var(--gold); color:var(--navy);
  transform:scale(1.08);
}
.testi-btn-prev:disabled, .testi-btn-next:disabled { opacity:0.28; cursor:default; transform:none; }
.swiper-pagination-bullet { background:rgba(255,255,255,0.25) !important; opacity:1 !important; width:7px; height:7px; }
.swiper-pagination-bullet-active { background:var(--gold) !important; width:22px !important; border-radius:4px !important; }

/* ══════════════════════════════
   FIND US ON — white strip
   ══════════════════════════════ */
.find-us-on {
  margin-top:48px;
  background:#ffffff;
  border-top:1px solid #e8e8e8;
  padding:32px 0;
}
.fuo-heading {
  display:flex; align-items:center; justify-content:center; gap:12px;
  margin-bottom:22px;
  font-size:11px; font-weight:700; letter-spacing:4px; text-transform:uppercase;
  color:#8a8a8a;
}
.fuo-heading i { color:#c9952a; font-size:11px; }
.fuo-logos {
  display:flex; align-items:center; justify-content:center;
  gap:10px; flex-wrap:wrap;
}
.fuo-logo {
  display:flex; align-items:center; justify-content:center;
  padding:12px 20px;
  background:#fff;
  border:1.5px solid #e8edf3;
  border-radius:12px;
  text-decoration:none;
  transition:transform 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease;
  opacity:1;
  filter:none;
}
.fuo-logo:hover {
  opacity:1;
  filter:none;
  background:#fff;
  border-color:rgba(8,25,46,0.16);
  transform:translateY(-2px);
  box-shadow:0 8px 22px rgba(8,25,46,0.08);
}
.fuo-logo img {
  display:block;
  width:auto;
  max-width:190px;
  height:36px;
  object-fit:contain;
}

/* ============================
   CONTACT
   ============================ */
.contact { background:var(--navy); overflow:hidden; }
.contact-split {
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:480px;    /* reduced height */
}

/* ── Left: image bg ── */
.ct-img-panel { position:relative; overflow:hidden; }
.ct-img-panel > img {
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover;
  transition:transform 9s ease;
}
.ct-img-panel:hover > img { transform:scale(1.04); }
.ct-img-overlay {
  position:absolute; inset:0;
  background:linear-gradient(160deg, rgba(4,16,31,0.52) 0%, rgba(4,16,31,0.88) 100%);
}
.ct-left-content {
  position:absolute; inset:0; z-index:2;
  display:flex; flex-direction:column;
  padding:18px 20px 16px;
  gap:10px;
}

/* Badge */
.ct-reach-badge {
  display:inline-flex; align-items:center; gap:7px;
  background:rgba(201,149,42,0.2);
  border:1px solid rgba(201,149,42,0.45);
  border-radius:20px; padding:5px 13px;
  font-size:10px; font-weight:700; color:var(--gold);
  letter-spacing:1px; text-transform:uppercase;
  width:fit-content; flex-shrink:0;
}

/* Map + right-col side by side — fills remaining height */
.ct-map-info-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  flex:1; min-height:0;
  align-items:stretch;
}

/* Glass map — fills column height */
.ct-glass-map {
  border-radius:10px; overflow:hidden;
  border:1px solid rgba(255,255,255,0.2);
  box-shadow:0 4px 20px rgba(0,0,0,0.45);
  height:100%; min-height:0;
}
.ct-glass-map iframe { width:100%; height:100%; border:none; display:block; }

/* Right column: info block stacked above buttons */
.ct-info-col {
  display:flex; flex-direction:column; gap:8px;
  min-height:0;
}

/* Info block — fills available space */
.ct-info-block {
  flex:1;
  background:rgba(0,0,0,0.38);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,0.18);
  border-radius:10px;
  padding:12px 14px;
  display:flex; flex-direction:column;
  justify-content:space-evenly;
  gap:0;
}
.ct-info-row {
  display:flex; align-items:flex-start; gap:9px;
  padding:5px 0;
  border-bottom:1px solid rgba(255,255,255,0.07);
}
.ct-info-row:last-child { border-bottom:none; }
.ct-info-row > i {
  color:var(--gold); font-size:11px;
  display:inline-flex; align-items:center; justify-content:center;
  width:16px; height:16px; flex:0 0 16px;
  margin-top:2px; line-height:1; text-align:center;
}
.ct-info-row > div { display:flex; flex-direction:column; gap:1px; }
.ct-info-row strong { font-size:11px; font-weight:700; color:#fff; line-height:1.2; }
.ct-info-row span   { font-size:9.5px; color:rgba(255,255,255,0.6); line-height:1.3; }

/* CTA buttons — small, directly below info block */
.ct-cta-row { display:flex; gap:6px; flex-wrap:wrap; flex-shrink:0; }
.ct-cta-btn {
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  padding:5px 11px;
  border-radius:7px;
  font-size:11px; font-weight:600;
  text-decoration:none; white-space:nowrap;
  transition:all 0.22s; line-height:1.4;
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  min-width:0;
}
.ct-cta-btn i {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:14px;
  height:14px;
  font-size:11px;
  flex:0 0 14px;
  line-height:1;
}
.ct-cta-phone {
  background:rgba(201,149,42,0.22); border:1.5px solid rgba(201,149,42,0.55); color:var(--gold);
}
.ct-cta-phone:hover { background:var(--gold); color:var(--navy); border-color:var(--gold); }
.ct-cta-wa {
  background:rgba(37,211,102,0.18); border:1.5px solid rgba(37,211,102,0.5); color:#25d366;
}
.ct-cta-wa:hover { background:#25d366; color:#fff; border-color:#25d366; }
.ct-cta-dir {
  background:rgba(255,255,255,0.1); border:1.5px solid rgba(255,255,255,0.28); color:rgba(255,255,255,0.85);
}
.ct-cta-dir:hover { background:rgba(255,255,255,0.2); border-color:rgba(255,255,255,0.45); }

/* ── Right: Compact form panel ── */
.ct-form-panel {
  background:var(--sand);
  padding:28px 36px 24px;
  display:flex; flex-direction:column; gap:16px;
  border-left:1px solid var(--gray-light);
}
.ct-form-header { display:flex; flex-direction:column; gap:4px; }
.ct-form-panel .tag { color:var(--gold); border-color:rgba(201,149,42,0.35); }
.ct-form-hd {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(22px,2.5vw,32px);
  color:var(--navy); line-height:1.1; margin:0;
}
.contact-form { display:flex; flex-direction:column; gap:10px; }
.cf-row { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.cf-field label {
  display:block; font-size:10.5px; font-weight:600;
  letter-spacing:0.8px; text-transform:uppercase;
  color:rgba(8,25,46,0.45); margin-bottom:5px;
}
.cf-field input, .cf-field textarea, .cf-field select {
  width:100%; padding:10px 13px;
  background:var(--white);
  border:1px solid var(--gray-light);
  border-radius:9px; color:var(--navy);
  font-family:'Inter',sans-serif; font-size:13px;
  outline:none; transition:var(--t); box-sizing:border-box;
}
.cf-field input::placeholder, .cf-field textarea::placeholder { color:rgba(8,25,46,0.3); }
.cf-field input:focus, .cf-field textarea:focus, .cf-field select:focus {
  border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(201,149,42,0.1);
}
.cf-field textarea { min-height:68px; resize:none; }
.cf-field select option { background:var(--white); color:var(--navy); }
.ct-submit-btn { width:100%; justify-content:center; padding:12px; font-size:14px; }
.ct-alt-contact {
  display:flex; align-items:center; gap:10px;
  font-size:12px; color:rgba(8,25,46,0.45);
  padding-top:4px;
}
.ct-alt-contact a {
  display:inline-flex; align-items:center; gap:5px;
  color:#16a34a; font-weight:600; text-decoration:none; font-size:12px;
  transition:opacity 0.2s;
}
.ct-alt-contact a:hover { opacity:0.8; }
.ct-alt-contact a i { font-size:14px; }



/* ============================
   FOOTER — Premium Redesign
   ============================ */

/* Wave transition into footer */
.f-wave-top {
  display:block; line-height:0; overflow:hidden;
  background:#04101f;
  margin-top:-2px;
}
.f-wave-top svg { display:block; width:100%; height:60px; }

.footer {
  background:#04101f;
  padding:0;
  position:relative;
  overflow:hidden;
}
/* Subtle radial glow accents */
.footer::before {
  content:'';
  position:absolute; top:-200px; right:-200px;
  width:600px; height:600px; border-radius:50%;
  background:radial-gradient(circle, rgba(201,149,42,0.06) 0%, transparent 70%);
  pointer-events:none;
}
.footer::after {
  content:'';
  position:absolute; bottom:0; left:-150px;
  width:500px; height:400px; border-radius:50%;
  background:radial-gradient(circle, rgba(26,111,168,0.07) 0%, transparent 70%);
  pointer-events:none;
}

/* ─── Newsletter / CTA Banner ─── */
.f-cta-banner {
  background:linear-gradient(135deg, rgba(201,149,42,0.12) 0%, rgba(26,111,168,0.1) 100%);
  border-top:1px solid rgba(201,149,42,0.22);
  border-bottom:1px solid rgba(255,255,255,0.06);
  padding:42px 0;
}
.f-cta-inner {
  display:flex; align-items:center; justify-content:space-between;
  gap:40px; flex-wrap:wrap;
}
.f-cta-left { flex:1; min-width:260px; }
.f-cta-eyebrow {
  display:inline-flex; align-items:center; gap:7px;
  font-size:10px; font-weight:700; letter-spacing:3px; text-transform:uppercase;
  color:var(--gold); margin-bottom:10px;
}
.f-cta-eyebrow i { font-size:9px; }
.f-cta-left h3 {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(22px,2.5vw,30px); color:var(--white);
  margin-bottom:6px; line-height:1.2;
}
.f-cta-left p { font-size:13.5px; color:rgba(255,255,255,0.42); line-height:1.7; }
.f-cta-form { flex:1; min-width:300px; max-width:480px; }
.f-cta-input-wrap {
  display:flex; align-items:center;
  background:rgba(255,255,255,0.07);
  border:1px solid rgba(255,255,255,0.14);
  border-radius:50px; padding:6px 6px 6px 18px;
  transition:border-color 0.3s, background 0.3s;
  position:relative;
}
.f-cta-input-wrap:focus-within {
  border-color:rgba(201,149,42,0.55);
  background:rgba(255,255,255,0.1);
}
.f-cta-input-wrap > i {
  color:rgba(255,255,255,0.3); font-size:13px; flex-shrink:0; margin-right:10px;
}
.f-cta-input-wrap input {
  flex:1; background:transparent; border:none; outline:none;
  font-family:'Inter',sans-serif; font-size:13.5px;
  color:var(--white); min-width:0;
}
.f-cta-input-wrap input::placeholder { color:rgba(255,255,255,0.3); }
.f-cta-submit {
  flex-shrink:0;
  background:linear-gradient(135deg,var(--gold),var(--gold-light));
  color:var(--navy); border:none; cursor:pointer;
  padding:11px 22px; border-radius:40px;
  font-family:'Inter',sans-serif; font-size:13px; font-weight:700;
  display:flex; align-items:center; gap:7px;
  transition:var(--t);
}
.f-cta-submit:hover { transform:scale(1.04); box-shadow:0 6px 24px rgba(201,149,42,0.4); }
.f-cta-note {
  font-size:11px; color:rgba(255,255,255,0.26);
  margin-top:9px; display:flex; align-items:center; gap:5px;
  padding-left:18px;
}
.f-cta-note i { color:rgba(201,149,42,0.55); font-size:10px; }

/* ─── Map Strip ─── */
.f-map-strip {
  display:grid;
  grid-template-columns:1.7fr 1fr;
  border-bottom:1px solid rgba(255,255,255,0.07);
}
.f-map-iframe { height:320px; overflow:hidden; position:relative; }
.f-map-iframe iframe {
  width:100%; height:100%; border:none;
  opacity:0.82; filter:saturate(0.7) brightness(0.9);
}
.f-map-info {
  padding:32px 36px;
  background:rgba(255,255,255,0.02);
  border-left:1px solid rgba(255,255,255,0.06);
  display:flex; flex-direction:column; justify-content:center; gap:12px;
}
.f-map-info-hd {
  font-size:10px; font-weight:700; letter-spacing:2.5px;
  text-transform:uppercase; color:var(--gold);
  display:flex; align-items:center; gap:8px;
  margin-bottom:6px;
}
.f-reach-item { display:flex; align-items:flex-start; gap:10px; }
.f-reach-item i { color:var(--gold); font-size:13px; margin-top:2px; flex-shrink:0; }
.f-reach-item span { font-size:13px; color:rgba(255,255,255,0.48); line-height:1.5; }
.f-directions-btn {
  display:inline-flex; align-items:center; gap:8px;
  margin-top:8px; padding:11px 22px;
  background:linear-gradient(135deg,rgba(201,149,42,0.12),rgba(201,149,42,0.05));
  border:1px solid rgba(201,149,42,0.3);
  border-radius:30px; color:var(--gold);
  font-size:13px; font-weight:600; text-decoration:none;
  width:fit-content; transition:all 0.3s;
}
.f-directions-btn:hover {
  background:linear-gradient(135deg,rgba(201,149,42,0.25),rgba(201,149,42,0.12));
  border-color:rgba(201,149,42,0.6);
  transform:translateY(-2px);
  box-shadow:0 6px 20px rgba(201,149,42,0.18);
}

/* ─── Main Footer Content wrapper ─── */
.f-main { padding:60px 0 0; position:relative; z-index:1; }

/* Override container max-width inside footer — full viewport width */
.footer .container,
.footer-bottom-wrap .container {
  max-width:100%;
  padding:0 48px;
}

/* 4-column grid — no vertical dividers */
.footer-grid {
  display:grid;
  grid-template-columns:1.8fr 1fr 1fr 1.5fr;
  gap:0 48px;
  padding-bottom:52px;
  border-bottom:1px solid rgba(255,255,255,0.07);
  align-items:start;
}

/* ── Brand column ── */
.footer-brand { padding-right:48px; }
.f-logo {
  font-family:'Cormorant Garamond',serif;
  font-size:32px; font-weight:700; color:var(--white);
  display:inline-flex; align-items:center; gap:12px; margin-bottom:4px; text-decoration:none;
  transition:color 0.3s;
}
.f-logo span,
.f-logo-text span { color:var(--gold); }
.f-logo .f-logo-text { color:var(--white); }
.f-logo-img { display:block; width:58px; height:58px; object-fit:contain; flex-shrink:0; }
.f-logo-text { white-space:nowrap; }
.f-logo:hover { color:rgba(255,255,255,0.85); }
.footer-brand small {
  font-size:9px; letter-spacing:4px; text-transform:uppercase;
  color:rgba(255,255,255,0.25); display:block; margin-bottom:20px;
}
.f-tagline {
  font-size:13.5px; color:rgba(255,255,255,0.4);
  line-height:1.85; margin-bottom:20px;
}

/* Star rating row */
.f-rating-row {
  display:flex; align-items:center; gap:10px; margin-bottom:18px;
}
.f-stars { display:flex; gap:3px; }
.f-stars i { color:var(--gold); font-size:12px; }
.f-rating-row span { font-size:12px; color:rgba(255,255,255,0.35); }

/* Badges */
.f-badges { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px; }
.f-badge {
  display:inline-flex; align-items:center; gap:6px;
  font-size:10.5px; font-weight:600; color:rgba(255,255,255,0.5);
  padding:5px 12px;
  border:1px solid rgba(255,255,255,0.1);
  border-radius:20px;
  transition:border-color 0.3s, color 0.3s;
}
.f-badge i { color:var(--gold); font-size:10px; }
.f-badge:hover { border-color:rgba(201,149,42,0.35); color:rgba(255,255,255,0.75); }

/* Social icons with brand colors */
.f-socials { display:flex; gap:9px; }
.f-contact-socials {
  margin:2px 0 18px;
  flex-wrap:wrap;
}
.f-soc {
  width:38px; height:38px; border-radius:10px;
  border:1px solid rgba(255,255,255,0.1);
  display:flex; align-items:center; justify-content:center;
  color:rgba(255,255,255,0.38); font-size:14px;
  transition:all 0.35s; text-decoration:none;
}
.f-soc:hover { transform:translateY(-4px) scale(1.1); border-color:transparent; color:#fff; }
.f-soc-fb:hover  { background:#1877F2; box-shadow:0 8px 20px rgba(24,119,242,0.4); }
.f-soc-ig:hover  { background:linear-gradient(135deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888); box-shadow:0 8px 20px rgba(220,39,67,0.4); }
.f-soc-tw:hover  { background:#1DA1F2; box-shadow:0 8px 20px rgba(29,161,242,0.4); }
.f-soc-yt:hover  { background:#FF0000; box-shadow:0 8px 20px rgba(255,0,0,0.4); }
.f-soc-wa:hover  { background:#25D366; box-shadow:0 8px 20px rgba(37,211,102,0.4); }

/* ── Link columns ── */
.footer-col {
  padding:0;
  border-left:none;
}
.footer-col h5 {
  font-size:10px; font-weight:700; letter-spacing:3px; text-transform:uppercase;
  color:rgba(255,255,255,0.85); margin-bottom:24px;
  padding-bottom:14px;
  border-bottom:1px solid rgba(201,149,42,0.18);
  display:flex; align-items:center; gap:8px;
}
.footer-col h5 i { color:var(--gold); font-size:11px; }
.footer-col ul { list-style:none; }
.footer-col ul li { margin-bottom:12px; }
.footer-col ul a {
  font-size:13px; color:rgba(255,255,255,0.4);
  transition:color 0.25s, padding-left 0.25s, gap 0.25s;
  display:flex; align-items:center; gap:8px;
  text-decoration:none;
}
.footer-col ul a i {
  font-size:9px; color:rgba(201,149,42,0.35);
  transition:color 0.25s, transform 0.25s; flex-shrink:0;
}
.footer-col ul a:hover { color:var(--gold-light); padding-left:5px; }
.footer-col ul a:hover i { color:var(--gold); transform:translateX(2px); }

/* ── Contact Cards column ── */
.footer-col-contact { padding-left:0; }
.f-contact-cards { display:flex; flex-direction:column; gap:10px; margin-bottom:18px; }
.f-contact-card {
  display:flex; align-items:center; gap:13px;
  padding:13px 16px;
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.08);
  border-radius:12px; text-decoration:none;
  transition:all 0.3s;
}
.f-contact-card:hover {
  background:rgba(201,149,42,0.1);
  border-color:rgba(201,149,42,0.3);
  transform:translateX(4px);
}
.f-contact-card-wa:hover {
  background:rgba(37,211,102,0.1);
  border-color:rgba(37,211,102,0.3);
}
.f-cc-icon {
  width:38px; height:38px; border-radius:10px; flex-shrink:0;
  background:rgba(201,149,42,0.12);
  border:1px solid rgba(201,149,42,0.22);
  display:flex; align-items:center; justify-content:center;
  font-size:15px; color:var(--gold);
  transition:background 0.3s;
}
.f-contact-card-wa .f-cc-icon { background:rgba(37,211,102,0.12); border-color:rgba(37,211,102,0.25); color:#25D366; }
.f-contact-card:hover .f-cc-icon { background:rgba(201,149,42,0.25); }
.f-contact-card-wa:hover .f-cc-icon { background:rgba(37,211,102,0.25); }
.f-cc-text { min-width:0; }
.f-cc-label {
  display:block; font-size:9.5px; font-weight:600;
  letter-spacing:2px; text-transform:uppercase;
  color:rgba(255,255,255,0.3); margin-bottom:2px;
}
.f-cc-text strong { font-size:13px; color:rgba(255,255,255,0.78); font-weight:500; white-space:nowrap; }

.f-address-row {
  display:flex; align-items:flex-start; gap:9px;
  margin-bottom:18px;
}
.f-address-row i { color:var(--gold); font-size:12px; margin-top:3px; flex-shrink:0; }
.f-address-row span { font-size:12px; color:rgba(255,255,255,0.32); line-height:1.55; }
.f-brand-address { margin-bottom:12px; }
.f-mini-map {
  width:100%;
  height:154px;
  border-radius:12px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,0.1);
  box-shadow:0 12px 34px rgba(0,0,0,0.22);
}
.f-mini-map iframe {
  width:100%;
  height:100%;
  border:0;
  display:block;
  opacity:0.82;
  filter:saturate(0.75) brightness(0.92);
}

.f-book-btn {
  display:inline-flex; align-items:center; gap:9px;
  padding:13px 24px;
  background:linear-gradient(135deg,var(--gold),var(--gold-light));
  color:var(--navy); border-radius:40px;
  font-size:13.5px; font-weight:700; text-decoration:none;
  transition:var(--t); width:100%; justify-content:center;
  box-shadow:0 4px 20px rgba(201,149,42,0.3);
}
.f-book-btn:hover {
  transform:translateY(-3px);
  box-shadow:0 10px 32px rgba(201,149,42,0.45);
}

/* ── Bottom Bar ── */
.footer-bottom-wrap {
  background:rgba(0,0,0,0.25);
  border-top:1px solid rgba(255,255,255,0.06);
  position:relative; z-index:1;
}
.footer-bottom {
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  padding:18px 0; gap:16px; flex-wrap:wrap;
}
.fb-copy { font-size:12px; color:rgba(255,255,255,0.25); }
.fb-copy strong { color:rgba(255,255,255,0.4); font-weight:500; }
.fb-links {
  display:flex; align-items:center; gap:10px;
  justify-content:flex-end;
}
.fb-links a { font-size:12px; color:rgba(255,255,255,0.28); transition:color 0.25s; text-decoration:none; }
.fb-links a:hover { color:var(--gold); }
.fb-dot { color:rgba(255,255,255,0.15); font-size:10px; }
.fb-credit { font-size:12px; color:rgba(255,255,255,0.2); }
.fb-credit strong { color:rgba(255,255,255,0.32); font-weight:500; }
.fb-credit a { color:inherit; text-decoration:none; transition:color 0.25s; }
.fb-credit a:hover strong { color:var(--gold); }
.fb-heart { color:#e53e3e; display:inline-block; animation:heartBeat 1.4s ease-in-out infinite; }
@keyframes heartBeat {
  0%,100% { transform:scale(1); }
  14% { transform:scale(1.3); }
  28% { transform:scale(1); }
  42% { transform:scale(1.25); }
  70% { transform:scale(1); }
}

/* ============================
   CONTACT PAGE
   ============================ */
.contact-page { background:var(--sand); }
.contact-page-hero {
  background:
    linear-gradient(135deg,rgba(8,25,46,0.94),rgba(15,37,66,0.72)),
    url('../img/banner/hero5.webp');
  background-size:cover;
  background-position:center;
  padding:calc(var(--header-h) + 72px) 0 58px;
  color:var(--white);
}
.contact-page-hero h1 {
  font-size:clamp(36px,5vw,62px);
  color:var(--white);
  margin:4px 0 12px;
}
.contact-page-hero p {
  max-width:560px;
  color:rgba(255,255,255,0.62);
  font-size:15px;
  line-height:1.8;
}
.contact-page-section { padding:70px 0; }
.contact-page-grid {
  display:grid;
  grid-template-columns:0.9fr 1.25fr;
  gap:26px;
  align-items:stretch;
}
.contact-page-info {
  background:var(--navy);
  border-radius:16px;
  padding:24px;
  display:flex;
  flex-direction:column;
  gap:14px;
  box-shadow:var(--shadow-lg);
  align-self:start;
}
.contact-page-info h2 {
  font-size:28px;
  color:var(--white);
  line-height:1.15;
}
.contact-page-info .ct-info-block {
  flex:0 0 auto;
  justify-content:flex-start;
  gap:0;
  padding:10px 14px;
}
.contact-page-info .ct-info-row {
  padding:9px 0;
  gap:10px;
}
.contact-page-info .ct-info-row strong { font-size:12px; }
.contact-page-info .ct-info-row span { font-size:12px; line-height:1.5; }
.contact-page-info .ct-cta-row {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(112px, 1fr));
  gap:7px;
  width:100%;
}
.contact-page-info .ct-cta-btn {
  padding:9px 12px;
  font-size:12px;
  width:100%;
  min-height:38px;
  justify-content:center;
  line-height:1.2;
  border-radius:9px;
}
.contact-page-info .ct-cta-btn i {
  width:15px;
  height:15px;
  flex-basis:15px;
  font-size:12px;
}
.contact-page-form-panel {
  border:1px solid var(--gray-light);
  border-radius:16px;
  box-shadow:var(--shadow-lg);
  gap:14px;
}
.contact-page-map {
  margin-top:28px;
  border:1px solid var(--gray-light);
  border-radius:16px;
  overflow:hidden;
  box-shadow:var(--shadow-lg);
  background:var(--white);
}
.contact-page-map iframe {
  display:block;
  width:100%;
  height:360px;
  border:0;
}

/* ============================
   LEGAL / UTILITY PAGES
   ============================ */
.legal-page { background:var(--sand); }
.legal-hero {
  background:
    linear-gradient(135deg,rgba(8,25,46,0.94),rgba(15,37,66,0.76)),
    url('../img/banner/hero0.webp');
  background-size:cover;
  background-position:center;
  color:var(--white);
  padding:calc(var(--header-h) + 72px) 0 54px;
}
.legal-hero h1 {
  font-size:clamp(34px,5vw,58px);
  color:var(--white);
  margin:4px 0 10px;
}
.legal-hero p {
  max-width:680px;
  color:rgba(255,255,255,0.66);
  font-size:15px;
  line-height:1.8;
}
.legal-section { padding:64px 0; }
.legal-panel {
  max-width:920px;
  margin:0 auto;
  background:var(--white);
  border:1px solid var(--gray-light);
  border-radius:16px;
  padding:34px;
  box-shadow:var(--shadow-lg);
}
.legal-panel h2 {
  font-family:'Inter',sans-serif;
  font-size:17px;
  color:var(--navy);
  margin:24px 0 8px;
}
.legal-panel h2:first-child { margin-top:0; }
.legal-panel p,
.legal-panel li {
  font-size:14px;
  color:#3a4a5c;
  line-height:1.8;
}
.legal-panel ul { padding-left:20px; margin:8px 0 0; }
.sitemap-list {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:12px;
  list-style:none;
  padding-left:0 !important;
}
.sitemap-list a {
  display:flex;
  align-items:center;
  gap:8px;
  padding:12px 14px;
  border:1px solid var(--gray-light);
  border-radius:10px;
  color:var(--navy);
  font-weight:600;
}
.sitemap-list a:hover {
  border-color:rgba(201,149,42,0.4);
  color:var(--gold);
}

/* ============================
   ANSWER ENGINE / AEO
   ============================ */
.answer-engine {
  background:linear-gradient(180deg,#fff 0%,#f8fafc 100%);
}
.answer-engine-head {
  max-width:820px;
  margin-bottom:30px;
}
.answer-engine-grid {
  display:grid;
  grid-template-columns:minmax(280px,0.95fr) minmax(320px,1.25fr);
  gap:22px;
  align-items:start;
}
.answer-facts,
.answer-faq {
  background:#fff;
  border:1px solid rgba(15,23,42,0.1);
  box-shadow:var(--shadow-sm);
}
.answer-facts {
  border-radius:8px;
  padding:24px;
}
.answer-facts h3 {
  margin:0 0 14px;
  color:var(--navy);
  font-size:20px;
}
.answer-facts ul {
  display:grid;
  gap:11px;
  margin:0;
  padding:0;
  list-style:none;
}
.answer-facts li {
  position:relative;
  padding-left:22px;
  color:var(--gray);
  font-size:14px;
  line-height:1.65;
}
.answer-facts li::before {
  content:"";
  position:absolute;
  left:0;
  top:0.68em;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--gold);
}
.answer-faqs {
  display:grid;
  gap:10px;
}
.answer-faq {
  border-radius:8px;
  overflow:hidden;
}
.answer-faq summary {
  cursor:pointer;
  list-style:none;
  padding:17px 20px;
  color:var(--navy);
  font-weight:700;
  font-size:15px;
}
.answer-faq summary::-webkit-details-marker {
  display:none;
}
.answer-faq summary::after {
  content:"+";
  float:right;
  color:var(--gold);
  font-size:18px;
  line-height:1;
}
.answer-faq[open] summary::after {
  content:"-";
}
.answer-faq p {
  margin:0;
  padding:0 20px 18px;
  color:var(--gray);
  font-size:14px;
  line-height:1.65;
}

/* ── Back to Top ── */
.f-back-top {
  position:absolute; bottom:80px; right:24px;
  width:44px; height:44px; border-radius:12px;
  background:rgba(201,149,42,0.12);
  border:1px solid rgba(201,149,42,0.28);
  display:flex; align-items:center; justify-content:center;
  color:var(--gold); font-size:14px; text-decoration:none;
  transition:all 0.3s; z-index:10;
}
.f-back-top:hover {
  background:var(--gold); color:var(--navy);
  transform:translateY(-4px);
  box-shadow:0 8px 24px rgba(201,149,42,0.35);
}

/* ============================
   FLOATING BUTTONS
   ============================ */
.float-actions {
  position:fixed; bottom:28px; right:24px; z-index:900;
  display:flex; flex-direction:column; gap:12px;
  opacity:0; transform:translateY(20px);
  transition:opacity 0.4s, transform 0.4s;
  pointer-events:none;
}
.float-actions.visible { opacity:1; transform:none; pointer-events:auto; }
.float-actions > .fab {
  width:54px; height:54px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:22px; color:var(--white);
  box-shadow:0 4px 24px rgba(0,0,0,0.28);
  transition:var(--t); cursor:pointer;
  text-decoration:none; border:none;
  line-height:1;
}
.float-actions > .fab:hover { transform:scale(1.12); }
.float-actions > .fab > i {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:1em;
  height:1em;
  flex:0 0 auto;
  line-height:1;
}
.fab-wa { background:#25D366; }
.fab-wa.pulse-anim { animation:waPulse 2.2s infinite; }
@keyframes waPulse {
  0% { box-shadow:0 0 0 0 rgba(37,211,102,0.55); }
  70% { box-shadow:0 0 0 18px rgba(37,211,102,0); }
  100% { box-shadow:0 0 0 0 rgba(37,211,102,0); }
}
.fab-call { background:var(--ocean); }

/* ============================
   RESPONSIVE — Full Coverage
   ============================ */

/* ── 1100px: Large tablets / small laptops ── */
@media(max-width:1100px) {
  .hero-body { grid-template-columns:1fr; }
  .hero-card { display:none; }
  .hero-left { max-width:100%; }

  .highlights-inner { grid-template-columns:repeat(3,1fr); }

  .about-wrap { gap:40px; }

  .rooms-grid { grid-template-columns:repeat(auto-fit, minmax(280px, 380px)); }

  .testi-header { gap:24px; }

  .footer-grid { grid-template-columns:1fr 1fr; row-gap:36px; }
  .footer-brand { padding-right:0; padding-bottom:36px; border-bottom:1px solid rgba(255,255,255,0.07); }
  .footer .container, .footer-bottom-wrap .container { padding:0 32px; }
}

/* ── 900px: Tablets portrait ── */
@media(max-width:900px) {
  .about-wrap { grid-template-columns:1fr; }
  .about-media { height:320px; overflow:hidden; border-radius:var(--radius-lg); }
  .am-main { position:relative; top:auto; left:auto; width:100%; height:100%; }
  .am-side, .am-accent { display:none; }
  .am-stat { position:absolute; bottom:12px; left:12px; padding:12px 16px; }
  .about-am-grid { grid-template-columns:repeat(3,1fr); }

  .contact-split { grid-template-columns:1fr; }
  .ct-img-panel { min-height:520px; }
  .ct-map-info-row { grid-template-columns:1fr 1fr; }

  .footer-grid { grid-template-columns:1fr 1fr; row-gap:32px; }
  .f-back-top { bottom:60px; }

  .gallery-masonry {
    grid-template-columns:1fr 1fr;
    grid-template-rows:220px 180px 180px 220px;
    grid-template-areas:
      "a a"
      "b c"
      "d e"
      "f f";
  }
}

/* ── Marquee keyframe ── */
@keyframes hlMarquee {
  0%   { transform:translateX(0); }
  100% { transform:translateX(-50%); }
}


@media(max-width:768px) {
  /* Global */
  .sec { padding:56px 0; }
  .section-header { margin-bottom:32px; }

  /* Hero */
  .hero-title { font-size:36px; line-height:1.15; }
  .hero-desc { font-size:14px; }
  .hero-trust { gap:6px; flex-wrap:wrap; }
  .trust-pill { font-size:10.5px; padding:6px 11px; }
  .hero-eyebrow { font-size:11px; }
  .hero-actions { flex-wrap:wrap; }

  /* Highlights strip — marquee on mobile */
  .hl-marquee-wrap {
    overflow:hidden;
    position:relative;
  }
  .hl-marquee-wrap::before,
  .hl-marquee-wrap::after {
    content:'';
    position:absolute; top:0; bottom:0; width:60px;
    z-index:2; pointer-events:none;
  }
  .hl-marquee-wrap::before {
    left:0;
    background:linear-gradient(to right, var(--navy) 0%, transparent 100%);
  }
  .hl-marquee-wrap::after {
    right:0;
    background:linear-gradient(to left, var(--navy) 0%, transparent 100%);
  }
  .hl-track {
    display:flex;
    flex-direction:row;
    width:max-content;
    max-width:none;
    animation:hlMarquee 18s linear infinite;
  }
  .hl-track:hover { animation-play-state:paused; }
  .hl-track .hl-item[aria-hidden="true"] { display:flex; }
  .hl-item { padding:14px 20px; gap:12px; flex-shrink:0; border-right:1px solid rgba(255,255,255,0.06); }
  .hl-icon { font-size:22px; width:28px; }
  .hl-text strong { font-size:12px; white-space:nowrap; }
  .hl-text span { font-size:10px; white-space:nowrap; }

  /* About */
  .about-wrap { grid-template-columns:1fr; gap:32px; }
  .about-media {
    height:260px;
    overflow:hidden;
    border-radius:var(--radius-lg);
  }
  /* Simplify collage: show only main image, hide overlapping panels */
  .am-main { position:relative; top:auto; left:auto; width:100%; height:100%; }
  .am-side, .am-accent { display:none; }
  .am-stat { position:absolute; bottom:12px; left:12px; padding:10px 14px; }
  .am-stat strong { font-size:24px; }
  .about-counters { grid-template-columns:repeat(2,1fr); gap:16px; }
  .about-am-grid { grid-template-columns:repeat(2,1fr); gap:8px; }

  /* Rooms */
  .rooms-grid { grid-template-columns:minmax(0, 380px); }

  /* Gallery */
  .gal-header { flex-direction:column; align-items:flex-start; gap:12px; }
  .gal-header-right { text-align:left; }
  .gal-header-right p { margin-left:0; }
  .gallery-masonry {
    grid-template-columns:1fr 1fr;
    grid-template-rows:200px 160px 160px 200px;
    grid-template-areas:
      "a a"
      "b c"
      "d e"
      "f f";
  }

  /* Testimonials */
  .testimonials { padding:40px 0 0; }
  .testi-header { flex-direction:column; align-items:flex-start; gap:16px; }
  .testi-score-block { width:100%; box-sizing:border-box; }
  .testi-hd { font-size:26px; }
  .tsb-num { font-size:38px; }
  .testi-controls { gap:10px; margin-top:20px; padding-bottom:40px; }

  /* Find Us On */
  .fuo-logos { gap:6px; justify-content:center; }
  .fuo-logo { padding:8px 12px; }

  /* Attractions */
  .attr-header { flex-direction:column; align-items:flex-start; gap:10px; }
  .attr-sub { text-align:left; }
  .attr-mc { width:220px; height:280px; }

  /* Dining */
  .dining-home-wrap { grid-template-columns:1fr; gap:24px; }
  .dining-home-media { height:300px; }

  /* Contact */
  .contact-split { grid-template-columns:1fr; }
  .ct-img-panel { min-height:500px; }
  .ct-map-info-row { grid-template-columns:1fr 1fr; gap:8px; }
  .ct-left-content { padding:16px 16px 14px; }
  .ct-form-panel { padding:24px 20px 20px; }
  .cf-row { grid-template-columns:1fr 1fr; gap:8px; }
  .ct-submit-btn { padding:11px; }
  .ct-cta-row { gap:5px; }
  .ct-cta-btn { font-size:11px; padding:7px 10px; min-height:34px; }

  /* Footer */
  .footer .container, .footer-bottom-wrap .container { padding:0 20px; }
  .footer-grid { grid-template-columns:1fr; row-gap:28px; }
  .footer-col { border-top:1px solid rgba(255,255,255,0.07); padding-top:20px; }
  .footer-brand { padding-bottom:28px; }
  .footer-bottom { grid-template-columns:1fr; text-align:center; gap:8px; }
  .fb-links { justify-content:center; }
  .fb-copy { order:2; }
  .fb-links { order:3; }
  .fb-credit { order:1; }

  .contact-page-hero { padding:calc(60px + 56px) 0 44px; }
  .contact-page-section { padding:46px 0; }
  .contact-page-grid { grid-template-columns:1fr; gap:22px; }
  .contact-page-info,
  .contact-page-form-panel { border-radius:14px; }
  .contact-page-info { padding:24px 20px; }
  .contact-page-info .ct-cta-row { grid-template-columns:repeat(auto-fit, minmax(104px, 1fr)); }

  /* Form */
  .contact-form { gap:8px; }
  .experience { background-attachment:scroll; }
}

/* ── 480px: Standard phones ── */
@media(max-width:480px) {
  /* Global */
  .sec { padding:44px 0; }
  .container { padding:0 16px; }

  /* Hero */
  .hero-title { font-size:30px; }
  .hero-desc { font-size:13px; max-width:100%; }
  .hero-trust { display:none; } /* hide on very small to avoid clutter */
  .hero-actions .btn { width:100%; justify-content:center; }
  .scroll-cue { display:none; }

  /* Highlights strip */
  .highlights-inner { grid-template-columns:1fr 1fr; }
  .hl-item { padding:12px 12px; gap:10px; }
  .hl-icon { font-size:20px; }
  .hl-text strong { font-size:11.5px; }

  /* About */
  .about-media { height:220px; }
  .about-counters { grid-template-columns:repeat(2,1fr); gap:12px; }
  .about-am-grid { grid-template-columns:repeat(2,1fr); gap:8px; }
  .about-am-item { padding:9px 10px; gap:7px; }
  .about-am-item span { font-size:11px; }
  .am-vline { display:none; }
  .am-cat:nth-child(7) { grid-column:auto; border-top:none; padding-top:0; margin-top:0; }
  .am-cat:nth-child(7) .am-cat-list { display:flex; flex-direction:column; }

  /* Rooms */
  .room-footer { flex-direction:column; align-items:flex-start; gap:10px; }
  .room-price { margin-bottom:0; }

  /* Gallery */
  .gallery-masonry {
    grid-template-columns:1fr;
    grid-template-rows:repeat(6,220px);
    grid-template-areas:"a" "b" "c" "d" "e" "f";
  }

  /* Testimonials */
  .testi-hd { font-size:22px; }
  .tsb-platforms { gap:4px; }
  .testi-btn-prev, .testi-btn-next { width:34px; height:34px; font-size:11px; }
  .testi-card { padding:20px 16px 16px; }
  .testi-text { font-size:12.5px; }
  .find-us-on { padding:20px 0; }
  .fuo-heading { font-size:10px; gap:8px; }
  .fuo-logos { gap:5px; }
  .fuo-logo { padding:7px 10px; }

  /* Attractions */
  .attr-mc { width:180px; height:240px; }

  /* Dining */
  .home-dining { padding:44px 0; }
  .dining-home-points { grid-template-columns:1fr; }

  /* Contact */
  .ct-map-info-row { grid-template-columns:1fr; }
  .ct-glass-map { min-height:160px; }
  .ct-info-col { flex-direction:row; flex-wrap:wrap; gap:6px; }
  .ct-info-block { flex:1; min-width:180px; }
  .ct-cta-row { flex-direction:row; }
  .contact-page-info .ct-cta-row { grid-template-columns:1fr; }
  .cf-row { grid-template-columns:1fr; }
  .ct-form-panel { padding:20px 16px; }
  .ct-alt-contact { flex-direction:column; align-items:flex-start; gap:4px; }

  /* Footer */
  .footer .container, .footer-bottom-wrap .container { padding:0 16px; }
  .f-main { padding:40px 0 0; }
  .f-rating-row { flex-wrap:wrap; }
  .f-badges { flex-wrap:wrap; }
  .f-socials { gap:8px; }
  .f-soc { width:32px; height:32px; font-size:13px; }
}

/* ── 380px: Small/older phones ── */
@media(max-width:380px) {
  .hero-title { font-size:26px; }
  .highlights-inner { grid-template-columns:1fr; }
  .testi-score-block { padding:14px 16px; }
  .tsb-num { font-size:32px; }
  .ct-img-panel { min-height:420px; }
  .ct-map-info-row { grid-template-columns:1fr; }
  .fuo-logo img, .fuo-logo svg { height:18px; }
  .footer-grid { row-gap:20px; }
  .ct-cta-btn { font-size:10.5px; padding:7px 9px; }
}

@media(max-width:760px) {
  .answer-engine-grid { grid-template-columns:1fr; gap:14px; }
  .answer-engine-head { margin-bottom:20px; }
  .answer-facts { padding:20px 16px; }
  .answer-faq summary { padding:15px 16px; font-size:14px; }
  .answer-faq p { padding:0 16px 16px; font-size:13px; }
}
