/* Fellrise — section-level layout. */

.fr-section-title { font-size: var(--fr-fs-3); margin-bottom: var(--fr-sp-3); }
.fr-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--fr-sp-3); flex-wrap: wrap; margin-bottom: var(--fr-sp-4); }
.fr-section-head .fr-section-title { margin: 0; }
.fr-section-lede { color: var(--fr-text-dim); max-width: 42rem; margin-top: 0.6em; }
section.fr-band { padding: var(--fr-sp-7) 0; border-top: 1px solid var(--fr-border); }

/* -------------------------------------------------------------- hero */

.fr-hero { padding: var(--fr-sp-8) 0 var(--fr-sp-6); }
.fr-hero__title { font-size: var(--fr-fs-6); max-width: 50rem; margin: var(--fr-sp-3) 0 var(--fr-sp-3); }
.fr-hero__lede { font-size: var(--fr-fs-1); color: var(--fr-text-dim); max-width: 40rem; margin-bottom: var(--fr-sp-4); }
.fr-hero__cta { display: flex; gap: var(--fr-sp-3); flex-wrap: wrap; margin-bottom: var(--fr-sp-6); }
.fr-hero__search { display: flex; gap: 0.6em; max-width: 34rem; margin-bottom: var(--fr-sp-6); }
.fr-hero__search input { flex: 1; }
.fr-hero__facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(11rem,100%),1fr)); gap: var(--fr-sp-4); border-top: 1px solid var(--fr-border); padding-top: var(--fr-sp-4); }
.fr-hero__facts dt { font-family: var(--fr-font-mono); font-size: var(--fr-fs-3); color: var(--fr-blaze-hi); }
:root[data-atmosphere="exposure"] .fr-hero__facts dt { color: var(--fr-glacier); }
.fr-hero__facts dd { margin: 0.2em 0 0; font-family: var(--fr-font-mono); font-size: var(--fr-fs-00); letter-spacing: 0.06em; text-transform: uppercase; color: var(--fr-text-faint); }
@media (max-width: 640px) { .fr-hero { padding: var(--fr-sp-6) 0 var(--fr-sp-5); } .fr-hero__title { font-size: var(--fr-fs-5); } }

/* -------------------------------------------------------------- trail cards */

.fr-trail-filters { display: flex; flex-wrap: wrap; gap: 0.6em; padding: var(--fr-sp-3) 0 var(--fr-sp-4); }
.fr-trail-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(19rem,100%),1fr)); gap: var(--fr-sp-4); }
.fr-trail-card { overflow: hidden; }
.fr-trail-card__media { aspect-ratio: 4/5; overflow: hidden; background: var(--fr-bg-2); border-radius: var(--fr-radius) var(--fr-radius) 0 0; }
.fr-trail-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 700ms var(--fr-ease-out); }
.fr-trail-card:hover .fr-trail-card__media img { transform: scale(1.05); }
.fr-trail-card__body { padding: var(--fr-sp-3); }
.fr-trail-card__region { font-family: var(--fr-font-mono); font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--fr-text-faint); }
.fr-trail-card__body h3 { font-size: var(--fr-fs-1); margin: 0.3em 0; }
.fr-trail-card__stats { display: flex; gap: 1em; font-family: var(--fr-font-mono); font-size: 0.78rem; color: var(--fr-text-dim); margin-top: 0.6em; flex-wrap: wrap; }
.fr-trail-card__difficulty { display: inline-block; margin-top: 0.6em; font-size: 0.7rem; padding: 0.3em 0.8em; border-radius: 999px; text-transform: uppercase; letter-spacing: 0.05em; background: rgba(255,90,31,0.14); color: var(--fr-blaze-hi); }

/* -------------------------------------------------------------- ateliers / tool nav grid */

.fr-tool-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(15rem,100%),1fr)); gap: var(--fr-sp-4); }
.fr-tool-card { padding: var(--fr-sp-4); display: flex; flex-direction: column; gap: 0.6em; min-height: 12rem; }
.fr-tool-card__icon { font-size: 1.8rem; }
.fr-tool-card h3 { font-size: var(--fr-fs-1); margin-top: auto; }
.fr-tool-card p { font-size: 0.85rem; color: var(--fr-text-dim); margin: 0; }

/* -------------------------------------------------------------- elevation lab */

