/* =============================================================
   [COMPONENTS] NOWIBLY component styles — used by /templates/*.php
   ============================================================= */

/* [SECTION] Generic section padding */
.nw-section { padding-block: var(--nw-space-8); }
.nw-section--bg { background: var(--nw-bg); }
@media (max-width: 768px) { .nw-section { padding-block: var(--nw-space-6); } }

/* [SECTION-TITLE] */
.nw-section-title { text-align: center; margin-block-end: var(--nw-space-6); }
.nw-section-title__eyebrow {
    font-family: var(--nw-font-mono);
    font-size: var(--nw-fs-badge);
    letter-spacing: var(--nw-tracking-badge);
    text-transform: uppercase;
    color: var(--nw-blue);
    margin: 0 0 var(--nw-space-2);
    font-weight: 600;
    display: block;
}
.nw-section-title__main {
    font-family: var(--nw-font-display);
    font-weight: 800;
    font-size: clamp(28px, 3vw, 40px);
    color: var(--nw-ink);
    margin: 0 0 var(--nw-space-2);
    letter-spacing: -0.02em;
    line-height: 1.15;
}
.nw-section-title__sub {
    color: var(--nw-text-gray);
    font-size: 16px;
    max-width: 600px;
    margin: 0 auto;
    line-height: 1.6;
}

/* [PAGE-HEADER] Inner-page banner */
.nw-page-header {
    background: var(--nw-bg);
    border-block-end: 1px solid var(--nw-cloud);
    padding-block: var(--nw-space-7);
    text-align: center;
}
.nw-page-header__eyebrow {
    font-family: var(--nw-font-mono);
    font-size: var(--nw-fs-badge);
    letter-spacing: var(--nw-tracking-badge);
    text-transform: uppercase;
    color: var(--nw-blue);
    font-weight: 600;
    display: block;
    margin-block-end: var(--nw-space-2);
}
.nw-page-header__title {
    font-family: var(--nw-font-display);
    font-weight: 800;
    font-size: clamp(32px, 4vw, 56px);
    color: var(--nw-ink);
    margin: 0 0 var(--nw-space-3);
    letter-spacing: -0.02em;
    line-height: 1.1;
}
.nw-page-header__subtitle {
    font-size: 18px;
    color: var(--nw-text-gray);
    max-width: 640px;
    margin: 0 auto;
    line-height: 1.5;
}

/* [HERO] */
.nw-hero {
    background: var(--nw-gradient);
    color: var(--nw-white);
    padding-block: var(--nw-space-9);
    position: relative;
    overflow: hidden;
}
.nw-hero__inner {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: var(--nw-space-7);
    align-items: center;
    position: relative;
    z-index: 1;
}
@media (max-width: 768px) {
    .nw-hero { padding-block: var(--nw-space-7); }
    .nw-hero__inner { grid-template-columns: 1fr; gap: var(--nw-space-5); text-align: center; }
}
.nw-hero__title {
    font-family: var(--nw-font-display);
    font-size: clamp(40px, 5vw, 64px);
    line-height: 1.05;
    letter-spacing: -0.02em;
    font-weight: 800;
    color: var(--nw-white);
    margin: 0 0 var(--nw-space-4);
}
.nw-hero__subtitle {
    font-size: 18px;
    line-height: 1.6;
    color: rgba(255,255,255,0.85);
    margin: 0 0 var(--nw-space-6);
    max-width: 520px;
}
@media (max-width: 768px) { .nw-hero__subtitle { margin-inline: auto; } }
.nw-hero__ctas { display: flex; gap: var(--nw-space-3); flex-wrap: wrap; }
@media (max-width: 768px) { .nw-hero__ctas { justify-content: center; } }
.nw-hero__btn {
    display: inline-flex;
    align-items: center;
    gap: var(--nw-space-2);
    padding: 16px 28px;
    border-radius: var(--nw-radius-pill);
    font-family: var(--nw-font-display);
    font-weight: 600;
    font-size: 15px;
    text-decoration: none;
    transition: all var(--nw-duration-fast) var(--nw-ease-standard);
    border: 2px solid transparent;
    cursor: pointer;
}
.nw-hero__btn--primary {
    background: var(--nw-white);
    color: var(--nw-blue);
    box-shadow: 0 8px 24px rgba(0,0,0,0.15);
}
.nw-hero__btn--primary:hover {
    background: var(--nw-blue-pale);
    color: var(--nw-ink);
    transform: translateY(-2px);
}
.nw-hero__btn--ghost {
    background: transparent;
    color: var(--nw-white);
    border-color: rgba(255,255,255,0.4);
}
.nw-hero__btn--ghost:hover {
    border-color: var(--nw-white);
    background: rgba(255,255,255,0.08);
    color: var(--nw-white);
}
.nw-hero__image img {
    border-radius: var(--nw-radius-xl);
    box-shadow: var(--nw-shadow-lg);
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    display: block;
}
.nw-hero::before, .nw-hero::after {
    content: '';
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    opacity: 0.4;
    pointer-events: none;
}
.nw-hero::before {
    width: 480px; height: 480px;
    background: var(--nw-blue-bright);
    inset-block-start: -120px;
    inset-inline-start: -120px;
}
.nw-hero::after {
    width: 360px; height: 360px;
    background: #6366F1;
    inset-block-end: -100px;
    inset-inline-end: -100px;
}

/* [TRUST-STRIP] */
.nw-trust-strip {
    background: var(--nw-white);
    border-block-end: 1px solid var(--nw-cloud);
    padding-block: var(--nw-space-5);
}
.nw-trust-strip__inner {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--nw-space-4);
    text-align: center;
}
@media (max-width: 768px) {
    .nw-trust-strip__inner { grid-template-columns: repeat(2, 1fr); gap: var(--nw-space-3); }
}
.nw-trust-item { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.nw-trust-item__icon { font-size: 24px; line-height: 1; }
.nw-trust-item__label {
    font-family: var(--nw-font-display);
    font-weight: 600;
    font-size: 13px;
    color: var(--nw-ink);
}

/* [CATEGORY-CARD] */
.nw-cat-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: var(--nw-space-4);
}
@media (max-width: 1024px) { .nw-cat-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 600px)  { .nw-cat-grid { grid-template-columns: repeat(2, 1fr); } }

.nw-cat-card {
    background: var(--nw-navy);
    color: var(--nw-white);
    border: 1px solid transparent;
    border-radius: var(--nw-radius-lg);
    padding: var(--nw-space-5);
    text-align: center;
    text-decoration: none;
    transition: all var(--nw-duration-base) var(--nw-ease-standard);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--nw-space-2);
}
.nw-cat-card:hover {
    border-color: var(--nw-blue-bright);
    box-shadow: 0 0 0 4px rgba(59,130,246,0.12);
    color: var(--nw-white);
    transform: translateY(-4px);
}
.nw-cat-card__icon { font-size: 32px; line-height: 1; margin-block-end: var(--nw-space-2); }
.nw-cat-card__title {
    font-family: var(--nw-font-display);
    font-weight: 600;
    font-size: 16px;
    color: var(--nw-white);
    margin: 0;
}
.nw-cat-card__count {
    font-family: var(--nw-font-mono);
    font-size: 11px;
    color: rgba(255,255,255,0.6);
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

/* [STEPS] */
.nw-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--nw-space-5); }
@media (max-width: 768px) { .nw-steps { grid-template-columns: 1fr; } }
.nw-step {
    background: var(--nw-white);
    border: 1px solid var(--nw-cloud);
    border-radius: var(--nw-radius-lg);
    padding: var(--nw-space-5);
    transition: all var(--nw-duration-base) var(--nw-ease-standard);
}
.nw-step:hover { transform: translateY(-4px); box-shadow: var(--nw-shadow-md); }
.nw-step__num {
    width: 44px; height: 44px;
    border-radius: 50%;
    background: var(--nw-gradient);
    color: var(--nw-white);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--nw-font-display);
    font-weight: 700;
    font-size: 17px;
    margin-block-end: var(--nw-space-3);
    box-shadow: var(--nw-shadow-blue);
}
.nw-step__title {
    font-family: var(--nw-font-display);
    font-weight: 700;
    font-size: 18px;
    color: var(--nw-ink);
    margin: 0 0 var(--nw-space-2);
}
.nw-step__text { color: var(--nw-text-gray); font-size: 15px; line-height: 1.5; margin: 0; }

/* [PROMO-BANNER] */
.nw-promo {
    background: var(--nw-gradient);
    color: var(--nw-white);
    border-radius: var(--nw-radius-xl);
    padding: var(--nw-space-8);
    text-align: center;
    position: relative;
    overflow: hidden;
}
.nw-promo__title {
    font-family: var(--nw-font-display);
    font-weight: 800;
    font-size: clamp(28px, 4vw, 48px);
    line-height: 1.1;
    color: var(--nw-white);
    margin: 0 0 var(--nw-space-3);
    letter-spacing: -0.02em;
}
.nw-promo__subtitle {
    font-size: 18px;
    color: rgba(255,255,255,0.85);
    margin: 0 0 var(--nw-space-5);
}
.nw-promo__btn {
    display: inline-block;
    background: var(--nw-white);
    color: var(--nw-blue);
    padding: 14px 32px;
    border-radius: var(--nw-radius-pill);
    font-family: var(--nw-font-display);
    font-weight: 700;
    text-decoration: none;
    transition: all var(--nw-duration-fast) var(--nw-ease-standard);
    box-shadow: 0 8px 24px rgba(0,0,0,0.18);
}
.nw-promo__btn:hover {
    background: var(--nw-blue-pale);
    color: var(--nw-ink);
    transform: translateY(-2px);
}

/* [BADGE-NEW] auto-overlay on .nw-new-grid > .product */
.nw-new-grid .product { position: relative; }
.nw-new-grid .product::before {
    content: 'NEW';
    position: absolute;
    inset-block-start: var(--nw-space-3);
    inset-inline-start: var(--nw-space-3);
    background: var(--nw-blue);
    color: var(--nw-white);
    font-family: var(--nw-font-mono);
    font-weight: 700;
    font-size: var(--nw-fs-badge);
    letter-spacing: var(--nw-tracking-badge);
    padding: 4px 10px;
    border-radius: var(--nw-radius-sm);
    z-index: 3;
}

/* [FEATURE-CARD] */
.nw-feat-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--nw-space-4);
}
@media (max-width: 1024px) { .nw-feat-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px)  { .nw-feat-grid { grid-template-columns: 1fr; } }

.nw-feat-card {
    background: var(--nw-white);
    border: 1px solid var(--nw-cloud);
    border-radius: var(--nw-radius-lg);
    padding: var(--nw-space-5);
    text-align: center;
    transition: all var(--nw-duration-base) var(--nw-ease-standard);
}
.nw-feat-card:hover { transform: translateY(-4px); box-shadow: var(--nw-shadow-md); border-color: var(--nw-blue); }
.nw-feat-card__icon {
    width: 56px; height: 56px;
    border-radius: var(--nw-radius-md);
    background: var(--nw-blue-pale);
    color: var(--nw-blue);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    margin-block-end: var(--nw-space-3);
}
.nw-feat-card__title {
    font-family: var(--nw-font-display);
    font-weight: 700;
    font-size: 17px;
    color: var(--nw-ink);
    margin: 0 0 var(--nw-space-2);
}
.nw-feat-card__text { color: var(--nw-text-gray); font-size: 14px; line-height: 1.5; margin: 0; }

/* [VALUES-GRID] */
.nw-values-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: var(--nw-space-4);
}
.nw-value-card {
    background: var(--nw-white);
    border: 1px solid var(--nw-cloud);
    border-radius: var(--nw-radius-lg);
    padding: var(--nw-space-5);
    text-align: center;
    transition: all var(--nw-duration-base) var(--nw-ease-standard);
}
.nw-value-card:hover { transform: translateY(-4px); box-shadow: var(--nw-shadow-md); border-color: var(--nw-blue); }
.nw-value-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: var(--nw-radius-md);
    background: var(--nw-blue-pale);
    color: var(--nw-blue);
    margin: 0 auto var(--nw-space-3);
    transition: all var(--nw-duration-base) var(--nw-ease-standard);
}
.nw-value-card:hover .nw-value-card__icon {
    background: var(--nw-blue);
    color: var(--nw-white);
    transform: scale(1.06);
}
.nw-value-card__title {
    font-family: var(--nw-font-display);
    font-weight: 700;
    font-size: 18px;
    color: var(--nw-ink);
    margin: 0 0 var(--nw-space-2);
}
.nw-value-card__text { color: var(--nw-text-gray); font-size: 14px; line-height: 1.55; margin: 0; }

/* [NEWSLETTER] */
.nw-newsletter {
    background: var(--nw-blue-pale);
    border-radius: var(--nw-radius-xl);
    padding: var(--nw-space-7) var(--nw-space-6);
    text-align: center;
}
.nw-newsletter__title {
    font-family: var(--nw-font-display);
    font-weight: 800;
    font-size: clamp(28px, 3vw, 40px);
    color: var(--nw-ink);
    margin: 0 0 var(--nw-space-2);
    letter-spacing: -0.02em;
}
.nw-newsletter__subtitle { color: var(--nw-text-gray); font-size: 16px; margin: 0 0 var(--nw-space-5); }
.nw-newsletter__form {
    display: flex;
    gap: var(--nw-space-2);
    flex-wrap: nowrap;
    justify-content: center;
    max-width: 480px;
    margin-inline: auto;
}
@media (max-width: 480px) { .nw-newsletter__form { flex-wrap: wrap; } }
.nw-newsletter__form input[type="email"] {
    flex: 1;
    background: var(--nw-white);
    border: 1px solid var(--nw-cloud);
    border-radius: var(--nw-radius-pill);
    padding: 14px var(--nw-space-4);
    font-family: var(--nw-font-body);
    color: var(--nw-text-dark);
}
.nw-newsletter__form input[type="email"]:focus {
    border-color: var(--nw-blue);
    outline: 2px solid color-mix(in srgb, var(--nw-blue) 20%, transparent);
}
.nw-newsletter__form button {
    background: var(--nw-blue);
    color: var(--nw-white);
    border: 0;
    border-radius: var(--nw-radius-pill);
    padding: 14px var(--nw-space-5);
    font-family: var(--nw-font-display);
    font-weight: 700;
    cursor: pointer;
    box-shadow: var(--nw-shadow-blue);
    transition: background var(--nw-duration-fast) var(--nw-ease-standard);
    white-space: nowrap;
}
.nw-newsletter__form button:hover { background: var(--nw-ink); }

/* [CONTACT] 2-col layout + form + info card */
.nw-contact-layout {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: var(--nw-space-6);
    align-items: start;
}
@media (max-width: 1024px) { .nw-contact-layout { grid-template-columns: 1fr; } }

.nw-contact-form-card,
.nw-contact-info {
    background: var(--nw-white);
    border: 1px solid var(--nw-cloud);
    border-radius: var(--nw-radius-lg);
    padding: var(--nw-space-5);
    box-shadow: var(--nw-shadow-sm);
}
.nw-contact-form-card__title,
.nw-contact-info__title {
    font-family: var(--nw-font-display);
    font-size: 20px;
    font-weight: 700;
    color: var(--nw-ink);
    margin: 0 0 var(--nw-space-4);
}

