/* ==========================================================================
   Krystal — main stylesheet (plx- prefix)
   1 Tokens · 2 Base · 3 Layout · 4 Components · 5 Sections · 6 Responsive
   Sizes are rem (16px = 1rem). From 1200px up, html scales with the viewport
   so the 1920px design keeps its proportions on all desktop widths.
   ========================================================================== */

/* 1. TOKENS ---------------------------------------------------------------- */
:root {
    /* Colors */
    --plx-color-sky: #0096da;
    --plx-color-indigo: #191659;
    --plx-color-ink: #031729;
    --plx-color-navy: #072940;
    --plx-color-gold: #c69547;
    --plx-color-gray: #6f6f6f;
    --plx-color-white: #fff;
    --plx-color-black: #000;

    /* Tints */
    --plx-tint-gold-wash: #c695470d;
    --plx-tint-gold-17: #c695472b;
    --plx-tint-gold-36: #c695475c;
    --plx-tint-sky-wash: #0096da1a;
    --plx-tint-white-line: #ffffff59;
    --plx-tint-white-85: #ffffffd9;

    /* Semantic surfaces & text */
    --plx-bg-page: var(--plx-color-white);
    --plx-bg-section: #e5f4fb;
    --plx-bg-card: var(--plx-color-white);
    --plx-bg-dark: var(--plx-color-indigo);
    --plx-text-body: var(--plx-color-gray);
    --plx-text-heading: var(--plx-color-ink);
    --plx-text-strong: var(--plx-color-black);
    --plx-text-on-dark: var(--plx-color-white);
    --plx-accent: var(--plx-color-sky);

    /* Typography */
    --plx-font-body: "Noto Sans Display", "Noto Sans", system-ui, sans-serif;
    --plx-font-display: "Noto Sans Display", "Noto Sans", system-ui, sans-serif;
    --plx-weight-regular: 400;
    --plx-weight-medium: 500;
    --plx-weight-semibold: 600;
    --plx-weight-bold: 700;
    --plx-weight-xbold: 800;
    --plx-weight-black: 900;

    --plx-text-md: 1.3rem;
    --plx-text-lg: 1.375rem;
    --plx-text-xl: 1.5rem;
    --plx-text-h3: 2rem;
    --plx-text-h2: 3.875rem;
    --plx-text-h1: 4.7rem;

    --plx-lh-body: 1.3;
    --plx-lh-h3: 2.5rem;
    --plx-lh-h2: 4.25rem;
    --plx-lh-h1: 5.625rem;
    --plx-ls-eyebrow: 0.09em;

    /* Spacing */
    --plx-space-1: 0.5rem;
    --plx-space-2: 1rem;
    --plx-space-3: 1.5rem;
    --plx-space-4: 2rem;
    --plx-space-6: 3rem;
    --plx-gutter: 7.5rem;

    /* Radius, shadows */
    --plx-radius-card: 1.25rem;
    --plx-radius-media: 1.25rem;
    --plx-radius-hero: 2.5rem;
    --plx-radius-cta: 4rem;
    --plx-radius-pill: 62.5rem;
    --plx-shadow-card: 0 0.25rem 1.5rem #0096da14;
    --plx-shadow-btn: 0 0.5rem 1.25rem #19165940;

    /* Layout */
    --plx-container: 107rem;
    --plx-header-h: 8.75rem;
    --plx-header-h-compact: 5.75rem;
    --plx-shadow-header: 0 0.125rem 0.75rem #19165914;
    --plx-shadow-dropdown: 0 0.25rem 1.5rem #19165926;
    --plx-transition: 0.25s ease;
    --plx-z-header: 100;
    --plx-z-preloader: 1000;
}

/* Dark theme hook (toggle intentionally not shown yet) */
:root[data-theme="dark"] {
    /* override semantic tokens here when dark mode is requested */
}

/* 2. BASE ------------------------------------------------------------------ */
*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
    margin: 0;
    background: var(--plx-bg-page);
    color: var(--plx-text-body);
    font-family: var(--plx-font-body);
    font-size: var(--plx-text-md);
    line-height: var(--plx-lh-body);
    padding-top: var(--plx-header-h);
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, p, ul, address { margin: 0; padding: 0; font-style: normal; }
ul { list-style: none; }
img, svg { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }

