/*
Projekt       : Ferienhaus Karte
Komponente    : Wordpress
Datei         : style.css
Beschreibung  : Spezielle Anpassungen des Themes "twentytwentyfive" für die Website "ferienhaus-karte.de"
Author:         Datenwege Informatik
Author URI:     http://Datenwege-Informatik.de
Template:       twentytwentyfive
Version:        1.0
Historie
   12.03.25  Gernot Daum  Beginn der Implementierung
*/

/* Fonts */
@font-face {
  font-family: 'Baloo2 Regular';
  font-style: normal;
  src: url('assets/fonts/Baloo2-Regular.woff2') format('woff2'), /* Super Modern Browsers */
       url('assets/fonts/Baloo2-Regular.woff') format('woff'),   /* Modern Browsers */
       url('assets/fonts/Baloo2-Regular.ttf') format('truetype'), /* Safari, Android, iOS */
       url('assets/fonts/Baloo2-Regular.eot') format('embedded-opentype'); /* IE6-IE8 */
}
@font-face {
  font-family: 'Baloo2 Medium';
  font-style: normal;
  src: url('assets/fonts/Baloo2-Medium.woff2') format('woff2'), /* Super Modern Browsers */
       url('assets/fonts/Baloo2-Medium.woff') format('woff'),   /* Modern Browsers */
       url('assets/fonts/Baloo2-Medium.ttf') format('truetype'), /* Safari, Android, iOS */
       url('assets/fonts/Baloo2-Medium.eot') format('embedded-opentype'); /* IE6-IE8 */
}
@font-face {
  font-family: "FontAwesome Solid";
  font-style: normal;
  src: url('assets/fonts/fa-solid-900.woff2') format('woff2'),
       url('assets/fonts/fa-solid-900.woff') format('woff'),
       url('assets/fonts/fa-solid-900.ttf') format('truetype'),
       url('assets/fonts/fa-solid-900.eot') format('embedded-opentype');
}


/* Eigene Konstanten body */
body {
	/*   Farben */
	--wp--custom--color--background: #c0c7ce;
	--wp--custom--color--transparency01: rgba(45, 70, 93, 0.4);

	/*   Schriften */
	--fhk--font-family--body: 'Baloo2 Regular', -apple-system, BlinkMacSystemFont, sans-serif;
	--fhk--font-family--heading: 'Baloo2 Medium', -apple-system, BlinkMacSystemFont, sans-serif;
	--fhk--font-family--strong: 'Baloo2 Medium', -apple-system, BlinkMacSystemFont, sans-serif;
	font-family: var(--fhk--font-family--body);
  --wp--preset--font-size--x-small: clamp(9pt, 0.7vw, 24pt);
	--wp--preset--font-size--small: clamp(10pt, 0.9vw, 28pt);
  --wp--preset--font-size--medium: clamp(11.5pt, 1.1vw, 32pt);
  --wp--preset--font-size--large: clamp(13pt, 1.3vw, 36pt);
  --wp--preset--font-size--x-large: clamp(16pt, 2vw, 48pt);
  --wp--preset--font-size--big: clamp(24pt, 3vw, 72pt);
  --wp--preset--font-size--huge: clamp(32pt, 4vw, 96pt);

   /*   Breiten und Abstände */
  --global--spacing-unit: 15px;
  --global--spacing-horizontal: var(--global--spacing-unit);
  --global--spacing-vertical: calc(2 * var(--global--spacing-unit));
  --global--spacing-section: calc(3 * var(--global--spacing-vertical));
  --default-outer-margin-mult: 4;
	--default-outer-margin: calc(var(--default-outer-margin-mult) * var(--global--spacing-horizontal));
	--default-outer-spacing: calc(2 * var(--default-outer-margin));
  --global-seam: 6px;

  --street-width: 1440px;
  --responsive--street-width: min(calc(100vw - var(--default-outer-spacing)), var(--street-width));
  --responsive--content-width: var(--responsive--street-width);
  --constriction-width: 1120px;
  --responsive--constriction-width: min(calc(100vw - var(--default-outer-spacing)), var(--constriction-width));
  --narrow-width: 960px;
  --responsive--narrow-width: min(calc(100vw - var(--default-outer-spacing)), var(--narrow-width));
  --single-track-width: 800px;
  --responsive--single-track-width: min(calc(100vw - var(--default-outer-spacing)), var(--single-track-width));
  --margin-street: max(var(--default-outer-margin), calc((100vw - var(--street-width)) / 2));
  --margin-constriction: max(var(--default-outer-margin), calc((100vw - var(--constriction-width)) / 2));

  --wp--custom--spacing--small: max(12pt, 1vw);
  --wp--custom--slick-dot-size: 24px;
  --wp--custom--navigation-icon-size: 36px;
}

