@font-face {
    font-family: 'ParsekCyrillic';
    src: url('../../fonts/ParsekCyrillic.woff2') format('woff2'),
         url('../../fonts/ParsekCyrillic.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

.parsek-font {
    font-family: 'ParsekCyrillic', Arial, sans-serif;
    font-weight: normal;
    letter-spacing: 0;
}

/* ===== Design tokens =====
   Quiet, Apple-like surfaces: white / #f5f5f7 in light, black / #161617 in
   dark, near-black text, one accent (the brand red). */
:root {
    --brand-red: #c20e1a;
    --brand-red-darker: #a00c16;
    /* Brand red readable as TEXT on dark surfaces (4.7:1 on the dark body);
       fills keep --brand-red / --brand-red-darker. */
    --brand-red-bright: #f1707a;
    --dark-body-tertiary: #2b3035;

    --n-font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --n-font-display: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --n-bg: #ffffff;
    --n-bg-alt: #f5f5f7;
    --n-card: #ffffff;
    --n-text: #1d1d1f;
    --n-muted: #6e6e73;
    --n-line: #d2d2d7;
    --n-accent: var(--brand-red);
    --n-accent-text: var(--brand-red);
    --n-nav-bg: rgba(255, 255, 255, 0.72);
    --n-radius: 22px;
    --n-ease: cubic-bezier(.25, .1, .25, 1);
}

[data-bs-theme="dark"] {
    --bs-body-bg: var(--dark-body-tertiary);
    --n-bg: #000000;
    --n-bg-alt: #161617;
    --n-card: #1d1d1f;
    --n-text: #f5f5f7;
    --n-muted: #a1a1a6;
    --n-line: #424245;
    --n-accent-text: var(--brand-red-bright);
    --n-nav-bg: rgba(22, 22, 23, 0.72);
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 64px;
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
}

body {
    font-family: var(--n-font);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/* ===== Brand utilities ===== */
.brand-red { color: var(--n-accent-text) !important; }
.bg-brand { background-color: var(--brand-red); }
[data-bs-theme="dark"] .bg-brand { background-color: var(--brand-red-darker); }
[data-bs-theme="dark"] .bg-body-tertiary { background-color: var(--dark-body-tertiary) !important; }

.btn-brand {
    background-color: var(--brand-red);
    border-color: var(--brand-red);
    color: #fff;
}
.btn-brand:hover {
    background-color: var(--brand-red-darker);
    border-color: var(--brand-red-darker);
    color: #fff;
}

/* Pill buttons */
.n-btn {
    --bs-btn-padding-x: 1.4rem;
    --bs-btn-padding-y: .72rem;
    --bs-btn-font-size: 1.0625rem;
    --bs-btn-font-weight: 500;
    --bs-btn-border-radius: 980px;
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--brand-red);
    --bs-btn-border-color: var(--brand-red);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--brand-red-darker);
    --bs-btn-hover-border-color: var(--brand-red-darker);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--brand-red-darker);
    --bs-btn-active-border-color: var(--brand-red-darker);
    --bs-btn-focus-shadow-rgb: 194, 14, 26;
    letter-spacing: -.01em;
}
.n-btn-sm {
    --bs-btn-padding-x: .95rem;
    --bs-btn-padding-y: .32rem;
    --bs-btn-font-size: .8125rem;
}
.n-btn-ghost {
    --bs-btn-color: var(--n-accent-text);
    --bs-btn-bg: transparent;
    --bs-btn-border-color: var(--n-accent-text);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--brand-red);
    --bs-btn-hover-border-color: var(--brand-red);
}
.n-link {
    color: var(--n-accent-text);
    text-decoration: none;
    font-weight: 500;
    white-space: nowrap;
}
.n-link::after {
    content: "\203A";
    display: inline-block;
    margin-left: .3em;
    transition: transform .2s var(--n-ease);
}
.n-link:hover { text-decoration: underline; color: var(--n-accent-text); }
.n-link:hover::after { transform: translateX(3px); }

