/* CSS for TE Patterns layouts. Lives in the plugin (not the theme) so imported pages keep their look if the theme changes. */
/* Home slider (MetaSlider) beside the welcome text: 3:2, rounded. */
.te-home-slider .metaslider{border-radius:12px;overflow:hidden}
.te-home-slider .metaslider .slides img{aspect-ratio:3/2;width:100%;height:auto!important;object-fit:cover}
/* Who's Who: people cards. */
.te-person-photo{max-width:180px;margin-left:auto!important;margin-right:auto!important;margin-bottom:var(--wp--preset--spacing--30)!important}
.te-person-photo img{width:180px;height:180px}
.te-person-role{margin-top:.25rem!important;color:var(--wp--preset--color--accent-4);font-family:var(--wp--preset--font-family--montserrat);font-weight:700;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}
.te-person-more summary{cursor:pointer;font-family:var(--wp--preset--font-family--montserrat);font-weight:600;font-size:.85rem}
.te-person-more{font-size:.95rem}
.te-person-link a{font-family:var(--wp--preset--font-family--montserrat);font-weight:700;font-size:.9rem;text-decoration:none}
.te-plain-list{list-style:none;padding-left:0}
.te-plain-list li{padding:.35rem 0;border-bottom:1px solid #e6e1d6}
.te-eyebrow-h{font-size:.85rem!important;letter-spacing:.1em;text-transform:uppercase;color:var(--wp--preset--color--accent-4)}
.te-person-photo.is-large{max-width:280px}
.te-person-photo.is-large img{width:280px;height:280px}
.te-simple-list{list-style:none;padding-left:0}
.te-simple-list li{padding:.15rem 0}
.te-group-label{margin-bottom:var(--wp--preset--spacing--40)!important}
h3.te-group-label{margin-top:var(--wp--preset--spacing--50)!important;color:#8a8378}
.te-name-card>.wp-block-group{height:100%;border:1px solid #e6e1d6;border-radius:14px}
.te-name-card h3{font-size:1.15rem}
.te-person .te-person-more>summary{text-align:center}
/* About page: photo tiles, values, mission band, timeline */
.te-rounded img{border-radius:16px}
.te-tile{height:100%;border-radius:16px;overflow:hidden;border:1px solid #e6e1d6}
.te-tile .wp-block-image{margin:0!important}
.te-tile-body{padding:var(--wp--preset--spacing--30) var(--wp--preset--spacing--40) var(--wp--preset--spacing--40)}
.te-tile-body h3{margin-top:0;font-size:1.25rem}
.te-tile-body h3 a{text-decoration:none}
.te-tile-body p{margin-top:.4rem;font-size:.95rem}
.te-value h3{font-size:1.15rem;color:var(--wp--preset--color--accent-4)}
.te-value p{font-size:.95rem}
.te-mission .te-eyebrow-h{color:var(--wp--preset--color--accent-1)!important}
.te-mission-text{font-size:clamp(1.15rem,2.2vw,1.45rem);line-height:1.6}
.te-mission .wp-block-button__link{background:var(--wp--preset--color--base);color:var(--wp--preset--color--accent-4)}
.te-milestone{border-top:3px solid var(--wp--preset--color--accent-1);padding-top:var(--wp--preset--spacing--20)}
.te-milestone p{font-size:.95rem}
.te-year{margin:0!important;font-family:var(--wp--preset--font-family--montserrat);font-weight:700;font-size:1.6rem!important;color:var(--wp--preset--color--accent-4)}
p.te-eyebrow-h{margin-bottom:0!important;font-family:var(--wp--preset--font-family--montserrat);font-weight:700}
/* Worship page */
.te-upcoming .te-eyebrow-h,.te-live-card .te-eyebrow-h{text-align:left!important}
.te-live-card{border-radius:16px;height:100%}
.te-live-card h3{margin-top:.25rem}
/* Section landing pages: logo images shown whole, anchored sections clear the header */
.te-contain img{object-fit:contain!important;background:#fff}
[id]{scroll-margin-top:1rem}
.te-writing.wp-block-column .te-eyebrow-h{text-align:left!important}
/* Contact page: cards, the form and who-to-email */
.te-card{border-radius:16px;border:1px solid #e6e1d6;padding:var(--wp--preset--spacing--40);height:100%}
.te-card h2{margin-top:0;font-size:1.6rem}
.te-card h3{margin:.2rem 0 .3rem;font-size:1.05rem}
.te-muted{color:#6b665e;margin-top:.2rem!important}
.te-email-card{text-align:center}
.te-email-card .te-person-role{margin:0!important}
.te-email-card p{margin:0;font-size:.95rem;word-break:break-word}
.wpcf7-form{display:grid;gap:1rem}
.wpcf7-form p{margin:0}
.wpcf7-form label{display:block;font-family:var(--wp--preset--font-family--montserrat);font-weight:600;font-size:.85rem;color:var(--wp--preset--color--contrast)}
.wpcf7-form input[type=text],.wpcf7-form input[type=email],.wpcf7-form input[type=tel],.wpcf7-form textarea{box-sizing:border-box;display:block;width:100%;max-width:100%;margin-top:.4rem;padding:.75em .95em;border:1px solid #d8d2c6;border-radius:10px;background:#fff;font:inherit;font-family:var(--wp--preset--font-family--merriweather);font-size:1rem;color:var(--wp--preset--color--contrast);transition:border-color .15s,box-shadow .15s}
.wpcf7-form textarea{height:150px;min-height:110px;resize:vertical}
.wpcf7-form input:focus,.wpcf7-form textarea:focus{outline:none;border-color:var(--wp--preset--color--accent-4);box-shadow:0 0 0 3px rgba(132,190,68,.25)}
.wpcf7-form .wpcf7-submit{justify-self:end;cursor:pointer;border:0;border-radius:999px;padding:.85em 1.9em;background:var(--wp--preset--color--contrast);color:var(--wp--preset--color--base);font-family:var(--wp--preset--font-family--montserrat);font-weight:700;font-size:.85rem;letter-spacing:.06em;text-transform:uppercase}
.wpcf7-form p:has(> .wpcf7-submit),.wpcf7-form p:has(.wpcf7-submit){display:flex;flex-direction:row-reverse;align-items:center;gap:.75rem;text-align:right}
.wpcf7-form .wpcf7-submit:hover,.wpcf7-form .wpcf7-submit:focus-visible{background:var(--wp--preset--color--accent-4)}
.wpcf7-form .wpcf7-not-valid-tip{font-size:.8rem;margin-top:.3rem}
.wpcf7 form .wpcf7-response-output{margin:0;border:0;border-radius:12px;padding:.85em 1.1em;font-size:.95rem}
.wpcf7 form.invalid .wpcf7-response-output,.wpcf7 form.unaccepted .wpcf7-response-output,.wpcf7 form.payment-required .wpcf7-response-output{background:#fff4e5;color:#7a4b00}
.wpcf7 form.failed .wpcf7-response-output,.wpcf7 form.aborted .wpcf7-response-output,.wpcf7 form.spam .wpcf7-response-output{background:#fdecea;color:#8a1c1c}
/* Sending → sent: the fields step aside for a "Sending…" panel that becomes the thank-you (no flash of the emptied form,
   and it never ends up below the fold). If something needs fixing, the fields come back with the message. */
.wpcf7 form.submitting > :not(.wpcf7-response-output),.wpcf7 form.sent > :not(.wpcf7-response-output){display:none!important}
.wpcf7 form.submitting .wpcf7-response-output{display:block!important;font-size:0;text-align:center;background:var(--wp--preset--color--accent-2,#f1f7e6);padding:2.25rem 1.5rem}
.wpcf7 form.submitting .wpcf7-response-output::before{content:"Sending your message…";font-size:1.05rem;color:var(--wp--preset--color--contrast,#1a1a1a)}
.wpcf7 form.sent .wpcf7-response-output{display:block;text-align:center;background:var(--wp--preset--color--accent-2,#f1f7e6);color:var(--wp--preset--color--contrast,#1a1a1a);padding:2.25rem 1.5rem;font-size:1.1rem;line-height:1.5}
.wpcf7 form.sent .wpcf7-response-output::before{content:"✓";display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;margin:0 auto .9rem;border-radius:50%;background:var(--wp--preset--color--accent-1,#84be44);color:#fff;font-size:1.6rem;font-weight:700}
.wpcf7-spinner{display:none!important} /* Send itself shows "Sending…" */
.wpcf7-form .wpcf7-submit:disabled{opacity:.65;cursor:progress}
.wpcf7-form select{box-sizing:border-box;display:block;width:100%;margin-top:.4rem;padding:.75em .95em;border:1px solid #d8d2c6;border-radius:10px;background:#fff;font:inherit;font-family:var(--wp--preset--font-family--merriweather);font-size:1rem;color:var(--wp--preset--color--contrast);appearance:none;-webkit-appearance:none;padding-right:2.6em;background:#fff url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2714%27 height=%278%27 viewBox=%270 0 14 8%27%3E%3Cpath d=%27M1 1l6 6 6-6%27 fill=%27none%27 stroke=%27%23222%27 stroke-width=%272%27/%3E%3C/svg%3E") no-repeat right 1.1em center}
.wpcf7-form select:focus{outline:none;border-color:var(--wp--preset--color--accent-4);box-shadow:0 0 0 3px rgba(132,190,68,.25)}
/* Room under a rounded photo, and between a row of columns and the next row. */
.te-rounded{margin-bottom:1.75rem}
.wp-block-columns.alignwide + .wp-block-columns.alignwide{margin-top:2.5rem}
/* Legal terms: a real numbered list; each numbered item holds its heading and text. */
ol.te-terms{padding-left:1.6em;margin:1.5rem 0}
ol.te-terms>li{margin:0 0 1.5rem;padding-left:.3em}
ol.te-terms>li::marker{font-family:var(--wp--preset--font-family--montserrat);font-weight:700;color:var(--wp--preset--color--accent-4)}
ol.te-terms>li>h3{display:inline;font-size:1.25rem;margin:0}
ol.te-terms>li>h3+p{margin-top:.6rem}
/* Room between a centered heading / intro line and the columns under it. */
.has-text-align-center + .wp-block-columns.alignwide{margin-top:2.25rem}
/* Large pull quote on a colored band. */
.te-pullquote{margin:0 auto;max-width:820px;text-align:center;border:0;padding:0}
.te-pullquote p{font-family:var(--wp--preset--font-family--montserrat);font-size:clamp(1.4rem,3vw,2rem);line-height:1.35;font-weight:700;color:#fff}

/* focal point for cropped photos (set by class so the image block stays valid) */
.te-pos-45-60 img{object-position:45% 60%}
.te-pos-50-20 img{object-position:50% 20%}
.te-pos-50-25 img{object-position:50% 25%}
.te-pos-50-30 img{object-position:50% 30%}
.te-pos-50-35 img{object-position:50% 35%}
.te-pos-50-40 img{object-position:50% 40%}

/* Our People: denser */
.te-person-feature .wp-block-column p{margin-block:.5rem}
.te-writing{margin-top:1.25rem}
.te-writing .te-feed{gap:.6rem}
.te-writing .te-feed-body{gap:.15rem;padding:.7rem .95rem .8rem}
.te-writing .te-feed-title{font-size:.95rem;margin:.1rem 0}
.te-writing .te-feed-excerpt{margin:.2rem 0;font-size:.85rem}
.te-writing .te-person-link{margin-top:.6rem}
.te-person .wp-block-details{margin-block:.5rem}

/* Our People: section labels read as headings, "more" links stay small and clearly apart */
h2.te-group-label{font-size:1.2rem!important;letter-spacing:.14em;margin-top:var(--wp--preset--spacing--40)!important;margin-bottom:var(--wp--preset--spacing--50)!important}
.te-writing .te-person-link{margin-top:.9rem;margin-bottom:var(--wp--preset--spacing--40)}
.te-writing .te-person-link a{font-size:.85rem}

/* Worship: hearing system, app buttons sit to the right on wide screens */
.te-hearing-apps .wp-block-buttons{justify-content:flex-end}
@media (min-width:782px){.te-hearing-apps{flex-basis:30%!important;flex-grow:0!important}}
@media (max-width:781px){.te-hearing-apps .wp-block-buttons{justify-content:flex-start}}

/* Forms on phones: the Turnstile check is 300px wide and used to push the whole form past the card's right edge (uneven side padding). */
.wpcf7-form{grid-template-columns:minmax(0,1fr)}
.wpcf7-turnstile{max-width:100%}
/* Wider screens: the Turnstile check on the left, Send on the right, on one row */
@media (min-width:601px){
 .wpcf7-form{grid-template-columns:minmax(0,1fr) auto}
 .wpcf7-form > *{grid-column:1/-1}
 .wpcf7-form > .wpcf7-turnstile{grid-column:1;align-self:center}
 .wpcf7-form > p:has(.wpcf7-submit){grid-column:2;align-self:center}
}
@media (max-width:600px){
 .te-form-card{padding-left:1.1rem!important;padding-right:1.1rem!important}
}
@media (max-width:370px){
 .wpcf7-turnstile{transform:scale(.85);transform-origin:0 0;height:56px}
}

/* "Already a member?" strip on phones: left-aligned, both buttons on one line, a little smaller */
@media (max-width:781px){
 .te-member-buttons{justify-content:flex-start!important;flex-wrap:nowrap!important;gap:.5rem!important;margin-top:.75rem}
 .te-member-buttons .wp-block-button__link{font-size:.72rem!important;padding:.65em 1.05em!important;white-space:nowrap}
}

/* Key contacts: a row of small white cards (role, name, phone, Contact button or email) */
.te-keycontacts{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;max-width:1100px;margin:0 auto}
.te-kc-row{flex:0 1 280px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.3rem;background:#fff;border-radius:16px;padding:1.3rem 1rem;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.te-kc-role{font-family:var(--wp--preset--font-family--montserrat);font-weight:700;font-size:.74rem;letter-spacing:.07em;text-transform:uppercase;color:var(--wp--preset--color--accent-4)}
.te-kc-name{font-size:1.08rem}
.te-kc-name small{opacity:.75}
.te-kc-act{margin-top:auto}

/* Home hero: the live-stream button only exists while streaming, and glows (te-livestream plugin) */
.te-live-hero{margin-top:1.1rem}
.te-live-hero:not(:has(.is-live)){display:none!important}
.te-live-hero .te-live{font-size:1rem;padding:.8em 1.6em}

/* Leave a Legacy: breathing room between the intro, the two columns and the stories */
#legacy > .wp-block-columns:first-of-type{margin-top:2.2rem}
#legacy > h3.has-text-align-center{margin:3.5rem 0 1.8rem}
#legacy .wp-block-list{margin-top:.2rem}

/* Membership & Giving: more room under the Join section, and between its photo row and the three value columns */
#membership{padding-bottom:clamp(4rem,8vw,6.5rem)!important}
#membership > .wp-block-columns:last-child{margin-top:2.75rem}

/* Directions (Google Maps / Apple Maps / Waze): label on its own line, buttons look like the Contact button */
.te-directions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}
.te-directions-label{flex-basis:100%;font-family:var(--wp--preset--font-family--montserrat);font-weight:700;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--wp--preset--color--accent-4)}
.te-directions .wp-block-button__link{display:inline-flex;align-items:center;gap:.4em;padding:.45em 1em!important;border-radius:999px;border:1.5px solid var(--wp--preset--color--accent-4)!important;background:transparent!important;color:var(--wp--preset--color--accent-4)!important;font-family:var(--wp--preset--font-family--montserrat);font-weight:600;font-size:.8rem!important;line-height:1.2;letter-spacing:0;text-transform:none;text-decoration:none}
.te-directions .wp-block-button__link::after{content:"↗";font-size:.95em;line-height:1;opacity:.75}
.te-directions .wp-block-button__link:hover,.te-directions .wp-block-button__link:focus-visible{background:var(--wp--preset--color--accent-4)!important;color:#fff!important}
