:root{
  --bg:#0b1220;
  --panel:#0f1b33;
  --card:#101a2e;
  --text:#e9eefc;
  --muted:rgba(233,238,252,.72);
  --brand:#d2a84d; /* gold */
  --brand2:#1e3a8a; /* deep blue */
  --accent:#22c55e; /* green for WhatsApp */
  --ring:rgba(210,168,77,.35);
  --shadow: 0 18px 50px rgba(0,0,0,.35);
  --shadow2: 0 10px 28px rgba(0,0,0,.28);
  --radius: 18px;
  --radius2: 28px;
  --max: 1120px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family: system-ui,-apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  background: radial-gradient(1200px 800px at 15% 10%, rgba(30,58,138,.35), transparent 55%),
              radial-gradient(900px 700px at 85% 20%, rgba(210,168,77,.25), transparent 55%),
              radial-gradient(900px 700px at 50% 95%, rgba(34,197,94,.10), transparent 55%),
              var(--bg);
  color:var(--text);
  line-height:1.45;
}

a{color:inherit; text-decoration:none}
.container{max-width:var(--max); margin:0 auto; padding:0 18px}
small, .small{font-size:.92rem; color:var(--muted)}
.badge{
  display:inline-flex; gap:8px; align-items:center;
  padding:8px 12px; border-radius:999px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
  color:var(--muted);
}

.topbar{
  background: rgba(15,27,51,.65);
  border-bottom: 1px solid rgba(255,255,255,.08);
  backdrop-filter: blur(10px);
}
.topbar .row{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:10px 0;
  font-size:.92rem;
}
.topbar .left, .topbar .right{
  display:flex; flex-wrap:wrap; align-items:center; gap:14px;
}
.kbd{
  font-weight:700;
  color: var(--text);
  background: rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
  border-radius: 10px;
  padding: 4px 8px;
}
.lang-switch{
  display:flex; gap:8px; align-items:center;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  padding:4px;
  background:rgba(255,255,255,.04);
}
.lang-switch button{
  border:0; background:transparent; color:var(--muted);
  padding:6px 10px; border-radius:999px;
  cursor:pointer; font-weight:700;
}
.lang-switch button.active{
  background:rgba(210,168,77,.18);
  color:var(--text);
  box-shadow: 0 0 0 3px rgba(210,168,77,.08) inset;
}

.nav{
  position: sticky; top:0;
  z-index: 50;
  background: rgba(11,18,32,.55);
  border-bottom: 1px solid rgba(255,255,255,.08);
  backdrop-filter: blur(12px);
}
.nav .row{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:12px 0;
}
.brand{
  display:flex; align-items:center; gap:12px;
}
.brand img{
  width:44px; height:44px; border-radius:14px;
  box-shadow: 0 8px 22px rgba(0,0,0,.25);
  border:1px solid rgba(255,255,255,.10);
  background:#fff;
  object-fit:cover;
}
.brand .name{
  display:flex; flex-direction:column; line-height:1.1;
}
.brand .name strong{letter-spacing:.2px}
.brand .name span{color:var(--muted); font-size:.88rem}

.navlinks{display:flex; align-items:center; gap:18px}
.navlinks a{
  color: var(--muted);
  font-weight:700;
  padding:10px 10px;
  border-radius: 12px;
}
.navlinks a:hover, .navlinks a.active{
  color: var(--text);
  background: rgba(255,255,255,.06);
}
.ctas{display:flex; align-items:center; gap:10px}

