/************************************************************************
*
*   G L O B A L  C S S
*
*   Author:  iGeekify
*   Date:    27 July 2010
*   Web:     http://work.igeekify.com
*   Email:   info@igeekify.com
*   Version: 1.0
*
*************************************************************************/


/*-----------------------------------------------------------------------
Control Panel
------------------------------------------------------------------------*/

body
{
	font-family:Arial, Helvetica, sans-serif;
}

.float-left
{
	float:left;
}

.float-right
{
	float:right;
}

.clear
{
	clear:both;
}

/*-----------------------------------------------------------------------
Containers
------------------------------------------------------------------------*/

.wrapper
{
	margin:0 auto;
	max-width:1140px;
	width:92%;
}

#frame-header
{
	/* background:#62a1c8; */
	background:#3F5178;
}

#frame-action
{
	background:#fafafa;
	border-bottom:1px solid #ffffff;
	border-top:1px solid #ffffff;
	padding:25px 0 30px 0;
	height:115px;
}

#frame-splash
{
	/* background:url(../images/background-splash.jpg) repeat-x; */
	height:453px;
	overflow:hidden;
	position:relative;
	width:100%;
}

#frame-portfolio
{
	padding:40px 0;
}

#frame-blog
{
	padding:40px 0 10px;
}

#frame-introduction
{
	/* background:#212121 url(../images/background-subpage-splash.jpg) no-repeat center;  */
	background:#212121;
	min-height:400px;
}

#frame-content
{
	padding:30px 0 20px;
}

#frame-footer
{
	margin:0 0 20px;
}

/*-----------------------------------------------------------------------
Fonts
------------------------------------------------------------------------*/

p a,
li a
{
	color:#9fc251;
	text-decoration:underline;
}

/*-----------------------------------------------------------------------
Buttons
------------------------------------------------------------------------*/

.button-green
{
	width:152px;
}

.button-green a, h3 a
{
	background:url(../images/button-green.png) no-repeat;
	color:#ffffff;
	display:block;
	font-size:18px;
	font-weight:bold;
	height:44px;
	line-height:44px;
	text-align:center;
	text-decoration:none;
	width:152px;
}

.button-green a:hover
{
	background-position:bottom;
}

/*-----------------------------------------------------------------------
Bullets
------------------------------------------------------------------------*/

.bullet
{
	margin:20px 0;
}

.bullet li
{
	background:url(../images/bullet-arrow.gif) 0 6px no-repeat;
    color: #858181;
	font-size: 12px;
    line-height: 20px;
	padding:5px 0 5px 20px !important;
}

/*-----------------------------------------------------------------------
Navigation
------------------------------------------------------------------------*/

/*--Main-- Navigation---------------------------------------------------*/

#navigation-main li
{
	height:30px;
	float:left;
	font-size:16px;
	font-weight:bold;
	line-height:100px;
	margin:36px 0 0 -7px;
}

#navigation-main li a
{
	border-radius: 3px;
	color:#ffffff;
	display:block;
	height:30px;
	line-height:31px;
	padding:0 15px;
	text-align:center;
	text-decoration:none;
	-webkit-border-radius: 3px;
	-khtml-border-radius: 3px;
}

@-moz-document url-prefix() {
    #navigation-main li a {
        -moz-border-radius: 3px;
    }
}


#navigation-main li.active a,
#navigation-main li a:hover
{
	/* background:#276b96; */
	background:#687798;
}

/*--Hamburger (mobile only; hidden on desktop)-------------------------*/

.nav-toggle,
.nav-overlay
{
	display:none;
}

.nav-toggle
{
	background:none;
	border:0;
	outline:none;
	-webkit-appearance:none;
	appearance:none;
}

/*--Footer Navigation---------------------------------------------------*/

#navigation-footer li
{
	float:left;
	margin:3px 0 0;
}

#navigation-footer li span
{
	margin:0 5px;
}

/*-----------------------------------------------------------------------
Logo
------------------------------------------------------------------------*/

#logo-main
{
	left:10px;
	position:relative;
	top:9px;
}

