/* --------------------------------
Custom Beautiful Floral
Author: Kalaujodoh.com
Design and Developed by: Kalaujodoh.com Undangan Online
------------------------------------
*/
@import url('https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css');

/* Custom Font Declarations */
@font-face {
	font-family: 'Great Vibes';
	src: url('./font/Great_Vibes/GreatVibes-Regular.ttf') format('truetype');
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Cinzel';
	src: url('./font/Cinzel/static/Cinzel-Regular.ttf') format('truetype');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Cinzel';
	src: url('./font/Cinzel/static/Cinzel-Medium.ttf') format('truetype');
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Cinzel';
	src: url('./font/Cinzel/static/Cinzel-SemiBold.ttf') format('truetype');
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Cinzel';
	src: url('./font/Cinzel/static/Cinzel-Bold.ttf') format('truetype');
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

*,
*:after,
*:before {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}

body,
html {
	font-size: 100%;
	padding: 0;
	margin: 0;
	height: 100%;
}

.clearfix:before,
.clearfix:after {
	content: " ";
	display: table;
}

.clearfix:after {
	clear: both;
}

body {
	font-family: 'Cinzel', serif;
	color: #373435;
	background: #F4F6FF;
	overflow: hidden;
	padding: 0px;
}

a {
	color: #555;
	text-decoration: none;
	outline: none !important;
}

a:hover,
a:active,
a:focus {
	color: #777;
	text-decoration: none;
	-webkit-transition: all 0.3s ease-in-out;
	-moz-transition: all 0.3s ease-in-out;
	-o-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
	outline: 0;
}

:focus {
	outline: 0;
}


a img {
	border: none;
}

label {
	width: 100%;
	color: #373435;
}

::-webkit-scrollbar {
	width: 8px;
}

::-webkit-scrollbar-track {
	background: rgba(225, 225, 225, 0.3);
	padding: 0 3px;
}

::-webkit-scrollbar-thumb {
	background: rgba(225, 225, 225, 0.5);
	border-radius: 4px;
}


/* ----------------------------------------
    MODAL
-------------------------------------------*/
.modal-content {
	position: relative;
	background-color: #fff;
	-webkit-background-clip: padding-box;
	background-clip: padding-box;
	border: none;
	border-radius: 0px;
	outline: 0;
	-webkit-box-shadow: 0px 1px 40px 0 rgba(0, 0, 0, 0.1);
	box-shadow: 0px 1px 40px 0 rgba(0, 0, 0, 0.1);
	margin: auto;
}

.modal-content .close {
	opacity: 1;
	font-size: 25px;
}


#formMessages {
	color: #36A9DF;
	font-size: 17px;
	font-weight: 600;
}

#over-lay-welcome {
	position: fixed;
	width: 100vw;
	height: 100vh;
	background-color: rgba(255, 255, 255, 0.85);
	border: none;
	color: white;
	padding: 15px 32px;
	text-align: center;
	text-decoration: none;
	font-size: 16px;
	margin: 0px;
	cursor: pointer;
	z-index: 9999;
	display: -webkit-flex;
	/* Safari */
	-webkit-align-items: center;
	/* Safari 7.0+ */
	display: flex;
	align-items: center;
	color: #000;
}

#over-lay-welcome p {
	font-size: 17px;
}

#over-lay-welcome h4 {
	font-size: 22px;
	font-weight: 600;
	padding: 0px;
	text-transform: uppercase;
}

#over-lay-welcome img {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

/* --------------------------------------------
		BODY WRAPPER
----------------------------------------------- */
.sw-custom-wrapper {
	position: relative;
	margin: 0;
	text-align: center;
	background: #F4F6FF url('./img/sw-paper.jpg') no-repeat;
	background-size: cover;
	padding: 40px;
	width: 100vw;
	height: 100vh;
}

.sw-custom-wrapper .sw-bookblock {
	box-shadow: 0 12px 20px -10px rgba(0, 0, 0, 0.6);
}

.sw-custom-wrapper h3 {
	font-size: 1.4em;
	font-weight: 300;
	margin: 0.4em 0 1em;
}

.sw-custom-wrapper nav {
	width: 100%;
	height: 30px;
	margin: 4px auto 0;
	position: relative;
	z-index: 101;
	text-align: center;
	background: none;
}

.sw-custom-wrapper nav a {
	display: inline-block;
	width: 30px;
	height: 30px;
	text-align: center;
	background: #10375C;
	color: #F4F6FF;
	font-size: 0;
	margin: 0px 2px;
	border-radius: 4px;
}

.sw-custom-wrapper nav a:hover {
	background: #EB8317;
	color: #F4F6FF;
}

.sw-custom-icon:before {
	font-family: 'fontawesome';
	speak: none;
	font-style: normal;
	font-weight: normal;
	font-variant: normal;
	text-transform: none;
	line-height: 1;
	font-size: 14px;
	line-height: 30px;
	display: block;
	-webkit-font-smoothing: antialiased;
}


.sw-custom-icon-first:before,
.sw-custom-icon-last:before {
	content: "\f050";
}

.sw-custom-icon-arrow-left:before,
.sw-custom-icon-arrow-right:before {
	content: "\f04e";
}

.sw-custom-icon-arrow-left:before,
.sw-custom-icon-first:before {
	-webkit-transform: rotate(180deg);
	transform: rotate(180deg);
}

.sw-custom-icon-share:before {
	content: "\f1e0";
}

.sw-custom-icon-qrcode:before {
	content: "\f029";
}

.sw-custom-icon-gift:before {
	content: "\f06b";
}

.sw-custom-icon-full:before {
	content: "\f0b2";
}

.sw-custom-icon-normal:before {
	content: "\f066";
}

/* No JS */
.no-js .sw-custom-wrapper {
	height: auto;
}

.no-js .bb-custom-content {
	height: 470px;
}


/* = bookblock
---------------------------------------------------------------------------------- */
.sw-bookblock {
	width: 100%;
	height: 100%;
	margin: 0 auto;
	position: relative;
	z-index: 100;
	-webkit-perspective: 1300px;
	perspective: 1300px;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}

.bb-page {
	position: absolute;
	-webkit-transform-style: preserve-3d;
	transform-style: preserve-3d;
	-webkit-transition-property: -webkit-transform;
	transition-property: transform;
}

.bb-vertical .bb-page {
	width: 50%;
	height: 100%;
	left: 50%;
	-webkit-transform-origin: left center;
	transform-origin: left center;
}

.bb-horizontal .bb-page {
	width: 100%;
	height: 50%;
	top: 50%;
	-webkit-transform-origin: center top;
	transform-origin: center top;
}

.bb-page>div,
.bb-outer,
.bb-content,
.bb-inner {
	position: absolute;
	height: 100%;
	width: 100%;
	top: 0;
	left: 0;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}

.bb-vertical .bb-content {
	width: 200%;
}

.bb-horizontal .bb-content {
	height: 200%;
}

