:root{
  --maroon-950:#170810;
  --maroon-900:#230B15;
  --maroon-800:#3A1220;
  --maroon-700:#6E1B31;
  --maroon-600:#8C2340;
  --maroon-500:#A8305A;
  --gold-700:#8C6A16;
  --gold-600:#A8811E;
  --gold-500:#C9A227;
  --gold-400:#DBB94A;
  --gold-300:#E9D08A;
  --paper:#F5EFE1;
  --paper-alt:#ECE1C8;
  --paper-line:#DCCBA3;
  --ink:#241811;
  --ink-soft:#5B4B3D;
  --ink-faint:#8A7A69;
  --shadow-soft: 0 20px 50px -20px rgba(27,10,16,0.35);
  --shadow-card: 0 10px 30px -14px rgba(27,10,16,0.25);
  --ease-stamp: cubic-bezier(.34,1.56,.64,1);
  --radius: 14px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter',sans-serif;
  color:var(--ink);
  background:var(--paper);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,.font-display{
  font-family:'Fraunces',serif;
  letter-spacing:-0.01em;
}
.font-mono{font-family:'Space Mono',monospace;}
a{color:inherit; text-decoration:none;}
img{max-width:100%;}

::selection{background:var(--gold-500); color:var(--maroon-950);}

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

.skip-link{
  position:absolute; left:-999px; top:0; z-index:2000;
  background:var(--gold-500); color:var(--maroon-950);
  padding:.75rem 1.25rem; font-weight:700; border-radius:0 0 8px 0;
}
.skip-link:focus{left:0;}

.container-custom{
  max-width:1280px;
  margin:0 auto;
  padding-left:clamp(1.25rem,4vw,3rem);
  padding-right:clamp(1.25rem,4vw,3rem);
}

.section-pad{padding-top:clamp(4.5rem,8vw,7.5rem); padding-bottom:clamp(4.5rem,8vw,7.5rem);}

.eyebrow{
  font-family:'Space Mono',monospace;
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:.72rem;
  font-weight:700;
  display:inline-flex;
  align-items:center;
  gap:.6em;
}
.eyebrow::before{
  content:"";
  width:28px; height:1px;
  background:currentColor;
  display:inline-block;
}

.section-head{max-width:680px; margin-bottom:3rem;}
.section-head h2{font-size:clamp(1.9rem,3.4vw,2.8rem); font-weight:600; line-height:1.12; margin:.6rem 0 0;}
.section-head p{color:var(--ink-soft); font-size:1.05rem; margin-top:1rem;}
.section-head.on-dark p{color:rgba(245,239,225,0.72);}
.section-head.on-dark h2{color:var(--paper);}

/* Buttons */
.btn-gold{
  background:linear-gradient(180deg, var(--gold-400), var(--gold-600));
  color:var(--maroon-950);
  border:none;
  font-weight:700;
  padding:.85rem 1.6rem;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  box-shadow:0 10px 24px -10px rgba(201,162,39,0.55);
  transition:transform .25s ease, box-shadow .25s ease;
}
.btn-gold:hover{transform:translateY(-3px); box-shadow:0 16px 30px -12px rgba(201,162,39,0.6); color:var(--maroon-950);}
.btn-outline-cream{
  border:1.5px solid rgba(245,239,225,0.55);
  color:var(--paper);
  font-weight:600;
  padding:.85rem 1.6rem;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  transition:all .25s ease;
  background:transparent;
}
.btn-outline-cream:hover{background:rgba(245,239,225,0.1); border-color:var(--gold-400); color:var(--paper); transform:translateY(-3px);}
.btn-outline-maroon{
  border:1.5px solid var(--maroon-700);
  color:var(--maroon-700);
  font-weight:600;
  padding:.85rem 1.6rem;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  transition:all .25s ease;
  background:transparent;
}
.btn-outline-maroon:hover{background:var(--maroon-700); color:var(--paper); transform:translateY(-3px);}

/* =========================================================
   NAVBAR
========================================================= */
.navbar-flinch{
  position:fixed; top:0; left:0; right:0; z-index:1000;
  padding:1.15rem 0;
  transition:background .35s ease, padding .35s ease, box-shadow .35s ease;
}
.navbar-flinch.is-scrolled{
  background:rgba(23,8,16,0.94);
  backdrop-filter:blur(10px);
  padding:.7rem 0;
  box-shadow:0 10px 30px -18px rgba(0,0,0,0.6);
}
.nav-inner{display:flex; align-items:center; justify-content:space-between; gap:1rem;}
.brand{display:flex; align-items:center; gap:.7rem;}
.brand-mark{
  width:44px; height:44px; border-radius:50%;
  background:radial-gradient(circle at 32% 28%, var(--gold-400), var(--gold-700) 70%);
  display:flex; align-items:center; justify-content:center;
  font-family:'Fraunces',serif; font-weight:700; color:var(--maroon-950);
  font-size:1.25rem;
  border:2px solid var(--maroon-950);
  flex:none;
}
.brand-text{line-height:1.05;}
.brand-text .b1{font-family:'Fraunces',serif; font-weight:700; font-size:1.15rem; color:var(--paper); letter-spacing:.02em;}
.brand-text .b2{font-family:'Space Mono',monospace; font-size:.62rem; letter-spacing:.16em; color:var(--gold-400); text-transform:uppercase;}

.nav-links{display:flex; align-items:center; gap:2rem;}
.nav-links a{
  font-size:.92rem; font-weight:500; color:rgba(245,239,225,0.82);
  position:relative; padding-bottom:4px;
}
.nav-links a::after{
  content:""; position:absolute; left:0; bottom:0; width:0; height:2px;
  background:var(--gold-500); transition:width .3s ease;
}
.nav-links a:hover{color:var(--paper);}
.nav-links a:hover::after{width:100%;}

.navbar-toggler{border:none; color:var(--paper); font-size:1.5rem; background:transparent;}

/* =========================================================
   HERO
========================================================= */
.hero{
  position:relative;
  background:
    radial-gradient(1100px 620px at 85% -10%, rgba(201,162,39,0.16), transparent 60%),
    radial-gradient(900px 500px at -10% 110%, rgba(140,35,64,0.35), transparent 60%),
    linear-gradient(160deg, var(--maroon-950) 0%, #1F0912 55%, var(--maroon-900) 100%);
  color:var(--paper);
  padding-top:calc(6.5rem + 3rem);
  padding-bottom:5rem;
  overflow:hidden;
}
.hero::before{
  content:"";
  position:absolute; inset:0;
  background-image:repeating-linear-gradient(115deg, rgba(201,162,39,0.055) 0px, rgba(201,162,39,0.055) 1px, transparent 1px, transparent 26px);
  pointer-events:none;
}
.hero-seal{
  position:absolute;
  top:-140px; right:-160px;
  width:560px; height:560px;
  opacity:.55;
  pointer-events:none;
  animation:spin-slow 90s linear infinite;
}
@keyframes spin-slow{to{transform:rotate(360deg);}}
.hero-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:3.5rem; align-items:center; position:relative; z-index:2;}
.hero-eyebrow{color:var(--gold-400);}
.hero h1{
  font-size:clamp(2.4rem,4.6vw,3.7rem);
  font-weight:600;
  line-height:1.08;
  margin:1rem 0 1.3rem;
}
.hero h1 em{
  font-style:italic; font-weight:500; color:var(--gold-400);
}
.hero p.lead-text{
  font-size:1.12rem;
  color:rgba(245,239,225,0.78);
  max-width:520px;
  margin-bottom:2.1rem;
}
.hero-ctas{display:flex; flex-wrap:wrap; gap:1rem; margin-bottom:2.6rem;}
.hero-microtrust{display:flex; flex-wrap:wrap; gap:1.6rem; font-size:.85rem; color:rgba(245,239,225,0.65);}
.hero-microtrust span{display:flex; align-items:center; gap:.5rem;}
.hero-microtrust i{color:var(--gold-500);}

/* Service pass card */
.pass-wrap{position:relative;}
.pass-card{
  background:linear-gradient(165deg,#FBF7EC,var(--paper) 60%);
  color:var(--ink);
  border-radius:20px;
  padding:1.9rem 1.9rem 1.6rem;
  box-shadow:var(--shadow-soft);
  position:relative;
  transform:rotate(1.4deg);
  border:1px solid rgba(201,162,39,0.5);
  animation:float-card 6.5s ease-in-out infinite;
}
@keyframes float-card{
  0%,100%{transform:rotate(1.4deg) translateY(0);}
  50%{transform:rotate(1.4deg) translateY(-10px);}
}
.pass-top{display:flex; justify-content:space-between; align-items:flex-start; border-bottom:1px dashed var(--paper-line); padding-bottom:1rem; margin-bottom:1rem;}
.pass-top .pass-label{font-family:'Space Mono',monospace; font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-faint);}
.pass-top .pass-title{font-family:'Fraunces',serif; font-weight:700; font-size:1.05rem; margin-top:.15rem;}
.pass-stamp{
  width:56px; height:56px; border-radius:50%;
  border:2px solid var(--maroon-700);
  color:var(--maroon-700);
  display:flex; align-items:center; justify-content:center;
  font-family:'Space Mono',monospace; font-size:.55rem; font-weight:700;
  text-align:center; line-height:1.1;
  transform:rotate(-14deg);
  flex:none;
  opacity:.9;
}
.pass-field{display:flex; justify-content:space-between; gap:1rem; padding:.55rem 0; border-bottom:1px solid rgba(220,203,163,0.6);}
.pass-field:last-of-type{border-bottom:none;}
.pass-field .k{font-family:'Space Mono',monospace; font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-faint);}
.pass-field .v{font-weight:600; font-size:.92rem; text-align:right;}
.pass-mrz{
  margin-top:1.1rem; background:var(--maroon-950); color:var(--gold-400);
  font-family:'Space Mono',monospace; font-size:.62rem; letter-spacing:.08em;
  padding:.85rem 1rem; border-radius:8px; line-height:1.7; word-break:break-all;
}
.pass-float-badge{
  position:absolute; bottom:-18px; left:-18px;
  background:var(--maroon-700); color:var(--paper);
  padding:.6rem 1rem; border-radius:12px; box-shadow:var(--shadow-card);
  font-size:.78rem; font-weight:700; display:flex; align-items:center; gap:.5rem;
  transform:rotate(-3deg);
}
.pass-float-badge i{color:var(--gold-400); font-size:1rem;}

