/* ==========================================================================
   MMJ Resources — Design System
   ========================================================================== */

:root{
  /* Brand: white, red, black — sampled from the MMJ Resources logo mark */
  --navy-950:#050506;
  --navy-900:#0d0d0f;
  --navy-800:#1b1b1e;
  --navy-700:#2a2a2d;
  --blue-700:#2a2a2d;
  --blue-600:#c81e34;
  --blue-500:#28282b;
  --blue-400:#ff8a8a;
  --sky-300:#ff9e9e;
  --sky-100:#fff0f0;
  --amber-500:#ff4b4b;
  --amber-400:#ff6f6f;
  --red-700:#b7182c;
  --red-600:#d8253a;
  --red-500:#ff4b4b;
  --red-400:#ff7373;
  --red-300:#ff9e9e;
  --red-50:#fff0f0;
  --white:#ffffff;
  --slate-50:#f7f7f8;
  --slate-100:#eeeeef;
  --slate-200:#e1e1e3;
  --slate-500:#6b6b70;
  --slate-600:#4c4c50;
  --slate-700:#333335;
  --slate-900:#131315;

  --font-heading:'Montserrat', sans-serif;
  --font-body:'Montserrat', sans-serif;

  --radius-sm:.6rem;
  --radius-md:1rem;
  --radius-lg:1.5rem;
  --radius-pill:999px;

  --shadow-sm:0 6px 16px -8px rgba(5,5,6,.18);
  --shadow-md:0 20px 40px -16px rgba(5,5,6,.28);
  --shadow-lg:0 30px 70px -20px rgba(5,5,6,.35);

  --ease-out-expo:cubic-bezier(.16,1,.3,1);
}

*{box-sizing:border-box;}

html{scroll-behavior:smooth;}

body{
  font-family:var(--font-body);
  color:var(--slate-700);
  background:var(--white);
  font-size:1rem;
  line-height:1.7;
  overflow-x:hidden;
}

h1,h2,h3,h4,h5,h6{
  font-family:var(--font-heading);
  color:var(--navy-900);
  font-weight:700;
  line-height:1.2;
}

a{text-decoration:none;color:inherit;}
img{max-width:100%;}

.container-xl{max-width:1280px;margin:0 auto;padding:0 1.5rem;}

.text-blue{color:var(--blue-500);}
.text-amber{color:var(--amber-500);}
.bg-navy{background:var(--navy-900);}
.bg-slate-50{background:var(--slate-50);}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  font-family:var(--font-heading);
  font-weight:600;
  font-size:.78rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--blue-500);
  padding:.4rem .9rem;
  background:var(--sky-100);
  border-radius:var(--radius-pill);
  margin-bottom:1.1rem;
}
.eyebrow::before{
  content:'';
  width:6px;height:6px;border-radius:50%;
  background:var(--amber-500);
  flex-shrink:0;
}
.eyebrow.on-dark{
  background:rgba(255,255,255,.08);
  color:var(--sky-300);
  border:1px solid rgba(255,255,255,.14);
}

.section{padding:6.5rem 0;}
@media (max-width:991px){.section{padding:4.5rem 0;}}
@media (max-width:575px){.section{padding:3.5rem 0;}}

.section-head{max-width:640px;margin-bottom:3.5rem;}
.section-head.mx-auto{margin-left:auto;margin-right:auto;text-align:center;}
.section-head h2{font-size:clamp(1.9rem,3.2vw,2.7rem);margin-bottom:1rem;}
.section-head p{color:var(--slate-500);font-size:1.08rem;}

/* ---------------- Preloader ---------------- */
#preloader{
  position:fixed;inset:0;z-index:9999;
  background:var(--navy-900);
  display:flex;align-items:center;justify-content:center;
  transition:opacity .6s var(--ease-out-expo), visibility .6s;
}
#preloader.loaded{opacity:0;visibility:hidden;pointer-events:none;}
.loader-mark{
  width:56px;height:56px;border-radius:50%;
  border:3px solid rgba(255,255,255,.15);
  border-top-color:var(--amber-500);
  animation:spin .9s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg);}}

