@font-face {
    font-family: 'montserrat';
    src: url('fonts/montserrat-black-webfont.woff2') format('woff2'),
         url('fonts/montserrat-black-webfont.woff') format('woff');
    font-weight: 900;
    font-style: normal;
}

@font-face {
    font-family: 'montserrat';
    src: url('fonts/montserrat-extrabold-webfont.woff2') format('woff2'),
         url('fonts/montserrat-extrabold-webfont.woff') format('woff');
    font-weight: 800;
    font-style: normal;
}

@font-face {
    font-family: 'montserrat';
    src: url('fonts/montserrat-bold-webfont.woff2') format('woff2'),
         url('fonts/montserrat-bold-webfont.woff') format('woff');
    font-weight: 700;
    font-style: normal;
}

@font-face {
    font-family: 'montserrat';
    src: url('fonts/montserrat-regular-webfont.woff2') format('woff2'),
         url('fonts/montserrat-regular-webfont.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'montserrat';
    src: url('fonts/montserrat-medium-webfont.woff2') format('woff2'),
         url('fonts/montserrat-medium-webfont.woff') format('woff');
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: 'montserrat';
    src: url('fonts/montserrat-light-webfont.woff2') format('woff2'),
         url('fonts/montserrat-light-webfont.woff') format('woff');
    font-weight: 300;
    font-style: normal;
}

@font-face {
    font-family: 'montserrat';
    src: url('fonts/montserrat-extralight-webfont.woff2') format('woff2'),
         url('fonts/montserrat-extralight-webfont.woff') format('woff');
    font-weight: 200;
    font-style: normal;
}

@font-face {
    font-family: 'montserrat';
    src: url('fonts/montserrat-thin-webfont.woff2') format('woff2'),
         url('fonts/montserrat-thin-webfont.woff') format('woff');
    font-weight: 100;
    font-style: normal;
}

body {
	font-family: 'montserrat', 'Helvetica Neue', 'Helvetica';
  background: #fff;
  color: #3c3c3c;
}

table th {
  font-weight: 500;
}

a.underline {
  text-decoration: underline;
}

#content {
    background: #fff;
}

.contentTrans #content {
  background: transparent;
}

.contentTrans.bgbody1 #content h1 {
  color: #fff;
  border-bottom: none;
  font-size: 2.2em;
  padding: 0;
  text-transform: none;
}

p, #component li {
  font-family: "montserrat", "Candara", "Segoe", "Sego UI", "Optima", "Arial", Sans-Serif;
}

.item-page > *[itemprop*="articleBody"] > *:last-child {
	padding-bottom: 0;
}

#component .tallIconTiles > div > h3 {
	font-weight: 700;
}

#component .tallIconTiles > div > p {
  font-size: 0.65em;
	font-weight: 500;
}

.tallIconTiles > div > div {
	padding: 5em 2em;
	margin-bottom: 1.4em;
}

#postcontent {
  color: #1672B0;
}

#postcontent a {
  text-decoration: underline;
}

#component > div h1,
#component > div h2,
#precontent h2,
#postcontent h2,
#bottom div h2 {
	color: #1672B0;
	font-size: 1.2em;
	font-weight: 400;
	text-transform: uppercase;
	padding-bottom: 0.5em;
	border-bottom: solid 0.125rem #1672B0;
	margin-bottom: 1em;
}

@media (max-width: 29.99rem) {#component > div h1,
  #component > div h2,
  #precontent h2,
  #bottom div h2,
  #postcontent h2 {
    font-size: 1em;
  }

#component h3 {
    font-size: 1em;
  }
}

#component h1:first-child,
#component h2:first-child,
#bottom h2:first-child,
#postcontent h2:first-child {
  padding-top: 2em;
}

p > b,
td > b {
  font-weight: 400;
}

.fontXXL {
  font-size: 1.5em;
  font-weight: normal;
}

img + h3 + p {
  padding: 0 1em;
}

.tallIconTiles img + h3 + p {
  padding: 0;
}

