/*=====================================================================================
   THE PALETTE AND THE MEASURES
=====================================================================================*/

:root {
	/*
	 * THE PALETTE AND THE MEASURES, DECLARED ONCE.
	 *
	 * These are the values the stylesheet used, as it used them — nothing was retuned. They
	 * are named for what they mean, so a change to the foundation's red is one line and a
	 * rule reads "the brand colour" rather than a hex number to be looked up.
	 *
	 * This file is style.src.css. tools/cssbuild.py resolves every var() into the literal
	 * it names and writes style.css, which is what the site serves and what the visual
	 * harness renders. Edit here; build; ship there.
	 */
	--paper:      #fff;       /* page and panel backgrounds */
	--ink:        #111;       /* body text, the hover state of links */
	--ink-warm:   #483f38;    /* the warmer near-black on some panels */
	--brand:      #cc0000;    /* the foundation's red: rules, current items, headings */
	--brand-soft: #ff6666;    /* the same red, lighter: hover and secondary marks */
	--muted:      #999;       /* breadcrumbs, captions, secondary text */
	--rule:       #e6e6e6;    /* hairlines and light panels */
	--text:       15px;       /* the body size everything is set against */
	--gutter:     30px;       /* the column gutter and the standard block spacing */
	}

/*=====================================================================================
   FONTS AND ICONS
=====================================================================================*/

@font-face {
	font-family: 'Brown WebPro';
	src: url("fonts/lineto-brown-pro-regular.eot");
	src: url("fonts/lineto-brown-pro-regular.eot?#iefix") format("embedded-opentype"), 
		url("fonts/lineto-brown-pro-regular.ttf") format("truetype"), 
		url("fonts/lineto-brown-pro-regular.woff") format("woff"), 
		url("fonts/lineto-brown-pro-regular.svg#lineto-brown-pro-regular") format("svg");
	font-style: normal;
	font-weight: normal;
	}

@font-face {
  font-family: 'fontello';
  src: url('font/fontello.eot?43489405');
  src: url('font/fontello.eot?43489405#iefix') format('embedded-opentype'),
       url('font/fontello.woff?43489405') format('woff'),
       url('font/fontello.ttf?43489405') format('truetype'),
       url('font/fontello.svg?43489405#fontello') format('svg');
  font-weight: normal;
  font-style: normal;
}

[class^="icon-"]:before, [class*=" icon-"]:before {
  font-family: "fontello";
  font-style: normal;
  font-weight: normal;
  speak: none;
 
  display: inline-block;
  text-decoration: inherit;
  width: 1em;
  margin-right: .2em;
  text-align: center;
  /* opacity: .8; */
 
  /* For safety - reset parent styles, that can break glyph codes*/
  font-variant: normal;
  text-transform: none;
 
  /* fix buttons height, for twitter bootstrap */
  line-height: 1em;
 
  /* Animation center compensation - margins should be symmetric */
  /* remove if not needed */
  margin-left: .2em;
 
  /* you can be more comfortable with increased icons size */
  /* font-size: 120%; */
 
  /* Font smoothing. That was taken from TWBS */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
 
  /* Uncomment for 3D effect */
  /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
}

@font-face {
  font-family: "bt-social";
  src:url("fonts/bt-social.eot");
  src:url("fonts/bt-social.eot?#iefix") format("embedded-opentype"),
    url("fonts/bt-social.woff") format("woff"),
    url("fonts/bt-social.ttf") format("truetype"),
    url("fonts/bt-social.svg#bt-social") format("svg");
  font-weight: normal;
  font-style: normal;

}