#fr-elevation-lab { padding: var(--fr-sp-4); }
.fr-elab-tabs { display: flex; flex-wrap: wrap; gap: 0.5em; margin-bottom: var(--fr-sp-4); }
.fr-elab-header { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--fr-sp-3); padding-bottom: var(--fr-sp-3); border-bottom: 1px solid var(--fr-border); margin-bottom: var(--fr-sp-3); }
.fr-elab-trail-name { font-size: var(--fr-fs-2); }
.fr-elab-profiles { display: flex; gap: 0.4em; flex-wrap: wrap; }
.fr-elab-profile { padding: 0.5em 1em; border-radius: 999px; font-family: var(--fr-font-mono); font-size: 0.72rem; border: 1px solid var(--fr-border); color: var(--fr-text-dim); }
.fr-elab-profile.is-active { border-color: var(--fr-border-accent); color: #fff; background: rgba(255,90,31,0.12); }
.fr-elab-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--fr-sp-3); margin-bottom: var(--fr-sp-4); }
@media (max-width: 700px) { .fr-elab-stats { grid-template-columns: repeat(2, 1fr); } }
.fr-elab-stat { padding: var(--fr-sp-3); border-radius: var(--fr-radius-sm); background: rgba(0,0,0,0.3); border: 1px solid var(--fr-border); }
.fr-elab-stat span { display: block; font-family: var(--fr-font-mono); font-size: 0.68rem; text-transform: uppercase; color: var(--fr-text-faint); margin-bottom: 0.3em; }
.fr-elab-stat strong { font-family: var(--fr-font-mono); font-size: var(--fr-fs-2); color: #fff; }
.fr-elab-svg-wrap { background: rgba(0,0,0,0.35); border-radius: var(--fr-radius-sm); border: 1px solid var(--fr-border); padding: var(--fr-sp-3); }
.fr-elab-svg { width: 100%; height: auto; cursor: pointer; }
.fr-elab-slider { width: 100%; margin-top: var(--fr-sp-3); accent-color: var(--fr-blaze); }
.fr-elab-controls { display: flex; align-items: center; gap: 0.8em; margin-top: var(--fr-sp-3); flex-wrap: wrap; }
.fr-elab-waypoint { margin-top: var(--fr-sp-3); padding: var(--fr-sp-3); border-radius: var(--fr-radius-sm); background: rgba(0,0,0,0.3); border: 1px solid var(--fr-border); }
.fr-elab-waypoint-name { font-weight: 700; }

/* -------------------------------------------------------------- risk radar */

#fr-risk-radar { padding: var(--fr-sp-4); }
.fr-radar-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--fr-sp-4); }
@media (max-width: 900px) { .fr-radar-grid { grid-template-columns: 1fr; } }
.fr-radar-panel { padding: var(--fr-sp-4); }
.fr-radar-slider { margin-bottom: var(--fr-sp-3); }
.fr-radar-slider label { display: flex; justify-content: space-between; font-family: var(--fr-font-mono); font-size: 0.78rem; color: var(--fr-text-dim); margin-bottom: 0.4em; }
.fr-radar-slider input { width: 100%; accent-color: var(--fr-blaze); }
.fr-radar-out { display: grid; grid-template-columns: 1fr 1fr; gap: var(--fr-sp-3); margin-top: var(--fr-sp-3); }
.fr-radar-out-box { padding: var(--fr-sp-3); border-radius: var(--fr-radius-sm); background: rgba(0,0,0,0.3); border: 1px solid var(--fr-border); }
.fr-radar-out-box span { display: block; font-family: var(--fr-font-mono); font-size: 0.68rem; text-transform: uppercase; color: var(--fr-text-faint); }
.fr-radar-out-box strong { font-family: var(--fr-font-mono); font-size: var(--fr-fs-2); }
.fr-frostbite-box { margin-top: var(--fr-sp-3); padding: var(--fr-sp-3); border-radius: var(--fr-radius-sm); font-size: 0.85rem; font-weight: 700; }
.fr-risk-low { background: rgba(52,211,153,0.14); color: #6ee7b7; }
.fr-risk-moderate { background: rgba(250,204,21,0.14); color: #fde68a; }
.fr-risk-considerable { background: rgba(251,146,60,0.14); color: #fdba74; }
.fr-risk-high, .fr-risk-extreme { background: rgba(244,63,94,0.14); color: #fca5a5; }
.fr-avalanche-matrix { display: grid; gap: 0.6em; }
.fr-avalanche-tier { padding: 0.8em 1em; border-radius: var(--fr-radius-sm); border: 1px solid var(--fr-border); }
.fr-avalanche-level { font-family: var(--fr-font-mono); font-size: 0.72rem; font-weight: 700; display: block; margin-bottom: 0.3em; }
.fr-avalanche-tier p { margin: 0; font-size: 0.82rem; color: var(--fr-text-dim); }
.fr-sos-btn { width: 100%; margin-top: var(--fr-sp-3); }
.fr-sos-btn.is-active { animation: fr-pulse 0.6s ease infinite; }
@keyframes fr-pulse { 50% { opacity: 0.6; } }

/* -------------------------------------------------------------- gear calculator */

#fr-gear-calculator { padding: var(--fr-sp-4); }
.fr-gear-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--fr-sp-3); margin-bottom: var(--fr-sp-4); }
@media (max-width: 700px) { .fr-gear-summary { grid-template-columns: 1fr; } }
.fr-unit-toggle-row { display: flex; gap: 0.4em; margin-bottom: var(--fr-sp-3); }
.fr-unit-toggle { padding: 0.4em 1em; border-radius: 999px; border: 1px solid var(--fr-border); font-family: var(--fr-font-mono); font-size: 0.72rem; }
.fr-unit-toggle.is-active { border-color: var(--fr-border-accent); background: rgba(255,90,31,0.12); }
.fr-gear-category { margin-bottom: var(--fr-sp-3); }
.fr-gear-category h3 { font-family: var(--fr-font-mono); font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--fr-text-faint); margin-bottom: 0.5em; }
.fr-gear-row { display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: 0.8em; padding: 0.6em 0.4em; border-bottom: 1px solid var(--fr-border); font-size: 0.85rem; }
.fr-gear-row.is-off { opacity: 0.4; }
.fr-gear-row__brand { color: var(--fr-text-faint); font-size: 0.75rem; }
.fr-gear-row__weight { font-family: var(--fr-font-mono); }
.fr-gear-add-form { display: flex; gap: 0.6em; flex-wrap: wrap; margin-top: var(--fr-sp-4); padding-top: var(--fr-sp-4); border-top: 1px solid var(--fr-border); }
.fr-gear-add-form input, .fr-gear-add-form select { padding: 0.6em 0.8em; border-radius: var(--fr-radius-sm); border: 1px solid var(--fr-border); background: rgba(0,0,0,0.3); color: #fff; }

/* -------------------------------------------------------------- itinerary */

#fr-itinerary { padding: var(--fr-sp-4); }
.fr-itinerary-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: var(--fr-sp-5); }
@media (max-width: 900px) { .fr-itinerary-grid { grid-template-columns: 1fr; } }
.fr-roadbook-table { width: 100%; border-collapse: collapse; margin-top: var(--fr-sp-3); font-size: 0.85rem; }
.fr-roadbook-table th, .fr-roadbook-table td { text-align: left; padding: 0.5em 0.6em; border-bottom: 1px solid var(--fr-border); }
.fr-checkbox-row { display: flex; align-items: center; gap: 0.6em; margin-bottom: 0.6em; font-size: 0.85rem; }

/* -------------------------------------------------------------- survival masterclass */

.fr-survival-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(16rem,100%),1fr)); gap: var(--fr-sp-4); }
.fr-survival-card { padding: var(--fr-sp-4); }
.fr-survival-card h3 { font-size: var(--fr-fs-1); margin-bottom: 0.5em; }
.fr-survival-card p { color: var(--fr-text-dim); font-size: 0.88rem; margin: 0 0 0.6em; }

