/* ==========================================================================
   Nestora Home Decor — layout layer
   Arched hero, ivory sections, room bento, shop-the-look, story counters,
   gallery, a centred two-row header and arched page-hero photos.
   ========================================================================== */
:root{
  --nx-ink:#0d0906; --nx-ink-2:#1a120c; --nx-ivory:#f4ede3; --nx-linen:#ece2d4;
  --nx-brass:#d9a95b; --nx-brass-2:#b9853e; --nx-cream:#f8efe2; --nx-muted:#a8988a;
  --nx-text-dark:#2a1e15; --nx-text-dark-2:#6d5c4d;
  --nx-serif:'Playfair Display',Georgia,serif; --nx-sans:'Jost',Arial,sans-serif;
  --nx-arch:999px 999px 26px 26px;
}

/* ---------- Generic section pieces ---------- */
.elementor .nx-head{text-align:center}
.elementor .nx-kicker .elementor-heading-title{font-family:var(--nx-sans)!important;font-size:12px!important;letter-spacing:.32em!important;text-transform:uppercase!important;color:var(--nx-brass)!important;font-weight:600!important;font-style:normal!important;margin:0 0 12px!important}
.elementor .nx-kicker .elementor-heading-title:before,.elementor .nx-kicker .elementor-heading-title:after{content:"";display:inline-block;width:28px;height:1px;background:currentColor;vertical-align:middle;margin:0 12px;opacity:.7}
.elementor .nx-title .elementor-heading-title{font-family:var(--nx-serif)!important;font-weight:400!important;font-size:clamp(32px,4vw,52px)!important;line-height:1.08!important;color:var(--nx-cream)!important;margin:0 0 14px!important;letter-spacing:-.01em}
.elementor .nx-lead,.elementor .nx-lead p{font-family:var(--nx-sans)!important;font-size:16px!important;line-height:1.75!important;color:var(--nx-muted)!important;max-width:620px;margin:0 auto 34px!important}
.elementor .nx-light .nx-title .elementor-heading-title{color:var(--nx-text-dark)!important}
.elementor .nx-light .nx-lead,.elementor .nx-light .nx-lead p{color:var(--nx-text-dark-2)!important}
.elementor .nx-light .nx-kicker .elementor-heading-title{color:var(--nx-brass-2)!important}

