* {
  box-sizing: border-box;
}


/* TESTING VALUES */
/* 
html { 
	background: #e4e4e4;
}

header {
	border: 1px solid #ffcdd2;
}

nav {
	background: #bbdefb;
}

body {
	background: #fffef8;
}

main {
	background: #dcedc8;
}

footer {
	background: #ffecb3;
}
 */


/* BASE ITEMS */

html {
  
  /* height: 100vh; */
  /* width: 100vw; */
  margin: 0;
}

body {
  background: #fffef8;
  height: calc(100vh - 10px);
  box-shadow: 0 0 3px rgba(black, 0.33);
  margin: 1em 2em;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr; /*minmax(10px, 1fr) minmax(10px, 3fr);*/
  grid-template-rows: min-content auto 1fr auto;
  gap: 5px;
  justify-items: center;
  align-items: center;
  font-size: calc(14px + (26 - 14) * ((100vw - 300px) / (1600 - 300)));
  color: #565656;
  /* color: #A9A9A9; */
}

.AbramoScript {
	font-family: AbramoScript;
}

main {
  grid-column: 1 / 5;
}

footer {
  grid-column: 1 / 5;
}
/* HEADER */

header.top-site {
  grid-column: span 5 / auto; /* 1 / -1; */
  /* grid-row: span 5 / auto; */ /* 1 / 4;*/
  text-align: center;
  padding: 0 0 8vh 0; /* to account for H1 move */
  
}

header.top-site img.steamwhistle-linedrawing { 
	max-height: 20vh; 
	display: block; 
	overflow: hidden;
}

header.top-site h1 { 
	position: absolute; 
	top: 15vh; 
	left: 50%; 
	transform: translate( -50%, 0%); 
	font-size: 4em; 
	font-weight: normal; 
	color: #BB9847; 
	padding: 0; 
	margin: 0; 
}

@media(max-width: 750px) {
	header.top-site {
		padding: 0;
	}
	
	header.top-site img.steamwhistle-linedrawing {
		max-height: 15vh;
	}
	
	header.top-site h1 {
		font-size: 3em;
		top: 10vh;
	}
}

@media(max-width: 500px) {
	header.top-site img.steamwhistle-linedrawing {
		max-width: 100%;
	}
	
	header.top-site h1 {
		font-size: 3em;
		top: 5vh;
	}
	
	body {
		margin: 0.5em;
	}
}

@media(max-width: 400px) {
	header.top-site img.steamwhistle-linedrawing {
		max-width: 100%;
	}
	
	header.top-site h1 {
		font-size: 2.5em;
		top: 5vh;
	}
}


/* NAVIGATION */

nav {
	grid-column: 1 / 5;
	padding: 0 2em 0 2em;
	font-family: 'Playfair Display', serif; 
	font-size: 1em;
}

nav ul {
	list-style: none;
	display: grid; 
	justify-items: center;
	grid-template-columns: repeat(7, max-content);
	margin: 0;
}

nav ul li {
	text-align: center;
	position: relative;
}

nav ul li a {
	color: #2e0a0e;
	text-decoration: none;
	display: block;
	padding: 1em;
}

nav ul li a.current { 
	color: #9c094d;

}

nav ul li:hover {
	cursor: pointer; 
	text-decoration: underline;
}

nav ul li ul {
	display: none;
}