[data-icon]:before {
  font-family: "bt-social" !important;
  content: attr(data-icon);
  font-style: normal !important;
  font-weight: normal !important;
  font-variant: normal !important;
  text-transform: none !important;
  speak: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

[class^="icon-"]:before,
[class*=" icon-"]:before {
  font-family: "bt-social" !important;
  font-style: normal !important;
  font-weight: normal !important;
  font-variant: normal !important;
  text-transform: none !important;
  speak: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-facebook-square:before {
  content: "\61";
}

.icon-instagram:before {
  content: "\64";
}

/*=====================================================================================
   ELEMENTS
=====================================================================================*/

html {

	}

body {
	-webkit-font-smoothing: antialiased;
	-webkit-text-size-adjust: 100%;
	font-family: 'Brown WebPro', Arial, Helvetica, sans-serif;
	overflow-x: hidden;
	background-color: #fff;
	color: #111;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.5;
	}

p {
	margin: 0 0 15px;
	}

h2 {
	font-size: 22px;
	font-weight: 400;
	padding-bottom: 5px;
	margin-bottom: 20px;
	margin-top: 15px;
	border-bottom: 1px solid #cc0000;
	display: inline-block;
	color: #cc0000;
	}

h3 {
	font-size: 18px;
	font-weight: 400;
	}

h4 {
	font-size: 16px;
	margin-top: 30px;
	font-weight: 400;
	margin-bottom: 15px;
	}

h5 {
	margin: -15px 0 15px 0;
	font-size: 12px;
	}

h6 {
	margin: -15px 0 15px 0;
	font-size: 12px;
	}

a {
	color: #111;
	text-decoration: none;
	}

a:hover, a:focus {
	color: #999;
	outline: none;
	text-decoration: none;
	}

a {
			transition: all 0.125s ease-in-out 0s;
	}

label {
	display: inline-block;
	font-weight: 400;
	margin-bottom: 5px;
	max-width: 100%;
	color: #cc0000;
	}

input.form-text, textarea.form-textarea {
	border: 1px solid #888;
	width: 100%;
	font-size: 14px;
	color: #111;
	padding: 3px;
	}

input[type="submit"]:disabled, 
input[type="submit"]:disabled:hover {
	-moz-user-select: none;
	background-image: none;
	border: 1px solid transparent;
	border-radius: 0;
	cursor: pointer;
	display: inline-block;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.42857;
	margin-bottom: 0;
	padding: 6px 12px;
	text-align: center;
	vertical-align: middle;
	white-space: nowrap;
	background-color: #fff;
	border-color: rgba(135,  135,  135, 0.6);
	color: rgba(135,  135,  135, 0.6);
	cursor: not-allowed;
	}

p.acceptance {
	font-size: 13px;
	}

*/
	
/* exhibitionSlider */	
    	
/*  rsGCaption').appendTo */
	

/* OVERWRITE imageScaleMode: 'fit' */
	
	
/* contentSlider */
    

/* full-width-slider */

/* Magnific Popup CSS */

button::-moz-focus-inner {
  padding: 0;
  border: 0; }

/*=====================================================================================
   LAYOUT: THE FRAME, THE HEADER, THE MENU, THE FOOTER
=====================================================================================*/

footer { }

.container-fluid {
	overflow-y: visible;
	}

.content {
	background: #fff;
	min-height: 1px;
	margin-top: 15px;
	padding-left: 15px;
	padding-right: 15px;
	position: relative;
	width: 100%;
	}

.content .body-text-frame {
	display: none;
	}

.logo {
	background-color: #fbf4b1;
	background-color: #ffffbe;
	height: 125px;
	padding: 0;
	border-bottom: 1px solid #483f38;
	}

.logo a {
		color: #444038;
		line-height: 124px;
		font-size: 28px;
		letter-spacing: 1px;
		width: 100%;
		height: 100%;
		display: block;
	
		}

.logo a span {
	margin-left: 30px;
	display: inline-block;
	}

.menu {
	list-style: none;
	margin: 0;
	padding: 0;
	}

.menu > li {
	border-bottom: 1px solid #483f38;
	}

.menu li > a {
	font-size: 20px;
	line-height: 20px;
	color: #483f38;
	display: block;
	margin: 0;
	padding: 15px 20px;
	position: relative;
	text-decoration: none;
	width: 100%;
	background-color: transparent;
	}

.menu li > a:hover {
	background-color: rgba(0, 0, 0, 0.07);
	color: #111;
	}

.menu li a span {
	display: block;
	margin-left: 0;
	padding-left: 30px;
	}

.sub-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 20px;
	}

/*
 * The arrow is declared ONCE, for every entry, further down this file. Three rules used to
 * repeat it here for sub-menu entries only — in the descendant form `li a span::before`, which
 * is the shape that drew an arrow on Archiv whenever Ausstellungen was the current page. They
 * are gone; what remains is the indent that keeps a sub-entry's words at 30px.
 */

.sub-menu li a span {
	display: block;
	margin-left: 0;
	padding-left: 30px;
	text-indent: -15px;
	}

.menu li.current-menu-item {
	background-color: #ff4d4d;
	background-color: #ff6666;
	}

.menu li.menu-item-has-children.current-menu-parent {
	background-color: #ff6666;
	}

.menu li.menu-item-has-children.current-post-ancestor {
	background-color: #ff6666;
	}

.menu > li.current-post-ancestor li a:hover {
	background-color: rgba(0, 0, 0, 0.07);
	}

/*
 * THE ARROW BELONGS TO THE ENTRY, NOT TO EVERYTHING INSIDE IT.
 *
 * These were DESCENDANT selectors — `... .menu-item-has-children span::before` — so the span
 * they matched was any span under that <li>, including the sub-menu's. When Ausstellungen was
 * the current page, Archiv sat inside it and was drawn an arrow of its own: the marker appeared
 * on an entry that was not current and was not being pointed at.
 *
 * `> a > span` names the entry's own label and nothing below it. The arrow itself is declared
 * once, for every entry, further down this file; what remains here is only the indent that keeps
 * a current parent's words at 30px like every other label.
 */

.menu li.current-menu-item.menu-item-has-children > a > span {
	margin-left: 0;
	text-indent: -15px;
	}

.menu li.sidebar-right-header {
	height: 125px;
	padding: 0;
	}

.menu li.sidebar-right-header a {
	font-size: 28px;
	letter-spacing: 1px;
	width: 100%;
	height: 100%;
	display: table;
	color: #444038;
	line-height: 1.1;
	padding: 0;
	}

.menu li.sidebar-right-header a span {
	display: table-cell;
	vertical-align: middle;
	padding-left: 30px;
	}

.languages-menu {
	text-transform: uppercase;
	background-color: #fff;
	width: auto;
	float: right;
	z-index: 9;
	margin-top: 15px;
	font-size: 14px;
	line-height: 24px;
	}

.languages-menu > div {
	height: 25px;
	width: 35px;
	border: 1px solid #999;
	border: 1px solid rgba(0, 0, 0, 0.4);
	float: left;
	margin-left: 7px;
	text-align: center;
	}

.languages-menu > a {
	height: 25px;
	width: 35px;
	border: 1px solid #999;
	border: 1px solid rgba(0, 0, 0, 0.4);
	margin-left: 7px;
	float: left;
	text-align: center;
	}

.languages-menu > a:hover {
	background: #e6e6e6;
	background-color: rgba(0, 0, 0, 0.1);
	color: #111;
	}

.breadcrumbs {
	padding-top: 17px;
	color: #999;
	overflow: hidden;
	}

.breadcrumbs span a span {
    margin-left: 0;
	}

.breadcrumbs a {
	color: #999;
	}

.breadcrumbs a:hover {
	color: #111;
	}

.breadcrumbs {
	display: none;
	}

.content-header {
	height: 55px;
	display: block;
	}

.header-image {
	overflow: hidden;
	background-color: rgba(0, 0, 0, 0.03);
	background-color: #fff;
	position: relative;
	display: block;
	}

.header-image .header-image-holder {
    float: none;
    margin: 0;
    padding: 0;
    position: relative;
	}

.body-text {
	padding-top: 20px;
	}

.body-text h3 {
	font-size: 22px;
	padding-bottom: 5px;
	margin-bottom: 15px;
	margin-top: 15px;
	border-bottom: 1px solid #cc0000;
	display: inline-block;
	color: #cc0000;
	}

.header-image-publication {
    background-color: rgba(0, 0, 0, 0);
    display: block;
    overflow: visible;
    position: relative;
	}

.row.overview {
	min-height: 395px;
	}

.hero {
	overflow: hidden;
	background-color: #fff;
	position: relative;
	display: block;
	}

.hero .hero-frame {
   	position: relative;
    overflow: hidden;
	max-width: 800px;
	}

.hero-frame .hero-box {
    float: none;
    margin: 0;
    padding: 0;
    position: relative;
	}

.hero-frame:hover .image-credit {
		visibility: visible;}

.hero-frame .image-credit {
	    background: rgba(255, 255, 255, 0.6);
	    border-radius: 1px;
	    bottom: 10px; top: auto;
	    left: auto; right: 10px;
	    color: #000;
	    font-size: 13px;
	    padding: 0px 6px 1px 6px;
	    position: absolute;
	    z-index: 25;
	    visibility: hidden;
		}

.body-text.press_txt {
	margin-bottom: 25px;
	}

footer { }

/*	THE OTHER HOUSE
/*
/*	The foundation shows in the Skulpturenhalle in Neuss and in GARAGE in Düsseldorf.
/*	The last item of the left menu leads across, and it is coloured like the title bar
/*	so it reads as a PLACE rather than another page of this one. The chevron is part of
/*	the label, not decoration: it points out of here.
/*-----------------------------------------------------------------------------------*/

.menu-item-venue-switch {
	background-color: #ffffbe;
	border-top: 1px solid #483f38;
	}

.menu-item-venue-switch a,
	.menu-item-venue-switch a:hover,
	.menu-item-venue-switch a:focus {
		color: #444038;
		font-weight: bold;
		letter-spacing: 1px;
		}

/*	THE HEADER ROW ALWAYS SPANS THE COLUMN
/*
/*	The breadcrumb is a floated col-sm-9 and the language switch a col-sm-3 beside it.
/*	A long trail — "Home > Ausstellungen > Archiv > Gino Bühler: Photosynthese. Urformen
/*	des Lebens" — wraps to a second line, and because the row was not clearing, whatever
/*	followed floated up ALONGSIDE it and laid itself out in what was left. At 1200px
/*	that is a narrow strip, and the page appears to fall apart.
/*
/*	The row clears and closes over its floats, so the article beneath always starts on a
/*	new line however many the trail takes.
/*-----------------------------------------------------------------------------------*/

.row.content-header {
	clear: both;
	width: 100%;
	}

.row.content-header::after {
		content: "";
		display: table;
		clear: both;
		}

.breadcrumbs {
		/*  Stated, not inherited: an earlier rule in this file sets .breadcrumbs to
		    display:none outright, and the trail is only visible because something in
		    bootstrap happens to win. Deciding it here means it does not depend on that. */
		display: block;
		float: left;
		overflow: visible;
		word-break: break-word;
		}

.content-header + article,
.content-header + div,
.content-header + section {
	clear: both;
	}

/*	THE PUBLICATION GRID DOES NOT SNAG
/*
/*	The tiles are Bootstrap floats — col-xs-6 col-sm-4. Floats stack against whatever is
/*	above them, so one tile taller than its neighbours leaves a step that the next float
/*	cannot rise past: a row shows two covers instead of three and the third position sits
/*	empty until the row below clears. It only shows at the widths where the titles happen
/*	to wrap onto different numbers of lines, which is why 1920px looks fine and the width
/*	just past mobile does not.
/*
/*	A flex row has no such memory: every tile in a line is laid out together, so three sit
/*	in three places whatever height their titles come to. The column classes still decide
/*	HOW MANY fit — this only stops them catching on each other.
/*-----------------------------------------------------------------------------------*/

.row.overview {
	display: flex;
	flex-wrap: wrap;
	}

.row.overview > [class*="col-"] {
		/*
		 * A COLUMN, not a row.
		 *
		 * The cell holds more than the picture: an archive tile is the linked image and then
		 * a sibling .list-past-date beneath it. Left as a flex ROW — the default — the year
		 * lined up BESIDE the thumbnail instead of under it.
		 */
		float: none;
		display: flex;
		flex-direction: column;
		}

.row.overview > [class*="col-"] > a {
			display: block;
			width: 100%;
			}

/*	THE HOUSE'S WORDMARK
/*
/*	Both marks are more than their words. Measured from the artwork:
/*
/*	    Skulpturenhalle   an arc, the WORD, and a rule.  The word is 26.5% of the mark.
/*	    GARAGE            the roofs, the WORD, and a rule.  The word is 45.4% of it.
/*
/*	Skulpturenhalle spans the bar with 30px of air a side, as approved. GARAGE is then
/*	sized so that ITS WORD reads at 125% of the other:
/*
/*	    GARAGE height = 1.50 × 0.265 / 0.454 = 0.8747 × Skulpturenhalle's height
/*	    GARAGE width  = that × 1.7157 / 4.3701 = 0.3434 × the space its neighbour fills
/*
/*	At a 400px sidebar: Skulpturenhalle's word 20.6px, GARAGE's 30.9px, the whole GARAGE
/*	mark 68px — inside the 125px bar, where it is centred.
/*
/*	The earlier attempts sized GARAGE against the WHOLE Skulpturenhalle mark rather than
/*	against its word, which is why it came out two and a half times too big and the bar
/*	kept having to grow.
/*-----------------------------------------------------------------------------------*/

.logo {
	height: 125px;
	display: flex;
	align-items: center;
	}

.logo a {
	display: flex;
	align-items: center;
	line-height: normal;
	height: 100%;
	}

.logo a span {
	display: flex;
	align-items: center;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0 30px;
	}

.logo-mark {
	/*  75% of the space between the insets, centred in it: a quarter narrower than the
	    bar allows, with the air shared equally either side.                            */
	display: block;
	width: 75%;
	height: auto;
	margin: 0 auto;
	}

.logo-mark[src*="garage"] {
	/*  0.3434 of the width beside it, and centred in the bar rather than left-aligned:
	    a mark this much narrower looks placed rather than stranded.                     */
	width: 34.34%;
	margin: 0 auto;
	}

/*	THE MOBILE LAYOUT
/*
/*	The yellow bar is fixed at the top. Tapping it shows the navigation INSTEAD of the
/*	content; tapping it again shows the content again. Both menus are in that view — the
/*	house's own and the foundation's — one after the other, and the page scrolls normally
/*	rather than a panel scrolling inside it.
/*
/*	Nothing is positioned absolutely except the bar, so nothing can box in a gallery or a
/*	grid of tiles, and nothing is moved between containers. The two states differ only in
/*	which of .content and the two sidebars is displayed.
/*
/*	Above 992px none of this applies: the three columns sit side by side as before.
/*-----------------------------------------------------------------------------------*/

.content .body-text-frame {
	display: block;
	}

/*	A PAGE PICTURE THAT DEFINES ITS OWN HEIGHT
/*
/*	The frame — .hero, .hero-frame, .hero-box —
/*	was 360px tall with the overflow clipped: the imported theme's fixed box for a
/*	cropped banner, and the holder was positioned absolutely with left:-1000px to centre
/*	it. Inside that, whatever height we computed was cut off.
/*
/*	The frame keeps its clipping (that is what shows one carousel slide, not all of them)
/*	and is put back into the flow at AUTO height. It is then exactly as tall as its
/*	content, and its content is the slide: the picture, and a caption below it if there
/*	is one. Nothing is clipped, because nothing is taller than the frame.
/*
/*	The height is set on the PICTURE, not on the frame. A percentage padding resolves
/*	against the width and has done in every engine for twenty years; the renderer writes
/*	the real percentage inline. The image is fitted inside that box — scaled down whole,
/*	never cropped, against the left edge where the page's other blocks begin.
/*
/*	    a lone portrait     66.6667%: the height a 3:2 landscape would take
/*	    square, landscape   no box — the picture's own height, in full
/*
/*	The three-class selector on the holder is not decoration: the theme's absolute
/*	positioning is three classes deep and a shorter selector could not undo it.
/*-----------------------------------------------------------------------------------*/

.hero.is-self-sized,
.hero.is-self-sized .hero-frame {
	height: auto;
	min-height: 0;
	max-height: none;
	}

.hero.is-self-sized .hero-frame .hero-box,
.hero.is-self-sized .hero-box {
	position: relative;
	top: auto;
	bottom: auto;
	left: 0;
	right: auto;
	margin: 0;
	padding: 0;
	height: auto;
	min-height: 0;
	max-height: none;
	width: 100%;
	max-width: 800px;
	}

/*	The ratio box: a plain block sized by its padding, which every engine honours. The
	picture and its image fill it absolutely, and the image is fitted inside — scaled down
	whole, never cropped, against the left edge where the page's other blocks begin.  */

.hero-ratio {
	display: block;
	position: relative;
	width: 100%;
	height: 0;
	padding-top: 66.6667%;       /*  the renderer writes the real value inline  */
	overflow: hidden;
	flex: 0 0 auto;              /*  .gallery-slide is a flex column: do not renegotiate  */
	min-height: 0;
	align-self: stretch;
	}

.hero-ratio picture,
.gallery .gallery-slide .hero-ratio picture {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	display: block;
	margin: 0;
	}

.hero-ratio picture img,
.gallery .gallery-slide .hero-ratio picture img,
.content .hero-frame .hero-ratio picture img {
	/*
	 * SCALED BY HEIGHT, NOT FITTED BY object-fit.
	 *
	 * The box is a landscape and the picture in it is always a portrait, so scaling the
	 * picture to the box's HEIGHT puts it inside the box by definition: it comes out
	 * narrower than the box, at its own ratio, against the left edge. No object-fit is
	 * needed, and an engine without it draws the same thing as one with it.
	 *
	 * width:auto is what makes that true. width:100% would stretch a portrait across a
	 * landscape box — or, where object-fit is absent, fill the width and be cut off at
	 * the bottom, which is exactly what the page showed.
	 */
	display: block;
	width: auto;
	height: 100%;
	max-width: 100%;
	max-height: 100%;
	margin: 0;
	}

.hero.is-self-sized picture.lone:not(.is-portrait) img,
picture.lone:not(.is-portrait) img {
	display: block;
	width: 100%;
	height: auto;
	max-height: none;
	margin: 0;
	}

/*=====================================================================================
   THE GALLERY AND THE HERO
=====================================================================================*/

.gallery { position: relative; margin-bottom: 45px; outline: none; }

/*  Images are FITTED inside the slide, never cropped and never upscaled: see the sizing rules
    further down. The slide's outer height is fixed so the controls beneath it never move.      */

.gallery img { display: block; width: auto; height: auto; max-width: 100%; }

.gallery-slide + .gallery-slide {
	margin-top: 30px;
	}

/*
 * A PORTRAIT IS HELD TO THE SET'S TALLEST LANDSCAPE
 *
 * The renderer measures the set, finds the landscape-or-square with the tallest shape, and
 * wraps every portrait taller than that shape in .gallery-ratio with that shape's height as a
 * percentage of its width. A padding percentage resolves against the width in every engine;
 * an aspect-ratio on <picture> was correct on paper and did not hold in practice, which is
 * the same lesson the lone portrait taught.
 *
 * The picture fills the box and the image is scaled by HEIGHT: a portrait scaled to a
 * landscape's height is inside the box by definition, at its own ratio, never cropped —
 * and centred, as the slider always was. Every slide in the set is then the same height,
 * and the gallery stops jumping.
 */
.gallery .gallery-slide .gallery-ratio,
.gallery-ratio {
	display: block;
	position: relative;
	width: 100%;
	height: 0;
	padding-top: 66.6667%;       /*  the renderer writes the real value inline  */
	overflow: hidden;
	flex: 0 0 auto;              /*  .gallery-slide is a flex column: do not renegotiate  */
	min-height: 0;
	align-self: stretch;
	}
.gallery .gallery-slide .gallery-ratio picture,
.gallery-ratio picture {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	display: block;
	margin: 0;
	text-align: center;
	}
.gallery .gallery-slide .gallery-ratio picture img,
.gallery-ratio picture img {
	display: block;
	width: auto;
	height: 100%;
	max-width: 100%;
	max-height: 100%;
	margin: 0 auto;
	}

.gallery .gallery-slide picture { display: block; }

.gallery .gallery-slide picture img {
	/*  A ceiling so one very tall picture cannot push the whole gallery off the screen; every
	    image shorter than this is shown at its own height.                                   */
	max-height: 70vh;
	max-width: 100%;
	width: auto;
	height: auto;
	}

.gallery-nav { display: none; padding-top: 8px; }

.gallery-caption p {
	margin: 0;
	line-height: 1.45;
	}

.gallery-caption {
	margin-top: .5em;
	}

.gallery-track {
	position: relative;
	}

.gallery-track .gallery-slide {
		height: auto;
		}

.gallery-nav {
	margin-top: 1em;
	}

/*=====================================================================================
   COMPONENTS: FORMS, THE MAP, LISTS
=====================================================================================*/

.list-past {
	height: 300px;
	overflow: hidden;
	background-color: rgba(0, 0, 0, 0.5);
	position: relative;
	margin-bottom: 15px;
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center center;
	}

.list-past h3 {
	text-transform: uppercase;
	margin-bottom: 15px;
	margin-top: 0;
	font-weight: 400;
	line-height: 1;
	font-size: 20px;
	color: #fff;
	letter-spacing: 1px;
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 88;
	text-align: center;
	white-space: nowrap;
	transform: translate(-50%, -50%);
	}

.list-past-date {
	margin-bottom: 15px;
	}

.list-past-link:hover h3 {
	color: #000;
	}

.publication-overview {
	position: relative;
	margin-bottom: 35px;
	}

.publication-overview img {
	background-color: #eee;
	}

.list-intro {
	margin-bottom: 15px;
	}

.map {
	width: 100%;
	height: 360px;
	border: 1px solid #999;
	}

.map-address {
	position: absolute;
	top: 10px;
	right: 10px;
	padding: 7px;
	font-size: 13px;
	background-color: #fff;
	box-shadow: 0 1px 4px -1px rgba(0, 0, 0, 0.3);
	}

.btn-download {
	-moz-user-select: none;
	background-image: none;
	border: 1px solid transparent;
	border-radius: 0;
	cursor: pointer;
	display: inline-block;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.42857;
	margin-top: 15px;
	margin-bottom: 15px;
	margin-right: 5px;
	padding: 5px 12px;
	text-align: center;
	vertical-align: middle;
	white-space: nowrap;
	background-color: #fff;
	border-color: #ccc;
	color: #111;
	border: 1px solid rgba(0, 0, 0, 0.3);
	}

.btn-download:hover {
	border: 1px solid rgba(0, 0, 0, 0.6);
	color: #111;
	background-color: #e6e6e6;
	}

.contact-form {
	margin-bottom: 30px;
	}

/*=====================================================================================
   PAGES
=====================================================================================*/

b, strong {
	font-weight: 600;
	font-weight: 400;
	color: #cc0000;
	}

header { }

.sidebar-left {
	background: #e6e6e6;
	background-color: rgba(0, 0, 0, 0.1)
	padding-left: 0;
	padding-right: 0;
	position: relative;
	width: 100%;
	}

.social-icons {
	text-align: right;
	background-color: white;
	padding-right: 15px;
	padding-top: 5px;
	}

.social-icons .icon {
	padding: 5px 0;
	color: #483f38;
	font-size: 18px;
	display: inline-block;
	}

.social-icons .icon:hover { 
		color: #000;
		}

article {
	border-bottom: 1px solid #cc0000;
	margin-bottom: 0;
	padding-bottom: 15px;
	overflow: hidden;
	}

article:last-of-type {
	border-bottom: 1px solid #fff;
	margin-bottom: 0;
	}

.img-height-responsive {
    display: block;
    max-height: 100%;
    max-width: 100%;
	}

.shadow4 {
	-webkit-box-shadow: 4px 4px 4px 0px rgba(0,0,0,0.5);
	-moz-box-shadow: 4px 4px 4px 0px rgba(0,0,0,0.5);
	box-shadow: 4px 4px 4px 0px rgba(0,0,0,0.5);
	}

.overview-headline {
    margin-bottom: 25px;
    margin-top: 0;
	}

.page .body-text h4:first-of-type { 
	margin-top: 5px;
	}

iframe {
        min-width: 100%; 
        width: 100px;
        *width: 100%; 
    }

.home-block {
/* 	padding-top: 15px; */
}

.press_content {
	background-color: #fff;
	border-top: 1px solid #cc0000;
	padding-top: 15px;
	margin-top: 15px;
	}

.press_content p {
	margin-bottom: 0;
	}

.press_content h4 {
    font-size: 16px;
    font-weight: 400;
    margin-bottom: 0;
    margin-top: 10px;
    line-height: 1.5;
	}

.grid-box {
	margin-bottom: 15px;
	background-color: #fff;
	border: 0 solid #ccc;
	padding: 0 15px 0 0;
	font-size: 12px;
	}

.grid-box p {
	margin-bottom: 0;
	line-height: 1.3;
	}

.grid-box img {
	margin-bottom: 5px;
	}

.grid-box:last-child {
	margin-bottom: 0;
	}

* {
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}

div.form-response {
	margin: 15px 0;
	padding: 0.2em 1em;
	font-size: 14px;
	}

.submit-btn {
	-moz-user-select: none;
	background-image: none;
	border: 1px solid transparent;
	border-radius: 0;
	cursor: pointer;
	display: inline-block;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.42857;
	margin-bottom: 0;
	padding: 6px 12px;
	text-align: center;
	vertical-align: middle;
	white-space: nowrap;
	background-color: #fff;
	border-color: #888;
	color: #333;
	}

span.form-choice {
	margin: 0 0 0 0;
	}

.white {
	background-color: #fff;
	}

.gallery-prev, .gallery-next {
	border: 1px solid #111;
	background: #fff;
	cursor: pointer;
	font: inherit;
	line-height: 1;
	padding: 4px 12px;
	}

.gallery-prev:hover, .gallery-next:hover {
	background: #111;
	color: #fff;
	}

.gallery-count { font-size: 14px; color: #666; }

/*	THE RIGHT COLUMN IS GREY
/*
/*	All of it — the foundation's name and every entry under it — on one pale ground, with
/*	the dark rule between them. The page you are ON is the exception: it comes forward in
/*	white, which is what marks it.
/*
/*	The theme had the colour commented out and nothing in its place, so the column took
/*	whatever was behind it and had no ground at all.
/*-----------------------------------------------------------------------------------*/

.sidebar-right .menu > li:not(.current-menu-item) {
	background-color: #eee;
	}

.sidebar-right .menu > li:not(.current-menu-item) > a:hover {
	background-color: #e3e3e3;
	}

/*  The note beside an exhibition's dates: the same voice as a caption, because it is an aside
    about the run rather than part of it.                                                      */

.ex-note {
	font-size: 15px;
	line-height: 1.45;
	margin-top: 4px;
	}

/*=====================================================================================
   AT OTHER WIDTHS

   Every media block, in the order it was written. They come after every base rule so
   that what a breakpoint says always wins over what the base said — which is what a
   breakpoint is for. Merging them by query is deliberately not done: two blocks with the
   same query can sit either side of a base rule they both modify, and merging would move one.
=====================================================================================*/

@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) { }

@media only screen and (min-width : 480px){
		
		.breadcrumbs span:nth-of-type(2n) {
	background: #fff;
	}
 
	}

@media only screen and (min-width : 768px){
		
		.breadcrumbs {
			display: block;
		}
		
.list-past {
	height: 360px;
			}
		

	}

@media only screen and (min-width : 992px) {

 		.sidebar-left { 
			width: 30%;
			float: left;
			}
			
		.content-header { height: 70px; }
		.languages-menu { margin-top: 22px; }
		.breadcrumbs { padding-top: 23px; }
	
		.content .body-text-frame {
			display: block;
			}
		.content {
	background: #ffe7e7;
	background: #fff;
	min-height: 1px;
	padding-left: 30px;
	padding-right: 30px;
	margin-top: 30px;
	}
		.content { 
			width: 70%;
			float: left;
			margin-top: 0;
			}
		
		.home-block .collapse {
	display: block;
	}

		.header-image {
			height: 360px;
			}
		
		.header-image .header-image-holder {
			height: 360px;
			width: 800px;
			}
			
			
			
			
		.hero-frame {
			height: 360px;
			}
		.hero-frame .hero-box {
			height: 360px;
			width: 800px;
			}

		.hero {
			height: 360px;
			}	
					
		.hero .hero-frame .hero-box {
			position: absolute;
		    top: 0;
		    bottom: 0;
		    left: -1000px;
		    right: -1000px;
		    margin: auto;
			}	
			
			
			
			
			
			
			
		.img-height-responsive {
		    height: 100%;
			width: auto;
			}
			
.list-past {
	height: 256px;
			}
			
		.contact-form {
	width: 50%;
	margin-bottom: 30px;
	}
 
	}

@media only screen and (min-width : 1200px) {
		.sidebar-left { 
			width: 22%;
			right: 0;
			top: 0;
			position: inherit;
		}
		.sidebar-right {
	position: absolute;
	right: 0;
	top: 0;
	width: 22%;
	}
		.content {
	position: absolute;
	right: 22%;
	left: 22%;
	top: 0;
	width: 56%;
	margin-top: 0;
	}
		
	}

@media only screen and (min-width : 1600px) {
		.sidebar-left { 
			width: 400px;
			right: 0;
			top: 0;
			position: inherit;
		}
		.sidebar-right {
	position: absolute;
	right: 0;
	top: 0;
	width: 400px;
	}
		.content {
	position: absolute;
	left: 400px;
	right: 400px;
	top: 0;
	width: auto;
	margin-top: 0;
	}
		
	}

@media (max-width: 1199px) {
	.gallery .gallery-slide picture img { max-height: 60vh; }
	}

@media (max-width: 767px) {
	.gallery .gallery-slide picture img { max-height: 50vh; }
	}

/*	THE WORDMARK BELOW 992px
/*
/*	.sidebar-left only becomes a column at 992px (see the theme's own media query). Below
/*	that it spans the screen, so sizing the mark by WIDTH makes it as wide as the display
/*	— which is what broke the layout between 752 and 957px, a range I had left to the
/*	desktop rule because I assumed the sidebar started at 768.
/*
/*	Sizing the mark by
/*	WIDTH there makes it as wide as the phone: on an iPhone 8 that is a 315px-wide
/*	Skulpturenhalle and a GARAGE mark 198px tall, most of the first screen gone before
/*	a word of content.
/*
/*	So on a phone the marks are sized by HEIGHT instead, and the same 125% holds:
/*	the word at 28px against GARAGE's whole mark at 77px (28 × 1.25 ÷ 0.454).
/*-----------------------------------------------------------------------------------*/

@media (max-width: 991px) {
	.logo {
		height: 72px;
		}
	.logo-mark {
		/*  Sized by height on a phone, where the bar spans the screen and a width would
		    make the mark as wide as the display. The same relation holds: the
		    Skulpturenhalle word at 12px, GARAGE's at 18px.                             */
		width: auto;
		height: 45px;
		max-width: calc(100% - 60px);
		margin: 0;
		}
	.logo-mark[src*="garage"] {
		height: 39px;
		margin: 0 auto;
		}
	}

@media (max-width: 991px) {
	.logo {
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		z-index: 60;
		cursor: pointer;
		}
	body {
		padding-top: 72px;
		}
	.sidebar-left, .content, .sidebar-right {
		width: 100%;
		float: none;
		position: relative;
		}
	.sidebar-left-inner,
	.sidebar-right {
		display: none;
		}
	.menu li > a {
		padding: 14px 0;
		}

	/*
	 * PICTURES GO EDGE TO EDGE; WORDS DO NOT.
	 *
	 * The inset used to sit on .content-inner, which held the galleries as well, so every
	 * photograph lost 15px a side and stopped short of the screen. On a desktop a picture
	 * fills its column, and on a phone the column IS the screen.
	 *
	 * So the padding moves onto the things that need it — the trail, the text, the tiles —
	 * and the gallery keeps the full width.
	 */
	.content-inner {
		padding: 0;
		}
.content-header,
.body-text > p,
.body-text > h1,
.body-text > h2,
.body-text > h3,
.body-text > ul,
.body-text > ol,
.list-intro,
.publication-note,
.gallery-caption,
.gallery-nav {
	padding-left: 15px;
	padding-right: 15px;
	}
	.row.overview {
		margin-left: 0;
		margin-right: 0;
		}
	.container-fluid,
	.content,
	.content > [class*="col-"],
	.hero,
	.hero-frame,
	.hero-box,
	.body-text,
	.home-block {
		padding-left: 0;
		padding-right: 0;
		}
	.row {
		margin-left: 0;
		margin-right: 0;
		}
	.gallery,
	.gallery-track,
	.gallery-slide {
		padding-left: 0;
		padding-right: 0;
		}

	/*
	 * A picture FILLS the screen's width rather than stopping at its own.
	 *
	 * max-width:100% keeps an image from overflowing but never makes it larger, so a 320px
	 * rendition sat 17px short of each edge on a 375px phone. width:100% fills the width and
	 * height:auto keeps the proportions; the ladder still hands the browser a rendition big
	 * enough that this is an upscale of a few percent at most.
	 */
	.gallery .gallery-slide picture img,
	.gallery .gallery-slide img,
	.content .hero-frame img,
	.content .body-text img {
		width: 100%;
		height: auto;
		max-height: none;
		max-width: none;
		}
	}

/*	THE MENU LABELS FIT THEIR COLUMN
/*
/*	The longest entries — "Thomas Schütte Stiftung" and "Impressum · Datenschutz", both
/*	23 characters — need about 200px at 20px type. The right column gives them:
/*
/*	    ≥1600px   400px wide, 340px of text room   →  20px fits
/*	    ≥1200px    22% wide, ~204px at a 1200px window  →  20px wraps to two rows
/*	     ≥992px    30% wide, ~238px at a 992px window   →  20px is marginal
/*
/*	So between 992 and 1599 the label steps down to 17px, which puts the longest entry at
/*	roughly 195px and keeps every menu row a single line. It returns to 20px at 1600,
/*	where the column is wide enough to carry it.
/*-----------------------------------------------------------------------------------*/

@media (min-width: 992px) and (max-width: 1599px) {
	.sidebar-right .menu li a span,
	.sidebar-left  .menu li a span {
		font-size: 17px;
		}
	.sidebar-right .sub-menu li a span,
	.sidebar-left  /*
 * The arrow is declared ONCE, for every entry, further down this file. Three rules used to
 * repeat it here for sub-menu entries only — in the descendant form `li a span::before`, which
 * is the shape that drew an arrow on Archiv whenever Ausstellungen was the current page. They
 * are gone; what remains is the indent that keeps a sub-entry's words at 30px.
 */
.sub-menu li a span {
		font-size: 16px;
		}
	}

/*	THE HOVER ARROW, ON EVERY ENTRY
/*
/*	The theme gave it to sub-menu entries only, so Archiv and Vorschau answered the
/*	pointer and Ausstellungen, Eintritt, Anfahrt and the whole right menu did not. It is
/*	the same affordance either way: this is where you are pointing.
/*
/*	The arrow is always in the layout and only its VISIBILITY changes, so nothing moves
/*	when the pointer crosses an entry. The arithmetic matches the sub-menu's: the label
/*	keeps its 30px, the arrow sits in the 15px before it.
/*
/*	    padding-left 30px, text-indent -15px  →  first line starts at 15px
/*	    the arrow fills that 15px             →  the words start at 30px
/*	    a wrapped line has no arrow           →  it begins at the padding, under the words
/*
/*	On a touch screen there is no hover, so an arrow that only appears on hover is either
/*	invisible or stuck on after a tap. Below 992px it is left out and the row's own size
/*	is the target.
/*-----------------------------------------------------------------------------------*/

@media (min-width: 992px) {

	/*  `> a > span` throughout: an entry's own label, never a sub-menu entry's. With a
	    descendant selector a current PARENT lit up its children's arrows as well.       */
	.menu li > a > span::before {
	content: '\e819';
	font-family: 'fontello';
	width: 15px;
	display: inline-block;
	text-decoration: none;
	speak: none;
	line-height: 18px;
	visibility: hidden;
	}
	.menu li > a > span {
		text-indent: -15px;
		}
	.menu li > a:hover > span::before,
	.menu li.current-menu-item > a > span::before {
		visibility: visible;
		}
	.menu li.sidebar-right-header > a > span::before {
		content: none;
		}
	.menu li.sidebar-right-header > a > span {
		text-indent: 0;
		}

	/*
	 * ONE ARROW AT A TIME.
	 *
	 * On /ausstellungen/archiv/ both Ausstellungen and Archiv carry current-menu-item: the
	 * parent because the archive lives under it, the child because it IS the page. Two
	 * arrows then pointed at two entries and neither meant "here".
	 *
	 * A parent whose child is the current page is an ANCESTOR, not the current item, so it
	 * loses the arrow and the child keeps it. On /ausstellungen/ itself no child is current
	 * and the parent keeps it, which is right.
	 */
	.menu li.current-menu-item:has(.sub-menu .current-menu-item) > a > span::before {
		visibility: hidden;
		}
	.menu li.current-menu-item:has(.sub-menu .current-menu-item) > a:hover > span::before {
		visibility: visible;
		}
	}

@media (max-width: 991px) {
	.menu li > a > span::before {
		content: none;
		}
	.menu li > a > span {
		text-indent: 0;
		}
	}

@media (max-width: 767px) {
	.row.overview > [class*="col-"]:not([class*="col-xs-"]) {
		width: 100%;
		}
	}

/*	THE PHONE: WHAT IS SHOWN, AND HOW BIG
/*
/*	  the D/E pair leaves the content header — it is the menu's first entry instead,
/*	  naming the language you would be going to
/*	  the picture starts under the fixed bar and spans the screen
/*	  it is capped so that three lines of text stand under it without scrolling
/*	  the gallery's buttons are left out: a phone is swiped, not clicked
/*-----------------------------------------------------------------------------------*/

@media (max-width: 991px) {
	.content-header .languages-menu,
	.content-header .col-sm-3 {
		display: none;
		}
	.menu-item-language {
		display: block;
		}
	.gallery .gallery-slide picture img,
	.gallery .gallery-slide img,
	.content .hero-frame img,
	.content .body-text img {
		/*
		 * A CONCRETE CEILING, NOT A SHARE OF THE VIEWPORT.
		 *
		 * This was calc(100vh - 168px). On a phone 100vh is not the visible height: it counts
		 * the address bar, which comes and goes as you scroll, so the picture changed size
		 * under the reader's thumb. It is also what most renderers get wrong.
		 *
		 * 440px is measured from the smallest screen this has to work on — an iPhone 8 at
		 * 667px: 72 for the fixed bar, 440 for the picture, and 155 left, which carries the
		 * caption's three lines and the start of the text.
		 *
		 * dvh is the modern answer to the address-bar problem and is used where it exists;
		 * a browser without it keeps the fixed number.
		 */
		max-height: 440px;
		max-height: min(440px, calc(100dvh - 210px));
		object-fit: contain;
		object-position: center top;
		}
	.gallery-nav {
		display: none !important;
		}

	/*
	 * THE CAPTION SITS UNDER ITS PICTURE.
	 *
	 * .gallery-slide is a flex item in the track, and a flex item lays its children out in a
	 * ROW by default — so the caption stood beside the picture in whatever sliver was
	 * left, which on a phone is nothing. As a column it falls where it belongs.
	 *
	 * The indent matches the text below: a caption is words, and words keep their 15px.
	 */
	.gallery .gallery-slide {
		display: flex;
		flex-direction: column;
		}
	.gallery .gallery-caption {
	display: block;
	margin: 6px 0 0;
	padding: 0 15px;
	}
	.gallery .gallery-caption p {
		margin: 0;
		font-size: 14px;
		line-height: 1.4;
		}
	}

@media (min-width: 992px) {
	.menu-item-language {
		display: none;
		}
	}

/*=====================================================================================
   MOTION
=====================================================================================*/

@media (prefers-reduced-motion: reduce) {
	}


/* ---------------------------------------------------------------------------------
 * CLASSES THAT JAVASCRIPT ADDS
 *
 * The server never emits is-enhanced, is-dragging, is-moving, is-settled or menu-open:
 * gallery.js and menu-mobile.js add them after load. Phase 2 judged a selector dead when
 * no page emitted its classes, and took these with it - the slider fell back to a column
 * of pictures that swiping could push off-screen, and the phone menu lost its open state.
 * Restored from the baseline, renamed, in their original media blocks. Any future dead-
 * selector pass must read the JS for classList calls before it reads the HTML.
 * --------------------------------------------------------------------------------- */
.gallery.is-enhanced {
	overflow: hidden;
	}
.gallery.is-enhanced .gallery-track {
	display: flex;
	flex-wrap: nowrap;
	will-change: transform;
	cursor: grab;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	}
.gallery.is-enhanced.is-dragging .gallery-track {
	cursor: grabbing;
	}
.gallery.is-enhanced .gallery-slide {
	flex: 0 0 100%;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin-top: 0;
	overflow: hidden;
	visibility: hidden;
	}
.gallery.is-enhanced .gallery-slide.is-current {
	visibility: visible;
	}
.gallery.is-enhanced.is-moving .gallery-slide {
	visibility: visible;
	}
.gallery.is-enhanced .gallery-slide {
	height: auto;
	}
.gallery.is-enhanced.is-settled .gallery-nav {
	display: flex;
	align-items: center;
	gap: 10px;
	}
@media only screen and (min-width : 992px) {
	.content-clone.collapse.in {
		display: none;
		}
	}
@media (prefers-reduced-motion: reduce) {
	.gallery.is-enhanced .gallery-track {
		transition-duration: 1ms;
		}
	}
@media (max-width: 991px) {
	body.menu-open .sidebar-left-inner, body.menu-open .sidebar-right {
		display: block;
		}
	body.menu-open .content {
		display: none;
		}
	body.menu-open .sidebar-right {
		border-top: 1px solid #483f38;
		}
	}

