/*
 * Site-specific styles for virginiaelope.com.
 *
 * Moved verbatim from Appearance > Customize > Additional CSS on Nov 8, 2026 so it is
 * version-controlled. Printed in the same <head> slot the Customizer CSS used (see the
 * "Site styles" hook at the end of functions.php), so the cascade is unchanged.
 * Edit styles here, not in the Customizer.
 */

/* Global */

.image_background:after {
	background: rgba(0,0,0, 0.73);
}

.image_background .bg_title h1 {

}

header nav ul.menu .sub-nav, header nav ul.menu .sub-nav:after {
	background:rgba(0,0,0,1);
}

header nav ul.menu .sub-nav {
}

header nav ul.menu .sub-menu {
	width:300px;
}


.mobile_menu_wrapper a {
    font-size:1.1em !important;
    color:#fff;
    line-height: 65px !important
}

.mobile_menu_wrapper ul li li a {
    font-size: 1em !important;
    line-height: 1.3em !important;
    margin-bottom:10px;
}

.mobile_menu_wrapper a::after {
    font-size: 1.2em !important;
    margin-top:20px !important;
}

.mobile_menu_wrapper a:active::after {
    transform: rotate(90deg) !important;
}


/* Homepage */




.homepage-slider-button {
	background:rgba(0,0,0,.7);
	padding:20px;
	border-radius:10px;
	color:#fff;
	font-family: 'Bitter', Serif;
	font-size:1em !important;
}

.homepage-slider-button:hover {
	background:rgba(21,168,134,.7);
	color:#fff;
}



p {
  margin:0 0 20px 0;
}

.ip {
  font-style:normal;
}

blockquote {
    font-size: 1.3em;
    line-height: 1.5em;
}

p {
    font-size:1.1em;
        line-height:1.6em;
}

ul  {
    font-size:1.1em;
        line-height:1.6em;
}

h1 {
  letter-spacing:1px;
}


h2 {
  letter-spacing:1px;
  padding-top:40px; 
} 

h3 {
  letter-spacing: 1px;
  padding-top:20px;
}

h3 a {
    text-decoration: underline !important;
}

h3 a:hover{
    color:#15a886;
}

.single_contentarea ul {
    margin-bottom:15px;
}

.single_contentarea  ul li{
  margin-left:40px;
	padding:0 0 0 ;
    list-style:square;
}

.listing_meta {
    display:none;
}

.post_share_block {
    display:none;
}

.single_meta h1 {
	margin-bottom:0px;
}

.blog_post_image {
	margin-bottom:30px !important;
}

/*Packages and Pricing */

.pricing-intro h3 {
	text-transform: none;
	line-height:1.2em;
	letter-spacing:0px;
}

.price_item_head .price_item_title h6 {
	line-height:1.2em;
	color:#fff;
	font-size:1.4em;
}

.price_item_head .price_item_cost h1 {
	font-size:3em;
	line-height:1.2em;
	letter-spacing:1px;
}

.price_item_head .price_item_period {
	font-size:1em;
	font-style:normal;
	line-height:1.3em;
	letter-spacing:0px;
}

.price_item_body {
	padding:10px 20px 0px 20px;
	background: #dbdbdb;
	border:0px;
}

.price_item_body .price_item_text ul li {
	color:#000;
	font-style:normal;
	letter-spacing:0px;
	line-height:1.4em;
	margin-top:10px;
	margin-bottom:15px;
}

.price_item_text ul li:after {
	width:0px;
}

.price_item_btn a{
	color:#000;
	font-weight:700;
	font-size:1em;
	letter-spacing:0px;
}

/*Submit button gravity forms */ body .gform_wrapper .gform_footer input[type=submit] { float:left; 
height: 60px; 
width: 100% !important; 
min-width: 280px; 
clear: both; 
border: none !important; 
background: #000000; 
color: #ffffff; 
}



.submit_wrap {
	width: 100%;

}

