/* FMO Contacto V10 · Exclusivo para la página Contacto. */
.fmo-contact-page {
  --fmo-contact-green: #94f8b4;
  --fmo-contact-black: #131313;
  --fmo-contact-surface: #1b1b1b;
  --fmo-contact-line: rgba(255,255,255,.18);
  background: var(--fmo-contact-black);
  color: #f7f7f7;
  min-height: 100vh;
  font-family: var(--font-body, 'Poppins',sans-serif);
}
.fmo-contact-page *, .fmo-contact-page *::before, .fmo-contact-page *::after { box-sizing:border-box; }
.fmo-contact-page a { text-decoration:none; }
.fmo-contact-heading { padding:clamp(9rem,16vw,13rem) 6vw clamp(3rem,7vw,6rem); border-bottom:1px solid var(--fmo-contact-line); }
.fmo-contact-heading-inner { max-width:1280px; margin:0 auto; }
.fmo-contact-kicker, .fmo-contact-small { font-size:.83rem; font-weight:800; letter-spacing:.16em; color:var(--fmo-contact-green); }
.fmo-contact-heading h1 { margin:1.5rem 0 1.65rem; font-family:var(--font-heading,'Montserrat',sans-serif); font-size:clamp(2.55rem,6.3vw,6.4rem); line-height:1.04; font-weight:800; letter-spacing:-.055em; color:#fff; max-width:1050px; }
.fmo-contact-heading h1 span { color:var(--fmo-contact-green); }
.fmo-contact-intro { max-width:680px; font-size:clamp(1rem,1.7vw,1.28rem); line-height:1.7; color:#c7c7c7; }
.fmo-contact-main { padding:clamp(3rem,7vw,7rem) 6vw 7rem; }
.fmo-contact-layout { display:grid; grid-template-columns:minmax(0,.83fr) minmax(0,1.17fr); gap:clamp(2.5rem,7vw,8rem); max-width:1280px; margin:0 auto; align-items:start; }
.fmo-contact-aside { padding-top:1.2rem; }
.fmo-contact-aside h2 { font-family:var(--font-heading,'Montserrat',sans-serif); font-size:clamp(1.9rem,3vw,3.25rem); line-height:1.17; letter-spacing:-.04em; font-weight:800; max-width:16ch; margin:1.35rem 0 1.5rem; color:#fff; }
.fmo-contact-aside > p:not(.fmo-contact-small) { color:#bcbcbc; font-size:1rem; line-height:1.9; max-width:41ch; }
.fmo-contact-direct { display:flex; flex-direction:column; gap:.75rem; margin-top:3rem; border-top:1px solid var(--fmo-contact-line); padding-top:1.75rem; }
.fmo-contact-direct span { color:var(--fmo-contact-green); font-size:.75rem; font-weight:700; letter-spacing:.13em; }
.fmo-contact-direct a { font-size:clamp(1rem,1.6vw,1.3rem); color:#fff; overflow-wrap:anywhere; }
.fmo-contact-direct a:hover, .fmo-contact-direct a:focus-visible { color:var(--fmo-contact-green); }
.fmo-contact-form-panel { border:1px solid var(--fmo-contact-line); background:var(--fmo-contact-surface); padding:clamp(1.4rem,3vw,3rem); scroll-margin-top:110px; }
.fmo-contact-form-panel h2 { font-size:clamp(1.45rem,2.1vw,2rem); font-family:var(--font-heading,'Montserrat',sans-serif); font-weight:800; letter-spacing:-.035em; color:#fff; margin:0 0 .5rem; }
.fmo-contact-form-description { margin:0 0 2rem; color:#bdbdbd; line-height:1.65; font-size:.94rem; }
.fmo-contact-fields-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.3rem; }
.fmo-contact-field { margin-bottom:1.35rem; }
.fmo-contact-field label { display:block; color:#f8f8f8; font-size:.84rem; font-weight:600; margin-bottom:.65rem; }
.fmo-contact-field label span { color:var(--fmo-contact-green); }
.fmo-contact-field input, .fmo-contact-field textarea { display:block; width:100%; max-width:100%; margin:0; border:1px solid rgba(255,255,255,.23); border-radius:0; background:#111; color:#f8f8f8; font:inherit; font-size:.95rem; padding:.95rem 1rem; outline:none; box-shadow:none; }
.fmo-contact-field textarea { resize:vertical; min-height:150px; line-height:1.6; }
.fmo-contact-field input::placeholder, .fmo-contact-field textarea::placeholder { color:#8b8b8b; opacity:1; }
.fmo-contact-field input:focus, .fmo-contact-field textarea:focus { border-color:var(--fmo-contact-green); box-shadow:0 0 0 2px rgba(148,248,180,.13); }
.fmo-contact-consent { display:flex; gap:.8rem; align-items:flex-start; font-size:.78rem; line-height:1.6; color:#c9c9c9; margin:.6rem 0 1.75rem; }
.fmo-contact-consent input { accent-color:var(--fmo-contact-green); width:17px; height:17px; margin:.13rem 0 0; flex:0 0 auto; cursor:pointer; }
.fmo-contact-consent label { cursor:pointer; }
.fmo-contact-consent a { color:var(--fmo-contact-green); text-decoration:underline; text-underline-offset:2px; }
.fmo-contact-submit { background:var(--fmo-contact-green); color:#111; width:100%; border:0; border-radius:0; display:flex; justify-content:space-between; align-items:center; padding:1.25rem 1.4rem; cursor:pointer; font-family:var(--font-heading,'Montserrat',sans-serif); font-size:.82rem; font-weight:800; letter-spacing:.11em; transition:background .2s,transform .2s; }
.fmo-contact-submit span { font-size:1.4rem; line-height:1; }
.fmo-contact-submit:hover, .fmo-contact-submit:focus-visible { background:#b4ffcb; }
.fmo-contact-submit:active { transform:translateY(1px); }
.fmo-contact-footnote { color:#999; font-size:.73rem; line-height:1.6; margin-top:1rem; }
.fmo-contact-notice { padding:1rem 1.15rem; margin:0 0 1.5rem; font-size:.9rem; line-height:1.6; border:1px solid; }
.fmo-contact-notice--success { background:rgba(148,248,180,.09); border-color:var(--fmo-contact-green); color:#d1ffdf; }
.fmo-contact-notice--error { background:rgba(255,115,115,.08); border-color:#ff7777; color:#ffdddd; }
.fmo-contact-notice ul { list-style:disc; padding-left:1.2rem; margin-top:.5rem; }
.fmo-contact-honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.fmo-contact-instagram { margin-top:1rem; border:1px solid var(--fmo-contact-line); }
.fmo-contact-instagram a { display:flex; align-items:center; gap:1.1rem; padding:1.4rem clamp(1.4rem,3vw,2rem); color:#fff; transition:background .2s; }
.fmo-contact-instagram a:hover, .fmo-contact-instagram a:focus-visible { background:#212a23; }
.fmo-contact-instagram-icon { width:42px; height:42px; color:var(--fmo-contact-green); flex:0 0 42px; }
.fmo-contact-instagram-icon svg { display:block; width:100%; height:100%; }
.fmo-contact-instagram-copy { display:flex; flex-direction:column; gap:.18rem; }
.fmo-contact-instagram-copy strong { font-size:.97rem; font-weight:700; }
.fmo-contact-instagram-copy small { font-size:.88rem; color:#b9b9b9; }
.fmo-contact-instagram-arrow { color:var(--fmo-contact-green); margin-left:auto; font-size:1.4rem; }
@media(max-width:900px){
 .fmo-contact-layout { grid-template-columns:1fr; gap:2rem; }
 .fmo-contact-aside h2 { max-width:26ch; }
 .fmo-contact-aside { padding:0; }
 .fmo-contact-direct { margin-top:1.8rem; }
}
@media(max-width:560px){
 .fmo-contact-heading { padding:8.5rem 5vw 3.2rem; }
 .fmo-contact-main { padding:3.5rem 5vw 5rem; }
 .fmo-contact-heading h1 { font-size:clamp(2.45rem,12vw,3.8rem); }
 .fmo-contact-fields-pair { grid-template-columns:1fr; gap:0; }
 .fmo-contact-form-panel { padding:1.35rem; }
 .fmo-contact-instagram a { gap:.75rem; }
}
@media(prefers-reduced-motion:reduce){
 .fmo-contact-submit, .fmo-contact-instagram a { transition:none; }
}
