/* ==========================================================================
   Gwalior Travel House — stylesheet
   Modern colorful theme
   ========================================================================== */
:root{
  --ivory:#FFFFFF;
  --ivory-deep:#F4F1FF;
  --indigo:#161B33;
  --indigo-deep:#0B0E22;
  --terracotta:#FF4B2B;
  --terracotta-deep:#E5330F;
  --gold:#FFC93C;
  --gold-soft:#FFE8A3;
  --forest:#0EC9B0;
  --violet:#7C5CFF;
  --blue:#2451FF;
  --pink:#FF4D9D;
  --ink:#12142A;
  --ink-soft:#5C6178;
  --line:rgba(18,20,42,0.10);
  --shadow:0 24px 48px -22px rgba(18,20,42,0.28);
  --shadow-sm:0 10px 24px -12px rgba(18,20,42,0.22);
  --radius-arch:24px;

  --display:'Google Sans', 'Product Sans', 'Roboto', 'Segoe UI', sans-serif;
  --body:'Google Sans', 'Product Sans', 'Roboto', 'Segoe UI', sans-serif;
  --mono:'Google Sans', 'Product Sans', 'Roboto', 'Segoe UI', sans-serif;

  /* Brand gradients — blue (primary) + orange (accent) */
  --grad-blue: linear-gradient(135deg, #0B1F63 0%, #2451FF 100%);
  --grad-orange: linear-gradient(135deg, var(--terracotta) 0%, var(--gold) 100%);
  --grad-title: linear-gradient(90deg, #FFE8A3 0%, #FFC93C 45%, #FF7A45 100%);
}

*{box-sizing:border-box;}

html{scroll-behavior:smooth;}

body{
  font-family:var(--body);
  color:var(--ink);
  background:var(--ivory);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4,.display{
  font-family:var(--display);
  font-weight:800;
  color:var(--indigo);
  letter-spacing:-0.02em;
}

.eyebrow{
  font-family:var(--mono);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.1em;
  font-size:0.76rem;
  color:var(--terracotta-deep);
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  background:linear-gradient(90deg, rgba(255,75,43,.12), rgba(255,201,60,.12));
  padding:.35rem .85rem .35rem .6rem;
  border-radius:999px;
}
.eyebrow::before{
  content:"";
  width:8px;height:8px;
  border-radius:50%;
  background:linear-gradient(135deg, var(--terracotta), var(--gold));
  display:inline-block;
}

a{color:var(--terracotta-deep); text-decoration:none;}
a:hover{color:var(--terracotta);}

::selection{background:var(--gold-soft); color:var(--indigo-deep);}

:focus-visible{
  outline:3px solid var(--gold);
  outline-offset:3px;
}

.btn{
  font-family:var(--mono);
  font-size:.9rem;
  font-weight:800;
  letter-spacing:.01em;
  border-radius:999px;
  padding:.9rem 1.9rem;
  border:1px solid transparent;
  transition:transform .18s ease, box-shadow .25s ease, background .2s ease, color .2s ease, border-color .2s ease;
}
.btn:hover{transform:translateY(-3px);}
.btn-terracotta{
  background:linear-gradient(135deg, var(--terracotta) 0%, var(--gold) 130%);
  color:var(--ivory); border-color:transparent;
  box-shadow:0 14px 28px -12px rgba(255,75,43,.55);
}
.btn-terracotta:hover{
  box-shadow:0 18px 34px -12px rgba(255,75,43,.7);
  color:var(--ivory);
}
.btn-outline-ivory{background:rgba(255,255,255,0.08); color:var(--ivory); border-color:rgba(255,255,255,0.55); backdrop-filter:blur(6px);}
.btn-outline-ivory:hover{background:rgba(255,255,255,0.18); color:var(--ivory);}
.btn-outline-indigo{background:transparent; color:var(--indigo); border-color:var(--indigo);}
.btn-outline-indigo:hover{background:var(--indigo); color:var(--ivory); border-color:var(--indigo);}

/* ==========================================================================
   Top utility bar + navbar
   ========================================================================== */
.topbar{
  background:var(--grad-blue);
  color:var(--ivory-deep);
  font-family:var(--mono);
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.01em;
}
.topbar a{color:var(--ivory-deep); opacity:.9;}
.topbar a:hover{color:var(--gold); opacity:1;}
.topbar .divider{opacity:.35; margin:0 .6rem;}
.topbar .social-link{
  display:inline-flex; align-items:center; justify-content:center;
  width:26px;height:26px;border-radius:50%;
  border:1px solid rgba(246,240,226,0.3);
  margin-left:.4rem;
}
.topbar .social-link:hover{border-color:var(--gold); color:var(--gold);}

.site-header{
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  position:sticky; top:0; z-index:1000;
}
.brand{
  display:flex; align-items:center; gap:.65rem;
  font-family:var(--display);
  font-weight:700;
  font-size:1.28rem;
  color:var(--indigo);
}
.brand small{
  display:block;
  font-family:var(--mono);
  font-weight:600;
  font-size:.62rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--terracotta);
}
.brand-mark{
  width:44px;height:44px;flex:none;
  object-fit:contain;
}

.main-nav .nav-link{
  font-family:var(--mono);
  font-size:.86rem;
  font-weight:600;
  letter-spacing:.01em;
  color:var(--ink);
  padding:1.55rem .95rem;
  position:relative;
  transition:color .2s ease;
}
.main-nav .nav-link::after{
  content:"";
  position:absolute; left:.95rem; right:.95rem; bottom:1.15rem;
  height:3px; border-radius:3px;
  background:linear-gradient(90deg, var(--terracotta), var(--gold));
  transform:scaleX(0); transform-origin:left;
  transition:transform .25s ease;
}
.main-nav .nav-link:hover{color:var(--terracotta-deep);}
.main-nav .nav-link:hover::after,
.main-nav .nav-link.active::after{transform:scaleX(1);}
.main-nav .nav-link.active{color:var(--terracotta-deep); font-weight:700;}

.navbar-toggler{border:1px solid var(--line);}

/* ==========================================================================
   Frame motif — rounded, modern photo frames (used across pages)
   ========================================================================== */
.arch-frame{
  position:relative;
  overflow:hidden;
  border-radius:var(--radius-arch);
  isolation:isolate;
  box-shadow:var(--shadow);
}
.arch-frame img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .5s ease;
}
.arch-frame:hover img{transform:scale(1.04);}
.arch-frame::after{
  content:"";
  position:absolute; inset:0;
  border-radius:inherit;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,0.5);
  pointer-events:none;
}
.arch-frame.no-inset::after{ box-shadow:none; }