.gform_legacy_markup_wrapper ul.gform_fields li.gfield {
	padding: 0px;
	margin-top: 40px;
}

input[type="text"], input[type="email"], input[type="tel"], input[type="password"], textarea {
	font-size: 1.2em !important;
	font-style: normal !important;
}

.gform_legacy_markup_wrapper .gfield_checkbox li label, .gform_legacy_markup_wrapper .gfield_radio li label {
	line-height: 1.3em !important;
}

.gform_legacy_markup_wrapper .gfield_checkbox li input, .gform_legacy_markup_wrapper .gfield_checkbox li input[type=checkbox], .gform_legacy_markup_wrapper .gfield_radio li input[type=radio] {
	vertical-align: top !important;
	margin-top: 9px !important;
}

.gform_wrapper li.gfield ul.gfield_radio li input[type=radio]+input[type=text] {
	font-size:1em !important;
}

.gform_legacy_markup_wrapper label.gfield_label, .gform_legacy_markup_wrapper legend.gfield_label {
	font-size: 1.3em !important;
}

.gform_legacy_markup_wrapper .field_sublabel_below .ginput_complex.ginput_container label, .gform_legacy_markup_wrapper .field_sublabel_below div[class*=gfield_time_].ginput_container label {
	margin: -8px 0px 9px 0px !important;
	letter-spacing: 0px !important;
}

@media only screen and (max-width: 700px) {
 
	.gform_legacy_markup_wrapper label.gfield_label, .gform_legacy_markup_wrapper legend.gfield_label {
	font-size: 1.1em !important;
}

}

.gform_legacy_markup_wrapper .gfield_description {
	background: #e8e8e8;
	padding: 10px !important;
	font-size: 1em !important;
	font-style: normal;
	line-height: 1.5em !important;
	border-radius:0px;
	border-left : 6px solid #aaaaaa;
	margin-top: 8px;
}



.gform_wrapper .gform_footer {
  text-align:center;
}

.gravity-forms-html-notice-yellow {
	background:#fff9c6;
	padding:20px 20px 5px 20px;
	font-size:.9em;
	font-weight:;
}

.gravity-forms-html-notice-yellow h3{
	font-family: ;
	font-weight:700 !important;
	padding:0px;
	margin:0px 0px 20px 0px;
}

.gravity-forms-html-notice-yellow p{
	padding:0px;
	margin:0px 0px 20px 0px;
		line-height: 1.4em !important;

}

.price_item_title {
  padding:0px;
  margin:-30px
}

.testimonial_nav_info h6 {
  line-height:28px
}

.price_item_title {
  padding:36px !important;
}

.price_item_title h6 {
  line-height: 30px;
}

 h6.shortcode_toggles_item_title {
  text-transform: none;
   line-height:1.4em;
   letter-spacing: .4px;
}

.shortcode_accordion_item_body, .shortcode_toggles_item_body {
 padding-top:10px;
  padding-bottom:25px;
}


/*Same Sex Wedding Officiant */

.page-id-1362 .image_background:after {
	background: rgba(0,0,0, .5);
}


.gform_wrapper li.gfield ul.gfield_radio li input[type=radio]+input[type=text]{
display:inline;
}

.gform_wrapper input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]) {
  margin-bottom:10px;
}

body .gform_wrapper form .gform_body ul,
body .gform_wrapper form .gform_body ul li { 
	list-style-type: none !important; 
	list-style-image: none !important;
	list-style: none !important; 
	background-image: none !important;
	background: none !important;

	border: none !important
}
body .gform_wrapper form .gform_body ul > li:before {
	content: "";
} 

.woocommerce #respond input#submit.alt, .woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt {
  background-color:#000000;
}

.woocommerce #respond input#submit, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button {
line-height:2px;  
}

 .woocommerce #container {
  width:95%;
  margin:auto;
} 

.woocommerce #content div.product div.images {
  width:25%;
}

