/* ==========================================================================
   MMV ENGINEERING — "SOFT ATELIER — GREY / GLASS / GOLD" v5
   Neutral light-grey base instead of warm cream. Navy + gold stay as the
   only accent colors (restrained palette, as asked). Glass/frosted panels
   used deliberately in a few key spots rather than everywhere. Hero is
   restructured into a split layout — text on a solid panel, photo fading
   into the page background at the seam — so hero text never needs to sit
   on top of a photo. Everywhere else text still sits on a photo (Safety &
   Quality, Why Us, CTA, location pin), legibility comes from a soft glow
   around the text instead of darkening the image.
   ========================================================================== */

:root{
  --fog:#FFFFFF;          /* crisp bright white — the page base */
  --fog-dim:#EDEFF3;      /* light grey — alt-section background, now more distinct from pure white */
  --mist:#DADEE6;         /* soft grey-blue divider lines, "overcast" undertone */
  --navy:#17202E;         /* dark ink — headings, primary text */
  --navy-deep:#101724;
  --navy-deeper:#0A0F19;
  --gold:#B08D57;         /* the one accent color that carries the brand */
  --gold-light:#D9BD8C;
  --slate:#3A4453;        /* body text — cool neutral grey, darkened for readability */
  --slate-soft:#5C6675;   /* secondary text — still darker than before for AA-level contrast */
  --glass-bg:rgba(255,255,255,.5);
  --glass-border:rgba(255,255,255,.65);
  --disp:'Fraunces', serif;
  --body:'Inter', sans-serif;
  --ease:cubic-bezier(.4,0,.2,1);
  --ease-snap:cubic-bezier(.16,1,.3,1);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}
}
/* soft, diffused "overcast" atmosphere behind the whole page — moody without being dark */
body{font-family:var(--body);font-weight:400;color:var(--slate);background:
  radial-gradient(1000px 560px at 10% -10%, rgba(176,141,87,.08), transparent 60%),
  radial-gradient(900px 520px at 100% 10%, rgba(23,32,46,.05), transparent 55%),
  radial-gradient(1100px 640px at 50% 90%, rgba(218,222,230,.9), transparent 65%),
  var(--fog);line-height:1.7;overflow-x:hidden;margin:0}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
::selection{background:var(--gold);color:#fff}
::-webkit-scrollbar{width:10px}
::-webkit-scrollbar-track{background:var(--fog-dim)}
::-webkit-scrollbar-thumb{background:var(--gold);border:2px solid var(--fog-dim)}
::-webkit-scrollbar-thumb:hover{background:var(--navy)}

.scroll-progress{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,var(--gold),var(--gold-light));width:0%;z-index:1060;transition:width .1s linear}

/* quiet monogram watermark behind a couple of section titles */
.sec-title{position:relative}

/* ==========================================================================
   GLASS NAVBAR — frosted translucent panel, one of the deliberate "glass" moments
   ========================================================================== */