.btn{
  display:inline-flex; gap:10px; align-items:center; justify-content:center;
  padding:12px 14px;
  border-radius: 14px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  color: var(--text);
  font-weight:800;
  cursor:pointer;
  box-shadow: 0 10px 24px rgba(0,0,0,.18);
  transition: transform .12s ease, background .12s ease, border .12s ease;
}
.btn:hover{transform: translateY(-1px); background: rgba(255,255,255,.09)}
.btn.primary{
  background: linear-gradient(135deg, rgba(210,168,77,.95), rgba(210,168,77,.65));
  border:1px solid rgba(210,168,77,.35);
  color:#151515;
}
.btn.primary:hover{background: linear-gradient(135deg, rgba(210,168,77,1), rgba(210,168,77,.70))}
.btn.whatsapp{
  background: rgba(34,197,94,.14);
  border:1px solid rgba(34,197,94,.35);
}
.btn.ghost{
  background: transparent;
  border:1px solid rgba(255,255,255,.14);
  box-shadow:none;
}
.icon{width:18px; height:18px; display:inline-block}
.hamburger{display:none}

.hero{
  padding: 44px 0 24px;
}
.hero-grid{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap:18px;
  align-items:stretch;
}
.hero-card{
  position:relative;
  border-radius: var(--radius2);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  box-shadow: var(--shadow);
}
.hero-card .bg{
  position:absolute; inset:0;
  background-position:center;
  background-size:cover;
  filter:saturate(1.05) contrast(1.05);
  transform: scale(1.02);
}
.hero-card .overlay{
  position:absolute; inset:0;
  background: linear-gradient(90deg, rgba(11,18,32,.92) 0%, rgba(11,18,32,.72) 48%, rgba(11,18,32,.40) 100%);
}
.hero-card .content{
  position:relative; padding: 34px;
}
.h-eyebrow{
  display:flex; flex-wrap:wrap; gap:10px; align-items:center;
  margin-bottom:16px;
}
.h-title{
  font-size: clamp(2rem, 4vw, 3.15rem);
  line-height:1.05;
  margin: 0 0 12px;
  letter-spacing: -0.6px;
}
.h-sub{
  color: var(--muted);
  font-size: 1.06rem;
  max-width: 54ch;
  margin: 0 0 18px;
}
.hero-actions{
  display:flex; flex-wrap:wrap; gap:10px;
  margin: 16px 0 10px;
}
.hero-note{
  margin-top:14px;
  padding: 12px 14px;
  border-radius: 16px;
  background: rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.10);
  color: var(--muted);
}
.side-stack{
  display:grid; gap:18px;
}
.side-card{
  border-radius: var(--radius2);
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  box-shadow: var(--shadow2);
  padding: 18px;
}
.side-card h3{margin:0 0 8px; font-size:1.05rem}
.side-card p{margin:0 0 12px; color:var(--muted)}
.pills{display:flex; flex-wrap:wrap; gap:8px}
.pill{
  padding:8px 10px; border-radius:999px;
  background: rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.10);
  color: var(--muted);
  font-weight:700;
  font-size:.92rem;
}

.section{padding: 34px 0}
.section h2{
  margin:0 0 10px;
  font-size: 1.8rem;
  letter-spacing: -.3px;
}
.section .lead{color:var(--muted); margin:0 0 18px; max-width: 72ch}
.grid{
  display:grid; gap:14px;
}
.grid.cols-3{grid-template-columns: repeat(3, 1fr)}
.grid.cols-2{grid-template-columns: repeat(2, 1fr)}
.card{
  border-radius: var(--radius);
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  box-shadow: var(--shadow2);
  padding: 18px;
}
.card:hover{border-color: rgba(210,168,77,.28)}
.card h3{margin:0 0 8px}
.card p{margin:0; color:var(--muted)}
.card .meta{margin-top:12px; display:flex; gap:10px; flex-wrap:wrap}
.card .meta .tag{
  padding:6px 10px;
  border-radius: 999px;
  background: rgba(210,168,77,.10);
  border:1px solid rgba(210,168,77,.22);
  color: rgba(233,238,252,.9);
  font-weight:800;
  font-size:.88rem;
}

.tabs{
  display:flex; flex-wrap:wrap; gap:8px;
  margin-bottom: 14px;
}
.tab{
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.04);
  color: var(--muted);
  padding: 10px 12px;
  border-radius: 14px;
  cursor:pointer;
  font-weight:900;
}
.tab.active{
  background: rgba(210,168,77,.14);
  border-color: rgba(210,168,77,.30);
  color: var(--text);
}

