@charset "UTF-8";

/* ========================================
   PAGE-STYLING.CSS - Complete Visual Styles
   Colors, Typography, Backgrounds, Borders, Components
   ======================================== */

/* ========================================
   SITE-SPECIFIC VARIABLES
   ======================================== */

:root {
	--page-bg-color: rgba(255,255,255,0.86); 

	/* Colors - Dark Green/Blue Environmental Theme */
	--color-primary: #1a7a4f;  /* Forest green for links */
	--color-primary-hover: #0d5c3a;  /* Darker green for hover */
	--color-background: #F0FFF2;
	--color-text: #1e4a35;  /* Dark green-blue for text */
	--color-text-secondary: #2d5a47;  /* Secondary text color */
	--color-border: #a8c9b8;  /* Soft green border */
	--color-focus: #1a7a4f;  /* Match primary color */
	
	/* Text Box Colors */
	--text-box-border: #6FA478;
	--text-box-bg: #FFFAF4;
	--text-box-title-bg: #C6E7D2;
	--text-shadow-color: #8fbd96;
	
	/* Text Element Colors (aliases for consistency) */
	--text-element-border: #6FA478;
	--text-element-bg: #FFFAF4;
	--text-element-title-bg: #C6E7D2;
	
	/* Cell Styling */
	--cell-border: 1px solid var(--color-border);
	
	/* Typography - Font Families */
	--font-body: 'Quicksand', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	--font-heading: 'Caveat Brush', 'Quicksand', cursive;
	--font-handwritten: 'Architects Daughter', cursive;
	
	/* Typography - Fluid Scaling */
	--font-size-base: clamp(0.875rem, 0.8rem + 0.4vw, 1rem);
	--font-size-small: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
	--font-size-h1: clamp(1.5rem, 1.25rem + 1.25vw, 2.5rem);
	--font-size-h2: clamp(1.25rem, 1.1rem + 0.75vw, 1.875rem);
	--font-size-h3: clamp(1.125rem, 1rem + 0.625vw, 1.5rem);
}

/* ========================================
   BODY & PAGE STYLING
   ======================================== */

body {
	background-color: var(--color-background);
	background-image: url("https://cache.e-cards.com/images/backgrounds/Minneapolis_reeds-02.jpg"); 
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	background-attachment: fixed;
}

#page {
	border: 2px solid black;
	border-radius: 1.4em;
	background-color: var(--page-bg-color);
}

hr {
	color: rgba(20, 106, 0, 0.149);
	width: 98%;
}

/* ========================================
   TYPOGRAPHY - SITE THEME
   ======================================== */


#slogan_text {
	font-family: var(--font-handwritten);
}




/* ========================================
   CONTENT BOX
   ======================================== */
   

/* ========================================
	Nav Blocks
	======================================== */

	#member_nav {
		margin-top: .4em;
	}
	
	#us_nav {
		margin-top: 1em;
	}




/* ================================================================
   MOBILE FIRST - Base Styles (< 768px)
   ================================================================ */

/* Mobile performance fix - scroll background instead of fixed */
body {
	background-attachment: scroll;
}

#page {
	padding: var(--space-xs);
	border-radius: 0.6em;
}

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

#header_section {
	text-align: center;
}

/* Logo Cell */
#logo_cell {
	padding: var(--space-sm);
	box-sizing: border-box;
}

/* Logo - Responsive with max constraints */
#site_logo {
	background-image: url('https://cache.e-cards.com/images/logos/ecards-logo-small-2023.png');
	background-repeat: no-repeat;
	background-size: contain;
	background-position: left center;
}

/* Mobile Menu Button */
#mobile_menu_button {
	width: 50px;
	height: 49px;
	background-image: url('https://cache.e-cards.com/images/nav-icons/mobile/nav-menu-drop.png');
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	border: none;
	cursor: pointer;
	padding: 0;
}

#mobile_menu_button:hover {
	opacity: 0.9;
}

#slogan_cell {
	padding: var(--space-sm);
}