:focus-visible { outline: 2px solid var(--plx-accent); outline-offset: 3px; }

/* 3. LAYOUT ---------------------------------------------------------------- */
.plx-container {
    width: 100%;
    max-width: var(--plx-container);
    margin-inline: auto;
    padding-inline: var(--plx-space-2);
}

/* 4. COMPONENTS ------------------------------------------------------------ */
.plx-eyebrow {
    color: var(--plx-accent);
    font-size: 1.25rem;
    font-weight: var(--plx-weight-semibold);
    letter-spacing: var(--plx-ls-eyebrow);
    line-height: 1.4;
    text-transform: uppercase;
}
.plx-eyebrow-gold { color: var(--plx-color-gold); }

.plx-btn {
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: 0.6875rem;
    min-height: 4.25rem;
    padding: 0 1.5rem;
    border-radius: var(--plx-radius-pill);
    font-size: 1.4rem;
    font-weight: var(--plx-weight-medium);
    line-height: 1.2;
    transition: transform var(--plx-transition), box-shadow var(--plx-transition);
}
.plx-btn:hover { transform: translateY(-2px); box-shadow: var(--plx-shadow-btn); }
.plx-btn-primary { background: var(--plx-color-indigo); color: var(--plx-text-on-dark); }
.plx-btn-light { background: var(--plx-color-white); color: var(--plx-color-indigo); }
.plx-btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    background: var(--plx-accent);
}
.plx-btn-icon img { width: 1.125rem; height: 1.125rem; }

.plx-chip-list { display: flex; flex-wrap: wrap; gap: 0.8125rem; }
.plx-chip {
    display: inline-flex;
    align-items: center;
    height: 3.25rem;
    padding: 0 1rem;
    border-radius: var(--plx-radius-pill);
    background: var(--plx-tint-gold-wash);
    color: var(--plx-color-gold);
    font-size: var(--plx-text-md);
    font-weight: var(--plx-weight-medium);
}

/* Preloader */
.plx-preloader {
    position: fixed;
    inset: 0;
    z-index: var(--plx-z-preloader);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--plx-space-3);
    background: var(--plx-bg-page);
    transition: opacity 0.4s ease, visibility 0.4s ease;
}
.plx-preloader[data-plx-loaded="true"] { opacity: 0; visibility: hidden; pointer-events: none; }
.plx-preloader-logo { width: min(16rem, 60vw); }
.plx-preloader-bar {
    position: relative;
    width: min(16rem, 60vw);
    height: 0.25rem;
    overflow: hidden;
    border-radius: var(--plx-radius-pill);
    background: var(--plx-tint-sky-wash);
}
.plx-preloader-bar::after {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 40%;
    border-radius: inherit;
    background: var(--plx-accent);
    animation: plx-load 1s ease-in-out infinite;
}
@keyframes plx-load { from { transform: translateX(-100%); } to { transform: translateX(250%); } }

/* Back to top */
.plx-back-to-top {
    position: fixed;
    right: var(--plx-space-3);
    bottom: var(--plx-space-3);
    z-index: var(--plx-z-header);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--plx-color-indigo);
    opacity: 0;
    visibility: hidden;
    transform: translateY(0.5rem);
    transition: opacity var(--plx-transition), transform var(--plx-transition), visibility var(--plx-transition);
}
.plx-back-to-top[data-plx-visible="true"] { opacity: 1; visibility: visible; transform: none; }

/* 5. SECTIONS -------------------------------------------------------------- */

