/*
 * Noor Ads 1.7 — Complete visual preset system
 * Every preset owns its background, typography, header, cards, forms and
 * Elementor starter widgets. This prevents white-on-white / dark-on-dark
 * combinations when switching identities.
 */

body.noor-style-cosmic-dark,
body.noor-style-custom{
  --noor-bg:#060918;
  --noor-bg-alt:#0b1126;
  --noor-surface:#111a34;
  --noor-surface-2:#172143;
  --noor-card-bg:rgba(16,24,50,.86);
  --noor-card-solid:#111a34;
  --noor-text:#edf2ff;
  --noor-heading:#ffffff;
  --noor-muted:#aeb8d2;
  --noor-border:rgba(160,181,255,.17);
  --noor-accent:#6f7cff;
  --noor-accent-2:#00d2ff;
  --noor-on-accent:#ffffff;
  --noor-header-bg:rgba(8,14,31,.86);
  --noor-header-solid:#0b1126;
  --noor-header-text:#ffffff;
  --noor-header-muted:#dce4ff;
  --noor-mobile-menu:#0e1730;
  --noor-hero-bg:radial-gradient(circle at 18% 18%,rgba(0,210,255,.18),transparent 17%),radial-gradient(circle at 80% 24%,rgba(126,98,255,.25),transparent 24%),linear-gradient(180deg,#050814,#0a1022);
  --noor-hero-text:#ffffff;
  --noor-hero-muted:#c4cee8;
  --noor-intro-bg:linear-gradient(145deg,#101a38,#090f20);
  --noor-intro-text:#f4f7ff;
  --noor-footer-bg:radial-gradient(circle at 18% 15%,rgba(0,202,255,.11),transparent 18%),radial-gradient(circle at 82% 24%,rgba(126,98,255,.16),transparent 22%),linear-gradient(180deg,#060a17,#03060d);
  --noor-footer-text:#ffffff;
  --noor-footer-muted:#aab5d2;
  --noor-shadow-color:rgba(2,6,24,.48);
  color-scheme:dark;
}

body.noor-style-obsidian-gold{
  --noor-bg:#0c0c0d;
  --noor-bg-alt:#15130f;
  --noor-surface:#1d1a14;
  --noor-surface-2:#292317;
  --noor-card-bg:rgba(30,26,19,.88);
  --noor-card-solid:#1d1a14;
  --noor-text:#f3ede2;
  --noor-heading:#fffaf0;
  --noor-muted:#c2b8a7;
  --noor-border:rgba(230,195,125,.18);
  --noor-accent:#d8a84e;
  --noor-accent-2:#f4d08c;
  --noor-on-accent:#16120b;
  --noor-header-bg:rgba(18,16,12,.9);
  --noor-header-solid:#17140f;
  --noor-header-text:#fff7e7;
  --noor-header-muted:#ddcfb8;
  --noor-mobile-menu:#1b1710;
  --noor-hero-bg:radial-gradient(circle at 78% 24%,rgba(216,168,78,.19),transparent 25%),radial-gradient(circle at 12% 18%,rgba(244,208,140,.08),transparent 18%),linear-gradient(155deg,#090909,#17130d);
  --noor-hero-text:#fffaf0;
  --noor-hero-muted:#cfc3b0;
  --noor-intro-bg:linear-gradient(145deg,#201a10,#0f0e0c);
  --noor-intro-text:#fff8e9;
  --noor-footer-bg:radial-gradient(circle at 75% 10%,rgba(216,168,78,.12),transparent 22%),linear-gradient(180deg,#0d0c0a,#050505);
  --noor-footer-text:#fff9ed;
  --noor-footer-muted:#bfb29d;
  --noor-shadow-color:rgba(0,0,0,.52);
  color-scheme:dark;
}

body.noor-style-aurora-light{
  --noor-bg:#f7fbff;
  --noor-bg-alt:#eaf4ff;
  --noor-surface:#ffffff;
  --noor-surface-2:#eef6ff;
  --noor-card-bg:rgba(255,255,255,.86);
  --noor-card-solid:#ffffff;
  --noor-text:#24324a;
  --noor-heading:#101b31;
  --noor-muted:#667894;
  --noor-border:rgba(63,91,145,.14);
  --noor-accent:#5b62ff;
  --noor-accent-2:#00b8c9;
  --noor-on-accent:#ffffff;
  --noor-header-bg:rgba(255,255,255,.88);
  --noor-header-solid:#ffffff;
  --noor-header-text:#16213a;
  --noor-header-muted:#52647f;
  --noor-mobile-menu:#ffffff;
  --noor-hero-bg:radial-gradient(circle at 16% 20%,rgba(0,184,201,.16),transparent 20%),radial-gradient(circle at 82% 22%,rgba(91,98,255,.16),transparent 26%),linear-gradient(160deg,#f9fcff,#eaf4ff);
  --noor-hero-text:#0f1b32;
  --noor-hero-muted:#5d718f;
  --noor-intro-bg:linear-gradient(145deg,#101b35,#162b52);
  --noor-intro-text:#f7fbff;
  --noor-footer-bg:radial-gradient(circle at 20% 12%,rgba(0,184,201,.14),transparent 20%),linear-gradient(180deg,#10203d,#071225);
  --noor-footer-text:#ffffff;
  --noor-footer-muted:#b9c9e2;
  --noor-shadow-color:rgba(28,56,105,.16);
  color-scheme:light;
}

body.noor-style-editorial-sand{
  --noor-bg:#f5f0e8;
  --noor-bg-alt:#eae1d4;
  --noor-surface:#fffaf3;
  --noor-surface-2:#f2e8da;
  --noor-card-bg:rgba(255,250,243,.9);
  --noor-card-solid:#fffaf3;
  --noor-text:#3b3027;
  --noor-heading:#18120e;
  --noor-muted:#77695d;
  --noor-border:rgba(87,62,42,.14);
  --noor-accent:#c4552d;
  --noor-accent-2:#cc9b4e;
  --noor-on-accent:#ffffff;
  --noor-header-bg:rgba(255,250,243,.9);
  --noor-header-solid:#fffaf3;
  --noor-header-text:#211811;
  --noor-header-muted:#6d5b4c;
  --noor-mobile-menu:#fffaf3;
  --noor-hero-bg:radial-gradient(circle at 78% 18%,rgba(196,85,45,.13),transparent 25%),radial-gradient(circle at 15% 20%,rgba(204,155,78,.14),transparent 20%),linear-gradient(155deg,#fffaf3,#eee3d5);
  --noor-hero-text:#18120e;
  --noor-hero-muted:#6f6155;
  --noor-intro-bg:linear-gradient(145deg,#2d2119,#18120f);
  --noor-intro-text:#fff7ed;
  --noor-footer-bg:radial-gradient(circle at 82% 18%,rgba(196,85,45,.14),transparent 22%),linear-gradient(180deg,#2b2019,#120e0b);
  --noor-footer-text:#fff7ed;
  --noor-footer-muted:#cdbdad;
  --noor-shadow-color:rgba(65,44,28,.17);
  color-scheme:light;
}

body.noor-style-violet-neon{
  --noor-bg:#0b0716;
  --noor-bg-alt:#160d2b;
  --noor-surface:#1c1236;
  --noor-surface-2:#29164a;
  --noor-card-bg:rgba(28,18,54,.88);
  --noor-card-solid:#1c1236;
  --noor-text:#f7efff;
  --noor-heading:#fff8ff;
  --noor-muted:#c8b6d8;
  --noor-border:rgba(217,146,255,.18);
  --noor-accent:#b854ff;
  --noor-accent-2:#ff4cc8;
  --noor-on-accent:#ffffff;
  --noor-header-bg:rgba(20,10,39,.88);
  --noor-header-solid:#170d2d;
  --noor-header-text:#fff7ff;
  --noor-header-muted:#dac4e8;
  --noor-mobile-menu:#1b1033;
  --noor-hero-bg:radial-gradient(circle at 20% 20%,rgba(255,76,200,.17),transparent 20%),radial-gradient(circle at 80% 25%,rgba(184,84,255,.28),transparent 26%),linear-gradient(160deg,#080512,#170c2c);
  --noor-hero-text:#fff8ff;
  --noor-hero-muted:#d5c2e1;
  --noor-intro-bg:linear-gradient(145deg,#241044,#0d0719);
  --noor-intro-text:#fff5ff;
  --noor-footer-bg:radial-gradient(circle at 75% 12%,rgba(255,76,200,.12),transparent 21%),linear-gradient(180deg,#10071e,#050309);
  --noor-footer-text:#fff8ff;
  --noor-footer-muted:#c6afd4;
  --noor-shadow-color:rgba(5,1,15,.56);
  color-scheme:dark;
}

/* ---------- Global palette application ---------- */
body.noor-visual-preset{
  background:var(--noor-bg)!important;
  color:var(--noor-text)!important;
  accent-color:var(--noor-accent);
}
body.noor-visual-preset .noor-site-main,
body.noor-visual-preset.home .noor-site-main{
  background:var(--noor-bg)!important;
  color:var(--noor-text)!important;
}
body.noor-visual-preset .noor-page-shell,
body.noor-visual-preset .noor-standard-page,
body.noor-visual-preset .noor-single-post,
body.noor-visual-preset .noor-portfolio-archive,
body.noor-visual-preset .noor-project-content{
  background:var(--noor-bg)!important;
  color:var(--noor-text)!important;
}
body.noor-visual-preset h1,
body.noor-visual-preset h2,
body.noor-visual-preset h3,
body.noor-visual-preset h4,
body.noor-visual-preset h5,
body.noor-visual-preset h6,
body.noor-visual-preset .elementor-heading-title,
body.noor-visual-preset .noor-page-heading h1,
body.noor-visual-preset .noor-section-head h2,
body.noor-visual-preset .noor-card-body h3{
  color:var(--noor-heading);
}
body.noor-visual-preset p,
body.noor-visual-preset .elementor-widget-text-editor,
body.noor-visual-preset .noor-entry-excerpt,
body.noor-visual-preset .noor-project-summary,
body.noor-visual-preset .noor-page-heading p{
  color:var(--noor-text);
}
body.noor-visual-preset .noor-muted,
body.noor-visual-preset .noor-prose blockquote,
body.noor-visual-preset .noor-project-meta dt{
  color:var(--noor-muted);
}
body.noor-visual-preset .noor-page-heading>span,
body.noor-visual-preset .noor-section-head span,
body.noor-visual-preset .noor-card-body span,
body.noor-visual-preset .noor-kicker,
body.noor-visual-preset .noor-el-kicker,
body.noor-visual-preset .noor-el-intro-number{
  color:var(--noor-accent);
}
body.noor-visual-preset a:focus-visible,
body.noor-visual-preset button:focus-visible,
body.noor-visual-preset input:focus-visible,
body.noor-visual-preset textarea:focus-visible,
body.noor-visual-preset select:focus-visible{
  outline:3px solid color-mix(in srgb,var(--noor-accent) 55%,transparent);
  outline-offset:3px;
}

/* ---------- Header: guaranteed readable in every preset ---------- */
body.noor-visual-preset .noor-site-header .noor-header-inner,
body.noor-visual-preset .noor-el-header-inner{
  color:var(--noor-header-text)!important;
  border-color:var(--noor-border)!important;
  box-shadow:0 18px 58px var(--noor-shadow-color)!important;
}
body.noor-header-glass .noor-site-header .noor-header-inner,
body.noor-header-glass .noor-el-header-inner{
  background:var(--noor-header-bg)!important;
  backdrop-filter:blur(22px) saturate(1.15);
  -webkit-backdrop-filter:blur(22px) saturate(1.15);
}
body.noor-header-solid .noor-site-header .noor-header-inner,
body.noor-header-solid .noor-el-header-inner{
  background:var(--noor-header-solid)!important;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
body.noor-header-minimal .noor-site-header .noor-header-inner,
body.noor-header-minimal .noor-el-header-inner{
  background:transparent!important;
  border-color:transparent!important;
  box-shadow:none!important;
}
body.noor-header-minimal .noor-site-header.is-scrolled .noor-header-inner,
body.noor-header-minimal .noor-el-header.is-scrolled .noor-el-header-inner{
  background:var(--noor-header-bg)!important;
  border-color:var(--noor-border)!important;
  box-shadow:0 18px 58px var(--noor-shadow-color)!important;
  backdrop-filter:blur(20px);
}
body.noor-visual-preset .noor-wordmark,
body.noor-visual-preset .noor-brand,
body.noor-visual-preset .noor-brand a,
body.noor-visual-preset .noor-primary-nav a,
body.noor-visual-preset .noor-el-logo,
body.noor-visual-preset .noor-el-logo a,
body.noor-visual-preset .noor-el-logo strong,
body.noor-visual-preset .noor-el-nav a{
  color:var(--noor-header-text)!important;
}
body.noor-visual-preset .noor-primary-nav a:hover,
body.noor-visual-preset .noor-primary-nav .current-menu-item>a,
body.noor-visual-preset .noor-el-nav a:hover,
body.noor-visual-preset .noor-el-nav .current-menu-item>a{
  color:var(--noor-accent-2)!important;
  background:color-mix(in srgb,var(--noor-header-text) 9%,transparent)!important;
}
body.noor-visual-preset .noor-menu-toggle,
body.noor-visual-preset .noor-el-menu-toggle{color:var(--noor-header-text)!important}
body.noor-visual-preset .noor-menu-toggle span,
body.noor-visual-preset .noor-el-menu-toggle span{background:var(--noor-header-text)!important}
body.noor-visual-preset .noor-header-cta,
body.noor-visual-preset .noor-el-header-cta,
body.noor-visual-preset .noor-button,
body.noor-visual-preset .noor-el-button{
  background:linear-gradient(135deg,var(--noor-accent),var(--noor-accent-2))!important;
  color:var(--noor-on-accent)!important;
  box-shadow:0 12px 34px color-mix(in srgb,var(--noor-accent) 30%,transparent)!important;
}
body.noor-visual-preset .noor-header-cta i,
body.noor-visual-preset .noor-el-header-cta i,
body.noor-visual-preset .noor-button i,
body.noor-visual-preset .noor-el-button i{color:inherit!important}

/* Elementor Pro / arbitrary header documents inherit safe contrast. */
body.noor-visual-preset .elementor-location-header,
body.noor-visual-preset .noor-builder-header{
  color:var(--noor-header-text);
}
body.noor-visual-preset .elementor-location-header a,
body.noor-visual-preset .noor-builder-header a{
  color:inherit;
}

/* ---------- Hero and sections ---------- */
body.noor-visual-preset.home .noor-el-hero,
body.noor-visual-preset.home .noor-fallback-hero{
  background:var(--noor-hero-bg)!important;
  color:var(--noor-hero-text)!important;
}
body.noor-visual-preset.home .noor-el-hero h1,
body.noor-visual-preset.home .noor-fallback-copy h1,
body.noor-visual-preset.home .noor-fallback-copy h1 em{
  color:var(--noor-hero-text)!important;
}
body.noor-visual-preset.home .noor-el-hero-copy>p,
body.noor-visual-preset.home .noor-fallback-copy p,
body.noor-visual-preset.home .noor-el-scroll{
  color:var(--noor-hero-muted)!important;
}
body.noor-visual-preset.home .noor-el-hero:after,
body.noor-visual-preset.home .noor-fallback-hero:after{
  background-image:linear-gradient(color-mix(in srgb,var(--noor-hero-text) 5%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--noor-hero-text) 5%,transparent) 1px,transparent 1px)!important;
}
body.noor-visual-preset .noor-el-intro,
body.noor-visual-preset .noor-fallback-intro,
body.noor-visual-preset .noor-el-intro.layout-dark,
body.noor-visual-preset .noor-el-intro.layout-light,
body.noor-visual-preset .noor-el-intro.layout-split{
  background:var(--noor-intro-bg)!important;
  color:var(--noor-intro-text)!important;
}
body.noor-visual-preset .noor-el-intro h2,
body.noor-visual-preset .noor-fallback-intro h2{color:var(--noor-intro-text)!important}
body.noor-visual-preset .noor-el-intro-text,
body.noor-visual-preset .noor-fallback-intro p{color:color-mix(in srgb,var(--noor-intro-text) 72%,transparent)!important}
body.noor-visual-preset .noor-core-portfolio,
body.noor-visual-preset.home .noor-core-portfolio,
body.noor-visual-preset .noor-child-projects,
body.noor-visual-preset .noor-gallery-section{
  background:var(--noor-bg-alt)!important;
  color:var(--noor-text)!important;
}
body.noor-visual-preset .noor-project-hero{
  background:var(--noor-bg-alt)!important;
  color:var(--noor-text)!important;
}

/* ---------- Cards ---------- */
body.noor-visual-preset .noor-portfolio-card,
body.noor-visual-preset .noor-article-card,
body.noor-visual-preset .noor-el-contact-form,
body.noor-visual-preset .noor-project-meta div{
  color:var(--noor-text)!important;
  border-color:var(--noor-border)!important;
}
body.noor-cards-glass .noor-portfolio-card,
body.noor-cards-glass .noor-article-card,
body.noor-cards-glass .noor-el-contact-form{
  background:var(--noor-card-bg)!important;
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  box-shadow:0 22px 65px var(--noor-shadow-color)!important;
}
body.noor-cards-elevated .noor-portfolio-card,
body.noor-cards-elevated .noor-article-card,
body.noor-cards-elevated .noor-el-contact-form{
  background:var(--noor-card-solid)!important;
  box-shadow:0 28px 75px var(--noor-shadow-color)!important;
}
body.noor-cards-outline .noor-portfolio-card,
body.noor-cards-outline .noor-article-card,
body.noor-cards-outline .noor-el-contact-form{
  background:transparent!important;
  border:1px solid var(--noor-border)!important;
  box-shadow:none!important;
}
body.noor-visual-preset .noor-portfolio-card:hover,
body.noor-visual-preset .noor-article-card:hover{
  border-color:color-mix(in srgb,var(--noor-accent) 50%,transparent)!important;
  box-shadow:0 30px 85px var(--noor-shadow-color)!important;
}
body.noor-visual-preset .noor-card-media,
body.noor-visual-preset .noor-card-placeholder{
  background:linear-gradient(135deg,var(--noor-surface-2),var(--noor-bg-alt))!important;
}
body.noor-visual-preset .noor-filter-bar button{
  color:var(--noor-text)!important;
  background:var(--noor-card-bg)!important;
  border-color:var(--noor-border)!important;
}
body.noor-visual-preset .noor-filter-bar button:hover,
body.noor-visual-preset .noor-filter-bar button.is-active{
  color:var(--noor-on-accent)!important;
  background:linear-gradient(135deg,var(--noor-accent),var(--noor-accent-2))!important;
  border-color:transparent!important;
}

/* ---------- Forms ---------- */
body.noor-visual-preset .noor-el-contact{
  background:var(--noor-bg-alt)!important;
  color:var(--noor-text)!important;
}
body.noor-visual-preset input,
body.noor-visual-preset textarea,
body.noor-visual-preset select,
body.noor-visual-preset .noor-el-contact-form input,
body.noor-visual-preset .noor-el-contact-form textarea,
body.noor-visual-preset .noor-el-contact-form select{
  background:var(--noor-surface-2)!important;
  color:var(--noor-text)!important;
  border-color:var(--noor-border)!important;
}
body.noor-visual-preset input::placeholder,
body.noor-visual-preset textarea::placeholder{color:var(--noor-muted)!important;opacity:.78}
body.noor-visual-preset label,
body.noor-visual-preset .noor-el-contact-info dt{color:var(--noor-muted)}
body.noor-visual-preset .noor-el-contact-info dd{color:var(--noor-heading)}
body.noor-visual-preset input[type=submit],
body.noor-visual-preset button[type=submit],
body.noor-visual-preset .noor-el-contact-form button{
  background:linear-gradient(135deg,var(--noor-accent),var(--noor-accent-2))!important;
  color:var(--noor-on-accent)!important;
  border-color:transparent!important;
}

/* ---------- Footer and CTA ---------- */
body.noor-visual-preset .noor-site-footer,
body.noor-visual-preset .noor-el-footer,
body.noor-visual-preset .noor-el-cta{
  background:var(--noor-footer-bg)!important;
  color:var(--noor-footer-text)!important;
}
body.noor-visual-preset .noor-footer-lead h2,
body.noor-visual-preset .noor-el-footer-main h2,
body.noor-visual-preset .noor-el-cta h2,
body.noor-visual-preset .noor-site-footer h1,
body.noor-visual-preset .noor-site-footer h2,
body.noor-visual-preset .noor-site-footer h3{
  color:var(--noor-footer-text)!important;
}
body.noor-visual-preset .noor-footer-links a,
body.noor-visual-preset .noor-footer-meta,
body.noor-visual-preset .noor-el-footer-side,
body.noor-visual-preset .noor-site-footer p{
  color:var(--noor-footer-muted)!important;
}
body.noor-visual-preset .noor-footer-lead>a,
body.noor-visual-preset .noor-el-footer-main>a,
body.noor-visual-preset .noor-el-cta>a{
  color:var(--noor-footer-text)!important;
  border-color:color-mix(in srgb,var(--noor-footer-text) 30%,transparent)!important;
}

/* ---------- Mobile navigation ---------- */
@media(max-width:1024px){
  body.noor-visual-preset .noor-primary-nav,
  body.noor-visual-preset .noor-el-nav{
    background:var(--noor-mobile-menu)!important;
    color:var(--noor-header-text)!important;
    border:1px solid var(--noor-border)!important;
    box-shadow:0 24px 70px var(--noor-shadow-color)!important;
  }
  body.noor-visual-preset .noor-primary-nav a,
  body.noor-visual-preset .noor-el-nav a{color:var(--noor-header-text)!important}
}

/* Browser fallback for engines without color-mix. */
@supports not (color:color-mix(in srgb,white 50%,black)){
  body.noor-visual-preset .noor-primary-nav a:hover,
  body.noor-visual-preset .noor-el-nav a:hover{background:rgba(127,127,127,.12)!important}
  body.noor-visual-preset a:focus-visible,
  body.noor-visual-preset button:focus-visible{outline-color:var(--noor-accent)}
}