/* Theme Reset */
:root :where(.is-layout-constrained) > * {
  margin-block-start: var(--global--spacing-unit);
}
#masthead .alignwide  {max-width: var(--responsive--content-width)}
::selection {color: white; background: var(--wp--preset--color--accent-1)}

/* Allgemein */
body {
	font-size: var(--wp--preset--font-size--medium)
}
h1, h2, h3, h4, h5, h5 {
	font-family: var(--fhk--font-family--heading), -apple-system, BlinkMacSystemFont, sans-serif;
}
#content h2 {
	margin-top: var(--global--spacing-vertical);
	margin-bottom: calc(var(--global--spacing-vertical) / 2)
}
#content h3 {
	margin-top: calc(2 * var(--global--spacing-vertical) / 3);
	margin-bottom: calc(var(--global--spacing-vertical) / 2)
}
a {color: var(--wp--preset--color--accent-1); text-decoration: none}
a:hover {text-decoration: underline}
strong {
	font-family: var(--fhk--font-family--strong), -apple-system, BlinkMacSystemFont, sans-serif;
	font-weight: normal
}
.listcaption {margin-bottom: 4px}
.listcaption + * {margin-top: 4px; margin-block-start: 4px}
#content ul li {margin-top: 0}

/* Kopf */
#masthead .wp-block-site-logo {width: 10%; max-width: 90px}
#masthead .wp-block-site-title {font-size: var(--wp--preset--font-size--x-large)}
#masthead .wp-block-post-title, #masthead h2 {font-size: var(--wp--preset--font-size--large)}
#masthead .site-identity {
	padding: var(--global--spacing-unit) var(--wp--style--root--padding-left) 
	         var(--global--spacing-unit) var(--wp--style--root--padding-right);
}
#masthead .header-content {background: var(--wp--preset--color--accent-2)}

/* Fuß */
#footer {background: var(--wp--preset--color--accent-2)}
#footer .wp-block-site-title {font-size: var(--wp--preset--font-size--large)}

/* Navigation */
#masthead .navigation {
  margin-block-start: var(--global--spacing-unit);
  margin-block-end: var(--global--spacing-unit);
}
.wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded="true"]
~ .wp-block-navigation__submenu-container {
	min-width: 240px
}

/* Inhalte */

/*   Diverses */
.text-navigation .wp-block-buttons, .grounding .wp-block-buttons {flex-direction: column}
#content .text-navigation .wp-block-button, .grounding .wp-block-button {width: 100%}
#content .text-navigation .wp-element-button, #content .grounding .wp-element-button {
	display: block;
	width: 90%;
	margin-left: auto;
	margin-right: auto;
	max-width: 360px; 
	height: 54px
}
.grounding h2, .grounding h3 {text-align: center}

/*   Abschnitte */
.narrow, .single-track {margin: 0 auto}
.narrow.left, .single-track.left {margin-left: 0 !important}
.narrow {max-width: var(--responsive--narrow-width)}
.single-track {max-width: var(--responsive--single-track-width)}
#content section {
	margin-top: calc(3 * var(--global--spacing-vertical));
	margin-bottom: calc(3 * var(--global--spacing-vertical))
}
#content article {
	margin-top: calc(1.5 * var(--global--spacing-vertical));
	margin-bottom: calc(1.5 * var(--global--spacing-vertical))
}
#content section:first-child, #content article:first-child {margin-top: 0}
#content section:last-child, #content article:last-child {margin-bottom: 0}
.nav-column {min-width: 360px}

