/* Readiness pass: legible type, quiet contrast, and direct contact paths. */
body { font-size: 1rem; }
.site-header { height: auto; min-height: 96px; grid-template-columns: auto 1fr auto; gap: 24px; padding-top: 20px; padding-bottom: 20px; }
.site-header nav { display: flex; justify-content: center; flex-wrap: wrap; font-size: .875rem; letter-spacing: .065em; }
.site-header nav a { padding: 8px 0; }
.header-cta, .button, .text-link, .need-actions a, .footer-links, .contact-list span, .map-actions a { font-size: .875rem; }
.header-cta, .button, .text-link { letter-spacing: .08em; }
.brand-name small { font-size: .75rem; letter-spacing: .2em; }
.eyebrow, .benefit-grid span, .journey-card > span { font-size: .875rem; }
.journey-card strong, .owner-portrait figcaption, .about-gallery-item figcaption, footer > small { font-size: .75rem; }
.need-message p, .section-heading > p, .heading-side > p, .heritage-copy > p:not(.eyebrow),
.visit-copy > p:not(.eyebrow), .owners-feature > div:last-child > p:not(.eyebrow),
.about-gallery-heading > p, .values-intro > p, .journey-card p, .service-card p,
.benefit-grid p, .steps-grid p, .memorial-list article > p, .faq-list p, .value-card p,
.planning-summary, .promise-foot p, .long-copy p { font-size: 1rem; line-height: 1.8; }
.section-heading h2 em, .planning-intro h2 em, .memorial-distinction h2 em { color: #006b9b; }
.home-offerings { max-width: 650px; margin: 24px 0 0 min(8vw, 80px); padding-top: 22px; border-top: 1px solid #ffffff40; color: #d9e8ef; font-size: 1rem; line-height: 1.8; }
.inner-hero.about-hero:after, .inner-hero.planning-hero:after { inset: 0; width: 100%; height: 100%; border: 0; border-radius: 0; box-shadow: none; background: rgba(7,29,41,.85); }
.inner-hero.about-hero h1 em, .inner-hero.planning-hero h1 em { color: #83d4f4; text-shadow: none; }
.inner-hero > p:not(.eyebrow) { font-size: 1.125rem; line-height: 1.8; margin-left: 0; max-width: 700px; }
.inner-hero.about-hero > p:not(.eyebrow) { padding: 0; background: none; border: 0; }
.inner-hero > .button { margin-left: 0; }
.inner-hero.memorials-hero { display: grid; grid-template-columns: 1.2fr .8fr; align-items: center; gap: 5vw; min-height: 0; padding: 72px 7vw; background: #0d2633; }
.inner-hero.memorials-hero:after { display: none; }
.memorials-hero h1 { font-size: clamp(40px,4.7vw,72px); line-height: 1.1; text-shadow: none; }
.memorial-hero-copy > p:not(.eyebrow) { font-size: 1.125rem; line-height: 1.8; color: #e4eef3; max-width: 620px; margin-top: 28px; }
.memorials-hero h1 em { color: #83d4f4; }
.memorial-hero-image { margin: 0; padding: 28px; background: #fff; color: #40535d; }
.memorial-hero-image img { width: 100%; height: auto; max-height: 470px; object-fit: contain; }
.memorial-hero-image figcaption { margin-top: 18px; font-size: .875rem; }
.memorial-requirements, .price-scope { margin: 26px 0; padding: 22px 24px; background: #fff; color: #344b57; border-left: 3px solid #006b9b; font-size: 1rem; line-height: 1.8; }
.image-disclosure { margin: 16px 0 28px; color: #40535d; font-size: .875rem; line-height: 1.7; }
.memorial-choices .service-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.visit-page .visit.visit-combined { padding: 0; background: #0d2633; }
.visit-page .visit-combined-details { margin: 0; grid-template-columns: 1.1fr .9fr; }
.visit-page .visit-contact-panel { padding: 64px 5vw; }
.visit-page .visit-contact-panel h1 { font-size: clamp(40px,4.5vw,66px); line-height: 1.12; }
.visit-page .visit-contact-panel > p:not(.eyebrow) { margin-top: 24px; }
.contact-list a { font-family: Manrope, Arial, sans-serif; font-size: 1rem; overflow-wrap: anywhere; }
.contact-list div { gap: 16px; }
footer { grid-template-columns: 1fr 1fr; }
.footer-links { grid-column: 1 / -1; justify-content: flex-start; flex-wrap: wrap; gap: 16px 28px; }
footer > small { color: #bdcdd5; }
.consumer-notice { grid-column: 1 / -1; border-top: 1px solid #ffffff40; padding-top: 24px; color: #d9e8ef; max-width: 100%; }
.consumer-notice h2 { font: 600 .875rem/1.5 Manrope,Arial,sans-serif; margin: 0 0 10px; }
.consumer-notice p { font: 400 .875rem/1.8 Manrope,Arial,sans-serif; max-width: 900px; }
.consumer-notice a, .form-help a { text-decoration: underline; text-underline-offset: 3px; }
.appointment-section { background: #e5f4fb; padding: clamp(36px,6vw,80px) 7vw; }
.appointment-wrap { max-width: 800px; margin: auto; }
.appointment-section h1 { font-size: clamp(36px,5vw,62px); line-height: 1.12; color: #0d2633; letter-spacing: -.035em; }
.appointment-section .form-intro { margin: 24px 0; font-size: 1.125rem; line-height: 1.75; color: #40535d; }
.appointment-form { background: #fff; padding: clamp(22px,4vw,42px); margin-top: 30px; color: #0d2633; }
.appointment-form fieldset { min-width: 0; }
.appointment-form legend { font-weight: 600; margin-bottom: 18px; }
.form-grid, .date-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.date-grid { grid-template-columns: 1.4fr 1fr 1.2fr; }
.form-wide { grid-column: 1 / -1; }
.appointment-form label { display: block; font-size: 1rem; }
.appointment-form input, .appointment-form select { display: block; width: 100%; min-width: 0; margin-top: 8px; padding: 12px; border: 1px solid #71858f; background: #fff; border-radius: 2px; font-size: 1rem; min-height: 48px; }
.appointment-form input:focus-visible, .appointment-form select:focus-visible { outline: 3px solid #0875a5; outline-offset: 2px; }
.form-help, .form-status { font-size: .875rem; line-height: 1.75; margin: 20px 0; }
.form-preview-note { padding: 18px 22px; border-left: 3px solid #0875a5; background: #f6fbfd; font-size: 1rem; line-height: 1.7; }
.form-status { color: #133d51; font-weight: 600; }
.form-status:empty { display: none; }
.appointment-form button { cursor: pointer; margin-top: 6px; }
.appointment-form button:disabled { opacity: .55; cursor: not-allowed; }
@media (max-width: 1100px) {
 .site-header { grid-template-columns: 1fr auto; gap: 0 18px; }
 .site-header .brand { grid-column: 1; grid-row: 1; }
 .site-header .header-cta { grid-column: 2; grid-row: 1; }
 .site-header nav { grid-column: 1 / -1; grid-row: 2; justify-content: flex-start; padding: 14px 0 0; margin-top: 12px; border-top: 1px solid #ffffff40; overflow: visible; }
}
@media (max-width: 800px) {
 .inner-hero.memorials-hero, .visit-page .visit-combined-details { grid-template-columns: 1fr; }
 .memorial-hero-image { max-width: 480px; width: 100%; }
 .inner-hero.memorials-hero { gap: 36px; }
}
@media (max-width: 650px) {
 .site-header { padding: 18px 20px; }
 .site-header nav { font-size: .875rem; gap: 8px 20px; }
 .site-header .brand, .site-header .header-cta { padding-bottom: 0; margin-bottom: 0; }
 .brand-name strong { font-size: .875rem; }
 .brand-name small { font-size: .75rem; }
 .header-cta { max-width: 116px; font-size: .875rem; letter-spacing: .02em; }
 .need-actions { flex-wrap: wrap; }
 .need-actions a { font-size: .875rem; white-space: normal; }
 .home-offerings { margin-left: 0; }
 .memorial-choices .service-grid, .form-grid { grid-template-columns: 1fr; }
 .form-wide { grid-column: auto; }
 .date-grid { grid-template-columns: 1fr 1fr; gap: 16px; }
 .date-grid label:first-child { grid-column: 1 / -1; }
 .inner-hero.memorials-hero { padding: 52px 24px; }
 .inner-hero > p:not(.eyebrow) { font-size: 1rem; }
 .visit-page .visit-contact-panel { padding: 48px 24px; }
 .contact-list div { grid-template-columns: 1fr; gap: 6px; }
 .map-actions { flex-wrap: wrap; }
 footer { grid-template-columns: 1fr; }
 .appointment-section { padding: 44px 20px; }
}
/* Approved section-by-section photo updates. */
.about-gallery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: auto; }
.about-gallery-grid > .about-gallery-item { grid-column: auto; grid-row: auto; min-height: 260px; }
.about-gallery-pair { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.about-gallery-pair .about-gallery-item { grid-column: auto; grid-row: auto; background: transparent; }
.about-gallery-pair .about-gallery-item img { width: 100%; height: auto; object-fit: contain; transform: none; }
.about-gallery-pair .about-gallery-item:after { display: none; }
.about-gallery-pair .about-gallery-item figcaption { position: static; padding: 14px 0 20px; color: var(--ink); }
.memorial-guide-photo.prayer-memorial-photo { min-height: 0; align-self: center; background: var(--ink-deep); }
.memorial-guide-photo.prayer-memorial-photo img { width: 100%; height: auto; min-height: 0; object-fit: contain; }
@media (max-width: 650px) {
  .about-gallery-grid, .about-gallery-pair { grid-template-columns: 1fr; grid-template-rows: auto; }
}

/* Home guides families; About holds the story and commitments. */
.home-opening { background: var(--ink-deep); color: var(--ivory); }
.home-opening-photo { display:block; width:100%; height:auto; max-height:680px; object-fit:cover; object-position:center; }
.home-opening-copy { padding:48px 7vw 56px; max-width:1100px; margin:auto; text-align:center; }
.home-opening-copy h1 { font-family:Cinzel, Georgia, serif; font-size:clamp(32px,4vw,54px); line-height:1.15; margin:0 0 22px; }
.home-opening-copy p { max-width:760px; margin:auto; font-size:18px; line-height:1.75; }
.home-options { background:var(--ivory); color:var(--ink-deep); }
.home-options h2 { font-family:Cinzel, Georgia, serif; font-size:clamp(30px,3.5vw,48px); line-height:1.2; }
.home-options-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; margin:40px 0; }
.home-options-grid article { border-top:1px solid var(--line); padding-top:24px; }
.home-options h3 { font-family:Cinzel, Georgia, serif; font-size:26px; margin-bottom:18px; }
.home-options p, .journey-card p, .value-card p, .owners-feature p:not(.eyebrow), .about-contact p { font-size:16px; line-height:1.75; }
.journey-card > span, .journey-card strong { font-size:14px; letter-spacing:.06em; }
.about-contact p { margin:22px auto 30px; }
@media(max-width:650px) {
 .home-opening-copy { padding:36px 24px 42px; }
 .home-opening-copy p { font-size:16px; }
 .home-options-grid { grid-template-columns:1fr; gap:24px; }
}

/* A bright welcome panel over the existing About photograph. */
.inner-hero.about-hero { display:flex; align-items:center; min-height:640px; padding:64px 7vw; }
.inner-hero.about-hero:after { background:rgba(7,29,41,.08); }
.about-welcome-panel { position:relative; z-index:2; width:min(620px,100%); padding:40px 44px; background:rgba(255,255,255,.96); color:#0d2633; box-shadow:0 8px 30px #0d263315; }
.about-name { border-left:2px solid #159fd3; padding-left:20px; font-family:Cinzel,Georgia,serif; font-size:clamp(24px,3vw,36px); letter-spacing:.08em; line-height:1.3; text-transform:uppercase; margin:0 0 32px; }
.about-name span { display:block; font-family:Arial,sans-serif; font-size:14px; letter-spacing:.3em; color:#087da9; margin-top:10px; }
.inner-hero.about-hero .about-welcome-panel h1 { font-size:clamp(30px,3.5vw,46px); line-height:1.15; margin:0 0 24px; }
.inner-hero.about-hero .about-welcome-panel h1 em { color:#086b90; }
.about-welcome-copy { font-size:17px; line-height:1.75; color:#334f5b; }
@media(max-width:650px) {
 .inner-hero.about-hero { padding:160px 20px 32px; min-height:620px; }
 .about-welcome-panel { padding:28px 24px; }
 .about-welcome-copy { font-size:16px; }
}

/* Keep the interactive office map and its directions links in separate rows. */
.visit-combined .office-map { min-width: 0; min-height: 0; display: flex; flex-direction: column; background: var(--sky-wash, #e5f4fb); }
.office-map::before { display: none; }
.office-map-frame { display: block; width: 100%; min-width: 0; height: clamp(340px, 36vw, 520px); flex: 1 0 auto; border: 0; }
.office-map-caption { margin: 0; padding: 18px 24px 0; color: var(--ink-deep); font-size: .875rem; }
.office-map .map-actions { position: static; display: flex; flex-wrap: wrap; gap: 8px; padding: 14px 24px 22px; }
.office-map .map-actions a { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
@media (max-width: 650px) {
 .office-map-frame { height: 340px; }
 .office-map .map-actions { padding: 14px 16px 18px; }
 .office-map-caption { padding: 16px 16px 0; }
}

.booking-wrap { max-width: 1100px; }
.booking-section .form-intro { max-width: 760px; margin-bottom: 16px; }
.booking-help, .booking-fallback { color: #40535d; font-size: 1rem; line-height: 1.7; }
.booking-help a, .booking-fallback a { text-decoration: underline; text-underline-offset: 3px; }
.booking-calendar { margin-top: 32px; background: #fff; border: 1px solid #cfdee6; border-radius: 4px; overflow: hidden; }
.booking-calendar iframe { display: block; width: 100%; height: 1500px; border: 0; }
.booking-fallback { margin-top: 20px; }
@media (max-width: 650px) {
 .booking-section { padding-inline: 16px; }
 .booking-calendar iframe { height: 1900px; }
}

/* Quiet color feedback for calls to action. */
.button, .header-cta, .text-link, .need-actions a, .map-actions a, .journey-card, .contact-list a, .booking-fallback a {
 transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease;
}
.button-light:hover, .button-light:focus-visible { background: #e5f4fb; border-color: #e5f4fb; color: #0d2633; }
.button-dark:hover, .button-dark:focus-visible, .need-actions a:first-child:hover, .need-actions a:first-child:focus-visible,
.map-actions a:first-child:hover, .map-actions a:first-child:focus-visible { background: #244552; border-color: #244552; color: #fff; }
.map-actions a:last-child:hover, .map-actions a:last-child:focus-visible, .need-actions a:last-child:hover, .need-actions a:last-child:focus-visible { background: #d5e9f4; color: #0d2633; }
.header-cta:hover, .header-cta:focus-visible, .text-link:hover, .text-link:focus-visible, .contact-list a:hover, .contact-list a:focus-visible { color: #b9dced; }
.dark-link:hover, .dark-link:focus-visible, .booking-fallback a:hover, .booking-fallback a:focus-visible { color: #006b9b; }
.journey-card:hover, .journey-card:focus-visible { transform: none; }
.journey-1:hover, .journey-1:focus-visible { background: #244552; }
.journey-2:hover, .journey-2:focus-visible { background: #d5e9f4; }
@media (prefers-reduced-motion: reduce) {
 .button, .header-cta, .text-link, .need-actions a, .map-actions a, .journey-card, .contact-list a, .booking-fallback a { transition: none; }
}

.booking-card { margin-top: 32px; padding: clamp(24px, 4vw, 44px); background: #fff; border: 1px solid #cfdee6; }
.booking-card h2 { font-size: clamp(24px, 3vw, 34px); line-height: 1.25; color: #0d2633; }
.booking-card p { margin-top: 14px; color: #40535d; font-size: 1rem; line-height: 1.7; }
.booking-card .button { margin-top: 24px; }
.booking-card .booking-note { font-size: .875rem; }
