/* ==========================================================================
   Contact — reference: 1155px screenshot × 1.2468
   ========================================================================== */
.ct-hero { position: relative; height: 549px; overflow: hidden; background: #f8f1ea; }
.ct-hero-img { position: absolute; top: 0; right: 0; width: 792px; height: 100%; object-fit: cover; max-width: none;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 20%); mask-image: linear-gradient(90deg, transparent 0, #000 20%); }
.ct-hero .container, .ct-body .container { width: min(1343px, calc(100% - 64px)); }
.ct-hero-inner { position: relative; padding: 50px 0 0 45px; }
.ct-hero .eyebrow { font-size: 14px; letter-spacing: .24em; color: #b07a3c; }
.ct-hero h1 { margin-top: 16px; font-family: var(--serif); font-weight: 560; font-size: 58px; line-height: 59px; letter-spacing: -.02em; color: var(--ink); font-variation-settings: 'opsz' 60; }
.ct-hero h1 em { font-style: italic; color: var(--gold-text); }
.ct-hero .lead { margin-top: 14px; max-width: 520px; font-size: 18px; line-height: 25px; color: #3a3834; }
.ct-ways { display: flex; margin-top: 32px; }
.ct-ways li + li { border-left: 1px solid rgba(180, 150, 115, .3); }
.ct-ways li:nth-child(1) a { width: 167px; padding-left: 0; }
.ct-ways li:nth-child(2) a { width: 213px; padding-left: 33px; }
.ct-ways li:nth-child(3) a { padding-left: 33px; }
.ct-ways a { display: block; }
.ct-ico { width: 62px; height: 62px; border-radius: 50%; background: #f5e9dc; display: grid; place-items: center; color: #b3834b; transition: background .2s, color .2s; }
.ct-ico svg { width: 30px; height: 30px; }
.ct-ways a:hover .ct-ico, .ct-other a:hover .ct-ico { background: var(--gold); color: #fff; }
.ct-ways b { display: block; margin-top: 16px; font-size: 16px; font-weight: 500; color: var(--ink); }
.ct-ways small { display: block; margin-top: 4px; font-size: 14.5px; line-height: 22px; color: #6f6b66; }

.ct-body { padding: 32px 0 33px; }
.ct-layout { display: grid; grid-template-columns: 786px 1fr; gap: 20px; align-items: start; }
.ct-form { padding: 23px 32px 29px; background: #fbf9f6; border: 1px solid #efe9e1; border-radius: 8px; scroll-margin-top: 20px; }
.ct-form h2 { font-family: var(--serif); font-weight: 560; font-size: 32px; line-height: 38px; letter-spacing: -.015em; }
.ct-sub { margin-top: 4px; font-size: 15.5px; color: #55524d; }
.ct-note { margin-top: 14px; padding: 12px 16px; border-radius: 6px; font-size: 14.5px; }
.ct-note--ok { background: #e5f3ea; color: #2f6f47; }
.ct-note--err { background: #fbe9e7; color: #9b3326; }
.ct-hp { position: absolute; left: -9999px; }
.ct-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 21px 28px; margin-top: 22px; }
.ct-grid label { display: flex; flex-direction: column; gap: 9px; position: relative; }
.ct-grid .ct-full { grid-column: 1 / -1; }
.ct-grid label > span { font-size: 14.5px; font-weight: 500; color: #1f1e1c; }
.ct-grid i { font-style: normal; color: #c2512f; }
.ct-grid input, .ct-grid select, .ct-grid textarea { width: 100%; height: 45px; padding: 0 15px; border: 1px solid #dcd6ce; border-radius: 5px; background: #fff; font: inherit; font-size: 15px; color: var(--ink); outline: none; transition: border-color .2s; }
.ct-grid select { appearance: none; -webkit-appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6' fill='none' stroke='%23222' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") right 16px center / 15px no-repeat; color: #55524d; }
.ct-grid textarea { height: 156px; padding: 18px 15px 30px; resize: vertical; line-height: 22px; }
.ct-grid ::placeholder { color: #8b8680; }
.ct-grid input:focus, .ct-grid select:focus, .ct-grid textarea:focus { border-color: var(--gold); }
.ct-count { position: absolute; right: 12px; bottom: 10px; font-style: normal; font-size: 13px; color: #8b8680; }
.ct-foot { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-top: 21px; }
.ct-agree { display: flex; align-items: center; gap: 14px; font-size: 14.5px; color: #3a3834; cursor: pointer; }
.ct-agree a { color: var(--gold-text); }
.ct-agree input { appearance: none; -webkit-appearance: none; width: 20px; height: 20px; margin: 0; border: 1.5px solid #c9975f; border-radius: 3px; background: #fff; display: grid; place-items: center; flex: none; cursor: pointer; }
.ct-agree input:checked { background: var(--gold); border-color: var(--gold); }
.ct-agree input:checked::after { content: ""; width: 9px; height: 5px; border: 2px solid #fff; border-top: 0; border-right: 0; transform: rotate(-45deg) translate(1px, -1px); }
.ct-foot .btn { width: 214px; height: 51px; font-size: 17px; cursor: pointer; }

.ct-side { display: flex; flex-direction: column; gap: 24px; }
.ct-card { position: relative; overflow: hidden; height: 403px; padding: 56px 40px 0 44px; border-radius: 8px; color: #fff; background: linear-gradient(90deg, #1c1511 0%, #2a1f18 55%, #3a2b20 100%); }
.ct-card img { position: absolute; right: 0; top: 0; width: 240px; height: 100%; object-fit: cover; -webkit-mask-image: linear-gradient(90deg, transparent, #000 35%); mask-image: linear-gradient(90deg, transparent, #000 35%); }
.ct-card > *:not(img) { position: relative; }
.ct-card .eyebrow { font-size: 13px; color: #d09a57; }
.ct-card h2 { margin-top: 18px; font-family: var(--serif); font-weight: 520; font-size: 46px; line-height: 50px; letter-spacing: -.015em; }
.ct-card h2 span { color: #d5a466; }
.ct-card h2::after { content: ""; display: block; width: 46px; height: 2px; margin-top: 28px; background: #c18c4f; }
.ct-card p { margin-top: 24px; max-width: 300px; font-size: 16px; line-height: 26px; color: #eee8e1; }
.ct-other { padding: 26px 32px 30px; background: #fbf9f6; border: 1px solid #efe9e1; border-radius: 8px; }
.ct-other h2 { font-family: var(--serif); font-weight: 560; font-size: 22px; line-height: 28px; }
.ct-other ul { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 22px; }
.ct-other li + li { border-left: 1px solid #ebe5dc; }
.ct-other a { display: flex; flex-direction: column; align-items: center; text-align: center; }
.ct-other b { margin-top: 16px; font-size: 15.5px; font-weight: 500; color: var(--ink); }
.ct-other small { margin-top: 6px; font-size: 14.5px; color: #6f6b66; }
.ct-other small.gold { color: var(--gold-text); }

.cta-split--contact { height: 210px; background: linear-gradient(90deg, #1a1511 0%, #1c1916 45%, #221c17 100%); }
.cta-split--contact .cs-leaf-l { width: 262px; object-fit: cover; }
.cta-split--contact .cs-leaf-r { width: 455px; object-fit: cover; opacity: .8; }
.cta-split--contact .cs-inner { width: min(1343px, calc(100% - 64px)); height: 100%; grid-template-columns: 1fr 340px 180px; padding-left: 225px; gap: 40px; }
.cta-split--contact .cs-side { display: contents; }
.cta-split--contact .eyebrow { font-size: 12px; color: #d09a57; }
.cta-split--contact h2 { margin-top: 14px; font-size: 44px; line-height: 46px; }
.cta-split--contact .cs-side p { font-size: 15.5px; line-height: 26px; }
.cta-split--contact .cs-side .btn { width: 180px; height: 51px; font-size: 16.5px; }

@media (max-width: 1380px) {
  .ct-layout { grid-template-columns: minmax(0, 1fr) 440px; }
}
@media (max-width: 1200px) {
  .ct-hero { height: auto; padding-bottom: 40px; }
  .ct-hero-img { width: 55%; opacity: .4; }
  .ct-layout { grid-template-columns: 1fr; }
  .ct-side { max-width: 640px; }
  .cta-split--contact { height: auto; padding: 48px 0; }
  .cta-split--contact .cs-inner { grid-template-columns: 1fr; padding: 0; gap: 18px; }
  .cta-split--contact .cs-leaf-r { display: none; }
}
@media (max-width: 760px) {
  .ct-hero .container, .ct-body .container { width: calc(100% - 32px); }
  .ct-hero-inner { padding-left: 0; }
  .ct-hero-img { width: 100%; opacity: .16; }
  .ct-hero h1 { font-size: 40px; line-height: 44px; }
  .ct-ways { flex-direction: column; gap: 20px; }
  .ct-ways li + li { border: 0; }
  .ct-ways li a { width: auto !important; padding: 0 !important; }
  .ct-form { padding: 22px 18px; }
  .ct-grid { grid-template-columns: 1fr; }
  .ct-foot { flex-direction: column; align-items: stretch; }
  .ct-foot .btn { width: 100%; }
  .ct-card { height: auto; padding: 40px 24px; }
  .ct-card h2 { font-size: 36px; line-height: 40px; }
  .ct-other { padding: 22px 16px; }
}
.ct-hero h1 { font-size: 61px; line-height: 60px; }
.ct-hero .lead { max-width: 560px; font-size: 17.5px; }
.ct-card { padding-top: 46px; }
.ct-card h2 { margin-top: 14px; }
.ct-card h2::after { margin-top: 22px; }
.ct-card p { margin-top: 20px; }
.ct-grid { row-gap: 17px; }
.cta-split--contact .cs-leaf-r { width: 144px; opacity: 1; }