.stepper{
  display:grid; grid-template-columns: repeat(4,1fr);
  gap:12px;
}
.step{
  position:relative;
  padding:16px;
  border-radius: var(--radius);
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
}
.step b{
  display:inline-flex; align-items:center; justify-content:center;
  width:32px; height:32px; border-radius: 12px;
  background: rgba(210,168,77,.16);
  border:1px solid rgba(210,168,77,.25);
  color: var(--text);
  margin-bottom:10px;
}
.step p{margin:6px 0 0; color:var(--muted)}

.slider{
  position:relative;
  overflow:hidden;
  border-radius: var(--radius2);
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
}
.slides{
  display:flex;
  transition: transform .35s ease;
}
.slide{
  min-width: 100%;
  padding: 22px;
}
.quote{
  font-size:1.05rem;
  line-height:1.5;
  margin:0 0 12px;
}
.quote strong{color:var(--text)}
.slider-controls{
  display:flex; justify-content:space-between; align-items:center;
  padding: 12px 14px;
  border-top:1px solid rgba(255,255,255,.08);
  background: rgba(0,0,0,.10);
}
.dots{display:flex; gap:8px; align-items:center}
.dot{
  width:9px; height:9px; border-radius: 999px;
  background: rgba(255,255,255,.20);
  border:1px solid rgba(255,255,255,.20);
  cursor:pointer;
}
.dot.active{
  background: rgba(210,168,77,.85);
  border-color: rgba(210,168,77,.85);
}

.gallery{
  display:grid;
  grid-template-columns: repeat(4,1fr);
  gap:12px;
}
.gallery a{
  border-radius: 18px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  box-shadow: var(--shadow2);
  position:relative;
}
.gallery img{
  width:100%; height:100%;
  aspect-ratio: 1/1;
  object-fit: cover;
  display:block;
  transform: scale(1.01);
  transition: transform .18s ease;
}
.gallery a:hover img{transform: scale(1.06)}
.gallery .cap{
  position:absolute; left:10px; right:10px; bottom:10px;
  padding: 8px 10px;
  background: rgba(11,18,32,.68);
  border:1px solid rgba(255,255,255,.12);
  border-radius: 14px;
  color: var(--text);
  font-weight:900;
  font-size:.92rem;
}

.form{
  display:grid; gap:12px;
}
.field{
  display:grid; gap:8px;
}
.field label{font-weight:900; color: var(--text)}
.field input, .field select, .field textarea{
  width:100%;
  padding: 12px 12px;
  border-radius: 14px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.18);
  color: var(--text);
  outline: none;
}
.field textarea{min-height: 120px; resize: vertical}
.field input:focus, .field select:focus, .field textarea:focus{
  box-shadow: 0 0 0 4px var(--ring);
  border-color: rgba(210,168,77,.35);
}
.form-row{display:grid; gap:12px; grid-template-columns: 1fr 1fr}
.note{
  padding: 12px 14px;
  border-radius: 16px;
  background: rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.10);
  color: var(--muted);
}

.faq{
  display:grid; gap:10px;
}
.faq-item{
  border-radius: 16px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  overflow:hidden;
}
.faq-q{
  width:100%;
  text-align:left;
  background: transparent;
  border:0;
  color: var(--text);
  padding: 14px 14px;
  display:flex; justify-content:space-between; align-items:center;
  font-weight:900;
  cursor:pointer;
}
.faq-a{
  padding: 0 14px 14px;
  color: var(--muted);
  display:none;
}
.faq-item.open .faq-a{display:block}
.faq-item.open .chev{transform: rotate(180deg)}
.chev{transition: transform .18s ease}

