:root{
  --purple: #610890;
  --purple-deep: #2a0440;
  --purple-glow: #a855f7;
  --bg: #0c0c10;
  --bg-2: #16141c;
  --ink: #f0ece4;
  --muted: #6b6678;
  --line: rgba(240,236,228,0.12);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;scrollbar-color:var(--purple-glow) var(--bg);scrollbar-width:thin;}
::-webkit-scrollbar{width:8px;height:8px;}
::-webkit-scrollbar-track{background:var(--bg);}
::-webkit-scrollbar-thumb{background:var(--purple);border:2px solid var(--bg);border-radius:999px;}
::-webkit-scrollbar-thumb:hover{background:var(--purple-glow);}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:'Inter',sans-serif;
  font-weight:500;
  line-height:1.5;
  overflow-x:hidden;
}
h1,h2,h3,.display{
  font-family:'Fraunces', serif;
  font-weight:600;
  line-height:1.05;
}
em{font-style:italic;color:var(--purple-glow);}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px;}
section{position:relative;padding:84px 0;overflow:hidden;}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}
.image-skeleton{background-color:var(--bg-2);background-image:linear-gradient(100deg,rgba(255,255,255,.03) 20%,rgba(168,85,247,.18) 45%,rgba(255,255,255,.03) 70%);background-size:220% 100%;animation:image-skeleton 1.25s linear infinite;}
@keyframes image-skeleton{to{background-position:-220% 0;}}

/* texture accent */
.grid-accent{
  position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(244,241,247,0.16) 1px, transparent 1px),
    linear-gradient(90deg, rgba(244,241,247,0.16) 1px, transparent 1px);
  background-size:52px 52px;
  opacity:0.6;
  mask-image:linear-gradient(180deg, transparent, black 25%, black 75%, transparent);
  pointer-events:none;
}
.wrap{position:relative;z-index:1;}
/* dotted star pattern that appears behind card content on hover */
.vm-card::before,.loc-card::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(rgba(168,85,247,0.4) 1.2px, transparent 1.4px);
  background-size:15px 15px;
  mask-image:radial-gradient(circle at 85% 12%, black, transparent 65%);
  opacity:0;transition:opacity .35s ease;
}
.vm-card:hover::before,.loc-card:hover::before{opacity:1;}

