/* Ainzay Creation — design tokens. Change these once to re-theme the whole site. */

/* ---------------------------------------------------------------
 * Reset & isolation
 * The original static page had its own global reset. Inside WordPress
 * the active theme supplies its own defaults for headings, lists, and
 * box-sizing, which can silently shift spacing (especially at mobile
 * widths, where themes often add their own responsive overrides). This
 * block re-establishes the same baseline the static page had, scoped to
 * our own elements only so it can't affect the rest of the theme.
 * --------------------------------------------------------------- */
[class^="nxs-"], [class*=" nxs-"],
[class^="nxs-"] *, [class*=" nxs-"] * {
  box-sizing: border-box;
}
:where(.nxs-header, .nxs-hero, .nxs-collections, .nxs-story, .nxs-signature,
.nxs-footer, .nxs-timeline, .nxs-before-after, .nxs-gallery-section,
.nxs-test-section, .nxs-insta-section, .nxs-contact-section,
.nxs-values-section, .nxs-quote-section, .nxs-prod-grid) {
  margin: 0;
}
:where(.nxs-header ul, .nxs-nav ul, .nxs-foot-links ul, .nxs-col-grid,
.nxs-gal-grid, .nxs-insta-grid, .nxs-test-grid, .nxs-values-grid,
.nxs-tl-grid, .nxs-sig-features, .nxs-contact-form) {
  margin: 0;
  padding: 0;
  list-style: none;
}
:where([class^="nxs-"] h1, [class^="nxs-"] h2, [class^="nxs-"] h3, [class^="nxs-"] h4,
[class^="nxs-"] p) {
  margin: 0;
  padding: 0;
}
[class^="nxs-"] img { max-width: 100%; display: block; }

/* Prevent the full-bleed trick below from ever introducing a horizontal
   scrollbar on narrow screens. */
body { overflow-x: hidden; }

/* ---------------------------------------------------------------
 * Full-bleed escape from Elementor's column container.
 * These widgets are designed to span the full viewport width
 * (fixed header, 100vh hero, edge-to-edge grids). By default
 * Elementor renders every widget inside a column with a max-width
 * and side padding, which visually compresses all of these sections
 * and is the most common cause of "this looks nothing like the
 * static HTML" and cramped/broken mobile layouts. This rule breaks
 * the relevant widgets out of that container automatically, so no
 * manual "Content Width: Full Width" + "no column padding" setup is
 * required on every page.
 * --------------------------------------------------------------- */
.elementor-widget-nxs_header,
.elementor-widget-nxs_hero,
.elementor-widget-nxs_collections_grid,
.elementor-widget-nxs_before_after,
.elementor-widget-nxs_signature_product,
.elementor-widget-nxs_timeline,
.elementor-widget-nxs_gallery_grid,
.elementor-widget-nxs_testimonials,
.elementor-widget-nxs_instagram,
.elementor-widget-nxs_contact_form,
.elementor-widget-nxs_footer,
.elementor-widget-nxs_values,
.elementor-widget-nxs_quote {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
}
.elementor-widget-nxs_header .elementor-widget-container,
.elementor-widget-nxs_hero .elementor-widget-container,
.elementor-widget-nxs_collections_grid .elementor-widget-container,
.elementor-widget-nxs_before_after .elementor-widget-container,
.elementor-widget-nxs_signature_product .elementor-widget-container,
.elementor-widget-nxs_timeline .elementor-widget-container,
.elementor-widget-nxs_gallery_grid .elementor-widget-container,
.elementor-widget-nxs_testimonials .elementor-widget-container,
.elementor-widget-nxs_instagram .elementor-widget-container,
.elementor-widget-nxs_contact_form .elementor-widget-container,
.elementor-widget-nxs_footer .elementor-widget-container,
.elementor-widget-nxs_values .elementor-widget-container,
.elementor-widget-nxs_quote .elementor-widget-container {
  padding: 0 !important;
}

:root{
  --nxs-ivory:#F6F1E7;
  --nxs-beige:#EAE0CC;
  --nxs-walnut:#6B4429;
  --nxs-olive:#454F3D;
  --nxs-gold:#B08A4E;
  --nxs-gold-light:#D3AF77;
  --nxs-charcoal:#2A2620;
  --nxs-charcoal-soft:#4A453C;
  --nxs-serif:'Fraunces', serif;
  --nxs-sans:'Sora', sans-serif;
}