/* =========================================================
   STATS STRIP
========================================================= */
.stats-strip{background:var(--paper); border-bottom:1px solid var(--paper-line);}
.stats-strip .stats-inner{
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:2rem; padding:3rem 0 2.4rem;
}
.stat-item{text-align:left; border-left:2px solid var(--gold-500); padding-left:1.1rem;}
.stat-num{font-family:'Fraunces',serif; font-weight:700; font-size:clamp(1.8rem,3vw,2.5rem); color:var(--maroon-700); display:flex; align-items:baseline; gap:.15rem;}
.stat-label{font-family:'Space Mono',monospace; font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-soft); margin-top:.35rem;}
.stats-note{font-size:.72rem; color:var(--ink-faint); padding-bottom:1.5rem;}

/* =========================================================
   ABOUT
========================================================= */
.about-grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:4rem; align-items:center;}
.about-visual{position:relative; height:420px;}
.doc-card{
  position:absolute; width:78%; border-radius:16px; padding:1.5rem;
  box-shadow:var(--shadow-card); border:1px solid var(--paper-line);
  background:#fff;
}
.doc-card.doc-1{top:0; left:0; z-index:1; transform:rotate(-7deg); background:var(--paper);}
.doc-card.doc-2{top:70px; left:18%; z-index:2; transform:rotate(4deg); background:#FBF7EC;}
.doc-card.doc-3{top:170px; left:2%; z-index:3; transform:rotate(-2deg); background:var(--maroon-700); color:var(--paper); width:66%;}
.doc-line{height:8px; border-radius:4px; background:var(--paper-line); margin-bottom:.55rem;}
.doc-line.short{width:55%;}
.doc-card.doc-3 .doc-line{background:rgba(245,239,225,0.35);}
.doc-seal-mini{
  width:64px; height:64px; border-radius:50%; border:2px dashed var(--gold-500);
  display:flex; align-items:center; justify-content:center; color:var(--gold-500);
  font-size:1.5rem; position:absolute; top:1rem; right:1rem; transform:rotate(-10deg);
}
.about-pillars{display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; margin-top:1.8rem;}
.pillar{display:flex; gap:.8rem; align-items:flex-start;}
.pillar i{color:var(--maroon-700); font-size:1.2rem; margin-top:.2rem;}
.pillar h4{font-size:.98rem; font-weight:700; margin:0 0 .2rem; font-family:'Inter',sans-serif;}
.pillar p{font-size:.86rem; color:var(--ink-soft); margin:0;}

/* =========================================================
   SERVICES
========================================================= */
.services{background:var(--paper-alt);}
.service-card{
  background:var(--paper);
  border:1px solid var(--paper-line);
  border-radius:var(--radius);
  padding:1.9rem 1.7rem;
  height:100%;
  position:relative;
  overflow:hidden;
  transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.service-card::after{
  content:"";
  position:absolute; top:-40px; right:-40px; width:110px; height:110px;
  border-radius:50%; background:radial-gradient(circle, rgba(201,162,39,0.18), transparent 70%);
  opacity:0; transition:opacity .35s ease;
}
.service-card:hover{transform:translateY(-8px); box-shadow:var(--shadow-card); border-color:var(--gold-500);}
.service-card:hover::after{opacity:1;}
.service-icon{
  width:54px; height:54px; border-radius:50%;
  background:var(--maroon-700); color:var(--gold-400);
  display:flex; align-items:center; justify-content:center; font-size:1.35rem;
  margin-bottom:1.1rem;
  transition:transform .35s var(--ease-stamp);
}
.service-card:hover .service-icon{transform:rotate(-8deg) scale(1.06);}
.service-card h3{font-size:1.08rem; font-weight:600; margin-bottom:.55rem;}
.service-card p{font-size:.9rem; color:var(--ink-soft); margin-bottom:1rem;}
.service-card .svc-link{font-size:.82rem; font-weight:700; color:var(--maroon-700); display:inline-flex; align-items:center; gap:.4rem;}
.service-card .svc-link i{transition:transform .25s ease;}
.service-card:hover .svc-link i{transform:translateX(4px);}
.svc-index{
  position:absolute; top:1.1rem; right:1.3rem;
  font-family:'Space Mono',monospace; font-size:.72rem; color:var(--ink-faint);
}

/* =========================================================
   WHY US (dark)
========================================================= */
.why-us{
  background:linear-gradient(175deg, var(--maroon-950), var(--maroon-900));
  color:var(--paper);
  position:relative;
}
.why-us::before{
  content:"";
  position:absolute; inset:0;
  background-image:repeating-linear-gradient(115deg, rgba(201,162,39,0.05) 0px, rgba(201,162,39,0.05) 1px, transparent 1px, transparent 26px);
  pointer-events:none;
}
.why-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; position:relative; z-index:1;}
.why-card{
  background:rgba(245,239,225,0.05);
  border:1px solid rgba(201,162,39,0.25);
  border-radius:var(--radius);
  padding:2rem 1.6rem;
  text-align:left;
}
.stamp-badge{
  width:58px; height:58px; border-radius:50%;
  border:2px solid var(--gold-500);
  color:var(--gold-400);
  display:flex; align-items:center; justify-content:center; font-size:1.4rem;
  margin-bottom:1.2rem;
  opacity:0;
  transform:scale(1.7) rotate(-18deg);
}
.stamp-badge.is-visible{
  animation:stampIn .55s var(--ease-stamp) forwards;
}
@keyframes stampIn{
  0%{opacity:0; transform:scale(1.7) rotate(-18deg);}
  60%{opacity:1; transform:scale(0.92) rotate(5deg);}
  100%{opacity:1; transform:scale(1) rotate(-6deg);}
}
.why-card h4{font-size:1.05rem; font-weight:600; margin-bottom:.5rem;}
.why-card p{font-size:.88rem; color:rgba(245,239,225,0.68); margin:0;}

/* =========================================================
   PROCESS / HOW IT WORKS
========================================================= */
.process-track{position:relative; margin-top:3rem;}
.process-line-wrap{position:relative; height:2px; margin:0 6% 3.2rem; display:block;}
.process-line-svg{width:100%; height:40px; display:block; overflow:visible;}
.process-line-path{stroke:var(--paper-line); stroke-width:2; fill:none; stroke-dasharray:8 10;}
.process-plane{
  position:absolute; top:-9px; left:0;
  color:var(--maroon-700); font-size:1.3rem;
  opacity:0;
}
.process-plane.fly{
  animation:fly-across 2.6s ease forwards;
}
@keyframes fly-across{
  0%{left:0%; opacity:0; transform:rotate(90deg) translateY(0);}
  8%{opacity:1;}
  100%{left:96%; opacity:1; transform:rotate(90deg) translateY(0);}
}
.process-steps{display:grid; grid-template-columns:repeat(4,1fr); gap:1.6rem;}
.step-card{
  background:var(--paper);
  border:1px solid var(--paper-line);
  border-radius:var(--radius);
  padding:1.7rem 1.4rem;
  position:relative;
}
.step-card::before, .step-card::after{
  content:""; position:absolute; top:50%; width:20px; height:20px; border-radius:50%;
  background:var(--paper-alt); transform:translateY(-50%);
}
.step-card::before{left:-11px;}
.step-card::after{right:-11px;}
.step-num{
  font-family:'Space Mono',monospace; font-size:.72rem; color:var(--maroon-700); font-weight:700;
  letter-spacing:.1em;
}
.step-card h4{font-size:1.02rem; font-weight:600; margin:.5rem 0 .5rem;}
.step-card p{font-size:.86rem; color:var(--ink-soft); margin:0;}
.step-card .step-icon{font-size:1.6rem; color:var(--gold-600); margin-bottom:.5rem; display:block;}

/* =========================================================
   TESTIMONIALS
========================================================= */
.testimonials{background:var(--paper-alt);}
.t-card{
  background:var(--paper);
  border:1px solid var(--paper-line);
  border-radius:18px;
  padding:2.6rem clamp(1.5rem,4vw,3.2rem);
  position:relative;
  max-width:820px;
  margin:0 auto;
  text-align:center;
}
.t-quote-mark{
  font-family:'Fraunces',serif; font-size:4rem; color:var(--gold-500); line-height:1; display:block; margin-bottom:.5rem;
}
.t-text{font-size:1.15rem; font-family:'Fraunces',serif; font-weight:500; font-style:italic; color:var(--ink); line-height:1.55; margin-bottom:1.6rem;}
.t-stars{color:var(--gold-500); margin-bottom:1rem; font-size:.95rem;}
.t-name{font-weight:700; font-size:.98rem;}
.t-role{font-size:.82rem; color:var(--ink-soft);}
.t-corner-stamp{
  position:absolute; top:1.4rem; right:1.6rem;
  width:52px; height:52px; border-radius:50%;
  border:2px dashed var(--maroon-700); color:var(--maroon-700);
  display:flex; align-items:center; justify-content:center; font-size:1.15rem;
  transform:rotate(10deg);
  opacity:.85;
}
#testimonialCarousel .carousel-indicators{position:static; margin-top:2rem;}
#testimonialCarousel .carousel-indicators button{
  width:9px; height:9px; border-radius:50%; background:var(--paper-line); border:none; opacity:1;
}
#testimonialCarousel .carousel-indicators button.active{background:var(--maroon-700);}
.carousel-control-prev, .carousel-control-next{
  width:44px; height:44px; top:50%; transform:translateY(-50%);
  background:var(--paper); border:1px solid var(--paper-line); border-radius:50%;
  opacity:1;
}
.carousel-control-prev{left:-10px;}
.carousel-control-next{right:-10px;}
@media (max-width:900px){.carousel-control-prev, .carousel-control-next{display:none;}}
.carousel-control-prev-icon, .carousel-control-next-icon{filter:invert(0.15) sepia(1) saturate(3) hue-rotate(310deg); width:1.1rem; height:1.1rem;}

