/* OMNYA — página de contacto (rediseño editorial). Todo acotado a #view-contacto. */
#view-contacto{--ct-ink:#0f1e1c;--ct-pine:#16332c;--ct-sand:#f4efe2;--ct-bronze:#b28a55;--ct-bronze-l:#d6b585;--ct-white:#fffdf8;--ct-line:#e6ddc4;--ct-mute:#5b6761;--ct-err:#a4302a;--ct-r:18px;--ct-max:1180px;}
#view-contacto.view.active{padding:20px 0 0;}
#view-contacto .ct2-formsec,#view-contacto .ct2-office{scroll-margin-top:84px;}
#view-contacto h1,#view-contacto h2{font-family:'Newsreader',Georgia,serif;font-weight:400;text-align:start;color:var(--ct-ink);}

/* Botones */
#view-contacto .ct2-btn{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 30px;border-radius:999px;font:600 .95rem/1 'Manrope',system-ui,sans-serif;letter-spacing:.015em;text-decoration:none;cursor:pointer;border:1.5px solid transparent;transition:background-color .3s ease,color .3s ease,border-color .3s ease,transform .3s ease;}
#view-contacto .ct2-btn:hover{transform:translateY(-1px);}
#view-contacto .ct2-btn-dark{background:var(--ct-pine);color:var(--ct-white);}
#view-contacto .ct2-btn-dark:hover{background:var(--ct-ink);}
#view-contacto .ct2-btn-line{background:transparent;color:var(--ct-ink);border-color:rgba(15,30,28,.35);}
#view-contacto .ct2-btn-line:hover{border-color:var(--ct-ink);background:rgba(15,30,28,.04);}
#view-contacto .ct2-btn-gold{background:var(--ct-bronze);color:var(--ct-ink);}
#view-contacto .ct2-btn-gold:hover{background:var(--ct-bronze-l);}
#view-contacto .ct2-btn:focus-visible,#view-contacto .ct2-submit:focus-visible,#view-contacto .ct2-direct a:focus-visible{outline:3px solid var(--ct-bronze);outline-offset:3px;}

/* HERO editorial asimétrico */
#view-contacto .ct2-hero{padding:0;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:stretch;background:var(--ct-sand);min-height:clamp(480px,62vh,660px);}
#view-contacto .ct2-hero-text{align-self:center;padding:clamp(48px,7vw,96px) clamp(24px,4vw,64px) clamp(48px,7vw,96px) max(6vw,calc((100vw - var(--ct-max))/2));}
#view-contacto .ct2-hero h1{font-size:clamp(2.6rem,5.4vw,4.6rem);line-height:1.03;letter-spacing:-.022em;margin:0 0 clamp(18px,2.4vw,28px);max-width:11ch;}
#view-contacto .ct2-hero p{max-width:40ch;font-size:clamp(1.02rem,1.4vw,1.15rem);line-height:1.7;color:var(--ct-mute);margin:0 0 clamp(26px,3.4vw,40px);}
#view-contacto .ct2-hero-btns{display:flex;flex-wrap:wrap;gap:12px;}
#view-contacto .ct2-hero-photo{margin:0;position:relative;overflow:hidden;border-radius:var(--ct-r) 0 0 var(--ct-r);margin-block:clamp(20px,3vw,36px);background:var(--ct-pine);}
#view-contacto .ct2-hero-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%;display:block;}

/* Marcos de foto con recuadro neutro si falta el archivo */
#view-contacto .ct2-ph.is-missing{background:linear-gradient(150deg,var(--ct-pine),var(--ct-ink));}
#view-contacto .ct2-ph.is-missing img{display:none;}