.navbar{
  background:var(--glass-bg);
  backdrop-filter:blur(14px) saturate(1.3);
  -webkit-backdrop-filter:blur(14px) saturate(1.3);
  border-bottom:1px solid rgba(176,141,87,.28);
  padding-block:20px;
  transition:padding .35s var(--ease-snap), box-shadow .35s var(--ease-snap), background .35s var(--ease-snap), border-color .45s var(--ease-snap);
  transform:translateZ(0);
  will-change:padding;
}
.navbar.scrolled{padding-block:13px;background:rgba(255,255,255,.78);box-shadow:0 16px 34px -18px rgba(23,32,46,.14);border-bottom-color:transparent}
.navbar-brand{font-family:var(--disp);font-size:22px;font-weight:500;letter-spacing:.5px;color:var(--navy) !important;display:flex;align-items:center;gap:10px;transition:letter-spacing .3s var(--ease-snap)}
.navbar-brand:hover{letter-spacing:1.1px}
.navbar-brand span{color:var(--gold);font-style:italic}
.navbar-nav .nav-link{position:relative;color:var(--slate) !important;font-size:13px;letter-spacing:1px;text-transform:uppercase;font-weight:500;margin-left:26px;padding-bottom:4px !important;transition:color .25s var(--ease-snap)}
.navbar-nav .nav-link::after{content:"";position:absolute;left:50%;bottom:0;width:0;height:2px;border-radius:2px;background:var(--gold);transition:width .38s var(--ease-snap),left .38s var(--ease-snap)}
.navbar-nav .nav-link:hover{color:var(--navy) !important}
.navbar-nav .nav-link:hover::after{width:100%;left:0}
.navbar-nav .nav-link.active{color:var(--gold) !important}
.navbar-nav .nav-link.active::after{width:100%;left:0}
.navbar-toggler{border:1px solid rgba(176,141,87,.4);padding:6px 10px;border-radius:4px}
.navbar-toggler:focus{box-shadow:0 0 0 3px rgba(176,141,87,.18)}
.navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23B08D57' stroke-linecap='round' stroke-miterlimit='10' stroke-width='1.6' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}
@media(max-width:991.98px){
  .navbar{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(255,255,255,.96)}
  .navbar-collapse{background:#fff;margin-top:18px;padding:20px;border:1px solid var(--mist);border-radius:12px;box-shadow:0 20px 44px -20px rgba(23,32,46,.16)}
  .navbar-nav .nav-link{margin-left:0;padding:12px 4px !important;text-align:center;border-bottom:1px solid var(--mist)}
  #navMain{position:absolute;left:16px;right:16px;top:100%;z-index:1030;opacity:0;transform:translateY(-10px) scale(.98);transition:opacity .32s var(--ease-snap), transform .32s var(--ease-snap);pointer-events:none;will-change:opacity,transform}
  #navMain.show{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
  .collapsing{transition:height .01s linear !important}
}

/* ==========================================================================
   HERO — split layout: text lives on solid grey, photo fades into the
   page at the seam. No text ever sits on top of the photo here, so there
   is nothing to lose contrast against.
   ========================================================================== */
.hero-carousel{background:var(--fog)}
.hero-carousel .carousel-item{position:relative}
.hero-split{display:flex;align-items:stretch;min-height:640px}
.carousel-caption-custom{flex:0 0 47%;max-width:47%;display:flex;flex-direction:column;justify-content:center;padding:70px 4% 70px 7%;position:relative;z-index:2}
.hero-photo{flex:1;position:relative;overflow:hidden;background:var(--fog);min-height:420px}
.hero-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.9) brightness(1.03) contrast(.97)}
.hero-photo-fade{position:absolute;inset:0;background:linear-gradient(90deg, var(--fog) 0%, rgba(255,255,255,.65) 12%, rgba(255,255,255,0) 32%)}
.hero-photo::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 90px rgba(23,32,46,.14);pointer-events:none}

.badge-eyebrow{font-size:12px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);margin-bottom:22px;position:relative;padding-bottom:14px}
.badge-eyebrow::after{content:"";position:absolute;bottom:0;left:0;width:46px;height:2px;border-radius:2px;background:var(--gold)}
.hero-carousel h1{font-family:var(--disp);font-weight:500;font-size:clamp(28px,3.6vw,46px);line-height:1.16;color:var(--navy);max-width:520px;margin-bottom:20px}
.hero-carousel p{font-size:16px;color:var(--slate);max-width:440px;margin:0 0 30px;font-weight:400}
.hero-carousel .hero-ctas{display:flex;gap:16px;flex-wrap:wrap}

.carousel-indicators{position:absolute;left:7%;right:auto;bottom:34px;margin:0;justify-content:flex-start;width:auto;gap:6px;z-index:3}
.carousel-indicators [data-bs-target]{width:8px;height:8px;border-radius:50%;background-color:rgba(23,32,46,.2);border:none;opacity:1;transition:background-color .3s var(--ease-snap),transform .3s var(--ease-snap)}
.carousel-indicators .active{background-color:var(--gold);transform:scale(1.2)}
.hero-carousel .carousel-control-prev,.hero-carousel .carousel-control-next{width:6%;opacity:0;transition:opacity .3s var(--ease-snap);z-index:3}
.hero-split:hover ~ .carousel-control-prev,
.hero-carousel .carousel-control-prev:hover,.hero-carousel .carousel-control-next:hover{opacity:.7}
.hero-carousel .carousel-control-prev-icon,.hero-carousel .carousel-control-next-icon{width:20px;height:20px;filter:invert(1) drop-shadow(0 2px 6px rgba(0,0,0,.3))}
@media(min-width:992px){.hero-carousel:hover .carousel-control-prev,.hero-carousel:hover .carousel-control-next{opacity:.55}}

@media(max-width:991.98px){
  .hero-split{flex-direction:column;min-height:0}
  .carousel-caption-custom{flex:none;max-width:100%;padding:48px 24px 36px;text-align:center}
  .badge-eyebrow::after{left:50%;transform:translateX(-50%)}
  .hero-carousel h1,.hero-carousel p{max-width:100%;margin-left:auto;margin-right:auto}
  .hero-carousel .hero-ctas{justify-content:center}
  .hero-photo{min-height:320px;order:-1}
  .hero-photo-fade{background:linear-gradient(180deg, rgba(255,255,255,0) 55%, var(--fog) 100%)}
  .carousel-indicators{left:50%;transform:translateX(-50%);bottom:14px}
}