/* ---------- NAV ---------- */
nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:22px 28px;
  background:transparent;
  border-bottom:1px solid transparent;
  backdrop-filter:none;
  gap:24px;
  transition:background .3s ease, border-color .3s ease, backdrop-filter .3s ease, padding .3s ease;
}
nav.is-scrolled{
  padding:14px 28px;
  background:rgba(12,12,16,0.82);
  border-bottom-color:var(--line);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.logo{font-family:'Fraunces',serif;font-size:22px;letter-spacing:0.5px;}
.logo img{height:28px;display:block;}
nav .cta-btn{font-size:13px;padding:10px 18px;}
.nav-right{display:flex;align-items:center;gap:18px;}
.nav-social{display:flex;align-items:center;gap:16px;}
.nav-social a{color:var(--muted);display:flex;transition:color .2s ease;}
.nav-social a:hover{color:var(--purple-glow);}
.nav-social svg{width:20px;height:20px;display:block;}
.nav-menu{display:flex;gap:30px;list-style:none;}
.nav-menu a{font-size:13px;font-weight:700;color:var(--muted);letter-spacing:0.02em;transition:color .2s ease;}
.nav-menu a:hover{color:var(--ink);}
.nav-toggle{
  display:none;width:38px;height:38px;border:1px solid var(--line);
  align-items:center;justify-content:center;cursor:pointer;color:var(--ink);
  font-size:16px;background:transparent;
}
.nav-mobile{
  display:none;position:fixed;top:0;left:0;right:0;z-index:99;
  background:var(--bg-2);border-bottom:1px solid var(--line);
  padding:88px 28px 24px;flex-direction:column;gap:18px;
}
.nav-mobile.open{display:flex;}
.nav-mobile a{font-size:15px;font-weight:700;color:var(--ink);}

.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:13px 28px;
  border-radius:999px;
  font-weight:700;
  font-size:14px;
  letter-spacing:0.2px;
  transition:transform .25s ease, background .25s ease, border-color .25s ease;
}
.btn-solid{background:var(--purple);color:#fff;}
.btn-solid:hover{background:var(--purple-glow);transform:translateY(-2px);}
.btn-ghost{border:1px solid var(--line);color:var(--ink);}
.btn-ghost:hover{border-color:var(--purple-glow);transform:translateY(-2px);}
.hero-cta-arrow::after{content:"→";}

/* ---------- HERO ---------- */
.hero{
  min-height:100vh;
  display:flex;align-items:center;
  padding-top:110px;
  padding-bottom:60px;
  position:relative;
  overflow:hidden;
}
.hero-split{
  display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;
}
.hero-tag{
  font-size:14px;color:var(--muted);
  margin-bottom:18px;
  letter-spacing:0.3px;
}
.hero h1{
  font-size:clamp(34px, 4.2vw, 58px);
  margin-bottom:8px;
}
.hero-brand{
  display:inline-block;
  font-family:'Fraunces',serif;
  font-size:13px;
  font-weight:600;
  letter-spacing:0.14em;
  color:var(--muted);
  margin-bottom:22px;
  text-transform:uppercase;
}
.hero p{
  font-size:17px;color:var(--muted);
  max-width:520px;margin-bottom:32px;
}
.hero p strong{color:var(--ink);font-weight:700;}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:38px;}
/* the recurring brand mark — bold gradient text, not a plain colored line */
.hero-hash{
  font-family:'Fraunces',serif;font-weight:800;font-style:normal;
  font-size:clamp(20px,2.4vw,26px);
  letter-spacing:0.01em;
  margin:18px 0 22px;
  color:var(--purple-glow);
}

.hero-visual{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:4/5;box-shadow:0 30px 80px rgba(0,0,0,0.45);}
.hero-carousel{position:absolute;inset:0;z-index:0;overflow:hidden;}
.hero-slide{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  filter:sepia(0.3) hue-rotate(230deg) saturate(1.3) brightness(0.8) contrast(1.05);
  opacity:0;transition:opacity 1.8s ease;
}
.hero-slide.image-skeleton::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(12,12,16,.92) 20%,rgba(168,85,247,.18) 45%,rgba(12,12,16,.92) 70%);background-size:220% 100%;animation:image-skeleton 1.25s linear infinite;}
.hero-slide.active{opacity:1;}
.hero-visual::after{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg, rgba(12,12,16,0) 45%, rgba(12,12,16,0.85) 100%);
}
.hero-dots{position:absolute;bottom:24px;right:24px;display:flex;gap:8px;z-index:3;}
.hero-dots .dot{width:20px;height:3px;border-radius:2px;background:rgba(240,236,228,0.3);cursor:pointer;transition:background .3s;}
.hero-dots .dot.active{background:var(--purple-glow);}
/* sits directly on the existing bottom gradient fade — not a floating card —
   and cross-fades between slides instead of jumping */
.hero-stat-overlay{
  position:absolute;left:28px;bottom:26px;right:80px;z-index:3;
  opacity:0;transition:opacity .5s ease;pointer-events:none;
}
.hero-stat-overlay.active{opacity:1;}
.hero-stat-num{
  display:block;font-family:'Fraunces',serif;font-weight:600;
  font-size:clamp(32px,4.2vw,52px);line-height:1;color:var(--ink);
}
.hero-stat-label{display:block;font-size:13px;color:var(--muted);margin-top:6px;line-height:1.4;}

@media(max-width:900px){
  .hero-split{grid-template-columns:1fr;gap:36px;}
  .hero{padding-top:100px;}
  .hero-visual{aspect-ratio:16/10;}
}

/* ---------- MARQUEE ---------- */
/* No border/background — this is meant to read as a continuation of Hero's
   dark background, not a visually distinct section. */
