/* ==========================================================================
   Triple Effort — section + card components (native-block markup, v0.3.0)
   Values from the GHL build map §1–§2; every colour is a preset var; the
   class vocabulary is the build map's te-*. theme.json owns type, colour
   and spacing presets — this file only shapes what blocks can't.
   ========================================================================== */

/* --- Shell -------------------------------------------------------------- */
/* The 1280px column: side padding grows past 24px so the content box IS the
   column, centred; children then left-align inside it (justifyContent left). */
:root { --te-gutter: max(24px, calc((100% - 1280px) / 2)); }
.te-section { position: relative; padding-left: var(--te-gutter) !important; padding-right: var(--te-gutter) !important; }
/* Every section is left-aligned by design. Constrained layouts centre any
   child with a max-width; force left here so it holds even for templates
   saved before v0.3.2 (the Site Editor keeps its own copy of the markup). */
.te-section.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.te-hero .wp-block-cover__inner-container > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.te-closer .wp-block-cover__inner-container > :where(:not(.alignleft):not(.alignright):not(.alignfull)) { margin-left: 0 !important; margin-right: auto !important; }
.te-on-dark  { color: var(--wp--preset--color--paper); }
.te-on-light { color: var(--wp--preset--color--ink); }
@media (min-width: 768px) { .te-only-mobile  { display: none !important; } }
@media (max-width: 767px) { .te-only-desktop { display: none !important; } }

/* Photo wells: the brand-kit grade as a safety net (bake it into exports). */
.te-ph { margin: 0; background: var(--wp--preset--color--ink-2); overflow: hidden; }
.te-ph img { width: 100%; height: auto; display: block; filter: contrast(1.06) saturate(1.08); }
.te-ph img[src$=".svg"] { filter: none; }              /* placeholder art */

/* --- Header (Group › Image · Navigation · Buttons) ---------------------- */
.te-site-header { position: relative; z-index: 20; height: var(--te-header-height); padding: 16px 40px; }
.te-site-header > .te-site-header__inner { height: 100%; }
.te-header-overlay .te-site-header { position: absolute; top: 0; left: 0; right: 0; background: linear-gradient(rgba(11,11,15,.85), rgba(11,11,15,0)) !important; }
.te-site-header__logo { margin: 0; line-height: 0; }
.te-site-header__logo img { height: 36px; width: auto; }
.te-site-header__nav .wp-block-navigation-item__content { font-family: var(--wp--preset--font-family--ibm-plex-mono); font-size: var(--wp--preset--font-size--label); font-weight: 400; letter-spacing: 3px; text-transform: uppercase; color: var(--wp--preset--color--paper); text-decoration: none; position: relative; padding: 4px 0; }
.te-site-header__nav .wp-block-navigation-item__content::after { content: ""; position: absolute; left: 0; bottom: 0; height: 1px; width: 100%; background: var(--wp--preset--color--pink); transform: scaleX(0); transform-origin: right; transition: transform .35s cubic-bezier(.65,0,.35,1); }
.te-site-header__nav .wp-block-navigation-item__content:hover::after { transform: scaleX(1); transform-origin: left; }
.te-site-header__cta { margin: 0; }
@media (max-width: 1199px) { .te-site-header { padding: 12px 32px; } .te-site-header__logo img { height: 32px; } .te-site-header__right { gap: 24px; } }
@media (max-width: 767px)  { .te-site-header { padding: 8px 24px; } .te-site-header__logo img { height: 28px; } .te-site-header__nav { display: none; } }

/* --- HERO (Cover, video) ------------------------------------------------ */
/* Cover blocks write min-height inline, so the responsive heights below need
   !important to win. */
.te-hero.wp-block-cover { min-height: 760px; height: 100vh; padding: 140px var(--te-gutter) 88px; }
/* Inner container stretches to the full hero height (flex column, content at
   the bottom) so the absolutely positioned ghost word anchors to the hero's
   top edge, not to the text stack. */
.te-hero .wp-block-cover__inner-container { position: relative; align-self: stretch; display: flex; flex-direction: column; justify-content: flex-end; }
.te-hero__ghost { position: absolute; top: -.28em; left: -.06em; z-index: 0; margin: 0; font-size: clamp(300px, 38vw, 560px); line-height: 1; pointer-events: none; -webkit-text-stroke-color: rgba(244,242,238,.34); }
.te-hero__word { position: relative; margin: 0 0 8px -.045em; line-height: .85; letter-spacing: 2px; }
.te-hero__h1 { position: relative; margin: 0 0 32px; line-height: .95; letter-spacing: 1px; }
.te-hero__cta { position: relative; margin: 0; }
.te-hero .has-pink-color { color: var(--wp--preset--color--pink) !important; }
@media (max-width: 1199px) { .te-hero.wp-block-cover { min-height: 680px !important; padding-bottom: 80px; } .te-hero__word { letter-spacing: 1px; } .te-hero__h1 { letter-spacing: 0; margin-bottom: 24px; } }
@media (max-width: 767px)  { .te-hero.wp-block-cover { min-height: 560px !important; height: auto; padding: 140px var(--te-gutter) 64px; } .te-hero__word { letter-spacing: 0; } .te-hero__ghost { font-size: 40vw; } }