.arch-badge{
  width:64px; height:64px;
  border-radius:18px;
  background:linear-gradient(135deg, var(--terracotta), var(--gold));
  display:flex; align-items:center; justify-content:center;
  color:var(--ivory);
  box-shadow:var(--shadow-sm);
}

/* Dotted route line — used to connect stops on the Travel Circuits page */
.route-line{
  position:relative;
}
.route-line::before{
  content:"";
  position:absolute;
  left:23px; top:12px; bottom:12px; width:0;
  border-left:3px dotted var(--gold);
  z-index:0;
}
.route-stop{
  position:relative; z-index:1;
  display:flex; gap:1.1rem;
}
.route-stop .stop-marker{
  flex:none;
  width:46px;height:46px;
  border-radius:14px;
  background:linear-gradient(135deg, var(--terracotta), var(--pink));
  color:var(--ivory);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--mono); font-weight:700; font-size:.9rem;
  border:3px solid var(--ivory);
  box-shadow:var(--shadow-sm);
}

/* ==========================================================================
   Hero
   ========================================================================== */
.hero{
  position:relative;
  min-height:86vh;
  display:flex; align-items:flex-end;
  color:var(--ivory);
  background:var(--indigo);
  overflow:hidden;
}
.hero .hero-media{
  position:absolute; inset:0;
}
.hero .hero-media img{
  width:100%; height:100%; object-fit:cover;
  opacity:.66;
}
.hero .hero-media::after{
  content:"";
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(11,14,34,.2) 0%, rgba(11,14,34,.48) 55%, rgba(11,14,34,.96) 100%),
    linear-gradient(115deg, rgba(255,75,43,.35) 0%, rgba(124,92,255,0) 42%),
    linear-gradient(295deg, rgba(36,81,255,.3) 0%, rgba(36,81,255,0) 38%);
}
.hero-content{
  position:relative; z-index:2;
  padding-bottom:4.5rem;
}
.hero-kicker{
  font-family:var(--mono);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.8rem;
  color:var(--indigo-deep);
  background:linear-gradient(90deg, var(--gold), #FFD37A);
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.5rem 1.1rem;
  border-radius:999px;
  box-shadow:0 12px 24px -10px rgba(255,201,60,.55);
}
.hero h1{
  color:var(--ivory);
  font-weight:900;
  font-size:clamp(2.6rem, 6vw, 4.9rem);
  line-height:1.02;
  letter-spacing:-0.03em;
  max-width:17ch;
}
.hero p.lead{
  color:var(--ivory-deep);
  max-width:46ch;
  font-size:1.12rem;
  font-weight:500;
}

.hero-sm{
  min-height:50vh;
}

/* ==========================================================================
   Hero carousel (Home page) — clear photo, boxed gradient panel, no dark veil
   ========================================================================== */
.hero-carousel{
  position:relative;
  min-height:78vh;
  color:var(--ivory);
  background:var(--indigo-deep);
}
.hero-carousel .carousel-inner,
.hero-carousel .carousel-item{
  min-height:78vh;
}
.hero-carousel .carousel-item{
  position:relative;
  display:flex;
  align-items:center;
}
.hero-carousel .slide-media{
  position:absolute; inset:0;
}
.hero-carousel .slide-media img{
  width:100%; height:100%; object-fit:cover;
  min-height:78vh;
}
/* Keep the photo clear — only a very light grounding shade at the extreme left
   so the panel edge doesn't fight the image, no heavy overlay across the shot */
.hero-carousel .slide-media::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(11,31,99,.55) 0%, rgba(11,31,99,.15) 34%, rgba(11,31,99,0) 55%);
}
.hero-carousel .slide-content{
  position:relative; z-index:2;
  width:100%;
  padding-top:2rem;
  padding-bottom:2rem;
}
.hero-carousel .carousel-control-prev,
.hero-carousel .carousel-control-next{
  width:4.5rem; opacity:0; transition:opacity .2s ease, transform .2s ease;
}
.hero-carousel:hover .carousel-control-prev,
.hero-carousel:hover .carousel-control-next{opacity:1;}
.hero-carousel .carousel-control-prev-icon,
.hero-carousel .carousel-control-next-icon{
  width:2.6rem; height:2.6rem;
  border:1.5px solid rgba(255,255,255,.55);
  border-radius:50%;
  padding:.55rem;
  background-color:rgba(255,255,255,.14);
  backdrop-filter:blur(8px);
  background-size:1.15rem;
  transition:background-color .2s ease, transform .2s ease;
}
.hero-carousel .carousel-control-prev:hover .carousel-control-prev-icon,
.hero-carousel .carousel-control-next:hover .carousel-control-next-icon{
  background-color:var(--terracotta);
  border-color:var(--terracotta);
  transform:scale(1.08);
}
.hero-carousel .carousel-indicators{
  bottom:1.1rem;
  margin-bottom:0;
  justify-content:flex-start;
  padding-left:calc((100% - 1140px)/2 + .75rem);
}
@media (max-width:1199.98px){
  .hero-carousel .carousel-indicators{padding-left:2rem;}
}
.hero-carousel .carousel-indicators [data-bs-target]{
  width:2.6rem; height:5px;
  border:none; border-radius:999px;
  background:rgba(246,240,226,.4);
  opacity:1; margin:0 .35rem;
  transition:background .2s ease, width .25s ease, box-shadow .2s ease;
}
.hero-carousel .carousel-indicators .active{
  background:linear-gradient(90deg, var(--terracotta), var(--gold));
  width:3.4rem;
  box-shadow:0 6px 18px -4px rgba(255,75,43,.7);
}