/* ---------------- Buttons ---------------- */
.btn{
  font-family:var(--font-heading);
  font-weight:600;
  font-size:.95rem;
  border-radius:var(--radius-pill);
  padding:.85rem 1.7rem;
  border:none;
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  transition:transform .35s var(--ease-out-expo), box-shadow .35s var(--ease-out-expo), background .35s;
  white-space:nowrap;
}
.btn i, .btn svg{transition:transform .35s var(--ease-out-expo);}
.btn:hover i, .btn:hover svg{transform:translate(3px,-3px);}

.btn-brand{
  background:linear-gradient(135deg,var(--amber-400),var(--amber-500));
  color:var(--navy-900);
  box-shadow:0 14px 30px -10px rgba(255,75,75,.55);
}
.btn-brand:hover{transform:translateY(-3px);box-shadow:0 18px 36px -8px rgba(255,75,75,.65);color:var(--navy-900);}

.btn-outline-light{
  background:transparent;
  color:var(--white);
  border:1.5px solid rgba(255,255,255,.35);
}
.btn-outline-light:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.6);color:var(--white);transform:translateY(-3px);}

.btn-primary-blue{
  background:linear-gradient(135deg,var(--blue-500),var(--blue-700));
  color:var(--white);
  box-shadow:0 14px 30px -10px rgba(13,13,15,.45);
}
.btn-primary-blue:hover{transform:translateY(-3px);color:var(--white);box-shadow:0 18px 36px -8px rgba(13,13,15,.55);}

.btn-outline-navy{
  background:transparent;
  color:var(--navy-900);
  border:1.5px solid var(--slate-200);
}
.btn-outline-navy:hover{border-color:var(--blue-500);color:var(--blue-500);transform:translateY(-3px);}

.btn-sm{padding:.6rem 1.2rem;font-size:.85rem;}
.btn-block{width:100%;justify-content:center;}

/* ---------------- Navbar ---------------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  padding:1.35rem 0;
  transition:background .4s var(--ease-out-expo), padding .4s var(--ease-out-expo), box-shadow .4s;
}
.site-header .container-xl{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;}

.brand{display:flex;align-items:center;gap:.65rem;font-family:var(--font-heading);font-weight:700;font-size:1.2rem;color:var(--white);}
.brand-logo{
  height:64px;width:auto;flex-shrink:0;
  filter:drop-shadow(0 6px 14px rgba(0,0,0,.35));
}
.brand span{line-height:1.05;}
.brand small{display:block;font-family:var(--font-body);font-weight:500;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;opacity:.7;}

.nav-links{display:flex;align-items:center;gap:2.1rem;list-style:none;margin:0;padding:0;}
.nav-links > li{position:relative;}
.nav-links > li > a{
  font-family:var(--font-heading);font-weight:600;font-size:.92rem;
  color:rgba(255,255,255,.85);
  padding:.4rem 0;
  display:flex;align-items:center;gap:.35rem;
  position:relative;
}
.nav-links > li > a::after{
  content:'';position:absolute;left:0;bottom:-4px;width:0;height:2px;
  background:var(--amber-500);transition:width .35s var(--ease-out-expo);
}
.nav-links > li > a:hover::after, .nav-links > li.active > a::after{width:100%;}
.nav-links > li.active > a{color:var(--white);}

.dropdown-panel{
  min-width:220px;background:var(--white);border-radius:var(--radius-md);
  box-shadow:var(--shadow-lg);padding:.6rem;
}
/* Hover-to-reveal flyout is desktop-nav-only behavior — scoped to the same
   breakpoint the hamburger menu uses. Previously this wasn't scoped, so a
   tap on mobile (which many touchscreens register as a "stuck" hover) could
   still match this rule and re-apply the desktop position/transform,
   shoving the open dropdown off-screen. */
