/*
Theme Name: SSC Köln
Theme URI: https://ssc-koeln.org
Description: Theme des SSC Köln 1998 e.V. Klar, weiß, Vereinsrot.
Version: 0.1.0
Requires at least: 6.4
Requires PHP: 8.1
License: GNU General Public License v2 or later
Text Domain: ssc-koeln
Update URI: false
*/

/* Fonts: Fira Sans, hosted with the theme (SIL Open Font License, see fonts/OFL.txt) */
@font-face { font-family: "Fira Sans"; font-style: normal; font-weight: 400; font-display: swap; src: url(fonts/fira-sans-latin-400-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Fira Sans"; font-style: normal; font-weight: 400; font-display: swap; src: url(fonts/fira-sans-latin-ext-400-normal.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Fira Sans"; font-style: normal; font-weight: 500; font-display: swap; src: url(fonts/fira-sans-latin-500-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Fira Sans"; font-style: normal; font-weight: 500; font-display: swap; src: url(fonts/fira-sans-latin-ext-500-normal.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Fira Sans"; font-style: normal; font-weight: 600; font-display: swap; src: url(fonts/fira-sans-latin-600-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Fira Sans"; font-style: normal; font-weight: 600; font-display: swap; src: url(fonts/fira-sans-latin-ext-600-normal.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Fira Sans"; font-style: normal; font-weight: 700; font-display: swap; src: url(fonts/fira-sans-latin-700-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Fira Sans"; font-style: normal; font-weight: 700; font-display: swap; src: url(fonts/fira-sans-latin-ext-700-normal.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

:root {
	--red: #d10014;
	--red-dark: #a8000f;
	--ink: #14161a;
	--muted: #4f5560;
	--subtle: #6a707b;
	--line: #eceef1;
	--line-strong: #d5d9df;
	--soft: #f6f7f9;
	--radius: 22px;
	--radius-small: 12px;
	--container: 1200px;
	--gutter: 24px;
	--font: "Fira Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
}

/* Base */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: #fff; color: var(--ink); font-family: var(--font); font-size: 18px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
img, svg, video, iframe { max-width: 100%; }
img { height: auto; }
a { color: var(--red); text-decoration-thickness: 1px; text-underline-offset: 0.15em; }
a:hover { color: var(--red-dark); }
:focus-visible { outline: 3px solid var(--red); outline-offset: 2px; }
h1, h2, h3, h4, h5, h6 { line-height: 1.2; letter-spacing: -0.015em; margin: 1.6em 0 0.6em; font-weight: 700; }
.container { max-width: var(--container); margin: 0 auto; padding-left: var(--gutter); padding-right: var(--gutter); }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.skip-link { position: absolute; left: -9999px; top: 8px; z-index: 100; background: #fff; padding: 10px 16px; border-radius: 8px; }
.skip-link:focus { left: 8px; }

/* Buttons */
.button, .wp-block-button__link, input[type="submit"], button[type="submit"] { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 12px 26px; border-radius: 999px; border: 0; background: var(--red); color: #fff; font: 600 17px/1.2 var(--font); text-decoration: none; cursor: pointer; }
.button:hover, input[type="submit"]:hover, button[type="submit"]:hover { background: var(--red-dark); color: #fff; }
.button--small { min-height: 44px; padding: 10px 20px; font-size: 16px; }
.button--ghost { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1.5px var(--line-strong); }
.button--ghost:hover { background: var(--soft); color: var(--ink); }
.button--white { background: #fff; color: var(--ink); }
.button--white:hover { background: var(--soft); color: var(--ink); }
.button-row { display: flex; flex-wrap: wrap; gap: 12px; }

/* Header and main menu */
.site-header { border-bottom: 1px solid var(--line); background: #fff; position: relative; z-index: 50; }
.header-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 84px; }
.brand { display: flex; align-items: center; flex-shrink: 0; }
.site-logo { height: 56px; width: auto; display: block; }
.site-name { font-weight: 700; font-size: 22px; color: var(--ink); }
.site-nav { display: flex; align-items: center; gap: 12px; }
.site-nav .menu, .site-nav .sub-menu { list-style: none; margin: 0; padding: 0; }
.site-nav .menu { display: flex; align-items: center; gap: 4px; }
.site-nav li { position: relative; }
.site-nav a { color: var(--ink); text-decoration: none; }
.site-nav .menu > li > a { display: block; padding: 10px 14px; font-weight: 500; font-size: 16px; border-radius: 999px; }
.site-nav .menu > li > a:hover, .site-nav .menu > li.current-menu-item > a, .site-nav .menu > li.current-menu-ancestor > a { color: var(--red); }
.site-nav .menu-item-has-children > a::after { content: ""; display: inline-block; width: 6px; height: 6px; margin-left: 8px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-3px) rotate(45deg); }
.site-nav .sub-menu { position: absolute; left: 0; top: 100%; min-width: 260px; padding: 8px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-small); box-shadow: 0 12px 32px rgba(20, 22, 26, 0.08); opacity: 0; visibility: hidden; transform: translateY(4px); transition: opacity 0.15s, transform 0.15s, visibility 0.15s; }
.site-nav .sub-menu .sub-menu { left: 100%; top: -9px; }
.site-nav li:hover > .sub-menu, .site-nav li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.site-nav .sub-menu a { display: block; padding: 9px 12px; border-radius: 8px; font-size: 15px; }
.site-nav .sub-menu a:hover { background: var(--soft); color: var(--red); }
.site-nav .sub-menu .menu-item-has-children > a::after { transform: translateY(-2px) rotate(-45deg); }
.nav-toggle { display: none; align-items: center; gap: 10px; min-height: 44px; padding: 8px 14px; border: 1.5px solid var(--line-strong); border-radius: 999px; background: #fff; color: var(--ink); font: 600 16px var(--font); cursor: pointer; }
.nav-toggle-bars, .nav-toggle-bars::before, .nav-toggle-bars::after { display: block; width: 18px; height: 2px; background: currentColor; border-radius: 2px; position: relative; }
.nav-toggle-bars::before, .nav-toggle-bars::after { content: ""; position: absolute; left: 0; }
.nav-toggle-bars::before { top: -6px; } .nav-toggle-bars::after { top: 6px; }

@media (max-width: 1080px) {
	.nav-toggle { display: inline-flex; }
	.site-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: #fff; border-bottom: 1px solid var(--line); padding: 8px var(--gutter) 20px; flex-direction: column; align-items: stretch; max-height: calc(100vh - 84px); overflow-y: auto; }
	.site-nav.is-open { display: flex; }
	.site-nav .menu { flex-direction: column; align-items: stretch; }
	.site-nav .menu > li > a { padding: 12px 4px; border-radius: 0; border-bottom: 1px solid var(--line); }
	.site-nav .sub-menu, .site-nav .sub-menu .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0 0 0 16px; min-width: 0; }
	.site-nav .menu-item-has-children > a::after { display: none; }
	.site-nav .button { margin-top: 12px; }
}

/* Home: hero and track */
.hero { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); gap: 56px; align-items: center; padding-top: 80px; padding-bottom: 64px; }
.hero-text { display: flex; flex-direction: column; gap: 24px; }
.eyebrow { margin: 0; display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--red); }
.eyebrow::before { content: ""; width: 28px; height: 3px; border-radius: 2px; background: currentColor; }
.hero-title { margin: 0; font-size: clamp(42px, 6vw, 72px); line-height: 1.02; letter-spacing: -0.03em; }
.hero-lead { margin: 0; font-size: 20px; line-height: 1.55; color: var(--muted); max-width: 30em; }
.track { position: relative; aspect-ratio: 5 / 3; color: var(--red); }
.track-lanes { position: absolute; inset: 0; width: 100%; height: 100%; }
.track-logo { position: absolute; left: 50%; top: 50%; height: 38%; aspect-ratio: 1; transform: translate(-50%, -50%); }
.track-logo-img { width: 100%; height: 100%; object-fit: contain; display: block; }

/* Home: department tiles */
.section-tight { padding-top: 16px; padding-bottom: 88px; }
.tile-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 20px; }
.tile { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 12px; padding: 34px 30px 30px; border: 1px solid var(--line); border-radius: var(--radius); color: var(--ink); text-decoration: none; transition: border-color 0.15s, transform 0.15s; }
.tile:hover { border-color: var(--red); color: var(--ink); transform: translateY(-2px); }
/* A red top border on each tile */
.tile::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: var(--red); }
.tile-title { font-size: 24px; font-weight: 700; letter-spacing: -0.01em; line-height: 1.25; }
.tile-text { color: var(--muted); font-size: 16px; }
.tile-more { margin-top: auto; font-weight: 600; color: var(--red); }

/* Sections */
.section { padding: 88px 0; }
.section--rule { border-top: 1px solid var(--line); }
.section-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 36px; }
.section-title { margin: 0 0 32px; font-size: clamp(32px, 4vw, 40px); letter-spacing: -0.02em; }
.section-head .section-title { margin: 0; }
.section-title--small { font-size: 26px; margin-bottom: 24px; }
.more-link { font-weight: 600; text-decoration: none; }

/* News cards */
.card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 28px; }
.card-grid--two { grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.card-grid--four { grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: 20px; }
.card { margin: 0; }
.card-link { display: flex; flex-direction: column; height: 100%; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; color: var(--ink); text-decoration: none; background: #fff; transition: border-color 0.15s; }
.card-link:hover { border-color: var(--line-strong); color: var(--ink); }
.card-link:hover .card-title { color: var(--red); }
.card-image { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; background: var(--soft); }
.card-image--empty { background: var(--soft) radial-gradient(circle at 50% 50%, #fff 0 18%, transparent 19%); }
.card-body { display: flex; flex-direction: column; gap: 8px; padding: 20px 24px 26px; }
.card-date { font-size: 14px; color: var(--subtle); }
.card-title { font-size: 20px; font-weight: 700; line-height: 1.3; }
.card-grid--four .card-title { font-size: 17px; }
.card-grid--four .card-body { padding: 16px 18px 20px; }

/* Home: pinboard (the sidebar widgets) */
.board { columns: 3 300px; column-gap: 24px; }
.board .widget { break-inside: avoid; margin: 0 0 24px; padding: 24px; border: 1px solid var(--line); border-radius: var(--radius); }

/* Home: extra widget areas, camps and events, join box */
.front-areas { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 24px; }
.split { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 48px; align-items: start; }
.split .section-title { margin-bottom: 16px; }
.lane { width: 100%; max-width: 400px; height: auto; color: var(--red); }
.link-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.link-list a { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; font-size: 20px; font-weight: 700; }
.link-list .depth-2 a, .link-list .depth-3 a { padding-left: 24px; font-size: 17px; font-weight: 500; }
.link-list a:hover { color: var(--red); }
.link-list .arrow { color: var(--red); }
.join-box { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; padding: 52px; border-radius: 28px; background: var(--red); color: #fff; }
.join-title { margin: 0 0 8px; font-size: clamp(28px, 3.4vw, 36px); }
.join-box p { margin: 0; font-size: 18px; }

/* Content pages: main column and sidebar */
.layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 56px; padding-top: 56px; padding-bottom: 88px; }
@media (max-width: 960px) { .layout { grid-template-columns: minmax(0, 1fr); } }
.page-head { margin-bottom: 28px; }
.page-title { margin: 0 0 12px; font-size: clamp(32px, 4.4vw, 48px); line-height: 1.1; letter-spacing: -0.025em; }
.post-meta { margin: 0; color: var(--subtle); font-size: 15px; }
.post-meta a { color: inherit; text-decoration: none; }
.post-meta a:hover { color: var(--red); }
.entry-hero { margin: 0 0 32px; }
.entry-hero img { width: 100%; border-radius: var(--radius); display: block; }
.entry-content > :first-child { margin-top: 0; }
.entry-content h2 { font-size: 30px; } .entry-content h3 { font-size: 24px; } .entry-content h4 { font-size: 20px; }
.entry-content img { border-radius: 8px; }
.entry-content blockquote { margin: 1.5em 0; padding: 4px 0 4px 24px; border-left: 3px solid var(--red); color: var(--muted); }
.entry-content table { border-collapse: collapse; width: 100%; font-size: 16px; }
.entry-content th, .entry-content td { border-bottom: 1px solid var(--line); padding: 10px 12px; text-align: left; vertical-align: top; }
.entry-content .alignleft { float: left; margin: 0.4em 1.5em 1em 0; }
.entry-content .alignright { float: right; margin: 0.4em 0 1em 1.5em; }
.entry-content .aligncenter { display: block; margin-left: auto; margin-right: auto; }
.entry-content::after { content: ""; display: table; clear: both; }
.wp-caption-text, figcaption { font-size: 14px; color: var(--subtle); }
.post-tags { color: var(--subtle); font-size: 15px; }
.post-navigation .nav-links { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 16px; margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--line); }
.post-navigation .nav-next { text-align: right; }
.post-navigation a { text-decoration: none; font-weight: 600; }
.pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 40px; }
.pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 14px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink); text-decoration: none; font-weight: 600; }
.pagination .page-numbers.current { background: var(--red); border-color: var(--red); color: #fff; }

/* Widgets (sidebar, pinboard, footer) */
.sidebar .widget { margin: 0 0 28px; padding-bottom: 28px; border-bottom: 1px solid var(--line); }
.sidebar .widget:last-child { border-bottom: 0; }
.widget-title { margin: 0 0 14px; font-size: 14px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--red); }
.widget { font-size: 16px; line-height: 1.55; }
.widget img { border-radius: 10px; display: block; }
.widget p { margin: 0 0 0.8em; }
.widget ul { margin: 0; padding-left: 1.1em; }
.widget a img { transition: opacity 0.15s; } .widget a:hover img { opacity: 0.85; }

/* Search form */
.search-form { display: flex; gap: 8px; max-width: 480px; }
.search-form label { flex: 1; }
.search-field, input[type="text"], input[type="email"], input[type="url"], input[type="search"], textarea { width: 100%; min-height: 48px; padding: 10px 16px; border: 1.5px solid var(--line-strong); border-radius: 12px; font: 400 16px var(--font); color: var(--ink); background: #fff; }
.search-submit { min-height: 48px; }

/* Footer */
.latest-strip { border-top: 1px solid var(--line); padding: 56px 0 64px; }
.site-footer { border-top: 1px solid var(--line); color: var(--muted); }
.footer-widgets { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 32px; padding-top: 48px; padding-bottom: 32px; }
.footer-widgets .widget-title { color: var(--ink); }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; padding-top: 24px; padding-bottom: 40px; border-top: 1px solid var(--line); font-size: 15px; }
.footer-name { color: var(--ink); font-weight: 600; }
.footer-nav { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.footer-nav a { color: var(--muted); text-decoration: none; }
.footer-nav a:hover { color: var(--red); }
.footer-menu { display: flex; flex-wrap: wrap; gap: 8px 24px; list-style: none; margin: 0; padding: 0; }

/* Comments */
.comments { margin-top: 56px; padding-top: 32px; border-top: 1px solid var(--line); }
.comment-list { padding-left: 0; list-style: none; }

@media (max-width: 640px) {
	body { font-size: 17px; }
	.hero { padding-top: 48px; gap: 36px; }
	.section { padding: 64px 0; }
	.join-box { padding: 32px; }
	.site-logo { height: 46px; }
}

/* Card excerpt and search result count */
.card-excerpt { color: var(--muted); font-size: 16px; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.card-grid--four .card-excerpt { display: none; }
.result-count { color: var(--subtle); margin: 16px 0 0; }
.site-nav a.button, .site-nav a.button:hover { color: #fff; }

/* Logo variants: red in the header, black inside the track (both keep the logo's 250:196 proportions) */
.site-logo { height: 52px; width: auto; }
.track-logo { height: 40%; aspect-ratio: 250 / 196; }

/* Pages built with Elementor: full width, sidebar widgets in a grid below */
.layout--wide { grid-template-columns: minmax(0, 1fr); }
.layout--wide .sidebar { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 40px; padding-top: 48px; border-top: 1px solid var(--line); }
.layout--wide .sidebar .widget { margin: 0; padding: 0; border: 0; }

/* Elementor content was laid out for tighter spacing than this theme's prose */
.elementor :is(h1, h2, h3, h4, h5, h6) { margin: 0 0 1.4rem; }
.elementor p { margin: 0 0 1rem; }
/* Background photos fill their box at any width instead of tiling (an explicit Elementor size still wins) */
.elementor .elementor-widget-wrap, .elementor .elementor-section, .elementor .e-con { background-size: cover; }

/* One typeface everywhere: Fira Sans also inside Elementor and plugin output.
   Icon fonts keep their own family. */
body :not(i, code, pre, kbd, samp, .fa, .fab, .fas, .far, .dashicons, [class^="eicon"], [class*=" eicon"], [class^="fa-"], [class*=" fa-"], [class*="dashicons"], [class*="tribe-common-svgicon"]) { font-family: var(--font) !important; }

/* No drop shadows on images or Elementor boxes */
.entry-content img, .entry-content .elementor-element, .entry-content .elementor-widget-container, .entry-content .elementor-element-populated, .entry-content .elementor-button, .widget img { box-shadow: none !important; }

/* Framed Elementor boxes in the style of the home page tiles */
.ssc-tile > .elementor-element-populated, .e-con.ssc-tile { position: relative; overflow: hidden; border: 1px solid var(--line) !important; border-radius: var(--radius) !important; padding: 34px 30px 30px !important; margin: 8px !important; transition: border-color 0.15s, transform 0.15s; }
.ssc-tile > .elementor-element-populated::before, .e-con.ssc-tile::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: var(--red); }
.ssc-tile:hover > .elementor-element-populated, .e-con.ssc-tile:hover { border-color: var(--red) !important; background-image: none !important; transform: translateY(-2px); }
/* A tile ending in a link or button has it at the bottom, so links line up across a row */
.ssc-tile > .elementor-element-populated { flex-direction: column; flex-wrap: nowrap; }
.ssc-tile > .elementor-element-populated > .elementor-widget { width: 100%; }
.ssc-tile .elementor-widget:last-child:is(.elementor-widget-button, :has(> .elementor-widget-container > p:only-child > a:only-child)) { margin-top: auto; }
/* A row of three or more tiles, and nothing else, gets equal tile widths */
@media (min-width: 768px) {
	.elementor-container:not(:has(> .elementor-column:not(.ssc-tile))):has(> .ssc-tile ~ .ssc-tile ~ .ssc-tile) > .ssc-tile { flex: 1 1 0; width: auto !important; }
}

/* Elementor image captions: a white label on the photo, when the photo is wide enough */
.elementor-widget-image:has(figure.wp-caption) .elementor-widget-container { container-type: inline-size; }
.elementor-widget-image figure.wp-caption { position: relative; display: inline-block; max-width: 100%; margin: 0; }
.elementor-widget-image figure.wp-caption img { border-radius: var(--radius) !important; display: block; }
.elementor-widget-image .widget-image-caption { margin-top: 8px; font-size: 14px; color: var(--subtle); text-align: left; }
.elementor-widget-image .widget-image-caption:empty { display: none; }
.caption-kicker { display: block; color: var(--red); font-size: 12px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; }
@container (min-width: 320px) {
	.elementor-widget-image .widget-image-caption { position: absolute; left: 14px; right: 14px; bottom: 14px; margin: 0; padding: 12px 16px; border-radius: 14px; background: rgba(255, 255, 255, 0.94); color: var(--ink) !important; font-size: 15px !important; font-weight: 600 !important; line-height: 1.35; }
}
/* Tile headings sit tight on their text */
.ssc-tile h4 { margin: 14px 0 8px; font-size: 18px; }
