/* ── PAGE HERO ── */
.page-hero {
    background: linear-gradient(160deg, var(--blue) 0%, var(--blue-mid) 55%, #0e4d8a 100%);
    padding: 130px 5% 80px; position: relative; overflow: hidden;
}
.page-hero::before {
    content: ''; position: absolute; inset: 0;
    background: radial-gradient(ellipse 55% 60% at 80% 30%, rgba(200,148,31,.16) 0%, transparent 65%);
}
.breadcrumb { font-size:.76rem; color:rgba(255,255,255,.4); margin-bottom:1.1rem; position:relative; }
.breadcrumb a { color:var(--gold); text-decoration:none; }
.breadcrumb span { margin:0 .5rem; }
.hero-badge { display:inline-flex; align-items:center; gap:.5rem; background:rgba(200,148,31,.15); border:1px solid var(--gold-border); color:var(--gold); font-size:.75rem; padding:.38rem .9rem; margin-bottom:1.3rem; border-radius:3px; position:relative; }
.page-hero h1 { font-family:'Playfair Display',serif; font-size:clamp(2.2rem,4.5vw,3.8rem); font-weight:700; color:var(--white); line-height:1.13; margin-bottom:1.2rem; position:relative; }
.page-hero h1 em { color:var(--gold); font-style:italic; }
.page-hero > p { color:rgba(255,255,255,.65); font-size:1rem; max-width:560px; line-height:1.85; position:relative; }
.page-hero > * { animation:fadeUp .7s ease both; }
.page-hero > p { animation-delay:.1s; }

/* ── CONTACT STRIP ── */
.contact-strip { background:var(--blue-pale); padding:2.5rem 5%; border-bottom:1px solid var(--border); }
.strip-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:1.5rem; max-width:1200px; margin:0 auto; text-align:center; }
.strip-item i { font-size:1.6rem; color:var(--gold); display:block; margin-bottom:.7rem; }
.strip-item h4 { font-family:'Playfair Display',serif; font-size:1rem; font-weight:700; color:var(--text); margin-bottom:.35rem; }
.strip-item p { font-size:.82rem; color:var(--muted); line-height:1.7; }

/* ── CONTACT LAYOUT ── */
.contact-section { background:var(--bg); padding:5rem 5%; }
.contact-layout { display:grid; grid-template-columns:380px 1fr; gap:3.5rem; max-width:1200px; margin:0 auto; align-items:start; }