/* -------------------------------------------------------------- single trail */

.fr-trail-head { display: grid; grid-template-columns: 1.1fr 1fr; gap: var(--fr-sp-6); margin-bottom: var(--fr-sp-6); }
@media (max-width: 900px) { .fr-trail-head { grid-template-columns: 1fr; } }
.fr-trail-hero-media { aspect-ratio: 4/5; overflow: hidden; border-radius: var(--fr-radius); background: var(--fr-bg-2); }
.fr-trail-hero-media img { width: 100%; height: 100%; object-fit: cover; }
.fr-trail-title { font-size: var(--fr-fs-4); margin: 0.3em 0; }
.fr-trail-sub { color: var(--fr-text-dim); margin-bottom: var(--fr-sp-3); }
.fr-specs dl { display: grid; gap: 0; }
.fr-spec-row { display: grid; grid-template-columns: 12rem 1fr; gap: var(--fr-sp-3); padding: 0.8em 0; border-bottom: 1px solid var(--fr-border); font-size: 0.9rem; }
.fr-spec-row dt { color: var(--fr-text-faint); font-family: var(--fr-font-mono); font-size: 0.75rem; }
.fr-spec-row dd { margin: 0; }
@media (max-width: 560px) { .fr-spec-row { grid-template-columns: 1fr; gap: 0.2em; } }
.fr-trail-narrative p { color: var(--fr-text-dim); max-width: 42rem; margin-bottom: 1.1em; }
.fr-trail-narrative h3 { font-size: var(--fr-fs-1); margin: var(--fr-sp-4) 0 0.5em; }
.fr-gallery-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(10rem,100%),1fr)); gap: 0.6em; margin-top: var(--fr-sp-3); }
.fr-gallery-grid img { aspect-ratio: 1; object-fit: cover; border-radius: var(--fr-radius-sm); }

