.preview-bar{background:#fbf7ed;color:#59431b;text-align:center;padding:7px 16px;font-size:13px}.language-switch{display:flex;gap:4px;align-items:center}.language-switch a,.language-switch span{padding:6px 9px;border-radius:7px;font-size:13px}.language-switch [aria-current]{background:var(--color-primary-50);font-weight:700}.breadcrumbs{display:flex;flex-wrap:wrap;gap:12px;padding-top:22px;color:var(--color-muted);font-size:14px}.breadcrumbs a:hover,.text-link:hover{color:var(--color-primary);text-decoration:underline}.text-link{font-weight:700;display:inline-block;margin-top:12px}.editorial-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:64px}.editorial-aside{align-self:start;background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;padding:28px}.editorial-aside h2{font-size:24px}.service-content section+section{margin-top:36px}.service-hero__image img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:20px}.narrow{max-width:920px}.related-links{display:flex;flex-wrap:wrap;gap:12px}.related-links a{border:1px solid var(--color-border);padding:10px 16px;border-radius:30px}.related-links a:hover{background:var(--color-primary-50)}.trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.check-row{display:flex;align-items:flex-start;gap:10px;margin:16px 0;font-size:14px}.check-row input{width:18px;height:18px;margin-top:3px;flex-shrink:0}.form-help a{text-decoration:underline}.notice{padding:14px 18px;border-radius:8px;border:1px solid #bbccd9;background:#edf4fa}.notice--error{background:#fff1f1;border-color:#e7b4b4;color:#7c2525}.notice--success{background:#effaf3;border-color:#abd8b9;color:#205b35}button:disabled{opacity:.6;cursor:not-allowed}.hero__content h1{max-width:760px}.service-card{display:flex;flex-direction:column}.service-card .text-link{margin-top:auto;padding-top:12px}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #b8944d;outline-offset:3px}

/* Author display rules must not unhide semantically hidden controls. */
[hidden] { display: none !important; }

/* Keep controls aligned when only one field in a two-column row has help text. */
.form-row > .form-field { align-content: start; }
@media(max-width:850px){.editorial-layout{grid-template-columns:1fr;gap:32px}.editorial-aside{order:2}.language-switch{margin:12px 0}.hero__content h1{overflow-wrap:anywhere}.breadcrumbs{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
@media(min-width:1024px){.hero__grid{align-items:start}.hero__content{padding-top:44px}.hero.section{padding-block:64px}}

/* Shared header controls align by their content, not by the top of a 44px link box. */
.navbar__links a{display:flex;align-items:center;line-height:1.4}
.language-switch a,.language-switch span{display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:36px;line-height:1}
.navbar__cta{display:inline-flex;align-items:center;justify-content:center;line-height:1.4}
.breadcrumb-bar{background:var(--color-primary-50);border-bottom:1px solid var(--color-border)}
.breadcrumbs{display:block;padding-block:18px;font-size:13px;line-height:1.5}
.breadcrumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;list-style:none;margin:0;padding:0}
.breadcrumbs li{display:flex;align-items:center;gap:14px;min-width:0;margin:0}
.breadcrumbs li+li::before{content:"";display:block;width:6px;height:6px;border-top:1.5px solid var(--color-accent);border-right:1.5px solid var(--color-accent);transform:rotate(45deg);flex-shrink:0}
.breadcrumbs a{color:var(--color-muted);font-weight:500}
.breadcrumbs [aria-current="page"]{color:var(--color-primary);font-weight:600;overflow-wrap:anywhere}
.map-frame{overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-image);background:var(--color-primary-50);box-shadow:var(--shadow-sm)}
.map-frame iframe{display:block;width:100%;height:420px;border:0}
.map-note{margin-top:16px;color:var(--color-muted)}
.readable-number{white-space:nowrap;font-variant-numeric:tabular-nums}
.opening-hours{display:grid;gap:12px;margin:0 0 24px}
.opening-hours__row{display:flex;flex-direction:column;align-items:flex-start;gap:3px}
.opening-hours__days{font-size:14px;color:var(--color-muted)}
.opening-hours__time{font-size:18px;line-height:1.5;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--color-primary)}
.opening-hours__note{font-size:13px;color:var(--color-muted)}
.site-footer .opening-hours__days,.site-footer .opening-hours__note{color:inherit;opacity:.8}
.site-footer .opening-hours__time{font-size:16px;color:inherit}
@media(max-width:600px){.breadcrumbs{padding-block:14px;font-size:12px}.breadcrumbs ol,.breadcrumbs li{gap:10px}.map-frame iframe{height:320px}}

