/* Minh Tâm Bảo — Contact page */
.mtb-contact-page {
    --mtb-green: #153b32;
    --mtb-green-2: #1f5648;
    --mtb-gold: #b99552;
    --mtb-gold-soft: #dbc28c;
    --mtb-ivory: #f7f3ea;
    --mtb-paper: #fffdf8;
    --mtb-ink: #17312a;
    --mtb-muted: #69766f;
    --mtb-line: rgba(21,59,50,.12);
    color: var(--mtb-ink);
    background: #fff;
    overflow: hidden;
}

.mtb-contact-page * { box-sizing: border-box; }
.mtb-contact-page a { text-decoration: none; }
.mtb-contact-shell { width: min(1180px, calc(100% - 40px)); margin: 0 auto; }

.mtb-contact-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
    color: var(--mtb-gold);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .15em;
    text-transform: uppercase;
}
.mtb-contact-eyebrow::before { content: ''; width: 32px; height: 1px; background: currentColor; }

.mtb-contact-hero {
    padding: clamp(54px, 7vw, 92px) 0;
    background:
        radial-gradient(circle at 85% 15%, rgba(219,194,140,.22), transparent 28%),
        radial-gradient(circle at 10% 90%, rgba(47,111,94,.11), transparent 34%),
        linear-gradient(135deg, #fbf8f1 0%, #f4eee2 48%, #eef4f0 100%);
}
.mtb-contact-hero__grid {
    display: grid;
    grid-template-columns: minmax(0,1.08fr) minmax(360px,.92fr);
    gap: clamp(36px, 5vw, 72px);
    align-items: center;
}
.mtb-contact-hero h1,
.mtb-contact-heading h2,
.mtb-contact-connect__info h2,
.mtb-contact-map-grid h2,
.mtb-contact-hero__panel h2 {
    font-family: Roboto, 'Segoe UI', Arial, sans-serif;
    font-variant-ligatures: none;
    text-rendering: optimizeLegibility;
}
.mtb-contact-hero h1 {
    margin: 0 0 20px;
    color: var(--mtb-green);
    font-size: clamp(2.7rem, 5.7vw, 5.15rem);
    line-height: 1.01;
    font-weight: 800;
    letter-spacing: 0;
}
.mtb-contact-hero__copy > p {
    margin: 0;
    max-width: 710px;
    color: #5d6a63;
    font-size: clamp(1rem,1.2vw,1.15rem);
    line-height: 1.8;
}
.mtb-contact-hero__actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.mtb-contact-btn {
    min-height: 48px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    padding:0 22px;
    border-radius:999px;
    font-size:.92rem;
    font-weight:800;
    transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.mtb-contact-btn:hover { transform:translateY(-2px); }
.mtb-contact-btn--primary { background:var(--mtb-green); color:#fff; box-shadow:0 12px 28px rgba(21,59,50,.16); }
.mtb-contact-btn--primary:hover { background:#102f28; color:#fff; }
.mtb-contact-btn--ghost { color:var(--mtb-green); background:rgba(255,255,255,.68); border:1px solid rgba(21,59,50,.18); }
.mtb-contact-btn--ghost:hover { color:var(--mtb-green); background:#fff; }

.mtb-contact-hero__panel {
    min-height: 420px;
    position:relative;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    padding:34px;
    border-radius:34px;
    overflow:hidden;
    color:#fff;
    background:linear-gradient(145deg,#153b32,#245f50);
    box-shadow:0 26px 70px rgba(21,59,50,.18);
}
.mtb-contact-hero__panel::before,
.mtb-contact-hero__panel::after {
    content:'';
    position:absolute;
    border-radius:50%;
    border:1px solid rgba(219,194,140,.18);
}
.mtb-contact-hero__panel::before { width:380px;height:380px;right:-120px;top:-120px; }
.mtb-contact-hero__panel::after { width:250px;height:250px;left:-90px;bottom:-110px; }
.mtb-contact-hero__logo { position:absolute; z-index:2; left:34px; top:34px; width:96px; height:96px; object-fit:contain; padding:10px; border-radius:24px; background:#fff; box-shadow:0 16px 36px rgba(0,0,0,.14); }
.mtb-contact-hero__panel > span,
.mtb-contact-hero__panel h2,
.mtb-contact-hero__panel p { position:relative; z-index:2; }
.mtb-contact-hero__panel > span { color:var(--mtb-gold-soft); font-size:.78rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.mtb-contact-hero__panel h2 { margin:12px 0 10px; font-size:clamp(1.9rem,3vw,2.8rem); line-height:1.08; font-weight:800; letter-spacing:0; color:#fff; }
.mtb-contact-hero__panel p { margin:0; color:rgba(255,255,255,.74); line-height:1.72; max-width:420px; }

.mtb-contact-section { padding:clamp(68px,8vw,104px) 0; }
.mtb-contact-section--soft { background:var(--mtb-ivory); }
.mtb-contact-heading { max-width:760px; margin:0 auto 40px; text-align:center; }
.mtb-contact-heading h2,
.mtb-contact-connect__info h2,
.mtb-contact-map-grid h2 { margin:0; color:var(--mtb-green); font-size:clamp(2rem,4vw,3.45rem); line-height:1.08; font-weight:800; letter-spacing:0; }

.mtb-contact-cards { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.mtb-contact-card {
    min-height:220px;
    padding:28px 24px;
    border-radius:24px;
    background:#fff;
    border:1px solid var(--mtb-line);
    box-shadow:0 12px 32px rgba(21,59,50,.055);
}
.mtb-contact-card__icon { width:48px;height:48px;display:grid;place-items:center;border-radius:15px;margin-bottom:20px;background:rgba(185,149,82,.13);color:var(--mtb-gold); }
.mtb-contact-card > span { display:block; margin-bottom:8px; color:var(--mtb-gold); font-size:.72rem; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
.mtb-contact-card h3 { margin:0 0 10px; color:var(--mtb-green); font-size:1.04rem; line-height:1.4; }
.mtb-contact-card h3 a { color:inherit; overflow-wrap:anywhere; }
.mtb-contact-card p { margin:0; color:var(--mtb-muted); font-size:.9rem; line-height:1.7; }

.mtb-contact-connect { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(36px,6vw,82px); align-items:start; }
.mtb-contact-connect__info { position:sticky; top:110px; }
.mtb-contact-connect__info > p { margin:18px 0 0; color:var(--mtb-muted); line-height:1.8; font-size:1rem; }
.mtb-contact-note { display:flex; gap:12px; align-items:flex-start; margin-top:24px; padding:16px 18px; border-radius:18px; background:#f7f3ea; color:#55645c; line-height:1.65; font-size:.9rem; }
.mtb-contact-note i { color:var(--mtb-gold); margin-top:3px; }

.mtb-contact-form-wrap { padding:clamp(24px,4vw,38px); border-radius:30px; background:var(--mtb-paper); border:1px solid rgba(185,149,82,.22); box-shadow:0 18px 48px rgba(21,59,50,.07); }
.mtb-contact-form { display:grid; gap:18px; }
.mtb-contact-form__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.mtb-contact-form label { display:grid; gap:8px; color:var(--mtb-green); font-size:.86rem; font-weight:700; }
.mtb-contact-form input,
.mtb-contact-form select,
.mtb-contact-form textarea {
    width:100%;
    border:1px solid rgba(21,59,50,.14);
    border-radius:15px;
    background:#fff;
    color:var(--mtb-ink);
    font:inherit;
    font-weight:400;
    outline:none;
    transition:border-color .2s ease, box-shadow .2s ease;
}
.mtb-contact-form input,
.mtb-contact-form select { min-height:50px; padding:0 15px; }
.mtb-contact-form textarea { resize:vertical; min-height:160px; padding:14px 15px; line-height:1.6; }
.mtb-contact-form input:focus,
.mtb-contact-form select:focus,
.mtb-contact-form textarea:focus { border-color:rgba(185,149,82,.72); box-shadow:0 0 0 4px rgba(185,149,82,.1); }
.mtb-contact-form__message { display:grid; }
.mtb-contact-submit { min-height:52px; border:0; border-radius:16px; display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:0 22px; background:var(--mtb-green); color:#fff; font-weight:800; box-shadow:0 12px 26px rgba(21,59,50,.15); transition:transform .2s ease, background .2s ease; }
.mtb-contact-submit:hover { transform:translateY(-1px); background:#102f28; }
.mtb-contact-hp { position:absolute!important; left:-9999px!important; width:1px!important; height:1px!important; overflow:hidden!important; }

.mtb-contact-alert { display:flex; gap:10px; align-items:flex-start; margin-bottom:18px; padding:14px 16px; border-radius:16px; font-size:.9rem; line-height:1.55; }
.mtb-contact-alert--success { background:#e9f5ee; color:#1e5b45; border:1px solid rgba(30,91,69,.12); }
.mtb-contact-alert--error { background:#fff0ef; color:#9a342d; border:1px solid rgba(154,52,45,.12); }

.mtb-contact-map-section { padding:clamp(68px,8vw,100px) 0; background:var(--mtb-green); color:#fff; }
.mtb-contact-map-grid { display:grid; grid-template-columns:.75fr 1.25fr; gap:clamp(30px,5vw,60px); align-items:center; }
.mtb-contact-map-grid h2 { color:#fff; }
.mtb-contact-map-grid p { margin:18px 0 22px; color:rgba(255,255,255,.72); line-height:1.75; }
.mtb-contact-text-link { display:inline-flex; align-items:center; gap:8px; color:var(--mtb-gold-soft); font-weight:800; }
.mtb-contact-text-link:hover { color:#fff; }
.mtb-contact-map { overflow:hidden; border-radius:28px; min-height:390px; border:1px solid rgba(255,255,255,.13); box-shadow:0 22px 50px rgba(0,0,0,.16); background:#fff; }
.mtb-contact-map iframe { width:100%; height:390px; display:block; border:0; }

@media (max-width: 991px) {
    .mtb-contact-hero__grid,
    .mtb-contact-connect,
    .mtb-contact-map-grid { grid-template-columns:1fr; }
    .mtb-contact-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .mtb-contact-connect__info { position:static; }
}

@media (max-width: 640px) {
    .mtb-contact-shell { width:min(100% - 24px,1180px); }
    .mtb-contact-hero { padding-top:42px; }
    .mtb-contact-hero h1 { font-size:clamp(2.45rem,13vw,4rem); }
    .mtb-contact-hero__panel { min-height:340px; border-radius:26px; padding:24px; }
    .mtb-contact-hero__logo { width:82px; height:82px; left:24px; top:24px; border-radius:20px; }
    .mtb-contact-cards { grid-template-columns:1fr; }
    .mtb-contact-card { min-height:0; }
    .mtb-contact-form__grid { grid-template-columns:1fr; }
    .mtb-contact-form-wrap { padding:22px 18px; border-radius:24px; }
    .mtb-contact-hero__actions .mtb-contact-btn { width:100%; }
    .mtb-contact-map, .mtb-contact-map iframe { min-height:320px; height:320px; }
}

@media (prefers-reduced-motion: reduce) {
    .mtb-contact-btn,
    .mtb-contact-submit { transition:none!important; }
    .mtb-contact-btn:hover,
    .mtb-contact-submit:hover { transform:none!important; }
}
