/* NOIRÉ — responsive refinement, 2026-11-03. Loaded after original styles.
   Sitewide presentation only; Wix Stores, Bookings, Members and CMS controls remain native. */
:root { --noire-mobile-gutter: clamp(12px, 4vw, 23px); }
html { max-width: 100%; overflow-x: clip; }
body { max-width: 100%; overflow-x: clip; }
body > main, body > .footer, body > .header { min-width: 0; max-width: 100%; }
:where(main, footer) :is(h1,h2,h3,h4,p,li,small) { overflow-wrap: break-word; hyphens: auto; }
:where(main, footer) :is(img,picture,video,canvas,iframe,svg) { max-width: 100%; }
:where(main, footer) :is(.container,.split,.service-grid,.team-grid,.card-grid,.pricing-grid,.model-showcase,.luxe-page,.luxe-lower,.luxe-simulator,.luxe-sim-content,.media-hub,.video-channel,.n-mag,.n-mag__below,.n-mag__intro,.n-mag__shell,.magazine-page,.magazine-content) { min-width:0; }
:where(main,footer) :is(.split,.card-grid,.team-grid,.pricing-grid,.model-showcase,.luxe-lower,.luxe-mini-products,.luxe-team-grid,.luxe-member-grid,.luxe-simulator,.video-channel__layout,.media-hub__tiles) > * { min-width:0; }

/* Small and medium laptop header: keep all items on one row. */
@media (min-width: 1181px) {
  .header .nav { max-width: 1780px; height:76px; padding: 8px clamp(18px,2.65vw,50px); gap:clamp(9px,1.1vw,20px); }
  .header .brand { flex:0 0 auto; min-width:clamp(148px,13vw,195px); font-size:clamp(28px,2.4vw,35px); }
  .header .navlinks { min-width:0; flex:1 1 auto; gap:clamp(10px,1.15vw,21px); justify-content:center; flex-wrap:nowrap; }
  .header .navlinks > a, .header .nav-media__button { white-space:nowrap; font-size:clamp(10px,.85vw,12px); letter-spacing:.09em; }
  .header .nav-actions { flex:0 0 auto; gap:clamp(7px,.8vw,13px); white-space:nowrap; }
}
.nav-media__button { text-transform:uppercase; letter-spacing:.1em; }