/*-----------------------------------------------------------------------
Homepage
------------------------------------------------------------------------*/

/*--Action--------------------------------------------------------------*/

#frame-action h1
{
	color:#858181;
	float:left;
	font-size:20px;
	font-style:italic;
	font-weight:normal;
	width:790px;
}

#frame-action .button-green
{
	margin:20px 0 0;
}

/*--Splash--------------------------------------------------------------*/

#welcome
{
    background: none repeat scroll 0 0 #62A1C8;
    height: 203px;
    left: 50%;
    margin: 83px 0 0 -300px;
    padding: 35px;
    position: absolute;
    width: 530px;
    z-index: 2;
}

#welcome h1
{
	color:#ffffff;
	font-size:30px;
	margin:0 0 15px;
}

#welcome p
{
	color:#d9effd;
	font-size:18px;
	line-height:24px;
	margin:0 0 20px;
}

#welcome p strong
{
	color:#ffffff;
}

#close-welcome
{
	background:url(../images/button-close.png);
	cursor:pointer;
	height:30px;
	right:-10px;
	position:absolute;
	top:-10px;
	width:30px;
	z-index:3;
}

#close-welcome:hover
{
	background-position:bottom;
}

#frame-splash li .splash-image
{
	height:151px;
	overflow:hidden;
	position:relative;
	width:239px;
}

#frame-splash li .splash-image img
{
	position:absolute;
	top:-151px;
}

#frame-splash li .splash-image img.active
{
	top:0;
}

#frame-splash input
{
	display:none;
}

/*--Content------------------------------------------------------------*/

#frame-content .column
{
	float:left;
	margin:0 4% 0 0;
	width:30.6%;
}

#frame-content .end
{
	margin:0;
}

#frame-content h2
{
	color:#3F5178;
	font-size:18px;
	margin:0 0 10px;
}

#frame-content p
{
	color:#858181;
	font-size:1rem;
	line-height:20px;
	margin:0 0 15px;
}

#frame-content p a:hover
{
	text-decoration:none;
}

/*--Footer--------------------------------------------------------------*/

#frame-footer .wrapper
{
	border-top:1px solid #dddddd;
	color:#909090;
	font-size:1rem;
	line-height:18px;
	padding:20px 0 0;
}

#frame-footer .wrapper a
{
	color:#909090;
	text-decoration:none;
}

#frame-footer .wrapper a:hover
{
	text-decoration:underline;
}

/*-----------------------------------------------------------------------
Subpage
------------------------------------------------------------------------*/

/*--Global--------------------------------------------------------------*/

#frame-introduction .wrapper
{
	padding:63px 0 0;
	display:flex;
	gap:0 30px;
}

#frame-introduction .left-column
{
	flex:0 0 63%;
	width:63%;
}

#frame-introduction .right-column
{
	flex:1 1 auto;
}

#frame-introduction h1
{
	color:#ffffff;
	font-size:40px;
	font-weight:normal;
	margin:0 0 10px;
}

#frame-introduction h2
{
	color:#ffffff;
	font-size:20px;
	font-style:italic;
	font-weight:normal;
	margin:0 0 15px;
}

#frame-introduction h3
{
	color:#ffffff;
	font-size:16px;
	margin:59px 0 10px;
}

#frame-introduction p
{
	color:#c3c3c3;
	font-size:1rem;
	line-height:20px;
	margin:0 0 15px;
}

#frame-content .left-column
{
	float:left;
	width:620px;
}

#frame-content .right-column
{
	float:right;
	width:310px;
}

/*--About Us------------------------------------------------------------*/

#office-photos ul
{
	padding:10px 0 0;
	width:307px;
}

#office-photos li
{
	float:left;
	height:58px;
	overflow:hidden;
	position:relative;
	margin:0 0 4px 3px;
	width:59px;
}

#office-photos li.first
{
	margin:0 0 4px;
}

#office-photos li:hover img
{
	position:absolute;
	top:-58px;
}

#frame-content .staff-member
{
	float:left;
	margin:0 20px 0 0;
	width:224px;
}

#frame-content .end
{
	margin:0;
}

