/* ==========================================================================
   GGW "Signature" look — hamz-inspired luxury layer, GGW teal + gold.
   Everything is scoped to html.ggw-theme so it switches off in one click.
   ========================================================================== */

html.ggw-theme {
	--t-gold: #c0923f;
	--t-gold-2: #e2c27c;
	--t-teal: #053941;
	--t-ink: #0b302f;
	--t-cream: #f7f5f2;
	--t-line: rgba(11, 48, 47, .1);
	--t-radius: 16px;
	--t-ease: cubic-bezier(.2, .7, .2, 1);
	--t-shadow: 0 14px 40px rgba(5, 57, 65, .1);
	--t-shadow-lg: 0 28px 60px rgba(5, 57, 65, .18);
}

/* --------------------------------------------------------------------------
   Scroll progress + page fade-in
   -------------------------------------------------------------------------- */
.ggw-progress { position: fixed; left: 0; top: 0; height: 3px; width: 100%; z-index: 100000; pointer-events: none; transform-origin: 0 50%; transform: scaleX(0); background: linear-gradient(90deg, var(--t-gold), var(--t-gold-2)); }
body.admin-bar .ggw-progress { top: 32px; }
@media (max-width: 782px) { body.admin-bar .ggw-progress { top: 46px; } }
html.ggw-theme.ggw-anim-on body { animation: ggw-page-in .8s var(--t-ease) both; }
@keyframes ggw-page-in { from { opacity: 0; } to { opacity: 1; } }

/* --------------------------------------------------------------------------
   Header — white frosted glass, slimmer once you scroll
   -------------------------------------------------------------------------- */
html.ggw-theme .elementor-location-header [data-element_type="container"]:first-child,
html.ggw-theme .elementor-location-header > .e-con:first-child {
	background-color: rgba(255, 255, 255, .86) !important;
	-webkit-backdrop-filter: saturate(160%) blur(14px);
	backdrop-filter: saturate(160%) blur(14px);
	border-bottom: 1px solid rgba(192, 146, 63, .18);
	transition: padding .45s var(--t-ease), box-shadow .45s var(--t-ease), background-color .45s;
}
html.ggw-theme.ggw-scrolled .elementor-location-header > .e-con:first-child {
	box-shadow: 0 10px 30px rgba(5, 57, 65, .08);
	background-color: rgba(255, 255, 255, .94) !important;
	--padding-top: 6px; --padding-bottom: 6px;
}
html.ggw-theme .elementor-location-header .elementor-widget-image img { transition: transform .45s var(--t-ease); transform-origin: left center; }
html.ggw-theme.ggw-scrolled .elementor-location-header .elementor-widget-image img { transform: scale(.88); }