@media (min-width:992px){
  .dropdown-panel{
    position:absolute;top:calc(100% + 1.1rem);left:50%;transform:translateX(-50%) translateY(8px);
    opacity:0;visibility:hidden;transition:all .3s var(--ease-out-expo);
    z-index:20;
  }
  .nav-links > li:hover .dropdown-panel{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
}
.dropdown-panel a{
  display:flex;align-items:center;gap:.6rem;padding:.7rem .85rem;border-radius:.6rem;
  font-family:var(--font-heading);font-weight:600;font-size:.86rem;color:var(--slate-700);
  transition:background .25s, color .25s;
}
.dropdown-panel a:hover{background:var(--red-50);color:var(--red-600);}
.dropdown-panel a i{color:var(--red-500);font-size:1rem;}

.header-actions{display:flex;align-items:center;gap:1.1rem;}
.header-phone{
  display:flex;align-items:center;gap:.6rem;
  color:var(--white);font-family:var(--font-heading);font-weight:600;font-size:.92rem;
}
.header-phone .icon-ring{
  width:38px;height:38px;border-radius:50%;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);
  display:flex;align-items:center;justify-content:center;color:var(--amber-400);
  animation:pulse-ring 2.4s ease-in-out infinite;
}
@keyframes pulse-ring{
  0%,100%{box-shadow:0 0 0 0 rgba(255,75,75,.35);}
  50%{box-shadow:0 0 0 8px rgba(255,75,75,0);}
}
.header-phone small{display:block;font-family:var(--font-body);font-weight:400;font-size:.68rem;opacity:.65;}

.nav-toggle{
  display:none;width:44px;height:44px;border-radius:50%;
  border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);
  color:var(--white);align-items:center;justify-content:center;font-size:1.15rem;flex-shrink:0;
}

.site-header.scrolled{
  background:rgba(13,13,15,.88);
  backdrop-filter:blur(14px);
  padding:.85rem 0;
  box-shadow:0 10px 30px -12px rgba(0,0,0,.35);
}
.site-header.solid-page:not(.scrolled){background:var(--navy-900);}

@media (max-width:991px){
  .nav-links, .header-phone{display:none;}
  .nav-toggle{display:flex;}
  .site-header.menu-open .nav-links{
    display:flex;flex-direction:column;align-items:flex-start;gap:0;
    position:absolute;top:100%;left:0;right:0;
    background:var(--navy-900);padding:1rem 1.5rem 1.5rem;
    box-shadow:var(--shadow-lg);
  }
  .site-header.menu-open .nav-links > li{width:100%;border-bottom:1px solid rgba(255,255,255,.08);}
  .site-header.menu-open .nav-links > li > a{padding:.9rem 0;width:100%;}
  .site-header.menu-open .dropdown-panel{
    position:static;opacity:1;visibility:visible;transform:none;
    box-shadow:none;background:rgba(255,255,255,.04);margin-bottom:.6rem;display:none;
  }
  .site-header.menu-open .dropdown-panel.open{display:block;}
  .site-header.menu-open .dropdown-panel a{color:rgba(255,255,255,.8);}
  .site-header.menu-open .dropdown-panel a:hover{background:rgba(255,255,255,.08);color:var(--white);}
}

