@import url('https://fonts.googleapis.com/css?family=Open+Sans|Voltaire');

html,body {
    margin: 0;
    font-family: 'Open Sans', sans-serif;
}

header,footer,.head,h1,h2,h3,h4 {
	font-family: 'Voltaire', sans-serif
}

html {
	scroll-behavior: smooth;	
}

img { max-width: 100%; }

section, footer {
    line-height: 1.5em;
}

h2 {
    margin: 1.5em 0;
}

a, #active {
    color: rgb(124,143,191);
    opacity: 1;
    transition: opacity 200ms;
}

#active:hover {
    opacity: .6;
}

.head {
    background: rgb(124,143,191);
    text-align: center;
    /* height: 100vh; */
    color: white;
    /* position: sticky; */
    /* top: 0; */
    /* z-index: 9; */
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
}

.head p {
	opacity: 1;
	/* position: relative; */
	/* top: 0; */
	transition: opacity 400ms, top 600ms;
	/* margin: 0; */
	/* padding: 5% 1em; */
	/* background: rgba(112, 112, 112, .9); */
	width: 84%;
	max-width: 500px;
	/* margin: auto; */
	line-height: 1.3em;
	/* box-shadow: 0px 0px 4px 2px rgba(100,100,100,.8); */
}

.head.passed p {
	opacity: 0;
	top: -50%;
}

.head {
	background-size: cover;
	background-position: top;
}

header, .head h2 {
	font-weight: bold;
}

.head h2 {
	text-transform: uppercase;
}

.rolfing .head {
    background-size: cover;
    background-position: center;
}

.process .head {
    background-size: cover;
    background-position: center;
}

sup, sub {
  vertical-align: baseline;
  position: relative;
  top: -0.4em;
}

header {
	background: white;
	z-index: 100;
	box-shadow: 0px 5px 10px -5px rgb(100,100,100,1);
}

header li.logo {
    flex: 0 0 100%;
}

header li.logo img {
    width: 90%;
    max-width: 1000px;
    margin: 2em 5%;
}

nav {
	overflow: hidden;
}

nav ul {
    display: flex;
    list-style-type: none;
    padding: 0;
    margin: auto;
    align-items: center;
    width: 100%;
    justify-content: space-between;
    max-width: 1024px;
    flex-wrap: wrap;
}

nav ul li {
	position: relative;
	text-align: center;
	overflow: hidden;
	flex: 1 1 auto;
}

nav li:not(.logo) a {
    text-decoration: none;
    display: block;
    padding: 1.5em .5em;
    margin: 0 10%;
    position: relative;
    z-index: 1;
    transition: color 200ms;
    font-weight: bold;
    font-size: .9em;
    color: black;
}

.schedule {
	position: absolute;
    background: white;
    padding: 8px;
    transition: transform 300ms;
}

.schedule iframe {
    display: block;
    max-width: 100%;
}

.active .schedule {
	transform: scale(1);
}

.content {
    overflow: hidden;
    margin: 0 auto;
    padding: 1em 10%;
    z-index: 9;
    position: relative;
    max-width: 800px;
    display: flex;
    justify-content: space-between;
    background: rgba(255,255,255,.9);
    padding-bottom: 75px;
}

#rolfing dl, .container {
    background: rgb(225, 225, 225);
    padding: 1em 5%;
    color: black;
    margin: 1em 0;
}

#rolfing dl dt, #rolfing dl dd {
    margin: 1em 0;
}

dl dt {
    font-weight: bold;
}

#rolfing dl dd {
    margin: 1em 0;
}

#process .group {
    flex-basis: 46%;
}

#process h2 {
    text-align: center;

}

.tenSeries {
    list-style-type: none;

    padding: 0;
}

.appointment {
    text-align: center;
    background: #334D68;
    color: white;
    padding: 6px 2%;
    margin: 0 1em;
    cursor: pointer;
    box-shadow: 2px 2px 3px #333;
    transition: box-shadow 300ms;
}

.images {
    flex: 0 0 20%;
    margin-right: 1em;
    justify-content: flex-start;
    display: flex;
    flex-direction: column;
}

.images img {
    max-width: 100%;
}

.appointment:hover { box-shadow: 2px 2px 0px -3px #333; }

#contact {
    margin: auto;
    background: rgb(124,143,191);
    overflow: hidden;
    color: white;
    display: flex;
}

#contact>div {
	background: white;
	display: flex;
	align-items: center;
}

#contact img {
	width: 100%;
}

#contact a {
    color: rgb(238, 238, 238);
    transition: color 150ms;
}

#contact a svg {
    width: 30px;
    vertical-align: middle;
}

#contact a svg * {
	fill: rgb(238, 238, 238);
	transition: fill 200ms
}

#contact a:hover { color: white; }
#contact a:hover svg * { fill: white; }
#contact dl {
	margin: 1em;
	flex: 0 0 60vw;
	text-align: center;
}
#contact dl dd {
	margin: 0;
	margin-top: .5em;
}

@media only screen and (min-width: 850px) {
	nav ul { justify-content: space-evenly; }
}

@media only screen and (min-width: 601px) {
	.head p { font-size: 1.25em; }
    nav li:hover:after { bottom: -90%; }
    nav li:hover a {color: rgb(124,143,191);}
    nav .active:after { bottom: 0%; }

    nav li:after {
		left: 0;
		transition: bottom 200ms;
		bottom: -105%;
	}

	.schedule {
		margin-top: 2.5em;
		transform: scale(0);
		transition: transform 300ms;
		transform-origin: 75% 0;
		border: solid 2px;
		box-shadow: 0px 6px 5px -4px rgba(50,50,50,.75);
		max-width: 90%;
		right: 2%;
		z-index: 100;
	}

	.schedule:after, .schedule:before {
		bottom: 100%;
		right: 10%;
		border: solid transparent;
		content: " ";
		height: 0;
		width: 0;
		position: absolute;
		pointer-events: none;
	}

	.schedule:after {
		border-color: rgba(136, 183, 213, 0);
		border-bottom-color: white;
		border-width: 36px;
		margin-left: -36px;
	}
	.schedule:before {
		border-color: rgba(194, 225, 245, 0);
		border-bottom-color: black;
		border-width: 39px;
		right: 9%;
	}
}

@media only screen and (max-width: 825px) {
    .appointment {
        flex: 100%;
        margin: 0;
        margin-top: 1em;
    }
}

@media only screen and (max-width: 600px) {
	#process { flex-direction: column; }
	nav ul {
		flex-direction: column;
	}
	nav ul li:not(.logo) a {padding: 0;}
	nav ul li {
		/* font-size: 4vw; */
		margin: 10px 0;
		transition: font-size 200ms;
		flex: 1 1 auto;
		display: block;
		width: 96%;
	}
	
    .schedule {
		padding: 8px 2%;
		transform: scaleY(0);
		transition: transform 300ms;
		transform-origin: top;
		width: 96%;
		overflow-y: scroll;
		z-index: 100;
	}
    
    .appointment {
        flex: 100%;
        margin: 0;
        margin-top: 1em;
    }
    
    .appointment br { display: none; }
	.content { padding: 1em 0;	}
    
    dl dd {
        margin-left: 0px;
        margin-bottom: 1em;
    }

    #contact {
    	display: block;
    	text-align: center;
    }
}

@media only screen and (min-width: 1000px) {
	.schedule {
        right: unset;
        left: 64%;
    }
    
    header br { display: none; }
    
    nav ul li {
        flex: auto;
    }
}