/* Header */
.plx-header {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: var(--plx-z-header);
    background: var(--plx-bg-page);
    transition: box-shadow var(--plx-transition);
}
.plx-header[data-plx-scrolled="true"] { box-shadow: var(--plx-shadow-header); }
.plx-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--plx-space-2);
    min-height: var(--plx-header-h);
    padding-inline: var(--plx-gutter);
    transition: min-height var(--plx-transition);
}
.plx-header[data-plx-scrolled="true"] .plx-header-inner { min-height: var(--plx-header-h-compact); }
.plx-header-logo img { width: 25.1875rem; transition: width var(--plx-transition); }
.plx-header[data-plx-scrolled="true"] .plx-header-logo img { width: 17rem; }
/* header CTA keeps the smaller 22px label */
.plx-header-cta { font-size: var(--plx-text-lg); }
.plx-header-menu { display: flex; align-items: center; flex: 1; justify-content: space-between; }
.plx-header-menu-body { display: contents; }
.plx-nav { margin-inline: auto; }
.plx-nav-list { display: flex; align-items: center; gap: 2.6875rem; padding-top: 0.125rem; }
.plx-nav-link {
    padding: 0;
    border: 0;
    background: none;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    color: var(--plx-text-heading);
    font-size: var(--plx-text-lg);
    font-weight: var(--plx-weight-medium);
    transition: color var(--plx-transition), font-size var(--plx-transition);
}
.plx-nav-link:hover { color: var(--plx-accent); }
.plx-nav-link img { width: 0.75rem; height: 0.4375rem; transition: transform var(--plx-transition); }
.plx-nav-link[aria-expanded="true"] { color: var(--plx-accent); }
.plx-nav-link[aria-expanded="true"] img { transform: rotate(180deg); }
.plx-header[data-plx-scrolled="true"] .plx-nav-link { font-size: 1.125rem; }
.plx-header[data-plx-scrolled="true"] .plx-header-cta { min-height: 3.25rem; font-size: 1.125rem; padding: 0 1.125rem; }
.plx-header[data-plx-scrolled="true"] .plx-header-cta .plx-btn-icon { width: 1.75rem; height: 1.75rem; }
.plx-header[data-plx-scrolled="true"] .plx-header-cta .plx-btn-icon img { width: 0.875rem; height: 0.875rem; }
.plx-header-cta { transition: min-height var(--plx-transition), font-size var(--plx-transition), padding var(--plx-transition), transform var(--plx-transition), box-shadow var(--plx-transition); }

/* Nav dropdowns */
.plx-dropdown {
    position: absolute;
    top: 100%;
    right: 2.25rem;
    left: 2.25rem;
    display: none;
    padding: 2.25rem;
    border: 1px solid var(--plx-tint-gold-wash);
    border-radius: 1.75rem;
    background: var(--plx-bg-card);
    box-shadow: var(--plx-shadow-dropdown);
}
.plx-dropdown[data-plx-open="true"] { display: block; }
.plx-dropdown-tabs { display: flex; gap: 1rem; margin-bottom: 1.5rem; }
.plx-dropdown-tab {
    height: 4.0625rem;
    padding: 0 1.6rem;
    border: 0;
    border-radius: 1rem;
    background: var(--plx-tint-gold-17);
    color: var(--plx-color-navy);
    font-size: 1.53rem;
    font-weight: var(--plx-weight-semibold);
    transition: background var(--plx-transition), color var(--plx-transition);
}
.plx-dropdown-tab[data-plx-active="true"] { background: var(--plx-accent); color: var(--plx-text-on-dark); }
.plx-dropdown-pane {
    display: none;
    padding: 1.5rem 2rem;
    border-radius: 2rem;
    background: var(--plx-tint-gold-36);
}
.plx-dropdown-pane[data-plx-open="true"] { display: block; }
.plx-dropdown-title {
    margin-bottom: 2rem;
    color: var(--plx-text-heading);
    font-family: var(--plx-font-display);
    font-size: 2.625rem;
    font-weight: var(--plx-weight-xbold);
    line-height: 3rem;
}
.plx-dropdown-pane:has(.plx-dropdown-title) { padding-top: 2rem; }
.plx-dropdown-grid,
.plx-dropdown-sub { display: grid; gap: 1.25rem; }
.plx-dropdown-grid > .plx-dropdown-link { align-self: start; }
.plx-dropdown-grid-3 { grid-template-columns: repeat(3, 1fr); }
.plx-dropdown-grid-4 { grid-template-columns: repeat(4, 1fr); }
.plx-dropdown-grid-5 { grid-template-columns: repeat(5, 1fr); }
.plx-dropdown-grid-4 .plx-dropdown-sub { grid-column: 2 / -1; grid-template-columns: repeat(3, 1fr); }
.plx-dropdown-grid-5 .plx-dropdown-sub { grid-column: 2 / -1; grid-template-columns: repeat(4, 1fr); }
.plx-dropdown-link {
    display: flex;
    align-items: center;
    min-height: 5.6875rem;
    padding: 0.75rem 2rem;
    border-radius: 1.25rem;
    background: var(--plx-bg-card);
    color: var(--plx-text-strong);
    font-size: 1.34rem;
    font-weight: var(--plx-weight-semibold);
    line-height: 1.25;
    transition: color var(--plx-transition), box-shadow var(--plx-transition);
}
.plx-dropdown-grid-4 .plx-dropdown-link,
.plx-dropdown-grid-5 .plx-dropdown-link { min-height: 6.5625rem; }
.plx-dropdown-link:hover { color: var(--plx-accent); box-shadow: var(--plx-shadow-card); }
.plx-nav-toggle { display: none; }

