/* CONTACT PAGE */
.contact-hero { background-image:url('https://images.unsplash.com/photo-1528360983277-13d401cdc186?w=1600&q=80') !important; }
.page-hero { position:relative; height:380px; display:flex; align-items:center; background-size:cover; background-position:center; margin-top:68px; }
.page-hero__overlay { position:absolute; inset:0; background:linear-gradient(135deg,rgba(10,30,55,.72),rgba(10,30,55,.45)); }
.page-hero__content { position:relative; z-index:1; color:#fff; text-align:center; width:100%; }
.page-hero__title { font-family:'Playfair Display',serif; font-size:clamp(34px,5vw,56px); font-weight:700; margin-bottom:14px; line-height:1.1; }
.page-hero__subtitle { font-size:16px; color:rgba(255,255,255,.82); max-width:480px; margin:0 auto; }
.navbar__nav a.active { color:var(--primary); border-bottom:2px solid var(--primary); padding-bottom:2px; }

/* INFO CARDS */
.contact-info-section { background:var(--primary); padding:0; margin-bottom:0; }
.contact-info-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:0; }
.info-card { padding:36px 28px; border-right:1px solid rgba(255,255,255,.12); text-align:center; transition:background .2s; }
.info-card:last-child { border-right:none; }
.info-card:hover { background:rgba(255,255,255,.07); }
.info-card__icon { font-size:32px; margin-bottom:12px; display:block; }
.info-card h3 { font-size:16px; font-weight:600; color:#fff; margin-bottom:6px; }
.info-card p { font-size:13px; color:rgba(255,255,255,.65); margin-bottom:12px; }
.info-card__link { display:block; font-size:14px; font-weight:600; color:#fff; margin-bottom:6px; transition:opacity .15s; }
.info-card__link:hover { opacity:.75; }
.btn-link { background:none; border:none; cursor:pointer; font-family:inherit; }
.info-card__note { font-size:11px; color:rgba(255,255,255,.5); }

/* MAIN LAYOUT */
.contact-main { padding:56px 0 80px; }
.contact-layout { display:grid; grid-template-columns:1fr 360px; gap:32px; align-items:start; }

/* FORM CARD */
.form-card { background:#fff; border:1px solid var(--border); border-radius:var(--radius); padding:36px; box-shadow:var(--shadow); }
.form-card__header { display:flex; align-items:flex-start; gap:16px; margin-bottom:32px; padding-bottom:24px; border-bottom:1px solid var(--border); }
.form-card__icon { font-size:32px; flex-shrink:0; }
.form-card__header h2 { font-family:'Playfair Display',serif; font-size:22px; font-weight:700; margin-bottom:4px; }
.form-card__header p { font-size:14px; color:var(--text-muted); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.form-group { display:flex; flex-direction:column; gap:6px; margin-bottom:20px; }
.form-group label { font-size:13px; font-weight:600; color:var(--text); }
.required { color:var(--accent); }
.form-group input,.form-group select,.form-group textarea {
  border:1px solid var(--border); border-radius:var(--radius-sm); padding:11px 14px;
  font-size:14px; font-family:inherit; color:var(--text); background:#fff; outline:none;
  transition:border-color .15s,box-shadow .15s; width:100%;
}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus {
  border-color:var(--primary); box-shadow:0 0 0 3px rgba(27,108,168,.12);
}
.form-group input.invalid { border-color:#e24b4a; }
.form-group textarea { resize:vertical; min-height:120px; }
.error-msg { display:none; font-size:12px; color:#e24b4a; }
.addon-check { display:flex; align-items:center; gap:10px; font-size:13px; cursor:pointer; color:var(--text); }
.addon-check input[type=checkbox] { accent-color:var(--primary); width:16px; height:16px; flex-shrink:0; }
.addon-check a { color:var(--primary); }
.form-actions { display:flex; align-items:center; justify-content:space-between; margin-top:8px; padding-top:24px; border-top:1px solid var(--border); }
.contact-success { display:flex; flex-direction:column; align-items:center; text-align:center; padding:40px 20px; }
.contact-success.hidden { display:none; }
.form-card form.hidden { display:none; }
.success-icon { width:64px; height:64px; border-radius:50%; background:#eaf3de; color:#3b6d11; font-size:28px; display:flex; align-items:center; justify-content:center; margin:0 auto 20px; }
.contact-success h3 { font-family:'Playfair Display',serif; font-size:24px; margin-bottom:10px; }
.contact-success p { font-size:14px; color:var(--text-muted); margin-bottom:24px; }

/* SIDEBAR */
.contact-sidebar { display:flex; flex-direction:column; gap:20px; position:sticky; top:90px; }
.sidebar-card { background:#fff; border:1px solid var(--border); border-radius:var(--radius); padding:24px; box-shadow:var(--shadow); }
.sidebar-card h4 { font-size:14px; font-weight:700; color:var(--text); margin-bottom:14px; }

/* Map */
.map-card { background:#fff; border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); }
.map-placeholder { position:relative; }
.map-visual svg { width:100%; display:block; height:200px; }
.map-pin { position:absolute; top:50%; left:50%; transform:translate(-50%,-70%); font-size:28px; filter:drop-shadow(0 2px 4px rgba(0,0,0,.3)); }
.map-label { position:absolute; bottom:12px; left:12px; background:#fff; border-radius:var(--radius-sm); padding:8px 12px; box-shadow:var(--shadow); }
.map-label strong { display:block; font-size:12px; font-weight:600; color:var(--text); }
.map-label span { font-size:11px; color:var(--text-muted); }
.map-card__footer { padding:16px; border-top:1px solid var(--border); }
.btn--outline-dark { background:transparent; color:var(--text-muted); border:1.5px solid var(--border); border-radius:var(--radius-sm); padding:8px 18px; font-size:13px; font-weight:500; cursor:pointer; transition:all .15s; display:inline-flex; align-items:center; font-family:inherit; }
.btn--outline-dark:hover { border-color:var(--text-muted); color:var(--text); background:var(--bg-alt); }

/* Hours */
.hours-list { margin-bottom:14px; }
.hours-row { display:flex; justify-content:space-between; font-size:13px; padding:7px 0; border-bottom:1px solid var(--border); }
.hours-row:last-child { border-bottom:none; }
.hours-row span { color:var(--text-muted); }
.hours-row strong { color:var(--text); }
.hours-note { font-size:12px; color:var(--text-muted); background:var(--primary-light); border-radius:var(--radius-sm); padding:10px 12px; line-height:1.5; }

/* Social */
.social-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.social-btn { padding:10px 12px; border-radius:var(--radius-sm); font-size:12px; font-weight:600; text-align:center; transition:opacity .15s; color:#fff; }
.social-btn:hover { opacity:.85; }
.social-btn--fb { background:#1877f2; }
.social-btn--ig { background:linear-gradient(135deg,#f58529,#dd2a7b,#8134af); }
.social-btn--tw { background:#000; }
.social-btn--yt { background:#ff0000; }

/* FAQ */
.faq-section { background:var(--bg-alt); padding:80px 0; }
.faq-grid { display:grid; grid-template-columns:1fr 1fr; gap:0; max-width:900px; margin:0 auto; }
.faq-item { border-bottom:1px solid var(--border); }
.faq-item:nth-child(odd) { border-right:1px solid var(--border); padding-right:32px; }
.faq-item:nth-child(even) { padding-left:32px; }
.faq-q {
  width:100%; background:none; border:none; text-align:left; cursor:pointer;
  font-family:inherit; font-size:15px; font-weight:600; color:var(--text);
  padding:20px 0; display:flex; justify-content:space-between; align-items:flex-start;
  gap:12px; transition:color .15s; line-height:1.4;
}
.faq-q:hover,.faq-q.active { color:var(--primary); }
.faq-icon { font-size:20px; font-weight:300; flex-shrink:0; color:var(--primary); line-height:1; }
.faq-a { padding-bottom:20px; }
.faq-a.hidden { display:none; }
.faq-a p { font-size:14px; color:var(--text-muted); line-height:1.7; margin:0; }

@media(max-width:1024px){
  .contact-layout { grid-template-columns:1fr; }
  .contact-sidebar { position:static; }
  .contact-info-grid { grid-template-columns:1fr 1fr; }
  .info-card { border-right:none; border-bottom:1px solid rgba(255,255,255,.12); }
}
@media(max-width:680px){
  .contact-info-grid { grid-template-columns:1fr; }
  .faq-grid { grid-template-columns:1fr; }
  .faq-item:nth-child(odd) { border-right:none; padding-right:0; }
  .faq-item:nth-child(even) { padding-left:0; }
  .form-row { grid-template-columns:1fr; }
  .form-card { padding:22px 16px; }
  .social-grid { grid-template-columns:1fr; }
}