.footer{
  margin-top: 26px;
  padding: 26px 0 90px;
  border-top:1px solid rgba(255,255,255,.08);
  background: rgba(0,0,0,.16);
}
.footer .cols{
  display:grid; gap:18px;
  grid-template-columns: 1.2fr .8fr;
}
.footer a{color:var(--muted)}
.footer a:hover{color:var(--text)}
.footer .legal{margin-top:12px; color:rgba(233,238,252,.62); font-size:.92rem}
.footer .mini{
  display:flex; gap:10px; flex-wrap:wrap; align-items:center;
  margin-top: 12px;
}
.footer .mini img{width:38px; height:38px; border-radius: 14px; background:#fff; object-fit:cover}

.mobile-bar{
  position: fixed;
  left: 12px; right: 12px; bottom: 12px;
  display:none;
  z-index: 80;
}
.mobile-bar .wrap{
  display:flex; gap:10px;
  border-radius: 18px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(11,18,32,.72);
  backdrop-filter: blur(10px);
  padding: 10px;
  box-shadow: var(--shadow);
}
.mobile-bar a{
  flex:1;
  display:flex; align-items:center; justify-content:center; gap:8px;
  padding: 12px 10px;
  border-radius: 14px;
  background: rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  font-weight:900;
  color: var(--text);
}
.mobile-bar a.wh{background: rgba(34,197,94,.16); border-color: rgba(34,197,94,.35)}
.mobile-bar a.dir{background: rgba(210,168,77,.16); border-color: rgba(210,168,77,.30); color:#151515}

.page-hero{
  padding: 26px 0 12px;
}
.breadcrumb{
  color: var(--muted);
  font-weight:800;
}
.page-title{
  margin: 8px 0 0;
  font-size: clamp(1.9rem, 3.2vw, 2.5rem);
  letter-spacing: -.4px;
}
.page-sub{
  margin: 10px 0 0;
  color: var(--muted);
  max-width: 70ch;
}

@media (max-width: 980px){
  .hero-grid{grid-template-columns: 1fr}
  .grid.cols-3{grid-template-columns: 1fr}
  .grid.cols-2{grid-template-columns: 1fr}
  .stepper{grid-template-columns: 1fr 1fr}
  .gallery{grid-template-columns: 1fr 1fr}
  .navlinks{display:none}
  .hamburger{display:inline-flex}
  .mobile-bar{display:block}
  .footer .cols{grid-template-columns: 1fr}
  .form-row{grid-template-columns: 1fr}
}

.menu-drawer{
  position: fixed; inset: 0;
  background: rgba(0,0,0,.62);
  display:none;
  z-index: 100;
}
.menu-drawer.open{display:block}
.menu-panel{
  position:absolute; top: 12px; right: 12px; left: 12px;
  border-radius: 20px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(11,18,32,.92);
  backdrop-filter: blur(12px);
  padding: 12px;
  box-shadow: var(--shadow);
}
.menu-panel a{
  display:flex; padding: 12px 12px;
  border-radius: 14px;
  color: var(--text);
  font-weight:900;
}
.menu-panel a:hover{background: rgba(255,255,255,.06)}
.menu-panel .close{
  display:flex; justify-content:space-between; align-items:center;
  padding: 8px 6px 10px;
  border-bottom:1px solid rgba(255,255,255,.08);
  margin-bottom: 8px;
}
.menu-panel .close button{
  border:0; background: rgba(255,255,255,.06);
  color: var(--text);
  border:1px solid rgba(255,255,255,.12);
  padding: 10px 12px;
  border-radius: 14px;
  font-weight:900;
  cursor:pointer;
}

/* =========================================================
   PRO additions (multi-page + UI helpers)
   ========================================================= */
.no-scroll{overflow:hidden}

.skip-link{
  position:absolute; left:-999px; top:auto; width:1px; height:1px; overflow:hidden;
}
.skip-link:focus{
  left:16px; top:16px; width:auto; height:auto;
  background: var(--card); color: var(--text);
  border:1px solid var(--line);
  padding:10px 12px; border-radius:12px;
  z-index:200;
}

.topbar-inner{display:flex; align-items:center; justify-content:space-between; gap:14px}
.topbar-left, .topbar-right{display:flex; align-items:center; gap:12px; flex-wrap:wrap}
.topbar-item{color:inherit; opacity:.92; font-weight:700; display:inline-flex; align-items:center; gap:8px}
.lang-toggle{
  border:1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.92);
  padding:8px 10px;
  border-radius:999px;
  font-weight:900;
  cursor:pointer;
}
.lang-toggle:hover{background: rgba(255,255,255,.10)}

.nav-inner{display:flex; align-items:center; justify-content:space-between; gap:14px}
.nav-links{display:flex; align-items:center; gap:18px}
.nav-link{
  color: var(--text);
  opacity:.92;
  font-weight:800;
  text-decoration:none;
}
.nav-link:hover{opacity:1}
.nav-link.active{opacity:1; color:var(--gold)}
.nav-cta{margin-left:6px}

.nav-toggle{display:none; border:0; background:transparent; cursor:pointer}
.nav-toggle span{display:block; width:22px; height:2px; background:var(--text); margin:5px 0; border-radius:2px; opacity:.9}

@media (max-width: 980px){
  .nav-toggle{display:block}
  .nav-links{display:none}
}

.nav-drawer{
  position:fixed; inset:0;
  background: rgba(0,0,0,.55);
  z-index:110;
  display:none;
  padding: 18px;
}
.nav-drawer.open{display:block}
.drawer-inner{
  max-width: 420px;
  width: 92%;
  height: 100%;
  background: rgba(11,18,32,.96);
  border:1px solid rgba(255,255,255,.10);
  border-radius: 22px;
  box-shadow: 0 25px 70px rgba(0,0,0,.35);
  padding: 14px;
}
.drawer-head{display:flex; align-items:center; justify-content:space-between; gap:10px; padding: 6px 6px 10px}
.drawer-title{font-weight:900; color: rgba(255,255,255,.92)}
.drawer-close{
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.08);
  color:#fff;
  padding: 8px 10px;
  border-radius: 14px;
  cursor:pointer;
  font-weight:900;
}
.drawer-links{display:flex; flex-direction:column; gap:10px; padding: 6px}
.drawer-links a{color: rgba(255,255,255,.92)}
.drawer-foot{padding:10px 6px 0}