/* Top Navigation Icons (Login/Join) */
.top_nav_icon {
	display: inline-block;
	text-align: center;
	margin: 0 0.5em;
}

.top_nav_icon a {
	text-decoration: none;
	color: var(--color-text);
	display: block;
	transition: all 0.2s ease;
}

.top_nav_icon a:hover {
	transform: translateY(-2px);
}

.top_nav_icon a:hover .button_text {
	color: var(--color-primary);
}

.top_nav_icon img {
	display: block;
	width: 60px;
	height: auto;
	margin: 0 auto 0.25em;
	transition: transform 0.2s ease;
}

.top_nav_icon a:hover img {
	transform: scale(1.05);
}

.button_text {
	margin: 0;
	font-size: var(--font-size-small);
	font-weight: bold;
	font-family: var(--font-handwritten);
	transition: color 0.2s ease;
}

#slogan_text {
	font-size: 1.1em;
	font-style: italic;
	margin: 0.5em .5em 0em .5em;	
	max-width: 700px;
}

#slogan_text p {
	margin: 0;
}

.slogan-primary {
	font-size: 1em;
	font-weight: bold;
	margin-bottom: 0.3em;
}

.slogan-secondary {
	font-size: 0.85em;
	color: var(--color-text-secondary);
}


.featured_card_box {
	text-align: center;
}

.featured_card img {
	margin: 1em auto 1em auto;
	padding: 0px;
	border: 10px solid #fffffb;
	border-radius: 4px;
	box-shadow: 1px 1px 8px 3px #aaaaaa;
	max-width: 90%;
	height: auto;
}


/* ========================================
   MAIN CONTENT - MOBILE
   ======================================== */

/* Mobile navigation styling */
#pre_content.show-mobile-nav {
	padding: 1em;
	background-color: rgba(255, 255, 255, 0.95);
	border: 1px solid var(--color-border);
	border-radius: 0.5em;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

#featured_content {
	padding: var(--cell-padding);
}

#additional_content {
	padding: var(--cell-padding);
}

/* ========================================
   FOOTER - MOBILE
   ======================================== */

#bottom_nav_cell ul {
	list-style: none;
	padding: 0;
	margin: 1em 0;
	text-align: center;
}

#bottom_nav_cell li {
	display: inline-block;
	margin: 0 0.5em;
}

#bottom_nav_cell li:before {
	content: " [ ";
	color: var(--color-border);
}

#bottom_nav_cell li:after {
	content: " ] ";
	color: var(--color-border);
}

#bottom_slogan {
	text-align: center;
	font-size: 0.9em;
	color: var(--color-text-secondary);
	margin: 1em 0;
}

/* Social Icons */
#social_icons {
	padding: 1em 0;
}

#social_icons {
	list-style: none;
}

.social_icon_link {
	display: block;
	width: 32px;
	height: 32px;
	transition: transform 0.2s ease;
}

.social_icon_link:hover {
	transform: scale(1.1);
}

.social_icon_link img {
	width: 100%;
	height: 100%;
	display: block;
}

#bottom_nav_links {
	font-size: .8rem;
}

/* ================================================================
   RESPONSIVE ADJUSTMENTS - MOBILE
   ================================================================ */

@media screen and (max-width: 768px) {
}

/* ================================================================
   TABLET - Medium Screens (768px - 1023px)
   ================================================================ */

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

	/* ================== Header ====================== */
	
	#logo_cell {
		text-align: left;
		padding: var(--cell-padding);
	}
	
	#slogan_cell {
		padding: var(--cell-padding);
	}
	
	#join_login_cell {
		text-align: right;
		padding: var(--cell-padding);
	}

	/* ================== Main Content ====================== */
	
	/* Reset mobile nav styling at tablet size and up */
	#pre_content.show-mobile-nav {
		padding: var(--cell-padding);
		background-color: transparent;
		border: none;
		border-radius: 0;
		box-shadow: none;
	}
	
	#featured_content {
		padding: var(--cell-padding);
	}
	
	#additional_content {
		padding: var(--cell-padding);
	}
	
	/* ================== Footer ====================== */
	
	#bottom_nav_cell {
		text-align: left;
		padding: 0;
	}
	
	#bottom_nav_cell li {
		display: block;
		margin: 0.1em 0;
	}
	
	#bottom_slogan {
		text-align: center;
		padding: 0;
	}
	
	#social_cell {
		text-align: right;
		padding: 0;
	}

}

