.contact-page { background:#f5f2ea; color:#111; }
.contact-hero { min-height:760px; height:min(900px,100vh); position:relative; display:flex; align-items:center; overflow:hidden; color:#fff; isolation:isolate; }
.contact-hero-image,.contact-hero-overlay { position:absolute; inset:0; }
.contact-hero-image { background:url('https://images.unsplash.com/photo-1551882547-ff40c63fe5fa?auto=format&fit=crop&w=2400&q=92') center/cover; transform:scale(1.08); animation:contactHero 18s ease-in-out 1s infinite alternate; }
.contact-hero-overlay { background:linear-gradient(90deg,rgba(0,0,0,.8),rgba(0,0,0,.3) 78%),linear-gradient(180deg,rgba(0,0,0,.2),transparent 50%,rgba(0,0,0,.62)); }
@keyframes contactHero { to { transform:scale(1.14) translate3d(-.7%,.6%,0); } }
.contact-hero-content { position:relative; z-index:2; width:min(1280px,86vw); margin:60px auto 0; }
.contact-eyebrow { display:flex; align-items:center; gap:14px; color:rgba(255,255,255,.6); text-transform:uppercase; letter-spacing:.2em; font-size:9px; margin-bottom:34px; }
.contact-eyebrow span { width:44px; height:1px; background:var(--gold); }
.contact-hero h1 { margin:0 0 34px; font:500 clamp(70px,9.2vw,140px)/.77 var(--serif); letter-spacing:-.065em; }
.contact-hero h1 em { color:var(--gold-bright); font-style:italic; font-weight:400; }
.contact-hero-copy { max-width:490px; color:rgba(255,255,255,.64); font-size:13px; line-height:1.9; }
.contact-scroll { display:flex; align-items:center; gap:15px; margin-top:42px; width:max-content; color:rgba(255,255,255,.66); text-transform:uppercase; letter-spacing:.16em; font-size:8px; }
.contact-scroll span { width:42px; height:42px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.35); border-radius:50%; font-size:17px; transition:.4s; }
.contact-scroll:hover span { background:var(--gold); color:#111; border-color:var(--gold); transform:translateY(5px); }
.contact-hero-mark { position:absolute; right:35px; bottom:36px; z-index:2; writing-mode:vertical-rl; transform:rotate(180deg); color:rgba(255,255,255,.4); font-size:8px; letter-spacing:.2em; }
.contact-intro { background:#f5f2ea; }
.contact-intro-grid { display:grid; grid-template-columns:1fr .72fr; gap:15%; margin-top:45px; }
.contact-intro h2 { margin-top:23px; font:500 clamp(60px,7vw,96px)/.8 var(--serif); letter-spacing:-.06em; }
.contact-intro h2 em { color:var(--gold); font-style:italic; }
.contact-intro-copy { color:#777168; font-size:12px; line-height:1.95; max-width:480px; padding-top:8px; }
.contact-intro-copy p + p { margin-top:20px; }
.contact-main { background:#ebe7de; }
.contact-layout { display:grid; grid-template-columns:.82fr 1.18fr; gap:8%; align-items:start; }
.contact-info-panel { padding-right:7%; }
.contact-info-heading h2 { margin-top:23px; font:500 clamp(62px,6.5vw,92px)/.8 var(--serif); letter-spacing:-.06em; }
.contact-info-heading h2 em { color:var(--gold); font-style:italic; }
.contact-info-list { margin-top:55px; border-top:1px solid var(--line); }
.contact-detail { min-height:92px; display:grid; grid-template-columns:42px 1fr 25px; align-items:center; gap:12px; border-bottom:1px solid var(--line); transition:.4s; }
.contact-detail:hover { padding-left:9px; border-color:rgba(216,169,40,.5); }
.detail-index { color:#9a7926; font-size:8px; letter-spacing:.12em; }
.contact-detail small { display:block; margin-bottom:7px; color:#9a9388; text-transform:uppercase; letter-spacing:.16em; font-size:7px; }
.contact-detail strong { font:500 20px/1 var(--serif); color:#292621; }
.contact-detail b { color:var(--gold); font:400 18px var(--serif); text-align:right; }
.contact-socials { display:flex; flex-wrap:wrap; align-items:center; gap:18px; margin-top:30px; font-size:8px; text-transform:uppercase; letter-spacing:.14em; }
.contact-socials span { width:100%; color:#9a9388; margin-bottom:2px; }
.contact-socials a { border-bottom:1px solid #bbb3a7; padding-bottom:5px; transition:.3s; }
.contact-socials a:hover { color:#8c6a19; border-color:var(--gold); }
.contact-form-panel { background:#f8f5ee; padding:50px clamp(28px,5vw,70px) 55px; box-shadow:0 25px 80px rgba(25,23,18,.07); }
.form-topline { display:flex; justify-content:space-between; color:#9a9388; text-transform:uppercase; letter-spacing:.16em; font-size:7px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.contact-form { margin-top:25px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.contact-form label { display:block; margin-bottom:28px; }
.contact-form label > span { display:block; margin-bottom:10px; color:#7e776e; text-transform:uppercase; letter-spacing:.14em; font-size:7px; }
.contact-form input,.contact-form select,.contact-form textarea { width:100%; border:0; border-bottom:1px solid #c7c0b5; background:transparent; outline:0; border-radius:0; padding:10px 0 13px; color:#292621; font:400 18px var(--serif); transition:border-color .3s, transform .3s; }
.contact-form textarea { resize:vertical; min-height:125px; }
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus { border-color:var(--gold); transform:translateY(-2px); }
.contact-form input::placeholder,.contact-form textarea::placeholder { color:#aaa297; }
.form-submit-row { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:8px; }
#contactMessage { min-height:20px; color:#8d711f; font-size:9px; line-height:1.5; }
.contact-submit { border:1px solid var(--gold); background:#171713; color:#fff; padding:16px 22px; text-transform:uppercase; letter-spacing:.13em; font-size:8px; cursor:pointer; transition:.4s; }
.contact-submit span { color:var(--gold-bright); margin-left:12px; font-size:15px; }
.contact-submit:hover { background:var(--gold); color:#111; transform:translateY(-3px); box-shadow:0 12px 30px rgba(216,169,40,.2); }
.contact-location { min-height:650px; position:relative; display:grid; place-items:center; text-align:center; color:#fff; overflow:hidden; }
.contact-location-image,.contact-location-overlay { position:absolute; inset:0; }
.contact-location-image { background:url('https://images.unsplash.com/photo-1500534623283-312aade485b7?auto=format&fit=crop&w=2400&q=92') center/cover; transition:transform 1.5s cubic-bezier(.22,1,.36,1); }
.contact-location:hover .contact-location-image { transform:scale(1.04); }
.contact-location-overlay { background:rgba(5,5,4,.62); }
.contact-location-content { position:relative; z-index:2; }
.contact-location-content h2 { margin:25px 0 10px; font:500 clamp(70px,8vw,110px)/.78 var(--serif); letter-spacing:-.06em; }
.contact-location-content h2 em { color:var(--gold-bright); font-style:italic; }
.contact-location-content p { color:rgba(255,255,255,.6); font-size:12px; margin-bottom:30px; }
.outline-light { display:inline-flex; gap:14px; align-items:center; border:1px solid rgba(255,255,255,.32); padding:13px 17px; text-transform:uppercase; letter-spacing:.14em; font-size:8px; transition:.35s; }
.outline-light:hover { background:#fff; color:#111; border-color:#fff; }
.location-coordinate { position:absolute; right:30px; bottom:30px; color:rgba(255,255,255,.35); font-size:8px; letter-spacing:.17em; }
.contact-cta { background:#f5f2ea; text-align:center; }
.contact-cta-inner { max-width:850px; margin:auto; }
.contact-cta h2 { margin:25px 0 35px; font:500 clamp(70px,8vw,110px)/.78 var(--serif); letter-spacing:-.06em; }
.contact-cta h2 em { color:var(--gold); font-style:italic; }
.contact-cta .gold-button { display:inline-flex; }
.reveal-contact { opacity:0; transform:translateY(40px); transition:opacity .9s cubic-bezier(.22,1,.36,1), transform .9s cubic-bezier(.22,1,.36,1); }
.reveal-contact.visible { opacity:1; transform:none; }
.active-contact { box-shadow:inset 0 -2px 0 #111; }
@media(max-width:1000px) { .contact-intro-grid,.contact-layout { grid-template-columns:1fr; gap:55px; } .contact-info-panel { padding-right:0; } .contact-form-panel { padding:40px 35px; } }
@media(max-width:700px) { .contact-hero { min-height:720px; } .contact-hero-content { width:calc(100% - 48px); } .contact-hero h1 { font-size:62px; } .contact-hero-copy { font-size:12px; } .contact-hero-mark { display:none; } .contact-intro,.contact-main,.contact-cta { padding-top:90px; padding-bottom:90px; } .contact-intro h2,.contact-info-heading h2,.contact-location-content h2,.contact-cta h2 { font-size:60px; } .form-row { grid-template-columns:1fr; gap:0; } .contact-form-panel { padding:34px 24px 38px; } .form-submit-row { align-items:flex-start; flex-direction:column; } .contact-submit { width:100%; } .contact-detail strong { font-size:18px; } .contact-location { min-height:560px; } }
@media(prefers-reduced-motion:reduce) { .contact-hero-image { animation:none; } *,*::before,*::after { scroll-behavior:auto !important; } }
