/* NOVÉLIA DESIGN SYSTEM™ 2.1 — Elementor Pro + Slider Revolution foundation */
:root{
  --novelia-cream:#f8f1e6;
  --novelia-ivory:#fffaf1;
  --novelia-soft:#fbf5ea;
  --novelia-beige:#eadbc2;
  --novelia-gold:#c99a3e;
  --novelia-gold-soft:#e8cf8a;
  --novelia-gold-dark:#9c7224;
  --novelia-black:#070604;
  --novelia-charcoal:#1d1711;
  --novelia-text:#201b16;
  --novelia-muted:#75685c;
  --novelia-blue:#28a8ff;
  --novelia-radius-sm:14px;
  --novelia-radius:24px;
  --novelia-radius-lg:36px;
  --novelia-shadow:0 24px 70px rgba(28,20,10,.12);
  --novelia-shadow-hover:0 34px 90px rgba(28,20,10,.20);
  --novelia-font-title:'Cormorant Garamond', Georgia, serif;
  --novelia-font-body:'Manrope', Arial, sans-serif;
  --novelia-container:1180px;
}

/* Global base */
html.novelia-js{ scroll-behavior:smooth; }
body.novelia-ds{ background:var(--novelia-ivory); color:var(--novelia-text); }
body.novelia-ds, body.novelia-ds p, body.novelia-ds a, body.novelia-ds li, body.novelia-ds input, body.novelia-ds textarea, body.novelia-ds button{ font-family:var(--novelia-font-body); }
.novelia-ds h1,.novelia-ds h2,.novelia-ds h3,.novelia-ds h4,.novelia-heading,.elementor-heading-title{ font-family:var(--novelia-font-title); color:var(--novelia-black); letter-spacing:-.025em; }
.novelia-ds h1, .novelia-title-xl .elementor-heading-title{ font-size:clamp(54px,7.4vw,118px); line-height:.88; font-weight:600; text-transform:none; }
.novelia-ds h2, .novelia-title-lg .elementor-heading-title{ font-size:clamp(40px,5vw,82px); line-height:.95; font-weight:600; text-transform:none; }
.novelia-ds h3, .novelia-title-md .elementor-heading-title{ font-size:clamp(28px,3vw,44px); line-height:1; font-weight:600; text-transform:none; }
.novelia-ds p{ font-size:15px; line-height:1.75; color:var(--novelia-muted); }

/* Force clean layout when using Novélia templates */
body.page-template-novelia-elementor-canvas,
body.page-template-novelia-elementor-full-width{ background:var(--novelia-ivory); }
body.page-template-novelia-elementor-canvas .page_content_wrap,
body.page-template-novelia-elementor-full-width .page_content_wrap{ padding:0!important; margin:0!important; }
body.page-template-novelia-elementor-full-width .content_wrap,
body.page-template-novelia-elementor-full-width .content,
body.page-template-novelia-elementor-canvas .content_wrap,
body.page-template-novelia-elementor-canvas .content{ width:100%!important; max-width:none!important; padding:0!important; margin:0!important; }
body.page-template-novelia-elementor-full-width aside,
body.page-template-novelia-elementor-full-width .sidebar,
body.page-template-novelia-elementor-full-width .sidebar_inner,
body.page-template-novelia-elementor-canvas aside,
body.page-template-novelia-elementor-canvas .sidebar,
body.page-template-novelia-elementor-canvas .sidebar_inner{ display:none!important; }
.novelia-main--canvas, .novelia-main--fullwidth{ width:100%; overflow:hidden; }