/* stat strip — light glass band just under the hero */
.stat-strip-wrap{background:var(--fog-dim);border-top:1px solid var(--mist);border-bottom:1px solid var(--mist)}
.stat-strip{max-width:820px;margin:auto;display:flex;justify-content:center;padding:34px 0;gap:40px}
.stat{text-align:center}
.stat .n{font-family:var(--disp);font-size:26px;font-weight:500;color:var(--gold)}
.stat .l{font-size:11.5px;color:var(--slate-soft);text-transform:uppercase;letter-spacing:1px;margin-top:6px}
@media(max-width:575.98px){.stat-strip{flex-wrap:wrap;gap:24px}}

/* ---- page header with photo (subpage-style header, kept for completeness) ---- */
.page-header{position:relative;min-height:300px;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}
.page-header img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.92) brightness(1.02)}
.page-header .overlay{position:absolute;inset:0;background:rgba(23,32,46,.18)}
.page-header .content{position:relative;z-index:2;padding:120px 0 40px}
.crumb{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:#fff;margin-bottom:16px;display:flex;gap:8px;align-items:center;justify-content:center;text-shadow:0 0 4px rgba(255,255,255,.9),0 0 16px rgba(176,141,87,.55)}
.crumb a{color:#fff;transition:color .2s var(--ease-snap)}
.crumb a:hover{color:var(--gold-light)}
.crumb .sep{color:var(--gold-light)}
.page-header h1{font-family:var(--disp);font-size:clamp(30px,4.2vw,46px);font-weight:500;color:#fff;margin-bottom:12px;text-shadow:0 0 6px rgba(255,255,255,.9),0 0 20px rgba(255,255,255,.6),0 0 40px rgba(176,141,87,.5)}
.page-header p{color:#fff;max-width:540px;margin:auto;font-size:15.5px;font-weight:300;text-shadow:0 0 4px rgba(255,255,255,.85),0 0 16px rgba(176,141,87,.4)}

.btn-mmv{display:inline-block;border:1.5px solid var(--gold);color:var(--gold) !important;padding:14px 32px;font-weight:600;font-size:13px;letter-spacing:2px;text-transform:uppercase;transition:background .35s var(--ease-snap),color .35s var(--ease-snap),transform .3s var(--ease-snap),box-shadow .35s var(--ease-snap),border-color .35s var(--ease-snap);background:transparent;cursor:pointer;border-radius:3px}
.btn-mmv:hover{background:var(--gold);color:#fff !important;transform:translateY(-3px);box-shadow:0 18px 34px -14px rgba(176,141,87,.5)}
.btn-mmv-solid{background:linear-gradient(135deg,var(--gold-light),var(--gold));color:#fff !important;border-color:var(--gold);box-shadow:0 14px 30px -14px rgba(176,141,87,.5)}
.btn-mmv-solid:hover{background:linear-gradient(135deg,var(--gold),#96774A);border-color:#96774A;color:#fff !important;transform:translateY(-3px);box-shadow:0 20px 38px -14px rgba(150,119,74,.55)}
.btn-mmv-light{border-color:rgba(255,255,255,.7);color:#fff !important;text-shadow:0 0 10px rgba(0,0,0,.3)}
.btn-mmv-light:hover{background:rgba(255,255,255,.16);color:#fff !important;border-color:#fff;transform:translateY(-3px)}

section{padding:100px 0}
.bg-alt{background:var(--fog-dim)}
.eyebrow{font-size:12px;letter-spacing:3px;color:var(--gold);text-transform:uppercase;display:inline-block;margin-bottom:14px;font-weight:600;position:relative;padding-bottom:13px}
.eyebrow::after{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:36px;height:2px;border-radius:2px;background:var(--gold)}
.sec-title{font-family:var(--disp);font-size:34px;font-weight:500;color:var(--navy);margin-bottom:12px}
.sec-lead{color:var(--slate-soft);font-size:15.5px;max-width:520px}

/* ==========================================================================
   ENTRANCE ANIMATIONS
   ========================================================================== */
@keyframes fadeInLeft{from{opacity:0;transform:translate3d(-60px,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes fadeInRight{from{opacity:0;transform:translate3d(60px,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes fadeInUp{from{opacity:0;transform:translate3d(0,46px,0)}to{opacity:1;transform:translate3d(0,0,0)}}

.reveal{opacity:0;will-change:opacity,transform}
.reveal.in{animation-name:fadeInLeft;animation-duration:.85s;animation-timing-function:var(--ease-snap);animation-fill-mode:both}
.stagger .reveal:nth-child(even).in{animation-name:fadeInRight}
.stagger .reveal:nth-child(1){animation-delay:.04s}
.stagger .reveal:nth-child(2){animation-delay:.10s}
.stagger .reveal:nth-child(3){animation-delay:.16s}
.stagger .reveal:nth-child(4){animation-delay:.22s}
.stagger .reveal.in{transition-delay:0s}

.about-photo{position:relative;min-height:420px;overflow:hidden;border-radius:14px}
.about-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.92) brightness(1.03);transition:transform .6s var(--ease-snap)}
.about-photo:hover img{transform:scale(1.035)}
.about-photo::before{content:"";position:absolute;inset:14px;border:1.5px solid rgba(255,255,255,.55);z-index:2;pointer-events:none;border-radius:8px}
.about-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(155deg, transparent 60%, rgba(23,32,46,.12));z-index:1}
@media(max-width:991.98px){.about-photo{min-height:280px}}

.points{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--mist)}
.point{padding:20px 0;border-bottom:1px solid var(--mist);transition:background .3s var(--ease-snap),transform .3s var(--ease-snap)}
.point:hover{background:var(--fog-dim);transform:translateY(-1px)}
.point:nth-child(odd){padding-right:22px;border-right:1px solid var(--mist)}
.point:nth-child(even){padding-left:22px}
.point b{font-family:var(--disp);font-size:15.5px;font-weight:500;display:block;margin-bottom:5px;color:var(--navy)}
.point span{font-size:13.5px;color:var(--slate-soft)}
@media(max-width:575.98px){.points{grid-template-columns:1fr}.point:nth-child(odd){border-right:none;padding-right:0}.point:nth-child(even){padding-left:0}}

.commit-card{background:var(--navy);color:#fff;padding:40px 34px;position:relative;transition:transform .4s var(--ease-snap),box-shadow .4s var(--ease-snap);height:100%;border-radius:14px}
.commit-card:hover{transform:translateY(-6px);box-shadow:0 30px 54px -24px rgba(23,32,46,.4)}
.commit-card::before{content:"";position:absolute;top:24px;left:34px;right:34px;height:1px;background:var(--gold);opacity:.4}
.commit-card .tag{font-size:11.5px;letter-spacing:2px;color:var(--gold-light);text-transform:uppercase;display:block;margin:18px 0 16px;font-weight:600}
.commit-card h3{font-family:var(--disp);font-size:22px;font-weight:500;margin-bottom:14px}
.commit-card p{font-size:14.5px;color:#c3cbd2;font-weight:300}

.value-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--mist);border:1px solid var(--mist);margin-top:50px}
.value-cell{background:var(--fog);padding:32px 26px;transition:background .3s var(--ease-snap)}
.value-cell:hover{background:#fff}
.value-cell .num{font-family:var(--disp);font-style:italic;font-size:15px;color:var(--gold);margin-bottom:10px}
.value-cell h4{font-family:var(--disp);color:var(--navy);font-size:17px;font-weight:500;margin-bottom:8px}
.value-cell p{font-size:13.5px;color:var(--slate-soft);margin:0}
@media(max-width:767.98px){.value-row{grid-template-columns:1fr 1fr}}

.grid-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--mist);border:1px solid var(--mist)}
.card{background:var(--fog);padding:36px 30px;transition:background .35s var(--ease-snap),transform .4s var(--ease-snap),box-shadow .4s var(--ease-snap);position:relative}
.card:hover{background:#fff;transform:translateY(-6px);box-shadow:0 30px 54px -26px rgba(176,141,87,.22)}
.card h3{font-family:var(--disp);margin:16px 0 8px;font-size:19px;font-weight:500;color:var(--navy)}
.card p{font-size:14px;color:var(--slate-soft);margin:0}
.icon-wrap{width:46px;height:46px;border:1.5px solid var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .35s var(--ease-snap),transform .4s var(--ease-snap)}
.card:hover .icon-wrap{background:var(--gold);transform:rotate(8deg) scale(1.06)}
.icon-wrap svg{width:22px;height:22px;stroke:var(--gold);transition:stroke .3s var(--ease-snap)}
.card:hover .icon-wrap svg{stroke:#fff}
@media(max-width:767.98px){.grid-cards{grid-template-columns:1fr}}

/* ==========================================================================
   PHOTO BANDS (Safety & Quality / Why Us) — legibility fix: no heavy dark
   scrim. A very light neutral wash for subtle depth, and a soft glow on
   the text itself carries the actual contrast. Photo stays bright.
   ========================================================================== */
.safety-band{position:relative;padding:100px 0;box-shadow:inset 0 14px 26px -16px rgba(0,0,0,.55)}
#safety{border-top:3px solid transparent;border-image:linear-gradient(90deg, transparent, var(--gold-light), var(--gold), var(--gold-light), transparent) 1}
.safety-band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.9) brightness(1.02) contrast(.98)}
.safety-band .overlay{position:absolute;inset:0;background:rgba(23,32,46,.16)}
.safety-band .container{position:relative;z-index:2}
.safety-band .sec-title{color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.55),0 0 6px rgba(255,255,255,.7),0 0 22px rgba(255,255,255,.4),0 0 42px rgba(176,141,87,.45)}
.safety-band .sec-title::before{display:none}
.safety-band .sec-lead{color:#fff;text-shadow:0 1px 5px rgba(0,0,0,.5),0 0 4px rgba(255,255,255,.65),0 0 16px rgba(176,141,87,.35)}
.glass-card{background:var(--glass-bg);backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);border:1px solid var(--glass-border);padding:34px 28px;height:100%;transition:transform .4s var(--ease-snap),box-shadow .4s var(--ease-snap),border-color .3s var(--ease-snap);will-change:transform;border-radius:14px;box-shadow:0 20px 40px -24px rgba(23,32,46,.25)}
.glass-card:hover{transform:translateY(-8px);border-color:var(--gold);box-shadow:0 28px 52px -22px rgba(23,32,46,.3)}
/* Safety & Quality cards read more opaque against this photo's brighter areas —
   pull opacity down further so they stay clearly glass, not solid */
#safety .glass-card{background:rgba(255,255,255,.82);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2)}
#safety .glass-card:hover{background:rgba(255,255,255,.94)}
#safety .glass-card h3{text-shadow:none}
#safety .glass-card p{text-shadow:none}
#safety .glass-card svg{filter:none}
.glass-card h3{font-family:var(--disp);color:var(--navy);font-size:18px;font-weight:500;margin:14px 0 8px}
.glass-card p{font-size:14px;color:var(--slate);margin:0}
.glass-card svg{stroke:var(--gold)}

.process{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:16px;position:relative}
.process::before{content:"";position:absolute;top:23px;left:8%;right:8%;height:1px;background:var(--gold);opacity:.35;z-index:0}
.proc-step{position:relative;text-align:center;padding:0 16px}
.proc-num{width:48px;height:48px;border-radius:50%;background:var(--fog);border:1.5px solid var(--gold);color:var(--gold);font-family:var(--disp);font-style:italic;font-weight:500;display:flex;align-items:center;justify-content:center;margin:0 auto 18px;position:relative;z-index:1;transition:background .35s var(--ease-snap),color .35s var(--ease-snap),transform .35s var(--ease-snap)}
.proc-step:hover .proc-num{background:var(--gold);color:#fff;transform:scale(1.08)}
.proc-step h4{font-family:var(--disp);color:var(--navy);font-size:16px;font-weight:500;margin-bottom:6px}
.proc-step p{font-size:13px;color:var(--slate-soft);margin:0}
@media(max-width:767.98px){.process{grid-template-columns:1fr 1fr;gap:34px}.process::before{display:none}}

/* ---- CTA banner — same glow-over-bright-photo treatment ---- */
.cta-banner{position:relative;color:#fff;padding:70px 0;text-align:center;overflow:hidden;box-shadow:inset 0 14px 26px -16px rgba(0,0,0,.5);border-top:3px solid transparent;border-image:linear-gradient(90deg, transparent, var(--gold-light), var(--gold), var(--gold-light), transparent) 1}
.cta-banner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;filter:saturate(.92) brightness(1.02)}
.cta-banner .cta-overlay{position:absolute;inset:0;z-index:1;background:rgba(23,32,46,.4)}
.cta-banner .container{position:relative;z-index:2}
.cta-banner h2{font-family:var(--disp);font-size:30px;font-weight:500;margin-bottom:14px;text-shadow:0 2px 10px rgba(0,0,0,.6),0 0 6px rgba(255,255,255,.6),0 0 24px rgba(176,141,87,.45)}
.cta-banner p{font-size:15.5px;max-width:520px;margin:0 auto 28px;color:#fff;font-weight:300;text-shadow:0 1px 6px rgba(0,0,0,.55),0 0 4px rgba(255,255,255,.55),0 0 16px rgba(176,141,87,.35)}

.contact-box{background:var(--fog);padding:44px 36px;transition:background .3s var(--ease-snap);height:100%;border-radius:14px}
.contact-box:hover{background:var(--fog-dim)}
.contact-box .tag{font-size:11.5px;color:var(--gold);letter-spacing:2px;text-transform:uppercase;display:block;margin-bottom:16px;font-weight:600}
.contact-box h3{font-family:var(--disp);font-size:19px;color:var(--navy);margin-bottom:4px;font-weight:500}
.info-line{display:flex;align-items:center;gap:12px;margin-top:18px}
.info-line svg{width:17px;height:17px;stroke:var(--gold);flex:none}
.info-line a{color:var(--navy);border-bottom:1px solid var(--gold);padding-bottom:1px;transition:color .25s var(--ease-snap),border-color .25s var(--ease-snap)}
.info-line a:hover{color:var(--gold)}

.contact-form .form-label{font-size:11.5px;letter-spacing:1px;text-transform:uppercase;color:var(--slate-soft);font-weight:600}
.contact-form .form-control{background:transparent;border:none;border-bottom:1.5px solid var(--mist);color:var(--slate);padding:10px 2px;border-radius:0;transition:border-color .3s var(--ease-snap)}
.contact-form .form-control:focus{outline:none;border-color:var(--gold);box-shadow:none;background:transparent;color:var(--slate)}
.contact-form textarea.form-control{min-height:100px}
.form-note{font-size:12.5px;color:var(--slate-soft);margin-top:12px;display:flex;gap:8px;align-items:flex-start}
.form-note svg{width:14px;height:14px;stroke:var(--gold);flex:none;margin-top:2px}

.location-band{position:relative;min-height:220px;overflow:hidden;margin-top:26px;border-radius:14px}
.location-band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.9) brightness(1.02)}
.location-band .overlay{position:absolute;inset:0;background:rgba(23,32,46,.18);display:flex;align-items:center;justify-content:center;border-radius:14px}
.location-pin{text-align:center;position:relative;z-index:2}
.location-pin svg{width:40px;height:40px;stroke:var(--gold);margin-bottom:14px;filter:drop-shadow(0 0 8px rgba(255,255,255,.7))}
.location-pin b{font-family:var(--disp);color:#fff;display:block;font-size:15px;margin-bottom:4px;font-weight:500;text-shadow:0 0 4px rgba(255,255,255,.85),0 0 16px rgba(176,141,87,.5)}
.location-pin span{font-size:13px;color:#fff;text-shadow:0 0 4px rgba(255,255,255,.8),0 0 12px rgba(176,141,87,.4)}

.back-top{position:fixed;right:24px;bottom:24px;width:46px;height:46px;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);color:var(--gold);border:1.5px solid var(--gold);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transform:translateY(10px) scale(.9);transition:opacity .3s var(--ease-snap),transform .3s var(--ease-snap),background .25s var(--ease-snap),color .25s var(--ease-snap);z-index:1040;will-change:transform,opacity;border-radius:50%;box-shadow:0 14px 28px -12px rgba(23,32,46,.25)}
.back-top.show{opacity:1;pointer-events:auto;transform:translateY(0) scale(1)}
.back-top:hover{background:var(--gold);color:#fff;transform:translateY(-3px) scale(1.05)}
.back-top svg{width:19px;height:19px}

/* ==========================================================================
   ONE-PAGE ADD-ONS
   ========================================================================== */
section[id]{scroll-margin-top:92px}

.nav-cta{background:var(--gold);color:#fff !important;padding:10px 22px !important;margin-left:22px;font-weight:600 !important;border-radius:4px;transition:background .3s var(--ease-snap),transform .3s var(--ease-snap),box-shadow .3s var(--ease-snap);will-change:transform;box-shadow:0 10px 22px -10px rgba(176,141,87,.5)}
.nav-cta::after{display:none !important}
.nav-cta:hover{background:var(--navy) !important;color:#fff !important;transform:translateY(-2px);box-shadow:0 16px 28px -12px rgba(23,32,46,.4)}
@media(max-width:991.98px){.nav-cta{margin-left:0;margin-top:10px;text-align:center;justify-content:center;display:flex}}

.fx-left,.fx-right,.fx-up{opacity:0;will-change:opacity,transform}
.fx-left.in{animation-name:fadeInLeft;animation-duration:.9s;animation-timing-function:var(--ease-snap);animation-fill-mode:both}
.fx-right.in{animation-name:fadeInRight;animation-duration:.9s;animation-timing-function:var(--ease-snap);animation-fill-mode:both}
.fx-up.in{animation-name:fadeInUp;animation-duration:.9s;animation-timing-function:var(--ease-snap);animation-fill-mode:both}
.fx-delay-1{animation-delay:.09s}
.fx-delay-2{animation-delay:.16s}
.fx-delay-3{animation-delay:.23s}

.hero-carousel .carousel-caption-custom > *{opacity:0;transform:translateX(-40px);transition:opacity .8s var(--ease-snap),transform .8s var(--ease-snap)}
.hero-carousel .carousel-caption-custom > *.in{opacity:1;transform:translateX(0)}
.hero-carousel .carousel-caption-custom .badge-eyebrow{transition-delay:.05s}
.hero-carousel .carousel-caption-custom h1{transition-delay:.16s}
.hero-carousel .carousel-caption-custom p{transition-delay:.27s}
.hero-carousel .carousel-caption-custom .hero-ctas{transition-delay:.38s}

.counter-num{font-family:var(--disp);font-weight:500;color:var(--gold);font-variant-numeric:tabular-nums}

/* ==========================================================================
   SERVICES + PROCESS — moody architectural photo background instead of a
   flat watermark. Cards start solid/readable; on hover they dissolve to
   reveal the photo behind them and the text switches to white.
   ========================================================================== */
.services-photo{
  position:relative;
  background:
    linear-gradient(165deg, rgba(23,32,46,.82), rgba(23,32,46,.7)),
    url('../img/skyscrapers.jpg');
  background-size:cover;
  background-position:center;
  background-attachment:scroll;
  padding:100px 0 70px;
  border-bottom:3px solid transparent;
  border-image:linear-gradient(90deg, transparent, var(--gold-light), var(--gold), var(--gold-light), transparent) 1;
}
.services-photo .eyebrow{color:var(--gold-light)}
.services-photo .eyebrow::after{background:var(--gold-light)}
.services-photo .sec-title{color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.55),0 0 6px rgba(255,255,255,.6),0 0 24px rgba(176,141,87,.45)}
.services-photo .sec-lead{color:#e4e7ee;text-shadow:0 1px 5px rgba(0,0,0,.5)}
#services .process{padding-top:70px}

.fill-card{position:relative;background:rgba(255,255,255,.97);padding:36px 30px;overflow:hidden;isolation:isolate;transition:transform .4s var(--ease-snap),box-shadow .4s var(--ease-snap),border-color .4s var(--ease-snap);will-change:transform;border:1px solid transparent;border-radius:14px}
.fill-card::before{
  content:"";position:absolute;left:0;right:0;bottom:0;top:0;z-index:0;
  background:linear-gradient(135deg, #F5DFB4 0%, #E9C079 50%, var(--gold) 100%);
  transform:scaleY(0);transform-origin:bottom;transition:transform .55s var(--ease-snap);will-change:transform;
}
.fill-card:hover{transform:translateY(-6px);box-shadow:0 30px 54px -26px rgba(176,141,87,.35);border-color:rgba(176,141,87,.4)}
.fill-card:hover::before{transform:scaleY(1)}
.fill-card .icon-wrap{position:relative;z-index:1;transition:border-color .4s var(--ease-snap),background .4s var(--ease-snap)}
.fill-card h3,.fill-card p{position:relative;z-index:1;transition:color .4s var(--ease-snap)}
.fill-card:hover h3{color:var(--navy)}
.fill-card:hover p{color:var(--navy-deep)}
.fill-card:hover .icon-wrap{background:rgba(255,255,255,.4);border-color:var(--navy)}
.fill-card:hover .icon-wrap svg{stroke:var(--navy)}



.why-band{padding:100px 0}
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:10px}
.why-cell.glass-card{padding:30px 24px;background:var(--glass-bg);transition:transform .35s var(--ease-snap),border-color .3s var(--ease-snap),background-color .3s var(--ease-snap),box-shadow .35s var(--ease-snap)}
#why .glass-card{background:rgba(255,255,255,.93);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2)}
#why .glass-card:hover{background:rgba(255,255,255,1)}
.why-cell.glass-card:hover{background:rgba(255,255,255,.7);transform:translateY(-6px);box-shadow:0 28px 52px -22px rgba(23,32,46,.3)}
.why-cell svg{width:28px;height:28px;stroke:var(--gold);margin-bottom:16px;filter:drop-shadow(0 0 6px rgba(255,255,255,.6))}
.why-cell h4{font-family:var(--disp);color:var(--navy);font-size:16.5px;font-weight:500;margin-bottom:6px}
.why-cell p{font-size:13px;color:var(--slate);margin:0}
@media(max-width:767.98px){.why-grid{grid-template-columns:1fr 1fr}}
@media(max-width:575.98px){.why-grid{grid-template-columns:1fr}}

.glass-stat-strip{background:var(--glass-bg);backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);border:1px solid var(--glass-border);padding:30px 10px;box-shadow:0 20px 40px -24px rgba(23,32,46,.25)}
#why .glass-stat-strip{background:rgba(255,255,255,.93);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2)}
.glass-stat-strip > div{padding:12px 8px;border-right:1px solid rgba(255,255,255,.4)}
.glass-stat-strip > div:last-child{border-right:none}
.glass-stat-strip .l{font-size:11.5px;color:var(--navy);text-transform:uppercase;letter-spacing:1px;margin-top:6px;font-weight:600}
.glass-stat-strip .counter-num{color:var(--gold)}
@media(max-width:767.98px){.glass-stat-strip > div{border-right:none;border-bottom:1px solid rgba(255,255,255,.4)}.glass-stat-strip > div:nth-last-child(-n+1){border-bottom:none}}

.testi-track{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--mist);border:1px solid var(--mist)}
.testi-card{background:var(--fog);padding:34px 30px;height:100%;transition:background .35s var(--ease-snap)}
.testi-card:hover{background:#fff}
.testi-card .quote-mark{color:var(--gold);font-family:var(--disp);font-style:italic;font-size:38px;line-height:1;display:block;margin-bottom:10px}
.testi-card p{font-size:14.5px;color:var(--slate);margin-bottom:20px}
.testi-who b{display:block;font-family:var(--disp);color:var(--navy);font-size:14.5px;font-weight:500}
.testi-who span{font-size:12.5px;color:var(--slate-soft)}
@media(max-width:991.98px){.testi-track{grid-template-columns:1fr}}

.faq-accordion .accordion-item{background:var(--fog);border:1px solid var(--mist);margin-bottom:12px;border-radius:10px;overflow:hidden}
.faq-accordion .accordion-button{background:var(--fog);color:var(--navy);font-family:var(--disp);font-weight:500;font-size:15.5px;padding:20px 24px;box-shadow:none;transition:background .3s var(--ease-snap),color .3s var(--ease-snap)}
.faq-accordion .accordion-button:not(.collapsed){background:var(--fog-dim);color:var(--gold)}
.faq-accordion .accordion-button:focus{box-shadow:none;border-color:var(--gold)}
.faq-accordion .accordion-body{background:#fff;color:var(--slate);font-size:14.5px;padding:20px 24px}

footer{background:linear-gradient(165deg, var(--navy), var(--navy-deeper));color:#c3cbd2;padding:56px 0 26px}
footer h4{font-family:var(--disp);color:#fff;font-size:14px;letter-spacing:.5px;font-weight:500;margin-bottom:18px}
footer p{font-size:13.5px;color:#c3cbd2;max-width:320px;font-weight:300}
.footer-links{list-style:none;padding:0;margin:0}
.footer-links li{margin-bottom:11px}
.footer-links a{color:#c3cbd2;font-size:13.5px;transition:color .25s var(--ease-snap)}
.footer-links a:hover{color:var(--gold-light)}
.footer-bottom{padding-top:24px;text-align:center;font-size:12px;letter-spacing:1px;color:#8592a0}

.card.fill-card,.why-cell.glass-card,.glass-card,.contact-box,.location-band,.about-photo,.about-photo img,.glass-stat-strip{border-radius:14px}
.about-photo::before{border-radius:8px}
.location-band .overlay{border-radius:14px}
.btn-mmv,.btn-mmv-solid,.btn-mmv-light,.nav-cta{border-radius:3px}
.testi-card{border-radius:12px}

.form-success-msg{margin-top:16px;padding:14px 18px;border-radius:12px;background:var(--fog-dim);border:1px solid rgba(176,141,87,.3);color:var(--gold);font-size:13.5px;font-weight:500;opacity:0;transform:translateY(-6px);transition:opacity .4s var(--ease-snap),transform .4s var(--ease-snap)}
.form-success-msg.show{opacity:1;transform:translateY(0)}

.hp-field{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}

body.mmv-no-scroll{overflow:hidden}
.mmv-toast-overlay{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(23,32,46,.5);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);opacity:0;visibility:hidden;transition:opacity .4s var(--ease-snap),visibility .4s var(--ease-snap)}
.mmv-toast-overlay.show{opacity:1;visibility:visible}
.mmv-toast{position:relative;width:100%;max-width:380px;background:rgba(255,255,255,.85);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:16px;padding:44px 32px 32px;text-align:center;box-shadow:0 34px 74px -20px rgba(23,32,46,.4);border-top:4px solid var(--gold);transform:translateY(28px) scale(.94);transition:transform .5s cubic-bezier(.34,1.56,.64,1)}
.mmv-toast-overlay.show .mmv-toast{transform:translateY(0) scale(1)}
.mmv-toast-icon{width:64px;height:64px;margin:0 auto 18px}
.mmv-toast-icon svg{width:100%;height:100%}
.mmv-toast-icon-ring{fill:none;stroke:var(--gold);stroke-width:2.5;stroke-dasharray:158;stroke-dashoffset:158;transition:stroke-dashoffset .65s var(--ease-snap) .05s}
.mmv-toast-overlay.show .mmv-toast-icon-ring{stroke-dashoffset:0}
.mmv-toast-icon-check{stroke:var(--gold);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:40;stroke-dashoffset:40;transition:stroke-dashoffset .45s var(--ease-snap) .5s}
.mmv-toast-overlay.show .mmv-toast-icon-check{stroke-dashoffset:0}
.mmv-toast-overlay.is-error .mmv-toast{border-top-color:#C0392B}
.mmv-toast-overlay.is-error .mmv-toast-icon-ring,.mmv-toast-overlay.is-error .mmv-toast-icon-check{stroke:#C0392B}
.mmv-toast h4{font-family:var(--disp);font-size:20px;font-weight:500;color:var(--navy);margin-bottom:10px}
.mmv-toast p{font-size:14px;line-height:1.6;color:var(--slate);margin-bottom:22px}
.mmv-toast-close{border:1.5px solid var(--gold);background:transparent;color:var(--gold);padding:11px 30px;font-size:12.5px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;border-radius:3px;cursor:pointer;transition:background .3s var(--ease-snap),color .3s var(--ease-snap)}
.mmv-toast-close:hover{background:var(--gold);color:#fff}
