/* EMN theme: mobile-first. Palette & type in theme.json. */
html { -webkit-text-size-adjust: 100%; }
body { overflow-x: clip; }
img, iframe, video { max-width: 100%; height: auto; }
.wp-site-blocks { padding-top: 0; }
:where(a) { text-underline-offset: 0.18em; }
:focus-visible { outline: 3px solid #9A5A00; outline-offset: 3px; }

/* Header */
.emn-header { position: sticky; top: 0; z-index: 50; border-bottom: 1px solid rgba(255,255,255,.08); }
.admin-bar .emn-header { top: 0; }
@media (min-width: 783px) { .admin-bar .emn-header { top: 32px; } }
.emn-header-inner { max-width: 1152px; margin: 0 auto; justify-content: space-between; align-items: center; gap: .75rem; padding: .5rem 0; flex-wrap: nowrap !important; }
.emn-logo { margin: 0 !important; flex: 0 0 auto; }
.emn-logo img { width: 112px !important; height: auto; display: block; }
.emn-logo a { display: inline-block; padding: 4px 0; min-height: 48px; }
.emn-nav { font-weight: 600; }
.emn-nav .wp-block-navigation-item__content { display: inline-flex; align-items: center; min-height: 48px; padding: 0 .5rem; text-decoration: none; }
.emn-nav .wp-block-navigation-item__content:hover { text-decoration: underline; text-decoration-color: #9A5A00; text-decoration-thickness: 2px; }
.emn-nav .current-menu-item > a, .emn-nav [aria-current="page"] { text-decoration: underline; text-decoration-color: #9A5A00; text-decoration-thickness: 3px; }
.emn-nav .wp-block-navigation__responsive-container-open, .emn-nav .wp-block-navigation__responsive-container-close { min-width: 48px; min-height: 48px; align-items: center; justify-content: center; }
.emn-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: inline-flex; }
@media (min-width: 600px) { .emn-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: none; } }
.emn-nav .wp-block-navigation__responsive-container-open svg, .emn-nav .wp-block-navigation__responsive-container-close svg { width: 30px; height: 30px; }
.emn-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 4rem; }
.emn-nav .is-menu-open .wp-block-navigation-item__content { font-size: 1.375rem; min-height: 52px; }
.emn-header-cta { display: none !important; }
@media (min-width: 960px) { .emn-header-cta { display: flex !important; } .emn-logo img { width: 132px !important; } }
.emn-header-cta .wp-block-button__link { background: #204B51 !important; color: #FFFFFF !important; border-bottom: 3px solid #ECA440; }
/* Slot reserved for a future language switcher (e.g. Polylang "FR | EN"). */
.emn-lang:empty { display: none; }

/* Sections */
.emn-section { padding-top: clamp(3rem, 8vw, 5.5rem); padding-bottom: clamp(3rem, 8vw, 5.5rem); }
.emn-section > * { max-width: 1152px; }
.emn-eyebrow { font-size: .8125rem !important; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #9A5A00; margin-bottom: .25rem !important; }
.has-secondary-background-color .emn-eyebrow, .has-primary-background-color .emn-eyebrow { color: #ECA440; }
.emn-rule::after { content: ""; display: block; width: 72px; height: 3px; background: #ECA440; margin-top: .9rem; }
.emn-lead { font-size: 1.125rem; max-width: 42rem; }
.emn-small { font-size: .9375rem; }
.emn-tbc, .emn-tbc a { color: #4F5F62 !important; font-size: .875rem !important; font-style: italic; }
.emn-center { text-align: center; }
.emn-center .emn-rule::after, .emn-center.emn-rule::after { margin-left: auto; margin-right: auto; }

/* Hero */
.emn-hero { padding-top: 0 !important; }
.emn-hero-cols { gap: 0 !important; align-items: stretch !important; margin: 0 auto; }
.emn-hero-img { margin: 0 calc(-1 * var(--wp--style--root--padding-left, 1.25rem)) !important; }
.emn-hero-img img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.emn-hero-text { padding-top: 1.75rem; }
.emn-hero h1 { margin-top: .25rem; }
@media (min-width: 782px) {
  .emn-hero { padding-top: clamp(3rem,6vw,5rem) !important; }
  .emn-hero-cols { gap: 3rem !important; align-items: center !important; }
  .emn-hero-cols > .wp-block-column:first-child { order: 2; }
  .emn-hero-img { margin: 0 !important; }
  .emn-hero-img img { border-radius: 14px; aspect-ratio: 5/4; }
  .emn-hero-text { padding-top: 0; }
}

/* Next service card */
.emn-next { border-radius: 14px; padding: 1.25rem 1.25rem 1.1rem !important; margin-top: 1.5rem !important; }
.emn-next p { margin: 0 0 .35rem !important; }
.emn-next .emn-cd-date { font-family: var(--wp--preset--font-family--heading); font-size: 1.375rem; font-weight: 600; color: #fff; }
.emn-next .emn-cd-left { color: #ECA440; font-weight: 600; font-variant-numeric: tabular-nums; min-height: 1.6em; }
.emn-next a { color: #fff; }
.emn-next .emn-tbc { color: #C9D6D7 !important; }

/* Cards & grids */
.emn-grid { gap: 1.25rem !important; }
.emn-card { background: #fff; border: 1px solid #DCE6E6; border-radius: 14px; padding: 1.5rem !important; height: 100%; }
.emn-card h3 { margin-top: 0; }
.emn-card > *:last-child { margin-bottom: 0; }
.emn-quote { border: 0 !important; padding: 0 !important; margin: 0 auto !important; max-width: 46rem; text-align: center; }
.emn-quote p { font-family: var(--wp--preset--font-family--heading); font-size: clamp(1.375rem, 4.2vw, 2rem); line-height: 1.35; font-weight: 600; }
.emn-quote cite { display: block; margin-top: .75rem; font-style: normal; font-weight: 600; color: #ECA440; }
.emn-bigquote { border-left: 4px solid #ECA440 !important; padding-left: 1.25rem !important; }
.emn-bigquote p { font-size: 1.125rem; }

/* Photos + lightbox */
.emn-photos { gap: 1rem !important; }
.emn-photos .wp-block-image img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 12px; }
.emn-photos figcaption { font-size: .8125rem; color: #4F5F62; }
.wp-lightbox-overlay .wp-block-image img { object-fit: contain; }

/* Accordions (statement of faith) */
.emn-faith .wp-block-details { background: #fff; border: 1px solid #DCE6E6; border-radius: 12px; padding: 0 1.1rem; margin-top: .6rem !important; }
.emn-faith .wp-block-details summary { min-height: 52px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; cursor: pointer; font-weight: 600; font-size: 1.0625rem; list-style: none; color: #14353A; }
.emn-faith .wp-block-details summary::-webkit-details-marker { display: none; }
.emn-faith .wp-block-details summary::after { content: "+"; font-size: 1.5rem; color: #9A5A00; line-height: 1; flex: 0 0 auto; transition: transform .2s; }
.emn-faith .wp-block-details[open] summary::after { transform: rotate(45deg); }
.emn-faith .wp-block-details[open] { padding-bottom: 1rem; }

/* Lists */
.emn-mission { padding-left: 1.25rem; }
.emn-mission li { margin-bottom: .5rem; }
.emn-mission li::marker { color: #9A5A00; }
.emn-dates { list-style: none; padding: 0; }
.emn-dates li { padding: .75rem 0; border-bottom: 1px solid #DCE6E6; font-weight: 600; }
.emn-contact-list { list-style: none; padding: 0; }
.emn-contact-list li { padding: .5rem 0; }
.emn-contact-list a { display: inline-flex; align-items: center; min-height: 48px; word-break: break-word; }
.emn-label { display: block; font-size: .8125rem; text-transform: uppercase; letter-spacing: .06em; color: #4F5F62; font-weight: 600; }

/* Buttons */
.wp-block-button__link { min-height: 48px; display: inline-flex !important; align-items: center; justify-content: center; text-align: center; }
.wp-block-button.is-style-outline .wp-block-button__link { border: 2px solid currentColor; background: transparent; }
.has-secondary-background-color .wp-block-button.is-style-outline .wp-block-button__link, .has-primary-background-color .wp-block-button.is-style-outline .wp-block-button__link { color: #fff; }
.emn-textlink a { display: inline-flex; align-items: center; min-height: 48px; font-weight: 600; text-decoration-color: #9A5A00; text-decoration-thickness: 2px; }
@media (max-width: 480px) { .emn-stack .wp-block-button { width: 100%; } .emn-stack .wp-block-button__link { width: 100%; } }
.emn-social { gap: .5rem !important; }

/* Map */
.emn-map { position: relative; border-radius: 14px; overflow: hidden; border: 1px solid #DCE6E6; background: #E6EFEF; }
.emn-map iframe { display: block; width: 100%; height: 320px; border: 0; }

/* Contact form (CF7) */
.emn-form-pending { border: 2px dashed #9FB6B8; border-radius: 12px; padding: 1.25rem; background: #fff; }
.wpcf7 .emn-field { margin-bottom: 1rem; }
.wpcf7 label { display: block; font-weight: 600; margin-bottom: .35rem; }
.wpcf7 input[type=text], .wpcf7 input[type=email], .wpcf7 input[type=tel], .wpcf7 textarea { width: 100%; box-sizing: border-box; min-height: 48px; padding: .7rem .85rem; font: inherit; font-size: 1rem; border: 1px solid #8DA3A6; border-radius: 10px; background: #fff; color: #1B2A2D; }
.wpcf7 textarea { min-height: 150px; }
.wpcf7 input:focus, .wpcf7 textarea:focus { outline: 3px solid #9A5A00; outline-offset: 1px; border-color: #204B51; }
.wpcf7 input[type=submit] { min-height: 48px; padding: .8rem 1.6rem; border: 0; border-radius: 10px; background: #204B51; color: #fff; font: inherit; font-weight: 600; cursor: pointer; width: 100%; }
@media (min-width: 600px) { .wpcf7 input[type=submit] { width: auto; } }
.wpcf7 .emn-opt { font-weight: 400; color: #4F5F62; }
.wpcf7 .emn-req { color: #9A5A00; }
.wpcf7-not-valid-tip { color: #A12A1F; font-size: .875rem; }

/* Footer */
.emn-footer { padding-top: 3rem; padding-bottom: 2rem; }
.emn-footer a { color: #fff; }
.emn-footer .emn-footer-h { font-weight: 600; color: #ECA440; margin-bottom: .4rem; font-size: .875rem; text-transform: uppercase; letter-spacing: .06em; }
.emn-footer .emn-quick { list-style: none; padding: 0; margin: 0; }
.emn-footer .emn-quick a, .emn-footer .emn-flink a { display: inline-flex; align-items: center; min-height: 48px; }
.emn-footer .emn-logo img { width: 140px !important; }
.emn-copy { border-top: 1px solid rgba(255,255,255,.15); padding-top: 1.25rem; margin-top: 2rem !important; font-size: .875rem; color: #C9D6D7; }
.emn-copy a { color: #C9D6D7 !important; }

/* Sticky mobile action bar */
.emn-mobilebar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; margin: 0 !important; padding: .4rem .5rem calc(.4rem + env(safe-area-inset-bottom)) !important; gap: .4rem !important; flex-wrap: nowrap !important; box-shadow: 0 -4px 18px rgba(0,0,0,.18); }
.emn-mobilebar .wp-block-button { flex: 1 1 0; margin: 0; }
.emn-mobilebar .wp-block-button__link { width: 100%; min-height: 50px; padding: .5rem !important; font-size: .9375rem; background: transparent; color: #fff; border-radius: 10px; }
.emn-mobilebar .wp-block-button:first-child .wp-block-button__link { background: #ECA440; color: #14353A; }
body { padding-bottom: 70px; }
@media (min-width: 782px) { .emn-mobilebar { display: none !important; } body { padding-bottom: 0; } }

/* Fade-ins (JS adds classes; never with reduced motion) */
.emn-fade { opacity: 0; transform: translateY(8px); transition: opacity .3s ease, transform .3s ease; }
.emn-fade.emn-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .emn-fade { opacity: 1 !important; transform: none !important; transition: none !important; } html { scroll-behavior: auto; } }
/* Tap-target fixes */
.wp-lightbox-container button.lightbox-trigger { width: 48px !important; height: 48px !important; min-width: 48px; min-height: 48px; opacity: 1; }
.emn-form-pending a, .emn-copy a { display: inline-block; padding: 12px 0; }
.emn-mobilebar .wp-block-button__link { white-space: nowrap; font-size: 1rem; }
.emn-header { box-shadow: 0 1px 0 #DCE6E6; }
.emn-nav .wp-block-navigation-item__content { color: #204B51; }
.emn-nav .is-menu-open .wp-block-navigation-item__content { color: #fff; }
.emn-nav .wp-block-navigation__responsive-container-open { color: #204B51; }
.emn-lead, .emn-section .wp-block-quote.emn-bigquote, .emn-section > .wp-block-paragraph { margin-left: 0 !important; }
.emn-section > p:not(.emn-center p), .emn-section > .emn-lead { max-width: 42rem; margin-left: 0 !important; }
.emn-center > *, .emn-center .emn-quote { margin-left: auto !important; margin-right: auto !important; }
.emn-header-inner .emn-nav { flex: 1 1 auto; }

/* QA: orange only on dark teal; tap targets >= 48px */
.has-secondary-background-color :focus-visible, .has-primary-background-color :focus-visible, .emn-footer :focus-visible, .emn-mobilebar :focus-visible { outline-color: #ECA440; }
.emn-copy a.emn-syranth, .emn-copy a { display: inline-flex; align-items: center; justify-content: center; min-width: 48px; min-height: 48px; padding: 0 4px; }
.emn-logo a { min-width: 48px; min-height: 48px; display: inline-flex; align-items: center; }

/* Ce que nous croyons */
.emn-faith-ctl { display: flex; flex-wrap: wrap; gap: .75rem; }
.emn-faith-btn { min-height: 48px; min-width: 48px; padding: 0 1.1rem; border: 2px solid #204B51; border-radius: 8px; background: #fff; color: #204B51; font: inherit; font-weight: 600; cursor: pointer; }
.emn-faith-btn:hover { background: #E6EFEF; }
.emn-faith-num { counter-reset: emnfoi; }
.emn-faith-num .wp-block-details { counter-increment: emnfoi; }
.emn-faith-num .wp-block-details summary { min-height: 56px; color: #204B51; font-family: var(--wp--preset--font-family--heading); }
.emn-faith-num .wp-block-details summary::before { content: counter(emnfoi, decimal-leading-zero); flex: 0 0 auto; font-family: "Source Serif 4", Georgia, serif; font-weight: 600; color: #204B51; border-top: 2px solid #ECA440; padding-top: .2rem; margin-right: .25rem; }
.emn-faith-num .wp-block-details summary { justify-content: flex-start; }
.emn-faith-num .wp-block-details summary::after { margin-left: auto; }
.emn-faith-num .wp-block-details p { font-size: 18px !important; line-height: 1.7; }
.emn-ref, .emn-faith cite { color: #5A6A6D; font-style: normal; }

/* ---------- Language switcher "FR | EN" (Polylang) ---------- */
.emn-lang { display: inline-flex; align-items: center; flex: 0 0 auto; margin-left: auto; font-weight: 400; font-size: 1rem; line-height: 1; }
.emn-lang-link { display: inline-flex; align-items: center; justify-content: center; min-width: 48px; min-height: 48px; padding: 0 .25rem; color: #5A6A6D; text-decoration: none; letter-spacing: .02em; }
.emn-lang-link:hover { color: #204B51; text-decoration: underline; }
.emn-lang-link.is-current { color: #204B51; font-weight: 600; }
.emn-lang-sep { color: #5A6A6D; padding: 0 .1rem; }
/* Mobile: switcher sits just before the menu button. Desktop: far top right, after the CTA. */
.emn-header-inner .emn-lang { order: 2; }
.emn-header-inner .emn-nav { order: 3; }
.emn-header-inner .emn-header-cta { order: 4; }
@media (min-width: 600px) { .emn-header-inner .emn-lang { order: 5; margin-left: .25rem; } }
/* Fixed widths so FR/EN labels don't shift the layout. */
.emn-header-cta .wp-block-button__link { min-width: 12.5rem; justify-content: center; text-align: center; }
.emn-lang { width: calc(96px + 1.2rem); justify-content: flex-end; }
