/* NorroSoft inner pages. The homepage, site header and footer are outside this scope. */
.interior {
    --ns-accent: #c72943;
    --ns-banner-gradient: linear-gradient(45deg, #c72943, #e46077);
    --ns-tint: #fff1f3;
    --ns-ink: #172239;
    --ns-muted: #586476;
    --ns-surface: #f5f7fa;
    color: var(--ns-ink);
    font: 1rem/1.75 'Noto Sans', Arial, sans-serif;
    overflow-wrap: break-word;
    padding-bottom: 44px;
}
.interior.ns-theme-green { --ns-accent: #087052; --ns-tint: #edf8f3; --ns-banner-gradient: linear-gradient(20deg, #087052, #169976); }
.interior.ns-theme-blue { --ns-accent: #2860b7; --ns-tint: #eef4ff; --ns-banner-gradient: linear-gradient(40deg, #2860b7, #5399e8); }
.interior.ns-theme-violet { --ns-accent: #7048b8; --ns-tint: #f4f0fc; --ns-banner-gradient: linear-gradient(20deg, #7048b8, #a17de0); }
.interior.ns-theme-orange { --ns-accent: #b84e21; --ns-tint: #fff3eb; --ns-banner-gradient: linear-gradient(45deg, #b84e21, #e0834a); }
.interior.ns-theme-navy { --ns-accent: #243855; --ns-tint: #f0f4f9; --ns-banner-gradient: linear-gradient(40deg, #243855, #496687); }
/* Exact original gradients apply only to the banner, keeping all content accents. */
.interior .ns-banner[data-banner-gradient="green"] { --ns-banner-gradient: linear-gradient(20deg, var(--gradient-green-start), var(--gradient-green-end)); }
.interior .ns-banner[data-banner-gradient="blue"] { --ns-banner-gradient: linear-gradient(40deg, var(--gradient-blue-start), var(--gradient-blue-end)); }
.interior .ns-banner[data-banner-gradient="violet"] { --ns-banner-gradient: linear-gradient(20deg, var(--gradient-violet-start), var(--gradient-violet-end)); }
.interior .ns-banner[data-banner-gradient="red"] { --ns-banner-gradient: linear-gradient(45deg, var(--gradient-red-start), var(--gradient-red-end)); }
.interior .ns-banner[data-banner-gradient="orange"] { --ns-banner-gradient: linear-gradient(45deg, var(--gradient-orange-start), var(--gradient-orange-end)); }
.interior *, .interior *::before, .interior *::after { box-sizing: border-box; }
.interior .ns-banner-inner, .interior .section-post.wrap { width: calc(100% - 170px); max-width: 1200px; margin: 0 auto; }
.interior .interior-hero {
    width: 95%;
    max-width: none;
    margin: 0 auto;
    padding: 0;
    color: #fff;
    background: var(--ns-accent);
    background-image: var(--ns-banner-gradient);
    border: 0;
    border-radius: var(--border-radius-secondary);
}
.interior .ns-banner-inner { padding: 56px 0 0; }
.interior .ns-banner-category { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 0 0 22px; font-size: .875rem; font-weight: 700; line-height: 1.5; letter-spacing: .09em; text-transform: uppercase; color: #fff; }
.interior .ns-page-label { display: inline-block; max-width: 100%; padding: 5px 12px; border-radius: 999px; background: #f4f4f4; color: #161b3d; font-size: .75rem; font-weight: 700; line-height: 1.5; letter-spacing: .14em; text-transform: uppercase; text-align: center; }
.interior .interior-hero h1 {
    margin: 0 0 24px;
    max-width: 24ch;
    color: #fff;
    font-family: 'Manrope', 'Noto Sans', Arial, sans-serif;
    font-size: clamp(2.75rem, 5.2vw, 4.75rem);
    font-weight: 800;
    line-height: 1.07;
    letter-spacing: -.045em;
}
.interior .ns-banner-lead { max-width: 69ch; margin: 0 0 40px; color: #fff; font-size: 1.125rem; line-height: 1.75; }
.interior .ns-banner-labels { display: flex; flex-wrap: wrap; gap: 12px 40px; margin: 0; padding: 22px 0; list-style: none; border-top: 1px solid rgba(255,255,255,.28); }
.interior .ns-banner-labels li { margin: 0; padding: 0; color: #fff; font-size: .875rem; line-height: 1.5; }
.interior .section-post.wrap { position: relative; padding: 0; background: #fff; border-radius: 0; }
.interior .post-wrap { width: 100%; max-width: none; margin: 0; padding: 0 0 30px; color: var(--ns-muted); font-size: 1rem; }
.interior .post-wrap p { margin: 0 0 20px; padding: 0; color: var(--ns-muted); font-size: 1rem; line-height: 1.8; }
.interior .post-wrap h2,
.interior .post-wrap h3,
.interior .post-wrap h4 {
    margin: 0 0 18px;
    padding: 0;
    border: 0;
    border-radius: 0;
    color: var(--ns-ink);
    background: none;
    font-family: 'Manrope', 'Noto Sans', Arial, sans-serif;
    font-weight: 800;
    text-transform: none;
    text-wrap: balance;
}
.interior .post-wrap h2,
.interior .post-wrap h4 { font-size: clamp(1.875rem, 3.1vw, 2.75rem); line-height: 1.2; letter-spacing: -.035em; }
.interior .post-wrap h3 { font-size: 1.375rem; line-height: 1.35; letter-spacing: -.02em; }
.interior .post-wrap a { border: 0; color: var(--ns-accent); text-decoration: underline; text-underline-offset: 4px; }
.interior a:focus-visible, .interior button:focus-visible { outline: 3px solid var(--ns-ink); outline-offset: 5px; }
.interior .global-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    flex-shrink: 0;
    min-height: 54px;
    padding: 16px 22px;
    margin: 0;
    border: 0;
    border-radius: 10px;
    color: #fff;
    background: var(--ns-accent);
    font-family: inherit;
    font-size: .9375rem;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0;
    text-transform: none;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
}
.interior .global-button:hover { color: #fff; filter: brightness(.92); }
.interior .ns-contact-grid { display: grid; grid-template-columns: .9fr 1.3fr; gap: 72px; padding: 64px 0; }
.interior .ns-contact-intro h2 { margin-bottom: 24px; }
.interior .ns-contact-intro > p { max-width: 40ch; }
.interior .ns-enquiry { padding: 34px; border-radius: 18px; background: var(--ns-surface); }
.interior .ns-enquiry > h2 { font-size: 1.5rem; margin-bottom: 26px; }
.interior .contact-form fieldset { min-width: 0; border: 0; padding: 0; margin: 0; }
.interior .contact-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; margin-bottom: 22px; }
.interior .contact-field-grid .contact-field { margin: 0; }
.interior .contact-field { min-width: 0; margin: 0 0 22px; }
.interior .contact-field label { display: block; margin-bottom: 9px; color: var(--ns-ink); font-size: .875rem; font-weight: 700; }
.interior .contact-field .optional { color: var(--ns-muted); font-size: .875rem; font-weight: 400; }
.interior .contact-field input, .interior .contact-field select, .interior .contact-field textarea { width: 100%; min-width: 0; max-width: 100%; margin: 0; padding: 13px 14px; border: 1px solid #cbd3df; border-radius: 8px; color: var(--ns-ink); background: #fff; font-family: inherit; font-size: 1rem; line-height: 1.5; }
.interior .contact-field textarea { min-height: 170px; resize: vertical; }
.interior .contact-field input:focus, .interior .contact-field select:focus, .interior .contact-field textarea:focus { outline: 3px solid rgba(199,41,67,.12); border-color: var(--ns-accent); box-shadow: none; }
.interior .contact-field input[aria-invalid="true"], .interior .contact-field textarea[aria-invalid="true"] { border-color: #b91e38; }
.interior .contact-form .global-button { width: 100%; }
.interior .contact-form button:disabled { opacity: .55; cursor: not-allowed; }
.interior .post-wrap .contact-note { margin: 16px 0 0; font-size: .875rem; }
.interior .contact-notice { padding: 20px; margin: 0 0 26px; border-radius: 8px; background: #e7ecf3; }
.interior .contact-notice h2 { font-size: 1.125rem; margin: 0 0 12px; }
.interior .contact-notice p { font-size: .9375rem; margin: 0; }
.interior .contact-notice-error { border-left: 3px solid #b91e38; background: #ffe9ee; }
.interior .contact-notice ul { font-size: .9375rem; margin: 0; padding-left: 20px; }
.interior .contact-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.interior .post-meta { max-width: 263px; margin: 20px auto; }
.interior .post-share { position: relative; bottom: auto; margin-top: 0; }
/* The supplied article samples keep their content, with full-colour page banners. */
@media (max-width: 1199px) {
    .interior .ns-contact-grid { column-gap: 44px; }
}
@media (max-width: 1023px) {
    .interior .ns-banner-inner, .interior .section-post.wrap { width: calc(100% - 80px); }
    .interior .ns-banner-inner { padding-top: 44px; }
    .interior .interior-hero h1 { font-size: clamp(2.75rem, 6.6vw, 4rem); }
    .interior .ns-contact-grid { grid-template-columns: 1fr 1.25fr; gap: 32px; }
    .interior .ns-enquiry { padding: 24px; }
    .interior .contact-field-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 767px) {
    .interior { padding-bottom: 20px; }
    .interior .ns-banner-inner, .interior .section-post.wrap { width: calc(100% - 40px); }
    .interior .ns-banner-inner { padding-top: 36px; }
    .interior .ns-banner-category { font-size: .8125rem; margin-bottom: 20px; }
    .interior .interior-hero h1 { font-size: clamp(2.375rem, 8vw, 3.5rem); letter-spacing: -.035em; margin-bottom: 22px; }
    .interior .ns-banner-lead { font-size: 1rem; margin-bottom: 28px; }
    .interior .ns-banner-labels { gap: 10px 20px; padding: 18px 0; }
    .interior .ns-contact-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; padding: 42px 0; }
    .interior .ns-contact-intro > p { max-width: none; }
    .interior .ns-enquiry { padding: 24px; }
}
@media (prefers-reduced-motion: reduce) {
    .interior *, .interior *::before, .interior *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
