:root {
  --ac-accent: #b64537;
  --ac-secondary: #617d64;
  --ac-dark: #183029;
  --ac-soft: #f4efe6;
  --ac-paper: #fffdf8;
  --ac-white: #fff;
  --ac-border: rgba(24, 48, 41, 0.16);
  --ac-muted: #647069;
  --ac-container: 1240px;
  --ac-narrow: 840px;
  --ac-radius: 18px;
  --ac-shadow: 0 20px 55px rgba(18, 31, 26, 0.13);
  --ac-font: Montserrat, "Avenir Next", Avenir, "Helvetica Neue", Arial, sans-serif;
  --ac-serif: Georgia, "Times New Roman", serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ac-dark);
  background: var(--ac-paper);
  font-family: var(--ac-font);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
button, input { font: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid color-mix(in srgb, var(--ac-accent) 65%, white); outline-offset: 3px; }

.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.ac-skip-link {
  position: fixed; z-index: 9999; top: 8px; left: 8px; transform: translateY(-160%);
  padding: 10px 14px; color: #fff; background: var(--ac-dark); text-decoration: none;
}
.ac-skip-link:focus { transform: none; }
.ac-container { width: min(calc(100% - 42px), var(--ac-container)); margin-inline: auto; }
.ac-content-width { max-width: var(--ac-narrow); }
.ac-main { overflow: clip; }

h1, h2, h3, h4 { margin: 0 0 0.75em; line-height: 1.12; letter-spacing: -0.025em; }
h1 { font-size: clamp(2.65rem, 6vw, 5.7rem); font-weight: 560; }
h2 { font-size: clamp(2rem, 4vw, 3.75rem); font-weight: 540; }
h3 { font-size: clamp(1.15rem, 2vw, 1.55rem); font-weight: 650; }
p { margin: 0 0 1rem; }
.ac-kicker {
  margin: 0 0 0.9rem; color: var(--ac-accent); font-size: 0.72rem; font-weight: 800;
  letter-spacing: 0.19em; line-height: 1.25; text-transform: uppercase;
}
.ac-section { padding-block: clamp(74px, 8vw, 126px); }
.ac-section--soft { background: var(--ac-soft); }
.ac-section-heading { max-width: 760px; margin-bottom: clamp(34px, 4vw, 58px); }
.ac-section-heading--row { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(280px, 0.55fr); gap: 48px; align-items: end; max-width: none; }
.ac-section-heading--row > p { color: var(--ac-muted); font-size: 1.05rem; }
.ac-section-heading--center { margin-inline: auto; text-align: center; }
.ac-prose { color: var(--ac-muted); font-size: clamp(1.05rem, 1.6vw, 1.28rem); }