/* ---------------- Hero ---------------- */
.hero{
  position:relative;
  background:linear-gradient(160deg,var(--navy-950) 0%,var(--navy-900) 45%,var(--navy-800) 100%);
  padding:11.5rem 0 7rem;
  overflow:hidden;
  color:var(--white);
}
.media-bg{position:absolute;inset:0;z-index:0;overflow:hidden;}
.media-bg img{width:100%;height:100%;object-fit:cover;display:block;}
.media-bg::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(160deg,rgba(5,5,6,.93) 0%,rgba(13,13,15,.9) 45%,rgba(27,27,30,.86) 100%);
}
.hero-blobs{position:absolute;inset:0;overflow:hidden;z-index:1;}
.blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.55;animation:float-blob 14s ease-in-out infinite;}
.blob-1{width:420px;height:420px;background:radial-gradient(circle,var(--red-500),transparent 70%);top:-120px;right:-80px;animation-duration:16s;}
.blob-2{width:340px;height:340px;background:radial-gradient(circle,var(--red-700),transparent 70%);bottom:-100px;left:-60px;opacity:.28;animation-duration:19s;animation-delay:-4s;}
.blob-3{width:260px;height:260px;background:radial-gradient(circle,var(--white),transparent 70%);top:35%;left:52%;opacity:.14;animation-duration:13s;animation-delay:-8s;}
@keyframes float-blob{
  0%,100%{transform:translate(0,0) scale(1);}
  33%{transform:translate(30px,-25px) scale(1.08);}
  66%{transform:translate(-20px,20px) scale(.95);}
}
.hero-grid-overlay{
  position:absolute;inset:0;z-index:1;opacity:.35;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:56px 56px;
  mask-image:radial-gradient(ellipse 80% 60% at 60% 30%, black 40%, transparent 100%);
}
.hero .container-xl{position:relative;z-index:2;}
.hero h1{font-size:clamp(2.4rem,5vw,4rem);color:var(--white);margin-bottom:1.4rem;letter-spacing:-.02em;}
.hero h1 .accent{
  background:linear-gradient(135deg,var(--amber-400),var(--sky-300));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero p.lead{font-size:1.15rem;color:rgba(255,255,255,.72);max-width:520px;margin-bottom:2.2rem;}
.hero-cta-row{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-bottom:2.6rem;}
.hero-location{display:flex;align-items:center;gap:.6rem;font-size:.88rem;color:rgba(255,255,255,.55);font-family:var(--font-heading);font-weight:500;letter-spacing:.03em;}
.hero-location i{color:var(--amber-400);}

.hero-panel{
  position:relative;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.12);
  border-radius:var(--radius-lg);
  padding:2rem;
  backdrop-filter:blur(16px);
  animation:panel-in 1s var(--ease-out-expo) both;
  animation-delay:.2s;
}
@keyframes panel-in{from{opacity:0;transform:translateY(30px) rotate(1deg);}to{opacity:1;transform:translateY(0) rotate(0);}}
.hero-panel .service-pill{
  display:flex;align-items:center;gap:1rem;padding:1rem;border-radius:1rem;
  background:rgba(255,255,255,.06);margin-bottom:.9rem;
  transition:background .3s, transform .3s;
}
.hero-panel .service-pill:hover{background:rgba(255,255,255,.11);transform:translateX(4px);}
.hero-panel .service-pill:last-child{margin-bottom:0;}
.hero-panel .pill-icon{
  width:46px;height:46px;border-radius:.8rem;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:1.2rem;
  background:linear-gradient(135deg,var(--blue-500),var(--blue-700));color:var(--white);
}
.hero-panel .pill-icon.amber{background:linear-gradient(135deg,var(--amber-400),var(--amber-500));color:var(--navy-900);}
.hero-panel h6{color:var(--white);font-size:.98rem;margin-bottom:.15rem;}
.hero-panel small{color:rgba(255,255,255,.55);font-size:.8rem;}
.hero-badge-float{
  position:absolute;top:-22px;right:24px;background:var(--white);color:var(--navy-900);
  border-radius:var(--radius-pill);padding:.6rem 1.1rem;box-shadow:var(--shadow-md);
  font-family:var(--font-heading);font-weight:700;font-size:.85rem;display:flex;align-items:center;gap:.5rem;
  animation:bob 4s ease-in-out infinite;
}
.hero-badge-float i{color:var(--amber-500);}
@keyframes bob{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}