#frame-content .staff-member p strong
{
	color:#62a1c8;
	display:block;
	font-size:1rem;
	padding:10px 0 0;
}

#frame-content .staff-member p em
{
	color:#333333;
}

#frame-content .staff-member p
{
	margin:0 0 10px;
}

/*--Portfolio/Blog------------------------------------------------------*/

#frame-portfolio h1,
#frame-blog h1
{
	color:#62a1c8;
	font-size:40px;
	font-weight:normal;
	padding:0 0 5px;
}

#frame-portfolio h2,
#frame-blog h2
{
	color:#727171;
	font-size:20px;
	font-style:italic;
	font-weight:normal;
}

#frame-portfolio h3,
#frame-blog h3
{
	/*border-bottom:1px solid #cecece;*/
	color:#62a1c8;
	font-size:16px;
	margin-bottom: 15px;
	padding:0 0 10px;
}

#frame-portfolio p,
#frame-blog p
{
	color:#858181;
	font-size:1rem;
	line-height:20px;
	margin:0 0 20px;
}

#portfolio
{
	border-top:1px solid #e1e1e1;
	margin:20px 0 0;
	padding:25px 0 0;
	display:flex;
	gap:30px;
}

#categories
{
	background:#ececec;
	padding:10px;
	flex:0 0 270px;
	width:270px;
}

#categories li
{
	border-bottom:1px solid #e1e1e1;
	color:#858181;
	font-size:1rem;
	line-height:20px;
	padding:10px 0;
}

#categories li.end
{
	border:none;
}

#categories li a
{
	color:#858181;
	text-decoration:none;
}

#categories li.current a
{
	color:#62A1C8;
}

#categories li a:hover
{
	color:#9FC251;
	font-style:italic;
}

#folio-items
{
	flex:1 1 auto;
}

#portfolio .clear
{
	display:none;
}

#blog-items
{
	width:650px;
}

#blog-items li
{
	padding:0 0 30px;
}

#blog-items .article-image
{
	width:121px;
}

#blog-items .article-excerpt
{
	width:520px;
}

#blog-items .article-excerpt h2,
#frame-blog .article-content h2
{
	color:#62a1c8;
	font-size:16px;
	font-style:normal;
	font-weight:bold;
}

#blog-items .back-links
{
	padding:20px 0 30px;
}

#blog-items .back-links li
{
	color:#858181;
	float:left;
	font-size:12px;
	padding:0;
}

#blog-items .back-links li a
{
	text-decoration:none;
}

#blog-items .back-links li a:hover
{
	text-decoration:underline;
}

#blog-items .back-links span
{
	margin:0 3px;
}

#frame-blog .article-content h2
{
	margin:0 0 10px;
	padding:0;
}

#frame-blog .article-content h3
{
	border:none;
	color:#555555;
	font-size:1rem;
	margin:20px 0 10px;
	padding:0;
}

#blog-items .article-excerpt p,
#frame-blog .article-content p
{
	font-size:12px;
	margin:5px 0 0;
	line-height:20px;
}

#blog-items .article-excerpt p.date
{
	color:#5f5959;
	font-size:11px;
	margin:5px 0 0;
}

#blog-items .article-excerpt p.more-link
{
	margin:15px 0 0;
}


#folio-items ul
{
	list-style: disc;
	margin-left: 22px;
	margin-bottom: 22px;
}
#folio-items ul li
{
	list-style-type: disc;
	margin-bottom: 10px;
}

/* #folio-items li
{
	float:left;
	height:132px;
	margin:0 0 10px 10px;
	overflow:hidden;
	position:relative;
	width:210px;
}

#folio-items li:hover img
{
	position:absolute;
	top:-132px;
} */

/*--Why choose me?------------------------------------------------------*/

#benefits li
{
	background:url(../images/bullet-tick.gif) 0 10px no-repeat;
	color:#ffffff;
	font-size:1rem;
	line-height:30px;
	padding:0 0 0 30px;
}

#features li
{
	float:left;
	margin-top:10px;
	width:238px;
}

#features li h4
{
	color:#666666;
	font-size:12px;
	margin:0;
	padding:0;
}

