/* Shared Serenavionesselle navigation, legal shell, typography and accessibility. */
:root {
  --font-family-heading: Georgia, "Times New Roman", serif;
  --font-family-body: system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
}
html { box-sizing: border-box; scroll-behavior: smooth; }
*, *::before, *::after { box-sizing: inherit; }
html, body { margin: 0; padding: 0; min-width: 0; max-width: 100%; }
body { display: block; background-color: var(--color-surface); color: var(--color-on-surface); font-family: var(--font-family-body); }
body.sn-menu-open { overflow: hidden; }
img { max-width: 100%; height: auto; }
img[src] { vertical-align: middle; }
main { display: block; min-width: 0; }
section, main, .sn-legal-inner { min-width: 0; }
.hero-title { font-size: var(--font-size-4xl); }
.section-title { font-size: var(--font-size-3xl); }
a, a:visited { color: inherit; text-decoration: none; }
a:hover { color: var(--color-primary); }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 3px solid #427854; outline-offset: 3px; }
a:active { opacity: .85; }
button { font: inherit; }
/* Unified header shares the original capsule styling, but improves layout and interaction. */
.navigation-section.serenavion-site-header { position: sticky; top: 0; z-index: 1500; display: block; width: 100%; padding: .85rem 0; pointer-events: auto; background: transparent; }
.serenavion-site-header .navigation-container { max-width: 76rem; padding-inline: clamp(1rem, 3vw, 2.5rem); pointer-events: auto; margin-inline: auto; }
.serenavion-site-header .navigation-capsule.sn-header-inner { min-height: 4.35rem; padding: .55rem .85rem .55rem 1.25rem; display: flex; align-items: center; gap: clamp(.7rem, 1.5vw, 1.7rem); justify-content: space-between; background: rgba(251, 249, 247, .96); border: 1px solid #dadbd3; box-shadow: 0 9px 30px rgba(37,47,39,.10); border-radius: 999px; backdrop-filter: blur(10px); pointer-events: auto; }
.sn-brand, .sn-brand:visited { color: #293c30; font-weight: 720; font-size: clamp(.94rem, 1.45vw, 1.15rem); display: inline-flex; align-items: center; gap: .5rem; min-width: 0; letter-spacing: -.035em; white-space: nowrap; }
.sn-brand-symbol { color: var(--color-primary); line-height: 1; font-size: 1.55rem; }
.sn-desktop-nav { display:flex; align-items: center; flex-wrap: nowrap; gap: clamp(.65rem, 1.55vw, 1.4rem); margin-inline: auto; white-space: nowrap; }
.sn-nav-link, .sn-nav-link:visited { color: #3f4b41; font-size: .80rem; font-weight: 600; text-decoration: none; padding: .6rem .05rem; transition: color .15s ease; }
.sn-nav-link:hover, .sn-nav-link[aria-current="page"] { color: #385d45; }
.sn-nav-link[aria-current="page"] { box-shadow: inset 0 -2px #789b79; }
.sn-header-cta, .sn-header-cta:visited { white-space: nowrap; display: inline-flex; align-items:center; gap: .4rem; color: #fff; background: #526c57; border-radius:999px; padding: .8rem 1.05rem; font-size: .8rem; font-weight: 650; }
.sn-header-cta:hover { color: #fff; background:#385c43; }
.sn-menu-toggle, .sn-menu-close { display:none; align-items:center; justify-content:center; background: transparent; color: #293c30; border:0; cursor:pointer; }
.sn-menu-toggle { width: 44px; height: 44px; flex-direction:column; gap:5px; border-radius:999px; }
.sn-menu-toggle span { width: 21px; height:2px; background:currentColor; border-radius:2px; }
.sn-mobile-menu[hidden] { display:none !important; }
.sn-mobile-menu { position: fixed; inset:0; z-index:1600; height:100vh; height:100dvh; overflow-y:auto; overscroll-behavior:contain; background:#f7f5f0; padding:clamp(1.2rem,5vw,2rem); display:flex; flex-direction:column; box-shadow:0 20px 50px rgba(0,0,0,.1); }
.sn-mobile-menu-head { display:flex; justify-content:space-between; align-items:center; color:#3b4a3c; font-weight:700; font-size:1rem; min-height:45px; margin-bottom:1.2rem; }
.sn-menu-close { display:inline-flex; width:45px; height:45px; font-size:2rem; line-height:1; border-radius:50%; }
.sn-mobile-links { display:flex; flex-direction:column; gap:.3rem; width:100%; }
.sn-mobile-links .sn-nav-link { display:block; font-size:clamp(1.18rem,4vw,1.65rem); padding:.9rem .3rem; border-bottom:1px solid #dde0d8; white-space:normal; }
.sn-mobile-links .sn-nav-link[aria-current="page"] { box-shadow:none; }
.sn-menu-foot { color:#6e756e; font-family:var(--font-family-heading); font-size:1.05rem; margin-top:auto; padding-top:2rem; }
/* Full-width footer with the site's original dark colour palette and container. */
.serenavion-footer-root { display:block; width:100%; max-width:none; margin:0; padding:clamp(3rem,6vw,5.5rem) 0 1.5rem; background:#292f2b; color:#faf8f4; overflow:visible; }
.serenavion-footer-inner { display:block; width:100%; max-width:var(--content-max-width); padding-inline:clamp(1.1rem,4vw,2.8rem); margin-inline:auto; }
.serenavion-footer-upper.sn-footer-columns { display:grid; grid-template-columns:1.55fr 1fr 1fr; column-gap:clamp(1.5rem,5vw,4.5rem); row-gap:2rem; align-items:start; margin:0; padding:0 0 2.5rem; }
.sn-footer-logo { display:inline-block; font-family:var(--font-family-heading); font-size:clamp(1.4rem,2.6vw,2rem); color:#fff; text-decoration:none; }
.sn-footer-logo:visited {color:#fff;}
.sn-footer-logo:hover {color:#cdddc4;}
.sn-footer-intro p { max-width:29rem; margin-top:1rem; color:#d5d9d0; line-height:1.75; }
.sn-footer-links h3, .sn-company-block h3 { color:#fff; font-size:.9rem; font-family:var(--font-family-body); font-weight:700; letter-spacing:.08em; text-transform:uppercase; margin:0 0 1rem; }
.sn-footer-links nav { display:flex; flex-direction:column; gap:.75rem; }
.sn-footer-links a, .sn-footer-links a:visited { color:#e2e7de; font-size:.93rem; }
.sn-footer-links a:hover, .sn-footer-links a:focus { color:#c7ddb7; }
.sn-company-block { border-top:1px solid rgba(255,255,255,.2); border-bottom:1px solid rgba(255,255,255,.2); margin:0; padding:2rem 0; color:inherit; background:transparent; }
.sn-company-details { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.5rem 1.8rem; }
.sn-company-details p { margin:0; font-size:.85rem; overflow-wrap:anywhere; line-height:1.75; }
.sn-company-details strong { font-weight:600; }
.sn-company-disclosure { margin:1rem 0 0; color:#bdc6bc; font-size:.77rem; overflow-wrap:anywhere; }
.sn-footer-bottom { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding-top:1.5rem; flex-wrap:wrap; font-size:.79rem; color:#bfcabd; }
/* Finnish legal pages inherit the same full-width header/footer and font stack. */
.sn-legal-main { display:block; background:var(--color-surface); color:var(--color-on-surface); width:100%; max-width:100%; min-height:50vh; padding:clamp(2.8rem,6vw,6rem) clamp(1.1rem,4vw,2.8rem) clamp(4rem,8vw,7rem); }
.sn-legal-inner { width:100%; max-width:var(--content-max-width); margin-inline:auto; }
.sn-legal-inner>.hero-title { font-size:var(--font-size-4xl); max-width:24ch; margin:0 0 1rem; line-height:1.2; }
.sn-legal-lead { max-width:54rem; font-size:clamp(1rem,1.5vw,1.15rem); line-height:1.7; color:#515b52; margin:0 0 1rem; }
.sn-kicker { color:#68776c; font-size:.86rem; text-transform:uppercase; letter-spacing:.14em; font-weight:700; margin:0 0 1.3rem; }
.sn-updated { margin:0 0 2rem; color:#606c62; font-size:.9rem; }
.sn-legal-main .sn-company-block { background:#eaeee7; border:1px solid #d3dfd2; border-radius:var(--border-radius-md); margin:0 0 3rem; padding:clamp(1.2rem,3vw,2.1rem); color:#2c3c2e; }
.sn-legal-main .sn-company-block h3 { color:#293c30; }
.sn-legal-main .sn-company-disclosure { color:#566456; }
.sn-legal-copy { max-width:52rem; }
.sn-legal-section { margin-bottom:2.2rem; border-bottom:1px solid #e2e4dc; padding:0 0 2rem; overflow-wrap:anywhere; }
.sn-legal-section .section-title { margin:0 0 .8rem; font-size:var(--font-size-2xl); }
.sn-legal-section p { font-size:var(--font-size-base); line-height:1.86; color:#485249; margin:0; }
.sn-back-link, .sn-back-link:visited { display:inline-flex; color:#fff; background:#506b55; border-radius:999px; padding:.9rem 1.5rem; font-size:.93rem; font-weight:650; }
.sn-back-link:hover { background:#395843; color:#fff; }
.sn-404 { padding-block:5rem; }
.sn-editorial-note { max-width:70ch; }
.sn-form-status { font-size:.9rem; color:#3e6545; min-height:1.5em; }
form a { color:#365c40; text-decoration:underline; text-underline-offset:.17em; }
form a:hover { color:#263b2c; }
/* Native horizontal scrolling when no third-party slider dependency is available. */
.categories-track, .inspiration-gallery-track, .services-gallery-track, .gallery-carousel-track, .gallery-carousel-rail {
  overflow-x:auto; overscroll-behavior-inline:contain; scroll-snap-type:x proximity; scroll-behavior:smooth; -webkit-overflow-scrolling:touch;
}
.categories-track > *, .inspiration-gallery-track > *, .services-gallery-track > *, .gallery-carousel-track > *, .gallery-carousel-rail > * { scroll-snap-align:start; }
@media(max-width:1180px) {
 .sn-desktop-nav { gap:.8rem; }
 .sn-nav-link {font-size:.73rem;}
 .sn-header-cta { font-size:.73rem; padding:.75rem .8rem; }
 .sn-brand {font-size:.93rem;}
}
@media(max-width:1050px) {
 .sn-desktop-nav,.sn-header-cta {display:none !important;}
 .sn-menu-toggle {display:inline-flex !important;}
 .sn-header-inner {justify-content:space-between;}
}
@media(max-width:767px) {
 .serenavion-site-header.navigation-section {padding:.55rem 0;}
 .serenavion-site-header .navigation-container {padding-inline:.75rem;}
 .serenavion-site-header .navigation-capsule.sn-header-inner {padding:.4rem .65rem .4rem 1rem; min-height:3.75rem;}
 .sn-brand {font-size:clamp(.9rem,3.4vw,1.07rem); letter-spacing:-.035em;}
 .sn-brand-symbol {font-size:1.3rem;}
 .sn-footer-columns.serenavion-footer-upper {grid-template-columns:1fr 1fr;}
 .sn-footer-intro {grid-column:1/-1;}
 .sn-company-details {grid-template-columns:1fr;}
 .sn-footer-bottom {flex-direction:column;align-items:flex-start;}
 .hero-section,.hero-title,.section-title,main, .sn-legal-main {overflow-wrap:anywhere;word-break:break-word;white-space:normal;}
 .sn-legal-section {margin-bottom:1.5rem; padding-bottom:1.5rem;}
 .sn-legal-main {padding-inline:1.1rem;}
}
@media(max-width:420px){
 .sn-brand {font-size:.87rem;}
 .sn-footer-columns.serenavion-footer-upper {grid-template-columns:1fr;}
 .sn-footer-intro {grid-column:auto;}
 .sn-mobile-menu {padding:1.2rem;}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;}.categories-track,.inspiration-gallery-track,.services-gallery-track,.gallery-carousel-track{scroll-behavior:auto;}}
.sn-editorial-deep-dive { padding:clamp(3rem,7vw,6rem) clamp(1rem,4vw,2.7rem); background:#f1f2eb; }
.sn-article-inner { max-width:var(--content-max-width); margin-inline:auto; }
.sn-article-item { max-width:55rem; padding-block:1.7rem; border-bottom:1px solid #d6ddd2; scroll-margin-top:6rem; }
.sn-article-item .section-title { font-size:var(--font-size-2xl); margin:0 0 1.2rem; }
.sn-article-item p { color:#4a594b; font-size:var(--font-size-base); line-height:1.8; }
.sn-gallery-disclaimer { max-width:52rem; margin:1rem auto; color:#505e52; font-size:.91rem; line-height:1.6; padding:0 1.2rem; }
