/* ============================================================
   Gyda Robles — Gestoría Inmobiliaria · gydarobles.com
   Paleta de marca (la misma de la landing de San Jacinto):
     navy #1b2d54 · oliva #7d7c28 · oliva grisáceo #97967a · crema #e4e2db
   ============================================================ */
@font-face{font-family:'Archivo';font-weight:700;font-style:normal;font-display:swap;src:url(fonts/archivo-latin-700-normal.woff2) format('woff2');}
@font-face{font-family:'Archivo';font-weight:800;font-style:normal;font-display:swap;src:url(fonts/archivo-latin-800-normal.woff2) format('woff2');}
@font-face{font-family:'Archivo';font-weight:900;font-style:normal;font-display:swap;src:url(fonts/archivo-latin-900-normal.woff2) format('woff2');}
@font-face{font-family:'Inter';font-weight:400;font-style:normal;font-display:swap;src:url(fonts/inter-latin-400-normal.woff2) format('woff2');}
@font-face{font-family:'Inter';font-weight:500;font-style:normal;font-display:swap;src:url(fonts/inter-latin-500-normal.woff2) format('woff2');}
@font-face{font-family:'Inter';font-weight:600;font-style:normal;font-display:swap;src:url(fonts/inter-latin-600-normal.woff2) format('woff2');}
:root{
  --navy:#1b2d54; --navy-dark:#12203d; --navy-deep:#0c1730; --navy-muted:#6b7189;
  --olive:#7d7c28; --olive-dark:#5a5c1f; --olive-deep:#4a4b18; --olive-darker:#3a3b12;
  --olive-soft:#97967a; --olive-pale:#c8c7ad;
  --cream:#e4e2db; --cream-2:#efeee9; --white:#fff;
  --bg:#e4e2db; --surface:#efeee9; --surface-2:#ffffff; --text:#1b2d54; --muted:#6b7189; --line:#d4d1c6; --accent-txt:#7d7c28; --chip-bg:#1b2d54;
  --nav-bg:rgba(228,226,219,.94); --nav-txt:#1b2d54; --nav-btn:#1b2d54; --shadow:rgba(18,32,61,.25);
  color-scheme:light;
  --serif:'Archivo','Arial Black',Arial,sans-serif; --lime:#dbe88a;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{overflow-x:clip;}
body{margin:0; font-family:var(--sans); color:var(--text); background:var(--bg); transition:background .3s, color .3s; line-height:1.55; -webkit-font-smoothing:antialiased;}
img{max-width:100%; display:block;}
a{color:inherit;}
h1,h2,h3{font-family:var(--serif); margin:0; line-height:1.12;}
.wrap{max-width:1120px; margin:0 auto; padding:0 24px;}
.frame{padding:12px;}
.eyebrow{font-size:12px; letter-spacing:2.5px; text-transform:uppercase; font-weight:600; color:var(--accent-txt); margin:0;}

/* ---------- Botones ---------- */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:9px; padding:15px 26px; border-radius:40px;
  font-weight:600; font-size:15px; text-decoration:none; cursor:pointer; border:1.5px solid transparent; transition:all .18s ease; font-family:var(--sans);}