nav ul li:hover ul, nav ul li ul:hover {
	display: block;
	background: #fffef8;
	position: absolute;
	left: 0;
	width: min-content;
	padding: 0;
	font-size: 0.8em;
	filter: drop-shadow(0.1em 0.1em 0.1em #dbd0c3);
	z-index: 2;
}

@media(max-width: 750px) {
	nav {
		font-size: 1.2em;
	}
	
	nav ul {
		grid-template-columns: 1fr;
	}
	
	nav ul li {
		padding: 0.5em;
	}
	
	nav ul li:hover ul {
		position: relative;
	}
}
/* 
@media(max-width: 500px) {
	nav {
		font-size: 1em;
	}
	
	nav ul {
		grid-template-columns: 1fr;
	}
	
	nav ul li {
		padding: 0.25em;
	}
	
	nav ul li:hover ul {
		position: relative;
	}
}
 */
/* Collapsable version */
@media(max-width: 500px) {
	nav {
		font-size: 1em;
	}
	
	nav ul {
		grid-template-columns: 1fr;
		padding: 0;
		justify-items: center;
	}
	
	nav ul li {
		padding: 0.25em;
	}
	
	nav ul li a {
		padding: 0.25em;
	}
	
	nav ul li:hover ul, nav ul li ul:hover  {
		position: inherit;
		filter: none;
	}
	
	nav ul li ul.dropdown-content {
		display: grid;
		font-size: 0.8em;
	}
	
	nav ul li ul.nav-content-4 {
		grid-template-columns: repeat(4, 1fr);
	}
	
	nav ul li ul.nav-content-5 {
		grid-template-columns: repeat(5, 1fr);
	}
/* Changing content of "FAQ > What to Wear" with "FAQ > Fashion" on small screens for style	
	/* Add a pseudo element with the 
       text from attribute 'data-abbr' */
    .content-shrink[data-abbr]::after { 
        content: attr(data-abbr); 
    }
    
    /* Hide the original label */
    .content-shrink > span { display: none; }
	
	/* 
	nav ul li ul {
		display: block;
	}
	 */
}


/* GENERIC MAIN CONTENT */

main {
	padding: 0 2em 2em 2em;
}

main a:link, main a:visited {
	text-decoration: underline;
	color: #426A44;
}

main a:hover, main a:active {
	text-decoration-style: dashed;
	color: #426A44;
}

main ul li {
	padding: 0.5em;
}


main h2 {
	font-size: 3em; 
	font-weight: normal; 
	margin: 0.5em 0 0.5em 0;
}

main h2:nth-child {
	margin: 0 0 0.5em 0;
}

main h3 {
	font-weight: normal;
}

div.google-maps {
	position: relative;
	padding-bottom: 75%;
	height: 0;
	overflow: hidden;
	border: 1px solid #565656;
}

div.google-maps iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100% !important;
	height: 100% !important;
	border: none;
}

@media(min-width: 1000px) {
	div.google-maps {
		padding-bottom: 30%;
	}
	
	div.google-maps iframe {
		width: 100% !important;
		height: 100% !important;
	}
}



/* COUNTDOWN / INDEX PAGE */

section#CouplePortrait {
	position: relative;
}

section#CouplePortrait .portrait-overlay { 
	left: 0;
    position: absolute;
    text-align: center;
    top: 30px;
    width: 100%;
	font-size: 4em; 
	font-weight: normal; 
	color: #ffffff; /*#BB9847;*/
}

#CouplePortrait img { 
	height: auto; 
	width: 100%;
	border: 2px solid rgb(17,14,9); 
	overflow-x: hidden;
}

@media(max-width: 750px) {
	#CouplePortrait img { 
		height: auto;
		width: 100%;
	}
}

@media(max-width: 500px) {
	#CouplePortrait img { 
		height: auto;
		width: 100%;
	}
	
	section#CouplePortrait .portrait-overlay { 
		top: 0;
		position: relative;
		text-align: center;
		width: 100%;
		font-size: 3em; 
		font-weight: normal; 
		color: #565656;
	}
}

section.centered {
	text-align: center;
}

#countdown { 
	text-align: center; 
	/* height: 8em;
	margin-bottom: 3em;
	margin-top: -3em; */
}

#countdown p {
	line-height: 4em;
}

span.countdown-bg { 
	font-size: 10em; 
	/* line-height: 5em; */
	padding: 0;
	margin: 0;
}

span.countdown-sm { 
	font-size: 1em; 
	margin-right: 1em;
}

@media(max-width: 500px) {
	span.countdown-bg { 
		font-size: 8em; 
		/* line-height: 5em; */
		padding: 0;
		margin: 0;
	}

	span.countdown-sm { 
		font-size: 1em; 
		margin-right: 1em;
	}
}