.woocommerce #content div.product div.summary, .woocommerce div.product div.summary, .woocommerce-page #content div.product div.summary, .woocommerce-page div.product div.summary {
  float:left;
  padding-left:20px;
  width:70%;
}

.woocommerce div.product form.cart .variations td, .woocommerce div.product form.cart .variations th {
   line-height:1.2em !important;
 } 

.woocommerce div.product form.cart .variations select {
  font-size:1em;
}

.order_item .product-name {
  font-weight:bold;
  font-size:1em;
  text-transform:uppercase;
}

.wc-item-meta {
  font-weight:normal;
  text-transform:none;
}

ul.wc-item-meta {
  padding-top:5px;
}

dt {
  text-decoration:none;
}

.contentarea ul li::before {
  content:none
}

.woocommerce td.product-name .wc-item-meta p, .woocommerce td.product-name .wc-item-meta:last-child, .woocommerce td.product-name dl.variation p, .woocommerce td.product-name dl.variation:last-child {
    font-size: 1em;
}



.module_content ul {
  padding-left: 40px;
}

.module_content li {
  list-style-type: square;
}

 .calloutbutton {
   text-align:center;
   background:#15A886;
   width:75%;
   margin-left:auto;
   margin-right:auto;
	 margin-top: 30px;
	 margin-bottom:20px;
   padding-top:30px;
   padding-right:10px;
   padding-left:10px;
   padding-bottom:30px;
   vertical-align:center;
   border-radius:16px
 }

.calloutbutton p {
  text-align:center;
  color:#ffffff;
	margin-bottom:0px;
	line-height: 1.2em;
}

.calloutbutton a {
    font-size:1.2em;  
	  color:#fff;
    text-decoration: none;
}

.calloutbutton a:hover {
    text-decoration: underline;
	font-weight:bold;
}

.filter_navigation {
    display:none;
}

.filter_block {
display: none;
}

.woocommerce-product-gallery__image {
    margin:5px
} 

.woocommerce-product-gallery {
    display:none;
}

.woocommerce div.product {
    margin-left:20px;
}

.woocommerce .woocommerce-breadcrumb {
    display:none;
}

.woocommerce #payment {
    background:#fff;
    border:2px solid rgba(0,0,0,.1);
}

.woocommerce #payment #place_order {
    padding:20px;
    font-size: 1.3em;
}

#add_payment_method #payment div.form-row, .woocommerce-cart #payment div.form-row, .woocommerce-checkout #payment div.form-row {
	padding:0;
}

.woocommerce form .form-row label {
	line-height:1.2em;
}

#add_payment_method #payment ul.payment_methods, .woocommerce-cart #payment ul.payment_methods, .woocommerce-checkout #payment ul.payment_methods {
	padding: 10px 15px 10px 0px;
}



.woocommerce .woocommerce-terms-and-conditions-wrapper {
	padding:10px;
}

.woocommerce-error::before, .woocommerce-info::before, .woocommerce-message::before {
    display:none
}

.woocommerce-error, .woocommerce-info, .woocommerce-message {
    padding:10px !important;
    background: #b81c23;
    color:#fff;
    line-height:1.3em;
    
}



p a {
    text-decoration: underline;
}

.gform_wrapper .gfield_description a {
    text-decoration: underline;
}

h4.headInModule {
    margin-bottom: -10px;
}

.sp-testimonial-pro-section .tpro-client-name {
	font-size:20px !important;
	font-weight:bold !important;
	}

.page-id-5354 .contentarea ul, .page-id-1534 .contentarea ul {
	margin-left:30px;    
	list-style:square;
	margin-bottom:20px;
}

.page-id-5354 .contentarea li, .page-id-1534 .contentarea li {
	padding-left:10px;   
	margin-bottom:5px;
}

#payment .payment_box {
    background-color: #efefef !important;
}

