/* 
Theme Name: The Shutter Shop
Theme URI: https://github.com/elementor/hello-theme/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: FDM
Author URI: https://elementor.com/
Template: hello-elementor
Version: 1.0.1
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/******Default vip css start*****/  
@import url('https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap');
*{
	outline: none !important; 
	text-decoration: none !important;  
}
ul {
	padding: 0;
} 
.site-branding {
	display: none;
} 
p,li {
	margin-bottom: 20px; 
}    
p a{
	color: #0142ae !important;
	font-weight: 700;
	text-decoration: unset !important;
} 
p a:hover, .link-text a:hover {
	color: #c0262b !important;
}
strong {
	font-weight: 500 !important;
}  
.pl60{
	padding-left: 60px;
}
.pl30{
	padding-left: 30px;
}
.pr60{
	padding-right: 60px;
} 
.pt0 {
	padding-top:0px !important;
}
.pb0 {
	padding-bottom:0px !important;
}
.mt50{
	margin-top: 50px;
}   
.mt35{
	margin-top: 35px;
} 
.mt100{
	margin-top: 100px;
}    
.pad100 {
	padding: 100px 15px;
} 
.pt100{
	padding-top: 100px;
} 
.pb100{
	padding-bottom: 100px;
}
.pt50 {
	padding-top: 50px;
}
.defbtn {
	margin-top: 30px;
}
body {
	position: relative;
}
a {
	transition: all ease-in-out 0.5s !important;
}
/*** Header ***/  
@keyframes slideIn {
	from { top: -50% }
	to { top: 0 }
}   
.hdactive .elementor-location-header {
	position: fixed;
	-webkit-animation: slideIn 0.5s ease-in;
	-moz-animation: slideIn 0.5s ease-in;
	animation: slideIn 0.5s ease-in;
	z-index: 102;
	padding: 10px 15px;
	background: #243b67;
	box-shadow: 0px 0px 11px rgba(0,0,0,0.2);
}
.hd_menu  .elementor-widget-container {
	width: 100%;
}      
.header_main .elementor-widget-wrap {
	justify-content: space-between;
	align-items: center;
} 
.hd_menu .elementor-nav-menu > li {
	margin-left: 30px;
}
.hd_menu .elementor-nav-menu > li > a {
	font-size: 15px !important;
	color: #fff;
	padding: 0 !important;
	text-transform: capitalize;
	font-weight: 500;
}
.hd_menu .elementor-nav-menu > li > a:hover {
	color: #118c52 !important;
}
.hd_menu .elementor-nav-menu > li:last-child > a:hover {
	color: #fff !important;
	border: 1px solid #233b67 !important;
	background: #233b67;
}
.hd_menu .elementor-nav-menu > li:last-child > a {
	background: #089544;
	border-radius: 50px;
	padding: 15px 37px !important;
	line-height: normal;
	min-width: 161px;
	color: #fff !important;
	border: 1px solid #089544;
	transition: all 0.5s ease-in-out !important;
	font-weight: bold;
}
.elementor-nav-menu > li > ul.sub-menu a {
	padding: 14px 14px !important;
	color: #fff !important;
	border-bottom: 1px solid #ffffff38;
	border-left: 0;
	white-space: normal;
	background: #089544 !important;
	font-size: 15px;
	text-transform: capitalize;
	letter-spacing: 0;
}
.elementor-nav-menu > li > ul.sub-menu li:last-child a {
	border-bottom: 0px !important;
}  
.elementor-sub-item.elementor-item-active {
	background-color: transparent !important;
} 
.elementor-nav-menu > li > ul.sub-menu {
	background: #089544;
	min-width: 235px !important;
	border-radius: 5px;
	margin-top: -5px !important;
	overflow: hidden;
}
.elementor-nav-menu > li > ul.sub-menu:last-child a {
	border-radius: 0px; 
} 
.elementor-nav-menu > li > ul.sub-menu .sub-arrow {
	display: none !important;
} 
.elementor-nav-menu > li > ul.sub-menu a:hover {
	background: #243b67 !important;
	opacity: 1;
	border-left: unset !important;
	color: #fff !important;
}
.elementor-location-header {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	padding:  15px;
}
.elementor-nav-menu li .sub-arrow svg {
	transition: all ease-in-out 0.5s;
	fill: #fff;
}
.elementor-nav-menu li:hover .sub-arrow svg {
	fill: #089544;
} 
.site_logo {
	width: auto !important;
	max-width: 320px;
}
.hd_right {
	width: calc(100% - 320px) !important;
}
.hdactive .site_logo {
	max-width: 220px;
}
/*** Header End***/ 