.bb-page>div {
	width: 100%;
	-webkit-transform-style: preserve-3d;
	transform-style: preserve-3d;
}

.bb-vertical .bb-back {
	-webkit-transform: rotateY(-180deg);
	transform: rotateY(-180deg);
}

.bb-horizontal .bb-back {
	-webkit-transform: rotateX(-180deg);
	transform: rotateX(-180deg);
}

.bb-outer {
	width: 100%;
	overflow: hidden;
	z-index: 999;
}

.bb-overlay,
.bb-flipoverlay {
	background-color: rgba(0, 0, 0, 0.7);
	position: absolute;
	top: 0px;
	left: 0px;
	width: 100%;
	height: 100%;
	opacity: 0;
}

.bb-flipoverlay {
	background-color: rgba(0, 0, 0, 0.2);
}

.sw-bookblock.bb-vertical>div.bb-page:first-child,
.sw-bookblock.bb-vertical>div.bb-page:first-child .bb-back {
	-webkit-transform: rotateY(180deg);
	transform: rotateY(180deg);
}

.sw-bookblock.bb-horizontal>div.bb-page:first-child,
.sw-bookblock.bb-horizontal>div.bb-page:first-child .bb-back {
	-webkit-transform: rotateX(180deg);
	transform: rotateX(180deg);
}

/* Content display */
.bb-content {
	background: url('./img/sw-element-1.png') top left no-repeat,
		url('./img/sw-element-2.png') top right no-repeat,
		url('./img/sw-element-4.png') bottom right no-repeat,
		url('./img/sw-element-3.png') bottom left no-repeat,
		/* url('./img/bg-wayang.png') center center no-repeat, */
		#10375C;
	border: 10px solid #10375C;
	background-size: 180px, 180px, 180px, 180px, cover;
}

.bb-vertical .bb-front .bb-content {
	left: -100%;
}

.bb-horizontal .bb-front .bb-content {
	top: -100%;
}

/* Flipping classes */
.bb-vertical .bb-flip-next,
.bb-vertical .bb-flip-initial {
	-webkit-transform: rotateY(-180deg);
	transform: rotateY(-180deg);
}

.bb-vertical .bb-flip-prev {
	-webkit-transform: rotateY(0deg);
	transform: rotateY(0deg);
}

.bb-horizontal .bb-flip-next,
.bb-horizontal .bb-flip-initial {
	-webkit-transform: rotateX(180deg);
	transform: rotateX(180deg);
}

.bb-horizontal .bb-flip-prev {
	-webkit-transform: rotateX(0deg);
	transform: rotateX(0deg);
}

.bb-vertical .bb-flip-next-end {
	-webkit-transform: rotateY(-15deg);
	transform: rotateY(-15deg);
}

.bb-vertical .bb-flip-prev-end {
	-webkit-transform: rotateY(-165deg);
	transform: rotateY(-165deg);
}

.bb-horizontal .bb-flip-next-end {
	-webkit-transform: rotateX(15deg);
	transform: rotateX(15deg);
}

.bb-horizontal .bb-flip-prev-end {
	-webkit-transform: rotateX(165deg);
	transform: rotateX(165deg);
}

.sw-item {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	display: none;
	background: url('./img/sw-element-1.png') top left no-repeat,
		url('./img/sw-element-2.png') top right no-repeat,
		url('./img/sw-element-4.png') bottom right no-repeat,
		url('./img/sw-element-3.png') bottom left no-repeat,
		/* url('./img/bg-wayang.png') center center no-repeat, */
		#10375C;
	border: 10px solid #10375C;
	background-size: 180px, 180px, 180px, 180px, cover;
}

/* No JS */
.no-js .sw-bookblock,
.no-js ul.bb-custom-grid li {
	width: auto;
	height: auto;
}

.no-js .sw-item {
	display: block;
	position: relative;
}

/* ---------------------------------
	timer
----------------------------------------*/
.sw-timer {
	height: 30px;
	background: #10375C;
	position: absolute;
	left: 0;
	right: 0;
	margin: auto;
	width: 200px;
	top: 11px;
	padding: 5px 15px;
	display: inline-block;
	font-family: 'Cinzel', serif;
	font-size: 15px;
	color: #F4F6FF;
	border-radius: 7px 7px 0 0;
	-moz-border-radius: 7px 7px 0 0;
	-webkit-border-radius: 7px 7px 0 0;
}

/*----------------------------------
	SW CONTENT UNDANGAN
------------------------------------*/

.sw-content {
	width: 100%;
	height: 100%;
	overflow: auto;
	font-family: 'Cinzel', serif;
	/* padding-bottom: 40px; */
}

.sw-content-inner {
	width: 100%;
	height: auto;
	min-height: 100%;
	padding: 30px;
	font-family: 'Cinzel', serif;
	overflow-x: hidden;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: center;
	text-align: center;
}

.sw-content-flex {
	display: flex;
	justify-content: center;
	align-items: center;
}

.sw-content-flex_2 {
	display: flex;
	justify-content: center;
	align-items: center;
}

.sw-content-inner p {
	font-size: 17px;
	color: #F4F6FF;
}

.sw-content-inner h2 {
	font-size: 30px;
	line-height: 100%;
	margin-bottom: 8px;
	color: #F3C623;
	font-family: 'Great Vibes', cursive;
	font-weight: 400;
}

/* ---------- Home -----------*/
.sw-invitation-home {
	width: 530px;
	margin: 0 auto;
	position: relative;
	margin-top: 0px;
	color: #F4F6FF;
}

.sw-invitation-home figure {
	width: 330px;
	margin: 0 auto;
	position: relative;
	margin-top: 0px;
	animation-name: bounce-1;
	animation-timing-function: linear;
	animation-duration: 4s;
	animation-iteration-count: infinite;
}

.sw-invitation-home h4 {
	padding: 0px;
	margin: auto;
	font-size: 20px;
	font-weight: 500;
	text-transform: uppercase;
	font-family: 'Cinzel', serif;
}

.sw-invitation-home h3 {
	padding: 0px;
	margin: auto;
	font-size: 20px;
	font-weight: 500;
	text-transform: uppercase;
	font-family: 'Cinzel', serif;
}

.sw-invitation-home p {
	font-size: 15px;
	font-family: 'Cinzel', serif;
	font-style: italic;
	padding: 0px;
}

/* New Cover Page Styling */
.wedding-header {
	margin-bottom: 30px;
}

.wedding-invitation-text {
	font-family: 'Cinzel', serif;
	font-size: 18px;
	font-weight: 400;
	color: #F3C623;
	text-transform: uppercase;
	letter-spacing: 2px;
	margin-bottom: 0;
}

.couple-names {
	margin: 50px 0;
	position: relative;
}

.groom-name,
.bride-name {
	font-family: 'Great Vibes', cursive;
	font-size: 75px;
	font-weight: 400;
	color: #F3C623;
	text-transform: none;
	letter-spacing: 2px;
	margin: 15px 0;
	text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
}