.hero-image{position:relative; overflow:hidden}
.hero-bg{
  position:absolute; inset:0;
  width:100%; height:100%;
  z-index:0;
}
.hero-bg img{width:100%; height:100%; object-fit:cover; filter:saturate(1.02) contrast(1.05)}
.hero-image::after{
  content:"";
  position:absolute; inset:0;
  background: radial-gradient(80% 80% at 20% 20%, rgba(12,74,110,.45), rgba(11,18,32,.92));
  z-index:1;
}
.hero-content{position:relative; z-index:2}
.pill{
  display:inline-block;
  padding: 8px 12px;
  border-radius:999px;
  background: rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.14);
  color: rgba(255,255,255,.90);
  font-weight:900;
  margin-bottom: 10px;
}
.hero-badges{display:flex; gap:10px; flex-wrap:wrap; margin-top: 14px}
.badge{
  background: rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.92);
  padding: 10px 12px;
  border-radius: 16px;
  font-weight:800;
}

.cards-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px}
.cards-grid.three{grid-template-columns:repeat(3,1fr)}
@media (max-width: 980px){.cards-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width: 560px){.cards-grid{grid-template-columns:1fr}}

.link-card{color:inherit; text-decoration:none}
.card-media{height:140px; overflow:hidden; border-radius: 18px; border:1px solid var(--line); margin: 14px 14px 0}
.card-media img{width:100%; height:100%; object-fit:cover}
.card-body{padding: 14px}