/* =========================================================
   FAQ
========================================================= */
.faq-accordion .accordion-item{
  background:transparent; border:none; border-bottom:1px solid var(--paper-line);
}
.faq-accordion .accordion-button{
  background:transparent; box-shadow:none; font-family:'Fraunces',serif; font-weight:600; font-size:1.08rem;
  color:var(--ink); padding:1.3rem .5rem;
}
.faq-accordion .accordion-button:not(.collapsed){color:var(--maroon-700);}
.faq-accordion .accordion-button::after{
  background-image:none;
  content:"\F282";
  font-family:'bootstrap-icons';
  font-size:1.1rem;
  color:var(--maroon-700);
  transition:transform .3s ease;
}
.faq-accordion .accordion-button:not(.collapsed)::after{transform:rotate(45deg);}
.faq-accordion .accordion-body{padding:0 .5rem 1.5rem; color:var(--ink-soft); font-size:.94rem; line-height:1.6;}

/* =========================================================
   CONTACT
========================================================= */
.contact{
  background:linear-gradient(175deg, var(--maroon-950), var(--maroon-900));
  color:var(--paper);
  position:relative;
}
.contact-grid{display:grid; grid-template-columns:.9fr 1.1fr; gap:3.5rem; position:relative; z-index:1;}
.contact-item{display:flex; gap:1rem; margin-bottom:1.6rem;}
.contact-item .ci-icon{
  width:46px; height:46px; border-radius:50%; background:rgba(201,162,39,0.15);
  border:1px solid rgba(201,162,39,0.4); color:var(--gold-400);
  display:flex; align-items:center; justify-content:center; flex:none;
}
.contact-item h4{font-size:.98rem; font-weight:700; margin-bottom:.25rem;}
.contact-item p, .contact-item a{font-size:.9rem; color:rgba(245,239,225,0.72); margin:0; display:block;}
.contact-item a:hover{color:var(--gold-400);}
.map-embed{border-radius:14px; overflow:hidden; border:1px solid rgba(201,162,39,0.3); margin-top:1.5rem;}
.map-embed iframe{width:100%; height:220px; border:0; display:block; filter:grayscale(.2) contrast(1.05);}