/*     Navigationskarten */
.card-list {
  display: flex;
  flex-wrap: wrap;
  padding: 0
}
#content .card {
  margin: var(--global-seam);
  padding: var(--global-seam);
  width: calc(33.33% - 2 * var(--global-seam));
  background: var(--wp--preset--color--accent-2);
  border: 1px solid var(--wp--preset--color--accent-1)
}
#content .card h3 {margin: 0; align-self: center}


/*   Überlagerungen */
.overlay-anchor {
	position: relative;
	padding: 0
}
#content .overlay-anchor figure {margin-bottom: 0}
.overlay, #content .overlay, #content .overlay-item {
	position: absolute;
	width: 100%;
	max-width: none;
	top: 0;
	left: 0;
	margin: 0
}
.overlay:not(.alignfull) > * {
	 width: var(--responsive--content-width);
	 margin-left: auto;
	 margin-right: auto
}
.overlay.alignleft > * {margin-left: 0 !important}
.overlay.alignright > * {margin-right: 0 !important}

/*   Buttons */
.wp-block-button.highlighted .wp-element-button, .retrieve-by-query .retrieve-by-query .wp-element-button
{background-color: var(--wp--preset--color--accent-3)}
.targeted-highlighting .wp-block-button.highlighted .wp-element-button
{background-color: var(--wp--preset--color--accent-1)}
#content .wp-element-button {
	width: 250px;
	padding: var(--global--spacing-unit)
}
#content .wp-element-button:hover {
  background-color: color-mix(in srgb, var(--wp--preset--color--accent-1) 80%, transparent);
  text-decoration: none
}
#content .wp-block-button.highlighted .wp-element-button:hover,
#content .retrieve-by-query .retrieve-by-query .wp-element-button:hover
{background-color: color-mix(in srgb, var(--wp--preset--color--accent-3) 80%, transparent)}

/*   Tabellen */
.compact table td {font-size: var(--wp--preset--font-size--x-small)}

/*   Pseudo Tabellen */
.valuepairs {display: flow-root}
.valuepairs div {float: left; padding: 2px 12px 2px 0}
.valuepairs .name {clear: left; width: calc(30% - 12px); max-width: 120px}
.valuepairs .value {width: calc(70% - 12px)}
.valuepairs .line {width: calc(100% - 12px)}
.valuepairs.contact .name {max-width: 90px}

/*   Formulare allgemein */
#content input[type='checkbox']:before {color: var(--wp--preset--color--accent-1)}
#content input[type='button'], #content .button, #content input[type="radio"]:before {
	color: white;
	background: var(--wp--preset--color--accent-1)
}
#content input[type='button']:hover, #content .button:hover {
  background-color: color-mix(in srgb, var(--wp--preset--color--accent-1) 80%, transparent);
}

/*   Getwid */
.wp-block-getwid-toggle .wp-block-getwid-toggle__header {box-sizing: border-box}
.wp-block-getwid-toggle ul {padding-left: var(--global--spacing-unit) }