.section-head{display:flex; align-items:flex-end; justify-content:space-between; gap:14px; margin-bottom: 16px}
.section-alt{background: rgba(255,255,255,.02); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line)}
.split{display:grid; grid-template-columns: 1.25fr .85fr; gap:18px; align-items:start}
@media (max-width: 980px){.split{grid-template-columns:1fr}}
.panel{
  background: var(--card);
  border:1px solid var(--line);
  border-radius: 22px;
  padding: 16px;
  box-shadow: 0 14px 40px rgba(0,0,0,.22);
}
.steps{padding-left: 18px}
.steps li{margin: 10px 0}

.testimonials{display:grid; grid-template-columns: repeat(2, 1fr); gap:16px}
@media (max-width: 980px){.testimonials{grid-template-columns:1fr}}
.quote-card{
  background: var(--card);
  border:1px solid var(--line);
  border-radius: 22px;
  padding: 16px;
}
.quote{font-size: 1.02rem; line-height:1.55; margin:0 0 10px}
.quote-meta{display:flex; align-items:center; justify-content:space-between}
.stars{letter-spacing:1px}

.page-hero{padding: 34px 0 18px}
.page-hero.with-bg{position:relative; overflow:hidden; padding: 70px 0 38px}
.page-hero.with-bg::after{
  content:"";
  position:absolute; inset:0;
  background: radial-gradient(70% 70% at 25% 20%, rgba(12,74,110,.35), rgba(11,18,32,.92));
}
.page-hero.with-bg .container{position:relative; z-index:1}
.breadcrumbs{font-weight:800; opacity:.9; margin-bottom: 8px}
.breadcrumbs a{color: rgba(255,255,255,.92); text-decoration:none}
.breadcrumbs span{opacity:.85; color: rgba(255,255,255,.85)}
.page-hero.with-bg h1, .page-hero.with-bg .lead{color:#fff}

.notice{
  margin-top: 14px;
  background: rgba(201,162,58,.10);
  border:1px solid rgba(201,162,58,.28);
  padding: 12px 14px;
  border-radius: 18px;
}

.service-finder{margin-top: 16px}
.chips{display:flex; gap:10px; flex-wrap:wrap; margin-top: 10px}
.chip{
  border:1px solid var(--line);
  background: rgba(255,255,255,.03);
  color: var(--text);
  padding: 10px 12px;
  border-radius: 999px;
  font-weight:900;
  cursor:pointer;
}
.chip.active{
  background: rgba(201,162,58,.18);
  border-color: rgba(201,162,58,.35);
  color: var(--gold);
}

.service-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:14px}
@media (max-width: 980px){.service-grid{grid-template-columns:1fr}}
.service-card{
  display:flex; gap:14px; align-items:center;
  background: var(--card);
  border:1px solid var(--line);
  border-radius: 22px;
  padding: 12px;
  text-decoration:none; color:inherit;
  transition: transform .15s ease, border-color .15s ease;
}
.service-card:hover{transform: translateY(-2px); border-color: rgba(201,162,58,.35)}
.service-thumb{width: 110px; height: 78px; overflow:hidden; border-radius: 16px; border:1px solid var(--line); flex:0 0 auto}
.service-thumb img{width:100%; height:100%; object-fit:cover}
.service-info h3{margin:0}
.service-arrow{margin-left:auto; font-weight:900; opacity:.7}

.contact-cards{display:grid; grid-template-columns: repeat(3, 1fr); gap:12px}
@media (max-width: 980px){.contact-cards{grid-template-columns:1fr}}
.contact-card{
  display:flex; flex-direction:column; gap:6px;
  background: var(--card);
  border:1px solid var(--line);
  border-radius: 22px;
  padding: 14px;
  text-decoration:none;
  color:inherit;
}
.form{margin-top: 10px}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:12px}
@media (max-width: 560px){.form-row{grid-template-columns:1fr}}
.hr{border:0; border-top:1px solid var(--line); margin: 14px 0}
.map-wrap{border-radius: 22px; overflow:hidden; border:1px solid var(--line); margin-top: 10px}
.map-wrap iframe{width:100%; height: 280px; border:0}
.mini-gallery{margin-top: 12px}
.mini-gallery img{width:100%; border-radius: 22px; border:1px solid var(--line)}

