/* Fenithas Elements for Elementor.
   Colors fall back to gold on black. A card frame sets the --fel-* variables, widgets read them. */
@property --fel-a { syntax: "<angle>"; inherits: false; initial-value: 0deg; }

/* ---------- Entrance animations (widget level) ---------- */
.fel-anim { animation: var(--fel-kf, none) var(--fel-dur, 800ms) cubic-bezier(.2, .8, .2, 1) both; animation-delay: var(--fel-delay, 0ms); }
.fel-stagger.fel-anim { animation: none; }
.fel-stagger .fel-item { animation: var(--fel-kf, none) var(--fel-dur, 800ms) cubic-bezier(.2, .8, .2, 1) both; animation-delay: calc(var(--fel-delay, 0ms) + var(--fel-i, 0) * var(--fel-step, 90ms)); }
.fel-view:not(.fel-in), .fel-view:not(.fel-in) .fel-item { animation-play-state: paused; }

@keyframes fel-k-fade { from { opacity: 0; } }
@keyframes fel-k-fade-up { from { opacity: 0; transform: translateY(18px); } }
@keyframes fel-k-fade-down { from { opacity: 0; transform: translateY(-18px); } }
@keyframes fel-k-slide-left { from { opacity: 0; transform: translateX(-28px); } }
@keyframes fel-k-slide-right { from { opacity: 0; transform: translateX(28px); } }
@keyframes fel-k-zoom { from { opacity: 0; transform: scale(.7); } }
@keyframes fel-k-blur { from { opacity: 0; filter: blur(12px); } }
@keyframes fel-k-grow { from { opacity: 0; transform: scaleX(0); } }

