/*
Theme Name: FreezerSystems
Theme URI: https://freezersystems.com/
Author: Atlantic ERP
Description: A purpose-built block theme for commercial walk-in coolers, freezers, cold rooms, and refrigeration systems.
Version: 1.3.0
Requires at least: 6.6
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: freezersystems
Tags: full-site-editing, block-patterns, custom-colors, custom-logo, editor-style, wide-blocks
*/

:root {
  --fs-ink: #082237;
  --fs-ink-soft: #173d55;
  --fs-blue: #0b6e99;
  --fs-cyan: #38d6e8;
  --fs-cyan-deep: #08a9c0;
  --fs-frost: #f2f8fa;
  --fs-white: #ffffff;
  --fs-line: #d7e6eb;
  --fs-muted: #607887;
  --fs-lime: #c9f36a;
  --fs-shadow: 0 24px 70px rgba(4, 31, 49, .12);
  --fs-radius: 1.4rem;
  --fs-max: 1440px;
}

html { scroll-behavior: smooth; }
body { overflow-x: hidden; }
body, button, input, select, textarea { -webkit-font-smoothing: antialiased; }
a { text-underline-offset: .18em; }
img { height: auto; }
::selection { color: var(--fs-ink); background: var(--fs-cyan); }

.wp-site-blocks { overflow: clip; }
.fs-shell {
  width: min(calc(100% - clamp(2rem, 5vw, 5rem)), var(--fs-max));
  max-width: var(--fs-max) !important;
  margin-inline: auto !important;
}
.fs-section { padding-block: clamp(4rem, 7vw, 7.5rem); }
.fs-section-tight { padding-block: clamp(2.8rem, 5vw, 5rem); }
.fs-surface { position: relative; background: var(--fs-frost); }
.fs-surface::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .55;
  background-image: linear-gradient(rgba(8, 34, 55, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(8, 34, 55, .035) 1px, transparent 1px);
  background-size: 42px 42px;
}
.fs-dark { color: var(--fs-white); background: var(--fs-ink); }
.fs-dark a:not(.wp-element-button) { color: var(--fs-white); }
.fs-eyebrow { margin: 0 0 1rem; color: var(--fs-blue); font-size: .75rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.fs-dark .fs-eyebrow { color: var(--fs-cyan); }
.fs-display { max-width: 16ch; margin-top: 0; font-size: clamp(3.15rem, 7vw, 6.7rem)!important; line-height: .92!important; letter-spacing: -.065em!important; }
.fs-section-title { max-width: 16ch; margin-top: 0; font-size: clamp(2.35rem, 4.3vw, 4.6rem)!important; line-height: 1!important; letter-spacing: -.045em!important; }
.fs-lede { max-width: 42rem; color: var(--fs-muted); font-size: clamp(1.05rem, 1.7vw, 1.28rem); line-height: 1.65; }
.fs-dark .fs-lede { color: #b7cbd5; }
.fs-rule { width: 100%; height: 1px; border: 0; background: var(--fs-line); }
.fs-dark .fs-rule { background: rgba(255,255,255,.14); }

.wp-element-button, .wp-block-button__link {
  border: 1px solid var(--fs-ink); border-radius: 999px!important; padding: .88rem 1.35rem!important;
  font-size: .78rem!important; font-weight: 800!important; letter-spacing: .025em; text-decoration: none!important;
  box-shadow: none!important; transition: transform .2s ease, color .2s ease, background .2s ease, border-color .2s ease;
}
.wp-element-button:hover, .wp-block-button__link:hover { transform: translateY(-2px); }
.is-style-outline > .wp-block-button__link { color: var(--fs-ink)!important; background: transparent!important; }
.fs-dark .is-style-outline > .wp-block-button__link { color: var(--fs-white)!important; border-color: rgba(255,255,255,.5)!important; }
.fs-button-cyan > .wp-block-button__link { color: var(--fs-ink)!important; border-color: var(--fs-cyan)!important; background: var(--fs-cyan)!important; }
.fs-button-cyan > .wp-block-button__link:hover { border-color: var(--fs-lime)!important; background: var(--fs-lime)!important; }

.site-header { position: sticky; z-index: 100; top: 0; border-bottom: 1px solid rgba(8,34,55,.09); background: rgba(255,255,255,.92); backdrop-filter: blur(18px); }
.admin-bar .site-header { top: 32px; }
.site-header.is-scrolled { box-shadow: 0 10px 36px rgba(4,31,49,.08); }
.site-header__inner { min-height: 82px; }
.site-brand { gap: .7rem!important; }
.site-brand .wp-block-site-logo img { border-radius: .6rem; }
.site-brand .wp-block-site-title { margin: 0; font-size: 1.05rem; font-weight: 850; letter-spacing: -.035em; }
.site-brand .wp-block-site-title a { text-decoration: none; }
.site-brand::before {
  content: ""; width: 2.35rem; height: 2.35rem; flex: none; border-radius: .7rem;
  background: var(--fs-ink) url("assets/images/ice-mark.svg") center/1.35rem no-repeat;
}
.site-brand:has(.wp-block-site-logo img)::before { display: none; }
.site-header .wp-block-navigation { font-size: .78rem; font-weight: 750; }
.site-header .wp-block-navigation-item__content { position: relative; padding-block: .5rem; text-decoration: none; }
.site-header .wp-block-navigation-item__content::after { content: ""; position: absolute; right: 0; bottom: .2rem; left: 0; height: 2px; transform: scaleX(0); background: var(--fs-cyan-deep); transition: transform .2s ease; }
.site-header .wp-block-navigation-item__content:hover::after { transform: scaleX(1); }
.site-header .wp-block-navigation__submenu-container { min-width: 16rem!important; padding: .55rem!important; border: 1px solid var(--fs-line)!important; border-radius: .8rem; background: var(--fs-white)!important; box-shadow: 0 18px 42px rgba(4,31,49,.14); }
.site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content { width: auto; padding: .7rem .8rem; border-radius: .5rem; color: var(--fs-ink)!important; }
.site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--fs-frost); }
.site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content::after { display: none; }