.ampersand {
	font-family: 'Great Vibes', cursive;
	font-size: 48px;
	color: #F3C623;
	margin: 10px 0;
	font-style: italic;
}

.wedding-date {
	margin: 30px 0;
}

.wedding-date p {
	font-family: 'Cinzel', serif;
	font-size: 16px;
	color: #F3C623;
	letter-spacing: 1px;
}

.wayang-decorations {
	position: relative;
	margin: 40px 0;
	height: 200px;
}

.wayang-left,
.wayang-right {
	position: absolute;
	bottom: 0;
}

.wayang-left {
	left: 20%;
}

.wayang-right {
	right: 20%;
	transform: scaleX(-1);
	/* Mirror effect */
}

.wayang-left img,
.wayang-right img {
	height: 180px;
	width: auto;
	filter: sepia(100%) saturate(200%) hue-rotate(35deg) brightness(1.2);
	opacity: 0.9;
}

.guest-info {
	margin-top: 60px;
}

.guest-label {
	font-family: 'Cinzel', serif;
	font-size: 14px;
	color: #F4F6FF;
	margin-bottom: 10px;
	text-transform: uppercase;
	letter-spacing: 1px;
}

.guest-name {
	font-family: 'Cinzel', serif;
	font-size: 24px;
	color: #F3C623;
	margin: 15px 0;
	font-weight: 600;
}

.guest-address {
	font-family: 'Cinzel', serif;
	font-size: 14px;
	color: #F4F6FF;
	font-style: italic;
	opacity: 0.8;
}

/* ----------------------------
	cover
-----------------------------------*/
.sw-cover-image {
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
}

/*------------------------------------
	CEREMONY
-------------------------------------*/
.sw-ceremony {
	height: 100%;
	content: "";
	text-align: center;
	font-family: 'Cinzel', serif;
}

.sw-el-top {
	margin-bottom: 30px;
}

.sw-el-bottom {
	margin-top: 30px;
}


.sw-opening {}

.sw-or {
	font-size: 26px;
	margin-top: 10px;
	margin-top: 10px;
}

.sw-binti {
	font-size: 15px !important;
}

.sw-ceremony h1 {
	font-size: 40px;
	line-height: 50%;
}

.sw-ceremony figure {
	/* margin:auto; */
	display: inline-block;
	text-align: center;
}

.sw-ceremony figure img {
	height: 150px;
	width: 150px;
	border-radius: 50%;
	-moz-border-radius: 50%;
	overflow: hidden;
	position: relative;
	border: 2px solid #F3C623;
	object-fit: cover;
}

/*------------------------------
	GROOM & BRIDE SECTIONS
------------------------------------*/
.sw-groom-section {
	background: linear-gradient(135deg, rgba(16, 55, 92, 0.95), rgba(16, 55, 92, 0.85));
	padding: 20px;
	border-radius: 10px;
	margin: 10px;
}

.sw-bride-section {
	background: linear-gradient(135deg, rgba(16, 55, 92, 0.95), rgba(16, 55, 92, 0.85));
	padding: 20px;
	border-radius: 10px;
	margin: 10px;
}

.sw-groom-section h3,
.sw-bride-section h3 {
	text-transform: uppercase;
	letter-spacing: 2px;
	font-weight: 600;
	margin-bottom: 25px;
}

/* Groom and Bride Section Layout */
.sw-groom-section,
.sw-bride-section {
	text-align: center;
	margin: 50px 0;
	position: relative;
}

.sw-groom-section figure,
.sw-bride-section figure {
	display: block;
	position: relative;
	margin: 20px auto;
	padding: 0;
	border: none;
	background: transparent;
	width: 220px;
	height: 220px;
}

.sw-groom-section figure img,
.sw-bride-section figure img {
	height: 140px;
	width: 140px;
	border-radius: 50%;
	-moz-border-radius: 50%;
	overflow: hidden;
	position: relative;
	display: block;
	object-fit: cover;
	/* Remove golden borders and effects */
	border: none;
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
	/* Remove transition for hover effects */
	z-index: 0;
}

/* Floral frame wrapper for groom/bride photos */
.sw-groom-section figure,
.sw-bride-section figure {
	position: relative;
	display: inline-block;
	width: 220px;
	height: 220px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.sw-groom-section figure::before,
.sw-bride-section figure::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-image: url('./img/floral-frame.png');
	background-size: 100% 100%;
	background-repeat: no-repeat;
	background-position: center;
	z-index: 1;
	pointer-events: none;
}

.sw-groom-section figure::after,
.sw-bride-section figure::after {
	content: '';
	display: none;
}

.sw-groom-section h2,
.sw-bride-section h2 {
	font-size: 64px;
	color: #F4F6FF;
	margin: 20px 0 15px 0;
	text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
	font-family: 'Great Vibes', cursive;
	font-weight: 400;
}

.sw-groom-section .sw-binti,
.sw-bride-section .sw-binti {
	font-size: 16px;
	color: #F4F6FF;
	font-style: italic;
	line-height: 1.5;
	opacity: 0.9;
}

/*------------------------------
	AKAD RESEPSI
------------------------------------*/
.sw-akad-resepsi {
	padding: 10px;
	margin: 10px 10px 10px 10px;
	border-radius: 8px;
	-moz-border-radius: 8px;
	-webkit-border-radius: 8px;
	background: rgba(225, 225, 225, 0.06);
}

.sw-akad-resepsi h2 {
	font-size: 25px;
	font-weight: 600;
	line-height: 100%;
	margin-bottom: 20px;
	color: #F3C623;
	font-family: 'Great Vibes', cursive;
	letter-spacing: 1px !important;
	word-spacing: normal !important;
}


.sw-akad-resepsi a {
	font-size: 14px;
	padding: 6px 10px;
	background: #F3C623;
	-webkit-border-radius: 5px;
	border-radius: 5px;
	color: #10375C;
	text-decoration: none;
	-webkit-transition: all 0.3s ease-in-out;
	-moz-transition: all 0.3s ease-in-out;
	-o-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
}

.sw-akad-resepsi a:hover {
	background: #EB8317;
	color: #F4F6FF;
	text-decoration: none;
	-webkit-transition: all 0.3s ease-in-out;
	-moz-transition: all 0.3s ease-in-out;
	-o-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
}


/*-----------------------------------
	STORY
-------------------------------------*/
.sw-block {
	overflow: visible;
	height: auto;
	min-height: auto;
}

/* Special styling for timeline/story section to ensure scrollability */
.sw-content:has(.main-timeline) .sw-content-inner,
.main-timeline .sw-content-inner {
	height: auto;
	min-height: 100%;
	justify-content: flex-start;
	overflow-y: auto;
}

.sw-block h3 {
	font-size: 38px;
	line-height: 100%;
	margin-bottom: 20px;
	font-weight: 500;
	color: #F3C623;
	font-family: 'Great Vibes', cursive;
}

