/*
Theme Name: Twenty Twenty-Five
Theme URI: https://wordpress.org/themes/twentytwentyfive/
Author: the WordPress team
Author URI: https://wordpress.org
Description: Twenty Twenty-Five emphasizes simplicity and adaptability. It offers flexible design options, supported by a variety of patterns for different page types, such as services and landing pages, making it ideal for building personal blogs, professional portfolios, online magazines, or business websites. Its templates cater to various blog styles, from text-focused to image-heavy layouts. Additionally, it supports international typography and diverse color palettes, ensuring accessibility and customization for users worldwide.
Requires at least: 6.7
Tested up to: 6.9
Requires PHP: 7.2
Version: 1.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: twentytwentyfive
Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, style-variations, accessibility-ready, blog, portfolio, news
*/

/*
 * IMPORTANT: This file is only served on the frontend when `SCRIPT_DEBUG` is enabled;
 * in most instances, the `style.min.css` file will be served. It is not recommended that you
 * use the Theme File Editor to modify this stylesheet. Instead, add the necessary style
 * overrides via "Additional CSS" in the Site Editor.
 */

/*
 * Link styles
 * https://github.com/WordPress/gutenberg/issues/42319
 */
a {
	text-decoration-thickness: 1px !important;
	text-underline-offset: .1em;
}

/* Focus styles */
:where(.wp-site-blocks *:focus) {
	outline-width: 2px;
	outline-style: solid;
}

/* Increase the bottom margin on submenus, so that the outline is visible. */
.wp-block-navigation .wp-block-navigation-submenu .wp-block-navigation-item:not(:last-child) {
	margin-bottom: 3px;
}

/* Increase the outline offset on the parent menu items, so that the outline does not touch the text. */
.wp-block-navigation .wp-block-navigation-item .wp-block-navigation-item__content {
	outline-offset: 4px;
}

/* Remove outline offset from the submenus, otherwise the outline is visible outside the submenu container. */
.wp-block-navigation .wp-block-navigation-item ul.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	outline-offset: 0;
}

/*
 * Progressive enhancement to reduce widows and orphans
 * https://github.com/WordPress/gutenberg/issues/55190
 */
h1, h2, h3, h4, h5, h6, blockquote, caption, figcaption, p {
	text-wrap: pretty;
}

/*
 * Change the position of the more block on the front, by making it a block level element.
 * https://github.com/WordPress/gutenberg/issues/65934
*/
.more-link {
	display: block;
}

/*
 * Prevents unnecessary scrollbars while handling long lines of preformatted text.
 * https://core.trac.wordpress.org/ticket/63875
 */
:where(pre) {
	overflow-x: auto;
}