/* ===== Global nav ===== */
.n-nav {
    --bs-navbar-padding-y: 0;
    background: var(--n-nav-bg);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    backdrop-filter: saturate(180%) blur(20px);
    border-bottom: 1px solid transparent;
    transition: border-color .3s var(--n-ease);
    font-size: .8125rem;
}
.n-nav.n-nav-scrolled { border-bottom-color: rgba(0, 0, 0, .08); }
[data-bs-theme="dark"] .n-nav.n-nav-scrolled { border-bottom-color: rgba(255, 255, 255, .1); }
.n-nav-inner { min-height: 52px; }
.n-brand {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-size: 1.0625rem;
    font-weight: 600;
    letter-spacing: -.01em;
    color: var(--n-text) !important;
    padding: 0;
}
.n-brand img { width: 12px; height: auto; }
.n-brand .parsek-font { font-size: 1.2rem; }
.n-nav .nav-link {
    color: var(--n-text);
    opacity: .8;
    padding: .5rem .85rem !important;
    font-weight: 400;
    transition: opacity .2s var(--n-ease), color .2s var(--n-ease);
}
.n-nav .nav-link:hover,
.n-nav .nav-link:focus-visible { opacity: 1; color: var(--n-text); }
.n-nav .nav-link.active { opacity: 1; color: var(--n-accent-text); }
.n-badge {
    display: inline-block;
    font-size: .625rem;
    font-weight: 600;
    line-height: 1;
    padding: .25em .5em;
    border-radius: 980px;
    vertical-align: .15em;
    color: var(--n-accent-text);
    background: rgba(194, 14, 26, .09);
}
[data-bs-theme="dark"] .n-badge { background: rgba(241, 112, 122, .16); }
.n-nav-actions { display: flex; align-items: center; gap: .9rem; }
.n-nav-logout { color: var(--n-muted); text-decoration: none; }
.n-nav-logout:hover { color: var(--n-text); }

/* Two-line burger that turns into an X */
.n-toggler {
    border: 0;
    padding: .6rem .25rem;
    box-shadow: none !important;
}
.n-burger,
.n-burger::before {
    display: block;
    width: 18px;
    height: 1.5px;
    background: var(--n-text);
    border-radius: 1px;
    transition: transform .3s var(--n-ease);
    position: relative;
}
.n-burger { background: transparent; height: 8px; }
.n-burger::before,
.n-burger::after {
    content: "";
    position: absolute;
    left: 0;
    width: 18px;
    height: 1.5px;
    background: var(--n-text);
    border-radius: 1px;
    transition: transform .3s var(--n-ease), top .3s var(--n-ease);
}
.n-burger::before { top: 0; }
.n-burger::after { top: 6.5px; }
.n-toggler[aria-expanded="true"] .n-burger::before { top: 3.25px; transform: rotate(45deg); }
.n-toggler[aria-expanded="true"] .n-burger::after { top: 3.25px; transform: rotate(-45deg); }

@media (max-width: 991.98px) {
    .n-nav .navbar-collapse { padding: .5rem 0 1.25rem; }
    .n-nav .nav-link {
        font-size: 1.5rem;
        font-weight: 600;
        letter-spacing: -.02em;
        opacity: 1;
        padding: .45rem 0 !important;
    }
    .n-nav .nav-link.active { color: var(--n-accent-text); }
    .n-nav-actions { padding-top: .75rem; }
    .n-nav-actions .n-btn { --bs-btn-font-size: 1rem; --bs-btn-padding-y: .55rem; --bs-btn-padding-x: 1.4rem; }
    /* The open menu needs a solid backdrop: blurred text under big links is unreadable. */
    .n-nav:has(.navbar-collapse.show),
    .n-nav:has(.navbar-collapse.collapsing) { background: var(--n-bg); }
}

/* ===== Footer ===== */
.n-footer {
    background: var(--n-bg-alt);
    color: var(--n-muted);
    font-size: .8125rem;
    line-height: 1.6;
    padding: 3rem 0 1.5rem;
    border-top: 1px solid var(--n-line);
}
.n-footer a { color: var(--n-muted); text-decoration: none; }
.n-footer a:hover { color: var(--n-text); text-decoration: underline; }
.n-footer-brand {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--n-text) !important;
    text-decoration: none !important;
    letter-spacing: -.01em;
}
.n-footer-brand .parsek-font { font-size: 1.4rem; }
.n-footer-tag { margin: .5rem 0 0; max-width: 22rem; }
.n-footer-h {
    font-size: .8125rem;
    font-weight: 600;
    color: var(--n-text);
    margin-bottom: .6rem;
}
.n-footer li { margin-bottom: .35rem; }
.n-footer-contact { font-style: normal; margin: 0; }
.n-footer-bottom {
    margin-top: 2.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--n-line);
    display: flex;
    flex-wrap: wrap;
    gap: .75rem 1.5rem;
    justify-content: space-between;
    align-items: center;
    font-size: .75rem;
}
.footer-prefs { display: flex; flex-wrap: wrap; gap: 1.25rem; }

