:root { --contact-ink:#111821; --contact-copper:#ad6a32; --contact-soft:#f9f7f4; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:80px; }
body.contact-reference-page { margin:0; overflow-x:hidden; color:var(--contact-ink); background:#fff; font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",Arial,sans-serif; -webkit-font-smoothing:antialiased; }
.contact-reference-page img { display:block; max-width:100%; }
.contact-reference-page a { color:inherit; text-decoration:none; }
.contact-reference-page main h1,.contact-reference-page main h2 { font-family:"Songti SC","STSong","Noto Serif SC",Georgia,serif; font-weight:600; }
.contact-reference-page :focus-visible { outline:2px solid var(--contact-copper); outline-offset:2px; }
.contact-skip { position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.contact-skip:focus { z-index:200; top:12px; left:12px; width:auto; height:auto; margin:0; padding:10px 14px; overflow:visible; clip:auto; background:#fff; }
.contact-shell { width:calc(100% - 50px); max-width:1320px; margin-inline:auto; }
.contact-eyebrow { margin:0; color:var(--contact-copper); font:400 14px/1.3 Arial,sans-serif; letter-spacing:.055em; }

/* Hero: marble introduction and sunset lounge. */
.contact-hero { display:grid; grid-template-columns:55% 45%; height:clamp(331px,30vw,430px); }
.contact-hero-copy { min-width:0; padding:50px 14px 22px max(7.1vw,calc((100vw - 1320px)/2 + 66px)); background:linear-gradient(90deg,rgba(250,249,246,.62),rgba(250,249,246,.35)),url('/assets/web-v3/company-marble-texture.webp') center / cover; }
.contact-hero h1 { margin:5px 0 5px; font-size:clamp(48px,5.5vw,68px); line-height:1.1; }
.contact-hero-intro { margin:0; font-size:15px; line-height:1.62; }
.contact-hero-services { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin-top:19px; }
.contact-hero-services > div { min-width:0; padding:0 9px; border-right:1px solid #ddd4ca; }
.contact-hero-services > div:first-child { padding-left:0; }
.contact-hero-services > div:last-child { border:0; }
.contact-hero-services svg { display:block; width:31px; height:31px; margin:0 0 5px 7px; fill:none; color:var(--contact-copper); stroke:currentColor; stroke-width:1.7; }
.contact-hero-services strong,.contact-hero-services small { display:block; white-space:nowrap; }
.contact-hero-services strong { font-size:14px; line-height:1.3; }
.contact-hero-services small { color:#686664; font-size:10px; line-height:1.4; }
.contact-hero-photo { width:100%; height:100%; object-fit:cover; object-position:53% center; }

/* Contact methods. */
.contact-quick { min-height:251px; padding:21px 0 15px; background:#fff; }
.contact-heading-row { display:flex; justify-content:space-between; align-items:baseline; gap:18px; }
.contact-heading-pair { display:flex; align-items:baseline; gap:12px; min-width:0; white-space:nowrap; }
.contact-heading-pair h2 { margin:0; font-size:29px; line-height:1.28; }
.contact-heading-pair span { color:var(--contact-copper); font:400 12px/1.2 Arial,sans-serif; letter-spacing:.045em; }
.contact-heading-row > p { margin:0; color:#6a6865; font-size:12px; line-height:1.55; }
.contact-quick-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; margin-top:13px; }
.contact-quick-card { display:block; min-width:0; min-height:165px; padding:17px 19px 14px; border:1px solid #e5e1dc; border-radius:6px; background:#fff; }
a.contact-quick-card:hover { border-color:#bf9672; box-shadow:0 5px 16px rgba(77,46,23,.08); }
.contact-quick-card-head { display:flex; align-items:center; gap:13px; }
.contact-quick-card-head svg { width:36px; height:36px; flex:none; fill:none; color:var(--contact-copper); stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.contact-quick-card h3 { margin:0; font-size:15px; line-height:1.25; white-space:nowrap; }
.contact-quick-card small { display:block; margin-top:2px; color:#a4a2a0; font:10px/1.3 Arial,sans-serif; letter-spacing:.05em; }
.contact-quick-card > strong { display:block; margin-top:11px; font-size:12px; font-weight:600; line-height:1.4; overflow-wrap:anywhere; }
.contact-quick-card > p { margin:12px 0 0; color:#85827f; font-size:12px; line-height:1.55; }

/* Inquiry form with an editorial hospitality photo to its right. */
.contact-inquiry { display:grid; grid-template-columns:70.6% 29.4%; min-height:503px; background:#f7f4ef; }
.contact-inquiry-main { min-width:0; margin:9px 10px 12px 31px; padding:10px 17px 11px; border:1px solid #e8e1d9; border-radius:7px; background:rgba(255,255,255,.84); }
.contact-inquiry-intro { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; min-height:66px; }
.contact-inquiry-intro h2 { margin:0; font-size:29px; line-height:1.2; white-space:nowrap; }
.contact-inquiry-intro .contact-eyebrow { margin-top:2px; font-size:12px; }
.contact-inquiry-intro > p { width:260px; flex:none; margin:7px 0 0; color:#6b6865; font-size:12px; line-height:1.5; }
.contact-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 15px; }
.contact-field { display:flex; align-items:stretch; min-width:0; height:36px; border:1px solid #e3e1df; border-radius:5px; overflow:hidden; background:#fff; }
.contact-field > span { width:89px; flex:none; display:flex; align-items:center; padding-left:12px; border-right:1px solid #e8e5e1; background:#faf9f7; font-size:12px; white-space:nowrap; }
.contact-field em,.contact-choice-row em { color:#b45543; font-style:normal; padding-left:2px; }
.contact-field input,.contact-field textarea { width:100%; min-width:0; border:0; padding:0 11px; outline:0; background:transparent; color:#252525; font:12px/1.4 inherit; }
.contact-field input::placeholder,.contact-field textarea::placeholder { color:#b2b0ae; opacity:1; }
.contact-field input:focus,.contact-field textarea:focus { background:#fffdf9; }
.contact-field:focus-within { border-color:#b48259; }
.contact-field--wide { grid-column:1 / -1; }
.contact-field--country { position:relative; }
.contact-field--country::after { position:absolute; right:12px; top:8px; color:#292929; content:"⌄"; font-size:16px; pointer-events:none; }
.contact-field--country input { padding-right:25px; }
.contact-choice-row { display:flex; align-items:center; flex-wrap:nowrap; gap:13px; min-height:36px; margin:9px 0 0; padding:0; border:0; }
.contact-choice-row legend { float:left; width:89px; height:36px; display:flex; align-items:center; margin:0 1px 0 0; padding-left:12px; border:1px solid #e3e1df; border-radius:5px; background:#faf9f7; font-size:12px; white-space:nowrap; }
.contact-choice-row label { display:flex; align-items:center; gap:4px; font-size:12px; white-space:nowrap; }
.contact-choice-row input { width:14px; height:14px; margin:0; accent-color:#a66b3b; }
.contact-message { height:76px; margin-top:9px; align-items:stretch; }
.contact-message > span { align-items:flex-start; padding-top:12px; }
.contact-message textarea { padding:11px; resize:vertical; line-height:1.55; }
.contact-send-button { display:flex; align-items:center; justify-content:center; gap:15px; width:100%; height:40px; margin-top:13px; border:0; border-radius:5px; color:#fff; background:linear-gradient(90deg,#b8793d,#a86831); font:600 16px/1 inherit; cursor:pointer; }
.contact-send-button:hover { background:linear-gradient(90deg,#a96c34,#965926); }
.contact-send-button span { font-size:21px; font-weight:400; line-height:1; }
.contact-form-status { margin:7px 0 0; color:#7c4a20; font-size:12px; line-height:1.4; }
.contact-mailto-fallback { display:inline-block; margin-top:4px; color:#8e552c !important; font-size:12px; text-decoration:underline !important; }
.contact-form-status[hidden],.contact-mailto-fallback[hidden] { display:none; }
.contact-form-note { display:flex; align-items:center; gap:7px; margin:10px 0 0; color:#888581; font-size:11px; line-height:1.4; }
.contact-form-note svg { width:16px; height:16px; flex:none; fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
.contact-inquiry-side { display:flex; flex-direction:column; min-width:0; padding:73px 19px 23px; color:#fff; background:linear-gradient(90deg,rgba(20,12,8,.78),rgba(20,12,8,.48)),url('/assets/web-v3/inspiration/inspiration-warm-luxury-v1.webp') 40% center / cover; }
.contact-inquiry-side h2 { margin:0 0 13px; font-size:26px; line-height:1.27; }
.contact-inquiry-side > p { margin:0; font-size:13px; line-height:1.58; }
.contact-side-rule { width:31px; height:1px; margin-top:auto; margin-bottom:12px; background:#ddbb91; }
.contact-side-benefits { display:grid; gap:12px; }
.contact-side-benefits > div { display:flex; align-items:center; gap:11px; }
.contact-side-benefits svg { width:34px; height:34px; flex:none; fill:none; color:#e4b579; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.contact-side-benefits strong,.contact-side-benefits small { display:block; }
.contact-side-benefits strong { font-size:13px; line-height:1.3; }
.contact-side-benefits small { font-size:11px; line-height:1.35; }

/* Information to prepare. */
.contact-prepare { min-height:243px; padding:15px 0 12px; background:#fff; }
.contact-prepare .contact-shell,.contact-support .contact-shell { width:calc(100% - 68px); }
.contact-prepare-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:11px; margin-top:13px; }
.contact-prepare-grid article { min-width:0; border:1px solid #e9e5e1; border-radius:3px; overflow:hidden; background:#fff; }
.contact-prepare-grid img { width:100%; height:79px; object-fit:cover; }
.contact-prepare-grid article > div { display:flex; gap:9px; padding:7px 9px 8px; }
.contact-prepare-grid article > div > span { color:var(--contact-copper); font:400 23px/1.1 Georgia,serif; }
.contact-prepare-grid h3 { margin:0 0 4px; font-size:13px; line-height:1.25; white-space:nowrap; }
.contact-prepare-grid p { margin:0; color:#777471; font-size:11px; line-height:1.42; }

/* Partnership support. */
.contact-support { min-height:173px; padding:4px 0 11px; background:#fff; }
.contact-support-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-top:9px; }
.contact-support-grid article { display:flex; gap:9px; min-width:0; min-height:112px; padding:12px 9px; border:1px solid #e8e5e1; border-radius:5px; }
.contact-support-grid svg { width:31px; height:31px; flex:none; fill:none; color:var(--contact-copper); stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.contact-support-grid h3 { margin:0 0 6px; font-size:14px; line-height:1.35; white-space:nowrap; }
.contact-support-grid p { margin:0; color:#72706d; font-size:10.5px; line-height:1.45; }

/* Closing sunset panel. */
.contact-closing { min-height:169px; padding:16px 0 13px; color:#fff; background:linear-gradient(90deg,rgba(17,11,8,.9),rgba(17,11,8,.62) 44%,rgba(17,11,8,.08) 78%),url('/assets/web-v3/contact-cta-infinity-pool.webp') center / cover no-repeat; }
.contact-closing .contact-shell { width:calc(100% - 88px); }
.contact-closing h2 { margin:0 0 7px; font-size:clamp(27px,3.2vw,42px); line-height:1.18; white-space:nowrap; }
.contact-closing p { margin:0; font-size:12px; line-height:1.55; }
.contact-closing-actions { display:flex; gap:18px; margin-top:12px; }
.contact-closing-actions a { display:flex; align-items:center; justify-content:space-between; gap:9px; min-width:182px; height:41px; padding:0 21px; border:1px solid #d5a165; border-radius:5px; background:#b87a3f; color:#fff; font-size:13px; font-weight:600; }
.contact-closing-actions a + a { background:rgba(14,11,9,.55); border-color:#f0dbc4; }
.contact-closing-actions a:hover { filter:brightness(1.12); }
.contact-closing-actions svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.contact-closing-actions a span { margin-left:auto; font-size:18px; font-weight:400; }

@media (max-width:1050px) {
  .contact-hero-intro br { display:none; }
  .contact-hero-intro { max-width:405px; }
  .contact-quick-card { padding-inline:16px; }
  .contact-quick-card > p br { display:none; }
  .contact-inquiry-intro > p br { display:none; }
  .contact-inquiry-intro > p { width:235px; }
  .contact-prepare-grid p br { display:none; }
  .contact-heading-row > p { max-width:420px; }
  .contact-support .contact-heading-row > p { max-width:none; font-size:10.5px; white-space:nowrap; }
}
@media (max-width:900px) {
  .contact-inquiry { grid-template-columns:70% 30%; }
  .contact-inquiry-main { margin-left:18px; padding-inline:13px; }
  .contact-choice-row { gap:8px; }
  .contact-choice-row label { font-size:11px; }
  .contact-quick-card h3 { font-size:14px; }
  .contact-quick-card > strong { font-size:12px; }
  .contact-heading-pair h2 { font-size:26px; }
  .contact-heading-pair span { font-size:10px; }
  .contact-prepare-grid h3,.contact-support-grid h3 { font-size:12px; }
}
@media (max-width:800px) {
  .contact-hero { display:flex; flex-direction:column; height:auto; }
  .contact-hero-copy { padding:39px 30px 35px; }
  .contact-hero-photo { height:260px; }
  .contact-hero-intro { max-width:550px; }
  .contact-hero-services { max-width:650px; }
  .contact-quick { padding-block:28px; }
  .contact-heading-row { display:block; }
  .contact-heading-row > p { max-width:none; margin-top:7px; }
  .contact-support .contact-heading-row > p { white-space:normal; font-size:12px; }
  .contact-quick-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .contact-inquiry { display:flex; flex-direction:column; }
  .contact-inquiry-main { margin:16px 18px; padding:18px; }
  .contact-inquiry-intro { min-height:68px; }
  .contact-choice-row { gap:14px; }
  .contact-choice-row label { font-size:12px; }
  .contact-inquiry-side { min-height:380px; padding:40px 30px 28px; background-position:center; }
  .contact-side-benefits { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .contact-side-benefits > div { gap:8px; }
  .contact-side-benefits small { white-space:normal; }
  .contact-prepare,.contact-support { padding-block:29px; }
  .contact-prepare-grid,.contact-support-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .contact-prepare-grid h3,.contact-support-grid h3 { font-size:14px; }
  .contact-closing h2 { white-space:normal; }
}
@media (max-width:520px) {
  .contact-shell,.contact-prepare .contact-shell,.contact-support .contact-shell { width:calc(100% - 36px); }
  .contact-hero-copy { padding:35px 22px 28px; }
  .contact-eyebrow { font-size:12px; }
  .contact-hero h1 { font-size:46px; }
  .contact-hero-intro { font-size:14px; }
  .contact-hero-services { grid-template-columns:repeat(2,minmax(0,1fr)); gap:21px 8px; }
  .contact-hero-services > div { border:0; padding:0; }
  .contact-hero-services svg { margin-left:0; }
  .contact-hero-photo { height:220px; }
  .contact-heading-pair { display:block; white-space:normal; }
  .contact-heading-pair h2 { font-size:27px; }
  .contact-heading-pair span { display:block; margin-top:3px; font-size:11px; }
  .contact-quick-grid { grid-template-columns:1fr; gap:10px; }
  .contact-quick-card { min-height:0; padding:17px 20px; }
  .contact-quick-card > p { margin-top:9px; }
  .contact-inquiry-main { margin:12px; padding:15px 12px; }
  .contact-inquiry-intro { display:block; min-height:0; margin-bottom:14px; }
  .contact-inquiry-intro h2 { font-size:30px; }
  .contact-inquiry-intro > p { width:auto; margin-top:10px; }
  .contact-form-grid { grid-template-columns:1fr; gap:9px; }
  .contact-field--wide { grid-column:auto; }
  .contact-choice-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:13px; }
  .contact-choice-row legend { float:none; grid-column:1 / -1; width:100%; height:31px; }
  .contact-choice-row label { font-size:12px; }
  .contact-message { height:100px; }
  .contact-form-note { align-items:flex-start; }
  .contact-inquiry-side { min-height:470px; padding:38px 24px; }
  .contact-inquiry-side h2 { font-size:27px; }
  .contact-side-benefits { grid-template-columns:1fr; gap:10px; }
  .contact-prepare-grid,.contact-support-grid { grid-template-columns:1fr; }
  .contact-prepare-grid img { height:120px; }
  .contact-prepare-grid article > div { padding:13px; }
  .contact-support-grid article { min-height:0; padding:15px; }
  .contact-closing { padding-block:28px; }
  .contact-closing .contact-shell { width:calc(100% - 38px); }
  .contact-closing h2 { font-size:30px; }
  .contact-closing p { font-size:13px; }
  .contact-closing p br { display:none; }
  .contact-closing-actions { flex-direction:column; gap:9px; max-width:270px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