form#homepage-rsvp button {
	width: 60%;
	margin-left: 1em;
	margin-right: 1em;
	padding: 1em;
	font-size: 110%;
}

/* VENUE & SCHEDULE */

table { table-layout: fixed; border-collapse: collapse; }

table th, td { padding: 1em; }

table tr {
	border-left: 0.25em solid #BB9847;
}

table tr:nth-child(even) {
	background-color: #f5f3ef;
}
/* 
table tr:nth-child(odd) {
	border-left: 0.25em solid #426A44;
}
 */



/* WEDDING PARTY */

section.wedding-party h3 {
	font-size: 2em;
}

div.wedding-party-member {
	display: grid;
	grid-template-columns: 1fr 3fr; /*minmax(10px, 1fr) minmax(10px, 3fr);*/
	gap: 5px;
	justify-items: center;
	align-items: center;
}

div.wedding-party-member:nth-child(even) {
	border-top: 2px solid #f5f3ef;
	margin-top: 1em;
	padding-top: 1em;
}

div.wedding-party-member header {
	grid-column: 1 / 2;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	grid-template-rows: 2fr 1fr;
	gap: 5px;
	align-items: center;
}

div.wedding-party-member header img {
	grid-row: 1 / span 1;
	margin-left: auto;
	margin-right: auto;
}

div.wedding-party-member-nametitle {
	grid-row: 2 / span 1;
	text-align: center;
}
/* 
div.wedding-party-member header h5 {
	grid-row: 3 / span 1;
	text-align: center;
} */

div.wedding-party-member header h4, h5 {
	margin: 0;
}

div.wedding-party-member section {
	grid-column: 2 / 3;
}

div.wedding-p-wrap-sarah {
	padding-left: 1em;
	border-left: 0.25em solid #9C094D;
}

div.wedding-p-wrap-kyle {
	padding-left: 1em;
	border-left: 0.25em solid #426A44;
}

div.wedding-p-wrap-mc {
	padding-left: 1em;
	border-left: 0.25em solid #BB9847;
}

img.wedding-party-portrait {
	max-width: 195px;
	max-height: auto;
	border: 1px solid #565656;
}


@media(max-width: 1050px) {
	div.wedding-party-member {
		grid-template-columns: 1fr 2fr; /*minmax(10px, 1fr) minmax(10px, 3fr);*/
	}
}

@media(max-width: 650px) {
	div.wedding-party-member {
		grid-template-columns: 1fr; /*minmax(10px, 1fr) minmax(10px, 3fr);*/
		/* grid-template-rows: 1fr 1fr; */
	}

	div.wedding-party-member header {
		grid-column: 1 / 1;
		grid-row: 1 / span 1;
		padding: 0;
		/* sub-header styles */
		display: grid;
		grid-template-columns: 1fr 1fr;
		grid-template-rows: 1fr;
		/* grid-template-rows: 2fr 1fr; */
		gap: 5px;
		align-items: center;
		/* margin-top: -3em; */
	}
	
	div.wedding-party-member section {
		grid-column: 1 / 1;
		grid-row: 2 / 3;
		/* margin-top: -5em; */ /* no idea why there is such a gap, but such is life */
	}
	
	/* settings within sub-header */
	div.wedding-party-member header img {
		grid-column: 1 / span 1;
		grid-row: 1 / span 1;
		margin-left: auto;
		margin-right: auto;
		margin-bottom: none;
		margin-top: none;
	}
	
	img.wedding-party-portrait {
		max-width: 125px;
	}
	

	div.wedding-party-member-nametitle {
		grid-column: 2 / span 1;
		grid-row: 1 / span 1;
		text-align: center;
	}
}




/* OUR STORY */

main > section.our-story {
	border-top: 2px solid #f5f3ef;
	margin-top: 1em;
	padding-top: 1em;
	padding-bottom: 1em;
}

main > section.our-story:first-child {
	border: none;
}


section.our-story-combo {
	display: grid;
	grid-template-columns: 1fr 3fr; /*minmax(10px, 1fr) minmax(10px, 3fr);*/
	gap: 5px;
	justify-items: center;
	align-items: center;
}

