
/* Contact & Gallery: native CMS blocks, shared by published and editor views. */
#contact-intro .section-inner, #gallery-intro .section-inner { padding-top: 68px; padding-bottom: 62px; }
#contact-intro .section-intro, #gallery-intro .section-intro { margin-bottom: 0; }
#contact-intro h2, #gallery-intro h2 { font-family: Georgia, serif; font-size: clamp(38px, 5vw, 68px); line-height: 1.1; letter-spacing: -2px; white-space: pre-line; max-width: 850px; margin: 22px 0; }
#contact-intro p, #gallery-intro p { max-width: 620px; font-size: 17px; line-height: 1.8; }
#contact-message .section-inner { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 72px; align-items: start; padding-top: 70px; padding-bottom: 80px; }
#contact-message .section-intro { margin: 0; }
#contact-message .content-layout:empty { display: none; }
#contact-message h2 { font-family: Georgia, serif; font-size: clamp(30px, 3vw, 43px); line-height: 1.18; letter-spacing: -1px; margin: 20px 0; }
#contact-message .section-intro p { line-height: 1.85; }
#contact-message .section-intro figure { margin-top: 32px; max-width: 350px; }
#contact-message .section-intro img { width: 100%; height: 230px; object-fit: cover; border-radius: 8px; }
#contact-message .public-form { margin: 0; padding: 32px; background: var(--cream); border: 1px solid var(--line); border-radius: 12px; gap: 22px 18px; }
#contact-message .public-form input, #contact-message .public-form textarea { background: var(--paper); border-radius: 5px; padding: 14px; font-size: 16px; }
#contact-message .public-form textarea { min-height: 160px; resize: vertical; }
#contact-message .public-form input:focus, #contact-message .public-form textarea:focus { outline: 2px solid var(--ink); outline-offset: 2px; }
#contact-message .public-form button { grid-column: 1/-1; justify-content: space-between; background: var(--ink); color: var(--paper); border-radius: 6px; }
#contact-message .form-result { margin: 0; }
#gallery-collection .section-inner { padding-top: 54px; padding-bottom: 72px; }
#gallery-collection .layout-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 44px 28px; }
#gallery-collection .content-card figure { border-radius: 8px; margin-bottom: 18px; }
#gallery-collection .content-card img { aspect-ratio: 1; height: auto; object-fit: cover; }
#gallery-collection .content-card h3 { font-family: Georgia, serif; font-size: 24px; line-height: 1.3; letter-spacing: -.4px; }
#gallery-invitation .section-inner { padding-top: 52px; padding-bottom: 54px; }
#gallery-invitation .section-intro { margin: 0; }
#gallery-invitation h2 { font-family: Georgia, serif; font-size: clamp(28px, 3vw, 42px); line-height: 1.2; }
@media (max-width: 900px) {
 #contact-message .section-inner { gap: 34px; }
 #contact-message .public-form { padding: 22px; }
 #gallery-collection .layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 650px) {
 #contact-intro .section-inner, #gallery-intro .section-inner { padding-top: 42px; padding-bottom: 38px; }
 #contact-message .section-inner { grid-template-columns: 1fr; padding-top: 42px; padding-bottom: 45px; }
 #contact-message .section-intro figure { max-width: none; }
 #contact-message .public-form { grid-template-columns: 1fr; }
 #gallery-collection .layout-grid { grid-template-columns: 1fr; gap: 32px; }
 #gallery-collection .section-inner { padding-top: 36px; padding-bottom: 42px; }
}