/* Hero */
.plx-hero {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 35.8125rem;
    margin: 0.8125rem 3.75rem 0;
    overflow: hidden;
    border-radius: var(--plx-radius-hero);
    background: var(--plx-bg-dark);
    color: var(--plx-text-on-dark);
}
.plx-hero-art {
    position: absolute;
    top: 0;
    right: 0;
    height: 100%;
    width: auto;
    max-width: none;
}
.plx-hero-body { position: relative; padding: var(--plx-space-6) 3.75rem; max-width: 56rem; }
.plx-hero-title {
    margin: 0 0 1.25rem;
    font-family: var(--plx-font-display);
    font-size: var(--plx-text-h1);
    font-weight: var(--plx-weight-black);
    letter-spacing: -0.02em;
    line-height: var(--plx-lh-h1);
}
.plx-hero-text { max-width: 44rem; color: var(--plx-tint-white-85); }

/* Services */
.plx-services { margin-top: 4.5rem; padding: 5.5rem 0 5.5rem; background: var(--plx-bg-section); }
.plx-section-head { max-width: 96rem; margin: 0 auto 3.3rem; text-align: center; }
.plx-section-title {
    color: var(--plx-text-heading);
    font-family: var(--plx-font-display);
    font-size: var(--plx-text-h2);
    font-weight: var(--plx-weight-xbold);
    line-height: var(--plx-lh-h2);
}
.plx-section-text { margin-top: 1rem; font-size: 1.275rem; }
.plx-service-text,
.plx-chip { font-size: 1.25rem; }

.plx-service-list { display: flex; flex-direction: column; gap: 3.25rem; }
.plx-service-card {
    display: flex;
    gap: 6rem;
    padding: var(--plx-space-4);
    border-radius: var(--plx-radius-card);
    background: var(--plx-bg-card);
    box-shadow: var(--plx-shadow-card);
}
.plx-service-card:nth-child(even) { flex-direction: row-reverse; }
.plx-service-body { display: flex; flex: 1; flex-direction: column; justify-content: space-between; min-width: 0; }
.plx-service-title {
    margin: 0.625rem 0 0.8125rem;
    color: var(--plx-text-strong);
    font-family: var(--plx-font-display);
    font-size: var(--plx-text-h3);
    font-weight: var(--plx-weight-bold);
    letter-spacing: -0.01em;
    line-height: var(--plx-lh-h3);
}
.plx-service-label {
    margin-bottom: 0.6875rem;
    color: var(--plx-text-strong);
    font-size: var(--plx-text-xl);
    font-weight: var(--plx-weight-semibold);
    line-height: 2rem;
}
.plx-service-deploy .plx-btn { margin-top: var(--plx-space-3); }
.plx-service-media {
    flex: none;
    width: 47.5rem;
    max-width: 50%;
    overflow: hidden;
    border-radius: var(--plx-radius-media);
}
.plx-service-img {
    width: 100%;
    height: auto;
    object-fit: cover;
    transition: transform 0.6s ease;
}
.plx-service-media:hover .plx-service-img { transform: scale(1.06); }