/* page hero (non-home) */
.page-hero{
  position:relative;padding:10.5rem 0 5.5rem;color:var(--white);
  background:linear-gradient(160deg,var(--navy-950) 0%,var(--navy-900) 55%,var(--navy-800) 100%);
  overflow:hidden;
}
.page-hero .container-xl{position:relative;z-index:2;}
.page-hero h1{color:var(--white);font-size:clamp(2.1rem,4vw,3.1rem);margin-bottom:.85rem;}
.page-hero p{color:rgba(255,255,255,.68);font-size:1.08rem;max-width:560px;}
.breadcrumb-row{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:rgba(255,255,255,.5);margin-bottom:1.3rem;font-family:var(--font-heading);font-weight:500;}
.breadcrumb-row a{color:rgba(255,255,255,.5);}
.breadcrumb-row a:hover{color:var(--amber-400);}
.breadcrumb-row i{font-size:.65rem;}

/* ---------------- Reveal on scroll ---------------- */
[data-reveal]{opacity:0;transform:translateY(34px);transition:opacity .8s var(--ease-out-expo), transform .8s var(--ease-out-expo);transition-delay:var(--reveal-delay,0s);}
[data-reveal].in-view{opacity:1;transform:translateY(0);}
[data-reveal="zoom"]{transform:scale(.92) translateY(20px);}
[data-reveal="zoom"].in-view{transform:scale(1) translateY(0);}
[data-reveal="left"]{transform:translateX(-40px);}
[data-reveal="left"].in-view{transform:translateX(0);}
[data-reveal="right"]{transform:translateX(40px);}
[data-reveal="right"].in-view{transform:translateX(0);}

/* ---------------- Service cards ---------------- */
.service-card{
  background:var(--white);border-radius:var(--radius-lg);padding:2.4rem 2rem;
  box-shadow:var(--shadow-sm);border:1px solid var(--slate-100);height:100%;
  transition:transform .45s var(--ease-out-expo), box-shadow .45s var(--ease-out-expo), border-color .45s;
  position:relative;overflow:hidden;
}
.service-card::before{
  content:'';position:absolute;inset:0;border-radius:inherit;padding:1.5px;
  background:linear-gradient(135deg,var(--blue-400),var(--amber-400));
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
  opacity:0;transition:opacity .4s;
}
.service-card:hover{transform:translateY(-10px);box-shadow:var(--shadow-lg);}
.service-card:hover::before{opacity:1;}
.service-icon{
  width:64px;height:64px;border-radius:1.1rem;
  background:linear-gradient(135deg,var(--blue-500),var(--blue-700));color:var(--white);
  display:flex;align-items:center;justify-content:center;font-size:1.6rem;margin-bottom:1.5rem;
  transition:transform .5s var(--ease-out-expo);
}
.service-card:hover .service-icon{transform:rotate(-8deg) scale(1.08);}
.service-icon.amber{background:linear-gradient(135deg,var(--amber-400),var(--amber-500));color:var(--navy-900);}
.service-card h3{font-size:1.25rem;margin-bottom:.75rem;}
.service-card p{color:var(--slate-500);font-size:.96rem;margin-bottom:1.3rem;}
.service-card .card-link{
  display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-heading);font-weight:600;
  font-size:.88rem;color:var(--blue-600);
}
.service-card .card-link i{transition:transform .35s var(--ease-out-expo);}
.service-card:hover .card-link i{transform:translateX(5px);}

