.contact-page #inquiry { scroll-margin-top:76px; }

/* Supporting sections share the homepage type system; the approved hero is unchanged. */
.contact-page :is(.contact-inquiry,.contact-guidance,.contact-faq) {
  padding:64px 24px;
  font:400 1rem/1.65 Manrope,Arial,sans-serif;
}
.contact-page :is(.contact-inquiry,.contact-guidance,.contact-faq) :is(h2,h3) {
  font-family:'Cormorant Garamond','Iowan Old Style',Georgia,serif;
  font-weight:500;
  letter-spacing:-.035em;
}
.contact-page :is(.contact-inquiry,.contact-guidance,.contact-faq) h2 { font-size:clamp(2.125rem,3vw,2.75rem); line-height:1.08; }
.contact-page :is(.contact-inquiry,.contact-guidance,.contact-faq) .eyebrow { margin-bottom:14px; font-size:.75rem; letter-spacing:.15em; color:#846536; }
.contact-page :is(.contact-inquiry,.contact-guidance,.contact-faq) :is(a,button,summary):focus-visible { outline:2px solid #846536; outline-offset:5px; }
.contact-page #inquiry { display:block; padding:64px 24px; }
.contact-inquiry-layout { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:48px; max-width:1160px; margin:0 auto; align-items:start; }
.contact-inquiry .contact-aside { grid-column:1; grid-row:1; position:static; max-width:none; min-width:0; }
.contact-inquiry .contact-form-shell { grid-column:2; grid-row:1; }
.contact-aside>p:not(.eyebrow) { margin:18px 0 24px; color:#625d55; font-size:1rem; line-height:1.65; }
.contact-aside-image { width:100%; max-width:none; overflow:hidden; border-radius:22px; }
.contact-aside-image::after { display:none; }
.contact-aside-image img { width:100%; aspect-ratio:5/4; border-radius:22px; }
@media(hover:hover) and (pointer:fine) {
  .contact-aside-image,.contact-faq-image { transition:box-shadow .45s ease; }
  .contact-aside-image:hover,.contact-faq-image:hover { box-shadow:0 14px 30px rgba(65,50,30,.16); }
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .contact-aside-image img,.contact-faq-image img { transition:transform .6s cubic-bezier(.22,.61,.36,1); }
  .contact-aside-image:hover img,.contact-faq-image:hover img { transform:scale(1.035); }
}
.contact-form,.contact-success { max-width:none; padding:32px; border:1px solid #e1d6c7; border-radius:24px; background:#fffdf9; box-shadow:0 12px 32px rgba(65,50,30,.055); }
.contact-form-heading { margin:0 0 24px; padding:0; border:0; }
.contact-page .contact-form-heading h2 { font-size:clamp(2rem,2.8vw,2.5rem); }
.contact-form-heading>p:last-child { margin:12px 0 0; font-size:1rem; line-height:1.65; }
.contact-field-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px; }
.contact-form label { min-width:0; display:grid; gap:8px; margin:0; color:#4e4a43; font-size:.875rem; font-weight:600; letter-spacing:0; text-transform:none; }
.contact-form>.contact-field-row,.contact-form>label { margin-top:16px; }
.contact-form label>.contact-label-text { margin:0; color:inherit; font-size:inherit; font-weight:inherit; }
.contact-form .field-optional { margin-left:4px; color:#746d62; font-size:.75rem; font-weight:400; }
.contact-form input,.contact-form select,.contact-form textarea { width:100%; min-width:0; padding:11px 12px; border:1px solid #d8cbbb; border-radius:12px; background:#fffdfa; color:#33291f; font:400 1rem/1.5 Manrope,Arial,sans-serif; }
.contact-form input,.contact-form select { min-height:48px; }
.contact-form textarea { min-height:122px; resize:vertical; }
.contact-form :is(input,select,textarea):focus { border-color:#846536; outline:2px solid #846536; outline-offset:2px; box-shadow:none; }
.contact-form textarea::placeholder { color:#7c7469; }
.contact-submit { width:100%; min-height:50px; margin-top:24px; padding:14px 20px; border-radius:14px; background:#846536; color:#fffdf9; font:700 .875rem/1.4 Manrope,Arial,sans-serif; letter-spacing:.015em; text-transform:none; }
.contact-submit:hover { background:#70532b; }
.contact-privacy { margin:12px 0 0; color:#71695e; font-size:.75rem; line-height:1.6; text-align:center; }
.contact-success { min-height:420px; }
.contact-success>span { width:48px; height:48px; margin-bottom:24px; }
.contact-success>p:not(.eyebrow) { font-size:1rem; line-height:1.65; }
.contact-success button { font:600 .875rem/1.5 Manrope,Arial,sans-serif; letter-spacing:0; text-transform:none; }
.contact-social { margin-top:28px; padding-top:24px; border-top:1px solid #ded1bf; }
.contact-social h3 { margin:0; font-size:2rem; line-height:1.1; }
.contact-social p { margin:10px 0 18px; color:#625d55; font-size:1rem; line-height:1.6; }
.contact-social-links { display:flex; flex-wrap:wrap; gap:10px; }
.contact-social-links a { display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:10px 12px; border:1px solid #d9cbbb; border-radius:12px; background:#fffdf9; color:#66502f; font:600 .875rem/1.4 Manrope,Arial,sans-serif; }
.contact-social-links a:hover { background:#ede3d5; border-color:#ab8d60; }
.contact-social-links svg { width:19px; height:19px; flex:none; }

.contact-guidance { background:#eee5d8; }
.contact-guidance::before { display:none; }
.contact-guidance-heading { max-width:760px; margin:0 auto 36px; text-align:center; }
.contact-guidance-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; max-width:1160px; margin:0 auto; padding:0; list-style:none; border:0; background:none; }
.contact-guidance-grid li { min-width:0; padding:0 28px; }
.contact-guidance-grid li:first-child { padding-left:0; }
.contact-guidance-grid li:last-child { padding-right:0; }
.contact-guidance-grid li+li { border-left:1px solid #cdbda5; }
.contact-step-number { display:block; margin-bottom:16px; color:#846536; font:600 .875rem/1 Manrope,Arial,sans-serif; letter-spacing:.1em; }
.contact-guidance-grid h3 { margin:0 0 12px; font-size:1.875rem; line-height:1.15; }
.contact-guidance-grid p { margin:0; color:#625d55; font-size:1rem; line-height:1.65; }

.contact-faq { background:#fffdf9; }
.contact-faq-layout { display:grid; grid-template-columns:minmax(0,3fr) minmax(0,2fr); gap:56px; max-width:1160px; margin:0 auto; align-items:start; }
.contact-faq-copy { min-width:0; }
.contact-faq-heading { margin:0 0 32px; text-align:left; }
.contact-faq-list { border-top:1px solid #ded1bf; }
.contact-faq-image { margin:0; width:100%; overflow:hidden; border-radius:22px; }
.contact-faq-image img { display:block; width:100%; height:auto; aspect-ratio:4/5; }
.contact-faq .faq-detail { border-bottom:1px solid #ded1bf; }
.contact-faq summary { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 0; list-style:none; color:#33291f; font:600 1rem/1.6 Manrope,Arial,sans-serif; cursor:pointer; }
.contact-faq summary::-webkit-details-marker { display:none; }
.contact-faq .faq-symbol { position:relative; width:24px; height:24px; flex:none; color:#846536; }
.contact-faq .faq-symbol::before,.contact-faq .faq-symbol::after { content:''; position:absolute; left:5px; top:11px; width:14px; height:1px; background:currentColor; }
.contact-faq .faq-symbol::after { transform:rotate(90deg); }
.contact-faq details[open] .faq-symbol::after { transform:rotate(0); }
.contact-faq .faq-detail-answer { padding:0 44px 22px 0; }
.contact-faq .faq-detail-answer p { margin:0; color:#625d55; font:400 1rem/1.75 Manrope,Arial,sans-serif; }
.contact-faq .faq-detail-answer a { color:#765830; text-decoration:underline; text-underline-offset:4px; }
@media(max-width:820px) {
  .contact-page :is(.contact-inquiry,.contact-guidance,.contact-faq),.contact-page #inquiry { padding:40px 24px; }
  .contact-inquiry-layout { max-width:620px; grid-template-columns:minmax(0,1fr); gap:36px; }
  .contact-inquiry .contact-form-shell { grid-column:1; grid-row:1; }
  .contact-inquiry .contact-aside { grid-column:1; grid-row:2; }
  .contact-form,.contact-success { padding:24px; }
  .contact-field-row { grid-template-columns:minmax(0,1fr); gap:16px; }
  .contact-guidance-heading { text-align:left; margin-bottom:28px; }
  .contact-guidance-grid { grid-template-columns:minmax(0,1fr); gap:24px; }
  .contact-guidance-grid li,.contact-guidance-grid li:first-child,.contact-guidance-grid li:last-child { padding:0; }
  .contact-guidance-grid li:not(:first-child) { padding-top:24px; border-left:0; border-top:1px solid #cdbda5; }
  .contact-step-number { margin-bottom:12px; }
  .contact-faq-layout { max-width:620px; grid-template-columns:minmax(0,1fr); gap:32px; }
  .contact-faq-heading { margin-bottom:24px; }
  .contact-faq summary { gap:12px; padding:20px 0; }
  .contact-faq .faq-detail-answer { padding-right:0; }
}