/* GEM electric visual theme */
body {
	background:
		radial-gradient(circle at 20% 0%, #10306a 0%, transparent 35%),
		radial-gradient(circle at 90% 10%, #b84f00 0%, transparent 28%),
		#030711;
	color: #d9e8ff;
}

h1, h2, h3, h4 {
	color: #ffffff;
}

.wp-site-blocks {
	background: transparent;
}

.gem-home {
	padding: clamp(20px, 3.7vw, 48px) clamp(14px, 3vw, 50px);
}

.gem-kicker {
	margin: 0 0 10px;
	color: #6ac8ff;
	text-transform: uppercase;
	font-weight: 700;
	letter-spacing: 0.14em;
	font-size: 0.8rem;
}

.gem-hero {
	background-size: cover;
	background-position: center;
	border-radius: 24px;
	overflow: hidden;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
	border: 1px solid rgba(106, 200, 255, 0.35);
}

.gem-hero__overlay {
	display: grid;
	grid-template-columns: 1.35fr 0.65fr;
	gap: clamp(16px, 2.5vw, 26px);
	padding: clamp(22px, 4vw, 48px);
	background:
		linear-gradient(110deg, rgba(0, 11, 36, 0.86) 0%, rgba(0, 27, 66, 0.78) 45%, rgba(91, 45, 0, 0.45) 100%);
}

.gem-hero__content h1 {
	margin: 0 0 12px;
	font-size: clamp(2rem, 5vw, 3.5rem);
	line-height: 1.05;
	text-transform: uppercase;
	text-shadow: 0 2px 20px rgba(6, 120, 255, 0.55);
}

.gem-hero__content p {
	color: #e8f1ff;
	max-width: 60ch;
}

.gem-hero__stats {
	display: grid;
	gap: 12px;
	align-content: start;
}

.gem-stat {
	border-radius: 14px;
	padding: 14px 16px;
	border: 1px solid rgba(255, 146, 56, 0.45);
	background: linear-gradient(130deg, rgba(7, 29, 56, 0.83) 0%, rgba(49, 28, 11, 0.72) 100%);
	box-shadow: inset 0 0 24px rgba(0, 162, 255, 0.08);
	transition: transform 200ms ease, box-shadow 200ms ease;
}

.gem-stat:hover {
	transform: translateY(-3px);
	box-shadow: 0 10px 26px rgba(0, 0, 0, 0.35);
}

.gem-stat span {
	display: block;
	font-size: 1.15rem;
	font-weight: 800;
	color: #ffb442;
}

.gem-stat p {
	margin: 4px 0 0;
	color: #d7e8ff;
	font-size: 0.9rem;
}

.gem-cta-row {
	display: flex;
	flex-wrap: wrap;
	gap: 11px;
	margin-top: 18px;
}

.gem-btn {
	display: inline-block;
	padding: 11px 18px;
	border-radius: 999px;
	font-weight: 700;
	text-decoration: none;
	transition: transform 170ms ease, box-shadow 170ms ease, border-color 170ms ease;
}

.gem-btn:hover {
	transform: translateY(-2px);
}

.gem-btn--primary {
	background: linear-gradient(90deg, #ff9d1a 0%, #ffc542 100%);
	color: #1a1200;
	box-shadow: 0 8px 24px rgba(255, 160, 31, 0.42);
}

.gem-btn--secondary {
	background: linear-gradient(90deg, #2e8eff 0%, #6ec6ff 100%);
	color: #011022;
	box-shadow: 0 8px 24px rgba(35, 131, 255, 0.42);
}

.gem-btn--ghost {
	border: 1px solid rgba(125, 205, 255, 0.55);
	color: #d8efff;
	background: rgba(2, 23, 44, 0.5);
}

.gem-services,
.gem-faults,
.gem-gallery,
.gem-quote {
	margin-top: clamp(24px, 5vw, 54px);
}

.gem-section-head h2 {
	margin: 0 0 clamp(14px, 3vw, 20px);
	font-size: clamp(1.5rem, 3vw, 2.3rem);
}

.gem-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 14px;
}

.gem-card {
	padding: 18px;
	border-radius: 14px;
	background: linear-gradient(145deg, rgba(7, 26, 49, 0.95) 0%, rgba(10, 19, 40, 0.95) 100%);
	border: 1px solid rgba(88, 175, 255, 0.35);
	box-shadow: 0 14px 30px rgba(0, 0, 0, 0.26);
	transition: transform 200ms ease, border-color 200ms ease;
}

.gem-card:hover {
	transform: translateY(-4px);
	border-color: rgba(255, 163, 65, 0.6);
}

.gem-card h3 {
	margin-top: 0;
	margin-bottom: 8px;
	color: #ffffff;
}

.gem-card-image-link {
	display: block;
	margin-bottom: 12px;
	border-radius: 10px;
	overflow: hidden;
	border: 1px solid rgba(116, 197, 255, 0.32);
}

.gem-card-image {
	display: block;
	width: 100%;
	height: 170px;
	object-fit: cover;
	transition: transform 220ms ease;
}

.gem-card-image-link:hover .gem-card-image {
	transform: scale(1.04);
}

.gem-card p {
	margin: 0 0 10px;
	color: #cbe1ff;
}

.gem-card a {
	color: #ffbf52;
	font-weight: 700;
}

.gem-faults {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	padding: 14px;
	border-radius: 12px;
	background: rgba(5, 20, 40, 0.75);
	border: 1px solid rgba(73, 155, 232, 0.35);
}

.gem-faults a {
	display: inline-block;
	margin: 0;
	padding: 8px 12px;
	border-radius: 999px;
	background: rgba(255, 171, 68, 0.15);
	border: 1px solid rgba(255, 171, 68, 0.38);
	font-size: 0.9rem;
	color: #f8fbff;
	text-decoration: none;
	transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.gem-faults a:hover,
.gem-faults a:focus-visible {
	background: #ff9d1a;
	border-color: #ff9d1a;
	color: #13100a;
	transform: translateY(-1px);
	outline: none;
}

.gem-photo-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
}

.gem-photo-card {
	margin: 0;
	border-radius: 14px;
	overflow: hidden;
	border: 1px solid rgba(110, 195, 255, 0.28);
	box-shadow: 0 16px 34px rgba(0, 0, 0, 0.4);
}

.gem-photo-card img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	transition: transform 260ms ease;
}

.gem-photo-card:hover img {
	transform: scale(1.05);
}

.gem-quote {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	flex-wrap: wrap;
	padding: clamp(18px, 3vw, 32px);
	border-radius: 18px;
	background:
		radial-gradient(circle at 8% 0%, rgba(29, 134, 255, 0.32) 0%, transparent 40%),
		radial-gradient(circle at 90% 20%, rgba(255, 138, 32, 0.25) 0%, transparent 38%),
		#09182d;
	border: 1px solid rgba(118, 201, 255, 0.4);
}

.gem-quote p {
	color: #deecff;
}

.gem-quote a {
	color: #ffcc6b;
	font-weight: 700;
}

.gem-quote .gem-btn--primary,
.gem-quote .gem-btn--primary:visited,
.gem-quote .gem-btn--primary:hover,
.gem-quote .gem-btn--primary:focus-visible {
	color: #1a1200;
}

.wp-block-template-part {
	backdrop-filter: blur(3px);
	position: relative;
	z-index: 3000;
	overflow: visible;
}

.wp-block-template-part .wp-block-group {
	overflow: visible;
}

.wp-block-navigation .wp-block-navigation-item__content {
	color: #d6ebff;
	font-weight: 600;
	border: 1px solid rgba(122, 204, 255, 0.36);
	border-radius: 999px;
	padding: 8px 12px;
	background: linear-gradient(145deg, rgba(5, 27, 52, 0.78) 0%, rgba(13, 39, 72, 0.58) 100%);
	box-shadow: inset 0 0 14px rgba(65, 143, 215, 0.18);
	transition: transform 160ms ease, border-color 160ms ease, color 160ms ease, box-shadow 160ms ease;
}

.wp-block-navigation {
	position: relative;
	z-index: 3500;
}

.wp-block-navigation .wp-block-navigation-item__content:hover {
	color: #ffbb4c;
	border-color: rgba(255, 190, 92, 0.62);
	transform: translateY(-1px);
	box-shadow: 0 6px 14px rgba(0, 0, 0, 0.3);
}

.wp-block-navigation .wp-block-navigation__submenu-container {
	min-width: 340px;
	padding: 10px;
	border-radius: 12px;
	background: rgba(5, 20, 40, 0.96);
	border: 1px solid rgba(95, 182, 255, 0.45);
	z-index: 4000 !important;
}

.wp-block-navigation .wp-block-navigation__submenu-container,
.wp-block-navigation .wp-block-navigation__submenu-container.has-background {
	background: linear-gradient(165deg, rgba(6, 20, 40, 0.98) 0%, rgba(9, 29, 56, 0.96) 100%) !important;
	box-shadow: 0 16px 30px rgba(0, 0, 0, 0.35);
}

.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item {
	display: block;
	width: 100%;
}

.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	display: block;
	width: 100%;
	white-space: normal;
	line-height: 1.25;
	padding: 10px 12px;
	background: rgba(9, 33, 62, 0.8) !important;
	box-shadow: inset 0 0 12px rgba(69, 150, 224, 0.18);
	border: 1px solid rgba(106, 193, 255, 0.35) !important;
	border-radius: 999px;
	color: #dff0ff !important;
	margin-bottom: 8px;
}

.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item:last-child .wp-block-navigation-item__content {
	margin-bottom: 0;
}

.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	color: #ffbe56 !important;
	border-color: rgba(255, 190, 92, 0.62) !important;
	background: rgba(14, 43, 78, 0.95) !important;
}