.btn-primary{background:var(--olive); color:#fff;}
.btn-primary:hover{background:#8f8e2f; transform:translateY(-1px);}
.btn-ghost{background:rgba(255,255,255,.06); color:#fff; border-color:rgba(255,255,255,.32);}
.btn-ghost:hover{background:rgba(255,255,255,.14); border-color:#fff;}
.btn-whatsapp{background:#25D366; color:#fff;}
.btn-whatsapp:hover{background:#1DA851;}
.btn img.icon{width:18px; height:18px;}

/* ---------- Marca ---------- */
.brand{display:inline-flex; align-items:baseline; gap:8px; text-decoration:none;}
.brand-name{font-family:var(--serif); font-weight:700; font-style:italic; font-size:24px; color:inherit; line-height:1;}
.brand-tag{font-size:12px; letter-spacing:.3px; opacity:.7; line-height:1;}
.brand-tag::before{content:"· "; color:var(--olive-soft);}

/* ---------- HERO (panel oscuro redondeado) ---------- */
.hero{
  position:relative; border-radius:30px; overflow:hidden; color:#fff; padding:22px 28px 34px;
  background:
    radial-gradient(900px 520px at -5% 105%, rgba(125,124,40,.55), transparent 62%),
    radial-gradient(700px 480px at 108% 8%, rgba(60,110,190,.38), transparent 60%),
    linear-gradient(115deg, transparent 58%, rgba(120,160,230,.10) 58.2%, transparent 59.5%),
    linear-gradient(115deg, transparent 66%, rgba(150,150,110,.10) 66.2%, transparent 67.2%),
    linear-gradient(160deg, var(--navy-dark) 0%, var(--navy-deep) 100%);
  min-height:calc(100vh - 24px);
  display:flex; flex-direction:column;
}
.cross{position:absolute; font-weight:300; font-size:20px; color:rgba(200,199,173,.55); line-height:1; pointer-events:none; user-select:none;}
.cross.tl{top:14px; left:16px;} .cross.tr{top:14px; right:16px;}
.cross.bl{bottom:12px; left:16px;} .cross.br{bottom:12px; right:16px;}

.pill-nav{
  position:relative; z-index:5; display:flex; align-items:center; justify-content:space-between; gap:20px;
  background:var(--nav-bg); color:var(--nav-txt); border-radius:60px; padding:10px 12px 10px 24px;
  max-width:1120px; width:100%; margin:0 auto;
  box-shadow:0 10px 30px rgba(0,0,0,.25);
}
.nav-links{display:flex; gap:28px; font-size:14px; font-weight:500;}
.nav-links a{text-decoration:none; opacity:.8; transition:opacity .15s;}
.nav-links a:hover{opacity:1;}
.nav-cta{background:var(--nav-btn); color:#fff; text-decoration:none; font-size:14px; font-weight:600; padding:11px 22px; border-radius:40px; transition:background .15s;}
.nav-cta:hover{background:var(--olive);}

.hero-grid{
  position:relative; z-index:2; flex:1; display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:center;
  max-width:1120px; width:100%; margin:0 auto; padding:54px 0 30px;
}
.tag{display:inline-flex; align-items:center; gap:9px; font-size:12.5px; padding:7px 15px; border-radius:30px;
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.22); color:#e6e5d6; letter-spacing:.3px; margin-bottom:22px;}
.tag i{width:7px; height:7px; border-radius:50%; background:var(--olive-pale); box-shadow:0 0 0 4px rgba(200,199,173,.18);}
.hero h1{font-size:clamp(34px,5.2vw,58px); font-weight:700; margin-bottom:20px; max-width:18ch;}
.hero h1 em{font-style:italic; color:var(--olive-pale);}
.lead{font-size:clamp(16px,1.9vw,18px); color:#d9d8cc; max-width:48ch; margin:0 0 28px;}
.hero-actions{display:flex; flex-wrap:wrap; gap:12px; margin-bottom:34px;}

/* Tarjeta de persona (flotante estilo Kora / Fabrica) */
.person-card{
  display:inline-flex; align-items:center; gap:14px; padding:8px 8px 8px 8px; border-radius:22px;
  background:var(--nav-bg); color:var(--nav-txt); box-shadow:0 14px 34px rgba(0,0,0,.35);
}
.avatar{position:relative; width:58px; height:58px; border-radius:16px; overflow:hidden; flex:none;
  background:linear-gradient(135deg,var(--olive),var(--olive-darker)); display:flex; align-items:center; justify-content:center;
  font-family:var(--serif); font-style:italic; font-weight:700; font-size:20px; color:#fff;}
.avatar img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.person-info{display:flex; flex-direction:column; line-height:1.25; padding-right:6px;}
.person-info small{font-size:11.5px; color:var(--muted);}
.person-info strong{font-size:16px; font-family:var(--serif); font-style:italic;}
.mini-btn{display:inline-flex; align-items:center; gap:9px; background:var(--nav-btn); color:#fff; text-decoration:none;
  font-size:13px; font-weight:600; padding:10px 16px; border-radius:30px; transition:background .15s;}
.mini-btn:hover{background:var(--olive);}
.mini-btn i{width:7px; height:7px; border-radius:50%; background:#fff;}

/* Formulario (liquid glass) */
.lead-card{
  position:relative; border-radius:22px; padding:30px;
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.2);
  -webkit-backdrop-filter:blur(22px) saturate(150%); backdrop-filter:blur(22px) saturate(150%);
  box-shadow:0 26px 60px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.2); scroll-margin-top:24px;
}
.lead-card h2{font-size:24px; font-style:italic; margin-bottom:4px;}
.lead-card .sub{margin:0 0 20px; font-size:14px; color:#cfcec0;}
.form-row{margin-bottom:14px;}
.form-row label{display:block; font-size:13px; font-weight:600; margin-bottom:6px; color:#efeee9;}
.form-row .opt{font-weight:400; opacity:.65;}
.form-row input,.form-row select,.form-row textarea{
  width:100%; padding:12px 14px; border-radius:12px; font-family:var(--sans); font-size:15px; color:#fff;
  background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.28); transition:border-color .15s, background .15s;
}
.form-row textarea{resize:vertical; min-height:64px;}
.form-row input::placeholder,.form-row textarea::placeholder{color:rgba(255,255,255,.45);}
.form-row select option{color:var(--navy); background:#fff;}
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:none; border-color:var(--olive-pale); background:rgba(255,255,255,.16);}
.form-row.invalid input,.form-row.invalid select{border-color:#f0a48f;}
.hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}
.form-submit{width:100%; padding:16px; font-size:16px; margin-top:6px;}
.form-submit[disabled]{opacity:.7; cursor:wait;}
.form-error{margin:12px 0 0; padding:10px 12px; border-radius:10px; background:rgba(240,164,143,.16); color:#ffd8cc; font-size:13.5px;}
.form-note{font-size:12px; color:#bdbcae; text-align:center; margin:14px 0 0;}
.form-note a{color:#e6e5d6;}

.trust-row{
  position:relative; z-index:2; list-style:none; margin:0 auto; padding:22px 0 0; max-width:1120px; width:100%;
  display:flex; flex-wrap:wrap; gap:10px 28px; border-top:1px solid rgba(255,255,255,.14); font-size:13.5px; color:#cfcec0;
}
.trust-row li::before{content:"✓"; color:var(--olive-pale); margin-right:9px;}

/* ---------- Secciones ---------- */
.section{padding:96px 0;}
.section-alt{background:var(--surface); border-radius:30px; margin:12px 0; padding:88px 0;}
.section-head{max-width:640px; margin-bottom:44px;}
.section-head h2{font-size:clamp(28px,4vw,42px); font-style:italic; margin-top:12px;}
.section-head p:not(.eyebrow){color:var(--muted); font-size:16px; margin:14px 0 0;}

/* Bento */
.bento{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
.b-card{border-radius:24px; padding:30px; min-height:260px; display:flex; flex-direction:column; position:relative; overflow:hidden;}
.b-wide{grid-column:span 2;}
.b-num{font-family:var(--serif); font-style:italic; font-weight:700; font-size:15px; margin-bottom:auto; opacity:.7;}
.b-card h3{font-size:26px; font-style:italic; margin:36px 0 10px;}
.b-card p{margin:0; font-size:15px; max-width:44ch;}
.b-dark{background:linear-gradient(150deg,var(--navy),var(--navy-deep)); color:#fff;}
.b-dark p{color:#d5d4c8;}
.b-dark::after{content:""; position:absolute; right:-80px; top:-80px; width:260px; height:260px; border-radius:50%;
  background:radial-gradient(circle,rgba(125,124,40,.55),transparent 70%);}
.b-link{margin-top:18px; align-self:flex-start; font-size:12px; letter-spacing:1px; text-transform:uppercase; padding:6px 12px; border-radius:20px; border:1px solid rgba(255,255,255,.3); color:var(--olive-pale);}
.b-olive{background:var(--olive); color:#fff;} .b-olive p{color:#f0efd8;}
.b-cream{background:var(--surface); border:1px solid var(--line);} .b-cream p{color:var(--muted);}

/* Pasos */
.steps{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.step{background:var(--bg); border:1px solid var(--line); border-radius:22px; padding:28px;}
.step-n{display:inline-flex; width:40px; height:40px; align-items:center; justify-content:center; border-radius:50%;
  background:var(--chip-bg); color:#fff; font-family:var(--serif); font-style:italic; font-weight:700; margin-bottom:18px;}
.step h3{font-size:21px; font-style:italic; margin-bottom:8px;}
.step p{margin:0; color:var(--muted); font-size:15px;}

/* Certeza legal */
.usps-band{
  position:relative; padding:96px 0; overflow:hidden; border-radius:30px; margin:12px 0;
  background:linear-gradient(120deg,#3a3b12,#1b2d54,#5a5c1f,#7d7c28,#3a3b12); background-size:300% 300%; animation:gradientShift 22s ease infinite;
}
@keyframes gradientShift{0%{background-position:0% 40%}50%{background-position:100% 60%}100%{background-position:0% 40%}}
.usps-band .eyebrow{color:var(--olive-pale);}
.usps-band .section-head h2{color:#fff;}
.usps{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.usp-card{background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.16); border-radius:20px; padding:28px 26px; color:#fff;
  -webkit-backdrop-filter:blur(20px) saturate(150%); backdrop-filter:blur(20px) saturate(150%);
  box-shadow:0 16px 40px rgba(0,0,0,.25), inset 0 1px 0 rgba(255,255,255,.14);}
.usp-num{font-family:var(--serif); font-style:italic; font-weight:700; color:var(--olive-pale); font-size:16px; display:block; margin-bottom:12px;}
.usp-card h3{font-size:21px; font-style:italic; margin-bottom:8px;}
.usp-card p{margin:0; color:#e4e2db; font-size:15px;}

/* CTA final */
.cta-final{padding:72px 0 88px;}
.cta-box{display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap;
  background:var(--surface-2); border:1px solid var(--line); border-radius:28px; padding:40px 44px;}
.cta-box h2{font-size:clamp(26px,3.4vw,34px); font-style:italic; margin-bottom:8px;}
.cta-box p{margin:0; color:var(--muted);}
.cta-actions{display:flex; flex-wrap:wrap; gap:12px;}

/* Footer */
footer{background:var(--olive-deep); color:#d4d3ab; border-radius:30px; padding:48px 0 30px;}
footer .brand{color:#fff;}
.footer-grid{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:24px;}
.foot-note{margin:10px 0 0; font-size:13.5px; color:#c8c7ad;}
.fine{display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:12.5px; color:#a9a88a; margin-top:34px; padding-top:20px; border-top:1px solid #5a5c1f;}
.fine a{color:#d4d3ab;}
.social-icons{display:flex; gap:12px;}
.icon-circle{width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center; transition:transform .15s;}
.icon-circle:hover{transform:translateY(-2px);}
.icon-circle img{width:21px; height:21px;}
.icon-whatsapp{background:#25D366;} .icon-facebook{background:#1877F2;}
.icon-instagram{background:radial-gradient(circle at 30% 107%,#fdf497 0%,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285AEB 90%);}

.fab{position:fixed; bottom:20px; right:20px; z-index:60; background:#25D366; width:58px; height:58px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; box-shadow:0 6px 18px rgba(0,0,0,.3);}

/* ---------- Animación de entrada ---------- */
.reveal{opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease;}
.reveal.is-visible{opacity:1; transform:none;}
.bento .b-card:nth-child(2){transition-delay:.08s} .bento .b-card:nth-child(3){transition-delay:.16s} .bento .b-card:nth-child(4){transition-delay:.24s}
.steps .step:nth-child(2),.usps .usp-card:nth-child(2){transition-delay:.12s} .steps .step:nth-child(3),.usps .usp-card:nth-child(3){transition-delay:.24s}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1; transform:none; transition:none;} .usps-band{animation:none;} html{scroll-behavior:auto;}}

/* ---------- Páginas simples (gracias / aviso) ---------- */
.simple-page{min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px;
  background:radial-gradient(800px 500px at 0% 100%, rgba(125,124,40,.5), transparent 60%), linear-gradient(160deg,var(--navy-dark),var(--navy-deep)); color:#fff;}
.simple-card{max-width:560px; width:100%; text-align:center; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.2); border-radius:26px; padding:44px 34px;
  -webkit-backdrop-filter:blur(22px); backdrop-filter:blur(22px); box-shadow:0 26px 60px rgba(0,0,0,.4);}
.simple-card h1{font-size:clamp(28px,5vw,38px); font-style:italic; margin:14px 0;}
.simple-card p{color:#d9d8cc; margin:0 0 24px;}
.simple-card .brand{color:#fff;}
.doc-page{background:var(--bg); color:var(--text); min-height:100vh; padding:32px 24px 64px;}
.doc{max-width:760px; margin:0 auto; background:var(--surface-2); border:1px solid var(--line); border-radius:22px; padding:40px 36px;}
.doc h1{font-size:32px; font-style:italic; margin-bottom:6px;}
.doc h2{font-size:20px; font-style:italic; margin:28px 0 8px;}
.doc p,.doc li{font-size:15px; color:var(--muted);}
.doc .draft{background:#fff7d6; border:1px solid #e6d27a; border-radius:12px; padding:12px 14px; font-size:13.5px; color:#5b4d10; margin:18px 0;}

/* ---------- Responsive ---------- */
@media (max-width:920px){
  .hero-grid{grid-template-columns:1fr; gap:36px; padding-top:40px;}
  .nav-links{display:none;}
  .bento{grid-template-columns:1fr 1fr;} .b-wide{grid-column:span 2;}
  .steps,.usps{grid-template-columns:1fr;}
}
@media (max-width:600px){
  .frame{padding:8px;}
  .hero{padding:14px 16px 26px; border-radius:24px; min-height:auto;}
  .pill-nav{padding:8px 8px 8px 16px;} .brand-tag{display:none;} .brand-name{font-size:22px;}
  .lead-card{padding:22px 18px;}
  .bento{grid-template-columns:1fr;} .b-wide{grid-column:auto;} .b-card{min-height:220px;}
  .section{padding:64px 0;} .section-alt,.usps-band{border-radius:24px; padding:60px 0;}
  .cta-box{padding:28px 22px;} .cta-actions .btn{width:100%;}
  .hero-actions .btn{width:100%;}
  .person-card{width:100%;} .mini-btn{margin-left:auto;}
  footer{border-radius:24px;} .doc{padding:28px 20px;}
}

/* Conoce a Gyda */
.about{padding:80px 0;}
.about-grid{display:grid; grid-template-columns:.8fr 1.2fr; gap:56px; align-items:center;}
.about-photo{border-radius:28px; overflow:hidden; aspect-ratio:1/1; box-shadow:0 24px 50px var(--shadow);}
.about-photo img{width:100%; height:100%; object-fit:cover;}
.about h2{font-size:clamp(26px,3.6vw,38px); font-style:italic; margin:12px 0 16px;}
.about p:not(.eyebrow){color:var(--muted); font-size:16px; margin:0 0 22px; max-width:52ch;}
@media (max-width:920px){.about-grid{grid-template-columns:1fr; gap:32px;} .about-photo{max-width:380px;}}

/* Botón de tema (sol / luna) */
.theme-toggle{flex:none; width:40px; height:40px; border-radius:50%; border:1px solid rgba(128,128,128,.35); background:transparent; color:inherit; cursor:pointer; display:flex; align-items:center; justify-content:center; line-height:1; transition:background .15s;}
.theme-toggle svg{display:block;}
.theme-toggle:hover{background:rgba(128,128,128,.18);}
.nav-right{display:flex; align-items:center; gap:10px;}
.theme-toggle .ico-sun{display:none;} :root[data-theme="dark"] .theme-toggle .ico-sun{display:block;} :root[data-theme="dark"] .theme-toggle .ico-moon{display:none;}

/* ---------- TEMA OSCURO ---------- */
:root[data-theme="dark"]{
  --bg:#0a1225; --surface:#101c38; --surface-2:#121f3d; --text:#eceadf; --muted:#a4a9bd; --line:rgba(255,255,255,.12);
  --accent-txt:#c8c7ad; --chip-bg:#7d7c28;
  --nav-bg:rgba(18,32,61,.82); --nav-txt:#eceadf; --nav-btn:#7d7c28; --shadow:rgba(0,0,0,.55);
  color-scheme:dark;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#0a1225; --surface:#101c38; --surface-2:#121f3d; --text:#eceadf; --muted:#a4a9bd; --line:rgba(255,255,255,.12);
    --accent-txt:#c8c7ad; --chip-bg:#7d7c28;
    --nav-bg:rgba(18,32,61,.82); --nav-txt:#eceadf; --nav-btn:#7d7c28; --shadow:rgba(0,0,0,.55);
    color-scheme:dark;
  }
  :root:not([data-theme="light"]) .theme-toggle .ico-sun{display:block;}
  :root:not([data-theme="light"]) .theme-toggle .ico-moon{display:none;}
}
/* Ajustes finos del oscuro */
:root[data-theme="dark"] .pill-nav,:root[data-theme="dark"] .person-card{border:1px solid rgba(255,255,255,.14); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);}
:root[data-theme="dark"] .hero{box-shadow:0 0 0 1px rgba(255,255,255,.08);}
:root[data-theme="dark"] .b-olive{background:#5f5f1f;}
:root[data-theme="dark"] .about-photo img{filter:brightness(.92);}
:root[data-theme="dark"] .cta-box .btn-primary{background:var(--olive);}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .pill-nav,:root:not([data-theme="light"]) .person-card{border:1px solid rgba(255,255,255,.14); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);}
  :root:not([data-theme="light"]) .b-olive{background:#5f5f1f;}
  :root:not([data-theme="light"]) .about-photo img{filter:brightness(.92);}
}

/* Galería de propiedades (bento) */
.gallery{display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:190px; gap:14px;}
.g-tile{position:relative; overflow:hidden; border-radius:22px; display:block; background:var(--surface); border:1px solid var(--line);}
.g-tile img{width:100%; height:100%; object-fit:cover; transition:transform .6s ease;}
.g-tile:hover img{transform:scale(1.06);}
.g-tile::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(10,18,37,.78)); pointer-events:none;}
.g-cap{position:absolute; left:14px; right:14px; bottom:14px; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:10px; color:#fff; font-size:14.5px;}
.g-cap b{font-weight:600;}
.g-cap i{font-style:normal; width:32px; height:32px; border-radius:50%; background:rgba(255,255,255,.18); border:1px solid rgba(255,255,255,.4); display:flex; align-items:center; justify-content:center; backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); transition:background .2s;}
.g-tile:hover .g-cap i{background:var(--olive);}
.g-casa{grid-column:span 2; grid-row:span 2;}
.g-sala{grid-column:span 2;}
.g-terreno{grid-column:span 2;}
.g-cocina,.g-local{grid-column:span 1;}
@media (max-width:920px){.gallery{grid-template-columns:1fr 1fr; grid-auto-rows:170px;} .g-casa{grid-column:span 2; grid-row:span 2;} .g-sala,.g-terreno{grid-column:span 2;}}
@media (max-width:600px){.gallery{grid-auto-rows:150px; gap:10px;} .g-tile{border-radius:18px;}}
/* Reacomodo: sin huecos en escritorio */
.g-casa{order:1;} .g-sala{order:2;} .g-cocina{order:3;} .g-local{order:4;}
.g-terreno{order:5; grid-column:span 4; grid-row:span 1;}
.g-terreno img{object-position:center 45%;}
@media (max-width:920px){.g-terreno{grid-column:span 2;}}

/* ============================================================
   V6 — Tipografía bold, hero con foto protagonista y efecto de
   texto que se degrada detrás de cristal (liquid glass)
   ============================================================ */
h1,h2,h3,.brand-name,.usp-num,.b-num,.step-n,.person-info strong,.avatar,em{font-style:normal !important;}
h1,h2,h3{font-family:var(--serif); letter-spacing:-.02em;}
h2{font-weight:800;} h3{font-weight:800;}
.brand-name{font-weight:900; letter-spacing:.02em; font-size:21px;}
.brand-name b{color:var(--olive); font-weight:900;}
.hero .brand-name b,footer .brand-name b,.simple-card .brand-name b{color:var(--lime);}
.pill-nav .brand-name b{color:var(--olive);}
:root[data-theme="dark"] .pill-nav .brand-name b{color:var(--lime);}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .pill-nav .brand-name b{color:var(--lime);}}

/* HERO con foto */
.hero{background:var(--navy-deep);}
.hero-photo{position:absolute; inset:0; z-index:0;
  background:
    linear-gradient(100deg,rgba(9,17,36,.94) 0%,rgba(9,17,36,.80) 38%,rgba(12,23,48,.35) 100%),
    linear-gradient(0deg,rgba(9,17,36,.75) 0%,transparent 40%),
    url('img/hero-oaxaca.jpg') center 40%/cover no-repeat;
  transform:scale(1.04); will-change:transform;}
.hero-grid{padding:44px 0 26px; grid-template-columns:1.25fr .75fr;}
.hero h1{font-size:clamp(40px,7vw,104px); font-weight:900; text-transform:uppercase; line-height:.92; letter-spacing:-.035em; max-width:11ch; margin-bottom:22px;}
.hero h1 em{color:var(--lime); font-style:normal;}
.lead{font-size:clamp(16px,1.6vw,18px); max-width:46ch;}
.tag{text-transform:uppercase; letter-spacing:1.5px; font-size:11.5px; font-weight:600;}
.tag i{background:var(--lime); box-shadow:0 0 0 4px rgba(219,232,138,.2);}
.btn{font-weight:700; letter-spacing:.2px;}
.btn-primary{background:var(--lime); color:#1a2410;}
.btn-primary:hover{background:#e9f3a4;}
.nav-cta,.mini-btn{background:var(--nav-btn);}
.side-label{position:absolute; left:14px; top:50%; z-index:3; transform:translateY(-50%) rotate(180deg); writing-mode:vertical-rl; display:flex; align-items:center; gap:14px; font-size:11px; letter-spacing:2.5px; text-transform:uppercase; color:rgba(255,255,255,.6);}
.side-label i{width:1px; height:46px; background:rgba(255,255,255,.4); display:block;}

.lead-card{background:rgba(255,255,255,.08); -webkit-backdrop-filter:blur(26px) saturate(170%); backdrop-filter:blur(26px) saturate(170%);}
.lead-card h2{font-weight:900; font-size:26px; text-transform:none;}
.form-submit{background:var(--lime); color:#1a2410;}
.form-submit:hover{background:#e9f3a4;}

/* ESCENA: texto gigante fijo que se degrada al pasar el cristal */
.stage{position:relative; margin-top:12px; border-radius:30px; clip-path:inset(0 round 30px); background:var(--navy-deep); --p:0;}
.stage-bg{position:sticky; top:0; height:100vh; overflow:hidden; z-index:0;}
.stage-photo{position:absolute; inset:-4%; background:
  linear-gradient(180deg,rgba(9,17,36,.86),rgba(9,17,36,.62) 45%,rgba(9,17,36,.9)),
  url('img/stage-mitla.jpg') center/cover no-repeat;
  transform:scale(calc(1 + var(--p)*.12)); }
.stage-text{position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center; padding:0 clamp(20px,5vw,64px);
  font-family:var(--serif); font-weight:900; text-transform:uppercase; line-height:.86; letter-spacing:-.045em;
  font-size:clamp(64px,15.5vw,250px); color:rgba(255,255,255,.94);
  opacity:calc(1 - var(--p)*.82); filter:blur(calc(var(--p)*16px));
  transform:translateY(calc(var(--p)*-6vh)) scale(calc(1 + var(--p)*.05)); will-change:transform,opacity,filter;}
.stage-text span{display:block;}
.stage-text .o{color:transparent; -webkit-text-stroke:2px rgba(219,232,138,.9);}
.stage-flow{position:relative; z-index:2; margin-top:-100vh; padding:62vh 0 14vh;}
.section-head.on-dark h2{color:#fff;} .section-head.on-dark p:not(.eyebrow){color:#d5d8e2;} .section-head.on-dark .eyebrow{color:var(--lime);}
.section-head h2{text-transform:none;}
.glass-bento .b-card{background:rgba(10,18,37,.34); border:1px solid rgba(255,255,255,.22); color:#fff;
  -webkit-backdrop-filter:blur(28px) saturate(170%); backdrop-filter:blur(28px) saturate(170%);
  box-shadow:0 22px 50px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.22); min-height:280px;}
.glass-bento .b-card p{color:#e2e4ec;}
.glass-bento .b-card::after{display:none;}
.glass-bento .b-lime{background:rgba(219,232,138,.16); border-color:rgba(219,232,138,.5);}
.glass-bento .b-num{color:var(--lime); opacity:1;}
.glass-bento .b-link{color:var(--lime); border-color:rgba(219,232,138,.5);}
.glass-bento .b-card h3{font-size:clamp(22px,2.6vw,30px);}

/* Galería: sin enlaces, terreno más alto */
.g-tile{cursor:default;}
.g-cap{justify-content:flex-start;}
.g-cap b{font-weight:800; font-size:15.5px; letter-spacing:.2px;}
.g-terreno{grid-row:span 3;}
.g-terreno img{object-position:center;}

/* Títulos más imponentes en el resto de la página */
.section-head h2,.about h2,.cta-box h2{font-weight:900; letter-spacing:-.03em;}
.section-head h2{font-size:clamp(30px,4.6vw,54px); line-height:1.02;}
.about h2{font-size:clamp(28px,4vw,46px); line-height:1.02;}
.step h3,.usp-card h3,.b-card h3{font-weight:800;}
.usp-num,.step-n,.b-num{font-family:var(--serif); font-weight:900;}
.cta-box{position:relative; overflow:hidden; color:#fff; border:none;
  background:linear-gradient(100deg,rgba(9,17,36,.92) 30%,rgba(9,17,36,.55)),url('img/cta-calle.jpg') center/cover no-repeat;}
.cta-box h2{color:#fff; font-size:clamp(28px,4vw,46px); line-height:1.02;} .cta-box p{color:#d5d8e2;}
.cta-box .btn-primary{background:var(--lime); color:#1a2410;}
.simple-card h1{font-weight:900; text-transform:uppercase; letter-spacing:-.03em;}

@media (max-width:920px){
  .hero-grid{grid-template-columns:1fr;}
  .hero h1{max-width:12ch;}
  .side-label{display:none;}
  .stage-flow{padding-top:50vh;}
}
@media (max-width:600px){
  .hero h1{font-size:clamp(38px,12.5vw,60px);}
  .stage-text{font-size:clamp(56px,20vw,120px);}
  .g-terreno{grid-row:span 2;}
}
@media (prefers-reduced-motion:reduce){.stage-text,.stage-photo,.hero-photo{transform:none !important; filter:none !important; opacity:1 !important;}}

/* Encabezado de la escena también en cristal */
.section-head.on-dark{display:inline-block; max-width:720px; padding:26px 30px; border-radius:24px; margin-bottom:28px;
  background:rgba(10,18,37,.34); border:1px solid rgba(255,255,255,.22);
  -webkit-backdrop-filter:blur(28px) saturate(170%); backdrop-filter:blur(28px) saturate(170%);
  box-shadow:0 22px 50px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.2);}
.hero h1{font-size:clamp(40px,6.4vw,92px);}
@media (max-width:600px){.section-head.on-dark{padding:20px 20px;}}

/* Aviso de privacidad junto al botón + presupuesto condicional */
.form-legal{margin:4px 0 12px; font-size:12.5px; line-height:1.45; color:#d5d8e2;}
.form-legal a{color:var(--lime); text-decoration:underline; text-underline-offset:2px;}
.form-row[hidden]{display:none;}

/* ============================================================
   V9 — Hero simple, palabra gigante + imagen, Conoce a Gyda,
   Cómo trabajamos (4 tarjetas) y Certeza legal (carpeta rebote)
   ============================================================ */
:root{--bw-fill:var(--navy); --bw-stroke:#fff;}
:root[data-theme="dark"]{--bw-fill:#eceadf; --bw-stroke:#eceadf;}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bw-fill:#eceadf; --bw-stroke:#eceadf;}}

/* Palabra gigante: relleno DETRÁS de la foto, contorno DELANTE (efecto "Build to carry") */
.bw{font-family:var(--serif); font-weight:900; text-transform:uppercase; letter-spacing:-.045em; line-height:.8; margin:0; color:var(--bw-fill); user-select:none;}
.bw>span{display:block; position:relative;}
.bw>span::after{content:attr(data-text); position:absolute; left:0; top:0; z-index:3; pointer-events:none; color:transparent; -webkit-text-stroke:2px var(--bw-stroke);}
.bw-oaxaca{font-size:min(17.5vw,238px); margin:-6px 0 0; margin-bottom:-.44em; padding-left:2px;}
.gallery{position:relative;}
.section-head{position:relative; z-index:4;}

/* ---------- HERO simple ---------- */
.hero-grid{grid-template-columns:1.2fr .8fr; align-items:stretch; padding:40px 0 24px;}
.hero-copy{display:flex; flex-direction:column; justify-content:space-between; gap:36px; min-width:0;}
.hero-top{display:flex; flex-direction:column; align-items:flex-start;}
.hero-claim{font-family:var(--serif); font-weight:800; font-size:clamp(24px,3vw,38px); line-height:1.05; letter-spacing:-.02em; max-width:15ch; margin:0 0 26px; color:#fff;}
.hero-claim em{color:var(--lime);}
.hero-actions{margin-bottom:0;}
.hero h1.wordmark{font-size:clamp(64px,min(11.4vw,142px),142px); line-height:.82; letter-spacing:-.05em; text-transform:uppercase; max-width:none; margin:0; color:#fff;}
.hero h1.wordmark span{display:block;}
.hero h1.wordmark .lime{color:var(--lime);}
.tag{margin-bottom:20px;}

.hero-strip{position:relative; z-index:2; list-style:none; margin:0 auto; padding:0; max-width:1120px; width:100%; display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(255,255,255,.2);}
.hero-strip li+li{border-left:1px solid rgba(255,255,255,.14);}
.hero-strip a{display:flex; align-items:center; justify-content:space-between; gap:10px; padding:18px 18px; text-decoration:none; color:#e6e5d6; font-size:12.5px; font-weight:600; letter-spacing:1.6px; text-transform:uppercase; transition:background .2s,color .2s;}
.hero-strip a:hover{background:rgba(255,255,255,.07); color:var(--lime);}
.dots{display:inline-flex; gap:3px;}
.dots::before{content:""; width:4px; height:4px; background:currentColor; opacity:.7; box-shadow:7px 0 0 currentColor,14px 0 0 currentColor,21px 0 0 currentColor; clip-path:none;}
.dots{width:26px; height:4px; position:relative; overflow:hidden;}
.dots.d1::before{box-shadow:none;} .dots.d2::before{box-shadow:7px 0 0 currentColor;} .dots.d3::before{box-shadow:7px 0 0 currentColor,14px 0 0 currentColor;}

/* ---------- CONOCE A GYDA ---------- */
.about{padding:12px 0 0; margin:0;}
.about-panel{position:relative; border-radius:30px; padding:44px clamp(22px,4vw,52px) 40px; color:#fff; min-height:660px;
  background:radial-gradient(700px 420px at 100% 0%, rgba(125,124,40,.35), transparent 60%), linear-gradient(160deg,#10203f,#0a1428);
  border:1px solid rgba(255,255,255,.12); box-shadow:0 30px 70px var(--shadow);
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr) minmax(0,1fr); grid-template-rows:auto 1fr auto; column-gap:28px; max-width:1120px; margin:0 auto;}
.about-eyebrow{grid-column:1; grid-row:1; color:var(--lime);}
.about-text{grid-column:3; grid-row:1 / span 2; align-self:start; padding-top:2px;}
.about .about-panel .about-lead{font-family:var(--serif); font-weight:800; font-size:clamp(20px,2vw,26px); line-height:1.15; letter-spacing:-.015em; margin:0 0 14px; color:#fff; max-width:none;}
.about .about-panel .about-text p:not(.about-lead){margin:0; color:#c9cede; font-size:15.5px; max-width:34ch;}
.about-panel .about-photo{grid-column:2; grid-row:1 / span 3; margin:0; aspect-ratio:auto; width:100%; position:relative; z-index:2; border-radius:22px; overflow:hidden; min-height:540px; box-shadow:0 24px 50px rgba(0,0,0,.45);}
.about-photo img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 20%; filter:grayscale(.15) contrast(1.03);}
.about-photo::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 45%,rgba(8,14,30,.72));}
.about-panel .about-name{grid-column:1 / span 3; grid-row:3; align-self:end; line-height:.8; font-size:clamp(60px,min(11.2vw,150px),150px); --bw-fill:#fff; --bw-stroke:#fff; margin-bottom:-2px; pointer-events:none;}
.about-name span:nth-child(2){color:var(--lime);}
.about-name span:nth-child(2)::after{-webkit-text-stroke-color:var(--lime);}
.about-foot{grid-column:3; grid-row:3; align-self:end; justify-self:start; display:flex; flex-direction:column; gap:16px; position:relative; z-index:4;}
.about-role{font-size:12.5px; letter-spacing:1.6px; text-transform:uppercase; color:#b9bfd2; line-height:1.6;}
:root[data-theme="dark"] .about-photo img{filter:grayscale(.15) contrast(1.03);}

/* ---------- CÓMO TRABAJAMOS ---------- */
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
.steps4{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
.s4 h3{font-size:19px; margin:18px 0 6px; font-weight:800; letter-spacing:-.01em;}
.s4 p{margin:0; color:var(--muted); font-size:14.5px; line-height:1.5;}
.s4-img{position:relative; aspect-ratio:4/4.6; border-radius:20px; overflow:hidden; background:var(--line);}
.s4-img img{width:100%; height:100%; object-fit:cover; transition:transform .7s ease;}
.s4:hover .s4-img img{transform:scale(1.06);}
.s4-img::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(8,14,30,.05) 40%,rgba(8,14,30,.45)); pointer-events:none;}
.s4-n{position:absolute; top:12px; left:12px; z-index:3; width:34px; height:34px; border-radius:10px; display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-weight:900; font-size:15px; color:var(--navy); background:rgba(255,255,255,.72); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);}
.s4-chip{position:absolute; left:12px; right:12px; bottom:12px; z-index:3; display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:14px; color:#fff;
  background:rgba(14,22,44,.46); border:1px solid rgba(255,255,255,.22); -webkit-backdrop-filter:blur(18px) saturate(160%); backdrop-filter:blur(18px) saturate(160%); box-shadow:inset 0 1px 0 rgba(255,255,255,.2);}
.s4-ico{flex:none; width:32px; height:32px; border-radius:9px; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.16); color:var(--lime);}
.s4-chip b{display:block; font-size:13px; font-weight:700; line-height:1.2;}
.s4-chip small{display:block; font-size:11.5px; color:#d5d9e6; line-height:1.3;}

/* ---------- CERTEZA LEGAL · tarjetas carpeta con rebote ---------- */
.usps-band{background:radial-gradient(800px 420px at 85% 0%, rgba(125,124,40,.32), transparent 62%), linear-gradient(160deg,#10203f,#0a1428); animation:none;}
.usps{gap:22px; justify-items:center;}
.fcard{--outer:#050a18; --folder:#0f1d3d; --ink:#fff; --soft:#b3bad0; --ease:cubic-bezier(.34,1.56,.64,1);
  position:relative; width:100%; max-width:360px; aspect-ratio:3/4; border-radius:38px; background:var(--outer); padding:9px; cursor:pointer; outline:none;
  box-shadow:0 26px 54px rgba(0,0,0,.4); -webkit-tap-highlight-color:transparent;}
.fc-cream{--outer:#c7cbd6; --folder:#e6e7ec; --ink:#0c1730; --soft:#586079;}
.fc-olive{--outer:#b4c45a; --folder:#dbe88a; --ink:#0c1730; --soft:#4a5420;}
.fc-img{position:absolute; left:9px; right:9px; top:9px; height:66%; border-radius:29px; overflow:hidden; background:#000;}
.fc-img img{width:100%; height:100%; object-fit:cover; transform:translateY(10%) scale(1.26); transition:transform .85s var(--ease);}
.fc-img::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.35));}
.fc-folder{position:absolute; left:9px; right:9px; bottom:9px; height:67%; background:var(--folder); border-radius:0 29px 29px 29px; padding:0 22px 22px; display:flex; flex-direction:column; color:var(--ink);
  transition:height .8s var(--ease);}
.fc-folder::before{content:""; position:absolute; left:0; top:-38px; width:calc(52% + 1px); height:41px; background:var(--folder); border-radius:26px 14px 0 0;}
.fc-folder::after{content:""; position:absolute; left:calc(52% + 0px); top:-24px; width:25px; height:25px; background:radial-gradient(circle at 100% 0, transparent 23.5px, var(--folder) 24px);}
.fc-top{position:relative; z-index:2; display:flex; align-items:flex-start; justify-content:space-between; margin-top:-28px;}
.fc-num{font-family:var(--sans); font-weight:500; font-size:46px; line-height:1; letter-spacing:-.02em;}
.fc-arrow{margin-top:34px; font-size:20px; line-height:1; transition:transform .5s var(--ease);}
.fc-txt{margin-top:auto;}
.fc-txt h3{font-size:19px; font-weight:800; margin:0 0 6px; color:var(--ink);}
.fc-txt p{margin:0; font-size:14px; line-height:1.45; color:var(--soft);}
.fcard:hover .fc-folder,.fcard:focus-visible .fc-folder,.fcard.is-open .fc-folder{height:47%;}
.fcard:hover .fc-img img,.fcard:focus-visible .fc-img img,.fcard.is-open .fc-img img{transform:translateY(0) scale(1);}
.fcard:hover .fc-arrow,.fcard:focus-visible .fc-arrow,.fcard.is-open .fc-arrow{transform:translate(3px,-3px);}
.fcard:focus-visible{box-shadow:0 0 0 3px var(--lime),0 26px 54px rgba(0,0,0,.4);}
.usps .fcard.reveal:nth-child(2){transition-delay:.12s} .usps .fcard.reveal:nth-child(3){transition-delay:.24s}

/* ---------- Responsive V9 ---------- */
@media (max-width:920px){
  .hero-grid{grid-template-columns:1fr; gap:30px;}
  .hero h1.wordmark{font-size:clamp(64px,17vw,140px);}
  .hero-strip{grid-template-columns:1fr 1fr;} .hero-strip li:nth-child(3){border-left:none;} .hero-strip li:nth-child(n+3){border-top:1px solid rgba(255,255,255,.14);}
  .steps4{grid-template-columns:1fr 1fr;}
  .usps{grid-template-columns:1fr;}
  .about-panel{grid-template-columns:1fr; grid-template-rows:auto; min-height:0; padding-bottom:32px;}
  .about-panel .about-eyebrow,.about-panel .about-text,.about-panel .about-photo,.about-panel .about-name,.about-panel .about-foot{grid-column:1; grid-row:auto;}
  .about-eyebrow{margin-bottom:18px;}
  .about-panel .about-photo{min-height:0; aspect-ratio:4/4.4; margin-bottom:0;}
  .about-panel .about-name{font-size:clamp(56px,19vw,150px); margin:-.5em 0 18px; position:relative;}
  .about-text{margin-bottom:6px;} .about-text{order:5;}
  .about-foot{margin-top:6px;}
  .about-eyebrow{order:0;} .about-photo{order:1;} .about-name{order:2;} .about-text{order:3;} .about-foot{order:4;}
}
@media (max-width:600px){
  .hero h1.wordmark{font-size:clamp(60px,19.5vw,110px);}
  .hero-claim{font-size:26px;}
  .hero-strip a{padding:15px 12px; font-size:11.5px; letter-spacing:1.2px;}
  .steps4{grid-template-columns:1fr;} .s4-img{aspect-ratio:4/3.2;}
  .bw-oaxaca{font-size:19vw;}
}
@media (prefers-reduced-motion:reduce){.fc-folder,.fc-img img,.fc-arrow{transition:none;}}

/* ---- V9.1: Conoce a Gyda (más contenido) + CTA con palabra gigante ---- */
.about .about-panel .about-quote{grid-column:1; grid-row:2; align-self:start; margin:26px 0 0; padding:0; max-width:27ch;}
.about .about-quote p{max-width:none; margin:0; font-family:var(--serif); font-weight:800; font-size:clamp(18px,1.8vw,23px); line-height:1.2; letter-spacing:-.01em; color:#fff;}
.about-quote p::before{content:"“"; color:var(--lime);}
.about-quote p::after{content:"”"; color:var(--lime);}
.about-quote cite{display:block; margin-top:12px; font-style:normal; font-size:12px; letter-spacing:1.6px; text-transform:uppercase; color:#aeb5cc;}
.about-list{list-style:none; margin:22px 0 0; padding:0; max-width:34ch;}
.about-list li{display:flex; flex-direction:column; gap:2px; padding:11px 0; border-top:1px solid rgba(255,255,255,.14);}
.about-list li:last-child{border-bottom:1px solid rgba(255,255,255,.14);}
.about-list b{font-size:14px; font-weight:700; color:#fff; letter-spacing:.1px;}
.about-list span{font-size:13px; color:#aeb5cc; line-height:1.4;}
.bw-hablemos{font-size:min(14.2vw,196px); margin:0 0 -.36em; padding-left:2px;}
.cta-final{padding-top:56px;}
.cta-final .cta-box{padding-top:clamp(84px,9vw,118px);}
@media (max-width:920px){
  .about .about-panel .about-quote{grid-column:1; grid-row:auto; order:5; margin:18px 0 0; max-width:none;}
}
@media (max-width:600px){.bw-hablemos{font-size:calc((100vw - 66px)/6.1);} .cta-final .cta-box{padding-top:70px;}}

/* ---------- Footer V10 ---------- */
footer.ft{background:linear-gradient(180deg,#0c1730,#080f20); color:#c9cede; border-radius:30px; padding:52px 0 26px; border:1px solid rgba(255,255,255,.08); overflow:hidden;}
footer.ft .brand{color:#fff;}
.ft-top{display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; margin-bottom:54px;}
.ft-cols{display:grid; grid-template-columns:repeat(3,1fr) 1.5fr; gap:28px 36px;}
.ft-cols h4{margin:0 0 16px; font-family:var(--sans); font-weight:600; font-size:11.5px; letter-spacing:2px; text-transform:uppercase; color:var(--lime);}
.ft-cols nav a{display:block; padding:7px 0; color:#d6dae8; text-decoration:none; font-size:15.5px; transition:color .15s, transform .15s;}
.ft-cols nav a:hover{color:#fff; transform:translateX(3px);}
.ft-cta h4{font-family:var(--serif); font-size:20px; font-weight:800; letter-spacing:-.01em; text-transform:none; color:#fff; line-height:1.15; margin-bottom:10px;}
.ft-cta p{margin:0 0 18px; font-size:14px; color:#aeb5cc; max-width:32ch;}
.ft-mark{margin:56px 0 18px; font-family:var(--serif); font-weight:900; text-transform:uppercase; white-space:nowrap; line-height:.85; letter-spacing:-.045em; font-size:min(10.6vw,140px); color:transparent; -webkit-text-stroke:1.5px rgba(219,232,138,.75); user-select:none;
  -webkit-mask-image:linear-gradient(180deg,#000 10%,rgba(0,0,0,.05) 100%); mask-image:linear-gradient(180deg,#000 10%,rgba(0,0,0,.05) 100%);}
.ft-bottom{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px 24px; padding-top:20px; border-top:1px solid rgba(255,255,255,.12); font-size:13px; color:#9aa2bc;}
.ft-bottom a{color:#d6dae8; text-underline-offset:3px;}
@media (max-width:920px){.ft-cols{grid-template-columns:1fr 1fr;} .ft-cta{grid-column:1 / -1;}}
@media (max-width:600px){footer.ft{border-radius:24px; padding-top:40px;} .ft-top{margin-bottom:34px;} .ft-mark{margin-top:38px;} .ft-bottom{flex-direction:column; align-items:flex-start;}}

/* ---------- Ventana de confirmación del formulario ---------- */
.modal{position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center; padding:20px;
  background:rgba(7,13,28,.62); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); opacity:0; transition:opacity .22s ease;}
.modal[hidden]{display:none;}
.modal.is-open{opacity:1;}
.modal-card{width:100%; max-width:460px; text-align:center; color:#fff; border-radius:26px; padding:38px 28px 30px;
  background:radial-gradient(520px 320px at 0% 100%, rgba(125,124,40,.45), transparent 62%), linear-gradient(160deg,var(--navy-dark),var(--navy-deep));
  border:1px solid rgba(255,255,255,.2); box-shadow:0 30px 70px rgba(0,0,0,.5);
  transform:translateY(18px) scale(.97); transition:transform .3s cubic-bezier(.34,1.56,.64,1);}
.modal.is-open .modal-card{transform:none;}
.modal-card .brand{display:flex; flex-direction:column; align-items:center; gap:2px; color:#fff;}
.modal-card .brand-name{font-family:var(--serif); font-weight:900; letter-spacing:.5px; font-size:20px;}
.modal-card .brand-name b{color:var(--lime);}
.modal-card .brand-tag{font-size:12px; opacity:.8;}
.modal-card h2{font-weight:900; text-transform:uppercase; letter-spacing:-.03em; font-size:clamp(24px,6.4vw,32px); margin:18px 0 12px;}
.modal-card p{color:#d9d8cc; margin:0 0 22px; font-size:15.5px;}
.modal-card .btn{width:100%;}
.modal-card .btn-ghost{margin-top:12px;}
html.modal-open{overflow:hidden;}
@media (prefers-reduced-motion:reduce){.modal,.modal-card{transition:none;}}

/* ---------- Galería de propiedades (fotos reales) ---------- */
/* Seis fotos del mismo tamaño, de dos en dos */
.gp-edificio,.gp-cabana,.gp-sala,.gp-fuente,.gp-nave,.gp-terreno{grid-column:span 2; grid-row:span 2;}
.gp-terreno img{object-position:center 45%;}
