:root{
  --radius-xl: 1.25rem;
  --shadow-soft: 0 12px 30px rgba(0,0,0,.12);
  --shadow-card: 0 10px 22px rgba(0,0,0,.08);
  --border: rgba(17,24,39,.10);
  --text: #0f172a;
  --muted: rgba(15,23,42,.70);
  --bg: #ffffff;
  --bg-muted: #f6f8fb;
}

html{ scroll-behavior:smooth; }
body{
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color: var(--text);
  background: var(--bg);
}
html, body {
  width: 100%;
  overflow-x: clip; /* better than hidden on modern browsers */
}
/* Sticky footer (keeps footer at bottom even on short pages) */
.site-shell{
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.site-main{
  flex: 1 0 auto; /* take remaining space */
}

/* Footer should not shrink */
.site-footer{
  flex-shrink: 0;
}

a{ text-decoration: none; }
.mono{ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }

.skip-link{
  position:absolute; left:-999px; top:10px;
  background:#111827; color:#fff; padding:.6rem .9rem; border-radius:.6rem;
  z-index:9999;
}
.skip-link:focus{ left:10px; }

/* THEME TOKENS */
body.theme-blue{
  --p1:#1e3f6a; --p2:#2d5380; --p3:#3a689a; --p4:#629bce;
  --accent: var(--p2);
  --grad: linear-gradient(135deg, var(--p1), var(--p2) 45%, var(--p4));
}
body.theme-green{
  --p1:#075023; --p2:#006134; --p3:#008623; --p4:#00a65b; --p5:#bcd600;
  --accent: var(--p3);
  --grad: linear-gradient(135deg, var(--p1), var(--p2) 40%, var(--p4), var(--p5));
}

/* TOPBAR */
.topbar{
  background: var(--p1);
  color: rgba(255,255,255,.92);
  font-size: .92rem;
}
.topbar-row{
  display:flex; align-items:center; justify-content:space-between;
  gap: 1rem;
  padding: .45rem 0;
}
.topbar-left, .topbar-right{ display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; }
.topbar-pill{
  display:inline-flex; align-items:center; gap:.45rem;
  padding:.2rem .55rem;
  border:1px solid rgba(255,255,255,.18);
  border-radius: 999px;
  background: rgba(255,255,255,.06);
}
.topbar-btn{
  display:inline-flex; align-items:center; gap:.45rem;
  padding:.2rem .6rem;
  border:1px solid rgba(255,255,255,.18);
  border-radius: 999px;
  color: rgba(255,255,255,.95);
  background: rgba(255,255,255,.06);
  transition: transform .15s ease, background .15s ease;
}
.topbar-btn:hover{ background: rgba(255,255,255,.12); transform: translateY(-1px); color:#fff; }

/* HEADER */
.brand-logo{ height: 80px; width:auto; }
.brand-name{ font-weight: 700; letter-spacing: .2px; color: var(--p1); }
.btn-consultation{
  border-radius: 999px;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--p1);
  font-weight: 600;
  box-shadow: 0 8px 20px rgba(0,0,0,.08);
}
.btn-consultation:hover{ transform: translateY(-1px); box-shadow: var(--shadow-card); }
.btn-outline-theme{
  border-radius: 999px;
  border: 1px solid rgba(2,6,23,.18);
  color: var(--p1);
  font-weight: 600;
}
.btn-outline-theme:hover{ background: rgba(2,6,23,.06); color: var(--p1); }
.btn-lang{
  border-radius: 999px;
  border: 1px solid var(--border);
  background: #fff;
  color: rgba(15,23,42,.85);
}
.btn-lang:hover{ background: rgba(15,23,42,.04); }
.navbar .nav-link{
  font-weight: 600;
  color: rgba(15,23,42,.80);
}
.navbar .nav-link:hover{ color: var(--p1); }


/* BUTTONS */
.btn-theme{
  border-radius: 999px;
  border: 0;
}
.btn-theme.btn-primary{
  background: var(--grad);
  box-shadow: 0 10px 20px rgba(0,0,0,.12);
}
.btn-theme.btn-primary:hover{ filter: brightness(1.03); transform: translateY(-1px); }
.btn-glass{
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.25);
  color: #fff;
  background: rgba(255,255,255,.12);
  backdrop-filter: blur(10px);
}
.btn-glass:hover{ background: rgba(255,255,255,.18); color:#fff; }
.btn-outline-light{ border-radius: 999px; }

/* Green primary button (without switching the whole page theme) */
.btn-primary-green{
  --grad: linear-gradient(135deg, #075023, #006134 40%, #00a65b, #bcd600);
}

.btn-primary-green:hover{
  filter: brightness(1.03);
  transform: translateY(-1px);
}

/* HERO */
.hero{
  position: relative;
  min-height: 78vh;
  display:flex; align-items:center;
  overflow:hidden;
}
.hero-video{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit: cover;
  filter: contrast(1.05) saturate(1.05);
}
.hero-overlay{
  position:absolute; inset:0;
  background: linear-gradient(90deg, rgba(2,6,23,.82), rgba(2,6,23,.45) 45%, rgba(2,6,23,.18));
}
.hero-content{ position:relative; z-index:2; padding: 5.5rem 0; }
.hero-kicker{
  color: rgba(255,255,255,.85);
  letter-spacing: .22em;
  text-transform: uppercase;
  font-size: .82rem;
  margin-bottom: .75rem;
}
.hero-title{
  color:#fff;
  font-weight: 800;
  font-size: clamp(2.2rem, 3.8vw, 3.5rem);
  line-height: 1.05;
  margin-bottom: 1rem;
}
.hero-lead{
  color: rgba(255,255,255,.82);
  font-size: 1.05rem;
}
.hero-actions{ display:flex; flex-wrap:wrap; gap:.6rem; margin-top: 1.25rem; }
.hero-badges{ display:flex; flex-wrap:wrap; gap:.55rem; }
.badge-pill{
  display:inline-flex; align-items:center; gap:.45rem;
  padding:.45rem .75rem;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.20);
  color: rgba(255,255,255,.92);
  font-weight: 600;
}
.hero-card{
  background: rgba(255,255,255,.95);
  border-radius: var(--radius-xl);
  padding: 1.25rem;
  box-shadow: var(--shadow-soft);
}
.hero-card-title{
  font-weight: 800;
  color: var(--p1);
  margin-bottom: .75rem;
}
.hero-card-item{
  display:flex; gap:.75rem; align-items:flex-start;
  padding: .75rem 0;
  border-bottom: 1px dashed rgba(15,23,42,.14);
}
.hero-card-item:last-of-type{ border-bottom: none; }
.hero-card-item i{
  color: var(--p2);
  margin-top: .15rem;
}
.hero-card-item .muted{ color: var(--muted); font-size: .9rem; }
.hero-card-cta{ margin-top: .9rem; }
.hero-card-note{
  margin-top: .8rem;
  color: rgba(15,23,42,.75);
  font-size: .92rem;
}

/* Ensure the hero buttons + text are centered nicely */
.hero-actions{
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
}

.hero-center .hero-lead{
  text-align: center;
}

/* Optional: keep the kicker centered too */
.hero-kicker{
  text-align: center;
}

/* SECTIONS */
.section{ padding: 4.5rem 0; }
.section-muted{ background: var(--bg-muted); }
.section-head{ margin-bottom: 1.75rem; }
.section-title{
  font-weight: 800;
  font-size: clamp(1.55rem, 2.3vw, 2.1rem);
  margin-bottom: .4rem;
}
.section-lead{
  color: var(--muted);
  margin: 0;
  max-width: 72ch;
}
.eyebrow{
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .16em;
  font-size: .78rem;
  color: var(--p4);
  margin-bottom: .65rem;
}

/* SERVICE CARDS */
/* Bigger cards + richer hover effects */
.service-card{
  position: relative;
  display:block;
  min-height: 560px;                 /* bigger */
  border-radius: 1.5rem;
  overflow:hidden;
  background-size: cover;
  background-position:center;
  box-shadow: 0 14px 34px rgba(0,0,0,.14);
  border: 1px solid rgba(255,255,255,.18);
  transform: translateZ(0);
  transition: transform .22s ease, box-shadow .22s ease, filter .22s ease;
}

/* Dark overlay + subtle gradient for readability */
.service-card-overlay{
  position:absolute; inset:0;
  background:
    radial-gradient(800px 300px at 20% 10%, rgba(255,255,255,.12), rgba(255,255,255,0) 55%),
    linear-gradient(180deg, rgba(2, 6, 23, 0.041), rgba(2, 6, 23, 0.425));
  transition: opacity .22s ease;
}

/* Add a “glow” ring that appears on hover */
.service-card::before{
  content:"";
  position:absolute; inset: 10px;
  border-radius: 1.25rem;
  border: 1px solid rgba(255,255,255,.22);
  opacity: 0;
  transform: scale(.985);
  transition: opacity .22s ease, transform .22s ease;
  pointer-events:none;
}

/* Body */
.service-card-body{
  position:absolute; inset:0;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding: 1.5rem;                   /* more padding */
  color:#fff;
  z-index: 2;
}

/* Title/desc bigger */
.service-card-title{
  font-weight: 900;
  margin:0;
  font-size: 1.45rem;
  letter-spacing: .2px;
}
/* Hide by default */
.service-card-text{
  display: none;
  color: rgba(255,255,255,.84);
  margin: .55rem 0 0;
  font-size: 1.02rem;
  max-width: 52ch;
}

/* Show when the CARD is hovered (not the text itself) */
.service-card:hover .service-card-text{
  display: block;
}

/* Optional: smoother reveal instead of pop-in (recommended) */
.service-card-text{
  display: block;            /* keep in flow for animation */
  max-height: 0;
  opacity: 0;
  transform: translateY(6px);
  overflow: hidden;
  transition: max-height .25s ease, opacity .25s ease, transform .25s ease;
}

.service-card:hover .service-card-text{
  max-height: 120px;         /* adjust if you have longer text */
  opacity: 1;
  transform: translateY(0);
}

/* Right arrow button (already there) */
.service-card-hover{
  position:absolute; right: 18px; top: 18px;
  width: 50px; height: 50px;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  display:flex; align-items:center; justify-content:center;
  border: 1px solid rgba(255,255,255,.22);
  opacity: 0;
  transform: translateY(-6px) scale(.98);
  transition: opacity .22s ease, transform .22s ease, background .22s ease;
  color:#fff;
  z-index: 3;
}

/* Add a bottom “sweep” highlight on hover */
.service-card::after{
  content:"";
  position:absolute;
  left:-30%;
  bottom:-45%;
  width: 160%;
  height: 80%;
  background: linear-gradient(90deg, transparent, rgba(0,0,0,.3), transparent);
  transform: rotate(10deg) translateY(30px);
  opacity: 0;
  transition: opacity .25s ease, transform .25s ease;
  pointer-events:none;
}

/* Hover effects */
.service-card:hover{
  transform: translateY(-6px) scale(1.01);
  box-shadow: 0 20px 55px rgba(0,0,0,.22);
  filter: saturate(1.06) contrast(1.03);
}
.service-card:hover .service-card-overlay{
  opacity: .95;
}
.service-card:hover::before{
  opacity: 1;
  transform: scale(1);
}
.service-card:hover .service-card-hover{
  opacity: 1;
  transform: translateY(0) scale(1);
  background: rgba(255,255,255,.20);
}
.service-card:hover::after{
  opacity: 1;
  transform: rotate(10deg) translateY(0);
}

/* Better spacing on small screens */
@media (max-width: 575px){
  .service-card{ min-height: 320px; }
  .service-card-body{ padding: 1.25rem; }
  .service-card-title{ font-size: 1.3rem; }
}

/* LISTS */
/* Bullet list with blue points (no <i> needed) */
.icon-list{
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: .55rem;
}

.icon-list li{
  position: relative;
  padding-left: 1.25rem; /* space for bullet */
  display: block;
}

/* Blue bullet */
.icon-list li::before{
  content: "";
  position: absolute;
  left: 0;
  top: .55em;
  width: .55rem;
  height: .55rem;
  border-radius: 999px;
  background: var(--p2); /* blue */
  box-shadow: 0 0 0 4px rgba(98,155,206,.18); /* subtle glow (optional) */
}

/* Compact variant */
.icon-list.compact{ gap: .4rem; }
.icon-list.compact li{ font-size: .95rem; }

.two-col-list{ display:grid; grid-template-columns: 1fr 1fr; gap:.55rem .75rem; color: rgba(15,23,42,.84); }
@media (max-width: 420px){ .two-col-list{ grid-template-columns: 1fr; } }

/* PHOTO GRID */
.photo-grid{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}
.photo-tile{
  position:relative;
  min-height: 300px;
  border-radius: var(--radius-xl);
  background-size: cover;
  background-position:center;
  overflow:hidden;
  box-shadow: var(--shadow-card);
  border: 1px solid rgba(2,6,23,.06);
}

.photo-tile.wide{ grid-column: 1 / -1; min-height: 200px; }
.photo-tile.tall{ grid-row: span 2; min-height: 334px; }

/* PARALLAX */

/* Center parallax content (text + buttons) */
.parallax{
  position: relative;
  min-height: 660px;
  display: flex;
  align-items: center;
  justify-content: center;   /* center horizontally */
  text-align: center;        /* center text */
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  overflow: hidden;
}

@media (max-width: 991px){
  .parallax{ background-attachment: scroll; }
}

.parallax-overlay{
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(2,6,23,.78), rgba(2,6,23,.38));
}