.gem-topbar {
	gap: 16px;
}

.gem-brand {
	gap: 10px;
	min-width: 0;
}

.gem-brand .wp-block-site-title a {
	font-weight: 700;
	letter-spacing: -0.01em;
	font-size: clamp(1.1rem, 2.3vw, 1.9rem);
	line-height: 1.12;
}

.gem-brand .custom-logo {
	border-radius: 10px;
	background: transparent;
	padding: 0;
	box-shadow: none !important;
}

.gem-nav-wrap {
	gap: 8px;
	flex-wrap: nowrap !important;
}

.gem-brand .wp-block-site-logo a,
.gem-brand .custom-logo-link,
.gem-brand .wp-block-site-logo {
	background: transparent !important;
	padding: 0 !important;
	box-shadow: none !important;
	border: none !important;
}

.gem-brand .custom-logo {
	width: 132px;
	height: auto;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	transform-origin: center center;
}

@keyframes gem-logo-spin {
	from {
		transform: rotate(0deg);
	}
	to {
		transform: rotate(360deg);
	}
}

.gem-brand .custom-logo-link:hover .custom-logo,
.gem-brand .custom-logo-link:focus .custom-logo {
	animation: gem-logo-spin 1.2s linear infinite;
}

.gem-nav-wrap .wp-block-navigation__container {
	flex-wrap: nowrap !important;
	gap: 8px !important;
}