.elementor .nx-btn{display:inline-block;width:auto!important;margin:0 12px 12px 0}
.elementor .nx-btn .elementor-button{font-family:var(--nx-sans)!important;font-size:12px!important;font-weight:600!important;letter-spacing:.18em!important;border-radius:999px!important;padding:17px 32px!important;transition:transform .3s,box-shadow .3s,background .3s,color .3s!important}
.elementor .nx-btn-primary .elementor-button{background:linear-gradient(135deg,#f0c98a,var(--nx-brass) 55%,var(--nx-brass-2))!important;color:#1b1009!important;box-shadow:0 14px 34px rgba(217,169,91,.28)!important}
.elementor .nx-btn-primary .elementor-button:hover{transform:translateY(-2px);box-shadow:0 20px 44px rgba(217,169,91,.42)!important}
.elementor .nx-btn-ghost .elementor-button{background:transparent!important;color:var(--nx-cream)!important;border:1px solid rgba(248,239,226,.35)!important}
.elementor .nx-btn-ghost .elementor-button:hover{border-color:var(--nx-brass)!important;color:var(--nx-brass)!important}

/* ---------- 1. Hero ---------- */
.elementor-section.nx-hero{position:relative;overflow:hidden;background:radial-gradient(120% 90% at 85% 10%,#2b1a0d 0%,#0d0906 55%)!important}
.elementor-section.nx-hero>.elementor-container{display:flex;align-items:center;min-height:min(780px,88vh);padding:60px 48px 70px;gap:40px}
.elementor .nx-hero-copy{width:50%!important;max-width:50%!important;flex:0 0 50%}
.elementor .nx-hero-art{width:50%!important;max-width:50%!important;flex:0 0 50%}
.elementor .nx-hero-title .elementor-heading-title{font-family:var(--nx-serif)!important;font-weight:400!important;font-size:clamp(46px,6.2vw,92px)!important;line-height:.98!important;color:var(--nx-cream)!important;letter-spacing:-.02em;margin:0!important}
.elementor .nx-hero-script .elementor-heading-title{font-family:var(--nx-serif)!important;font-style:italic!important;font-weight:400!important;font-size:clamp(50px,6.8vw,100px)!important;line-height:1.02!important;color:var(--nx-brass)!important;margin:0 0 24px!important;padding-bottom:.08em}
.elementor .nx-hero-desc,.elementor .nx-hero-desc p{font-family:var(--nx-sans)!important;font-size:17px!important;line-height:1.75!important;color:#cdbfae!important;max-width:470px;margin:0 0 34px!important}
.elementor .nx-proof{display:flex;align-items:center;gap:16px;margin-top:22px;font-family:var(--nx-sans);color:var(--nx-cream)}
.elementor .nx-proof-faces{display:flex}
.elementor .nx-proof-faces i{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-weight:600;font-size:14px;color:#1b1009;background:linear-gradient(135deg,#f6dcae,var(--nx-brass));border:2px solid var(--nx-ink);margin-left:-10px}
.elementor .nx-proof-faces i:first-child{margin-left:0}
.elementor .nx-proof-faces i:last-child{background:#2a1d13;color:var(--nx-brass)}
.elementor .nx-proof b{display:block;font-size:15px;color:var(--nx-brass);letter-spacing:.04em}
.elementor .nx-proof small{display:block;font-size:13px;color:var(--nx-muted)}

.elementor .nx-hero-art>.elementor-widget-wrap{position:relative;min-height:600px}
.elementor .nx-hero-arch{width:78%!important;margin-left:auto!important;position:relative}
.elementor .nx-hero-arch img{width:100%!important;height:600px!important;object-fit:cover;border-radius:var(--nx-arch)!important;box-shadow:0 40px 90px rgba(0,0,0,.55),0 0 0 1px rgba(217,169,91,.25)}
.elementor .nx-hero-arch:after{content:"";position:absolute;inset:-14px -14px 22px 14px;border:1px solid rgba(217,169,91,.4);border-radius:var(--nx-arch);pointer-events:none;z-index:-1}
.elementor .nx-hero-circle{position:absolute!important;left:0;bottom:40px;width:210px!important;z-index:2}
.elementor .nx-hero-circle img{width:210px!important;height:210px!important;object-fit:cover;border-radius:50%!important;border:6px solid var(--nx-ink);box-shadow:0 24px 60px rgba(0,0,0,.5)}
.elementor .nx-hero-badge-widget{position:absolute!important;right:-8px;top:64px;z-index:2;width:auto!important}
.nx-hero-badge{background:rgba(20,13,8,.78);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(217,169,91,.35);border-radius:18px;padding:16px 22px;font-family:var(--nx-sans);color:var(--nx-cream);box-shadow:0 20px 50px rgba(0,0,0,.45);animation:nxFloat 6s ease-in-out infinite}
.nx-hero-badge small{display:block;font-size:10px;letter-spacing:.28em;color:var(--nx-brass)}
.nx-hero-badge b{display:block;font-family:var(--nx-serif);font-weight:400;font-size:22px;margin:3px 0}
.nx-hero-badge span{font-size:13px;color:var(--nx-muted)}
@keyframes nxFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}

/* ---------- 2. Marquee ---------- */
.elementor-section.nx-marquee-section{background:linear-gradient(90deg,var(--nx-brass-2),var(--nx-brass),#e9c37f,var(--nx-brass))!important}
.elementor-section.nx-marquee-section>.elementor-container{max-width:none!important}
.nx-marquee{overflow:hidden;padding:17px 0;white-space:nowrap}
.nx-marquee-track{display:inline-flex;align-items:center;gap:28px;animation:nxMarquee 38s linear infinite;font-family:var(--nx-serif);font-size:22px;font-style:italic;color:#1b1009}
.nx-marquee-track i{font-style:normal;font-size:14px;opacity:.7}
@keyframes nxMarquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- 3. Room bento ---------- */
.elementor-section.nx-rooms>.elementor-container{display:grid!important;grid-template-columns:1.25fr 1fr 1fr;grid-template-rows:280px 280px;gap:22px}
.elementor .nx-room{width:auto!important;max-width:none!important;position:relative;border-radius:26px;overflow:hidden;background:#d9cbb8}
.elementor .nx-room-1{grid-row:span 2;border-radius:var(--nx-arch)}
.elementor .nx-room>.elementor-widget-wrap{position:relative;height:100%;padding:0!important}
.elementor .nx-room-img{position:absolute!important;inset:0;margin:0!important}
.elementor .nx-room-img .elementor-widget-container,.elementor .nx-room-img a{display:block;height:100%}
.elementor .nx-room-img img{width:100%!important;height:100%!important;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.elementor .nx-room:hover .nx-room-img img{transform:scale(1.07)}
.elementor .nx-room>.elementor-widget-wrap:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,9,6,0) 40%,rgba(13,9,6,.82));pointer-events:none}
.elementor .nx-room-title,.elementor .nx-room-meta,.elementor .nx-room-link{position:absolute!important;left:26px;right:26px;z-index:2;margin:0!important}
.elementor .nx-room-title{bottom:62px}.elementor .nx-room-meta{bottom:40px}.elementor .nx-room-link{bottom:12px;width:auto!important}
.elementor .nx-room-1 .nx-room-title{bottom:78px}.elementor .nx-room-1 .nx-room-meta{bottom:54px}.elementor .nx-room-1 .nx-room-link{bottom:22px}
.elementor .nx-room-title .elementor-heading-title{font-family:var(--nx-serif)!important;font-weight:400!important;font-size:26px!important;color:#fff8ee!important;line-height:1.1!important}
.elementor .nx-room-1 .nx-room-title .elementor-heading-title{font-size:38px!important}
.elementor .nx-room-meta .elementor-heading-title{font-family:var(--nx-sans)!important;font-size:13px!important;color:#e8d8c3!important;font-weight:400!important}
.elementor .nx-room-link .elementor-button{background:none!important;padding:0!important;font-family:var(--nx-sans)!important;font-size:12px!important;letter-spacing:.16em;color:var(--nx-brass)!important;text-transform:uppercase;font-weight:600!important;opacity:0;transform:translateY(8px);transition:.35s}
.elementor .nx-room:hover .nx-room-link .elementor-button{opacity:1;transform:none}

/* ---------- 4. Shop the look ---------- */
.elementor-section.nx-look{background:radial-gradient(90% 70% at 15% 0%,#2a190c,#120c08 60%)!important}
.nx-look-wrap{display:grid;grid-template-columns:1.6fr 1fr;gap:30px;text-align:left;margin-top:8px}
.nx-look-photo{position:relative;border-radius:28px;overflow:hidden;box-shadow:0 40px 90px rgba(0,0,0,.5)}
.nx-look-photo img{display:block;width:100%;height:100%;min-height:440px;object-fit:cover}
.nx-pin{position:absolute;transform:translate(-50%,-50%);width:38px;height:38px;border-radius:50%;border:0;padding:0;cursor:pointer;background:rgba(248,239,226,.92);color:#1b1009;font:600 13px var(--nx-sans);box-shadow:0 0 0 0 rgba(248,239,226,.6);animation:nxPulse 2.4s infinite;transition:background .3s,transform .3s}
.nx-pin span{display:block;line-height:38px}
.nx-pin.is-active,.nx-pin:hover{background:var(--nx-brass);transform:translate(-50%,-50%) scale(1.15)}
@keyframes nxPulse{0%{box-shadow:0 0 0 0 rgba(248,239,226,.55)}70%{box-shadow:0 0 0 16px rgba(248,239,226,0)}100%{box-shadow:0 0 0 0 rgba(248,239,226,0)}}
.nx-look-panel{background:rgba(255,248,238,.04);border:1px solid rgba(217,169,91,.22);border-radius:28px;padding:28px;display:flex;flex-direction:column}
.nx-look-panel h3{font-family:var(--nx-serif);font-weight:400;font-size:28px;color:var(--nx-cream);margin:0 0 16px}
.nx-look-panel ul{list-style:none;margin:0;padding:0;display:grid;gap:12px;flex:1}
.nx-look-item{display:grid;grid-template-columns:26px 64px 1fr;grid-template-areas:"num thumb info" "num thumb btn";align-items:center;column-gap:14px;row-gap:8px;padding:12px;border-radius:18px;border:1px solid transparent;transition:background .3s,border-color .3s}
.nx-look-item.is-active{background:rgba(217,169,91,.1);border-color:rgba(217,169,91,.4)}
.nx-look-num{grid-area:num;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font:600 12px var(--nx-sans);color:#1b1009;background:var(--nx-cream)}
.nx-look-item.is-active .nx-look-num{background:var(--nx-brass)}
.nx-look-thumb{grid-area:thumb}.nx-look-thumb img{width:64px;height:64px;border-radius:14px;object-fit:cover;display:block}
.nx-look-info{grid-area:info;font-family:var(--nx-sans)}
.nx-look-info a{display:block;color:var(--nx-cream);text-decoration:none;font-size:15px;font-weight:500}
.nx-look-price{font-size:14px;color:var(--nx-brass)}.nx-look-price del{color:var(--nx-muted);margin-right:6px;font-size:12px}.nx-look-price ins{text-decoration:none}
.nx-look-item .nestora-add-to-cart{grid-area:btn;justify-self:start;display:inline-flex!important;align-items:center;gap:6px;width:auto!important;min-height:0!important;padding:8px 14px!important;font-size:11px!important;letter-spacing:.08em;border-radius:999px!important}
.nx-look-item .nestora-add-to-cart svg{width:14px;height:14px}
.nx-look-all{margin-top:16px;font:600 12px var(--nx-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--nx-brass);text-decoration:none}

/* ---------- 5. Best sellers on ivory ---------- */
.elementor .nx-view-all,.elementor .nx-view-all p{text-align:center;margin:-14px 0 30px!important}
.elementor .nx-view-all a{font:600 12px var(--nx-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--nx-brass-2)!important;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:3px}
.elementor .nx-products .nestora-product-card{border-radius:24px!important;box-shadow:0 26px 60px rgba(60,38,20,.18)!important}
.elementor .nx-products .nestora-product-grid{gap:24px!important;text-align:left}

/* ---------- 6. Story ---------- */
.elementor-section.nx-story>.elementor-container{display:flex;align-items:center;gap:70px}
.elementor .nx-story-art{width:48%!important;max-width:48%!important}.elementor .nx-story-copy{width:52%!important;max-width:52%!important}
.elementor .nx-story-art>.elementor-widget-wrap{position:relative;padding-bottom:60px!important}
.elementor .nx-story-arch img{width:82%!important;height:560px!important;object-fit:cover;border-radius:var(--nx-arch)!important;display:block;box-shadow:0 40px 80px rgba(0,0,0,.5)}
.elementor .nx-story-small{position:absolute!important;right:0;bottom:0;width:44%!important}
.elementor .nx-story-small img{width:100%!important;height:260px!important;object-fit:cover;border-radius:24px!important;border:6px solid var(--nx-ink);box-shadow:0 30px 60px rgba(0,0,0,.5)}
.elementor .nx-story-copy .nx-kicker .elementor-heading-title{text-align:left}
.elementor .nx-story-copy .nx-kicker .elementor-heading-title:before{display:none}
.elementor .nx-story-copy .nx-title .elementor-heading-title,.elementor .nx-story-copy .nx-lead,.elementor .nx-story-copy .nx-lead p{text-align:left!important;margin-left:0!important}
.nx-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:6px 0 34px;padding:26px 0;border-top:1px solid rgba(217,169,91,.25);border-bottom:1px solid rgba(217,169,91,.25)}
.nx-stats b{display:block;font-family:var(--nx-serif);font-weight:400;font-size:44px;color:var(--nx-brass);line-height:1}
.nx-stats span{display:block;margin-top:8px;font:500 13px var(--nx-sans);color:var(--nx-muted);letter-spacing:.04em}

/* ---------- 7. Reviews on linen ---------- */
.elementor .nx-reviews .nestora-testimonial-grid,.elementor .nx-reviews [class*="testimonial"]{text-align:left}
.elementor .nx-reviews .nestora-testimonial-card,.elementor .nx-reviews .nestora-el-testimonial-card{background:#fffaf3!important;border:1px solid rgba(185,133,62,.25)!important;border-radius:26px!important;box-shadow:0 24px 50px rgba(60,38,20,.12)!important;color:var(--nx-text-dark)!important}
.elementor .nx-reviews .nestora-testimonial-card *,.elementor .nx-reviews .nestora-el-testimonial-card *{color:var(--nx-text-dark)!important}
.elementor .nx-reviews .nestora-testimonial-card blockquote,.elementor .nx-reviews .nestora-testimonial-card p{font-family:var(--nx-serif)!important;font-style:italic;font-size:19px!important;line-height:1.6!important;color:var(--nx-text-dark)!important}
.elementor .nx-reviews [class*="stars"],.elementor .nx-reviews [class*="rating"]{color:var(--nx-brass-2)!important}

/* ---------- 8. Gallery ---------- */
.elementor-section.nx-gallery>.elementor-container{display:grid!important;grid-template-columns:repeat(6,1fr);gap:14px;max-width:1320px}
.elementor .nx-gallery-tile{width:auto!important;max-width:none!important;border-radius:20px;overflow:hidden}
.elementor .nx-gallery-tile:nth-child(even){margin-top:36px}
.elementor .nx-gallery-img img{width:100%!important;aspect-ratio:3/4;height:auto!important;object-fit:cover;border-radius:20px;transition:transform .7s,filter .5s;filter:saturate(.92)}
.elementor .nx-gallery-tile:hover img{transform:scale(1.06);filter:saturate(1.1)}

/* ---------- Header: centred logo, menu on its own row ---------- */
@media (min-width:1101px){
  .nestora-header{height:auto!important}
  .nestora-header-inner{height:auto!important;display:grid!important;grid-template-columns:1fr auto 1fr;grid-template-areas:"lead logo actions" "nav nav nav";align-items:center;row-gap:6px;padding-top:14px!important;padding-bottom:0!important}
  .nestora-header .nestora-logo{grid-area:logo;justify-self:center}
  .nestora-header .nestora-logo img{max-height:62px!important;width:auto!important}
  .nestora-header .nestora-header-actions{grid-area:actions;justify-self:end}
  .nestora-header .nestora-mobile-toggle{display:none!important}
  .nestora-header .nestora-nav{grid-area:nav;justify-self:stretch;border-top:1px solid rgba(217,169,91,.18);margin-top:6px}
  .nestora-header .nestora-menu{justify-content:center!important;gap:38px!important;padding:14px 0!important}
  .nestora-header .nestora-menu>li>a{font-family:var(--nx-sans)!important;font-size:12px!important;letter-spacing:.2em!important;text-transform:uppercase;font-weight:500!important}
  .nestora-header-inner:before{content:"Est. 2026  ·  Curated Home Decor";grid-area:lead;justify-self:start;font:500 11px var(--nx-sans);letter-spacing:.24em;text-transform:uppercase;color:var(--nx-muted)}
}
.nestora-topbar{background:linear-gradient(90deg,#1a110a,#2a1a0d,#1a110a)!important}

/* ---------- Inner pages: arched hero photos ---------- */
.elementor .nestora-el-page-hero-image img,.nestora-inner-hero-image img,.nestora-cat-hero-image img{border-radius:var(--nx-arch)!important}

/* ---------- Responsive ---------- */
@media (max-width:1024px){
  .elementor-section.nx-hero>.elementor-container{padding:40px 28px 56px}
  .elementor .nx-hero-arch img{height:500px!important}
  .elementor-section.nx-rooms>.elementor-container{grid-template-columns:1fr 1fr;grid-template-rows:repeat(3,240px)}
  .elementor .nx-room-1{grid-row:span 1;grid-column:span 2;border-radius:26px}
  .nx-look-wrap{grid-template-columns:1fr}
  .elementor-section.nx-gallery>.elementor-container{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:767px){
  .elementor-section.nx-hero>.elementor-container{flex-direction:column;min-height:0;padding:36px 18px 48px;gap:26px}
  .elementor .nx-hero-copy,.elementor .nx-hero-art,.elementor .nx-story-art,.elementor .nx-story-copy{width:100%!important;max-width:100%!important;flex:0 0 100%}
  .elementor .nx-hero-copy{text-align:left}
  .elementor .nx-btn{margin-right:8px}
  .elementor .nx-btn .elementor-button{padding:15px 22px!important;font-size:11px!important}
  .elementor .nx-hero-art>.elementor-widget-wrap{min-height:0}
  .elementor .nx-hero-arch{width:88%!important}
  .elementor .nx-hero-arch img{height:420px!important}
  .elementor .nx-hero-circle{width:130px!important;bottom:-10px}
  .elementor .nx-hero-circle img{width:130px!important;height:130px!important}
  .elementor .nx-hero-badge-widget{right:0;top:24px}
  .nx-hero-badge{padding:12px 16px}.nx-hero-badge b{font-size:18px}
  .nx-marquee-track{font-size:18px}
  .elementor-section.nx-rooms>.elementor-container{grid-template-columns:1fr;grid-template-rows:none;grid-auto-rows:220px;gap:14px}
  .elementor .nx-room-1{grid-column:auto;grid-row:span 1;border-radius:26px}
  .elementor .nx-room-1 .nx-room-title .elementor-heading-title{font-size:28px!important}
  .elementor .nx-room-link .elementor-button{opacity:1;transform:none}
  .nx-look-photo img{min-height:300px}
  .nx-look-panel{padding:20px}
  .elementor-section.nx-story>.elementor-container{flex-direction:column;gap:40px}
  .elementor .nx-story-arch img{height:420px!important;width:86%!important}
  .elementor .nx-story-small img{height:190px!important}
  .nx-stats b{font-size:34px}
  .elementor-section.nx-gallery>.elementor-container{grid-template-columns:repeat(2,1fr)}
  .elementor .nx-gallery-tile:nth-child(even){margin-top:24px}
}
@media (prefers-reduced-motion:reduce){.nx-marquee-track,.nx-hero-badge,.nx-pin{animation:none}}

/* Fixes: contain the marquee; photo fills its frame so hotspots stay on the picture. */
.elementor-section.nx-marquee-section{overflow:hidden;max-width:100vw}
.nx-marquee{max-width:100vw}
.nx-look-photo{min-height:520px}
.nx-look-photo img{position:absolute;inset:0;width:100%;height:100%!important;min-height:0}
@media (max-width:767px){.nx-look-photo{min-height:0;aspect-ratio:4/3}}