.parallax-content{
  position: relative;
  z-index: 2;
  padding: 3rem 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;       /* center children */
  justify-content: center;
}

.parallax-title{
  color:#fff;
  font-weight: 900;
  font-size: clamp(1.8rem, 3vw, 2.5rem);
  margin: 0 0 .5rem;
}

.parallax-text{
  color: rgba(255,255,255,.82);
  margin: 0 0 1.2rem;
}

/* MAP */
.map-card{
  border-radius: var(--radius-xl);
  overflow:hidden;
  box-shadow: var(--shadow-card);
  border: 1px solid rgba(2,6,23,.06);
  background:#fff;
  min-height: 360px;
}
.map-card iframe{ width:100%; height:100%; min-height: 360px; border:0; display:block; }

/* PROJECTS */
.project-card{
  border-radius: var(--radius-xl);
  overflow:hidden;
  box-shadow: var(--shadow-card);
  border: 1px solid rgba(2,6,23,.06);
  background:#fff;
  height:100%;
  display:flex;
  flex-direction:column;
}
.project-photo{ height: 190px; background-size:cover; background-position:center; }
.project-body{ padding: 1.1rem 1.1rem 1.2rem; display:flex; flex-direction:column; flex:1; }
.project-meta{ font-size:.82rem; letter-spacing:.12em; text-transform:uppercase; color: var(--p2); font-weight:800; }
.project-title{ font-weight: 800; margin:.35rem 0 .4rem; }
.project-text{ color: var(--muted); margin:0 0 .8rem; }
.project-link{ margin-top:auto; font-weight: 700; color: var(--p1); }
.project-link:hover{ color: var(--p2); }
.project-tags{ display:flex; flex-wrap:wrap; gap:.4rem; }
.tag{
  font-size:.8rem;
  padding:.2rem .55rem;
  border-radius: 999px;
  background: rgba(15,23,42,.06);
  border: 1px solid rgba(15,23,42,.08);
  color: rgba(15,23,42,.75);
  font-weight: 600;
}