/* ---- The blue gradient title panel with a torn paper edge, left-aligned ---- */
.slide-panel{
  max-width:560px;
  background:var(--grad-blue);
  padding:2.4rem 2.2rem 3.2rem;
  border-radius:20px 20px 0 0;
  box-shadow:0 30px 60px -20px rgba(11,31,99,.55);
  clip-path:polygon(
    0 0, 100% 0, 100% 90%,
    95% 93%, 90% 89%, 85% 94%, 80% 90%, 75% 95%,
    70% 90%, 65% 94%, 60% 89%, 55% 95%, 50% 90%,
    45% 94%, 40% 89%, 35% 95%, 30% 90%, 25% 94%,
    20% 89%, 15% 95%, 10% 90%, 5% 94%, 0 91%
  );
}
.slide-panel .hero-kicker{
  font-family:var(--mono);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.78rem;
  color:var(--indigo-deep);
  background:var(--grad-orange);
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.5rem 1.1rem;
  border-radius:999px;
  box-shadow:0 12px 24px -10px rgba(255,201,60,.55);
}
.slide-panel h1{
  color:transparent;
  background:var(--grad-title);
  -webkit-background-clip:text;
  background-clip:text;
  font-weight:900;
  font-size:clamp(2.6rem, 4.4vw, 4rem);
  line-height:1.04;
  letter-spacing:-0.03em;
  margin:1rem 0 1.1rem;
}
.slide-panel p.lead{
  color:var(--ivory-deep);
  font-size:1.05rem;
  font-weight:500;
  margin-bottom:1.6rem;
}
@media (max-width:767.98px){
  .slide-panel{max-width:100%; padding:1.9rem 1.5rem 2.6rem;
     position: absolute;
        top: 60px; 
      
  }
  .slide-panel h1{font-size:clamp(2.1rem, 8vw, 2.8rem);}
}