/*   Gravity Form Formulare */
#content textarea:focus, #content input:focus, #content select:focus, #content .button:focus {
	--gf-local-border-color: var(--wp--preset--color--accent-1);
  --gf-local-outline-color: var(--wp--preset--color--accent-1)
}
#content .gf_progressbar .percentbar_blue,
#content .gfield_fileupload_progressbar_progress {
	color: white;
	background: var(--wp--preset--color--accent-1);
	--gf-local-bg-color: var(--wp--preset--color--accent-1);
}
#content .gfield_fileupload_progress::after {
	color:  var(--wp--preset--color--accent-1)
}
.gform_drop_area::before {
	--gf-ctrl-file-zone-icon-color: var(--wp--preset--color--accent-1)
}
.gform-theme--framework .gform_validation_errors .gform-icon,
.gform-theme--framework .gform-body .gfield_error input,
#content .gform-theme--framework .gfield_error textarea,
#content .gform_validation_errors:focus {
	--gf-local-border-color: var(--wp--preset--color--accent-3);
	border-color: var(--wp--preset--color--accent-3);
	outline-color: var(--wp--preset--color--accent-3)
}
.gform-theme--framework .gform_validation_errors .gform_submission_error,
.gform-theme--framework .gform_validation_errors ol,
.gform-theme--framework .gform_validation_errors ol a,
.gform-theme--framework .gform-body .gfield_validation_message,
#content .gfield_required, #content .gform_validation_errors .gform-icon {
	color: var(--wp--preset--color--accent-3);
}
.gform_title, .gform_required_legend {display: none}
.gsection.level2 {border: none}
#content .gsection.level2 h3 {
	margin-bottom: 0;
	font-size: var(--wp--preset--font-size--medium);
}
#content .gform_wrapper textarea {
	height: calc(5*var(--global--spacing-unit) + 2px);
	min-block-size: calc(3*var(--global--spacing-unit));
	padding: var(--global--spacing-unit);
}
#content .gfield_checkbox, #content .gfield:not(.gfield--choice-align-vertical) .gfield_radio {
  display: grid;
  grid-template-columns: repeat(6,1fr);
  inline-size: 100%;
  column-gap: calc(2 * var(--global-seam));
  row-gap: var(--global-seam)
}
.gf-fieldgroup {
	display: flex;
	flex-wrap: wrap;
}
.gf-fieldgroup.four-columns-eq .gfield {width: 25%; padding-right: var(--global--spacing-unit)}

/*   Profile von Ferienunterkünften */
.profile-list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--global--spacing-unit)
}
.profile-summary {
	width: calc(33.33% - 2 * var(--global--spacing-unit) / 3);
	padding: 0 var(--global-seam);
	background: var(--wp--preset--color--accent-2)
}
.profile-summary h3 {font-size: var(--wp--preset--font-size--medium); text-align: center}
.profile-summary img {
	--js-height: 240px;
	width: 100%;
  height: var(--js-height);
  object-fit: cover
}
.profile-excerpt {font-size: var(--wp--preset--font-size--small)}
.profile-excerpt td {padding-right: var(--global--spacing-unit)}
.profile-details {
	margin-top: calc(2 * var(--global--spacing-unit));
	column-gap: calc(2 * var(--global--spacing-unit));
	font-size: var(--wp--preset--font-size--small);
}
.profile-details .wp-block-column {
	display: flex;
	flex-direction: column;
	width: calc(50% - var(--global--spacing-unit));
	justify-content: center;
}
.profile-details .wp-block-column:last-child {margin-right: 0}	
.profile-details .wp-block-column {
	padding: var(--global--spacing-unit);
	border: 1px solid var(--wp--preset--color--accent-2)
}
.profile-details .wp-block-column.images {border: 1px solid white}
.profile-details .wp-block-column.images.landscape img {max-height: 400px; object-fit: cover}
.profile-details table {border-collapse: collapse}
.profile-details p {margin-top: var(--global-seam); margin-bottom: 0}
.profile-details img {width: 100%; margin-bottom: calc(2 * var(--global--spacing-unit))}
.profile-details img:last-child {margin-bottom: 0}
.profile-details td {padding-right: var(--global--spacing-unit)}
.profile-details .caption, .profile-details .subcaption,
.profile-details .subheading, .profile-details .line {text-align: center}
#content .profile-details .caption h3 {
	margin-top: var(--global-seam);
	margin-bottom: var(--global-seam)
}
.profile-details .subcaption, .profile-details .subheading, .profile-details .line {
	font-size: var(--wp--preset--font-size--medium)
}
.profile-details .caption, .profile-details .subcaption {
	color: white;
	background: var(--wp--preset--color--accent-1)
}
.profile-details .subheading {background: var(--wp--preset--color--accent-2)}
.profile-details .spacer {height: var(--global--spacing-unit)}
#content .profile-details .wp-element-button {
	width: 25%;
	min-width: 120px;
	margin-left: auto;
	margin-right: auto;
	padding: var(--global-seam) var(--global--spacing-unit);
	text-align: center;
}
.profile-descriptions img {width: 100%}