.marquee-section{
  padding:0 0 60px;
  background:transparent;
  overflow:hidden;
}
.marquee-track{
  display:flex;gap:28px;align-items:center;
  width:max-content;
  animation:scroll 36s linear infinite;
  mask-image:linear-gradient(90deg, transparent, black 8%, black 92%, transparent);
}
.marquee-section:hover .marquee-track{animation-play-state:paused;}
.mq-logo{
  background:#fff;border-radius:8px;padding:10px 22px;
  display:flex;align-items:center;justify-content:center;
  height:44px;flex-shrink:0;
}
.mq-logo img{height:20px;max-width:110px;width:auto;object-fit:contain;display:block;}
@keyframes scroll{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}

/* ---------- ABOUT ---------- */
.about-grid{
  display:grid;grid-template-columns:1.1fr 0.9fr;gap:70px;align-items:start;
}
.eyebrow{font-size:13px;color:var(--purple-glow);margin-bottom:16px;font-weight:700;}
.about-grid h2{font-size:clamp(30px,4vw,44px);margin-bottom:24px;}
.about-grid p{color:var(--muted);font-size:17.5px;line-height:1.65;margin-bottom:16px;max-width:52ch;}
.about-grid strong{color:var(--ink);font-weight:700;}
.about-photo{
  margin-top:22px;border:1px solid var(--line);overflow:hidden;position:relative;
}
.about-photo img{width:100%;height:230px;object-fit:cover;display:block;}
.about-photo span{
  position:absolute;bottom:0;left:0;right:0;padding:10px 14px;font-size:12.5px;
  background:linear-gradient(0deg, rgba(10,7,16,0.9), transparent);
}
.vm-card{
  border:1px solid var(--line);padding:28px;margin-bottom:16px;
  background:linear-gradient(160deg, rgba(97,8,144,0.14), transparent 65%);
  position:relative;overflow:hidden;
}
.vm-card h3{font-size:21px;color:var(--purple-glow);margin-bottom:10px;font-style:italic;}
.vm-card p{font-size:16px;}
.vm-card ul{list-style:none;color:var(--muted);font-size:16px;}
.vm-card li{padding:6px 0;padding-left:18px;position:relative;}
.vm-card li::before{content:"•";position:absolute;left:0;color:var(--purple-glow);}

/* ---------- SERVICES ---------- */
.section-head{max-width:960px;margin-bottom:44px;}
.section-head h2{font-size:clamp(30px,4vw,44px);}
.section-head p{color:var(--muted);margin-top:14px;font-size:16px;max-width:640px;}

/* tabbed pipeline — one step selected at a time instead of a 4-card grid.
   The whole thing sits on one solid card (like .stats-card) so it doesn't
   float directly over the busy grid-accent background. */
.pipeline{background:var(--bg-2);border:1px solid var(--line);border-radius:18px;overflow:hidden;}
.pipeline-tabs{
  display:flex;align-items:stretch;gap:0;
  border-bottom:1px solid var(--line);
  overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;
}
.pipeline-tabs::-webkit-scrollbar{display:none;}
.pipeline-tab{
  flex:1;text-align:left;background:transparent;border:none;cursor:pointer;
  padding:22px 20px;display:flex;flex-direction:column;gap:4px;
  border-right:1px solid var(--line);transition:background .2s ease;
  font-family:inherit;color:var(--ink);
  min-width:150px;
}
.pipeline-tabs .pipeline-tab:last-of-type{border-right:none;}
.pipeline-tab:hover{background:rgba(168,85,247,0.06);}
.pipeline-tab.active{background:linear-gradient(160deg, rgba(97,8,144,0.28), rgba(97,8,144,0.06));}
.pipeline-tab-num{font-family:'Fraunces',serif;font-size:13px;color:var(--purple-glow);font-weight:600;}
.pipeline-tab-title{font-size:17px;font-weight:700;}
.pipeline-tab-hint{font-size:12.5px;color:var(--muted);}

