/* Fox 'n Fable Core Builder — visual defaults.
   All content remains native Elementor elements; these styles provide the initial art direction. */

.fnf-page {
  --fnf-bg:#080b0c;
  --fnf-bg-2:#0c1010;
  --fnf-ink:#e9e1d5;
  --fnf-muted:#9a9993;
  --fnf-gold:#c89b4a;
  --fnf-line:rgba(233,225,213,.13);
  --fnf-line-warm:rgba(200,155,74,.25);
  background:var(--fnf-bg);
  color:var(--fnf-ink);
  overflow:hidden;
}
.fnf-page, .fnf-page * { box-sizing:border-box; }
.fnf-page a { transition:opacity .25s ease,color .25s ease,border-color .25s ease,transform .25s ease; }
.fnf-page a:hover { opacity:.76; }

.fnf-hero { position:relative; isolation:isolate; background-position:64% center !important; }
.fnf-hero:before {
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:
    linear-gradient(90deg, rgba(5,8,9,.98) 0%, rgba(5,8,9,.88) 31%, rgba(5,8,9,.34) 62%, rgba(5,8,9,.18) 100%),
    linear-gradient(0deg, rgba(8,11,12,.58) 0%, transparent 30%);
}
.fnf-hero:after {
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; opacity:.18;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E");
}
.fnf-header { border-bottom:1px solid rgba(255,255,255,.12); position:relative; z-index:5; }
.fnf-wordmark .elementor-heading-title { font-family:"Cormorant Garamond",Georgia,serif; }
.fnf-brand-sub { padding-top:6px; }
.fnf-nav .elementor-widget-heading { width:auto; }
.fnf-nav-link .elementor-heading-title { white-space:nowrap; }
.fnf-hero-body { flex:1; }
.fnf-hero-copy { max-width:640px; }
.fnf-eyebrow { margin-bottom:34px; }
.fnf-eyebrow .elementor-heading-title:before { content:"✦"; color:var(--fnf-gold); margin-right:10px; font-size:.8em; }
.fnf-hero-title { margin-bottom:28px; }
.fnf-hero-title em { color:var(--fnf-gold); font-weight:400; }
.fnf-lead { max-width:560px; margin-bottom:34px; }
.fnf-hero-actions { margin-top:4px; }