body{
	background:var(--white); color:var(--ink);
	font-family:'Lato',sans-serif; font-weight:300;
	font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased;
}
:root{
	--forest:#1B2A44;
	--forest-deeper:#121C30;
	--brass:#B8924A;
	--white:#F5F0E8;
	--ink:#22293A;
	--fern:#5F84AB;
	--line:rgba(42,37,32,.14);
	--line-dark:rgba(245,240,232,.16);
	--dim:rgba(42,37,32,.62);
	--dim-dark:rgba(245,240,232,.62);
}  
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }

.container{ width:min(1140px, 90vw); margin-inline:auto; }
.eyebrow{
	font-family:'Oswald',sans-serif; font-weight:600;
	font-size:11px; letter-spacing:4px; text-transform:uppercase;
	color:var(--brass);
	display:inline-flex; align-items:center; gap:12px;
}
.eyebrow::before{ content:""; display:inline-block; width:24px; height:1px; background:var(--brass); }
.display{
	font-family:'Playfair Display',serif; font-weight:700;
	line-height:1.02; letter-spacing:-.012em;
}
.display .it{ font-style:italic; color:var(--brass); font-weight:400; }

/* ===== buttons ===== */
.btn{
	display:inline-flex; align-items:center; gap:14px;
	padding:15px 24px;
	font-family:'Oswald',sans-serif; font-weight:600;
	font-size:12px; letter-spacing:3px; text-transform:uppercase;
	border:1.5px solid transparent;
	cursor:pointer; transition:all .2s ease; background:none;
}
.btn .arrow{ display:inline-block; width:18px; height:1px; background:currentColor; position:relative;
	transition:width .25s ease, margin .25s ease; }
