/*
Theme Name: Söderåsen Swiss
Theme URI: https://soderasentrail.se/
Description: Minimalistiskt barntema till Twenty Twenty-Five för Söderåsen Trail. Stil C – Swiss/rutnät: vitt, svart, tunna linjer, Inter och IBM Plex Mono (lokalt hostade), sparsam orange accent. Flerspråkigt (sv/en/de) med Polylang.
Author: Söderåsen Trail
Template: twentytwentyfive
Version: 0.4.1
Requires at least: 6.7
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: soderasen-swiss
*/

/* ---------- Basics ---------- */
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
::selection { background: #FF5A1F; color: #FFFFFF; }

/* ---------- Header ---------- */
.ss-header { position: relative; z-index: 20; }
.ss-header-inner { min-height: 64px; }
.ss-logo { margin: 0; font-size: 15px; font-weight: 700; line-height: 1; letter-spacing: -0.01em; white-space: nowrap; }
.ss-logo a { text-decoration: none; display: inline-flex; align-items: center; gap: 10px; color: inherit; }
.ss-logo a::before { content: ""; width: 10px; height: 10px; background: var(--wp--preset--color--accent-1); flex: none; }
.ss-logo a:hover { color: inherit; }

/* Nav: spans the right two thirds of the grid, items spread evenly */
.ss-nav { flex: 0 1 calc((100% + 24px) * 8 / 12 - 24px); justify-content: flex-end; }
.ss-nav .wp-block-navigation__responsive-container-open {
	font-family: var(--wp--preset--font-family--ibm-plex-mono); font-size: 11px; font-weight: 500;
	letter-spacing: 0.1em; text-transform: uppercase; color: var(--wp--preset--color--accent-4);
}
@media (min-width: 900px) {
	.ss-nav .wp-block-navigation__responsive-container:not(.is-menu-open),
	.ss-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-content,
	.ss-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container { width: 100%; }
	.ss-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container { justify-content: space-between; }
}
/* Collapse to the "Meny" button below 900px (core collapses at 600px) */
@media (min-width: 600px) and (max-width: 899px) {
	.ss-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.ss-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
/* Open overlay menu: big, simple list */
.ss-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--inter); font-size: 28px; font-weight: 700;
	letter-spacing: -0.03em; text-transform: none;
}

/* ---------- Hero ---------- */
.ss-hero-title .has-accent-1-color { color: var(--wp--preset--color--accent-1); }
.wp-block-button__link mark { background: none; margin-left: 1.75em; }
@media (max-width: 781px) {
	.ss-hero-meta { flex-direction: row !important; flex-wrap: wrap; gap: 16px !important; }
	.ss-hero-cta .wp-block-buttons { justify-content: flex-start !important; }
}
.ss-profile img { width: 100%; height: auto; display: block; }
.ss-profile .wp-block-image { margin: 0; }

/* ---------- Offering rows ---------- */
.ss-row h3 a, .ss-row .ss-go a { text-decoration: none; }
.ss-row:hover h3, .ss-row h3 a:hover { color: var(--wp--preset--color--accent-1); }
.ss-row .ss-go { color: var(--wp--preset--color--accent-1); font-size: 18px; line-height: 1; }
@media (min-width: 782px) {
	.ss-row > .wp-block-columns { align-items: baseline !important; }
}
@media (max-width: 781px) {
	.ss-row > .wp-block-columns { display: grid !important; grid-template-columns: 1fr auto; column-gap: 16px; row-gap: 8px; }
	.ss-row > .wp-block-columns > .wp-block-column { flex-basis: auto !important; }
	.ss-row > .wp-block-columns > .wp-block-column:nth-child(1) { grid-column: 1; grid-row: 1; }
	.ss-row > .wp-block-columns > .wp-block-column:nth-child(2) { grid-column: 1 / -1; grid-row: 2; margin-top: 2px; }
	.ss-row > .wp-block-columns > .wp-block-column:nth-child(3) { grid-column: 1 / -1; grid-row: 3; }
	.ss-row > .wp-block-columns > .wp-block-column:nth-child(4) { grid-column: 2; grid-row: 1; justify-self: end; }
}

/* ---------- Footer ---------- */
.ss-footer a { text-decoration: none; }
.ss-footer a:hover { color: var(--wp--preset--color--accent-1); }
.ss-footer .is-style-label { color: var(--wp--preset--color--accent-2); }
@media (min-width: 782px) {
	.ss-footer .ss-footer-end { text-align: right; }
}