/* ================================================================
   DESKTOP - Large Screens (1024px+)
   ================================================================ */

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

	/* Re-enable fixed background on desktop for better performance */
	body {
		background-attachment: fixed;
	}

	.grid_cell {
		text-align: center;
	}
	
	/* ================== Header ====================== */
	
	#logo_cell {
		text-align: left;
		padding: var(--cell-padding);
	}
	
	#slogan_cell {
		padding: 2%;
	}
	
	#join_login_cell {
		text-align: right;
		padding: var(--cell-padding);
	}

	/* ================== Main Content ====================== */

	#pre_content {
		padding: var(--cell-padding);
		text-align: left;
	}
	
	/* Reset any mobile nav styling at desktop size */
	#pre_content.show-mobile-nav {
		background-color: transparent;
		border: none;
		border-radius: 0;
		box-shadow: none;
	}
	
	#featured_content {
		padding: var(--cell-padding);
	}
	
	#additional_content {
		padding: var(--cell-padding);
	}
	
	/* ================== Footer ====================== */
	
	#bottom_nav_cell {
		text-align: left;
		padding: 0 0 0 var(--space-md);
	}
	
	#bottom_nav_cell li {
		display: block;
		margin: 0.1em 0;
	}
	
	#bottom_nav_cell li:before {
		content: "";	
	}
	
	#bottom_nav_cell li:after {
		content: "";	
	}
	
	#bottom_slogan {
		padding: 0;
	}
	
	#social_cell {
		text-align: right;
		padding: 0 var(--space-md) 0 0;
	}

}

#show_more_thumbs {
	display: inline-block;
	margin: 1em 0;
	padding: 0.5em 1em;
	cursor: pointer;
	font-weight: 500;
	font-size: 1.5em;
	white-space: nowrap;
}



/* Greeting card/postcard style */
.card_styled_image {
	border: 12px solid #ffffff;
	border-radius: 4px;
	box-shadow: 
		0 2px 4px rgba(0, 0, 0, 0.1),
		0 4px 12px rgba(0, 0, 0, 0.08);
	max-width: 100%;
	height: auto;
	background: #ffffff;
}

#page_overview_text {
	margin: 0em 0 2em 0;
}

.card_thumb:hover {
	opacity: .6;
}

.card_thumb:hover {
	opacity: .6;
}

.card_thumb:hover {
	opacity: .6;
}

.card_thumb:hover {
	opacity: .6;
}

//----------------------------------
// Thumb icons
//----------------------------------

.card_thumb:hover {
	opacity: .6;
}

/* Wiggle animation keyframes */
@keyframes wiggle {
	0%, 100% { transform: rotate(0deg); }
	25% { transform: rotate(-10deg); }
	75% { transform: rotate(10deg); }
}

.favorite_button:hover, .delete_button:hover, .edit_button:hover {
	cursor: pointer;
	opacity: 0.7;
	transition: opacity 0.2s ease;
}

.favorite_button:hover {
	animation: wiggle 0.5s ease-in-out;
}

.delete_button:hover,
.edit_button:hover {
	transform: scale(1.1);
	transition: all 0.2s ease;
}

/* Favorite Heart Button */
.favorite_button,
.delete_button,
.edit_button {
	max-height: 15px;
	max-width: 15px;
	width: 15px;
	height: 15px;
	background: transparent !important;
	background-color: transparent !important;
	border: none !important;
	border-radius: 0 !important;
	margin: 0px 3px 0px 0px;
	padding: 0 !important;
	cursor: pointer;
	line-height: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	outline: none !important;
	box-shadow: none !important;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}

