/*
Theme Name: Alexey
Author: Aitvid
Version: 3.37.0
Requires at least: 6.2
Tested up to: 6.8
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Tags: blog, news, photography, one-column, two-columns, custom-logo, custom-menu, featured-images, full-width-template, threaded-comments, translation-ready, block-patterns
*/

:root{--nj-ink:#2d4d7c;--nj-muted:#2d4d7c;--nj-paper:#ffffff;--nj-white:#fff;--nj-accent:#299dcc;--nj-line:#d8e2e9;--nj-max:1240px;--nj-gutter:clamp(20px,5vw,76px);--nj-serif:Georgia,'Times New Roman',serif;--nj-sans:Arial,Helvetica,sans-serif;scroll-behavior:smooth;scroll-padding-top:100px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--nj-paper);color:var(--nj-ink);font-family:var(--nj-sans);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:4px}a:hover{color:var(--nj-accent)}button,input,textarea,select{font:inherit}.site-shell{min-height:100vh;display:flex;flex-direction:column}.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-bottom:1px solid var(--nj-line)}.header-inner{max-width:var(--nj-max);margin:auto;padding:13px var(--nj-gutter);display:flex;align-items:center;gap:28px;min-height:78px}.site-branding{display:flex;align-items:center;gap:12px;min-width:max-content}.custom-logo{max-height:44px;width:auto}.site-title{font:700 18px/1.1 var(--nj-serif);letter-spacing:-.03em;text-decoration:none}.site-description{display:none}.main-navigation{margin-left:auto}.main-navigation ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:clamp(12px,2vw,28px)}.main-navigation a{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;white-space:nowrap}.menu-toggle{display:none;background:none;border:1px solid var(--nj-line);padding:8px 12px;border-radius:30px}.language-switcher{display:flex;gap:6px;align-items:center;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.language-switcher a,.language-switcher span{padding:5px 6px;text-decoration:none;border:1px solid transparent}.language-switcher .current-lang,.language-switcher .current-language{border-color:var(--nj-ink)}.language-switcher ul{display:flex;list-style:none;margin:0;padding:0;gap:4px}.language-switcher li{margin:0}.hero{max-width:var(--nj-max);margin:0 auto;padding:clamp(46px,8vw,112px) var(--nj-gutter) 54px;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(280px,.95fr);gap:clamp(28px,6vw,84px);align-items:center}.eyebrow,.section-kicker{font-size:11px;line-height:1.4;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--nj-accent)}.hero h1{font:400 clamp(48px,7.4vw,100px)/.98 var(--nj-serif);letter-spacing:-.065em;margin:20px 0 26px;max-width:760px}.hero .intro{max-width:530px;font-size:clamp(17px,1.7vw,21px);color:#424b55;line-height:1.6}.hero-media{position:relative;min-height:clamp(320px,48vw,610px);background:#d8d7cd;overflow:hidden}.hero-media img{width:100%;height:100%;min-height:inherit;object-fit:cover;position:absolute;inset:0}.hero-media:after{content:'';position:absolute;inset:12px;border:1px solid rgba(255,255,255,.55);pointer-events:none}.hero-caption{font-size:11px;color:var(--nj-muted);margin-top:12px}.text-link,.button-link{display:inline-flex;align-items:center;gap:14px;margin-top:22px;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid var(--nj-ink);padding-bottom:9px}.text-link:after,.button-link:after{content:'↘';font-size:16px}.page-content{width:100%}.page-content>*:not(.alignfull):not(.wp-block-cover):not(.wp-block-image.alignfull){max-width:var(--nj-max);margin-left:auto;margin-right:auto;padding-left:var(--nj-gutter);padding-right:var(--nj-gutter)}.page-content .wp-block-group.alignfull,.page-content .wp-block-cover.alignfull,.page-content .wp-block-image.alignfull{max-width:none}.page-content h2,.section-heading{font:400 clamp(36px,5vw,64px)/1.03 var(--nj-serif);letter-spacing:-.05em;margin-top:0;margin-bottom:24px}.page-content h3{font:400 clamp(24px,3vw,34px)/1.15 var(--nj-serif);letter-spacing:-.03em}.page-content p{max-width:760px}.page-content .wp-block-image img{width:100%}.page-content .wp-block-separator{border:0;border-top:1px solid var(--nj-line);margin-top:40px;margin-bottom:40px}.content-section{padding-top:clamp(70px,10vw,140px);padding-bottom:clamp(70px,10vw,140px);border-top:1px solid var(--nj-line)}.content-section:nth-of-type(even){background:#ffffff}.section-inner{max-width:var(--nj-max);margin:0 auto;padding:0 var(--nj-gutter)}.section-topline{display:flex;justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:clamp(30px,5vw,64px)}.section-number{font:italic 16px var(--nj-serif);color:var(--nj-accent)}.split-layout{display:grid;grid-template-columns:.65fr 1.35fr;gap:clamp(28px,8vw,120px)}.split-layout .section-heading{max-width:440px}.lead-copy{font:400 clamp(22px,3vw,34px)/1.4 var(--nj-serif);letter-spacing:-.025em}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.editorial-card{min-width:0}.editorial-card .card-image{aspect-ratio:4/3;background:#e1e0d8;overflow:hidden;margin-bottom:18px}.editorial-card .card-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.editorial-card:hover .card-image img{transform:scale(1.035)}.card-meta{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--nj-muted)}.editorial-card h3{font:400 clamp(23px,2.5vw,32px)/1.1 var(--nj-serif);letter-spacing:-.035em;margin:10px 0}.editorial-card h3 a{text-decoration:none}.editorial-card p{font-size:14px;color:var(--nj-muted)}.latest-posts{padding:clamp(70px,10vw,140px) 0;background:var(--nj-ink);color:#ffffff}.latest-posts .section-inner{max-width:var(--nj-max);margin:auto;padding:0 var(--nj-gutter)}.latest-posts .section-kicker{color:#66c2e5}.latest-posts .section-heading{max-width:600px}.latest-posts .editorial-card .card-image{background:#2d4d7c}.latest-posts .editorial-card p,.latest-posts .card-meta{color:#d6e3ec}.latest-posts .editorial-card h3 a:hover{color:#66c2e5}.latest-posts .text-link{border-color:#ffffff}.archive-header{max-width:var(--nj-max);margin:auto;padding:clamp(60px,9vw,120px) var(--nj-gutter) 50px}.archive-header h1{font:400 clamp(48px,8vw,94px)/.98 var(--nj-serif);letter-spacing:-.06em;margin:16px 0}.archive-grid{max-width:var(--nj-max);margin:0 auto;padding:0 var(--nj-gutter) 100px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:42px 24px}.single-header{max-width:920px;margin:auto;padding:80px var(--nj-gutter) 36px}.single-header h1{font:400 clamp(42px,7vw,82px)/1 var(--nj-serif);letter-spacing:-.06em;margin:20px 0}.single-featured{max-width:1240px;margin:0 auto 54px;padding:0 var(--nj-gutter)}.single-featured img{width:100%;max-height:720px;object-fit:cover}.entry-content{max-width:760px;margin:0 auto;padding:0 var(--nj-gutter) 100px;font-size:18px}.entry-content h2,.entry-content h3{font-family:var(--nj-serif);font-weight:400;letter-spacing:-.04em;line-height:1.1}.entry-content .alignwide{max-width:1000px;width:calc(100% + 160px);margin-left:-80px}.site-footer{margin-top:auto;background:#eaf4f8;border-top:1px solid var(--nj-line)}.footer-inner{max-width:var(--nj-max);margin:auto;padding:46px var(--nj-gutter);display:flex;justify-content:space-between;align-items:flex-start;gap:28px}.footer-title{font:400 28px/1.1 var(--nj-serif);letter-spacing:-.04em;margin:0 0 8px}.footer-copy{font-size:12px;color:var(--nj-muted)}.footer-contact{font-size:13px;text-align:right}.footer-contact a{display:block}.pagination{max-width:var(--nj-max);margin:0 auto;padding:0 var(--nj-gutter) 80px}.pagination .nav-links{display:flex;gap:8px}.pagination a,.pagination span{padding:9px 13px;border:1px solid var(--nj-line);text-decoration:none}.pagination .current{background:var(--nj-ink);color:white}.no-results{padding:30px 0}.wp-block-button__link{background:var(--nj-accent);border-radius:0;color:white;padding:14px 22px}.wp-block-quote{border-left:2px solid var(--nj-accent);padding-left:24px;font:italic 26px/1.4 var(--nj-serif)}.wp-block-gallery{gap:12px!important}.wp-block-gallery img{object-fit:cover}.screen-reader-text{clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;width:1px;overflow:hidden;position:absolute!important;white-space:nowrap}.screen-reader-text:focus{clip:auto!important;clip-path:none;background:white;color:black;height:auto;width:auto;left:10px;top:10px;padding:15px;z-index:100000}
@media(max-width:980px){.header-inner{gap:14px}.main-navigation ul{gap:12px}.main-navigation a{font-size:10px}.hero{grid-template-columns:1fr 0.85fr}.card-grid,.archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.split-layout{grid-template-columns:1fr;gap:20px}.split-layout .section-heading{max-width:700px}}
@media(max-width:760px){:root{scroll-padding-top:76px}.header-inner{min-height:68px;flex-wrap:wrap;justify-content:space-between}.site-branding{min-width:0}.site-title{font-size:17px}.menu-toggle{display:inline-flex;margin-left:auto}.main-navigation{display:none;order:4;width:100%;margin:0;padding:8px 0 12px}.main-navigation.is-open{display:block}.main-navigation ul{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.main-navigation li{border-top:1px solid var(--nj-line)}.main-navigation a{display:block;padding:12px 0;font-size:11px}.language-switcher{margin-left:0}.hero{grid-template-columns:1fr;padding-top:52px;gap:32px}.hero h1{font-size:clamp(50px,14vw,78px)}.hero-media{min-height:100vw;max-height:560px;order:-1}.hero-caption{margin-bottom:4px}.section-topline{align-items:flex-start}.card-grid,.archive-grid{grid-template-columns:1fr;gap:36px}.editorial-card .card-image{aspect-ratio:5/3}.content-section{padding-top:72px;padding-bottom:72px}.footer-inner{flex-direction:column}.footer-contact{text-align:left}.entry-content .alignwide{width:100%;margin-left:0}.archive-grid{padding-bottom:70px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}

/* Keep the Gutenberg hero full-bleed even when it sits inside the constrained page-content wrapper. */
.page-content > .hero.hero--immersive{max-width:none!important;width:100vw;position:relative;left:50%;margin-left:-50vw!important;margin-right:-50vw!important;padding-left:var(--nj-gutter);padding-right:var(--nj-gutter)}

/* Full-bleed hero and universal hamburger menu */
.header-inner{max-width:none;min-height:84px;justify-content:space-between;position:relative}.header-actions{margin-left:auto;display:flex;align-items:center;gap:clamp(12px,2.5vw,38px)}.menu-toggle{display:inline-flex!important;align-items:center;gap:13px;margin:0;background:transparent;border:0;border-radius:0;padding:12px 0 12px 14px;cursor:pointer;font-size:11px;letter-spacing:.15em;text-transform:uppercase;font-weight:700}.menu-icon{width:30px;height:18px;display:flex;flex-direction:column;justify-content:center;gap:6px}.menu-icon i{display:block;width:30px;height:2px;background:currentColor;transition:transform .2s}.menu-toggle[aria-expanded=true] .menu-icon i:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded=true] .menu-icon i:last-child{transform:translateY(-4px) rotate(-45deg)}.main-navigation{display:none!important;position:absolute;right:var(--nj-gutter);top:calc(100% + 1px);width:min(440px,calc(100vw - 2 * var(--nj-gutter)));margin:0;background:var(--nj-paper);color:var(--nj-ink);padding:30px;box-shadow:0 24px 60px rgba(0,0,0,.22);border:1px solid var(--nj-line);z-index:70}.main-navigation.is-open{display:block!important}.main-navigation ul{display:flex!important;flex-direction:column;align-items:stretch;gap:0!important}.main-navigation li{border-bottom:1px solid var(--nj-line)}.main-navigation a{display:block;padding:15px 0;font-size:13px;letter-spacing:.08em;white-space:normal}.language-switcher{margin:0;order:0}.home .site-header{position:absolute;left:0;right:0;top:0;z-index:80;background:transparent;color:#fff;border-bottom:1px solid rgba(255,255,255,.3);backdrop-filter:none}.home .site-header .language-switcher .current-lang,.home .site-header .language-switcher .current-language{border-color:#fff}.home .site-header .main-navigation{color:var(--nj-ink)}.home .site-header .site-title,.home .site-header .menu-toggle{color:#fff}.home .site-header a:hover{color:#9bdcf2}.home .site-header .main-navigation a:hover{color:var(--nj-accent)}
.hero.hero--immersive{position:relative;isolation:isolate;display:flex;align-items:flex-end;max-width:none;width:100%;min-height:100vh;min-height:100svh;margin:0;padding:clamp(160px,22vh,250px) var(--nj-gutter) clamp(60px,9vh,115px);color:#fff;background:#2d4d7c;overflow:hidden}.hero-backdrop,.hero-shade{position:absolute;inset:0;z-index:-2}.hero-backdrop{background-size:cover;background-position:center 35%;transform:scale(1.015)}.hero-shade{z-index:-1;background:linear-gradient(90deg,rgba(12,22,27,.72) 0%,rgba(12,22,27,.38) 54%,rgba(12,22,27,.08) 100%),linear-gradient(0deg,rgba(12,22,27,.56),transparent 62%)}.hero--immersive .hero-copy{width:min(100%,1050px);padding:0;position:relative}.hero--immersive .eyebrow{color:#9bdcf2;font-size:12px;letter-spacing:.2em}.hero--immersive h1{font:400 clamp(64px,10.5vw,174px)/.88 var(--nj-serif);letter-spacing:-.075em;max-width:1000px;margin:25px 0 34px;text-wrap:balance}.hero--immersive .intro{color:rgba(255,255,255,.94);font-size:clamp(17px,1.9vw,25px);max-width:640px;line-height:1.5}.hero-discover{display:inline-flex;gap:42px;align-items:center;margin-top:35px;padding-bottom:11px;border-bottom:1px solid rgba(255,255,255,.8);font-size:12px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;text-decoration:none}.hero-discover span{font-size:22px;font-weight:400}.hero-index{position:absolute;bottom:40px;right:var(--nj-gutter);font-size:11px;letter-spacing:.14em;text-transform:uppercase;opacity:.8}
@media(max-width:760px){.header-inner{min-height:70px;flex-wrap:nowrap;padding:10px var(--nj-gutter)}.site-branding{min-width:0}.site-title{font-size:16px}.header-actions{gap:8px}.menu-toggle{padding:10px 0 10px 8px}.menu-toggle-label{display:none}.menu-icon,.menu-icon i{width:25px}.language-switcher{font-size:10px;gap:2px}.language-switcher a,.language-switcher span{padding:4px}.main-navigation{order:initial;padding:18px 22px}.main-navigation ul{display:flex!important}.hero.hero--immersive{padding:145px var(--nj-gutter) 75px;min-height:100svh;align-items:flex-end}.hero-backdrop{background-position:60% center}.hero-shade{background:linear-gradient(0deg,rgba(12,22,27,.88) 0%,rgba(12,22,27,.36) 70%,rgba(12,22,27,.32) 100%)}.hero--immersive h1{font-size:clamp(53px,13vw,88px);line-height:.96;margin:18px 0 22px}.hero--immersive .intro{font-size:17px}.hero-discover{margin-top:22px}.hero-index{display:none}}
@media(prefers-reduced-motion:reduce){.hero-backdrop{transform:none}}


/* Gutenberg hero block editor preview */
.editor-styles-wrapper .northline-hero-editor{min-height:560px;max-width:none;margin:0;padding:100px 6vw 70px;color:#fff;background-color:#2b3639;background-size:cover;background-position:center;position:relative;isolation:isolate;display:flex;align-items:flex-end}
.editor-styles-wrapper .northline-hero-editor .hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(12,22,27,.72),rgba(12,22,27,.08)),linear-gradient(0deg,rgba(12,22,27,.56),transparent 62%)}
.editor-styles-wrapper .northline-hero-editor .hero-copy{max-width:1050px}
.editor-styles-wrapper .northline-hero-editor .northline-hero-title{font:400 clamp(50px,8vw,110px)/.9 Georgia,serif;color:#fff;letter-spacing:-.06em}
.editor-styles-wrapper .northline-hero-editor .intro{font-size:20px;color:#fff;max-width:640px}
.editor-styles-wrapper .northline-hero-editor .eyebrow{color:#9bdcf2}


/* Full-width editorial sections below the hero, with a palette that echoes the banner. */
.page-content > .content-section,
.page-content > .wp-block-group.content-section {
  width: 100vw;
  max-width: none !important;
  position: relative;
  left: 50%;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
  padding: clamp(72px, 9vw, 132px) clamp(24px, 8vw, 120px);
  border-top: 1px solid rgba(32,35,31,.12);
  background: #ffffff;
  color: var(--nj-ink);
}
.page-content > .content-section:nth-child(even),
.page-content > .wp-block-group.content-section:nth-child(even) {
  background: #e6e7df;
}
.page-content > .content-section h2,
.page-content > .wp-block-group.content-section h2,
.page-content > .content-section h3,
.page-content > .wp-block-group.content-section h3,
.page-content > .content-section p,
.page-content > .wp-block-group.content-section p,
.page-content > .content-section ul,
.page-content > .wp-block-group.content-section ul,
.page-content > .content-section .wp-block-columns,
.page-content > .wp-block-group.content-section .wp-block-columns {
  width: 100%;
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
}
.page-content > .content-section .section-kicker,
.page-content > .wp-block-group.content-section .section-kicker { color: var(--nj-accent); }
.page-content > .content-section h2,
.page-content > .wp-block-group.content-section h2 { max-width: 1180px; }
.page-content > .content-section .lead-copy,
.page-content > .wp-block-group.content-section .lead-copy { max-width: 1100px; color: #41463e; }
.page-content > .content-section .wp-block-columns { gap: clamp(24px, 4vw, 64px); }

/* Subtle entrance motion for the hero and the lower editorial content. */
@keyframes northlineFadeUp {
  from { opacity: 0; transform: translateY(22px); }
  to { opacity: 1; transform: translateY(0); }
}
.hero--immersive .hero-copy > * { animation: northlineFadeUp .8s cubic-bezier(.2,.7,.2,1) both; }
.hero--immersive .hero-copy > *:nth-child(1) { animation-delay: .12s; }
.hero--immersive .hero-copy > *:nth-child(2) { animation-delay: .24s; }
.hero--immersive .hero-copy > *:nth-child(3) { animation-delay: .36s; }
.hero--immersive .hero-copy > *:nth-child(4) { animation-delay: .48s; }
.js-reveal-ready .reveal-on-scroll { opacity: 0; transform: translateY(24px); transition: opacity .75s ease, transform .75s cubic-bezier(.2,.7,.2,1); }
.js-reveal-ready .reveal-on-scroll.is-visible { opacity: 1; transform: translateY(0); }
.js-reveal-ready .reveal-on-scroll:nth-child(2) { transition-delay: .06s; }
.js-reveal-ready .reveal-on-scroll:nth-child(3) { transition-delay: .12s; }
.js-reveal-ready .reveal-on-scroll:nth-child(4) { transition-delay: .18s; }
@media (max-width: 760px) {
  .page-content > .content-section,
  .page-content > .wp-block-group.content-section { padding: 72px 24px; }
  .page-content > .content-section .wp-block-columns { gap: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .hero--immersive .hero-copy > *,
  .js-reveal-ready .reveal-on-scroll,
  .js-reveal-ready .reveal-on-scroll.is-visible { animation: none !important; opacity: 1 !important; transform: none !important; transition: none !important; }
}


/* v2.1: editorial posts block and consistent section alignment */
.archive-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(34px,5vw,64px) clamp(24px,3vw,42px)}
.page-content > .content-section h2,
.page-content > .wp-block-group.content-section h2,
.page-content > .content-section p,
.page-content > .wp-block-group.content-section p,
.page-content > .content-section ul,
.page-content > .wp-block-group.content-section ul,
.page-content > .content-section .wp-block-columns,
.page-content > .wp-block-group.content-section .wp-block-columns{max-width:1180px;margin-left:auto;margin-right:auto}
.page-content > .content-section .lead-copy,
.page-content > .wp-block-group.content-section .lead-copy{max-width:1180px}
.northline-posts-block{padding:clamp(64px,9vw,120px) 0;background:#ffffff;color:var(--nj-deep-blue, #2d4d7c);width:100%;}
.northline-posts-block.alignfull{width:100vw;max-width:none;position:relative;left:50%;margin-left:-50vw;margin-right:-50vw}
.northline-posts-block__inner{max-width:var(--nj-max);margin:0 auto;padding:0 var(--nj-gutter)}
.northline-posts-block .section-kicker{color:#299dcc}
.northline-posts-block .section-heading{font:400 clamp(36px,5vw,64px)/1.03 var(--nj-serif);letter-spacing:-.05em;margin:0;max-width:760px}
.northline-posts-block .section-topline{align-items:flex-end}
.northline-posts-block .editorial-card .card-image{background:#2d4d7c}
.northline-posts-block .editorial-card p,.northline-posts-block .card-meta{color:#2d4d7c}
.northline-posts-block .editorial-card h3 a:hover{color:#299dcc}
.northline-posts-block .text-link{border-color:#2d4d7c;color:#2d4d7c}
.northline-posts-block .northline-posts-empty{color:#2d4d7c}
.editor-styles-wrapper .northline-posts-editor{padding:36px;background:#ffffff;color:#2d4d7c;border:1px solid #e1eaf0}
.editor-styles-wrapper .northline-posts-editor .section-heading{color:#2d4d7c}
@media(max-width:760px){.archive-grid{grid-template-columns:1fr;gap:36px}.northline-posts-block .section-topline{display:block}.northline-posts-block .text-link{margin-top:18px}.northline-posts-block{padding:72px 0}}


/* v2.3: single-post metadata and typography alignment; hero headline reduced by 20%. */
.single-header,
.entry-content {
  max-width: 920px;
}
.single-header {
  padding-left: var(--nj-gutter);
  padding-right: var(--nj-gutter);
}
.entry-content {
  padding-left: var(--nj-gutter);
  padding-right: var(--nj-gutter);
}
.hero--immersive h1,
.editor-styles-wrapper .northline-hero-editor .northline-hero-title {
  font-size: clamp(51px, 8.4vw, 139px);
}
@media (max-width: 760px) {
  .hero--immersive h1 {
    font-size: clamp(42px, 10.4vw, 70px);
  }
  .editor-styles-wrapper .northline-hero-editor .northline-hero-title {
    font-size: clamp(40px, 6.4vw, 88px);
  }
}


/* v2.4: Vapauden Liitto logo and flyer-inspired blue palette. */
:root{--nj-blue:#299dcc;--nj-deep-blue:#2d4d7c;--nj-graphite:#333333;--nj-pale-blue:#eaf4f8}
.northline-hero-logo{display:block;width:clamp(180px,28vw,370px);max-width:78vw;max-height:180px;height:auto;object-fit:contain;object-position:left center;margin:0 0 clamp(18px,2.5vw,34px)}.editor-styles-wrapper .northline-hero-logo{max-width:78%;height:auto}.northline-hero-logo-control .northline-hero-logo-preview img{max-width:220px;max-height:100px;object-fit:contain;background:#2d4d7c;padding:12px;margin:8px 0}.footer-brand-row{display:flex;align-items:center;gap:clamp(16px,2.5vw,30px);margin-bottom:8px}.footer-brand-text{display:flex;flex-direction:column;justify-content:space-between;min-height:76px}.footer-brand-row .footer-title{margin:0 0 8px}.footer-custom-logo{display:block;width:auto;max-width:180px;max-height:76px;height:auto;object-fit:contain;object-position:center}.site-footer .footer-copy{margin-top:4px}@media(max-width:760px){.northline-hero-logo{width:min(250px,72vw);max-height:130px;margin-bottom:20px}.footer-brand-row{gap:12px;align-items:center}.footer-brand-text{min-height:68px}.footer-custom-logo{max-width:120px;max-height:68px}}

/* v2.6: make the hero logo picker visible on the block canvas; footer logo follows site name. */
.northline-hero-inline-logo-picker{margin:0 0 18px}.northline-hero-logo-wrap{margin:0 0 clamp(18px,2.5vw,34px)}.northline-hero-logo-wrap .northline-hero-logo{margin:0 0 8px}.northline-hero-logo-inline-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.editor-styles-wrapper .northline-hero-inline-logo-picker .components-button{font-size:12px}.footer-brand-row{flex-direction:row}.footer-brand-row .footer-title{order:1}.footer-brand-row .footer-custom-logo{order:2}


/* v2.8: compact immersive hero on mobile only; desktop layout remains unchanged. */
@media (max-width: 760px) {
  .hero.hero--immersive {
    min-height: 100svh;
    padding: 88px 24px 30px;
    gap: 0;
    align-items: flex-end;
  }
  .hero--immersive .hero-copy {
    width: 100%;
    max-width: 100%;
    margin: 0;
  }
  .hero--immersive .northline-hero-logo,
  .hero--immersive img.northline-hero-logo {
    display: block;
    width: min(220px, 54vw) !important;
    max-width: 54vw !important;
    max-height: 96px;
    height: auto;
    object-fit: contain;
    object-position: left center;
    margin: 0 0 12px;
  }
  .hero--immersive .eyebrow {
    font-size: 9px;
    line-height: 1.25;
    letter-spacing: .12em;
    margin: 0 0 8px;
  }
  .hero--immersive h1,
  .hero--immersive .northline-hero-title {
    font-size: clamp(34px, 8.6vw, 54px) !important;
    line-height: .96;
    letter-spacing: -.055em;
    margin: 8px 0 14px;
    max-width: 100%;
  }
  .hero--immersive .intro,
  .hero--immersive .northline-hero-intro {
    max-width: 100%;
    font-size: 15px;
    line-height: 1.42;
    margin: 0;
  }
  .hero--immersive .hero-discover {
    margin-top: 15px;
    padding-bottom: 6px;
    gap: 10px;
    font-size: 10px;
    line-height: 1.3;
  }
  .hero--immersive .hero-discover span {
    font-size: 15px;
  }
}


/* v2.9: flyer palette across the site; keep the immersive Hero colors untouched. */
:root {
  --nj-ink: #2d4d7c;
  --nj-muted: #2d4d7c;
  --nj-paper: #ffffff;
  --nj-blue: #299dcc;
  --nj-deep-blue: #2d4d7c;
  --nj-graphite: #333333;
  --nj-pale-blue: #ffffff;
}
body,
.site-shell,
.page-content,
.site-main,
.site-footer,
.single-header,
.entry-content,
.archive-header,
.archive-grid {
  background-color: #ffffff;
}
body,
.page-content,
.page-content p,
.page-content li,
.single-header,
.entry-content,
.entry-content p,
.entry-content li,
.archive-header,
.archive-grid,
.site-footer,
.site-footer .footer-copy,
.site-footer .footer-title {
  color: #2d4d7c;
}
.page-content > .content-section,
.page-content > .wp-block-group.content-section,
.content-section:nth-of-type(even) {
  background-color: #ffffff;
}
.northline-posts-block,
.editor-styles-wrapper .northline-posts-editor {
  background: #ffffff !important;
  color: #2d4d7c !important;
}
.northline-posts-block .section-heading,
.northline-posts-block .editorial-card h3,
.northline-posts-block .editorial-card h3 a,
.northline-posts-block .editorial-card p,
.northline-posts-block .card-meta,
.northline-posts-block .northline-posts-empty,
.northline-posts-block .text-link,
.editor-styles-wrapper .northline-posts-editor .section-heading {
  color: #2d4d7c !important;
}
.northline-posts-block .section-kicker,
.northline-posts-block .editorial-card h3 a:hover {
  color: #299dcc !important;
}
.northline-posts-block .text-link {
  border-color: #2d4d7c !important;
}
/* Hero is deliberately excluded from the global blue text rules above. */


/* v3.0: exact page/footer/post-block colors and responsive Hero logos. */
.page-content,
.site-main .page-content,
.site-footer,
footer.site-footer {
  background-color: #ffffff !important;
}
.northline-posts-block,
.wp-block-northline-posts.northline-posts-block,
.editor-styles-wrapper .northline-posts-editor {
  background-color: #ffffff !important;
  color: rgb(65, 70, 62) !important;
}
.northline-posts-block .section-heading,
.northline-posts-block .section-kicker,
.northline-posts-block .editorial-card h3,
.northline-posts-block .editorial-card h3 a,
.northline-posts-block .editorial-card p,
.northline-posts-block .card-meta,
.northline-posts-block .northline-posts-empty,
.northline-posts-block .text-link,
.editor-styles-wrapper .northline-posts-editor .section-heading {
  color: rgb(65, 70, 62) !important;
}
.northline-posts-block .text-link { border-color: rgb(65, 70, 62) !important; }
.northline-hero-logo-mobile { display:none !important; }
@media (max-width: 760px) {
  .northline-hero-logo-desktop { display:none !important; }
  .northline-hero-logo-mobile { display:block !important; }
  .hero--immersive .northline-hero-logo,
  .hero--immersive img.northline-hero-logo {
    width: min(176px, 43.2vw) !important;
    max-width: 43.2vw !important;
    max-height: 77px;
    margin-bottom: 10px;
  }
  .editor-styles-wrapper .northline-hero-logo-desktop { display:none !important; }
  .editor-styles-wrapper .northline-hero-logo-mobile { display:block !important; }
}


/* v3.1: ensure alternating content sections and footer use requested colors. */
.page-content > .content-section:nth-child(even),
.page-content > .wp-block-group.content-section:nth-child(even) {
  background: #ffffff !important;
  background-color: #ffffff !important;
}
.site-footer,
.site-footer *,
footer.site-footer,
footer.site-footer * {
  color: #000000;
}
.site-footer,
footer.site-footer {
  background: #ffffff !important;
}
@media (max-width: 760px) {
  .hero--immersive .northline-hero-logo-mobile,
  .hero--immersive img.northline-hero-logo-mobile {
    width: min(352px, 86.4vw) !important;
    max-width: 86.4vw !important;
    max-height: 154px;
  }
}


/* v3.2: force footer text black, make mobile navigation full-screen, move CookieAdmin consent button right. */
.site-footer,
.site-footer *,
footer.site-footer,
footer.site-footer * {
  color: #000000 !important;
}
.site-footer,
footer.site-footer {
  background-color: #ffffff !important;
}
@media (max-width: 760px) {
  /* Mobile hamburger opens an overlay covering the viewport rather than a dropdown. */
  .main-navigation,
  .main-navigation.is-open,
  .main-navigation.toggled,
  .main-navigation[aria-expanded="true"] {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    overflow-y: auto !important;
    margin: 0 !important;
    padding: 96px 28px 36px !important;
    background: #2d4d7c !important;
    color: #ffffff !important;
    z-index: 9990 !important;
    display: none;
    align-items: flex-start !important;
    justify-content: flex-start !important;
  }
  .main-navigation.is-open,
  .main-navigation.toggled,
  .main-navigation[aria-expanded="true"] {
    display: flex !important;
    flex-direction: column !important;
  }
  .main-navigation ul {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 24px !important;
    width: 100% !important;
  }
  .main-navigation li { width: 100%; }
  .main-navigation a {
    display: block !important;
    color: #ffffff !important;
    font-size: 18px !important;
    letter-spacing: .08em;
    padding: 8px 0;
  }
  .menu-toggle {
    position: relative;
    z-index: 10001;
  }
  .site-header { z-index: 10000; }
  .header-inner { position: relative; z-index: 10001; }
  body.northline-menu-open { overflow: hidden; }
}
body .cookieadmin_reconsent_wrap button.cookieadmin_re_consent,
button.cookieadmin_re_consent {
  left: auto !important;
  right: 20px !important;
}


/* v3.3: white mobile navigation overlay, deep-blue links, no separators. */
@media (max-width: 760px) {
  .main-navigation,
  .main-navigation.is-open,
  .main-navigation.toggled,
  .main-navigation[aria-expanded="true"] {
    background: #ffffff !important;
    color: #2d4d7c !important;
    border: 0 !important;
    box-shadow: none !important;
  }
  .main-navigation ul,
  .main-navigation li,
  .main-navigation a {
    border: 0 !important;
    box-shadow: none !important;
    background-image: none !important;
  }
  .main-navigation li::before,
  .main-navigation li::after,
  .main-navigation a::before,
  .main-navigation a::after {
    content: none !important;
    display: none !important;
    border: 0 !important;
  }
  .main-navigation a,
  .main-navigation a:visited,
  .main-navigation a:hover,
  .main-navigation a:focus {
    color: #2d4d7c !important;
    border: 0 !important;
    text-decoration: none !important;
  }
}


/* v3.6: editable secondary line directly under the Hero name/headline. */
.hero--immersive .northline-hero-title {
  margin-bottom: 5px !important;
}
.hero--immersive .northline-hero-subheading {
  color: #ffffff !important;
  font-size: 1.12em;
  line-height: 1.25;
  font-weight: 500;
  margin: 0 0 18px !important;
  max-width: 42em;
}
.hero--immersive .northline-hero-intro {
  margin-top: 0 !important;
}
.editor-styles-wrapper .northline-hero-editor .northline-hero-subheading {
  color: #ffffff !important;
  font-size: 1.12em;
  line-height: 1.25;
  font-weight: 500;
  margin: 0 0 18px !important;
}
@media (max-width: 760px) {
  .hero--immersive .northline-hero-title {
    margin-bottom: 4px !important;
  }
  .hero--immersive .northline-hero-subheading {
    font-size: 16px;
    line-height: 1.25;
    margin: 0 0 12px !important;
  }
}


/* v3.10: desktop Hero typography and gallery width. */
@media (min-width: 761px) {
  .hero--immersive .northline-hero-subheading,
  .editor-styles-wrapper .northline-hero-editor .northline-hero-subheading {
    font-size: 1.716em;
  }
  .hero--immersive .northline-hero-intro {
    font-size: clamp(15.3px, 1.71vw, 22.5px);
  }
}

/* Keep page galleries aligned to the content grid, with three images per row. */
.page-content .wp-block-gallery {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 12px !important;
  width: 100% !important;
  max-width: 1180px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.page-content .wp-block-gallery figure.wp-block-image,
.page-content .wp-block-gallery .blocks-gallery-item {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  flex: initial !important;
}
.page-content .wp-block-gallery figure.wp-block-image img,
.page-content .wp-block-gallery .blocks-gallery-item img {
  display: block;
  width: 100% !important;
  height: auto;
}

/* Force natural line wrapping in the About section, including long URLs/strings. */
.page-content .content-section,
.page-content .content-section * {
  white-space: normal !important;
  overflow-wrap: anywhere;
  word-break: normal;
}
@media (max-width: 760px) {
  .page-content .wp-block-gallery { gap: 8px !important; }
}


/* v3.11: accessible full-screen gallery lightbox. */
.northline-lightbox {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 5vh 5vw;
  background: rgba(8, 12, 18, .94);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .2s ease, visibility .2s ease;
}
.northline-lightbox.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.northline-lightbox-image {
  display: block;
  max-width: 90vw;
  max-height: 90vh;
  width: auto;
  height: auto;
  object-fit: contain;
  box-shadow: 0 12px 50px rgba(0,0,0,.35);
}
.northline-lightbox-close {
  position: absolute;
  top: 18px;
  right: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.7);
  border-radius: 50%;
  background: rgba(0,0,0,.25);
  color: #fff;
  font: 300 38px/1 Arial, sans-serif;
  cursor: pointer;
}
.northline-lightbox-close:hover,
.northline-lightbox-close:focus-visible {
  background: #fff;
  color: #111;
}
body.northline-lightbox-open { overflow: hidden; }
@media (max-width: 600px) {
  .northline-lightbox { padding: 4vh 3vw; }
  .northline-lightbox-image { max-width: 94vw; max-height: 86vh; }
  .northline-lightbox-close { top: 12px; right: 12px; width: 42px; height: 42px; }
}
@media (prefers-reduced-motion: reduce) {
  .northline-lightbox { transition: none; }
}


/* v3.14: prevent horizontal page overflow on narrow and intermediate viewports. */
html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: clip;
}
@supports not (overflow: clip) {
  html,
  body {
    overflow-x: hidden;
  }
}
.site-shell,
.site-header,
.site-main,
.page-content,
.site-footer {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
.page-content *,
.site-header *,
.site-footer * {
  min-width: 0;
}
img,
video,
iframe,
embed,
object {
  max-width: 100%;
}
.page-content pre,
.entry-content pre,
.wp-block-code,
.wp-block-table,
table {
  max-width: 100%;
  overflow-x: auto;
}
.page-content .alignwide,
.page-content .alignfull,
.entry-content .alignwide,
.entry-content .alignfull {
  box-sizing: border-box;
}
@media (max-width: 1200px) {
  .entry-content .alignwide {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
  }
}


/* v3.15: editable Blog intro block and compact black SVG social icons. */
.northline-blog-intro.archive-header {
  width: 100%;
}
.footer-social-links {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 18px;
}
.footer-social-link {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  color: #000000 !important;
  text-decoration: none;
  transition: opacity .2s ease, transform .2s ease;
}
.footer-social-link svg {
  display: block;
  width: 23px;
  height: 23px;
  fill: currentColor;
}
.footer-social-link:hover,
.footer-social-link:focus-visible {
  color: #000000 !important;
  opacity: .65;
  transform: translateY(-2px);
}
@media (max-width: 760px) {
  .footer-social-links {
    justify-content: flex-start;
    margin-top: 8px;
  }
}


/* v3.17: keep single-post copy in its reading column and wrap long titles. */
body.single-post .single-header,
body.single-post .entry-content {
  width: 100%;
  max-width: 920px;
  margin-left: auto;
  margin-right: auto;
  min-width: 0;
  box-sizing: border-box;
}
body.single-post .single-header h1,
body.single-post .single-header h1 a {
  display: block;
  max-width: 100%;
  white-space: normal !important;
  overflow-wrap: anywhere;
  word-break: normal;
  hyphens: auto;
  box-sizing: border-box;
}
body.single-post .entry-content {
  padding-left: var(--nj-gutter);
  padding-right: var(--nj-gutter);
}

/* Wrap long Finnish post titles on the blog archive and post cards. */
.archive-grid .editorial-card h3,
.archive-grid .editorial-card h3 a,
.card-grid .editorial-card h3,
.card-grid .editorial-card h3 a {
  max-width: 100%;
  white-space: normal !important;
  overflow-wrap: anywhere;
  word-break: normal;
  hyphens: auto;
}



/* v3.22: enlarge images only in homepage section 4 (participation); preserve section 5 gallery layout. */
.page-content #participation .wp-block-gallery {
  grid-template-columns: minmax(0, 1fr) !important;
  max-width: 920px !important;
}
.page-content #participation .wp-block-gallery figure.wp-block-image,
.page-content #participation .wp-block-gallery .blocks-gallery-item {
  width: 100% !important;
  max-width: 100% !important;
}
.page-content #participation .wp-block-gallery figure.wp-block-image img,
.page-content #participation .wp-block-gallery .blocks-gallery-item img {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
}
/* Reduce the large whitespace around the homepage blog block. */
.northline-posts-block {
  padding: clamp(28px, 4vw, 48px) 0 !important;
}
@media (max-width: 760px) {
  .northline-posts-block {
    padding: 24px 0 !important;
  }
}




/* v3.24: restore normal bottom spacing for homepage sections and align blog content with the site content grid. */
.northline-posts-block__inner {
  max-width: var(--nj-max) !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--nj-gutter) !important;
  padding-right: var(--nj-gutter) !important;
  box-sizing: border-box !important;
}


/* v3.25: blog block inner content is capped at 1180px with no internal padding. */
.northline-posts-block__inner {
  max-width: 1180px !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}


/* v3.26: align footer content to the same 1180px content grid as the blog block. */
.footer-inner {
  max-width: 1180px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}


/* v3.27: footer inner uses a true 1180px content box; remove theme gutter padding that narrowed it. */
.site-footer {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.site-footer .footer-inner {
  width: min(1180px, calc(100% - 48px)) !important;
  max-width: 1180px !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}
@media (max-width: 760px) {
  .site-footer .footer-inner {
    width: calc(100% - 40px) !important;
  }
}


/* v3.28: keep desktop Hero image crop identical across language pages.
   A content-driven section height changes background-size:cover scaling when
   translated copy wraps differently. Lock the desktop Hero to viewport height. */
@media (min-width: 769px) {
  .hero.hero--immersive {
    height: 100vh;
    height: 100svh;
    min-height: 100vh;
    min-height: 100svh;
    box-sizing: border-box;
  }
}

/* v3.29: desktop back-to-top control, positioned opposite the CookieAdmin button. */
.northline-back-to-top {
  position: fixed;
  left: 22px;
  bottom: 26px;
  z-index: 9998;
  width: 46px;
  height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(45,77,124,.22);
  border-radius: 50%;
  background: rgba(255,255,255,.94);
  color: #2d4d7c;
  box-shadow: 0 3px 14px rgba(0,0,0,.12);
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s;
}
.northline-back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.northline-back-to-top svg { width: 22px; height: 22px; fill: currentColor; }
.northline-back-to-top:hover { background: #2d4d7c; color: #fff; }
@media (max-width: 760px) {
  .northline-back-to-top { display: none !important; }
}
@media (prefers-reduced-motion: reduce) {
  .northline-back-to-top { transition: none; }
}

/* v3.30: compact Hero spacing for short desktop/laptop viewports.
   Prevent the partner logo from colliding with the overlaid site header. */
@media (min-width: 761px) and (max-height: 820px) {
  .hero.hero--immersive {
    padding-top: clamp(118px, 17vh, 150px);
    padding-bottom: clamp(42px, 6vh, 62px);
  }
  .hero--immersive .northline-hero-logo {
    width: clamp(170px, 23vw, 300px);
    max-width: min(70vw, 300px);
    max-height: 125px;
    margin-bottom: clamp(14px, 2vh, 22px);
  }
  .hero--immersive .northline-hero-title {
    font-size: clamp(54px, 8.5vw, 126px);
    margin-top: 16px;
    margin-bottom: 22px;
  }
}
@media (min-width: 761px) and (max-height: 650px) {
  .hero.hero--immersive {
    padding-top: 108px;
    padding-bottom: 34px;
  }
  .hero--immersive .northline-hero-logo {
    width: clamp(150px, 20vw, 250px);
    max-height: 100px;
    margin-bottom: 12px;
  }
  .hero--immersive .northline-hero-title {
    font-size: clamp(48px, 7vw, 100px);
    margin-bottom: 16px;
  }
}

/* v3.31: fit the complete Hero composition on medium-width, short desktop
   viewports (e.g. 1254x661–775) without logo/header collision. */
@media (min-width: 761px) and (max-width: 1400px) and (min-height: 651px) and (max-height: 800px) {
  .hero.hero--immersive {
    padding-top: 100px;
    padding-bottom: 28px;
    align-items: flex-end;
  }
  .hero--immersive .hero-copy {
    width: min(100%, 850px);
  }
  .hero--immersive .northline-hero-logo {
    width: clamp(150px, 18vw, 230px);
    max-width: 55vw;
    max-height: 82px;
    margin-bottom: 12px;
  }
  .hero--immersive .northline-hero-title {
    font-size: clamp(42px, 6.2vw, 78px);
    line-height: .9;
    margin: 12px 0 16px;
    max-width: 820px;
  }
  .hero--immersive .northline-hero-subheading {
    font-size: clamp(16px, 1.6vw, 20px);
    line-height: 1.3;
    margin: 0 0 12px;
  }
  .hero--immersive .intro {
    font-size: clamp(14px, 1.25vw, 16px);
    line-height: 1.45;
    max-width: 650px;
  }
  .hero--immersive .hero-discover {
    margin-top: 14px;
  }
}

/* v3.32: reserve the header's vertical zone and scale Hero content fluidly
   with available viewport height, rather than letting content overlap it. */
@media (min-width: 761px) {
  .hero.hero--immersive {
    --hero-header-safe: 104px;
    padding-top: max(var(--hero-header-safe), 14vh);
  }
  .hero--immersive .hero-copy {
    width: min(100%, 900px);
    min-width: 0;
    margin-top: auto;
    flex: 0 1 auto;
  }
  .hero--immersive .northline-hero-logo-desktop {
    width: clamp(150px, min(22vw, 27vh), 320px);
    max-width: 100%;
    max-height: 27vh;
    height: auto;
    object-fit: contain;
    object-position: left center;
  }
  .hero--immersive .northline-hero-title {
    font-size: clamp(44px, min(8.8vw, 13.5vh), 136px);
    line-height: .9;
    overflow-wrap: anywhere;
  }
  .hero--immersive .northline-hero-subheading {
    font-size: clamp(16px, min(1.9vw, 2.8vh), 26px);
    line-height: 1.3;
  }
  .hero--immersive .northline-hero-intro {
    font-size: clamp(14px, min(1.35vw, 2.1vh), 19px);
    line-height: 1.45;
  }
  .hero--immersive .hero-discover {
    margin-top: clamp(12px, 2vh, 28px);
  }
}

/* v3.33: mobile back-to-top stays visible after scrolling; mobile menu icon
   remains white when closed and turns into a dark X over the white overlay. */
@media (max-width: 760px) {
  .northline-back-to-top {
    display: flex !important;
    left: 16px;
    bottom: max(18px, env(safe-area-inset-bottom));
    width: 44px;
    height: 44px;
    z-index: 10002;
  }
  .menu-toggle {
    color: #ffffff !important;
  }
  .menu-toggle[aria-expanded="true"] {
    color: #111111 !important;
  }
  .menu-toggle[aria-expanded="true"] .menu-icon i {
    background: #111111 !important;
  }
  .menu-toggle[aria-expanded="false"] .menu-icon i {
    background: #ffffff !important;
  }
}

/* v3.34: keep the custom back-to-top control desktop-only.
   Mobile already has its own navigation/scroll arrow. */
@media (max-width: 760px) {
  .northline-back-to-top {
    display: none !important;
  }
}

/* v3.35: use the Northline back-to-top control on mobile and suppress
   common theme/plugin back-to-top controls to prevent duplicate arrows. */
@media (max-width: 760px) {
  .northline-back-to-top {
    display: flex !important;
    left: 16px;
    bottom: max(18px, env(safe-area-inset-bottom));
    width: 44px;
    height: 44px;
    z-index: 10002;
  }
  /* Common selectors used by third-party scroll-to-top widgets. */
  body :not(.northline-back-to-top).scroll-to-top,
  body :not(.northline-back-to-top).scrollup,
  body :not(.northline-back-to-top).back-to-top,
  body :not(.northline-back-to-top).backTop,
  body :not(.northline-back-to-top).back-to-top-button,
  body :not(.northline-back-to-top).to-top,
  body :not(.northline-back-to-top).go-to-top,
  body :not(.northline-back-to-top).top-button,
  body :not(.northline-back-to-top).topbutton,
  body #scroll-to-top,
  body #scrollup,
  body #back-to-top,
  body #backTop,
  body #to-top,
  body #go-to-top {
    display: none !important;
  }
}

/* v3.36: center social/contact icons in the mobile footer. */
@media (max-width: 760px) {
  .site-footer .footer-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 22px;
  }
  .site-footer .footer-inner > div {
    width: 100%;
    text-align: center;
  }
  .site-footer .footer-brand-row {
    justify-content: center;
  }
  .site-footer .footer-social-links {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
    gap: 22px;
  }
}


/* v3.37: keep mobile footer blocks edge-aligned; center only social/contact links. */
@media (max-width: 760px) {
  .site-footer .footer-inner {
    align-items: stretch !important;
    text-align: left !important;
  }
  .site-footer .footer-inner > div {
    width: 100% !important;
    text-align: left !important;
  }
  .site-footer .footer-brand-row {
    justify-content: flex-start !important;
  }
  .site-footer .footer-social-links {
    justify-content: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}