.fnf-button .elementor-button {
  min-height:48px; display:inline-flex; align-items:center; justify-content:center;
  border-radius:0; padding:15px 25px; font:500 10px/1.1 Inter,Arial,sans-serif;
  letter-spacing:2.5px; text-transform:uppercase;
}
.fnf-button-primary .elementor-button { background:var(--fnf-gold); color:#0a0c0c; border:1px solid var(--fnf-gold); }
.fnf-button-ghost .elementor-button { background:transparent; color:var(--fnf-ink); border:1px solid rgba(233,225,213,.4); }
.fnf-button .elementor-button:hover { transform:translateY(-2px); }
.fnf-text-link .elementor-button { background:transparent; color:var(--fnf-gold); padding:0 0 7px; border-radius:0; border-bottom:1px solid rgba(200,155,74,.35); font:500 10px/1.2 Inter,Arial,sans-serif; letter-spacing:2.3px; }

.fnf-section { background:var(--fnf-bg); border-top:1px solid var(--fnf-line); }
.fnf-section-kicker .elementor-heading-title { font:500 10px/1.3 Inter,Arial,sans-serif; letter-spacing:3.7px; text-transform:uppercase; }
.fnf-section-title { margin-top:24px; margin-bottom:32px; max-width:760px; }
.fnf-section-title .elementor-heading-title { font:400 54px/1.05 "Cormorant Garamond",Georgia,serif; letter-spacing:-.7px; }
.fnf-body-copy .elementor-widget-container { font:300 15px/1.85 Inter,Arial,sans-serif; }
.fnf-center { text-align:center; align-self:center; }
.fnf-center .elementor-heading-title { text-align:center; }

.fnf-intro { background:linear-gradient(180deg,#090c0d 0%,#080b0c 100%); }
.fnf-quote-wrap { border-left:1px solid var(--fnf-line-warm); padding-left:70px; }
.fnf-quote .elementor-heading-title { font:italic 400 43px/1.13 "Cormorant Garamond",Georgia,serif; max-width:470px; }
.fnf-quote-caption { margin-top:28px; }
.fnf-quote-caption .elementor-widget-container { font:500 10px/1.8 Inter,Arial,sans-serif; letter-spacing:2.6px; text-transform:uppercase; }

.fnf-services { background:#080a0b; }
.fnf-card-grid { margin-top:72px; border-top:1px solid var(--fnf-line); border-left:1px solid var(--fnf-line); }
.fnf-service-card { min-height:300px; border-right:1px solid var(--fnf-line); border-bottom:1px solid var(--fnf-line); }
.fnf-service-card:hover { background:rgba(255,255,255,.018); }
.fnf-card-number .elementor-heading-title { font:400 32px/1 "Cormorant Garamond",Georgia,serif; opacity:.86; }
.fnf-card-title { margin-top:56px; margin-bottom:13px; }
.fnf-card-title .elementor-heading-title { font:500 16px/1.3 Inter,Arial,sans-serif; letter-spacing:1.6px; text-transform:uppercase; }
.fnf-card-copy .elementor-widget-container { font:300 13px/1.75 Inter,Arial,sans-serif; max-width:285px; }

.fnf-work { background:#0a0d0e; }
.fnf-project-grid { margin-top:68px; }
.fnf-project-card { position:relative; overflow:hidden; border:1px solid var(--fnf-line); background:#101313; }
.fnf-project-card:before { content:""; position:absolute; inset:0; opacity:.94; transition:transform .6s ease,opacity .6s ease; }
.fnf-project-01:before { background:radial-gradient(circle at 72% 25%,rgba(205,112,37,.34),transparent 23%),linear-gradient(135deg,#17120e,#080a0a 62%); }
.fnf-project-02:before { background:linear-gradient(135deg,#32312d,#121515 53%,#090b0c); }
.fnf-project-03:before { background:radial-gradient(circle at 70% 32%,rgba(200,155,74,.15),transparent 18%),linear-gradient(155deg,#111716,#080a0b 66%); }
.fnf-project-card:hover:before { transform:scale(1.035); opacity:1; }
.fnf-project-spacer,.fnf-project-copy { position:relative; z-index:1; }
.fnf-project-copy { background:linear-gradient(0deg,rgba(6,8,9,.98),rgba(6,8,9,.72) 72%,transparent); }
.fnf-project-title .elementor-heading-title { font:500 19px/1.3 Inter,Arial,sans-serif; letter-spacing:1.4px; }
.fnf-project-meta .elementor-widget-container { font:500 9px/1.6 Inter,Arial,sans-serif; letter-spacing:1.7px; text-transform:uppercase; }
.fnf-project-desc .elementor-widget-container { font:300 13px/1.7 Inter,Arial,sans-serif; }

.fnf-shop { background:#080b0c; }
.fnf-shop-heading { margin-bottom:64px; }
.fnf-shop-copy { text-align:right; }
.fnf-product-card { border:1px solid var(--fnf-line); padding-bottom:24px; overflow:hidden; }
.fnf-product-art { position:relative; align-items:center; justify-content:center; background:linear-gradient(145deg,#171919,#0e1111); border-bottom:1px solid var(--fnf-line); }
.fnf-product-art:before { content:""; width:44%; aspect-ratio:1/1.15; border:1px solid rgba(200,155,74,.18); transform:rotate(7deg); background:linear-gradient(160deg,#111,#1a1a18); box-shadow:0 30px 80px rgba(0,0,0,.35); }
.fnf-product-mark { position:absolute; }
.fnf-product-mark .elementor-heading-title { font:400 24px/1 "Cormorant Garamond",Georgia,serif; }
.fnf-product-title { margin:22px 22px 2px; }
.fnf-product-title .elementor-heading-title { font:500 13px/1.3 Inter,Arial,sans-serif; letter-spacing:1.35px; text-transform:uppercase; }
.fnf-product-meta { margin:0 22px; }
.fnf-product-meta .elementor-widget-container { font:500 9px/1.4 Inter,Arial,sans-serif; letter-spacing:1.6px; text-transform:uppercase; }
.fnf-shop-button { margin-top:48px; align-self:flex-start; }

.fnf-process { background:#0a0d0e; }
.fnf-step-grid { margin-top:72px; border-top:1px solid var(--fnf-line); padding-top:46px; }
.fnf-step-number .elementor-heading-title { font:400 35px/1 "Cormorant Garamond",Georgia,serif; }
.fnf-step-title { margin-top:34px; margin-bottom:14px; }
.fnf-step-title .elementor-heading-title { font:500 13px/1.3 Inter,Arial,sans-serif; letter-spacing:2px; }
.fnf-step-copy .elementor-widget-container { font:300 13px/1.72 Inter,Arial,sans-serif; }

.fnf-cta { background:radial-gradient(circle at 80% 50%,rgba(200,155,74,.07),transparent 26%),#080a0b; }
.fnf-cta-title .elementor-heading-title { font:400 61px/1.02 "Cormorant Garamond",Georgia,serif; letter-spacing:-1px; }
.fnf-cta-copy .fnf-button { margin-top:28px; }

.fnf-footer { background:#060809; border-top:1px solid var(--fnf-line); }
.fnf-footer-links a { color:#9d9b94; text-decoration:none; }
.fnf-footer-column .elementor-widget-container { font:300 12px/2.05 Inter,Arial,sans-serif; }
.fnf-footer-column strong { color:#d5cec3; font-size:9px; letter-spacing:2.5px; font-weight:500; }
.fnf-footer-copy .elementor-widget-container,.fnf-footer-small .elementor-widget-container { font:300 11px/1.7 Inter,Arial,sans-serif; }
.fnf-footer-bottom { border-top:1px solid var(--fnf-line); margin-top:54px; }

@media (max-width:1024px) {
  .fnf-nav { display:none !important; }
  .fnf-hero { background-position:66% center !important; }
  .fnf-hero:before { background:linear-gradient(90deg,rgba(5,8,9,.96) 0%,rgba(5,8,9,.78) 48%,rgba(5,8,9,.28) 100%); }
  .fnf-project-grid,.fnf-product-grid,.fnf-step-grid { flex-wrap:wrap; }
  .fnf-project-card { flex:1 1 calc(50% - 12px); }
  .fnf-section-title .elementor-heading-title { font-size:47px; }
}

@media (max-width:767px) {
  .fnf-brand-sub { display:none; }
  .fnf-wordmark .elementor-heading-title { font-size:29px !important; }
  .fnf-hero { min-height:820px !important; background-position:70% center !important; }
  .fnf-hero:before { background:linear-gradient(90deg,rgba(5,8,9,.96) 0%,rgba(5,8,9,.78) 65%,rgba(5,8,9,.42) 100%),linear-gradient(0deg,rgba(5,8,9,.78),transparent 44%); }
  .fnf-hero-copy { max-width:none; }
  .fnf-hero-actions { flex-direction:column !important; align-items:flex-start; }
  .fnf-hero-actions .elementor-widget-button { width:100%; max-width:310px; }
  .fnf-hero-actions .elementor-button { width:100%; }
  .fnf-intro,.fnf-cta,.fnf-footer-top { flex-direction:column !important; }
  .fnf-quote-wrap { border-left:0; border-top:1px solid var(--fnf-line-warm); padding-left:0; padding-top:52px; margin-top:10px; }
  .fnf-quote .elementor-heading-title { font-size:37px; }
  .fnf-section-title .elementor-heading-title { font-size:41px; }
  .fnf-card-grid { border-left:0; }
  .fnf-service-card { border-left:1px solid var(--fnf-line); }
  .fnf-project-grid,.fnf-product-grid,.fnf-step-grid { flex-direction:column !important; }
  .fnf-project-card,.fnf-product-card,.fnf-step { width:100% !important; }
  .fnf-project-card { min-height:440px !important; }
  .fnf-shop-heading { flex-direction:column !important; align-items:flex-start !important; }
  .fnf-shop-copy { text-align:left; }
  .fnf-cta-title .elementor-heading-title { font-size:47px; }
  .fnf-footer-links { flex-wrap:wrap; }
  .fnf-footer-bottom { flex-direction:column !important; }
  .fnf-desktop-link { display:none; }
}


/* Gateway template */
.fnf-gateway-hero { position:relative; }
.fnf-gateway-hero:before {
  background:
    linear-gradient(90deg, rgba(5,8,9,.98) 0%, rgba(5,8,9,.90) 29%, rgba(5,8,9,.42) 58%, rgba(5,8,9,.26) 100%),
    linear-gradient(180deg, rgba(6,8,9,.25) 0%, rgba(6,8,9,.06) 25%, rgba(6,8,9,.35) 100%);
}
.fnf-gateway-copy { max-width:640px; }
.fnf-gateway-body { position:relative; }
.fnf-side-label { position:absolute; top:50%; transform:translateY(-50%) rotate(-90deg); transform-origin:center; opacity:.8; }
.fnf-side-label-left { left:-28px; }
.fnf-side-label-right { right:-64px; transform:translateY(-50%) rotate(90deg); }
.fnf-gateway-cards-wrap { position:relative; z-index:3; }
.fnf-gateway-card-grid { border-top:1px solid var(--fnf-line); border-left:1px solid var(--fnf-line); background:rgba(4,6,7,.38); backdrop-filter: blur(2px); }
.fnf-gateway-card { min-height:270px; border-right:1px solid var(--fnf-line); border-bottom:1px solid var(--fnf-line); background:linear-gradient(180deg, rgba(8,10,11,.28), rgba(8,10,11,.54)); }
.fnf-gateway-card:hover { background:linear-gradient(180deg, rgba(10,12,13,.44), rgba(8,10,11,.70)); }
.fnf-gateway-card-title { margin-bottom:18px; }
.fnf-gateway-card-title .elementor-heading-title { font:500 16px/1.3 Inter,Arial,sans-serif; letter-spacing:2px; text-transform:uppercase; }
.fnf-gateway-card-copy .elementor-widget-container { font:300 14px/1.9 Inter,Arial,sans-serif; max-width:285px; margin-bottom:28px; }
.fnf-gateway-bottom { border-top:1px solid rgba(255,255,255,.08); }
.fnf-gateway-mark .elementor-heading-title { line-height:1; }
@media (max-width:1200px) {
  .fnf-side-label-left { left:-10px; }
  .fnf-side-label-right { right:-40px; }
}
@media (max-width:1024px) {
  .fnf-gateway-copy { width:65% !important; }
  .fnf-side-label { display:none; }
}
@media (max-width:767px) {
  .fnf-gateway-copy { width:100% !important; }
  .fnf-gateway-card-grid, .fnf-gateway-bottom { flex-direction:column !important; }
  .fnf-gateway-card { width:100% !important; min-height:auto; }
  .fnf-gateway-bottom { gap:12px; align-items:flex-start !important; }
}