/* ---------------- Media (photo) service cards ---------------- */
.media-card{
  background:var(--white);border-radius:var(--radius-lg);overflow:hidden;
  box-shadow:var(--shadow-sm);border:1px solid var(--slate-100);height:100%;
  display:flex;flex-direction:column;
  transition:transform .45s var(--ease-out-expo), box-shadow .45s var(--ease-out-expo);
}
.media-card:hover{transform:translateY(-10px);box-shadow:var(--shadow-lg);}
.media-card-img{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--slate-100);}
.media-card-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s var(--ease-out-expo);}
.media-card:hover .media-card-img img{transform:scale(1.08);}
.media-card-img::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(13,13,15,0) 55%,rgba(13,13,15,.5) 100%);
}
.media-card-icon{
  position:absolute;left:1.25rem;bottom:-24px;z-index:2;
  width:52px;height:52px;border-radius:.9rem;
  background:linear-gradient(135deg,var(--blue-500),var(--blue-700));color:var(--white);
  display:flex;align-items:center;justify-content:center;font-size:1.25rem;
  box-shadow:0 10px 22px -8px rgba(13,13,15,.45);
  border:3px solid var(--white);
}
.media-card-icon.amber{background:linear-gradient(135deg,var(--amber-400),var(--amber-500));color:var(--navy-900);}
.media-card-icon .icon-svg{width:1.25rem;height:1.25rem;flex-shrink:0;}
.media-card-body{padding:2.2rem 1.6rem 1.6rem;flex:1;display:flex;flex-direction:column;}
.media-card-body h3{font-size:1.15rem;margin-bottom:.6rem;}
.media-card-body p{color:var(--slate-500);font-size:.92rem;margin-bottom:1.1rem;flex:1;}
.media-card-body .card-link{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-heading);font-weight:600;font-size:.86rem;color:var(--blue-600);}
.media-card-body .card-link i{transition:transform .35s var(--ease-out-expo);}
.media-card:hover .card-link i{transform:translateX(5px);}

/* ---------------- Stats ---------------- */
.stats-band{
  background:linear-gradient(120deg,var(--navy-900),var(--navy-800));
  border-radius:var(--radius-lg);padding:3.2rem 2rem;color:var(--white);
  position:relative;overflow:hidden;
}
.stats-band::after{
  content:'';position:absolute;inset:0;
  background:radial-gradient(circle at 85% 20%,rgba(255,75,75,.18),transparent 55%);
}
.stat-item{position:relative;z-index:1;text-align:center;}
.stat-number{
  font-family:var(--font-heading);font-weight:800;font-size:clamp(2.2rem,4vw,3rem);
  display:flex;align-items:baseline;justify-content:center;gap:.15rem;color:var(--white);
}
.stat-number .suffix{color:var(--amber-400);}
.stat-label{color:rgba(255,255,255,.6);font-size:.9rem;margin-top:.4rem;font-family:var(--font-heading);font-weight:500;}

/* ---------------- Process ---------------- */
.process-row{position:relative;}
.process-row::before{
  content:'';position:absolute;top:34px;left:8%;right:8%;height:2px;
  background:repeating-linear-gradient(90deg,var(--slate-200) 0 10px,transparent 10px 20px);
  z-index:0;
}
@media (max-width:767px){.process-row::before{display:none;}}
.process-step{position:relative;z-index:1;text-align:center;padding:0 1rem;}
.process-num{
  width:68px;height:68px;border-radius:50%;margin:0 auto 1.4rem;
  background:var(--white);border:2px solid var(--slate-200);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-heading);font-weight:800;font-size:1.3rem;color:var(--blue-600);
  transition:all .4s var(--ease-out-expo);
}
.process-step:hover .process-num{
  background:linear-gradient(135deg,var(--red-400),var(--red-600));
  color:var(--white);border-color:transparent;transform:scale(1.08);
  box-shadow:0 14px 26px -10px rgba(255,75,75,.5);
}
.process-step h4{font-size:1.08rem;margin-bottom:.6rem;}
.process-step p{color:var(--slate-500);font-size:.92rem;}

