/* ==========================================================================
   Avoid4Closure – theme styles
   Design tokens taken from the original React/Tailwind site.
   ========================================================================== */
:root {
	--a4c-bg: #ffffff;
	--a4c-fg: #121212;
	--a4c-primary: #121212;
	--a4c-primary-fg: #ffffff;
	--a4c-secondary: #262626;
	--a4c-accent: #D4AF35;
	--a4c-accent-fg: #121212;
	--a4c-muted: #F2F2F2;
	--a4c-muted-fg: #666666;
	--a4c-border: #E0E0E0;
	--a4c-radius: 0.75rem;
	--a4c-font-heading: 'Instrument Serif', Georgia, serif;
	--a4c-font-body: 'Plus Jakarta Sans', ui-sans-serif, system-ui, sans-serif;
	--a4c-max: 80rem;
	--a4c-nav-h: 80px;

	/* Elementor global colour/font hooks (so widgets default to the brand) */
	--e-global-color-primary: #121212;
	--e-global-color-secondary: #262626;
	--e-global-color-text: #666666;
	--e-global-color-accent: #D4AF35;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body.a4c-site {
	margin: 0;
	background: var(--a4c-bg);
	color: var(--a4c-fg);
	font-family: var(--a4c-font-body);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}
img, svg, video { max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4, h5, h6 { font-family: var(--a4c-font-heading); font-weight: 400; color: var(--a4c-fg); line-height: 1.15; margin: 0 0 .5em; }
p { margin: 0 0 1em; }
.a4c-icon { flex-shrink: 0; vertical-align: middle; }
.screen-reader-text, .a4c-skip:not(:focus) { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.a4c-skip:focus { position: fixed; top: 8px; left: 8px; z-index: 100000; background: var(--a4c-accent); color: var(--a4c-accent-fg); padding: .6rem 1rem; border-radius: 8px; }

.a4c-container { max-width: var(--a4c-max); margin: 0 auto; padding: 0 1.5rem; }
.a4c-container-narrow { max-width: 48rem; margin: 0 auto; padding: 0 1.5rem; }
.a4c-center { text-align: center; }
@media (min-width: 1024px) { .a4c-container, .a4c-container-narrow { padding: 0 2rem; } }

/* Typography helpers */
.a4c-eyebrow { font-size: .875rem; font-weight: 600; text-transform: uppercase; letter-spacing: .2em; color: var(--a4c-accent); margin-bottom: 1rem; }
.a4c-h1 { font-size: 2.25rem; margin-bottom: 1rem; }
@media (min-width: 1024px) { .a4c-h1 { font-size: 3rem; } }
.a4c-lead { font-size: 1.125rem; color: var(--a4c-muted-fg); max-width: 36rem; margin: 0 auto; }

/* Buttons */
.a4c-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	padding: .65rem 1.5rem; border-radius: 9999px; font-weight: 700; font-size: .875rem;
	border: 0; cursor: pointer; transition: all .3s ease; position: relative; overflow: hidden;
}
.a4c-btn-gold { background: var(--a4c-accent); color: var(--a4c-accent-fg); box-shadow: 0 10px 20px -8px rgba(212,175,53,.45); }
.a4c-btn-gold:hover { transform: translateY(-2px); box-shadow: 0 14px 28px -8px rgba(212,175,53,.6); background: linear-gradient(90deg, #D4AF35, #f2cf4f, #D4AF35); background-size: 200% 100%; animation: a4c-shimmer 3s ease-in-out infinite; }
.a4c-btn-block { display: flex; width: 100%; }
@keyframes a4c-shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* ---------- Scroll progress ---------- */
.a4c-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 10001; transform-origin: left; transform: scaleX(0); background: linear-gradient(90deg, #D4AF35, #facc15, #D4AF35); }

/* ---------- Header ---------- */
.a4c-nav { position: fixed; top: 0; left: 0; right: 0; z-index: 9990; transition: all .5s ease; background: transparent; }
body.admin-bar .a4c-nav { top: 32px; }
@media (max-width: 782px) { body.admin-bar .a4c-nav { top: 46px; } }
.a4c-nav-row { display: flex; align-items: center; justify-content: space-between; height: var(--a4c-nav-h); gap: 1rem; }

.a4c-brand { display: flex; align-items: center; gap: .75rem; }
.a4c-brand-mark { width: 40px; height: 40px; border-radius: 8px; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2); backdrop-filter: blur(4px); transition: all .3s ease; }
.a4c-brand-mark span { font-family: var(--a4c-font-heading); font-size: 1.25rem; font-weight: 600; color: #fff; }
.a4c-brand:hover .a4c-brand-mark { transform: scale(1.08) rotate(-5deg); }
.a4c-brand-logo img { max-height: 44px; width: auto; display: block; }
.a4c-brand-text { display: none; flex-direction: column; line-height: 1.2; }
@media (min-width: 640px) { .a4c-brand-text { display: flex; } }
.a4c-brand-name { font-size: .875rem; font-weight: 600; color: #fff; transition: color .3s; }
.a4c-brand-sub { font-size: .75rem; color: rgba(255,255,255,.6); transition: color .3s; }

.a4c-nav-desktop { display: none; }
.a4c-nav-cta { display: none; }
@media (min-width: 1024px) { .a4c-nav-desktop, .a4c-nav-cta { display: block; } }

.a4c-menu, .a4c-footer-links, .a4c-legal, .a4c-contact-list { list-style: none; margin: 0; padding: 0; }
.a4c-nav-desktop .a4c-menu { display: flex; align-items: center; gap: .25rem; }
.a4c-nav-desktop .a4c-menu > li { position: relative; }
.a4c-nav-desktop .a4c-menu a { display: block; position: relative; padding: .5rem 1rem; font-size: .875rem; font-weight: 500; border-radius: 8px; color: rgba(255,255,255,.7); transition: all .3s ease; }
.a4c-nav-desktop .a4c-menu a:hover { color: #fff; background: rgba(255,255,255,.1); }
.a4c-nav-desktop .a4c-menu .current-menu-item > a,
.a4c-nav-desktop .a4c-menu .current_page_item > a,
.a4c-nav-desktop .a4c-menu .current-menu-ancestor > a { color: var(--a4c-accent); }
.a4c-nav-desktop .a4c-menu .current-menu-item > a::after,
.a4c-nav-desktop .a4c-menu .current_page_item > a::after { content: ''; position: absolute; left: .75rem; right: .75rem; bottom: -2px; height: 2px; background: var(--a4c-accent); border-radius: 9999px; }

/* sub-menus */
.a4c-nav-desktop .sub-menu { list-style: none; margin: 0; padding: .5rem; position: absolute; top: 100%; left: 0; min-width: 220px; background: #fff; border: 1px solid var(--a4c-border); border-radius: 12px; box-shadow: 0 12px 40px rgba(0,0,0,.12); opacity: 0; visibility: hidden; transform: translateY(8px); transition: all .25s ease; }
.a4c-nav-desktop li:hover > .sub-menu, .a4c-nav-desktop li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.a4c-nav-desktop .sub-menu a { color: var(--a4c-muted-fg) !important; }
.a4c-nav-desktop .sub-menu a:hover { color: var(--a4c-fg) !important; background: var(--a4c-muted) !important; }

.a4c-burger { display: inline-flex; background: none; border: 0; padding: .5rem; border-radius: 8px; color: #fff; cursor: pointer; transition: background .3s; }
.a4c-burger:hover { background: rgba(255,255,255,.1); }
.a4c-burger-close { display: none; }
.a4c-burger[aria-expanded="true"] .a4c-burger-open { display: none; }
.a4c-burger[aria-expanded="true"] .a4c-burger-close { display: inline; }
@media (min-width: 1024px) { .a4c-burger { display: none; } }

.a4c-mobile { overflow: hidden; max-height: 0; transition: max-height .5s ease; }
.a4c-mobile.is-open { max-height: 680px; border-top: 1px solid var(--a4c-border); }
.a4c-mobile-inner { padding: 1rem 1.5rem; background: rgba(255,255,255,.96); backdrop-filter: blur(24px); }
.a4c-menu-mobile a { display: block; padding: .75rem 1rem; font-size: 1rem; font-weight: 500; border-radius: 8px; color: var(--a4c-fg); }
.a4c-menu-mobile a:hover { background: var(--a4c-muted); }
.a4c-menu-mobile .current-menu-item > a, .a4c-menu-mobile .current_page_item > a { color: var(--a4c-accent); background: rgba(212,175,53,.06); }
.a4c-mobile-inner .a4c-btn { margin-top: .75rem; }
@media (min-width: 1024px) { .a4c-mobile { display: none; } }

/* Solid state: scrolled, or pages that don't start with a dark hero */
.a4c-nav.is-scrolled,
body:not(.a4c-hero-start) .a4c-nav,
body.a4c-solid-header .a4c-nav,
.a4c-nav.is-open { background: rgba(255,255,255,.95); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); box-shadow: 0 2px 40px rgba(0,0,0,.08); border-bottom: 1px solid var(--a4c-border); }
.a4c-nav.is-scrolled .a4c-brand-mark, body:not(.a4c-hero-start) .a4c-brand-mark, body.a4c-solid-header .a4c-brand-mark, .a4c-nav.is-open .a4c-brand-mark { background: var(--a4c-primary); border-color: transparent; }
.a4c-nav.is-scrolled .a4c-brand-name, body:not(.a4c-hero-start) .a4c-brand-name, body.a4c-solid-header .a4c-brand-name, .a4c-nav.is-open .a4c-brand-name { color: var(--a4c-fg); }
.a4c-nav.is-scrolled .a4c-brand-sub, body:not(.a4c-hero-start) .a4c-brand-sub, body.a4c-solid-header .a4c-brand-sub, .a4c-nav.is-open .a4c-brand-sub { color: var(--a4c-muted-fg); }
.a4c-nav.is-scrolled .a4c-nav-desktop .a4c-menu > li > a,
body:not(.a4c-hero-start) .a4c-nav-desktop .a4c-menu > li > a,
body.a4c-solid-header .a4c-nav-desktop .a4c-menu > li > a { color: var(--a4c-muted-fg); }
.a4c-nav.is-scrolled .a4c-nav-desktop .a4c-menu > li > a:hover,
body:not(.a4c-hero-start) .a4c-nav-desktop .a4c-menu > li > a:hover,
body.a4c-solid-header .a4c-nav-desktop .a4c-menu > li > a:hover { color: var(--a4c-fg); background: rgba(242,242,242,.6); }
.a4c-nav.is-scrolled .a4c-nav-desktop .a4c-menu > .current-menu-item > a,
.a4c-nav.is-scrolled .a4c-nav-desktop .a4c-menu > .current_page_item > a,
body:not(.a4c-hero-start) .a4c-nav-desktop .a4c-menu > .current-menu-item > a,
body:not(.a4c-hero-start) .a4c-nav-desktop .a4c-menu > .current_page_item > a { color: var(--a4c-accent); }
.a4c-nav.is-scrolled .a4c-burger, body:not(.a4c-hero-start) .a4c-burger, body.a4c-solid-header .a4c-burger, .a4c-nav.is-open .a4c-burger { color: var(--a4c-fg); }
.a4c-nav.is-scrolled .a4c-burger:hover, body:not(.a4c-hero-start) .a4c-burger:hover { background: var(--a4c-muted); }

/* ---------- Main area ---------- */
.a4c-main { display: block; animation: a4c-page-enter .6s cubic-bezier(.25,.1,.25,1); }
@keyframes a4c-page-enter { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
body.a4c-solid-header .a4c-main-elementor { padding-top: var(--a4c-nav-h); }
.a4c-main-elementor > .elementor { width: 100%; }

/* Elementor: let hero sections slide under the fixed header, and match site containers */
.elementor-section.elementor-section-boxed > .elementor-container { max-width: var(--a4c-max); }
.e-con { --container-max-width: 1280px; }
.elementor-widget-heading .elementor-heading-title { font-family: var(--a4c-font-heading); font-weight: 400; }
.elementor-widget-text-editor, .elementor-widget-icon-list .elementor-icon-list-text, .elementor-button { font-family: var(--a4c-font-body); }
.elementor-button { border-radius: 9999px; font-weight: 700; transition: all .3s ease; }
.elementor-button:hover { transform: translateY(-2px); }
.a4c-gold { color: var(--a4c-accent) !important; }
.a4c-serif-italic { font-family: var(--a4c-font-heading); font-style: italic; }
.a4c-eyebrow-el .elementor-heading-title { font-family: var(--a4c-font-body) !important; font-size: .875rem; font-weight: 600; text-transform: uppercase; letter-spacing: .25em; color: var(--a4c-accent); }
.a4c-card-el { border: 1px solid rgba(224,224,224,.6); border-radius: 1rem; background: #fff; transition: all .5s ease; }
.a4c-card-el:hover { box-shadow: 0 12px 40px rgba(0,0,0,.06); transform: translateY(-4px); }
.a4c-gold-rule { width: 6rem; height: 2px; background: var(--a4c-accent); margin: 2rem auto 0; }
.a4c-dark-section { background: var(--a4c-primary); color: #fff; }
.a4c-dark-section h1, .a4c-dark-section h2, .a4c-dark-section h3 { color: #fff; }

/* Basic content typography for plain (non-Elementor) content */
.a4c-main-plain { padding: 8rem 0 4rem; }
.a4c-prose { font-size: 1.125rem; color: var(--a4c-muted-fg); line-height: 1.8; }
.a4c-prose a { color: var(--a4c-accent); }

/* ---------- Footer ---------- */
.a4c-footer { background: var(--a4c-primary); color: var(--a4c-primary-fg); }
.a4c-footer-ribbon { display: grid; gap: 2rem; align-items: center; padding: 3rem 0; border-bottom: 1px solid rgba(255,255,255,.1); text-align: center; }
@media (min-width: 768px) { .a4c-footer-ribbon { grid-template-columns: repeat(3, 1fr); } .a4c-footer-founder { text-align: left; } .a4c-socials { justify-content: flex-end !important; } }
.a4c-founder-name { font-family: var(--a4c-font-heading); font-style: italic; font-size: 1.875rem; color: var(--a4c-accent); margin: 0 0 .5rem; }
.a4c-founder-role { font-size: .875rem; color: rgba(255,255,255,.6); margin: 0; }
.a4c-guarantee { justify-self: center; background: rgba(212,175,53,.2); border: 1px solid rgba(212,175,53,.3); border-radius: 1rem; padding: 1rem 1.5rem; text-align: center; backdrop-filter: blur(4px); }
.a4c-guarantee .a4c-icon { color: var(--a4c-accent); margin-bottom: .5rem; }
.a4c-guarantee-title { font-size: .875rem; font-weight: 600; margin: 0; }
.a4c-guarantee-sub { font-size: .75rem; color: rgba(255,255,255,.6); margin: .25rem 0 0; }
.a4c-socials { display: flex; justify-content: center; gap: 1rem; }
.a4c-socials a { width: 40px; height: 40px; border-radius: 9999px; background: rgba(255,255,255,.1); display: flex; align-items: center; justify-content: center; font-size: .75rem; font-weight: 500; transition: all .3s; }
.a4c-socials a:hover { background: rgba(212,175,53,.3); transform: translateY(-4px); }
.a4c-footer-grid { display: grid; gap: 2.5rem; padding: 4rem 0; grid-template-columns: 1fr; }
@media (min-width: 768px) { .a4c-footer-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .a4c-footer-grid { grid-template-columns: repeat(4, 1fr); } }
.a4c-footer-brand { font-size: 1.5rem; color: var(--a4c-accent); margin-bottom: 1rem; }
.a4c-footer-about { font-size: .875rem; color: rgba(255,255,255,.6); line-height: 1.7; }
.a4c-footer-heading { font-family: var(--a4c-font-body); font-weight: 600; font-size: .875rem; text-transform: uppercase; letter-spacing: .1em; color: rgba(255,255,255,.5); margin-bottom: 1rem; }
.a4c-footer-links li { margin-bottom: .75rem; }
.a4c-footer-links a { font-size: .875rem; color: rgba(255,255,255,.7); transition: color .3s; }
.a4c-footer-links a:hover { color: var(--a4c-accent); }
.a4c-contact-list li { display: flex; align-items: flex-start; gap: .75rem; margin-bottom: 1rem; font-size: .875rem; color: rgba(255,255,255,.7); }
.a4c-contact-list .a4c-icon { color: var(--a4c-accent); margin-top: .25rem; }
.a4c-contact-list a:hover { color: var(--a4c-accent); }
.a4c-footer-bottom { display: flex; flex-direction: column; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.5rem 0; border-top: 1px solid rgba(255,255,255,.1); }
@media (min-width: 768px) { .a4c-footer-bottom { flex-direction: row; } }
.a4c-footer-bottom p { margin: 0; font-size: .75rem; color: rgba(255,255,255,.4); }
.a4c-legal { display: flex; gap: 1.5rem; }
.a4c-legal a { font-size: .75rem; color: rgba(255,255,255,.4); transition: color .3s; }
.a4c-legal a:hover { color: rgba(255,255,255,.6); }

/* ---------- Floating buttons + exit popup ---------- */
.a4c-floating { position: fixed; bottom: 1.5rem; right: 1.5rem; z-index: 9980; display: flex; flex-direction: column; gap: .75rem; align-items: center; }
.a4c-fab { border: 0; cursor: pointer; border-radius: 9999px; display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 25px -5px rgba(0,0,0,.2); transition: all .3s ease; }
.a4c-fab:hover { transform: scale(1.06); }
.a4c-fab-top { width: 48px; height: 48px; background: var(--a4c-muted); color: var(--a4c-fg); opacity: 0; visibility: hidden; transform: scale(.5); }
.a4c-fab-top.is-visible { opacity: 1; visibility: visible; transform: none; }
.a4c-fab-gold, .a4c-fab-dark { width: 56px; height: 56px; }
.a4c-fab-gold { background: var(--a4c-accent); color: var(--a4c-accent-fg); box-shadow: 0 15px 30px -8px rgba(212,175,53,.5); }
.a4c-fab-dark { background: var(--a4c-secondary); color: #fff; }

.a4c-exit { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; background: rgba(18,18,18,.6); backdrop-filter: blur(4px); padding: 1rem; }
.a4c-exit[hidden] { display: none; }
.a4c-exit-box { position: relative; background: #fff; border-radius: 1rem; padding: 2rem; max-width: 28rem; width: 100%; text-align: center; box-shadow: 0 25px 60px rgba(0,0,0,.35); animation: a4c-pop .3s ease; }
@keyframes a4c-pop { from { opacity: 0; transform: scale(.9) translateY(20px); } to { opacity: 1; transform: none; } }
.a4c-exit-close { position: absolute; top: 1rem; right: 1rem; background: none; border: 0; padding: .5rem; border-radius: 9999px; cursor: pointer; color: var(--a4c-fg); }
.a4c-exit-close:hover { background: var(--a4c-muted); }
.a4c-exit-icon { width: 64px; height: 64px; border-radius: 1rem; background: rgba(212,175,53,.1); color: var(--a4c-accent); display: flex; align-items: center; justify-content: center; margin: 0 auto 1.5rem; }
.a4c-exit-box h3 { font-size: 1.5rem; margin-bottom: .75rem; }
.a4c-exit-box p { color: var(--a4c-muted-fg); margin-bottom: 1.5rem; }
.a4c-exit-skip { background: none; border: 0; margin-top: .75rem; font-size: .875rem; color: var(--a4c-muted-fg); cursor: pointer; }
.a4c-exit-skip:hover { color: var(--a4c-fg); }

/* ---------- Click ripple ---------- */
.click-ripple { position: fixed; width: 44px; height: 44px; border-radius: 9999px; background: radial-gradient(circle, rgba(212,175,55,.5) 0%, rgba(212,175,55,0) 70%); pointer-events: none; z-index: 99999; animation: a4c-ripple .7s ease-out forwards; }
@keyframes a4c-ripple { from { transform: scale(.2); opacity: 1; } to { transform: scale(2.6); opacity: 0; } }

/* Reveal-on-scroll helper (add class "a4c-reveal" to any Elementor widget/section) */
.a4c-reveal { opacity: 0; transform: translateY(40px); transition: opacity .8s cubic-bezier(.25,.1,.25,1), transform .8s cubic-bezier(.25,.1,.25,1); }
.a4c-reveal.is-in { opacity: 1; transform: none; }
.elementor-editor-active .a4c-reveal { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
	.a4c-reveal { opacity: 1; transform: none; }
}