.btn .arrow::after{
	content:""; position:absolute; right:-1px; top:-3px;
	width:7px; height:7px; border-right:1px solid currentColor; border-top:1px solid currentColor;
	transform:rotate(45deg);
}
.btn:hover .arrow{ width:26px; margin-left:4px; }
.btn-brass{ background:var(--brass); color:var(--forest); }
.btn-brass:hover{ background:#a67e3a; }
.btn-ghost{ color:var(--forest); border-color:var(--forest); }
.btn-ghost:hover{ background:var(--forest); color:var(--white); }
.btn-ghost-light{ color:var(--white); border-color:rgba(245,240,232,.4); }
.btn-ghost-light:hover{ background:var(--white); color:var(--forest); border-color:var(--white); }

/* ===== top bar ===== */
.topbar {
	background: var(--white);
	border-bottom: 1px solid var(--line);
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 10;
}
.topbar-inner{
	display:flex; align-items:center; justify-content:space-between;
	gap:24px; padding:18px 0;
}
.brand{ display:flex; align-items:center; }
.brand img{ height:58px; width:auto; }
.top-contact{
	display:flex; align-items:center; gap:22px;
	font-family:'Oswald',sans-serif; font-weight:500;
	font-size:12px; letter-spacing:2px; text-transform:uppercase;
}
.top-contact .ph{ display:inline-flex; align-items:center; gap:10px; color:var(--ink); transition:color .2s ease; }
.top-contact .ph:hover{ color:var(--brass); }
.top-contact .ph .ic{ color:var(--brass); display:inline-flex; }
.top-contact .ph .ic svg{ width:15px; height:15px; }
.top-contact .btn{ padding:12px 20px; }

/* ===== hero ===== */
.hero {
	position: relative;
	color: var(--white);
	overflow: hidden;
	min-height: 100vh;
	display: flex;
	align-items: flex-end;
}
.hero-video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.hero-scrim{
	position:absolute; inset:0; z-index:1; pointer-events:none;
	background:
		linear-gradient(to right, rgba(11,18,36,.85) 0%, rgba(11,18,36,.5) 45%, rgba(11,18,36,.25) 100%),
		linear-gradient(to top, rgba(11,18,36,.92) 0%, rgba(11,18,36,.15) 70%);
}
.hero .container{ position:relative; z-index:2; }
.hero-copy {
	padding: 200px 0 90px;
	max-width: 720px;
}
.hero h1{
	font-family:'Playfair Display',serif; font-weight:700;
	font-size:clamp(44px, 6vw, 84px); line-height:.98; letter-spacing:-.014em;
	color:var(--white); margin:18px 0 26px; text-wrap:balance;
}
.hero h1 .it{ font-style:italic; color:var(--brass); font-weight:400; }
.hero-deck{
	font-family:'Lato',sans-serif; font-weight:300;
	font-size:19px; line-height:1.55; color:var(--white);
	max-width:52ch; margin-bottom:34px;
}
.hero-deck strong{ font-family:'Playfair Display',serif; font-weight:700; font-style:italic; color:var(--brass); }
.hero-ctas{ display:flex; gap:14px; flex-wrap:wrap; }

/* ===== intro / who we are ===== */
.intro{ padding:96px 0; }
.intro-grid{ display:grid; grid-template-columns:1fr 1.25fr; gap:64px; align-items:start; }
.intro h2{ font-size:clamp(34px, 3.6vw, 50px); margin-top:14px; color:var(--ink); }
.intro p.lede{ font-size:18px; line-height:1.7; color:var(--dim); margin-bottom:28px; }
.intro p.lede strong{ color:var(--ink); font-weight:400; font-style:italic; font-family:'Playfair Display',serif; }
.stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--line); }
.stats .it{ padding:24px 16px; border-right:1px solid var(--line); text-align:center; }
.stats .it:first-child{ padding-left:0; }
.stats .it:last-child{ border-right:0; padding-right:0; }
.stats .k{ font-family:'Playfair Display',serif; font-weight:700; font-style:italic; font-size:34px; line-height:1; color:var(--brass); }
.stats .v{ font-family:'Oswald',sans-serif; font-weight:500; font-size:10.5px; letter-spacing:2.5px; text-transform:uppercase; color:var(--ink); margin-top:10px; }

/* ===== products ===== */
.products{ background:#EFE9DE; padding:96px 0; border-top:1px solid var(--line); }
.prod-head{ margin-bottom:48px; max-width:620px; }
.prod-head h2{ font-size:clamp(32px, 3.4vw, 46px); margin-top:14px; color:var(--ink); }
.prod-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.prod{ background:var(--white); border:1px solid var(--line); display:flex; flex-direction:column; }
.prod .img{ aspect-ratio:4/3; background-size:cover; background-position:center; }
.prod .body{ padding:22px 22px 26px; }
.prod .name{ font-family:'Playfair Display',serif; font-weight:700; font-size:21px; line-height:1.1; margin-bottom:8px; }
.prod .sub{ font-size:14.5px; line-height:1.55; color:var(--dim); }

/* ===== contact / footer ===== */
.contact{ background:var(--forest); color:var(--white); padding:88px 0 0; }
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; padding-bottom:72px; border-bottom:1px solid var(--line-dark); }
.contact h2{ font-size:clamp(34px, 3.8vw, 54px); color:var(--white); margin-top:14px; }
.contact h2 .it{ font-style:italic; color:var(--brass); font-weight:400; }
.contact p{ color:var(--dim-dark); font-size:17px; line-height:1.65; margin:18px 0 30px; max-width:42ch; }
.contact-ctas{ display:flex; gap:14px; flex-wrap:wrap; }
.detail-card{ border:1px solid var(--line-dark); padding:8px 32px; }
.detail{ display:flex; align-items:center; gap:18px; padding:22px 0; border-bottom:1px solid var(--line-dark); }
.detail:last-child{ border-bottom:0; }
.detail .ic{ width:22px; height:22px; color:var(--brass); flex:none; display:inline-flex; }
.detail .ic svg{ width:20px; height:20px; }
.detail .lbl{ font-family:'Oswald',sans-serif; font-weight:500; font-size:10px; letter-spacing:2.5px; text-transform:uppercase; color:var(--dim-dark); }
.detail .val{ font-size:17px; color:var(--white); margin-top:3px; }
.detail .val a:hover{ color:var(--brass); }