.nw-contact-form label { display: block; margin-block-end: var(--nw-space-3); }
.nw-contact-form label > span {
    display: block;
    font-family: var(--nw-font-display);
    font-weight: 600;
    color: var(--nw-ink);
    font-size: 14px;
    margin-block-end: 6px;
}
.nw-contact-form input[type="text"],
.nw-contact-form input[type="email"],
.nw-contact-form textarea {
    width: 100%;
    background: var(--nw-white);
    border: 1px solid var(--nw-cloud);
    border-radius: var(--nw-radius-md);
    padding: 12px var(--nw-space-4);
    font-family: var(--nw-font-body);
    color: var(--nw-text-dark);
    box-sizing: border-box;
    transition: border-color var(--nw-duration-fast) var(--nw-ease-standard);
}
.nw-contact-form input:focus,
.nw-contact-form textarea:focus {
    border-color: var(--nw-blue);
    outline: 2px solid color-mix(in srgb, var(--nw-blue) 20%, transparent);
}
.nw-contact-form .nw-row-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--nw-space-3);
}
@media (max-width: 600px) { .nw-contact-form .nw-row-2 { grid-template-columns: 1fr; } }
.nw-contact-form button {
    background: var(--nw-blue);
    color: var(--nw-white);
    border: 0;
    border-radius: var(--nw-radius-pill);
    padding: 14px 32px;
    font-family: var(--nw-font-display);
    font-weight: 700;
    font-size: 15px;
    cursor: pointer;
    box-shadow: var(--nw-shadow-blue);
    transition: background var(--nw-duration-fast) var(--nw-ease-standard);
}
.nw-contact-form button:hover { background: var(--nw-ink); }
.nw-contact-form .nw-form-notice {
    border-radius: var(--nw-radius-md);
    padding: 14px 18px;
    margin-block-end: var(--nw-space-4);
    font-size: 14px;
}
.nw-contact-form .nw-form-notice--ok {
    background: #ECFDF5;
    border: 1px solid var(--nw-success);
    color: #065F46;
}
.nw-contact-form .nw-form-notice--err {
    background: #FEF2F2;
    border: 1px solid var(--nw-error);
    color: #991B1B;
}

.nw-contact-info__row {
    display: flex;
    align-items: flex-start;
    gap: var(--nw-space-3);
    margin-block-end: var(--nw-space-4);
}
.nw-contact-info__row:last-child { margin-block-end: 0; }
.nw-contact-info__icon {
    width: 40px; height: 40px;
    flex: 0 0 40px;
    border-radius: var(--nw-radius-md);
    background: var(--nw-blue-pale);
    color: var(--nw-blue);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
}
.nw-contact-info__content { flex: 1; }
.nw-contact-info__label {
    font-family: var(--nw-font-mono);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--nw-text-gray);
    display: block;
    margin-block-end: 2px;
}
.nw-contact-info__value,
.nw-contact-info__value a {
    font-family: var(--nw-font-display);
    font-weight: 600;
    font-size: 15px;
    color: var(--nw-ink);
    text-decoration: none;
    line-height: 1.4;
}
.nw-contact-info__value a:hover { color: var(--nw-blue); }

/* [FAQ-NATIVE] using <details>/<summary> instead of Elementor accordion */
.nw-faq-category {
    font-family: var(--nw-font-display);
    font-weight: 700;
    font-size: 22px;
    color: var(--nw-ink);
    margin: var(--nw-space-6) 0 var(--nw-space-3);
    padding-block-end: var(--nw-space-2);
    border-block-end: 2px solid var(--nw-blue);
    display: inline-block;
}
.nw-faq-native details {
    background: var(--nw-white);
    border: 1px solid var(--nw-cloud);
    border-radius: var(--nw-radius-lg);
    margin-block-end: var(--nw-space-3);
    overflow: hidden;
    transition: border-color var(--nw-duration-fast) var(--nw-ease-standard);
}
.nw-faq-native details:hover { border-color: var(--nw-blue); }
.nw-faq-native summary {
    background: var(--nw-white);
    color: var(--nw-ink);
    font-family: var(--nw-font-display);
    font-weight: 600;
    font-size: 16px;
    padding: var(--nw-space-4) var(--nw-space-5);
    cursor: pointer;
    list-style: none;
    position: relative;
    padding-inline-end: var(--nw-space-7);
    transition: color var(--nw-duration-fast) var(--nw-ease-standard);
}
.nw-faq-native summary::-webkit-details-marker { display: none; }
.nw-faq-native summary::after {
    content: '+';
    position: absolute;
    inset-inline-end: var(--nw-space-5);
    inset-block-start: 50%;
    transform: translateY(-50%);
    font-size: 22px;
    color: var(--nw-text-gray);
    transition: transform var(--nw-duration-fast) var(--nw-ease-standard);
}
.nw-faq-native details[open] summary { color: var(--nw-blue); }
.nw-faq-native details[open] summary::after { content: '−'; color: var(--nw-blue); }
.nw-faq-native details > div {
    background: var(--nw-bg);
    color: var(--nw-text-dark);
    font-size: 15px;
    line-height: 1.6;
    padding: var(--nw-space-4) var(--nw-space-5);
    border-block-start: 1px solid var(--nw-cloud);
}

/* [PROSE] Long-form text wrapper */
.nw-prose {
    max-width: 720px;
    margin-inline: auto;
    color: var(--nw-text-dark);
    font-size: 16px;
    line-height: 1.7;
}
.nw-prose h2 {
    font-family: var(--nw-font-display);
    font-weight: 700;
    font-size: 24px;
    color: var(--nw-ink);
    margin: var(--nw-space-6) 0 var(--nw-space-3);
}
.nw-prose h3 {
    font-family: var(--nw-font-display);
    font-weight: 700;
    font-size: 20px;
    color: var(--nw-ink);
    margin: var(--nw-space-5) 0 var(--nw-space-3);
}
.nw-prose p { margin-block-end: var(--nw-space-4); }
.nw-prose ul, .nw-prose ol {
    margin: 0 0 var(--nw-space-4);
    padding-inline-start: var(--nw-space-5);
}
.nw-prose li { margin-block-end: var(--nw-space-2); }
.nw-prose a { color: var(--nw-blue); text-decoration: underline; }
.nw-prose a:hover { color: var(--nw-ink); }

/* [LANG-SWITCHER] */
.nw-lang-switcher {
    display: inline-flex;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: var(--nw-space-2);
}
.nw-lang-switcher li { margin: 0; }
.nw-lang-switcher a {
    display: inline-block;
    padding: 4px 10px;
    border-radius: var(--nw-radius-pill);
    color: var(--nw-white);
    font-family: var(--nw-font-mono);
    font-size: var(--nw-fs-badge);
    font-weight: 600;
    letter-spacing: var(--nw-tracking-badge);
    text-transform: uppercase;
    text-decoration: none;
    border: 1px solid transparent;
    transition: all var(--nw-duration-fast) var(--nw-ease-standard);
}
.nw-lang-switcher a:hover { border-color: var(--nw-white); color: var(--nw-white); }
.nw-lang-switcher li.current-lang a,
.nw-lang-switcher .current-lang a {
    background: var(--nw-blue);
    border-color: var(--nw-blue);
    color: var(--nw-white);
}

/* [ANNOUNCE] (used by homepage section) */
.nw-announce {
    background: var(--nw-blue);
    color: var(--nw-white);
    text-align: center;
    padding: 8px var(--nw-space-4);
    font-size: 13px;
    font-weight: 500;
}
.nw-announce a { color: var(--nw-white); text-decoration: underline; }

/* =============================================================
   [HEADER] Navy sticky header — replaces Astra default
   ============================================================= */
.nw-header-announce {
    background: var(--nw-blue);
    color: var(--nw-white);
    text-align: center;
    padding: 8px var(--nw-space-4);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.01em;
}
.nw-header-announce a { color: var(--nw-white); text-decoration: underline; }

.nw-header {
    background: var(--nw-navy);
    position: sticky;
    inset-block-start: 0;
    z-index: var(--nw-z-sticky);
    border-block-end: 1px solid rgba(255,255,255,0.06);
}
.nw-header__inner {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: var(--nw-space-5);
    min-height: 80px;
    padding-block: var(--nw-space-3);
}
@media (max-width: 900px) {
    .nw-header__inner { grid-template-columns: auto 1fr auto; min-height: 64px; }
    .nw-header__nav { display: none; }
}

/* Logo */
.nw-header__logo-link { display: inline-flex; align-items: center; }
.nw-header__logo-link img,
.nw-header__logo-link .custom-logo {
    max-height: 40px;
    width: auto;
    height: auto;
    display: block;
}
.nw-header__logo-text {
    font-family: var(--nw-font-display);
    font-weight: 800;
    font-size: 22px;
    color: var(--nw-white);
    letter-spacing: -0.01em;
}

/* Primary menu */
.nw-header__menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: var(--nw-space-5);
    justify-content: center;
}
.nw-header__menu li { margin: 0; position: relative; }
.nw-header__menu a {
    color: var(--nw-white);
    text-decoration: none;
    font-family: var(--nw-font-display);
    font-weight: 500;
    font-size: 15px;
    padding: 8px 4px;
    transition: color var(--nw-duration-fast) var(--nw-ease-standard);
    display: inline-block;
}
.nw-header__menu a:hover { color: var(--nw-blue-bright); }
.nw-header__menu .current-menu-item > a { color: var(--nw-blue-bright); }
/* Submenu */
.nw-header__menu .sub-menu {
    list-style: none;
    margin: 0;
    padding: var(--nw-space-2) 0;
    position: absolute;
    inset-block-start: 100%;
    inset-inline-start: 0;
    min-width: 220px;
    background: var(--nw-navy);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: var(--nw-radius-md);
    box-shadow: var(--nw-shadow-lg);
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: all var(--nw-duration-fast) var(--nw-ease-standard);
}
.nw-header__menu li:hover > .sub-menu,
.nw-header__menu li:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.nw-header__menu .sub-menu a {
    display: block;
    padding: 10px var(--nw-space-4);
    font-weight: 400;
}

/* Right-side actions */
.nw-header__actions {
    display: flex;
    align-items: center;
    gap: var(--nw-space-3);
}
.nw-header__icon {
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--nw-white);
    background: transparent;
    border: 0;
    cursor: pointer;
    text-decoration: none;
    transition: background var(--nw-duration-fast) var(--nw-ease-standard);
    position: relative;
}
.nw-header__icon:hover {
    background: rgba(255,255,255,0.08);
    color: var(--nw-white);
}
.nw-header__cart-count {
    position: absolute;
    inset-block-start: 4px;
    inset-inline-end: 2px;
    background: var(--nw-blue);
    color: var(--nw-white);
    border-radius: var(--nw-radius-pill);
    min-width: 18px;
    height: 18px;
    line-height: 18px;
    padding: 0 5px;
    font-family: var(--nw-font-mono);
    font-size: 10px;
    font-weight: 700;
    border: 2px solid var(--nw-navy);
    text-align: center;
    box-sizing: content-box;
}
.nw-header__lang { display: inline-flex; align-items: center; }
@media (max-width: 600px) { .nw-header__lang { display: none; } }

/* Hamburger (mobile only) */
.nw-header__hamburger {
    display: none;
    width: 40px; height: 40px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    cursor: pointer;
    border-radius: 50%;
    transition: background var(--nw-duration-fast) var(--nw-ease-standard);
}
.nw-header__hamburger:hover { background: rgba(255,255,255,0.08); }
.nw-header__hamburger span {
    width: 22px;
    height: 2px;
    background: var(--nw-white);
    border-radius: 2px;
}
@media (max-width: 900px) { .nw-header__hamburger { display: inline-flex; } }

/* =============================================================
   [DRAWER] Mobile off-canvas drawer (CSS-only, checkbox toggle)
   ============================================================= */
.nw-drawer-toggle { display: none; }

.nw-drawer {
    position: fixed;
    inset-block-start: 0;
    inset-inline-end: 0;
    width: min(360px, 80vw);
    height: 100vh;
    background: var(--nw-navy);
    color: var(--nw-white);
    transform: translateX(100%);
    transition: transform var(--nw-duration-base) var(--nw-ease-standard);
    z-index: var(--nw-z-modal);
    padding: var(--nw-space-5);
    overflow-y: auto;
    box-shadow: -12px 0 32px rgba(0,0,0,0.3);
}
[dir="rtl"] .nw-drawer,
.rtl .nw-drawer { transform: translateX(-100%); }

.nw-drawer__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px; height: 40px;
    font-size: 28px;
    color: var(--nw-white);
    cursor: pointer;
    border-radius: 50%;
    margin-block-end: var(--nw-space-4);
    transition: background var(--nw-duration-fast) var(--nw-ease-standard);
}
.nw-drawer__close:hover { background: rgba(255,255,255,0.08); }

.nw-drawer__nav .nw-drawer__menu {
    list-style: none;
    margin: 0 0 var(--nw-space-5);
    padding: 0;
}
.nw-drawer__menu li { margin: 0; }
.nw-drawer__menu a {
    display: block;
    color: var(--nw-white);
    text-decoration: none;
    padding: 14px 8px;
    font-family: var(--nw-font-display);
    font-weight: 500;
    font-size: 17px;
    border-block-end: 1px solid rgba(255,255,255,0.08);
    transition: color var(--nw-duration-fast) var(--nw-ease-standard);
}
.nw-drawer__menu a:hover { color: var(--nw-blue-bright); }
.nw-drawer__menu .sub-menu {
    list-style: none;
    margin: 0;
    padding: 0 0 0 var(--nw-space-4);
}
.nw-drawer__menu .sub-menu a {
    font-size: 15px;
    font-weight: 400;
    padding: 10px 8px;
    color: rgba(255,255,255,0.7);
}

.nw-drawer__actions { display: flex; flex-direction: column; gap: var(--nw-space-3); }
.nw-drawer__action {
    color: var(--nw-white);
    background: rgba(255,255,255,0.06);
    padding: 12px var(--nw-space-4);
    border-radius: var(--nw-radius-md);
    text-decoration: none;
    font-family: var(--nw-font-display);
    font-weight: 500;
    transition: background var(--nw-duration-fast) var(--nw-ease-standard);
}
.nw-drawer__action:hover { background: rgba(255,255,255,0.12); color: var(--nw-white); }

.nw-drawer__overlay {
    position: fixed;
    inset: 0;
    background: rgba(15,23,42,0.6);
    z-index: calc(var(--nw-z-modal) - 1);
    opacity: 0;
    visibility: hidden;
    transition: all var(--nw-duration-base) var(--nw-ease-standard);
    cursor: pointer;
}

/* Toggle: when checkbox checked, slide drawer in */
.nw-drawer-toggle:checked ~ .nw-drawer { transform: translateX(0); }
.nw-drawer-toggle:checked ~ .nw-drawer__overlay { opacity: 1; visibility: visible; }
.nw-drawer-toggle:checked ~ .nw-header .nw-header__hamburger span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}
.nw-drawer-toggle:checked ~ .nw-header .nw-header__hamburger span:nth-child(2) { opacity: 0; }
.nw-drawer-toggle:checked ~ .nw-header .nw-header__hamburger span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}
.nw-header__hamburger span {
    transition: transform var(--nw-duration-fast) var(--nw-ease-standard),
                opacity var(--nw-duration-fast) var(--nw-ease-standard);
}