.sw-block p {
	font-family: 'Cinzel', serif;
}

/*-----------------------------------
	QUOTES SECTION
-------------------------------------*/
.sw-quote-section {
	position: relative;
	width: 100vw;
	max-width: 100vw;
	margin: 0;
	padding: 40px 0;
	height: auto;
	min-height: auto;
	display: flex;
	align-items: center;
	justify-content: center;
	left: 50%;
	transform: translateX(-50%);
}

.sw-quote-frame {
	position: relative;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	height: auto;
	min-height: 500px;
}

.quote-frame-bg {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 85%;
	height: 100%;
	max-width: 850px;
	opacity: 1;
	object-fit: contain;
	object-position: center;
	z-index: 1;
}

.quote-content {
	position: relative;
	width: 60%;
	height: 60%;
	text-align: center;
	z-index: 2;
	padding: 40px 30px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	max-width: 480px;
	margin: 0 auto;
}

.quote-icon {
	color: #F3C623;
	font-size: 24px;
	margin-bottom: 15px;
}

.quote-icon-right {
	margin-bottom: 0;
	margin-top: 15px;
}

.quote-text {
	font-family: 'Cinzel', serif;
	font-size: 16px;
	line-height: 1.6;
	color: #F4F6FF;
	font-style: italic;
	margin: 20px 85px;
	text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
}

.quote-source {
	font-family: 'Cinzel', serif;
	font-size: 12px;
	color: #F3C623;
	font-weight: 600;
	margin: 20px 85px 0 85px;
}

/*----------------------------------
	GALLERY
------------------------------------ */
.sw-content-gallery {
	overflow: hidden;

}

.sw-content-gallery .col-xs-6,
.sw-content-gallery .col-sm-4,
.sw-content-gallery .col-md-4,
.sw-content-gallery .col-lg-4 {
	position: relative;
	min-height: 1px;
	padding-right: 5px !important;
	padding-left: 5px !important;
}

.sw-content-gallery h2 {
	margin-bottom: 20px;
}

.sw-gallery {
	position: relative;
	height: auto;
	-webkit-border-radius: 0px;
	border-radius: 0px;
	margin: 5px 0px;
	overflow: hidden;
}

.sw-gallery img {
	object-position: center;
	object-fit: cover;
	width: 200px;
	height: 150px;
	transition-duration: 0.4s;
	overflow: hidden;
}

.sw-gallery .sw-gallery-overlay {
	position: absolute;
	padding: 0px;
	color: #fff;
	bottom: 20px;
	right: 20px;
	opacity: 0;
	transition-duration: 0.4s;
}

.sw-gallery .sw-gallery-overlay i {
	font-size: 20px;
}

.sw-gallery:hover .sw-gallery-overlay {
	opacity: 1;
}

.sw-gallery:hover img {
	transform: scale(1.1);
	opacity: 0.7;
}

.youtube {
	position: relative;
	padding-bottom: 56.25%;
	/* 16:9 */
	padding-top: 25px;
	height: 0;
}

.youtube img {
	object-position: center;
	object-fit: cover;
	transition-duration: 0.4s;
	overflow: hidden;
}

.youtube .youtube-overlay {
	position: absolute;
	padding: 0px;
	color: #fff;
	left: calc(50% - 25px);
	top: calc(50% - 25px);
	opacity: 0;
	transition-duration: 0.4s;
}

.youtube .youtube-overlay i {
	font-size: 50px;
}

.youtube:hover .youtube-overlay {
	opacity: 1;
}

.youtube:hover img {
	transform: scale(1.1);
	opacity: 0.7;
}

/* --------------------------------
	BUKU TAMU FORM
--------------------------------------*/
.sw-form {
	margin-top: 40px;
}

body input[type="text"],
body input[type="email"],
body input[type="url"],
body input[type="tel"],
body input[type="number"],
body input[type="date"],
body input[type="text"],
body textarea,
body .form-control {
	width: 100%;
	height: auto;
	border: none;
	background: #F4F6FF;
	margin-bottom: 20px;
	padding: 11px 10px;
	color: #10375C;
	font-weight: 500;
	-webkit-transition: all 0.3s ease-in-out;
	-moz-transition: all 0.3s ease-in-out;
	-o-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
	box-shadow: none;
	-webkit-box-shadow: none;
	-moz-box-shadow: none;
	border-radius: 0px;
	-moz-border-radius: 0px;
	margin-bottom: 40px;
}


body input::placeholder,
body textarea::placeholder {
	color: #10375C !important;
}

body input::-webkit-input-placeholder,
body textarea::-webkit-input-placeholder {
	color: #10375C !important;
}

body input:-moz-placeholder,
body textarea:-moz-placeholder {
	color: #10375C !important;
}


body input[type="text"]:focus,
body input[type="email"]:focus,
body input[type="url"]:focus,
body input[type="tel"]:focus,
body input[type="number"]:focus,
body input[type="date"]:focus,
body input[type="range"]:focus,
body input[type="password"]:focus,
body input[type="text"]:focus,
body textarea:focus,
body .form-control:focus {
	outline: none;
	-webkit-transition: all 0.3s ease-in-out;
	-moz-transition: all 0.3s ease-in-out;
	-o-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
	border: none;
	box-shadow: none;
	-webkit-box-shadow: none;
	-moz-box-shadow: none;
}

select {
	border: 1px solid #ccc;
	background: #fff;
	width: 100%;
	padding: 11px 10px;
	-webkit-transition: all 0.3s ease-in-out;
	-moz-transition: all 0.3s ease-in-out;
	-o-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
	box-shadow: none;
	-webkit-box-shadow: none;
	-moz-box-shadow: none;
	color: #373435;
}

select:focus {
	outline: none;
	-webkit-transition: all 0.3s ease-in-out;
	-moz-transition: all 0.3s ease-in-out;
	-o-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
	border: 1px solid #999;
	box-shadow: none;
	-webkit-box-shadow: none;
	-moz-box-shadow: none;
}

body button[type="submit"] {
	padding: 12px 25px;
	background: #F3C623;
	font-size: 13px;
	color: #10375C;
	font-weight: 700;
	border: none;
	cursor: pointer;
	-webkit-transition: all 0.3s ease-in-out;
	-moz-transition: all 0.3s ease-in-out;
	-o-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
	box-shadow: none;
	-webkit-box-shadow: none;
	-moz-box-shadow: none;
	-webkit-border-radius: 5px;
	border-radius: 5px;
}

body button[type="submit"] i {
	margin-right: 5px;
}

body button[type="submit"]:hover,
body button[type="submit"]:focus {
	background: #EB8317;
	color: #F4F6FF;
	-webkit-transition: all 0.3s ease-in-out;
	-moz-transition: all 0.3s ease-in-out;
	-o-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
	box-shadow: none;
	-webkit-box-shadow: none;
	-moz-box-shadow: none;
	border: none;
}