/* ---- Floating destination search bar, overlapping the hero bottom edge ---- */
.hero-search-wrap{
  position:relative;
  z-index:5;
  margin-top:-2.6rem;
  margin-bottom:1.8rem;
}
.hero-search{
  background:var(--ivory);
  border-radius:16px;
  box-shadow:var(--shadow);
  padding:.6rem .6rem .6rem 1.3rem;
  display:flex; align-items:center; gap:.8rem;
  max-width:760px;
}
.hero-search svg{flex:none; color:var(--terracotta-deep);}
.hero-search input{
  flex:1 1 auto; min-width:0;
  border:none; outline:none;
  font-family:var(--body); font-size:1rem;
  color:var(--ink); background:transparent;
}
.hero-search button{
  flex:none;
  font-family:var(--mono); font-weight:800; font-size:.88rem;
  border:none; border-radius:12px;
  padding:.85rem 1.7rem;
  color:var(--ivory);
  background:var(--grad-orange);
  box-shadow:0 12px 24px -10px rgba(255,75,43,.55);
  transition:transform .18s ease;
}
.hero-search button:hover{transform:translateY(-2px);}
@media (max-width:575.98px){
  .hero-search{flex-wrap:wrap; padding:1rem;}
  .hero-search input{width:100%; order:1;}
  .hero-search svg{order:0;}
  .hero-search button{order:2; width:100%;}
}

/* Notification ticker — editable "latest offers & updates" strip */
.notify-bar{
  background:linear-gradient(90deg, var(--indigo-deep), var(--indigo));
  border-bottom:1px solid rgba(255,201,60,.3);
  display:flex; align-items:stretch;
  overflow:hidden;
}
.notify-label{
  flex:none;
  display:flex; align-items:center; gap:.45rem;
  background:linear-gradient(135deg, var(--terracotta), var(--pink));
  color:var(--ivory);
  font-family:var(--mono);
  font-weight:700;
  font-size:.74rem; letter-spacing:.06em; text-transform:uppercase;
  padding:.65rem 1.1rem;
  white-space:nowrap;
  z-index:2;
}
.notify-viewport{
  overflow:hidden;
  display:flex;
  align-items:center;
  flex:1 1 auto;
  min-width:0;
}
.notify-track{
  display:flex;
  align-items:center;
  white-space:nowrap;
  animation:marquee 32s linear infinite;
  will-change:transform;
}
.notify-bar:hover .notify-track,
.notify-bar:focus-within .notify-track{animation-play-state:paused;}
.notify-track .notify-group{
  display:flex; align-items:center;
}
.notify-track span.item{
  font-family:var(--mono);
  font-size:.82rem;
  color:var(--gold-soft);
  padding:.65rem 0;
}
.notify-track .sep{
  color:var(--terracotta);
  margin:0 1.6rem;
}
@keyframes marquee{
  0%{transform:translateX(0);}
  100%{transform:translateX(-50%);}
}
@media (prefers-reduced-motion: reduce){
  .notify-track{animation:none;}
  .notify-viewport{overflow-x:auto;}
}