@keyframes fel-spin { to { --fel-a: 360deg; } }
@keyframes fel-turn { to { transform: rotate(360deg); } }
@keyframes fel-rise { from { opacity: 0; transform: translateY(30px) scale(.97); } }
@keyframes fel-shimmer { from { background-position: 150% 0; } to { background-position: -100% 0; } }
@keyframes fel-sweep { 0% { left: -60%; } 45%, 100% { left: 140%; } }
@keyframes fel-twinkle { 0%, 100% { opacity: 0; transform: scale(.4); } 50% { opacity: 1; transform: scale(1.6); box-shadow: 0 0 10px #d4af37; } }
@keyframes fel-plate { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
@keyframes fel-pulse { 0% { box-shadow: 0 0 0 0 currentColor; } 70%, 100% { box-shadow: 0 0 0 9px transparent; } }
@keyframes fel-line { from { width: 0; } }

/* ---------- Widgets ---------- */
.fel-w { font-family: "Jost", "Helvetica Neue", Arial, sans-serif; font-weight: 300; line-height: 1.4; }
.fel-w *, .fel-w *::before, .fel-w *::after { box-sizing: border-box; }
.fel-w ul, .fel-w li, .fel-w p { margin: 0; padding: 0; list-style: none; }
.fel-w a { text-decoration: none; box-shadow: none; }
.fel-w svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.6; flex: none; }
.fel-w a:focus-visible, .fel-w button:focus-visible { outline: 2px solid var(--fel-text, #f6e08f); outline-offset: 3px; }

/* Crest */
.fel-crest-wrap { display: flex; justify-content: center; }
.fel-crest { --fel-crest: 92px; width: var(--fel-crest); height: var(--fel-crest); position: relative; display: grid; place-items: center; color: var(--fel-accent, #d4af37); }
.fel-crest svg { position: absolute; inset: 0; width: 100%; height: 100%; stroke-width: 1; }
.fel-crest--rotate svg { animation: fel-turn 24s linear infinite; }
.fel-crest-letter { font-family: "Cormorant Garamond", Georgia, serif; font-style: italic; font-weight: 600; font-size: calc(var(--fel-crest) * .48); line-height: 1; color: var(--fel-text, #f6e08f); }
.fel-grad { background: linear-gradient(120deg, #8a6a1c, #f6e08f, #d4af37); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* Name */
.fel-name { margin: 0; font-family: "Cormorant Garamond", Georgia, serif; font-weight: 600; font-size: clamp(30px, 9vw, 38px); line-height: 1.05; letter-spacing: .02em; overflow-wrap: anywhere; text-transform: none; color: var(--fel-text, #f6e08f); }
.fel-name--grad { background: linear-gradient(100deg, var(--fel-g1, #8a6a1c) 20%, var(--fel-g2, #f6e08f) 45%, var(--fel-g3, #d4af37) 55%, var(--fel-g1, #8a6a1c) 80%); background-size: 250% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; }
.fel-shimmer { animation: fel-shimmer 4.5s linear infinite; }
.fel-tagline { margin-top: 10px; font-size: 11px; letter-spacing: .36em; text-transform: uppercase; color: var(--fel-mute, #b9ad90); }
.fel-underline { display: inline-block; vertical-align: top; height: 2px; width: 56px; margin-top: 14px; background: var(--fel-accent, #d4af37); animation: fel-line 1.2s .5s cubic-bezier(.2, .8, .2, 1) both; }
.fel-view:not(.fel-in) .fel-underline { animation-play-state: paused; }

/* Services */
.fel-services { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.fel-chip { display: inline-block; font-size: 12.5px; letter-spacing: .06em; padding: 7px 14px; border: 1px solid var(--fel-chip-bd, rgba(212, 175, 55, .35)); border-radius: 999px; background: var(--fel-chip-bg, rgba(212, 175, 55, .05)); color: var(--fel-chip-ink, var(--fel-text, #f6e08f)); transition: background .25s, color .25s, transform .25s, padding .25s; }
.fel-hover-lift .fel-chip:hover { background: var(--fel-fill-solid, #d4af37); color: var(--fel-fill-ink, #0b0a08); transform: translateY(-2px); }
.fel-hover-slide .fel-chip:hover { transform: translateX(6px); border-color: var(--fel-accent, #d4af37); }
.fel-services--lines { display: block; column-count: 2; column-gap: 20px; }
.fel-services--lines .fel-item { break-inside: avoid; }
.fel-services--lines .fel-chip { display: block; padding: 7px 0; border: 0; border-bottom: 1px solid var(--fel-line, rgba(212, 175, 55, .18)); border-radius: 0; background: none; color: var(--fel-text, #f6e08f); font-size: 14px; }
.fel-services--lines.fel-hover-lift .fel-chip:hover { background: none; color: var(--fel-accent, #d4af37); transform: none; padding-left: 8px; }

/* Hours */
.fel-hours { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 13px; color: var(--fel-mute, #b9ad90); }
.fel-hours-label { margin-right: auto; }
.fel-hours-value { font-weight: 500; color: var(--fel-text, #f6e08f); }
.fel-dot { width: 8px; height: 8px; border-radius: 50%; background: #4ade80; color: #4ade80; animation: fel-pulse 2s ease-out infinite; flex: none; }

/* Buttons */
.fel-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.fel-btn { position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 13px 10px; border: 1px solid var(--fel-accent, #d4af37); border-radius: 14px; background: transparent; color: var(--fel-text, #f6e08f); font: 500 13px "Jost", "Helvetica Neue", Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; transition: color .3s, transform .2s, box-shadow .3s; }
.fel-btn > * { position: relative; }
.fel-btn::before { content: ""; position: absolute; inset: 0; background: var(--fel-fill, linear-gradient(120deg, #8a6a1c, #f6e08f)); transform: translateY(101%); transition: transform .3s ease; }
.fel-btn--solid { border-color: transparent; background: var(--fel-solid-bg, linear-gradient(120deg, #8a6a1c, #f6e08f 60%, #d4af37)); color: var(--fel-solid-ink, #0b0a08); }
.fel-btn--solid::before { background: var(--fel-solid-fill, #0b0a08); }
.fel-hover-fill .fel-btn:hover::before, .fel-hover-fill .fel-btn:focus-visible::before { transform: translateY(0); }
.fel-hover-fill .fel-btn--outline:hover, .fel-hover-fill .fel-btn--outline:focus-visible { color: var(--fel-fill-ink, #0b0a08); }
.fel-hover-fill .fel-btn--solid:hover, .fel-hover-fill .fel-btn--solid:focus-visible { color: var(--fel-solid-hover-ink, #f6e08f); }
.fel-hover-fill .fel-btn:hover, .fel-hover-glow .fel-btn:hover { transform: translateY(-2px); }
.fel-hover-glow .fel-btn:hover { box-shadow: 0 0 22px rgba(212, 175, 55, .55); }
.fel-hover-glow .fel-btn::before { display: none; }

/* Contact rows */
.fel-contacts { display: grid; gap: 10px; text-align: left; }
.fel-contacts li { display: flex; align-items: center; gap: 12px; padding-bottom: 10px; border-bottom: 1px dashed var(--fel-line, rgba(212, 175, 55, .22)); font-size: 13.5px; }
.fel-contacts li:last-child { border-bottom: 0; padding-bottom: 0; }
.fel-c-label { flex: none; width: 62px; font-style: normal; font-size: 10px; letter-spacing: .18em; text-transform: uppercase; color: var(--fel-mute, #b9ad90); }
.fel-c-value { flex: 1; min-width: 0; overflow-wrap: anywhere; color: var(--fel-text, #f6e08f); }
.fel-c-value a { color: inherit; }
.fel-copy { flex: none; padding: 5px 10px; border: 1px solid var(--fel-copy-bd, rgba(212, 175, 55, .45)); border-radius: 8px; background: none; color: var(--fel-copy-ink, #d4af37); font: 400 11px "Jost", "Helvetica Neue", Arial, sans-serif; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; transition: background .2s, color .2s; }
.fel-copy:hover { background: var(--fel-copy-ink, #d4af37); color: var(--fel-fill-ink, #0b0a08); }

/* Rule */
.fel-rule { display: flex; justify-content: center; }
.fel-rule-line { display: block; width: 100%; height: 1px; background: linear-gradient(90deg, transparent, var(--fel-rule, var(--fel-accent, #d4af37)), transparent); }
.fel-rule--solid { background: var(--fel-rule, var(--fel-accent, #d4af37)); }
.fel-rule--dotted { background: none; border-top: 2px dotted var(--fel-rule, var(--fel-accent, #d4af37)); height: 0; }

/* Closing */
.fel-closing { font-family: "Cormorant Garamond", Georgia, serif; font-style: italic; font-size: 17px; color: var(--fel-mute, #b9ad90); }

/* ---------- Card frame (Container option) ---------- */
.fel-frame--royal, .fel-frame--minimal, .fel-frame--plate {
	position: relative; overflow: hidden;
	--flex-direction: column; --padding-top: 36px; --padding-right: 26px; --padding-bottom: 28px; --padding-left: 26px; --gap: 20px;
	--fel-text: #f6e08f; --fel-mute: #b9ad90; --fel-accent: #d4af37;
}
:where(.fel-frame--royal, .fel-frame--minimal, .fel-frame--plate) { max-width: 400px; margin-inline: auto; text-align: center; }
.fel-frame--royal { border-radius: 26px; }
.fel-frame--royal, .fel-frame--minimal { background-color: #0b0a08; }
:where(.fel-frame--royal) { background-image: linear-gradient(170deg, #17140e, #0b0a08 55%); }
.fel-frame--minimal { border-radius: 4px; border-left: 2px solid #d4af37; text-align: left; --padding-top: 36px; --padding-left: 28px; --gap: 22px; }
.fel-frame--plate {
	border-radius: 24px;
	background-color: #d4af37; background-image: linear-gradient(125deg, #8a6a1c, #f6e08f 32%, #d4af37 58%, #f1d77a 78%, #8a6a1c); background-size: 200% 200%;
	animation: fel-plate 9s ease-in-out infinite;
	--fel-text: #120e04; --fel-mute: rgba(18, 14, 4, .72); --fel-accent: #120e04; --fel-line: rgba(18, 14, 4, .25);
	--fel-chip-bg: #120e04; --fel-chip-bd: #120e04; --fel-chip-ink: #f6e08f;
	--fel-fill: #120e04; --fel-fill-ink: #f6e08f; --fel-fill-solid: transparent;
	--fel-solid-bg: #120e04; --fel-solid-ink: #f6e08f; --fel-solid-fill: transparent; --fel-solid-hover-ink: #f6e08f;
	--fel-copy-bd: #120e04; --fel-copy-ink: #120e04;
}
.fel-frame--plate .fel-name--grad, .fel-frame--plate .fel-grad { background: none; -webkit-text-fill-color: currentColor; color: var(--fel-text); animation: none; }
.fel-frame--plate .fel-hover-lift .fel-chip:hover { background: transparent; color: #120e04; }
.fel-frame--minimal .fel-name--grad { background: none; -webkit-text-fill-color: currentColor; color: #f6e08f; animation: none; }

.fel-frame--royal.fel-rise, .fel-frame--minimal.fel-rise, .fel-frame--plate.fel-rise { animation: fel-rise 1s cubic-bezier(.2, .8, .2, 1) both; }
.fel-frame--plate.fel-rise { animation: fel-rise 1s cubic-bezier(.2, .8, .2, 1) both, fel-plate 9s ease-in-out infinite; }

.fel-frame--royal.fel-rim::before {
	content: ""; position: absolute; inset: 0; z-index: 2; border-radius: inherit; padding: 2px; pointer-events: none;
	background: conic-gradient(from var(--fel-a), var(--fel-rim1, #8a6a1c), var(--fel-rim2, #f6e08f), #d4af37, var(--fel-rim1, #8a6a1c), var(--fel-rim2, #f6e08f), var(--fel-rim1, #8a6a1c));
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude;
	animation: fel-spin 7s linear infinite;
}
:is(.fel-frame--royal, .fel-frame--plate).fel-shine::after {
	content: ""; position: absolute; top: -50%; bottom: -50%; left: -60%; width: 36%; z-index: 2; pointer-events: none;
	background: linear-gradient(90deg, transparent, rgba(246, 224, 143, .14), transparent); transform: rotate(18deg);
	animation: fel-sweep 6s ease-in-out 1.2s infinite;
}
.fel-frame--plate.fel-shine::after { background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .55), transparent); width: 30%; animation-duration: 5s; }
.fel-frame--royal.fel-glow { box-shadow: 0 30px 80px -20px rgba(212, 175, 55, .28); }
.fel-frame--plate.fel-glow { box-shadow: 0 24px 60px -18px rgba(212, 175, 55, .45), inset 0 0 0 1px rgba(255, 255, 255, .35); }
.fel-frame--royal.fel-tilt { transform: perspective(1000px) rotateX(var(--fel-rx, 0deg)) rotateY(var(--fel-ry, 0deg)); transition: transform .2s ease-out; }

.fel-spark { position: absolute; width: 4px; height: 4px; border-radius: 50%; background: #f6e08f; opacity: 0; pointer-events: none; z-index: 2; animation: fel-twinkle 3.6s ease-in-out infinite; }
.fel-spark:nth-of-type(1) { top: 10%; left: 12%; animation-delay: .2s; }
.fel-spark:nth-of-type(2) { top: 18%; right: 10%; animation-delay: 1.4s; width: 3px; height: 3px; }
.fel-spark:nth-of-type(3) { top: 46%; left: 6%; animation-delay: 2.2s; width: 3px; height: 3px; }
.fel-spark:nth-of-type(4) { bottom: 14%; right: 8%; animation-delay: .9s; }

@media (max-width: 380px) {
	.fel-services--lines { column-count: 1; }
}
@media (prefers-reduced-motion: reduce) {
	.fel-w, .fel-w *, .fel-w *::before, [class*="fel-frame--"], [class*="fel-frame--"]::before, [class*="fel-frame--"]::after, .fel-spark { animation: none !important; transition: none !important; }
	.fel-spark { opacity: .8; }
}