/* Menu links: gold underline that draws in */
html.ggw-theme .elementor-location-header .elementor-nav-menu--main .elementor-item {
	position: relative; letter-spacing: .08em; transition: color .3s;
}
html.ggw-theme .elementor-location-header .elementor-nav-menu--main .elementor-item::after {
	content: ""; position: absolute; left: 50%; right: 50%; bottom: 6px; height: 1px;
	background: var(--t-gold); opacity: 1 !important; transition: left .4s var(--t-ease), right .4s var(--t-ease);
}
html.ggw-theme .elementor-location-header .elementor-nav-menu--main .elementor-item:hover,
html.ggw-theme .elementor-location-header .elementor-nav-menu--main .elementor-item.elementor-item-active { color: var(--t-gold) !important; }
html.ggw-theme .elementor-location-header .elementor-nav-menu--main .elementor-item:hover::after,
html.ggw-theme .elementor-location-header .elementor-nav-menu--main .elementor-item.elementor-item-active::after { left: 14px; right: 14px; }
html.ggw-theme .elementor-location-header .elementor-nav-menu--main .sub-menu {
	border-radius: 12px; overflow: hidden; box-shadow: var(--t-shadow-lg); border: 1px solid var(--t-line) !important;
	animation: ggw-drop .35s var(--t-ease);
}
@keyframes ggw-drop { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* Mobile menu: full-width glass panel, items cascade in */
html.ggw-theme .elementor-location-header .elementor-nav-menu--dropdown {
	background: rgba(255, 255, 255, .97) !important;
	-webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
	border-top: 1px solid rgba(192, 146, 63, .25);
	box-shadow: 0 30px 60px rgba(5, 57, 65, .18);
}
html.ggw-theme .elementor-location-header .elementor-nav-menu--dropdown a {
	padding-top: 16px !important; padding-bottom: 16px !important;
	font-size: 15px !important; letter-spacing: .12em; text-transform: uppercase;
	border-bottom: 1px solid var(--t-line);
}
html.ggw-theme .elementor-location-header .elementor-nav-menu--dropdown a:hover,
html.ggw-theme .elementor-location-header .elementor-nav-menu--dropdown a.elementor-item-active { color: var(--t-gold) !important; background: rgba(192, 146, 63, .06) !important; }
html.ggw-theme .elementor-menu-toggle.elementor-active + .elementor-nav-menu--dropdown li {
	animation: ggw-item-in .5s var(--t-ease) both;
}
html.ggw-theme .elementor-nav-menu--dropdown li:nth-child(2) { animation-delay: .05s !important; }
html.ggw-theme .elementor-nav-menu--dropdown li:nth-child(3) { animation-delay: .1s !important; }
html.ggw-theme .elementor-nav-menu--dropdown li:nth-child(4) { animation-delay: .15s !important; }
html.ggw-theme .elementor-nav-menu--dropdown li:nth-child(5) { animation-delay: .2s !important; }
html.ggw-theme .elementor-nav-menu--dropdown li:nth-child(6) { animation-delay: .25s !important; }
html.ggw-theme .elementor-nav-menu--dropdown li:nth-child(7) { animation-delay: .3s !important; }
@keyframes ggw-item-in { from { opacity: 0; transform: translateX(-18px); } to { opacity: 1; transform: none; } }
html.ggw-theme .elementor-menu-toggle { border-radius: 8px; transition: background .3s; }
html.ggw-theme .elementor-menu-toggle.elementor-active { background: rgba(192, 146, 63, .12) !important; }

/* --------------------------------------------------------------------------
   Buttons — square luxury buttons, gold sweep on hover
   -------------------------------------------------------------------------- */
html.ggw-theme .elementor-button,
html.ggw-theme .ge-btn {
	border-radius: 4px !important;
	text-transform: uppercase;
	letter-spacing: .14em;
	font-size: 12.5px !important;
	font-weight: 600 !important;
	isolation: isolate;
	transition: color .45s var(--t-ease), border-color .45s var(--t-ease), box-shadow .45s var(--t-ease), transform .45s var(--t-ease) !important;
}
html.ggw-theme .elementor-button::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background: linear-gradient(135deg, var(--t-gold), var(--t-gold-2));
	transform: scaleX(0); transform-origin: right center;
	transition: transform .55s var(--t-ease);
}
html.ggw-theme .elementor-button:hover::before { transform: scaleX(1); transform-origin: left center; }
html.ggw-theme .elementor-button:hover {
	color: #fff !important; border-color: var(--t-gold) !important;
	box-shadow: 0 12px 26px rgba(192, 146, 63, .28); transform: translateY(-2px);
}
html.ggw-theme .elementor-button:hover .elementor-button-text,
html.ggw-theme .elementor-button:hover .elementor-button-icon { color: #fff !important; }
/* Header CTA */
html.ggw-theme .elementor-location-header .elementor-button { border: 1px solid var(--t-gold) !important; padding: 13px 24px !important; }

/* Text links styled as "VIEW ALL →" get an animated arrow */
html.ggw-theme .elementor-button .elementor-button-text { position: relative; z-index: 1; }

/* --------------------------------------------------------------------------
   Section titles, eyebrows and dividers (classes added by JS)
   -------------------------------------------------------------------------- */
html.ggw-theme .ggw-title .elementor-heading-title { position: relative; }
html.ggw-theme .ggw-title .elementor-heading-title::after {
	content: ""; display: block; width: 72px; height: 2px; margin-top: 18px;
	background: linear-gradient(90deg, var(--t-gold), var(--t-gold-2));
	transform-origin: left center;
	transition: transform 1.1s var(--t-ease) .25s;
}
html.ggw-theme .ggw-title.ggw-align-center .elementor-heading-title::after { margin-left: auto; margin-right: auto; transform-origin: center; }
html.ggw-theme .ggw-title.ggw-align-right .elementor-heading-title::after { margin-left: auto; transform-origin: right center; }
html.ggw-theme.ggw-anim-on .ggw-title:not(.is-in) .elementor-heading-title::after { transform: scaleX(0); }

html.ggw-theme .ggw-eyebrow .elementor-heading-title {
	display: inline-flex !important; align-items: center; gap: 12px;
	color: var(--t-gold) !important;
	font-size: 12.5px !important; font-weight: 600 !important;
	letter-spacing: .28em !important; text-transform: uppercase !important;
}
html.ggw-theme .ggw-eyebrow .elementor-heading-title::before {
	content: ""; width: 34px; height: 1px; background: currentColor; flex: none;
	transform-origin: left; transition: transform .9s var(--t-ease) .2s;
}
html.ggw-theme.ggw-anim-on .ggw-eyebrow:not(.is-in) .elementor-heading-title::before { transform: scaleX(0); }

html.ggw-theme .elementor-widget-divider .elementor-divider-separator { border-color: rgba(192, 146, 63, .45) !important; }

/* --------------------------------------------------------------------------
   Cards (Elementor containers that look like cards — tagged by JS)
   -------------------------------------------------------------------------- */
html.ggw-theme .ggw-card {
	border-radius: var(--t-radius) !important;
	overflow: hidden;
	transition: transform .6s var(--t-ease), box-shadow .6s var(--t-ease), border-color .6s !important;
	box-shadow: 0 6px 20px rgba(5, 57, 65, .05);
}
html.ggw-theme .ggw-card:hover {
	transform: translateY(-8px);
	box-shadow: var(--t-shadow-lg);
	border-color: rgba(192, 146, 63, .45) !important;
}
html.ggw-theme .ggw-card .elementor-icon-box-icon .elementor-icon,
html.ggw-theme .ggw-card .elementor-icon {
	transition: transform .6s var(--t-ease), background-color .4s, color .4s;
}
html.ggw-theme .ggw-card:hover .elementor-icon { transform: translateY(-4px) rotate(-6deg) scale(1.08); }
html.ggw-theme .ggw-card .elementor-widget-image img { transition: transform 1.2s var(--t-ease); }
html.ggw-theme .ggw-card:hover .elementor-widget-image img { transform: scale(1.06); }
html.ggw-theme .ggw-card--dark { background-image: linear-gradient(160deg, rgba(255,255,255,.04), rgba(255,255,255,0)); }

/* Icon boxes outside cards: gold icon ring */
html.ggw-theme .elementor-widget-icon-box .elementor-icon { transition: transform .5s var(--t-ease); }
html.ggw-theme .elementor-widget-icon-box:hover .elementor-icon { transform: translateY(-3px); }

/* Images: soft rounded corners + slow zoom (not logos) */
html.ggw-theme [data-elementor-type="wp-page"] .elementor-widget-image:not(.ggw-logo) img { border-radius: var(--t-radius); }
html.ggw-theme [data-elementor-type="wp-page"] .elementor-widget-image .elementor-widget-container { border-radius: var(--t-radius); }

/* Icon lists — gold checks that pop in */
html.ggw-theme .elementor-icon-list-item .elementor-icon-list-icon { transition: transform .5s var(--t-ease); }
html.ggw-theme .elementor-icon-list-item:hover .elementor-icon-list-icon { transform: scale(1.18); }
html.ggw-theme .elementor-icon-list-item a .elementor-icon-list-text { transition: color .3s, transform .3s var(--t-ease); display: inline-block; }
html.ggw-theme .elementor-icon-list-item a:hover .elementor-icon-list-text { color: var(--t-gold) !important; transform: translateX(4px); }

/* --------------------------------------------------------------------------
   FAQ accordion — clean lines, gold toggle
   -------------------------------------------------------------------------- */
html.ggw-theme .e-n-accordion-item { border-bottom: 1px solid var(--t-line); }
html.ggw-theme .e-n-accordion-item-title { border: 0 !important; padding: 22px 6px !important; transition: color .3s, padding .4s var(--t-ease); }
html.ggw-theme .e-n-accordion-item-title:hover { padding-left: 14px !important; }
html.ggw-theme .e-n-accordion-item-title:hover .e-n-accordion-item-title-text,
html.ggw-theme .e-n-accordion-item[open] .e-n-accordion-item-title-text { color: var(--t-gold) !important; }
html.ggw-theme .e-n-accordion-item-title-icon { width: 32px; height: 32px; border-radius: 50%; border: 1px solid rgba(192, 146, 63, .5); justify-content: center; transition: transform .4s var(--t-ease), background .3s; }
html.ggw-theme .e-n-accordion-item[open] .e-n-accordion-item-title-icon { transform: rotate(180deg); background: rgba(192, 146, 63, .12); }
html.ggw-theme .e-n-accordion-item > .e-con { border: 0 !important; animation: ggw-acc .45s var(--t-ease); }
@keyframes ggw-acc { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }

/* Testimonial stars */
html.ggw-theme .elementor-star-rating i::before, html.ggw-theme .e-rating .e-icon { color: var(--t-gold) !important; }

/* --------------------------------------------------------------------------
   Banners (first section of each page)
   -------------------------------------------------------------------------- */
html.ggw-theme .ggw-banner { position: relative; }
html.ggw-theme .ggw-banner::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 120px; pointer-events: none; z-index: 0;
	background: linear-gradient(to top, rgba(5, 57, 65, .35), rgba(5, 57, 65, 0));
}
html.ggw-theme .ggw-banner > * { position: relative; z-index: 1; }