#payment .payment_box::before {
    border: 1em solid #efefef !important;
    border-right-color: transparent !important;
    border-left-color: transparent !important;
    border-top-color: transparent !important;
}



@media only screen and (min-device-width: 899px) and (max-device-width: 1130px){

.logo_sect img{
width:240px !important;
}

}


@media only screen and (min-width: 800px) {
.woocommerce #payment #place_order {
	margin:10px;
}
}


@media only screen and (max-width: 600px) {
    h1 {
        font-size: 24px;
       line-height: 27px;
    }
 h2 {
        font-size: 20px;
       line-height: 23px;
    }
.wrapper_404 .container, .absolute_container {
  width:90%;
}
 .module_iconboxes_grid .iconbox_wrapper {
   padding-right:10px;
   padding-left:10px;
 }

.woocommerce #content div.product div.images {
  width:100%;
}

.woocommerce #content div.product div.summary, .woocommerce div.product div.summary, .woocommerce-page #content div.product div.summary, .woocommerce-page div.product div.summary {
  float:none;
  padding-left:0px;
  width:100%;
}

}




.piggins {
    float: right;
    margin-right:20px;
    margin-left:20px;
    margin-bottom:30px;
}

@media only screen and (max-width: 800px) {
    .piggins {
    float: none;
    margin-left:0px;
    margin-right:0px;
    }
    
    .piggins img {
            width:98%;
    }

}



.woodland-pig a {
float:left;
	text-align:center;
	display:inline-block;
background:#15a886;
	width:100%;
	box-sizing:border-box;
	font-size:.8em;
	padding:20px 0px 20px 0px;
	border:solid 5px #fff;
 color:#fff;
	text-decoration:none;

	font-size:1.2em;
}

/* YouTube embeds from the [embedyt] shortcode (functions.php), Nov 2026 */
.ve-video {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	margin: 0 0 20px;
}

.ve-video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* Homepage hero from the [ve_hero] shortcode (functions.php); replaced Slider Revolution, Nov 2026.
   Desktop: same proportions as the old slider (1170 x 750, scaling down with the window) under the
   transparent header, band clear of the menu and the couple (theme header breakpoints: 1200px and 900px). Phones: photo, then the text and button below it. */
.ve-hero {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: center;
	width: 100vw; /* full window width, like the slider; body already hides horizontal overflow */
	margin-left: calc(50% - 50vw);
	height: min(750px, 64.1vw);
	padding: 140px 0 clamp(40px, 6vw, 80px); /* >=1200px: band ~25px below the one-row transparent menu */
	overflow: hidden;
	background: #222;
	text-align: center;
}

.ve-hero .ve-hero__img {
	position: absolute;
	inset: 0;
	width: 100%;
	max-width: none;
	height: 100%;
	object-fit: cover;
	z-index: 0;
}

.ve-hero__band,
.ve-hero__cta {
	position: relative;
	z-index: 1;
	margin: 0;
}

.ve-hero__band {
	width: 100%;
	padding: 12px 20px 14px;
	background: rgba(0, 0, 0, 0.74);
}

.ve-hero .ve-hero__title {
	margin: 0;
	padding: 0;
	font-family: Bitter, Georgia, serif;
	font-size: clamp(24px, 3.1vw, 36px);
	font-weight: 400;
	line-height: 1.25;
	letter-spacing: 3.5px;
	text-transform: none;
	color: #fff;
}

.ve-hero .ve-hero__subtitle {
	margin: 6px 0 0;
	padding: 0;
	font-family: Lora, Georgia, serif;
	font-size: clamp(16px, 1.7vw, 20px);
	font-style: italic;
	line-height: 1.4;
	color: #fff;
}

.ve-hero__cta .homepage-slider-button {
	display: inline-block;
	text-decoration: none;
}

.ve-hero__cta .homepage-slider-button:focus-visible {
	outline: 3px solid #fff !important; /* theme.css removes a:focus outlines site-wide */
	outline-offset: 3px;
	box-shadow: 0 0 0 7px #000; /* dark ring keeps the white outline visible on bright photos */
}

