/* ===== Travel Dream Makers - premium stylesheet ===== */
:root { --navy:#0b2340; --gold:#c9a24d; --gold-dark:#b08a35; --sand:#f7f3ec; --text:#4a5361; }
html { scroll-behavior: smooth; }
body { font-family:'Poppins',sans-serif; color:var(--text); font-size:16px; line-height:1.75; overflow-x:hidden; }
h1,h2,h3,h4 { font-family:'Playfair Display',serif; color:var(--navy); font-weight:700; }
h5,h6 { color:var(--navy); font-weight:600; }
a { text-decoration:none; }
.text-gold { color:var(--gold) !important; }
.text-navy { color:var(--navy); }

/* Buttons */
.btn { border-radius:2px; padding:10px 26px; font-weight:500; letter-spacing:.4px; }
.btn-sm { padding:7px 18px; }
.btn-gold { background:var(--gold); border:1px solid var(--gold); color:#fff; }
.btn-gold:hover { background:var(--gold-dark); border-color:var(--gold-dark); color:#fff; }
.btn-navy { background:var(--navy); border:1px solid var(--navy); color:#fff; }
.btn-navy:hover { background:transparent; color:var(--navy); }

/* Top bar + navbar */
.topbar { background:#07182d; color:#cfd7e2; font-size:.85rem; padding:7px 0; position:relative; z-index:1031; }
.topbar a { color:#cfd7e2; } .topbar a:hover { color:var(--gold); } .topbar i { color:var(--gold); margin-right:5px; }
.site-nav { top:34px; padding:16px 0; background:transparent; transition:all .3s; }
@media (max-width:991px){ .site-nav { top:0; background:var(--navy); } .navbar-nav { padding:14px 0; } }
.site-nav.scrolled { top:0; background:var(--navy); padding:9px 0; box-shadow:0 3px 18px rgba(0,0,0,.25); }
.navbar-brand { font-family:'Playfair Display',serif; font-size:1.65rem; font-weight:700; color:#fff; display:flex; align-items:center; gap:8px; }
.brand-icon { color:var(--gold); font-size:1.7rem; }
.site-nav .nav-link { color:#fff; font-weight:500; font-size:.95rem; padding:8px 14px; }
.site-nav .nav-link:hover, .site-nav .nav-link.active { color:var(--gold); }
.dropdown-menu { border:0; border-radius:2px; border-top:3px solid var(--gold); padding:8px 0; min-width:200px; }
.dropdown-item { padding:8px 20px; font-size:.93rem; } .dropdown-item:hover { background:var(--sand); color:var(--gold-dark); }
@media (min-width:992px){ .dropdown:hover > .dropdown-menu { display:block; } }

/* Hero */
.hero .carousel-item { height:100vh; min-height:620px; background-size:cover; background-position:center; background-color:var(--navy); position:relative; }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg, rgba(7,24,45,.8), rgba(7,24,45,.3)); }
.hero-content { position:relative; z-index:2; height:100%; display:flex; flex-direction:column; justify-content:center; color:#fff; padding-top:60px; }
.hero-content > * { max-width:720px; }
.hero-kicker { text-transform:uppercase; letter-spacing:5px; color:var(--gold); font-size:.85rem; font-weight:600; }
.hero h1 { color:#fff; font-size:clamp(2.6rem,6.5vw,5rem); line-height:1.05; margin:10px 0 16px; }
.hero-sub { font-size:1.2rem; margin-bottom:28px; opacity:.95; }
.carousel-indicators [data-bs-target] { width:34px; height:3px; border:0; margin-bottom:90px; }

/* Enquiry bar */
.enquiry-bar { margin-top:-70px; position:relative; z-index:5; }
.bar-card { background:#fff; padding:28px; border-top:4px solid var(--gold); }
.form-label { font-size:.8rem; text-transform:uppercase; letter-spacing:1px; font-weight:600; color:var(--navy); margin-bottom:4px; }
.form-control, .form-select { border-radius:2px; padding:11px 14px; border:1px solid #ddd5c8; }
.form-control:focus, .form-select:focus { border-color:var(--gold); box-shadow:0 0 0 .2rem rgba(201,162,77,.15); }

/* Sections */
.section { padding:90px 0; } .section-sand { background:var(--sand); }
.section-head { margin-bottom:48px; }
.eyebrow { display:block; text-transform:uppercase; letter-spacing:3px; font-size:.78rem; font-weight:600; color:var(--gold-dark); margin-bottom:6px; }
.section-title { font-size:clamp(1.9rem,4vw,2.9rem); margin-bottom:14px; }
.title-line { width:70px; height:3px; background:var(--gold); margin:8px auto 14px; }
.section-sub { max-width:560px; margin:0 auto; }
.text-start + .title-line { margin-left:0; }

/* About images */
.about-imgs { position:relative; padding-bottom:60px; }
.ai-big { height:420px; width:85%; background-size:cover; background-position:center; background-color:#cdd6df; border-radius:2px; }
.ai-small { position:absolute; right:0; bottom:0; width:52%; height:250px; background-size:cover; background-position:center; background-color:#b9c4cf; border:8px solid #fff; border-radius:2px; box-shadow:0 10px 30px rgba(0,0,0,.15); }

/* Counters */
.counter-strip { background:var(--navy); color:#fff; padding:60px 0; margin-top:30px; }
.counter-strip h3 { color:var(--gold); font-size:3rem; margin:0; } .counter-strip p { margin:0; letter-spacing:1px; text-transform:uppercase; font-size:.85rem; opacity:.85; }

/* Mosaic */
.mosaic { display:block; background-size:cover; background-position:center; background-color:#9eacba; position:relative; overflow:hidden; border-radius:2px; }
.mosaic::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 45%,rgba(7,24,45,.85)); transition:opacity .3s; }
.mosaic:hover::after { background:linear-gradient(180deg,rgba(7,24,45,.2),rgba(7,24,45,.9)); }
.mosaic-cap { position:absolute; left:22px; bottom:18px; z-index:2; color:#fff; }
.mosaic-cap h4 { color:#fff; margin:0; font-size:1.9rem; } .mosaic-cap span { font-size:.9rem; opacity:.9; }

/* Package cards */
.pill-tabs .nav-link { color:var(--navy); border:1px solid #d9d0bf; border-radius:30px; padding:7px 24px; margin:0 5px 8px; background:#fff; font-weight:500; }
.pill-tabs .nav-link.active { background:var(--gold); border-color:var(--gold); color:#fff; }
.pkg-card { border-radius:3px; overflow:hidden; transition:transform .3s, box-shadow .3s; }
.pkg-card:hover { transform:translateY(-6px); box-shadow:0 16px 34px rgba(11,35,64,.15) !important; }
.pkg-img { height:230px; background-size:cover; background-position:center; background-color:#a8b5c2; position:relative; }
.pkg-badge { position:absolute; top:14px; left:14px; background:var(--gold); font-weight:500; border-radius:2px; padding:6px 12px; }
.pkg-cat { position:absolute; bottom:12px; right:12px; background:rgba(11,35,64,.85); color:#fff; font-size:.75rem; padding:3px 10px; border-radius:2px; text-transform:uppercase; letter-spacing:1px; }
.pkg-card .card-title { font-size:1.8rem; margin-bottom:6px; }
.pkg-card .card-text { font-size:.93rem; }
.pkg-icons { font-size:.82rem; color:var(--navy); border-top:1px dashed #ddd; padding-top:12px; margin-top:12px; }
.pkg-icons i { color:var(--gold-dark); }
.pkg { scroll-margin-top:110px; }
.modal-img { height:100%; min-height:260px; background-size:cover; background-position:center; background-color:#b3bfcb; border-radius:2px; }

/* Tour types, info boxes, steps */
.type-box { background:#fff; border:1px solid #e7e0d3; text-align:center; padding:28px 14px; transition:all .3s; border-radius:2px; }
.type-box:hover { background:var(--navy); transform:translateY(-5px); } .type-box:hover h6, .type-box:hover p { color:#fff; }
.type-box i { font-size:2.2rem; color:var(--gold-dark); } .type-box h6 { margin:10px 0 4px; } .type-box p { font-size:.82rem; margin:0; }
.info-box { background:#fff; padding:34px 28px; height:100%; border:1px solid #e7e0d3; border-radius:2px; transition:all .3s; }
.info-box:hover { transform:translateY(-5px); box-shadow:0 14px 30px rgba(11,35,64,.1); }
.info-box > i { font-size:2.2rem; color:var(--gold-dark); } .info-box h5 { margin:12px 0 6px; } .info-box p { margin:0; font-size:.95rem; } .info-box a { color:var(--text); }
.step { text-align:center; padding:10px 14px; position:relative; }
.step-no { font-family:'Playfair Display',serif; font-size:4.5rem; color:rgba(201,162,77,.25); font-weight:700; line-height:1; display:block; }
.step i { font-size:2.2rem; color:var(--navy); display:block; margin:-14px 0 8px; } .step p { font-size:.93rem; }

/* Offer + CTA */
.offer, .cta { background-size:cover; background-position:center; background-color:#17395e; position:relative; color:#fff; }
.offer { padding:80px 0; background-attachment:fixed; }
.offer::before, .cta::before { content:""; position:absolute; inset:0; background:rgba(7,24,45,.72); }
.offer .container, .cta .container { position:relative; }
.offer h2, .cta h2 { color:#fff; font-size:clamp(1.9rem,4vw,3rem); }
.cta { padding:100px 0; } .cta p { margin-bottom:26px; font-size:1.1rem; }

/* Why / testimonials / faq */
.why-img { height:480px; background-size:cover; background-position:center; background-color:#b3bfcb; border-radius:2px; }
.feat-ic { font-size:1.8rem; color:var(--gold-dark); }
.testi-sec { background:var(--navy); color:#fff; } .testi-sec .section-title { color:#fff; } .testi-sec .eyebrow { color:var(--gold); }
.testi { text-align:center; padding:0 30px; } .testi > i { font-size:3rem; color:var(--gold); }
.testi p { font-size:1.2rem; font-style:italic; } .testi h6 { color:#fff; margin:12px 0 0; } .testi span { font-size:.85rem; opacity:.7; } .stars { color:var(--gold); margin-top:6px; }
.faq .accordion-button { font-weight:500; color:var(--navy); } .faq .accordion-button:not(.collapsed) { background:var(--sand); color:var(--navy); box-shadow:none; }
.faq .accordion-item { border-radius:2px; margin-bottom:10px; border:1px solid #e7e0d3; }

/* Page banner */
.page-banner { background-size:cover; background-position:center; background-color:var(--navy); padding:200px 0 80px; position:relative; color:#fff; }
.page-banner::before { content:""; position:absolute; inset:0; background:rgba(7,24,45,.65); }
.page-banner .container { position:relative; } .page-banner h1 { color:#fff; font-size:clamp(2.3rem,5vw,3.8rem); }
.breadcrumb-item a { color:var(--gold); } .breadcrumb-item.active, .breadcrumb-item + .breadcrumb-item::before { color:#fff; }

/* Contact */
.enquiry-form { background:var(--sand); padding:34px; border-radius:2px; }
.map-box { min-height:360px; border:6px solid #fff; box-shadow:0 8px 28px rgba(0,0,0,.12); } .map-box iframe { width:100%; height:100%; min-height:360px; border:0; display:block; }

/* Footer */
.site-footer { background:#07182d; color:#aeb9c7; font-size:.93rem; }
.footer-top { padding:75px 0 55px; }
.footer-logo { font-family:'Playfair Display',serif; font-size:1.9rem; font-weight:700; color:#fff; } .footer-logo i { color:var(--gold); }
.site-footer h6 { color:#fff; text-transform:uppercase; letter-spacing:1.5px; font-size:.82rem; margin-bottom:18px; position:relative; padding-bottom:10px; }
.site-footer h6::after { content:""; position:absolute; left:0; bottom:0; width:30px; height:2px; background:var(--gold); }
.f-links, .f-contact { list-style:none; padding:0; margin:0; } .f-links li { margin-bottom:8px; }
.site-footer a { color:#aeb9c7; } .site-footer a:hover { color:var(--gold); }
.f-contact li { display:flex; gap:10px; margin-bottom:12px; } .f-contact i { color:var(--gold); }
.social a { display:inline-flex; width:38px; height:38px; border:1px solid rgba(255,255,255,.2); align-items:center; justify-content:center; margin-right:8px; border-radius:50%; }
.social a:hover { background:var(--gold); color:#fff; border-color:var(--gold); }
.footer-bottom { border-top:1px solid rgba(255,255,255,.1); padding:18px 0; font-size:.85rem; }

/* Floating buttons */
.float-buttons { position:fixed; right:18px; bottom:18px; z-index:1050; display:flex; flex-direction:column; gap:12px; }
.float-btn { width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-size:1.5rem; box-shadow:0 4px 14px rgba(0,0,0,.3); transition:transform .2s; }
.float-btn:hover { transform:scale(1.1); color:#fff; }
.float-wa { background:#25d366; } .float-call { background:var(--navy); }
.float-top { background:var(--gold); font-size:1.2rem; width:42px; height:42px; align-self:center; opacity:0; pointer-events:none; transition:opacity .3s; }
.float-top.show { opacity:1; pointer-events:auto; }


/* =====================================================
   UPGRADE LAYER - logo, hero, animations, UI polish
   ===================================================== */

/* ---- Page loader ---- */
#preloader { position:fixed; inset:0; z-index:3000; background:var(--navy); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; transition:opacity .6s, visibility .6s; }
#preloader.hide { opacity:0; visibility:hidden; }
#preloader img { animation:spin 3s linear infinite; }
#preloader span { color:#fff; font-family:'Playfair Display',serif; letter-spacing:4px; font-size:1.15rem; }
@keyframes spin { to { transform:rotate(360deg); } }

/* ---- Logo ---- */
.navbar-brand { gap:12px; }
.brand-logo { width:46px; height:46px; transition:width .3s, height .3s; }
.site-nav.scrolled .brand-logo { width:40px; height:40px; }
.brand-text { display:flex; flex-direction:column; line-height:1; }
.brand-name { font-family:'Playfair Display',serif; font-size:1.55rem; font-weight:700; color:#fff; letter-spacing:.3px; }
.brand-text small { font-family:'Poppins',sans-serif; font-size:.62rem; letter-spacing:3.6px; text-transform:uppercase; color:var(--gold); margin-top:4px; }
.footer-logo { display:inline-flex; align-items:center; gap:12px; }

/* ---- Menu hover underline ---- */
@media (min-width:992px) {
  .site-nav .nav-link { position:relative; }
  .site-nav .nav-link::before { content:""; position:absolute; left:14px; right:14px; bottom:2px; height:2px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .3s; }
  .site-nav .nav-link:hover::before, .site-nav .nav-link.active::before { transform:scaleX(1); }
  .site-nav.scrolled { backdrop-filter:blur(8px); background:rgba(11,35,64,.96); }
}

/* ---- Hero: Ken Burns background, staggered text ---- */
.hero .carousel-item { background:none; }
.hero-bg { position:absolute; inset:0; background-size:cover; background-position:center; background-color:var(--navy); }
.carousel-item.active .hero-bg { animation:kenburns 9s ease-out forwards; }
@keyframes kenburns { from { transform:scale(1.15); } to { transform:scale(1); } }
.hero-shade { background:linear-gradient(90deg, rgba(7,24,45,.82) 0%, rgba(7,24,45,.42) 55%, rgba(7,24,45,.15) 100%), linear-gradient(180deg, rgba(7,24,45,.6) 0%, transparent 28%); }
.hero-content { align-items:flex-start; }
.hero-btns { display:flex; flex-wrap:wrap; gap:14px; margin-bottom:34px; }
.hero-btns .btn { padding:13px 32px; }
.hero-trust { list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:10px 28px; font-size:.9rem; color:#e9eef5; }
.hero-trust i { color:var(--gold); margin-right:6px; }
.carousel-item.active .hero-content > * { animation:fadeUp .9s cubic-bezier(.2,.7,.2,1) both; }
.carousel-item.active .hero-content > *:nth-child(1) { animation-delay:.15s; }
.carousel-item.active .hero-content > *:nth-child(2) { animation-delay:.35s; }
.carousel-item.active .hero-content > *:nth-child(3) { animation-delay:.55s; }
.carousel-item.active .hero-content > *:nth-child(4) { animation-delay:.75s; }
.carousel-item.active .hero-content > *:nth-child(5) { animation-delay:.95s; }
@keyframes fadeUp { from { opacity:0; transform:translateY(34px); } to { opacity:1; transform:none; } }
.scroll-down { display:none; position:absolute; left:40px; bottom:110px; z-index:5; width:26px; height:44px; border:2px solid rgba(255,255,255,.7); border-radius:14px; }
@media (min-width:992px) { .scroll-down { display:block; } }
.scroll-down span { position:absolute; left:50%; top:8px; width:4px; height:8px; margin-left:-2px; background:var(--gold); border-radius:2px; animation:wheel 1.6s infinite; }
@keyframes wheel { 0% { opacity:1; transform:translateY(0); } 100% { opacity:0; transform:translateY(16px); } }
.page-banner h1 { animation:fadeUp .9s both; }
.page-banner .breadcrumb { animation:fadeUp .9s .2s both; }

/* ---- Buttons: shine sweep ---- */
.btn-gold { position:relative; overflow:hidden; }
.btn-gold::after { content:""; position:absolute; top:0; left:-75%; width:50%; height:100%; background:linear-gradient(120deg, transparent, rgba(255,255,255,.45), transparent); transform:skewX(-20deg); transition:left .6s; }
.btn-gold:hover::after { left:130%; }
.float-wa { animation:pulse 2.2s infinite; }
@keyframes pulse { 0% { box-shadow:0 0 0 0 rgba(37,211,102,.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); } }

/* ---- Section headings + backgrounds ---- */
.title-line { display:flex; align-items:center; justify-content:center; gap:12px; width:auto; height:auto; background:none; margin:10px auto 16px; color:var(--gold); }
.title-line::before, .title-line::after { content:""; width:55px; height:2px; background:var(--gold); opacity:.8; }
.section-sand { background-color:var(--sand); background-image:radial-gradient(rgba(201,162,77,.2) 1.2px, transparent 1.2px); background-size:26px 26px; }
.bar-card { border-radius:4px; }
.counter-strip { background:linear-gradient(135deg, #0b2340, #14416b); }

/* ---- Marquee strip ---- */
.marquee { background:var(--sand); border-bottom:1px solid #e7e0d3; overflow:hidden; white-space:nowrap; padding:18px 0; margin-top:0; }
.marquee-track { display:inline-flex; gap:46px; padding-right:46px; animation:marquee 34s linear infinite; }
.marquee:hover .marquee-track { animation-play-state:paused; }
.marquee-track span { font-family:'Playfair Display',serif; font-size:2rem; font-weight:600; color:var(--navy); display:inline-flex; align-items:center; gap:46px; }
.marquee-track span::after { content:"\2726"; color:var(--gold); font-size:1.1rem; }
@keyframes marquee { to { transform:translateX(-50%); } }

/* ---- Mosaic zoom ---- */
.mosaic { background:none; }
.mosaic-bg { position:absolute; inset:0; background-size:cover; background-position:center; background-color:#9eacba; transition:transform .8s; }
.mosaic:hover .mosaic-bg { transform:scale(1.1); }
.mosaic-cap { transition:transform .4s; } .mosaic:hover .mosaic-cap { transform:translateY(-6px); }

/* ---- Package cards ---- */
.pkg-img { overflow:hidden; background:none; }
.pkg-bg { position:absolute; inset:0; background-size:cover; background-position:center; background-color:#a8b5c2; transition:transform .8s; }
.pkg-card:hover .pkg-bg { transform:scale(1.1); }
.pkg-img::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 55%, rgba(7,24,45,.55)); }
.pkg-badge, .pkg-cat, .pkg-wish { z-index:2; }
.pkg-wish { position:absolute; top:12px; right:12px; width:36px; height:36px; border-radius:50%; border:0; background:rgba(255,255,255,.92); color:var(--navy); transition:all .25s; }
.pkg-wish:hover { background:var(--gold); color:#fff; } .pkg-wish.on { background:#e5484d; color:#fff; }
.pkg-card .card-title { position:relative; padding-bottom:10px; }
.pkg-card .card-title::after { content:""; position:absolute; left:0; bottom:0; width:36px; height:2px; background:var(--gold); transition:width .4s; }
.pkg-card:hover .card-title::after { width:84px; }

/* ---- Info boxes + steps ---- */
.info-box { border-top:3px solid transparent; }
.info-box:hover { border-top-color:var(--gold); }
.info-box > i { display:inline-flex; width:62px; height:62px; align-items:center; justify-content:center; background:rgba(201,162,77,.14); border-radius:50%; font-size:1.7rem; transition:all .3s; }
.info-box:hover > i { background:var(--gold); color:#fff; }
.step i { display:table; margin:-14px auto 8px; background:#fff; padding:0 10px; position:relative; z-index:1; }
@media (min-width:992px) {
  .step::after { content:""; position:absolute; top:76px; left:62%; width:76%; border-top:2px dashed rgba(201,162,77,.55); }
  .col-lg-3:last-child .step::after { display:none; }
}

/* ---- Footer ---- */
.f-links a { display:inline-block; transition:padding .25s, color .25s; } .f-links a:hover { padding-left:6px; }

@media (prefers-reduced-motion:reduce) { * { animation:none !important; transition:none !important; } }


/* =====================================================
   v4 - typography + modern soft UI
   ===================================================== */
body { font-family:'Poppins',sans-serif; font-size:15.5px; line-height:1.85; color:#4b5565; }
h1, h2, h3, h4 { font-family:'Playfair Display',serif; letter-spacing:-.2px; }
h5, h6 { font-family:'Poppins',sans-serif; }

/* script style for small headings */
.eyebrow { font-family:'Dancing Script',cursive; font-size:1.65rem; text-transform:none; letter-spacing:.5px; font-weight:600; color:var(--gold-dark); margin-bottom:0; line-height:1.3; }
.hero-kicker { font-family:'Dancing Script',cursive; font-size:2rem; text-transform:none; letter-spacing:1px; font-weight:600; }

/* sizes tuned for the new fonts */
.section { padding:100px 0; }
.section-title { font-size:clamp(1.8rem,3.6vw,2.6rem); line-height:1.25; }
.hero h1 { font-size:clamp(2.3rem,5.4vw,4.2rem); line-height:1.12; }
.hero-sub { font-size:1.1rem; font-weight:300; }
.page-banner h1 { font-size:clamp(2.1rem,4.6vw,3.4rem); }
.cta h2, .offer h2 { font-size:clamp(1.8rem,3.6vw,2.7rem); line-height:1.25; }
.brand-name { font-size:1.3rem; letter-spacing:0; }
.brand-text small { font-size:.58rem; letter-spacing:3px; }
.site-nav .nav-link { font-size:.9rem; letter-spacing:.3px; }
.pkg-card .card-title { font-size:1.45rem; }
.pkg-card .card-text { font-size:.88rem; color:#5a6472; }
.mosaic-cap h4 { font-size:1.6rem; }
.counter-strip h3 { font-size:2.6rem; }
.marquee-track span { font-size:1.7rem; }
.step-no { font-size:4rem; }
.info-box h5 { font-size:1.05rem; }
.testi p { font-size:1.1rem; }

/* pill buttons */
.btn { border-radius:50px; padding:11px 30px; font-weight:500; font-size:.92rem; }
.btn-lg { padding:13px 34px; font-size:1rem; }
.btn-sm { padding:8px 20px; }

/* rounded cards + soft shadows */
.pkg-card, .info-box, .type-box, .enquiry-form, .map-box, .faq .accordion-item, .ai-big, .ai-small, .why-img, .modal-content, .modal-img, .mosaic, .intro-photo, .dest-photo { border-radius:16px; }
.bar-card { border-radius:18px; border-top:0; padding:30px; }
.pkg-card { overflow:hidden; box-shadow:0 8px 26px rgba(11,35,64,.08) !important; }
.info-box { box-shadow:0 4px 18px rgba(11,35,64,.05); }
.pkg-badge, .pkg-cat { border-radius:30px; }
.form-control, .form-select { border-radius:10px; padding:12px 16px; }
.dropdown-menu { border-radius:12px; border-top:0; padding:10px; box-shadow:0 14px 34px rgba(0,0,0,.18) !important; }
.dropdown-item { border-radius:8px; }
.accordion-button { border-radius:16px !important; }
.faq .accordion-item { overflow:hidden; }

/* hero arrows */
.hero-arrow { display:none; position:absolute; top:50%; bottom:auto; width:50px; height:50px; margin-top:-25px; border-radius:50%; border:1px solid rgba(255,255,255,.5); background:rgba(255,255,255,.08); backdrop-filter:blur(4px); color:#fff; opacity:1; z-index:6; align-items:center; justify-content:center; font-size:1.2rem; transition:all .3s; }
@media (min-width:1200px) { .hero-arrow { display:flex; } }
.hero-arrow:hover { background:var(--gold); border-color:var(--gold); color:#fff; }
.carousel-control-prev.hero-arrow { left:28px; } .carousel-control-next.hero-arrow { right:28px; left:auto; }

/* floating badge on photos */
.about-imgs, .why-wrap { position:relative; }
.float-badge { position:absolute; top:30px; left:-12px; z-index:3; background:#fff; border-radius:14px; padding:14px 22px 14px 16px; display:flex; align-items:center; gap:12px; box-shadow:0 14px 34px rgba(11,35,64,.2); animation:floaty 4s ease-in-out infinite; }
.float-badge.badge-b { top:auto; bottom:30px; left:auto; right:-12px; }
.float-badge i { width:46px; height:46px; border-radius:50%; background:var(--gold); color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.3rem; }
.float-badge strong { display:block; color:var(--navy); line-height:1.2; font-size:1.1rem; font-family:'Playfair Display',serif; }
.float-badge span { font-size:.8rem; color:#6b7685; }
@keyframes floaty { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-10px); } }
@media (max-width:575px) { .float-badge { left:8px; } .float-badge.badge-b { right:8px; } }

/* gallery */
.gal { display:block; position:relative; height:240px; overflow:hidden; border-radius:16px; }
.gal-bg { position:absolute; inset:0; background-size:cover; background-position:center; background-color:#9eacba; transition:transform .8s; }
.gal:hover .gal-bg { transform:scale(1.12); }
.gal::after { content:""; position:absolute; inset:0; background:rgba(11,35,64,.6); opacity:0; transition:opacity .4s; }
.gal:hover::after { opacity:1; }
.gal i { position:absolute; z-index:2; top:50%; left:50%; transform:translate(-50%,-50%) scale(.5); color:#fff; font-size:2rem; opacity:0; transition:all .4s; }
.gal span { position:absolute; z-index:2; left:18px; bottom:14px; color:#fff; font-weight:500; opacity:0; transform:translateY(10px); transition:all .4s; }
.gal:hover i { opacity:1; transform:translate(-50%,-50%) scale(1); }
.gal:hover span { opacity:1; transform:none; }

/* testimonials */
.testi { background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); border-radius:20px; padding:42px 36px; }
.avatar { width:58px; height:58px; border-radius:50%; background:var(--gold); color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.6rem; margin:18px auto 8px; }

/* top bar social */
.top-social a { color:#cfd7e2; margin-left:10px; } .top-social a:hover { color:var(--gold); }


/* =====================================================
   v5 - stylish background word behind headings
   ===================================================== */
.section-head { position:relative; }
.section-head > * { position:relative; z-index:1; }
.section-head[data-bg]::before {
  content:attr(data-bg);
  position:absolute; left:50%; top:50%;
  transform:translate(-50%,-58%);
  font-family:'Dancing Script',cursive; font-weight:700;
  font-size:clamp(4rem,12vw,9.5rem); line-height:1; white-space:nowrap;
  color:rgba(201,162,77,.16);
  pointer-events:none; user-select:none; z-index:0;
}
/* left aligned headings (about, why us, contact) */
.section-title[data-bg] { position:relative; isolation:isolate; }
.section-title[data-bg]::before {
  content:attr(data-bg);
  position:absolute; left:-6px; top:-.75em;
  font-family:'Dancing Script',cursive; font-weight:700;
  font-size:clamp(3.8rem,9vw,7rem); line-height:1; white-space:nowrap;
  color:rgba(201,162,77,.16);
  pointer-events:none; user-select:none; z-index:-1;
}
/* on dark sections the word is white and very faint */
.testi-sec .section-head[data-bg]::before { color:rgba(255,255,255,.07); }
@media (max-width:575px) {
  .section-head[data-bg]::before { font-size:4rem; }
  .section-title[data-bg]::before { font-size:3.6rem; }
}
