:root {
  color-scheme: light;
  --brand: #183b4e;
  --accent: #d3ed67;
  --surface: #f3f5ef;
  --ink: #172126;
  --paper: #fffef9;
  --muted: #667177;
  --line: color-mix(in srgb, var(--ink) 14%, transparent);
  --shadow: 0 24px 70px rgb(17 42 53 / 12%);
  --radius: 1.5rem;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background:var(--footer-background,#101c22); color: var(--ink); font-family: "Avenir Next", Avenir, "Segoe UI", sans-serif; font-size: 1rem; line-height: 1.65; --navigation-font-size:.92rem; --mobile-navigation-font-size:1rem; }
body.design-warm { background:var(--footer-background,color-mix(in srgb,var(--brand) 84%,#2d201b)); }
body.design-classic { background:var(--footer-background,var(--brand)); }
#main { background:var(--paper); }
body.font-geometric { font-family: "Century Gothic", Futura, "Segoe UI", sans-serif; }
body.font-classic { font-family: Georgia, "Times New Roman", serif; }
body.nav-size-small { --navigation-font-size:.84rem; --mobile-navigation-font-size:.94rem; }
body.nav-size-large { --navigation-font-size:1.04rem; --mobile-navigation-font-size:1.08rem; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .18em; }
button, input, textarea, select { font: inherit; }
button, summary, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }

.shell { width: min(1180px, calc(100% - 3rem)); margin-inline: auto; }
.narrow { width: min(800px, calc(100% - 3rem)); margin-inline: auto; }
.skip-link { position: fixed; z-index: 1000; left: 1rem; top: 1rem; transform: translateY(-180%); padding: .7rem 1rem; border-radius: 999px; background: var(--accent); color: var(--ink); font-weight: 800; }
.skip-link:focus { transform: none; }
.page-title-visually-hidden { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); border:0; white-space:nowrap; }
.eyebrow { margin: 0 0 .75rem; color: color-mix(in srgb, var(--brand) 88%, white); font-size: .74rem; font-weight: 850; letter-spacing: .18em; line-height: 1.2; text-transform: uppercase; }
h1, h2, h3 { margin: 0; font-weight: 780; letter-spacing: -.035em; line-height: 1.06; }
h1 { font-size: clamp(3rem, 7vw, 6.8rem); }
h2 { font-size: clamp(2.2rem, 4.5vw, 4.3rem); }
h3 { font-size: 1.35rem; }
p { margin: 0 0 1rem; }

.site-header { position: sticky; z-index: 100; top: 0; border-bottom: 1px solid rgb(23 33 38 / 7%); background: color-mix(in srgb, var(--paper) 92%, transparent); backdrop-filter: blur(16px); }
.header-inner { display: flex; min-height: 92px; padding-block: .75rem; align-items: center; justify-content: space-between; gap: 2rem; }
.site-header.has-header-logo .header-inner { min-height:max(92px,calc(var(--header-logo-height,80px) + 24px)); }
.brand { display: inline-flex; min-width:0; align-items: center; gap: .85rem; text-decoration: none; }
.brand-logo { width:auto; height:var(--header-logo-height,80px); max-width:min(420px,48vw); flex:0 1 auto; object-fit:contain; object-position:left center; }
.brand-logo-picture { display:contents; }
.brand.with-brand-copy .brand-logo { max-width:min(360px,30vw); }
.brand-copy { display: grid; min-width:0; }
.brand strong { font-size: 1.12rem; line-height: 1.1; }
.brand small { margin-top: .25rem; color: var(--muted); font-size: .7rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.brand-mark { position: relative; display: inline-block; width: 52px; height: 52px; border: 2px solid var(--brand); border-radius: 55% 45% 54% 46%; transform: rotate(-8deg); }
.brand-mark::after { position: absolute; width: 12px; height: 12px; border-radius: 50%; background: var(--accent); content: ""; inset: 18px; }
.brand-mark i { position: absolute; display: block; width: 28px; height: 2px; background: var(--brand); top: 24px; }
.brand-mark i:first-child { left: -20px; transform: rotate(8deg); }
.brand-mark i:last-child { right: -20px; transform: rotate(8deg); }
.navigation-list, .nav-submenu { margin:0; padding:0; list-style:none; }
.desktop-nav { font-size:var(--navigation-font-size); font-weight:720; }
.desktop-nav > .navigation-list { display:flex; align-items:center; gap:clamp(1rem,2vw,2rem); }
.nav-item { position:relative; }
.desktop-nav .nav-parent-row { display:flex; align-items:center; }
.desktop-nav .nav-parent-link { position:relative; text-decoration:none; }
.desktop-nav .nav-parent-link::after { position:absolute; height:var(--navigation-underline-height,2px); background:var(--accent); content:""; inset:auto 100% -.35rem 0; transition:inset .2s ease; }
.desktop-nav .nav-parent-link:hover::after, .desktop-nav .nav-parent-link:focus-visible::after, .desktop-nav .nav-parent-link[aria-current="page"]::after, .desktop-nav .is-current-ancestor > .nav-parent-row > .nav-parent-link::after { right:0; }
.nav-highlight { padding: .75rem 1.15rem; border-radius: 999px; background: var(--brand); color: white; }
.desktop-nav .nav-highlight::after { content:none; }
.desktop-nav .nav-highlight:hover, .desktop-nav .nav-highlight:focus-visible, .desktop-nav .nav-highlight[aria-current="page"], .desktop-nav .is-current-ancestor > .nav-parent-row > .nav-highlight { text-decoration-line:underline; text-decoration-color:var(--accent); text-decoration-thickness:var(--navigation-underline-height,2px); text-underline-offset:.38rem; }
.nav-submenu-disclosure { position:static; }
.nav-submenu-disclosure > summary { display:grid; width:34px; height:34px; padding:0; place-content:center; border:0; border-radius:50%; background:transparent; color:var(--brand); cursor:pointer; list-style:none; }
.nav-submenu-disclosure > summary::-webkit-details-marker { display:none; }
.nav-submenu-disclosure > summary:hover { background:color-mix(in srgb,var(--brand) 9%,transparent); }
.nav-submenu-disclosure > summary:focus-visible { outline:3px solid var(--accent); outline-offset:2px; }
.nav-submenu-chevron { display:block; width:.5rem; height:.5rem; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:translateY(-2px) rotate(45deg); transition:transform .2s ease; }
.nav-submenu-disclosure[open] > summary .nav-submenu-chevron { transform:translateY(2px) rotate(225deg); }
.desktop-nav .nav-submenu { position:absolute; z-index:110; display:grid; min-width:220px; gap:.15rem; padding:.55rem; border:1px solid var(--line); border-radius:.9rem; background:white; box-shadow:var(--shadow); left:0; top:calc(100% + .65rem); }
.desktop-nav .nav-submenu::before { position:absolute; height:.7rem; content:""; inset:-.7rem 0 auto; }
.desktop-nav .nav-submenu-link { display:block; padding:.7rem .8rem; border-radius:.6rem; color:var(--ink); font-size:.92em; text-decoration:none; white-space:nowrap; }
.desktop-nav .nav-submenu-link:hover, .desktop-nav .nav-submenu-link:focus-visible { background:var(--surface); }
.desktop-nav .nav-submenu-link[aria-current="page"] { background:var(--surface); box-shadow:inset 3px 0 0 var(--accent); }
.mobile-menu { display: none; position: relative; }
.mobile-menu > summary { display:grid; width:48px; height:48px; place-content:center; gap:5px; border-radius:50%; background:var(--brand); cursor:pointer; list-style:none; }
.mobile-menu > summary::-webkit-details-marker { display:none; }
.mobile-menu > summary span { width:20px; height:2px; background:white; }
.mobile-menu nav { position:absolute; display:grid; min-width:310px; max-height:calc(100vh - 90px); overflow:auto; padding:1rem; border-radius:1rem; background:white; box-shadow:var(--shadow); font-size:var(--mobile-navigation-font-size); right:0; top:60px; }
.mobile-menu .navigation-list { display:grid; }
.mobile-menu .nav-item { border-bottom:1px solid var(--line); }
.mobile-menu .nav-item:last-child { border-bottom:0; }
.mobile-menu .nav-parent-row { position:relative; display:block; }
.mobile-menu .nav-parent-link { display:block; padding:.85rem 3.4rem .85rem .85rem; font-weight:700; text-decoration:none; }
.mobile-menu .nav-parent-link[aria-current="page"], .mobile-menu .is-current-ancestor > .nav-parent-row > .nav-parent-link { text-decoration-line:underline; text-decoration-color:var(--accent); text-decoration-thickness:var(--navigation-underline-height,2px); text-underline-offset:.32rem; }
.mobile-menu .nav-submenu-disclosure { display:block; }
.mobile-menu .nav-submenu-disclosure > summary { position:absolute; top:.45rem; right:.35rem; }
.mobile-menu .nav-submenu { display:grid; gap:.1rem; margin:0 .45rem .7rem; padding:.35rem; border-radius:.7rem; background:var(--surface); }
.mobile-menu .nav-submenu-link { display:block; padding:.7rem .85rem; border-radius:.5rem; font-size:.92em; font-weight:650; text-decoration:none; }
.mobile-menu .nav-submenu-link:hover, .mobile-menu .nav-submenu-link:focus-visible { background:white; }
.mobile-menu .nav-submenu-link[aria-current="page"] { background:white; box-shadow:inset 3px 0 0 var(--accent); }
.mobile-menu-contact { display:grid; gap:.85rem; margin-top:.85rem; padding-top:.85rem; border-top:1px solid var(--line); }
.mobile-menu-contact.mobile-menu-contact-no-divider { padding-top:0; border-top:0; }
.mobile-menu-contact-links { display:grid; gap:.5rem; margin:0; padding:0; list-style:none; }
.mobile-menu-contact-links a { display:flex; align-items:center; gap:.6rem; font-weight:650; text-decoration:none; }
.mobile-menu-contact-links svg { width:20px; height:20px; flex:none; fill:var(--brand); }
.mobile-menu-cta { display:grid; place-items:center; padding:.8rem 1rem; border-radius:.6rem; background:var(--brand); color:white; font-weight:700; text-decoration:none; text-align:center; }
.mobile-menu-cta:hover, .mobile-menu-cta:focus-visible { background:var(--accent); }
.mobile-menu-social-links { display:flex; flex-wrap:wrap; gap:.5rem; margin:0; padding:0; list-style:none; }
.mobile-menu-social-links a { display:grid; width:38px; height:38px; border:1px solid var(--line); border-radius:50%; place-content:center; color:var(--brand); transition:background-color .2s ease,border-color .2s ease,color .2s ease; }
.mobile-menu-social-links a:hover, .mobile-menu-social-links a:focus-visible { border-color:var(--accent); background:var(--accent); color:white; }

.hero-slider { position: relative; height: 640px; min-height: 640px; overflow: hidden; background: var(--brand); color: white; isolation: isolate; }
.hero-slider .slides { display: grid; height: 100%; min-height: 0; }
.hero-slide { position: relative; display: grid; visibility: hidden; height: 100%; min-height: 0; overflow: hidden; isolation:isolate; grid-area: 1 / 1; place-items: center; opacity: 0; transition: opacity var(--slider-transition-duration,.65s) ease, visibility var(--slider-transition-duration,.65s) ease, transform var(--slider-transition-duration,.65s) ease; }
.hero-slider--transition-slide .hero-slide { transform: translateX(4%); }
.hero-slider--transition-slide .hero-slide.is-active { transform: translateX(0); }
.hero-slider--transition-zoom .hero-slide { transform: scale(1.06); }
.hero-slider--transition-zoom .hero-slide.is-active { transform: scale(1); }
.hero-background-image { position:absolute; z-index:-1; width:100%; height:100%; max-width:none; object-fit:cover; inset:0; }
.hero-background-picture { position:absolute; z-index:-1; inset:0; }
.hero-slide.has-background-image.image-fit-contain .hero-background-image { object-fit:contain; }
.hero-slide.has-background-image.image-position-left .hero-background-image { object-position:left center; }
.hero-slide.has-background-image.image-position-right .hero-background-image { object-position:right center; }
.hero-slide.has-background-image::before { position:absolute; z-index:0; background:linear-gradient(125deg,rgb(16 28 34 / 78%),rgb(24 59 78 / 62%)); content:""; inset:0; opacity:var(--hero-image-overlay-opacity,1); }
.hero-slide.is-active { position: relative; visibility: visible; opacity: 1; }
.hero-slide::after { position: absolute; z-index: -2; background: linear-gradient(125deg, color-mix(in srgb, var(--brand) 94%, black), color-mix(in srgb, var(--brand) 80%, #0d6f70)); content: ""; inset: 0; }
.hero-slide.tone-light::after { background: linear-gradient(125deg, var(--surface), white); }
.hero-slide.tone-light { color: var(--ink); }
.hero-slide.tone-accent::after { background: linear-gradient(125deg, var(--accent), color-mix(in srgb, var(--accent) 55%, white)); }
.hero-slide.tone-accent { color: var(--ink); }
.hero-slide.tone-dark::after { background: linear-gradient(125deg, #101c22, #223640); }
.hero-slide.tone-custom,.hero-slide.tone-gradient { color:var(--hero-foreground,#fff); }
.hero-slide.tone-custom::after,.hero-slide.tone-gradient::after { background:var(--custom-slide-background) !important; }
.hero-slide.tone-custom .eyebrow,.hero-slide.tone-gradient .eyebrow { color:inherit; opacity:.82; }
.hero-slider.image-slide-active { background: var(--brand); }
.hero-slider--dynamic-height { height:auto; min-height:0; aspect-ratio: var(--desktop-ratio, 1.5); }
.hero-slide.hero-slide-image { display: grid; height: 100%; min-height: 0; background: var(--image-slide-background, var(--brand)); place-items: center; }
.hero-slide.hero-slide-image::after { display: none; }
.hero-slide-image > picture, .hero-image-link { width: 100%; height: 100%; min-height: 0; align-self: stretch; }
.hero-slide-image picture { display: grid; width: 100%; height: 100%; min-height: 0; place-items: center; }
.hero-slide-image picture img { width: 100%; height: 100%; min-height: 0; object-fit: contain; object-position: center; }
.hero-slide-image.image-fit-cover picture img { object-fit:cover; }
.hero-slide-image.image-position-left picture img { object-position:left center; }
.hero-slide-image.image-position-right picture img { object-position:right center; }
.hero-image-link { display: grid; text-decoration: none; place-items: center; }
.hero-image-link:focus-visible { position: relative; z-index: 5; outline-offset: -6px; }
.hero-image-hotspot { position:absolute; z-index:3; min-width:24px; min-height:24px; visibility:hidden; border-radius:.2rem; color:inherit; cursor:pointer; pointer-events:none; text-decoration:none; }
.hero-image-hotspot.is-positioned { visibility:visible; pointer-events:auto; }
.hero-image-hotspot-button { display:flex; width:max-content; min-width:calc(120px * var(--hotspot-scale,1)); min-height:calc(48px * var(--hotspot-scale,1)); height:auto; max-width:100%; align-items:center; justify-content:center; gap:calc(.75rem * var(--hotspot-scale,1)); padding:calc(.7rem * var(--hotspot-scale,1)) calc(1.2rem * var(--hotspot-scale,1)); border-radius:999px; background:var(--accent); color:var(--image-button-text,var(--ink)); font-size:calc(1rem * var(--hotspot-scale,1)); font-weight:800; line-height:1.15; overflow-wrap:anywhere; box-shadow:0 10px 24px rgb(0 0 0 / 20%); text-align:center; }
.hero-image-hotspot-button.button-size-small { min-width:calc(104px * var(--hotspot-scale,1)); min-height:calc(42px * var(--hotspot-scale,1)); gap:calc(.55rem * var(--hotspot-scale,1)); padding:calc(.55rem * var(--hotspot-scale,1)) calc(.9rem * var(--hotspot-scale,1)); font-size:calc(.875rem * var(--hotspot-scale,1)); }
.hero-image-hotspot-button.button-size-large { min-width:calc(144px * var(--hotspot-scale,1)); min-height:calc(56px * var(--hotspot-scale,1)); gap:calc(.85rem * var(--hotspot-scale,1)); padding:calc(.85rem * var(--hotspot-scale,1)) calc(1.45rem * var(--hotspot-scale,1)); font-size:calc(1.125rem * var(--hotspot-scale,1)); }
.hero-image-hotspot-button.button-align-left span:first-child { text-align:left; }
.hero-image-hotspot-button.button-align-center span:first-child { text-align:center; }
.hero-image-hotspot-button.button-align-right span:first-child { text-align:right; }
.hero-image-hotspot-button:hover { filter:brightness(1.04); }
.hero-image-hotspot:focus-visible { outline:3px solid var(--accent); outline-offset:3px; box-shadow:0 0 0 2px rgb(0 0 0 / 70%); }
.hero-inner { position: relative; z-index: 2; padding-block: 4rem 7rem; }
.hero-inner h2 { max-width: 920px; font-size: clamp(3rem, 6vw, 5.4rem); text-wrap: balance; }
.hero-inner .eyebrow { color: var(--accent); }
.tone-light .eyebrow, .tone-accent .eyebrow { color: var(--brand); }
.hero-copy { max-width: 650px; margin: 1.6rem 0 2.2rem; font-size: clamp(1.05rem, 2vw, 1.4rem); line-height: 1.55; opacity: .88; }
.hero-visual { position: absolute; z-index: 1; width: min(52vw, 700px); aspect-ratio: 1; opacity: .28; right: -7%; top: 3%; }
.hero-visual--none { display:none; }
.hero-visual--rings span,.hero-visual--organic span { position: absolute; border: 2px solid currentColor; border-radius: 50%; inset: 18%; }
.hero-visual--rings span:nth-child(2),.hero-visual--organic span:nth-child(2) { inset: 30% 1% 30% 36%; transform: rotate(32deg); }
.hero-visual--rings span:nth-child(3),.hero-visual--organic span:nth-child(3) { inset: 4% 34% 37% 18%; border-color: var(--accent); transform: rotate(-26deg); }
.hero-visual--organic span { border-radius:62% 38% 55% 45%; transform:rotate(-12deg); }
.hero-visual--organic span:nth-child(2) { border-radius:38% 62% 44% 56%; transform:rotate(38deg); }
.hero-visual--organic span:nth-child(3) { border-radius:58% 42% 66% 34%; transform:rotate(-34deg); }
.hero-visual--rays { border-radius:50%; background:repeating-conic-gradient(from -12deg,currentColor 0 1deg,transparent 1deg 14deg); -webkit-mask-image:radial-gradient(circle,transparent 0 19%,#000 20% 68%,transparent 69%); mask-image:radial-gradient(circle,transparent 0 19%,#000 20% 68%,transparent 69%); }
.hero-visual--rays span,.hero-visual--grid span { display:none; }
.hero-visual--grid { background-image:linear-gradient(currentColor 1px,transparent 1px),linear-gradient(90deg,currentColor 1px,transparent 1px); background-size:54px 54px; -webkit-mask-image:linear-gradient(115deg,transparent 4%,#000 42%,transparent 86%); mask-image:linear-gradient(115deg,transparent 4%,#000 42%,transparent 86%); }
.hero-light-effect { --light-x:78%; --light-shift:15%; --light-opacity:.5; --hero-light-color:var(--accent); position:absolute; z-index:1; overflow:hidden; opacity:var(--light-opacity); inset:0; pointer-events:none; }
.hero-light-effect.position-left { --light-x:22%; --light-shift:-15%; }
.hero-light-effect.position-center { --light-x:50%; --light-shift:0%; }
.hero-light-effect.intensity-soft { --light-opacity:.28; }
.hero-light-effect.intensity-strong { --light-opacity:.72; }
.hero-light-effect::before,.hero-light-effect::after { position:absolute; content:""; inset:-12%; }
.hero-light-effect span { display:none; }
.hero-light-effect.effect-soft-orb::before { background:radial-gradient(circle at var(--light-x) 25%,color-mix(in srgb,var(--hero-light-color) 68%,white),color-mix(in srgb,var(--hero-light-color) 24%,transparent) 22%,transparent 38%); }
.hero-light-effect.effect-double-orb::before { background:radial-gradient(circle at var(--light-x) 22%,color-mix(in srgb,var(--hero-light-color) 70%,white),transparent 27%),radial-gradient(circle at calc(100% - var(--light-x)) 82%,color-mix(in srgb,var(--surface) 65%,var(--hero-light-color)),transparent 24%); }
.hero-light-effect.effect-mist::before { background:radial-gradient(ellipse at var(--light-x) 32%,color-mix(in srgb,var(--hero-light-color) 72%,transparent),transparent 38%),radial-gradient(ellipse at calc(100% - var(--light-x)) 72%,color-mix(in srgb,var(--surface) 70%,transparent),transparent 34%); filter:blur(34px); transform:scale(1.15); }
.hero-light-effect.effect-sunrise::before { background:radial-gradient(ellipse at var(--light-x) 112%,color-mix(in srgb,var(--hero-light-color) 76%,white) 0 8%,color-mix(in srgb,var(--hero-light-color) 58%,transparent) 28%,transparent 62%); }
.hero-light-effect.effect-top-glow::before { background:radial-gradient(ellipse at var(--light-x) -18%,color-mix(in srgb,var(--hero-light-color) 70%,white),color-mix(in srgb,var(--hero-light-color) 38%,transparent) 32%,transparent 64%); }
.hero-light-effect.effect-side-glow::before { background:radial-gradient(ellipse at var(--light-x) 48%,color-mix(in srgb,var(--hero-light-color) 70%,white),color-mix(in srgb,var(--hero-light-color) 34%,transparent) 24%,transparent 52%); transform:scaleX(1.15); }
.hero-light-effect.effect-diagonal-beam::before { background:linear-gradient(115deg,transparent 28%,color-mix(in srgb,var(--hero-light-color) 20%,transparent) 39%,color-mix(in srgb,var(--hero-light-color) 72%,white) 50%,color-mix(in srgb,var(--hero-light-color) 18%,transparent) 61%,transparent 72%); transform:translateX(var(--light-shift)); }
.hero-light-effect.effect-waves::before { background:repeating-radial-gradient(ellipse at var(--light-x) 112%,transparent 0 70px,color-mix(in srgb,var(--hero-light-color) 56%,transparent) 74px 77px,transparent 82px 128px); filter:blur(.4px); }
.hero-light-effect.effect-aurora::before { background:conic-gradient(from 205deg at var(--light-x) 118%,transparent 0 8%,color-mix(in srgb,var(--hero-light-color) 76%,transparent) 13%,color-mix(in srgb,var(--surface) 70%,white) 18%,color-mix(in srgb,var(--brand) 34%,var(--hero-light-color)) 23%,transparent 31%); filter:blur(22px); transform:scale(1.12); }
.hero-light-effect.effect-horizon::before { background:linear-gradient(180deg,transparent 47%,color-mix(in srgb,var(--hero-light-color) 16%,transparent) 57%,color-mix(in srgb,var(--hero-light-color) 70%,white) 66%,color-mix(in srgb,var(--hero-light-color) 14%,transparent) 72%,transparent 82%),radial-gradient(ellipse at var(--light-x) 66%,color-mix(in srgb,var(--hero-light-color) 52%,transparent),transparent 42%); filter:blur(3px); }
.hero-light-effect.effect-prism::before { background:conic-gradient(from 210deg at var(--light-x) 52%,transparent,color-mix(in srgb,var(--hero-light-color) 64%,white),color-mix(in srgb,var(--surface) 72%,#b8e7ff),color-mix(in srgb,var(--hero-light-color) 52%,#ffd0d8),transparent 32%); filter:blur(9px); }
.hero-light-effect.effect-spotlight::before { background:conic-gradient(from 165deg at var(--light-x) -15%,transparent 0 42%,color-mix(in srgb,var(--hero-light-color) 56%,white) 47%,color-mix(in srgb,var(--hero-light-color) 14%,transparent) 53%,transparent 58%); filter:blur(7px); }
.hero-light-effect.effect-islands::before { background:radial-gradient(ellipse at var(--light-x) 20%,color-mix(in srgb,var(--hero-light-color) 66%,transparent),transparent 24%),radial-gradient(ellipse at calc(var(--light-x) - 18%) 72%,color-mix(in srgb,var(--surface) 74%,transparent),transparent 29%),radial-gradient(ellipse at calc(var(--light-x) + 16%) 86%,color-mix(in srgb,var(--hero-light-color) 42%,white),transparent 22%); filter:blur(14px); }
.hero-light-effect.effect-bokeh span { position:absolute; display:block; width:clamp(54px,8vw,130px); aspect-ratio:1; border-radius:50%; background:color-mix(in srgb,var(--hero-light-color) 48%,white); filter:blur(2px); left:calc(var(--light-x) - 5%); top:16%; box-shadow:clamp(-150px,-12vw,-70px) 190px 0 -22px color-mix(in srgb,var(--surface) 62%,white),clamp(80px,10vw,170px) 80px 0 -36px color-mix(in srgb,var(--hero-light-color) 58%,white),clamp(-70px,-6vw,-35px) 360px 0 -40px color-mix(in srgb,var(--hero-light-color) 48%,white); }
.hero-custom-decoration { position:absolute; z-index:1; display:grid; width:auto; height:min(82%,52vw,700px); aspect-ratio:1; align-items:center; overflow:hidden; opacity:var(--hero-decoration-opacity,.35); top:9%; pointer-events:none; transform:translateX(var(--hero-decoration-translate-x,0)); }
.hero-custom-decoration.layer-front { z-index:3; }
.hero-custom-decoration.position-left { justify-items:start; left:2%; }
.hero-custom-decoration.position-center { --hero-decoration-translate-x:-50%; justify-items:center; left:50%; }
.hero-custom-decoration.position-right { justify-items:end; right:2%; }
.hero-custom-decoration.size-small { height:min(82%,28vw,380px); }
.hero-custom-decoration.size-large { height:min(82%,68vw,900px); }
.hero-custom-decoration.size-xlarge { height:min(96%,85vw,1100px); top:2%; }
.hero-custom-decoration.size-overflow { height:min(125%,110vw,1300px); top:-12.5%; }
.hero-custom-decoration.size-overflow.position-left { left:-8%; }
.hero-custom-decoration.size-overflow.position-right { right:-8%; }
.hero-custom-decoration picture { display:contents; }
.hero-custom-decoration img { width:100%; height:100%; object-fit:contain; transform:rotate(var(--hero-decoration-rotation,0deg)); transform-origin:center; }
.slider-controls { position: absolute; z-index: 4; display: flex; align-items: center; gap: .6rem; bottom: 2rem; left: 50%; transform: translateX(-50%); transition:background .2s,backdrop-filter .2s; }
.slider-controls > button { display: grid; width: 44px; height: 44px; flex:0 0 auto; border: 1px solid rgb(255 255 255 / 35%); border-radius: 50%; background: rgb(0 0 0 / 18%); color: white; cursor: pointer; place-content: center; transition:width .2s,margin .2s,opacity .15s,transform .2s,border-width .2s; }
.image-slide-active .slider-controls { padding:.35rem .55rem; border-radius:999px; background:rgb(0 0 0 / 30%); backdrop-filter:blur(8px); }
.slider-dots { display: flex; gap: .45rem; padding: .5rem; }
.slider-dots button { display: grid; place-items: center; width: 24px; height: 24px; padding: 0; border: 0; background: none; cursor: pointer; }
.slider-dots button::before { content: ''; width: 24px; height: 4px; border-radius: 99px; background: rgb(255 255 255 / 40%); transition: width .2s, background .2s; }
.slider-dots button.is-active::before { width: 48px; background: var(--accent); }
.slider-controls-compact .slider-controls { gap:0; padding:.35rem; border-radius:999px; }
.slider-controls-compact .slider-controls > button { margin-inline:.3rem; overflow:hidden; }
.slider-controls-compact .slider-controls:hover,
.slider-controls-compact .slider-controls:focus-within,
.slider-controls-compact .slider-controls.is-expanded { background:rgb(0 0 0 / 30%); backdrop-filter:blur(8px); }
.slider-controls-compact .slider-controls:not(:hover):not(:focus-within):not(.is-expanded) { background:transparent; backdrop-filter:none; }
.slider-controls-compact .slider-controls:not(:hover):not(:focus-within):not(.is-expanded) > button { width:0; margin-inline:0; border-width:0; opacity:0; transform:scale(.65); pointer-events:none; }

.button { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; gap: .7rem; padding: .78rem 1.3rem; border: 0; border-radius: 999px; font-weight: 800; line-height: 1.2; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; cursor: pointer; }
.button:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgb(0 0 0 / 14%); }
.button:disabled { cursor: wait; opacity: .55; transform: none; }
.button-primary { background: var(--brand); color: white; }
.button-accent { background: var(--accent); color: var(--ink); }
.button-ghost { border: 1px solid var(--line); background: transparent; }
.button-row { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; }

.section { padding-top: var(--section-top-spacing, var(--content-section-spacing, clamp(5rem, 10vw, 9rem))); padding-bottom: var(--content-section-spacing, clamp(5rem, 10vw, 9rem)); background:var(--section-background,var(--paper)); color:var(--section-foreground,var(--ink)); --section-muted:color-mix(in srgb,var(--section-foreground,var(--ink)) 74%,transparent); }
.section-spacing-minimal { --content-section-spacing: clamp(.5rem, 1.5vw, 1rem); }
.section-spacing-xs { --content-section-spacing: clamp(1.75rem, 4vw, 3rem); }
.section-spacing-s { --content-section-spacing: clamp(3rem, 6vw, 5rem); }
.section-spacing-m { --content-section-spacing: clamp(5rem, 10vw, 9rem); }
.section-spacing-l { --content-section-spacing: clamp(7rem, 13vw, 12rem); }
.section-spacing-xl { --content-section-spacing: clamp(9rem, 16vw, 15rem); }
.first-content-section { --section-top-spacing: var(--first-section-spacing, var(--content-section-spacing, clamp(5rem, 10vw, 9rem))); }
.first-section-spacing-xs { --first-section-spacing: clamp(1.75rem, 4vw, 3rem); }
.first-section-spacing-s { --first-section-spacing: clamp(3rem, 6vw, 5rem); }
.first-section-spacing-m { --first-section-spacing: clamp(5rem, 10vw, 9rem); }
.first-section-spacing-l { --first-section-spacing: clamp(7rem, 13vw, 12rem); }
.first-section-spacing-xl { --first-section-spacing: clamp(9rem, 16vw, 15rem); }
.section-surface { background: var(--surface); }
.section-ink { background: var(--brand); color: white; }
.section .content-heading { color:var(--section-foreground,var(--ink)); }
.section .content-eyebrow { color:var(--section-eyebrow-auto,var(--brand)); }
.section-copy { align-self: center; }
.section-copy h2, .section-heading h2 { max-width: 820px; text-wrap: balance; }
.text-align-left { text-align:left; }
.text-align-center { text-align:center; }
.text-align-right { text-align:right; }
h1.text-align-center, h2.text-align-center { margin-inline:auto; }
h1.text-align-right, h2.text-align-right { margin-left:auto; }
.eyebrow.eyebrow-size-small { font-size: .64rem; }
.eyebrow.eyebrow-size-large { font-size: .88rem; }
h2.heading-size-small { font-size: clamp(1.8rem, 3.2vw, 3rem); }
h2.heading-size-large { font-size: clamp(2.8rem, 5.5vw, 5.4rem); }
.section-heading { margin-bottom: 3rem; }
.section-intro { max-width: 680px; margin-top: 1.25rem; color:var(--section-muted,var(--muted)); font-size: 1.12rem; }
.section-intro.text-align-center { margin-inline:auto; }
.section-intro.text-align-right { margin-left:auto; }
.section-ink .section-intro { color: rgb(255 255 255 / 70%); }
.section-ink .eyebrow { color: var(--accent); }
body.content-heading-color-primary .content-heading { color:var(--brand); }
body.content-heading-color-accent .content-heading { color:var(--accent); }
body.content-heading-color-ink .content-heading { color:var(--ink); }
body.content-heading-color-custom .content-heading { color:var(--content-heading-custom); }
body.content-eyebrow-color-primary .content-eyebrow { color:var(--brand); }
body.content-eyebrow-color-accent .content-eyebrow { color:var(--accent); }
body.content-eyebrow-color-ink .content-eyebrow { color:var(--ink); }
body.content-eyebrow-color-custom .content-eyebrow { color:var(--content-eyebrow-custom); }
.section.block-heading-override .content-heading { color:var(--block-heading-color); }
.section.block-eyebrow-override .content-eyebrow { color:var(--block-eyebrow-color); }
.section.block-body-override .content-body { color:var(--block-body-color); }
.side-by-side-grid { display: grid; align-items: start; gap: clamp(3rem, 6vw, 5rem); }
.side-by-side-columns-2 { grid-template-columns: 1fr 1fr; }
.side-by-side-columns-1 { grid-template-columns: 1fr; }
.side-by-side-column { min-width: 0; }
.split { display: grid; grid-template-columns: 1fr .85fr; align-items: center; gap: clamp(3rem, 8vw, 8rem); }
.split.image-left .section-copy { order: 2; }
.split.image-left > :last-child { order: 1; }
.split.image-none { grid-template-columns: 1fr; }
.split.image-top, .split.image-bottom { grid-template-columns: 1fr; gap: clamp(2rem, 5vw, 4rem); }
.split.image-top .section-copy, .split.image-bottom .section-copy { width: 100%; margin-inline: 0; text-align: center; }
.split.image-top .section-copy { order: 2; }
.split.image-top > :last-child { order: 1; }
.split.image-top .section-copy h2, .split.image-bottom .section-copy h2 { max-width: none; margin-inline: 0; }
.split.image-top .rich-text, .split.image-bottom .rich-text { width: 100%; margin-inline: 0; }
.content-layout-grid { display:grid; align-items:center; gap:clamp(3rem,8vw,8rem); }
.content-layout-columns-2 { grid-template-columns:1fr 1fr; }
.content-layout--text-text,.content-layout--image-image,.content-layout-columns-3 { align-items:start; }
.content-layout--text-text .content-layout-text { align-self:start; }
.content-layout-columns-3 .content-layout-text { align-self:start; }
.content-layout-columns-3 { grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(1rem,3vw,2rem); }
.content-layout-columns-3.content-layout-visible-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.content-layout--image-top,.content-layout--image-bottom,.content-layout--text { grid-template-columns:1fr; gap:clamp(2rem,5vw,4rem); }
.content-layout-columns-2.content-layout-ratio-25-75:not(.content-layout-visible-1) { grid-template-columns:1fr 3fr; }
.content-layout-columns-2.content-layout-ratio-33-67:not(.content-layout-visible-1) { grid-template-columns:1fr 2fr; }
.content-layout-columns-2.content-layout-ratio-55-45:not(.content-layout-visible-1) { grid-template-columns:1.22fr 1fr; }
.content-layout-columns-2.content-layout-ratio-67-33:not(.content-layout-visible-1) { grid-template-columns:2fr 1fr; }
.content-layout-columns-2.content-layout-ratio-75-25:not(.content-layout-visible-1) { grid-template-columns:3fr 1fr; }
.content-layout-visible-1 { grid-template-columns:1fr; }
.content-layout-item { min-width:0; }
.content-layout-grid--docked { grid-template-rows:auto auto; row-gap:1.5rem; }
.content-layout-grid--docked .content-layout-text-heading,.content-layout-grid--docked .content-layout-text-body { align-self:start; min-width:0; }
.content-layout-grid--docked .content-layout-text-body .rich-text { margin-top:0; }
.content-layout-media--valign-top { align-self:start; }
.content-layout-media--valign-center { align-self:center; }
.content-layout-media--valign-bottom { align-self:end; }
.content-layout-media--valign-besideText { align-self:start; }
.content-layout--image-top .content-layout-text,.content-layout--image-bottom .content-layout-text { width:100%; text-align:center; }
.content-layout--image-top .content-layout-text h2,.content-layout--image-bottom .content-layout-text h2 { max-width:none; margin-inline:0; }
.content-layout--image-top .content-layout-text .rich-text,.content-layout--image-bottom .content-layout-text .rich-text { width:100%; margin-inline:0; }
.content-layout--text .content-layout-text h2 { max-width:none; }
.content-layout--text .content-layout-text.heading-width-full h2,.content-layout--image-top .content-layout-text.heading-width-full h2,.content-layout--image-bottom .content-layout-text.heading-width-full h2 { text-wrap:wrap; }
.content-layout--text .content-layout-text.heading-width-wide h2,.content-layout--image-top .content-layout-text.heading-width-wide h2,.content-layout--image-bottom .content-layout-text.heading-width-wide h2 { max-width:1000px; }
.content-layout--text .content-layout-text.heading-width-compact h2,.content-layout--image-top .content-layout-text.heading-width-compact h2,.content-layout--image-bottom .content-layout-text.heading-width-compact h2 { max-width:820px; }
.content-layout--image-top .content-layout-text.heading-width-wide h2.text-align-auto,.content-layout--image-bottom .content-layout-text.heading-width-wide h2.text-align-auto,.content-layout--image-top .content-layout-text.heading-width-compact h2.text-align-auto,.content-layout--image-bottom .content-layout-text.heading-width-compact h2.text-align-auto { margin-inline:auto; }
.content-layout-media { width:100%; min-height:0; margin:0; aspect-ratio:1; }
.content-layout-media.feature-image,.content-layout-media.abstract-card { min-height:0; }
.content-layout-media picture { display:block; width:100%; height:100%; }
.content-layout-media img { width:100%; height:100%; object-fit:cover; }
.content-layout-media--aspect-landscape { aspect-ratio:4 / 3; }
.content-layout-media--aspect-wide { aspect-ratio:16 / 9; }
.content-layout-media--aspect-natural { aspect-ratio:auto; }
.content-layout-media--aspect-natural.abstract-card { aspect-ratio:4 / 3; }
.content-layout-media--aspect-natural picture,.content-layout-media--aspect-natural img { height:auto; }
.content-layout-media--fit-contain:not(.content-layout-media--aspect-natural) img { object-fit:contain; background:color-mix(in srgb,var(--section-background,var(--paper)) 82%,var(--section-foreground,var(--ink))); }
.content-layout-columns-3 .abstract-card strong { font-size:clamp(1.7rem,3.4vw,3rem); }
.content-layout-media-text { display:flex; flex-direction:column; align-self:start; gap:.85rem; text-align:center; }
.content-layout-media-text .content-layout-media { margin:0; }
.content-layout-media-text--valign-center { align-self:center; }
.content-layout-media-text--valign-bottom { align-self:end; }
.content-layout-media-heading { margin:0; font-size:clamp(1.3rem,2.1vw,1.7rem); font-family:var(--font-heading); line-height:1.2; }
h2.content-layout-media-heading { font-size:clamp(1.9rem,3.2vw,2.8rem); }
h4.content-layout-media-heading { font-size:clamp(1.08rem,1.6vw,1.3rem); }
.content-layout-media-caption.rich-text { margin-top:0; color:var(--section-muted,color-mix(in srgb,var(--ink) 78%,transparent)); font-size:.95rem; line-height:1.5; }
.content-layout-media-caption.rich-text p:last-child { margin-bottom:0; }
.rich-text { --rich-text-normal-size:1.07rem; display:flow-root; margin-top: 1.5rem; color:var(--section-muted,color-mix(in srgb,var(--ink) 78%,transparent)); font-size:var(--rich-text-normal-size); }
.rich-text .rich-text-heading { margin:1.65rem 0 .65rem; color:var(--block-heading-color,var(--section-foreground,var(--ink))); font-family:var(--font-heading); line-height:1.15; }
.rich-text h2.rich-text-heading { font-size:clamp(1.9rem,3.2vw,2.8rem); }
.rich-text h3.rich-text-heading { font-size:clamp(1.3rem,2.1vw,1.7rem); }
.rich-text h4.rich-text-heading { font-size:clamp(1.08rem,1.6vw,1.3rem); }
.rich-text .rich-text-heading:first-child { margin-top:0; }
.rich-text p { margin-bottom: 1.1rem; }
.rich-text p:has(+ .rich-text-heading),.rich-text .rich-text-heading:has(+ p) { margin-bottom:0; }
.rich-text p + .rich-text-heading,.rich-text .rich-text-heading + p { margin-top:0; }
.rich-text p.rich-text-empty { min-height:1.65em; }
.rich-text ul, .rich-text ol { padding-left: 1.2rem; }
.rich-text.text-align-center ul, .rich-text.text-align-center ol, .rich-text.text-align-right ul, .rich-text.text-align-right ol { padding-left:0; list-style-position:inside; }
.rich-text li + li { margin-top:.45rem; }
.rich-text a { color:inherit; font-weight:750; text-decoration-color:var(--accent); text-decoration-thickness:2px; text-underline-offset:.18em; }
.rich-text-size-small { font-size:.88em; }
.rich-text-size-large { font-size:clamp(1.12rem,1.6vw,1.3rem); }
.rich-text-size-xlarge { font-size:clamp(1.3rem,2.1vw,1.7rem); }
.rich-text-image { display:block; clear:both; width:100%; max-width:100%; margin:1.2rem 0; overflow:hidden; }
.rich-text-image picture,.rich-text-image img { display:block; width:100%; }
.rich-text-image img { height:auto; }
.rich-text-image--width-25 { width:25%; }
.rich-text-image--width-50 { width:50%; }
.rich-text-image--width-75 { width:75%; }
.rich-text-image--align-left { float:left; margin:0 1.4rem 1rem 0; }
.rich-text-image--align-center { margin:1.2rem auto; }
.rich-text-image--align-right { float:right; margin:0 0 1rem 1.4rem; }
.rich-text-image--shape-template,.rich-text-image--shape-rounded { border-radius:var(--radius); }
.rich-text-image--shape-soft { border-radius:clamp(1.5rem,5vw,3.5rem); }
.rich-text-image--shape-square { border-radius:0; }
.rich-text-image--shape-circle { aspect-ratio:1; border-radius:50%; }
.rich-text-image--shape-circle picture,.rich-text-image--shape-circle img { height:100%; }
.rich-text-image--shape-circle img { object-fit:cover; }
.feature-image, .abstract-card { min-height: 500px; margin: 0; overflow: hidden; border-radius: calc(var(--radius) * 1.25); box-shadow: var(--shadow); }
.content-layout-media--corners-square.feature-image, .content-layout-media--corners-square.abstract-card { border-radius: 0 !important; }
.feature-image img { width: 100%; height: 100%; object-fit: cover; }
.split.image-top .feature-image, .split.image-top .abstract-card, .split.image-bottom .feature-image, .split.image-bottom .abstract-card { width: 100%; min-height: 0; aspect-ratio: 16 / 7; }
.abstract-card { position: relative; display: grid; overflow: hidden; background: linear-gradient(145deg, var(--brand), color-mix(in srgb, var(--brand) 60%, #1b8a89)); color: white; place-items: center; }
.abstract-card::before, .abstract-card::after, .abstract-card span { position: absolute; content: ""; }
.abstract-card--abstract::before, .abstract-card--abstract::after, .abstract-card--abstract span { border: 1px solid rgb(255 255 255 / 35%); border-radius: 50%; }
.abstract-card--abstract::before { width: 330px; height: 180px; left: -70px; top: 80px; transform: rotate(24deg); }
.abstract-card--abstract::after { width: 260px; height: 300px; right: -55px; bottom: -20px; }
.abstract-card--abstract span { width: 120px; height: 120px; background: var(--accent); right: 18%; top: 12%; }
.abstract-card--rings::before,.abstract-card--rings::after,.abstract-card--rings span { border:2px solid rgb(255 255 255 / 34%); border-radius:50%; }
.abstract-card--rings::before { width:420px; height:420px; left:-160px; top:-110px; }
.abstract-card--rings::after { width:270px; height:270px; right:-75px; bottom:-65px; }
.abstract-card--rings span { width:120px; height:120px; border-color:var(--accent); right:18%; top:15%; }
.abstract-card--waves::before,.abstract-card--waves::after,.abstract-card--waves span { width:115%; height:48%; border:0; border-top:2px solid rgb(255 255 255 / 38%); border-radius:50%; left:-8%; transform:rotate(-8deg); }
.abstract-card--waves::before { top:24%; }
.abstract-card--waves::after { top:43%; }
.abstract-card--waves span { top:62%; border-color:var(--accent); }
.abstract-card--grid::before { background-image:linear-gradient(rgb(255 255 255 / 24%) 1px,transparent 1px),linear-gradient(90deg,rgb(255 255 255 / 24%) 1px,transparent 1px); background-size:46px 46px; content:""; inset:0; -webkit-mask-image:linear-gradient(135deg,#000,transparent 82%); mask-image:linear-gradient(135deg,#000,transparent 82%); }
.abstract-card--grid::after { width:120px; height:120px; border:2px solid var(--accent); right:12%; top:12%; transform:rotate(45deg); }
.abstract-card--grid span,.abstract-card--none::before,.abstract-card--none::after,.abstract-card--none span { display:none; }
.abstract-card strong { z-index: 2; font-size: clamp(2.5rem, 5vw, 4.5rem); letter-spacing: -.06em; line-height: .9; }

.card-grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(3, 1fr); }
.service-card { display: flex; min-height: 330px; flex-direction: column; padding: 2rem; border: 1px solid color-mix(in srgb, var(--brand) 10%, transparent); border-radius: var(--radius); background: var(--service-card-background,white); color:var(--ink); box-shadow: 0 14px 45px rgb(24 59 78 / 6%); }
.service-icon { display: grid; width: 58px; height: 58px; margin-bottom: 0; border-radius: 50%; background: var(--service-icon-background,var(--accent)); color: var(--service-icon-color,var(--brand)); font-size: 1.8rem; place-content: center; }
.service-icon img { width:34px; height:34px; object-fit:contain; }
.service-icon .service-symbol { display:block; width:30px; height:30px; }
.service-card h3 { margin-top: 2.5rem; color:var(--service-title-color,var(--ink)); }
.service-card-description { --rich-text-normal-size:1rem; margin:.8rem 0 1.4rem; color:var(--service-description-color,var(--muted)); }
.service-card-description p { margin:0 0 .7rem; }
.service-card-description ul,.service-card-description ol { margin:.35rem 0 .8rem; }
.service-card-description a { color:var(--service-link-color,var(--brand)); }
.service-card>a { margin-top: auto; color: var(--service-link-color,var(--brand)); font-weight: 800; text-decoration: none; }
.offers-grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(2, 1fr); }
.offer-card { position: relative; min-height: 320px; padding: clamp(2rem, 5vw, 3.5rem); overflow: hidden; border-radius: calc(var(--radius) * 1.15); background: var(--brand); color: white; }
.offer-card:not(.offer-card--image-only) { display:flex; }
.offer-card--wide { min-height:420px; grid-column:1 / -1; }
.offer-card:nth-child(even) { background: var(--accent); color: var(--ink); }
.offer-card.offer-card--has-image { background:var(--brand); color:white; }
.offer-card.offer-card--custom-color { background:var(--offer-card-background); color:var(--offer-card-foreground); }
.offer-card--has-image::before { position:absolute; z-index:1; background:linear-gradient(90deg,rgb(12 26 34 / 88%) 0%,rgb(12 26 34 / 68%) 48%,rgb(12 26 34 / 18%) 100%); content:""; inset:0; }
.offer-card-background { position:absolute; z-index:0; inset:0; }
.offer-card-background img { width:100%; height:100%; object-fit:cover; object-position:var(--offer-background-position,center center); }
.offer-decoration { position:absolute; z-index:2; display:block; pointer-events:none; }
.offer-decoration::before,.offer-decoration::after { position:absolute; content:""; }
.offer-decoration--circle { width:230px; height:230px; border:1px solid currentColor; border-radius:50%; opacity:.2; right:-90px; top:-80px; }
.offer-decoration--double { width:210px; height:210px; border:1px solid currentColor; border-radius:50%; opacity:.22; right:-64px; top:-62px; }
.offer-decoration--double::after { border:1px solid currentColor; border-radius:inherit; inset:30px; }
.offer-decoration--arcs { width:270px; height:190px; border:1px solid currentColor; border-color:currentColor transparent currentColor currentColor; border-radius:50%; opacity:.22; right:-72px; top:-48px; transform:rotate(-16deg); }
.offer-decoration--arcs::after { border:1px solid currentColor; border-color:currentColor currentColor transparent transparent; border-radius:50%; inset:30px 38px; }
.offer-decoration--dots { width:176px; height:128px; background-image:radial-gradient(circle,currentColor 1.5px,transparent 1.8px); background-size:17px 17px; opacity:.27; right:18px; top:18px; }
.offer-decoration--lines { width:220px; height:160px; background:repeating-linear-gradient(135deg,currentColor 0 1px,transparent 1px 18px); opacity:.2; right:-18px; top:-18px; transform:rotate(8deg); }
@media(min-width:601px){.offer-card--wide .offer-decoration{scale:1.42}}
.offer-custom-decoration { position:absolute; z-index:2; display:grid; width:min(52%,230px); aspect-ratio:1; align-items:center; overflow:hidden; opacity:var(--offer-decoration-opacity,.35); top:6%; pointer-events:none; transform:translateX(var(--offer-decoration-translate-x,0)); }
.offer-custom-decoration.layer-front { z-index:4; }
.offer-custom-decoration.position-left { justify-items:start; left:4%; }
.offer-custom-decoration.position-center { --offer-decoration-translate-x:-50%; justify-items:center; left:50%; }
.offer-custom-decoration.position-right { justify-items:end; right:4%; }
.offer-custom-decoration.size-small { width:min(32%,150px); }
.offer-custom-decoration.size-large { width:min(72%,300px); }
.offer-custom-decoration.size-xlarge { width:min(78%,300px); top:3%; }
.offer-custom-decoration.size-overflow { width:min(118%,480px); top:-25%; }
.offer-custom-decoration.size-overflow.position-left { left:-12%; }
.offer-custom-decoration.size-overflow.position-right { right:-12%; }
.offer-custom-decoration picture { display:contents; }
.offer-custom-decoration img { width:100%; height:100%; object-fit:contain; transform:rotate(var(--offer-decoration-rotation,0deg)); transform-origin:center; }
@media(min-width:681px){.offer-card--wide .offer-custom-decoration{width:min(34%,320px)}.offer-card--wide .offer-custom-decoration.size-small{width:min(22%,220px)}.offer-card--wide .offer-custom-decoration.size-large{width:min(46%,420px)}.offer-card--wide .offer-custom-decoration.size-xlarge{width:min(50%,440px)}.offer-card--wide .offer-custom-decoration.size-overflow{width:min(72%,650px)}}
.offer-card-content { position:relative; z-index:3; display:flex; width:100%; flex-direction:column; }
.offer-card h3 { margin: 1.5rem 0 1rem; font-size: clamp(1.8rem, 3vw, 2.7rem); }
.offer-card-description { --rich-text-normal-size:1rem; max-width:520px; margin:0 0 1rem; color:inherit; opacity:.8; }
.offer-card-description p { margin:0 0 .75rem; }
.offer-card-description ul,.offer-card-description ol { margin:.35rem 0 .85rem; }
.offer-card--wide .offer-card-content { max-width:720px; }
.offer-card .button { align-self:flex-start; margin-top:auto; border-color: currentColor; }
.offer-card.offer-card--image-only { min-height:0; padding:0; background:transparent; color:inherit; }
.offer-card--image-only::before { display:none; }
.offer-picture,.offer-image-link { display:block; width:100%; }
.offer-picture img { display:block; width:100%; height:auto; }
.offer-image-link { border-radius:inherit; }
.badge { display: inline-flex; padding: .35rem .75rem; border-radius: 999px; background: rgb(255 255 255 / 16%); font-size: .75rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.team-grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(var(--team-grid-columns,3), minmax(0,1fr)); }
.team-card { padding: 1rem 1rem 1.6rem; border-radius: var(--radius); background:color-mix(in srgb,var(--section-foreground,var(--ink)) 7%,transparent); }
.team-card img, .portrait-placeholder { width: 100%; aspect-ratio: 4 / 4.5; margin-bottom: 1.5rem; border-radius: calc(var(--radius) - .5rem); object-fit: cover; }
.team-card img { height:auto; }
.portrait-placeholder { display: grid; background: linear-gradient(145deg, color-mix(in srgb, var(--accent) 75%, white), color-mix(in srgb, var(--accent) 40%, var(--brand))); color: var(--brand); font-size: 3.5rem; font-weight: 850; place-content: center; }
.team-card h3, .team-card .position, .team-biography { padding-inline: .4rem; }
.team-card h3 { color:var(--team-name-color,var(--section-foreground,var(--ink))); }
.team-card .position { margin-top: .5rem; color:var(--team-position-color,var(--section-eyebrow-auto,var(--accent))); font-weight: 750; }
.team-biography { --rich-text-normal-size:1rem; margin-top:.85rem; color:var(--section-muted,rgb(255 255 255 / 68%)); }
.team-biography p { margin:0 0 .75rem; }
.team-biography ul,.team-biography ol { display:grid; gap:.2rem; margin:.35rem 0 .75rem; padding-left:1.7rem; }
.team-biography li { padding-left:.1rem; line-height:1.4; }
.gallery-grid { display:grid; gap:1rem; grid-template-columns:repeat(12,1fr); }
.gallery-item { min-width:0; margin:0; grid-column:span 4; }
.gallery-grid--mosaic .gallery-item:first-child { grid-column:span 8; }
.gallery-media,.gallery-image-link { display:block; border-radius:var(--radius); }
.gallery-image-link { color:inherit; text-decoration:none; }
.gallery-image-link:focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
.gallery-grid img { display:block; width:100%; height:360px; border-radius:var(--radius); object-fit:cover; }
.gallery-grid--grid img { height:auto; aspect-ratio:4 / 3; }
.gallery-grid--circles { gap:clamp(1rem,3vw,2rem); }
.gallery-grid--circles .gallery-media,.gallery-grid--circles .gallery-image-link,.gallery-grid--circles img { border-radius:50%; }
.gallery-grid--circles img { height:auto; aspect-ratio:1; }
.gallery-grid--natural { align-items:start; }
.gallery-grid--natural img { height:auto; object-fit:contain; }
.gallery-item figcaption { margin:.65rem .15rem 0; color:var(--section-muted,var(--muted)); font-size:.92rem; line-height:1.5; }
.faq-list details { border-top: 1px solid var(--line); }
.faq-list details:last-child { border-bottom: 1px solid var(--line); }
.faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 1.5rem 0; font-size: 1.15rem; font-weight: 800; cursor: pointer; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary span { color: var(--brand); font-size: 1.7rem; transition: transform .2s; }
.faq-list details[open] summary span { transform: rotate(45deg); }
.faq-answer { max-width:680px; margin-top:0; padding-bottom:1.5rem; color:var(--section-muted,var(--muted)); }
.faq-answer p { margin:0 0 .8rem; }
.faq-answer ul,.faq-answer ol { margin:.2rem 0 .9rem; }
.faq-list summary span { color:var(--section-eyebrow-auto,var(--brand)); }
.cta-section { padding-block: 0; background:var(--section-background,var(--accent)); }
.cta-inner { display: flex; min-height: 360px; align-items: center; justify-content: space-between; gap: 3rem; }
.cta-inner h2 { max-width: 760px; }
.cta-inner p:not(.eyebrow) { max-width: 650px; margin-top: 1rem; }
.cta-inner .button { flex:0 0 auto; background:var(--section-foreground,var(--ink)); color:var(--section-button-text,#fff); }
.contact-details { display: grid; gap: 5rem; grid-template-columns: .8fr 1.2fr; }
.contact-details address { margin: 1.5rem 0 1rem; font-size: 1.15rem; font-style: normal; }
.contact-details a { font-weight: 750; }
.hours-card { padding: clamp(1.5rem, 4vw, 3rem); border-radius: var(--radius); background: var(--surface); color:var(--ink); }
.hours-card h3 { margin-bottom: 1.5rem; }
.hours-row { display: flex; justify-content: space-between; gap: 2rem; padding: .9rem 0; border-top: 1px solid var(--line); }

.contact-form { display: grid; gap: 1.25rem; padding: clamp(1.5rem, 5vw, 3.5rem); border-radius: var(--radius); background: white; color:var(--ink); box-shadow: var(--shadow); }
.contact-form-status { scroll-margin-top:calc(max(92px,calc(var(--header-logo-height,80px) + 24px)) + 1rem); }
@media(max-width:680px){.contact-form-status{scroll-margin-top:calc(max(76px,calc(var(--mobile-logo-height,72px) + 20px)) + 1rem)}}
.contact-form-status .alert:last-child { margin-bottom:0; }
.form-grid { display: grid; gap: 1.25rem; grid-template-columns: 1fr 1fr; }
.contact-form label:not(.checkbox):not(.honeypot) { display: grid; gap: .45rem; font-size: .82rem; font-weight: 800; }
.contact-form input, .contact-form textarea, .contact-form select { width: 100%; border: 1px solid var(--line); border-radius: .75rem; background: #fff; color: var(--ink); padding: .85rem 1rem; }
.contact-form select { height: calc(1.65em + 1.7rem + 2px); align-self: end; }
.contact-form textarea { resize: vertical; }
.contact-form input[aria-invalid="true"], .contact-form textarea[aria-invalid="true"] { border-color: #c0392b; }
.field-error { display: block; margin-top: -.2rem; color: #8f2525; font-size: .8rem; font-weight: 600; }
.optional { color: var(--muted); font-weight: 500; }
.checkbox { display: flex; align-items: flex-start; gap: .75rem; font-size: .88rem; }
.checkbox input { width: 1.2rem; height: 1.2rem; margin-top: .2rem; accent-color: var(--brand); }
.honeypot { position: absolute !important; overflow: hidden; width: 1px; height: 1px; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.form-footer { display: flex; align-items: center; flex-wrap: wrap; gap: 1.25rem; }
.form-status { margin: 0; font-weight: 700; }
.form-status.success { color: #27633b; }
.form-status.error { color: #a12727; }
.consent-card, .notice { padding: 2rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); color:var(--ink); }
.notice-error { border-color: #c85f5f; }
.booking-frame, .external-embed-frame { display:block; width:100%; max-width:100%; border:1px solid var(--line); border-radius:var(--radius); background:white; }
.external-embed-container--corners-square .external-embed-frame { border-radius:0; }
.external-embed-frame--auto-height { aspect-ratio: 16 / 9; height:auto; }
.external-embed-container [data-external-frame-slot]:empty { display:none; }

.site-footer { padding-top: 5rem; background: var(--footer-background,#101c22); color: var(--footer-foreground,white); }
.footer-grid { display: grid; gap: 3rem; grid-template-columns: 1.5fr 1fr 1fr 1fr; }
.brand-footer { margin-bottom: 1.5rem; color: var(--footer-foreground,white); }
.brand-footer .brand-logo { height:min(var(--header-logo-height,80px),96px); max-width:280px; }
.brand-footer-custom-logo .brand-logo { height:var(--footer-logo-height,64px); max-width:280px; }
.brand-footer .brand-mark { border-color: var(--accent); }
.brand-footer .brand-mark i { background: var(--accent); }
.brand-footer small { color: var(--footer-foreground,white); }
.footer-grid > div:first-child p { max-width: 380px; color: color-mix(in srgb,var(--footer-foreground,white) 58%,transparent); }
.footer-grid h2 { margin-bottom: 1rem; font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; }
.footer-grid address, .footer-grid p { color: color-mix(in srgb,var(--footer-foreground,white) 68%,transparent); font-style: normal; }
.footer-links { display:grid; gap:.55rem; margin:0; padding:0; list-style:none; }
.footer-links li { margin:0; }
.footer-grid a { text-decoration: none; }
.footer-grid a:hover { color: var(--accent); }
.footer-social-navigation { margin-top:1.35rem; }
.footer-social-links { display:flex; flex-wrap:wrap; gap:.65rem; margin:0; padding:0; list-style:none; }
.footer-social-links li { margin:0; }
.footer-social-links a { display:grid; width:44px; height:44px; border:1px solid color-mix(in srgb,var(--footer-foreground,white) 24%,transparent); border-radius:50%; background:color-mix(in srgb,var(--footer-foreground,white) 6%,transparent); color:var(--footer-foreground,white); place-content:center; transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease; }
.footer-social-links a:hover { border-color:var(--accent); background:var(--accent); color:#101c22; transform:translateY(-2px); }
.footer-social-links a:focus-visible { border-color:var(--accent); outline:3px solid var(--accent); outline-offset:3px; color:var(--accent); }
.footer-social-icon { width:20px; height:20px; fill:currentColor; }
.footer-bottom { display: flex; justify-content: space-between; margin-top: 4rem; padding-block: 1.5rem; border-top: 1px solid color-mix(in srgb,var(--footer-foreground,white) 12%,transparent); color: color-mix(in srgb,var(--footer-foreground,white) 50%,transparent); font-size: .78rem; }
.footer-consent-settings { display:inline; padding:0; border:0; background:transparent; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.footer-consent-settings:hover { color:var(--accent); }
.footer-consent-settings:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }

/* Gestaltungsvorlagen: dieselbe semantische Ausgabe, drei klar getrennte visuelle Systeme. */
body.design-warm { --paper:#fffaf6; --radius:2rem; --shadow:0 24px 65px rgb(80 52 40 / 13%); }
.design-warm .site-header { border-bottom:0; background:color-mix(in srgb,var(--surface) 88%,transparent); box-shadow:0 8px 28px rgb(80 52 40 / 7%); }
.design-warm .brand-mark { border-radius:62% 38% 58% 42%; }
.design-warm .nav-highlight,.design-warm .button { border-radius:1rem 2rem 1rem 2rem; }
.design-warm .hero-slide::after { background:linear-gradient(125deg,color-mix(in srgb,var(--brand) 92%,#35241d),color-mix(in srgb,var(--brand) 66%,var(--accent))); }
.design-warm .hero-slide.tone-light::after { background:linear-gradient(135deg,var(--surface),var(--paper)); }
.design-warm .hero-slide.tone-accent::after { background:linear-gradient(125deg,var(--accent),color-mix(in srgb,var(--accent) 42%,var(--paper))); }
.design-warm .hero-visual--rings span,.design-warm .hero-visual--organic span { border-radius:62% 38% 55% 45%; }
.design-warm .feature-image,.design-warm .abstract-card { border-radius:3.5rem 1.5rem 3.5rem 1.5rem; }
.design-warm .rich-text-image--shape-template { border-radius:3.5rem 1.5rem 3.5rem 1.5rem; }
.design-warm .service-card { border:0; border-radius:2.5rem 1.25rem 2.5rem 1.25rem; background:var(--service-card-background,color-mix(in srgb,var(--surface) 72%,white)); box-shadow:0 18px 44px rgb(80 52 40 / 9%); }
.design-warm .service-icon { border-radius:38% 62% 42% 58%; }
.design-warm .offer-card { border-radius:3rem 1.5rem 3rem 1.5rem; }
.design-warm .offer-decoration--circle,.design-warm .offer-decoration--double,.design-warm .offer-decoration--arcs { border-radius:62% 38% 55% 45%; }
.design-warm .offer-decoration--double::after,.design-warm .offer-decoration--arcs::after { border-radius:38% 62% 44% 56%; }
.design-warm .team-card { border-radius:2.5rem 1rem 2.5rem 1rem; }
.design-warm .team-card img,.design-warm .portrait-placeholder { border-radius:2rem .7rem 2rem .7rem; }
.design-warm .contact-form,.design-warm .hours-card { border-radius:2.5rem 1.2rem 2.5rem 1.2rem; }
.design-warm .site-footer { background:var(--footer-background,color-mix(in srgb,var(--brand) 84%,#2d201b)); }

body.design-classic { --paper:#fff; --radius:.3rem; --shadow:0 16px 44px rgb(15 22 30 / 10%); }
.design-classic h1,.design-classic h2,.design-classic h3 { font-weight:600; letter-spacing:-.02em; }
.design-classic .site-header { border-bottom:1px solid color-mix(in srgb,var(--brand) 30%,transparent); background:color-mix(in srgb,var(--paper) 97%,transparent); backdrop-filter:none; }
.design-classic .header-inner { min-height:108px; }
.design-classic .brand-mark { border-radius:0; transform:rotate(45deg) scale(.74); }
.design-classic .brand-mark::after { border-radius:0; }
.design-classic .brand-copy small,.design-classic .desktop-nav { letter-spacing:.1em; text-transform:uppercase; }
.design-classic .nav-highlight,.design-classic .button,.design-classic .badge { border-radius:0; }
.design-classic .hero-slide::after { background:linear-gradient(105deg,color-mix(in srgb,var(--brand) 96%,black),color-mix(in srgb,var(--brand) 78%,#596273)); }
.design-classic .hero-slide.tone-light::after { background:linear-gradient(105deg,var(--paper),var(--surface)); }
.design-classic .hero-slide.tone-accent::after { background:linear-gradient(105deg,color-mix(in srgb,var(--accent) 80%,white),var(--surface)); }
.design-classic .hero-inner h2 { max-width:800px; font-size:clamp(3.4rem,6.5vw,6rem); }
.design-classic .hero-inner .eyebrow { padding-bottom:.65rem; border-bottom:1px solid currentColor; }
.design-classic .hero-visual { opacity:.14; }
.design-classic .hero-visual--rings span,.design-classic .hero-visual--organic span { border-radius:0; transform:rotate(45deg); }
.design-classic .section { padding-top:var(--section-top-spacing, var(--content-section-spacing, clamp(6rem,11vw,10rem))); padding-bottom:var(--content-section-spacing, clamp(6rem,11vw,10rem)); }
.design-classic .section-heading { padding-bottom:1.5rem; border-bottom:1px solid color-mix(in srgb,currentColor 18%,transparent); }
.design-classic .feature-image,.design-classic .abstract-card { border-radius:0; box-shadow:none; }
.design-classic .rich-text-image--shape-template { border-radius:0; }
.design-classic .abstract-card--abstract::before,.design-classic .abstract-card--abstract::after,.design-classic .abstract-card--abstract span,.design-classic .abstract-card--rings::before,.design-classic .abstract-card--rings::after,.design-classic .abstract-card--rings span { border-radius:0; transform:rotate(45deg); }
.design-classic .service-card { border:0; border-top:3px solid var(--brand); border-radius:0; box-shadow:none; }
.design-classic .service-icon { border-radius:0; }
.design-classic .offer-card { border-radius:0; }
.design-classic .offer-decoration--circle,.design-classic .offer-decoration--double,.design-classic .offer-decoration--arcs { border-radius:0; transform:rotate(45deg); }
.design-classic .offer-decoration--double::after,.design-classic .offer-decoration--arcs::after { border-radius:0; }
.design-classic .team-card { border-radius:0; background:transparent; border-top:1px solid color-mix(in srgb,currentColor 24%,transparent); }
.design-classic .team-card img,.design-classic .portrait-placeholder { border-radius:0; }
.design-classic .contact-form,.design-classic .hours-card,.design-classic .consent-card,.design-classic .notice { border-radius:0; }
.design-classic .contact-form input,.design-classic .contact-form textarea,.design-classic .contact-form select { border-radius:0; }
.design-classic .site-footer { background:var(--footer-background,var(--brand)); }
.design-classic .footer-social-links a { border-radius:0; }
.contact-form.contact-form--shadow-small,.service-card.service-card--shadow-small { box-shadow:0 8px 28px color-mix(in srgb,var(--ink) 10%,transparent); }
.contact-form.contact-form--shadow-none,.service-card.service-card--shadow-none { box-shadow:none; }
body.header-separation-none .site-header { border-bottom:0; box-shadow:none; }
body.header-separation-line .site-header { border-bottom:1px solid color-mix(in srgb,var(--ink) 12%,transparent); box-shadow:none; }
body.header-separation-accent .site-header { border-bottom:2px solid var(--accent); box-shadow:none; }
body.header-separation-fade .site-header { border-bottom:0; box-shadow:none; }
body.header-separation-fade .site-header::after { position:absolute; height:1px; background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--ink) 18%,transparent) 20%,color-mix(in srgb,var(--ink) 18%,transparent) 80%,transparent); content:""; inset:auto 0 0; pointer-events:none; }
body.header-separation-double .site-header { border-bottom:3px double color-mix(in srgb,var(--ink) 18%,transparent); box-shadow:none; }
body.header-separation-shadow .site-header { border-bottom:0; box-shadow:0 8px 28px color-mix(in srgb,var(--ink) 10%,transparent); }
.standalone-message { display: grid; min-height: 100vh; padding: 2rem; background: var(--surface); place-content: center; }
.standalone-message > div { max-width: 650px; }
.standalone-message h1 { margin-bottom: 1.5rem; }
.standalone-message .button { margin-top: 1rem; }

@media (max-width: 960px) {
  .desktop-nav { display: none; }
  .mobile-menu { display: block; }
  .split { grid-template-columns: 1fr; }
  .side-by-side-columns-2 { grid-template-columns: 1fr; gap: clamp(2.5rem, 6vw, 4rem); }
  .split.image-left .section-copy, .split.image-left > :last-child { order: initial; }
  .content-layout-grid,.content-layout-ratio-25-75:not(.content-layout-visible-1),.content-layout-ratio-33-67:not(.content-layout-visible-1),.content-layout-ratio-55-45:not(.content-layout-visible-1),.content-layout-ratio-67-33:not(.content-layout-visible-1),.content-layout-ratio-75-25:not(.content-layout-visible-1) { grid-template-columns:1fr!important; gap:clamp(2rem,7vw,3.5rem); }
  .content-layout-grid--docked { grid-template-rows:none; row-gap:clamp(2rem,7vw,3.5rem); }
  .content-layout-grid--docked > .content-layout-item { grid-column:auto!important; grid-row:auto!important; }
  .feature-image, .abstract-card { min-height: 380px; }
  .content-layout-media { min-height:0; }
  .card-grid, .team-grid { grid-template-columns: repeat(2, 1fr); }
  .contact-details { gap: 2rem; grid-template-columns: 1fr 1.2fr; }
  .footer-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 850px) {
  .hero-slider { height: 560px; min-height: 560px; }
  .hero-slider--dynamic-height { height:auto; min-height:0; aspect-ratio: var(--mobile-ratio, 1.5); }
  .hero-slide-image.mobile-image-fit-contain picture img { object-fit:contain; }
  .hero-slide-image.mobile-image-fit-cover picture img { object-fit:cover; }
  .hero-slide-image.mobile-image-position-left picture img { object-position:left center; }
  .hero-slide-image.mobile-image-position-center picture img { object-position:center; }
  .hero-slide-image.mobile-image-position-right picture img { object-position:right center; }
  .hero-custom-decoration { height:min(72%,72vw); top:14%; }
  .hero-custom-decoration.size-small { height:min(72%,42vw); }
  .hero-custom-decoration.size-large { height:min(72%,92vw); }
  .hero-custom-decoration.size-xlarge { height:min(86%,110vw); top:7%; }
  .hero-custom-decoration.size-overflow { height:min(122%,150vw); top:-6%; }
  .hero-custom-decoration.mobile-position-left, .hero-custom-decoration.mobile-position-inherit.position-left { --hero-decoration-translate-x:0; justify-items:start; left:-12%; right:auto; }
  .hero-custom-decoration.mobile-position-center { --hero-decoration-translate-x:-50%; justify-items:center; left:50%; right:auto; }
  .hero-custom-decoration.mobile-position-right, .hero-custom-decoration.mobile-position-inherit.position-right { --hero-decoration-translate-x:0; justify-items:end; left:auto; right:-12%; }
  .hero-custom-decoration.size-small.mobile-position-left, .hero-custom-decoration.size-small.mobile-position-inherit.position-left { left:-10%; }
  .hero-custom-decoration.size-small.mobile-position-right, .hero-custom-decoration.size-small.mobile-position-inherit.position-right { right:-10%; }
  .hero-custom-decoration.size-large.mobile-position-left, .hero-custom-decoration.size-large.mobile-position-inherit.position-left { left:max(-32%,-178px); }
  .hero-custom-decoration.size-large.mobile-position-right, .hero-custom-decoration.size-large.mobile-position-inherit.position-right { right:max(-32%,-178px); }
  .hero-custom-decoration.size-xlarge.mobile-position-left, .hero-custom-decoration.size-xlarge.mobile-position-inherit.position-left { left:max(-50%,-256px); }
  .hero-custom-decoration.size-xlarge.mobile-position-right, .hero-custom-decoration.size-xlarge.mobile-position-inherit.position-right { right:max(-50%,-256px); }
  .hero-custom-decoration.size-overflow.mobile-position-left, .hero-custom-decoration.size-overflow.mobile-position-inherit.position-left { left:max(-90%,-458px); }
  .hero-custom-decoration.size-overflow.mobile-position-right, .hero-custom-decoration.size-overflow.mobile-position-inherit.position-right { right:max(-90%,-458px); }
  .hero-custom-decoration.hide-on-mobile { display:none; }
  .hero-light-effect.hide-on-mobile { display:none; }
  .slider-dots { display:none; }
  .slider-controls { left:.5rem; right:.5rem; transform:none; justify-content:space-between; pointer-events:none; }
  .slider-controls > button { background:none!important; border:0!important; text-shadow:0 1px 4px rgb(0 0 0 / 55%); }
  .slider-controls > [data-prev], .slider-controls > [data-next] { width:36px!important; height:36px!important; margin-inline:0!important; opacity:1!important; transform:none!important; pointer-events:auto!important; }
  .slider-controls > [data-pause] { width:28px!important; height:28px!important; margin-inline:0!important; transform:none!important; opacity:0!important; pointer-events:none!important; font-size:.75rem; transition:opacity .2s; }
  .hero-slider--mobile-controls-hidden .slider-controls { justify-content:flex-end; }
  .hero-slider--mobile-controls-hidden .slider-controls > [data-prev], .hero-slider--mobile-controls-hidden .slider-controls > [data-next] { display:none; }
  .hero-slider--mobile-controls-hidden .slider-controls > [data-pause] { opacity:.85!important; pointer-events:auto!important; }
  .hero-slider--mobile-controls-dark .slider-controls > button { color:var(--ink,#1c2b36); text-shadow:0 1px 4px rgb(255 255 255 / 55%); }
  .slider-controls { background:transparent!important; backdrop-filter:none!important; }
  .slider-controls.is-expanded, .slider-controls:focus-within { background:rgb(0 0 0 / 30%)!important; backdrop-filter:blur(8px)!important; }
  .slider-controls.is-expanded > [data-pause], .slider-controls:focus-within > [data-pause] { opacity:.85!important; pointer-events:auto!important; }
  .hero-image-hotspot-button.mobile-button-size-micro { min-width:calc(36px * var(--hotspot-scale,1)); min-height:calc(18px * var(--hotspot-scale,1)); gap:calc(.16rem * var(--hotspot-scale,1)); padding:calc(.16rem * var(--hotspot-scale,1)) calc(.28rem * var(--hotspot-scale,1)); font-size:calc(.52rem * var(--hotspot-scale,1)); }
  .hero-image-hotspot-button.mobile-button-size-mini { min-width:calc(56px * var(--hotspot-scale,1)); min-height:calc(26px * var(--hotspot-scale,1)); gap:calc(.26rem * var(--hotspot-scale,1)); padding:calc(.26rem * var(--hotspot-scale,1)) calc(.4rem * var(--hotspot-scale,1)); font-size:calc(.6rem * var(--hotspot-scale,1)); }
  .hero-image-hotspot-button.mobile-button-size-extra-small { min-width:calc(68px * var(--hotspot-scale,1)); min-height:calc(30px * var(--hotspot-scale,1)); gap:calc(.32rem * var(--hotspot-scale,1)); padding:calc(.32rem * var(--hotspot-scale,1)) calc(.5rem * var(--hotspot-scale,1)); font-size:calc(.66rem * var(--hotspot-scale,1)); }
  .hero-image-hotspot-button.mobile-button-size-very-small { min-width:calc(92px * var(--hotspot-scale,1)); min-height:calc(38px * var(--hotspot-scale,1)); gap:calc(.45rem * var(--hotspot-scale,1)); padding:calc(.45rem * var(--hotspot-scale,1)) calc(.7rem * var(--hotspot-scale,1)); font-size:calc(.78rem * var(--hotspot-scale,1)); }
  .hero-image-hotspot-button.mobile-button-size-small { min-width:calc(104px * var(--hotspot-scale,1)); min-height:calc(42px * var(--hotspot-scale,1)); gap:calc(.55rem * var(--hotspot-scale,1)); padding:calc(.55rem * var(--hotspot-scale,1)) calc(.9rem * var(--hotspot-scale,1)); font-size:calc(.875rem * var(--hotspot-scale,1)); }
  .hero-image-hotspot-button.mobile-button-size-standard { min-width:calc(120px * var(--hotspot-scale,1)); min-height:calc(48px * var(--hotspot-scale,1)); gap:calc(.75rem * var(--hotspot-scale,1)); padding:calc(.7rem * var(--hotspot-scale,1)) calc(1.2rem * var(--hotspot-scale,1)); font-size:calc(1rem * var(--hotspot-scale,1)); }
  .hero-image-hotspot-button.mobile-button-size-large { min-width:calc(144px * var(--hotspot-scale,1)); min-height:calc(56px * var(--hotspot-scale,1)); gap:calc(.85rem * var(--hotspot-scale,1)); padding:calc(.85rem * var(--hotspot-scale,1)) calc(1.45rem * var(--hotspot-scale,1)); font-size:calc(1.125rem * var(--hotspot-scale,1)); }
}

@media (max-width:850px) {
  .design-classic .header-inner { min-height:84px; }
  .design-classic .hero-inner h2 { font-size:clamp(2.7rem,12vw,4.3rem); }
  .design-warm .feature-image,.design-warm .abstract-card { border-radius:2rem 1rem 2rem 1rem; }
}

@media (max-width: 680px) {
  .shell, .narrow { width: min(100% - 2rem, 1180px); }
  .header-inner { min-height:76px; }
  .site-header.has-header-logo .header-inner { min-height:max(76px,calc(var(--mobile-logo-height,72px) + 20px)); }
  .brand-logo { height:var(--mobile-logo-height,72px); max-width:56vw; }
  .brand.with-brand-copy .brand-logo { max-width:30vw; }
  .brand-mark { width: 43px; height: 43px; }
  .brand-mark::after { inset: 14px; }
  .brand-mark i { width: 18px; top: 20px; }
  .brand-mark i:first-child { left: -12px; }
  .brand-mark i:last-child { right: -12px; }
  .brand strong { font-size: 1rem; }
  .hero-inner { padding-block: 3rem 5rem; }
  .hero-inner h2 { font-size: clamp(2.5rem, 12vw, 4rem); }
  .hero-visual { width: 95vw; right: -38%; top: 15%; }
  .slider-controls { bottom: 1.25rem; }
  .card-grid, .team-grid, .offers-grid, .contact-details, .form-grid, .footer-grid { grid-template-columns: 1fr; }
  .service-card { min-height: 280px; }
  .gallery-item, .gallery-grid--mosaic .gallery-item:first-child { grid-column: 1 / -1; }
  .gallery-grid img { height:270px; }
  .gallery-grid--grid img,.gallery-grid--circles img,.gallery-grid--natural img { height:auto; }
  .cta-inner { min-height: 420px; align-items: flex-start; flex-direction: column; justify-content: center; }
  .hours-row { align-items: flex-start; flex-direction: column; gap: .1rem; }
  .footer-bottom { align-items: flex-start; flex-direction: column; gap: .4rem; }
  .offer-custom-decoration.mobile-position-left, .offer-custom-decoration.mobile-position-inherit.position-left { --offer-decoration-translate-x:0; justify-items:start; left:calc(-1 * max(8%, min(52%,230px) - 40%)); right:auto; }
  .offer-custom-decoration.mobile-position-center { --offer-decoration-translate-x:-50%; justify-items:center; left:50%; right:auto; }
  .offer-custom-decoration.mobile-position-right, .offer-custom-decoration.mobile-position-inherit.position-right { --offer-decoration-translate-x:0; justify-items:end; left:auto; right:calc(-1 * max(8%, min(52%,230px) - 40%)); }
  .offer-custom-decoration.size-small.mobile-position-left, .offer-custom-decoration.size-small.mobile-position-inherit.position-left { left:calc(-1 * max(6%, min(32%,150px) - 40%)); }
  .offer-custom-decoration.size-small.mobile-position-right, .offer-custom-decoration.size-small.mobile-position-inherit.position-right { right:calc(-1 * max(6%, min(32%,150px) - 40%)); }
  .offer-custom-decoration.size-large.mobile-position-left, .offer-custom-decoration.size-large.mobile-position-inherit.position-left { left:calc(-1 * max(10%, min(72%,300px) - 40%)); }
  .offer-custom-decoration.size-large.mobile-position-right, .offer-custom-decoration.size-large.mobile-position-inherit.position-right { right:calc(-1 * max(10%, min(72%,300px) - 40%)); }
  .offer-custom-decoration.size-xlarge.mobile-position-left, .offer-custom-decoration.size-xlarge.mobile-position-inherit.position-left { left:calc(-1 * max(10%, min(78%,300px) - 40%)); }
  .offer-custom-decoration.size-xlarge.mobile-position-right, .offer-custom-decoration.size-xlarge.mobile-position-inherit.position-right { right:calc(-1 * max(10%, min(78%,300px) - 40%)); }
  .offer-custom-decoration.size-overflow.mobile-position-left, .offer-custom-decoration.size-overflow.mobile-position-inherit.position-left { left:calc(-1 * max(14%, min(118%,480px) - 40%)); }
  .offer-custom-decoration.size-overflow.mobile-position-right, .offer-custom-decoration.size-overflow.mobile-position-inherit.position-right { right:calc(-1 * max(14%, min(118%,480px) - 40%)); }
  .offer-custom-decoration.hide-on-mobile { display:none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

.preview-bar { padding: .65rem 1rem; background: #ffe08a; color: #3a2a00; text-align: center; font-weight: 800; }
.preview-bar a { margin-left: 1rem; }
.alert { margin: 0 0 1rem; padding: 1rem 1.2rem; border-radius: .8rem; font-weight: 700; }
.alert.success { background: #e1f5e7; color: #205c34; }
.alert.error { background: #fde8e8; color: #8f2525; }

body.has-cookie-notice .site-footer { padding-bottom:var(--cookie-notice-height,0); }
.scroll-to-top { position:fixed; z-index:150; right:1.25rem; bottom:calc(1.25rem + var(--cookie-notice-height,0px)); display:grid; width:48px; height:48px; border:none; border-radius:50%; background:var(--scroll-top-background,var(--brand)); color:var(--scroll-top-foreground,white); box-shadow:0 10px 28px rgb(0 0 0 / 22%); cursor:pointer; place-content:center; opacity:0; transform:translateY(12px); pointer-events:none; transition:opacity .25s ease,transform .25s ease,bottom .2s ease,background-color .2s ease; }
.scroll-to-top.is-visible { opacity:1; transform:translateY(0); pointer-events:auto; }
.scroll-to-top svg { width:22px; height:22px; fill:currentColor; }
.scroll-to-top:hover { background:var(--scroll-top-hover-background,var(--scroll-top-background,var(--brand))); }
.scroll-to-top:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
@media (prefers-reduced-motion: reduce) { .scroll-to-top { transition:opacity .15s ease; transform:none; } }
.cookie-notice { position:fixed; z-index:200; right:0; bottom:0; left:0; padding:12px 0 calc(12px + env(safe-area-inset-bottom)); background:var(--ink); color:white; box-shadow:0 -12px 36px rgb(0 0 0 / 20%); }
.cookie-notice[hidden] { display:none; }
.cookie-notice-noscript { position:sticky; }
.cookie-notice-inner { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.cookie-notice-copy { min-width:0; }
.cookie-notice-copy h2 { margin:0 0 3px; color:white; font-size:clamp(1rem,1.7vw,1.15rem); }
.cookie-notice-copy p { margin:0; color:#e4e9e5; font-size:.94rem; line-height:1.42; }
.cookie-notice-copy a { color:var(--accent); font-weight:800; text-underline-offset:3px; }
.cookie-notice-copy a:focus-visible,.cookie-notice-dismiss:focus-visible { outline:3px solid white; outline-offset:3px; }
.cookie-notice-dismiss { flex:0 0 auto; min-width:128px; }
.consent-banner-actions { display:flex; flex:0 0 auto; flex-wrap:wrap; gap:.65rem; }
.consent-banner-actions .button { min-width:140px; min-height:44px; padding:.65rem 1.05rem; }
.consent-banner-actions [data-consent-accept-all],.consent-banner-actions [data-consent-necessary] { border-color:var(--accent); background:var(--accent); color:var(--ink); }
.consent-banner-actions [data-consent-open] { border-color:rgb(255 255 255 / 42%); background:rgb(255 255 255 / 10%); color:white; }
.consent-banner-actions [data-consent-open]:hover { border-color:var(--accent); background:rgb(255 255 255 / 16%); color:white; }
.consent-dialog { width:min(720px,calc(100% - 2rem)); max-height:min(86vh,820px); padding:0; overflow:auto; border:0; border-radius:var(--radius); background:#fff; color:var(--ink); box-shadow:0 28px 80px rgb(0 0 0 / 38%); }
.consent-dialog::backdrop { background:rgb(10 20 26 / 68%); }
.consent-dialog form { display:grid; gap:1.35rem; padding:clamp(1.25rem,4vw,2.25rem); }
.consent-dialog-header { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.consent-dialog-header h2 { margin:0; }
.consent-dialog-header .eyebrow { margin-bottom:.35rem; }
.consent-dialog-close { display:grid; flex:0 0 44px; width:44px; height:44px; border:1px solid var(--line); border-radius:50%; background:var(--surface); color:var(--ink); font:inherit; font-size:1.5rem; cursor:pointer; place-content:center; }
.consent-dialog fieldset { min-width:0; margin:0; padding:1.1rem; border:1px solid var(--line); border-radius:1rem; }
.consent-dialog legend { padding:0 .35rem; font-weight:850; }
.necessary-storage dl { display:grid; gap:.8rem; margin:.9rem 0 0; }
.necessary-storage dl div { display:grid; gap:.2rem; }
.necessary-storage dt { font-weight:850; }
.necessary-storage dd { margin:0; color:var(--muted); line-height:1.5; }
.necessary-storage code { overflow-wrap:anywhere; }
.consent-service-list { display:grid; gap:.75rem; }
.consent-service { display:flex; align-items:flex-start; gap:.8rem; padding:.85rem; border-radius:.75rem; background:var(--surface); cursor:pointer; }
.consent-service input { flex:0 0 auto; width:1.25rem; height:1.25rem; margin-top:.15rem; accent-color:var(--brand); }
.consent-service span { display:grid; gap:.2rem; }
.consent-service small { color:var(--muted); line-height:1.5; }
.consent-dialog-actions { display:flex; flex-wrap:wrap; gap:.65rem; }
.consent-dialog-actions .button { flex:1 1 180px; }
.consent-dialog a:focus-visible,.consent-dialog button:focus-visible,.consent-service input:focus-visible { outline:3px solid var(--brand); outline-offset:3px; }
@media (max-width:700px) {
  .rich-text-image,.rich-text-image--width-25,.rich-text-image--width-50,.rich-text-image--width-75 { width:100%; max-width:100%; float:none; margin:1.2rem 0; }
  .cookie-notice { padding-top:12px; }
  .cookie-notice-inner { align-items:stretch; flex-direction:column; gap:14px; }
  .cookie-notice-dismiss,.consent-banner-actions,.consent-banner-actions .button { width:100%; }
  .consent-dialog { width:calc(100% - 1rem); max-height:92vh; }
}