/* Theme + language switchers (footer) */
.theme-switcher,
.lang-switcher { font-size: .75rem; line-height: 1; }
.theme-switcher .theme-opt,
.lang-switcher .lang-opt {
    color: var(--n-muted);
    background: transparent;
    border: 0;
    padding: 0;
    font-weight: 400;
    text-decoration: none;
}
.theme-switcher .theme-opt:hover,
.theme-switcher .theme-opt:focus-visible,
.lang-switcher .lang-opt:hover,
.lang-switcher .lang-opt:focus-visible { color: var(--n-text); text-decoration: underline; }
.theme-switcher .theme-opt.active,
.lang-switcher .lang-opt.active { color: var(--n-text); font-weight: 600; }
.theme-sep { color: var(--n-line); margin: 0 .45rem; user-select: none; }

/* ===== Home page ===== */
body.n-home {
    background: var(--n-bg) !important;
    color: var(--n-text);
}
.n-section { padding: 6rem 0; }
.n-section-alt { background: var(--n-bg-alt); }
.n-eyebrow {
    font-size: 1.0625rem;
    font-weight: 600;
    color: var(--n-accent-text);
    margin-bottom: .5rem;
    letter-spacing: -.01em;
}
.n-h1,
.n-h2 {
    font-family: var(--n-font-display);
    font-weight: 700;
    letter-spacing: -.025em;
    line-height: 1.07;
    color: var(--n-text);
}
.n-h1 { font-size: clamp(2.75rem, 7.5vw, 5.25rem); }
.n-h2 { font-size: clamp(2rem, 4.6vw, 3.5rem); margin-bottom: 1rem; }
.n-lead {
    font-size: clamp(1.1875rem, 2.2vw, 1.5rem);
    line-height: 1.38;
    color: var(--n-muted);
    letter-spacing: -.01em;
    max-width: 40rem;
    margin-left: auto;
    margin-right: auto;
}
.n-sub { font-size: 1.1875rem; color: var(--n-muted); max-width: 40rem; margin: 0 auto; }

/* Hero */
.n-hero { padding: 5.5rem 0 0; text-align: center; overflow: hidden; }
.n-hero .n-h1 { margin-bottom: 1rem; }
.n-hero .n-h1 .parsek-font { color: var(--n-accent-text); font-size: 1.08em; }
.n-cta-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 1rem 1.75rem;
    margin-top: 2rem;
}
.n-cta-row .n-link { font-size: 1.0625rem; }
.n-proof {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin-top: 1.75rem;
    font-size: .875rem;
    color: var(--n-muted);
    text-decoration: none;
}
.n-proof:hover { color: var(--n-text); }
.n-proof strong { color: var(--n-text); font-weight: 600; }
.n-dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: #30d158;
    box-shadow: 0 0 0 4px rgba(48, 209, 88, .18);
}