/* ---------------- Testimonials ---------------- */
.testimonial-wrap{
  background:var(--slate-50);border-radius:var(--radius-lg);padding:3rem;position:relative;
}
.rating-summary{display:flex;align-items:center;gap:1.4rem;margin-bottom:2.2rem;flex-wrap:wrap;}
.rating-score{font-family:var(--font-heading);font-weight:800;font-size:2.4rem;color:var(--navy-900);}
.rating-stars i{color:var(--amber-500);}
.testimonial-card{padding:.5rem 1rem;}
.testimonial-card .quote-mark{font-size:2.6rem;color:var(--blue-400);opacity:.4;font-family:Georgia,serif;line-height:1;}
.testimonial-card p{font-size:1.08rem;color:var(--slate-700);margin:1rem 0 1.6rem;}
.testimonial-person{display:flex;align-items:center;gap:.9rem;}
.avatar-circle{
  width:48px;height:48px;border-radius:50%;
  background:linear-gradient(135deg,var(--blue-500),var(--blue-700));
  color:var(--white);display:flex;align-items:center;justify-content:center;
  font-family:var(--font-heading);font-weight:700;flex-shrink:0;
}
.testimonial-person h6{margin-bottom:.1rem;font-size:.98rem;}
.testimonial-person span{font-size:.82rem;color:var(--slate-500);}
#testimonialCarousel .carousel-indicators{position:static;margin-top:1.8rem;}
#testimonialCarousel .carousel-indicators [data-bs-target]{
  width:9px;height:9px;border-radius:50%;background:var(--slate-200);opacity:1;border:none;
}
#testimonialCarousel .carousel-indicators .active{background:var(--red-500);width:24px;border-radius:5px;}

/* ---------------- CTA band ---------------- */
.cta-band{
  background:linear-gradient(120deg,var(--red-700),var(--red-500) 60%,var(--red-300));
  border-radius:var(--radius-lg);padding:3.6rem;color:var(--white);position:relative;overflow:hidden;
}
.cta-band h2{color:var(--white);font-size:clamp(1.7rem,3vw,2.3rem);}
.cta-band p{color:rgba(255,255,255,.82);}

/* ---------------- Footer ---------------- */
.site-footer{background:var(--navy-950);color:rgba(255,255,255,.65);padding-top:5rem;}
.site-footer h6{color:var(--white);font-family:var(--font-heading);font-weight:600;font-size:1rem;margin-bottom:1.4rem;}
.footer-links{list-style:none;padding:0;margin:0;}
.footer-links li{margin-bottom:.8rem;}
.footer-links a{font-size:.92rem;color:rgba(255,255,255,.55);transition:color .25s, padding-left .25s;}
.footer-links a:hover{color:var(--amber-400);padding-left:4px;}
.footer-contact-item{display:flex;gap:.8rem;margin-bottom:1.2rem;font-size:.92rem;}
.footer-contact-item i{color:var(--amber-400);margin-top:.2rem;}
.social-row{display:flex;gap:.7rem;margin-top:1.4rem;}
.social-row a{
  width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;
  transition:all .3s var(--ease-out-expo);color:rgba(255,255,255,.7);
}
.social-row a:hover{background:var(--amber-500);color:var(--navy-900);transform:translateY(-4px);border-color:transparent;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);margin-top:3.5rem;padding:1.6rem 0;font-size:.85rem;}
.footer-bottom a{color:rgba(255,255,255,.55);}
.footer-bottom a:hover{color:var(--amber-400);}

/* ---------------- Back to top ---------------- */
.back-to-top{
  position:fixed;bottom:2rem;right:2rem;width:52px;height:52px;border-radius:50%;
  background:var(--navy-900);color:var(--white);display:flex;align-items:center;justify-content:center;
  z-index:900;opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .35s,visibility .35s,transform .35s;
  box-shadow:var(--shadow-md);
}
.back-to-top.show{opacity:1;visibility:visible;transform:translateY(0);}
.back-to-top svg{position:absolute;inset:0;transform:rotate(-90deg);}
.back-to-top circle{fill:none;stroke:var(--amber-500);stroke-width:3;stroke-linecap:round;}
.back-to-top i{position:relative;z-index:1;font-size:1.05rem;}