.foot {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
	padding: 26px 0;
	flex-wrap: wrap;
	font-family: 'Oswald',sans-serif;
	font-weight: 500;
	font-size: 10px;
	letter-spacing: 2.5px;
	text-transform: uppercase;
	color: var(--dim-dark);
}
.foot .socials{ display:flex; gap:10px; }
.util-social{
	display:inline-flex; align-items:center; justify-content:center;
	width:32px; height:32px; border:1px solid var(--line-dark); border-radius:50%;
	color:var(--white); transition:all .2s ease;
}
.util-social:hover{ background:var(--brass); color:var(--forest); border-color:var(--brass); }
.util-social svg{ width:14px; height:14px; }
.foot .r{ color:var(--brass); }

/* ===== also carry / distribute ===== */
.carry{ background:var(--white); padding:88px 0; border-top:1px solid var(--line); }
.carry-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:60px; align-items:center; }
.carry .img{ aspect-ratio:4/3; background-size:cover; background-position:center; border:1px solid var(--line); }
.carry h2{ font-size:clamp(28px,3vw,42px); margin-top:14px; color:var(--ink); }
.carry h2 .it{ font-style:italic; color:var(--brass); font-weight:400; }
.carry p.lede{ font-size:17px; line-height:1.7; color:var(--dim); margin:18px 0 30px; max-width:48ch; }
.carry p.lede strong{ color:var(--ink); font-weight:400; font-style:italic; font-family:'Playfair Display',serif; }
.carry-list{ border-top:1px solid var(--line); }
.carry-list .row{ display:grid; grid-template-columns:auto 1fr; gap:18px; align-items:baseline; padding:18px 0; border-bottom:1px solid var(--line); }
.carry-list .row .n{ font-family:'Playfair Display',serif; font-weight:700; font-size:19px; color:var(--ink); white-space:nowrap; }
.carry-list .row .d{ font-size:14.5px; line-height:1.5; color:var(--dim); }