/* FORMULARIO */
#view-contacto .ct2-formsec{background:var(--ct-white);padding:clamp(64px,9vw,120px) 5vw;}
#view-contacto .ct2-form-wrap{max-width:var(--ct-max);margin:0 auto;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(36px,6vw,96px);align-items:start;}
#view-contacto .ct2-form-intro h2{font-size:clamp(2rem,4vw,3.1rem);line-height:1.08;letter-spacing:-.015em;margin:0 0 16px;}
#view-contacto .ct2-sub{margin:0 0 clamp(26px,4vw,44px);color:var(--ct-mute);line-height:1.7;font-size:1.05rem;max-width:36ch;}
#view-contacto .ct2-direct{list-style:none;margin:0;padding:0;border-top:1px solid var(--ct-line);max-width:380px;}
#view-contacto .ct2-direct li{border-bottom:1px solid var(--ct-line);}
#view-contacto .ct2-direct a{display:flex;align-items:center;gap:16px;min-height:62px;color:var(--ct-ink);text-decoration:none;font-weight:600;font-size:.98rem;transition:color .25s ease,padding .3s ease;}
#view-contacto .ct2-direct a:hover{color:var(--ct-bronze);padding-inline-start:8px;}
#view-contacto .ct2-direct svg{width:22px;height:22px;flex:0 0 22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
#view-contacto .ct2-card{position:relative;background:var(--ct-sand);border-radius:var(--ct-r);padding:clamp(26px,4.4vw,48px);}
#view-contacto .ct2-field{margin:0 0 18px;display:flex;flex-direction:column;}
#view-contacto .ct2-field label{font-size:.88rem;font-weight:600;color:var(--ct-ink);margin:0 0 7px;}
#view-contacto .ct2-field label em{font-style:normal;font-weight:400;color:var(--ct-mute);}
#view-contacto .ct2-field input[type=text],#view-contacto .ct2-field input[type=tel],#view-contacto .ct2-field select{width:100%;min-height:54px;padding:0 16px;font:400 16px/1.2 'Manrope',system-ui,sans-serif;color:var(--ct-ink);background-color:#fff;border:1.5px solid transparent;border-radius:12px;transition:border-color .2s ease,box-shadow .2s ease;appearance:none;-webkit-appearance:none;}
#view-contacto .ct2-field select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none' stroke='%2316332c' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M1 1.5l6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 18px center;padding-inline-end:46px;cursor:pointer;}
html[dir=rtl] #view-contacto .ct2-field select{background-position:left 18px center;}
#view-contacto .ct2-field input:hover,#view-contacto .ct2-field select:hover{border-color:var(--ct-bronze-l);}
#view-contacto .ct2-field input:focus,#view-contacto .ct2-field select:focus{outline:none;border-color:var(--ct-pine);box-shadow:0 0 0 4px rgba(178,138,85,.28);}
#view-contacto .ct2-field [aria-invalid=true]{border-color:var(--ct-err);}
#view-contacto .ct2-err{display:none;margin-top:6px;font-size:.84rem;line-height:1.4;color:var(--ct-err);}
#view-contacto .ct2-err.on{display:block;}
#view-contacto .ct2-chk{display:flex;align-items:flex-start;gap:12px;font-weight:400 !important;font-size:.9rem !important;line-height:1.5;color:var(--ct-mute) !important;cursor:pointer;margin:2px 0 0 !important;}
#view-contacto .ct2-chk input{flex:0 0 22px;width:22px;height:22px;margin:1px 0 0;accent-color:var(--ct-pine);cursor:pointer;}
#view-contacto .ct2-chk a{color:var(--ct-pine);text-decoration:underline;text-underline-offset:3px;}
#view-contacto .ct2-chk input:focus-visible{outline:3px solid var(--ct-bronze);outline-offset:2px;}
#view-contacto .ct2-formerr{margin:0 0 16px;padding:13px 16px;border-radius:12px;background:#fbeceb;border:1px solid #e9b9b5;color:#7d201b;font-size:.92rem;line-height:1.5;}
#view-contacto .ct2-formerr[hidden]{display:none;}
#view-contacto .ct2-submit{position:relative;display:flex;align-items:center;justify-content:center;width:100%;min-height:58px;margin-top:8px;padding:0 20px;border:0;border-radius:999px;background:var(--ct-pine);color:var(--ct-white);font:700 1rem/1 'Manrope',system-ui,sans-serif;letter-spacing:.01em;cursor:pointer;transition:background-color .3s ease,transform .3s ease;}
#view-contacto .ct2-submit:hover{background:var(--ct-ink);transform:translateY(-1px);}
#view-contacto .ct2-submit:disabled{cursor:progress;opacity:.9;transform:none;}
#view-contacto .ct2-spin{display:none;width:18px;height:18px;margin-inline-start:12px;border:2px solid rgba(255,253,248,.35);border-top-color:var(--ct-white);border-radius:50%;animation:ct2spin .8s linear infinite;}
#view-contacto .ct2-submit.is-loading .ct2-spin{display:inline-block;}
#view-contacto .ct2-note{margin:14px 0 0;text-align:center;font-size:.86rem;color:var(--ct-mute);line-height:1.5;}
@keyframes ct2spin{to{transform:rotate(360deg);}}
#view-contacto .ct2-ok{text-align:center;padding:clamp(10px,3vw,30px) 0;outline:none;}
#view-contacto .ct2-ok[hidden]{display:none;}
#view-contacto .ct2-ok h2{font-size:clamp(1.7rem,3vw,2.2rem);margin:0 0 10px;text-align:center;}
#view-contacto .ct2-ok-mark{display:block;width:56px;height:56px;margin:0 auto 20px;border-radius:50%;background:var(--ct-pine);position:relative;}
#view-contacto .ct2-ok-mark::after{content:"";position:absolute;left:19px;top:14px;width:13px;height:22px;border:solid var(--ct-white);border-width:0 3px 3px 0;transform:rotate(45deg);}
#view-contacto .ct2-ok p{margin:0 auto;max-width:36ch;color:var(--ct-mute);line-height:1.65;}