.gem-header-action,
.gem-call-now-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	white-space: nowrap;
	padding: 9px 14px;
	border-radius: 999px;
	font-weight: 800;
	letter-spacing: 0.01em;
	text-decoration: none;
	color: #191300;
	border: 1px solid rgba(255, 214, 124, 0.86);
	background: linear-gradient(90deg, #ff9d12 0%, #ffca46 52%, #38a75f 100%);
	box-shadow: 0 0 0 1px rgba(255, 179, 43, 0.24), 0 9px 24px rgba(255, 157, 18, 0.42);
	transition: transform 170ms ease, box-shadow 170ms ease, filter 170ms ease;
}

.gem-header-action:hover,
.gem-call-now-link:hover {
	transform: translateY(-2px);
	filter: brightness(1.04);
	box-shadow: 0 0 0 1px rgba(255, 210, 108, 0.4), 0 12px 30px rgba(255, 157, 18, 0.5);
}

.gem-header-action--booking {
	background: linear-gradient(90deg, #ffb32c 0%, #ffd35a 52%, #fff2b1 100%);
}

.gem-footer {
	background:
		radial-gradient(circle at 12% 0%, rgba(41, 130, 255, 0.14) 0%, transparent 40%),
		radial-gradient(circle at 88% 16%, rgba(255, 153, 45, 0.13) 0%, transparent 36%),
		#080d16 !important;
	border-top: 1px solid rgba(102, 186, 255, 0.2);
}

.gem-footer h3,
.gem-footer h4 {
	letter-spacing: -0.01em;
}

.gem-footer-about p {
	color: #cfe5ff;
	line-height: 1.5;
}

.gem-footer .wp-block-navigation .wp-block-navigation-item__content {
	background: rgba(11, 36, 69, 0.72);
	border-color: rgba(111, 194, 255, 0.4);
}

.gem-footer-contact-links {
	display: flex;
	flex-direction: column;
	gap: 12px;
	align-items: flex-start;
}

.gem-footer-contact-links a {
	display: inline-block;
	padding: 11px 18px;
	border-radius: 999px;
	text-decoration: none;
	font-weight: 700;
	color: #f2f8ff;
	background: rgba(11, 36, 69, 0.72);
	border: 1px solid rgba(111, 194, 255, 0.4);
	box-shadow: inset 0 0 0 1px rgba(76, 154, 255, 0.18);
	transition: transform 170ms ease, border-color 170ms ease, box-shadow 170ms ease, background 170ms ease;
}

.gem-footer-contact-links a:hover,
.gem-footer-contact-links a:focus-visible {
	transform: translateY(-2px);
	border-color: rgba(255, 190, 92, 0.62);
	box-shadow: 0 0 0 1px rgba(255, 190, 92, 0.22), 0 10px 22px rgba(0, 0, 0, 0.22);
	background: rgba(14, 42, 78, 0.88);
	outline: none;
}

.gem-footer-bottom {
	margin-top: 18px;
	padding: 18px 20px;
	border-top: 1px solid rgba(121, 201, 255, 0.35);
	background: linear-gradient(90deg, rgba(8, 24, 44, 0.95) 0%, rgba(12, 33, 58, 0.95) 55%, rgba(20, 41, 64, 0.92) 100%);
	border-radius: 12px;
}

body:not(.home) main.wp-block-group {
	background: transparent;
	border: none;
	border-radius: 0;
	padding: clamp(14px, 2.8vw, 30px);
	overflow-x: hidden;
	max-width: none;
	width: 100%;
}

body:not(.home) main.wp-block-group img,
body:not(.home) .entry-content img,
body:not(.home) .wp-block-image img {
	display: block;
	max-width: 100%;
	width: min(100%, 920px);
	height: auto;
	margin-left: auto;
	margin-right: auto;
	border-radius: 10px;
}

body.page-booking .gem-quote,
body.page-contact .gem-quote {
	display: none;
}

body.page-id-14 .gem-quote,
body.page-id-15 .gem-quote {
	display: none !important;
}

.gem-form-layout {
	display: grid;
	grid-template-columns: 0.95fr 1.05fr;
	gap: clamp(14px, 2.5vw, 24px);
	margin-top: 8px;
}

.gem-form-box {
	padding: clamp(16px, 2.6vw, 26px);
	border-radius: 16px;
	background: linear-gradient(160deg, rgba(9, 35, 66, 0.96) 0%, rgba(12, 42, 74, 0.94) 100%);
	border: 1px solid rgba(109, 197, 255, 0.35);
	box-shadow: 0 16px 34px rgba(0, 0, 0, 0.24);
}

.gem-form-box h2 {
	margin-top: 0;
	margin-bottom: 10px;
	font-size: clamp(1.6rem, 3vw, 2.2rem);
}

.gem-form-box p {
	color: #d8eaff;
}

.gem-form-box a {
	color: #ffcb64;
	font-weight: 700;
}

.gem-form-box .gem-btn--primary,
.gem-form-box .gem-btn--primary:visited,
.gem-form-box .gem-btn--primary:hover,
.gem-form-box .gem-btn--primary:focus-visible {
	color: #1a1200;
}

.gem-form-box .gem-form {
	max-width: 100% !important;
}

body.page-id-3 .gem-form-layout,
body.page-id-179 .gem-form-layout {
	grid-template-columns: 1fr;
	max-width: 980px;
}

body.page-id-3 .gem-form-box,
body.page-id-179 .gem-form-box {
	min-height: 0;
}

@media (max-width: 900px) {
	.gem-topbar {
		flex-wrap: wrap !important;
	}

	.gem-nav-wrap {
		width: 100%;
		justify-content: flex-start;
		flex-wrap: wrap !important;
	}

	.gem-hero__overlay {
		grid-template-columns: 1fr;
	}

	.gem-grid {
		grid-template-columns: 1fr 1fr;
	}

	.gem-form-layout {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 680px) {
	.gem-brand .custom-logo {
		width: 106px;
	}

	.gem-header-action,
	.gem-call-now-link {
		padding: 9px 13px;
		font-size: 0.92rem;
	}

	.gem-grid,
	.gem-photo-grid {
		grid-template-columns: 1fr;
	}

	.gem-home {
		padding-left: 10px;
		padding-right: 10px;
	}
}

/* Mobile navigation overlay fix */
@media (max-width: 900px) {
	.wp-block-navigation__responsive-container.is-menu-open {
		position: fixed !important;
		inset: 0 !important;
		top: 0 !important;
		left: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		width: 100vw !important;
		height: 100vh !important;
		min-height: 100vh !important;
		z-index: 99999 !important;
		background: linear-gradient(170deg, rgba(8, 34, 66, 0.985) 0%, rgba(13, 38, 70, 0.985) 100%) !important;
		overflow-y: auto !important;
		padding: 20px 14px !important;
		margin: 0 !important;
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
		position: fixed !important;
		inset: 0 !important;
		top: 0 !important;
		left: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		width: 100vw !important;
		height: 100vh !important;
		min-height: 100vh !important;
		z-index: 100000 !important;
		background: linear-gradient(170deg, rgba(8, 34, 66, 0.985) 0%, rgba(13, 38, 70, 0.985) 100%) !important;
		overflow-y: auto !important;
	}

	.wp-block-navigation__responsive-container-close,
	.wp-block-navigation__responsive-container-open {
		z-index: 100001 !important;
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
		color: #ffffff !important;
		background: rgba(0, 0, 0, 0.28) !important;
		border: 1px solid rgba(154, 223, 255, 0.55) !important;
		border-radius: 10px !important;
		padding: 6px !important;
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close svg {
		fill: #ffffff !important;
		color: #ffffff !important;
		stroke: #ffffff !important;
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		width: 100%;
		max-width: 100%;
		min-height: 100%;
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		width: 100%;
		gap: 10px !important;
		flex-wrap: wrap !important;
		justify-content: flex-start !important;
		align-items: flex-start !important;
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		display: block;
		width: 100%;
		color: #f2f8ff !important;
		background: linear-gradient(145deg, rgba(12, 43, 80, 0.95) 0%, rgba(16, 52, 90, 0.94) 100%) !important;
		border: 1px solid rgba(128, 209, 255, 0.62) !important;
		box-shadow: inset 0 0 12px rgba(73, 168, 255, 0.22), 0 10px 22px rgba(0, 0, 0, 0.28) !important;
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle {
		color: #ffffff !important;
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon svg {
		fill: #ffffff !important;
		stroke: #ffffff !important;
	}

	body:has(.wp-block-navigation__responsive-container.is-menu-open) {
		overflow: hidden !important;
	}
}