.nxs-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:16px 34px; font-family:var(--nxs-sans); font-size:.82rem;
  letter-spacing:.08em; text-transform:uppercase; border-radius:2px; cursor:pointer;
  border:1px solid var(--nxs-charcoal); background:transparent; color:var(--nxs-charcoal);
  transition:all .4s ease; text-decoration:none;
  margin:0; box-sizing:border-box; line-height:1.2; font-weight:400;
  -webkit-appearance:none; appearance:none; vertical-align:middle;
}
.nxs-btn-solid{ background:var(--nxs-charcoal); color:var(--nxs-ivory); }
.nxs-btn-ghost{ border-color:rgba(246,241,231,.55); color:var(--nxs-ivory); }
.nxs-btn-ghost:hover{ background:rgba(246,241,231,.12); }
.nxs-btn-solid:hover{ background:var(--nxs-walnut); }

/* ---- Header ---- */
.nxs-header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:22px 6vw; transition:background .4s ease, padding .4s ease;
}
.nxs-header.is-scrolled{ padding:14px 6vw; }
.nxs-brand{ display:flex; align-items:center; gap:12px; text-decoration:none; }
.nxs-brand img{ height:34px; width:auto; }
.nxs-brand-name{ font-family:var(--nxs-serif); font-size:1.15rem; color:var(--nxs-ivory); transition:color .4s ease; }
.nxs-header.is-scrolled .nxs-brand-name{ color:var(--nxs-charcoal); }
.nxs-nav ul{ display:flex; gap:34px; list-style:none; margin:0; padding:0; }
.nxs-nav a{ font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:var(--nxs-ivory); text-decoration:none; transition:color .4s ease; }
.nxs-header.is-scrolled .nxs-nav a{ color:var(--nxs-charcoal); }

.nxs-header-right{ display:flex; align-items:center; gap:20px; }
.nxs-nav-cta-mobile{ display:none; }

/* The CTA button lives in .nxs-header-right, NOT inside .nxs-nav — so the
   nav-link color swap above never touched it. Left on its ghost/ivory
   styling, its text and border become nearly invisible against the light
   scrolled background. This explicitly restyles it to match. */
.nxs-header.is-scrolled .nxs-nav-cta-desktop.nxs-btn-ghost{
  color:var(--nxs-charcoal);
  border-color:var(--nxs-charcoal);
}
.nxs-header.is-scrolled .nxs-nav-cta-desktop.nxs-btn-ghost:hover{
  background:var(--nxs-charcoal);
  color:var(--nxs-ivory);
}

.nxs-burger{
  display:none; width:26px; height:18px; align-items:center; justify-content:center;
  cursor:pointer; background:none !important; border:none !important;
  outline:none !important; box-shadow:none !important; padding:0; margin:0;
  -webkit-appearance:none; appearance:none; box-sizing:border-box; flex-shrink:0;
  color:var(--nxs-ivory); opacity:1 !important; visibility:visible !important;
}
.nxs-burger:focus-visible{
  outline:2px solid var(--nxs-gold) !important; outline-offset:4px;
}
.nxs-burger svg{ width:26px; height:18px; display:block; color:inherit; overflow:visible; }
.nxs-header.is-scrolled .nxs-burger{ color:var(--nxs-charcoal); }

@media(max-width:1024px){
  .nxs-burger{ display:flex !important; }
  .nxs-nav-cta-desktop{ display:none !important; }
  .nxs-nav-cta-mobile{ display:inline-flex !important; }
  .nxs-nav{
    display:none; position:fixed; top:0; left:0; right:0; bottom:0;
    background:var(--nxs-ivory); flex-direction:column;
    padding:100px 8vw 40px; z-index:99; overflow-y:auto;
    scrollbar-width:none; -ms-overflow-style:none;
  }
  .nxs-nav::-webkit-scrollbar{ display:none; width:0; height:0; }
  .nxs-nav.is-open{ display:flex; }
  .nxs-nav ul{ flex-direction:column; gap:26px; }
  .nxs-nav a:not(.nxs-nav-cta){ color:var(--nxs-charcoal); font-size:1rem; }
  .nxs-nav-cta{ margin-top:36px; align-self:flex-start; }
  .nxs-nav-close{
    display:flex; position:absolute; top:24px; right:6vw;
    width:26px; height:26px; align-items:center; justify-content:center;
    cursor:pointer; font-size:1.4rem; color:var(--nxs-charcoal); line-height:1;
  }
}
@media(min-width:1025px){
  .nxs-nav-close{ display:none; }
  body .nxs-header .nxs-header-right button.nxs-burger{ display:none !important; }
}