.contact-form-card{
  background:var(--paper); color:var(--ink); border-radius:18px;
  padding:clamp(1.6rem,3vw,2.6rem); box-shadow:var(--shadow-soft);
}
.contact-form-card label{font-size:.82rem; font-weight:700; color:var(--ink-soft); margin-bottom:.35rem;}
.contact-form-card .form-control, .contact-form-card .form-select{
  border:1px solid var(--paper-line); border-radius:10px; padding:.7rem .9rem; font-size:.92rem;
  background:#fff;
}
.contact-form-card .form-control:focus, .contact-form-card .form-select:focus{
  border-color:var(--maroon-700); box-shadow:0 0 0 3px rgba(110,27,49,0.14);
}
.form-msg{display:none; padding:.8rem 1rem; border-radius:10px; font-size:.86rem; margin-bottom:1rem;}
.form-msg.success{display:block; background:rgba(110,27,49,0.08); color:var(--maroon-700); border:1px solid rgba(110,27,49,0.25);}
.form-msg.error{display:block; background:rgba(180,40,40,0.08); color:#8a1f1f; border:1px solid rgba(180,40,40,0.25);}

.whatsapp-float{
  position:fixed; bottom:24px; left:24px; z-index:900;
  background:#25D366; color:#fff; width:54px; height:54px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-size:1.5rem;
  box-shadow:0 12px 26px -8px rgba(37,211,102,0.6);
  transition:transform .25s ease;
}
.whatsapp-float:hover{transform:scale(1.08); color:#fff;}

/* =========================================================
   FOOTER
========================================================= */
.site-footer{background:var(--maroon-950); color:rgba(245,239,225,0.65); padding:3.5rem 0 1.5rem; border-top:1px solid rgba(201,162,39,0.25);}
.footer-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:2.5rem;}
.footer-grid h5{color:var(--paper); font-family:'Fraunces',serif; font-weight:600; font-size:1.02rem; margin-bottom:1.1rem;}
.footer-grid ul{list-style:none; padding:0; margin:0;}
.footer-grid li{margin-bottom:.6rem; font-size:.86rem;}
.footer-grid a:hover{color:var(--gold-400);}
.footer-social{display:flex; gap:.7rem; margin-top:1.2rem;}
.footer-social a{
  width:38px; height:38px; border-radius:50%; border:1px solid rgba(201,162,39,0.35);
  display:flex; align-items:center; justify-content:center; color:var(--gold-400);
  transition:all .25s ease;
}
.footer-social a:hover{background:var(--gold-500); color:var(--maroon-950); transform:translateY(-3px);}
.footer-bottom{border-top:1px solid rgba(201,162,39,0.15); margin-top:2.6rem; padding-top:1.4rem; display:flex; justify-content:space-between; flex-wrap:wrap; gap:.8rem; font-size:.78rem;}

/* =========================================================
   BACK TO TOP
========================================================= */
.back-to-top{
  position:fixed; bottom:24px; right:24px; z-index:900;
  width:50px; height:50px; border-radius:50%;
  background:var(--maroon-950); border:2px solid var(--gold-500); color:var(--gold-400);
  display:flex; align-items:center; justify-content:center; font-size:1.2rem;
  opacity:0; visibility:hidden; transform:translateY(12px);
  transition:all .35s ease;
}
.back-to-top.show{opacity:1; visibility:visible; transform:translateY(0);}
.back-to-top:hover{background:var(--gold-500); color:var(--maroon-950);}

/* =========================================================
   REVEAL ANIMATION
========================================================= */
.reveal{opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease;}
.reveal.is-visible{opacity:1; transform:none;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
  .reveal{opacity:1; transform:none;}
}

/* =========================================================
   RESPONSIVE
========================================================= */
@media (max-width:991px){
  .nav-links{display:none;}
  .hero-grid{grid-template-columns:1fr;}
  .pass-wrap{max-width:460px; margin:2rem auto 0;}
  .about-grid{grid-template-columns:1fr; gap:2.5rem;}
  .about-visual{height:320px; margin-bottom:1rem;}
  .why-grid{grid-template-columns:1fr 1fr;}
  .process-steps{grid-template-columns:1fr 1fr;}
  .process-line-wrap{display:none;}
  .contact-grid{grid-template-columns:1fr; gap:2.5rem;}
  .footer-grid{grid-template-columns:1fr 1fr; gap:2rem;}
  .stats-strip .stats-inner{grid-template-columns:1fr 1fr;}
}
@media (max-width:576px){
  .why-grid{grid-template-columns:1fr;}
  .process-steps{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;}
  .stats-strip .stats-inner{grid-template-columns:1fr;}
  .hero-ctas{flex-direction:column; align-items:stretch;}
  .hero-ctas .btn-gold, .hero-ctas .btn-outline-cream{justify-content:center;}
}


/** Disable animation hide-show in editor **/
.editor-styles-wrapper .reveal {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
}

/** Contact Form **/
.contactForm .wpforms-field-label{
    font-size: .82rem !important;
    font-weight: 700 !important;
    color: var(--ink-soft) !important;
    margin-bottom: .35rem !important;
}

.contactForm .wpforms-required-label {
    display: none !important;
}

.contactForm input, 
.contactForm select, 
.contactForm .choices__inner,
.contactForm textarea
{
    border: 1px solid var(--paper-line) !important;
    border-radius: 10px !important;
    padding: .7rem .9rem !important;
    font-size: .92rem !important;
    background: #fff !important;
}

.contactForm button[type="submit"] {
    width: 100%;
    text-align: center !important;
    cursor: pointer;
    background: linear-gradient(180deg, var(--gold-400), var(--gold-600)) !important;
    color: var(--maroon-950) !important;
    border: none !important;
    font-weight: 700 !important;
    height: 50px !important;
    border-radius: 999px !important;
    box-shadow: 0 10px 24px -10px rgba(201, 162, 39, 0.55) !important;
    transition: transform .25s ease, box-shadow .25s ease !important;
}

.contactForm button[type="submit"]::before {
  font-family: "bootstrap-icons";
  content: "\F6C0";
  margin-right: 0.5rem;
  display: inline-block;
  vertical-align: middle;
}

/* =========================================================
   HEADER / BREADCRUMB
========================================================= */
.page-header{
  position:relative;
  background:
    radial-gradient(1100px 620px at 85% -10%, rgba(201,162,39,0.16), transparent 60%),
    radial-gradient(900px 500px at -10% 110%, rgba(140,35,64,0.35), transparent 60%),
    linear-gradient(160deg, var(--maroon-950) 0%, #1F0912 55%, var(--maroon-900) 100%);
  color:var(--paper);
  padding-top:calc(6.5rem + 2rem);
  padding-bottom:3.5rem;
  border-bottom:1px solid rgba(201,162,39,0.25);
}
.breadcrumb-custom{
  font-family:'Space Mono',monospace;
  font-size:.78rem;
  color:rgba(245,239,225,0.65);
  margin-bottom:1rem;
}
.breadcrumb-custom a{color:var(--gold-400);}
.breadcrumb-custom a:hover{text-decoration:underline;}

.page-header h1{
  font-size:clamp(2.2rem,4vw,3.2rem);
  font-weight:600;
  margin-bottom:1rem;
}

/* =========================================================
   CONTACT PAGE SPECIFIC STYLES
========================================================= */
.contact-card{
  background:var(--paper);
  border:1px solid var(--paper-line);
  border-radius:20px;
  padding:clamp(1.8rem, 4vw, 2.8rem);
  box-shadow:var(--shadow-card);
}

.info-card{
  background:var(--paper-alt);
  border:1px solid var(--paper-line);
  border-radius:14px;
  padding:1.5rem;
  display:flex;
  align-items:flex-start;
  gap:1.2rem;
  transition:transform .25s ease;
}
.info-card:hover{
  transform:translateY(-3px);
}
.info-card-icon{
  width:48px; height:48px;
  border-radius:12px;
  background:var(--maroon-700);
  color:var(--gold-400);
  display:flex; align-items:center; justify-content:center;
  font-size:1.3rem;
  flex:none;
}
.info-card-content h5{
  font-size:1.05rem;
  font-weight:700;
  color:var(--maroon-950);
  margin-bottom:.3rem;
}
.info-card-content p{
  font-size:.9rem;
  color:var(--ink-soft);
  margin:0;
  line-height:1.5;
}

.form-control-custom, .form-select-custom{
  width:100%;
  background:var(--paper-alt);
  border:1px solid var(--paper-line);
  border-radius:10px;
  padding:.75rem 1rem;
  font-size:.92rem;
  color:var(--ink);
  transition:border-color .25s ease, box-shadow .25s ease;
  margin-bottom:1.2rem;
}
.form-control-custom:focus, .form-select-custom:focus{
  outline:none;
  border-color:var(--gold-600);
  box-shadow:0 0 0 3px rgba(201,162,39,0.2);
  background:var(--paper);
}

.map-container{
  border-radius:20px;
  overflow:hidden;
  border:1px solid var(--paper-line);
  box-shadow:var(--shadow-card);
  height:100%;
  min-height:380px;
}
.map-container iframe{
  width:100%;
  height:100%;
  min-height:380px;
  border:0;
}


/* =========================================================
   ABOUT CONTENT & CARDS
========================================================= */
.about-card{
  background:var(--paper);
  border:1px solid var(--paper-line);
  border-radius:18px;
  padding:2rem;
  box-shadow:var(--shadow-card);
  height:100%;
}

.stat-box{
  background:var(--paper-alt);
  border:1px solid var(--paper-line);
  border-radius:14px;
  padding:1.5rem;
  text-align:center;
}
.stat-box .num{
  font-family:'Fraunces',serif;
  font-size:2.5rem;
  font-weight:700;
  color:var(--maroon-700);
  line-height:1;
  margin-bottom:.4rem;
}
.stat-box .lbl{
  font-size:.85rem;
  color:var(--ink-soft);
  font-weight:600;
}

.value-card{
  background:var(--paper-alt);
  border:1px solid var(--paper-line);
  border-radius:14px;
  padding:1.5rem;
  transition:transform .25s ease;
}
.value-card:hover{
  transform:translateY(-4px);
}
.value-card .icon-wrap{
  width:48px; height:48px;
  border-radius:10px;
  background:var(--maroon-700);
  color:var(--gold-400);
  display:flex; align-items:center; justify-content:center;
  font-size:1.3rem;
  margin-bottom:1rem;
}

.timeline{
  position:relative;
  padding-left:2rem;
  margin:0;
  list-style:none;
}
.timeline::before{
  content:"";
  position:absolute;
  left:15px; top:10px; bottom:10px;
  width:2px;
  background:var(--paper-line);
}
.timeline-item{
  position:relative;
  margin-bottom:2rem;
}
.timeline-item:last-child{margin-bottom:0;}
.timeline-badge{
  position:absolute;
  left:-2rem; top:0;
  width:32px; height:32px;
  border-radius:50%;
  background:var(--gold-500);
  color:var(--maroon-950);
  display:flex; align-items:center; justify-content:center;
  font-family:'Space Mono',monospace;
  font-weight:700;
  font-size:.78rem;
  transform:translateX(-50%);
  border:2px solid var(--paper);
}

/* =========================================================
   DETAILED SERVICE CARDS
========================================================= */
.svc-block{
  background:var(--paper);
  border:1px solid var(--paper-line);
  border-radius:20px;
  padding:clamp(1.8rem, 4vw, 2.8rem);
  margin-bottom:2.5rem;
  box-shadow:var(--shadow-card);
  transition:border-color .3s ease;
  scroll-margin-top:140px;
}
.svc-block:hover{
  border-color:var(--gold-500);
}
.svc-block-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1.5rem;
  border-bottom:1px solid var(--paper-line);
  padding-bottom:1.5rem;
  margin-bottom:1.8rem;
}
.svc-block-title{
  display:flex;
  align-items:center;
  gap:1.2rem;
}
.svc-block-icon{
  width:60px; height:60px; border-radius:50%;
  background:var(--maroon-700); color:var(--gold-400);
  display:flex; align-items:center; justify-content:center;
  font-size:1.6rem; flex:none;
}
.svc-block-title h2{
  font-size:clamp(1.4rem, 2.5vw, 1.8rem);
  font-weight:600;
  margin:0;
}
.svc-block-title .badge-cat{
  font-family:'Space Mono',monospace;
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--maroon-700);
  background:var(--paper-alt);
  padding:.2rem .6rem;
  border-radius:4px;
  display:inline-block;
  margin-top:.3rem;
}

.svc-info-grid{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:2.5rem;
}

.svc-detail-list{
  list-style:none;
  padding:0;
  margin:1.2rem 0;
}
.svc-detail-list li{
  position:relative;
  padding-left:1.6rem;
  margin-bottom:.65rem;
  font-size:.95rem;
  color:var(--ink-soft);
}
.svc-detail-list li::before{
  content:"\F26B";
  font-family:'bootstrap-icons';
  position:absolute;
  left:0;
  top:2px;
  color:var(--gold-600);
  font-size:.9rem;
}

.svc-sidebar-card{
  background:var(--paper-alt);
  border:1px solid var(--paper-line);
  border-radius:14px;
  padding:1.4rem;
}
.svc-sidebar-card h4{
  font-size:.95rem;
  font-family:'Space Mono',monospace;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--maroon-700);
  margin-bottom:1rem;
  display:flex;
  align-items:center;
  gap:.5rem;
}