.icon-design{background:url(../images/icon-design.gif) no-repeat; padding:0 0 0 52px;}
.icon-branding{background:url(../images/icon-branding.gif) no-repeat; margin:0 0 0 40px; padding:0 0 0 52px;}
.icon-development{background:url(../images/icon-development.gif) no-repeat; padding:0 0 0 52px;}
.icon-print{background:url(../images/icon-print.gif) no-repeat; margin:0 0 0 40px; padding:0 0 0 52px;}

.testimonial-container
{
	background:#f1f7fa;
	border:1px solid #c1e1f4;
	margin:25px 10px 0;
	padding:20px 15px 30px;
	position:relative;
	width:260px;
}

.quotation-left
{
	background: url(../images/icon-quote-left.png) no-repeat;
	height:25px;
	position:absolute;
	left:-10px;
	top:-10px;
	width:27px;
}

.quotation-right
{
	background: url(../images/icon-quote-right.png) no-repeat;
	bottom:-10px;
	height:25px;
	position:absolute;
	right:-10px;
	width:27px;
}


#frame-content .testimonial-container p
{
	color:#62a1c8;
}

#frame-content .testimonial-container cite
{
	color:#62a1c8;
	font-size:1rem;
	font-style:normal;
	font-weight:bold;
}

#frame-content .testimonial-container cite em
{
	display:block;
	font-size:12px;
	font-weight:normal;
}

/*--Contact Us---------------------------------------------------------*/

#map iframe
{
	border:1px solid #cdcbcb;
	margin:0 0 20px;
}

#details dl
{
	color:#858181;
	font-size:12px;
	line-height:20px;
}

#details dt
{
	clear:both;
	font-weight:bold;
	float:left;
	width:70px;
}

#details dd
{
	float:right;
	width:240px;
}

#details .address
{
	margin:15px 0 0;
}

/*-----------------------------------------------------------------------
Forms
------------------------------------------------------------------------*/

#frame-introduction h2#contact-message
{
	font-size:16px;
	margin:15px 0 0;
}

#contact-message .contact-success,
#contact-message .contact-error
{
	display:none;
}

#contact-message .contact-success
{
	color: #b2ce74;
}

#contact-message .contact-error
{
	color:#ff0000;
}

#note h4
{
	color:#ffffff;
	font-size:1rem;
	margin:73px 0 0;
}

#note p
{
	color:#c3c3c3;
	line-height:20px;
}

#note p a
{
	color:#ffffff;
}

#note p a:hover
{
	text-decoration:none;
}

/* Two-column layout for the contact form: name+email stack on the left,
   message+button on the right. Grid instead of the old float/absolute
   approach - absolutely-positioned children don't contribute to their
   parent's height, so the form box was collapsing to just the left
   column's height and the button was spilling down into the footer. */
#contact-form .form-wrapper > form
{
	display:grid;
	grid-template-columns:290px 290px;
	gap:0 40px;
	align-content:start;
}

#contact-form .form-field:nth-of-type(1)
{
	grid-column:1;
	grid-row:1;
}

#contact-form .form-field:nth-of-type(2)
{
	grid-column:1;
	grid-row:2;
}

#contact-form .form-field:nth-of-type(3)
{
	grid-column:2;
	grid-row:1 / 3;
}

#contact-form .buttons
{
	grid-column:2;
	grid-row:3;
}

/* ========== RESPONSIVE DESIGN ========== */
/* Tablet: 769px - 1139px */
@media (max-width: 1139px) {
	.wrapper {
		width: 95%;
	}

	#frame-introduction .wrapper {
		display: flex;
		gap: 20px;
	}

	#frame-introduction .left-column {
		flex: 0 0 60%;
	}

	#frame-introduction .right-column {
		flex: 1 1 auto;
	}

	#portfolio {
		gap: 20px;
	}

	#categories {
		width: 240px;
		flex: 0 0 240px;
	}

	#folio-items {
		font-size: 0.95rem;
	}

	h1 { font-size: 32px; }
	h2 { font-size: 18px; }
}