body .comments-area .btn {
	border-radius: 0;
}

body input.error,
body textarea.error {
	border: 1px solid #ff0000;
}

body fieldset label {
	font-size: 13px;
	color: #4c4131;
	font-weight: 500;
	border-bottom: 2px solid #dcdee4;
	padding: 5px;
	float: left;
}


/*-------------------------------------
	COMMENT FACEBOOK
-----------------------------------------*/
.facebook-content {
	padding: 15px 15px;
	border-radius: 10px;
	background-color: #F4F6FF;
	position: relative;
	display: flex;
}

.facebook-content iframe {
	max-width: 100%;
}

.fb-comments {
	width: 100%;
	float: left;
	font-family: Arial, Helvetica, sans-serif;
	color: #ff6600 !important;
}

.fb-comments,
.fb_iframe_widget span,
.fb_iframe_widget iframe {
	width: 100% !important
}

#comments {
	display: none !important
}

.pluginFontHelvetica,
.pluginFontHelvetica button,
.pluginFontHelvetica label,
.pluginFontHelvetica select,
.pluginFontHelvetica td,
{
color: #fff !important;
}

.pluginFontHelvetica a.UFICommentActorName {
	color: #ffffff;
}


/*---------------------------------------
	POWERED
--------------------------------------*/
.sw-powered {
	position: relative;
}

.sw-logo-janjihati {
	display: inline-block;
	text-align: center;
	border: solid 2px #F3C623;
	padding: 20px;
	-ms-filter: grayscale(1) sepia(1);
	-webkit-filter: grayscale(1) sepia(1);
	-moz-filter: grayscale(1) sepia(1);
	-o-filter: grayscale(1) sepia(1);
	filter: grayscale(1) sepia(1);
}

.sw-powered .social_media {
	position: relative;
	margin-top: 10px;
	display: block;
}

.sw-powered .social_media h3 {
	font-size: 15px;
	margin-bottom: 10px;
	margin-top: 15px;
}

.sw-powered .social_media ul {
	display: inline-block;
	padding: 0px;
}

.sw-powered .social_media li {
	list-style: none;
	display: inline-block
}

.sw-powered .social_media li a {
	display: inline-block;
	line-height: 30px;
	font-size: 18px;
	text-align: center;
	cursor: pointer;
	color: #F3C623;
	padding: 5px;
	margin-right: 20px;
}

.sw-powered .social_media li a:hover {
	color: #EB8317;
}


/* ----------------------------------------
    SOCIAL CHARE
-------------------------------------------*/
a.btn-share {
	font-family: FontAwesome !important;
	position: fixed;
	color: #fff;
}

.social-share {
	position: relative;
	text-align: center;
}

.social-share ul {
	padding: 0px;
}

.social-share li {
	list-style: none;
	display: inline-block;
}

.social-share li a {
	background: #111111;
	height: 50px;
	width: 50px;
	line-height: 50px;
	font-size: 20px;
	color: #ffffff;
	margin: 10px;
	display: inline-block;
}

.social-share li a:hover {
	opacity: 0.8;
}

.social-share li a.facebook {
	background: #3b5998;
}

.social-share li a.twitter {
	background: #00acee;
}

.social-share li a.wa {
	background: #00BFA5;
}

/* --------------------------------------------------------------------- */

@media screen and (min-width: 900px) {
	.sw-block {
		width: 900px;
		margin: 0 auto;
	}

}

@media screen and (max-width: 769px) {
	.sw-custom-wrapper {}

	.sw-item {
		background: url('./img/sw-element-1.png') top left no-repeat,
			url('./img/sw-element-2.png') top right no-repeat,
			url('./img/sw-element-4.png') bottom right no-repeat,
			url('./img/sw-element-3.png') bottom left no-repeat,
			/* url('./img/bg-wayang.png') center center no-repeat, */
			#10375C;
		background-size: 180px, 180px, 180px, 180px, cover;
	}

	.bb-content {
		background: url('./img/sw-element-1.png') top left no-repeat,
			url('./img/sw-element-2.png') top right no-repeat,
			url('./img/sw-element-4.png') bottom right no-repeat,
			url('./img/sw-element-3.png') bottom left no-repeat,
			/* url('./img/bg-wayang.png') center center no-repeat, */
			#10375C;
		background-size: 180px, 180px, 180px, 180px, cover;
	}

	.sw-content-inner {
		padding: 15px;
	}

	.sw-content-inner p {
		font-size: 14px;
	}

	.sw-content-inner h2 {
		font-size: 22px;
		margin-bottom: 10px;
		font-family: 'Great Vibes', cursive;
		font-weight: 400;
	}

	.sw-invitation-home {
		max-width: 450px;
	}

	.sw-invitation-home figure {
		max-width: 300px;
	}

	/* Responsive Cover Page Styles - Tablet */
	.groom-name,
	.bride-name {
		font-size: 50px;
	}

	.ampersand {
		font-size: 36px;
	}

	.wayang-left,
	.wayang-right {
		position: relative;
		left: auto;
		right: auto;
		display: inline-block;
		margin: 0 20px;
	}

	.wayang-decorations {
		text-align: center;
		height: auto;
	}

	.wayang-left img,
	.wayang-right img {
		height: 150px;
	}

	/* Quotes Section - Tablet */
	.sw-quote-section {
		width: 100vw;
		max-width: 100vw;
		margin: 0;
		padding: 30px 0;
		left: 50%;
		transform: translateX(-50%);
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 100vh;
		box-sizing: border-box;
	}

	.sw-quote-frame {
		min-height: 350px;
		width: 100%;
	}

	.quote-frame-bg {
		max-width: 135%;
		width: 135%;
	}

	.quote-content {
		width: 60%;
		height: 60%;
		padding: 30px 20px;
		max-width: 380px;
		margin: 80px auto;
	}

	.quote-text {
		font-size: 15px;
		line-height: 1.5;
		margin: 15px 65px;
	}

	.quote-icon {
		font-size: 20px;
		margin-bottom: 12px;
	}

	.quote-icon-right {
		margin-top: 12px;
	}

	.quote-source {
		font-size: 11px;
		margin: 15px 65px 0 65px;
	}

	.cover-image {
		background-position: center center;
		background-repeat: no-repeat;
		background-size: auto 100%;
	}


	.sw-ceremony {
		height: auto;
		margin-top: 30px;
	}

	.sw-ceremony h1 {
		font-size: 22px;
	}

	.sw-ceremony p {
		font-size: 14px;
	}

	.sw-ceremony figure img {
		/* height:100px;
        width:100px; */
		border: 5px solid rgba(255, 255, 255, 0.4);
	}

	.sw-or {
		font-size: 16px;
		margin-top: 0px;
		margin-bottom: 0px;
	}

	/*---------- Groom & Bride Sections Tablet -------------*/
	.sw-groom-section,
	.sw-bride-section {
		margin: 0 auto 20px auto;
		padding: 20px;
		border-radius: 10px;
		max-width: 500px;
		text-align: center;
		/* Reset transform dan positioning */
		transform: none !important;
		margin-top: 0 !important;
		/* Pastikan section benar-benar center untuk tablet */
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		box-sizing: border-box;
	}

	.sw-groom-section .sw-content-inner,
	.sw-bride-section .sw-content-inner {
		height: auto;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		transform: none !important;
		margin-top: 0 !important;
		padding: 20px;
		width: 100%;
		max-width: 500px;
	}

	.sw-groom-section h3,
	.sw-bride-section h3 {
		font-size: 24px;
		margin-bottom: 20px;
	}

	.sw-groom-section,
	.sw-bride-section {
		text-align: center;
		margin: 30px 0;
	}

	.sw-groom-section figure,
	.sw-bride-section figure {
		display: block;
		margin: 20px auto;
		padding: 0;
		border: none;
		background: transparent;
		width: 190px;
		height: 190px;
		display: flex;
		align-items: center;
		justify-content: center;
		position: relative;
	}

	.sw-groom-section figure img,
	.sw-bride-section figure img {
		height: 110px;
		width: 110px;
		border: none;
		border-radius: 50%;
		-moz-border-radius: 50%;
		overflow: hidden;
		position: relative;
		display: block;
		object-fit: cover;
		box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
		z-index: 0;
	}

	/* Floral frame for tablet view */
	.sw-groom-section figure::before,
	.sw-bride-section figure::before {
		content: '';
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		background-image: url('./img/floral-frame.png');
		background-size: 100% 100%;
		background-repeat: no-repeat;
		background-position: center;
		z-index: 1;
		pointer-events: none;
	}

	.sw-groom-section h2,
	.sw-bride-section h2 {
		font-size: 56px;
		margin: 20px 0 15px 0;
		font-family: 'Great Vibes', cursive;
		font-weight: 400;
	}

	.sw-groom-section .sw-binti,
	.sw-bride-section .sw-binti {
		font-size: 16px;
		line-height: 1.6;
	}

	.sw-akad-resepsi {
		background: rgba(225, 225, 225, 0.06);
	}

	.sw-akad-resepsi h2 {
		margin-bottom: 20px;
		font-size: 22px !important;
		letter-spacing: 1px !important;
		word-spacing: normal !important;
	}

	.sw-akad-resepsi p {
		font-size: 12px;
		line-height: 18px;
		margin-bottom: 18px;
	}

	.sw-el-top {
		margin-top: 40px;
	}

	.sw-el-bottom {
		margin-bottom: 40px;
	}

	/* --------- FORM ------------------*/
	body input[type="text"],
	body input[type="email"],
	body input[type="url"],
	body input[type="tel"],
	body input[type="number"],
	body input[type="date"],
	body input[type="text"],
	body textarea,
	body .form-control {
		padding: 8px 10px;
		margin-bottom: 10px;
	}

	body textarea.form-control {
		width: 100%;
		height: 60px;
	}


	.sw-logo-kalaujodoh {
		position: absolute;
		bottom: 0px;
	}


}

