familyfedie-website/css/site.css
Loyyd 5eb81b3aca
All checks were successful
/ deploy (push) Successful in 46s
Bring homepage Lighthouse performance to 100
2026-07-10 13:37:39 +02:00

929 lines
18 KiB
CSS

/* Shared site fixes extracted from repeated inline styles. */
body.custom-background { background-color: #ffffff; }
/* General fix for the header image */
#bg_image {
width: 100%; /* Scale the image to fit the container */
height: auto; /* Maintain aspect ratio to avoid stretching */
max-width: 100%; /* Prevent the image from exceeding container width */
}
#branding > picture {
display: block;
}
#branding > picture + #header-container {
position: absolute;
inset: 0;
height: 100%;
}
.column-image picture {
display: block;
width: 100%;
}
/* Mobile-specific fix for the header image */
@media (max-width: 768px) {
#bg_image {
object-fit: contain; /* Ensure the entire image is visible */
width: 100%; /* Let the image adjust to screen width */
height: auto; /* Maintain aspect ratio */
}
}
/* Shortcodes Ultimate column rule used by exported content. */
.su-column-size-1-4{
width:18%;
}
/* The migrated content only uses columns and video embeds from WordPress blocks. */
.wp-block-columns {
display: flex;
flex-wrap: wrap;
align-items: normal;
box-sizing: border-box;
margin-bottom: 1.75em;
}
.wp-block-column {
flex-grow: 1;
min-width: 0;
overflow-wrap: break-word;
word-break: break-word;
}
@media (max-width: 781px) {
.wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
flex-basis: 100%;
}
}
@media (min-width: 782px) {
.wp-block-columns {
flex-wrap: nowrap;
}
.wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
flex-basis: 0;
}
}
.wp-block-embed {
box-sizing: border-box;
margin: 0 0 1em;
overflow-wrap: break-word;
}
.wp-block-embed iframe {
max-width: 100%;
}
/* Homepage slider/frontpage settings from the original export. */
#colophon {display: none;} .slider-wrapper { max-width: 1200px; } #slider{ max-width: 1200px; max-height: 350px; border:0px solid #ffffff; } #front-text1, #front-text2 { color: #212121; } #front-columns > div { width: 32%; } #front-columns > div.ppcolumn:nth-child(3n) { margin-right: 0; } #front-columns > div.ppcolumn:nth-child(3n+1) { clear: left; } .column-image { padding: 0px; } .column-image h3 {margin-bottom: 0px; } .column-image img { max-height:201px;} .nivo-caption { background-color: rgb(252,250,250); background-color: rgba(252,250,250,0.7); } .nivo-caption, .nivo-caption a { color: #0e2012; } .theme-default .nivoSlider { background-color: #ffffff; } .theme-default .nivo-controlNav:before, .theme-default .nivo-controlNav:after { border-top-color:#ffffff; } .theme-default .nivo-controlNav { background-color:#ffffff; } .slider-bullets .nivo-controlNav a { background-color: #fdf7f7; } .slider-bullets .nivo-controlNav a:hover { background-color: #fdfcfc; } .slider-bullets .nivo-controlNav a.active {background-color: #ffffff; } .slider-numbers .nivo-controlNav a { color:#fdf7f7; background-color:#F7F7F2;} .slider-numbers .nivo-controlNav a:hover { color: #fdfcfc; background-color:#FFFFFF } .slider-numbers .nivo-controlNav a.active { color:#ffffff;} .column-image h3{ color: #333333; background-color: rgb(255,255,255); } .columnmore { background-color: #F7F7F2; } .columnmore:before { border-bottom-color: #F7F7F2; } #front-columns h3.column-header-noimage { background: #FFFFFF; }
/* Interactive speeches archive explorer. */
.speeches-archive .post {
padding: 0;
}
.speeches-archive .entry-content {
max-width: 100%;
}
.speech-explorer {
--speech-orange: #bf4d28;
--speech-orange-soft: #fff4ef;
--speech-green: #618348;
--speech-green-soft: #edf4e3;
--speech-ink: #2f312d;
--speech-muted: #666a62;
--speech-line: #dedfd9;
--speech-wash: #f7f7f2;
color: var(--speech-ink);
}
.speech-explorer-intro {
max-width: 720px;
padding: 34px 36px 10px;
}
.speech-explorer-intro .entry-title {
margin: 2px 0 10px;
color: var(--speech-ink);
font-family: "Bebas Neue";
font-size: 44px;
line-height: 1;
}
.speech-explorer-intro > p:last-child {
max-width: 640px;
margin: 0;
color: var(--speech-muted);
font-size: 16px;
}
.speech-explorer-kicker,
.speech-section-kicker {
margin: 0;
color: var(--speech-orange);
font-size: 11px;
font-weight: 700;
letter-spacing: 0.12em;
text-transform: uppercase;
}
.speech-archive-overview {
display: grid;
grid-template-columns: repeat(3, 1fr);
margin: 22px 36px 30px;
border-top: 1px solid var(--speech-line);
border-bottom: 1px solid var(--speech-line);
}
.speech-archive-overview div {
padding: 16px 18px;
border-right: 1px solid var(--speech-line);
}
.speech-archive-overview div:first-child {
padding-left: 0;
}
.speech-archive-overview div:last-child {
border-right: 0;
}
.speech-archive-overview dt {
color: var(--speech-muted);
font-size: 11px;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.speech-archive-overview dd {
margin: 4px 0 0;
color: var(--speech-ink);
font-family: "Yanone Kaffeesatz Regular";
font-size: 27px;
line-height: 1.1;
}
.speech-filters {
display: grid;
grid-template-columns: minmax(230px, 2fr) repeat(3, minmax(120px, 1fr)) auto;
gap: 12px;
align-items: end;
margin: 0 36px 28px;
padding: 18px;
border: 1px solid var(--speech-line);
background: var(--speech-wash);
}
.speech-filter {
min-width: 0;
}
.speech-filter label {
display: block;
margin-bottom: 5px;
color: var(--speech-muted);
font-size: 11px;
font-weight: 700;
letter-spacing: 0.06em;
text-transform: uppercase;
}
.speech-filter input,
.speech-filter select {
box-sizing: border-box;
width: 100%;
min-height: 42px;
margin: 0;
border: 1px solid #cfd0ca;
border-radius: 3px;
color: var(--speech-ink);
background: #ffffff;
}
.speech-filter input:focus,
.speech-filter select:focus,
.speech-reset:focus,
.speech-load-more:focus,
.speech-detail-nav button:focus,
.speech-year-button:focus {
outline: 2px solid var(--speech-orange);
outline-offset: 2px;
}
.speech-reset,
.speech-load-more,
.speech-detail-nav button {
min-height: 42px;
padding: 8px 13px;
border: 1px solid #cfd0ca;
border-radius: 3px;
color: var(--speech-ink);
background: #ffffff;
cursor: pointer;
}
.speech-reset:hover,
.speech-load-more:hover,
.speech-detail-nav button:hover:not(:disabled) {
border-color: var(--speech-orange);
color: var(--speech-orange);
}
.speech-chart-section {
margin: 0 36px 34px;
}
.speech-section-heading {
display: flex;
flex-wrap: wrap;
gap: 10px 24px;
align-items: end;
justify-content: space-between;
margin-bottom: 12px;
}
.speech-section-heading h2 {
margin: 1px 0 0;
color: var(--speech-ink);
font-size: 25px;
line-height: 1.1;
}
.speech-chart-summary,
.speech-results-status,
.speech-detail-position {
margin: 0;
color: var(--speech-muted);
font-size: 12px;
}
.speech-year-chart {
--speech-year-columns: 38;
display: grid;
grid-template-columns: repeat(var(--speech-year-columns), minmax(0, 1fr));
gap: 3px;
align-items: end;
min-height: 122px;
padding: 38px 0 26px;
border-top: 1px solid var(--speech-line);
border-bottom: 1px solid var(--speech-line);
background-image: linear-gradient(to top, transparent 24%, #eeeeea 25%, transparent 26%, transparent 49%, #eeeeea 50%, transparent 51%, transparent 74%, #eeeeea 75%, transparent 76%);
}
.speech-year-button {
position: relative;
display: flex;
align-items: end;
height: 120px;
min-width: 0;
padding: 0;
border: 0;
color: var(--speech-muted);
background: transparent;
cursor: pointer;
}
.speech-year-button:disabled {
cursor: default;
}
.speech-year-button::after {
position: absolute;
z-index: 3;
top: -32px;
left: 50%;
display: none;
width: max-content;
max-width: 140px;
padding: 4px 7px;
transform: translateX(-50%);
border-radius: 3px;
color: #ffffff;
background: var(--speech-ink);
content: attr(data-chart-label);
font-size: 11px;
line-height: 1.25;
pointer-events: none;
}
.speech-year-button:hover::after,
.speech-year-button:focus::after {
display: block;
}
.speech-year-bar {
display: block;
width: 100%;
height: var(--speech-bar-height);
min-height: 2px;
border-radius: 2px 2px 0 0;
background: #b9cc9f;
transition: height 180ms ease, background-color 180ms ease;
}
.speech-year-button:hover .speech-year-bar,
.speech-year-button:focus .speech-year-bar {
background: #e6ac27;
}
.speech-year-button[aria-pressed="true"] .speech-year-bar {
background: var(--speech-orange);
}
.speech-year-button:disabled .speech-year-bar {
min-height: 1px;
background: #d9dad4;
}
.speech-year-tick {
position: absolute;
bottom: -23px;
left: 50%;
transform: translateX(-50%);
font-size: 10px;
white-space: nowrap;
}
.speech-explorer-layout {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(280px, 34%);
gap: 26px;
align-items: start;
padding: 0 36px 38px;
}
.speech-results-heading {
min-height: 43px;
}
.speech-results {
border-top: 1px solid var(--speech-line);
}
a.speech-result {
display: block;
padding: 17px 16px 17px 0;
border-bottom: 1px solid var(--speech-line);
color: var(--speech-ink);
text-decoration: none;
}
a.speech-result:hover,
a.speech-result:focus,
a.speech-result.is-selected {
color: var(--speech-ink);
background: var(--speech-wash);
}
a.speech-result.is-selected {
padding-left: 13px;
border-left: 3px solid var(--speech-orange);
}
.speech-result-topline {
display: flex;
flex-wrap: wrap;
gap: 6px 10px;
align-items: center;
margin-bottom: 5px;
color: var(--speech-muted);
font-size: 11px;
font-weight: 700;
letter-spacing: 0.04em;
text-transform: uppercase;
}
.speech-result-year {
color: var(--speech-green);
}
.speech-result-title {
display: block;
margin-bottom: 5px;
color: var(--speech-ink);
font-family: "Yanone Kaffeesatz Regular";
font-size: 21px;
font-weight: 400;
line-height: 1.15;
}
.speech-result-excerpt {
display: -webkit-box;
overflow: hidden;
color: var(--speech-muted);
font-size: 12px;
line-height: 1.55;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
.speech-load-more {
width: 100%;
margin-top: 14px;
}
.speech-load-more[hidden] {
display: none;
}
.speech-empty-state {
margin: 0;
padding: 26px 0;
border-bottom: 1px solid var(--speech-line);
color: var(--speech-muted);
}
.speech-detail {
position: sticky;
top: 20px;
padding: 22px;
border: 1px solid var(--speech-line);
border-top: 4px solid var(--speech-green);
background: #ffffff;
}
.speech-detail h2 {
margin: 8px 0 8px;
color: var(--speech-ink);
font-size: 27px;
line-height: 1.1;
}
.speech-detail > p {
color: var(--speech-muted);
}
.speech-detail .speech-section-kicker {
color: var(--speech-green);
}
.speech-detail-position {
float: right;
}
.speech-detail-meta {
margin: 0 0 16px;
padding-bottom: 13px;
border-bottom: 1px solid var(--speech-line);
color: var(--speech-muted);
font-size: 11px;
font-weight: 700;
letter-spacing: 0.04em;
text-transform: uppercase;
}
.speech-detail-link {
display: inline-block;
margin-top: 5px;
font-weight: 700;
}
.speech-detail-nav {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 8px;
margin-top: 20px;
padding-top: 16px;
border-top: 1px solid var(--speech-line);
}
.speech-detail-nav button {
min-height: 36px;
padding: 6px 9px;
}
.speech-detail-nav button:disabled {
color: #9a9c96;
background: var(--speech-wash);
cursor: default;
}
.speech-explorer-message {
margin: -28px 36px 32px;
color: var(--speech-muted);
font-size: 11px;
}
.speech-explorer.is-ready .speech-explorer-message {
display: none;
}
.speech-explorer-message.is-error {
color: var(--speech-orange);
}
@media (prefers-reduced-motion: reduce) {
.speech-year-bar {
transition: none;
}
}
@media (max-width: 900px) {
.speech-filters {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.speech-filter-search {
grid-column: 1 / -1;
}
.speech-reset {
grid-column: 1 / -1;
}
.speech-explorer-layout {
grid-template-columns: minmax(0, 1.15fr) minmax(250px, 0.85fr);
}
}
@media (max-width: 720px) {
.speech-explorer-intro {
padding: 28px 22px 8px;
}
.speech-archive-overview,
.speech-filters,
.speech-chart-section {
margin-right: 22px;
margin-left: 22px;
}
.speech-explorer-layout {
grid-template-columns: 1fr;
padding-right: 22px;
padding-left: 22px;
}
.speech-detail {
position: static;
grid-row: 1;
}
.speech-results-panel {
grid-row: 2;
}
.speech-explorer-message {
margin-right: 22px;
margin-left: 22px;
}
}
@media (max-width: 560px) {
.speech-explorer-intro .entry-title {
font-size: 38px;
}
.speech-archive-overview {
grid-template-columns: 1fr;
}
.speech-archive-overview div,
.speech-archive-overview div:first-child {
padding: 11px 0;
border-right: 0;
border-bottom: 1px solid var(--speech-line);
}
.speech-archive-overview div:last-child {
border-bottom: 0;
}
.speech-filters {
grid-template-columns: 1fr;
}
.speech-filter-search,
.speech-reset {
grid-column: auto;
}
.speech-year-chart {
gap: 2px;
}
.speech-year-tick {
font-size: 9px;
}
.speech-section-heading {
align-items: start;
flex-direction: column;
}
.speech-detail h2 {
font-size: 24px;
}
}
/* Contact page form. */
.contact-form {
display: grid;
gap: 14px;
max-width: 620px;
margin: 22px 0 0;
}
.contact-field label {
display: block;
margin-bottom: 5px;
color: #444444;
font-size: 13px;
font-weight: 700;
}
.contact-field input,
.contact-field select,
.contact-field textarea {
box-sizing: border-box;
width: 100%;
margin: 0;
}
.contact-field input,
.contact-field select {
min-height: 38px;
}
.contact-field textarea {
min-height: 150px;
resize: vertical;
}
.contact-field input:focus,
.contact-field select:focus,
.contact-field textarea:focus {
outline: 2px solid #bf4d28;
outline-offset: 2px;
}
.contact-actions {
display: flex;
flex-wrap: wrap;
gap: 12px;
align-items: center;
}
.contact-actions .button {
margin: 0;
cursor: pointer;
}
.contact-form-status {
min-height: 1.4em;
margin: 0;
color: #5c5c56;
}
/* Static events calendar. */
.events-calendar-page .entry-content {
max-width: 100%;
}
.familyfed-calendar {
display: grid;
gap: 16px;
}
.calendar-toolbar,
.calendar-actions {
display: flex;
flex-wrap: wrap;
gap: 10px;
align-items: center;
}
.calendar-toolbar {
justify-content: space-between;
}
.calendar-title {
margin: 0;
color: #333333;
font-size: 28px;
line-height: 1.2;
text-align: center;
}
.calendar-nav-button,
.calendar-secondary-button {
min-height: 38px;
border: 1px solid #d8d8d0;
border-radius: 4px;
color: #333333;
background: #ffffff;
cursor: pointer;
}
.calendar-nav-button {
width: 42px;
font-size: 26px;
line-height: 1;
}
.calendar-secondary-button {
padding: 8px 12px;
}
.calendar-nav-button:hover,
.calendar-nav-button:focus,
.calendar-secondary-button:hover,
.calendar-secondary-button:focus {
border-color: #bf4d28;
color: #bf4d28;
}
.calendar-layout {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(240px, 300px);
gap: 18px;
align-items: start;
}
.calendar-grid-wrap,
.calendar-panel {
border: 1px solid #eeeeee;
border-radius: 6px;
background: #ffffff;
}
.calendar-weekdays,
.calendar-grid {
display: grid;
grid-template-columns: repeat(7, minmax(0, 1fr));
}
.calendar-weekdays {
border-bottom: 1px solid #eeeeee;
background: #fbfbf8;
}
.calendar-weekdays span {
padding: 10px 8px;
color: #5c5c56;
font-size: 12px;
font-weight: 700;
text-align: center;
text-transform: uppercase;
}
.calendar-day {
display: grid;
grid-template-rows: auto 1fr;
gap: 6px;
min-height: 112px;
padding: 8px;
border: 0;
border-right: 1px solid #eeeeee;
border-bottom: 1px solid #eeeeee;
color: #333333;
background: #ffffff;
text-align: left;
cursor: pointer;
}
.calendar-day:nth-child(7n) {
border-right: 0;
}
.calendar-day:hover,
.calendar-day:focus {
outline: 2px solid #bf4d28;
outline-offset: -2px;
}
.calendar-day-muted {
color: #8c8c86;
background: #fbfbf8;
}
.calendar-day-today .calendar-day-number {
border-color: #d5e6b3;
color: #365d26;
background: #f2f7e8;
}
.calendar-day-selected {
box-shadow: inset 0 0 0 2px #bf4d28;
}
.calendar-day-number {
display: inline-flex;
align-items: center;
justify-content: center;
width: 28px;
min-height: 28px;
border: 1px solid transparent;
border-radius: 50%;
font-weight: 700;
}
.calendar-day-events {
display: grid;
gap: 4px;
align-content: start;
}
.calendar-event-pill,
.calendar-event-more {
overflow: hidden;
padding: 3px 6px;
border-radius: 4px;
font-size: 12px;
line-height: 1.25;
text-overflow: ellipsis;
white-space: nowrap;
}
.calendar-event-pill {
color: #365d26;
background: #f2f7e8;
}
.calendar-event-more {
color: #5c5c56;
background: #f7f7f2;
}
.calendar-panel {
padding: 16px;
}
.calendar-panel h3 {
margin: 0 0 12px;
font-size: 20px;
}
.calendar-event-list {
display: grid;
gap: 12px;
}
.calendar-event-card {
padding: 12px;
border: 1px solid #eeeeee;
border-radius: 6px;
background: #fbfbf8;
}
.calendar-event-card h4 {
margin: 0 0 6px;
font-size: 18px;
line-height: 1.25;
}
.calendar-event-card p {
margin: 0 0 7px;
}
.calendar-event-date {
color: #5c5c56;
font-size: 12px;
font-weight: 700;
text-transform: uppercase;
}
.calendar-empty {
margin: 0;
color: #5c5c56;
}
@media (max-width: 900px) {
.calendar-layout {
grid-template-columns: 1fr;
}
}
@media (max-width: 640px) {
.calendar-title {
font-size: 22px;
}
.calendar-actions {
align-items: stretch;
}
.calendar-actions > * {
width: 100%;
}
.calendar-weekdays span {
padding: 8px 2px;
font-size: 11px;
}
.calendar-day {
min-height: 78px;
padding: 5px;
}
.calendar-event-pill,
.calendar-event-more {
font-size: 11px;
}
}