/* --------------------------------------------------------------------------
   Forms
   -------------------------------------------------------------------------- */
html.ggw-theme .elementor-field-group .elementor-field:not(.elementor-select-wrapper),
html.ggw-theme .elementor-field-textual,
html.ggw-theme .ge-enquiry input:not([type=hidden]):not([type=checkbox]),
html.ggw-theme .ge-enquiry textarea,
html.ggw-theme .ggw-modal input:not([type=hidden]),
html.ggw-theme .ggw-modal textarea {
	border-radius: 6px !important;
	transition: border-color .3s, box-shadow .3s, background-color .3s !important;
}
html.ggw-theme .elementor-field-textual:focus,
html.ggw-theme .ge-enquiry input:focus, html.ggw-theme .ge-enquiry textarea:focus,
html.ggw-theme .ggw-modal input:focus, html.ggw-theme .ggw-modal textarea:focus {
	border-color: var(--t-gold) !important;
	box-shadow: 0 0 0 4px rgba(192, 146, 63, .15) !important;
	outline: none !important;
	background-color: #fff !important;
}

/* --------------------------------------------------------------------------
   Property listings (Gateway Estates)
   -------------------------------------------------------------------------- */
html.ggw-theme .ge-card { border-radius: var(--t-radius) !important; overflow: hidden; border: 1px solid var(--t-line) !important; box-shadow: 0 6px 20px rgba(5, 57, 65, .05); }
html.ggw-theme .ge-card:hover { box-shadow: var(--t-shadow-lg); border-color: rgba(192, 146, 63, .4) !important; }
html.ggw-theme .ge-card__eyebrow { color: var(--t-gold) !important; letter-spacing: .22em !important; }
html.ggw-theme .ge-card__title a { transition: color .3s; }
html.ggw-theme .ge-card:hover .ge-card__title a { color: var(--t-gold) !important; }
html.ggw-theme .ge-card__price { color: var(--t-ink); font-weight: 600; }
html.ggw-theme .ge-badge { border-radius: 30px !important; padding: 6px 12px !important; letter-spacing: .16em; background: rgba(5, 57, 65, .82) !important; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); color: #fff !important; }
html.ggw-theme .ge-card__media { position: relative; }
html.ggw-theme .ge-card__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(5, 57, 65, .35), transparent 50%); opacity: 0; transition: opacity .6s; pointer-events: none; }
html.ggw-theme .ge-card:hover .ge-card__media::after { opacity: 1; }