/* =============================================================
   [SEARCH-OVERLAY] Full-screen search overlay
   ============================================================= */
.nw-search-overlay {
    position: fixed;
    inset: 0;
    background: rgba(15,23,42,0.85);
    backdrop-filter: blur(8px);
    z-index: var(--nw-z-modal);
    opacity: 0;
    visibility: hidden;
    transition: all var(--nw-duration-base) var(--nw-ease-standard);
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-block-start: 20vh;
    padding-inline: var(--nw-space-4);
}
.nw-search-overlay.is-open { opacity: 1; visibility: visible; }
.nw-search-overlay__inner {
    width: 100%;
    max-width: 640px;
    position: relative;
}
.nw-search-form {
    display: flex;
    gap: var(--nw-space-2);
    background: var(--nw-white);
    border-radius: var(--nw-radius-pill);
    padding: 6px;
    box-shadow: var(--nw-shadow-lg);
}
.nw-search-form input[type="search"] {
    flex: 1;
    border: 0;
    background: transparent;
    padding: 14px var(--nw-space-4);
    font-family: var(--nw-font-body);
    font-size: 16px;
    color: var(--nw-text-dark);
    outline: none;
}
.nw-search-form button {
    background: var(--nw-blue);
    color: var(--nw-white);
    border: 0;
    border-radius: var(--nw-radius-pill);
    padding: 12px 24px;
    font-family: var(--nw-font-display);
    font-weight: 600;
    cursor: pointer;
}
.nw-search-overlay__close {
    position: absolute;
    inset-block-start: -56px;
    inset-inline-end: 0;
    background: transparent;
    border: 0;
    color: var(--nw-white);
    font-size: 32px;
    cursor: pointer;
    width: 40px; height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* =============================================================
   [FOOTER] Custom navy footer
   ============================================================= */
.nw-footer { background: var(--nw-navy); color: rgba(255,255,255,0.7); }

/* Newsletter strip */
.nw-footer-newsletter {
    background: var(--nw-blue);
    padding-block: var(--nw-space-6);
}
.nw-footer-newsletter__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--nw-space-5);
    align-items: center;
}
@media (max-width: 768px) {
    .nw-footer-newsletter__inner { grid-template-columns: 1fr; text-align: center; }
}
.nw-footer-newsletter__copy h3 {
    font-family: var(--nw-font-display);
    font-weight: 800;
    font-size: 26px;
    color: var(--nw-white);
    margin: 0 0 4px;
    letter-spacing: -0.01em;
}
.nw-footer-newsletter__copy p {
    color: rgba(255,255,255,0.85);
    margin: 0;
    font-size: 15px;
}
.nw-footer-newsletter__form {
    display: flex;
    gap: var(--nw-space-2);
    background: var(--nw-white);
    border-radius: var(--nw-radius-pill);
    padding: 6px;
}
.nw-footer-newsletter__form input[type="email"] {
    flex: 1;
    border: 0;
    background: transparent;
    padding: 12px var(--nw-space-4);
    font-family: var(--nw-font-body);
    color: var(--nw-text-dark);
    outline: none;
    min-width: 0;
}
.nw-footer-newsletter__form button {
    background: var(--nw-ink);
    color: var(--nw-white);
    border: 0;
    border-radius: var(--nw-radius-pill);
    padding: 10px 24px;
    font-family: var(--nw-font-display);
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
}
.nw-footer-newsletter__form button:hover { background: #0a1530; }

/* Main footer */
.nw-footer-main { padding-block: var(--nw-space-8) var(--nw-space-6); }
.nw-footer-grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1.2fr;
    gap: var(--nw-space-6);
}
@media (max-width: 1024px) { .nw-footer-grid { grid-template-columns: 1fr 1fr; gap: var(--nw-space-5); } }
@media (max-width: 600px)  { .nw-footer-grid { grid-template-columns: 1fr; } }

.nw-footer-col__title {
    font-family: var(--nw-font-display);
    font-weight: 700;
    font-size: 14px;
    color: var(--nw-white);
    margin: 0 0 var(--nw-space-4);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.nw-footer-brand__logo { display: inline-block; margin-block-end: var(--nw-space-3); }
.nw-footer-brand__logo img { max-width: 160px; height: auto; }
.nw-footer-brand__tagline {
    color: rgba(255,255,255,0.6);
    font-size: 14px;
    line-height: 1.6;
    margin: 0 0 var(--nw-space-4);
    max-width: 280px;
}
.nw-footer-brand__socials { display: flex; gap: var(--nw-space-2); }
.nw-footer-social {
    width: 36px; height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.12);
    color: var(--nw-white);
    transition: all var(--nw-duration-fast) var(--nw-ease-standard);
}
.nw-footer-social:hover {
    background: var(--nw-blue);
    border-color: var(--nw-blue);
    color: var(--nw-white);
    transform: translateY(-2px);
}

/* Footer menus */
.nw-footer-menu {
    list-style: none;
    margin: 0;
    padding: 0;
}
.nw-footer-menu li { margin-block-end: 8px; }
.nw-footer-menu a {
    color: rgba(255,255,255,0.7);
    text-decoration: none;
    font-size: 14px;
    transition: color var(--nw-duration-fast) var(--nw-ease-standard);
}
.nw-footer-menu a:hover { color: var(--nw-white); }

/* Contact list */
.nw-footer-contact { list-style: none; margin: 0; padding: 0; }
.nw-footer-contact li { margin-block-end: var(--nw-space-2); font-size: 14px; }
.nw-footer-contact a { color: rgba(255,255,255,0.7); text-decoration: none; }
.nw-footer-contact a:hover { color: var(--nw-white); }
.nw-footer-contact .nw-address {
    color: rgba(255,255,255,0.7);
    font-style: normal;
    line-height: 1.6;
}

/* Bottom bar */
.nw-footer-bottom {
    border-block-start: 1px solid rgba(255,255,255,0.08);
    padding-block: var(--nw-space-4);
}
.nw-footer-bottom__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--nw-space-4);
    flex-wrap: wrap;
    font-size: 13px;
    color: rgba(255,255,255,0.5);
}
@media (max-width: 768px) {
    .nw-footer-bottom__inner { flex-direction: column; text-align: center; gap: var(--nw-space-3); }
}
.nw-footer-payments { display: flex; gap: 6px; flex-wrap: wrap; justify-content: center; }
.nw-pay-pill {
    background: rgba(255,255,255,0.08);
    color: rgba(255,255,255,0.7);
    padding: 4px 10px;
    border-radius: var(--nw-radius-sm);
    font-family: var(--nw-font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.nw-footer-legal-menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: var(--nw-space-4);
}
.nw-footer-legal-menu a {
    color: rgba(255,255,255,0.5);
    text-decoration: none;
    font-size: 13px;
}
.nw-footer-legal-menu a:hover { color: var(--nw-white); }

/* Hide Astra parent's leftover header/footer if any leak through */
.ast-main-header-wrap,
.ast-header-break-point .ast-mobile-header-wrap,
.site-footer.footer-sml-layout-1,
.site-footer.footer-sml-layout-2,
#colophon > .footer-adv,
#colophon > .footer-sml-section-1,
#colophon > .footer-sml-section-2 {
    display: none !important;
}

/* =============================================================
   [HERO-V2] Hero polish — eyebrow pill, stripe pattern, brand-blue highlight
   ============================================================= */
.nw-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border-radius: var(--nw-radius-pill);
    background: rgba(255,255,255,0.14);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255,255,255,0.22);
    font-family: var(--nw-font-mono);
    font-size: 12px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--nw-white);
    margin-block-end: var(--nw-space-4);
}
.nw-hero__title em {
    font-style: normal;
    color: var(--nw-blue-bright);
    background: rgba(59,130,246,0.18);
    padding: 0 0.1em;
    border-radius: 8px;
}
.nw-hero__stripes {
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
        45deg,
        transparent 0 20px,
        rgba(255,255,255,0.025) 20px 40px
    );
    pointer-events: none;
    z-index: 0;
}
.nw-hero__meta {
    display: flex;
    gap: var(--nw-space-5);
    margin-block-start: var(--nw-space-5);
    font-family: var(--nw-font-mono);
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.7);
    flex-wrap: wrap;
}
.nw-hero__meta span { display: inline-flex; align-items: center; gap: 6px; }
.nw-hero__meta-dot { color: var(--nw-blue-bright); font-size: 14px; }

/* =============================================================
   [STATS] Social proof numbers strip
   ============================================================= */
.nw-stats {
    background: var(--nw-ink);
    color: var(--nw-white);
    padding-block: var(--nw-space-7);
    position: relative;
    overflow: hidden;
}
.nw-stats::before {
    content: '';
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
        45deg,
        transparent 0 24px,
        rgba(255,255,255,0.025) 24px 48px
    );
    pointer-events: none;
}
.nw-stats__inner {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--nw-space-5);
    text-align: center;
    position: relative;
    z-index: 1;
}
@media (max-width: 768px) { .nw-stats__inner { grid-template-columns: repeat(2, 1fr); gap: var(--nw-space-4); } }

.nw-stat__num {
    font-family: var(--nw-font-display);
    font-weight: 800;
    font-size: clamp(36px, 5vw, 56px);
    color: var(--nw-white);
    margin: 0 0 4px;
    letter-spacing: -0.02em;
    line-height: 1;
}
.nw-stat__num em {
    font-style: normal;
    color: var(--nw-blue-bright);
}
.nw-stat__label {
    font-family: var(--nw-font-mono);
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.6);
    margin: 0;
}

/* =============================================================
   [TESTIMONIALS] Customer review cards
   ============================================================= */
.nw-testimonials {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--nw-space-5);
}
@media (max-width: 1024px) { .nw-testimonials { grid-template-columns: 1fr; } }

.nw-testimonial-card {
    background: var(--nw-white);
    border: 1px solid var(--nw-cloud);
    border-radius: var(--nw-radius-lg);
    padding: var(--nw-space-6);
    position: relative;
    transition: all var(--nw-duration-base) var(--nw-ease-standard);
}
.nw-testimonial-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--nw-shadow-lg);
    border-color: var(--nw-blue);
}
.nw-testimonial-card__quote {
    font-family: var(--nw-font-display);
    font-size: 60px;
    line-height: 0.6;
    color: var(--nw-blue);
    opacity: 0.18;
    position: absolute;
    inset-block-start: 18px;
    inset-inline-start: 24px;
    pointer-events: none;
}
.nw-testimonial-card__stars {
    color: var(--nw-warning);
    font-size: 14px;
    letter-spacing: 2px;
    margin-block-end: var(--nw-space-3);
    position: relative;
    z-index: 1;
}
.nw-testimonial-card__text {
    font-family: var(--nw-font-display);
    font-size: 17px;
    font-weight: 500;
    line-height: 1.5;
    color: var(--nw-ink);
    margin: 0 0 var(--nw-space-4);
    position: relative;
    z-index: 1;
}
.nw-testimonial-card__author {
    display: flex;
    align-items: center;
    gap: var(--nw-space-3);
    border-block-start: 1px solid var(--nw-cloud);
    padding-block-start: var(--nw-space-4);
}
.nw-testimonial-card__avatar {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--nw-blue-pale);
    color: var(--nw-blue);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--nw-font-display);
    font-weight: 700;
    font-size: 16px;
}
.nw-testimonial-card__name {
    font-family: var(--nw-font-display);
    font-weight: 700;
    color: var(--nw-ink);
    font-size: 15px;
    margin: 0;
}
.nw-testimonial-card__location {
    font-family: var(--nw-font-mono);
    font-size: 11px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--nw-text-gray);
    margin: 0;
}

/* =============================================================
   [PRESS] Featured-in publications bar
   ============================================================= */
.nw-press {
    background: var(--nw-bg);
    padding-block: var(--nw-space-6);
    border-block-start: 1px solid var(--nw-cloud);
    border-block-end: 1px solid var(--nw-cloud);
}
.nw-press__title {
    font-family: var(--nw-font-mono);
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--nw-text-gray);
    text-align: center;
    margin: 0 0 var(--nw-space-4);
}
.nw-press__list {
    display: flex;
    align-items: center;
    justify-content: space-around;
    flex-wrap: wrap;
    gap: var(--nw-space-5);
    list-style: none;
    margin: 0;
    padding: 0;
}
.nw-press__list li {
    font-family: var(--nw-font-display);
    font-weight: 800;
    font-size: 22px;
    color: var(--nw-text-gray);
    opacity: 0.55;
    letter-spacing: -0.01em;
    transition: opacity var(--nw-duration-fast) var(--nw-ease-standard);
}
.nw-press__list li:hover { opacity: 1; color: var(--nw-ink); }

/* =============================================================
   [GALLERY] Instagram-style lifestyle grid
   ============================================================= */
.nw-gallery {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: var(--nw-space-2);
}
@media (max-width: 1024px) { .nw-gallery { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 480px)  { .nw-gallery { grid-template-columns: repeat(2, 1fr); } }

.nw-gallery__item {
    aspect-ratio: 1 / 1;
    background: linear-gradient(135deg, var(--nw-blue-pale), #DBEAFE);
    border-radius: var(--nw-radius-md);
    overflow: hidden;
    position: relative;
    cursor: pointer;
    display: block;
}
.nw-gallery__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--nw-duration-slow) var(--nw-ease-standard);
}
.nw-gallery__item::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 50%, rgba(15,23,42,0.6));
    opacity: 0;
    transition: opacity var(--nw-duration-fast) var(--nw-ease-standard);
}
.nw-gallery__item:hover img { transform: scale(1.05); }
.nw-gallery__item:hover::after { opacity: 1; }
.nw-gallery__placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--nw-blue-pale), #DBEAFE);
    color: var(--nw-blue);
    font-family: var(--nw-font-mono);
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}
.nw-gallery__cta {
    text-align: center;
    margin-block-start: var(--nw-space-5);
}
.nw-gallery__cta a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--nw-blue);
    font-family: var(--nw-font-display);
    font-weight: 600;
    text-decoration: none;
    font-size: 15px;
}
.nw-gallery__cta a:hover { color: var(--nw-ink); }

/* =============================================================
   [FADE-IN] Subtle scroll animation (CSS-only via @keyframes)
   ============================================================= */
@media (prefers-reduced-motion: no-preference) {
    .nw-fade-in {
        animation: nw-fade-up 0.7s var(--nw-ease-emphasized) both;
    }
    @keyframes nw-fade-up {
        from { opacity: 0; transform: translateY(20px); }
        to   { opacity: 1; transform: translateY(0); }
    }
}

/* =============================================================
   [TIMELINE] Vertical milestones timeline (About page)
   ============================================================= */
.nw-timeline {
    position: relative;
    max-width: 720px;
    margin: 0 auto;
}
.nw-timeline::before {
    content: '';
    position: absolute;
    inset-inline-start: 24px;
    inset-block-start: 8px;
    inset-block-end: 0;
    width: 2px;
    background: linear-gradient(to bottom, var(--nw-blue) 0%, var(--nw-blue) 80%, transparent 100%);
}
.nw-timeline__item {
    position: relative;
    padding-inline-start: 72px;
    padding-block-end: var(--nw-space-6);
}
.nw-timeline__item:last-child { padding-block-end: 0; }
.nw-timeline__dot {
    position: absolute;
    inset-inline-start: 14px;
    inset-block-start: 4px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--nw-white);
    border: 4px solid var(--nw-blue);
    box-shadow: 0 0 0 4px var(--nw-blue-pale);
}
.nw-timeline__year {
    font-family: var(--nw-font-mono);
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--nw-blue);
    font-weight: 600;
    display: block;
    margin-block-end: 4px;
}
.nw-timeline__title {
    font-family: var(--nw-font-display);
    font-weight: 700;
    font-size: 20px;
    color: var(--nw-ink);
    margin: 0 0 8px;
}
.nw-timeline__text {
    color: var(--nw-text-gray);
    font-size: 15px;
    line-height: 1.6;
    margin: 0;
}