@media (min-width: 60rem) {h1,
  h2 {
    font-size: 2.2em;
	}

h3,
  .likeh3 {
    font-size: 1.5em;
	}

h2 + h3 {
    font-size: 1.25em;
  }

h1 > span {
    font-size: 0.568em;
  }

p, label, #slider li, blockquote, .item-page li {
    font-size: 0.8em;
  }
}

.likeSlider {
  position: relative;
  min-height: 20em;
  display: flex;
}

.likeSlider > div {
    margin: auto;
}

#bottom .likeSlider h2 {
  font-size: 2.2em;
  border-bottom: none;
  padding-top: 0;
  padding-bottom: 0;
}

.likeSlider h2 > span {
  font-size: 0.5em;
  font-weight: 300;
  text-transform: none;
}

.likeSlider h2 > span,
#slider h1 > span {
  padding-top: 2em;
  display: block;
  position: relative;
  line-height: 1.2em;
}

.likeSlider h2:first-child:last-child > span,
#slider h1:first-child:last-child > span {
  padding-top: 1.75em;
}

.likeSlider h2 > span:before,
#slider h1 > span:before {
    content: "";
    display: block;
    width: 20%;
    height: 0.1875rem;
    background: #fff;
    position: absolute;
    top: 0.8em;
    top: calc(0.8em - 0.0625rem);
    left: 0;
}

.likeSlider.allCentered h2 > span::before {
  left: 50%;
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  transform: translateX(-50%);
}

@media (min-width: 60rem) {.likeSlider > .padTB25,
  #slider > .padTB25 {
    padding-top: 5em;
    padding-bottom: 5em;
  }
}

.likeSlider.allCentered {
  text-align: center;
}

#bottom .likeSlider a.button:last-child {
  margin-bottom: 0;
}

p.big > a:hover {
  cursor: pointer;
  color: #fff;
}

#header1 {
    border-bottom: solid 0.125rem #BABABA;
}

#header1 > *,
#header1 p {
  font-weight: 300;
  color: #b8b8b8;
}

#header1 {
  background: #fff;
}

@media (max-width: 59.99rem) {}

@media (min-width: 60rem) {#header1 > *,
  .wrapperWidth,
  .nkFlexBox.wrapperWidth,
  #component {

  }

.logo p {
  	font-size: 1em;
  }

.custom.logo {
		display: flex;
		flex-direction: row;
		align-items: center;
	}

.logo p > a {
		font-size: 1.2em;
    line-height: 1.66em;
	}

.logo a > span {
		font-weight: 400;
	}
}

@media (min-width: 75rem) {}

@media (min-width: 90rem) {#header1 > *,
  .wrapperWidth,
  .nkFlexBox.wrapperWidth,
  #component {
    max-width: 80%;
  }
}

@media (min-width: 105rem) {.logo p > a {
		font-size: 1.5em;
    line-height: 1.33em;
	}
}

.threeIconLinkBoxes {
  padding-top: 2em;
  padding-bottom: 1em;
}

.threeIconLinkBoxes span {
	color: #1672b0
}

.threeIconLinkBoxes a {
  padding: 2em 2em 3.5em 2em;
}

#gmaps p a,
.dsgvoShowcase p a,
.nkForm button[type="submit"],
.nkForm input[type="submit"],
button[type="submit"],
#slider a.button {
    background: #1672b0;
}

#gmaps p a:hover,
.dsgvoShowcase p a:hover,
.nkForm button[type="submit"]:hover,
.nkForm input[type="submit"]:hover,
button[type="submit"]:hover,
#slider a.button:hover {
    background: #bba686;
}

h2.introtitle {
  text-align: center;
  padding-bottom: 0.75em;
}

.nkForm textarea {
    margin-bottom: 0em;
}

.submitPositive {
  text-align: left;
  font-size: 1.5em;
  line-height: 1.2em;
  font-weight: 600;
}

#nkmsq-c90-qs1-q1-opt1:before {
  content: "";
  display: block;
  margin: 0 auto 1em auto;
  width: 10em;
  height: 10em;
  background: url('/images/online2.png') no-repeat center center;
  background-size: contain;
}