.gallery-grid{display:grid; grid-template-columns: repeat(3, 1fr); gap:12px}
@media (max-width: 980px){.gallery-grid{grid-template-columns: repeat(2, 1fr)}}
@media (max-width: 560px){.gallery-grid{grid-template-columns:1fr}}
.gallery-item{display:block; border-radius: 22px; overflow:hidden; border:1px solid var(--line)}
.gallery-item img{width:100%; height: 230px; object-fit:cover; display:block}

.prose{max-width: 860px}
.prose h2{margin-top: 20px}

.site-footer{
  border-top: 1px solid var(--line);
  background: rgba(0,0,0,.25);
  padding: 28px 0 16px;
}
.footer-grid{
  display:grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap:18px;
}
@media (max-width: 980px){.footer-grid{grid-template-columns:1fr}}
.footer-brand{display:flex; gap:12px; align-items:center; margin-bottom: 10px}
.footer-mark{width:46px; height:46px; border-radius: 14px; border:1px solid var(--line)}
.footer-list{list-style:none; padding:0; margin:0; display:grid; gap:8px}
.footer-list a{color: rgba(255,255,255,.88); text-decoration:none}
.footer-bottom{display:flex; justify-content:space-between; align-items:center; gap:12px; padding-top: 14px}
@media (max-width: 560px){.footer-bottom{flex-direction:column; align-items:flex-start}}

.fab-whatsapp{
  position:fixed;
  right: 16px;
  bottom: 16px;
  z-index: 90;
  background: #25d366;
  color:#0b1220;
  padding: 12px 14px;
  border-radius: 999px;
  font-weight: 900;
  text-decoration:none;
  box-shadow: 0 12px 30px rgba(0,0,0,.25);
  border:1px solid rgba(255,255,255,.20);
}
.fab-whatsapp span{display:block}
.fab-whatsapp:hover{filter: brightness(1.02)}


/* Utility class aliases (for readability) */
.btn.btn-primary.btn.btn-primary{ /* mirror .btn.primary */ background: linear-gradient(135deg, rgba(201,162,58,1), rgba(201,162,58,.70)); border: 1px solid rgba(201,162,58,.40); color:#0b1220; }
.btn.btn-primary:hover{background: linear-gradient(135deg, rgba(210,168,77,1), rgba(210,168,77,.70))}
.btn.btn-ghost{background: rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.92)}
.btn.btn-ghost:hover{background: rgba(255,255,255,.10)}
.btn.btn-small{padding: 10px 12px; font-size: .92rem; border-radius: 14px}


/* Small helpers */
.muted{color: var(--muted)}
.center{display:flex; justify-content:center; align-items:center; gap:12px; flex-wrap:wrap}
.input{
  width:100%;
  padding: 12px 12px;
  border-radius: 14px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.18);
  color: var(--text);
  outline:none;
}
.input:focus{box-shadow: 0 0 0 4px var(--ring); border-color: rgba(210,168,77,.35)}
.checklist, .bullets{padding-left: 18px; margin: 10px 0}
.checklist li{margin: 8px 0}
.checklist-warn li{list-style: "⚠️  ";}
.bullets li{margin: 8px 0}
.faq-search{max-width: 560px}
.faq-list{display:grid; gap:10px}
.faq-icon{font-weight:900; opacity:.85}
.faq-item.open .faq-icon{transform: rotate(45deg)}


.hero-cta{display:flex; gap:12px; flex-wrap:wrap; margin-top: 16px}
.hero-content h1{max-width: 780px}
.hero-content .lead{max-width: 780px}


.brand-mark{width:42px; height:42px; border-radius: 14px; border:1px solid rgba(255,255,255,.14)}
.brand-text{display:flex; flex-direction:column; gap:2px; line-height:1.05}
.brand-name{letter-spacing:.14em; font-weight:900; font-size:.95rem}
.brand-tag{font-size:.80rem; color: rgba(255,255,255,.72); font-weight:800}