/*   Rechtliche Seiten */
.legal .entry-content {
  max-width: var(--wp--style--global--content-size);
  margin-left: auto;
  margin-right: auto;
  font-size: var(--wp--preset--font-size--small)
}
.legal .entry-content > * {
	max-width: var(--single-track-width);
	margin-left: 0 !important;
}
.legal .wp-block-post-title {
	margin-bottom: calc(var(--global--spacing-vertical));
	font-size: var(--wp--preset--font-size--x-large)
}
.legal h1 {font-size: var(--wp--preset--font-size--x-large)}
.legal h2 {font-size: var(--wp--preset--font-size--large)}
.legal h3 {font-size: var(--wp--preset--font-size--medium)}
.legal h1, .legal h2, .legal h3 {text-align: left}

/*   Google Maps / Borlabs Content Blocker */
div#googleMap {width: 100%; height: 40em}
#googleMap.profile {height: 100%; min-height: 400px}
#content .brlbs-cmpnt-cb-main {
	max-width: var(--constriction-width);
	margin-left: auto;
	margin-right: auto
}
#content .brlbs-cmpnt-content-blocker a.brlbs-cmpnt-cb-btn {
  background-color: var(--wp--preset--color--accent-1)
}
#content .brlbs-cmpnt-content-blocker a.brlbs-cmpnt-cb-btn:hover {
  background-color: color-mix(in srgb, var(--wp--preset--color--accent-1) 80%, transparent)
}
body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker a {
  color: var(--wp--preset--color--accent-1)
}
body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker a:hover {
  color: var(--wp--preset--color--accent-1);
	text-decoration: underline
}


/* Responsive */

/*   Kleiner Bildschirm */
@media only screen and (max-width: 1120px) {
  .profile-summary img {--js-height: 210px}
}

/*   Tablett Landscape */
@media only screen and (max-width: 960px) {
  body {
	 --default-outer-margin-mult: 3;
	}
	#masthead .site-identity {flex-direction: column}
	#content .wide1 {display: none}
	#content .small1 {display: initial}
	#content div.small1 {display: block}
	#content .gfield_checkbox, #content .gfield:not(.gfield--choice-align-vertical) .gfield_radio {
    grid-template-columns: repeat(4,1fr)
  }
  .profile-summary {width: calc(50% - var(--global--spacing-unit) / 2)}
}

/*   Tablett Portrait / großer Umbruch */
@media only screen and (max-width: 782px) {
	body {
	 --default-outer-margin-mult: 2;
	}
	.flexpos1 {order:0}
  .flexpos2 {order:1}
	#masthead .header-image, #masthead .overlay {width: 100%}
  #masthead .overlay {position: relative}
	#masthead .site-identity {flex-direction: row}
	#content .gfield_checkbox, #content .gfield:not(.gfield--choice-align-vertical) .gfield_radio {
    grid-template-columns: repeat(3,1fr)
  }
  .text-navigation {flex-direction: column}
  .gf-fieldgroup.four-columns-eq .gfield {width: 50%}
}

/*   Smartphone groß */
@media only screen and (max-width: 600px) {
	.profile-summary {width: 100%}
  .profile-summary img {--js-height: 240px}
}

/*   Smartphone */
@media only screen and (max-width: 480px) {
	body {
	  --default-outer-margin-mult: 1;
	}
	#content .gfield_checkbox, #content .gfield:not(.gfield--choice-align-vertical) .gfield_radio {
    grid-template-columns: repeat(2,1fr)
  }
  .gf-fieldgroup.four-columns-eq .gfield {width: 100%}
  .profile-summary img {--js-height: 210px}
}

/*   Smartphone klein */
@media only screen and (max-width: 400px) {
	#content .gfield_checkbox, #content .gfield:not(.gfield--choice-align-vertical) .gfield_radio {
    grid-template-columns: repeat(1,1fr)
  }
  .profile-summary img {--js-height: 180px}
}