.favorite_button img,
.delete_button img,
.edit_button img {
	display: block;
	vertical-align: middle;
	background: transparent !important;
	border: none !important;
	max-width: 100%;
	max-height: 100%;
}

.favorite_button:hover,
.favorite_button:focus,
.favorite_button:active,
.delete_button:hover,
.delete_button:focus,
.delete_button:active,
.edit_button:hover,
.edit_button:focus,
.edit_button:active {
	background: transparent !important;
	background-color: transparent !important;
	outline: none !important;
	box-shadow: none !important;
	border: none !important;
}

.favorite_button::before,
.favorite_button::after,
.delete_button::before,
.delete_button::after,
.edit_button::before,
.edit_button::after {
	content: none !important;
	display: none !important;
}



/* Thumb info container - add space above */
.thumb_info {
	margin-top: 0.5em;
}

/* Container to keep icons inline and centered */
.thumb_title {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 2px;
}

.thumb_title_text {
	margin-right: 5px;
	max-width: 150px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}






/* Active/Selected State - matches body[data-page] with link[data-nav] */
body[data-page="home"] .nav_vertical li a[data-nav="home"],
body[data-page="profile"] .nav_vertical li a[data-nav="profile"],
body[data-page="choose_card"] .nav_vertical li a[data-nav="choose_card"],
body[data-page="pickup"] .nav_vertical li a[data-nav="pickup"],
body[data-page="reminders"] .nav_vertical li a[data-nav="reminders"],
body[data-page="addresses"] .nav_vertical li a[data-nav="addresses"],
body[data-page="my_images"] .nav_vertical li a[data-nav="my_images"],
body[data-page="favorites"] .nav_vertical li a[data-nav="favorites"],
body[data-page="cardbox"] .nav_vertical li a[data-nav="cardbox"],
body[data-page="gifts"] .nav_vertical li a[data-nav="gifts"],
body[data-page="artists"] .nav_vertical li a[data-nav="artists"],
body[data-page="photographers"] .nav_vertical li a[data-nav="photographers"],
body[data-page="about"] .nav_vertical li a[data-nav="about"],
body[data-page="contact"] .nav_vertical li a[data-nav="contact"],
body[data-page="support"] .nav_vertical li a[data-nav="support"],
.nav_vertical li a.active {
	font-weight: 700;
	color: var(--color-primary-hover);
	background-color: rgba(26, 122, 79, 0.05);
}

body[data-page="home"] .nav_vertical li a[data-nav="home"]::before,
body[data-page="profile"] .nav_vertical li a[data-nav="profile"]::before,
body[data-page="choose_card"] .nav_vertical li a[data-nav="choose_card"]::before,
body[data-page="pickup"] .nav_vertical li a[data-nav="pickup"]::before,
body[data-page="reminders"] .nav_vertical li a[data-nav="reminders"]::before,
body[data-page="addresses"] .nav_vertical li a[data-nav="addresses"]::before,
body[data-page="my_images"] .nav_vertical li a[data-nav="my_images"]::before,
body[data-page="favorites"] .nav_vertical li a[data-nav="favorites"]::before,
body[data-page="cardbox"] .nav_vertical li a[data-nav="cardbox"]::before,
body[data-page="gifts"] .nav_vertical li a[data-nav="gifts"]::before,
body[data-page="artists"] .nav_vertical li a[data-nav="artists"]::before,
body[data-page="photographers"] .nav_vertical li a[data-nav="photographers"]::before,
body[data-page="about"] .nav_vertical li a[data-nav="about"]::before,
body[data-page="contact"] .nav_vertical li a[data-nav="contact"]::before,
body[data-page="support"] .nav_vertical li a[data-nav="support"]::before,
.nav_vertical li a.active::before {
	opacity: 0.8;
	transform: translateY(-50%) translateX(0);
}