/* CTA */
.plx-cta {
    padding: 4.875rem var(--plx-space-2) 4.8125rem;
    background: linear-gradient(var(--plx-bg-page) calc(100% - 11.125rem), var(--plx-accent) 0);
}
.plx-cta-card {
    position: relative;
    display: flex;
    align-items: center;
    max-width: 93.375rem;
    min-height: 33.5625rem;
    margin-inline: auto;
    overflow: hidden;
    border-radius: var(--plx-radius-cta);
    background: var(--plx-bg-dark);
    color: var(--plx-text-on-dark);
}
.plx-cta-img {
    position: absolute;
    top: 0;
    right: 0;
    width: 56rem;
    height: 100%;
    max-width: none;
    object-fit: cover;
    -webkit-mask-image: linear-gradient(to right, transparent, #000 40%);
    mask-image: linear-gradient(to right, transparent, #000 40%);
}
.plx-cta-body { position: relative; padding: var(--plx-space-6) 3.25rem; }
.plx-cta-title {
    max-width: 56rem;
    margin: 0.5rem 0 1rem;
    font-family: var(--plx-font-display);
    font-size: var(--plx-text-h2);
    font-weight: var(--plx-weight-xbold);
    line-height: var(--plx-lh-h2);
}
.plx-cta-text { max-width: 51rem; font-size: 1.3rem; color: var(--plx-tint-white-85); margin-bottom: var(--plx-space-4); }

/* Footer */
.plx-footer { padding: 4.5625rem 0 4.2rem; background: var(--plx-bg-dark); color: var(--plx-text-on-dark); }
.plx-footer .plx-container { max-width: 120rem; padding-inline: var(--plx-gutter); }
.plx-footer-grid { display: flex; }
.plx-footer-col { flex: 0 0 19.5rem; }
.plx-footer-col + .plx-footer-col { flex-basis: 21.5rem; }
.plx-footer-col + .plx-footer-col + .plx-footer-col { flex: 1; padding-left: 0; }
.plx-footer-brand { flex: 0 0 36.8125rem; font-size: 1.275rem; }
.plx-footer-brand p { max-width: 25.5rem; }
.plx-footer-brand img { width: 25.1875rem; margin-bottom: 1.875rem; }
.plx-footer-title {
    margin-bottom: 1.375rem;
    color: var(--plx-accent);
    font-size: var(--plx-text-xl);
    font-weight: var(--plx-weight-regular);
    letter-spacing: 0.1em;
    line-height: 2rem;
    text-transform: uppercase;
}
.plx-footer-list { list-style: disc; padding-left: 1.875rem; }
.plx-footer-list li::marker { font-size: 0.75em; }
.plx-footer-list li { font-size: 1.4rem; line-height: 1.875rem; }
.plx-footer a:hover { color: var(--plx-accent); }
.plx-footer-address p { position: relative; padding-left: 2.875rem; font-size: 1.4rem; line-height: 1.875rem; }
.plx-footer-address p + p { margin-top: 1.625rem; }
.plx-footer-icon {
    position: absolute;
    left: 0;
    top: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.5rem;
    background: var(--plx-accent);
}
.plx-footer-bottom {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: var(--plx-space-2);
    margin-top: 4.06rem;
    padding-top: 2.5rem;
    border-top: 1px solid var(--plx-tint-white-line);
    font-size: 1.4rem;
}

/* 6. RESPONSIVE ------------------------------------------------------------ */
@media (min-width: 1280px) {
    html { font-size: clamp(10px, 0.8333vw, 16px); }
}

@media (max-width: 1279.98px) {
    :root {
        --plx-gutter: 1rem;
        --plx-text-h2: 2.5rem;
        --plx-lh-h2: 3rem;
        --plx-text-h1: 3.25rem;
        --plx-lh-h1: 4rem;
    }
    :root { --plx-header-h: 5rem; }
    .plx-header { max-height: 100vh; max-height: 100dvh; overflow-y: auto; }
    .plx-header[data-plx-scrolled="true"] .plx-header-inner { min-height: 5rem; }
    .plx-header[data-plx-scrolled="true"] .plx-header-logo img { width: 14rem; }
    .plx-dropdown {
        position: static;
        display: block;
        max-height: 0;
        margin: 0;
        padding: 0 var(--plx-space-2);
        overflow: hidden;
        border-width: 0;
        border-radius: 1.25rem;
        box-shadow: none;
        opacity: 0;
        visibility: hidden;
        background: var(--plx-bg-card);
        transition: max-height 0.35s ease, padding 0.35s ease, margin 0.35s ease, opacity 0.35s ease, visibility 0.35s;
    }
    .plx-dropdown[data-plx-open="true"] {
        max-height: min(70vh, 40rem);
        margin: var(--plx-space-1) 0 var(--plx-space-2);
        padding: var(--plx-space-2);
        overflow-y: auto;
        opacity: 1;
        visibility: visible;
    }
    .plx-dropdown-tabs { flex-wrap: wrap; }
    .plx-dropdown-tab { height: 3rem; padding: 0 1rem; font-size: 1rem; }
    .plx-dropdown-pane,
    .plx-dropdown-pane:has(.plx-dropdown-title) { padding: var(--plx-space-2); border-radius: 1rem; }
    .plx-dropdown-title { margin-bottom: var(--plx-space-2); font-size: 1.75rem; line-height: 2.25rem; }
    .plx-dropdown-grid-3,
    .plx-dropdown-grid-4,
    .plx-dropdown-grid-5,
    .plx-dropdown-grid-4 .plx-dropdown-sub,
    .plx-dropdown-grid-5 .plx-dropdown-sub { grid-template-columns: repeat(2, 1fr); }
    .plx-dropdown-grid-4 .plx-dropdown-sub,
    .plx-dropdown-grid-5 .plx-dropdown-sub { grid-column: 1 / -1; }
    .plx-dropdown-link,
    .plx-dropdown-grid-4 .plx-dropdown-link,
    .plx-dropdown-grid-5 .plx-dropdown-link { min-height: 4rem; padding: 0.5rem 1rem; font-size: 1rem; }
    .plx-header-logo { display: flex; align-items: center; height: 5rem; }
    .plx-header-logo img { width: 14rem; }
    .plx-header-inner { flex-wrap: wrap; align-content: flex-start; min-height: 5rem; }
    .plx-header-menu {
        display: grid;
        grid-template-rows: 0fr;
        align-items: stretch;
        justify-content: normal;
        flex: 0 0 100%;
        margin-left: 0;
        visibility: hidden;
        opacity: 0;
        transition: grid-template-rows 0.35s ease, opacity 0.35s ease, visibility 0.35s;
    }
    .plx-header-menu[data-plx-open="true"] { grid-template-rows: 1fr; visibility: visible; opacity: 1; }
    .plx-header-menu-body {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: var(--plx-space-3);
        min-height: 0;
        overflow: hidden;
    }
    .plx-nav { margin-inline: 0; padding-top: var(--plx-space-1); }
    .plx-nav-list { flex-direction: column; align-items: stretch; gap: var(--plx-space-2); }
    .plx-nav-link { max-width: 100%; }
    .plx-nav-link,
    .plx-header[data-plx-scrolled="true"] .plx-nav-link { font-size: 1.125rem; }
    .plx-header-menu-body .plx-header-cta { align-self: flex-start; margin-bottom: var(--plx-space-3); }
    .plx-nav-toggle {
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 0.3125rem;
        width: 3rem;
        height: 3rem;
        margin-right: -0.75rem;
        padding: 0.75rem;
        border: 0;
        background: none;
    }
    .plx-nav-toggle span { width: 1.5rem; height: 2px; background: var(--plx-color-indigo); }

    /* Buttons */
    .plx-btn,
    .plx-header[data-plx-scrolled="true"] .plx-header-cta {
        gap: 0.5rem;
        min-height: 3.5rem;
        padding: 0 1.25rem;
        font-size: 1.125rem;
        line-height: 1.2;
    }
    .plx-btn-icon,
    .plx-header[data-plx-scrolled="true"] .plx-header-cta .plx-btn-icon { width: 2rem; height: 2rem; }
    .plx-btn-icon img,
    .plx-header[data-plx-scrolled="true"] .plx-header-cta .plx-btn-icon img { width: 1rem; height: 1rem; }

    /* Footer */
    .plx-footer { padding: 3rem 0 2rem; }
    .plx-footer-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--plx-space-4) var(--plx-space-3); }
    .plx-footer-brand { grid-column: 1 / -1; max-width: none; font-size: 1.0625rem; }
    .plx-footer-brand img { width: 16rem; margin-bottom: var(--plx-space-2); }
    .plx-footer-contact { grid-column: 1 / -1; }
    .plx-footer-title { margin-bottom: var(--plx-space-2); font-size: 1.125rem; line-height: 1.5rem; }
    .plx-footer-list li,
    .plx-footer-address p { font-size: 1.0625rem; line-height: 1.75rem; }
    .plx-footer-address p + p { margin-top: var(--plx-space-2); }
    .plx-footer-bottom { margin-top: var(--plx-space-4); padding-top: var(--plx-space-3); font-size: 1rem; }
    .plx-hero { margin-inline: var(--plx-space-2); }
    .plx-hero { flex-direction: column; align-items: stretch; min-height: 0; margin-top: var(--plx-space-2); }
    .plx-hero-art { position: static; width: 100%; max-width: 100%; height: auto; }
    .plx-hero-body { max-width: none; padding: var(--plx-space-2) var(--plx-space-4) var(--plx-space-4); }
    .plx-services { margin-top: var(--plx-space-4); }
    .plx-hero-title { margin-bottom: var(--plx-space-2); }
    .plx-service-card,
    .plx-service-card:nth-child(even) { flex-direction: column-reverse; gap: var(--plx-space-3); }
    .plx-service-media { width: 100%; max-width: 100%; }
    .plx-service-body { gap: var(--plx-space-3); }
    .plx-eyebrow { font-size: 0.9375rem; }
    .plx-hero-text,
    .plx-section-text,
    .plx-cta-text { font-size: 1.125rem; }
    .plx-service-text { font-size: 1.0625rem; }
    .plx-service-label { font-size: 1.25rem; line-height: 1.75rem; }
    .plx-chip-list { gap: 0.5rem; }
    .plx-chip { height: 2.5rem; padding: 0 0.875rem; font-size: 0.9375rem; }
    .plx-cta { padding-block: 3rem; background: linear-gradient(var(--plx-bg-page) calc(100% - 6rem), var(--plx-accent) 0); }
    .plx-cta-card { min-height: 0; }
    .plx-cta-img { width: 50%; }
    .plx-cta-body { max-width: 65%; padding: var(--plx-space-6) var(--plx-space-4); }
    .plx-cta-title { font-size: var(--plx-text-h2); line-height: var(--plx-lh-h2); }
}