.fs-hero { position: relative; min-height: min(820px, calc(100svh - 82px)); color: var(--fs-white); background: var(--fs-ink); isolation: isolate; }
.fs-hero::before { content: ""; position: absolute; z-index: -2; inset: 0; background: radial-gradient(circle at 75% 32%, rgba(56,214,232,.23), transparent 30%), linear-gradient(135deg, #061c2e 0%, #0a314a 60%, #075e78 100%); }
.fs-hero::after { content: ""; position: absolute; z-index: -1; inset: 0; opacity: .24; background-image: linear-gradient(rgba(255,255,255,.075) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.075) 1px, transparent 1px); background-size: 62px 62px; mask-image: linear-gradient(90deg, transparent, #000 45%); }
.fs-hero__inner { min-height: inherit; padding-block: clamp(4rem, 8vw, 8rem); }
.fs-hero__copy { position: relative; z-index: 2; }
.fs-hero .fs-eyebrow { display: inline-flex; align-items: center; gap: .6rem; color: var(--fs-cyan); }
.fs-hero .fs-eyebrow::before { content: ""; width: 2rem; height: 1px; background: currentColor; }
.fs-hero .fs-lede { max-width: 37rem; color: #c5d7df; }
.fs-hero__actions { margin-top: 2rem!important; }
.fs-hero__visual { position: relative; min-height: 520px; }
.fs-cold-room {
  position: absolute; top: 4%; right: -8%; width: min(43vw, 550px); aspect-ratio: 1.06;
  background: url("assets/images/cold-room.svg") center/contain no-repeat;
  filter: drop-shadow(0 40px 44px rgba(0,0,0,.28)); transform: perspective(1000px) rotateY(-3deg);
}
.fs-temp-card { position: absolute; z-index: 2; padding: 1rem 1.1rem; border: 1px solid rgba(255,255,255,.18); border-radius: 1rem; background: rgba(5,28,45,.72); box-shadow: 0 18px 40px rgba(0,0,0,.2); backdrop-filter: blur(14px); }
.fs-temp-card strong, .fs-temp-card small { display: block; }
.fs-temp-card strong { color: var(--fs-white); font-size: 1.5rem; letter-spacing: -.04em; }
.fs-temp-card small { margin-top: .2rem; color: #a9c3cf; font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.fs-temp-card--one { top: 13%; left: 0; }
.fs-temp-card--two { right: 2%; bottom: 8%; }
.fs-hero__rail { position: absolute; right: 0; bottom: 1.8rem; left: 0; z-index: 3; }
.fs-hero__rail-inner { display: flex; align-items: center; gap: clamp(1rem, 3vw, 3rem); padding-top: 1.15rem; border-top: 1px solid rgba(255,255,255,.2); color: #a9c3cf; font-size: .68rem; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
.fs-hero__rail-inner span { display: inline-flex; align-items: center; gap: .55rem; }
.fs-hero__rail-inner span::before { content: ""; width: .4rem; height: .4rem; border-radius: 50%; background: var(--fs-cyan); box-shadow: 0 0 0 .25rem rgba(56,214,232,.12); }

.fs-intro-grid { align-items: end!important; }
.fs-intro-list { margin: 0; padding: 0; list-style: none; counter-reset: fs-list; }
.fs-intro-list li { display: grid; grid-template-columns: 2.5rem 1fr; gap: .7rem; padding: .9rem 0; border-bottom: 1px solid var(--fs-line); color: var(--fs-ink); font-weight: 750; counter-increment: fs-list; }
.fs-intro-list li::before { content: "0" counter(fs-list); color: var(--fs-blue); font-size: .67rem; letter-spacing: .08em; }

.fs-card-grid { gap: 1rem!important; }
.fs-solution-card { position: relative; min-height: 370px; overflow: hidden; border: 1px solid var(--fs-line); border-radius: var(--fs-radius); background: var(--fs-white); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.fs-solution-card:hover { transform: translateY(-6px); border-color: #a7ced8; box-shadow: var(--fs-shadow); }
.fs-solution-card__art { position: relative; min-height: 185px; overflow: hidden; background: linear-gradient(145deg, #dfeef2, #f8fcfd); }
.fs-solution-card__art::before { content: ""; position: absolute; width: 68%; height: 58%; right: -5%; bottom: 0; border: 1px solid #87aebc; background: linear-gradient(135deg, #fff, #c7dbe2); box-shadow: -18px 22px 40px rgba(8,34,55,.12); transform: skewY(-5deg); }
.fs-solution-card__art::after { content: ""; position: absolute; right: 27%; bottom: 8%; width: 17%; height: 42%; border: 2px solid #547f90; border-radius: .25rem; background: linear-gradient(90deg, #bbd1d9, #f8fbfc); }
.fs-solution-card:nth-child(2) .fs-solution-card__art { background: linear-gradient(145deg, #d9e9ef, #dffaff); }
.fs-solution-card:nth-child(3) .fs-solution-card__art::before { width: 82%; background: linear-gradient(90deg, #f6fbfc 0 49%, #9fd3df 50% 51%, #d3e5ea 52%); }
.fs-solution-card:nth-child(4) .fs-solution-card__art::before { width: 45%; height: 70%; border-radius: .5rem; background: repeating-linear-gradient(0deg, #d8e8ec 0 10px, #9bbac4 11px 13px); }
.fs-solution-card__body { padding: 1.45rem; }
.fs-solution-card__body h2 { margin: 0 0 .65rem; font-size: 1.25rem; letter-spacing: -.025em; }
.fs-solution-card__body p { margin: 0; color: var(--fs-muted); font-size: .9rem; line-height: 1.65; }
.fs-card-link { display: inline-flex; align-items: center; gap: .5rem; margin-top: 1.2rem; color: var(--fs-blue); font-size: .75rem; font-weight: 800; text-decoration: none; }
.fs-card-link::after { content: "→"; transition: transform .2s ease; }
.fs-card-link:hover::after { transform: translateX(4px); }

.fs-spec-band { position: relative; overflow: hidden; }
.fs-spec-band::after { content: ""; position: absolute; top: -12rem; right: -10rem; width: 36rem; height: 36rem; border: 1px solid rgba(56,214,232,.18); border-radius: 50%; box-shadow: 0 0 0 6rem rgba(56,214,232,.035), 0 0 0 12rem rgba(56,214,232,.025); }
.fs-spec-grid { position: relative; z-index: 1; }
.fs-spec-list { display: grid; gap: .6rem; }
.fs-spec-item { display: grid; grid-template-columns: 3rem 1fr auto; align-items: center; gap: 1rem; padding: 1.05rem; border: 1px solid rgba(255,255,255,.13); border-radius: .85rem; background: rgba(255,255,255,.045); }
.fs-spec-item > strong { display: grid; width: 2.4rem; height: 2.4rem; place-items: center; border-radius: .6rem; color: var(--fs-ink); background: var(--fs-cyan); font-size: .7rem; }
.fs-spec-item h2 { margin: 0; color: var(--fs-white); font-size: 1rem; }
.fs-spec-item p { margin: .22rem 0 0; color: #9fb9c5; font-size: .78rem; }
.fs-spec-item > span { color: #7897a7; font-size: 1.1rem; }

.fs-industry-grid { gap: .75rem!important; }
.fs-industry-card { min-height: 190px; padding: 1.35rem; border: 1px solid var(--fs-line); border-radius: 1rem; background: rgba(255,255,255,.82); }
.fs-industry-card span { display: grid; width: 2.4rem; height: 2.4rem; place-items: center; border-radius: .6rem; color: var(--fs-blue); background: #daf2f5; font-size: 1rem; }
.fs-industry-card h2 { margin: 2rem 0 .5rem; font-size: 1rem; }
.fs-industry-card p { margin: 0; color: var(--fs-muted); font-size: .78rem; line-height: 1.55; }

.fs-process { counter-reset: fs-step; }
.fs-process-step { position: relative; padding: 1.4rem 0 1.4rem 5rem; border-top: 1px solid var(--fs-line); counter-increment: fs-step; }
.fs-process-step::before { content: "0" counter(fs-step); position: absolute; top: 1.45rem; left: 0; color: var(--fs-cyan-deep); font-size: .72rem; font-weight: 850; letter-spacing: .12em; }
.fs-process-step h2 { margin: 0 0 .45rem; font-size: 1.15rem; }
.fs-process-step p { max-width: 42rem; margin: 0; color: var(--fs-muted); font-size: .88rem; line-height: 1.6; }

.fs-resource-card { padding: 1.4rem; border: 1px solid var(--fs-line); border-radius: 1rem; background: var(--fs-white); }
.fs-resource-card .fs-tag { display: inline-block; padding: .35rem .55rem; border-radius: 999px; color: var(--fs-blue); background: #e3f5f7; font-size: .62rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.fs-resource-card h2 { margin: 1.5rem 0 .6rem; font-size: 1.15rem; }
.fs-resource-card p { color: var(--fs-muted); font-size: .82rem; line-height: 1.6; }

.fs-cta { position: relative; overflow: hidden; border-radius: clamp(1.5rem, 4vw, 3rem); color: var(--fs-white); background: linear-gradient(125deg, #07314a, #086d86); box-shadow: var(--fs-shadow); }
.fs-cta::before { content: ""; position: absolute; right: -12%; bottom: -85%; width: 44%; aspect-ratio: 1; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; box-shadow: 0 0 0 4rem rgba(255,255,255,.035), 0 0 0 8rem rgba(255,255,255,.025); }
.fs-cta__inner { position: relative; z-index: 1; padding: clamp(2rem, 5vw, 4.5rem); }
.fs-cta h2 { max-width: 15ch; margin-top: 0; font-size: clamp(2rem, 4vw, 4rem)!important; line-height: 1!important; letter-spacing: -.045em!important; }
.fs-cta p { max-width: 38rem; color: #c2d8df; }

.fs-page-hero { padding-block: clamp(4rem, 8vw, 8rem); color: var(--fs-white); background: radial-gradient(circle at 75% 20%, rgba(56,214,232,.22), transparent 28%), var(--fs-ink); }
.fs-page-hero h1 { max-width: 17ch; margin-top: .5rem; font-size: clamp(2.8rem, 6vw, 5.8rem)!important; line-height: .98!important; letter-spacing: -.055em!important; }
.fs-post-taxonomy { gap: .55rem!important; margin-bottom: .8rem; color: var(--fs-cyan); font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.fs-post-taxonomy a { color: inherit; text-decoration: none; }
.fs-post-taxonomy a:hover { color: var(--fs-white); }
.fs-post-taxonomy .taxonomy-category::before { content: "/"; margin-right: .55rem; color: #7898a8; }
.fs-post-taxonomy .taxonomy-category { margin: 0; }
.fs-content { padding-block: clamp(3rem, 6vw, 6rem); }
.fs-content > * { max-width: 760px; margin-inline: auto; }
.fs-content > .alignwide { max-width: var(--fs-max); }
.fs-content h2 { margin-top: 2.2em; letter-spacing: -.025em; }
.fs-content p, .fs-content li { color: #405d6c; line-height: 1.8; }
.fs-content blockquote { margin-block: 2rem; padding: 1.25rem 1.5rem; border-left: 4px solid var(--fs-cyan-deep); background: var(--fs-frost); }
.single-post .fs-content > * {
  width: min(calc(100% - clamp(2rem, 5vw, 5rem)), var(--fs-max));
  max-width: var(--fs-max) !important;
}
.fs-post-faq { margin-block: clamp(3rem, 7vw, 6rem); padding: clamp(1.4rem, 4vw, 3rem); border: 1px solid var(--fs-line); border-radius: var(--fs-radius); background: var(--fs-frost); }
.fs-post-faq__intro { margin-bottom: 1.5rem; }
.fs-post-faq__intro h2 { margin: 0; font-size: clamp(2rem, 4vw, 3.4rem); line-height: 1; letter-spacing: -.045em; }
.fs-post-faq details { margin: 0; border-top: 1px solid #c7dce3; }
.fs-post-faq details:last-child { border-bottom: 1px solid #c7dce3; }
.fs-post-faq summary { position: relative; padding: 1.25rem 3rem 1.25rem 0; color: var(--fs-ink); font-size: 1.05rem; font-weight: 780; line-height: 1.4; cursor: pointer; list-style: none; }
.fs-post-faq summary::-webkit-details-marker { display: none; }
.fs-post-faq summary::after { content: "+"; position: absolute; top: 50%; right: .3rem; width: 1.8rem; height: 1.8rem; border-radius: 50%; color: var(--fs-ink); background: var(--fs-cyan); font-size: 1.25rem; font-weight: 500; line-height: 1.72rem; text-align: center; transform: translateY(-50%); }
.fs-post-faq details[open] summary::after { content: "−"; }
.fs-post-faq details > :not(summary) { max-width: 52rem; margin: 0; padding: 0 3rem 1.3rem 0; color: var(--fs-muted); }
.fs-post-faq summary:focus-visible { outline: 3px solid var(--fs-cyan-deep); outline-offset: 4px; }

.fs-solutions-directory { padding-block: clamp(3.5rem, 7vw, 7rem); }
.fs-solutions-directory__intro { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(18rem,.8fr); gap: clamp(2rem, 6vw, 6rem); align-items: end; margin-bottom: clamp(2.2rem, 5vw, 4rem); }
.fs-solutions-directory__intro h2 { max-width: 15ch; margin: 0; font-size: clamp(2.2rem, 4.5vw, 4.5rem); line-height: 1; letter-spacing: -.045em; }
.fs-solutions-directory__intro p:last-child { max-width: 38rem; margin: 0; color: var(--fs-muted); line-height: 1.75; }
.fs-solutions-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1rem; }
.fs-category-card { position: relative; overflow: hidden; min-height: 30rem; border: 1px solid var(--fs-line); border-radius: var(--fs-radius); color: var(--fs-white); background: var(--fs-ink); box-shadow: 0 20px 50px rgba(4,31,49,.1); isolation: isolate; }
.fs-category-card::after { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg, rgba(4,24,38,.04) 25%, rgba(4,24,38,.94) 88%); }
.fs-category-card__media { position: absolute; z-index: -2; inset: 0; background: radial-gradient(circle at 75% 20%, rgba(56,214,232,.38), transparent 33%), linear-gradient(145deg,#0a314a,#075e78); transition: transform .4s ease; }
.fs-category-card__media img { width: 100%; height: 100%; object-fit: cover; }
.fs-category-card:hover .fs-category-card__media { transform: scale(1.035); }
.fs-category-card__body { position: absolute; right: 0; bottom: 0; left: 0; padding: clamp(1.4rem, 3vw, 2.2rem); }
.fs-category-card__count { display: inline-block; margin-bottom: .8rem; color: var(--fs-cyan); font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.fs-category-card h2 { margin: 0 0 .65rem; color: var(--fs-white); font-size: clamp(1.5rem, 2.4vw, 2.15rem); line-height: 1.05; letter-spacing: -.035em; }
.fs-category-card p { margin: 0; color: #c4d6de; font-size: .88rem; line-height: 1.65; }
.fs-category-card__link { position: absolute; z-index: 3; inset: 0; }
.fs-category-card__link:focus-visible { outline: 4px solid var(--fs-cyan); outline-offset: -6px; }
.fs-category-card__arrow { display: inline-grid; place-items: center; position: absolute; right: 1.4rem; top: 1.4rem; width: 2.7rem; height: 2.7rem; border: 1px solid rgba(255,255,255,.4); border-radius: 50%; color: var(--fs-white); background: rgba(4,24,38,.42); backdrop-filter: blur(10px); }
.fs-solutions-empty { padding: 1.5rem; border: 1px solid var(--fs-line); border-radius: 1rem; color: var(--fs-muted); background: var(--fs-frost); }

.fs-post-grid .wp-block-post-template { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1rem; }
.fs-post-grid .wp-block-post { overflow: hidden; border: 1px solid var(--fs-line); border-radius: 1rem; background: var(--fs-white); }
.fs-post-grid .wp-block-post-featured-image { aspect-ratio: 16/10; margin: 0; overflow: hidden; background: #dfeef2; }
.fs-post-grid .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.fs-post-grid .wp-block-post:hover img { transform: scale(1.04); }
.fs-post-grid .wp-block-post-title, .fs-post-grid .wp-block-post-excerpt, .fs-post-grid .wp-block-post-date { padding-inline: 1.25rem; }
.fs-post-grid .wp-block-post-title { margin: 1.2rem 0 .7rem; font-size: 1.15rem; }
.fs-post-grid .wp-block-post-title a { text-decoration: none; }
.fs-post-grid .wp-block-post-excerpt { padding-bottom: 1.25rem; color: var(--fs-muted); font-size: .82rem; }
.fs-post-grid .wp-block-post-date { padding-top: 1.2rem; color: var(--fs-blue); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

.site-footer { padding-top: clamp(3rem, 6vw, 6rem); color: #c5d5dc; background: #041826; }
.site-footer h2, .site-footer strong { color: var(--fs-white); }
.site-footer .wp-block-site-title { margin: 0; font-size: 1.2rem; }
.site-footer .wp-block-site-title a { color: var(--fs-white); text-decoration: none; }
.site-footer a { color: #c5d5dc; text-decoration: none; }
.site-footer a:hover { color: var(--fs-cyan); }
.site-footer__grid { padding-bottom: 3rem; }
.site-footer__grid p { max-width: 25rem; color: #8faab6; font-size: .82rem; line-height: 1.7; }
.site-footer__links { gap: 2.5rem!important; }
.site-footer__links h2 { margin: 0 0 .9rem; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
.site-footer__links .wp-block-navigation { align-items: flex-start; font-size: .78rem; }
.site-footer__bottom { padding-block: 1.2rem; border-top: 1px solid rgba(255,255,255,.11); color: #7894a1; font-size: .68rem; }

.fs-reveal { opacity: 0; transform: translateY(22px); transition: opacity .65s ease, transform .65s cubic-bezier(.2,.7,.2,1); }
.fs-reveal.is-visible { opacity: 1; transform: none; }
.screen-reader-text:focus, .skip-link:focus { z-index: 999999; top: .5rem; left: .5rem; width: auto; height: auto; clip: auto!important; padding: .8rem 1rem; color: var(--fs-white); background: var(--fs-ink); }

@media (max-width: 1000px) {
	.fs-solutions-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .site-header__cta { display: none!important; }
  .fs-hero__inner { grid-template-columns: 1fr!important; }
  .fs-hero__copy { padding-bottom: 22rem; }
  .fs-hero__visual { position: absolute; right: 0; bottom: 4rem; left: 0; min-height: 330px; pointer-events: none; }
  .fs-cold-room { right: 3%; width: min(72vw, 500px); }
  .fs-temp-card--one { left: 6%; }
  .fs-temp-card--two { right: 8%; }
  .fs-card-grid { grid-template-columns: repeat(2,minmax(0,1fr))!important; }
  .fs-industry-grid { grid-template-columns: repeat(2,minmax(0,1fr))!important; }
  .fs-post-grid .wp-block-post-template { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 782px) {
	.fs-solutions-directory__intro { grid-template-columns: 1fr; }
  .admin-bar .site-header { top: 46px; }
  .site-header__inner { min-height: 70px; }
  .site-header .wp-block-navigation__responsive-container.is-menu-open { padding: 1.25rem; color: var(--fs-white); background: var(--fs-ink); }
  .site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { color: var(--fs-white); font-size: 1.35rem; }
  .fs-hero { min-height: 780px; }
  .fs-display { font-size: clamp(2.8rem, 15vw, 4.6rem)!important; }
  .fs-hero__copy { padding-bottom: 20rem; }
  .fs-cold-room { right: -3%; width: min(96vw, 470px); }
  .fs-temp-card { padding: .7rem .8rem; }
  .fs-temp-card strong { font-size: 1.15rem; }
  .fs-hero__rail-inner { overflow-x: auto; white-space: nowrap; }
  .fs-intro-grid, .fs-spec-grid { grid-template-columns: 1fr!important; }
  .site-footer__grid { grid-template-columns: 1fr!important; }
  .site-footer__links { justify-content: flex-start!important; }
}

@media (max-width: 620px) {
	.fs-solutions-grid { grid-template-columns: 1fr; }
	.fs-category-card { min-height: 26rem; }
  .fs-shell { width: min(calc(100% - 1.25rem), var(--fs-max)); }
  .fs-card-grid, .fs-industry-grid { grid-template-columns: 1fr!important; }
  .fs-post-grid .wp-block-post-template { grid-template-columns: 1fr; }
  .fs-solution-card { min-height: auto; }
  .fs-process-step { padding-left: 3.5rem; }
  .fs-spec-item { grid-template-columns: 2.5rem 1fr; }
  .fs-spec-item > span { display: none; }
  .fs-hero__copy { padding-bottom: 18rem; }
  .fs-temp-card--one { top: 22%; left: 1%; }
  .fs-temp-card--two { right: 1%; bottom: 5%; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto!important; animation-duration: .01ms!important; animation-iteration-count: 1!important; transition-duration: .01ms!important; }
  .fs-reveal { opacity: 1; transform: none; }
}