/* --- MARQUEE ------------------------------------------------------------ */
.te-marquee { overflow: hidden; position: relative; z-index: 2; }
.te-marquee-track { margin: 0; line-height: 1.1; letter-spacing: .01em; }
/* “Believe You’re Next” outlined, as in the prototype (the italic mark carries it) */
.te-marquee-track em { font-style: normal; color: transparent; -webkit-text-stroke: 1.4px var(--wp--preset--color--ink); paint-order: stroke fill; }
@supports not (-webkit-text-stroke: 1px #000) { .te-marquee-track em { color: var(--wp--preset--color--ink); opacity: .55; } }

/* --- Section headings --------------------------------------------------- */
.te-story__h2, .te-players__h2, .te-quotes__h2, .te-programs__h2, .te-ig__h2 { line-height: 1; max-width: 18ch; margin: 0; }
.te-story__h2, .te-ig__h2 { max-width: 100%; }   /* one line at desktop, as in the prototype */
.te-team__h2 { line-height: 1.1; max-width: 100%; margin: 0; }   /* one line by default; wraps only when the screen forces it */
/* The highlight is an inline-block with line-height 1, so its pink box is
   exactly one line tall. A plain inline <mark> paints the font's whole
   content area, which at line-height 1 spills onto the neighbouring lines. */
.te-story__h2 mark { display: inline-block; line-height: 1; padding: .02em .14em .06em; white-space: nowrap; vertical-align: baseline; }

/* --- STORY (Columns) ---------------------------------------------------- */
.te-story__lede { line-height: 1.6; color: #4A4A52; max-width: 56ch; margin: 0; }
.te-why-card { position: relative; }
.te-why-card__num { position: absolute; top: -28px; right: 4px; z-index: 3; margin: 0; font-size: 84px; line-height: 1; pointer-events: none; }
.te-why-card__media { position: relative; box-shadow: 0 20px 44px rgba(11,11,15,.22); }
.te-why-card:nth-child(1) .te-why-card__media { transform: rotate(-1.3deg); }
.te-why-card:nth-child(3) .te-why-card__media { transform: rotate(1.2deg); }
.te-why-card__photo { aspect-ratio: 1 / 1; margin: 0; overflow: hidden; background: transparent; }
/* Fill the square no matter what ratio/size the editor stored on the img
   (a letterboxed image showed the dark well as a black frame). */
.te-why-card__photo img { width: 100% !important; height: 100% !important; max-width: none; aspect-ratio: auto !important; object-fit: cover !important; object-position: center top; }
.te-why-card__strip { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; margin: 0 !important; line-height: 1.25; font-size: clamp(0.875rem, 1.3vw, 1.125rem); }
.te-why-card__strip mark { padding: 0 6px; }
.te-why-card__name { margin: 16px 0 0; }
.te-why-card__more { margin: 0; letter-spacing: 2px; text-transform: uppercase; font-size: var(--wp--preset--font-size--label); }
.te-why-card__more a { text-decoration: none; border-bottom: 2px solid var(--wp--preset--color--pink); padding-bottom: 3px; color: var(--wp--preset--color--ink); }
.te-why-card__more a:hover { border-color: var(--wp--preset--color--ink); }

/* --- MISSION ------------------------------------------------------------ */
.te-mission__eyebrow { margin: 0; }
.te-mission__statement { line-height: 1.22; max-width: 22ch; margin: 0; }
.te-mission__photos { margin: 0; }
.te-mission__photos img { filter: none; }

/* --- Query Loop grids ----------------------------------------------------
   The Site Editor keeps its own copy of a saved template and can drop the
   Post Template's grid layout (seen 2026-09-17: cards rendered one-up at
   full width). The grid is therefore forced here on the class names, which
   the editor does keep. Column counts per the build map: team 5/3/1,
   players 3/2/1, testimonials 3/1/1. */
.te-team__grid, .te-players__grid, .te-quotes__grid { display: grid !important; padding: 0; margin: 0; list-style: none; }
.te-team__grid    { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; gap: 24px !important; }
/* Players We Train is a snap-scroll carousel: 5 up on desktop, 3 on tablet,
   1 + a peek on phones. Arrows come from te-carousel.js. */
.te-players__grid { display: flex !important; grid-template-columns: none !important; gap: 26px !important; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; -ms-overflow-style: none; padding: 6px 2px 14px !important; }
.te-players__grid::-webkit-scrollbar { display: none; }
.te-players__grid > li { flex: 0 0 calc((100% - 4 * 26px) / 5); scroll-snap-align: start; }
.te-players__query { width: 100%; max-width: none !important; }
.te-quotes__grid  { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 32px !important; }
.te-team__grid > li, .te-players__grid > li, .te-quotes__grid > li { margin: 0; min-width: 0; }
@media (max-width: 1199px) {
  .te-team__grid    { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .te-players__grid > li { flex-basis: calc((100% - 2 * 26px) / 3); }
  .te-quotes__grid  { grid-template-columns: minmax(0, 1fr) !important; }
}
@media (max-width: 767px) {
  .te-team__grid    { grid-template-columns: minmax(0, 1fr) !important; gap: 32px !important; }
  .te-players__grid > li { flex-basis: 78%; }
}

/* --- OUR TEAM (Query Loop, grid) ---------------------------------------- */
.te-team__eyebrow { margin: 0 0 4px; }
.te-team__query { margin-top: 40px !important; }   /* heading → cards gap per the template */
.te-coach-card__photo { aspect-ratio: 1 / 1; }
.te-coach-card__photo img { width: 100%; height: 100%; object-fit: cover; }
.te-coach-card__photo { margin: 0 !important; }
.te-coach-card__name { font-size: 1.3125rem; line-height: 1.1; margin: 24px 0 0 !important; }
.te-coach-card__creds { white-space: pre-line; margin: 16px 0 0 !important; font-size: 12px; letter-spacing: 1px; text-transform: none; color: #A8A8B0; line-height: 1.85; }
@media (max-width: 767px) { .te-coach-card__name { font-size: 1.25rem; } }

/* --- PLAYERS — carousel arrows at the row's edges (te-carousel.js) -------- */
.te-carousel { position: relative; }
.te-carousel__btn { position: absolute; top: 50%; transform: translateY(-50%); z-index: 5; width: 54px; height: 54px; border-radius: 50%; border: 0; background: var(--wp--preset--color--ink); color: var(--wp--preset--color--pink); font: 700 22px/1 var(--wp--preset--font-family--space-grotesk); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 10px 28px rgba(11,11,15,.4); transition: background .25s, color .25s, transform .2s; }
.te-carousel__btn--prev { left: -27px; }
.te-carousel__btn--next { right: -27px; }
.te-carousel__btn:hover { background: var(--wp--preset--color--pink); color: var(--wp--preset--color--ink); transform: translateY(-50%) scale(1.08); }
.te-carousel__btn:focus-visible { outline: 2px solid var(--wp--preset--color--ink); outline-offset: 3px; }
.te-carousel__btn:disabled { opacity: .3; cursor: default; transform: translateY(-50%); }
.te-carousel--static .te-carousel__btn { display: none; }
.te-players__grid:focus-visible { outline: 2px solid var(--wp--preset--color--ink); outline-offset: 6px; }
@media (max-width: 1360px) { .te-carousel__btn--prev { left: -8px; } .te-carousel__btn--next { right: -8px; } }
@media (max-width: 767px)  { .te-carousel__btn { width: 44px; height: 44px; font-size: 18px; } }
@media (prefers-reduced-motion: reduce) { .te-carousel__btn { transition: none; } .te-players__grid { scroll-behavior: auto; } }

/* Players page (and anywhere but the home page): a plain 3-up grid. */
body:not(.home) .te-players__grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 32px !important; overflow: visible; padding: 0 !important; }
body:not(.home) .te-players__grid > li { flex: none; }
@media (max-width: 1199px) { body:not(.home) .te-players__grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 767px)  { body:not(.home) .te-players__grid { grid-template-columns: minmax(0, 1fr) !important; } }

/* --- PLAYERS — commit-announcement card (prototype's layered template) --- */
.te-commit-card { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: #101014; color: var(--wp--preset--color--paper); box-shadow: var(--wp--preset--shadow--card); container-type: inline-size; }
.te-players__grid > li > .te-commit-card { height: 100%; }
.te-commit-card__photo { position: absolute; inset: 0; margin: 0; z-index: 0; }
.te-commit-card__photo img { width: 100%; height: 100%; object-fit: cover; filter: contrast(1.1) saturate(1.02); }
.te-commit-card__photo:empty { background: repeating-linear-gradient(-45deg, #1A1A20 0 16px, #14141A 16px 32px); }
/* pink wash rising from the top, behind the word */
.te-commit-card::before { content: ""; position: absolute; inset: 0 0 auto; height: 26%; z-index: 1; pointer-events: none; background: linear-gradient(180deg, rgba(245,168,200,.92) 0%, rgba(245,168,200,.6) 55%, rgba(245,168,200,0) 100%); }
/* grade for legibility (no halftone — Nina 2026-09-17) */
.te-commit-card::after { content: ""; position: absolute; inset: 0; z-index: 3; pointer-events: none;
  background: linear-gradient(180deg, rgba(11,11,15,.16) 0%, rgba(11,11,15,0) 34%, rgba(59,17,38,.34) 62%, rgba(11,11,15,.93) 90%); }
/* COMMITTED: flush to the top, edge to edge. Sized in container-width units
   so it fills the card at any size (Anton "COMMITTED" ≈ 4.1em wide). */
.te-commit-card__word { position: absolute; top: -.04em; left: 0; right: 0; z-index: 2; margin: 0; text-align: center; font-size: 18.5cqw; line-height: 1; letter-spacing: .1em; text-indent: .1em; -webkit-text-stroke: .014em var(--wp--preset--color--pink); paint-order: stroke fill; white-space: nowrap; color: var(--wp--preset--color--pink); text-shadow: 0 2px 14px rgba(180,90,130,.35); }
@supports not (font-size: 1cqw) { .te-commit-card__word { font-size: clamp(56px, 7vw, 96px); } }
.te-commit-card__wm { position: absolute; left: 12px; top: 16.5%; width: 30%; z-index: 2; margin: 0; pointer-events: none; filter: drop-shadow(0 3px 10px rgba(0,0,0,.55)); }
.te-commit-card__wm img { width: 100%; height: auto; opacity: .92; filter: none; }
/* Badge = an Image block (the TE mark by default) at icon size; replace it
   in the Site Editor with any uploaded logo. */
.te-commit-card__badge { position: absolute; right: 12px; top: 32%; z-index: 4; margin: 0 !important; width: 44px; height: 44px; max-width: none; line-height: 0; overflow: visible; filter: drop-shadow(0 4px 12px rgba(0,0,0,.5)); }
.te-commit-card__badge img { width: 44px !important; height: 44px !important; max-width: none !important; object-fit: contain; object-position: center; display: block; filter: none; }
.te-commit-card__info { position: absolute; left: 16px; right: 16px; bottom: 34px; z-index: 4; }
.te-commit-card__congrats { margin: 0; font-size: var(--wp--preset--font-size--label); font-weight: 700; color: #fff; text-shadow: 0 2px 10px rgba(0,0,0,.7); }
.te-commit-card__name { margin: 0; font-size: clamp(22px, 2.1vw, 32px); line-height: .96; color: #fff; text-shadow: 0 3px 20px rgba(0,0,0,.65); }
.te-commit-card__for { margin: 0; font-size: .78rem; line-height: 1.5; font-weight: 600; color: #F2F2F5; text-shadow: 0 2px 10px rgba(0,0,0,.7); }
.te-commit-card__for b { color: var(--wp--preset--color--pink); }
.te-commit-card__for:empty { display: none; }
/* Footer strip scales with the card so the whole line fits at any width. */
.te-commit-card__foot { position: absolute; left: 0; right: 0; bottom: 0; z-index: 4; margin: 0 !important; display: flex; align-items: center; gap: 2cqw; padding: 1.6cqw 3cqw; background: var(--wp--preset--color--pink); color: var(--wp--preset--color--ink); font-size: clamp(6px, 2.35cqw, 9px); letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; overflow: hidden; }
.te-commit-card__foot img { height: 3.2cqw; max-height: 12px; width: auto; flex-shrink: 0; }
.te-commit-card__foot strong { font-weight: 700; }
.te-players__academy p { margin: 0; color: rgba(11,11,15,.75); }
.te-players__academy-link { letter-spacing: 3px; text-transform: uppercase; font-size: .8125rem; }
.te-players__academy-link a { text-decoration: none; border-bottom: 1px solid var(--wp--preset--color--ink); padding-bottom: 3px; color: var(--wp--preset--color--ink); }

/* --- PHOTO BAND (Cover) ------------------------------------------------- */
/* Parallax room: the photo is taller than its frame and te-parallax.js
   slides it on scroll. Without the script (or with reduced motion) the
   overflow is simply cropped. */
.te-band .wp-block-cover__image-background.te-plx,
.te-closer .wp-block-cover__image-background.te-plx { top: -12%; height: 124%; will-change: transform; }
.te-band.wp-block-cover { height: 640px; min-height: 640px; padding: 0; }
.te-band .wp-block-cover__inner-container { width: 100%; }
.te-band__line { margin: 0; line-height: 1.02; letter-spacing: 1px; }
.te-band__line--solid { padding-left: 80px; }
.te-band__line--outline { padding-left: 230px; }
@media (max-width: 1199px) { .te-band.wp-block-cover { height: 560px; min-height: 560px !important; } .te-band__line--solid { padding-left: 40px; } .te-band__line--outline { padding-left: 120px; } }
@media (max-width: 767px)  { .te-band.wp-block-cover { height: 464px; min-height: 464px !important; } .te-band__line { letter-spacing: 0; } .te-band__line--solid { padding-left: 20px; } .te-band__line--outline { padding-left: 56px; } }

/* --- TESTIMONIALS (Query Loop, grid) ------------------------------------ */
.te-quote-card { padding: 20px 24px 24px !important; }
.te-quote-card__mark { margin: 0 0 -8px !important; font-size: 2.5rem !important; line-height: 1 !important; }
.te-quote-card__quote { margin: 0 !important; font-size: .9375rem !important; line-height: 1.55; color: #C9C9CE; }
.te-quote-card__quote p { margin: 0 0 10px; }
.te-quote-card__quote p:last-child { margin-bottom: 0; }
/* closing mark, same pink, bottom-right */
.te-quote-card__quote::after { content: "\201D"; display: block; text-align: right; font-family: var(--wp--preset--font-family--anton); font-size: 2.5rem; line-height: .6; color: var(--wp--preset--color--pink); margin-top: 14px; }
.te-quote-card__who { margin: 12px 0 0 !important; }

/* --- PROGRAMS (Service Menu embed; card rules kept for the optional card layout) --- */
.te-programs__menu .te-embed--service-menu { background: transparent; }
.te-programs__grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 32px !important; padding: 0; margin: 0; list-style: none; }
.te-programs__grid > li { margin: 0; min-width: 0; }
.te-programs__grid > li > .te-program-card { height: 100%; }
@media (max-width: 1023px) { .te-programs__grid { grid-template-columns: minmax(0, 1fr) !important; max-width: 560px; } }
.te-program-card__photo { aspect-ratio: 16 / 10; margin: 0; }
.te-program-card__photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.te-booking__which { margin: 0 0 16px; }
body.single-program { background: var(--wp--preset--color--paper); color: var(--wp--preset--color--ink); }
.te-bare { min-height: 100vh; padding: 24px var(--te-gutter, 24px); }
.te-bare .te-embed--calendar, .te-bare .te-embed--service-menu { background: transparent; }
.te-booking__all { margin: 24px 0 0; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; font-size: var(--wp--preset--font-size--label); }
.te-booking__all a { color: var(--wp--preset--color--ink); }
.te-program-card { position: relative; overflow: hidden; box-shadow: var(--wp--preset--shadow--card); }
.te-program-card:hover .te-program-card__photo img { transform: scale(1.05); }
.te-program-card > :not(.te-program-card__photo) { margin-left: 24px; margin-right: 24px; }
.te-program-card__name { margin-top: 24px; line-height: 1.1; }
.te-program-card__price { letter-spacing: 2px; text-transform: uppercase; }
.te-program-card__go { font-weight: 700; letter-spacing: 2px; text-transform: uppercase; }
.te-program-card__go a { color: var(--wp--preset--color--paper); text-decoration: none; display: inline-block; transition: transform .3s; }
.te-program-card__go a::after { content: ""; position: absolute; inset: 0; z-index: 1; }   /* whole card clickable */
.te-program-card:hover .te-program-card__go a { transform: translateX(6px); }
@media (max-width: 767px) { .te-program-card__name { margin-top: 20px; } }

/* --- CLOSER (Cover) ----------------------------------------------------- */
.te-closer.wp-block-cover { min-height: 896px; padding: 120px var(--te-gutter); scroll-margin-top: var(--te-header-height); }
.te-closer .wp-block-cover__image-background { object-position: right center; }
.te-closer__l1, .te-closer__l2 { margin: 0; line-height: .92; letter-spacing: 2px; }
.te-closer__l1 { -webkit-text-stroke-color: rgba(244,242,238,.35); }
.te-closer__l2 { margin-bottom: 24px; }
.te-closer__sub { margin: 0; font-size: 1.03rem; line-height: 1.6; color: #C9C9CE; max-width: 38ch; }
@media (max-width: 1199px) { .te-closer.wp-block-cover { min-height: 800px !important; padding: 96px var(--te-gutter); } .te-closer__l1, .te-closer__l2 { letter-spacing: 1px; } .te-closer__sub { font-size: 1rem; } }
@media (max-width: 767px)  { .te-closer.wp-block-cover { min-height: 0 !important; padding: 88px var(--te-gutter); } }

/* --- INSTAGRAM (Columns) ------------------------------------------------ */
.te-ig__btn .wp-block-button__link { padding: 12px 22px 12px 24px; }
.te-ig__tile { aspect-ratio: 1 / 1; transition: transform .35s; }
.te-ig__tile img { width: 100%; height: 100%; object-fit: cover; }
.te-ig__tile:hover { transform: translateY(-6px); }
@media (max-width: 781px) { .te-ig__grid.wp-block-columns { flex-wrap: wrap !important; } .te-ig__grid .wp-block-column { flex-basis: calc(50% - 12px) !important; } }

/* --- Footer (Group › Columns · Navigation · Separator) ------------------ */
.te-site-footer__logo { margin: 0; line-height: 0; }
.te-site-footer__logo img { height: 44px; width: auto; }
.te-site-footer__blurb, .te-site-footer .te-site-footer__blurb.has-muted-color { line-height: 1.7; max-width: 32ch; color: #C9C9CE !important; }   /* same grey as the footer links */
.te-site-footer h4 { margin: 0; letter-spacing: 3px; }
.te-site-footer__nav .wp-block-navigation-item__content,
.te-site-footer__place { font-size: var(--wp--preset--font-size--small); line-height: 1.7; color: #C9C9CE; text-decoration: none; transition: color .25s; }
.te-site-footer__nav .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--pink); }
/* Links stack in one column under each heading, even if a saved footer lost
   the "vertical" setting. */
.te-site-footer__nav, .te-site-footer__nav .wp-block-navigation__container { display: flex !important; flex-direction: column !important; align-items: flex-start !important; gap: 16px !important; }
.te-site-footer__nav .wp-block-navigation-item { width: auto; }
/* Instagram as the icon (Social Icons block), pink, no circle. */
.te-site-footer__social { margin: 0 0 4px; }
.te-site-footer__social .wp-block-social-link { background: transparent; }
.te-site-footer__social .wp-social-link a { color: var(--wp--preset--color--pink); padding: 0; }
.te-site-footer__social .wp-social-link svg { width: 28px; height: 28px; }
.te-site-footer__social .wp-social-link a:hover { color: var(--wp--preset--color--paper); transform: none; }
.te-site-footer__base p { letter-spacing: 2px; text-transform: uppercase; margin: 0; }
@media (max-width: 1199px) { .te-site-footer__grid.wp-block-columns { flex-wrap: wrap !important; } .te-site-footer__grid .wp-block-column { flex-basis: calc(50% - var(--wp--preset--spacing--60)) !important; } }
@media (max-width: 767px)  { .te-site-footer__logo img { height: 36px; } .te-site-footer__grid .wp-block-column { flex-basis: 100% !important; } }

/* --- Inner pages — Page Hero, four switchable styles --------------------- */
.te-page-hero { background: var(--wp--preset--color--ink); position: relative; }
.te-page-hero__dek { color: var(--wp--preset--color--muted); max-width: 56ch; }
.te-page-hero__photo { margin: 0; }
.te-page-hero__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.te-page-hero--default .te-page-hero__photo { display: none; }   /* title only */

/* Split half — text left, photo right, full bleed */
.te-page-hero--split { display: grid !important; grid-template-columns: 1fr 1fr; align-items: center; min-height: 62vh; padding: 0 !important; }
.te-page-hero--split > :not(.te-page-hero__photo) { grid-column: 1; margin-left: var(--te-gutter) !important; margin-right: 40px !important; max-width: 560px; }
.te-page-hero--split > .wp-block-post-title { margin-top: 96px !important; }
.te-page-hero--split > .te-page-hero__dek { margin-bottom: 96px !important; }
.te-page-hero--split .te-page-hero__photo { grid-column: 2; grid-row: 1 / span 3; align-self: stretch; height: 100%; min-height: 62vh; margin: 0 !important; max-width: none !important; }
@media (max-width: 1199px) { .te-page-hero--split { grid-template-columns: 1fr; min-height: 0; } .te-page-hero--split > :not(.te-page-hero__photo) { grid-column: 1; margin-right: var(--te-gutter) !important; } .te-page-hero--split .te-page-hero__photo { grid-column: 1; grid-row: 1; height: 52vw; min-height: 0; } .te-page-hero--split > .wp-block-post-title { margin-top: 48px !important; } .te-page-hero--split > .te-page-hero__dek { margin-bottom: 56px !important; } }

/* Photo band — title over the photo, ink scrim, bottom-left */
.te-page-hero--band { min-height: 56vh; display: flex !important; flex-direction: column; justify-content: flex-end; overflow: hidden; }
.te-page-hero--band .te-page-hero__photo { position: absolute; inset: 0; z-index: 0; margin: 0 !important; max-width: none !important; }
.te-page-hero--band .te-page-hero__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,11,15,.25) 0%, rgba(11,11,15,.75) 100%); }
.te-page-hero--band > :not(.te-page-hero__photo) { position: relative; z-index: 1; }
.te-page-hero--band .te-page-hero__dek { color: #C9C9CE; }
@media (max-width: 767px) { .te-page-hero--band { min-height: 64vw; } }

/* Offset frame — rotated, shadowed photo hanging over the next section */
.te-page-hero--frame { padding-bottom: 0 !important; }
.te-page-hero--frame .te-page-hero__photo { width: min(520px, 46%); margin: 24px 0 -96px auto !important; position: relative; z-index: 3; transform: rotate(1.4deg); box-shadow: 0 24px 54px rgba(11,11,15,.45); aspect-ratio: 4 / 3; }
.te-page-hero--frame + * { padding-top: calc(var(--wp--preset--spacing--section) + 96px) !important; }
@media (max-width: 767px) { .te-page-hero--frame .te-page-hero__photo { width: 78%; margin-bottom: -56px !important; } .te-page-hero--frame + * { padding-top: calc(var(--wp--preset--spacing--section) + 56px) !important; } }

/* Two photos — overlapping, counter-rotated pair (Mission treatment) */
.te-page-hero--pair { display: grid !important; grid-template-columns: 55fr 45fr; gap: 56px; align-items: center; }
.te-page-hero--pair > :not(.te-page-hero__photo):not(.te-page-hero__photo2) { grid-column: 1; }
.te-page-hero--pair .te-page-hero__photo { grid-column: 2; grid-row: 1 / span 3; width: 78%; aspect-ratio: 4 / 3; transform: rotate(1.6deg); box-shadow: 0 24px 54px rgba(11,11,15,.45); margin: 0 !important; max-width: none !important; }
.te-page-hero--pair .te-page-hero__photo2 { grid-column: 2; grid-row: 1 / span 3; justify-self: end; align-self: end; width: 62%; aspect-ratio: 3 / 2; margin: 0 0 -24px !important; transform: rotate(-1.4deg); border: 6px solid var(--wp--preset--color--pink); box-shadow: 0 24px 54px rgba(11,11,15,.45); z-index: 2; position: relative; }
.te-page-hero--pair .te-page-hero__photo2 img { display: block; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 1199px) { .te-page-hero--pair { grid-template-columns: 1fr; gap: 32px; } .te-page-hero--pair .te-page-hero__photo, .te-page-hero--pair .te-page-hero__photo2 { grid-column: 1; grid-row: auto; } .te-page-hero--pair .te-page-hero__photo2 { margin-top: -18% !important; } }
.te-page-content { padding: var(--wp--preset--spacing--section) 24px; }
.te-page-content:empty { display: none; }
.te-prose .te-eyebrow { color: var(--wp--preset--color--muted); }
.te-post-card { padding-bottom: 32px; border-bottom: 1px solid rgba(11,11,15,.12); }

/* ==========================================================================
   Photo panels (v0.7.0): mosaic hero, mosaic background, filmstrip
   ========================================================================== */
/* The mosaic grid itself: first photo large (2×2), the rest 1×1. */
.te-mosaic, .wp-block-gallery.te-mosaic-bg { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: minmax(0, 1fr); gap: 6px !important; margin: 0 !important; padding: 0 !important; }
.te-mosaic > figure, .wp-block-gallery.te-mosaic-bg > figure { margin: 0 !important; width: auto !important; flex: none !important; position: relative; overflow: hidden; background: var(--wp--preset--color--ink-2); }
.te-mosaic > figure img, .wp-block-gallery.te-mosaic-bg > figure img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; filter: contrast(1.06) saturate(1.08); }
.te-mosaic > figure:first-child, .wp-block-gallery.te-mosaic-bg > figure:first-child { grid-column: span 2; grid-row: span 2; }
.te-mosaic > figure img[src$=".svg"], .wp-block-gallery.te-mosaic-bg > figure img[src$=".svg"], .wp-block-gallery.te-filmstrip figure img[src$=".svg"] { filter: none; }

/* Page hero — Mosaic: title left, panel right */
.te-page-hero--mosaic { display: grid !important; grid-template-columns: 1fr 1fr; align-items: center; min-height: 62vh; padding: 0 !important; }
.te-page-hero--mosaic > :not(.te-mosaic):not(.te-page-hero__photo) { grid-column: 1; margin-left: var(--te-gutter) !important; margin-right: 40px !important; max-width: 560px; }
.te-page-hero--mosaic > .wp-block-post-title { margin-top: 96px !important; }
.te-page-hero--mosaic > .te-page-hero__dek { margin-bottom: 96px !important; }
.te-page-hero--mosaic .te-page-hero__photo { display: none; }
.te-page-hero--mosaic .te-mosaic { grid-column: 2; grid-row: 1 / span 3; align-self: stretch; height: 100%; min-height: 62vh; grid-auto-rows: 1fr; }
@media (max-width: 1199px) { .te-page-hero--mosaic { grid-template-columns: 1fr; min-height: 0; } .te-page-hero--mosaic > :not(.te-mosaic) { grid-column: 1; margin-right: var(--te-gutter) !important; } .te-page-hero--mosaic .te-mosaic { grid-column: 1; grid-row: 1; height: 60vw; min-height: 0; } .te-page-hero--mosaic > .wp-block-post-title { margin-top: 48px !important; } .te-page-hero--mosaic > .te-page-hero__dek { margin-bottom: 56px !important; } }

/* Page hero — Mosaic background: panel behind the title, ink scrim */
.te-page-hero--mosaic-bg { min-height: 56vh; display: flex !important; flex-direction: column; justify-content: flex-end; overflow: hidden; }
.te-page-hero--mosaic-bg .te-page-hero__photo { display: none; }
.te-page-hero--mosaic-bg .te-mosaic { position: absolute; inset: 0; z-index: 0; grid-auto-rows: 1fr; }
.te-page-hero--mosaic-bg .te-mosaic::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,11,15,.35) 0%, rgba(11,11,15,.8) 100%); }
.te-page-hero--mosaic-bg > :not(.te-mosaic) { position: relative; z-index: 1; }
.te-page-hero--mosaic-bg .te-page-hero__dek { color: #C9C9CE; }
@media (max-width: 767px) { .te-page-hero--mosaic-bg { min-height: 72vw; } }

/* Section backgrounds — the Gallery block with class te-mosaic-bg sits behind
   the section's content under the same scrim as the single-photo versions. */
.te-band--mosaic, .te-closer--mosaic { position: relative; overflow: hidden; }
.te-band--mosaic { height: 640px; }
.te-closer--mosaic { min-height: 896px; display: flex !important; align-items: center; }
.te-band--mosaic .te-mosaic-bg, .te-closer--mosaic .te-mosaic-bg { position: absolute; inset: 0; z-index: 0; grid-auto-rows: 1fr; }
.te-band--mosaic .te-mosaic-bg::after  { content: ""; position: absolute; inset: 0; background: rgba(11,11,15,.60); }
.te-closer--mosaic .te-mosaic-bg::after { content: ""; position: absolute; inset: 0; background: rgba(11,11,15,.70); }
.te-band--mosaic .te-band__lines { position: absolute; inset: 0; z-index: 2; display: flex; flex-direction: column; justify-content: center; }
.te-closer--mosaic .te-closer__grid { position: relative; z-index: 2; width: 100%; }
@media (max-width: 1199px) { .te-band--mosaic { height: 560px; } .te-closer--mosaic { min-height: 800px; align-items: flex-start; padding-top: 96px !important; padding-bottom: 96px !important; } }
@media (max-width: 767px)  { .te-band--mosaic { height: 464px; } .te-closer--mosaic { min-height: 0; padding-top: 88px !important; padding-bottom: 88px !important; } .te-band--mosaic .te-mosaic-bg, .te-closer--mosaic .te-mosaic-bg, .te-page-hero--mosaic-bg .te-mosaic { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* Filmstrip — one row of squares bleeding off both edges; te-parallax.js
   clones the row once and the crawl loops seamlessly. */
.te-filmstrip-section { overflow: hidden; }
.wp-block-gallery.te-filmstrip { display: flex !important; flex-wrap: nowrap !important; gap: 12px !important; width: max-content; margin: 0 !important; padding: 0 !important; will-change: transform; animation: te-filmstrip 48s linear infinite; }
.wp-block-gallery.te-filmstrip > figure { flex: 0 0 auto !important; width: clamp(160px, 18vw, 260px) !important; aspect-ratio: 1 / 1; margin: 0 !important; overflow: hidden; }
.wp-block-gallery.te-filmstrip > figure img { width: 100%; height: 100%; object-fit: cover; display: block; filter: contrast(1.06) saturate(1.08); }
@keyframes te-filmstrip { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.wp-block-gallery.te-filmstrip:not(.is-looped) { animation: none; }   /* until the JS has cloned the row */
@media (prefers-reduced-motion: reduce) { .wp-block-gallery.te-filmstrip { animation: none !important; } }

/* Page hero — Diagonal cut: photo band whose bottom edge is sliced at an
   angle by the next section's colour, with a pink rule along the cut. The
   cut colour defaults to paper; set --te-hero-cut on a page if the next
   section is ink. */
.te-page-hero--diagonal, .te-page-hero--slash { min-height: 60vh; display: flex !important; flex-direction: column; justify-content: flex-end; overflow: hidden; --te-hero-cut: var(--wp--preset--color--paper); }
.te-page-hero--diagonal .te-page-hero__photo, .te-page-hero--slash .te-page-hero__photo { position: absolute; inset: 0; z-index: 0; margin: 0 !important; max-width: none !important; }
.te-page-hero--diagonal .te-page-hero__photo::after, .te-page-hero--slash .te-page-hero__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,11,15,.2) 0%, rgba(11,11,15,.6) 100%); }
.te-page-hero--diagonal > :not(.te-page-hero__photo), .te-page-hero--slash > :not(.te-page-hero__photo) { position: relative; z-index: 2; }
.te-page-hero--diagonal .te-page-hero__dek, .te-page-hero--slash .te-page-hero__dek { color: #C9C9CE; }
.te-page-hero--diagonal { padding-bottom: calc(var(--wp--preset--spacing--80) + 14vw) !important; }
.te-page-hero--diagonal::before, .te-page-hero--diagonal::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 14vw; z-index: 1; clip-path: polygon(0 100%, 100% 0, 100% 100%); }
.te-page-hero--diagonal::before { background: var(--wp--preset--color--pink); }
.te-page-hero--diagonal::after  { background: var(--te-hero-cut); transform: translateY(5px); }
/* Page hero — Pink slash: a diagonal pink band across the photo, behind the title */
.te-page-hero--slash::before { content: ""; position: absolute; left: -10%; right: -10%; top: 58%; height: clamp(28px, 4vw, 56px); background: var(--wp--preset--color--pink); transform: rotate(-7deg); transform-origin: center; z-index: 1; opacity: .95; }
@media (max-width: 767px) { .te-page-hero--diagonal, .te-page-hero--slash { min-height: 72vw; } .te-page-hero--diagonal::before, .te-page-hero--diagonal::after { height: 18vw; } .te-page-hero--diagonal { padding-bottom: calc(var(--wp--preset--spacing--80) + 18vw) !important; } }

/* ==========================================================================
   Section background styles (Styles panel on any Group): background, text
   and link colours together. Specificity beats the preset colour classes
   WordPress writes with !important, so a style wins over a stale Color
   setting on a saved template.
   ========================================================================== */
.wp-block-group.is-style-te-paper, .wp-block-group.is-style-te-paper.has-background { background-color: var(--wp--preset--color--paper) !important; background-image: none; color: var(--wp--preset--color--ink) !important; }
.wp-block-group.is-style-te-ink,   .wp-block-group.is-style-te-ink.has-background   { background-color: var(--wp--preset--color--ink) !important;   background-image: none; color: var(--wp--preset--color--paper) !important; }
.wp-block-group.is-style-te-pink,  .wp-block-group.is-style-te-pink.has-background  { background-color: var(--wp--preset--color--pink) !important;  background-image: none; color: var(--wp--preset--color--ink) !important; }
.wp-block-group.is-style-te-paper a:not(.wp-element-button), .wp-block-group.is-style-te-pink a:not(.wp-element-button) { color: var(--wp--preset--color--ink); }
.wp-block-group.is-style-te-ink a:not(.wp-element-button) { color: var(--wp--preset--color--pink); }
.wp-block-group.is-style-te-paper .te-story__lede, .wp-block-group.is-style-te-pink .te-story__lede { color: rgba(11,11,15,.75); }
.wp-block-group.is-style-te-ink .te-story__lede, .wp-block-group.is-style-te-ink .te-players__academy p { color: #C9C9CE; }
.wp-block-group.is-style-te-ink .te-why-card__more a, .wp-block-group.is-style-te-ink .te-players__academy-link a { color: var(--wp--preset--color--paper); border-color: var(--wp--preset--color--pink); }
/* Photo background: the Group's own Background → Image, darkened for type. */
.wp-block-group.is-style-te-photo-bg { position: relative; isolation: isolate; color: var(--wp--preset--color--paper) !important; background-size: cover; background-position: center; }
.wp-block-group.is-style-te-photo-bg::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(11,11,15,.68); }
.wp-block-group.is-style-te-photo-bg a:not(.wp-element-button) { color: var(--wp--preset--color--pink); }
.wp-block-group.is-style-te-photo-bg .te-story__lede, .wp-block-group.is-style-te-photo-bg .te-players__academy p { color: #E4E4E8; }

/* ==========================================================================
   v0.8.0 — cutout / video heroes, triptych, CTA band, text-over-photo,
   testimonial photo cards
   ========================================================================== */
/* Page hero — Cutout right: photo behind (scrim), title left, cut-out PNG right */
.te-page-hero--cutout { min-height: 64vh; display: grid !important; grid-template-columns: 58fr 42fr; align-items: end; overflow: hidden; }
.te-page-hero--cutout .te-page-hero__photo { position: absolute; inset: 0; z-index: 0; margin: 0 !important; max-width: none !important; }
.te-page-hero--cutout .te-page-hero__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(11,11,15,.82) 0%, rgba(11,11,15,.45) 60%, rgba(11,11,15,.25) 100%); }
.te-page-hero--cutout > :not(.te-page-hero__photo):not(.te-page-hero__cutout) { grid-column: 1; position: relative; z-index: 2; align-self: center; }
.te-page-hero--cutout .te-page-hero__dek { color: #C9C9CE; }
.te-page-hero--cutout .te-page-hero__cutout { grid-column: 2; grid-row: 1 / span 3; align-self: end; justify-self: end; margin: 0 !important; position: relative; z-index: 1; height: 100%; min-height: 64vh; width: 100%; }
.te-page-hero--cutout .te-page-hero__cutout img { width: 100%; height: 100%; object-fit: contain; object-position: bottom right; display: block; filter: drop-shadow(0 20px 40px rgba(11,11,15,.6)); }
@media (max-width: 1199px) { .te-page-hero--cutout { grid-template-columns: 1fr; } .te-page-hero--cutout .te-page-hero__cutout { grid-column: 1; grid-row: auto; min-height: 0; height: 52vw; } }

/* Page hero — Video right / Video full */
.te-page-hero__video { margin: 0 !important; max-width: none !important; }
.te-page-hero__video video { display: block; width: 100%; height: 100%; object-fit: cover; }
.te-page-hero--video-right { display: grid !important; grid-template-columns: 1fr 1fr; align-items: center; min-height: 62vh; padding: 0 !important; }
.te-page-hero--video-right > :not(.te-page-hero__video):not(.te-page-hero__photo) { grid-column: 1; margin-left: var(--te-gutter) !important; margin-right: 40px !important; max-width: 560px; }
.te-page-hero--video-right > .wp-block-post-title { margin-top: 96px !important; }
.te-page-hero--video-right > .te-page-hero__dek { margin-bottom: 96px !important; }
.te-page-hero--video-right .te-page-hero__video, .te-page-hero--video-right .te-page-hero__photo { grid-column: 2; grid-row: 1 / span 3; align-self: stretch; height: 100%; min-height: 62vh; margin: 0 !important; }
.te-page-hero--video-right .te-page-hero__video ~ .te-page-hero__photo, .te-page-hero--video-right .te-page-hero__photo:has(~ .te-page-hero__video) { display: none; }
@media (max-width: 1199px) { .te-page-hero--video-right { grid-template-columns: 1fr; min-height: 0; } .te-page-hero--video-right > :not(.te-page-hero__video) { grid-column: 1; margin-right: var(--te-gutter) !important; } .te-page-hero--video-right .te-page-hero__video, .te-page-hero--video-right .te-page-hero__photo { grid-column: 1; grid-row: 1; height: 56vw; min-height: 0; } .te-page-hero--video-right > .wp-block-post-title { margin-top: 48px !important; } .te-page-hero--video-right > .te-page-hero__dek { margin-bottom: 56px !important; } }
.te-page-hero--video-full { min-height: 70vh; display: flex !important; flex-direction: column; justify-content: flex-end; overflow: hidden; }
.te-page-hero--video-full .te-page-hero__video, .te-page-hero--video-full .te-page-hero__photo { position: absolute; inset: 0; z-index: 0; margin: 0 !important; max-width: none !important; }
.te-page-hero--video-full .te-page-hero__video ~ .te-page-hero__photo, .te-page-hero--video-full .te-page-hero__photo:has(~ .te-page-hero__video) { display: none; }
.te-page-hero--video-full .te-page-hero__video::after, .te-page-hero--video-full .te-page-hero__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,11,15,.2) 0%, rgba(11,11,15,.7) 100%); }
.te-page-hero--video-full > :not(.te-page-hero__video):not(.te-page-hero__photo) { position: relative; z-index: 1; }
.te-page-hero--video-full .te-page-hero__dek { color: #C9C9CE; }
@media (max-width: 767px) { .te-page-hero--video-full { min-height: 80vw; } }

/* TRIPTYCH — three photos edge to edge */
.wp-block-gallery.te-triptych { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 !important; margin: 0 !important; padding: 0 !important; }
.wp-block-gallery.te-triptych > figure { margin: 0 !important; width: auto !important; flex: none !important; aspect-ratio: 4 / 3; overflow: hidden; }
.wp-block-gallery.te-triptych > figure:nth-child(n+4) { display: none; }
.wp-block-gallery.te-triptych > figure img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; filter: contrast(1.06) saturate(1.08); }
@media (max-width: 767px) { .wp-block-gallery.te-triptych { grid-template-columns: 1fr; } .wp-block-gallery.te-triptych > figure { aspect-ratio: 16 / 10; } }

/* CTA BAND */
.te-cta-band__h2 { margin: 0; line-height: 1.05; }
.te-cta-band__row > .wp-block-buttons { margin: 0; }

/* TEXT OVER PHOTO — copy left, cut-out right (uses the Photo-with-scrim style) */
.te-text-over-photo__h2 { margin: 0 0 8px; }
.te-text-over-photo p { max-width: 60ch; }
.te-text-over-photo__cutout { margin: 0 !important; }
.te-text-over-photo__cutout img { width: 100%; height: auto; display: block; filter: drop-shadow(0 20px 40px rgba(11,11,15,.6)); }

/* TESTIMONIALS — photo card when the testimonial has a Featured image */
.te-quote-card { position: relative; overflow: hidden; }
.te-quote-card__bg { position: absolute; inset: 0; z-index: 0; margin: 0 !important; }
.te-quote-card__bg img { width: 100%; height: 100%; object-fit: cover; display: block; filter: contrast(1.06) saturate(1.08) brightness(.45); }
.te-quote-card:has(.te-quote-card__bg img) { text-align: center; padding: 40px 28px 28px !important; }
.te-quote-card:has(.te-quote-card__bg img) > :not(.te-quote-card__bg) { position: relative; z-index: 1; }
.te-quote-card:has(.te-quote-card__bg img) .te-quote-card__quote { color: var(--wp--preset--color--paper); }
.te-quote-card__avatar { width: 96px; height: 96px; margin: 8px auto 0 !important; border-radius: 50%; overflow: hidden; border: 3px solid var(--wp--preset--color--pink); box-shadow: 0 10px 28px rgba(11,11,15,.5); }
.te-quote-card__avatar img { width: 100% !important; height: 100% !important; object-fit: cover; }
.te-quote-card:has(.te-quote-card__bg img) .te-quote-card__who { text-align: center; margin-top: 12px; }

/* Full-bleed sections break out of whatever column they were inserted in
   (page content, a constrained Group): edge to edge at any width. */
.te-triptych-section, .te-filmstrip-section, .te-band--mosaic, .te-closer--mosaic, .te-cta-band, .te-text-over-photo, .te-marquee { width: auto !important; max-width: none !important; margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important; }
.te-page-content > .te-triptych-section, .te-page-content > .te-filmstrip-section { margin-top: var(--wp--preset--spacing--80); margin-bottom: var(--wp--preset--spacing--80); }
/* Gallery-based panels never show per-image captions. */
.wp-block-gallery.te-triptych figcaption, .wp-block-gallery.te-filmstrip figcaption, .wp-block-gallery.te-mosaic-bg figcaption { display: none !important; }