.ac-button-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 1.7rem; }
.ac-button, .ac-cookie-button, .ac-header-action {
  display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: 12px 24px;
  border: 1px solid var(--ac-accent); border-radius: var(--ac-radius); color: #fff; background: var(--ac-accent);
  font-size: 0.87rem; font-weight: 750; line-height: 1.2; text-decoration: none;
  transition: transform 160ms ease, background 160ms ease, color 160ms ease, border-color 160ms ease;
}
.ac-button:hover, .ac-button:focus-visible, .ac-header-action:hover, .ac-header-action:focus-visible { transform: translateY(-2px); background: var(--ac-dark); border-color: var(--ac-dark); }
.ac-button--outline { color: #fff; background: transparent; border-color: rgba(255,255,255,.8); }
.ac-button--outline:hover { color: var(--ac-dark); background: #fff; border-color: #fff; }
.ac-button--outline-dark, .ac-button--ghost { color: var(--ac-dark); background: transparent; border-color: var(--ac-dark); }
.ac-button--dark { background: var(--ac-dark); border-color: var(--ac-dark); }
.ac-button--light { color: var(--ac-dark); background: #fff; border-color: #fff; }
.ac-text-link { display: inline-flex; align-items: center; gap: 8px; font-size: 0.9rem; font-weight: 750; text-decoration: none; border-bottom: 1px solid currentColor; }
.ac-text-link::after { content: "→"; transition: transform 150ms ease; }
.ac-text-link:hover::after { transform: translateX(4px); }

/* Announcement */
.ac-announcement { position: relative; z-index: 90; color: #fff; background: var(--ac-accent); font-size: .79rem; }
.ac-announcement__inner { min-height: 42px; display: flex; align-items: center; justify-content: center; gap: 26px; padding-block: 8px; }
.ac-announcement p { margin: 0; }
.ac-announcement__links { display: flex; flex-wrap: wrap; gap: 18px; }
.ac-announcement a { font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }

/* Header */
.ac-site-header { position: relative; z-index: 80; background: rgba(255,255,255,.97); border-bottom: 1px solid var(--ac-border); backdrop-filter: blur(16px); }
.animalcoach-sticky-header .ac-site-header { position: sticky; top: 0; }
.ac-site-header__inner { min-height: 96px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 28px; }
.ac-brand__link { display: inline-flex; align-items: center; gap: 15px; text-decoration: none; }
.ac-brand__image { width: 132px; max-height: 64px; object-fit: contain; }
.ac-brand__location { max-width: 170px; padding-left: 14px; border-left: 1px solid var(--ac-border); font-size: .72rem; font-weight: 750; line-height: 1.25; letter-spacing: .02em; }
.ac-primary-nav { justify-self: center; }
.ac-menu, .ac-menu ul { list-style: none; margin: 0; padding: 0; }
.ac-menu { display: flex; align-items: center; gap: clamp(15px, 2.1vw, 32px); }
.ac-menu > li { position: relative; }
.ac-menu a { display: block; padding: 34px 0; font-size: .81rem; font-weight: 700; text-decoration: none; white-space: nowrap; }
.ac-menu > li > a::after { content: ""; display: block; height: 2px; margin-top: 4px; background: var(--ac-accent); transform: scaleX(0); transition: transform 150ms ease; transform-origin: left; }
.ac-menu > li:hover > a::after, .ac-menu > .current-menu-item > a::after, .ac-menu > .current-menu-ancestor > a::after { transform: scaleX(1); }
.ac-menu .sub-menu { position: absolute; top: calc(100% - 12px); left: -18px; min-width: 260px; padding: 12px 0; background: #fff; border: 1px solid var(--ac-border); box-shadow: var(--ac-shadow); opacity: 0; visibility: hidden; transform: translateY(8px); transition: .16s ease; }
.ac-menu li:hover > .sub-menu, .ac-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.ac-menu .sub-menu a { padding: 9px 18px; font-size: .8rem; white-space: normal; }
.ac-menu .sub-menu a:hover { color: var(--ac-accent); background: var(--ac-soft); }
.ac-nav-toggle { display: none; width: 46px; height: 46px; padding: 11px; border: 0; background: transparent; }
.ac-nav-toggle span:not(.screen-reader-text) { display: block; height: 2px; margin: 5px 0; background: var(--ac-dark); }
.ac-header-action { min-height: 42px; padding-inline: 18px; border-radius: 999px; }

/* Shared media */
.ac-media, .ac-media img { width: 100%; height: 100%; }
.ac-media img { object-fit: cover; }
.ac-card-media { display: block; aspect-ratio: 4/3; overflow: hidden; background: #ddd; }
.ac-card-media--news { aspect-ratio: 3/2; }
.ac-card-media--portrait { aspect-ratio: 4/5; }
.ac-card-media__image { width: 100%; height: 100%; object-fit: cover; transition: transform 450ms ease; }
a.ac-card-media:hover .ac-card-media__image { transform: scale(1.035); }

/* Biel hero */
.ac-hero--biel { padding: 0 0 clamp(54px, 7vw, 96px); }
.ac-biel-hero-grid { position: relative; display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(240px, .65fr); grid-template-rows: minmax(320px, 48vh) minmax(220px, 31vh); min-height: 760px; }
.ac-biel-hero-grid__main { grid-row: 1 / 3; min-height: 760px; overflow: hidden; }
.ac-biel-hero-grid__side { overflow: hidden; }
.ac-biel-hero-grid__side img { width: 100%; height: 100%; object-fit: cover; transition: transform 500ms ease; }
.ac-biel-hero-grid__side:hover img { transform: scale(1.03); }
.ac-biel-hero-card { position: absolute; z-index: 2; left: clamp(26px, 8vw, 125px); bottom: clamp(26px, 6vw, 88px); width: min(590px, calc(100% - 52px)); padding: clamp(30px, 4vw, 58px); background: rgba(255,254,250,.96); box-shadow: 0 18px 45px rgba(20, 35, 25, .14); }
.ac-biel-hero-card h1 { max-width: 520px; font-size: clamp(3rem, 6.4vw, 6.4rem); }
.ac-biel-hero-card p:not(.ac-kicker) { max-width: 520px; color: var(--ac-muted); font-size: 1.05rem; }

/* Zurich hero */
.ac-hero--zurich { padding-block: 28px 70px; background: #fff; }
.ac-zurich-collage { display: grid; grid-template-columns: minmax(0, 2.15fr) minmax(280px, .85fr); gap: 12px; }
.ac-zurich-collage__main { position: relative; min-height: 585px; overflow: hidden; }
.ac-zurich-collage__main::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(18,18,18,.68), rgba(18,18,18,.13) 65%, transparent); }
.ac-zurich-collage__overlay { position: absolute; z-index: 2; left: clamp(25px, 4.5vw, 70px); bottom: clamp(24px, 4.5vw, 70px); max-width: 590px; color: #fff; }
.ac-zurich-collage__overlay h1 { font-size: clamp(2.7rem, 5vw, 5.3rem); }
.ac-zurich-collage__overlay .ac-kicker { color: #fff; }
.ac-zurich-collage__tiles { display: grid; grid-template-rows: repeat(3, 1fr); gap: 12px; }
.ac-zurich-tile { position: relative; min-height: 187px; overflow: hidden; color: #fff; text-decoration: none; }
.ac-zurich-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.63), transparent 65%); }
.ac-zurich-tile img { width: 100%; height: 100%; object-fit: cover; transition: transform 450ms ease; }
.ac-zurich-tile:hover img { transform: scale(1.045); }
.ac-zurich-tile span { position: absolute; z-index: 1; left: 18px; bottom: 14px; font-size: 1.03rem; font-weight: 750; }
.ac-zurich-brandline { display: flex; align-items: baseline; gap: 15px; justify-content: center; padding-top: 28px; text-align: center; }
.ac-zurich-brandline strong { color: var(--ac-accent); font-size: clamp(2rem, 4vw, 4rem); letter-spacing: -.04em; }
.ac-zurich-brandline span { font-size: clamp(1rem, 1.8vw, 1.45rem); }

/* Fresh hero */
.ac-hero--fresh { padding-block: clamp(44px, 6vw, 90px) clamp(72px, 8vw, 118px); background: linear-gradient(135deg, var(--ac-soft), color-mix(in srgb, var(--ac-soft) 65%, white)); }
.ac-fresh-hero { display: grid; grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr); gap: clamp(42px, 6vw, 86px); align-items: center; }
.ac-fresh-hero__content h1 { max-width: 670px; }
.ac-fresh-hero__lead { max-width: 620px; color: var(--ac-muted); font-size: clamp(1.08rem, 1.8vw, 1.32rem); }
.ac-fresh-hero__trust { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.ac-fresh-hero__trust span { padding: 8px 13px; border: 1px solid var(--ac-border); border-radius: 999px; font-size: .78rem; font-weight: 750; background: rgba(255,255,255,.55); }
.ac-fresh-hero__visual { position: relative; min-height: 660px; }
.ac-fresh-hero__visual > .ac-media { display: block; height: 620px; border-radius: 40px 40px 140px 40px; overflow: hidden; box-shadow: var(--ac-shadow); }
.ac-fresh-float { position: absolute; display: grid; grid-template-columns: 72px 1fr; align-items: center; gap: 12px; width: 220px; padding: 10px; color: var(--ac-dark); background: rgba(255,255,255,.96); border: 1px solid rgba(255,255,255,.7); border-radius: 20px; box-shadow: var(--ac-shadow); text-decoration: none; font-weight: 750; }
.ac-fresh-float img { width: 72px; height: 72px; object-fit: cover; border-radius: 14px; }
.ac-fresh-float--1 { left: -48px; bottom: 110px; }
.ac-fresh-float--2 { right: -25px; top: 80px; }

/* Service links */
.ac-service-links { position: relative; z-index: 4; margin-top: -34px; }
.ac-service-links__grid { display: grid; grid-template-columns: repeat(3, 1fr); background: #fff; border: 1px solid var(--ac-border); box-shadow: 0 16px 42px rgba(20,35,25,.08); }
.ac-service-link { min-height: 132px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 17px; padding: 24px 28px; text-decoration: none; border-right: 1px solid var(--ac-border); }
.ac-service-link:last-child { border-right: 0; }
.ac-service-link:hover { background: var(--ac-soft); }
.ac-service-link__number { color: var(--ac-accent); font-size: .76rem; font-weight: 800; letter-spacing: .08em; }
.ac-service-link strong, .ac-service-link small { display: block; }
.ac-service-link strong { font-size: 1.13rem; }
.ac-service-link small { margin-top: 3px; color: var(--ac-muted); }
.ac-service-link__arrow { font-size: 1.2rem; }

/* Content sections */
.ac-intro__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr); gap: clamp(42px, 7vw, 110px); align-items: start; }
.ac-card-grid { display: grid; gap: 24px; }
.ac-card-grid--courses { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ac-card-grid--news { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ac-course-card, .ac-news-card, .ac-team-card, .ac-archive-card { background: #fff; border: 1px solid var(--ac-border); overflow: hidden; }
.ac-course-card__body, .ac-news-card__body, .ac-team-card__body, .ac-archive-card__body { padding: 24px; }
.ac-course-card__body > p:not(.ac-card-label), .ac-news-card__body > p, .ac-team-card__body > p:not(.ac-card-label) { color: var(--ac-muted); }
.ac-course-card h3 a, .ac-news-card h3 a, .ac-team-card h3 a, .ac-archive-card h2 a { text-decoration: none; }
.ac-card-label { margin-bottom: .55rem; color: var(--ac-accent); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.ac-course-card__meta { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 16px 0; color: var(--ac-muted); font-size: .8rem; }
.ac-course-card__meta span::before { content: "•"; margin-right: 7px; color: var(--ac-accent); }
.ac-news-card time { display: block; margin-bottom: 10px; color: var(--ac-muted); font-size: .77rem; }

.ac-split-feature { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(360px, .9fr); min-height: 620px; }
.ac-split-feature__media { overflow: hidden; }
.ac-split-feature__media img { width: 100%; height: 100%; object-fit: cover; }
.ac-split-feature__content { display: flex; flex-direction: column; justify-content: center; padding: clamp(45px, 6vw, 88px); background: var(--ac-dark); color: #fff; }
.ac-split-feature__content .ac-kicker { color: color-mix(in srgb, var(--ac-secondary) 70%, white); }
.ac-split-feature__content p { color: rgba(255,255,255,.76); }
.ac-check-list { display: grid; gap: 8px; margin: 18px 0 28px; padding: 0; list-style: none; }
.ac-check-list li::before { content: "✓"; margin-right: 10px; color: var(--ac-secondary); font-weight: 900; }

.ac-mandatory { padding-block: clamp(55px, 7vw, 92px); }
.ac-mandatory__inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 45px; align-items: center; padding: clamp(34px, 5vw, 66px); background: var(--ac-soft); border-left: 6px solid var(--ac-accent); }
.ac-mandatory__inner h2 { max-width: 800px; }
.ac-mandatory__inner p { max-width: 780px; color: var(--ac-muted); }
.ac-mandatory__buttons { display: flex; flex-direction: column; gap: 10px; min-width: 210px; }

.ac-event-list { border-top: 1px solid var(--ac-border); }
.ac-event-row { display: grid; grid-template-columns: 120px 1fr auto; gap: 30px; align-items: center; padding: 22px 0; border-bottom: 1px solid var(--ac-border); }
.ac-event-row time strong, .ac-event-row time span { display: block; }
.ac-event-row time strong { color: var(--ac-accent); font-size: 1.6rem; }
.ac-event-row time span { color: var(--ac-muted); font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
.ac-event-row h3 { margin: 0 0 4px; }
.ac-event-row h3 a, .ac-event-row__link { text-decoration: none; }
.ac-event-row p { margin: 0; color: var(--ac-muted); }
.ac-event-row__link { font-size: .82rem; font-weight: 800; }

.ac-team-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.ac-testimonials { color: #fff; background: var(--ac-dark); }
.ac-testimonials .ac-kicker { color: color-mix(in srgb, var(--ac-secondary) 70%, white); }
.ac-testimonial-slider { position: relative; max-width: 890px; margin: 0 auto; text-align: center; }
.ac-testimonial { display: none; margin: 0; }
.ac-testimonial.is-active { display: block; }
.ac-testimonial__text { font-family: var(--ac-serif); font-size: clamp(1.45rem, 3vw, 2.45rem); line-height: 1.35; }
.ac-testimonial cite { display: block; margin-top: 22px; font-style: normal; color: rgba(255,255,255,.68); }
.ac-stars { margin-bottom: 18px; color: #f5c85c; letter-spacing: .18em; }
.ac-slider-controls { display: flex; justify-content: center; gap: 10px; margin-top: 28px; }
.ac-slider-controls button { width: 46px; height: 46px; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; color: #fff; background: transparent; }
.ac-booking { color: #fff; background: var(--ac-accent); }
.ac-booking__inner { display: grid; grid-template-columns: 1fr auto; gap: 36px; align-items: center; }
.ac-booking .ac-kicker { color: rgba(255,255,255,.75); }
.ac-booking h2 { margin-bottom: .3em; }
.ac-booking p { margin: 0; color: rgba(255,255,255,.82); }

/* Footer */
.ac-site-footer { color: rgba(255,255,255,.76); background: #121c18; }
.ac-footer-grid { display: grid; grid-template-columns: 1.2fr .8fr 1fr 1fr; gap: 45px; padding-block: 72px; }
.ac-site-footer h2 { margin-bottom: 18px; color: #fff; font-size: 1rem; letter-spacing: .02em; }
.ac-footer-brand img { width: 150px; margin-bottom: 20px; filter: brightness(0) invert(1); }
.ac-footer-brand h2 { font-size: 1.35rem; }
.ac-footer-menu { list-style: none; margin: 0; padding: 0; }
.ac-footer-menu li { margin: 8px 0; }
.ac-site-footer a, .ac-footer-cookie-link { color: inherit; text-decoration: none; }
.ac-site-footer a:hover, .ac-footer-cookie-link:hover { color: #fff; }
.ac-site-footer address { font-style: normal; }
.ac-social-links, .ac-legal-links { display: flex; flex-wrap: wrap; gap: 9px 15px; margin-top: 14px; }
.ac-footer-cookie-link { padding: 0; border: 0; background: transparent; }
.ac-footer-bottom { border-top: 1px solid rgba(255,255,255,.12); }
.ac-footer-bottom p { margin: 0; padding-block: 19px; font-size: .76rem; }

/* Inner pages */
.ac-page-hero { position: relative; min-height: 360px; display: flex; align-items: end; color: #fff; background: var(--ac-dark) center/cover no-repeat; }
.ac-page-hero__overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(15,25,21,.82), rgba(15,25,21,.24)); }
.ac-page-hero__content { position: relative; z-index: 1; padding-block: 80px 55px; }
.ac-page-hero__content .ac-kicker { color: rgba(255,255,255,.76); }
.ac-entry-content > * { max-width: 100%; }
.ac-entry-content h2, .ac-entry-content h3 { margin-top: 1.8em; }
.ac-entry-content img { border-radius: calc(var(--ac-radius) * .65); }
.ac-detail-facts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; margin-bottom: 36px; background: var(--ac-border); border: 1px solid var(--ac-border); }
.ac-detail-facts p { display: flex; justify-content: space-between; gap: 20px; margin: 0; padding: 15px 18px; background: #fff; }
.ac-detail-facts strong { font-size: .77rem; text-transform: uppercase; letter-spacing: .07em; }
.ac-archive-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 24px; }
.ac-archive-card__image { display: block; aspect-ratio: 4/3; overflow: hidden; }
.ac-archive-card__image img { width: 100%; height: 100%; object-fit: cover; }
.ac-error-page { min-height: 60vh; display: flex; align-items: center; }

/* Cookie consent */
.ac-cookie[hidden], .ac-cookie-modal[hidden] { display: none !important; }
.ac-cookie-banner { position: fixed; z-index: 1000; left: 22px; right: 22px; bottom: 22px; max-width: 1280px; margin-inline: auto; display: grid; grid-template-columns: 1fr auto; gap: 28px; align-items: center; padding: 24px; color: var(--ac-dark); background: rgba(255,255,255,.98); border: 1px solid var(--ac-border); border-radius: 20px; box-shadow: 0 24px 80px rgba(15,25,21,.24); backdrop-filter: blur(18px); }
.ac-cookie-banner__copy { display: grid; grid-template-columns: auto 1fr; gap: 16px; }
.ac-cookie-banner h2 { margin-bottom: 5px; font-size: 1.15rem; }
.ac-cookie-banner p { margin: 0 0 5px; color: var(--ac-muted); font-size: .86rem; }
.ac-cookie-banner a { font-size: .78rem; font-weight: 750; }
.ac-cookie-icon { width: 34px; height: 34px; display: grid; place-items: center; color: var(--ac-accent); border: 2px dotted var(--ac-accent); border-radius: 50%; }
.ac-cookie-banner__actions, .ac-cookie-modal__actions { display: flex; flex-wrap: wrap; gap: 9px; justify-content: flex-end; }
.ac-cookie-button { min-height: 42px; padding: 10px 17px; border-radius: 999px; }
.ac-cookie-button--primary { background: var(--ac-accent); border-color: var(--ac-accent); color: #fff; }
.ac-cookie-button--secondary { background: #fff; border-color: var(--ac-border); color: var(--ac-dark); }
.ac-cookie-modal { position: fixed; z-index: 1010; inset: 0; display: grid; place-items: center; padding: 20px; }
.ac-cookie-modal__backdrop { position: absolute; inset: 0; background: rgba(10,17,14,.58); backdrop-filter: blur(6px); }
.ac-cookie-modal__panel { position: relative; z-index: 1; width: min(680px, 100%); max-height: min(760px, calc(100vh - 40px)); overflow: auto; padding: clamp(26px, 4vw, 42px); background: #fff; border-radius: 24px; box-shadow: 0 35px 110px rgba(0,0,0,.35); }
.ac-cookie-modal__close { position: absolute; top: 14px; right: 16px; width: 42px; height: 42px; border: 0; border-radius: 50%; background: var(--ac-soft); font-size: 1.6rem; }
.ac-cookie-options { margin: 28px 0; border-top: 1px solid var(--ac-border); }
.ac-cookie-option { display: grid; grid-template-columns: 1fr auto; gap: 22px; align-items: center; padding: 18px 0; border-bottom: 1px solid var(--ac-border); }
.ac-cookie-option strong, .ac-cookie-option small { display: block; }
.ac-cookie-option small { margin-top: 3px; color: var(--ac-muted); }
.ac-cookie-option input { width: 44px; height: 24px; accent-color: var(--ac-accent); }

/* Profile tuning: Zurich */
.animalcoach-preset-zurich { --ac-container: 1120px; --ac-radius: 0px; --ac-soft: #f4f2ef; --ac-shadow: 0 10px 28px rgba(0,0,0,.12); }
.animalcoach-preset-zurich h1, .animalcoach-preset-zurich h2 { letter-spacing: -.035em; }
.animalcoach-preset-zurich .ac-site-header__inner { grid-template-columns: 1fr auto 1fr; grid-template-areas: "blank brand action" "nav nav nav"; min-height: 0; gap: 0; }
.animalcoach-preset-zurich .ac-brand { grid-area: brand; justify-self: center; padding: 13px 0 8px; }
.animalcoach-preset-zurich .ac-brand__link { flex-direction: column; gap: 2px; }
.animalcoach-preset-zurich .ac-brand__image { width: 145px; max-height: 58px; }
.animalcoach-preset-zurich .ac-brand__location { max-width: none; padding: 0; border: 0; font-size: .69rem; }
.animalcoach-preset-zurich .ac-primary-nav { grid-area: nav; width: 100%; border-top: 1px solid var(--ac-border); }
.animalcoach-preset-zurich .ac-menu { justify-content: center; }
.animalcoach-preset-zurich .ac-menu a { padding: 15px 0; }
.animalcoach-preset-zurich .ac-header-action { grid-area: action; justify-self: end; margin: 10px 0; border-radius: 0; }
.animalcoach-preset-zurich .ac-card-grid--courses { grid-template-columns: repeat(3, 1fr); gap: 18px; }
.animalcoach-preset-zurich .ac-course-card, .animalcoach-preset-zurich .ac-news-card, .animalcoach-preset-zurich .ac-team-card { box-shadow: none; }
.animalcoach-preset-zurich .ac-section { padding-block: clamp(58px, 6.5vw, 92px); }

/* Profile tuning: Biel */
.animalcoach-preset-biel { --ac-container: 1360px; --ac-radius: 0px; --ac-shadow: 0 18px 48px rgba(26,45,30,.1); }
.animalcoach-preset-biel h1, .animalcoach-preset-biel h2 { font-weight: 450; }
.animalcoach-preset-biel .ac-site-header__inner { min-height: 112px; }
.animalcoach-preset-biel .ac-brand__image { width: 150px; }
.animalcoach-preset-biel .ac-menu a { font-size: .84rem; }
.animalcoach-preset-biel .ac-header-action { color: var(--ac-dark); background: transparent; border-color: var(--ac-dark); }
.animalcoach-preset-biel .ac-service-links { margin-top: -58px; }
.animalcoach-preset-biel .ac-service-links__grid { box-shadow: none; }
.animalcoach-preset-biel .ac-card-grid--courses { gap: 34px; }
.animalcoach-preset-biel .ac-course-card, .animalcoach-preset-biel .ac-news-card, .animalcoach-preset-biel .ac-team-card { border: 0; background: transparent; }
.animalcoach-preset-biel .ac-course-card__body, .animalcoach-preset-biel .ac-news-card__body, .animalcoach-preset-biel .ac-team-card__body { padding-inline: 0; }
.animalcoach-preset-biel .ac-section { padding-block: clamp(88px, 9vw, 145px); }

/* Profile tuning: Fresh */
.animalcoach-preset-fresh .ac-course-card, .animalcoach-preset-fresh .ac-news-card, .animalcoach-preset-fresh .ac-team-card, .animalcoach-preset-fresh .ac-service-links__grid { border-radius: var(--ac-radius); box-shadow: 0 14px 42px rgba(20,35,25,.08); }
.animalcoach-preset-fresh .ac-card-media { border-radius: var(--ac-radius) var(--ac-radius) 0 0; }
.animalcoach-preset-fresh .ac-mandatory__inner { border-left: 0; border-radius: 28px; }
.animalcoach-preset-fresh .ac-booking { background: linear-gradient(125deg, var(--ac-accent), color-mix(in srgb, var(--ac-accent) 65%, var(--ac-dark))); }

@media (max-width: 1100px) {
  .ac-site-header__inner { grid-template-columns: auto 1fr auto; }
  .ac-header-action { display: none; }
  .ac-card-grid--news, .ac-team-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .ac-biel-hero-grid { min-height: 680px; }
  .ac-biel-hero-grid__main { min-height: 680px; }
  .ac-fresh-hero__visual { min-height: 560px; }
  .ac-fresh-hero__visual > .ac-media { height: 540px; }
  .animalcoach-preset-zurich .ac-site-header__inner { grid-template-columns: 1fr auto 1fr; }
}

@media (max-width: 940px) {
  .ac-site-header__inner, .animalcoach-preset-zurich .ac-site-header__inner { min-height: 82px; grid-template-columns: 1fr auto; grid-template-areas: "brand toggle"; gap: 15px; }
  .ac-brand, .animalcoach-preset-zurich .ac-brand { grid-area: brand; justify-self: start; padding: 0; }
  .ac-brand__link, .animalcoach-preset-zurich .ac-brand__link { flex-direction: row; gap: 10px; }
  .ac-brand__image, .animalcoach-preset-zurich .ac-brand__image { width: 112px; max-height: 52px; }
  .ac-brand__location, .animalcoach-preset-zurich .ac-brand__location { max-width: 150px; padding-left: 10px; border-left: 1px solid var(--ac-border); font-size: .64rem; }
  .ac-nav-toggle { display: block; grid-area: toggle; }
  .ac-primary-nav, .animalcoach-preset-zurich .ac-primary-nav { position: absolute; top: 100%; left: 0; right: 0; width: auto; max-height: calc(100vh - 82px); overflow: auto; padding: 12px 21px 24px; background: #fff; border-top: 1px solid var(--ac-border); box-shadow: var(--ac-shadow); opacity: 0; visibility: hidden; transform: translateY(-8px); }
  .ac-primary-nav.is-open { opacity: 1; visibility: visible; transform: none; }
  .ac-menu { display: block; }
  .ac-menu a, .animalcoach-preset-zurich .ac-menu a { padding: 12px 0; font-size: .93rem; }
  .ac-menu .sub-menu { position: static; min-width: 0; padding: 0 0 5px 16px; border: 0; box-shadow: none; opacity: 1; visibility: visible; transform: none; }
  .ac-menu .sub-menu a { padding: 8px 0; color: var(--ac-muted); }
  .ac-zurich-collage { grid-template-columns: 1fr; }
  .ac-zurich-collage__tiles { grid-template-columns: repeat(3, 1fr); grid-template-rows: none; }
  .ac-zurich-tile { min-height: 190px; }
  .ac-fresh-hero { grid-template-columns: 1fr; }
  .ac-fresh-hero__content { max-width: 700px; }
  .ac-fresh-hero__visual { width: min(760px, 100%); margin-inline: auto; }
  .ac-service-links { margin-top: -22px !important; }
  .ac-service-links__grid { grid-template-columns: 1fr; }
  .ac-service-link { min-height: 105px; border-right: 0; border-bottom: 1px solid var(--ac-border); }
  .ac-service-link:last-child { border-bottom: 0; }
  .ac-intro__grid, .ac-section-heading--row, .ac-split-feature, .ac-mandatory__inner, .ac-booking__inner { grid-template-columns: 1fr; }
  .ac-split-feature__media { min-height: 460px; }
  .ac-mandatory__buttons { flex-direction: row; min-width: 0; }
  .ac-card-grid--courses { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .ac-footer-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .ac-cookie-banner { grid-template-columns: 1fr; }
  .ac-cookie-banner__actions { justify-content: flex-start; }
}

@media (max-width: 759px) {
  .ac-container { width: min(calc(100% - 28px), var(--ac-container)); }
  .ac-announcement__inner { justify-content: flex-start; gap: 10px; overflow-x: auto; }
  .ac-announcement p { white-space: nowrap; }
  .ac-biel-hero-grid { display: block; min-height: 0; }
  .ac-biel-hero-grid__main { min-height: 520px; }
  .ac-biel-hero-grid__side { display: none; }
  .ac-biel-hero-card { position: relative; left: auto; bottom: auto; width: calc(100% - 28px); margin: -95px auto 0; }
  .ac-zurich-collage__main { min-height: 570px; }
  .ac-zurich-collage__main::after { background: linear-gradient(0deg, rgba(18,18,18,.78), rgba(18,18,18,.04) 75%); }
  .ac-zurich-collage__overlay { left: 22px; right: 22px; bottom: 26px; }
  .ac-zurich-collage__tiles { display: grid; grid-template-columns: 1fr 1fr; }
  .ac-zurich-tile:last-child { grid-column: 1 / 3; }
  .ac-zurich-brandline { display: block; }
  .ac-zurich-brandline strong, .ac-zurich-brandline span { display: block; }
  .ac-fresh-hero__visual { min-height: 500px; }
  .ac-fresh-hero__visual > .ac-media { height: 480px; border-radius: 26px 26px 80px 26px; }
  .ac-fresh-float { width: 185px; grid-template-columns: 56px 1fr; font-size: .8rem; }
  .ac-fresh-float img { width: 56px; height: 56px; }
  .ac-fresh-float--1 { left: -4px; bottom: 30px; }
  .ac-fresh-float--2 { right: -4px; top: 32px; }
  .ac-card-grid--courses, .ac-card-grid--news, .ac-team-grid, .ac-archive-grid { grid-template-columns: 1fr; }
  .ac-event-row { grid-template-columns: 78px 1fr; gap: 18px; }
  .ac-event-row__link { grid-column: 2; }
  .ac-mandatory__buttons { flex-direction: column; }
  .ac-footer-grid { grid-template-columns: 1fr; gap: 30px; }
  .ac-detail-facts { grid-template-columns: 1fr; }
  .ac-cookie-banner { left: 10px; right: 10px; bottom: 10px; padding: 18px; border-radius: 16px; }
  .ac-cookie-banner__copy { grid-template-columns: 1fr; }
  .ac-cookie-icon { display: none; }
  .ac-cookie-banner__actions { display: grid; grid-template-columns: 1fr 1fr; }
  .ac-cookie-banner__actions .ac-cookie-button--primary { grid-column: 1 / 3; grid-row: 1; }
  .ac-cookie-button { width: 100%; }
  .ac-cookie-modal { padding: 10px; }
  .ac-cookie-modal__panel { max-height: calc(100vh - 20px); border-radius: 18px; }
  .ac-cookie-modal__actions { display: grid; grid-template-columns: 1fr; }
}

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

/* Final mobile refinements */
.ac-cookie-banner[hidden] { display: none !important; }
@media (max-width: 759px) {
  .ac-announcement__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: 56px;
    gap: 10px;
    overflow: visible;
  }
  .ac-announcement p { white-space: normal; line-height: 1.25; }
  .ac-announcement__links { display: block; }
  .ac-announcement__links a { display: block; white-space: nowrap; }
  .ac-announcement__links a + a { display: none; }
}

/* ============================================================
   Version 3.0 additions: dynamic sections, registration, partners
   ============================================================ */
textarea, select { font: inherit; }

.ac-site-header__inner {
  grid-template-columns: auto minmax(0, 1fr) auto;
}
.ac-header-tools { display: flex; align-items: center; justify-content: flex-end; gap: 14px; }
.ac-network-link {
  display: inline-flex; align-items: center; gap: 5px; color: var(--ac-muted);
  font-size: .72rem; font-weight: 700; line-height: 1.25; text-decoration: none;
}
.ac-network-link:hover, .ac-network-link:focus-visible { color: var(--ac-accent); }
.ac-mobile-nav-actions { display: none; }
.ac-footer-main-site { font-size: .82rem; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.ac-footer-bottom__inner { display: flex; justify-content: space-between; gap: 22px; align-items: center; }
.ac-theme-credit { opacity: .62; text-align: right; }
.ac-theme-credit a { text-decoration: none; }

/* Inner page picture: wide desktop crop and separately selected mobile crop. */
.ac-page-hero { overflow: hidden; }
.ac-page-hero__picture { position: absolute; inset: 0; }
.ac-page-hero__picture img { width: 100%; height: 100%; object-fit: cover; }
.ac-page-hero:not(.has-image) { min-height: 360px; }
.ac-page-hero.has-image { min-height: clamp(300px, 25vw, 440px); }

/* Dynamic offer areas */
.ac-service-links__grid--1 { grid-template-columns: minmax(0, 1fr); max-width: 760px; }
.ac-service-links__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ac-service-links__grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ac-service-link.is-coming-soon, .ac-zurich-tile.is-coming-soon, .ac-fresh-float.is-coming-soon,
.ac-biel-hero-grid__side.is-coming-soon { cursor: default; }
.ac-service-link.is-coming-soon { color: color-mix(in srgb, var(--ac-dark) 68%, white); background: color-mix(in srgb, var(--ac-soft) 75%, white); }
.ac-service-link.is-coming-soon .ac-service-link__number { opacity: .55; }
.ac-zurich-tile small, .ac-fresh-float small { display: block; margin-top: 2px; color: var(--ac-accent); font-size: .68rem; }
.ac-coming-soon-label { position: absolute; right: 14px; bottom: 14px; padding: 7px 10px; color: #fff; background: rgba(0,0,0,.62); font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.ac-biel-hero-grid__side { position: relative; }

.ac-course-card__meta { flex-wrap: wrap; }
.ac-status-chip { padding: 3px 8px; border-radius: 999px; color: var(--ac-dark); background: color-mix(in srgb, var(--ac-secondary) 22%, white); font-size: .72rem; font-weight: 700; }
.ac-course-price { display: flex; flex-wrap: wrap; gap: 7px; align-items: baseline; margin: 8px 0 14px; }
.ac-course-price strong { color: var(--ac-accent); font-size: 1.08rem; }
.ac-course-price del { color: var(--ac-muted); }
.ac-course-price small { flex-basis: 100%; color: var(--ac-muted); }
.ac-detail-price { display: inline-flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.ac-detail-price small { flex-basis: 100%; text-align: right; color: var(--ac-muted); }

/* Overview filters */
.ac-filter-nav { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 38px; }
.ac-filter-nav a { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border: 1px solid var(--ac-border); border-radius: 999px; background: #fff; font-size: .82rem; font-weight: 750; text-decoration: none; }
.ac-filter-nav a:hover, .ac-filter-nav a.is-active { color: #fff; background: var(--ac-dark); border-color: var(--ac-dark); }
.ac-filter-nav small { opacity: .72; }
.ac-archive-grid--courses { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ac-offer-overview__extra { margin-top: 60px; }
.ac-empty-state { max-width: 760px; padding: clamp(30px, 5vw, 58px); background: var(--ac-soft); border: 1px solid var(--ac-border); border-radius: var(--ac-radius); }
.ac-empty-state h2 { font-size: clamp(1.7rem, 3vw, 2.55rem); }

/* About page */
.ac-split-feature--about .ac-split-feature__media { min-height: 620px; }
.ac-team-grid--full { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ac-mini-list { margin: 16px 0 20px; padding-left: 18px; color: var(--ac-muted); font-size: .88rem; }
.ac-about-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(30px, 7vw, 100px); }
.ac-about-columns article { padding: clamp(28px, 4vw, 48px); border-top: 4px solid var(--ac-accent); background: var(--ac-soft); }
.ac-profile-qualifications { margin-top: 50px; padding-top: 35px; border-top: 1px solid var(--ac-border); }
.ac-detail-cta { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 30px; align-items: center; margin-top: 50px; padding: clamp(26px, 4vw, 44px); background: var(--ac-soft); border-left: 5px solid var(--ac-accent); }
.ac-detail-cta h2 { margin-bottom: 0; font-size: clamp(1.55rem, 3vw, 2.35rem); }

/* Registration */
.ac-registration-layout { display: grid; grid-template-columns: minmax(260px, .7fr) minmax(0, 1.3fr); gap: clamp(36px, 7vw, 100px); align-items: start; }
.ac-registration-intro { position: sticky; top: 130px; }
.ac-registration-card { padding: clamp(25px, 4vw, 48px); background: #fff; border: 1px solid var(--ac-border); border-radius: var(--ac-radius); box-shadow: 0 18px 52px rgba(20,35,25,.08); }
.ac-registration-form fieldset { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin: 0 0 34px; padding: 0; border: 0; }
.ac-registration-form legend { grid-column: 1 / -1; width: 100%; margin-bottom: 4px; padding-bottom: 10px; border-bottom: 1px solid var(--ac-border); font-size: 1.18rem; font-weight: 750; }
.ac-form-field { display: grid; gap: 7px; }
.ac-form-field--full { grid-column: 1 / -1; }
.ac-form-field > span { font-size: .82rem; font-weight: 750; }
.ac-form-field input, .ac-form-field select, .ac-form-field textarea { width: 100%; min-height: 48px; padding: 11px 13px; border: 1px solid var(--ac-border); border-radius: 8px; color: var(--ac-dark); background: #fff; }
.ac-form-field textarea { min-height: 112px; resize: vertical; }
.ac-form-field input:focus, .ac-form-field select:focus, .ac-form-field textarea:focus { border-color: var(--ac-accent); outline: 3px solid color-mix(in srgb, var(--ac-accent) 18%, transparent); }
.ac-form-consent { display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: start; margin-bottom: 25px; font-size: .84rem; }
.ac-form-consent input { margin-top: 5px; }
.ac-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.ac-form-message { margin-bottom: 30px; padding: 20px 22px; border-left: 5px solid; }
.ac-form-message h2 { margin-bottom: 6px; font-size: 1.35rem; }
.ac-form-message p { margin: 0; }
.ac-form-message--success { background: #edf6ef; border-color: #3f7c4d; }
.ac-form-message--error { background: #fff0ee; border-color: var(--ac-accent); }

/* Partners */
.ac-partner-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.ac-partner-card { overflow: hidden; background: #fff; border: 1px solid var(--ac-border); border-radius: var(--ac-radius); }
.ac-partner-card__media { display: grid; place-items: center; aspect-ratio: 2/1; padding: 28px; background: color-mix(in srgb, var(--ac-soft) 60%, white); }
.ac-partner-card__image { width: 100%; height: 100%; object-fit: contain; }
.ac-partner-card__body { padding: 25px; }
.ac-disclosure { display: inline-flex; padding: 5px 8px; border-radius: 4px; color: var(--ac-muted); background: var(--ac-soft); font-size: .72rem; font-weight: 700; }

/* Admin media picker preview */
.animalcoach-image-picker { padding-bottom: 12px; border-bottom: 1px solid #dcdcde; }
.animalcoach-image-picker__preview img { max-width: 100%; height: auto; }

@media (max-width: 1180px) {
  .ac-network-link--desktop { display: none; }
}

@media (max-width: 1100px) {
  .ac-header-tools > .ac-header-action { display: none; }
  .ac-archive-grid--courses, .ac-partner-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ac-team-grid--full { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 940px) {
  .ac-header-tools { display: none; }
  .ac-mobile-nav-actions { display: grid; gap: 12px; margin-top: 14px; padding-top: 18px; border-top: 1px solid var(--ac-border); }
  .ac-header-action--mobile { display: inline-flex !important; width: 100%; }
  .ac-network-link { font-size: .82rem; }
  .ac-service-links__grid--2, .ac-service-links__grid--3 { grid-template-columns: 1fr; }
  .ac-registration-layout { grid-template-columns: 1fr; }
  .ac-registration-intro { position: static; }
  .ac-about-columns { grid-template-columns: 1fr; }
  .ac-detail-cta { grid-template-columns: 1fr; }
}

@media (max-width: 759px) {
  .ac-page-hero.has-image { min-height: 330px; }
  .ac-page-hero__content { padding-block: 68px 42px; }
  .ac-page-hero__content h1 { font-size: clamp(2.3rem, 12vw, 4rem); }
  .ac-archive-grid--courses, .ac-partner-grid, .ac-team-grid--full { grid-template-columns: 1fr; }
  .ac-registration-card { padding: 22px 16px; }
  .ac-registration-form fieldset { grid-template-columns: 1fr; }
  .ac-form-field--full, .ac-registration-form legend { grid-column: auto; }
  .ac-footer-bottom__inner { display: block; }
  .ac-theme-credit { margin-top: -12px; padding-bottom: 19px; text-align: left; }
}

/* ============================================================
   Version 3.1: readable, collision-free navigation
   ============================================================ */
.ac-site-header__inner {
  width: min(calc(100% - 42px), 1600px);
  min-height: 102px;
  grid-template-columns: minmax(250px, 330px) minmax(0, 1fr) auto;
  gap: clamp(22px, 2vw, 38px);
}
.ac-primary-nav { justify-self: stretch; min-width: 0; }
.ac-menu { justify-content: center; gap: clamp(16px, 1.45vw, 28px); }
.ac-menu a { padding-block: 36px; font-size: .91rem; font-weight: 720; }
.ac-brand__image { width: 142px; }
.ac-brand__location { max-width: 150px; font-size: .76rem; overflow-wrap: anywhere; }
.ac-header-tools { flex: 0 0 auto; }
.ac-announcement__inner { width: min(calc(100% - 42px), 1600px); }
.ac-announcement__network { margin-left: 6px; opacity: .9; }

@media (max-width: 1320px) {
  .ac-site-header__inner,
  .animalcoach-preset-zurich .ac-site-header__inner {
    min-height: 84px;
    grid-template-columns: 1fr auto;
    grid-template-areas: "brand toggle";
    gap: 16px;
  }
  .ac-brand,
  .animalcoach-preset-zurich .ac-brand { grid-area: brand; justify-self: start; padding: 0; }
  .ac-brand__link,
  .animalcoach-preset-zurich .ac-brand__link { flex-direction: row; gap: 11px; }
  .ac-brand__image,
  .animalcoach-preset-zurich .ac-brand__image { width: 124px; max-height: 56px; }
  .ac-brand__location,
  .animalcoach-preset-zurich .ac-brand__location { max-width: 190px; padding-left: 11px; border-left: 1px solid var(--ac-border); font-size: .7rem; }
  .ac-nav-toggle { display: block; grid-area: toggle; }
  .ac-header-tools { display: none; }
  .ac-primary-nav,
  .animalcoach-preset-zurich .ac-primary-nav {
    position: absolute; top: 100%; left: 0; right: 0; width: auto;
    max-height: calc(100vh - 84px); overflow: auto;
    padding: 14px 28px 26px; background: #fff; border-top: 1px solid var(--ac-border);
    box-shadow: var(--ac-shadow); opacity: 0; visibility: hidden; transform: translateY(-8px);
    transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
  }
  .ac-primary-nav.is-open { opacity: 1; visibility: visible; transform: none; }
  .ac-menu { display: block; }
  .ac-menu a,
  .animalcoach-preset-zurich .ac-menu a { padding: 13px 0; font-size: 1rem; }
  .ac-menu .sub-menu { position: static; min-width: 0; padding: 0 0 5px 18px; border: 0; box-shadow: none; opacity: 1; visibility: visible; transform: none; }
  .ac-menu .sub-menu a { padding: 8px 0; color: var(--ac-muted); }
  .ac-mobile-nav-actions { display: grid; gap: 12px; margin-top: 15px; padding-top: 18px; border-top: 1px solid var(--ac-border); }
  .ac-header-action--mobile { display: inline-flex !important; width: 100%; }
  .ac-network-link { font-size: .88rem; }
}

@media (max-width: 759px) {
  .ac-site-header__inner { width: min(calc(100% - 28px), 1600px); }
  .ac-brand__image,
  .animalcoach-preset-zurich .ac-brand__image { width: 106px; }
  .ac-brand__location,
  .animalcoach-preset-zurich .ac-brand__location { max-width: 125px; font-size: .62rem; line-height: 1.2; }
  .ac-announcement__network { display: none !important; }
}

/* Version 3.1 contact page and map */
.ac-contact-layout { display: grid; grid-template-columns: minmax(260px,.72fr) minmax(0,1.28fr); gap: clamp(38px,7vw,100px); align-items: start; }
.ac-contact-layout--single { grid-template-columns: minmax(0,850px); }
.ac-contact-details { position: sticky; top: 132px; }
.ac-contact-list { display: grid; gap: 0; margin: 30px 0; }
.ac-contact-list > div { display: grid; grid-template-columns: 135px minmax(0,1fr); gap: 18px; padding: 14px 0; border-bottom: 1px solid var(--ac-border); }
.ac-contact-list dt { font-size: .75rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.ac-contact-list dd { margin: 0; color: var(--ac-muted); }
.ac-contact-list a { color: var(--ac-dark); font-weight: 700; }
.ac-training-locations { margin-top: 34px; padding: 24px; border-left: 4px solid var(--ac-secondary); background: var(--ac-soft); }
.ac-training-locations h3 { font-size: 1.2rem; }
.ac-contact-form-card { padding: clamp(24px,4vw,48px); background: #fff; border: 1px solid var(--ac-border); border-radius: var(--ac-radius); box-shadow: 0 18px 52px rgba(20,35,25,.08); }
.ac-map-placeholder { min-height: 430px; display: grid; place-items: center; padding: 30px; background: linear-gradient(135deg,color-mix(in srgb,var(--ac-soft) 85%,white),#fff); border: 1px solid var(--ac-border); border-radius: var(--ac-radius); overflow: hidden; }
.ac-map-placeholder__content { max-width: 650px; text-align: center; }
.ac-map-placeholder iframe { width: 100%; min-height: 480px; border: 0; }
.ac-map-link-card { display: flex; align-items: center; justify-content: space-between; gap: 35px; padding: clamp(28px,5vw,54px); background:#fff; border:1px solid var(--ac-border); border-radius:var(--ac-radius); }
.ac-map-link-card h3 { margin-bottom: .4rem; }
.ac-map-link-card p { margin: 0; color: var(--ac-muted); }
.ac-course-sessions { margin-top: 54px; padding-top: 38px; border-top: 1px solid var(--ac-border); }
@media(max-width:940px){.ac-contact-layout{grid-template-columns:1fr}.ac-contact-details{position:static}.ac-map-link-card{align-items:flex-start;flex-direction:column}}
@media(max-width:759px){.ac-contact-list>div{grid-template-columns:1fr;gap:4px}.ac-contact-form-card{padding:22px 16px}.ac-map-placeholder{min-height:360px;padding:20px}.ac-map-placeholder iframe{min-height:420px}}


/* Highlighted network and partner entries. */
.ac-partner-card.is-featured {
  border-color: color-mix(in srgb, var(--ac-accent) 38%, var(--ac-border));
  box-shadow: 0 22px 48px rgba(19, 48, 42, .12);
}
.ac-partner-card.is-featured .ac-card-label::after {
  content: " · Empfehlung";
  color: var(--ac-accent);
}

/* Registration 3.3: clear holder/dog separation and repeatable dog cards. */
.ac-registration-section{padding:clamp(18px,3vw,28px)!important;border:1px solid var(--ac-border)!important;border-radius:16px!important;background:#fff!important;margin-bottom:24px!important}
.ac-registration-section>legend{margin-left:-4px;padding:0 8px!important;border:0!important;color:var(--ac-dark);font-size:1.28rem!important}
.ac-registration-section--holder{background:color-mix(in srgb,var(--ac-soft) 45%,#fff)!important}
.ac-registration-section--dogs{background:color-mix(in srgb,var(--ac-secondary) 8%,#fff)!important}
.ac-section-intro{margin:0 0 4px;color:var(--ac-muted)}
.ac-dog-entry{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:22px;margin:8px 0 18px;border:1px solid var(--ac-border);border-left:4px solid var(--ac-secondary);border-radius:14px;background:#fff}
.ac-dog-entry__header{grid-column:1/-1;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:12px;border-bottom:1px solid var(--ac-border)}
.ac-dog-entry__header h3{margin:2px 0 0;font-size:1.15rem}.ac-dog-entry__number{font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ac-accent)}
.ac-dog-remove{border:0;background:transparent;color:#9e332b;text-decoration:underline;cursor:pointer;font-weight:700}.ac-dog-remove[hidden]{display:none}
.acp-dog-registration-list{display:grid;gap:18px}.acp-dog-registration{padding:18px;border:1px solid #dcdcda;border-radius:10px;background:#fafaf8}.acp-dog-registration h4{margin-top:0}.acp-dog-registration dl{display:grid;grid-template-columns:180px 1fr;gap:6px 16px}.acp-dog-registration dt{font-weight:700}.acp-dog-registration dd{margin:0}
@media(max-width:759px){.ac-dog-entry{grid-template-columns:1fr;padding:17px}.ac-dog-entry__header{grid-column:auto}.acp-dog-registration dl{grid-template-columns:1fr}.acp-dog-registration dd{margin-bottom:8px}}
/* Animalcoach 3.4 - contact balance, customer portal and consent */
.ac-contact-layout--balanced{grid-template-columns:minmax(0,.82fr) minmax(460px,1.08fr)}.ac-contact-layout--contact{grid-template-columns:minmax(480px,1.1fr) minmax(420px,.9fr)}.ac-contact-layout--form{grid-template-columns:minmax(360px,.7fr) minmax(520px,1.3fr)}.ac-contact-details{background:#faf7f1;border:1px solid rgba(24,48,41,.12);border-radius:18px;padding:clamp(28px,4vw,54px);align-self:start}.ac-contact-details h2{max-width:12ch}.ac-contact-list{margin-top:28px}.ac-contact-list>div{padding:14px 0}.ac-contact-quick-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:22px 0}.ac-contact-quick{display:grid;grid-template-columns:auto 1fr;gap:1px 9px;align-items:center;padding:12px;border:1px solid rgba(24,48,41,.15);border-radius:10px;text-decoration:none;background:#fff;color:var(--ac-ink)}.ac-contact-quick>span{grid-row:1/3;font-size:22px;color:var(--ac-red)}.ac-contact-quick strong,.ac-contact-quick small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ac-contact-quick small{font-size:11px;color:var(--ac-muted)}.ac-contact-form-card{align-self:start}.ac-contact-form-wrap .ac-contact-disclaimer{padding:16px 18px;margin-bottom:18px}.ac-contact-form fieldset{gap:14px}.ac-contact-form textarea{min-height:155px}.ac-contact-form .ac-form-field{gap:5px}.ac-contact-form .ac-field-help{font-size:11px;color:var(--ac-muted)}.ac-training-locations{margin-top:22px}.ac-cookie-option--service{margin-left:28px;background:#f7f8f7}.ac-header-tools{display:flex;align-items:center;gap:10px}.ac-customer-portal-link{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 12px;border:1px solid rgba(24,48,41,.25);border-radius:999px;text-decoration:none;color:var(--ac-ink);font-size:13px;font-weight:700;white-space:nowrap}.ac-customer-portal-link:hover{border-color:var(--ac-red);color:var(--ac-red)}.ac-customer-portal-link.is-logged-in:before{content:'●';font-size:8px;color:#3f7d4d;margin-right:7px}.ac-mobile-nav-actions .ac-customer-portal-link{width:100%;margin-top:8px}.ac-map-placeholder iframe{width:100%;min-height:520px;border:0;border-radius:18px}.ac-map-placeholder__content{min-height:360px}.acbo-customer-portal>section{scroll-margin-top:120px}.acbo-customer-portal .acbo-portal-documents{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;list-style:none;padding:0}.acbo-customer-portal .acbo-portal-documents li{background:#fff;border:1px solid rgba(24,48,41,.14);padding:14px;border-radius:10px}.acbo-login-card .ac-kicker{color:var(--ac-red)}
@media(max-width:1320px){.ac-header-tools .ac-customer-portal-link{display:none}}@media(max-width:980px){.ac-contact-layout--balanced,.ac-contact-layout--contact,.ac-contact-layout--form{grid-template-columns:1fr}.ac-contact-details{order:1}.ac-contact-form-card{order:2}.ac-contact-quick-actions{grid-template-columns:1fr}.ac-map-section{order:3}}@media(max-width:640px){.ac-contact-details{padding:24px 20px}.ac-contact-form-card{padding:18px}.ac-contact-form textarea{min-height:130px}.ac-map-placeholder iframe{min-height:420px}.ac-cookie-option--service{margin-left:0}}


/* Typography profiles: Montserrat is the brand standard; Avenir remains optional. */
body.animalcoach-font-montserrat { --ac-font: Montserrat, "Avenir Next", Avenir, "Helvetica Neue", Arial, sans-serif; }
body.animalcoach-font-avenir { --ac-font: "Avenir Next", Avenir, Montserrat, "Helvetica Neue", Arial, sans-serif; }

/* Provider-aware maps and more balanced contact page. */
.ac-map-placeholder,.ac-map-link-card,.ac-leaflet-map{min-height:var(--ac-map-height,520px)}
.ac-map-placeholder iframe,.ac-map-placeholder .ac-leaflet-map,.ac-map-placeholder .leaflet-container{width:100%;height:var(--ac-map-height,520px);border:0;border-radius:inherit}
.ac-map-placeholder[data-map-provider="osm"] .ac-map-placeholder__content{border-left-color:var(--ac-secondary)}
.ac-contact-layout--balanced{grid-template-columns:minmax(360px,.82fr) minmax(480px,1.18fr)}
.ac-contact-details{align-self:start;background:rgba(255,255,255,.44);border:1px solid var(--ac-border);border-radius:24px;padding:clamp(24px,3vw,42px)}
.ac-contact-form-card{padding:clamp(22px,2.4vw,34px)}
.ac-contact-form textarea{min-height:180px}
@media(max-width:760px){.ac-map-placeholder,.ac-map-link-card,.ac-leaflet-map{min-height:var(--ac-map-mobile-height,380px)}.ac-map-placeholder iframe,.ac-map-placeholder .ac-leaflet-map,.ac-map-placeholder .leaflet-container{height:var(--ac-map-mobile-height,380px)}}
