/* contact.css */

[data-fade] { opacity:0; transform:translateY(20px); transition:opacity .5s var(--ease),transform .5s var(--ease); }
[data-fade].visible { opacity:1; transform:none; }

.inline-link { font-style:normal; color:var(--maroon); font-weight:600; text-decoration:none; border-bottom:1px solid var(--gold); padding-bottom:1px; transition:border-color var(--t-fast),color var(--t-fast); }
.inline-link:hover { color:var(--saffron); border-color:var(--saffron); }

/* Contact hero grid */
.contact-hero { background:var(--navy); }
#enquiry { scroll-margin-top: 96px; }
.ch-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }

/* Quick contact */
.quick-contact { display:flex; flex-direction:column; gap:12px; margin-bottom:36px; }
.qc-item { display:flex; align-items:center; gap:16px; text-decoration:none; background:rgba(251,245,228,.06); border:1px solid rgba(251,245,228,.1); border-left:3px solid transparent; padding:14px 18px; border-radius:8px; cursor:pointer; transition:background var(--t-fast),border-color var(--t-fast); }
.qc-item::after { content:'→'; margin-left:auto; color:var(--gold); opacity:.45; font-size:16px; transition:transform var(--t-fast),opacity var(--t-fast); }
.qc-item:hover { background:rgba(251,245,228,.1); border-color:rgba(201,168,58,.5); border-left-color:var(--gold); }
.qc-item:hover::after { transform:translateX(3px); opacity:1; }
.qc-icon { width:36px; height:36px; background:rgba(201,168,58,.15); border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0; color:var(--gold); }
.qc-icon.wa { background:rgba(37,211,102,.15); color:#25d366; }
.qc-item b { display:block; font-family:var(--font-display); font-weight:600; font-size:15px; color:var(--cream); margin-bottom:2px; }
.qc-item span { display:block; font-size:var(--text-sm); color:rgba(251,245,228,.6); }

/* Address block */
.address-block { display:flex; flex-direction:column; gap:16px; padding:24px; background:rgba(251,245,228,.05); border-left:3px solid var(--gold); }
.address-row { display:grid; grid-template-columns:56px 1fr; gap:12px; font-size:var(--text-sm); color:rgba(251,245,228,.75); line-height:1.6; }
.addr-label { font-family:var(--font-mono); font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); font-weight:700; padding-top:2px; }

/* Enquiry form (dark variant) */
.enquiry-form { background:var(--cream); padding:40px; display:flex; flex-direction:column; gap:20px; }
.enquiry-form h2,
.enquiry-form h3 { font-family:var(--font-display); font-weight:600; font-size:clamp(22px,2.5vw,28px); color:var(--navy); margin-bottom:0; }
.enquiry-form [hidden] { display:none !important; }
.enquiry-form [aria-invalid="true"] { border-bottom-color:var(--maroon); }
.enquiry-form button[disabled] { cursor:wait; opacity:.72; }
.form-submitting-status { display:flex; align-items:center; gap:10px; color:var(--navy); font-size:var(--text-sm); line-height:1.4; }
.saving-spinner { width:16px; height:16px; border:2px solid rgba(13,44,74,.2); border-top-color:var(--maroon); border-radius:50%; animation:enquiry-spin .7s linear infinite; flex-shrink:0; }
@keyframes enquiry-spin { to { transform:rotate(360deg); } }

.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.field-error { color:var(--maroon); font-size:12px; line-height:1.4; }
.field-error:empty { display:none; }
.field-help { color:var(--navy); font-size:12px; line-height:1.4; opacity:.7; }
.website-field { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.turnstile-container { max-width:100%; min-height:0; }
.form-consent { color:var(--navy); font-size:12px; line-height:1.5; opacity:.65; margin-top:-4px; }
.form-error { color:var(--maroon); background:rgba(139,26,26,.08); border:1px solid rgba(139,26,26,.25); padding:12px 14px; font-size:var(--text-sm); line-height:1.5; }
.form-error:focus,
.form-success:focus { outline:2px solid var(--saffron); outline-offset:2px; }
.enquiry-response-frame { display:none; width:0; height:0; border:0; }

.form-success { display:flex; align-items:flex-start; gap:14px; background:rgba(58,154,82,.1); border:1px solid rgba(58,154,82,.3); padding:16px 20px; }
.success-icon { width:28px; height:28px; background:#3a9a52; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-size:14px; font-weight:700; flex-shrink:0; }
.form-success b { display:block; font-family:var(--font-display); font-weight:600; font-size:16px; color:var(--navy); margin-bottom:4px; }
.form-success span { font-size:var(--text-sm); color:var(--navy); opacity:.75; }

/* Visit section */
.visit-section { padding:var(--space-3xl) 0; }
.visit-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }

.visit-details { display:flex; flex-direction:column; gap:20px; }
.vd-row { display:grid; grid-template-columns:80px 1fr; gap:16px; font-size:var(--text-sm); color:var(--navy); line-height:1.6; }
.vd-label { font-family:var(--font-mono); font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:var(--maroon); font-weight:700; padding-top:3px; }
.vd-row a { color:var(--maroon); text-decoration:none; font-weight:500; }
.vd-row a:hover { color:var(--saffron); }

/* Map placeholder */
.map-card { background:var(--cream); padding:16px; margin-top:16px; flex:1; display:flex; flex-direction:column; min-height:0; }
.map-placeholder { background:var(--paper-alt); border:1px solid var(--rule); display:flex; align-items:center; justify-content:center; position:relative; flex:1; min-height:220px; border-radius:4px; overflow:hidden; }
.map-placeholder-content { text-align:center; padding:28px; display:flex; flex-direction:column; align-items:center; gap:14px; }
.map-placeholder-content strong { font-family:var(--font-display); color:var(--navy); font-size:18px; line-height:1.35; }
.map-actions { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }
.map-actions .btn { font-size:12px; padding:10px 16px; }
.map-link { color:var(--navy); border-color:var(--rule-strong); }
#contact-map > .ph-label { display:none; }
.map-placeholder iframe { width:100%; height:100%; min-height:220px; border:0; display:block; }
.ph-label { font-family:var(--font-mono); font-size:var(--text-xs); letter-spacing:.1em; text-transform:uppercase; color:var(--navy); opacity:.4; }

/* FAQ */
.faq-section { padding:var(--space-3xl) 0; }
.faq-grid { display:grid; grid-template-columns:1fr 1fr; gap:2px; background:var(--rule); border:1px solid var(--rule); margin-top:48px; }
.faq-item { background:var(--paper); padding:32px 28px; }
.faq-item h4 { font-family:var(--font-display); font-weight:600; font-size:18px; color:var(--maroon); margin-bottom:12px; }
.faq-item p { font-size:var(--text-sm); color:var(--navy); line-height:1.65; opacity:.8; }

/* Responsive */
@media (max-width:1024px) {
  .ch-grid { grid-template-columns:1fr; gap:48px; }
  .visit-grid { grid-template-columns:1fr; gap:40px; }
}
@media (max-width:768px) {
  .form-row { grid-template-columns:1fr; }
  .faq-grid { grid-template-columns:1fr; }
  .enquiry-form { padding:28px 24px; }
  .map-actions { flex-direction:column; align-items:stretch; width:100%; }
}
@media (max-width:480px) {
  .ch-grid { gap:36px; }
  .qc-item { padding:12px 14px; }
  .address-row { grid-template-columns:48px 1fr; }
  .vd-row { grid-template-columns:64px 1fr; }
}

@media (prefers-reduced-motion:reduce) {
  .saving-spinner { animation:none; border-color:var(--maroon); }
}