/* PHOTO WALL */
.photo-wall{ background: #fff; border: 1px solid rgba(2,6,23,.06); border-radius: var(--radius-xl); box-shadow: var(--shadow-card); overflow:hidden; }
.photo-wall-head{ padding: 1.1rem 1.1rem 0; }
.photo-wall-grid{
  padding: 1.1rem;
  display:grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 10px;
}
.photo-wall-item{
  position:relative;
  min-height: 110px;
  border-radius: 16px;
  background-size: cover;
  background-position:center;
  overflow:hidden;
  border: 1px solid rgba(255,255,255,.15);
}
.photo-wall-item::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(2,6,23,.05), rgba(2,6,23,.55));
}
.photo-wall-item span{
  position:absolute; left:10px; bottom:8px;
  z-index:2;
  color:#fff;
  font-weight: 700;
  font-size:.8rem;
  background: rgba(2,6,23,.32);
  border: 1px solid rgba(255,255,255,.18);
  padding: .2rem .5rem;
  border-radius: 999px;
}
@media (max-width: 991px){ .photo-wall-grid{ grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 575px){ .photo-wall-grid{ grid-template-columns: repeat(2, 1fr); } }

/* PAGE HERO */
.page-hero{
  padding: 3.2rem 0 2.2rem;
  background: linear-gradient(180deg, rgba(2,6,23,.03), rgba(2,6,23,0));
}
.page-title{
  font-weight: 900;
  font-size: clamp(2rem, 3vw, 2.8rem);
  margin:0 0 .5rem;
}
.page-lead{ color: var(--muted); margin:0; max-width: 72ch; }
.page-hero-image{
  position:relative;
  padding: 5rem 0;
  background-size: cover;
  background-position:center;
  overflow:hidden;
}
.page-hero-overlay{
  position:absolute; inset:0;
  background: linear-gradient(90deg, rgba(2,6,23,.6), rgba(2,6,23,.25));
}
.page-hero-image .container{ position:relative; z-index:2; }

/* NAV PILLS */
.nav-pills-theme .nav-link{
  border-radius: 999px;
  font-weight: 800;
  color: rgba(15,23,42,.75);
  border: 1px solid rgba(15,23,42,.12);
  margin-right: .6rem;
}
.nav-pills-theme .nav-link.active{
  background: var(--grad);
  border-color: transparent;
}

/* Center nav between logo (left) and buttons (right) on desktop */
@media (min-width: 992px) {
  .navbar .navbar-brand { flex: 0 0 auto; }
  .navbar #mainNav { flex: 1 1 auto; } /* take remaining space */
  .navbar .order-lg-3 { flex: 0 0 auto; } /* keep right buttons tight */
}
@media (max-width: 992px) {
  .topbar-left {display: none;}
  .topbar-right span{display: none;}
  .topbar-right {align-items: end;  justify-content: end; text-align: end;}
  .topbar-row{
  display:flex; align-items:end; justify-content:end;

}
  .hero-lead{
    display: none;
  }
  .hero-title{
font-size: clamp(2rem, 1.8vw, 2.5rem);
  }  

  .btn-consultation span{ display: none;}
}
/* Stylized underline for nav links (hover + active) */
.navbar .nav-link{
  position: relative;
  padding-bottom: .35rem; /* room for underline */
}

.navbar .nav-link::after{
  content: "";
  position: absolute;
  left: .5rem;
  right: .5rem;
  bottom: .15rem;
  height: 3px;
  border-radius: 999px;
  background: var(--grad);          /* uses your theme gradient */
  transform: scaleX(0);
  transform-origin: center;
  opacity: 0;
  transition: transform .18s ease, opacity .18s ease;
}

.navbar .nav-link:hover::after,
.navbar .nav-link:focus-visible::after,
.navbar .nav-link.active::after{
  transform: scaleX(1);
  opacity: 1;
}

/* Optional: slightly stronger text color when active/hover */
.navbar .nav-link:hover,
.navbar .nav-link:focus-visible,
.navbar .nav-link.active{
  color: var(--p1);
}

/* Optional: make the dropdown look more “premium” + keep theme styling */
.navbar .dropdown-menu{
  border-radius: 1rem;
  border: 1px solid rgba(2,6,23,.08);
  box-shadow: 0 18px 40px rgba(0,0,0,.12);
  padding: .5rem;
}

.navbar .dropdown-item{
  border-radius: .75rem;
  padding: .6rem .75rem;
  font-weight: 700;
}

.navbar .dropdown-item.active,
.navbar .dropdown-item:active{
  background: var(--grad);
  color: #fff;
}

/* ALERT THEME */
.alert-theme{
  border-radius: var(--radius-xl);
  border: 1px solid rgba(2,6,23,.08);
  background: rgba(2,6,23,.04);
}

/* LIST CARDS */
.list-cards{ display:grid; gap: 10px; }
.list-card{
  padding: .9rem 1rem;
  border-radius: var(--radius-xl);
  background:#fff;
  border: 1px solid rgba(2,6,23,.08);
  box-shadow: 0 6px 14px rgba(0,0,0,.05);
  display:flex; align-items:center; gap:.75rem;
  font-weight: 700;
}
.section-muted .list-card{ background:#ffffff; }
.list-card i{ color: var(--p2); width: 22px; text-align:center; }

.brand-strip{ display:flex; flex-wrap:wrap; gap:.55rem; }
.brand-chip{
  display:inline-flex; align-items:center;
  padding: .45rem .7rem;
  border-radius: 999px;
  border: 1px solid rgba(2,6,23,.10);
  background: rgba(2,6,23,.04);
  font-weight: 700;
  color: rgba(15,23,42,.78);
}

/* CTA */
.section-cta{ background: radial-gradient(1200px 500px at 20% 0%, rgba(98,155,206,.18), rgba(255,255,255,0)); }
body.theme-green .section-cta{ background: radial-gradient(1200px 500px at 20% 0%, rgba(0,166,91,.18), rgba(255,255,255,0)); }
.cta-box{
  border-radius: var(--radius-xl);
  background: #fff;
  border: 1px solid rgba(2,6,23,.08);
  box-shadow: var(--shadow-card);
  padding: 1.4rem 1.5rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 1rem;
  flex-wrap:wrap;
}
.cta-title{ font-weight: 900; margin:0 0 .2rem; }
.cta-text{ margin:0; color: var(--muted); }
.cta-actions{ display:flex; flex-wrap:wrap; gap:.6rem; }

/* FORMS */
.form-hint{ color: var(--muted); font-size: .9rem; }
.divider{ height:1px; background: rgba(15,23,42,.10); }

.contact-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 10px; }
@media (max-width: 420px){ .contact-grid{ grid-template-columns: 1fr; } }
.contact-tile{
  display:flex; align-items:center; gap:.7rem;
  padding: .75rem .9rem;
  border-radius: var(--radius-xl);
  border: 1px solid rgba(2,6,23,.08);
  background: rgba(2,6,23,.03);
  color: rgba(15,23,42,.80);
  font-weight: 700;
}
.contact-tile i{ color: var(--p2); width: 20px; text-align:center; }
.contact-tile:hover{ background: rgba(2,6,23,.05); color: rgba(15,23,42,.90); }
.contact-tile.no-link:hover{ background: rgba(2,6,23,.03); }

/* FOOTER */
.site-footer{
  background: #0b1220;
  color: rgba(255,255,255,.78);
  padding: 3rem 0 2rem;
  margin-top: 0;
}
.footer-brand{ display:block; gap:.75rem; align-items:center; }
.footer-logo{ height: 100px; width:auto; filter: drop-shadow(0 10px 18px rgba(0,0,0,.25)); }
.footer-title{ color:#fff; font-weight: 900; }
.footer-sub{ color: rgba(255,255,255,.70); font-weight: 600; font-size: .92rem; }
.footer-heading{ color:#fff; font-weight: 900; margin-bottom: .6rem; }
.footer-list{ list-style:none; padding:0; margin:0; display:grid; gap:.45rem; }
.footer-list a{ color: rgba(255,255,255,.80); }
.footer-list a:hover{ color:#fff; }
.footer-list i{ width: 18px; color: rgba(255,255,255,.75); }
.footer-sep{ border-color: rgba(255,255,255,.14); }
.footer-bottom{ display:block; justify-content:center; align-items:center; color: rgba(255,255,255,.70); text-align: center;}
.footer-text{ color: rgba(255,255,255,.72); }

/* Center footer content on mobile */
@media (max-width: 767px){
  .site-footer{ text-align: center; }

  .footer-brand{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .75rem;
  }

  .footer-logo{ margin: 0 auto; }

  .footer-list{
    justify-items: center;      /* centers grid items */
  }

  .footer-list li{
    width: fit-content;         /* keeps items tight */
  }

  .footer-bottom{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    text-align: center;
  }
}

.anchor{ position: relative; top: -90px; display:block; height:1px; }

/* MODAL */
/* ===== Cleaner wizard modal: more whitespace, simpler ===== */
.consult-modal{
  border-radius: 1.6rem;
  border: 1px solid rgba(2,6,23,.08);
  overflow: hidden;
}

.consult-head{
  padding: 1.25rem 1.25rem 1rem;
  background: #fff;
  border-bottom: 1px solid rgba(2,6,23,.08);
}

.consult-badge{
  width: 46px;
  height: 46px;
  border-radius: 16px;
  display: grid;
  place-items: center;
  background: var(--grad);
  color: #fff;
  box-shadow: 0 14px 30px rgba(0,0,0,.14);
}

.consult-progress-wrap{
  padding: .9rem 1.25rem 1rem;
  background: #fff;
  border-bottom: 1px solid rgba(2,6,23,.08);
}

.consult-progress{
  width: 100%;
  height: 10px;
  border-radius: 999px;
  background: rgba(2,6,23,.08);
  overflow: hidden;
}

.consult-progress-bar{
  height: 100%;
  border-radius: 999px;
  background: var(--grad);
  transition: width .25s ease;
}

.consult-progress-meta{
  margin-top: .6rem;
  font-weight: 700;
  color: rgba(15,23,42,.70);
  font-size: .95rem;
}

.consult-body{
  padding: 1.25rem 1.25rem 0;
  background: #fff;
}

.consult-step-title{
  font-weight: 900;
  font-size: 1.1rem;
  margin-bottom: .2rem;
}

.consult-step-sub{
  color: rgba(15,23,42,.62);
  margin-bottom: 1rem;
}

.consult-card{
  border-radius: 1.25rem;
  border: 1px solid rgba(2,6,23,.08);
  background: #fff;
  box-shadow: 0 8px 20px rgba(0,0,0,.06);
}

.consult-card-spacious{
  padding: 1.15rem 1.15rem 1.25rem;
}

.spacer{ height: 18px; }

.consult-input,
.consult-textarea{
  border-radius: 1rem !important;
  border: 1px solid rgba(2,6,23,.14);
  padding: .8rem .9rem;
}

.consult-input:focus,
.consult-textarea:focus{
  box-shadow: 0 0 0 .25rem rgba(98,155,206,.18);
  border-color: rgba(98,155,206,.55);
}

.consult-note{
  border-radius: 1.1rem;
  border: 1px dashed rgba(2,6,23,.18);
  background: rgba(2,6,23,.03);
  padding: .85rem 1rem;
  color: rgba(15,23,42,.72);
  font-weight: 650;
}

/* Step panes */
.consult-step-pane{ display: none; }
.consult-step-pane.is-active{ display: block; animation: consultFade .16s ease; }

@keyframes consultFade{
  from{ opacity: 0; transform: translateY(6px); }
  to{ opacity: 1; transform: translateY(0); }
}

/* Footer */
.consult-footer{
  margin-top: 1.25rem;
  padding: 1rem 1.25rem;
  border-top: 1px solid rgba(2,6,23,.08);
  background: #fff;
}

/* ===== Clickable multi-select cards ===== */
.service-picks{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

@media (max-width: 575px){
  .service-picks{ grid-template-columns: 1fr; }
}

.service-pick{
  cursor: pointer;
  display: block;
  user-select: none;
}

.service-pick input{
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.service-pick-card{
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: .95rem 1rem;
  border-radius: 1.1rem;
  border: 1px solid rgba(2,6,23,.10);
  background: rgba(2,6,23,.02);
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease, background .15s ease;
}

.service-pick-icon{
  width: 42px;
  height: 42px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  background: rgba(2,6,23,.06);
  color: var(--p2);
  flex: 0 0 auto;
}

.service-pick-title{
  display: block;
  font-weight: 900;
  color: rgba(15,23,42,.92);
  line-height: 1.15;
}

.service-pick-sub{
  display: block;
  margin-top: .2rem;
  color: rgba(15,23,42,.62);
  font-size: .92rem;
}

/* Hover */
.service-pick:hover .service-pick-card{
  transform: translateY(-2px);
  box-shadow: 0 12px 26px rgba(0,0,0,.10);
  background: rgba(2,6,23,.03);
}

/* Checked state */
.service-pick input:checked + .service-pick-card{
  border-color: rgba(98,155,206,.55);
  background: rgba(98,155,206,.10);
  box-shadow: 0 14px 30px rgba(0,0,0,.12);
}

.service-pick input:checked + .service-pick-card .service-pick-icon{
  background: var(--grad);
  color: #fff;
}

/* Invalid highlight for the whole group */
.service-picks.is-invalid .service-pick-card{
  border-color: rgba(220,53,69,.55);
}

/* RESPONSIVE tweaks */
@media (max-width: 991px){
  .hero{ min-height: auto; }
  .hero-content{ padding: 4.5rem 0; }
  .hero-card{ margin-top: 1rem; }
}

.hp{ position:absolute !important; left:-9999px !important; top:auto !important; width:1px !important; height:1px !important; overflow:hidden !important; }
