.h7-page { background: #faf5eb; color: #4a2231; padding-top: var(--h7-header,110px); overflow: hidden; font-family: 'DM Sans',Arial,sans-serif; }
.h7-page * { box-sizing: border-box; }.h7-page figure { margin: 0; }.h7-page img { width: 100%; height: 100%; object-fit: cover; display: block; }
.h7-page h1,.h7-page h2 { font-family: 'Bodoni Moda',Georgia,serif; font-weight: 500; letter-spacing: -1px; margin: 18px 0 25px; line-height: 1.15; }.h7-page h1 { font-size: 60px; }.h7-page h2 { font-size: 44px; }.h7-page p { font-size: 17px; line-height: 1.85; color: #75655c; }.h7-kicker { font-size: 15px; text-transform: uppercase; letter-spacing: 2px; color: #99723f; }
.h7-hero { max-width: 1280px; margin: auto; padding: 65px 40px 90px; display: flex; align-items: center; gap: 75px; }.h7-hero > div { flex: 1; }.h7-hero > figure { width: 46%; height: 510px; position: relative; border: 10px solid #e8d6b7; border-radius: 190px 190px 4px 4px; }.h7-hero img { border-radius: 180px 180px 0 0; }.h7-seal { position: absolute; left: -35px; bottom: 35px; width: 75px; height: 75px; display: flex; align-items: center; justify-content: center; border-radius: 50%; font-size: 38px; color: #f9efdb; background: #4a2231; border: 5px solid #faf5eb; animation: h7-turn 25s linear infinite; }
.h7-button { display: inline-flex; gap: 30px; padding: 17px 23px; text-decoration: none; background: #4a2231; color: #fff7e7; font-size: 15px; line-height: 1.5; border: 1px solid #4a2231; transition: transform .3s,background .3s; }.h7-button:hover { background: #653346; transform: translateY(-3px); }.h7-page button { cursor: pointer; }.h7-page a:focus-visible,.h7-page button:focus-visible { outline: 2px solid #b78f53; outline-offset: 5px; }
.h7-photo-collection { padding: 80px max(40px,calc((100% - 1200px)/2)); background: #e8dbc4; border-top: 1px solid #c5a675; }.h7-photo-columns { columns: 3; column-gap: 28px; }.h7-photo { break-inside: avoid; margin-bottom: 28px !important; }.h7-photo button { display: block; width: 100%; position: relative; padding: 0; border: 7px solid #fff9ef; background: #442230; overflow: hidden; }.h7-photo img { height: auto; max-height: 650px; min-height: 200px; transition: transform 1s; }.h7-photo button:hover img { transform: scale(1.045); }.h7-photo button > span { position: absolute; bottom: 18px; right: 18px; width: 43px; height: 43px; border: 1px solid #e0c897; background: #4a2231dc; color: #fff8eb; font-size: 25px; border-radius: 50%; display: flex; align-items: center; justify-content: center; }.h7-photo figcaption { font-size: 15px; padding: 12px 0; color: #705d4f; }
.h7-gallery-invite { text-align: center; padding: 80px 22px; background: #9e793f; color: #fff8e6; }.h7-spinning { display: inline-flex; font-size: 40px; color: #eed5a8; animation: h7-turn 25s linear infinite; }.h7-gallery-invite h2 { max-width: 700px; margin: 22px auto 28px; }
.h7-lightbox { position: fixed; inset: 0; width: 100%; max-width: none; height: 100%; max-height: none; background: #24101af5; color: #fff9eb; border: 0; padding: 65px 80px 30px; }.h7-lightbox[open] { display: flex; align-items: center; justify-content: center; gap: 22px; }.h7-lightbox::backdrop { background: #24101af0; }.h7-lightbox figure { flex: 1; height: 100%; text-align: center; min-width: 0; }.h7-lightbox figure img { object-fit: contain; height: calc(100% - 40px); }.h7-lightbox figcaption { font-size: 15px; margin-top: 15px; }.h7-lightbox button { flex-shrink: 0; width: 45px; height: 45px; border: 1px solid #ccb18d; color: #fff7e8; background: transparent; font-size: 26px; border-radius: 50%; }.h7-lightbox [data-h7-close] { position: absolute; top: 15px; right: 20px; }
.h7-contact-body { padding: 85px max(40px,calc((100% - 1200px)/2)); background: #e9ddc8; display: flex; gap: 65px; align-items: flex-start; }.h7-contact-details { width: 40%; display: flex; flex-wrap: wrap; gap: 18px; }.h7-contact-tile { width: 100%; padding: 25px; border: 1px solid #c6ad88; background: #f8f0e1; position: relative; }.h7-contact-tile > span { display: block; color: #9a7447; font-size: 15px; margin-bottom: 14px; letter-spacing: 1px; }.h7-contact-tile a { font-size: 19px; color: #4a2231; text-decoration: none; overflow-wrap: anywhere; }.h7-contact-tile p { margin: 0; }.h7-status { position: absolute; top: 28px; right: 24px; width: 9px; height: 9px; border-radius: 50%; background: #a67f42; box-shadow: 0 0 0 5px #c8a56833; animation: h7-pulse 3s ease-in-out infinite; }.h7-contact-form { flex: 1; min-width: 0; padding: 36px; background: #fffaf1; box-shadow: 12px 15px 0 #b08b5633; }.h7-contact-form h2 { font-size: 36px; margin-top: 0; }
.h7-contact-form .h7-form-row { display: flex; gap: 18px; }.h7-contact-form .h7-form-row > p { flex: 1; min-width: 0; }.h7-contact-form p { margin: 0 0 17px; font-size: 15px; line-height: 1.5; }.h7-contact-form label { display: block; font-size: 15px; }.h7-contact-form input:not([type=submit]),.h7-contact-form textarea,.h7-contact-form select { display: block; width: 100%; min-height: 46px; padding: 10px 12px; margin-top: 7px; font: 16px 'DM Sans',Arial,sans-serif; border: 1px solid #cdbb9b; border-radius: 0; background: #fffef9; color: #4a2231; }.h7-contact-form input[type=submit] { font: 500 15px 'DM Sans',Arial,sans-serif; background: #4a2231; color: #fff8e8; padding: 16px 24px; border: 0; cursor: pointer; }.h7-contact-form textarea { min-height: 110px; }.h7-contact-form .wpcf7-response-output { font-size: 15px; margin: 20px 0 0; }.h7-contact-form .wpcf7-not-valid-tip { font-size: 15px; }
.h7-directions { max-width: 1280px; margin: auto; padding: 95px 40px; display: flex; gap: 75px; align-items: center; }.h7-directions figure { width: 48%; height: 470px; border: 9px solid #e3cba5; }.h7-directions > div { flex: 1; }
.h7-motion [data-h7-reveal] { transition: opacity .8s,translate 1s; }.h7-motion .h7-pending { opacity: 0; translate: 0 30px; }
@keyframes h7-turn { to { transform: rotate(360deg); }}@keyframes h7-pulse { 50% { box-shadow: 0 0 0 10px #c8a56808; }}
@media(max-width:1000px){.h7-page h1 { font-size: 48px; }.h7-hero { gap: 40px; }.h7-hero > figure { height: 450px; }.h7-contact-body { gap: 35px; }.h7-contact-form { padding: 25px; }.h7-photo-columns { columns: 2; }}
@media(max-width:700px){.h7-page h1 { font-size: 38px; }.h7-page h2 { font-size: 33px; }.h7-page p { font-size: 16px; }.h7-hero { flex-direction: column; padding: 35px 22px 60px; gap: 30px; }.h7-hero > figure { width: calc(100% - 15px); height: 350px; margin-left: 15px; }.h7-seal { width: 60px; height: 60px; left: -25px; font-size: 30px; }.h7-photo-collection { padding: 40px 15px; }.h7-photo-columns { columns: 2; column-gap: 12px; }.h7-photo { margin-bottom: 12px !important; }.h7-photo button { border-width: 3px; }.h7-photo img { min-height: 130px; }.h7-photo button > span { width: 30px; height: 30px; font-size: 20px; right: 8px; bottom: 8px; }.h7-contact-body { flex-direction: column; padding: 55px 22px; gap: 30px; }.h7-contact-details,.h7-contact-form { width: 100%; }.h7-contact-form { padding: 25px 20px; }.h7-contact-form .h7-form-row { flex-direction: column; gap: 0; }.h7-directions { flex-direction: column; padding: 60px 22px; gap: 30px; }.h7-directions figure { width: 100%; height: 350px; }.h7-lightbox { padding: 65px 10px 25px; }.h7-lightbox[open] { gap: 5px; }.h7-lightbox button { width: 35px; height: 35px; font-size: 22px; }}
@media(prefers-reduced-motion:reduce){.h7-page * { animation: none !important; }.h7-page [data-h7-depth] { transform: none !important; }.h7-motion .h7-pending { opacity: 1; translate: none; }}