/* Elementor utility classes */
.novelia-container{ width:min(var(--novelia-container), calc(100% - 48px)); margin-inline:auto; }
.novelia-section{ padding:96px 0; background:radial-gradient(circle at 15% 0%,rgba(201,154,62,.11),transparent 34%),var(--novelia-ivory); }
.novelia-section-soft{ background:var(--novelia-soft)!important; }
.novelia-section-dark{ background:radial-gradient(circle at 84% 8%,rgba(201,154,62,.20),transparent 28%),linear-gradient(135deg,#050403,#1d1711)!important; color:#fff; }
.novelia-section-dark h1,.novelia-section-dark h2,.novelia-section-dark h3,.novelia-section-dark .elementor-heading-title{ color:#fffaf1!important; }
.novelia-section-dark p{ color:rgba(255,250,241,.75)!important; }
.novelia-kicker, .novelia-kicker .elementor-heading-title{ display:inline-flex; align-items:center; gap:12px; color:var(--novelia-gold)!important; text-transform:uppercase; letter-spacing:.24em!important; font:800 11px/1 var(--novelia-font-body)!important; margin-bottom:18px; }
.novelia-kicker:after{ content:""; display:inline-block; width:38px; height:1px; background:linear-gradient(90deg,var(--novelia-gold),transparent); }
.novelia-gold-word{ color:var(--novelia-gold)!important; font-style:italic; }

/* Header for Elementor Theme Builder */
.novelia-header{ min-height:88px; padding:14px clamp(20px,4vw,64px); display:flex; align-items:center; justify-content:space-between; gap:32px; background:rgba(255,250,241,.92); backdrop-filter:blur(18px); border-bottom:1px solid rgba(201,154,62,.22); }
.novelia-header.is-sticky, .elementor-sticky--effects.novelia-header{ box-shadow:0 16px 48px rgba(28,20,10,.08); background:rgba(255,250,241,.96); }
.novelia-logo-img{ display:block; width:auto; max-width:100%; height:auto; object-fit:contain; filter:drop-shadow(0 8px 18px rgba(201,154,62,.12)); }
.novelia-header-logo img, .novelia-header .novelia-logo-img{ max-height:70px; width:auto; }
.novelia-header .elementor-nav-menu--main .elementor-item,
.novelia-menu a{ position:relative; display:inline-flex; align-items:center; min-height:36px; padding:8px 10px!important; color:var(--novelia-black)!important; font-family:var(--novelia-font-body)!important; font-size:11.5px!important; font-weight:700!important; letter-spacing:.17em!important; text-transform:uppercase; text-decoration:none!important; transition:color .28s ease, transform .28s ease; }
.novelia-header .elementor-nav-menu--main .elementor-item:before,
.novelia-menu a:before{ content:""; position:absolute; inset:0; border:1px solid rgba(201,154,62,0); border-radius:2px; transform:scale(.92); opacity:0; transition:.32s ease; }
.novelia-header .elementor-nav-menu--main .elementor-item:after,
.novelia-menu a:after{ content:""; position:absolute; left:50%; right:50%; bottom:4px; height:1px; background:var(--novelia-gold); opacity:0; transition:.32s ease; }
.novelia-header .elementor-nav-menu--main .elementor-item:hover,
.novelia-header .elementor-nav-menu--main .elementor-item.elementor-item-active,
.novelia-menu a:hover,
.novelia-menu .current-menu-item>a{ color:var(--novelia-gold)!important; transform:translateY(-1px); }
.novelia-header .elementor-nav-menu--main .elementor-item:hover:before,
.novelia-header .elementor-nav-menu--main .elementor-item.elementor-item-active:before,
.novelia-menu a:hover:before,
.novelia-menu .current-menu-item>a:before{ border-color:rgba(201,154,62,.34); transform:scale(1); opacity:1; }
.novelia-header .elementor-nav-menu--main .elementor-item:hover:after,
.novelia-header .elementor-nav-menu--main .elementor-item.elementor-item-active:after,
.novelia-menu a:hover:after,
.novelia-menu .current-menu-item>a:after{ left:14px; right:14px; opacity:1; }

/* Buttons */
.novelia-btn, .elementor-widget-button.novelia-btn .elementor-button, .novelia-ds a.elementor-button{ --mx:50%; --my:50%; position:relative; overflow:hidden; display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:44px; padding:0 24px!important; border-radius:999px!important; border:1px solid rgba(201,154,62,.48)!important; text-transform:uppercase; letter-spacing:.15em!important; font-family:var(--novelia-font-body)!important; font-size:11px!important; font-weight:800!important; text-decoration:none!important; transition:transform .28s ease, box-shadow .28s ease, background .28s ease, color .28s ease, border-color .28s ease; }
.novelia-btn:before, .elementor-widget-button.novelia-btn .elementor-button:before, .novelia-ds a.elementor-button:before{ content:""; position:absolute; inset:-40% auto -40% -60%; width:42%; transform:skewX(-22deg); background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent); transition:left .7s ease; }
.novelia-btn:hover:before, .elementor-widget-button.novelia-btn .elementor-button:hover:before, .novelia-ds a.elementor-button:hover:before{ left:120%; }
.novelia-btn:hover, .elementor-widget-button.novelia-btn .elementor-button:hover, .novelia-ds a.elementor-button:hover{ transform:translateY(-2px); box-shadow:0 14px 34px rgba(201,154,62,.24); }
.novelia-btn-dark .elementor-button, .novelia-btn--dark, .novelia-ds a.elementor-button{ background:var(--novelia-black)!important; color:#fff!important; }
.novelia-btn-gold .elementor-button, .novelia-btn--gold{ background:linear-gradient(135deg,var(--novelia-gold),var(--novelia-gold-soft))!important; color:var(--novelia-black)!important; }
.novelia-btn-outline .elementor-button, .novelia-btn--outline{ background:transparent!important; color:var(--novelia-black)!important; }
.novelia-header-cta .elementor-button{ min-width:128px; }

/* Cards */
.novelia-card, .novelia-service-card, .novelia-product-card{ position:relative; background:rgba(255,250,241,.82); border:1px solid rgba(201,154,62,.24); border-radius:var(--novelia-radius); box-shadow:var(--novelia-shadow); transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease; overflow:hidden; }
.novelia-card:hover, .novelia-service-card:hover, .novelia-product-card:hover{ transform:translateY(-7px); border-color:rgba(201,154,62,.55); box-shadow:var(--novelia-shadow-hover); }
.novelia-service-card .elementor-widget-image, .novelia-card-image{ overflow:hidden; border-radius:var(--novelia-radius) var(--novelia-radius) 0 0; }
.novelia-service-card img, .novelia-card-image img{ transition:transform .65s ease, filter .65s ease; }
.novelia-service-card:hover img, .novelia-card-image:hover img{ transform:scale(1.045); filter:saturate(1.08) contrast(1.03); }
.novelia-card-icon{ width:52px; height:52px; display:grid; place-items:center; border-radius:18px; background:rgba(201,154,62,.10); border:1px solid rgba(201,154,62,.22); transition:transform .35s ease, box-shadow .35s ease; }
.novelia-service-card:hover .novelia-card-icon, .novelia-card:hover .novelia-card-icon{ transform:scale(1.08) rotate(-2deg); box-shadow:0 10px 28px rgba(201,154,62,.18); }
.novelia-glass{ background:rgba(255,250,241,.64)!important; backdrop-filter:blur(18px); border:1px solid rgba(201,154,62,.28)!important; box-shadow:var(--novelia-shadow); }
.novelia-frame{ border:1px solid rgba(201,154,62,.32)!important; border-radius:var(--novelia-radius)!important; overflow:hidden; }
.novelia-hover-lift{ transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease; }
.novelia-hover-lift:hover{ transform:translateY(-7px); box-shadow:var(--novelia-shadow-hover); }

/* Slider Revolution wrapper */
.novelia-slider-wrap{ position:relative; overflow:hidden; background:var(--novelia-ivory); }
.novelia-slider-wrap:after{ content:""; pointer-events:none; position:absolute; inset:auto 0 0; height:1px; background:linear-gradient(90deg,transparent,var(--novelia-gold),transparent); opacity:.55; }

/* Forms */
.novelia-ds input[type="text"],.novelia-ds input[type="email"],.novelia-ds input[type="tel"],.novelia-ds input[type="search"],.novelia-ds textarea,.novelia-ds select{ border:1px solid rgba(201,154,62,.25)!important; border-radius:999px!important; background:rgba(255,250,241,.88)!important; min-height:48px; padding:12px 18px!important; font-family:var(--novelia-font-body)!important; box-shadow:none!important; color:var(--novelia-text)!important; }
.novelia-ds textarea{ border-radius:24px!important; }
.novelia-ds input:focus,.novelia-ds textarea:focus{ border-color:rgba(201,154,62,.72)!important; box-shadow:0 0 0 4px rgba(201,154,62,.10)!important; outline:0!important; }

/* Footer for Elementor Theme Builder */
.novelia-footer{ background:var(--novelia-black); color:#fff; border-top:1px solid rgba(201,154,62,.22); }
.novelia-footer .elementor-heading-title{ color:#fffaf1!important; }
.novelia-footer p{ color:rgba(255,250,241,.76)!important; }
.novelia-footer a{ color:#fff; text-decoration:none; transition:color .25s ease; }
.novelia-footer a:hover{ color:var(--novelia-gold-soft); }
.novelia-footer-logo img{ max-height:190px; width:auto; }

/* Reveal animations */
.novelia-js .novelia-will-reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
.novelia-js .novelia-will-reveal.novelia-in-view{ opacity:1; transform:none; }

@media (max-width:1024px){
  .novelia-header{ min-height:76px; padding:12px 22px; }
  .novelia-header-logo img, .novelia-header .novelia-logo-img{ max-height:56px; }
  .novelia-section{ padding:74px 0; }
}
@media (max-width:640px){
  .novelia-ds h1, .novelia-title-xl .elementor-heading-title{ font-size:clamp(46px,14vw,72px); }
  .novelia-ds h2, .novelia-title-lg .elementor-heading-title{ font-size:clamp(36px,11vw,56px); }
  .novelia-section{ padding:58px 0; }
  .novelia-btn, .elementor-widget-button.novelia-btn .elementor-button, .novelia-ds a.elementor-button{ min-height:42px; padding:0 18px!important; font-size:10px!important; letter-spacing:.12em!important; }
}
