/* Contact page — adapted from the Gerber Taylor proposal design.
   Scoped to .gt-contact so it never touches the shared navbar/footer/other pages. */
.gt-contact {
  --gt-navy:#37485a; --gt-navy-deep:#2f3d4b; --gt-orange:#c96a3c; --gt-orange-hover:#b65a2e;
  --gt-blue:#83a1c0; --gt-link:#5e80a6; --gt-gray:#f4f3f0; --gt-text:#37485a; --gt-text-muted:#5f6b77;
  --gt-border:#bcc6cf;
  --serif:'Playfair Display',Georgia,serif; --sans:'Montserrat',-apple-system,BlinkMacSystemFont,sans-serif;
  font-family:var(--sans); color:var(--gt-text); line-height:1.7; font-weight:400; -webkit-font-smoothing:antialiased;
}
.gt-contact *, .gt-contact *::before, .gt-contact *::after { box-sizing:border-box; margin:0; padding:0; }
.gt-contact .gt-container { max-width:1140px; margin:0 auto; padding:0 2.2rem; }

/* HERO */
.gt-contact .gt-hero { position:relative; padding:11rem 0 4.5rem; background:var(--gt-navy-deep); overflow:hidden; }
.gt-contact .gt-hero-bg { position:absolute; inset:0; background-position:center 58%; background-size:cover; background-repeat:no-repeat; opacity:0.32; }
.gt-contact .gt-hero::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(31,40,49,0.55) 0%,rgba(47,61,75,0.82) 100%); }
.gt-contact .gt-hero .gt-container { position:relative; z-index:1; }
.gt-contact .gt-hero h1 { font-family:var(--serif); font-weight:500; color:#fff; font-size:clamp(2.4rem,4.6vw,3.5rem); line-height:1.08; }

/* MAIN */
.gt-contact .gt-main { padding:5rem 0 5.5rem; background:#fff; }
.gt-contact .gt-layout { display:grid; grid-template-columns:1.55fr 1fr; gap:3.5rem; align-items:start; }

/* FORM CARD */
.gt-contact .gt-form-card { background:#fff; border:1px solid #e7e5e0; border-radius:10px; box-shadow:0 16px 50px rgba(45,60,75,0.07); padding:2.6rem 2.6rem 2.8rem; }
.gt-contact .gt-form-card h2 { font-family:var(--serif); font-weight:500; color:var(--gt-navy); font-size:1.8rem; line-height:1.15; margin-bottom:0.5rem; }
.gt-contact .gt-form-card .sub { font-size:0.92rem; color:var(--gt-text-muted); margin-bottom:2rem; line-height:1.6; }
.gt-contact .gt-row { display:grid; grid-template-columns:1fr 1fr; gap:1.3rem; }
.gt-contact .fld { margin-bottom:1.3rem; }
.gt-contact .fld label { display:block; font-size:0.72rem; font-weight:600; letter-spacing:0.06em; text-transform:uppercase; color:var(--gt-navy); margin-bottom:0.5rem; }
.gt-contact .fld label .req { color:var(--gt-orange); margin-left:1px; }
.gt-contact .fld input, .gt-contact .fld select, .gt-contact .fld textarea { font-family:var(--sans); font-size:0.95rem; color:var(--gt-text); background:#fbfaf8; border:1px solid var(--gt-border); border-radius:7px; padding:0.8rem 0.9rem; width:100%; transition:border-color 0.2s,box-shadow 0.2s,background 0.2s; }
.gt-contact .fld textarea { min-height:130px; resize:vertical; line-height:1.6; }
.gt-contact .fld input:focus, .gt-contact .fld select:focus, .gt-contact .fld textarea:focus { outline:none; border-color:var(--gt-orange); background:#fff; box-shadow:0 0 0 3px rgba(201,106,60,0.12); }
.gt-contact .fld select { -webkit-appearance:none; -moz-appearance:none; appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 11 7'%3E%3Cpath fill='%2337485a' d='M5.5 7 0 0h11z'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 0.95rem center; padding-right:2.3rem; }
.gt-contact .gt-hp { position:absolute; left:-9999px; }
.gt-contact .gt-form-foot { display:flex; align-items:center; justify-content:space-between; gap:1.2rem; flex-wrap:wrap; margin-top:0.6rem; }
.gt-contact .gt-form-foot .note { font-size:0.74rem; color:var(--gt-text-muted); max-width:300px; line-height:1.5; }
.gt-contact .gt-submit { background:var(--gt-orange); color:#fff; border:none; font-family:var(--sans); font-size:0.82rem; font-weight:600; letter-spacing:0.06em; text-transform:uppercase; padding:0.92rem 2.2rem; border-radius:7px; cursor:pointer; transition:background 0.2s,transform 0.15s; }
.gt-contact .gt-submit:hover { background:var(--gt-orange-hover); }
.gt-contact .gt-submit:disabled { opacity:0.6; cursor:default; }
.gt-contact .gt-submit:active { transform:translateY(1px); }
.gt-contact .gt-submit:focus-visible { outline:2px solid var(--gt-navy); outline-offset:2px; }

/* inline validation */
.gt-contact .fld-err { display:none; font-size:0.72rem; font-weight:500; color:#c0392b; margin-top:0.4rem; }
.gt-contact .fld.error .fld-err { display:block; }
.gt-contact .fld.error input, .gt-contact .fld.error select, .gt-contact .fld.error textarea { border-color:#d05b4e; background:#fdf4f2; }

/* SUCCESS */
.gt-contact .gt-success { display:none; text-align:center; padding:3.5rem 1rem; }
.gt-contact .gt-success.show { display:block; }
.gt-contact .gt-success .chk { width:66px; height:66px; border-radius:50%; background:rgba(201,106,60,0.12); color:var(--gt-orange); display:flex; align-items:center; justify-content:center; margin:0 auto 1.4rem; }
.gt-contact .gt-success .chk svg { width:32px; height:32px; }
.gt-contact .gt-success h3 { font-family:var(--serif); font-weight:500; font-size:1.7rem; color:var(--gt-navy); margin-bottom:0.6rem; }
.gt-contact .gt-success p { font-size:0.96rem; color:var(--gt-text-muted); max-width:380px; margin:0 auto; line-height:1.65; }

/* INFO ASIDE */
.gt-contact .gt-aside { display:flex; flex-direction:column; gap:1.6rem; }
.gt-contact .gt-info { border:1px solid #e7e5e0; border-radius:10px; padding:1.7rem 1.8rem; }
.gt-contact .gt-info h3 { font-family:var(--serif); font-weight:500; color:var(--gt-navy); font-size:1.25rem; margin-bottom:1.2rem; }
.gt-contact .gt-info-row { display:flex; gap:0.9rem; align-items:flex-start; }
.gt-contact .gt-info-row + .gt-info-row { margin-top:1.3rem; padding-top:1.3rem; border-top:1px solid #efede8; }
.gt-contact .gt-info-ico { flex-shrink:0; width:38px; height:38px; border-radius:9px; background:var(--gt-gray); color:var(--gt-orange); display:flex; align-items:center; justify-content:center; }
.gt-contact .gt-info-ico svg { width:19px; height:19px; }
.gt-contact .gt-info-row .k { font-size:0.68rem; font-weight:600; letter-spacing:0.08em; text-transform:uppercase; color:var(--gt-text-muted); margin-bottom:0.25rem; }
.gt-contact .gt-info-row address { font-style:normal; font-size:0.92rem; color:var(--gt-text); line-height:1.55; }
.gt-contact .gt-info-row a { color:var(--gt-link); text-decoration:none; font-size:0.92rem; font-weight:500; transition:color 0.2s; }
.gt-contact .gt-info-row a:hover { color:var(--gt-orange); }

/* responsive */
@media (max-width:880px) {
  .gt-contact .gt-layout { grid-template-columns:1fr; gap:2.2rem; }
}
@media (max-width:560px) {
  .gt-contact .gt-hero { padding:9rem 0 3.4rem; }
  .gt-contact .gt-row { grid-template-columns:1fr; }
  .gt-contact .gt-form-card { padding:1.8rem; }
  .gt-contact .gt-main { padding:3.4rem 0 4rem; }
}
