/* Header nav hover improvements */
:root{
	--pg-primary:#674c4f; /* site accent */
	--pg-primary-20: rgba(103,76,79,0.2);
	--pg-text:#ffffff;
	/* Base text & button font family (Bootstrap body) */
	--pg-font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
	--pg-link-color:var(--pg-primary);
	--pg-link-hover:#8b6b6e;
	--pg-button-bg:var(--pg-primary);
	--pg-button-hover:#815c5f;
	--pg-button-text:#ffffff;
	--pg-button-radius:999px;
	--pg-button-shadow:0 8px 16px rgba(103,76,79,0.25);
	--bs-font-sans-serif:var(--pg-font-family);
	--bs-body-font-family:var(--pg-font-family);
	--bs-link-color-rgb: #6d5254 !important;
}

html,
body{
	font-family:var(--pg-font-family);
	color:#2b2627;
	text-rendering:optimizeLegibility;
}

body{
	background-color:var(--bs-body-bg, #fff);
}

h5,
body p,
body span,
body a,
body li,
body dt,
body dd,
body label,
body input,
body textarea,
body select,
body button,
body .btn,
body .lead,
body small,
body strong,
body em,
body th,
body td,
body figcaption,
body blockquote{
	font-family:var(--pg-font-family);
}

/* Headings across the site (including banner) use Great Vibes */
h1,
h2,
h3,
h4,
h6,
.section-title,
.card-title,
.hero-title,
.display-1,
.display-2,
.display-3,
.display-4,
.navbar-brand,
.offcanvas-title{
	font-family:'Great Vibes', cursive !important;
}

/* Banner headings override (were Amatic/Open Sans) */
.display-tc h1,
.display-tc .h1,
.display-tc h2,
.display-tc .h2{
	font-family:'Great Vibes', cursive !important;
}

/* UI text, nav links and controls stay sans-serif (exclude buttons per request) */
.navbar-nav .nav-link,
.mobile-menu-link,
input,
textarea,
select,
label{
    font-family:var(--pg-font-family) !important;
}

/* Base nav link */
#navbar .nav-link{
	color: var(--pg-text);
	position: relative;
	padding: .25rem .5rem;
	border-radius: 999px; /* pill */
	transition: color .2s ease, background-color .2s ease, box-shadow .2s ease;
}

/* Header: remove hover background/shadow effect on nav links */
#navbar .nav-link:hover,
#navbar .nav-link:focus{
	background-color: transparent;
	box-shadow: none;
	text-decoration: none;
}

@media (min-width:768px) and (max-width:991px){
	#navbar .container{
		flex-wrap:nowrap;
		gap:.5rem;
		justify-content:space-between !important;
		align-items:center !important;
	}
	/* Show only logo + burger; hide desktop nav to avoid wrapping */
	#navbar .navbar-brand{
		position:relative;
		top:auto;
		left:auto;
		transform:none;
		margin:0 auto;
		order:0;
	}
	#navbar .container{
		flex-wrap:nowrap;
		align-items:center !important;
	}
	#navbar .collapse.navbar-collapse{ display:none !important; }
	#navbar .navbar-nav.flex-row{ display:none !important; }
}

@media (min-width:991px){
	#navbar .container{
		flex-wrap:nowrap;
		gap:0;
	}
	#navbar .navbar-brand{
		position:absolute;
		top:50%;
		left:50%;
		transform:translate(-50%,-50%);
	}
}

/* Header: underline accent (restored) */
#navbar .nav-link::after{
	content: "";
	position: absolute;
	left: 12px;
	right: 12px;
	bottom: -6px;
	height: 2px;
	background: linear-gradient(90deg, transparent 0, var(--pg-primary) 25%, var(--pg-primary) 75%, transparent 100%);
	transform: scaleX(0);
	transform-origin: 50% 50%;
	transition: transform .25s ease;
}

#navbar .nav-link:hover::after,
#navbar .nav-link:focus::after{
	transform: scaleX(1);
}

/* Active page indication */
#navbar .nav-link.active{
	background-color: var(--pg-primary-20);
}