/* Hero composition: printed pieces drawn in CSS — no image to download */
.n-stage {
    position: relative;
    height: clamp(240px, 38vw, 430px);
    max-width: 920px;
    margin: 3.5rem auto 0;
}
.n-piece {
    position: absolute;
    border-radius: 10px;
    box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .28), 0 10px 20px -10px rgba(0, 0, 0, .18);
    transition: transform .9s var(--n-ease);
}
.n-piece-book {
    width: 31%; aspect-ratio: 148 / 210;
    left: 34.5%; bottom: -14%;
    background: linear-gradient(135deg, #c20e1a 0%, #8f0a13 100%);
    border-radius: 4px 12px 12px 4px;
    color: #fff;
    display: flex; flex-direction: column; justify-content: space-between;
    padding: 9% 8%;
    text-align: left;
    z-index: 3;
}
.n-piece-book::before {
    content: ""; position: absolute; left: 6%; top: 0; bottom: 0; width: 1px;
    background: rgba(255, 255, 255, .25);
}
.n-piece-book b { font-family: var(--n-font-display); font-size: clamp(.9rem, 2.4vw, 1.6rem); line-height: 1.1; letter-spacing: -.02em; }
.n-piece-book span { font-size: clamp(.55rem, 1.1vw, .75rem); opacity: .8; }
.n-piece-card {
    width: 30%; aspect-ratio: 90 / 50;
    left: 6%; bottom: 22%;
    background: #fff;
    transform: rotate(-8deg);
    padding: 4% 4.5%;
    text-align: left;
    color: #1d1d1f;
    z-index: 2;
    display: flex; flex-direction: column; justify-content: space-between;
}
.n-piece-card b { font-size: clamp(.6rem, 1.5vw, 1rem); letter-spacing: -.01em; }
.n-piece-card b .parsek-font { color: #c20e1a; }
.n-piece-card span { font-size: clamp(.45rem, .95vw, .68rem); color: #6e6e73; line-height: 1.4; }
.n-piece-cal {
    width: 27%; aspect-ratio: 1 / 1.05;
    right: 6%; bottom: 14%;
    background: #fff;
    transform: rotate(7deg);
    z-index: 1;
    overflow: hidden;
    color: #1d1d1f;
    text-align: left;
}
.n-piece-cal header {
    background: #1d1d1f; color: #fff;
    font-size: clamp(.5rem, 1.2vw, .8rem); font-weight: 600;
    padding: 6% 8%;
    display: flex; justify-content: space-between;
}
.n-piece-cal .n-cal-grid {
    display: grid; grid-template-columns: repeat(7, 1fr); gap: 4%;
    padding: 7% 8%;
}
.n-piece-cal .n-cal-grid i {
    aspect-ratio: 1; border-radius: 2px; background: #e8e8ed;
}
.n-piece-cal .n-cal-grid i.on { background: #c20e1a; }
.n-piece-stamp {
    width: 11%; aspect-ratio: 1;
    left: 25%; bottom: 0;
    border-radius: 50%;
    background: #fff;
    border: 3px solid rgba(194, 14, 26, .85);
    box-shadow: 0 16px 30px -12px rgba(0, 0, 0, .3);
    z-index: 4;
    display: grid; place-items: center;
    color: rgba(194, 14, 26, .9);
    font-family: 'ParsekCyrillic', Arial, sans-serif;
    font-size: clamp(.55rem, 1.4vw, 1rem);
    transform: rotate(-14deg);
}
.n-piece-stamp::before {
    content: ""; position: absolute; inset: 9%;
    border: 1px solid rgba(194, 14, 26, .6); border-radius: 50%;
}
[data-bs-theme="dark"] .n-piece { box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .9); }
@media (hover: hover) {
    .n-stage:hover .n-piece-card { transform: rotate(-11deg) translate(-4%, -6%); }
    .n-stage:hover .n-piece-cal { transform: rotate(10deg) translate(4%, -6%); }
    .n-stage:hover .n-piece-book { transform: translateY(-4%); }
}

/* Feature tiles (apple.com style two-up grid) */
.n-tiles { padding: .75rem 0 0; }
.n-tiles .row { --bs-gutter-x: .75rem; --bs-gutter-y: .75rem; }
.n-tile {
    position: relative;
    height: 100%;
    min-height: 460px;
    border-radius: var(--n-radius);
    background: var(--n-bg-alt);
    padding: 3rem 2rem 0;
    text-align: center;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.n-tile-dark { background: #000; color: #f5f5f7; }
[data-bs-theme="dark"] .n-tile-dark { background: #1d1d1f; }
.n-tile-dark .n-tile-text { color: #a1a1a6; }
.n-tile-dark .n-link { color: #f1707a; }
.n-tile h2 {
    font-family: var(--n-font-display);
    font-size: clamp(1.75rem, 3.2vw, 2.5rem);
    font-weight: 700;
    letter-spacing: -.02em;
    margin-bottom: .35rem;
}
.n-tile-text { font-size: 1.1875rem; color: var(--n-muted); margin-bottom: 1rem; max-width: 26rem; }
.n-tile-links { display: flex; gap: 1.5rem; justify-content: center; flex-wrap: wrap; font-size: 1.0625rem; }
.n-tile-art {
    margin-top: auto;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    padding-top: 2rem;
}
.n-tile-art img {
    width: 100%;
    max-width: 520px;
    height: auto;
    border-radius: 14px 14px 0 0;
    display: block;
}
.n-tile-art img { max-height: 340px; object-fit: cover; }
/* Fanned business cards for the order tile */
.n-fan { position: relative; width: 300px; height: 210px; margin-bottom: 2.5rem; }
.n-fan-card {
    position: absolute; left: 40px; top: 40px;
    width: 220px; aspect-ratio: 90 / 50;
    background: #fff; color: #1d1d1f;
    border-radius: 8px;
    box-shadow: 0 20px 40px -14px rgba(0, 0, 0, .35);
    padding: 16px 18px;
    display: flex; flex-direction: column; justify-content: space-between;
    text-align: left;
    transition: transform .6s var(--n-ease);
}
.n-fan-card b { font-size: .95rem; letter-spacing: -.01em; }
.n-fan-card b .parsek-font { color: #c20e1a; font-size: 1.1em; }
.n-fan-card span { font-size: .66rem; color: #6e6e73; line-height: 1.4; }
.n-fan-card:nth-child(1) { transform: rotate(-14deg) translate(-26px, 6px); background: #c20e1a; }
.n-fan-card:nth-child(1) * { visibility: hidden; }
.n-fan-card:nth-child(2) { transform: rotate(-5deg) translate(-8px, -4px); background: #1d1d1f; }
.n-fan-card:nth-child(2) * { visibility: hidden; }
.n-fan-card:nth-child(3) { transform: rotate(5deg) translate(14px, -10px); }
@media (hover: hover) {
    .n-tile:hover .n-fan-card:nth-child(1) { transform: rotate(-18deg) translate(-40px, 6px); }
    .n-tile:hover .n-fan-card:nth-child(3) { transform: rotate(8deg) translate(26px, -16px); }
}
/* Calendar for the calendars tile (same drawing as the hero one, standing alone) */
.n-cal-art {
    position: relative; right: auto; bottom: auto;
    width: 230px; margin-bottom: 2.75rem;
    transform: rotate(4deg);
}
.n-cal-art header { font-size: .85rem; }
/* Upload → paper motif for the print tile */
.n-print-art {
    position: relative;
    width: 220px; height: 170px;
    margin-bottom: 2.5rem;
}
.n-print-art .n-sheet {
    position: absolute; width: 120px; height: 160px; border-radius: 6px;
    background: #fff; box-shadow: 0 20px 40px -12px rgba(0, 0, 0, .6);
    padding: 16px 14px;
}
.n-print-art .n-sheet i {
    display: block; height: 6px; border-radius: 3px; background: #e8e8ed; margin-bottom: 9px;
}
.n-print-art .n-sheet i:first-child { width: 60%; background: #c20e1a; }
.n-print-art .n-sheet:nth-child(1) { left: 10px; top: 10px; transform: rotate(-9deg); opacity: .55; }
.n-print-art .n-sheet:nth-child(2) { left: 50px; top: 0; z-index: 2; }
.n-print-art .n-chip {
    position: absolute; right: 0; bottom: 6px; z-index: 3;
    background: #1f7a35; color: #fff; border-radius: 980px;
    font-size: .8125rem; font-weight: 600; padding: .35rem .8rem;
    box-shadow: 0 10px 20px -8px rgba(31, 122, 53, .7);
}

/* Services grid */
.n-services { margin-top: 3.5rem; }
.n-services .row { --bs-gutter-x: 1rem; --bs-gutter-y: 1rem; }
.n-service {
    height: 100%;
    background: var(--n-bg-alt);
    border-radius: 18px;
    padding: 1.5rem 1.4rem;
    transition: transform .35s var(--n-ease), box-shadow .35s var(--n-ease);
}
.n-service i { font-size: 1.6rem; color: var(--n-accent-text); margin-bottom: .9rem; }
.n-service h3 { font-size: 1.0625rem; font-weight: 600; margin-bottom: .2rem; letter-spacing: -.01em; }
.n-service p { font-size: .875rem; color: var(--n-muted); margin: 0; }
@media (hover: hover) {
    .n-service:hover { transform: scale(1.02); box-shadow: 0 8px 30px rgba(0, 0, 0, .08); }
}

/* Steps */
.n-steps { counter-reset: step; margin-top: 3.5rem; }
.n-step { text-align: center; padding: 0 1rem; }
.n-step::before {
    counter-increment: step;
    content: counter(step);
    display: inline-grid; place-items: center;
    width: 52px; height: 52px; border-radius: 50%;
    font-family: var(--n-font-display);
    font-size: 1.375rem; font-weight: 600;
    color: var(--n-accent-text);
    border: 1.5px solid currentColor;
    margin-bottom: 1.1rem;
}
.n-step h3 { font-size: 1.3125rem; font-weight: 600; letter-spacing: -.015em; }
.n-step p { color: var(--n-muted); font-size: 1rem; max-width: 20rem; margin: 0 auto; }

/* Numbers strip */
.n-stats { margin-top: 3.5rem; }
.n-stat { text-align: center; padding: 1rem; }
.n-stat b {
    display: block;
    font-family: var(--n-font-display);
    font-size: clamp(2.25rem, 4.5vw, 3.5rem);
    font-weight: 700;
    letter-spacing: -.03em;
    line-height: 1.05;
    color: var(--n-text);
}
.n-stat span { color: var(--n-muted); font-size: 1rem; }

/* FAQ */
.n-faq { max-width: 760px; margin: 3rem auto 0; }
.n-faq details { border-bottom: 1px solid var(--n-line); }
.n-faq details:first-child { border-top: 1px solid var(--n-line); }
.n-faq summary {
    list-style: none;
    cursor: pointer;
    padding: 1.35rem 2.5rem 1.35rem 0;
    font-size: 1.1875rem;
    font-weight: 600;
    letter-spacing: -.01em;
    position: relative;
}
.n-faq summary::-webkit-details-marker { display: none; }
.n-faq summary::after {
    content: "+";
    position: absolute; right: .25rem; top: 50%;
    transform: translateY(-50%);
    font-size: 1.6rem; font-weight: 300;
    color: var(--n-muted);
    transition: transform .25s var(--n-ease);
}
.n-faq details[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.n-faq details p { color: var(--n-muted); font-size: 1.0625rem; padding: 0 2.5rem 1.4rem 0; margin: 0; }
.n-faq a { color: var(--n-accent-text); }

/* Visit us */
.n-visit {
    border-radius: var(--n-radius);
    background: var(--n-card);
    padding: 3rem 2rem;
    text-align: center;
}
.n-visit address { font-style: normal; font-size: 1.1875rem; color: var(--n-muted); margin: 1rem 0 1.75rem; line-height: 1.6; }
.n-visit address strong { color: var(--n-text); font-weight: 600; }

/* Scroll reveal (script.js adds .n-in) */
.n-reveal { opacity: 0; transform: translateY(28px); transition: opacity .9s var(--n-ease), transform .9s var(--n-ease); }
.n-reveal.n-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
    .n-reveal { opacity: 1; transform: none; transition: none; }
    .n-piece, .n-service, .n-link::after { transition: none; }
}

@media (max-width: 767.98px) {
    .n-section { padding: 4rem 0; }
    .n-hero { padding-top: 3.5rem; }
    .n-tile { min-height: 400px; padding: 2.5rem 1.25rem 0; }
    .n-tile-glyph { font-size: 5.5rem; }
    .n-stage { margin-top: 2.5rem; }
    .n-piece-book { width: 40%; left: 30%; }
    .n-piece-card { width: 40%; left: 0; bottom: 30%; }
    .n-piece-cal { width: 34%; right: 0; bottom: 22%; }
    .n-piece-stamp { width: 15%; left: 14%; }
}

/* ===== Shared components used by print.php ===== */
/* Dropdown button styling */
.dropdown .btn-link {
    color: var(--bs-danger) !important;
}

.dropdown .btn-link:hover,
.dropdown .btn-link:focus {
    color: var(--bs-danger-hover) !important;
    opacity: 0.9;
}

/* Dropdown menu styling */
.dropdown-menu {
    padding: 0.5rem 0;
    border-radius: 0.5rem;
}

/* Dropdown items styling */
.dropdown-item {
    padding: 0.5rem 1rem;
}

.dropdown-item:hover:not(.active) {
    background-color: var(--bs-danger-subtle);
    color: var(--bs-danger);
}

.dropdown-item.active {
    background-color: var(--bs-danger) !important;
    color: white !important;
}

/* Divider styling */
.dropdown-divider {
    margin: 0.5rem 0;
    opacity: 0.1;
}

/* Dark mode adjustments */
[data-bs-theme="dark"] .dropdown-menu {
    background-color: var(--bs-dark);
    border-color: rgba(255, 255, 255, .125);
}

[data-bs-theme="dark"] .dropdown-item:not(.active):not(:hover) {
    color: var(--bs-light);
}

[data-bs-theme="dark"] .dropdown-item:hover:not(.active) {
    background-color: rgba(var(--bs-danger-rgb), 0.1);
}

/* Badge styling */
.badge.bg-warning {
    font-size: 0.65em;
    padding: 0.35em 0.65em;
    font-weight: 600;
    transition: all 0.3s ease;
}


/* Footer contact links: comfortable tap targets on phones */
.n-footer-contact a,
.n-footer li a { display: inline-block; padding: .2rem 0; }

/* About page: small bold red labels need the deeper brand red to stay legible */
#about .text-danger { color: var(--n-accent-text) !important; }