@media screen and (max-width:570px) {
	.sw-content-flex_2 {
		display: block;
	}

	/*---------- Groom & Bride Sections Medium Mobile -------------*/
	.sw-groom-section,
	.sw-bride-section {
		margin: 0 auto 20px auto;
		padding: 18px 12px;
		border-radius: 8px;
		max-width: 400px;
		text-align: center;
		/* Reset transform dan positioning */
		transform: none !important;
		margin-top: 0 !important;
		/* Pastikan section benar-benar center */
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		box-sizing: border-box;
	}

	.sw-groom-section .sw-content-inner,
	.sw-bride-section .sw-content-inner {
		height: auto;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		transform: none !important;
		margin-top: 0 !important;
		padding: 18px 12px;
		width: 100%;
		max-width: 400px;
	}

	.sw-groom-section h3,
	.sw-bride-section h3 {
		font-size: 22px;
		margin-bottom: 18px;
	}

	.sw-groom-section,
	.sw-bride-section {
		text-align: center;
		margin: 25px 0;
	}

	.sw-groom-section figure,
	.sw-bride-section figure {
		display: block;
		margin: 18px auto;
		padding: 0;
		border: none;
		background: transparent;
		width: 160px;
		height: 160px;
		display: flex;
		align-items: center;
		justify-content: center;
		position: relative;
	}

	.sw-groom-section figure img,
	.sw-bride-section figure img {
		height: 100px;
		width: 100px;
		border: none;
		border-radius: 50%;
		-moz-border-radius: 50%;
		overflow: hidden;
		position: relative;
		display: block;
		object-fit: cover;
		box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
		z-index: 0;
	}

	/* Floral frame for mobile view */
	.sw-groom-section figure::before,
	.sw-bride-section figure::before {
		content: '';
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		background-image: url('./img/floral-frame.png');
		background-size: 100% 100%;
		background-repeat: no-repeat;
		background-position: center;
		z-index: 1;
		pointer-events: none;
	}

	.sw-groom-section h2,
	.sw-bride-section h2 {
		font-size: 52px;
		margin: 18px 0 12px 0;
		font-family: 'Great Vibes', cursive;
		font-weight: 400;
	}

	.sw-groom-section .sw-binti,
	.sw-bride-section .sw-binti {
		font-size: 15px;
		line-height: 1.5;
	}

	/* Quotes Section - Mobile */
	.sw-quote-section {
		width: 100vw;
		max-width: 100vw;
		margin: 0;
		padding: 25px 0;
		left: 50%;
		transform: translateX(-50%);
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 100vh;
		box-sizing: border-box;
	}

	.sw-quote-frame {
		min-height: 300px;
		width: 100%;
	}

	.quote-frame-bg {
		max-width: 92%;
		width: 92%;
	}

	.quote-content {
		width: 60%;
		height: 60%;
		padding: 20px 15px;
		max-width: 280px;
		margin: 50px auto;
	}

	.quote-text {
		font-size: 12px;
		line-height: 1.4;
		margin: 10px 40px;
	}

	.quote-icon {
		font-size: 16px;
		margin-bottom: 8px;
	}

	.quote-icon-right {
		margin-top: 8px;
	}

	.quote-source {
		font-size: 9px;
		margin: 10px 40px 0 40px;
	}
}