.pipeline-panels{padding:36px 32px;}
.pipeline-panel{display:none;}
.pipeline-panel.active{display:grid;grid-template-columns:1fr 1.3fr;gap:40px;}
.pipeline-flow{display:flex;flex-direction:column;gap:10px;align-self:start;}
.flow-chip{
  display:inline-flex;align-items:center;gap:10px;
  font-size:13px;font-weight:700;letter-spacing:0.02em;color:var(--ink);
  padding:10px 16px;border:1px solid var(--line);border-radius:999px;
  background:var(--bg);width:fit-content;
}
.pipeline-flow .flow-chip::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--purple-glow);}
.flow-arrow{display:none;color:var(--purple-glow);font-weight:700;}
.step-list{display:flex;flex-direction:column;border-top:1px solid var(--line);}
.step-row{padding:14px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:3px;}
.step-row b{font-size:14.5px;font-weight:700;color:var(--ink);}
.step-row span{font-size:13.5px;color:var(--muted);line-height:1.5;}

@media(max-width:900px){
  .pipeline-panel.active{grid-template-columns:1fr;gap:24px;}
  .pipeline-panels{padding:28px 22px;}
  /* single column now, so the flow reads left-to-right as a step sequence
     (Request → Unboxing → ...) instead of a stack of loose pills */
  .pipeline-flow{flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 4px;}
  .flow-chip{background:none;border:none;padding:4px 0;}
  .pipeline-flow .flow-chip::before{display:none;}
  .flow-arrow{display:inline-flex;}
}
@media(max-width:640px){
  /* horizontal scrolling chip-row instead of a tall stacked list — hint text
     drops so each tab stays compact and the whole bar fits in one thumb-swipe */
  .pipeline-tab{min-width:118px;flex:0 0 auto;padding:16px 16px;border-right:1px solid var(--line);}
  .pipeline-tab-hint{display:none;}
  .pipeline-tab-title{font-size:15px;}
}

/* ---------- STATS ---------- */
.stats-section{background:var(--bg);}
.stats-card{background:var(--bg-2);border:1px solid var(--line);border-radius:18px;overflow:hidden;}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;}
.stats-panel{padding:44px 28px;border-left:1px solid var(--line);}
.stats-panel:first-child{border-left:none;}
.stats-num{
  font-family:'Fraunces',serif;font-weight:600;font-size:clamp(38px,5vw,56px);line-height:1;display:block;
  color:var(--purple-glow);
}
.stats-panel p{font-size:14px;color:var(--muted);margin-top:14px;line-height:1.55;max-width:28ch;}
@media(max-width:900px){
  .stats-grid{grid-template-columns:repeat(2,1fr);}
  .stats-panel:nth-child(2n+1){border-left:none;}
}
@media(max-width:560px){
  .stats-grid{grid-template-columns:1fr;}
  .stats-panel{border-left:none;border-top:1px solid var(--line);}
  .stats-panel:first-child{border-top:none;}
}

/* ---------- VALUE PROP (Values, icon cards) ---------- */
.value-section{background:var(--bg);position:relative;overflow:hidden;}
.value-head{text-align:center;max-width:1000px;margin:0 auto 56px;position:relative;z-index:1;}
.value-head h2{font-size:clamp(32px,4.2vw,52px);}
.value-head p{color:var(--muted);margin:14px auto 0;font-size:15px;max-width:640px;}
.value-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;position:relative;z-index:1;}
.value-card{
  border:1px solid var(--line);border-radius:14px;padding:30px 26px;
  background:linear-gradient(160deg, rgba(97,8,144,0.10), transparent 65%);
}
.value-icon{width:30px;height:30px;color:var(--purple-glow);margin-bottom:20px;}
.value-card h3{font-family:'Fraunces',serif;font-size:20px;font-weight:600;margin-bottom:10px;}
.value-card p{font-size:14px;color:var(--muted);line-height:1.6;}
@media(max-width:900px){
  .value-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:560px){
  .value-grid{grid-template-columns:1fr;}
}