/* OFICINA */
#view-contacto .ct2-office{background:var(--ct-sand);padding:clamp(64px,9vw,120px) 5vw;}
#view-contacto .ct2-office-in{max-width:var(--ct-max);margin:0 auto;}
#view-contacto .ct2-office h2{font-size:clamp(2rem,4.4vw,3.2rem);line-height:1.08;letter-spacing:-.015em;margin:0 0 clamp(24px,4vw,44px);}
#view-contacto .ct2-loc-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,2.2vw,26px);}
#view-contacto .ct2-photo,#view-contacto .ct2-map{margin:0;position:relative;overflow:hidden;border-radius:var(--ct-r);background:var(--ct-pine);aspect-ratio:4/3.1;}
#view-contacto .ct2-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
#view-contacto .ct2-map{background:#e9e3d2;}
#view-contacto .ct2-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;}
#view-contacto .ct2-data{margin-top:clamp(26px,4vw,44px);display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:28px 40px;}
#view-contacto .ct2-data dl{margin:0;flex:1 1 560px;display:grid;grid-template-columns:repeat(4,auto);justify-content:start;gap:22px clamp(24px,4vw,56px);}
#view-contacto .ct2-data dt{font-size:.8rem;font-weight:600;color:var(--ct-mute);margin:0 0 6px;}
#view-contacto .ct2-data dd{margin:0;font-size:.97rem;line-height:1.65;color:var(--ct-ink);overflow-wrap:anywhere;}
#view-contacto .ct2-data a:not(.ct2-btn){color:inherit;text-decoration:none;border-bottom:1px solid rgba(15,30,28,.2);transition:border-color .2s ease;}
#view-contacto .ct2-data a:not(.ct2-btn):hover{border-color:var(--ct-bronze);}
#view-contacto .ct2-data a:focus-visible{outline:2px solid var(--ct-bronze);outline-offset:3px;}

/* CIERRE DE MARCA */
#view-contacto .ct2-close{background:var(--ct-pine);padding:clamp(56px,8vw,104px) 6vw;}
#view-contacto .ct2-close-in{max-width:var(--ct-max);margin:0 auto;}
#view-contacto .ct2-close h2{color:var(--ct-white);font-style:italic;font-size:clamp(2rem,4.8vw,3.8rem);line-height:1.08;letter-spacing:-.015em;max-width:22ch;margin:0 0 20px;}
#view-contacto .ct2-close p{color:rgba(244,239,226,.75);max-width:46ch;line-height:1.7;font-size:1.05rem;margin:0 0 32px;}

/* Responsive */
@media(max-width:960px){
  #view-contacto .ct2-hero{grid-template-columns:1fr;min-height:0;}
  #view-contacto .ct2-hero-text{padding:clamp(40px,8vw,64px) 6vw 32px;}
  #view-contacto .ct2-hero h1{max-width:14ch;}
  #view-contacto .ct2-hero-photo{height:clamp(240px,52vw,420px);margin:0 5vw 5vw;border-radius:var(--ct-r);}
  #view-contacto .ct2-form-wrap{grid-template-columns:1fr;}
  #view-contacto .ct2-direct{max-width:none;}
  #view-contacto .ct2-data dl{grid-template-columns:1fr 1fr;}
}
@media(max-width:700px){
  #view-contacto .ct2-loc-grid{grid-template-columns:1fr;}
  #view-contacto .ct2-photo{aspect-ratio:4/3;}
  #view-contacto .ct2-map{aspect-ratio:auto;height:320px;}
}
@media(max-width:520px){
  #view-contacto .ct2-hero-btns .ct2-btn,#view-contacto .ct2-data .ct2-btn,#view-contacto .ct2-close .ct2-btn{width:100%;}
  #view-contacto .ct2-data dl{grid-template-columns:1fr;}
}

/* Movimiento sutil (solo si no se ha pedido reducirlo) */
@media(prefers-reduced-motion:no-preference){
  html.ct2-js #view-contacto .ct2-rv{opacity:0;transform:translateY(16px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1);}
  html.ct2-js #view-contacto .ct2-rv.in{opacity:1;transform:none;}
  #view-contacto .ct2-hero-text>*{animation:ct2up .9s cubic-bezier(.2,.7,.2,1) both;}
  #view-contacto .ct2-hero-text>*:nth-child(2){animation-delay:.12s;}
  #view-contacto .ct2-hero-text>*:nth-child(3){animation-delay:.24s;}
  #view-contacto .ct2-hero-photo img{animation:ct2zoom 1.8s cubic-bezier(.2,.7,.2,1) both;}
  #view-contacto .ct2-photo img{transition:transform 1.2s cubic-bezier(.2,.7,.2,1);}
  #view-contacto .ct2-photo:hover img{transform:scale(1.04);}
  @keyframes ct2up{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:none;}}
  @keyframes ct2zoom{from{transform:scale(1.07);opacity:.2;}to{transform:none;opacity:1;}}
}
@media(prefers-reduced-motion:reduce){
  #view-contacto *{transition:none !important;animation-duration:.01ms !important;}
  #view-contacto .ct2-spin{animation:none;border-top-color:var(--ct-white);border-right-color:var(--ct-white);}
}