/* ---- Hero ---- */
.nxs-hero{ position:relative; min-height:100vh; display:flex; align-items:flex-end; overflow:hidden; color:var(--nxs-ivory); }
.nxs-hero-bg{ position:absolute; inset:0; background-size:cover; background-position:center; z-index:0; }
.nxs-hero::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,16,10,.35), rgba(20,16,10,.78)); z-index:1; }
.nxs-hero-content{ position:relative; z-index:2; padding:0 6vw 90px; }
.nxs-hero-eyebrow{ font-size:.72rem; letter-spacing:.32em; text-transform:uppercase; color:var(--nxs-gold-light) !important; margin-bottom:14px; }
.nxs-hero-headline{ font-family:var(--nxs-serif); font-size:clamp(2.6rem,6.4vw,5.6rem); line-height:1.04; margin:0 0 22px; max-width:14ch; color:#F6F1E7; }
.nxs-hero-sub{ font-size:1.05rem; max-width:520px; color:rgba(246,241,231,.88) !important; margin-bottom:38px; }
.nxs-hero-btns{ display:flex; gap:16px; flex-wrap:wrap; }

/* ---- Collections overview grid ---- */
.nxs-collections-head{ max-width:640px; margin:0 auto 50px; padding:0 6vw; }
.nxs-collections-eyebrow{ font-size:.72rem; letter-spacing:.3em; text-transform:uppercase; color:var(--nxs-gold) !important; margin-bottom:10px; padding-top:50px; }
.nxs-collections-head h2{ font-family:var(--nxs-serif); font-size:clamp(1.9rem,3.4vw,2.9rem); margin:0 0 14px; color:#2A2620; }
.nxs-collections-head p{ font-size:1rem; color:#4A453C; margin:0; max-width:52ch; }
.nxs-collections-grid{ display:grid; grid-template-columns:1fr; gap:2px; }
@media(min-width:700px){ .nxs-collections-grid{ grid-template-columns:repeat(2,1fr); } }
@media(min-width:1100px){ .nxs-collections-grid{ grid-template-columns:repeat(3,1fr); } }
.nxs-col-card{ position:relative !important; aspect-ratio:3/4; overflow:hidden; display:block !important; background:var(--nxs-charcoal); text-decoration:none; }
.nxs-col-card img{ width:100% !important; height:100% !important; object-fit:cover !important; opacity:.82; transition:transform 1.2s ease, opacity .5s ease; position:relative; }
.nxs-col-card:hover img{ transform:scale(1.08); opacity:.55; }
.nxs-col-card::before{ content:''; position:absolute; inset:0; background:linear-gradient(0deg, rgba(20,16,10,.86), transparent 75%); pointer-events:none; }
.nxs-col-info{ position:absolute !important; left:28px; right:28px; bottom:28px; z-index:2; margin:0 !important; }
.nxs-col-num{ font-family:var(--nxs-serif); font-size:.85rem; color:var(--nxs-gold-light) !important; }
.nxs-col-info h3{ font-family:var(--nxs-serif); font-size:1.5rem; color:var(--nxs-ivory); margin:8px 0 6px; }
.nxs-col-info p{ font-size:.88rem; color:rgba(246,241,231,.78); margin:0; max-width:30ch; max-height:0; opacity:0; overflow:hidden; transition:max-height .55s ease, opacity .5s ease; }
.nxs-col-card:hover .nxs-col-info p{ max-height:80px; opacity:1; margin-top:6px; }

/* ---- Product gallery grid (per-category pages) ---- */
.nxs-prod-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:32px 24px; }
.nxs-prod-grid.nxs-cols-2{ grid-template-columns:repeat(2,1fr); }
.nxs-prod-grid.nxs-cols-4{ grid-template-columns:repeat(4,1fr); }
@media(max-width:900px){ .nxs-prod-grid{ grid-template-columns:repeat(2,1fr) !important; } }
@media(max-width:600px){ .nxs-prod-grid{ grid-template-columns:1fr !important; } }
.nxs-prod-card{ display:block; background:var(--nxs-beige); text-decoration:none; }
.nxs-prod-img{ aspect-ratio:3/4; overflow:hidden; }
.nxs-prod-img img{ width:100% !important; height:100% !important; object-fit:cover !important; transition:transform 1s ease; display:block; }
.nxs-prod-card:hover .nxs-prod-img img{ transform:scale(1.06); }
.nxs-prod-body{ padding:20px 6px 6px; }
.nxs-prod-body h3{ font-family:var(--nxs-serif); font-size:1.15rem; color:var(--nxs-charcoal); margin:0 0 8px; }
.nxs-prod-body p{ font-size:.88rem; color:var(--nxs-charcoal-soft); margin:0 0 12px; }
.nxs-prod-price{ font-family:var(--nxs-serif); font-size:1.15rem; color:var(--nxs-gold); }
.nxs-prod-price.is-request{ font-size:.92rem; color:var(--nxs-charcoal-soft); font-style:italic; }

/* ---- Signature product spotlight ---- */
.nxs-sig{ background:var(--nxs-olive); color:var(--nxs-ivory); padding:100px 6vw; }
.nxs-sig-grid{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:60px; align-items:center; max-width:1280px; margin:0 auto; }
@media(max-width:900px){ .nxs-sig-grid{ grid-template-columns:1fr; } }
.nxs-sig-img{ aspect-ratio:4/5; overflow:hidden; position:relative; }
.nxs-sig-img img{ width:100% !important; height:100% !important; object-fit:cover !important; display:block; }
.nxs-sig-eyebrow{ font-size:.72rem; letter-spacing:.3em; text-transform:uppercase; color:var(--nxs-gold-light) !important; margin-bottom:14px; }
.nxs-sig-headline{ font-family:var(--nxs-serif); font-size:clamp(1.8rem,3.2vw,2.7rem); margin:0 0 18px; color:#F6F1E7; }
.nxs-sig-text > p{ color:rgba(246,241,231,.82) !important; }
.nxs-sig-features{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin:30px 0; }
.nxs-sig-feature{ border-top:1px solid rgba(246,241,231,.22); padding-top:14px; }
.nxs-sig-feature h4{ font-family:var(--nxs-serif); font-size:1rem; color:var(--nxs-gold-light); margin:0 0 6px; }
.nxs-sig-feature p{ font-size:.86rem; color:rgba(246,241,231,.68) !important; margin:0; }
.nxs-sig-footer{ display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.nxs-sig-price{ font-family:var(--nxs-serif); font-size:1.3rem; color:var(--nxs-gold-light) !important; }

/* ---- Footer ---- */
.nxs-footer{ background:var(--nxs-charcoal); color:rgba(246,241,231,.6); padding:50px 6vw 34px; }
.nxs-foot-grid{ display:flex; flex-wrap:wrap; gap:24px; justify-content:space-between; align-items:center; }
.nxs-foot-brand{ display:flex; align-items:center; gap:12px; text-decoration:none; }
.nxs-foot-brand img{ height:26px; }
.nxs-foot-brand span{ font-family:var(--nxs-serif); color:var(--nxs-ivory); }
.nxs-foot-links ul{ display:flex; gap:26px; list-style:none; margin:0; padding:0; }
.nxs-foot-links a{ color:rgba(246,241,231,.7); text-decoration:none; font-size:.78rem; text-transform:uppercase; letter-spacing:.05em; }
.nxs-foot-bottom{ margin-top:30px; padding-top:20px; border-top:1px solid rgba(246,241,231,.1); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:.76rem; }

.nxs-empty{ padding:40px; text-align:center; color:var(--nxs-charcoal-soft); }

/* ---- Gold brush divider (signature motif) ---- */
.nxs-brush{ width:120px !important; height:14px !important; max-width:120px !important; margin:20px 0; display:block; overflow:hidden; }
.nxs-brush svg{ width:120px !important; height:14px !important; max-width:100% !important; display:block; }
.nxs-brush path{ stroke:var(--nxs-gold); stroke-width:3; fill:none; stroke-linecap:round; }
.nxs-brush-center{ margin-left:auto; margin-right:auto; }

/* ---- Story split section ---- */
.nxs-story{ padding:110px 6vw; }
.nxs-story-grid{ display:grid; grid-template-columns:1fr; gap:56px; align-items:center; max-width:1280px; margin:0 auto; }
.nxs-story-reverse{ direction:rtl; }
.nxs-story-reverse > *{ direction:ltr; }
@media(min-width:900px){ .nxs-story-grid{ grid-template-columns:1fr 1fr; gap:80px; } }
.nxs-story-img{ aspect-ratio:4/5; overflow:hidden; position:relative; }
.nxs-story-img::before{ content:''; position:absolute; inset:-14px; border:1px solid var(--nxs-gold); z-index:-1; }
.nxs-story-img img{ width:100% !important; height:100% !important; object-fit:cover !important; display:block; }
.nxs-story-eyebrow{ font-size:.72rem; letter-spacing:.3em; text-transform:uppercase; color:var(--nxs-gold) !important; margin-bottom:10px; }
.nxs-story-headline{ font-family:var(--nxs-serif); font-size:clamp(1.9rem,3.4vw,2.9rem); margin:0; line-height:1.15; color:var(--nxs-charcoal); }
.nxs-story-body{ font-size:1.02rem; max-width:44ch; margin:20px 0 30px; color:var(--nxs-charcoal-soft); }

/* ---- Craftsmanship timeline ---- */
.nxs-timeline{ background:#2A2620; color:#F6F1E7; padding:110px 6vw; }
.nxs-tl-head{ max-width:640px; margin:0 auto 60px; text-align:left; }
.nxs-tl-eyebrow{ font-size:.72rem; letter-spacing:.3em; text-transform:uppercase; color:var(--nxs-gold-light) !important; margin-bottom:10px; }
.nxs-tl-head h2{ font-family:var(--nxs-serif); font-size:clamp(1.9rem,3.4vw,2.7rem); margin:0 0 14px; color:#F6F1E7 !important; }
.nxs-tl-head p{ color:rgba(246,241,231,.7) !important; }
.nxs-tl-grid{ display:grid; grid-template-columns:1fr; gap:56px; max-width:1280px; margin:0 auto; position:relative; }
@media(min-width:900px){ .nxs-tl-grid{ grid-template-columns:repeat(4,1fr); gap:30px; } }
.nxs-tl-line{ display:none; position:absolute; top:22px; left:0; right:0; height:1px; background:rgba(246,241,231,.18); z-index:0; }
@media(min-width:900px){ .nxs-tl-line{ display:block; } }
.nxs-tl-item{ position:relative; padding-top:46px; z-index:1; }
.nxs-tl-dot{ position:absolute; top:14px; left:0; width:15px; height:15px; border-radius:50%; background:#2A2620; border:1px solid var(--nxs-gold); }
.nxs-tl-num{ font-family:var(--nxs-serif); font-size:.95rem; color:var(--nxs-gold-light); }
.nxs-tl-item h3{ font-family:var(--nxs-serif); font-size:1.25rem; margin:10px 0; color:#F6F1E7; }
.nxs-tl-item p{ font-size:.9rem; color:rgba(246,241,231,.65) !important; max-width:30ch; margin:0; }

/* ---- Before / after ---- */
.nxs-ba-section{ padding:110px 6vw; background:#F6F1E7; text-align:center; }
.nxs-ba-head{ max-width:640px; margin:0 auto 40px; }
.nxs-ba-eyebrow{ font-size:.72rem; letter-spacing:.3em; text-transform:uppercase; color:var(--nxs-gold) !important; margin-bottom:10px; }
.nxs-ba-head h2{ font-family:var(--nxs-serif); font-size:clamp(1.9rem,3.4vw,2.7rem); margin:0; color:var(--nxs-charcoal) !important; }
.nxs-ba-wrap{ max-width:920px; margin:0 auto; }
.nxs-ba-slider{ position:relative; aspect-ratio:16/10; overflow:hidden; cursor:ew-resize; }
.nxs-ba-slider img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; user-select:none; }
.nxs-ba-before{ z-index:2; }
.nxs-ba-after{ z-index:1; }
.nxs-ba-handle{ position:absolute; top:0; bottom:0; width:2px; background:#fff; z-index:3; transform:translateX(-1px); }
.nxs-ba-handle::before{ content:'\2194'; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:50px; height:50px; border-radius:50%; background:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 18px rgba(0,0,0,.25); }
.nxs-ba-tag{ position:absolute; top:18px; z-index:3; font-size:.7rem; letter-spacing:.15em; text-transform:uppercase; background:rgba(20,16,10,.55); color:#fff; padding:8px 14px; }
.nxs-ba-tag-left{ left:18px; } .nxs-ba-tag-right{ right:18px; }

/* ---- Magazine gallery grid ---- */
.nxs-gallery-section{ padding:110px 6vw; }
.nxs-gal-head{ max-width:640px; margin:0 auto 40px; }
.nxs-gal-eyebrow{ font-size:.72rem; letter-spacing:.3em; text-transform:uppercase; color:var(--nxs-gold) !important; margin-bottom:10px; }
.nxs-gal-head h2{ font-family:var(--nxs-serif); font-size:clamp(1.9rem,3.4vw,2.7rem); margin:0; color:var(--nxs-charcoal) !important; }
.nxs-gal-grid{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:180px; gap:14px; max-width:1280px; margin:0 auto; }
@media(max-width:800px){ .nxs-gal-grid{ grid-template-columns:repeat(2,1fr); } }
.nxs-gal-item{ overflow:hidden; position:relative; }
.nxs-gal-item img{ width:100% !important; height:100% !important; object-fit:cover !important; transition:transform .8s ease; display:block; }
.nxs-gal-item:hover img{ transform:scale(1.06); }
.nxs-gal-wide{ grid-column:span 2; }
.nxs-gal-tall{ grid-row:span 2; }

/* ---- Testimonials ---- */
.nxs-test-section{ padding:110px 6vw; }
.nxs-test-head{ max-width:640px; margin:0 auto 40px; text-align:center; }
.nxs-test-eyebrow{ font-size:.72rem; letter-spacing:.3em; text-transform:uppercase; color:var(--nxs-gold) !important; margin-bottom:10px; }
.nxs-test-head h2{ font-family:var(--nxs-serif); font-size:clamp(1.9rem,3.4vw,2.7rem); margin:0; color:var(--nxs-charcoal) !important; }
.nxs-test-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:1px; max-width:1280px; margin:0 auto; border:1px solid rgba(42,38,32,.12); }
@media(max-width:860px){ .nxs-test-grid{ grid-template-columns:1fr; } }
.nxs-test-card{ background:var(--nxs-beige) !important; padding:40px 32px; box-shadow:1px 0 0 rgba(42,38,32,.12), 0 1px 0 rgba(42,38,32,.12); }
.nxs-test-mark{ font-family:var(--nxs-serif); font-size:2.4rem; color:var(--nxs-gold) !important; line-height:1; }
.nxs-test-card p{ font-size:.96rem; color:var(--nxs-charcoal-soft); margin:16px 0 22px; }
.nxs-test-name{ font-family:var(--nxs-serif); color:var(--nxs-charcoal) !important; }
.nxs-test-role{ font-size:.78rem; color:var(--nxs-charcoal-soft) !important; margin-top:3px; }
.nxs-gr-stars{ color:var(--nxs-gold); font-size:1.1rem; letter-spacing:2px; margin-bottom:14px; }
.nxs-gr-summary{ margin-top:14px; font-size:.92rem; color:var(--nxs-charcoal-soft); }
.nxs-gr-summary strong{ color:var(--nxs-gold); font-family:var(--nxs-serif); }

/* ---- Instagram feed ---- */
.nxs-insta-section{ padding:110px 6vw; text-align:center; }
.nxs-insta-eyebrow{ font-size:.72rem; letter-spacing:.3em; text-transform:uppercase; color:var(--nxs-gold) !important; margin-bottom:10px; }
.nxs-insta-section h2{ font-family:var(--nxs-serif); font-size:clamp(1.9rem,3.4vw,2.7rem); margin:0; color:var(--nxs-charcoal) !important; }
.nxs-insta-handle{ display:inline-block; margin-top:10px; font-family:var(--nxs-serif); text-decoration:none; color:var(--nxs-gold); }
.nxs-insta-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:8px; max-width:1280px; margin:40px auto 0; }
@media(max-width:700px){ .nxs-insta-grid{ grid-template-columns:repeat(3,1fr); } }
.nxs-insta-item{ display:block; aspect-ratio:1/1; overflow:hidden; position:relative; }
.nxs-insta-item img{ width:100% !important; height:100% !important; object-fit:cover !important; transition:transform .8s ease; display:block; }
.nxs-insta-item:hover img{ transform:scale(1.1); }

/* ---- Contact form ---- */
.nxs-contact-section{ padding:110px 6vw; background:#2A2620; color:#F6F1E7; }
.nxs-contact-grid{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:80px; max-width:1280px; margin:0 auto; }
@media(max-width:960px){ .nxs-contact-grid{ grid-template-columns:1fr; gap:50px; } }
.nxs-contact-eyebrow{ font-size:.72rem; letter-spacing:.3em; text-transform:uppercase; color:var(--nxs-gold-light) !important; margin-bottom:10px; }
.nxs-contact-text h2{ font-family:var(--nxs-serif); font-size:clamp(1.9rem,3.4vw,2.5rem); margin:0 0 16px; color:#F6F1E7 !important; }
.nxs-contact-text p{ color:rgba(246,241,231,.72) !important; }
.nxs-contact-info{ margin-top:30px; }
.nxs-contact-info div{ padding:14px 0; border-top:1px solid rgba(246,241,231,.16); }
.nxs-contact-info span{ display:block; font-size:.7rem; letter-spacing:.15em; text-transform:uppercase; color:var(--nxs-gold-light) !important; margin-bottom:5px; }
.nxs-contact-info strong{ color:#F6F1E7 !important; font-weight:400; }
.nxs-contact-form{ display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:start; }
.nxs-field{ display:flex; flex-direction:column; gap:8px; }
.nxs-field-full{ grid-column:1/-1; }
.nxs-field label{ font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(246,241,231,.6) !important; }
.nxs-field input, .nxs-field select, .nxs-field textarea{
	background:transparent; border:none; border-bottom:1px solid rgba(246,241,231,.3);
	color:#F6F1E7 !important; padding:10px 2px; font-family:var(--nxs-sans);
	box-sizing:border-box; width:100%; height:auto; min-height:0; max-height:none;
	line-height:1.5; font-size:.95rem; -webkit-appearance:none; appearance:none; border-radius:0;
}
.nxs-field textarea{ min-height:90px !important; resize:vertical; }
.nxs-field select option{ color:#000; }
.nxs-field input:focus, .nxs-field select:focus, .nxs-field textarea:focus{ outline:none; border-color:var(--nxs-gold); }
.nxs-form-actions{ grid-column:1/-1; display:flex; gap:16px; flex-wrap:wrap; align-items:center; margin-top:6px; }
.nxs-form-note{ grid-column:1/-1; font-size:.8rem; color:rgba(246,241,231,.6) !important; margin:0; }

/* ---- Values / feature grid ---- */
.nxs-values-section{ padding:110px 6vw; }
.nxs-values-head{ max-width:640px; margin:0 auto 50px; text-align:center; }
.nxs-values-eyebrow{ font-size:.72rem; letter-spacing:.3em; text-transform:uppercase; color:var(--nxs-gold) !important; margin-bottom:10px; }
.nxs-values-head h2{ font-family:var(--nxs-serif); font-size:clamp(1.9rem,3.4vw,2.7rem); margin:0; color:var(--nxs-charcoal) !important; }
.nxs-values-grid{ display:grid; gap:2px; max-width:1280px; margin:0 auto; }
.nxs-values-cols-2{ grid-template-columns:repeat(2,1fr); }
.nxs-values-cols-3{ grid-template-columns:repeat(3,1fr); }
.nxs-values-cols-4{ grid-template-columns:repeat(4,1fr); }
@media(max-width:800px){ .nxs-values-grid{ grid-template-columns:1fr !important; } }
.nxs-value-item{ padding:30px; background:var(--nxs-beige) !important; }
.nxs-value-item img{ width:56px; height:56px; object-fit:cover; margin-bottom:16px; }
.nxs-value-num{ font-family:var(--nxs-serif); color:var(--nxs-gold) !important; font-size:1.4rem; margin-bottom:12px; }
.nxs-value-item h3{ font-family:var(--nxs-serif); font-size:1.15rem; margin:0 0 8px; color:var(--nxs-charcoal); }
.nxs-value-item p{ font-size:.9rem; color:var(--nxs-charcoal-soft) !important; margin:0; }

/* ---- Quote block ---- */
.nxs-quote-section{ padding:100px 6vw; text-align:center; }
.nxs-quote-inner{ max-width:820px; margin:0 auto; }
.nxs-quote-eyebrow{ font-size:.72rem; letter-spacing:.3em; text-transform:uppercase; color:var(--nxs-gold) !important; margin-bottom:16px; }
.nxs-quote-text{ font-family:var(--nxs-serif); font-size:clamp(1.5rem,3vw,2.3rem); line-height:1.4; margin:0; color:var(--nxs-charcoal); }

/* ---------------------------------------------------------------
 * Mobile responsive pass.
 * The sections below all use a flat 110px top/bottom padding that
 * doesn't scale down for small screens, which reads as excessive
 * empty space and pushes content below the fold on phones. This
 * tapers padding at two breakpoints instead of one flat value.
 * --------------------------------------------------------------- */
@media(max-width:900px){
  .nxs-sig{ padding:70px 6vw; }
  .nxs-story{ padding:70px 6vw; }
  .nxs-timeline{ padding:70px 6vw; }
  .nxs-ba-section{ padding:70px 6vw; }
  .nxs-gallery-section{ padding:70px 6vw; }
  .nxs-test-section{ padding:70px 6vw; }
  .nxs-insta-section{ padding:70px 6vw; }
  .nxs-contact-section{ padding:70px 6vw; }
  .nxs-values-section{ padding:70px 6vw; }
  .nxs-quote-section{ padding:64px 6vw; }
  .nxs-sig-features{ grid-template-columns:1fr; }
}

@media(max-width:600px){
  .nxs-sig{ padding:56px 6vw; }
  .nxs-story{ padding:56px 6vw; }
  .nxs-timeline{ padding:56px 6vw; }
  .nxs-ba-section{ padding:56px 6vw; }
  .nxs-gallery-section{ padding:56px 6vw; }
  .nxs-test-section{ padding:56px 6vw; }
  .nxs-insta-section{ padding:56px 6vw; }
  .nxs-contact-section{ padding:56px 6vw; }
  .nxs-values-section{ padding:56px 6vw; }

  /* Hero buttons and header CTA are easy to mis-tap side-by-side on a
     narrow phone; stack them instead. */
  .nxs-hero-btns{ flex-direction:column; align-items:flex-start; }
  .nxs-hero-btns .nxs-btn{ width:100%; justify-content:center; }

  /* Contact form fields were still forced into 2 columns down to 0px
     wide — collapse to 1 so labels/inputs don't get crushed. */
  .nxs-contact-form{ grid-template-columns:1fr; }

  /* Gallery grid's fixed 180px row height doesn't leave enough room
     for "tall" tiles on narrow phones; let it breathe. */
  .nxs-gal-grid{ grid-auto-rows:140px; gap:8px; }

  /* Instagram grid at 3 columns is still tight under ~380px. */
  .nxs-insta-grid{ gap:6px; }
}

@media(max-width:400px){
  .nxs-insta-grid{ grid-template-columns:repeat(2,1fr); }
  .nxs-header{ padding:16px 5vw; }
  .nxs-header.is-scrolled{ padding:12px 5vw; }
}

/* Tablet gap: 6-column Instagram grid was only ever reduced to 3
   columns below 700px, leaving very cramped 6-up tiles between
   700–1000px on tablets in portrait orientation. */
@media(min-width:700px) and (max-width:1000px){
  .nxs-insta-grid{ grid-template-columns:repeat(4,1fr); }
}