/* 901-1199px: the theme wraps the menu onto a second row (ends ~204px). */
@media (min-width: 901px) and (max-width: 1199px) {
	.ve-hero {
		height: 740px; /* taller so the lower band still clears the couple (heads at ~46% of the photo) */
		padding-top: 228px;
	}
}

/* 768-900px: the header is a white bar above the hero, so the band can sit near the top. */
@media (min-width: 768px) and (max-width: 900px) {
	.ve-hero {
		padding-top: 40px;
	}
}

/* Entrance, like the old slider: photo fades in, then the band and the button rise into place. */
@keyframes ve-hero-fade {
	from { opacity: 0; }
	to { opacity: 1; }
}

@keyframes ve-hero-rise {
	from { opacity: 0; transform: translateY(18px); }
	to { opacity: 1; transform: none; }
}

.ve-hero .ve-hero__img {
	animation: ve-hero-fade 1s ease-out both;
}

.ve-hero__band {
	animation: ve-hero-rise 0.8s 0.35s ease-out both;
}

.ve-hero__cta {
	animation: ve-hero-rise 0.8s 0.7s ease-out both;
}

@media (prefers-reduced-motion: reduce) {
	.ve-hero .ve-hero__img,
	.ve-hero__band,
	.ve-hero__cta {
		animation: none;
	}
}

@media (max-width: 767px) {
	.ve-hero {
		height: auto;
		padding: 0;
		background: #1a1a1a;
	}

	.ve-hero .ve-hero__img {
		position: static;
		height: auto;
		aspect-ratio: 16 / 10;
	}

	.ve-hero__band {
		padding: 18px 20px 6px;
		background: none;
	}

	.ve-hero .ve-hero__title {
		letter-spacing: 1.5px;
	}

	.ve-hero__cta {
		padding: 14px 20px 26px;
	}

	.ve-hero__cta .homepage-slider-button {
		border: 1px solid rgba(255, 255, 255, 0.8); /* edge stays visible on the dark band */
	}
}

/* Testimonials from [ve_testimonials] / [sp_testimonial] (inc/testimonials.php), Nov 2026.
   Contrast on white: stars #b8860b 3.25:1 (non-text), "Read more" #127a62 5.27:1.
   Masonry reads across rows (newest first, left to right): js/testimonials.js gives each card a row
   span on a 4px grid and adds .is-packed; without JS it is a plain grid with rows. */
.ve-sr {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

.ve-testimonials {
	margin: 0 0 30px;
}

.ve-testimonials--grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	align-items: start;
}

.ve-testimonials--masonry {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	align-items: start;
}

.ve-testimonials--masonry.is-packed {
	grid-auto-rows: 4px;
	row-gap: 0;
}

.ve-testimonial {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin: 0;
	padding: 24px 22px;
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 8px;
	text-align: center;
}

.ve-testimonial .ve-testimonial__photo {
	order: -2;
	width: 120px;
	height: 120px;
	margin: 0 0 14px;
	border-radius: 50%;
	object-fit: cover;
}

.ve-testimonial__caption {
	order: -1; /* name and stars sit above the review, as before */
	display: flex;
	flex-direction: column;
	align-items: center;
	margin: 0 0 12px;
}

.ve-testimonial__name {
	font-family: Lora, Georgia, serif;
	font-size: 1.15em;
	font-weight: 700;
	color: #434449;
}

.ve-testimonial__stars {
	margin-top: 4px;
	font-size: 18px;
	letter-spacing: 2px;
	line-height: 1;
	color: #b8860b;
}

.ve-testimonial blockquote.ve-testimonial__text {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 1em;
	font-style: normal;
	line-height: 1.6em;
	quotes: none;
}

.ve-testimonial blockquote.ve-testimonial__text::before,
.ve-testimonial blockquote.ve-testimonial__text::after {
	content: none; /* the theme draws a vertical line beside every blockquote */
}