/* Mobile: under 769px */
@media (max-width: 768px) {
	/* Off-canvas nav drawer sits just off the right edge; keep it from
	   widening the page and causing a horizontal scroll. */
	html, body {
		overflow-x: hidden;
	}

	.wrapper {
		width: 100%;
		padding: 0 18px;
		box-sizing: border-box;
	}

	/* Header */
	#frame-header .wrapper {
		display: flex;
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	#logo-main {
		float: none;
		margin-bottom: 15px;
		width: 100%;
		height: auto !important;
	}

	#logo-main img {
		max-width: 280px;
		height: auto;
	}

	/* Keep header row so hamburger sits top-right, logo centered */
	#frame-header .wrapper {
		flex-direction: row;
		position: relative;
		justify-content: center;
		padding-bottom: 20px;
	}

	#logo-main {
		margin-bottom: 0;
		text-align: center;
	}

	#navigation-main {
		float: none;
		width: auto;
		margin-bottom: 0;
	}

	/* Show hamburger button, top-right (aligned near logo, not padded box) */
	.nav-toggle {
		display: block;
		position: absolute;
		top: 12px;
		right: 20px;
		width: 44px;
		height: 44px;
		padding: 10px;
		box-sizing: border-box;
		cursor: pointer;
		z-index: 1002;
		background: #687798;
		border-radius: 6px;
	}

	.nav-toggle span {
		display: block;
		height: 3px;
		margin: 4px 0;
		border-radius: 2px;
		background: #ffffff;
		transition: transform 0.3s ease, opacity 0.2s ease;
	}

	/* Open => turn bars into an X */
	#navigation-main.nav-open .nav-toggle span:nth-child(1) {
		transform: translateY(7px) rotate(45deg);
	}
	#navigation-main.nav-open .nav-toggle span:nth-child(2) {
		opacity: 0;
	}
	#navigation-main.nav-open .nav-toggle span:nth-child(3) {
		transform: translateY(-7px) rotate(-45deg);
	}

	/* Dimmed backdrop when open */
	.nav-overlay {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: rgba(0,0,0,0.4);
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.3s ease;
		z-index: 1000;
	}
	#navigation-main.nav-open .nav-overlay {
		display: block;
		opacity: 1;
		visibility: visible;
	}

	/* Right-side slide-in drawer */
	#navigation-main ul {
		position: fixed;
		top: 0;
		right: 0;
		width: 260px;
		max-width: 80%;
		height: 100%;
		margin: 0;
		padding: 70px 0 20px;
		box-sizing: border-box;
		background: #ffffff;
		box-shadow: -2px 0 10px rgba(0,0,0,0.2);
		transform: translateX(100%);
		transition: transform 0.3s ease;
		z-index: 1001;
		overflow-y: auto;
	}
	#navigation-main.nav-open ul {
		transform: translateX(0);
	}

	#navigation-main li {
		float: none;
		height: auto;
		margin: 0;
		line-height: normal;
		border-bottom: 1px solid #eee;
	}

	#navigation-main li a {
		height: auto;
		border-radius: 0;
		text-align: left;
		padding: 14px 22px;
		line-height: 1.3;
		font-size: 16px;
		color: #444;
	}

	#navigation-main li.active a,
	#navigation-main li a:hover {
		background: #687798;
		color: #fff;
	}

	/* Home page: stack the three bottom columns instead of side-by-side */
	#frame-content .column,
	#frame-content .column.end {
		float: none;
		width: 100%;
		margin: 0 0 25px 0;
	}

	#frame-content .column.end {
		margin-bottom: 0;
	}

	/* Home hero call-to-action: base rule pins h1 to a fixed 790px, which
	   overflows (and gets clipped) on any phone/tablet width. Let it fill
	   the wrapper and stack the button under it. Applies to all mobile,
	   not just <=480. */
	#frame-action {
		height: auto;
	}

	#frame-action h1 {
		float: none;
		width: auto;
	}

	#frame-action .button-green {
		float: none;
		margin: 15px 0 0;
	}

	/* Inner pages: sidebar + content sit in a flex row with a fixed 270px
	   sidebar and fixed-width content blocks, which forces the layout wider
	   than a phone viewport (page pinned left, gutter on the right). Stack
	   them and let every block fill the column. */
	#portfolio {
		flex-direction: column;
		gap: 20px;
	}

	#categories {
		flex: 1 1 auto;
		width: 100%;
		box-sizing: border-box;
	}

	#blog-items,
	#blog-items .article-image,
	#blog-items .article-excerpt {
		width: 100%;
		box-sizing: border-box;
	}

	/* Hero section */
	#frame-introduction {
		min-height: 250px;
	}

	#frame-introduction .wrapper {
		flex-direction: column;
		gap: 15px;
		padding: 20px 0 0 !important;
	}

	#frame-introduction .left-column {
		flex: 1 1 auto;
		width: 100%;
	}

	#frame-introduction .right-column {
		flex: 1 1 auto;
		width: 100%;
	}

	#frame-introduction h1 {
		font-size: 28px;
		margin: 10px 0;
	}

	#frame-introduction h2 {
		font-size: 16px;
	}

	#hero-button a {
		padding: 12px 24px;
		font-size: 14px;
	}

	/* Carousel */
	#splash-carousel img {
		max-height: 300px;
	}

	/* Content area */
	#frame-blog {
		padding: 15px 0;
	}

	#frame-blog h1 {
		font-size: 28px;
		margin: 15px 0 10px;
	}

	#frame-blog h2 {
		font-size: 16px;
		margin: 15px 0 8px;
	}

	/* Sidebar + content stack */
	#portfolio {
		flex-direction: column;
		gap: 20px;
	}

	#categories {
		width: 100%;
		flex: 1 1 auto;
		order: 1;
	}

	#folio-items {
		width: 100%;
		flex: 1 1 auto;
		order: 2;
	}

	#categories h3 {
		font-size: 16px;
		margin: 0 0 10px;
	}

	#categories li {
		font-size: 0.9rem;
		padding: 8px 0;
	}

	/* Forms: collapse the two-column grid to a single stacked column */
	#contact-form .form-wrapper > form {
		grid-template-columns: 1fr;
	}

	#contact-form .form-field:nth-of-type(1),
	#contact-form .form-field:nth-of-type(2),
	#contact-form .form-field:nth-of-type(3) {
		grid-column: 1;
	}

	#contact-form .form-field:nth-of-type(1) { grid-row: 1; }
	#contact-form .form-field:nth-of-type(2) { grid-row: 2; }
	#contact-form .form-field:nth-of-type(3) { grid-row: 3; }

	#contact-form .buttons {
		grid-column: 1;
		grid-row: 4;
		margin: 15px 0 0;
		text-align: center;
	}

	#contact-form .buttons button {
		width: auto;
		min-width: 150px;
	}

	.form-wrapper > form {
		position: static;
	}

	input[type="text"],
	input[type="email"],
	textarea {
		width: 100%;
		box-sizing: border-box;
		font-size: 16px;
	}

	/* Footer */
	#frame-footer .wrapper {
		display: flex;
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	#copyright {
		float: none;
		margin-bottom: 15px;
		font-size: 12px;
	}

	#navigation-footer {
		float: none;
		width: 100%;
	}

	#navigation-footer ul {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 8px;
		font-size: 12px;
	}

	#navigation-footer li {
		margin: 0;
	}

	/* Typography */
	body {
		font-size: 15px;
	}

	h1 { font-size: 24px; }
	h2 { font-size: 16px; }
	h3 { font-size: 14px; }

	p, li {
		font-size: 0.95rem;
		line-height: 1.5;
	}

	/* Images */
	img {
		max-width: 100%;
		height: auto;
	}

	#categories img {
		width: 100%;
		max-width: 270px;
		margin: 10px auto;
		display: block;
	}

	/* Buttons */
	a.button,
	.button-green a {
		box-sizing: border-box;
		font-size: 14px;
		touch-action: manipulation;
	}

	/* Lists */
	ul, ol {
		margin-left: 20px;
	}

	li {
		margin-bottom: 5px;
	}
}