@media screen and (max-width: 481px) {
	.sw-custom-wrapper {
		padding: 40px 10px;
	}

	.sw-item {
		background: url('./img/sw-element-1.png') top left no-repeat,
			url('./img/sw-element-2.png') top right no-repeat,
			url('./img/sw-element-4.png') bottom right no-repeat,
			url('./img/sw-element-3.png') bottom left no-repeat,
			/* url('./img/bg-wayang.png') center center no-repeat, */
			#10375C;
		background-size: 120px, 120px, 120px, 120px, cover;
	}

	.bb-content {
		background: url('./img/sw-element-1.png') top left no-repeat,
			url('./img/sw-element-2.png') top right no-repeat,
			url('./img/sw-element-4.png') bottom right no-repeat,
			url('./img/sw-element-3.png') bottom left no-repeat,
			/* url('./img/bg-wayang.png') center center no-repeat, */
			#10375C;
		background-size: 120px, 120px, 120px, 120px, cover;
	}

	.sw-content-inner {
		padding: 15px;
	}

	.sw-content-inner p {
		font-size: 14px;
	}

	.sw-content-quote p {
		font-size: 12px;
		padding-left: 10px;
		padding-right: 10px;
	}

	.sw-content-inner h2 {
		font-size: 22px;
		margin-bottom: 10px;
		font-family: 'Great Vibes', cursive;
		font-weight: 400;
	}

	.sw-content-flex_2 {
		display: block;
	}

	/*---------- Home -------------*/
	.sw-invitation-home {
		width: auto;
	}

	.sw-invitation-home figure {
		width: 300px;
	}

	/* Responsive Cover Page Styles - Mobile */
	.groom-name,
	.bride-name {
		font-size: 56px;
	}

	.ampersand {
		font-size: 28px;
	}

	.wedding-invitation-text {
		font-size: 16px;
	}

	.wayang-left img,
	.wayang-right img {
		height: 120px;
	}

	.guest-name {
		font-size: 20px;
	}

	/*---------- Cover -------------*/
	.cover-image {
		background-position: center center;
		background-repeat: no-repeat;
		background-size: auto 100%;
	}

	/*---------- Ceremony -------------*/
	.sw-ceremony {
		height: auto;
		margin-top: 70vh;
		transform: translateY(-50%);
		text-align: center;
	}

	.sw-ceremony p {
		font-size: 14px;
	}

	.sw-or {
		font-size: 16px;
		margin-top: 0px;
		margin-bottom: 0px;
	}

	.sw-ceremony h1 {
		font-size: 22px;
	}

	/*---------- Groom & Bride Sections Mobile -------------*/
	.sw-groom-section,
	.sw-bride-section {
		margin: 0 auto 20px auto;
		padding: 20px 15px;
		border-radius: 8px;
		max-width: 350px;
		text-align: center;
		/* Reset transform dan positioning */
		transform: none !important;
		margin-top: 0 !important;
		/* Pastikan section benar-benar center untuk mobile kecil */
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		box-sizing: border-box;
	}

	.sw-groom-section .sw-content-inner,
	.sw-bride-section .sw-content-inner {
		height: auto;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		transform: none !important;
		margin-top: 0 !important;
		padding: 20px 15px;
		width: 100%;
		max-width: 350px;
	}

	.sw-groom-section h3,
	.sw-bride-section h3 {
		font-size: 20px;
		margin-bottom: 15px;
	}

	.sw-groom-section,
	.sw-bride-section {
		text-align: center;
		margin: 20px 0;
	}

	.sw-groom-section figure,
	.sw-bride-section figure {
		display: block;
		margin: 15px auto;
		padding: 0;
		border: none;
		background: transparent;
		width: 140px;
		height: 140px;
		display: flex;
		align-items: center;
		justify-content: center;
		position: relative;
	}

	.sw-groom-section figure img,
	.sw-bride-section figure img {
		height: 90px;
		width: 90px;
		border: none;
		border-radius: 50%;
		-moz-border-radius: 50%;
		overflow: hidden;
		position: relative;
		display: block;
		object-fit: cover;
		box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
		z-index: 0;
	}

	/* Floral frame for small mobile view */
	.sw-groom-section figure::before,
	.sw-bride-section figure::before {
		content: '';
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		background-image: url('./img/floral-frame.png');
		background-size: 100% 100%;
		background-repeat: no-repeat;
		background-position: center;
		z-index: 1;
		pointer-events: none;
	}

	.sw-groom-section h2,
	.sw-bride-section h2 {
		font-size: 30px;
		margin: 15px 0 10px 0;
		font-family: 'Great Vibes', cursive;
		font-weight: 400;
	}

	.sw-groom-section .sw-binti,
	.sw-bride-section .sw-binti {
		font-size: 14px;
		line-height: 1.5;
	}

	/* Responsive Cover Page Styles - Small Mobile */
	.groom-name,
	.bride-name {
		font-size: 48px;
	}

	.ampersand {
		font-size: 24px;
	}

	.wedding-invitation-text {
		font-size: 14px;
	}

	.wayang-left img,
	.wayang-right img {
		height: 100px;
	}

	.guest-name {
		font-size: 18px;
	}

	.wayang-decorations {
		margin: 20px 0;
	}

	/*---------- Akad Resepsi -------------*/
	.sw-akad-resepsi {
		margin: 5px 5px 5px 5px;
		background: rgba(225, 225, 225, 0.06);
	}

	.sw-akad-resepsi p {
		font-size: 12px;
		line-height: 18px;
		margin-bottom: 5px;
	}

	.sw-akad-resepsi a {
		font-size: 12px;
		line-height: 18px;
		margin-bottom: 5px;
		padding: 5px;
	}

	.sw-akad-resepsi h2 {
		margin-bottom: 20px;
		font-size: 20px !important;
		letter-spacing: 0.5px !important;
		word-spacing: normal !important;
	}

	.sw-el-top {
		height: 40px;
		margin-bottom: 10px;
		margin-top: 0px;
	}

	.sw-el-bottom {
		height: 40px;
		margin-top: 10px;
		margin-bottom: 0px;
	}



	/* --------- FORM ------------------*/
	body input[type="text"],
	body input[type="email"],
	body input[type="url"],
	body input[type="tel"],
	body input[type="number"],
	body input[type="date"],
	body input[type="text"],
	body textarea,
	body .form-control {
		padding: 8px 10px;
		margin-bottom: 10px;
	}

	body textarea.form-control {
		width: 100%;
		height: 60px;
	}

	/*---------- GALLERY ---------------*/
	.sw-gallery img {
		max-height: 90px;
		min-height: 80px;
	}

	/*----------- LOGO -------------*/
	.sw-logo-kalaujodoh {
		position: absolute;
		bottom: -5px;
	}

	.sw-logo-kalaujodoh p {
		display: block;
	}

	.sw-logo-kalaujodoh img {
		display: none;
	}

	/* Quotes Section - Small Mobile */
	.sw-quote-section {
		width: 100vw;
		max-width: 100vw;
		margin: 0;
		padding: 20px 0;
		left: 50%;
		transform: translateX(-50%);
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 100vh;
		box-sizing: border-box;
	}

	.sw-quote-frame {
		min-height: 250px;
		width: 100%;
	}

	.quote-frame-bg {
		max-width: 93%;
		width: 93%;
	}

	.quote-content {
		width: 60%;
		height: 60%;
		padding: 18px 12px;
		max-width: 220px;
		margin: 45px auto;
	}

	.quote-text {
		font-size: 11px;
		line-height: 1.3;
		margin: 8px 30px;
	}

	.quote-icon {
		font-size: 14px;
		margin-bottom: 6px;
	}

	.quote-icon-right {
		margin-top: 6px;
	}

	.quote-source {
		font-size: 8px;
		margin: 8px 30px 0 30px;
	}
}