/* Tablet + phone: continuous icon rail (scrollbar is invisible, scrolling is not). */
@media (max-width: 1180px) {
  .noire-side-nav__items {
    scrollbar-width:none!important;
    -ms-overflow-style:none;
    overscroll-behavior-y:contain;
    overflow-y:auto;
    scroll-behavior:auto!important;
    touch-action:pan-y;
    -webkit-overflow-scrolling:touch;
  }
  .noire-side-nav__items::-webkit-scrollbar { width:0!important; height:0!important; display:none!important; }
  .noire-side-nav__items [data-noire-loop-copy] { scroll-margin:0; }
  .noire-side-nav__label { text-transform:uppercase; }
  body.side-nav-ready .header .nav { min-width:0; }
  body.side-nav-ready .header .nav-actions { flex-shrink:0; }
  .nav-cart, #cart-button { min-width:0; }
}
/* Promo strip is intentionally hidden on all mobile widths; no extra vertical space. */
@media (max-width: 767px) {
  body > .bar, body.side-nav-ready > .bar { display:none!important; height:0!important; padding:0!important; border:0!important; }
  body.side-nav-ready > .header, body.side-nav-ready > main, body.side-nav-ready > .footer { margin-left:var(--noire-rail-offset); }
  .noire-side-nav { top:78px; bottom:8px; max-height:calc(100dvh - 86px); }
  .header .nav { height:70px; }
  body.side-nav-ready .header .nav { padding-inline:clamp(10px,2.8vw,20px); gap:8px; justify-content:space-between; }
  .header .nav .brand { flex:0 1 auto; min-width:0!important; width:auto; font-size:clamp(23px,4.5vw,29px); letter-spacing:.09em; line-height:.84; }
  .header .nav .brand span { font-size:clamp(7px,1.25vw,9px); margin-top:9px; letter-spacing:.30em; }
  .header .nav-actions { gap:clamp(5px,1.6vw,11px); min-width:0; align-items:center; }
  .header .nav-actions > .iconlink { font-size:clamp(16px,3.8vw,20px); line-height:1; }
  .header .nav-cart { margin-right:0!important; transform:translateX(3px); }
  .header .nav-cart .cart-button { font-size:10px; letter-spacing:.06em; gap:2px; white-space:nowrap; min-height:42px; }
  .header .nav-cart .cart-button-count { font-size:9px; }
  .nav-media__button { text-transform:uppercase; }
  .section, .section-tight, .page-hero, .footer { padding-left:var(--noire-mobile-gutter); padding-right:var(--noire-mobile-gutter); }
  main .container { max-width:100%; }
  .footer .footnote { gap:9px; font-size:9px; line-height:1.5; }
  .page-hero { padding-top:clamp(50px,9vw,75px); padding-bottom:45px; }
  .page-hero h1 { font-size:clamp(2.35rem,9vw,5rem); line-height:1.02; }
  h2 { font-size:clamp(2.25rem,8.8vw,4.25rem); }
  .eyebrow { font-size:clamp(9px,2.4vw,11px); letter-spacing:clamp(.12em,.45vw,.24em); }
  .btn { max-width:100%; padding:13px 17px; white-space:normal; text-align:center; }
  .notice { padding:18px 15px; }
  .outline-heading { display:block; }
  .outline-heading h2 { font-size:clamp(2.5rem,9vw,4.7rem); }
  .article-copy { min-width:0; }
  .article-copy :is(p,h1,h2,h3) { overflow-wrap:anywhere; }
  .auth-card { padding:clamp(17px,5vw,34px); }
  .sim-controls { padding:clamp(13px,4vw,27px); }
  .sim-preview { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .cart-drawer,.quickadd-panel { width:min(100vw,440px); }
  .luxe-topline { flex-wrap:wrap; }
  .luxe-team-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .luxe-mini-models { max-width:100%; overflow-x:auto; scrollbar-width:none; }
  .luxe-mini-models::-webkit-scrollbar { display:none; }
  .luxe-mini-models button { flex:0 0 auto; }
  .luxe-mini-products { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .luxe-member-grid { grid-template-columns:1fr; }
  .video-channel__hero,.media-hub__hero { min-width:0; }
  .video-channel__tile img { width:clamp(75px,25%,115px); }
  .video-channel__tile { min-width:0; }
  .video-channel__tile strong { overflow-wrap:anywhere; }
  .media-hub__tile { min-width:0; }
  .n-mag__intro,.n-mag__topbar,.n-mag__controls { max-width:100%; }
  .n-mag__intro h1 { overflow-wrap:anywhere; }
  .n-mag__intro-right { max-width:100%; }
  .n-mag__selector { max-width:100%; }
  .n-mag__selector select { min-width:0; max-width:100%; }
}
/* Focused phone layout: the model portrait sits above the content rather than behind oversized text. */
@media (max-width: 620px) {
  :root { --noire-rail-offset:49px; }
  .noire-side-nav { width:46px; top:74px; bottom:6px; max-height:calc(100dvh - 80px); }
  .noire-side-nav.is-expanded { width:min(245px,calc(100vw - 16px)); }
  .noire-side-nav__items { padding:4px 2px; }
  .noire-side-nav__link { gap:10px; min-height:41px; padding:8px 6px; }
  .noire-side-nav__toggle { padding:0 7px; }
  .noire-side-nav__head { padding-inline:2px; }
  body.side-nav-ready .header .nav { padding-left:9px; padding-right:12px; gap:5px; }
  .header .nav .brand { font-size:clamp(21px,6.6vw,28px); min-width:0; }
  .header .nav .brand span { letter-spacing:.21em; font-size:7px; }
  .header .nav-actions { gap:clamp(5px,1.8vw,9px); }
  .header .nav-actions > .iconlink { font-size:17px; }
  .header .nav-cart .cart-button { font-size:10px; letter-spacing:0; }
  .hero {
    min-height:max(660px,100svh);
    height:auto;
    display:flex;
    align-items:flex-end;
    background:#0b0c0d url('/assets/hero.webp') 69% top / auto clamp(320px,55svh,510px) no-repeat;
    overflow:hidden;
  }
  .hero::before { background:linear-gradient(to bottom,rgba(8,8,8,.03) 0%,rgba(8,8,8,.06) 26%,rgba(8,8,8,.64) 46%,#0b0c0d 65%,#0b0c0d 100%); }
  .hero::after { display:none; }
  body.side-nav-ready .hero-content,.hero-content {
    width:100%!important; max-width:100%; margin:0!important;
    padding:clamp(312px,53svh,495px) clamp(13px,4vw,23px) 48px!important;
  }
  .hero h1,body.side-nav-ready .hero h1 {
    font-size:clamp(2.3rem,10.5vw,4rem)!important;
    line-height:1.04; letter-spacing:-.035em;
    overflow-wrap:anywhere; text-wrap:balance; margin-bottom:18px;
  }
  .hero h1 em { display:inline; }
  .hero p { margin:0 0 20px; font-size:clamp(12px,3.25vw,15px); line-height:1.55; max-width:100%; }
  .hero p.eyebrow { margin-bottom:15px; font-size:10px; letter-spacing:.12em; }
  .hero-cta { display:grid; grid-template-columns:1fr; gap:10px; }
  .hero-cta .btn { width:100%; max-width:100%; min-height:44px; font-size:10px; }
  .hero-counter { bottom:10px; left:var(--noire-mobile-gutter); font-size:8px; }
  .statsbar { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .stat { padding:14px 9px; gap:7px; }
  .stat b { font-size:19px; }
  .stat small { font-size:9px; letter-spacing:.03em; }
  .service-grid,.team-grid,.card-grid,.pricing-grid,.model-showcase { grid-template-columns:1fr; }
  .footer-columns { grid-template-columns:1fr; gap:22px; }
  .footer-columns>div:first-child { grid-column:auto; }
  .split { grid-template-columns:minmax(0,1fr); }
  .feature-cards { grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
  .feature-cards small { font-size:9px; overflow-wrap:anywhere; }
  .booking-slots { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .form-row { grid-template-columns:1fr; }
  .service-tile { min-height:290px; }
  .editorial-portrait img { height:min(420px,75vw); }
  .sim-stage { min-height:320px; }
  .sim-stage img { height:min(280px,75vw); }
  .luxe-hero { height:auto; min-height:clamp(540px,92svh,740px); }
  .luxe-hero__image { background-size:auto 63%; background-position:64% top!important; }
  .luxe-hero__shade { background:linear-gradient(to bottom,rgba(7,7,7,.12) 0%,rgba(7,7,7,.10) 38%,#0b0a09e8 69%,#0b0a09 100%); }
  .luxe-hero__content { top:auto; bottom:36px; left:var(--noire-mobile-gutter); width:calc(100% - 2 * var(--noire-mobile-gutter)); }
  .luxe-hero h1 { font-size:clamp(2.35rem,10vw,3.7rem); line-height:1; margin:10px 0 14px; overflow-wrap:anywhere; }
  .luxe-hero__content>p:not(.eyebrow) { font-size:12px; max-width:100%; }
  .luxe-actions { display:grid; grid-template-columns:1fr; gap:9px; }
  .luxe-actions>* { width:100%; }
  .luxe-services { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .luxe-services a { min-width:0; min-height:76px; padding:8px 3px; text-align:center; }
  .luxe-services a span { font-size:9px; line-height:1.25; overflow-wrap:anywhere; }
  .luxe-sim-content { padding:20px var(--noire-mobile-gutter); }
  .luxe-sim-content h2 { font-size:clamp(2.2rem,9.8vw,3.8rem); }
  .luxe-sim-tabs { overflow-x:auto; scrollbar-width:none; max-width:100%; }
  .luxe-sim-tabs button { flex:0 0 auto; }
  .luxe-mini-posts { grid-template-columns:1fr; }
  .luxe-lower > section { padding:22px var(--noire-mobile-gutter); }
  .video-channel__caption { padding:16px; }
  .video-channel__caption h2,.video-channel__more h2 { font-size:clamp(2rem,8vw,3rem); }
  .video-channel__aside { padding:14px; }
  .media-hub__tile { height:clamp(250px,74vw,350px); }
  .media-hub__tile h2 { font-size:clamp(2.1rem,10vw,3.5rem); }
  .n-mag__intro h1 { font-size:clamp(1.95rem,9vw,3.3rem); }
  .n-mag__below { width:calc(100% - 12px); }
  .n-mag__shell { max-width:calc(100% - 8px); }
  .n-mag__viewer { max-width:100%; }
}
@media (max-width: 359px) {
  .header .nav-actions > .iconlink { font-size:15px; }
  .header .nav-actions { gap:4px; }
  .header .nav .brand { font-size:21px; }
  .header .nav-cart .cart-button { font-size:9px; }
  .hero-content { padding-inline:12px!important; }
  .hero h1,body.side-nav-ready .hero h1 { font-size:clamp(2.25rem,11vw,2.6rem)!important; }
  .page-hero h1 { font-size:clamp(2.3rem,11vw,3.3rem); }
}
@media (orientation:landscape) and (max-height:500px) and (max-width:1000px) {
  .noire-side-nav { top:10px; bottom:5px; max-height:calc(100dvh - 15px); }
  .hero { min-height:550px; }
  .hero-content { padding-top:260px!important; }
  .luxe-hero { min-height:540px; }
}
@media (prefers-reduced-motion:reduce) {
  .noire-side-nav__items {scroll-behavior:auto!important}
}