@media (max-width: 767.98px) {
    :root {
        --plx-text-md: 1.0625rem;
        --plx-text-lg: 1.0625rem;
        --plx-text-xl: 1.125rem;
        --plx-text-h3: 1.5rem;
        --plx-text-h2: 1.75rem;
        --plx-text-h1: 2.25rem;
        --plx-lh-h3: 1.875rem;
        --plx-lh-h2: 2.25rem;
        --plx-lh-h1: 2.75rem;
    }
    .plx-dropdown-grid-3,
    .plx-dropdown-grid-4,
    .plx-dropdown-grid-5,
    .plx-dropdown-grid-4 .plx-dropdown-sub,
    .plx-dropdown-grid-5 .plx-dropdown-sub { grid-template-columns: 1fr; }
    .plx-hero-body { padding: var(--plx-space-2) var(--plx-space-3) var(--plx-space-3); }
    .plx-eyebrow { font-size: 0.8125rem; }
    .plx-hero-text,
    .plx-section-text,
    .plx-service-text,
    .plx-cta-text { font-size: 1rem; }
    .plx-service-label { font-size: 1.125rem; }
    .plx-chip { height: 2.25rem; padding: 0 0.75rem; font-size: 0.875rem; }
    .plx-services { padding-block: var(--plx-space-6); }
    .plx-section-head { margin-bottom: var(--plx-space-4); }
    .plx-service-card { padding: var(--plx-space-2); }
    .plx-btn,
    .plx-header[data-plx-scrolled="true"] .plx-header-cta { min-height: 3.25rem; padding: 0 1rem; font-size: 1rem; }
    .plx-cta-card { flex-direction: column; align-items: stretch; border-radius: 2rem; }
    .plx-cta-img { display: none; }
    .plx-cta-body { max-width: none; }
    .plx-cta { padding-block: var(--plx-space-6); background: linear-gradient(var(--plx-bg-page) calc(100% - 4rem), var(--plx-accent) 0); }
    .plx-cta-body { padding: var(--plx-space-4) var(--plx-space-3); }
    .plx-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .plx-footer-brand img { width: 14rem; }
    .plx-footer-bottom { flex-direction: column; gap: var(--plx-space-1); }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .plx-preloader { transition: none; }
    .plx-header-menu { transition: none; }
    .plx-service-img { transition: none; }
    .plx-preloader-bar::after { animation: none; }
}