.maps {
	position: relative;
	padding-bottom: 75%;
	height: 0;
	overflow: hidden;
}

.maps iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100% !important;
	height: 100% !important;
}

.komen-netizen {
	margin-bottom: 15px;
	margin-top: 15px;
	max-width: 500px;
	margin-left: auto;
	margin-right: auto;
}

.komen {
	display: none;
	padding: 10px;
	margin-left: -15px;
	margin-right: -15px;
	margin-bottom: 10px;
	background-color: #f1f1f1;
}

#loadMore {
	margin-bottom: 10px;
	margin-top: 15px;
	padding: 5px;
	text-align: center;
	background-color: #F4F6FF;
	color: #10375C;
	border-width: 1px;
	border-style: solid;
	border-color: #10375C;
	transition: all 600ms ease-in-out;
	-webkit-transition: all 600ms ease-in-out;
	-moz-transition: all 600ms ease-in-out;
	-o-transition: all 600ms ease-in-out;
}

#loadMore:hover {
	background-color: #10375C;
	color: #F4F6FF;
}

.komen-nama {
	color: #F3C623;
	font-weight: bold;
}

.komen-isi {
	color: #2f3640;
}

@keyframes bounce-1 {
	0% {
		transform: translateY(0);
	}

	50% {
		transform: translateY(-30px);
	}

	100% {
		transform: translateY(0);
	}
}

/* ======== START MENU CERITA ======= */


/* Special styling for timeline/story section to ensure scrollability */
.main-timeline {
	position: relative;
	transition: all 0.4s ease 0s;
	margin-left: 15px;
	margin-right: 10px;
	margin-bottom: 15px;
	overflow: visible;
	height: auto;
}

.main-timeline:before {
	content: "";
	width: 2px;
	height: 100%;
	background: #d1d8e0;
	position: absolute;
	top: 0;
	left: 50%;
}

.main-timeline .timeline {
	position: relative;
}

.main-timeline .timeline:before,
.main-timeline .timeline:after {
	content: "";
	display: block;
	width: 100%;
	clear: both;
}

.main-timeline .timeline-icon {
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #F4F6FF;
	border: 2px solid #F3C623;
	position: absolute;
	top: 0;
	left: 1px;
	right: 0;
	margin: 0 auto;
	overflow: hidden;
}

.main-timeline .timeline-content {
	width: 45%;
	padding: 15px 15px 10px 0px;
	border-radius: 1px;
	text-align: right;
	-webkit-box-shadow: 0 2px 0 rgba(0, 0, 0, 0.1);
	-moz-box-shadow: 0 2px 0 rgba(0, 0, 0, 0.1);
	-ms-box-shadow: 0 2px 0 rgba(0, 0, 0, 0.1);
	transition: all 0.3s ease 0s;
}

.main-timeline .date {
	display: inline-block;
	font-size: 12px;
	font-weight: 300;
	color: #F4F6FF;
	padding: 10px 20px;
	background: #F3C623;
	border-radius: 18px;
}

.main-timeline .title {
	font-size: 20px;
	font-weight: 500;
	color: #F4F6FF;
	margin-top: 15px;
}

.main-timeline .description {
	font-size: 14 px;
	color: #F4F6FF;
	line-height: 2;
	text-align: justify;
}

.main-timeline .timeline-content.right {
	float: right;
	text-align: left;
}

@media only screen and (max-width: 767px) {
	.main-timeline:before {
		left: 0;
	}

	.main-timeline .timeline-icon {
		left: -8px;
		margin: 0;
	}

	.main-timeline .timeline-content {
		width: 90%;
		float: right;
		text-align: left;
	}
}

/* Save the Date Section Styles */
.save-the-date-section {
	/* Menggunakan background default, tidak ada custom background */
	overflow: visible;
	height: auto;
	min-height: auto;
}

.save-date-container {
	position: relative;
	z-index: 2;
	padding: 60px 20px;
	max-width: 600px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 80vh;
}

.wayang-ornament-top,
.wayang-ornament-bottom {
	margin: 30px 0;
	opacity: 0.9;
}

.wayang-ornament-top .ornament-image,
.wayang-ornament-bottom .ornament-image {
	max-width: 200px;
	height: auto;
	filter: drop-shadow(0 0 20px rgba(255, 215, 0, 0.3));
	transition: all 0.3s ease;
}

.wayang-ornament-bottom .ornament-image {
	transform: rotate(180deg);
}

.save-date-content {
	padding: 40px 0;
}

.save-date-title {
	font-family: 'Great Vibes', cursive;
	font-size: 2.5em;
	color: #DAA520;
	margin-bottom: 20px;
	text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
	letter-spacing: 2px;
}

.save-date-content .couple-names {
	font-family: 'Cinzel', serif;
	font-size: 2.8em;
	font-weight: 700;
	color: #FFFFFF;
	margin: 30px 0;
	text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7);
	letter-spacing: 3px;
	line-height: 1.2;
}

.save-date-content .wedding-date {
	font-family: 'Cinzel', serif;
	font-size: 1.4em;
	color: #DAA520;
	font-weight: 500;
	text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
	letter-spacing: 1px;
	margin-top: 30px;
}

/* Responsive adjustments for Save the Date */
@media only screen and (max-width: 768px) {
	.save-date-title {
		font-size: 2em;
	}

	.save-date-content .couple-names {
		font-size: 2.2em;
		letter-spacing: 2px;
	}

	.save-date-content .wedding-date {
		font-size: 1.2em;
	}

	.wayang-ornament-top .ornament-image,
	.wayang-ornament-bottom .ornament-image {
		max-width: 150px;
	}

	.save-date-container {
		padding: 40px 15px;
		min-height: 70vh;
	}
}

@media only screen and (max-width: 480px) {
	.save-date-title {
		font-size: 1.8em;
	}

	.save-date-content .couple-names {
		font-size: 1.8em;
		letter-spacing: 1px;
	}

	.save-date-content .wedding-date {
		font-size: 1em;
	}

	.wayang-ornament-top .ornament-image,
	.wayang-ornament-bottom .ornament-image {
		max-width: 120px;
	}

	.save-date-container {
		padding: 30px 15px;
		min-height: 60vh;
	}
}

/* Extra small devices (320px and down) */
@media only screen and (max-width: 320px) {
	.sw-akad-resepsi h2 {
		font-size: 18px !important;
		letter-spacing: 0.3px !important;
		word-spacing: normal !important;
		margin-bottom: 15px;
	}
}