/* ===== gallery — scrolling marquee ===== */
.gallery{ background:#EFE9DE; padding:88px 0; border-top:1px solid var(--line); }
.gallery-head h2{ font-size:clamp(30px,3.2vw,46px); margin-top:14px; color:var(--ink); }
.gallery-head h2 .it{ font-style:italic; color:var(--brass); font-weight:400; }
.marquee-wrap{
	position:relative; overflow:hidden; margin-top:36px;
	-webkit-mask-image:linear-gradient(to right, transparent 0, #000 64px, #000 calc(100% - 64px), transparent 100%);
	mask-image:linear-gradient(to right, transparent 0, #000 64px, #000 calc(100% - 64px), transparent 100%);
}
.marquee-track{ display:flex; gap:24px; width:max-content; animation: marquee 70s linear infinite; }
.marquee-wrap:hover .marquee-track{ animation-play-state:paused; }
@keyframes marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
.mtile{
	flex:0 0 auto; width:420px; aspect-ratio:4/3;
	background-size:cover; background-position:center;
	border:1px solid var(--line);
}
.gallery-foot{
	margin-top:36px; display:flex; justify-content:space-between; align-items:center;
	gap:16px; flex-wrap:wrap; padding-top:24px; border-top:1px solid var(--line);
}
.gallery-foot .l{
	font-family:'Oswald',sans-serif; font-weight:500;
	font-size:11px; letter-spacing:3px; text-transform:uppercase; color:var(--dim);
}
@media (prefers-reduced-motion: reduce){
	.marquee-track{ animation:none; }
	.marquee-wrap{ overflow-x:auto; scrollbar-width:none; }
	.marquee-wrap::-webkit-scrollbar{ display:none; }
}

.gform_wrapper .gform_validation_errors {
	display: none;
}
.validation_message {
	padding: 0px !important;
	background: transparent !important;
	border: 0px !important;
	margin-top: 0px !important;
	line-height: 20px !important;
	font-size: 11px !important;
	color: #f0ebeb !important;
}
.gform_wrapper .gfield_required{
	display: none !important;
} 
.custom-contact label {
	font-family: 'Oswald',sans-serif !important;
	font-weight: 500 !important;
	font-size: 10px !important;
	letter-spacing: 2px !important;
	text-transform: uppercase;
	color: var(--dim-dark) !important;
	margin: 0 0 6px !important;
}
.custom-contact input, .custom-contact .textarea, .custom-contact select {
	width: 100%;
	background: rgba(245,240,232,.06) !important;
	border: 1px solid var(--line-dark) !important;
	color: var(--white) !important;
	font-family: 'Lato',sans-serif !important;
	font-weight: 300 !important;
	font-size: 15px !important;
	padding: 12px 14px !important;
	transition: border-color .2s ease;
	min-height: 45px !important;
	line-height: normal !important;
	border-radius: 0px !important;
}
.custom-contact .textarea { 
	height:160px !important;
}	  
.custom-contact .gform_footer {
	margin: 20px 0px 0px !important;
	padding: 0px !important;
} 
.custom-contact .elementor-widget-wrap {
	padding: 40px 45px;
	border-radius: 30px;
	box-shadow: unset;
	margin-top: -255px;
	z-index: 2;
	position: relative;
	background-image: linear-gradient(180deg, #488B8A 50%, #0F5C95 100%);
}
.instruction {
	display: none !important;
}

.gform_wrapper {
	background: rgba(245,240,232,.04);
	border: 1px solid var(--line-dark);
	padding: 34px;
}
.half-col {
	grid-column: span 6 !important;
}
.gform_fields {
	row-gap: 15px !important;
}
#gform_submit_button_1 :hover {
	background: #a67e3a !important;
}
#gform_submit_button_1 {
	background: var(--brass) !important;
	color: var(--forest) !important;
	width: 100% !important;
	font-family: 'Oswald',sans-serif !important;
	font-weight: 600 !important;
	font-size: 15px !important;
	text-transform: uppercase;
	padding: 14px 20px !important;
}
.full-col{
	margin-bottom: 8px !important;
}
.custom-contact .button {
	border: 0px !important;
	margin: 0 auto !important;
} 
.gform_wrapper .gform_validation_errors > h2 {
	font-size: 17px !important;
	font-weight: 500;
	line-height: normal !important;
}

/* ===== load + reveal ===== */


/* ===== responsive ===== */
@media (max-width: 900px){
	.intro-grid{ grid-template-columns:1fr; gap:36px; }
	.prod-grid{ grid-template-columns:1fr; }
	.contact-grid{ grid-template-columns:1fr; gap:40px; }
	.carry-grid{ grid-template-columns:1fr; gap:36px; }
	.carry .img{ order:-1; }
	.top-contact .lbl-hide{ display:none; }
	.half-col {
		grid-column: span 12 !important;
	}
	.intro ,
	.products,
	.carry,.gallery,
	.contact{
		padding: 45px 0;
	}
	.hero-copy {
		padding: 100px 0 60px;
		max-width: 720px;
	}
}
@media (max-width: 560px){
	.top-contact .ph span{ display:none; }

	.detail-card{ padding:8px 24px; }
	.field-row, .field-row3{ grid-template-columns:1fr; } 
	.mtile{ width:300px; }
}