.ve-testimonial blockquote.ve-testimonial__text p {
	margin: 0 0 12px;
	font-size: 1em;
}

.ve-testimonial blockquote.ve-testimonial__text p:last-child {
	margin-bottom: 0;
}

/* Grid: clamp long reviews to about 8 lines once the script is running (without JS, full text). */
.ve-js .ve-testimonials--grid .ve-testimonial__text {
	max-height: 12.8em;
	overflow: hidden;
}

.ve-js .ve-testimonials--grid .ve-testimonial.is-open .ve-testimonial__text {
	max-height: none;
}

.ve-testimonial__more {
	margin-top: 10px;
	padding: 4px 8px;
	border: 0;
	background: none;
	font: inherit;
	font-weight: 700;
	color: #127a62;
	text-decoration: underline;
	cursor: pointer;
}

.ve-testimonial__more:hover {
	color: #0b5242;
}

.ve-testimonial__more:focus-visible {
	outline: 3px solid #127a62;
	outline-offset: 2px;
}

@media (max-width: 1199px) {
	.ve-testimonials--grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ve-testimonials--masonry {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.ve-testimonials--grid {
		grid-template-columns: 1fr;
	}

	.ve-testimonials--masonry {
		grid-template-columns: 1fr;
	}
}

/* Lightbox (Swipebox photo viewer), Nov 2026. GT3 only styled the close button inside the arrow bar,
   which this Swipebox version doesn't use, so it rendered 0x0 and phones had no way to close.
   Visible 48px round button, top right, above the photo; keyboard focus ring. JS: js/lightbox.js. */
#swipebox-close {
	position: fixed;
	top: 16px;
	right: 16px;
	z-index: 999999;
	display: block;
	width: 48px;
	height: 48px;
	margin: 0;
	box-sizing: border-box;
	border: 2px solid #fff;
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.65) none !important;
	cursor: pointer;
}
#swipebox-close::before,
#swipebox-close::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 22px;
	height: 2px;
	background: #fff;
	transform: translate(-50%, -50%) rotate(45deg);
}
#swipebox-close::after {
	transform: translate(-50%, -50%) rotate(-45deg);
}
#swipebox-close:hover {
	background-color: rgba(0, 0, 0, 0.85) !important;
}
/* Keyboard focus rings (theme.css removes a:focus outlines site-wide, hence !important).
   :focus-visible so the ring doesn't show after a tap or click. Dark ring keeps white visible on bright photos. */
#swipebox-close:focus-visible,
.img_block .view_link:focus-visible {
	outline: 3px solid #fff !important;
	outline-offset: 3px;
	box-shadow: 0 0 0 7px #000;
}
/* The "view photo" circle only appeared on mouse hover; show it to keyboard users too. */
.img_block .view_link:focus-visible {
	opacity: 1;
}

/* FAQ toggles, Nov 2026: each question's text sits in a <button> (js/toggles.js) so keyboards and screen readers can
   open answers (WCAG 2.1.1, 4.1.2). The button inherits everything from the h6 so the look is unchanged; the h6 keeps
   its padding, border and the absolutely positioned plus icon. Visible focus ring (WCAG 2.4.7). */
.ve-toggle-button {
	-webkit-appearance: none;
	appearance: none;
	display: block;
	/* Cover the h6's padding (theme.css: 9px 30px 9px 14px) so the whole question box, plus icon included, is the
	   button and the focus ring outlines the box. */
	box-sizing: border-box;
	width: calc(100% + 44px);
	margin: -9px -30px -9px -14px;
	padding: 9px 30px 9px 14px;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	letter-spacing: inherit;
	word-spacing: inherit;
	text-transform: inherit;
	text-align: inherit;
	cursor: pointer;
}
.ve-toggle-button:focus {
	outline: none;
}
.ve-toggle-button:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}