/* =============================================================
   [TEAM-GRID] Founder / team cards
   ============================================================= */
.nw-team-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--nw-space-5);
}
@media (max-width: 1024px) { .nw-team-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .nw-team-grid { grid-template-columns: 1fr; } }

.nw-team-card {
    background: var(--nw-white);
    border: 1px solid var(--nw-cloud);
    border-radius: var(--nw-radius-lg);
    padding: var(--nw-space-5);
    text-align: center;
    transition: all var(--nw-duration-base) var(--nw-ease-standard);
}
.nw-team-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--nw-shadow-md);
    border-color: var(--nw-blue);
}
.nw-team-card__photo {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--nw-blue-pale), #DBEAFE);
    color: var(--nw-blue);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--nw-font-display);
    font-weight: 800;
    font-size: 32px;
    margin-block-end: var(--nw-space-3);
    border: 3px solid var(--nw-white);
    box-shadow: var(--nw-shadow-md);
}
.nw-team-card__photo img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
}
.nw-team-card__name {
    font-family: var(--nw-font-display);
    font-weight: 700;
    font-size: 18px;
    color: var(--nw-ink);
    margin: 0 0 4px;
}
.nw-team-card__role {
    font-family: var(--nw-font-mono);
    font-size: 11px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--nw-blue);
    margin: 0 0 var(--nw-space-3);
}
.nw-team-card__bio {
    color: var(--nw-text-gray);
    font-size: 14px;
    line-height: 1.55;
    margin: 0 0 var(--nw-space-3);
}
.nw-team-card__socials {
    display: flex;
    gap: 8px;
    justify-content: center;
}
.nw-team-card__socials a {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--nw-bg);
    border: 1px solid var(--nw-cloud);
    color: var(--nw-text-gray);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    font-size: 12px;
    font-weight: 600;
    transition: all var(--nw-duration-fast) var(--nw-ease-standard);
}
.nw-team-card__socials a:hover { background: var(--nw-blue); color: var(--nw-white); border-color: var(--nw-blue); }

/* =============================================================
   [HOURS] Working hours grid (Contact page)
   ============================================================= */
.nw-hours {
    background: var(--nw-bg);
    border-radius: var(--nw-radius-md);
    padding: var(--nw-space-4) var(--nw-space-5);
    margin-block-start: var(--nw-space-3);
}
.nw-hours__row {
    display: flex;
    justify-content: space-between;
    padding-block: 8px;
    font-size: 14px;
}
.nw-hours__row + .nw-hours__row {
    border-block-start: 1px solid var(--nw-cloud);
}
.nw-hours__day {
    font-family: var(--nw-font-display);
    font-weight: 600;
    color: var(--nw-ink);
}
.nw-hours__time {
    color: var(--nw-text-gray);
    font-family: var(--nw-font-mono);
    font-size: 13px;
}
.nw-hours__row--closed .nw-hours__time { color: var(--nw-error); }
.nw-hours__row--today {
    background: var(--nw-blue-pale);
    margin-inline: calc(-1 * var(--nw-space-5));
    padding-inline: var(--nw-space-5);
    border-radius: var(--nw-radius-sm);
}

/* =============================================================
   [MAP-EMBED] Map iframe wrapper
   ============================================================= */
.nw-map-embed {
    width: 100%;
    aspect-ratio: 16 / 9;
    border-radius: var(--nw-radius-lg);
    border: 1px solid var(--nw-cloud);
    overflow: hidden;
    background: var(--nw-bg);
    box-shadow: var(--nw-shadow-sm);
}
.nw-map-embed iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}
.nw-map-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 8px;
    color: var(--nw-text-gray);
    background: linear-gradient(135deg, var(--nw-blue-pale), #DBEAFE);
}

/* =============================================================
   [SOCIAL-BAR] Inline social row (Contact page)
   ============================================================= */
.nw-social-bar {
    display: flex;
    gap: var(--nw-space-2);
    margin-block-start: var(--nw-space-4);
    flex-wrap: wrap;
}
.nw-social-bar a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    background: var(--nw-bg);
    border: 1px solid var(--nw-cloud);
    border-radius: var(--nw-radius-pill);
    color: var(--nw-ink);
    text-decoration: none;
    font-family: var(--nw-font-display);
    font-weight: 600;
    font-size: 13px;
    transition: all var(--nw-duration-fast) var(--nw-ease-standard);
}
.nw-social-bar a:hover {
    background: var(--nw-blue);
    border-color: var(--nw-blue);
    color: var(--nw-white);
    transform: translateY(-2px);
}

/* =============================================================
   [BRAND-STRIP] Two-column brand story image+text helper
   ============================================================= */
.nw-brand-strip {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--nw-space-7);
    align-items: center;
}
@media (max-width: 768px) { .nw-brand-strip { grid-template-columns: 1fr; gap: var(--nw-space-5); } }
.nw-brand-strip--reverse > :first-child { order: 2; }
@media (max-width: 768px) { .nw-brand-strip--reverse > :first-child { order: 0; } }

.nw-brand-strip__title {
    font-family: var(--nw-font-display);
    font-weight: 700;
    font-size: clamp(28px, 3vw, 36px);
    color: var(--nw-ink);
    margin: 0 0 var(--nw-space-3);
    letter-spacing: -0.01em;
    line-height: 1.15;
}
.nw-brand-strip__text {
    color: var(--nw-text-dark);
    font-size: 16px;
    line-height: 1.7;
    margin: 0 0 var(--nw-space-3);
}
.nw-brand-strip__image {
    aspect-ratio: 4 / 3;
    border-radius: var(--nw-radius-xl);
    background: linear-gradient(135deg, var(--nw-blue-pale), #DBEAFE);
    overflow: hidden;
    box-shadow: var(--nw-shadow-md);
}
.nw-brand-strip__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* =============================================================
   [LIFT-2026-05] Brand polish — icons, wordmark press, gallery
   art, hero ornaments, newsletter card, header lockup
   ============================================================= */

/* [ICON] base */
.nw-icon { display: inline-block; vertical-align: middle; flex: 0 0 auto; }
.nw-icon--star { color: #F5B400; }

/* [HEADER-LOCKUP] real brand asset */
.nw-header__lockup { height: 36px; width: auto; display: block; }
@media (max-width: 600px) { .nw-header__lockup { height: 30px; } }

/* [HERO] eyebrow + meta now contain SVGs, not emoji */
.nw-hero__eyebrow .nw-icon { color: var(--nw-blue-bright); }
.nw-hero__meta span { display: inline-flex; align-items: center; gap: 8px; }
.nw-hero__meta .nw-icon { color: var(--nw-blue-bright); }
.nw-hero__btn .nw-icon { transition: transform var(--nw-duration-fast) var(--nw-ease-standard); }
.nw-hero__btn:hover .nw-icon { transform: translateX(2px); }

/* [HERO-IMAGE-FRAME] floating image with branded gradient frame + badge */
.nw-hero__image-frame {
    position: relative;
    border-radius: var(--nw-radius-xl);
    padding: 6px;
    background: linear-gradient(135deg, rgba(59,130,246,0.6), rgba(255,255,255,0.05) 50%, rgba(19,39,88,0.4));
    box-shadow: 0 30px 60px rgba(15,23,42,0.5), 0 0 0 1px rgba(255,255,255,0.08) inset;
    animation: nw-float 6s var(--nw-ease-standard) infinite;
}
.nw-hero__image-frame img {
    border-radius: var(--nw-radius-lg);
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    display: block;
    margin: 0;
}
.nw-hero__badge {
    position: absolute;
    inset-block-end: -16px;
    inset-inline-start: -16px;
    background: var(--nw-white);
    color: var(--nw-ink);
    border-radius: var(--nw-radius-pill);
    padding: 10px 18px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--nw-font-display);
    font-weight: 600;
    font-size: 13px;
    box-shadow: 0 12px 32px rgba(15,23,42,0.25), 0 0 0 1px rgba(15,23,42,0.04);
}
.nw-hero__badge .nw-icon { color: var(--nw-blue); }
.nw-hero__badge em { font-style: normal; color: var(--nw-blue); font-weight: 800; }
@media (max-width: 768px) { .nw-hero__badge { inset-inline-start: 50%; transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .nw-hero__image-frame { animation: none; } }
@keyframes nw-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }

/* [HERO-ORBS] dedicated layer (replaces ::before/::after positioning) */
.nw-hero__orbs { position: absolute; inset: 0; pointer-events: none; z-index: 0; }
.nw-hero__orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    opacity: 0.5;
}
.nw-hero__orb--1 {
    width: 480px; height: 480px;
    background: var(--nw-blue-bright);
    inset-block-start: -120px;
    inset-inline-start: -120px;
    animation: nw-orb-drift 12s ease-in-out infinite;
}
.nw-hero__orb--2 {
    width: 360px; height: 360px;
    background: #6366F1;
    inset-block-end: -100px;
    inset-inline-end: -100px;
    animation: nw-orb-drift 14s ease-in-out infinite reverse;
}
@keyframes nw-orb-drift {
    0%,100% { transform: translate(0,0); }
    50%     { transform: translate(40px,-30px); }
}
@media (prefers-reduced-motion: reduce) { .nw-hero__orb { animation: none; } }
.nw-hero::before, .nw-hero::after { display: none; }

/* [TRUST-STRIP] SVG icons replace emoji */
.nw-trust-item__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: var(--nw-radius-md);
    background: var(--nw-blue-pale);
    color: var(--nw-blue);
    font-size: inherit;
    line-height: 1;
}
.nw-trust-item { gap: 10px; }

/* [CATEGORY-CARD] SVG icon wrapper */
.nw-cat-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: var(--nw-radius-md);
    background: rgba(59,130,246,0.14);
    color: var(--nw-blue-bright);
    margin: 0 auto var(--nw-space-2);
    transition: all var(--nw-duration-base) var(--nw-ease-standard);
}
.nw-cat-card:hover .nw-cat-card__icon {
    background: var(--nw-blue);
    color: var(--nw-white);
    transform: scale(1.06);
}
.nw-cat-card__count {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: gap var(--nw-duration-fast) var(--nw-ease-standard);
}
.nw-cat-card:hover .nw-cat-card__count { gap: 10px; color: var(--nw-blue-bright); }

/* [FEATURE-CARD] SVG icon wrapper */
.nw-feat-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: var(--nw-radius-md);
    background: var(--nw-blue-pale);
    color: var(--nw-blue);
    margin: 0 auto var(--nw-space-3);
    font-size: inherit;
    transition: all var(--nw-duration-base) var(--nw-ease-standard);
}
.nw-feat-card:hover .nw-feat-card__icon {
    background: var(--nw-blue);
    color: var(--nw-white);
    transform: scale(1.06) rotate(-3deg);
}