/* Small mobile: under 480px */
@media (max-width: 480px) {
	.wrapper {
		width: 100%;
		padding: 0 14px;
	}

	#logo-main img {
		max-width: 200px;
	}

	#navigation-main a {
		font-size: 11px;
		padding: 5px;
	}

	h1 { font-size: 20px; }
	h2 { font-size: 14px; }
	h3 { font-size: 12px; }

	body {
		font-size: 14px;
	}

	#frame-introduction h1 {
		font-size: 24px;
	}

	#frame-introduction h2 {
		font-size: 14px;
	}

	#hero-button a {
		padding: 10px 16px;
		font-size: 12px;
	}

	#categories {
		padding: 8px;
	}

	#categories li {
		font-size: 0.85rem;
		padding: 6px 0;
	}

	#contact-form .buttons button {
		width: 100%;
		margin-top: 10px;
	}

	input[type="text"],
	input[type="email"],
	textarea {
		padding: 10px;
		font-size: 16px;
	}

}

/* Contact Form Styling */
#contact-container {
	display: flex;
	gap: 40px;
	margin: 30px 0;
}

#contact-form-wrapper {
	flex: 1 1 auto;
	min-width: 0;
}

#contact-info {
	flex: 0 0 280px;
	background: #f5f5f5;
	padding: 20px;
	border-radius: 4px;
	font-size: 14px;
	line-height: 1.6;
}