/* -------------------------------------------------------------- shop */

.fr-shop { padding: var(--fr-sp-5) 0 var(--fr-sp-8); }
ul.products { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(16rem,100%),1fr)) !important; gap: var(--fr-sp-4) !important; list-style: none !important; margin: 0 !important; padding: 0 !important; }
ul.products li.product {
	background: var(--fr-card-grad);
	backdrop-filter: blur(20px) saturate(150%);
	border: 1px solid var(--fr-border);
	border-radius: var(--fr-radius);
	padding: var(--fr-sp-3);
	transition: border-color var(--fr-dur-fast) ease;
}
ul.products li.product:hover { border-color: var(--fr-border-accent); }
ul.products li.product img { border-radius: var(--fr-radius-sm); aspect-ratio: 4/5; object-fit: cover; }
ul.products li.product .woocommerce-loop-product__title { font-size: var(--fr-fs-1); margin: 0.5em 0 0.2em; color: #fff; }
ul.products li.product .price { font-family: var(--fr-font-mono); color: var(--fr-blaze-hi); }
:root[data-atmosphere="exposure"] ul.products li.product .price { color: var(--fr-glacier); }
ul.products li.product .button { margin-top: 0.6em; }
.fr-product-specs { margin-top: var(--fr-sp-4); padding-top: var(--fr-sp-4); border-top: 1px solid var(--fr-border); }
.fr-product-specs h3 { font-size: var(--fr-fs-1); margin: 1em 0 0.4em; }
.fr-product-specs p { color: var(--fr-text-dim); }

/* -------------------------------------------------------------- emergency info */

.fr-emergency-info { padding: var(--fr-sp-4); }
.fr-emergency-info__disclaimer { padding: var(--fr-sp-3); border-radius: var(--fr-radius-sm); background: rgba(244,63,94,0.1); border: 1px solid rgba(244,63,94,0.3); margin-bottom: var(--fr-sp-3); }
.fr-emergency-info__disclaimer strong { color: #fca5a5; display: block; margin-bottom: 0.4em; }
.fr-emergency-info h3 { font-size: var(--fr-fs-1); margin: var(--fr-sp-3) 0 0.4em; }
.fr-emergency-info p { color: var(--fr-text-dim); }

/* -------------------------------------------------------------- posts (generic) */

.fr-post-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(18rem,100%),1fr)); gap: var(--fr-sp-4); }
.fr-post-card__media { aspect-ratio: 4/5; overflow: hidden; border-radius: var(--fr-radius) var(--fr-radius) 0 0; }
.fr-post-card__body { padding: var(--fr-sp-3); }

/* -------------------------------------------------------------- core content classes */
/* Alignment, captions and sticky posts are WordPress core conventions that
   editors rely on inside the block editor's content area — styled here so
   they render correctly wherever fr-page-content or the_content() is used. */

.fr-page-content .alignleft, .fr-post-card .alignleft { float: left; margin: 0.3em var(--fr-sp-3) var(--fr-sp-2) 0; }
.fr-page-content .alignright, .fr-post-card .alignright { float: right; margin: 0.3em 0 var(--fr-sp-2) var(--fr-sp-3); }
.fr-page-content .aligncenter, .fr-post-card .aligncenter { display: block; margin: var(--fr-sp-2) auto; }
.fr-page-content .wp-caption { max-width: 100%; }
.fr-page-content .wp-caption img { display: block; width: 100%; height: auto; }
.fr-page-content .wp-caption-text,
.fr-page-content .gallery-caption { font-size: var(--fr-fs-0, 0.85rem); color: var(--fr-text-faint); margin-top: 0.5em; }
.fr-page-links { display: flex; align-items: center; gap: 0.5em; flex-wrap: wrap; margin-top: var(--fr-sp-4); font-size: 0.9rem; color: var(--fr-text-dim); }
.fr-page-links a { text-decoration: underline; }
article.sticky { border-left: 3px solid var(--fr-blaze); padding-left: var(--fr-sp-2); }
.bypostauthor { position: relative; }