/* Notification / trust strip */
.trust-strip{
  background:var(--gold-soft);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  font-family:var(--mono);
  font-size:.8rem;
  font-weight:600;
  color:var(--indigo-deep);
}
.trust-strip .item{display:flex; align-items:center; gap:.5rem;}
.trust-strip svg{flex:none;}

/* ==========================================================================
   Sections
   ========================================================================== */
section{padding:5.5rem 0;}
.section-tight{padding:3.5rem 0;}
.bg-indigo{background:linear-gradient(135deg, var(--indigo) 0%, var(--indigo-deep) 100%); color:var(--ivory-deep);}
.bg-indigo h2, .bg-indigo h3{color:var(--ivory);}
.bg-ivory-deep{background:var(--ivory-deep);}

.section-head{max-width:56ch; margin-bottom:2.75rem;}
.section-head h2{font-size:clamp(1.9rem,3.4vw,2.6rem); margin-top:.6rem;}

/* Service cards */
.service-card{
  background:var(--ivory);
  border:1px solid var(--line);
  border-radius:20px;
  padding:2.1rem 1.8rem;
  height:100%;
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.service-card:hover{
  transform:translateY(-8px);
  box-shadow:var(--shadow);
  border-color:transparent;
}
.service-card .icon{
  width:52px;height:52px;
  padding:12px;
  border-radius:16px;
  color:var(--ivory);
  background:linear-gradient(135deg, var(--terracotta), var(--gold));
  margin-bottom:1.1rem;
  box-shadow:var(--shadow-sm);
}
.service-card:nth-of-type(4n+2) .icon{background:linear-gradient(135deg, var(--forest), #4FD8C4);}
.service-card:nth-of-type(4n+3) .icon{background:linear-gradient(135deg, var(--violet), var(--pink));}
.service-card:nth-of-type(4n+0) .icon{background:linear-gradient(135deg, var(--pink), var(--gold));}
.service-card h3{font-size:1.15rem; margin-bottom:.6rem;}
.service-card p{color:var(--ink-soft); font-size:.94rem; margin-bottom:0;}

/* Circuit / destination cards */
.circuit-card{
  background:var(--ivory);
  border:1px solid var(--line);
  border-radius:22px;
  overflow:hidden;
  height:100%;
  transition:transform .22s ease, box-shadow .22s ease;
}
.circuit-card:hover{transform:translateY(-8px); box-shadow:var(--shadow);}
.circuit-card .photo{
  aspect-ratio:4/3; overflow:hidden; position:relative;
}
.circuit-card .photo img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .5s ease;
}
.circuit-card:hover .photo img{transform:scale(1.06);}
.circuit-card .duration{
  position:absolute; top:.85rem; left:.85rem;
  background:linear-gradient(135deg, var(--gold), #FFD37A);
  color:var(--indigo-deep);
  font-family:var(--mono);
  font-weight:700;
  font-size:.72rem; letter-spacing:.02em;
  padding:.38rem .75rem;
  border-radius:999px;
  box-shadow:var(--shadow-sm);
}
.circuit-card .body{padding:1.4rem 1.5rem 1.6rem;}
.circuit-card h3{font-size:1.18rem; margin-bottom:.4rem;}
.circuit-card .tag{
  font-family:var(--mono); font-weight:700; font-size:.72rem; letter-spacing:.02em;
  color:var(--forest); text-transform:uppercase;
  background:rgba(14,168,148,.12);
  padding:.28rem .7rem;
  border-radius:999px;
  display:inline-block;
  margin-bottom:.5rem;
}
.circuit-card:nth-of-type(3n+2) .tag{color:var(--violet); background:rgba(124,92,255,.12);}
.circuit-card:nth-of-type(3n+3) .tag{color:var(--terracotta-deep); background:rgba(255,75,43,.12);}

/* Stat strip */
.stat{
  text-align:center; padding:1.4rem 1rem;
  border-left:1px solid rgba(255,255,255,.14);
}
.stat:first-child{border-left:none;}
.stat .num{
  font-family:var(--display); font-weight:700;
  font-size:2.6rem;
  line-height:1;
  background:linear-gradient(120deg, var(--gold), var(--terracotta));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.stat:nth-child(4n+2) .num{background:linear-gradient(120deg, #4FD8C4, var(--forest)); -webkit-background-clip:text; background-clip:text;}
.stat:nth-child(4n+3) .num{background:linear-gradient(120deg, var(--pink), var(--violet)); -webkit-background-clip:text; background-clip:text;}
.stat:nth-child(4n+0) .num{background:linear-gradient(120deg, var(--gold), var(--pink)); -webkit-background-clip:text; background-clip:text;}
.stat .label{
  font-family:var(--mono); font-size:.76rem; font-weight:600;
  letter-spacing:.04em; text-transform:uppercase;
  color:var(--ivory-deep); margin-top:.5rem; opacity:.85;
}

/* Destination chip cloud (About MP) */
.chip-grid{display:flex; flex-wrap:wrap; gap:.6rem;}
.chip{
  font-family:var(--mono); font-weight:600; font-size:.84rem;
  border:1px solid var(--line);
  border-radius:999px;
  padding:.6rem 1.1rem;
  background:var(--ivory);
  transition:all .2s ease;
  display:inline-flex; align-items:center; gap:.5rem;
}
.chip:hover{border-color:var(--terracotta); color:var(--terracotta-deep); transform:translateY(-3px); box-shadow:var(--shadow-sm);}
.chip .dot{width:7px;height:7px;border-radius:50%;background:linear-gradient(135deg, var(--terracotta), var(--gold));}
.chip:nth-child(4n+2) .dot{background:linear-gradient(135deg, var(--forest), #4FD8C4);}
.chip:nth-child(4n+3) .dot{background:linear-gradient(135deg, var(--violet), var(--pink));}
.chip:nth-child(4n+0) .dot{background:linear-gradient(135deg, var(--pink), var(--gold));}

/* MP fact grid */
.fact{
  border-top:1px solid var(--line);
  padding:1.1rem 0;
  display:flex; justify-content:space-between; gap:1rem;
}
.fact .k{font-family:var(--mono); font-size:.8rem; font-weight:600; letter-spacing:.02em; text-transform:uppercase; color:var(--ink-soft);}
.fact .v{font-family:var(--display); font-weight:600; color:var(--indigo); text-align:right;}

/* Gallery */
.gallery-item{
  overflow:hidden; position:relative; cursor:pointer;
  aspect-ratio:1/1;
  border-radius:18px;
}
.gallery-item img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .5s ease;
}
.gallery-item:hover img{transform:scale(1.08);}
.gallery-item .cap{
  position:absolute; left:0; right:0; bottom:0;
  padding:.9rem 1.1rem;
  background:linear-gradient(0deg, rgba(12,15,34,.85), rgba(12,15,34,0));
  color:var(--ivory);
  font-family:var(--mono); font-weight:600; font-size:.76rem; letter-spacing:.02em;
  opacity:0; transform:translateY(6px);
  transition:all .25s ease;
}
.gallery-item:hover .cap{opacity:1; transform:translateY(0);}

/* Lightbox */
.lightbox{
  position:fixed; inset:0; z-index:2000;
  background:rgba(12,15,34,.94);
  display:none; align-items:center; justify-content:center;
  padding:2rem;
}
.lightbox.open{display:flex;}
.lightbox img{max-width:min(90vw,1100px); max-height:85vh; object-fit:contain; border-radius:16px; box-shadow:0 30px 60px rgba(0,0,0,.5);}
.lightbox .close-lb{
  position:absolute; top:1.5rem; right:1.7rem;
  color:var(--ivory); font-size:2rem; cursor:pointer; line-height:1;
  background:none; border:none;
}
.lightbox .cap{position:absolute; bottom:2rem; left:0; right:0; text-align:center; color:var(--gold-soft); font-family:var(--mono); font-size:.85rem;}

/* Testimonial / pull-quote */
.pull-quote{
  font-family:var(--display);
  font-size:1.5rem;
  color:var(--indigo);
  border-left:4px solid transparent;
  border-image:linear-gradient(180deg, var(--terracotta), var(--gold)) 1;
  padding-left:1.6rem;
  font-style:italic;
}

/* Forms */
.form-control, .form-select{
  background:var(--ivory);
  border:1px solid var(--line);
  border-radius:14px;
  padding:.8rem 1rem;
  font-family:var(--body);
}
.form-control:focus, .form-select:focus{
  border-color:var(--terracotta);
  box-shadow:0 0 0 4px rgba(255,75,43,.15);
}
label{font-family:var(--mono); font-size:.76rem; font-weight:700; letter-spacing:.03em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:.4rem; display:block;}

.contact-card{
  background:var(--ivory);
  border:1px solid var(--line);
  border-radius:20px;
  padding:1.9rem;

  transition:transform .22s ease, box-shadow .22s ease;
}
.contact-card:hover{transform:translateY(-6px); box-shadow:var(--shadow);}
.contact-card .icon{
  width:44px;height:44px; padding:10px;
  border-radius:14px;
  color:var(--ivory);
  background:linear-gradient(135deg, var(--terracotta), var(--gold));
  margin-bottom:.9rem;
}
.contact-card:nth-of-type(3n+2) .icon{background:linear-gradient(135deg, var(--forest), #4FD8C4);}
.contact-card:nth-of-type(3n+3) .icon{background:linear-gradient(135deg, var(--violet), var(--pink));}

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer{
  background:linear-gradient(160deg, var(--indigo-deep) 0%, var(--blue) 130%);
  color:var(--ivory-deep);
  padding:4.5rem 0 1.6rem;
  position:relative;
}
.site-footer::before{
  content:"";
  position:absolute; top:0; left:0; right:0; height:4px;
  background:linear-gradient(90deg, var(--terracotta), var(--gold), var(--forest), var(--violet), var(--pink));
}
.site-footer h4{
  color:var(--gold-soft); font-family:var(--mono);
  font-size:.8rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  margin-bottom:1.2rem;
}
.site-footer a{color:var(--ivory-deep); opacity:.85;}
.site-footer a:hover{color:var(--gold); opacity:1;}
.site-footer ul{list-style:none; padding:0; margin:0;}
.site-footer li{margin-bottom:.6rem; font-size:.92rem;}
.footer-brand{font-family:var(--display); font-size:1.4rem; color:var(--ivory); font-weight:700;}
.footer-bottom{
  border-top:1px solid rgba(246,240,226,.14);
  margin-top:3rem; padding-top:1.6rem;
  font-family:var(--mono); font-size:.76rem; letter-spacing:.01em; color:rgba(246,240,226,.6);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:.6rem;
}
.social-row a{
  display:inline-flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:50%;
  border:1px solid rgba(246,240,226,.25);
  margin-right:.5rem;
}
.social-row a:hover{border-color:var(--gold); color:var(--gold);}

/* Reveal on scroll (restrained, respects reduced motion) */
.reveal{opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1; transform:translateY(0);}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1; transform:none; transition:none;}
  html{scroll-behavior:auto;}
}

/* Graceful photo fallback */
.img-fallback{
  background:linear-gradient(135deg, var(--violet) 0%, var(--terracotta) 55%, var(--gold) 100%);
  display:flex; align-items:center; justify-content:center;
  min-height:180px;
}
.img-fallback::before{
  content:"";
  width:40%; aspect-ratio:1;
  background:rgba(255,255,255,0.35);
  -webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22><path d=%22M5 20V10 Q5 4 12 4 Q19 4 19 10 V20%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22/></svg>') center/60% no-repeat;
  mask:url('data:image/svg+xml;utf8,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22><path d=%22M5 20V10 Q5 4 12 4 Q19 4 19 10 V20%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22/></svg>') center/60% no-repeat;
}

/* Back to top */
.to-top{
  position:fixed; right:1.4rem; bottom:1.4rem; z-index:900;
  width:48px; height:48px; border-radius:50%;
  background:linear-gradient(135deg, var(--terracotta), var(--gold));
  color:var(--ivory);
  display:flex; align-items:center; justify-content:center;
  border:none; box-shadow:var(--shadow);
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:all .25s ease;
}
.to-top:hover{transform:translateY(-3px);}
.to-top.show{opacity:1; visibility:visible; transform:none;}

@media (max-width:991.98px){
  .main-nav .nav-link{padding:.7rem 0;}
  .main-nav .nav-link::after{left:0; right:auto; width:0; bottom:.1rem;}
  .main-nav .nav-link:hover::after,.main-nav .nav-link.active::after{width:28px;}
  .stat{border-left:none; border-top:1px solid rgba(255,255,255,.14);}
  .stat:first-child{border-top:none;}
}

/* ==========================================================================
   Floating contact button — WhatsApp / Call / Email
   ========================================================================== */
.contact-fab{
  position:fixed;
  right:1.15rem; bottom:1.3rem;
  z-index:970;
  display:flex; flex-direction:column; align-items:flex-end; gap:.7rem;
}
.fab-toggle{
  width:56px; height:56px; border-radius:50%;
  background:linear-gradient(135deg, var(--terracotta), var(--gold));
  color:var(--ivory); border:none;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 16px 30px -10px rgba(255,75,43,.55);
  position:relative;
  transition:transform .25s ease, box-shadow .25s ease;
}
.fab-toggle:hover{transform:translateY(-3px); box-shadow:0 20px 36px -10px rgba(255,75,43,.65);}
.fab-toggle svg{position:absolute; transition:opacity .25s ease, transform .3s ease;}
.fab-toggle .icon-close{opacity:0; transform:rotate(-40deg) scale(.7);}
.fab-toggle .icon-chat{opacity:1; transform:rotate(0) scale(1);}
.contact-fab.open .fab-toggle{background:linear-gradient(135deg, var(--indigo), var(--indigo-deep)); box-shadow:var(--shadow);}
.contact-fab.open .fab-toggle .icon-chat{opacity:0; transform:rotate(40deg) scale(.7);}
.contact-fab.open .fab-toggle .icon-close{opacity:1; transform:rotate(0) scale(1);}

.fab-options{
  display:flex; flex-direction:column; align-items:flex-end; gap:.65rem;
  opacity:0; visibility:hidden; transform:translateY(12px);
  transition:opacity .22s ease, transform .22s ease, visibility .22s;
  pointer-events:none;
}
.contact-fab.open .fab-options{opacity:1; visibility:visible; transform:translateY(0); pointer-events:auto;}
.fab-opt{
  width:48px; height:48px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:var(--ivory);
  box-shadow:var(--shadow-sm);
  transition:transform .2s ease;
}
.fab-opt:hover{transform:translateY(-3px) scale(1.05); color:var(--ivory);}
.fab-opt::after{
  content:attr(data-label);
  position:absolute;
  right:60px;
  background:var(--indigo-deep);
  color:var(--ivory);
  font-family:var(--mono); font-weight:600; font-size:.72rem;
  padding:.35rem .7rem; border-radius:8px;
  white-space:nowrap;
  opacity:0; transform:translateX(6px);
  transition:opacity .18s ease, transform .18s ease;
  pointer-events:none;
}
.fab-opt:hover::after{opacity:1; transform:translateX(0);}
.fab-whatsapp{background:#25D366;}
.fab-call{background:linear-gradient(135deg, var(--terracotta), var(--pink));}
.fab-mail{background:linear-gradient(135deg, var(--violet), #5B8DFF);}

@media (hover:none){
  .fab-opt::after{display:none;}
}

/* ==========================================================================
   Mobile quick navigation — fixed bottom bar, mobile only
   ========================================================================== */
.bottom-nav{
  display:none;
  position:fixed; left:0; right:0; bottom:0; z-index:950;
  background:rgba(255,255,255,.98);
  backdrop-filter:blur(10px);
  border-top:1px solid var(--line);
  box-shadow:0 -10px 26px -14px rgba(23,27,46,.22);
  padding:.4rem .3rem calc(.4rem + env(safe-area-inset-bottom));
}
.bottom-nav a{
  flex:1 1 0; min-width:0;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:.2rem;
  color:var(--ink-soft);
  font-family:var(--mono); font-weight:700; font-size:.62rem; letter-spacing:.01em;
  padding:.35rem .1rem;
  border-radius:14px;
  transition:color .2s ease, background .2s ease;
}
.bottom-nav a svg{width:20px; height:20px; flex:none;}
.bottom-nav a:hover{color:var(--terracotta-deep);}
.bottom-nav a.active{
  color:var(--terracotta-deep);
  background:linear-gradient(180deg, rgba(255,75,43,.14), rgba(255,201,60,.08));
}

@media (max-width:767.98px){
  .bottom-nav{display:flex;}
  body{padding-bottom:calc(60px + env(safe-area-inset-bottom));}
  .contact-fab{bottom:calc(1.1rem + 60px + env(safe-area-inset-bottom)); right:.9rem;}
  .fab-toggle{width:52px; height:52px;}
  .to-top{display:none;}
}