#nkmsq-c90-qs1-q1-opt2:before {
  content: "";
  display: block;
  margin: 0 auto 1em auto;
  width: 10em;
  height: 10em;
  background: url('/images/online1.png') no-repeat center center;
  background-size: contain;
}

#nkmsq-c102 > div {
  align-items: flex-start;
}

[id^="nkmsq-c"][id*="-opt"].isSelected {
	border-color: #00b6c4;
}

#nkbActualCalendarMonthBox caption {
    border-bottom: solid 0.25em #00b6c4;
}

div.nkbCalenderBox table td.hasBookables {
    background: #00b6c4;
}

.nkBookingContainer a.button {
    background: #00b6c4;
}

#nkbsignup textarea {
    margin-bottom: 1em;
}

.serviceInfoContainer h2,
.nkbServiceShortInfo h2 {
  padding-bottom: 0;
  text-align: left;
}

div.nkbCalenderBox table td.hasBookables a:hover {
    cursor: pointer;
}

.nkForm .jsDdOpened [id^="jsAltDd-"][id$="-Current"]::before {
    background: #00b6c4 !important;
}

.nkForm .jsDdOption:hover {
    background: #00b6c4;
}

#precontent .dsgvoShowcase h2 {
  color: #fff;
  border-bottom: solid 0.125rem #fff;
}

.toggleBox > div:last-child {
	margin-bottom: 1.75em;
}

h2 + .toggleBox > div:last-child {
	border-bottom: solid 0.125rem #1672B0;
  padding-bottom: 1.5em;
	margin-bottom: 0em;
}

.toggleBox > div.jsActive > div {
  max-height: 500em;
}

#component .mod-articleslatest {
  padding-bottom: 0;
}

.eventItemContainer4 .events > * {
  flex: 0 0 100%;
}

.eventItemContainer6 {
	border: solid 0.125rem #1672B0;;
}

.eventItemContainer6 .eventItem {
	border-bottom: solid 0.125rem #1672B0;;
}

#component .eventItemContainer6 .eventItem h3 {
	padding-bottom: 0;
	margin-bottom: 0;
}

.controlBar {
  background-color: rgba(22,114,176,.8)
}

.bigOnHover img {
  position: relative;
  transform: scale(1);
  transition: all ease 0.5s;
  z-index: 500;
  left: 0;
  right: 0;
}

.bigOnHover img:hover {
  transform: scale(1.5);
  z-index: 999;
}

.bigOnHover > *:first-child img:hover {
  left: 25%;
}

.bigOnHover > *:last-child img:hover {
  left: -25%;
}

footer a {
  color: #BABABA;
}

#bottomRightWhenScrolled svg {
  fill: #fff;
}

#bottomRightWhenScrolled > * {
  font-size: 1em;
  line-height: 1.1em;
  background: #1672b0;
  color: #fff;
  padding: 0.5em 1.5em;
  min-width: 16em;
  border: solid 0.25em transparent;
    border-right-width: 0.25em;
    border-right-style: solid;
    border-right-color: transparent;
  border-right: none;
  -webkit-transition: all ease 1s;
  -o-transition: all ease 1s;
  transition: all ease 1s;
}

#bottomRightWhenScrolled > *:hover {
  background: #3ea9e0;
}

@media (max-width: 60rem) {#bottomRightWhenScrolled > * {
    font-size: 0.9em;
    padding: 0.25em 0.5em;
    min-width: 15em;
    width: auto;
  }
}

.startlogos > p {
  flex: 0 1 auto;
  text-align: center;
}

.startlogos > p > img {
  max-height: 6.25rem;
  display: block;
}

@media (min-width: 40rem) {.startlogos > p > img {
    max-height: 9.375rem;
  }
}

.nkFlexBox.logos img {
  height: 5.5em;
}