div.our-story-img {
	grid-column: 1 / 2;
}

img.wedding-story-img {
	max-width: 10em;
}

div.our-story-content section {
	grid-column: 2 / 3;
}

@media(max-width: 650px) {
	section.our-story-combo {
		grid-template-columns: 1fr; /*minmax(10px, 1fr) minmax(10px, 3fr);*/
		/* grid-template-rows: 1fr 1fr; */
	}
	/* 
	div.our-story-img {
		
	}
	 */
	img.wedding-story-img {
		max-width: 60%; /*125px;*/
		display: block;
		margin-left: auto;
		margin-right: auto;
	}
}


/* FAQ */

div.faq-padding {
	/* padding: 1em 0em 1em 1em; */
	padding: 1em 0 1em 1em;
	border-left: 0.25em solid #dbd0c3;
}

div.faq-padding > h4:first-child {
	margin-top: 0;
}

div.faq-padding > p, div.faq-padding > ul li {
	font-size: 90%;
}

img.weddingparty-colours {
	max-width: 80%;
	height: auto;
}

/* RSVP FORM */

form small {
	/*display: block;*/
	color: #c5bbaf;
}

form label {
	display: block;
	padding: 0.25em;
	margin-bottom: 0.25em;
}

form ul {
	padding: 0;
}

form fieldset {
	margin-bottom: 1em;
	border: none;
	padding: 0;
}

form fieldset legend {
	color: #9c094d;
	margin-bottom: 0.75em;
}

form#rsvp-info-form ul li, form#rsvp-party-form ul li {
		list-style: none;
		padding: 0.25em;
	}
	
	form#rsvp-info-form textarea {
		width: 70%;
		resize: vertical;
		padding: 0.75em;
		margin-top: 0.25em;
	}
	
	form#rsvp-info-form select {
		width: 40%;
		padding: 0.75em;
	}
	
	form#rsvp-info-form input[type=text], form#rsvp-party-form input[type=text], form#rsvp-info-form input[type=email] {
		width: 60%;
		padding: 0.75em;
	}
	
	form#rsvp-info-form input[type="radio"] {
		margin: 3px 10px 3px 3px;
		color: #9c094d;
	}
	
	

span.meal-desc {
	font-size: 0.8em;
}

button { 
	background: #fffef8; 
	color: #9c094d; 
	border: 1px solid #9c094d; 
	padding: 0.75em 2em; 
} 
	
button:hover { 
	background: #9c094d; 
	color: #fff; 
	border: 1px solid #9c094d; 
	cursor: pointer; 
} 

@media(min-width: 1000px) {
	form#rsvp-info-form button, form#rsvp-party-form button {
		width: 60%;
		font-size: 1.2em;
	}
}

@media(max-width: 1000px) {
	form#rsvp-info-form button, form#rsvp-party-form button {
		width: 80%;
		font-size: 1.2em;
	}
	
	form#rsvp-info-form textarea, form#rsvp-party-form textarea {
		width: 80%;
		font-size: 1.2em;
	}
}

@media(max-width: 800px) {
	form#rsvp-info-form button, form#rsvp-party-form button {
		width: 100%;
	}
	
	form#rsvp-info-form input[type=text], form#rsvp-party-form input[type=text], form#rsvp-info-form input[type=email] {
		width: 100%;
	}
	
	form#rsvp-info-form textarea, form#rsvp-party-form textarea {
		width: 100%;
		font-size: 1em;
	}
}

/* PASS REQUEST PAGE */

form#entry input[type=password] {
	width: 100%;
	padding: 0.75em;
}

form#entry button {
	width: 100%;
}




/* FOOTER */

footer { 
	border-top: 2px solid #f5f3ef;
	justify-content: center; 
	font-size: 0.6em; 
	font-style: italic; 
	padding-bottom: 1em;
}

span.love { 
	color: rgb(156,9,77); /* #9C094D */
}

span.feedback-rounds {
	padding: 5px;
	background: #565656;
	color: #fff;
	margin-left: 3px;
	margin-right: 3px;
}