/* [PRESS] wordmark cards instead of bare list */
.nw-press {
    background:
        radial-gradient(circle at top left, rgba(59,130,246,0.06), transparent 50%),
        var(--nw-bg);
    padding-block: var(--nw-space-7);
}
.nw-press__list {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: var(--nw-space-3);
    align-items: stretch;
}
@media (max-width: 1024px) { .nw-press__list { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 480px)  { .nw-press__list { grid-template-columns: repeat(2, 1fr); } }
.nw-press__list li.nw-press__wm {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 64px;
    padding: 0 var(--nw-space-3);
    background: var(--nw-white);
    border: 1px solid var(--nw-cloud);
    border-radius: var(--nw-radius-md);
    transition: all var(--nw-duration-base) var(--nw-ease-standard);
    opacity: 1;
    color: var(--nw-text-gray);
    font-family: var(--nw-font-display);
    font-weight: 800;
    font-size: 17px;
    letter-spacing: -0.01em;
}
.nw-press__wm span {
    filter: grayscale(1);
    transition: all var(--nw-duration-fast) var(--nw-ease-standard);
    text-align: center;
    white-space: nowrap;
}
.nw-press__wm:hover {
    border-color: var(--nw-blue);
    background: var(--nw-white);
    box-shadow: var(--nw-shadow-md);
    transform: translateY(-2px);
    color: var(--nw-ink);
}
.nw-press__wm:hover span { filter: none; }

/* [GALLERY] branded art tiles instead of empty placeholders */
.nw-gallery__item {
    position: relative;
    aspect-ratio: 1 / 1;
    border-radius: var(--nw-radius-md);
    overflow: hidden;
    background: var(--nw-navy);
    display: block;
}
.nw-gallery__art {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: linear-gradient(135deg, var(--nw-blue-bright) 0%, var(--nw-blue) 60%, var(--nw-ink) 100%);
    color: rgba(255,255,255,0.9);
    transition: transform var(--nw-duration-slow) var(--nw-ease-standard);
}
.nw-gallery__item--1 .nw-gallery__art { background: linear-gradient(135deg, #3B82F6, #1D4ED8); }
.nw-gallery__item--2 .nw-gallery__art { background: linear-gradient(135deg, #1D4ED8, #132758); }
.nw-gallery__item--3 .nw-gallery__art { background: linear-gradient(135deg, #6366F1, #1D4ED8); }
.nw-gallery__item--4 .nw-gallery__art { background: linear-gradient(135deg, #3B82F6, #6366F1); }
.nw-gallery__item--5 .nw-gallery__art { background: linear-gradient(135deg, #132758, #1D4ED8); }
.nw-gallery__item--6 .nw-gallery__art { background: linear-gradient(135deg, #1D4ED8, #3B82F6); }
.nw-gallery__art::before {
    content: '';
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(45deg, transparent 0 14px, rgba(255,255,255,0.05) 14px 28px);
    pointer-events: none;
}
.nw-gallery__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: rgba(255,255,255,0.95);
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: rgba(255,255,255,0.12);
    backdrop-filter: blur(6px);
    border: 1px solid rgba(255,255,255,0.2);
    position: relative;
    z-index: 1;
}
.nw-gallery__brand {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--nw-font-mono);
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.9);
    position: relative;
    z-index: 1;
}
.nw-gallery__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 50%, rgba(15,23,42,0.7));
    opacity: 0;
    display: flex;
    align-items: flex-end;
    padding: var(--nw-space-3);
    transition: opacity var(--nw-duration-base) var(--nw-ease-standard);
    z-index: 2;
}
.nw-gallery__tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--nw-white);
    font-family: var(--nw-font-display);
    font-weight: 600;
    font-size: 13px;
}
.nw-gallery__item:hover .nw-gallery__overlay { opacity: 1; }
.nw-gallery__item:hover .nw-gallery__art { transform: scale(1.06); }
.nw-gallery__item::after { display: none; }
.nw-gallery__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform var(--nw-duration-slow) var(--nw-ease-standard);
}
.nw-gallery__item:hover .nw-gallery__img { transform: scale(1.06); }
.nw-team-card__photo--has-img { background: var(--nw-bg); padding: 0; overflow: hidden; }

/* =============================================================
   [404] Custom 404 page
   ============================================================= */
.nw-404 { background: var(--nw-white); }
.nw-404__hero {
    position: relative;
    background: var(--nw-gradient);
    color: var(--nw-white);
    padding-block: var(--nw-space-9);
    overflow: hidden;
    text-align: center;
}
.nw-404__inner { position: relative; z-index: 1; max-width: 720px; margin: 0 auto; }
.nw-404__orbs { position: absolute; inset: 0; pointer-events: none; }
.nw-404__orb { position: absolute; border-radius: 50%; filter: blur(80px); opacity: 0.45; }
.nw-404__orb--1 { width: 420px; height: 420px; background: var(--nw-blue-bright); inset-block-start: -100px; inset-inline-start: -100px; }
.nw-404__orb--2 { width: 320px; height: 320px; background: #6366F1; inset-block-end: -80px; inset-inline-end: -80px; }
.nw-404__code {
    font-family: var(--nw-font-display);
    font-weight: 800;
    font-size: clamp(96px, 18vw, 200px);
    line-height: 1;
    letter-spacing: -0.04em;
    background: linear-gradient(180deg, rgba(255,255,255,1), rgba(255,255,255,0.35));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    display: block;
    margin-block-end: var(--nw-space-3);
    text-shadow: 0 16px 60px rgba(0,0,0,0.25);
}
.nw-404__title {
    font-family: var(--nw-font-display);
    font-weight: 800;
    font-size: clamp(28px, 4vw, 44px);
    color: var(--nw-white);
    margin: 0 0 var(--nw-space-3);
    letter-spacing: -0.02em;
}
.nw-404__subtitle { font-size: 17px; color: rgba(255,255,255,0.85); margin: 0 0 var(--nw-space-6); line-height: 1.5; }
.nw-404__search {
    position: relative;
    display: flex;
    align-items: center;
    background: var(--nw-white);
    border-radius: var(--nw-radius-pill);
    padding: 6px;
    max-width: 520px;
    margin: 0 auto var(--nw-space-5);
    box-shadow: 0 12px 32px rgba(0,0,0,0.18);
}
.nw-404__search-icon { display: inline-flex; align-items: center; justify-content: center; color: var(--nw-text-gray); padding-inline-start: var(--nw-space-3); }
.nw-404__search input[type="search"] {
    flex: 1;
    border: 0;
    background: transparent;
    padding: 14px var(--nw-space-3);
    font-family: var(--nw-font-body);
    font-size: 15px;
    color: var(--nw-text-dark);
    outline: none;
}
.nw-404__search button {
    background: var(--nw-blue);
    color: var(--nw-white);
    border: 0;
    border-radius: var(--nw-radius-pill);
    padding: 12px 24px;
    font-family: var(--nw-font-display);
    font-weight: 600;
    cursor: pointer;
    transition: background var(--nw-duration-fast) var(--nw-ease-standard);
}
.nw-404__search button:hover { background: var(--nw-ink); }
.nw-404__ctas { display: flex; gap: var(--nw-space-3); justify-content: center; flex-wrap: wrap; }

/* =============================================================
   [BRAND-LOCKUP] Inline dimensional N + animated wordmark reveal
   ============================================================= */
.nw-lockup {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    line-height: 1;
    color: inherit;
}
.nw-lockup__mark {
    flex: 0 0 auto;
    display: block;
    filter: drop-shadow(0 4px 14px rgba(15, 23, 42, 0.3));
    opacity: 0;
    transform: scale(.4) rotate(-8deg);
}
.nw-lockup__word-wrap {
    display: inline-block;
    overflow: hidden;
    clip-path: inset(-20px 100% -20px 0);
}
.nw-lockup__word {
    display: inline-block;
    font-family: var(--nw-font-display);
    font-weight: 800;
    font-size: 24px;
    letter-spacing: -0.025em;
    line-height: 1;
    padding: .15em 0 .15em;
}
.nw-lockup--dark  .nw-lockup__word { color: var(--nw-white); }
.nw-lockup--light .nw-lockup__word { color: var(--nw-ink); }

@media (max-width: 600px) {
    .nw-lockup__word { font-size: 20px; }
}

@media (prefers-reduced-motion: no-preference) {
    .nw-lockup__mark { animation: nw-lockup-mark .75s cubic-bezier(.34, 1.56, .64, 1) both; }
    .nw-lockup__word-wrap { animation: nw-lockup-wipe .7s cubic-bezier(.4, 0, .2, 1) .5s both; }
}
@media (prefers-reduced-motion: reduce) {
    .nw-lockup__mark { opacity: 1; transform: none; }
    .nw-lockup__word-wrap { clip-path: inset(-20px 0 -20px 0); }
}

@keyframes nw-lockup-mark {
    0%   { opacity: 0; transform: scale(.4) rotate(-8deg); }
    60%  { opacity: 1; transform: scale(1.1) rotate(2deg); }
    100% { opacity: 1; transform: scale(1) rotate(0); }
}
@keyframes nw-lockup-wipe {
    0%   { clip-path: inset(-20px 100% -20px 0); }
    100% { clip-path: inset(-20px 0% -20px 0); }
}

/* =============================================================
   [DIMENSIONAL-N] Watermarks behind hero + testimonials
   ============================================================= */
.nw-hero__watermark {
    position: absolute;
    inset-block-start: -8%;
    inset-inline-end: -6%;
    width: clamp(420px, 50vw, 720px);
    height: auto;
    aspect-ratio: 1;
    opacity: 0.18;
    pointer-events: none;
    z-index: 0;
    animation: nw-mark-drift 16s ease-in-out infinite;
}
.nw-hero__watermark svg { width: 100%; height: 100%; display: block; }
@media (max-width: 900px) {
    .nw-hero__watermark { inset-block-start: auto; inset-block-end: -10%; inset-inline-end: -20%; opacity: 0.12; }
}
@keyframes nw-mark-drift {
    0%, 100% { transform: translate(0, 0) rotate(0deg); }
    50%      { transform: translate(-12px, 18px) rotate(-2deg); }
}
@media (prefers-reduced-motion: reduce) { .nw-hero__watermark { animation: none; } }

/* Section watermark (testimonials, press, etc.) */
.nw-section--with-mark { position: relative; overflow: hidden; }
.nw-section__mark {
    position: absolute;
    inset-block-start: 50%;
    inset-inline-end: -10%;
    transform: translateY(-50%);
    width: clamp(280px, 32vw, 460px);
    height: auto;
    aspect-ratio: 1;
    opacity: 0.06;
    pointer-events: none;
    z-index: 0;
}
.nw-section__mark svg { width: 100%; height: 100%; display: block; }
.nw-section--with-mark > .nw-container { position: relative; z-index: 1; }

/* =============================================================
   [404-MARK] Dimensional N alongside the 404 code
   ============================================================= */
.nw-404__mark-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--nw-space-4);
    margin-block-end: var(--nw-space-3);
    flex-wrap: wrap;
}
.nw-404__mark-row .nw-mark-dim {
    filter: drop-shadow(0 12px 32px rgba(0, 0, 0, 0.35));
    flex: 0 0 auto;
}
.nw-404__code--inline { margin: 0; display: inline-block; }

/* =============================================================
   [PROMO-FLASH] Dark navy "−30% EVERYTHING" sale block
   ============================================================= */
.nw-promo-flash {
    position: relative;
    background: var(--nw-navy);
    color: var(--nw-white);
    border-radius: var(--nw-radius-xl);
    padding: var(--nw-space-9) var(--nw-space-6);
    text-align: center;
    overflow: hidden;
    isolation: isolate;
}
.nw-promo-flash::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(59,130,246,.08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(59,130,246,.08) 1px, transparent 1px);
    background-size: 80px 80px;
    -webkit-mask-image: radial-gradient(circle at 50% 35%, black 30%, transparent 70%);
            mask-image: radial-gradient(circle at 50% 35%, black 30%, transparent 70%);
    pointer-events: none;
    z-index: 0;
}
.nw-promo-flash > * { position: relative; z-index: 1; }
.nw-promo-flash__pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 18px;
    border-radius: var(--nw-radius-pill);
    background: rgba(59,130,246,.18);
    border: 1px solid rgba(59,130,246,.32);
    backdrop-filter: blur(8px);
    color: var(--nw-blue-bright);
    font-family: var(--nw-font-mono);
    font-size: 12px;
    letter-spacing: .18em;
    text-transform: uppercase;
    margin-block-end: var(--nw-space-4);
}
.nw-promo-flash__pill::before {
    content: '';
    width: 8px; height: 8px;
    border-radius: 50%;
    background: var(--nw-blue-bright);
    box-shadow: 0 0 12px var(--nw-blue-bright);
    animation: nw-pulse-dot 1.4s ease-in-out infinite;
}
@keyframes nw-pulse-dot { 0%,100% { opacity:1; transform:scale(1); } 50% { opacity:.5; transform:scale(.7); } }
.nw-promo-flash__mega {
    font-family: var(--nw-font-display);
    font-weight: 800;
    font-size: clamp(96px, 18vw, 220px);
    line-height: .9;
    letter-spacing: -.04em;
    margin: 0;
    background: linear-gradient(180deg, #ffffff 0%, #cfe1ff 60%, #3b82f6 100%);
    -webkit-background-clip: text;
            background-clip: text;
    color: transparent;
    text-shadow: 0 16px 60px rgba(59,130,246,.25);
}
.nw-promo-flash__sub {
    font-family: var(--nw-font-display);
    font-weight: 800;
    font-size: clamp(20px, 2.4vw, 32px);
    letter-spacing: .04em;
    color: var(--nw-white);
    margin: -8px 0 var(--nw-space-5);
}
.nw-promo-flash__line {
    color: rgba(255,255,255,.7);
    font-size: 16px;
    margin: 0 0 var(--nw-space-5);
}
.nw-promo-flash__line em {
    font-style: normal;
    color: var(--nw-blue-bright);
    font-weight: 600;
}
.nw-promo-flash__btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 18px 36px;
    border-radius: var(--nw-radius-pill);
    background: var(--nw-gradient-flat);
    color: var(--nw-white);
    font-family: var(--nw-font-display);
    font-weight: 700;
    font-size: 16px;
    text-decoration: none;
    box-shadow: 0 12px 36px rgba(59,130,246,.4), 0 0 0 1px rgba(59,130,246,.2) inset;
    transition: transform var(--nw-duration-fast) var(--nw-ease-standard), box-shadow var(--nw-duration-base) var(--nw-ease-standard);
}
.nw-promo-flash__btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 48px rgba(59,130,246,.55), 0 0 0 1px rgba(59,130,246,.4) inset;
    color: var(--nw-white);
}
.nw-promo-flash__btn .nw-icon { transition: transform var(--nw-duration-fast); }
.nw-promo-flash__btn:hover .nw-icon { transform: translateX(4px); }

/* =============================================================
   [ARRIVALS-INTRO] Gradient "Fresh arrivals." panel above grid
   ============================================================= */
.nw-arrivals-intro {
    position: relative;
    background: var(--nw-gradient);
    color: var(--nw-white);
    border-radius: var(--nw-radius-xl);
    padding: var(--nw-space-8) var(--nw-space-7);
    margin-block-end: var(--nw-space-7);
    overflow: hidden;
    isolation: isolate;
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: var(--nw-space-5);
    align-items: end;
}
@media (max-width: 768px) { .nw-arrivals-intro { grid-template-columns: 1fr; } }
.nw-arrivals-intro::before {
    content: '';
    position: absolute;
    width: 600px; height: 600px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,255,255,.16), transparent 60%);
    bottom: -240px; right: -180px;
    pointer-events: none;
}
.nw-arrivals-intro__pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border-radius: var(--nw-radius-pill);
    background: rgba(255,255,255,.16);
    border: 1px solid rgba(255,255,255,.26);
    backdrop-filter: blur(8px);
    color: var(--nw-white);
    font-family: var(--nw-font-mono);
    font-size: 11px;
    letter-spacing: .18em;
    text-transform: uppercase;
    margin-block-end: var(--nw-space-4);
}
.nw-arrivals-intro__title {
    font-family: var(--nw-font-display);
    font-weight: 800;
    font-size: clamp(40px, 6vw, 88px);
    line-height: .95;
    letter-spacing: -.035em;
    color: var(--nw-white);
    margin: 0 0 var(--nw-space-3);
}
.nw-arrivals-intro__title em { font-style: normal; color: var(--nw-blue-bright); }
.nw-arrivals-intro__sub {
    color: rgba(255,255,255,.85);
    font-size: 16px;
    line-height: 1.5;
    margin: 0;
    max-width: 480px;
}
.nw-arrivals-intro__cta {
    align-self: end;
    justify-self: end;
}
@media (max-width: 768px) { .nw-arrivals-intro__cta { justify-self: start; } }
.nw-arrivals-intro__cta a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 14px 26px;
    border-radius: var(--nw-radius-pill);
    background: var(--nw-white);
    color: var(--nw-blue);
    font-family: var(--nw-font-display);
    font-weight: 700;
    text-decoration: none;
    transition: all var(--nw-duration-fast) var(--nw-ease-standard);
    box-shadow: 0 12px 30px rgba(0,0,0,.18);
}
.nw-arrivals-intro__cta a:hover { transform: translateY(-2px); background: var(--nw-blue-pale); color: var(--nw-ink); }

/* =============================================================
   [SCROLL-REVEAL] JS-driven (IntersectionObserver) — staged in
   ============================================================= */