#contact-info p {
	margin: 10px 0;
}

#contact-info strong {
	display: block;
	margin-top: 15px;
	font-weight: bold;
}

.form-wrapper {
	margin: 0;
}

.form-wrapper form {
	max-width: 500px;
}

.form-field {
	margin-bottom: 20px;
}

.form-field label {
	display: block;
	font-weight: 500;
	margin-bottom: 8px;
	color: #333;
}

.form-field input[type="text"],
.form-field input[type="email"],
.form-field textarea {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #ddd;
	border-radius: 3px;
	font-size: 14px;
	font-family: inherit;
	box-sizing: border-box;
}

.form-field input[type="text"]:focus,
.form-field input[type="email"]:focus,
.form-field textarea:focus {
	outline: none;
	border-color: #6fa832;
	box-shadow: 0 0 4px rgba(111, 168, 50, 0.2);
}

.form-field textarea {
	resize: vertical;
	min-height: 120px;
}

.form-field.required label:after {
	content: ' *';
	color: #e74c3c;
}

/* Grav's Form plugin renders "notices {status} {color}" (see
   user/plugins/form/templates/partials/form-messages.html.twig), not
   "form-messages" - this is what actually needs styling. */
.notices {
	margin: 20px 0;
	padding: 15px;
	border-radius: 3px;
	text-align: center;
}

.notices.green {
	background: #d4edda;
	color: #155724;
	border: 1px solid #c3e6cb;
}

.notices.red {
	background: #f8d7da;
	color: #721c24;
	border: 1px solid #f5c6cb;
}

.notices.yellow {
	background: #fff3cd;
	color: #856404;
	border: 1px solid #ffeeba;
}

.notices p {
	margin: 0;
}

.form-field .buttons {
	margin: 25px 0 0;
	padding: 0;
}

.form-field .buttons button,
.buttons button {
	background: #6fa832;
	color: white;
	border: none;
	padding: 12px 32px;
	font-size: 14px;
	border-radius: 3px;
	cursor: pointer;
	font-weight: 500;
	transition: background 0.2s;
}

.form-field .buttons button:hover,
.buttons button:hover {
	background: #5d8a28;
}

.form-field .buttons button:active,
.buttons button:active {
	background: #4a6720;
}

/* Responsive Contact Form */
@media (max-width: 768px) {
	#contact-container {
		flex-direction: column;
		gap: 20px;
	}

	#contact-form-wrapper {
		flex: 1 1 auto;
	}

	#contact-info {
		flex: 1 1 auto;
		order: -1;
	}

	.form-wrapper form {
		max-width: 100%;
	}

	.form-field input[type="text"],
	.form-field input[type="email"],
	.form-field textarea {
		font-size: 16px;
	}
}