/* ---------- Pages & posts ---------- */
.ss-entry-title { margin-top: 0; }
.wp-block-post-content a:where(:not(.wp-element-button)) { text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
/* About text: 7 and 5 grid columns of the 9-column content area */
@media (min-width: 782px) {
	.ss-w-7 { max-width: calc(77.778% - 2.67px); }
	.ss-w-5 { max-width: calc(55.555% - 10.67px); }
}
.ss-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.ss-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start; }

/* ---------- Tables: horizontal hairlines only (v0.2) ---------- */
.wp-block-table table { border-collapse: collapse; border-top: 1px solid var(--wp--preset--color--contrast); }
.wp-block-table td, .wp-block-table th { border: 0; border-bottom: 1px solid var(--wp--preset--color--accent-6); padding: 14px 16px 14px 0; text-align: left; vertical-align: top; }
.wp-block-table thead { border-bottom: 0; }
.wp-block-table thead th {
	font-family: var(--wp--preset--font-family--ibm-plex-mono); font-size: var(--wp--preset--font-size--label); font-weight: 500;
	letter-spacing: 0.1em; text-transform: uppercase; color: var(--wp--preset--color--accent-4);
}
.wp-block-table a { text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
@media (max-width: 600px) {
	.wp-block-table table.has-fixed-layout { table-layout: auto; }
	.wp-block-table td, .wp-block-table th { padding-right: 10px; font-size: 13px; hyphens: auto; overflow-wrap: anywhere; }
}

/* ---------- Details / FAQ (v0.2) ---------- */
.wp-block-details { border-top: 1px solid var(--wp--preset--color--accent-6); padding: 16px 0; }
.wp-block-details + .wp-block-details { margin-block-start: 0 !important; }
.wp-block-details:last-child { border-bottom: 1px solid var(--wp--preset--color--accent-6); }
.wp-block-details summary { font-weight: 600; font-size: var(--wp--preset--font-size--large); cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 16px; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; color: var(--wp--preset--color--accent-1); font-weight: 400; }
.wp-block-details[open] summary::after { content: "–"; }
.wp-block-details > p { color: var(--wp--preset--color--accent-4); margin-top: 10px; }

/* ---------- Rows & sections (v0.2) ---------- */
.ss-row .wp-block-separator { margin: 0; }
.ss-row h3 a { color: inherit; }
.ss-row .ss-go a { color: var(--wp--preset--color--accent-1); }
.wp-block-image img[style*="object-fit"] { width: 100%; }
.wp-block-table tr > :first-child:nth-last-child(2) { width: 30%; }
.wp-block-heading a { text-decoration: none; color: inherit; }
.wp-block-heading a:hover { color: var(--wp--preset--color--accent-1); }

/* ---------- Hero actions (v0.3) ---------- */
.ss-hero-actions { gap: 28px; }
.ss-hero-actions .ss-textlink { margin: 0; font-weight: 600; }
.ss-hero-actions .ss-textlink a { text-underline-offset: 0.25em; text-decoration-thickness: 1px; color: inherit; }
.ss-hero-actions .ss-textlink a:hover { color: var(--wp--preset--color--accent-1); }
@media (max-width: 781px) {
	.ss-hero-actions { justify-content: flex-start !important; }
}
/* Smaller ridge profile on the shorter front page */
.ss-profile img { height: clamp(56px, 7vw, 112px); }

/* ---------- Language switcher (v0.4.1) ---------- */
.ss-lang { flex: none; margin-left: 28px; }
.ss-lang ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 6px; align-items: center; }
.ss-lang li { margin: 0; }
.ss-lang a {
	display: inline-flex; align-items: center; gap: 6px; padding: 6px 4px; text-decoration: none;
	color: var(--wp--preset--color--accent-4); border-bottom: 2px solid transparent;
	font-family: var(--wp--preset--font-family--ibm-plex-mono); font-size: 11px; font-weight: 500; letter-spacing: 0.08em; line-height: 1;
}
.ss-lang .ss-flag { display: block; width: 21px; height: 14px; box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.12); opacity: 0.55; transition: opacity 0.15s ease; }
.ss-lang a:hover .ss-flag, .ss-lang a:focus-visible .ss-flag, .ss-lang .is-current .ss-flag { opacity: 1; }
.ss-lang a:hover, .ss-lang .is-current a { color: var(--wp--preset--color--contrast); }
.ss-lang .is-current a { border-bottom-color: var(--wp--preset--color--accent-1); }
.ss-lang .ss-lang-code { display: none; }
@media (max-width: 899px) {
	.ss-lang { margin-left: auto; margin-right: 16px; order: 2; }
	.ss-nav { order: 3; }
	.ss-lang ul { gap: 2px; }
}
