/* ==========================================================================
   contact.css, contact form + side info card
   ========================================================================== */
.tt-contact{padding:var(--tt-section-y) 0;}
.tt-contact__head{text-align:center; max-width:640px; margin:0 auto 3rem;}
.tt-contact__head h2{font-size:clamp(1.9rem,3.6vw,2.5rem); color:var(--tt-navy); margin-bottom:.8rem;}
.tt-contact__head p{color:var(--tt-stone); font-size:1.05rem;}

.tt-contact__grid{
  display:grid; grid-template-columns:1.15fr .85fr; gap:2.5rem;
  max-width:var(--tt-maxw); margin:0 auto; padding-inline:var(--tt-gutter);
}
/* 1fr tracks floor at min-content, so an unbreakable word (the email) widens the column past the gutter. */
.tt-contact__grid > *{min-width:0;}

.tt-form{background:#fff; border-radius:var(--tt-radius); padding:2rem; box-shadow:0 16px 40px rgba(31,59,82,.1);}
.tt-form__row{display:grid; grid-template-columns:1fr 1fr; gap:1.2rem;}
.tt-form__field{margin-bottom:1.2rem; display:flex; flex-direction:column; gap:.4rem;}
.tt-form__field label{font-weight:700; font-size:.88rem; color:var(--tt-navy);}
.tt-form__field input, .tt-form__field select, .tt-form__field textarea{
  font-family:var(--tt-ui); font-size:1rem; padding:.75rem .9rem; border-radius:10px;
  border:1.5px solid var(--tt-line); background:var(--tt-cream); color:var(--tt-ink);
}
.tt-form__field textarea{min-height:120px; resize:vertical;}
.tt-form__field input:focus, .tt-form__field select:focus, .tt-form__field textarea:focus{
  outline:none; border-color:var(--tt-blue); background:#fff;
}
.tt-form__turnstile{margin-top:1rem; min-height:65px;}
.tt-form__submit{width:100%; margin-top:.4rem;}
.tt-form__status{margin-top:.9rem; font-size:.92rem; font-weight:700; min-height:1.2em;}
.tt-form__status.is-success{color:#2e7d4f;}
.tt-form__status.is-error{color:var(--tt-pink);}
.tt-hp{position:absolute; left:-9999px; width:1px; height:1px; opacity:0;}

.tt-side{display:flex; flex-direction:column; gap:1.4rem;}
.tt-side-card{background:var(--tt-navy); color:#fff; border-radius:var(--tt-radius); padding:1.8rem;}
.tt-side-card h3{font-size:1.2rem; margin-bottom:1.1rem; color:var(--tt-yellow);}
.tt-side-card__row{display:flex; align-items:flex-start; gap:.7rem; margin-bottom:1rem; text-decoration:none; color:#fff; font-size:.95rem; overflow-wrap:anywhere;}
.tt-side-card__row:last-child{margin-bottom:0;}
.tt-side-card__icon{flex:none; font-size:1.1rem; line-height:1.4;}
.tt-side-card a.tt-side-card__row:hover{color:var(--tt-yellow);}
.tt-side-hours{background:#fff; border:1.5px solid var(--tt-line); border-radius:var(--tt-radius); padding:1.8rem;}
.tt-side-hours h3{font-size:1.2rem; color:var(--tt-navy); margin-bottom:1rem;}
.tt-side-hours__row{display:flex; justify-content:space-between; font-size:.95rem; padding:.4rem 0; border-bottom:1px dashed var(--tt-line);}
.tt-side-hours__row:last-child{border-bottom:0;}
.tt-side-hours__row span:last-child{font-weight:700; color:var(--tt-navy);}

@media (max-width:900px){
  .tt-contact__grid{grid-template-columns:1fr;}
}
@media (max-width:560px){
  .tt-form__row{grid-template-columns:1fr;}
}