/* KGS: Anpassung der vorhandenen Gestaltung an Template 6.3. */
#logo { flex: 0 1 17rem; padding: 1rem 1.5rem 1rem 0; }
#logo img { display: block; width: 100%; max-width: 17rem; height: auto; }
#logo p { margin: 0; padding: 0; }
#mainmenu { font-family: montserrat, Arial, sans-serif; }
@media (min-width: 60rem) {
  #mainmenu { font-size: .72em; font-weight: 500; letter-spacing: 0; }
  #mainmenu > ul > li > a { color: #1672b0; text-transform: uppercase; }
}
#slider .nkms-slide { color: #fff; }
#slider h1 { text-align: center; font-weight: 400; }
#slider, #slider > section { padding: 0; }
#slider h1 > span { font-size: .568em; }
#header1 p, #header1 a { color: #666; }
#mainmenu.jsActivated > a { background-color: #1672b0; }
#slider h1 > span::before { left: 50%; transform: translateX(-50%); }
.nkms-slide img { object-fit: contain; }
.threeIconLinkBoxes svg { width: 5em; height: 5em; display: block; margin: 0 auto 2em; fill: #1672b0; }
.threeIconLinkBoxes .likeh3 { display: block; font-size: 1.3em; font-weight: 600; }
.threeIconLinkBoxes span:not(.likeh3) { font-size: .85em; }
.nkContactFormContainer { --nk-contact-accent: #1672b0; }

/* Vorhandene redaktionelle Toggle-Boxen verwenden weiterhin ihre JS-Zustände. */
.toggleBox > div { padding: 1.25em 0; border-bottom: 0.0625rem solid #b8c9d4; }
.toggleBox > div > a { display: block; position: relative; padding-left: 1.6em; color: #1672b0; cursor: pointer; line-height: 1.5; }
.toggleBox > div > a::before { content: '+'; position: absolute; left: 0; font-size: 1.25em; }
.toggleBox > div.jsActive > a::before { content: '−'; }
.toggleBox.jsInitiated > div.jsInactive > div { display: none; }
.toggleBox.jsInitiated > div.jsActive > div { display: block; padding-top: 1em; }
@media (min-width: 60rem) {
  .notFrom60r { display: none !important; }
  #mainmenu > ul > li:has(> .notFrom60r) { display: none; }
  #mainmenu a.button, #mainmenu a.button::before { background-color: #1672b0; color: #fff; }
}


/* KGS-only compatibility layer for existing editorial content and template 6.
   Activated by the saved template body class; shared template files are untouched. */
body.kgs-site { --kgs-blue: #1672b0; --kgs-sand: #bba686; --kgs-lightblue: #3ea9e0; color: var(--kgs-blue); }
body.kgs-site a { color: inherit; }
body.kgs-site #main { background: #fff; }
body.kgs-site #component { width: 100%; max-width: none; margin: 0; padding: 0 0 2em; display: block; }
body.kgs-site #component > * { min-width: 0; }
body.kgs-site #precomponent, body.kgs-site #postcomponent { margin: 0; width: auto; }
body.kgs-site #component h3 { font-size: .9em; line-height: normal; font-weight: 400; color: var(--kgs-blue); padding-bottom: .5em; }
body.kgs-site #component h3 > span { font-size: .8em; font-weight: 300; }
body.kgs-site #postcomponent h3 { padding-bottom: 1.1em; }
body.kgs-site #component p { line-height: 2; }
body.kgs-site #postcomponent h2 { font-size: 1.2em; }
body.kgs-site #postcomponent li { font-size: 1em; }
body.kgs-site #postcomponent .nkModule { padding: 0; margin-bottom: 2em; }
body.kgs-site #postcomponent .nkModule > .mod-custom { width: 100%; max-width: none; }
body.kgs-site #precomponent .nkModule { padding: 0; }
@media (min-width: 60rem) {
  body.kgs-site #component:has(> #postcomponent) { display: grid; grid-template-columns: minmax(0, 1fr) 30%; column-gap: 2em; align-items: start; }
  body.kgs-site #component > div:not(#postcomponent) { grid-column: 1; }
  body.kgs-site #component > #postcomponent { grid-column: 2; grid-row: 1 / span 3; }
  body.kgs-site #mainmenu { font-size: .64em; font-weight: 400; }
  body.kgs-site #mainmenu > ul > li > a { color: var(--kgs-blue); }
  body.kgs-site #mainmenu > ul > li:is(:hover,:focus-within,.active,.current) > a:not(.button) { color: var(--kgs-sand); }
  body.kgs-site #mainmenu li.deeper.parent > span.toggleButton > svg, body.kgs-site #mainmenu li.deeper.parent > span.toggleButton > svg path { fill: var(--kgs-blue); }
  body.kgs-site #mainmenu li.deeper.parent:is(:hover,:focus-within,.active,.current) > span.toggleButton > svg, body.kgs-site #mainmenu li.deeper.parent:is(:hover,:focus-within,.active,.current) > span.toggleButton > svg path { fill: var(--kgs-sand); }
  body.kgs-site #mainmenu ul ul { background: transparent; }
  body.kgs-site #mainmenu ul ul li > a { color: #fff; background-color: #d7a87d; }
  body.kgs-site #mainmenu ul ul li:is(:hover,:focus-within,.active,.current) > a { color: #fff; background-color: var(--kgs-lightblue); }
  body.kgs-site #mainmenu a.button, body.kgs-site #mainmenu a.button::before { background: var(--kgs-blue); color: #fff; }
  body.kgs-site #mainmenu a.button:is(:hover,:focus-visible), body.kgs-site #mainmenu a.button:is(:hover,:focus-visible)::before { background: var(--kgs-sand); color: #fff; }
}
@media (min-width: 90rem) {
  body.kgs-site #componentContainer, body.kgs-site #logoAndMenu { width: 80%; max-width: none; }
}
body.kgs-site.fullWidthComponent #componentContainer { width: 100%; max-width: none; }
body.kgs-site.narrowComponent #component { max-width: 50rem; margin: 0 auto; top: 0; padding-top: 2em; }
body.kgs-site.narrowComponent #component .page-header { background: var(--kgs-blue); color: #fff; text-align: center; margin-top: 0; }
body.kgs-site.narrowComponent #component .page-header h1 { color: #fff; border: 0; }

/* Existing header modules use an inner custom wrapper in Joomla 6. */
body.kgs-site #slider { color: #fff; text-align: center; }
body.kgs-site #slider h1 { color: #fff; text-align: center; font-weight: 400; width: 100%; }
body.kgs-site #slider h1 > span { color: #fff; font-weight: 300; }
body.kgs-site #slider > .moduletable { width: 100%; max-width: none; margin-right: 0; margin-left: 0; }
body.kgs-site #slider > .moduletable.allCentered { padding-top: 5em !important; padding-bottom: 5em !important; }
body.kgs-site #slider > .moduletable > .mod-custom { width: 80%; margin: 0 auto; }
body.kgs-site #slider h1 > span::before { width: 20%; height: .1875rem; left: 50%; transform: translateX(-50%); }
body.kgs-site #slider .nkms-slide.kgs-home-hero { padding: 6em 0 !important; }
body.kgs-site #slider .nkms-slide.bg1 h1 > span::before { width: 4em; }
body.kgs-site #bottom .likeSlider h2, body.kgs-site #bottom .likeSlider h2 > span { color: #fff; }
body.kgs-site #bottom a.button, body.kgs-site #bottom a.button::before { color: #fff; background-color: var(--kgs-blue); }
body.kgs-site #bottom a.button:is(:hover,:focus-visible), body.kgs-site #bottom a.button:is(:hover,:focus-visible)::before { color: #fff; background-color: var(--kgs-sand); }

/* Search keeps a real accessible label, visually replaced by the magnifier. */
body.kgs-site #header1 .mod-finder { position: relative; width: 13em; max-width: 100%; border: .125rem solid #bababa; background: #fff; margin-left: 1em; }
body.kgs-site #header1 .mod-finder > label { position: absolute; width: .0625rem; height: .0625rem; padding: 0; margin: -.0625rem; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
body.kgs-site #header1 .mod-finder::before { content: ''; position: absolute; top: 50%; left: .45em; width: .85em; height: .85em; transform: translateY(-50%); pointer-events: none; z-index: 1; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='10' cy='10' r='7' fill='none' stroke='%231672b0' stroke-width='3'/%3E%3Cpath d='m15 15 7 7' stroke='%231672b0' stroke-width='3'/%3E%3C/svg%3E") center/contain no-repeat; }
body.kgs-site #header1 .mod-finder .awesomplete { display: block; width: 100%; }
body.kgs-site #header1 .mod-finder input[type='text'] { display: block; box-sizing: border-box; width: 100%; border: 0; border-radius: 0; padding: .2em .4em .2em 2em; font: inherit; font-size: .8em; line-height: 1.3; color: var(--kgs-blue); background: transparent; }
body.kgs-site #header1 .mod-finder:focus-within { outline: .125rem solid var(--kgs-blue); outline-offset: .125rem; }
body.kgs-site #header1 .contactDetails svg { fill: var(--kgs-blue); }

body.kgs-site .threeIconLinkBoxes a { padding: 2em; }
body.kgs-site .threeIconLinkBoxes svg, body.kgs-site .threeIconLinkBoxes svg path { fill: #ead5b6; }
body.kgs-site .threeIconLinkBoxes .likeh3 { font-weight: 700; margin-bottom: .125em; }
body.kgs-site .threeIconLinkBoxes span:not(.likeh3) { font-size: .7em; }
body.kgs-site .threeIconLinkBoxes a:is(:hover,:focus-visible) svg, body.kgs-site .threeIconLinkBoxes a:is(:hover,:focus-visible) svg path { fill: var(--kgs-lightblue); }
body.kgs-site .threeIconLinkBoxes a:is(:hover,:focus-visible) span { color: var(--kgs-lightblue); }

/* Link tiles and contact/staff tiles retained in the original articles. */
body.kgs-site .threeColumnTiles { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .5em; margin: 1em 0 2em; }
body.kgs-site .threeColumnTiles > a { position: relative; isolation: isolate; display: flex; align-items: center; justify-content: center; box-sizing: border-box; min-width: 0; min-height: 8em; padding: 1.5em .75em; color: #fff; font-size: 1em; text-align: center; text-transform: uppercase; hyphens: auto; overflow-wrap: anywhere; }
body.kgs-site .threeColumnTiles > a::before { content: ''; position: absolute; inset: 0; z-index: -1; background: transparent; transition: background .3s; }
body.kgs-site .threeColumnTiles > a:is(:hover,:focus-visible)::before { background: rgba(187,166,134,.8); }
body.kgs-site .tallIconTiles { gap: 1em; }
body.kgs-site .tallIconTiles > div { flex: 0 1 12em; min-width: 0; align-self: flex-start; margin: 0 0 1em; overflow-wrap: anywhere; }
body.kgs-site .tallIconTiles > div > img { display: block; width: 100%; height: auto; }
body.kgs-site .tallIconTiles > div > div { background: var(--kgs-blue); padding: 5em 2em; margin-bottom: 1.4em; }
body.kgs-site .tallIconTiles > div > div > img { display: block; max-width: 100%; height: auto; margin: auto; }
body.kgs-site #component .tallIconTiles > div > h3 { font-weight: 700; margin-bottom: 1em; }
body.kgs-site #component .tallIconTiles > div > p { padding-right: 0; padding-left: 0; font-size: .65em; font-weight: 500; }
@media (min-width: 60rem) {
  body.kgs-site .threeColumnTiles { grid-template-columns: repeat(3,minmax(0,1fr)); }
  body.kgs-site .threeColumnTiles:has(> a:last-child:nth-child(2)) { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body.kgs-site .threeColumnTiles > a { font-size: 1.5em; min-height: 10em; }
}

/* Blog previews: full-width headings, then the saved left/right image and text. */
body.kgs-site .com-content-category-blog__items.blog-items { display: block; width: 100%; margin: 0; }
body.kgs-site .com-content-category-blog__items .blog-item { display: block; width: 100%; padding: 0 0 2em; overflow: visible; }
body.kgs-site .com-content-category-blog__items .item-content { display: block; }
body.kgs-site #component .com-content-category-blog__items .page-header h2 { font-size: 1.2em; font-weight: 400; line-height: 1.1; padding: 2em 0 .5em; margin: 0 0 1em; }
body.kgs-site .com-content-category-blog__items .item-content > p:not(.readmore) { display: block; line-height: 2; margin: 0; padding-bottom: 1.5em; }
body.kgs-site #component .com-content-category-blog__items .blog-item > .item-image { width: 100%; height: auto; min-height: 0; min-width: 0; max-width: 100%; margin: 1em 0; border-radius: 0; }
body.kgs-site #component .com-content-category-blog__items .blog-item > .item-image img { width: 100%; height: auto; object-fit: contain; }
body.kgs-site #componentContainer .com-content-category-blog__items .item-content > p.readmore a, body.kgs-site #componentContainer .readmore a { display: inline; color: var(--kgs-blue); background: transparent; border: 0; padding: 0; text-decoration: underline; }
body.kgs-site #componentContainer .com-content-category-blog__items .item-content > p.readmore a:is(:hover,:focus-visible), body.kgs-site #componentContainer .readmore a:is(:hover,:focus-visible) { color: var(--kgs-lightblue); background: transparent; }
body.kgs-site #componentContainer .category-name a { color: #fff; background: var(--kgs-blue); }
@media (min-width: 40rem) {
  body.kgs-site .com-content-category-blog__items .blog-item:has(> .item-image) { display: grid; grid-template-columns: 45% minmax(0,1fr); column-gap: 1.5em; align-items: start; }
  body.kgs-site .com-content-category-blog__items .blog-item:has(> .item-image) > .item-content { display: contents; }
  body.kgs-site .com-content-category-blog__items .blog-item:has(> .item-image) > .item-content > * { grid-column: 2; order: initial; }
  body.kgs-site .com-content-category-blog__items .blog-item:has(> .item-image) > .item-content > .page-header { grid-column: 1 / -1; grid-row: 1; }
  body.kgs-site #component .com-content-category-blog__items .blog-item > .item-image { grid-column: 1; grid-row: 2 / span 12; margin: 0; }
  body.kgs-site .com-content-category-blog__items .blog-item:has(> .item-image.right) { grid-template-columns: minmax(0,1fr) 45%; }
  body.kgs-site .com-content-category-blog__items .blog-item:has(> .item-image.right) > .item-content > :not(.page-header) { grid-column: 1; }
  body.kgs-site #component .com-content-category-blog__items .blog-item > .item-image.right { grid-column: 2; }
}

/* Template JS already supplies these scroll states; only its missing styles return. */
body.kgs-site #bottomRightWhenScrolled { position: fixed; right: 0; bottom: 2vh; z-index: 1001; display: block; font-size: 1rem; border-radius: .5em 0 0 .5em; overflow: hidden; max-width: calc(100% - 1rem); transform: translateX(100%); visibility: hidden; pointer-events: none; }
body.kgs-site #bottomRightWhenScrolled.jsActive { transform: translateX(0); visibility: visible; pointer-events: auto; }
body.kgs-site #bottomRightWhenScrolled:is(.jsActive,.jsInactive) { transition: transform .5s, visibility .5s; }
body.kgs-site #bottomRightWhenScrolled > * { color: #fff; background: var(--kgs-blue); }
body.kgs-site #bottomRightWhenScrolled a { color: #fff; }
body.kgs-site #bottomRightWhenScrolled > .moduletable { min-width: 0; width: 17em; max-width: 100%; padding: 0; border: 0; }
body.kgs-site #bottomRightWhenScrolled .mod-custom > a { padding: 1.15em 1em !important; }
body.kgs-site #bottomRightWhenScrolled .nkFlexBox { gap: .8em; }
body.kgs-site #bottomRightWhenScrolled .nkFlexBox > span { margin: 0; padding: 0; }
body.kgs-site #bottomRightWhenScrolled .nkFlexBox > span:first-child { flex: 0 0 1.8em; }
body.kgs-site #bottomRightWhenScrolled .nkFlexBox > span:last-child { flex: 1 1 auto; }
@media (max-width: 59.99rem) {
  body.kgs-site #slider > .moduletable.allCentered { padding: 3em 0 !important; }
  body.kgs-site #slider > .moduletable > .mod-custom { width: 96%; }
  body.kgs-site #header1 .mod-finder { width: 11em; }
  body.kgs-site #postcomponent { margin-top: 2em; }
  body.kgs-site .tallIconTiles > div { flex-basis: calc(50% - .5em); }
  body.kgs-site .tallIconTiles > div > div { padding: 2em; }
}
@media (max-width: 29.99rem) {
  body.kgs-site .threeColumnTiles { grid-template-columns: minmax(0,1fr); }
  body.kgs-site .threeIconLinkBoxes span:not(.likeh3) { font-size: .9em; }
  body.kgs-site #component h1, body.kgs-site #component h2, body.kgs-site #postcomponent h2 { font-size: 1em; }
}

/* Further KGS refinements: icon lists, portrait spacing and readable forms. */
body.kgs-site .threeIconLinkBoxes svg,
body.kgs-site .threeIconLinkBoxes svg path { transition: fill .5s ease-in-out; }
body.kgs-site .threeIconLinkBoxes span { transition: color .5s ease-in-out; }
body.kgs-site #slider #mod-custom96 ul { display: table; margin: 2em auto 0; padding: 0; text-align: left; list-style: none; }
body.kgs-site #slider #mod-custom96 li { position: relative; padding: 0 0 .75em 2.2em; font-weight: 300; line-height: 1.5; }
body.kgs-site #slider #mod-custom96 li > img { position: absolute; left: 0; top: .15em; display: block; width: 1.2em; height: 1.2em; object-fit: contain; }
body.kgs-site #component .tallIconTiles > div > img + h3 { margin-top: .8em; }
body.kgs-site #main .nkjsimplecontactBox,
body.kgs-site #main .nkjsimplecontactBox .nkForm,
body.kgs-site #main .nkjsimplecontactBox .nkForm label,
body.kgs-site #main .nkjsimplecontactBox .nkjscRequiredNote { color: var(--kgs-blue); }
body.kgs-site #main .nkjsimplecontactBox .nkForm :is(input:not([type='submit']),textarea,select) { color: #203746; }
body.kgs-site .dsgvoShowcase button.kgs-map-activate { display: inline-flex; justify-content: center; align-items: center; margin-top: .5em; padding: .7em 1.3em; border: .125rem solid var(--kgs-blue); border-radius: 0; font: inherit; font-weight: 500; line-height: 1.3; text-decoration: none; background: var(--kgs-blue); color: #fff; cursor: pointer; transition: background-color .3s, border-color .3s; }
body.kgs-site .dsgvoShowcase button.kgs-map-activate:is(:hover,:focus-visible) { background: #125b8d; border-color: #125b8d; }
body.kgs-site .dsgvoShowcase button.kgs-map-activate:focus-visible { outline: .125rem solid #fff; outline-offset: .15em; }
body.kgs-site #main .dsgvoShowcase h2 { color: #fff; border-bottom-color: #fff; }
body.kgs-site .dsgvoShowcase:has(.kgs-map-activate) { display: grid; margin-top: 1em; }
body.kgs-site .dsgvoShowcase:has(.kgs-map-activate) > iframe { grid-area: 1 / 1; height: 100%; min-height: 20em; }
body.kgs-site .dsgvoShowcase:has(.kgs-map-activate) > div { grid-area: 1 / 1; position: relative; top: auto; left: auto; transform: none; box-sizing: border-box; width: 100%; max-width: none; margin: 0; padding: 1em; z-index: 1; }
@media (max-width: 59.99rem) {
  body.kgs-site #slider .nkms-slide.kgs-home-hero { padding: 4em 0 !important; }
  body.kgs-site #main .pad6:has(.nkjsimplecontactBox) { padding-right: 0 !important; padding-left: 0 !important; }
}
@media (prefers-reduced-motion: reduce) {
  body.kgs-site .threeIconLinkBoxes svg, body.kgs-site .threeIconLinkBoxes svg path, body.kgs-site .threeIconLinkBoxes span { transition: none; }
}