/* Mobile menu links: consistent hover */
.mobile-menu .mobile-menu-link{
	border-radius: 10px;
	transition: none !important;
}
.mobile-menu .mobile-menu-link:hover{
	background-color: var(--pg-primary-20);
	padding-left: .75rem;
}
/* Link color harmonised with brand palette */
a{
	color:var(--pg-link-color);
	text-decoration:none;
	transition:color .2s ease;
}

a:hover,
a:focus{
	color:var(--pg-link-hover);
	text-decoration:none;
}

.text-white a,
.text-light a,
.bg-dark a,
.mobile-menu a,
#footer a,
footer a{
	color:currentColor;
}

.text-white a:hover,
.text-light a:hover,
.bg-dark a:hover,
.mobile-menu a:hover,
#footer a:hover,
footer a:hover{
	color:currentColor;
	opacity:.85;
}

/* Elegant button base: bottom line + decorative top line; no motion */
.btn,
button,
input[type="submit"],
input[type="button"],
input[type="reset"],
a.btn,
a.button{
  background: none !important;
  border: 1px solid transparent;
  border-bottom-color: #613c33;
  color: inherit !important;
  text-transform: uppercase;
  letter-spacing: 1px;
  padding: 10px 28px;
  position: relative;
  display: inline-block;
  box-shadow: none !important;
  transition: none !important;
}