html.ggw-theme .ge-gal__hero, html.ggw-theme .ge-gal__thumb, html.ggw-theme .ge-agent-card, html.ggw-theme .ge-hero { border-radius: var(--t-radius) !important; overflow: hidden; }
html.ggw-theme .ge-gal__thumb { border-radius: 10px !important; transition: transform .4s var(--t-ease), opacity .3s; }
html.ggw-theme .ge-gal__thumb:hover { transform: translateY(-3px); }
html.ggw-theme .ge-agent-card { box-shadow: var(--t-shadow); border: 1px solid var(--t-line) !important; }
html.ggw-theme .ge-headline__price { color: var(--t-gold) !important; }
html.ggw-theme .ge-section__title { position: relative; padding-bottom: 14px; }
html.ggw-theme .ge-section__title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 48px; height: 2px; background: linear-gradient(90deg, var(--t-gold), var(--t-gold-2)); }
html.ggw-theme .ge-results__bar { border-bottom: 1px solid var(--t-line); }
html.ggw-theme .ge-pagination .ge-page { border-radius: 6px; }
html.ggw-theme .ge-searchbar__form { border-radius: var(--t-radius); overflow: hidden; box-shadow: var(--t-shadow-lg); }
html.ggw-theme .ge-tab { letter-spacing: .16em; transition: color .3s; }
html.ggw-theme .ge-tab:hover { color: var(--t-gold) !important; }

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
html.ggw-theme .elementor-location-footer > .e-con:first-child { position: relative; }
html.ggw-theme .elementor-location-footer > .e-con:first-child::before {
	content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px;
	background: linear-gradient(90deg, transparent, var(--t-gold), transparent);
}
html.ggw-theme .elementor-location-footer .elementor-widget-heading .elementor-heading-title { position: relative; padding-bottom: 12px; letter-spacing: .12em; }
html.ggw-theme .elementor-location-footer .elementor-widget-heading .elementor-heading-title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 28px; height: 2px; background: var(--t-gold); }
html.ggw-theme .elementor-location-footer .elementor-icon-list-item a .elementor-icon-list-text { transition: color .3s, transform .3s var(--t-ease); }
html.ggw-theme .elementor-location-footer .elementor-icon-list-item a:hover .elementor-icon-list-text { color: var(--t-gold-2) !important; transform: translateX(5px); }
html.ggw-theme .elementor-location-footer .elementor-social-icon { transition: transform .4s var(--t-ease), background-color .3s !important; }
html.ggw-theme .elementor-location-footer .elementor-social-icon:hover { transform: translateY(-4px); }

/* --------------------------------------------------------------------------
   Phones
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
	html.ggw-theme { --t-radius: 14px; }
	html.ggw-theme .ggw-card:hover { transform: none; }
	html.ggw-theme .ggw-title .elementor-heading-title::after { width: 56px; margin-top: 14px; }
	html.ggw-theme .ggw-eyebrow .elementor-heading-title { font-size: 11.5px !important; letter-spacing: .22em !important; }
	html.ggw-theme .ggw-eyebrow .elementor-heading-title::before { width: 22px; }
	html.ggw-theme .elementor-button { padding: 13px 20px !important; }
	html.ggw-theme .e-n-accordion-item-title { padding: 18px 4px !important; }
	html.ggw-theme .e-n-accordion-item-title:hover { padding-left: 4px !important; }
}

@media (prefers-reduced-motion: reduce) {
	html.ggw-theme body { animation: none !important; }
	html.ggw-theme .ggw-card, html.ggw-theme .elementor-button { transition: none !important; }
}
/* Cards inside sliders: no lift (would be clipped), just a gold edge glow */
html.ggw-theme .ggw-card--flat:hover { transform: none; box-shadow: 0 0 0 1px rgba(192, 146, 63, .55), 0 18px 40px rgba(0, 0, 0, .18); }