/* ---------- TESTIMONIALS (auto-cycling pull quotes) ---------- */
.testi-section{background:var(--bg-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.testi-cycle{max-width:760px;margin:0 auto;text-align:center;}
.testi-track{position:relative;min-height:220px;}
.testi-slide{
  position:absolute;inset:0;opacity:0;pointer-events:none;
  transition:opacity .6s ease;
}
.testi-slide.active{position:relative;opacity:1;pointer-events:auto;}
.testi-quote-big{
  font-family:'Fraunces',serif;font-style:italic;font-weight:500;
  font-size:clamp(20px,2.6vw,30px);line-height:1.45;color:var(--ink);
}
.testi-who{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:28px;}
.testi-avatar{
  width:42px;height:42px;flex-shrink:0;border-radius:50%;
  background:radial-gradient(circle at 35% 30%, var(--purple-glow), var(--purple-deep) 75%);
  display:flex;align-items:center;justify-content:center;
  font-family:'Fraunces',serif;font-size:16px;color:#fff;
}
.testi-who > div{text-align:left;}
.testi-name{font-size:14px;font-weight:700;}
.testi-role{font-size:12.5px;color:var(--muted);}
.testi-dots{display:flex;gap:8px;justify-content:center;margin-top:32px;}
.testi-dots .dot{width:7px;height:7px;border-radius:50%;background:var(--line);cursor:pointer;transition:background .2s;}
.testi-dots .dot.active{background:var(--purple-glow);}

/* ---------- LOCATION ---------- */
/* on desktop: map + stats stacked in the left column, panel spans both rows on the
   right so its bottom edge lines up with the stats row instead of the map floating
   shorter than the side info */
.loc-grid{
  display:grid;
  grid-template-columns:1.2fr 1fr;
  grid-template-areas:
    "map panel"
    "stats panel";
  column-gap:40px;
  row-gap:20px;
  align-items:start;
}
.map-wrap{grid-area:map;border:1px solid var(--line);height:440px;position:relative;overflow:hidden;}
.loc-panel{grid-area:panel;display:flex;flex-direction:column;min-height:0;}
#locMap{width:100%;height:100%;background:var(--bg);}
.leaflet-container{background:#e9e6ee !important;font-family:'Inter';}
.leaflet-tooltip{background:var(--bg-2) !important;color:var(--ink) !important;border:1px solid var(--line) !important;border-radius:0 !important;font-size:12px;box-shadow:none !important;}
.leaflet-tooltip-top:before{border-top-color:var(--line) !important;}
.leaflet-popup-content-wrapper{background:var(--bg-2) !important;color:var(--ink) !important;border:1px solid var(--line) !important;border-radius:2px !important;box-shadow:0 10px 30px rgba(0,0,0,0.5) !important;}
.leaflet-popup-tip{background:var(--bg-2) !important;box-shadow:none !important;}
.leaflet-popup-content{margin:14px 16px !important;}
.leaflet-popup-close-button{color:var(--muted) !important;}
.map-popup b{display:block;font-size:14px;margin-bottom:4px;}
.map-popup p{font-size:12.5px;color:var(--muted);margin-bottom:8px;line-height:1.4;}
.map-popup a{font-size:12.5px;font-weight:700;color:var(--purple-glow);}
.map-popup a:hover{color:var(--purple);}
.marker-hub{position:relative;width:52px;height:52px;display:flex;align-items:center;justify-content:center;}
.marker-hub .hub-ring{
  position:absolute;inset:9px;border-radius:50%;
  border:2px solid var(--purple-glow);opacity:0;
  animation:hubRadar 3s cubic-bezier(.2,.6,.3,1) infinite;
}
.marker-hub .hub-ring:nth-child(2){animation-delay:1s;}
.marker-hub .hub-ring:nth-child(3){animation-delay:2s;}
@keyframes hubRadar{
  0%{transform:scale(1);opacity:.6;}
  100%{transform:scale(3.2);opacity:0;}
}
.marker-hub .badge{position:relative;width:34px;height:34px;border-radius:50%;background:radial-gradient(circle at 35% 30%, var(--purple-glow), var(--purple-deep) 75%);border:2px solid #fff;box-shadow:0 4px 14px rgba(42,4,64,0.5);display:flex;align-items:center;justify-content:center;color:#fff;font-size:10px;font-weight:700;letter-spacing:.03em;font-family:'Inter';}
.marker-dot{width:9px;height:9px;border-radius:50%;background:var(--purple);border:1.5px solid #fff;box-shadow:0 0 0 3px rgba(97,8,144,0.2);animation:dotPop .5s ease backwards;}
@keyframes dotPop{from{transform:scale(0);opacity:0;}to{transform:scale(1);opacity:1;}}
.marker-ghost{position:relative;width:12px;height:12px;border-radius:50%;background:rgba(97,8,144,0.4);margin:7px;}
.marker-ghost span{position:absolute;inset:-9px;border-radius:50%;border:1px solid rgba(97,8,144,0.45);animation:pulseGhost 2.6s ease-out infinite;}
.marker-ghost.off{background:rgba(97,8,144,0.6);}
.marker-ghost.off span{display:none;}
@keyframes pulseGhost{0%{transform:scale(0.5);opacity:0.7;}100%{transform:scale(2.1);opacity:0;}}
.route-line{stroke-dasharray:5,6;animation:dashFlow 1.6s linear infinite;}
@keyframes dashFlow{to{stroke-dashoffset:-22;}}
.loc-panel h2{font-size:clamp(26px,3vw,34px);margin-bottom:14px;line-height:1.15;}
.loc-panel>p{color:var(--muted);font-size:15px;margin-bottom:24px;max-width:44ch;}
.loc-cards{display:flex;flex-direction:column;gap:10px;margin-bottom:18px;max-height:308px;overflow-y:auto;min-height:0;padding-right:6px;}
.loc-cards::-webkit-scrollbar{width:6px;}
.loc-cards::-webkit-scrollbar-thumb{background:var(--purple);border-radius:3px;}
.loc-cards::-webkit-scrollbar-track{background:transparent;}
.loc-card{
  display:flex;align-items:center;gap:14px;padding:14px 16px;
  border:1px solid var(--line);cursor:pointer;
  transition:background .25s ease, border-color .25s ease;
  position:relative;overflow:hidden;flex-shrink:0;
}
.loc-card:hover{border-color:var(--purple-glow);}
.loc-card.active{background:var(--purple);border-color:var(--purple);}
.loc-card.coming{border-style:dashed;}
.loc-card-badge{
  width:34px;height:34px;border-radius:50%;flex-shrink:0;
  background:var(--bg-2);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;
  font-size:10px;font-weight:700;letter-spacing:.03em;color:var(--ink);
}
.loc-card.active .loc-card-badge{background:#fff;color:var(--purple);border-color:#fff;}
.loc-card-info{flex:1;min-width:0;}
.loc-card-info h4{font-size:15px;font-weight:700;margin-bottom:3px;}
.loc-card-info p{font-size:12.5px;color:var(--muted);line-height:1.4;}
.loc-card.active .loc-card-info p{color:rgba(244,241,247,0.75);}
.loc-card-thumb{
  width:52px;height:52px;flex-shrink:0;border-radius:4px;overflow:hidden;
  background-size:cover;background-position:center;
}
.map-stats{grid-area:stats;display:flex;border-top:1px solid var(--line);margin-top:0;padding-top:18px;}
.map-stats>div{flex:1;padding:0 4px;border-left:1px solid var(--line);}
.map-stats>div:first-child{border-left:none;padding-left:0;}
.map-stats b{display:block;font-family:'Fraunces',serif;font-weight:600;font-size:28px;color:var(--purple-glow);}
.map-stats span{font-size:12px;color:var(--muted);}

/* ---------- GALLERY (masonry) ---------- */
.gallery-head-simple{max-width:960px;margin-bottom:40px;}
.gallery-head-simple h2{margin-top:14px;font-size:clamp(28px,4vw,40px);}
.gallery-head-simple p{margin-top:14px;color:var(--muted);font-size:15px;max-width:640px;}
.masonry{column-count:3;column-gap:14px;}
.masonry-item{
  break-inside:avoid;margin-bottom:14px;position:relative;overflow:hidden;
  border:1px solid var(--line);border-radius:10px;
}
.masonry-item:nth-child(3n+1) img{aspect-ratio:3/4;}
.masonry-item:nth-child(3n+2) img{aspect-ratio:1/1;}
.masonry-item:nth-child(3n) img{aspect-ratio:4/3;}
.masonry-item img{width:100%;object-fit:cover;display:block;transition:transform .5s ease;}
.masonry-item:hover img{transform:scale(1.05);}
.masonry-item .gal-cap{position:absolute;bottom:0;left:0;right:0;padding:12px 14px;font-size:12px;background:linear-gradient(0deg, rgba(12,12,16,0.92), transparent);}
@media(max-width:900px){.masonry{column-count:2;}}
@media(max-width:560px){.masonry{column-count:1;}}

/* ---------- CONTACT (centered) ---------- */
.contact-section{text-align:center;}
.contact-center{max-width:100%;margin:0 auto;}
.contact-center h2{font-size:clamp(32px,5vw,52px);margin-top:14px;}
.contact-hash{display:block;margin:22px 0 34px;}
.foot-wa-btn{display:inline-flex;align-items:center;gap:10px;}

/* ---------- FOOTER (3-col) ---------- */
footer{background:var(--bg-2);border-top:1px solid var(--line);padding:56px 0 26px;position:relative;overflow:hidden;}
.foot-top{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:32px;padding-bottom:30px;border-bottom:1px solid var(--line);}
.foot-brand img{height:30px;margin-bottom:14px;}
.foot-brand p{color:var(--muted);font-size:14.5px;max-width:36ch;line-height:1.65;}
.foot-col h4{font-size:14px;color:var(--purple-glow);margin-bottom:12px;font-weight:700;}
.foot-col div{font-size:14.5px;margin-bottom:8px;color:var(--muted);}
.foot-social{display:flex;align-items:center;gap:14px;}
.foot-social a{color:var(--muted);display:flex;transition:color .2s ease;}
.foot-social a:hover{color:var(--purple-glow);}
.foot-social svg{width:19px;height:19px;display:block;}
.foot-bottom{display:flex;justify-content:space-between;padding-top:22px;font-size:13px;color:var(--muted);flex-wrap:wrap;gap:10px;}
.foot-bottom .hero-hash{font-size:14px;}
.analytics-disclosure{margin:14px 0 0;color:var(--muted);font-size:11px;opacity:.75;}

@media(max-width:900px){
  .about-grid{grid-template-columns:1fr;gap:40px;}
  .loc-grid{
    grid-template-columns:1fr;
    grid-template-areas:"map" "panel" "stats";
    row-gap:24px;
  }
  .foot-top{grid-template-columns:1fr 1fr;}
  .map-wrap{height:360px;min-height:0;}
  .loc-cards{max-height:260px;}
}
@media(max-width:820px){
  .nav-menu{display:none;}
  .nav-toggle{display:flex;}
  .foot-top{grid-template-columns:1fr;}
}
@media(max-width:560px){
  section{padding:56px 0;}
  .map-wrap{height:200px;min-height:0;}
  .loc-card{flex-wrap:wrap;}
  .loc-card-thumb{display:none;}
  .loc-cards{max-height:220px;}
  .map-stats{padding-top:14px;margin-top:14px;}
  .map-stats b{font-size:22px;}
}

/* respect OS-level "reduce motion" — stop decorative animation without breaking layout */
@media(prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
    scroll-behavior:auto !important;
  }
  .image-skeleton,.hero-slide.image-skeleton::before{animation:none;background-position:50% 0;}
}