/* ---------------- Forms ---------------- */
.form-card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:2.6rem;border:1px solid var(--slate-100);}
.form-floating > .form-control, .form-floating > .form-select{
  border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);padding:1.3rem 1rem .5rem;height:calc(3.6rem + 2px);
  transition:border-color .3s, box-shadow .3s;
}
textarea.form-control{height:auto !important;min-height:120px;}
.form-floating > label{color:var(--slate-500);padding:1rem 1rem;}
.form-control:focus, .form-select:focus{
  border-color:var(--red-500);box-shadow:0 0 0 4px rgba(255,75,75,.14);
}
.form-check-input:checked{background-color:var(--red-500);border-color:var(--red-500);}
.form-note{background:var(--red-50);border-radius:var(--radius-md);padding:1.4rem;font-size:.88rem;color:var(--slate-600);}

.info-side-card{
  background:linear-gradient(160deg,var(--navy-950),var(--navy-800));
  border-radius:var(--radius-lg);padding:2.6rem;color:var(--white);height:100%;
}
.info-side-card .contact-line{display:flex;gap:1rem;margin-bottom:1.6rem;align-items:flex-start;}
.info-side-card .contact-line .ic{
  width:44px;height:44px;border-radius:.8rem;background:rgba(255,255,255,.08);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;color:var(--amber-400);
}
.info-side-card h6{color:var(--white);margin-bottom:.2rem;font-size:.95rem;}
.info-side-card p, .info-side-card span{color:rgba(255,255,255,.6);font-size:.88rem;margin:0;}

.form-success{
  display:none;text-align:center;padding:3rem 1rem;
}
.form-success.show{display:block;animation:panel-in .6s var(--ease-out-expo) both;}
.success-tick{
  width:78px;height:78px;border-radius:50%;background:var(--slate-100);color:var(--navy-800);
  display:flex;align-items:center;justify-content:center;font-size:2.1rem;margin:0 auto 1.4rem;
  animation:tick-pop .5s var(--ease-out-expo) .1s both;
}
@keyframes tick-pop{from{transform:scale(0);}to{transform:scale(1);}}

/* ---------------- Value / feature list (about/services) ---------------- */
.feature-row{display:flex;gap:1.1rem;margin-bottom:1.6rem;}
.feature-row .ic{
  width:46px;height:46px;border-radius:.8rem;flex-shrink:0;
  background:var(--sky-100);color:var(--blue-600);
  display:flex;align-items:center;justify-content:center;font-size:1.15rem;
}
.feature-row h6{margin-bottom:.35rem;font-size:1.02rem;}
.feature-row p{color:var(--slate-500);font-size:.92rem;margin:0;}

.image-frame{
  position:relative;border-radius:var(--radius-lg);
  background:linear-gradient(135deg,var(--navy-900),var(--blue-700));
  padding:3rem;color:var(--white);overflow:hidden;min-height:380px;
  display:flex;align-items:flex-end;
}
.image-frame .frame-photo{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;
  transition:transform .8s var(--ease-out-expo);
}
.image-frame:hover .frame-photo{transform:scale(1.06);}
.image-frame .frame-scrim{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(0deg,rgba(5,5,6,.92) 0%,rgba(11,11,13,.55) 55%,rgba(13,13,15,.25) 100%);
}
.image-frame::before, .image-frame::after{content:'';position:absolute;border-radius:50%;filter:blur(50px);z-index:2;}
.image-frame::before{width:260px;height:260px;background:var(--amber-500);opacity:.28;top:-80px;right:-60px;}
.image-frame::after{width:200px;height:200px;background:var(--sky-300);opacity:.22;bottom:-70px;left:-40px;}
.image-frame .frame-content{position:relative;z-index:3;}

.tilt-card{will-change:transform;transition:transform .3s ease-out;}

/* ---------------- Map ---------------- */
.map-frame{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);border:1px solid var(--slate-100);filter:grayscale(.15);}
.map-frame iframe{display:block;width:100%;height:100%;min-height:340px;border:0;}

/* ---------------- Utilities ---------------- */
.divider-dot{width:5px;height:5px;border-radius:50%;background:var(--slate-200);display:inline-block;margin:0 .6rem;}
.rounded-lg{border-radius:var(--radius-lg) !important;}
.shadow-brand{box-shadow:var(--shadow-md);}