/* Accessibility: readable contrast, resilient reflow and visible keyboard focus. */
.eyebrow{color:#806323}.final-cta .eyebrow{color:#d8ba7d}
.service-card a:hover{color:#806323;text-decoration:underline}
:where(a,button,input,textarea,select,summary):focus-visible{outline:3px solid #0f2f56;outline-offset:3px;box-shadow:0 0 0 3px #fff}
.site-footer :focus-visible,.final-cta :focus-visible{outline-color:#fff;box-shadow:0 0 0 3px #0f2f56}
.skip-link:hover,.skip-link:focus{color:#fff}.skip-link{position:fixed}
.skip-link:not(:focus){clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap;padding:0}
[id],input,textarea,button,a,summary{scroll-margin-block:7rem 2rem}
main:focus{outline:none}
.form-field input,.form-field textarea,.navbar__toggle{border-color:#718096}
.form-field label,.form-help,.field-note,.check-row,.opening-hours__days,.opening-hours__note,.breadcrumbs,.language-switch a,.language-switch span{font-size:.875rem}
.field-note{font-weight:400}.validation-message{color:#8a2020;font-size:.875rem;margin:0}
[aria-invalid="true"]{border:2px solid #8a2020!important}
.notice:focus{outline:3px solid #0f2f56;outline-offset:3px}.notice ul{padding-left:1.25rem}.notice li{list-style:disc}.notice a{text-decoration:underline}
.notice{margin-block:16px}
.btn{line-height:1.4;padding-block:12px;text-align:center;white-space:normal}
.language-switch a,.language-switch span,.text-link{min-height:44px}
.language-switch a,.language-switch span{min-width:44px}
.navbar__links [aria-current="page"]{text-decoration:underline;text-underline-offset:6px;font-weight:700}
.breadcrumbs a,.text-link{text-decoration:underline;text-underline-offset:3px}
.hero__grid,.contact-grid,.service-hero__grid{grid-template-columns:minmax(0,1fr)}
.hero__grid>*,.contact-grid>*,.service-hero__grid>*,.navbar__brand,.navbar__menu{min-width:0}
.hero__panel{min-width:0}.form-field input{min-width:0;max-width:100%}
h1,h2,h3,p,address,.navbar__brand,.contact-channels a{overflow-wrap:anywhere}
h1{font-size:clamp(2.25rem,7vw,4rem)}h2{font-size:clamp(1.75rem,4vw,3rem)}h3{font-size:1.25rem}
.quote-form h2{font-size:1.5rem}.hero__lead{font-size:1.125rem}
.readable-number,.opening-hours__time{white-space:normal}
.contact-channel{flex-wrap:wrap;gap:8px}.contact-channel strong{text-align:left}
.navbar__toggle{display:none;flex-shrink:0}
.navbar__inner{flex-wrap:wrap}.navbar__menu{display:block;position:static;flex-basis:100%;box-shadow:none}
.js .navbar__toggle{display:inline-flex}.js .navbar__menu{display:none}.js .navbar__menu.is-open{display:block}
.site-header{position:relative}.navbar__menu{padding:12px 0 24px}
.check-row{min-height:44px;align-items:center}.check-row input{width:24px;height:24px;margin:0;accent-color:#0f2f56}
.faq-list summary{min-height:44px}.site-footer a{display:inline-block;min-height:24px;text-decoration:underline;text-underline-offset:3px}
@media(min-width:900px){.hero__grid,.contact-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.service-hero__grid{grid-template-columns:minmax(0,1fr) minmax(0,.85fr)}}
@media(min-width:1100px){.navbar__inner{flex-wrap:nowrap}.js .navbar__toggle{display:none}.navbar__menu,.js .navbar__menu,.js .navbar__menu.is-open{display:flex;flex-basis:auto;padding:0}.navbar__links{display:flex;flex-wrap:wrap}.site-header{position:sticky}}
@media(min-width:1024px) and (max-width:1099px){.navbar__links{display:grid}.navbar__menu .language-switch{margin:12px 0}}
@media(max-width:600px){.container{width:calc(100% - 32px)}.hero__panel,.service-card,.faq-list details{padding:20px}.section{padding-block:48px}.navbar__brand{max-width:calc(100% - 72px)}.navbar__brand img{width:44px;flex-shrink:0}.btn{max-width:100%}}
@media(max-width:767px){.analytics-consent{bottom:calc(76px + env(safe-area-inset-bottom));padding:16px}.analytics-consent__actions{display:grid;grid-template-columns:1fr 1fr}.analytics-consent button{min-width:0}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.service-hero__image{aspect-ratio:3/2;overflow:hidden;border-radius:20px}.service-hero__image picture{display:block;width:100%;height:100%}.service-hero__image img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;border-radius:0}
.analytics-consent{position:fixed;z-index:80;right:16px;bottom:16px;left:16px;max-width:680px;margin-inline:auto;padding:20px;border:1px solid var(--color-border);border-radius:16px;background:var(--color-white);box-shadow:var(--shadow-md)}.analytics-consent h2{margin-bottom:8px;font-size:18px}.analytics-consent p{margin-bottom:8px;font-size:14px}.analytics-consent a{font-size:14px;text-decoration:underline}.analytics-consent__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.analytics-consent button{min-height:44px;flex:1 1 180px;padding:10px 16px;border:1px solid var(--color-primary);border-radius:var(--radius-button);background:var(--color-white);color:var(--color-primary);font:inherit;font-weight:700;cursor:pointer}.analytics-consent button:hover{background:var(--color-primary-50)}.analytics-preferences p{margin-bottom:var(--space-4)}.analytics-preferences div{display:flex;flex-wrap:wrap;gap:var(--space-3)}
select:focus-visible{outline:3px solid #b8944d;outline-offset:3px}
@media(forced-colors:active){:focus-visible{outline:3px solid Highlight!important}.btn,.navbar__toggle,input,select,textarea{border:1px solid ButtonText}}

/* Editorial hierarchy: concise, document-led service pages. */
.page-hero {
  position: relative;
  overflow: hidden;
  padding-block: clamp(56px, 8vw, 112px);
  background: linear-gradient(118deg, #eef5fb 0%, #f8fafc 54%, #fff 100%);
}
.page-hero::after {
  position: absolute;
  inset: auto -8vw -35% auto;
  width: 42vw;
  aspect-ratio: 1;
  border: 1px solid rgba(15, 47, 86, .06);
  border-radius: 50%;
  content: "";
}
.page-hero .container { position: relative; z-index: 1; }
.page-hero .hero__content { max-width: 690px; }
.page-hero h1 {
  max-width: 15ch;
  margin-bottom: 18px;
  font-size: clamp(2.45rem, 4.8vw, 4.25rem);
  letter-spacing: -.045em;
}
.page-hero .hero__lead {
  max-width: 58ch;
  margin-bottom: 28px;
  font-size: clamp(1rem, 1.35vw, 1.15rem);
  line-height: 1.75;
}
.page-hero .service-hero__image {
  border: 8px solid rgba(255,255,255,.72);
  border-radius: 22px;
  box-shadow: 0 24px 56px rgba(15,47,86,.14);
}
.page-hero .hero__actions { margin-bottom: 0; }

.content-section { padding-top: clamp(64px, 9vw, 128px); }
.editorial-layout {
  grid-template-columns: minmax(245px, 290px) minmax(0, 760px);
  justify-content: center;
  gap: clamp(40px, 7vw, 112px);
}
.editorial-aside {
  position: sticky;
  top: 108px;
  padding: 26px;
  border-color: #e1e8f0;
  border-radius: 14px;
  box-shadow: none;
}
.editorial-aside .eyebrow { margin-bottom: 10px; font-size: 11px; }
.editorial-aside h2 { margin-bottom: 22px; font-size: 23px; line-height: 1.2; }
.service-facts { display: grid; gap: 0; margin: 0 0 24px; }
.service-facts > div { padding: 13px 0; border-top: 1px solid var(--color-border); }
.service-facts > div:last-child { border-bottom: 1px solid var(--color-border); }
.service-facts dt { margin-bottom: 3px; color: var(--color-primary); font-size: 11px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.service-facts dd { margin: 0; color: var(--color-muted); font-size: 13px; line-height: 1.5; }
.editorial-aside .btn { min-height: 44px; padding-inline: 14px; font-size: 13px; }
.service-content { gap: 0; }
.service-content .content-block {
  position: relative;
  padding: 0 0 42px 34px;
  border-bottom: 1px solid #e4eaf0;
}
.service-content .content-block + .content-block { padding-top: 42px; }
.service-content .content-block:last-child { padding-bottom: 0; border-bottom: 0; }
.content-block__index {
  position: absolute;
  top: 5px;
  left: 0;
  color: var(--color-accent);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
}
.service-content .content-block h2 {
  max-width: 20ch;
  margin-bottom: 16px;
  font-size: clamp(1.7rem, 2.8vw, 2.35rem);
}
.service-content .content-block p {
  max-width: 64ch;
  margin-bottom: 0;
  color: #627187;
  font-size: 16px;
  line-height: 1.8;
}
.section-header--compact { margin-bottom: 34px; }
.section-header--compact h2 { max-width: 18ch; margin-bottom: 0; }
.faq-list details { padding: 0; overflow: hidden; border-radius: 12px; box-shadow: none; }
.faq-list summary { position: relative; min-height: 68px; display: flex; align-items: center; padding: 18px 54px 18px 22px; font-size: 16px; line-height: 1.45; }
.faq-list summary::after { position: absolute; right: 22px; width: 9px; height: 9px; border-right: 2px solid var(--color-primary); border-bottom: 2px solid var(--color-primary); transform: rotate(45deg) translateY(-3px); content: ""; }
.faq-list details[open] summary { border-bottom: 1px solid var(--color-border); }
.faq-list details[open] summary::after { transform: rotate(225deg) translateY(-2px); }
.faq-list details p { padding: 0 22px 22px; font-size: 15px; line-height: 1.75; }

@media (min-width: 900px) {
  .page-hero .service-hero__grid { grid-template-columns: minmax(0, 1.08fr) minmax(340px, .82fr); gap: clamp(48px, 7vw, 100px); }
}
@media (max-width: 850px) {
  .editorial-aside { position: static; }
  .editorial-layout { grid-template-columns: 1fr; }
  .editorial-aside { order: 2; }
}
@media (max-width: 600px) {
  .page-hero { padding-block: 48px; }
  .page-hero h1 { font-size: clamp(2.15rem, 11vw, 3rem); }
  .page-hero .service-hero__image { border-width: 5px; }
  .service-content .content-block,
  .service-content .content-block + .content-block { padding-left: 28px; }
  .service-content .content-block { padding-bottom: 32px; }
  .service-content .content-block + .content-block { padding-top: 32px; }
  .service-content .content-block p { font-size: 15px; }
  .faq-list summary { padding-left: 18px; font-size: 15px; }
  .faq-list details p { padding-inline: 18px; }
}