/* Sidebar */
.contact-sidebar { display:flex; flex-direction:column; gap:1.2rem; }
.sidebar-intro { margin-bottom:.5rem; }
.sidebar-intro .stag { color:var(--blue-light); margin-bottom:.6rem; }
.sidebar-intro h2 { font-family:'Playfair Display',serif; font-size:1.9rem; font-weight:700; color:var(--text); margin-bottom:.7rem; }
.sidebar-intro h2 em { color:var(--gold); font-style:italic; }
.sidebar-intro p { font-size:.9rem; color:var(--muted); line-height:1.8; }
.info-card { background:var(--white); border:1px solid var(--border); border-radius:6px; padding:1.2rem 1.4rem; display:flex; align-items:flex-start; gap:1rem; transition:border-color .25s,box-shadow .25s; }
.info-card:hover { border-color:var(--gold); box-shadow:0 4px 16px rgba(200,148,31,.12); }
.info-icon { width:42px; height:42px; border-radius:10px; background:var(--blue-pale); border:1px solid var(--border); display:flex; align-items:center; justify-content:center; font-size:1rem; color:var(--blue-light); flex-shrink:0; }
.info-text h4 { font-size:.88rem; font-weight:700; color:var(--text); margin-bottom:.3rem; }
.info-text a { font-size:.88rem; color:var(--blue-light); text-decoration:none; transition:color .2s; display:block; margin-bottom:.2rem; }
.info-text a:hover { color:var(--blue); }
.info-text small { font-size:.75rem; color:var(--muted); }
.info-text p { font-size:.85rem; color:var(--muted); line-height:1.6; }
.hours-grid { display:flex; flex-direction:column; gap:.6rem; margin-top:.5rem; }
.hours-row { display:flex; justify-content:space-between; align-items:center; font-size:.82rem; color:var(--muted); gap:1rem; padding:.25rem 0; border-bottom:1px solid var(--border); }
.hours-row:last-child { border-bottom:none; }
.hours-row span:first-child { font-weight:600; color:var(--text); }
.badge-open { display:inline-block; background:#d1fae5; color:#065f46; font-size:.7rem; font-weight:700; padding:.2rem .6rem; border-radius:20px; margin-top:.5rem; }
.social-row { display:flex; gap:.6rem; flex-wrap:wrap; }
.soc-link {
    width:36px; height:36px; border-radius:50%;
    background:var(--blue-pale); border:1px solid var(--border);
    display:flex; align-items:center; justify-content:center;
    color:var(--blue-light); font-size:.88rem;
    text-decoration:none; transition:background .25s,color .25s,transform .2s;
    line-height:1; text-align:center;
}
.soc-link i { display:flex; align-items:center; justify-content:center; width:100%; height:100%; }
.soc-link:hover { background:var(--blue); color:var(--gold); transform:translateY(-2px); }

/* Form card */
.form-card { background:var(--white); border:1px solid var(--border); border-radius:8px; border-top:4px solid var(--gold); padding:2.5rem; box-shadow:var(--shadow-sm); }
.form-card h3 { font-family:'Playfair Display',serif; font-size:1.8rem; font-weight:700; color:var(--text); margin-bottom:.6rem; }
.form-card h3 em { color:var(--gold); font-style:italic; }
.form-card > p { font-size:.88rem; color:var(--muted); margin-bottom:1.8rem; line-height:1.7; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; }
.form-group { margin-bottom:1.2rem; display:flex; flex-direction:column; }
.form-group label { font-size:.82rem; font-weight:700; color:var(--text); margin-bottom:.45rem; }
.req { color:#E24B4A; }
.form-group input, .form-group select, .form-group textarea {
    padding:.75rem 1rem; border:1.5px solid var(--border); border-radius:5px;
    font-family:'Nunito Sans',sans-serif; font-size:.9rem; color:var(--text);
    background:var(--white); transition:border-color .25s,box-shadow .25s; outline:none;
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus {
    border-color:var(--gold); box-shadow:0 0 0 3px rgba(200,148,31,.12);
}
.form-group textarea { resize:vertical; min-height:110px; }
.select-wrap { position:relative; }
.select-wrap select { appearance:none; padding-right:2rem; width:100%; cursor:pointer; }
.select-wrap::after { content:'\f107'; font-family:'Font Awesome 6 Free'; font-weight:900; position:absolute; right:1rem; top:50%; transform:translateY(-50%); color:var(--muted); pointer-events:none; }
.budget-pills { display:flex; gap:.5rem; flex-wrap:wrap; }
.b-pill { display:inline-flex; }
.b-pill input[type=radio] { display:none; }
.b-pill label { padding:.4rem .9rem; font-size:.78rem; font-weight:600; border:1.5px solid var(--border); border-radius:20px; color:var(--muted); cursor:pointer; transition:all .2s; }
.b-pill input:checked + label { background:var(--blue); border-color:var(--blue); color:var(--white); }
.b-pill label:hover { border-color:var(--blue-light); color:var(--blue); }
.consent-row { display:flex; align-items:flex-start; gap:.7rem; margin-bottom:1.4rem; }
.consent-row input { width:16px; height:16px; margin-top:2px; accent-color:var(--blue); flex-shrink:0; cursor:pointer; }
.consent-row label { font-size:.82rem; color:var(--muted); line-height:1.65; cursor:pointer; }
.consent-row a { color:var(--blue-light); }
.btn-submit {
    width:100%; background:var(--blue); color:var(--white); border:none;
    padding:1rem 2rem; border-radius:5px; font-family:'Nunito Sans',sans-serif;
    font-size:.92rem; font-weight:700; cursor:pointer; letter-spacing:.06em; text-transform:uppercase;
    transition:background .25s,transform .2s; display:flex; align-items:center; justify-content:center; gap:.5rem;
}
.btn-submit:hover { background:var(--blue-mid); transform:translateY(-2px); }
.form-group.is-error input, .form-group.is-error select, .form-group.is-error textarea { border-color:#E24B4A; }
.consent-row.is-error { background:#fff5f5; padding:.5rem; border-radius:4px; }
.err-msg { font-size:.75rem; color:#E24B4A; margin-top:.35rem; display:flex; align-items:center; gap:.3rem; }
.form-success { display:none; text-align:center; padding:3rem 2rem; }
.form-success.show { display:block; }
.success-icon { width:70px; height:70px; border-radius:50%; background:#d1fae5; display:flex; align-items:center; justify-content:center; margin:0 auto 1.2rem; font-size:2rem; color:#065f46; }
.form-success h4 { font-family:'Playfair Display',serif; font-size:1.4rem; color:var(--text); margin-bottom:.7rem; }
.form-success p { font-size:.9rem; color:var(--muted); line-height:1.8; }

/* Map */
.map-section { background:var(--border); }
.map-wrap iframe { width:100%; height:400px; border:0; display:block; filter:grayscale(0.2); }

/* FAQ */
.faq { background:var(--white); padding:5rem 5%; }
.faq-grid { max-width:900px; margin:3rem auto 0; display:flex; flex-direction:column; gap:.8rem; }
.faq-item { border:1px solid var(--border); border-radius:6px; overflow:hidden; transition:box-shadow .25s; }
.faq-item.open { box-shadow:0 4px 18px rgba(11,47,94,.1); border-color:var(--gold); }
.faq-q { width:100%; background:none; border:none; padding:1.2rem 1.4rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; cursor:pointer; font-family:'Nunito Sans',sans-serif; font-size:.92rem; font-weight:700; color:var(--text); text-align:left; transition:background .2s; }
.faq-q:hover { background:var(--bg); }
.faq-item.open .faq-q { background:var(--blue-pale); color:var(--blue); }
.faq-q i { transition:transform .3s; color:var(--gold); flex-shrink:0; }
.faq-item.open .faq-q i { transform:rotate(45deg); }
.faq-a { max-height:0; overflow:hidden; transition:max-height .35s ease, padding .3s; }
.faq-item.open .faq-a { max-height:300px; }
.faq-a p { padding:0 1.4rem 1.3rem; font-size:.88rem; color:var(--muted); line-height:1.85; }

/* Responsive */
@media (max-width:900px) {
    .contact-layout { grid-template-columns:1fr; }
}
@media (max-width:600px) {
    .form-row { grid-template-columns:1fr; }
    .form-card { padding:1.8rem 1.2rem; }
}