.nw-reveal {
    opacity: 0;
    transform: translateY(28px);
    transition:
        opacity .8s var(--nw-ease-emphasized),
        transform .8s var(--nw-ease-emphasized);
    will-change: opacity, transform;
}
.nw-reveal.is-revealed { opacity: 1; transform: none; }
.nw-reveal--scale { transform: translateY(28px) scale(.96); }
.nw-reveal--scale.is-revealed { transform: none; }
.nw-reveal--left  { transform: translateX(-40px); }
.nw-reveal--right { transform: translateX(40px); }
.nw-reveal--left.is-revealed,
.nw-reveal--right.is-revealed { transform: none; }
@media (prefers-reduced-motion: reduce) {
    .nw-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* Stagger children when on a parent with .nw-reveal-stagger */
.nw-reveal-stagger > .nw-reveal { transition-delay: 0ms; }
.nw-reveal-stagger.is-revealed > .nw-reveal:nth-child(1) { transition-delay: 0ms; }
.nw-reveal-stagger.is-revealed > .nw-reveal:nth-child(2) { transition-delay: 80ms; }
.nw-reveal-stagger.is-revealed > .nw-reveal:nth-child(3) { transition-delay: 160ms; }
.nw-reveal-stagger.is-revealed > .nw-reveal:nth-child(4) { transition-delay: 240ms; }
.nw-reveal-stagger.is-revealed > .nw-reveal:nth-child(5) { transition-delay: 320ms; }
.nw-reveal-stagger.is-revealed > .nw-reveal:nth-child(6) { transition-delay: 400ms; }

/* =============================================================
   [WORD-FADE] Hero / promo headline word-by-word fade
   ============================================================= */
.nw-word-fade .nw-word {
    display: inline-block;
    opacity: 0;
    transform: translateY(0.5em);
    animation: nw-word-rise .8s var(--nw-ease-emphasized) both;
}
.nw-word-fade .nw-word:nth-child(1) { animation-delay: .05s; }
.nw-word-fade .nw-word:nth-child(2) { animation-delay: .15s; }
.nw-word-fade .nw-word:nth-child(3) { animation-delay: .25s; }
.nw-word-fade .nw-word:nth-child(4) { animation-delay: .35s; }
.nw-word-fade .nw-word:nth-child(5) { animation-delay: .45s; }
.nw-word-fade .nw-word:nth-child(6) { animation-delay: .55s; }
@keyframes nw-word-rise {
    0%   { opacity: 0; transform: translateY(0.5em); }
    100% { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
    .nw-word-fade .nw-word { animation: none; opacity: 1; transform: none; }
}

/* =============================================================
   [MAGNETIC-BUTTON] cursor-tracking nudge (JS sets --mx, --my)
   ============================================================= */
.nw-magnetic {
    transform: translate(calc(var(--mx, 0px)), calc(var(--my, 0px)));
    transition: transform .25s cubic-bezier(.2,0,.2,1);
}
@media (prefers-reduced-motion: reduce) { .nw-magnetic { transform: none; } }

/* =============================================================
   [ANNOUNCE-MARQUEE] subtle continuous slide
   ============================================================= */
.nw-header-announce, .nw-announce {
    overflow: hidden;
}
.nw-header-announce > .nw-container > span,
.nw-announce > span {
    display: inline-block;
    animation: nw-marquee-pulse 4s ease-in-out infinite;
}
@keyframes nw-marquee-pulse {
    0%,100% { transform: translateX(0); opacity: 1; }
    50%     { transform: translateX(2px); opacity: .9; }
}
@media (prefers-reduced-motion: reduce) {
    .nw-header-announce > .nw-container > span,
    .nw-announce > span { animation: none; }
}

/* =============================================================
   [PRODUCT-CARD-LIFT] WC product hover treatment
   ============================================================= */
.woocommerce ul.products li.product,
ul.products li.product {
    transition: transform var(--nw-duration-base) var(--nw-ease-standard),
                box-shadow var(--nw-duration-base) var(--nw-ease-standard);
    border-radius: var(--nw-radius-lg);
    overflow: hidden;
}
.woocommerce ul.products li.product:hover,
ul.products li.product:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 44px rgba(15,23,42,0.14);
}
.woocommerce ul.products li.product img,
ul.products li.product img {
    transition: transform .55s var(--nw-ease-standard);
    will-change: transform;
}
.woocommerce ul.products li.product:hover img,
ul.products li.product:hover img { transform: scale(1.05); }

/* =============================================================
   [HERO-BADGE-PULSE] Free-shipping badge subtle pulse
   ============================================================= */
@media (prefers-reduced-motion: no-preference) {
    .nw-hero__badge {
        animation: nw-badge-pulse 3s ease-in-out infinite;
    }
}
@keyframes nw-badge-pulse {
    0%,100% { box-shadow: 0 12px 32px rgba(15,23,42,0.25), 0 0 0 1px rgba(15,23,42,0.04); }
    50%     { box-shadow: 0 16px 40px rgba(29,78,216,0.32), 0 0 0 1px rgba(29,78,216,0.18); }
}

/* =============================================================
   [STAT-COUNT-UP] hint that the JS will animate into place
   ============================================================= */
.nw-stat__num em.is-counting { display: inline-block; min-width: 2.6ch; text-align: center; }

/* =============================================================
   [BERLIN-STUDIO] Site-wide design system — every page
   ============================================================= */
.nw-skip{ position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden }
.nw-skip:focus{ position:fixed; left:16px; top:16px; width:auto; height:auto; padding:10px 16px; background:#fff; color:var(--nw-blue); border-radius:8px; z-index:200; font-family:var(--nw-font-display); font-weight:700 }

:root{
  --nw-deep:#1e3a8a;
  --nw-sky:#93C5FD;
  --nw-paper:#F6F8FB;
  --nw-foot-navy:#0B1220;
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
}
.nw-grad-text{ background:linear-gradient(180deg,#93C5FD,#1D4ED8); -webkit-background-clip:text; background-clip:text; color:transparent }
.nw-grad-bright{ background:linear-gradient(180deg,#DBEAFE,#3B82F6); -webkit-background-clip:text; background-clip:text; color:transparent }

/* Hide Astra parent header/footer leftover */
.ast-main-header-wrap,
.ast-header-break-point .ast-mobile-header-wrap,
#masthead.site-header:not(.nw-nav),
#colophon:not(.nw-foot){ display:none !important }

/* ================== NAV ================== */
.nw-nav,
body.woocommerce-page .nw-nav,
body.woocommerce .nw-nav{
  position:fixed !important; top:0 !important; left:0 !important; right:0 !important; z-index:50 !important;
  display:grid; grid-template-columns:auto 1fr auto auto; align-items:center; gap:24px;
  padding:16px 40px;
  background:var(--nw-foot-navy) !important; backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  color:#fff !important; border-bottom:1px solid rgba(255,255,255,.06) !important;
  transition:none !important;
}
/* Lock all nav anchor colours to white sitewide so WooCommerce/Astra a-rules can't tint them blue. */
.nw-nav .nw-nav__links a,
.nw-nav .nw-nav__brand,
.nw-nav .nw-nav__cart,
body.woocommerce-page .nw-nav .nw-nav__links a,
body.woocommerce .nw-nav .nw-nav__links a{ color:#fff !important; text-decoration:none !important }
.nw-nav .nw-nav__links a:hover,
.nw-nav .nw-nav__links a.active,
body.woocommerce-page .nw-nav .nw-nav__links a:hover{ color:var(--nw-sky) !important }
.nw-nav .nw-nav__cart-count{ color:#fff !important; background:var(--nw-blue) !important }
/* Header is locked to dark/footer style — light-state inversion disabled per request. */
.nw-nav.is-light,
body.woocommerce-page .nw-nav.is-light,
body.woocommerce .nw-nav.is-light{ background:var(--nw-foot-navy) !important; color:#fff !important; border-bottom-color:rgba(255,255,255,.06) !important }
body.admin-bar .nw-nav{ top:32px }
@media (max-width:782px){ body.admin-bar .nw-nav{ top:46px } }

.nw-nav__brand{ display:inline-flex; align-items:center; gap:10px; color:inherit; text-decoration:none; font-family:var(--nw-font-display); font-weight:800; letter-spacing:-.01em; font-size:15px }
.nw-nav__brand .nw-nav__brand-img{ height:32px !important; max-height:32px !important; width:auto !important; max-width:200px !important; display:block !important; object-fit:contain !important }
.nw-nav.is-light .nw-nav__brand .nw-nav__brand-img{ filter:none !important }
@media (max-width:900px){ .nw-nav__brand .nw-nav__brand-img{ height:28px !important; max-height:28px !important } }
.nw-nav__mark{
  width:36px; height:36px; border-radius:9px;
  display:grid; place-items:center;
  background:linear-gradient(155deg,#3B82F6,#1D4ED8 60%,#1e3a8a);
  box-shadow:0 8px 18px rgba(29,78,216,.4);
}
.nw-nav__mark svg{ width:22px; height:22px; display:block }

.nw-nav__links{ display:flex; gap:28px; justify-self:center; font-family:var(--nw-font-display); font-weight:500; font-size:13px }
.nw-nav__links a{ position:relative; padding:6px 0; opacity:.78; transition:opacity .2s; color:inherit; text-decoration:none }
.nw-nav__links a:hover, .nw-nav__links a.active{ opacity:1 }
.nw-nav__links a.active::after{ content:""; position:absolute; left:0; right:0; bottom:-2px; height:1.5px; background:currentColor }

.nw-nav__cart{
  display:inline-flex; align-items:center; gap:8px;
  padding:5px 6px 5px 14px; border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  font-family:var(--nw-font-display); font-weight:600; font-size:12px;
  color:inherit; text-decoration:none;
  transition:background .2s, border-color .2s;
}
.nw-nav.is-light .nw-nav__cart{ border-color:rgba(255,255,255,.18) }
.nw-nav__cart-count{
  width:22px; height:22px; border-radius:50%;
  background:var(--nw-blue); color:#fff;
  display:grid; place-items:center; font-family:var(--nw-font-mono); font-size:10px; font-weight:700;
}
.nw-nav__cart:hover{ background:rgba(255,255,255,.08) }
.nw-nav.is-light .nw-nav__cart:hover{ background:rgba(255,255,255,.08) }

.nw-nav__burger{ display:none; background:transparent; border:0; cursor:pointer; width:36px; height:36px; padding:8px; flex-direction:column; gap:5px; color:inherit }
.nw-nav__burger span{ display:block; width:100%; height:2px; background:currentColor; border-radius:2px; transition:transform .25s, opacity .25s }
.nw-nav__burger.is-open span:nth-child(1){ transform:translateY(7px) rotate(45deg) }
.nw-nav__burger.is-open span:nth-child(2){ opacity:0 }
.nw-nav__burger.is-open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg) }

@media (max-width:900px){
  /* Switch from grid to flex so the hidden nav-links column doesn't leave a gap.
     Layout: brand on the left, cart + burger paired on the right. */
  .nw-nav{ display:flex; align-items:center; padding:12px 20px; gap:12px; grid-template-columns:none }
  .nw-nav__links{ display:none }
  .nw-nav__burger{ display:inline-flex }
  .nw-nav__cart{ margin-left:auto; border:0 !important; padding:0 !important; gap:0; background:transparent !important }
  .nw-nav__cart:hover{ background:transparent !important }
  .nw-nav__cart span:first-child{ display:none }
  .nw-nav__cart-count{ width:34px; height:34px; font-size:12px; font-weight:700; box-shadow:0 4px 12px rgba(29,78,216,.32) }
}

.nw-mobile-drawer{
  position:fixed; top:0; right:0; bottom:0; width:min(360px,80vw);
  background:#0B1220; color:#fff; z-index:60;
  padding:88px 28px 28px;
  display:flex; flex-direction:column; gap:18px;
  transform:translateX(100%); transition:transform .35s var(--ease-out-expo);
  overflow-y:auto;
}
.nw-mobile-drawer.is-open{ transform:translateX(0) }
.nw-mobile-drawer a{ color:#fff; text-decoration:none; font-family:var(--nw-font-display); font-weight:600; font-size:18px; padding:12px 0; border-bottom:1px solid rgba(255,255,255,.08) }

/* ================== SHARED ================== */
.nw-eyebrow{ font-family:var(--nw-font-mono); font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:var(--nw-text-gray); display:inline-flex; align-items:center; gap:10px }
.nw-eyebrow .dot{ width:6px; height:6px; border-radius:50%; background:var(--nw-blue); box-shadow:0 0 0 4px rgba(29,78,216,.18); animation:nw-pulse-dot 1.6s ease-in-out infinite }
@keyframes nw-pulse-dot{0%,100%{transform:scale(1); opacity:1} 50%{transform:scale(1.3); opacity:.5}}

.nw-btn{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--nw-font-display); font-weight:700; font-size:13px; letter-spacing:.02em;
  padding:16px 28px; border-radius:999px; cursor:pointer; border:0;
  text-decoration:none;
  transition:transform .25s var(--ease-out-expo), box-shadow .35s, background .25s, color .25s;
}
.nw-btn.nw-btn--white{ background:#fff; color:var(--nw-blue); box-shadow:0 12px 28px rgba(0,0,0,.18) }
.nw-btn.nw-btn--white:hover{ transform:translateY(-2px); box-shadow:0 18px 36px rgba(0,0,0,.24); color:var(--nw-deep) }
.nw-btn.nw-btn--ghost{ background:transparent; color:#fff; border:1px solid rgba(255,255,255,.32) }
.nw-btn.nw-btn--ghost:hover{ background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.6); color:#fff }
.nw-btn.nw-btn--blue{ background:var(--nw-blue); color:#fff; box-shadow:0 12px 28px rgba(29,78,216,.32) }
.nw-btn.nw-btn--blue:hover{ background:var(--nw-deep); transform:translateY(-2px); box-shadow:0 18px 40px rgba(29,78,216,.42); color:#fff }
.nw-magnet{ will-change:transform }

.nw-reveal{ opacity:0; transform:translateY(60px); transition:opacity .9s var(--ease-out-expo), transform .9s var(--ease-out-expo) }
.nw-reveal.is-in{ opacity:1; transform:none }
@media (prefers-reduced-motion: reduce){ .nw-reveal{ opacity:1; transform:none } }

.nw-page-frame{ padding-top:96px }

/* ================== FOOTER ================== */
.nw-foot{
  background:var(--nw-foot-navy); color:#fff;
  padding:120px 60px 40px;
  position:relative; overflow:hidden;
}
.nw-foot::before{
  content:""; position:absolute; width:600px; height:600px; border-radius:50%;
  background:radial-gradient(circle, rgba(37,99,235,.32), transparent 60%);
  top:-200px; left:50%; transform:translateX(-50%); pointer-events:none;
}
.nw-foot__inner{ max-width:1440px; margin:0 auto; display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:60px; position:relative; z-index:1 }
.nw-foot__brand-block .nw-foot__word{ font-family:var(--nw-font-display); font-weight:800; font-size:48px; letter-spacing:-.045em; line-height:1; color:#fff }
.nw-foot__brand-link{ display:inline-block; text-decoration:none; line-height:0 }
.nw-foot__brand-link .nw-foot__brand-img{ height:48px !important; max-height:48px !important; width:auto !important; max-width:240px !important; display:block !important; object-fit:contain !important }
@media (max-width:600px){ .nw-foot__brand-link .nw-foot__brand-img{ height:38px !important; max-height:38px !important } }
.nw-foot__brand-block p{ color:rgba(255,255,255,.6); font-size:14px; line-height:1.6; margin:18px 0 28px; max-width:340px }
.nw-foot__news{ display:flex; gap:0; width:100%; max-width:380px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.2); border-radius:999px; padding:5px 5px 5px 4px; backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px) }
.nw-foot__news input,
.nw-foot__news input[type="email"]{ flex:1; min-width:0; background:transparent !important; border:0 !important; padding:10px 18px !important; color:#fff !important; font-family:var(--nw-font-body); font-size:13px; outline:none; box-shadow:none !important }
.nw-foot__news input::placeholder,
.nw-foot__news input[type="email"]::placeholder{ color:rgba(255,255,255,0.5) !important; opacity:1 !important }
.nw-foot__news button{ background:var(--nw-blue); color:#fff; border:0; padding:10px 22px; border-radius:999px; font-family:var(--nw-font-display); font-weight:700; font-size:12px; cursor:pointer; transition:background .25s, transform .25s, box-shadow .25s; white-space:nowrap; box-shadow:0 6px 16px rgba(29,78,216,.32) }
.nw-foot__news button:hover{ background:var(--nw-deep); transform:translateY(-1px); box-shadow:0 10px 24px rgba(29,78,216,.42); color:#fff }

/* Astra parent back-to-top: rebrand to circular pill matching the design system */
#ast-scroll-top.ast-scroll-top-icon{
  width:48px !important; height:48px !important;
  border-radius:50% !important;
  background:var(--nw-blue) !important; color:#fff !important;
  box-shadow:0 12px 28px rgba(29,78,216,.32) !important;
  display:flex !important; align-items:center !important; justify-content:center !important;
  font-size:16px !important;
  border:0 !important;
  transition:transform .25s var(--ease-out-expo), box-shadow .35s, background .25s !important;
}
#ast-scroll-top.ast-scroll-top-icon:hover{
  background:var(--nw-deep) !important;
  transform:translateY(-3px) !important;
  box-shadow:0 18px 40px rgba(29,78,216,.42) !important;
}
#ast-scroll-top.ast-scroll-top-icon i,
#ast-scroll-top.ast-scroll-top-icon svg{ color:#fff !important; fill:#fff !important; font-size:14px !important }
.nw-foot__col h4{ font-family:var(--nw-font-display); font-weight:700; font-size:13px; letter-spacing:.04em; margin:0 0 18px; color:#fff !important; text-transform:uppercase }
.nw-foot__col ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px }
.nw-foot__col a{ color:rgba(255,255,255,.65) !important; font-size:14px; text-decoration:none !important; transition:color .2s }
.nw-foot__col a:hover{ color:#fff !important }

/* Footer colour lock — applies on every page (incl. WooCommerce/Astra)
   so parent stylesheet's a-color rules can never tint footer text blue. */
.nw-foot{ color:#fff !important }
.nw-foot .nw-foot__brand-block p{ color:rgba(255,255,255,.6) !important }
.nw-foot .nw-foot__bottom,
.nw-foot .nw-foot__bottom span{ color:rgba(255,255,255,.5) !important }
.nw-foot .nw-foot__legal a{ color:rgba(255,255,255,.5) !important; text-decoration:none !important }
.nw-foot .nw-foot__legal a:hover{ color:#fff !important }
.nw-foot__bottom{ max-width:1440px; margin:80px auto 0; padding-top:24px; border-top:1px solid rgba(255,255,255,.1); display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; font-family:var(--nw-font-mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.5); position:relative; z-index:1 }
.nw-foot__legal{ display:flex; gap:24px }
.nw-foot__legal a{ color:inherit; text-decoration:none }
.nw-foot__legal a:hover{ color:#fff }
@media (max-width:1100px){ .nw-foot__inner{ grid-template-columns:1fr 1fr; gap:40px } }
@media (max-width:600px){
  .nw-foot{ padding:60px 20px 24px }
  .nw-foot__inner{ grid-template-columns:1fr; gap:32px }
  .nw-foot__brand-block .nw-foot__word{ font-size:30px; overflow-wrap:anywhere; word-break:normal; line-height:1.1; letter-spacing:-.02em }
  .nw-foot__brand-block p{ font-size:13px; max-width:none; margin:14px 0 22px }
  .nw-foot__news{ max-width:none; width:100% }
  .nw-foot__col h4{ margin-bottom:14px }
  .nw-foot__bottom{ margin-top:36px; padding-top:18px; flex-direction:column; align-items:flex-start; gap:14px; font-size:10px }
  .nw-foot__legal{ flex-wrap:wrap; gap:16px }
}

/* === Quick view + Buy Now modals === */
.nw-modal{ position:fixed; inset:0; z-index:9999; opacity:0; pointer-events:none; transition:opacity .28s }
.nw-modal.is-open{ opacity:1; pointer-events:auto }
.nw-modal__backdrop{ position:absolute; inset:0; background:rgba(11,18,32,.78); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px) }
.nw-modal__panel{ position:relative; max-width:560px; width:calc(100% - 36px); max-height:90vh; margin:5vh auto; background:#fff; border-radius:24px; padding:36px; overflow-y:auto; box-shadow:0 30px 80px rgba(0,0,0,.45); transform:translateY(20px); transition:transform .28s var(--ease-out-expo) }
.nw-modal.is-open .nw-modal__panel{ transform:translateY(0) }
.nw-modal__close{ position:absolute; top:10px; right:10px; width:36px; height:36px; border-radius:50%; background:transparent; border:0; cursor:pointer; font-size:24px; font-weight:300; line-height:1; color:var(--nw-text-gray); display:grid; place-items:center; transition:background .2s, color .2s; z-index:6; padding:0 }
.nw-modal__close:hover{ background:rgba(15,23,42,.06); color:var(--nw-foot-navy) }
.nw-modal__close:focus-visible{ outline:2px solid var(--nw-blue); outline-offset:2px }

/* Modal price formatting — render WC's <del>/<ins> cleanly */
.nw-qv__price del,
.nw-bn__price del{ color:var(--nw-text-gray) !important; opacity:.55; font-weight:500; margin-right:8px; text-decoration:line-through; font-size:.78em }
.nw-qv__price ins,
.nw-bn__price ins{ background:none !important; text-decoration:none !important; font-weight:700; color:var(--nw-blue) !important }
.nw-qv__price .woocommerce-Price-amount,
.nw-bn__price .woocommerce-Price-amount{ font-family:inherit; font-weight:inherit; color:inherit }
.screen-reader-text{ position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; overflow:hidden !important }

.nw-qv{ display:grid; grid-template-columns:1fr; gap:20px }
.nw-qv__media{ aspect-ratio:1; border-radius:18px; overflow:hidden; background:linear-gradient(155deg,#f8fafc 0%,#e2e8f0 100%); display:grid; place-items:center; padding:24px }
.nw-qv__media img{ max-width:100%; max-height:100%; object-fit:contain; display:block }
.nw-qv__title{ font-family:var(--nw-font-display); font-weight:800; font-size:22px; letter-spacing:-.015em; color:var(--nw-foot-navy); margin:0 0 8px }
.nw-qv__price{ font-family:var(--nw-font-display); font-weight:700; font-size:20px; color:var(--nw-blue); margin-bottom:14px }
.nw-qv__desc{ font-size:14px; line-height:1.6; color:var(--nw-text-gray); margin-bottom:18px }
.nw-qv__actions{ display:flex; gap:10px; flex-wrap:wrap }
.nw-qv__actions .nw-btn{ flex:1; min-width:140px; justify-content:center }

.nw-bn__product{ display:flex; gap:14px; align-items:center; padding-bottom:18px; border-bottom:1px solid var(--nw-line); margin-bottom:22px }
.nw-bn__product img{ width:72px; height:72px; object-fit:cover; border-radius:12px; flex-shrink:0 }
.nw-bn__name{ font-family:var(--nw-font-display); font-weight:700; font-size:15px; color:var(--nw-foot-navy); line-height:1.3 }
.nw-bn__price{ font-family:var(--nw-font-display); font-weight:700; font-size:17px; color:var(--nw-blue); margin-top:4px }
.nw-bn__form label{ display:block; margin-bottom:12px; font-family:var(--nw-font-mono); font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--nw-text-gray) }
.nw-bn__form input,
.nw-bn__form textarea{ display:block; width:100%; box-sizing:border-box; margin-top:6px; padding:11px 14px; border:1px solid var(--nw-line); border-radius:10px; font-family:var(--nw-font-body); font-size:14px; color:var(--nw-foot-navy); background:#fff; outline:none; transition:border-color .2s, box-shadow .2s; resize:vertical }
.nw-bn__form input:focus,
.nw-bn__form textarea:focus{ border-color:var(--nw-blue); box-shadow:0 0 0 3px rgba(29,78,216,.12) }
.nw-bn__submit{ width:100%; margin-top:6px; justify-content:center; padding:14px 24px !important }
.nw-bn__error{ background:rgba(220,38,38,.08); color:#dc2626; padding:10px 14px; border-radius:8px; font-size:13px; margin-top:12px }

.nw-ty{ text-align:center }
.nw-ty__icon{ width:64px; height:64px; border-radius:50%; background:linear-gradient(155deg,#3B82F6,#1D4ED8); color:#fff; display:grid; place-items:center; font-size:32px; margin:0 auto 18px; box-shadow:0 12px 28px rgba(29,78,216,.32) }
.nw-ty h3{ font-family:var(--nw-font-display); font-weight:800; font-size:26px; color:var(--nw-foot-navy); margin:0 0 12px }
.nw-ty p{ font-size:14px; line-height:1.6; color:var(--nw-text-gray); margin:0 0 18px }
.nw-ty__summary{ display:flex; justify-content:space-between; align-items:center; padding:14px 18px; background:var(--nw-paper); border-radius:12px; margin-bottom:22px; font-family:var(--nw-font-display); gap:14px }
.nw-ty__summary span{ text-align:left; color:var(--nw-foot-navy) }
.nw-ty__summary strong{ color:var(--nw-blue); font-size:17px; flex-shrink:0 }
.nw-ty__actions{ display:flex; flex-direction:column; gap:8px }
.nw-ty__actions .nw-btn,
.nw-ty__actions a.nw-btn{ width:100%; justify-content:center }
.nw-btn--whatsapp{ background:#25D366 !important; color:#fff !important; box-shadow:0 8px 18px rgba(37,211,102,.32) }
.nw-btn--whatsapp:hover{ background:#1da851 !important; color:#fff !important }
.nw-btn--ghost-dark{ background:transparent !important; color:var(--nw-foot-navy) !important; border:1px solid var(--nw-line) !important }
.nw-btn--ghost-dark:hover{ background:var(--nw-paper) !important; color:var(--nw-foot-navy) !important }

@media (max-width:600px){
  .nw-modal__panel{ padding:28px 22px; margin:4vh auto; border-radius:18px }
}

/* === Product card hover overlay (catalog + shop) === */
.hp-obj-card,
.nw-wc-body ul.products li.product{ position:relative }
/* Quick-add: just the cart icon — no background, no circle, no border. */
.nw-quick-add{
  position:absolute; top:14px; right:14px;
  width:24px; height:24px;
  background:transparent !important;
  border:0 !important; box-shadow:none !important; padding:0 !important;
  color:var(--nw-foot-navy);
  cursor:pointer;
  display:grid; place-items:center;
  transition:color .2s, transform .2s;
  z-index:5;
}
.nw-quick-add:hover{ color:var(--nw-blue); transform:scale(1.12) }
.nw-quick-add:focus-visible{ outline:2px solid var(--nw-blue); outline-offset:2px }
.nw-quick-add svg{ width:22px !important; height:22px !important; display:block; stroke:currentColor !important }
.nw-quick-add.is-loading{ opacity:.5; pointer-events:none }
.nw-quick-add.is-added{ color:#16a34a !important }
.nw-quick-add.is-added svg{ stroke:#16a34a !important }
/* Tooltip "Add to cart" on icon hover */
.nw-quick-add::after{
  content:attr(data-tip);
  position:absolute; right:calc(100% + 10px); top:50%; transform:translateY(-50%) translateX(4px);
  background:var(--nw-foot-navy); color:#fff;
  font-family:var(--nw-font-mono); font-size:10px; letter-spacing:.16em; text-transform:uppercase;
  padding:6px 10px; border-radius:6px;
  white-space:nowrap; pointer-events:none;
  opacity:0; transition:opacity .2s, transform .2s;
}
.nw-quick-add:hover::after,
.nw-quick-add:focus-visible::after{ opacity:1; transform:translateY(-50%) translateX(0) }
.nw-quick-add.is-loading{ opacity:.6; pointer-events:none }
.nw-quick-add.is-added{ background:#16a34a !important; color:#fff !important }

/* Image blurs immediately on hover; the pill button fades in slightly later
   (80ms) for a sequenced reveal. */
.hp-obj-card .visual img,
.hp-obj-card .hp-obj-card__img,
.nw-wc-body ul.products li.product .astra-shop-thumbnail-wrap img{
  transition:filter .35s var(--ease-out-expo), transform .45s var(--ease-out-expo);
}
.hp-obj-card:hover .visual img,
.hp-obj-card:focus-within .visual img,
.hp-obj-card:hover .hp-obj-card__img,
.hp-obj-card:focus-within .hp-obj-card__img,
.nw-wc-body ul.products li.product:hover .astra-shop-thumbnail-wrap img,
.nw-wc-body ul.products li.product:focus-within .astra-shop-thumbnail-wrap img{
  filter:blur(6px);
  transform:scale(1.03);
}

/* Quick-view overlay: subtle dark tint behind a tight white pill */
.nw-quickview-overlay{
  position:absolute; inset:0;
  background:rgba(15,23,42,0);
  display:grid; place-items:center; cursor:pointer;
  opacity:1; pointer-events:none; border-radius:inherit;
  border:0;
  transition:background .3s var(--ease-out-expo);
  z-index:4;
}
.hp-obj-card:hover .nw-quickview-overlay,
.hp-obj-card:focus-within .nw-quickview-overlay,
.nw-wc-body ul.products li.product:hover .nw-quickview-overlay,
.nw-wc-body ul.products li.product:focus-within .nw-quickview-overlay{
  background:rgba(15,23,42,.08);
  pointer-events:auto;
}
.nw-quickview-overlay span{
  background:#fff; color:var(--nw-foot-navy);
  font-family:var(--nw-font-mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase; font-weight:600;
  padding:10px 20px; border-radius:999px;
  display:inline-flex; align-items:center; gap:8px;
  box-shadow:0 8px 18px rgba(0,0,0,.16);
  opacity:0; transform:translateY(4px);
  transition:opacity .25s var(--ease-out-expo) .08s, transform .3s var(--ease-out-expo) .08s;
}
.hp-obj-card:hover .nw-quickview-overlay span,
.hp-obj-card:focus-within .nw-quickview-overlay span,
.nw-wc-body ul.products li.product:hover .nw-quickview-overlay span,
.nw-wc-body ul.products li.product:focus-within .nw-quickview-overlay span{
  opacity:1; transform:translateY(0);
}
.nw-quickview-overlay svg{ width:12px; height:12px; flex-shrink:0 }
.nw-quickview-overlay:focus-visible{ outline:2px solid var(--nw-blue); outline-offset:-4px; border-radius:inherit }

.nw-card-actions{ display:flex; gap:8px; margin-top:12px }
.nw-card-actions .nw-btn{
  flex:1; padding:10px 14px !important; font-size:11px !important;
  justify-content:center; min-width:0;
}
.nw-card-actions .nw-btn--blue{ box-shadow:0 6px 14px rgba(29,78,216,.28) }

/* On mobile (≤600px) hover overlays don't make sense — show buttons inline,
   keep quick-add visible, drop the hover-only overlay. */
@media (max-width:600px){
  .nw-quick-add{ opacity:1; transform:scale(1) }
  .nw-quickview-overlay{ display:none }
}

/* === Type safety: prevent ascender / descender / italic clipping on every heading === */
/* Tight line-heights (.95–1) plus overflow:hidden on rise-animation masks were
   clipping italic glyph slants and "p"/"l"/"b" descenders sitewide. */
.hp-hero h1,
.hp-sec-head h2,
.hp-faq-inner h2,
.hp-featured__info h2,
.hp-story-band__inner h2,
.nw-about-hero h1,
.nw-about-manifesto__head h2,
.nw-about-timeline-section__head h2,
.nw-about-principles__head h2,
.nw-about-team__head h2,
.nw-about-cta h2,
.nw-c-hero h1,
.nw-c-form-card h2,
.nw-c-map__head h2,
.nw-faq-hero h1,
.nw-faq-cta h2,
.nw-wc-hero h1,
.nw-pdp__tabs h2,
.nw-pdp__related h2,
.nw-pdp__info .product_title{
  line-height:1.12 !important;
  padding-bottom:.1em !important;
  overflow:visible !important;
}

/* Hero rise-animation reveal mask: keep overflow:hidden but pad the .word so
   ascenders + descenders + italic glyph extension stay within the clip box. */
.hp-hero h1 .word{
  padding:.15em .05em .25em .05em !important;
  vertical-align:baseline !important;
}
.hp-hero h1 em,
.hp-hero h1 .think,
.hp-sec-head h2 em,
.hp-faq-inner h2 em,
.hp-featured__info h2 em,
.hp-story-band__inner h2 em,
.nw-about-hero h1 em,
.nw-about-manifesto__head h2 em,
.nw-about-timeline-section__head h2 em,
.nw-about-principles__head h2 em,
.nw-about-team__head h2 em,
.nw-about-cta h2 em,
.nw-c-hero h1 em,
.nw-c-map__head h2 em,
.nw-wc-hero h1 em{
  padding-right:.18em !important;
  display:inline-block !important;
}

/* ================== WOOCOMMERCE OVERRIDES ================== */
.woocommerce-page main.site-main,
.woocommerce.archive main.site-main,
.single-product main.site-main,
body.woocommerce #content,
body.woocommerce-cart #content,
body.woocommerce-checkout #content,
body.woocommerce-account #content{
  padding-top:96px;
  background:var(--nw-paper);
  min-height:60vh;
}

.woocommerce-breadcrumb{
  font-family:var(--nw-font-mono) !important; font-size:11px !important;
  letter-spacing:.18em !important; text-transform:uppercase;
  color:var(--nw-text-gray) !important;
  padding:24px 60px 0 !important; max-width:1440px; margin:0 auto;
}
.woocommerce-products-header__title.page-title{
  font-family:var(--nw-font-display) !important;
  font-weight:800 !important; font-size:clamp(36px, 5vw, 64px) !important;
  letter-spacing:-.04em !important; line-height:1 !important;
  padding:24px 60px 16px !important; margin:0 auto !important; max-width:1440px;
  color:var(--nw-foot-navy) !important;
}

.woocommerce ul.products,
ul.products.columns-3,
ul.products.columns-4{
  display:grid !important;
  grid-template-columns:repeat(4,1fr) !important;
  gap:20px !important;
  max-width:1440px; margin:24px auto 80px !important;
  padding:0 60px !important;
  list-style:none;
}
@media (max-width:1100px){ .woocommerce ul.products, ul.products.columns-3, ul.products.columns-4{ grid-template-columns:repeat(2,1fr) !important; padding:0 32px !important } }
@media (max-width:600px){ .woocommerce ul.products, ul.products.columns-3, ul.products.columns-4{ grid-template-columns:1fr !important; padding:0 20px !important } }

.woocommerce ul.products li.product,
ul.products li.product{
  background:#fff !important; border-radius:18px !important; padding:24px !important;
  border:1px solid var(--nw-line) !important;
  display:flex !important; flex-direction:column !important; gap:16px !important;
  transition:transform .4s var(--ease-out-expo), box-shadow .4s, border-color .25s !important;
  margin:0 !important; width:auto !important; float:none !important;
  position:relative; overflow:hidden;
}
.woocommerce ul.products li.product:hover,
ul.products li.product:hover{
  transform:translateY(-6px) !important;
  box-shadow:0 24px 48px rgba(15,23,42,.1) !important;
  border-color:transparent !important;
}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link{
  display:flex; flex-direction:column; gap:14px; text-decoration:none;
}
.woocommerce ul.products li.product img{
  border-radius:12px !important;
  background:var(--nw-paper);
  aspect-ratio:1 / 1;
  object-fit:cover;
  width:100% !important; height:auto !important;
  margin:0 !important;
  transition:transform .55s var(--ease-out-expo);
}
.woocommerce ul.products li.product:hover img{ transform:scale(1.04) }
.woocommerce ul.products li.product .woocommerce-loop-product__title,
ul.products li.product h2,
ul.products li.product h3{
  font-family:var(--nw-font-display) !important; font-weight:700 !important;
  font-size:18px !important; letter-spacing:-.01em !important;
  color:var(--nw-foot-navy) !important; padding:0 !important; margin:0 !important;
}
.woocommerce ul.products li.product .price,
ul.products li.product .price{
  font-family:var(--nw-font-display) !important; font-weight:700 !important;
  font-size:18px !important; color:var(--nw-blue) !important;
  margin:auto 0 0 !important;
}
.woocommerce ul.products li.product .price del{ color:var(--nw-text-gray) !important; opacity:.6; margin-right:6px; font-weight:500 }
.woocommerce ul.products li.product .price ins{ background:none !important; color:var(--nw-blue) !important; font-weight:700 !important }
.woocommerce ul.products li.product .button,
ul.products li.product .button{
  background:var(--nw-foot-navy) !important; color:#fff !important;
  padding:10px 18px !important; border-radius:999px !important;
  font-family:var(--nw-font-display) !important; font-weight:600 !important; font-size:12px !important;
  text-transform:none !important; letter-spacing:0 !important;
  margin-top:8px !important;
  transition:background .25s !important;
}
.woocommerce ul.products li.product .button:hover{ background:var(--nw-blue) !important }
.woocommerce ul.products li.product .onsale,
ul.products li.product .onsale{
  background:linear-gradient(180deg,#3B82F6,#1D4ED8) !important;
  color:#fff !important;
  font-family:var(--nw-font-mono) !important;
  font-size:10px !important; letter-spacing:.18em !important; text-transform:uppercase;
  padding:5px 12px !important; border-radius:999px !important;
  top:14px !important; left:14px !important; right:auto !important;
  margin:0 !important; min-height:auto !important; min-width:auto !important; line-height:1 !important;
}

.woocommerce nav.woocommerce-pagination{ max-width:1440px; margin:0 auto 80px; padding:0 60px; text-align:center }
.woocommerce nav.woocommerce-pagination ul{ border:0 !important; display:inline-flex; gap:8px }
.woocommerce nav.woocommerce-pagination ul li{ border:0 !important }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span{
  border-radius:999px !important; padding:10px 14px !important; min-width:40px;
  background:#fff; border:1px solid var(--nw-line) !important;
  font-family:var(--nw-font-display); font-weight:600; color:var(--nw-foot-navy);
}
.woocommerce nav.woocommerce-pagination ul li span.current{ background:var(--nw-blue) !important; color:#fff !important; border-color:var(--nw-blue) !important }

.single-product div.product{
  max-width:1440px; margin:0 auto; padding:32px 60px 80px;
  display:grid; grid-template-columns:1fr 1fr; gap:60px;
}
@media (max-width:900px){ .single-product div.product{ grid-template-columns:1fr; padding:24px 24px 60px; gap:32px } }
.single-product div.product .product_title{
  font-family:var(--nw-font-display) !important; font-weight:800 !important;
  font-size:clamp(32px, 4vw, 56px) !important; letter-spacing:-.04em !important;
  line-height:1 !important; color:var(--nw-foot-navy) !important;
  margin:0 0 16px !important;
}
.single-product div.product p.price{
  font-family:var(--nw-font-display) !important; font-weight:700 !important;
  font-size:28px !important; color:var(--nw-blue) !important;
}
.single-product div.product .single_add_to_cart_button.button{
  background:var(--nw-foot-navy) !important; color:#fff !important;
  padding:16px 32px !important; border-radius:999px !important;
  font-family:var(--nw-font-display) !important; font-weight:700 !important;
  font-size:14px !important; letter-spacing:.02em !important;
}
.single-product div.product .single_add_to_cart_button.button:hover{ background:var(--nw-blue) !important }

/* =============================================================
   [HERO-CONTROLLED] Premium e-commerce scale, not stadium scale
   ============================================================= */
.nw-hero__title {
    font-size: clamp(40px, 5.5vw, 72px) !important;
    line-height: 1.05 !important;
    letter-spacing: -0.025em !important;
    font-weight: 800;
}
.nw-hero__title em {
    font-style: normal;
    color: var(--nw-blue-bright);
    background: none;
    padding: 0;
    border-radius: 0;
}

/* Watermark stays as a quiet brand stamp, not a competing element */
.nw-hero__watermark {
    inset-block-start: auto !important;
    inset-block-end: -10% !important;
    inset-inline-end: -8% !important;
    transform: none;
    width: clamp(360px, 36vw, 480px) !important;
    opacity: 0.06 !important;
    animation: none;
}
@media (max-width: 900px) {
    .nw-hero__watermark { display: none !important; }
}

/* =============================================================
   [SECTION-DARK] Dark navy treatment for categories / features
   ============================================================= */
.nw-section--dark {
    background: var(--nw-navy);
    color: var(--nw-white);
    position: relative;
    overflow: hidden;
}
.nw-section--dark::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 800px 500px at 30% 0%, rgba(59,130,246,0.18), transparent 60%),
        radial-gradient(ellipse 600px 400px at 80% 100%, rgba(99,102,241,0.14), transparent 60%);
    pointer-events: none;
    z-index: 0;
}
.nw-section--dark > .nw-container { position: relative; z-index: 1; }
.nw-section--dark .nw-section-title__main { color: var(--nw-white); }
.nw-section--dark .nw-section-title__sub { color: rgba(255,255,255,0.7); }
.nw-section--dark .nw-section-title__eyebrow { color: var(--nw-blue-bright); }

/* Dark-section variants of cards */
.nw-section--dark .nw-cat-card {
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    backdrop-filter: blur(8px);
}
.nw-section--dark .nw-cat-card:hover {
    background: rgba(255,255,255,0.08);
    border-color: var(--nw-blue-bright);
    box-shadow: 0 0 0 4px rgba(59,130,246,0.18), 0 18px 48px rgba(0,0,0,0.4);
}
.nw-section--dark .nw-cat-card__icon {
    background: rgba(59,130,246,0.18);
    color: var(--nw-blue-bright);
}
.nw-section--dark .nw-cat-card__count {
    color: rgba(255,255,255,0.6);
}

/* =============================================================
   [SECTION-GRADIENT] Brand gradient surface for "Why Choose"
   ============================================================= */
.nw-section--gradient {
    background: var(--nw-gradient);
    color: var(--nw-white);
    position: relative;
    overflow: hidden;
}
.nw-section--gradient::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: repeating-linear-gradient(45deg, transparent 0 24px, rgba(255,255,255,0.04) 24px 48px);
    pointer-events: none;
}
.nw-section--gradient > .nw-container { position: relative; z-index: 1; }
.nw-section--gradient .nw-section-title__main { color: var(--nw-white); }
.nw-section--gradient .nw-section-title__sub { color: rgba(255,255,255,0.85); }
.nw-section--gradient .nw-section-title__eyebrow { color: rgba(255,255,255,0.85); }

.nw-section--gradient .nw-feat-card {
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.18);
    backdrop-filter: blur(10px);
}
.nw-section--gradient .nw-feat-card:hover {
    background: rgba(255,255,255,0.14);
    border-color: rgba(255,255,255,0.4);
    box-shadow: 0 18px 48px rgba(0,0,0,0.25);
}
.nw-section--gradient .nw-feat-card__icon {
    background: rgba(255,255,255,0.18);
    color: var(--nw-white);
}
.nw-section--gradient .nw-feat-card__title { color: var(--nw-white); }
.nw-section--gradient .nw-feat-card__text { color: rgba(255,255,255,0.85); }

/* =============================================================
   [STEPS-V2] Sticky-feel numbered column
   ============================================================= */
.nw-steps {
    counter-reset: nw-step;
}
.nw-step {
    position: relative;
    padding: var(--nw-space-6) var(--nw-space-5);
    overflow: hidden;
}
.nw-step::after {
    content: counter(nw-step, decimal-leading-zero);
    counter-increment: nw-step;
    position: absolute;
    inset-block-start: -16px;
    inset-inline-end: -8px;
    font-family: var(--nw-font-display);
    font-weight: 800;
    font-size: 200px;
    line-height: 1;
    color: var(--nw-blue-pale);
    opacity: 0.6;
    pointer-events: none;
    z-index: 0;
}
.nw-step > * { position: relative; z-index: 1; }
.nw-gallery__cta a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 22px;
    border-radius: var(--nw-radius-pill);
    background: var(--nw-blue-pale);
    color: var(--nw-blue);
    font-family: var(--nw-font-display);
    font-weight: 600;
    text-decoration: none;
    transition: all var(--nw-duration-fast) var(--nw-ease-standard);
}
.nw-gallery__cta a:hover {
    background: var(--nw-blue);
    color: var(--nw-white);
    transform: translateY(-2px);
}

/* [TESTIMONIAL-STARS] use inline SVGs */
.nw-testimonial-card__stars {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    color: #F5B400;
}

/* [NEWSLETTER] icon, note, button arrow, gradient frame */
.nw-newsletter {
    background:
        radial-gradient(circle at 20% 0%, rgba(59,130,246,0.18), transparent 50%),
        var(--nw-blue-pale);
    border: 1px solid rgba(59,130,246,0.18);
    box-shadow: 0 24px 60px rgba(29,78,216,0.08);
    position: relative;
    overflow: hidden;
}
.nw-newsletter__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: var(--nw-radius-md);
    background: var(--nw-white);
    color: var(--nw-blue);
    margin: 0 auto var(--nw-space-3);
    box-shadow: 0 6px 18px rgba(29,78,216,0.15);
}
.nw-newsletter__form button {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.nw-newsletter__form button .nw-icon { transition: transform var(--nw-duration-fast) var(--nw-ease-standard); }
.nw-newsletter__form button:hover .nw-icon { transform: translateX(3px); }
.nw-newsletter__note {
    margin: var(--nw-space-3) 0 0;
    color: var(--nw-text-gray);
    font-size: 12px;
    font-family: var(--nw-font-mono);
    letter-spacing: 0.06em;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    justify-content: center;
}
.nw-newsletter__note .nw-icon { color: var(--nw-success); }

/* [PROMO] arrow micro-interaction */
.nw-promo__btn { display: inline-flex; align-items: center; gap: 8px; }
.nw-promo__btn .nw-icon { transition: transform var(--nw-duration-fast) var(--nw-ease-standard); }
.nw-promo__btn:hover .nw-icon { transform: translateX(3px); }

/* [SCROLL-REVEAL] respect reduced motion */
@media (prefers-reduced-motion: no-preference) {
    .nw-cat-card,
    .nw-step,
    .nw-feat-card,
    .nw-testimonial-card,
    .nw-gallery__item {
        animation: nw-fade-up 0.65s var(--nw-ease-emphasized) both;
    }
    .nw-cat-grid > :nth-child(2),
    .nw-feat-grid > :nth-child(2),
    .nw-testimonials > :nth-child(2),
    .nw-gallery > :nth-child(2) { animation-delay: 60ms; }
    .nw-cat-grid > :nth-child(3),
    .nw-feat-grid > :nth-child(3),
    .nw-testimonials > :nth-child(3),
    .nw-gallery > :nth-child(3) { animation-delay: 120ms; }
    .nw-cat-grid > :nth-child(4),
    .nw-feat-grid > :nth-child(4),
    .nw-gallery > :nth-child(4) { animation-delay: 180ms; }
    .nw-cat-grid > :nth-child(5),
    .nw-gallery > :nth-child(5) { animation-delay: 240ms; }
    .nw-gallery > :nth-child(6) { animation-delay: 300ms; }
}