.btn:not(.btn-link)::before,
a.btn:not(.btn-link)::before,
a.button::before{
  content: "";
  background: url(https://somerley.com/wp-content/uploads/2023/10/border-top.svg) no-repeat center;
  display: block;
  position: absolute;
  top: -15px;
  height: 25px;
  width: 100%;
  left: 0;
}

/* (Removed custom .btn-elegant overrides to restore original behavior) */

/* (Keep default button effects globally; mobile menu is handled separately below) */

/* Hero/banner heights: 100vh only on Home, 70vh elsewhere.
	Use a robust min-height so we don't end up with gaps at certain
	viewport heights (choose the larger of 70vh or 500px). */
#header.cover{ height:70vh !important; min-height:70vh !important; }
.banner.banner_top{ min-height: max(70vh, 500px) !important; margin-bottom: 0 !important; }

/* Defensive: ensure banners don't create collapsing margins with the next
	section which can produce a visible gap on some viewports. */
.banner { margin-bottom: 0 !important; }
.banner + section { margin-top: 0 !important; }
/* Home page detection via presence of .welcome-section */
body:has(.welcome-section) #header.cover{ height:100vh !important; min-height:100vh !important; }

/* Header transparency on mobile; keep text white */
@media (max-width: 991.98px){
	/* Keep transparent feel but add brand tint for readability */
	.navbar{
		background: linear-gradient(to bottom, rgba(103,76,79,0.78), rgba(103,76,79,0.42), rgba(103,76,79,0.00)) !important;
		backdrop-filter: saturate(120%) blur(6px);
	}
	.navbar.fixed-top{
		background: linear-gradient(to bottom, rgba(103,76,79,0.78), rgba(103,76,79,0.42), rgba(103,76,79,0.00)) !important;
		backdrop-filter: saturate(120%) blur(6px);
	}
	.navbar.fixed-top .navbar-brand,
	.navbar.fixed-top .navbar-toggler,
	.navbar.fixed-top .nav-link{ color:#fff !important; }

	.navbar-toggler{
		color:#fff;
		border:none;
		box-shadow:none !important;
		z-index:1100;
	}
	.navbar-toggler:focus{ outline:none; box-shadow:none !important; }

    /* Mobile navbar: remove nav-link underline/hover animation entirely */
    #navbar .nav-link{ transition: none !important; }
    #navbar .nav-link::after{ display:none !important; }
}

/* Hide phone numbers globally except on Contact page */
.mobile-menu-contact{ display:none !important; }
body:has(.contact-hero) .mobile-menu-contact{ display:block !important; }
/* Services hero phone line */
.live-view .fw-semibold,
.live-view .fw-semibold + p{ display:none !important; }
/* Catering and other pages: hide tel buttons unless on contact page */
body:not(:has(.contact-hero)) a[href^="tel:"]{ display:none !important; }

/* About page mobile: justify text for perfect two-side alignment */
@media (max-width: 767.98px){
	#couple .desc-groom p,
	#couple .desc-bride p,
	.couple p{ text-align: justify; text-justify: inter-word; hyphens:auto; }
}

/* About page section alignment (center headings and blocks) */
#couple .heading, #couple .heading h2, #couple .heading p{ text-align:center !important; }
#couple .desc-groom, #couple .desc-bride{ text-align:center; }
#couple .story-image-rectangular img{ display:block; margin:0 auto; }

/* Contact page: brand contact cards (override gray) */
body:has(.contact-hero) .contact-card{
	background: linear-gradient(135deg, #674c4f 0%, #8b6b6e 100%) !important;
	color:#fff !important;
	border:1px solid rgba(255,255,255,0.25) !important;
	box-shadow: 0 10px 24px rgba(103,76,79,0.35) !important;
}
body:has(.contact-hero) .contact-card a{ color:#fff !important; }
body:has(.contact-hero) .contact-card h5{ color:#fff !important; }

/* Fix: header banner text should stay inside banner */
#header .display-t{ height:100% !important; min-height:inherit !important; display:flex !important; align-items:flex-end !important; justify-content:center !important; padding-bottom:80px !important; }

/* Button hover: draw left/right borders (no motion/animation) */
.btn:hover,
.btn:focus,
.btn:active,
button:hover,
button:focus,
button:active,
input[type="submit"]:hover,
input[type="submit"]:focus,
input[type="submit"]:active,
input[type="button"]:hover,
input[type="button"]:focus,
input[type="button"]:active,
input[type="reset"]:hover,
input[type="reset"]:focus,
input[type="reset"]:active{
  background: transparent !important;
  border-left: 1px solid #613c33 !important;
  border-right: 1px solid #613c33 !important;
  border-bottom-color: #613c33 !important;
  color: inherit !important;
  transform: none !important;
  box-shadow: none !important;
  text-decoration: none !important;
}
#header .display-t, #header .display-tc, #header .banner-text{ position:relative; z-index:1; }
#header .container, #header .row, #header .col-12{ height:100% !important; }


.mobile-menu-link:hover{ background:transparent !important; border-left-color: transparent !important; color:inherit !important; transform:none !important; }

.bg-light {
  --bs-bg-opacity: 1;
  background-color: rgba(var(--pg-primary), var(--bs-bg-opacity)) !important;
}

/* Make all buttons follow the elegant style and remove hover animations */
.btn,
button,
input[type="submit"],
input[type="button"],
input[type="reset"],
a.btn,
a.button{
  background: none !important;
  border: 1px solid transparent;
  border-bottom-color: #613c33; /* elegant bottom line */
  color: inherit !important;
  text-transform: uppercase;
  letter-spacing: 1px;
  padding: 10px 28px;
  position: relative;
  display: inline-block;
  box-shadow: none !important;
  transition: none !important;
}

/* Decorative top line (same as .btn-elegant) */
.btn:not(.btn-link)::before,
a.btn:not(.btn-link)::before,
a.button::before{
  content: "";
  background: url(https://somerley.com/wp-content/uploads/2023/10/border-top.svg) no-repeat center;
  display: block;
  position: absolute;
  top: -15px;
  height: 25px;
  width: 100%;
  left: 0;
}

/* Remove hover/active animations across all buttons */
.btn-elegant:hover,
.btn-elegant:focus,
.btn-elegant:active,
button:hover,
button:focus,
button:active,
input[type="submit"]:hover,
input[type="submit"]:focus,
input[type="submit"]:active,
input[type="button"]:hover,
input[type="button"]:focus,
input[type="button"]:active,
input[type="reset"]:hover,
input[type="reset"]:focus,
input[type="reset"]:active,

.btn-elegant:hover {
		color: unset !important;
}

/* Home cards: gradient overlay top -> bottom for clearer text */
.card-zoom-in .card{ position:relative; overflow:hidden; }

.offcanvas .mobile-menu-body .mobile-menu-nav .mobile-menu-item{ text-align:left; }

/* Language switcher styling */
.lang-dropdown .lang-toggle{
	display:flex;
	align-items:center;
	gap:.3rem;
	color:var(--pg-text);
	padding:.25rem .75rem;
	border-radius:999px;
	border:1px solid transparent;
	cursor:pointer;
	text-transform:none;
	letter-spacing:normal;
	font-size:.85rem;
	background:rgba(255,255,255,0.06);
	transition:background .2s ease, color .2s ease, border-color .2s ease;
}

.lang-dropdown .lang-toggle:hover,
.lang-dropdown .lang-toggle:focus{
	background:rgba(255,255,255,0.18);
	border-color:rgba(255,255,255,0.25);
	color:#fff;
}

.lang-dropdown{ position:relative; }
.lang-dropdown .lang-toggle::after{ display:none !important; }
.lang-dropdown .lang-toggle::before,
.lang-dropdown .lang-option::before,
.lang-pill::before{ content:none !important; }

.lang-dropdown .lang-label{ font-weight:600; letter-spacing:0.02em; transition:color .2s ease; color: white;}
.lang-dropdown:focus-within .lang-label,
.lang-dropdown:hover .lang-label{ color:#fff; }

.lang-dropdown:focus-within .lang-toggle,
.lang-dropdown:hover .lang-toggle{
	background:rgba(255,255,255,0.18);
	border-color:rgba(255,255,255,0.25);
	color:#fff;
}

.lang-caret{ font-size:.6rem; transition:opacity .2s ease; color: white;}
.lang-caret-up{ display:none; }
.lang-dropdown:focus-within .lang-caret-down,
.lang-dropdown:hover .lang-caret-down{ display:none; }
.lang-dropdown:focus-within .lang-caret-up,
.lang-dropdown:hover .lang-caret-up{ display:inline-block; }

.lang-dropdown-menu{
	display:none;
	position:absolute;
	right:0;
	top:calc(100% + .65rem);
	/* min-width:190px; */
	background:rgba(255,255,255,0.92);
	border:1px solid rgba(103,76,79,0.18);
	border-radius:12px;
	padding:.2rem;
	box-shadow:0 18px 32px rgba(0,0,0,0.16);
	z-index:1100;
}
.lang-dropdown:focus-within .lang-dropdown-menu,
.lang-dropdown:hover .lang-dropdown-menu{ display:block; }

.lang-dropdown-list{ margin:0; display:flex; flex-direction:column; gap:.25rem; }
.lang-option-form{ margin:0; }

.lang-option{
	display:flex;
	align-items:center;
	gap:.4rem;
	width:100%;
	border-radius:10px;
	text-transform:none !important;
	letter-spacing:normal !important;
	font-size:.9rem;
	padding:.5rem .75rem;
	border:1px solid transparent;
	color:#3f2f30 !important;
	background:transparent !important;
}

.lang-option:hover,
.lang-option:focus{
	background:rgba(103,76,79,0.08) !important;
	border-color:rgba(103,76,79,0.15) !important;
	color:#37292a !important;
}

.lang-option.active{
	background:var(--pg-primary) !important;
	border-color:var(--pg-primary) !important;
	color:#fff !important;
	box-shadow:0 12px 24px rgba(103,76,79,0.35);
}

.lang-option .lang-code{ font-weight:700; min-width:2.5rem; display:inline-flex; align-items:center; justify-content:center; }
.lang-option .lang-name{ font-size:.85rem; opacity:.8; }

.lang-mobile-item{ padding-top:.5rem; }
.lang-pill-form{ margin:0; display:inline-flex; }
.lang-mobile-group{
	display:flex;
	gap:.75rem;
	flex-wrap:nowrap;
	align-items:center;
	justify-content:center;
}
.lang-pill{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:.4rem;
	padding:.45rem 1rem;
	border-radius:999px;
	border:1px solid rgba(255,255,255,0.45);
	background:transparent !important;
	color:#fff !important;
	text-transform:none !important;
	letter-spacing:normal !important;
	font-size:.95rem;
	transition:background .2s ease, color .2s ease, border-color .2s ease;
	flex:0 1 auto;
	min-width:0;
	white-space:nowrap;
}

.lang-pill:hover,
.lang-pill:focus{
	background:rgba(255,255,255,0.18) !important;
	border-color:#fff;
}

.lang-pill.active{
	background:#fff !important;
	color:var(--pg-primary) !important;
	border-color:#fff;
	box-shadow:0 10px 20px rgba(0,0,0,0.15);
}

.lang-pill-code{ font-weight:700; }
.lang-pill-name{ font-size:.85rem; opacity:.9; }

.gallery-card .gallery-credit{
	margin-top:.5rem;
	font-size:.95rem;
	display:flex;
	align-items:center;
	gap:.4rem;
	color:inherit;
}

.gallery-card .gallery-credit i{ font-size:.85rem; }

.gallery-card .gallery-credit a{
	color:white;
	text-decoration:none;
}

.gallery-card .gallery-credit a:hover,
.gallery-card .gallery-credit a:focus{
	text-decoration:underline;
}

@media (max-width:575.98px){
	.lang-mobile-group{ gap:.5rem; justify-content:center; }
	.lang-pill{ padding:.4rem .85rem; }
	.lang-pill-name{ display:none; }
}
.card-zoom-in .card::after{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background: linear-gradient(to bottom,
    rgba(0,0,0,0.55) 0%,
    rgba(0,0,0,0.35) 45%,
    rgba(0,0,0,0.65) 100%);
}
.card-zoom-in .card .card-img-overlay .card-title{ margin-bottom: .5rem !important; }

/* Mobile phone list used in offcanvas/mobile menu: stacked links for readability */
.mobile-phones { display: inline-block; margin-left: 8px; }
.mobile-phones a { display: block; margin: 2px 0; color: inherit; text-decoration: none; }

/* Make animations/transitions faster across the site while respecting user reduced-motion preference.
	 This is a conservative, targeted tuning (not a global override) to keep third-party and keyframe
	 animations intact while making UI transitions snappier. */
@media (prefers-reduced-motion: no-preference) {
	.offcanvas,
	.offcanvas .offcanvas-body,
	.offcanvas .offcanvas-header,
	.mobile-menu,
	.mobile-menu-body,
	.mobile-menu-link,
	.navbar,
	.navbar .nav-link,
	.navbar-brand,
	.dropdown-menu,
	.modal,
	.modal .modal-dialog,
	.toast,
	.carousel,
	.carousel .carousel-item {
		transition-duration: 220ms !important;
		transition-delay: 0s !important;
		transition-timing-function: ease !important;
	}

	/* Owl carousel height transition is targeted explicitly (vendor default 500ms). */
	.owl-height { transition-duration: 250ms !important; }

	/* do NOT override animation-duration here */
}

/* Faster, smoother entrance animations overriding compiled defaults */
.animate-fade-up{ opacity: 0; transform: translateY(24px) scale(0.98); transition: opacity .35s ease-out, transform .35s ease-out !important; }
.animate-fade-up.visible{ animation: fadeSlideUp .45s ease-out forwards !important; }
.card-zoom-in{ opacity:0; transform: scale(0.95) translateY(20px); transition: transform .45s ease, opacity .45s ease !important; }
.fade-in-on-scroll{ opacity:0; transform: translateY(20px); transition: all .45s ease !important; }
.grid-item img{ transition: transform .35s ease, filter .35s ease !important; }

.card-title
h2,
h3{
	font-size: 35px;
}
h4, .h4 {
  font-size: calc(1.275rem + 0.3vw);
}
@media (min-width: 1200px) {
  h4, .h4 {
    font-size: 2rem !important;
  }
}

@media (max-width: 968px) {
 .card-title
h2,
h3{
	font-size: 35px;
}
	
}