:root {
    --stellar-ink: #121016;
    --stellar-ink-2: #1e1f25;
    --stellar-purple: #873cff;
    --stellar-purple-deep: #641aa3;
    --stellar-purple-soft: #eee4ff;
    --stellar-paper: #f5f5f5;
    --stellar-white: #fff;
    --stellar-text: #1d1921;
    --stellar-muted: #716a77;
    --stellar-line: #ded9e3;
    --stellar-success: #16794a;
    --stellar-error: #b42318;
    --stellar-container: 1280px;
    --stellar-radius-sm: 9px;
    --stellar-radius-md: 16px;
    --stellar-radius-lg: 24px;
    --stellar-radius-xl: 34px;
    --stellar-radius-pill: 999px;
    --stellar-shadow: 0 24px 80px rgba(32, 18, 45, .12);
    --stellar-ease: cubic-bezier(.22, 1, .36, 1);
    --stellar-header-height: 88px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    overflow-x: clip;
    background: var(--stellar-paper);
    color: var(--stellar-text);
    font-family: Poppins, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 16px;
    line-height: 1.58;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}
body.stellar-modal-open { overflow: hidden; }
img, svg { max-width: 100%; }
img { height: auto; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--stellar-purple); outline-offset: 3px; }
::selection { background: var(--stellar-purple); color: #fff; }

.screen-reader-text {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.stellar-skip-link {
    position: fixed;
    z-index: 200000;
    top: 14px;
    left: 14px;
    padding: 11px 16px;
    background: #fff;
    color: var(--stellar-ink);
    border-radius: 8px;
    transform: translateY(-180%);
    transition: transform 180ms ease;
}
.stellar-skip-link:focus { transform: translateY(0); }
.stellar-main { min-height: 60vh; }
.stellar-container { width: min(calc(100% - 48px), var(--stellar-container)); margin-inline: auto; }
.stellar-section { position: relative; padding: clamp(78px, 9vw, 132px) 0; overflow: clip; }
.stellar-section-head { max-width: 780px; }
.stellar-section-head--center { margin-inline: auto; text-align: center; }
.stellar-section-head h2,
.stellar-footer-cta h2,
.stellar-final-cta h2 {
    margin: 0;
    font-size: clamp(2.2rem, 5.1vw, 5rem);
    line-height: .98;
    letter-spacing: -.045em;
    text-wrap: balance;
}
.stellar-section-head h2 span { color: var(--stellar-purple); }
.stellar-section-head > p:last-child { max-width: 680px; margin: 22px 0 0; color: var(--stellar-muted); font-size: clamp(1rem, 1.5vw, 1.16rem); }
.stellar-section-head--center > p:last-child { margin-inline: auto; }
.stellar-eyebrow {
    margin: 0 0 14px;
    color: var(--stellar-purple);
    font-size: .77rem;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}
.stellar-note { color: var(--stellar-muted); font-size: .84rem; }
.stellar-text-link { color: var(--stellar-purple-deep); font-weight: 700; text-decoration: none; }
.stellar-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.stellar-section-action { display: flex; justify-content: center; margin-top: 38px; }

.stellar-btn {
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 13px 22px;
    border: 1px solid transparent;
    border-radius: var(--stellar-radius-pill);
    font-size: .9rem;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
    transition: transform 220ms var(--stellar-ease), background 220ms ease, color 220ms ease, border-color 220ms ease, box-shadow 220ms ease;
}
.stellar-btn span { transition: transform 220ms var(--stellar-ease); }
.stellar-btn:hover { transform: translateY(-2px); }
.stellar-btn:hover span { transform: translateX(4px); }
.stellar-btn--primary { background: var(--stellar-purple); color: #fff; box-shadow: 0 12px 30px rgba(135, 60, 255, .23); }
.stellar-btn--primary:hover { background: var(--stellar-purple-deep); }
.stellar-btn--secondary, .stellar-btn--ghost { background: transparent; color: currentColor; border-color: rgba(255, 255, 255, .35); }
.stellar-btn--secondary:hover { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .62); }
.stellar-btn--dark { background: var(--stellar-ink); color: #fff; }
.stellar-btn--dark:hover { background: #060507; }
.stellar-btn--light { background: #fff; color: var(--stellar-ink); }

/* Header */
.stellar-header {
    position: sticky;
    top: 0;
    z-index: 9998;
    min-height: var(--stellar-header-height);
    background: rgba(18, 16, 22, .95);
    color: #fff;
    border-bottom: 1px solid rgba(255, 255, 255, .07);
    backdrop-filter: blur(14px);
    transition: background 220ms ease, box-shadow 220ms ease;
}
.stellar-header.is-scrolled { background: rgba(18, 16, 22, .985); box-shadow: 0 14px 42px rgba(0, 0, 0, .2); }
.stellar-header__inner {
    width: min(calc(100% - 42px), 1380px);
    min-height: var(--stellar-header-height);
    margin-inline: auto;
    display: grid;
    grid-template-columns: minmax(180px, 250px) 1fr auto;
    align-items: center;
    gap: 24px;
}
.stellar-brand { display: grid; align-content: center; gap: 3px; min-width: 0; color: #fff; text-decoration: none; }
.stellar-brand img { width: auto; max-width: 170px; max-height: 40px; object-fit: contain; object-position: left center; }
.stellar-brand__wordmark { font-size: 1.55rem; font-weight: 800; letter-spacing: -.08em; }
.stellar-brand small { color: rgba(255, 255, 255, .62); font-size: clamp(.55rem, .7vw, .67rem); line-height: 1.25; white-space: nowrap; }
.stellar-nav { display: flex; justify-content: center; align-items: center; gap: clamp(13px, 1.65vw, 26px); }
.stellar-nav > a, .stellar-nav__services > a { color: #fff; font-size: .84rem; font-weight: 500; text-decoration: none; white-space: nowrap; }
.stellar-nav > a, .stellar-nav__services { position: relative; }
.stellar-nav > a::after, .stellar-nav__services > a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -9px; height: 2px; background: var(--stellar-purple); transition: right 250ms var(--stellar-ease); }
.stellar-nav > a:hover::after, .stellar-nav__services:hover > a::after, .stellar-nav__services:focus-within > a::after { right: 0; }
.stellar-nav__services { display: flex; align-items: center; gap: 4px; }
.stellar-submenu-button { width: 28px; height: 28px; padding: 0; border: 0; background: transparent; color: #fff; cursor: pointer; }
.stellar-submenu {
    position: absolute;
    top: calc(100% + 24px);
    left: 50%;
    width: 318px;
    display: grid;
    gap: 2px;
    padding: 12px;
    background: var(--stellar-ink-2);
    border: 1px solid rgba(255, 255, 255, .09);
    border-radius: var(--stellar-radius-md);
    box-shadow: 0 28px 90px rgba(0, 0, 0, .35);
    opacity: 0;
    visibility: hidden;
    transform: translate(-50%, 10px);
    transition: opacity 180ms ease, visibility 180ms ease, transform 260ms var(--stellar-ease);
}
.stellar-submenu a { padding: 11px 13px; color: #fff; border-radius: 8px; font-size: .88rem; text-decoration: none; transition: background 160ms ease; }
.stellar-submenu a:hover, .stellar-submenu a:focus-visible { background: rgba(135, 60, 255, .17); }
.stellar-nav__services:hover .stellar-submenu,
.stellar-nav__services:focus-within .stellar-submenu,
.stellar-nav__services.is-open .stellar-submenu { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.stellar-header-actions { display: flex; align-items: center; gap: 9px; }
.stellar-icon-button { width: 44px; height: 44px; display: inline-grid; place-items: center; border-radius: 999px; background: rgba(255, 255, 255, .08); color: #fff; text-decoration: none; transition: transform 220ms var(--stellar-ease), background 220ms ease; }
.stellar-icon-button:hover { transform: translateY(-2px); background: rgba(255, 255, 255, .14); }
.stellar-icon-button svg { width: 18px; height: 18px; fill: currentColor; }
.stellar-icon-button--whatsapp { background: #20c76a; font-size: .65rem; font-weight: 800; }
.stellar-icon-button--whatsapp:hover { background: #13a854; }
.stellar-menu-button { display: none; width: 44px; height: 44px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.stellar-menu-button > span:not(.screen-reader-text) { display: block; width: 25px; height: 2px; margin: 5px auto; background: #fff; transition: transform 220ms ease, opacity 220ms ease; }
.stellar-menu-button[aria-expanded="true"] > span:nth-of-type(1) { transform: translateY(7px) rotate(45deg); }
.stellar-menu-button[aria-expanded="true"] > span:nth-of-type(2) { opacity: 0; }
.stellar-menu-button[aria-expanded="true"] > span:nth-of-type(3) { transform: translateY(-7px) rotate(-45deg); }

/* Star field and hero */
.stellar-stars { position: absolute; inset: 0; pointer-events: none; opacity: .65; background-image: radial-gradient(circle at 10% 14%, rgba(255,255,255,.65) 0 1px, transparent 1.2px), radial-gradient(circle at 31% 62%, rgba(135,60,255,.8) 0 1px, transparent 1.2px), radial-gradient(circle at 77% 25%, rgba(255,255,255,.45) 0 1px, transparent 1.2px), radial-gradient(circle at 90% 72%, rgba(255,255,255,.6) 0 1px, transparent 1.2px); background-size: 143px 137px, 191px 181px, 229px 211px, 277px 251px; }
.stellar-hero { position: relative; min-height: calc(100svh - var(--stellar-header-height)); display: flex; align-items: center; overflow: clip; background: var(--stellar-ink); color: #fff; }
.stellar-hero--page { min-height: min(760px, calc(100svh - var(--stellar-header-height))); }
.stellar-hero-grid { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(340px, .9fr); align-items: center; gap: clamp(42px, 7vw, 104px); padding-block: clamp(72px, 9vw, 126px); }
.stellar-hero-copy { max-width: 820px; }
.stellar-hero h1 { margin: 0; font-size: clamp(3rem, 7.1vw, 7rem); line-height: .91; letter-spacing: -.062em; text-wrap: balance; }
.stellar-hero--page h1 { font-size: clamp(2.8rem, 6vw, 6rem); }
.stellar-hero h1 span { color: var(--stellar-purple); }
.stellar-hero-text { max-width: 690px; margin: 26px 0 30px; color: rgba(255, 255, 255, .73); font-size: clamp(1rem, 1.5vw, 1.18rem); }
.stellar-hero .stellar-note { margin-top: 15px; color: rgba(255, 255, 255, .55); }
.stellar-hero-media { position: relative; margin: 0; border-radius: var(--stellar-radius-lg); }
.stellar-hero-media::before { content: ""; position: absolute; z-index: -1; inset: -14px 16% 14px -14px; border: 1px solid rgba(135, 60, 255, .35); border-radius: var(--stellar-radius-lg); transform: rotate(-2deg); }
.stellar-hero-media img { width: 100%; aspect-ratio: 1.42; display: block; object-fit: cover; border-radius: var(--stellar-radius-lg); filter: saturate(.92) contrast(1.02); }
.stellar-hero-media__line { position: absolute; inset: -20% -18% -15% -24%; border: 6px solid var(--stellar-purple); border-left-color: transparent; border-bottom-color: transparent; border-radius: 50%; transform: rotate(-23deg); pointer-events: none; }
.stellar-orbit { position: absolute; pointer-events: none; border: 7px solid var(--stellar-purple); border-radius: 50%; }
.stellar-orbit--hero { width: 720px; height: 420px; right: -420px; bottom: -170px; transform: rotate(-24deg); opacity: .68; }

/* Features */
.stellar-features { background: var(--stellar-paper); }
.stellar-features-intro { display: grid; grid-template-columns: .78fr 1.22fr; gap: 64px; margin-bottom: 46px; }
.stellar-features-intro .stellar-section-head { display: contents; }
.stellar-features-intro h2 { grid-column: 1; font-size: clamp(2.4rem, 4.2vw, 4.5rem); }
.stellar-features-intro .stellar-section-head > p:last-child { grid-column: 2; align-self: end; margin: 0; }
.stellar-orbit--features { width: 920px; height: 350px; left: -250px; bottom: -180px; transform: rotate(11deg); opacity: .8; }
.stellar-card-grid { display: grid; gap: 20px; }
.stellar-card-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.stellar-dark-card { position: relative; min-height: 300px; padding: clamp(26px, 3.1vw, 42px); overflow: hidden; background: var(--stellar-ink-2); color: #fff; border-radius: var(--stellar-radius-md); }
.stellar-dark-card::after { content: ""; position: absolute; width: 180px; height: 110px; right: -105px; bottom: -68px; border: 3px solid var(--stellar-purple); border-radius: 50%; opacity: .55; transition: transform 450ms var(--stellar-ease); }
.stellar-dark-card:hover::after { transform: translate(-20px, -15px) rotate(-12deg); }
.stellar-card-index { display: inline-grid; place-items: center; min-width: 34px; height: 34px; padding-inline: 8px; background: var(--stellar-purple); color: #fff; border-radius: 7px; font-size: .72rem; font-weight: 800; }
.stellar-dark-card h3 { margin: 42px 0 14px; font-size: clamp(1.4rem, 2vw, 2rem); }
.stellar-dark-card p { margin: 0; color: rgba(255, 255, 255, .68); }

/* Services */
.stellar-services { background: var(--stellar-purple); color: #fff; }
.stellar-services .stellar-eyebrow { color: rgba(255, 255, 255, .66); }
.stellar-services .stellar-section-head > p:last-child { color: rgba(255, 255, 255, .76); }
.stellar-service-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 46px; }
.stellar-service-grid--all { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.stellar-service-card { min-height: 330px; display: flex; flex-direction: column; padding: clamp(25px, 3vw, 38px); background: #fff; color: var(--stellar-text); border: 1px solid rgba(18, 16, 22, .08); border-radius: var(--stellar-radius-md); box-shadow: 7px 7px 0 rgba(18, 16, 22, .95); transition: transform 250ms var(--stellar-ease), box-shadow 250ms var(--stellar-ease); }
.stellar-service-card:hover { transform: translate(-3px, -3px); box-shadow: 11px 11px 0 rgba(18, 16, 22, .95); }
.stellar-service-card .stellar-card-index { align-self: flex-start; }
.stellar-service-card h3 { margin: 36px 0 13px; font-size: clamp(1.45rem, 2vw, 2rem); line-height: 1.08; }
.stellar-service-card p { margin: 0 0 28px; color: var(--stellar-muted); }
.stellar-service-card a { margin-top: auto; color: var(--stellar-purple-deep); font-weight: 700; text-decoration: none; }
.stellar-services--all { background: var(--stellar-paper); color: var(--stellar-text); }
.stellar-services--all .stellar-eyebrow { color: var(--stellar-purple); }
.stellar-services--all .stellar-section-head > p:last-child { color: var(--stellar-muted); }
.stellar-services--all .stellar-service-card { box-shadow: none; border-color: var(--stellar-line); }
.stellar-services--all .stellar-service-card:nth-child(1), .stellar-services--all .stellar-service-card:nth-child(2), .stellar-services--all .stellar-service-card:last-child { grid-column: span 2; }

/* Estimate block */
.stellar-estimate-section { background: var(--stellar-paper); }
.stellar-estimate-box { position: relative; min-height: 470px; display: grid; grid-template-columns: minmax(0, 1fr) 280px; align-items: center; gap: 34px; padding: clamp(36px, 6vw, 84px); overflow: hidden; background: #fff; border: 1px solid var(--stellar-line); border-radius: var(--stellar-radius-xl); box-shadow: var(--stellar-shadow); }
.stellar-estimate-box .stellar-section-action { grid-column: 1; justify-content: flex-start; margin-top: 6px; }
.stellar-estimate-visual { position: absolute; right: -80px; top: 50%; width: 390px; height: 390px; transform: translateY(-50%); }
.stellar-estimate-visual span { position: absolute; inset: 0; border: 5px solid var(--stellar-purple); border-radius: 47% 53% 52% 48% / 38% 44% 56% 62%; transform: rotate(22deg); }
.stellar-estimate-visual span:nth-child(2) { inset: 42px; opacity: .42; transform: rotate(-8deg); }
.stellar-estimate-visual span:nth-child(3) { inset: 92px; opacity: .2; transform: rotate(38deg); }

/* Marquee */
.stellar-marquee { overflow: hidden; background: var(--stellar-purple); color: #fff; padding: 14px 0; }
.stellar-marquee-track { width: max-content; display: flex; gap: 40px; animation: stellar-marquee 28s linear infinite; }
.stellar-marquee-track span { font-size: clamp(1.5rem, 3vw, 2.8rem); font-weight: 800; letter-spacing: -.05em; white-space: nowrap; }
@keyframes stellar-marquee { to { transform: translateX(-33.333%); } }

/* Process */
.stellar-process { min-height: 760px; display: flex; align-items: center; background: var(--stellar-ink-2); color: #fff; }
.stellar-process-shape { position: absolute; left: -110px; bottom: -120px; width: 720px; height: 680px; border: 115px solid rgba(255, 255, 255, .035); border-radius: 50%; transform: rotate(32deg); }
.stellar-process-grid { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, .76fr) minmax(0, 1.24fr); gap: clamp(64px, 9vw, 140px); align-items: center; }
.stellar-process .stellar-section-head h2 { font-size: clamp(2.2rem, 4.2vw, 4.35rem); max-width: 9.2ch; line-height: .96; }
.stellar-process .stellar-section-head > p:last-child { color: rgba(255,255,255,.68); max-width: 38rem; }
.stellar-process-copy { position: relative; z-index: 3; max-width: 580px; padding-right: clamp(8px, 1.2vw, 24px); }
.stellar-process-copy .stellar-btn { margin-top: 28px; }
.stellar-process-list { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.stellar-process-list li { display: grid; grid-template-columns: 58px 1fr; gap: 18px; align-items: start; padding: 23px 25px; background: #fff; color: var(--stellar-text); border-radius: var(--stellar-radius-md); transition: transform 220ms var(--stellar-ease), background 220ms ease, color 220ms ease; }
.stellar-process-list li:hover { transform: translateX(-7px); }
.stellar-process-list li:last-child { background: var(--stellar-purple); color: #fff; }
.stellar-process-list li > span { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 8px; background: var(--stellar-purple-soft); color: var(--stellar-purple-deep); font-size: .78rem; font-weight: 800; }
.stellar-process-list li:last-child > span { background: rgba(255,255,255,.16); color: #fff; }
.stellar-process-list h3 { margin: 0 0 4px; font-size: 1.08rem; }
.stellar-process-list p { margin: 0; color: var(--stellar-muted); font-size: .87rem; }
.stellar-process-list li:last-child p { color: rgba(255,255,255,.76); }
@media (min-width: 1180px) {
    .stellar-process { overflow: hidden; }
    .stellar-process-grid { grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr); }
    .stellar-process-list { margin-left: auto; width: min(100%, 760px); }
}


/* Simulators */
.stellar-simulators, .stellar-simulators-full { background: var(--stellar-paper); }
.stellar-simulators .stellar-card-grid { margin-top: 44px; }
.stellar-simulator-card { position: relative; min-height: 340px; display: flex; flex-direction: column; padding: clamp(27px, 3.3vw, 42px); overflow: hidden; background: #fff; border: 1px solid var(--stellar-line); border-radius: var(--stellar-radius-md); transition: transform 260ms var(--stellar-ease), box-shadow 260ms ease, border-color 260ms ease; }
.stellar-simulator-card::after { content: ""; position: absolute; right: -100px; bottom: -118px; width: 270px; height: 190px; border: 4px solid var(--stellar-purple); border-radius: 50%; transform: rotate(-18deg); opacity: .15; transition: transform 460ms var(--stellar-ease), opacity 260ms ease; }
.stellar-simulator-card:hover { transform: translateY(-6px); border-color: rgba(135, 60, 255, .42); box-shadow: var(--stellar-shadow); }
.stellar-simulator-card:hover::after { opacity: .38; transform: rotate(-9deg) translate(-10px, -10px); }
.stellar-simulator-label { position: relative; z-index: 1; color: var(--stellar-purple); font-size: .72rem; font-weight: 800; letter-spacing: .12em; }
.stellar-simulator-card h3 { position: relative; z-index: 1; max-width: 16ch; margin: 45px 0 14px; font-size: clamp(1.55rem, 2.5vw, 2.35rem); line-height: 1.04; letter-spacing: -.035em; }
.stellar-simulator-card p { position: relative; z-index: 1; margin: 0 0 28px; color: var(--stellar-muted); }
.stellar-simulator-card a { position: relative; z-index: 1; margin-top: auto; color: var(--stellar-purple-deep); font-weight: 700; text-decoration: none; }
.stellar-simulator-group + .stellar-simulator-group { margin-top: clamp(80px, 10vw, 130px); }
.stellar-simulator-group > header { max-width: 720px; margin-bottom: 38px; }
.stellar-simulator-group > header h2 { margin: 0; font-size: clamp(2.2rem, 4.7vw, 4.8rem); line-height: .98; letter-spacing: -.045em; }
.stellar-simulator-group > header > p:last-child { color: var(--stellar-muted); font-size: 1.08rem; }
.stellar-simulator-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }

/* About */
.stellar-about { background: var(--stellar-paper); }
.stellar-about-grid { display: grid; grid-template-columns: 1.06fr .7fr; gap: clamp(54px, 8vw, 118px); align-items: center; }
.stellar-about-copy .stellar-section-head h2 { font-size: clamp(2.4rem, 4.8vw, 4.8rem); }
.stellar-benefit-list { display: grid; gap: 12px; margin-top: 34px; }
.stellar-benefit-list article { display: grid; grid-template-columns: 42px 1fr; gap: 16px; padding: 17px 0; border-top: 1px solid var(--stellar-line); }
.stellar-benefit-list article > span { width: 38px; height: 38px; display: grid; place-items: center; background: var(--stellar-purple); color: #fff; border-radius: 8px; }
.stellar-benefit-list h3 { margin: 0 0 5px; font-size: 1rem; }
.stellar-benefit-list p { margin: 0; color: var(--stellar-muted); font-size: .9rem; }
.stellar-about-media { position: relative; margin: 0; }
.stellar-about-media img { width: 100%; aspect-ratio: .87; display: block; object-fit: cover; border-radius: var(--stellar-radius-lg); }
.stellar-about-media > span { position: absolute; right: -20%; bottom: -13%; width: 88%; height: 45%; border: 5px solid var(--stellar-purple); border-radius: 50%; transform: rotate(-22deg); pointer-events: none; }

/* Reviews */
.stellar-reviews-section { background: #efefef; }
.stellar-reviews-head { display: flex; justify-content: space-between; align-items: end; gap: 34px; margin-bottom: 38px; }
.stellar-reviews { display: grid; grid-template-columns: 1.2fr .8fr; gap: 18px; }
.stellar-review { min-height: 360px; display: flex; flex-direction: column; justify-content: space-between; margin: 0; padding: clamp(34px, 5vw, 64px); background: var(--stellar-purple); color: #fff; border-radius: var(--stellar-radius-md); }
.stellar-review:nth-child(even) { background: var(--stellar-ink-2); }
.stellar-review blockquote { margin: 0; font-size: clamp(1.45rem, 3vw, 3rem); font-weight: 600; line-height: 1.1; letter-spacing: -.035em; }
.stellar-review figcaption { margin-top: 36px; font-size: .76rem; font-weight: 800; letter-spacing: .12em; }

/* FAQ */
.stellar-faq { background: #fff; }
.stellar-faq-grid { display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(56px, 8vw, 120px); align-items: start; }
.stellar-faq-title { position: sticky; top: calc(var(--stellar-header-height) + 36px); }
.stellar-faq-title .stellar-section-head h2 { font-size: clamp(2.35rem, 4.5vw, 4.5rem); }
.stellar-accordion { display: grid; gap: 9px; }
.stellar-accordion details { border: 1px solid var(--stellar-line); border-radius: 11px; background: #fff; overflow: hidden; }
.stellar-accordion summary { min-height: 62px; display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 16px 19px; cursor: pointer; color: var(--stellar-text); font-weight: 700; list-style: none; }
.stellar-accordion summary::-webkit-details-marker { display: none; }
.stellar-accordion summary > span:last-child { width: 28px; height: 28px; display: grid; place-items: center; flex: 0 0 auto; background: var(--stellar-purple); color: #fff; border-radius: 5px; transition: transform 220ms ease; }
.stellar-accordion details[open] summary > span:last-child { transform: rotate(45deg); }
.stellar-accordion details > div { padding: 0 19px 18px; color: var(--stellar-muted); }
.stellar-accordion details > div p { margin: 0; }

/* CTA */
.stellar-final-cta { padding-top: clamp(70px, 9vw, 120px); padding-bottom: 0; background: var(--stellar-paper); }
.stellar-final-cta__box { min-height: 390px; display: flex; align-items: center; justify-content: space-between; gap: 48px; padding: clamp(38px, 6vw, 80px); background: var(--stellar-purple); color: #fff; border-radius: var(--stellar-radius-lg); }
.stellar-final-cta__box > div:first-child { max-width: 800px; }
.stellar-final-cta__box p { max-width: 650px; color: rgba(255,255,255,.76); }

/* Service content */
.stellar-service-content { background: var(--stellar-paper); }
.stellar-service-problem { max-width: 1000px; }
.stellar-service-problem blockquote { margin: 42px 0 0; padding: 32px 38px; background: var(--stellar-ink-2); color: #fff; border-radius: var(--stellar-radius-md); font-size: clamp(1.35rem, 2.8vw, 2.6rem); font-weight: 600; line-height: 1.15; }
.stellar-service-block { margin-top: clamp(84px, 10vw, 140px); }
.stellar-service-block > header { max-width: 760px; margin-bottom: 34px; }
.stellar-service-block > header h2 { margin: 0; font-size: clamp(2rem, 4.1vw, 4rem); line-height: 1; letter-spacing: -.04em; }
.stellar-scope-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.stellar-scope-grid article { display: grid; grid-template-columns: 44px 1fr; gap: 16px; padding: 27px; background: #fff; border: 1px solid var(--stellar-line); border-radius: var(--stellar-radius-md); }
.stellar-scope-grid article > span { width: 40px; height: 40px; display: grid; place-items: center; background: var(--stellar-purple-soft); color: var(--stellar-purple-deep); border-radius: 8px; }
.stellar-scope-grid h3 { margin: 4px 0 7px; font-size: 1.1rem; }
.stellar-scope-grid p { grid-column: 2; margin: 0; color: var(--stellar-muted); font-size: .86rem; }
.stellar-light-card { min-height: 180px; display: flex; align-items: end; padding: 28px; background: #fff; border: 1px solid var(--stellar-line); border-radius: var(--stellar-radius-md); }
.stellar-light-card h3 { margin: 0; font-size: clamp(1.15rem, 2vw, 1.6rem); }
.stellar-related-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; }
.stellar-related-links a { min-height: 130px; display: flex; align-items: end; justify-content: space-between; gap: 20px; padding: 25px; background: var(--stellar-ink-2); color: #fff; border-radius: var(--stellar-radius-md); font-weight: 700; text-decoration: none; transition: transform 220ms var(--stellar-ease), background 220ms ease; }
.stellar-related-links a:hover { transform: translateY(-4px); background: var(--stellar-purple); }
.stellar-inline-faq .stellar-accordion { max-width: 900px; }

/* Contact */
.stellar-contact-options { background: var(--stellar-paper); }
.stellar-contact-options .stellar-card-grid { margin-top: 44px; }
.stellar-contact-card { min-height: 360px; display: flex; flex-direction: column; padding: 34px; background: #fff; border: 1px solid var(--stellar-line); border-radius: var(--stellar-radius-md); }
.stellar-contact-card > span { color: var(--stellar-purple); font-size: .73rem; font-weight: 800; letter-spacing: .12em; }
.stellar-contact-card h3 { margin: 44px 0 13px; font-size: 2rem; }
.stellar-contact-card p { margin: 0 0 28px; color: var(--stellar-muted); }
.stellar-contact-card .stellar-btn { margin-top: auto; align-self: flex-start; }

/* Blog */
.stellar-blog-listing { padding: clamp(72px, 9vw, 126px) 0; background: var(--stellar-paper); }
.stellar-blog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.stellar-post-card { min-height: 390px; display: flex; flex-direction: column; padding: 27px; background: #fff; border: 1px solid var(--stellar-line); border-radius: var(--stellar-radius-md); }
.stellar-post-card__image { display: block; margin: -16px -16px 24px; }
.stellar-post-card__image img { width: 100%; aspect-ratio: 16 / 10; display: block; object-fit: cover; border-radius: 11px; }
.stellar-post-card h2 { margin: 8px 0 13px; font-size: clamp(1.35rem, 2vw, 1.75rem); line-height: 1.12; }
.stellar-post-card h2 a { text-decoration: none; }
.stellar-post-card > p:not(.stellar-eyebrow) { margin: 0 0 22px; color: var(--stellar-muted); }
.stellar-post-card .stellar-text-link { margin-top: auto; }
.stellar-article-hero, .stellar-archive-hero, .stellar-error-page { position: relative; overflow: clip; background: var(--stellar-ink); color: #fff; }
.stellar-article-hero .stellar-container, .stellar-archive-hero .stellar-container, .stellar-error-page .stellar-container { position: relative; z-index: 2; padding-block: clamp(80px, 10vw, 150px); }
.stellar-article-hero h1, .stellar-archive-hero h1, .stellar-error-page h1 { max-width: 1000px; margin: 0; font-size: clamp(3rem, 7vw, 7rem); line-height: .94; letter-spacing: -.055em; }
.stellar-article-hero figure { margin: 55px 0 -230px; }
.stellar-article-hero figure img { width: 100%; max-height: 620px; object-fit: cover; border-radius: var(--stellar-radius-lg); }
.stellar-article-hero:has(figure) { margin-bottom: 200px; }
.stellar-article-meta { color: rgba(255,255,255,.6); }
.stellar-reading-content { max-width: 880px; padding-block: 80px; font-size: clamp(1rem, 1.3vw, 1.12rem); }
.stellar-reading-content h2 { margin-top: 2.3em; font-size: clamp(1.8rem, 3.4vw, 3rem); line-height: 1.08; }
.stellar-reading-content h3 { margin-top: 2em; }
.stellar-reading-content p, .stellar-reading-content ul, .stellar-reading-content ol { margin-block: 1.1em; }
.stellar-reading-content a { color: var(--stellar-purple-deep); font-weight: 700; }
.stellar-content-page { padding-block: 100px; }
.stellar-empty { min-height: 55vh; padding-block: 120px; }
.stellar-error-page { min-height: 70vh; display: flex; align-items: center; }
.stellar-error-page p { max-width: 680px; color: rgba(255,255,255,.7); }

/* Footer */
.stellar-footer { padding: 0 24px 34px; background: var(--stellar-ink-2); color: #fff; }
.stellar-footer-cta { width: min(100%, 1180px); min-height: 330px; margin: 0 auto; padding: clamp(36px, 6vw, 76px); display: flex; align-items: center; justify-content: space-between; gap: 40px; background: var(--stellar-purple); border-radius: var(--stellar-radius-lg); transform: translateY(-55px); }
.stellar-footer-cta > div { max-width: 780px; }
.stellar-footer-cta p { margin-bottom: 0; color: rgba(255,255,255,.76); }
.stellar-footer-grid { width: min(100%, var(--stellar-container)); margin: 10px auto 55px; display: grid; grid-template-columns: 1.4fr repeat(4, 1fr); gap: 32px; }
.stellar-footer-brand { display: grid; align-content: start; gap: 7px; }
.stellar-footer-brand img { width: auto; max-width: 165px; max-height: 44px; object-fit: contain; object-position: left; }
.stellar-footer-brand small, .stellar-footer-brand p, .stellar-footer-bottom { color: rgba(255,255,255,.62); }
.stellar-footer-column { display: grid; align-content: start; gap: 9px; }
.stellar-footer-column h3 { margin: 0 0 11px; font-size: .76rem; letter-spacing: .12em; text-transform: uppercase; }
.stellar-footer-column a { color: rgba(255,255,255,.66); font-size: .86rem; text-decoration: none; }
.stellar-footer-column a:hover { color: #fff; }
.stellar-footer-bottom { width: min(100%, var(--stellar-container)); margin-inline: auto; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.09); font-size: .78rem; }

/* Modals */
.stellar-modal[hidden] { display: none !important; }
.stellar-modal { position: fixed; inset: 0; z-index: 100000; display: grid; place-items: center; padding: 24px; }
.stellar-modal__backdrop { position: absolute; inset: 0; background: rgba(8, 7, 10, .79); backdrop-filter: blur(9px); }
.stellar-modal__dialog { position: relative; z-index: 1; width: min(100%, 780px); max-height: calc(100dvh - 48px); overflow: auto; padding: clamp(30px, 5vw, 60px); background: var(--stellar-paper); color: var(--stellar-text); border-radius: var(--stellar-radius-lg); box-shadow: 0 34px 120px rgba(0,0,0,.42); animation: stellar-dialog-in 320ms var(--stellar-ease); }
@keyframes stellar-dialog-in { from { opacity: 0; transform: translateY(14px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
.stellar-modal__close { position: absolute; top: 17px; right: 17px; width: 44px; height: 44px; border: 1px solid var(--stellar-line); border-radius: 999px; background: #fff; color: var(--stellar-text); font-size: 1.45rem; cursor: pointer; }
.stellar-modal__header { padding-right: 50px; margin-bottom: 34px; }
.stellar-modal__brand { margin: 0 0 15px; color: var(--stellar-purple); font-size: .72rem; font-weight: 800; letter-spacing: .16em; }
.stellar-modal__header h2 { margin: 0; font-size: clamp(2rem, 5vw, 3.65rem); line-height: .98; letter-spacing: -.045em; }
.stellar-modal__header > p:last-child { color: var(--stellar-muted); }
.stellar-form, .stellar-form-step, .stellar-booking-step { display: grid; gap: 20px; }
.stellar-form fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.stellar-form legend { margin-bottom: 20px; font-size: clamp(1.35rem, 3vw, 2rem); font-weight: 700; line-height: 1.08; }
.stellar-form label { display: grid; gap: 8px; font-size: .9rem; font-weight: 650; }
.stellar-form input, .stellar-form select, .stellar-form textarea { width: 100%; min-height: 52px; padding: 12px 14px; border: 1px solid #cfc8d4; border-radius: 10px; background: #fff; color: var(--stellar-text); }
.stellar-form textarea { resize: vertical; }
.stellar-choice-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.stellar-choice { position: relative; }
.stellar-choice input, .stellar-slot input { position: absolute; opacity: 0; }
.stellar-choice span { min-height: 160px; display: grid; align-content: center; gap: 7px; padding: 24px; border: 1px solid var(--stellar-line); border-radius: var(--stellar-radius-md); background: #fff; cursor: pointer; }
.stellar-choice small { color: var(--stellar-muted); font-weight: 400; }
.stellar-choice input:checked + span { border-color: var(--stellar-purple); box-shadow: 0 0 0 3px rgba(135,60,255,.15); }
.stellar-choice input:focus-visible + span, .stellar-slot input:focus-visible + span { outline: 3px solid var(--stellar-purple); outline-offset: 3px; }
.stellar-form-actions { display: flex; justify-content: space-between; gap: 12px; }
.stellar-form-hint { color: var(--stellar-muted); font-size: .82rem; }
.stellar-checkbox { grid-template-columns: auto 1fr; align-items: start; font-weight: 400 !important; }
.stellar-checkbox input { width: 21px; min-height: 21px; margin-top: 2px; }
.stellar-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.stellar-form-error { padding: 12px 14px; border: 1px solid var(--stellar-error); border-radius: 8px; background: #fff2ef; color: #8b1f14; }
.stellar-slot-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; }
.stellar-slot { position: relative; }
.stellar-slot span { min-height: 50px; display: grid; place-items: center; border: 1px solid var(--stellar-line); border-radius: 9px; background: #fff; cursor: pointer; }
.stellar-slot input:checked + span { border-color: var(--stellar-purple); background: var(--stellar-purple); color: #fff; }
.stellar-booking-summary { padding: 15px; background: var(--stellar-purple-soft); border-radius: 9px; }
.stellar-result h3 { margin: 0; font-size: clamp(2rem, 5vw, 3.6rem); line-height: 1; }

/* Reveal animations */
[data-stellar-reveal] { opacity: 0; transform: translateY(26px); transition: opacity 680ms ease, transform 820ms var(--stellar-ease); }
[data-stellar-reveal].is-visible { opacity: 1; transform: translateY(0); }

/* Elementor cleanup */
.elementor-location-header, .elementor-location-footer { margin: 0 !important; }
.elementor-widget-stellar_header, .elementor-widget-stellar_footer, .elementor-widget-stellar_hero, .elementor-widget-stellar_section, .elementor-widget-stellar_estimator_modal, .elementor-widget-stellar_booking_modal { width: 100%; }

@media (max-width: 1180px) {
    :root { --stellar-header-height: 80px; }
    .stellar-header__inner { grid-template-columns: 1fr auto; }
    .stellar-menu-button { display: block; grid-column: 2; grid-row: 1; }
    .stellar-nav, .stellar-header-actions { display: none; }
    .stellar-nav.is-open { position: fixed; top: var(--stellar-header-height); inset-inline: 0; z-index: 9997; max-height: calc(100dvh - var(--stellar-header-height)); display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 2px; padding: 24px 22px 132px; overflow: auto; background: var(--stellar-ink); }
    .stellar-nav.is-open + .stellar-header-actions { position: fixed; z-index: 9998; left: 20px; right: 20px; bottom: 18px; display: flex; padding: 11px; background: var(--stellar-ink-2); border: 1px solid rgba(255,255,255,.09); border-radius: 15px; box-shadow: 0 20px 60px rgba(0,0,0,.35); }
    .stellar-nav > a, .stellar-nav__services > a { padding: 9px 0; font-size: 1rem; }
    .stellar-nav__services { display: grid; grid-template-columns: 1fr auto; }
    .stellar-submenu { position: static; grid-column: 1 / -1; width: 100%; display: none; margin-top: 7px; opacity: 1; visibility: visible; transform: none; box-shadow: none; }
    .stellar-nav__services:hover .stellar-submenu, .stellar-nav__services:focus-within .stellar-submenu { display: none; transform: none; }
    .stellar-nav__services.is-open .stellar-submenu { display: grid; }
    .stellar-header-estimate { flex: 1; }
    .stellar-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .stellar-footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 980px) {
    .stellar-hero-grid, .stellar-process-grid, .stellar-about-grid, .stellar-faq-grid { grid-template-columns: 1fr; }
    .stellar-hero { min-height: auto; }
    .stellar-hero-media { max-width: 760px; }
    .stellar-features-intro { grid-template-columns: 1fr; gap: 20px; }
    .stellar-features-intro .stellar-section-head { display: block; }
    .stellar-features-intro h2, .stellar-features-intro .stellar-section-head > p:last-child { grid-column: auto; }
    .stellar-card-grid--3, .stellar-service-grid, .stellar-service-grid--all, .stellar-blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .stellar-services--all .stellar-service-card:nth-child(n) { grid-column: auto; }
    .stellar-estimate-box { grid-template-columns: 1fr; }
    .stellar-estimate-visual { opacity: .5; }
    .stellar-process-copy { max-width: 720px; padding-right: 0; }
    .stellar-faq-title { position: static; }
    .stellar-reviews-head { align-items: start; flex-direction: column; }
    .stellar-related-links { grid-template-columns: 1fr; }
    .stellar-final-cta__box { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 720px) {
    .stellar-container { width: min(calc(100% - 32px), var(--stellar-container)); }
    .stellar-section { padding-block: 72px; }
    .stellar-header__inner { width: calc(100% - 28px); }
    .stellar-brand img { max-width: 136px; max-height: 35px; }
    .stellar-brand small { max-width: 170px; white-space: normal; font-size: .54rem; }
    .stellar-header-actions .stellar-icon-button--whatsapp { display: none; }
    .stellar-hero-grid { gap: 44px; padding-block: 72px; }
    .stellar-hero h1, .stellar-hero--page h1 { font-size: clamp(2.9rem, 14vw, 4.8rem); }
    .stellar-hero-media__line { inset: -16% -45% -8% -36%; border-width: 4px; }
    .stellar-card-grid--3, .stellar-service-grid, .stellar-service-grid--all, .stellar-blog-grid, .stellar-simulator-grid, .stellar-scope-grid { grid-template-columns: 1fr; }
    .stellar-dark-card, .stellar-service-card, .stellar-simulator-card { min-height: auto; }
    .stellar-estimate-box { min-height: 500px; padding: 34px 25px; }
    .stellar-estimate-visual { right: -150px; top: 70%; }
    .stellar-process { min-height: auto; }
    .stellar-process-list li { grid-template-columns: 48px 1fr; padding: 20px; }
    .stellar-reviews { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 12px; }
    .stellar-review { min-width: min(86vw, 430px); min-height: 320px; scroll-snap-align: start; }
    .stellar-footer { padding-inline: 16px; }
    .stellar-footer-cta { min-height: auto; align-items: stretch; flex-direction: column; transform: translateY(-38px); }
    .stellar-footer-grid { grid-template-columns: 1fr 1fr; }
    .stellar-modal { padding: 0; }
    .stellar-modal__dialog { width: 100%; height: 100dvh; max-height: none; padding: 28px 20px 42px; border-radius: 0; }
    .stellar-choice-grid, .stellar-slot-grid { grid-template-columns: 1fr 1fr; }
    .stellar-choice span { min-height: 138px; padding: 18px; }
    .stellar-form-actions { flex-direction: column-reverse; }
    .stellar-form-actions .stellar-btn { width: 100%; }
    .stellar-article-hero figure { margin-bottom: -120px; }
    .stellar-article-hero:has(figure) { margin-bottom: 100px; }
    .stellar-related-links a { min-height: 105px; }
}

@media (max-width: 450px) {
    .stellar-footer-grid { grid-template-columns: 1fr; }
    .stellar-choice-grid, .stellar-slot-grid { grid-template-columns: 1fr; }
    .stellar-header-actions { gap: 7px; }
    .stellar-icon-button { width: 42px; height: 42px; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
    [data-stellar-reveal] { opacity: 1; transform: none; }
    .stellar-marquee-track { animation: none; }
}

/* =========================================================
   Cabinet Stellar refinement pack v1.1.0
   - floating rounded header
   - animated particle background in hero/headers
   - modal step visibility fix
   - reduced duplicated CTA feeling
   ========================================================= */

body.admin-bar .stellar-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .stellar-header { top: 46px; } }

:root {
    --stellar-header-height: 108px;
}

.stellar-header {
    top: 0;
    min-height: var(--stellar-header-height);
    padding: 14px 0 0;
    background: transparent;
    border-bottom: 0;
    backdrop-filter: none;
}

.stellar-header__inner {
    width: min(calc(100% - 34px), 1380px);
    min-height: 76px;
    padding: 10px 18px;
    background: rgba(10, 10, 14, .88);
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 24px;
    box-shadow: 0 22px 60px rgba(0, 0, 0, .24);
    backdrop-filter: blur(16px);
}

.stellar-header.is-scrolled .stellar-header__inner {
    background: rgba(10, 10, 14, .95);
    box-shadow: 0 26px 72px rgba(0, 0, 0, .34);
}

.stellar-nav > a,
.stellar-nav__services > a {
    font-size: .9rem;
    font-weight: 600;
}

.stellar-nav > a::after,
.stellar-nav__services > a::after {
    bottom: -8px;
}

.stellar-header-estimate {
    padding-inline: 24px;
}

.stellar-icon-button {
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.08);
}

.stellar-hero,
.stellar-archive-hero,
.stellar-article-hero {
    background: #050507;
}

.stellar-hero {
    isolation: isolate;
}

.stellar-hero::before,
.stellar-archive-hero::before,
.stellar-article-hero::before {
    content: "";
    position: absolute;
    inset: auto auto -18% -10%;
    width: 48vw;
    height: 48vw;
    max-width: 720px;
    max-height: 720px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(135,60,255,.18) 0%, rgba(135,60,255,.08) 30%, rgba(135,60,255,0) 68%);
    filter: blur(18px);
    z-index: 0;
    pointer-events: none;
}

.stellar-stars {
    position: absolute;
    inset: 0;
    overflow: hidden;
    background: #050507;
    opacity: 1;
}

.stellar-stars,
.stellar-stars::before,
.stellar-stars::after {
    background-image:
        radial-gradient(circle at 12% 22%, rgba(255,255,255,.90) 0 1.4px, transparent 1.5px),
        radial-gradient(circle at 28% 64%, rgba(255,255,255,.72) 0 1.1px, transparent 1.3px),
        radial-gradient(circle at 74% 18%, rgba(255,255,255,.88) 0 1.2px, transparent 1.4px),
        radial-gradient(circle at 88% 72%, rgba(255,255,255,.82) 0 1.2px, transparent 1.4px),
        radial-gradient(circle at 62% 36%, rgba(135,60,255,.95) 0 1.6px, transparent 1.9px),
        radial-gradient(circle at 44% 84%, rgba(135,60,255,.72) 0 1.2px, transparent 1.5px);
    background-size: 220px 220px, 280px 280px, 320px 320px, 420px 420px, 520px 520px, 640px 640px;
}

.stellar-stars::before,
.stellar-stars::after {
    content: "";
    position: absolute;
    inset: -12%;
    pointer-events: none;
    opacity: .72;
}

.stellar-stars {
    animation: stellar-stars-drift-a 32s linear infinite;
}

.stellar-stars::before {
    opacity: .45;
    filter: blur(.2px);
    transform: scale(1.06);
    animation: stellar-stars-drift-b 52s linear infinite reverse;
}

.stellar-stars::after {
    opacity: .24;
    transform: scale(1.14);
    animation: stellar-stars-twinkle 11s ease-in-out infinite alternate;
}

@keyframes stellar-stars-drift-a {
    from { transform: translate3d(0, 0, 0); }
    to { transform: translate3d(-60px, 38px, 0); }
}

@keyframes stellar-stars-drift-b {
    from { transform: translate3d(0, 0, 0) scale(1.06); }
    to { transform: translate3d(36px, -54px, 0) scale(1.1); }
}

@keyframes stellar-stars-twinkle {
    0% { opacity: .12; }
    50% { opacity: .28; }
    100% { opacity: .18; }
}

.stellar-hero-grid,
.stellar-archive-hero > .stellar-container,
.stellar-article-hero > .stellar-container {
    position: relative;
    z-index: 2;
}

.stellar-hero-text {
    color: rgba(255,255,255,.78);
}

.stellar-hero-media {
    box-shadow: 0 24px 80px rgba(0,0,0,.34);
}

.stellar-hero-media img {
    border: 1px solid rgba(255,255,255,.06);
}

.stellar-modal__dialog {
    width: min(100%, 840px);
    background: #f8f7fa;
    border: 1px solid rgba(29,25,33,.08);
}

.stellar-modal__header {
    margin-bottom: 28px;
}

.stellar-form-step[hidden],
.stellar-booking-step[hidden],
.stellar-result[hidden] {
    display: none !important;
}

.stellar-form,
.stellar-form-step,
.stellar-booking-step {
    gap: 18px;
}

.stellar-choice span {
    min-height: 174px;
    align-content: center;
    gap: 8px;
    border-radius: 20px;
    transition: transform 220ms var(--stellar-ease), border-color 220ms ease, box-shadow 220ms ease, background 220ms ease;
}

.stellar-choice span:hover,
.stellar-choice input:focus-visible + span {
    transform: translateY(-3px);
    border-color: rgba(135,60,255,.38);
    box-shadow: 0 16px 40px rgba(72,33,124,.08);
}

.stellar-choice input:checked + span {
    background: linear-gradient(180deg, #fff 0%, #f7f2ff 100%);
    border-color: var(--stellar-purple);
    box-shadow: 0 0 0 3px rgba(135,60,255,.10), 0 18px 48px rgba(72,33,124,.08);
}

.stellar-form input,
.stellar-form select,
.stellar-form textarea {
    border-radius: 14px;
    background: #fff;
}

.stellar-form-actions {
    align-items: center;
}

.stellar-booking-summary {
    border: 1px solid rgba(135,60,255,.18);
    background: linear-gradient(180deg, #f8f2ff 0%, #efe5ff 100%);
}

[data-estimator-progress] {
    min-height: 1.3em;
    margin-top: 10px;
    color: var(--stellar-purple-deep);
    font-size: .85rem;
    font-weight: 700;
}

/* Keep one strong conversion block: footer CTA only */
.stellar-final-cta {
    display: none;
}

.stellar-footer-cta {
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, #7a34f1 0%, #8f49ff 52%, #a06eff 100%);
}

.stellar-footer-cta::after {
    content: "";
    position: absolute;
    right: -140px;
    bottom: -180px;
    width: 360px;
    height: 360px;
    border: 4px solid rgba(255,255,255,.18);
    border-radius: 50%;
    transform: rotate(-22deg);
    pointer-events: none;
}

@media (max-width: 1180px) {
    :root { --stellar-header-height: 100px; }
    .stellar-header { padding-top: 12px; }
    .stellar-header__inner { width: min(calc(100% - 26px), 1380px); }
}

@media (max-width: 980px) {
    :root { --stellar-header-height: 92px; }
    .stellar-header { padding-top: 10px; }
    .stellar-header__inner {
        min-height: 68px;
        border-radius: 20px;
        padding-inline: 14px;
    }
    .stellar-nav.is-open {
        top: calc(var(--stellar-header-height) + 4px);
        left: 14px;
        right: 14px;
        inset-inline: auto;
        max-height: calc(100dvh - var(--stellar-header-height) - 16px);
        background: rgba(10, 10, 14, .98);
        border: 1px solid rgba(255,255,255,.08);
        border-radius: 20px;
        box-shadow: 0 26px 80px rgba(0,0,0,.42);
    }
    .stellar-nav.is-open + .stellar-header-actions {
        left: 28px;
        right: 28px;
        bottom: 22px;
        border-radius: 18px;
    }
}

@media (max-width: 782px) {
    :root { --stellar-header-height: 88px; }
    .stellar-header__inner { width: calc(100% - 20px); }
    .stellar-choice-grid,
    .stellar-slot-grid { grid-template-columns: 1fr; }
    .stellar-modal__dialog {
        width: 100%;
        max-height: none;
        border-radius: 22px 22px 0 0;
    }
}

/* --- UX / design refinements v1.2.0 --- */
body.elementor-editor-active [data-stellar-reveal],
body.elementor-editor-preview [data-stellar-reveal],
.elementor-editor-active [data-stellar-reveal],
.elementor-editor-preview [data-stellar-reveal] {
    opacity: 1 !important;
    transform: none !important;
    visibility: visible !important;
}

.elementor-editor-active .stellar-stars,
.elementor-editor-preview .stellar-stars {
    opacity: .95;
}

.stellar-header {
    position: sticky;
    top: 0;
    z-index: 50;
    padding-top: 14px;
}

.stellar-header__inner {
    width: min(calc(100% - 28px), 1380px);
    margin-inline: auto;
    background: rgba(10, 10, 14, .82);
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 28px;
    box-shadow: 0 28px 70px rgba(0,0,0,.28);
    backdrop-filter: blur(18px);
}

.stellar-modal__dialog--wide {
    width: min(100%, 1240px);
    max-height: calc(100dvh - 34px);
    border-radius: 34px;
    padding: clamp(28px, 4vw, 54px);
}

.stellar-modal__header--rich {
    display: grid;
    gap: 14px;
    margin-bottom: 30px;
}

.stellar-modal__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    color: var(--stellar-purple-deep);
    font-size: .95rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.stellar-modal__eyebrow span {
    width: 12px;
    height: 12px;
    border-radius: 999px;
    background: #d8b47a;
    box-shadow: 0 0 0 6px rgba(216,180,122,.16);
}

.stellar-modal__header--rich h2 {
    margin: 0;
    font-size: clamp(2.8rem, 6vw, 5.2rem);
    line-height: .94;
    letter-spacing: -.07em;
    color: #2c0042;
    max-width: 11ch;
}

.stellar-modal__header--rich > p:last-of-type {
    max-width: 900px;
    margin: 0;
    color: rgba(36,24,52,.7);
    font-size: clamp(1rem, 1.4vw, 1.15rem);
}

.stellar-modal__progress-block {
    display: grid;
    gap: 10px;
    margin-top: 6px;
}

.stellar-modal__progress-track {
    width: 100%;
    height: 10px;
    overflow: hidden;
    background: #e9e2f0;
    border-radius: 999px;
}

.stellar-modal__progress-track span {
    display: block;
    width: 8%;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #500063 0%, #8d4cff 100%);
    transition: width 260ms ease;
}

.stellar-form--cards,
.stellar-form-step,
.stellar-booking-step {
    display: grid;
    gap: 22px;
}

.stellar-form-step__copy {
    display: grid;
    gap: 8px;
}

.stellar-form-step__eyebrow {
    margin: 0;
    color: rgba(53,39,75,.68);
    font-size: .88rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.stellar-form-step__copy h3 {
    margin: 0;
    font-size: clamp(2rem, 4vw, 3.6rem);
    line-height: .96;
    letter-spacing: -.06em;
    color: #2c0042;
    max-width: 12ch;
}

.stellar-form-step__copy p,
.stellar-form-step__hint {
    margin: 0;
    color: rgba(36,24,52,.68);
    font-size: 1rem;
}

.stellar-choice-grid--cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.stellar-choice--card span,
.stellar-choice--slot span {
    min-height: 116px;
    align-content: center;
    padding: 26px 24px;
    border-radius: 24px;
    background: #fff;
    border: 1px solid rgba(74,34,121,.12);
}

.stellar-choice--card strong,
.stellar-choice--slot strong {
    display: block;
    font-size: clamp(1.1rem, 1.8vw, 1.5rem);
    line-height: 1.15;
    letter-spacing: -.03em;
    color: #211230;
}

.stellar-choice--card small,
.stellar-choice--slot small {
    display: block;
    margin-top: 8px;
    color: rgba(33,18,48,.66);
    font-size: .98rem;
    line-height: 1.45;
}

.stellar-choice--slot span {
    min-height: 84px;
}

.stellar-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.stellar-form-grid__full { grid-column: 1 / -1; }

.stellar-form input,
.stellar-form textarea,
.stellar-form select,
.stellar-input-card {
    font-size: 1rem;
}

.stellar-form label {
    display: grid;
    gap: 10px;
    color: #261a36;
    font-weight: 700;
}

.stellar-form input,
.stellar-form textarea,
.stellar-form select {
    width: 100%;
    min-height: 62px;
    padding: 0 18px;
    border: 1px solid rgba(74,34,121,.14);
    border-radius: 18px;
    background: #fff;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.7);
}

.stellar-form textarea {
    min-height: 160px;
    padding: 18px;
    resize: vertical;
}

.stellar-input-card {
    display: grid;
    gap: 12px;
    max-width: 420px;
    padding: 24px;
    border: 1px solid rgba(74,34,121,.12);
    border-radius: 24px;
    background: linear-gradient(180deg, #ffffff 0%, #faf7ff 100%);
    font-weight: 700;
}

.stellar-input-card input {
    min-height: 56px;
}

.stellar-checkbox {
    display: flex !important;
    align-items: flex-start;
    gap: 14px;
    font-weight: 500 !important;
    color: rgba(36,24,52,.78) !important;
}

.stellar-checkbox input {
    width: 22px;
    min-width: 22px;
    min-height: 22px;
    margin-top: 3px;
    padding: 0;
}

.stellar-form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    align-items: center;
    justify-content: space-between;
}

.stellar-form-actions--center {
    justify-content: center;
}

.stellar-form-error {
    padding: 14px 16px;
    border-radius: 16px;
    background: #fff2f5;
    color: #a40f3c;
    font-weight: 600;
}

.stellar-booking-summary__card {
    display: grid;
    gap: 6px;
    padding: 20px 22px;
    border-radius: 22px;
    border: 1px solid rgba(135,60,255,.18);
    background: linear-gradient(180deg, #f8f2ff 0%, #efe5ff 100%);
}

.stellar-booking-summary__card strong {
    font-size: .95rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: rgba(44,0,66,.76);
}

.stellar-booking-summary__card span {
    font-size: 1.25rem;
    font-weight: 800;
    letter-spacing: -.03em;
    color: #2c0042;
}

.stellar-booking-summary__card small {
    color: rgba(44,0,66,.72);
}

.stellar-result {
    padding: clamp(18px, 3vw, 24px) 0 8px;
}

.stellar-result h3 {
    margin: 0;
    font-size: clamp(2.8rem, 5vw, 5rem);
    line-height: .95;
    letter-spacing: -.07em;
    color: #2c0042;
}

.stellar-result p {
    max-width: 960px;
}

/* Move appointment CTA out of footer and restore dedicated end-of-page section */
.stellar-footer-cta {
    display: none;
}

.stellar-final-cta {
    display: block;
    position: relative;
    padding: clamp(64px, 9vw, 120px) 0 0;
    background: var(--stellar-paper);
}

.stellar-final-cta__box {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    align-items: center;
    min-height: 380px;
    background: #050507;
    color: #fff;
    border-radius: 36px;
    box-shadow: 0 30px 80px rgba(0,0,0,.18);
}

.stellar-final-cta__box::before,
.stellar-final-cta__box::after,
.stellar-footer::before,
.stellar-footer::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        radial-gradient(circle at 10% 18%, rgba(255,255,255,.9) 0 1.3px, transparent 1.6px),
        radial-gradient(circle at 30% 72%, rgba(255,255,255,.62) 0 1.1px, transparent 1.4px),
        radial-gradient(circle at 56% 42%, rgba(135,60,255,.94) 0 1.6px, transparent 1.9px),
        radial-gradient(circle at 84% 30%, rgba(255,255,255,.82) 0 1.2px, transparent 1.5px),
        radial-gradient(circle at 74% 82%, rgba(135,60,255,.72) 0 1.4px, transparent 1.7px);
    background-size: 320px 320px, 460px 460px, 580px 580px, 700px 700px, 520px 520px;
}

.stellar-final-cta__box::before,
.stellar-footer::before {
    opacity: .74;
    animation: stellar-stars-drift-a 30s linear infinite;
}

.stellar-final-cta__box::after,
.stellar-footer::after {
    opacity: .34;
    transform: scale(1.06);
    animation: stellar-stars-drift-b 46s linear infinite reverse;
}

.stellar-final-cta__box > * {
    position: relative;
    z-index: 1;
}

.stellar-final-cta__box p,
.stellar-final-cta__box .stellar-section-text {
    color: rgba(255,255,255,.72);
}

.stellar-footer {
    position: relative;
    overflow: hidden;
    padding: 64px 24px 34px;
    background: #050507;
    color: #fff;
}

.stellar-footer-grid,
.stellar-footer-bottom {
    position: relative;
    z-index: 1;
}

.stellar-footer-grid {
    margin-top: 0;
    padding-top: 6px;
    grid-template-columns: minmax(260px, 1.4fr) repeat(4, minmax(140px, 1fr));
    gap: 36px;
}

.stellar-footer-brand {
    gap: 12px;
}

.stellar-footer-brand small {
    font-size: .85rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.stellar-footer-brand p {
    max-width: 32ch;
    font-size: .98rem;
    line-height: 1.65;
}

.stellar-footer-column h3 {
    margin-bottom: 12px;
    font-size: .8rem;
    letter-spacing: .16em;
}

.stellar-footer-column a {
    position: relative;
    display: inline-block;
    width: fit-content;
    font-size: .95rem;
    line-height: 1.6;
}

.stellar-footer-column a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -2px;
    width: 100%;
    height: 1px;
    background: rgba(255,255,255,.38);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 220ms ease;
}

.stellar-footer-column a:hover::after {
    transform: scaleX(1);
}

.stellar-footer-bottom {
    padding-top: 28px;
    border-top: 1px solid rgba(255,255,255,.1);
    color: rgba(255,255,255,.56);
}

@media (max-width: 1024px) {
    .stellar-choice-grid--cards,
    .stellar-form-grid {
        grid-template-columns: 1fr;
    }

    .stellar-modal__header--rich h2,
    .stellar-form-step__copy h3,
    .stellar-result h3 {
        max-width: none;
    }
}

@media (max-width: 782px) {
    .stellar-modal__dialog--wide {
        width: 100%;
        height: 100dvh;
        max-height: none;
        border-radius: 26px 26px 0 0;
        padding: 24px 18px 36px;
    }

    .stellar-footer {
        padding-top: 54px;
    }

    .stellar-final-cta__box {
        border-radius: 28px;
    }
}

/* =========================================================
   Cabinet Stellar refinement pack v1.2.1
   - darker sticky header with particles
   - more compact hero
   - more professional services cards
   - smaller infinite-scrolling reviews
   - stronger mobile-first polish
   ========================================================= */

:root {
    --stellar-header-height: 94px;
}

.stellar-header {
    position: sticky;
    top: 0;
    z-index: 80;
    padding-top: 10px;
}

.stellar-header__inner {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    width: min(calc(100% - 20px), 1360px);
    min-height: 68px;
    background: #050507;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 24px;
    box-shadow: 0 22px 60px rgba(0,0,0,.35);
}

.stellar-header__inner::before,
.stellar-header__inner::after {
    content: "";
    position: absolute;
    inset: -12%;
    pointer-events: none;
    opacity: .66;
    background-image:
        radial-gradient(circle at 14% 24%, rgba(255,255,255,.86) 0 1.1px, transparent 1.3px),
        radial-gradient(circle at 42% 66%, rgba(255,255,255,.52) 0 1px, transparent 1.2px),
        radial-gradient(circle at 76% 34%, rgba(135,60,255,.92) 0 1.35px, transparent 1.6px),
        radial-gradient(circle at 88% 70%, rgba(255,255,255,.82) 0 1.1px, transparent 1.3px),
        radial-gradient(circle at 58% 22%, rgba(135,60,255,.74) 0 1.1px, transparent 1.35px);
    background-size: 120px 120px, 170px 170px, 240px 240px, 300px 300px, 190px 190px;
}

.stellar-header__inner::before {
    animation: stellar-header-drift-a 12s linear infinite;
}

.stellar-header__inner::after {
    opacity: .32;
    transform: scale(1.04);
    animation: stellar-header-drift-b 17s linear infinite reverse;
}

.stellar-header__inner > * {
    position: relative;
    z-index: 1;
}

.stellar-header.is-scrolled .stellar-header__inner {
    background: rgba(5,5,7,.96);
    box-shadow: 0 26px 72px rgba(0,0,0,.42);
}

@keyframes stellar-header-drift-a {
    from { transform: translate3d(0, 0, 0); }
    to { transform: translate3d(-34px, 16px, 0); }
}

@keyframes stellar-header-drift-b {
    from { transform: translate3d(0, 0, 0) scale(1.04); }
    to { transform: translate3d(26px, -20px, 0) scale(1.08); }
}

.stellar-stars {
    animation: stellar-stars-drift-a 16s linear infinite;
}

.stellar-stars::before {
    animation: stellar-stars-drift-b 25s linear infinite reverse;
}

.stellar-stars::after {
    animation: stellar-stars-twinkle 7s ease-in-out infinite alternate;
}

.stellar-hero {
    min-height: clamp(540px, 78svh, 720px);
}

.stellar-hero--page {
    min-height: clamp(440px, 62svh, 620px);
}

.stellar-hero-grid {
    grid-template-columns: minmax(0, 1.02fr) minmax(280px, .78fr);
    gap: clamp(28px, 4vw, 56px);
    padding-block: clamp(42px, 6vw, 74px);
}

.stellar-hero-copy {
    max-width: 700px;
}

.stellar-hero h1 {
    max-width: 10.5ch;
    font-size: clamp(2.7rem, 5.6vw, 5.45rem);
}

.stellar-hero--page h1 {
    font-size: clamp(2.4rem, 5vw, 4.5rem);
}

.stellar-hero-text {
    max-width: 56ch;
    margin: 18px 0 22px;
    font-size: clamp(1rem, 1.2vw, 1.08rem);
    line-height: 1.65;
}

.stellar-hero-media {
    max-width: 520px;
    margin-inline: auto;
}

.stellar-services {
    position: relative;
    overflow: hidden;
    background: linear-gradient(180deg, #f5f2fa 0%, #f8f7fb 100%);
    color: var(--stellar-text);
}

.stellar-services::before {
    content: "";
    position: absolute;
    inset: auto -15% 15% auto;
    width: min(46vw, 520px);
    height: min(46vw, 520px);
    border-radius: 50%;
    background: radial-gradient(circle, rgba(135,60,255,.18) 0%, rgba(135,60,255,.08) 42%, rgba(135,60,255,0) 72%);
    filter: blur(22px);
    pointer-events: none;
}

.stellar-services .stellar-container {
    position: relative;
    z-index: 1;
}

.stellar-services .stellar-eyebrow {
    color: var(--stellar-purple);
}

.stellar-services .stellar-section-head h2 {
    color: var(--stellar-text);
    max-width: 11ch;
    margin-inline: auto;
    font-size: clamp(2.4rem, 5vw, 4.8rem);
}

.stellar-services .stellar-section-head > p:last-child {
    max-width: 760px;
    margin-inline: auto;
    color: var(--stellar-muted);
}

.stellar-service-grid {
    gap: 20px;
    margin-top: 34px;
}

.stellar-service-card {
    position: relative;
    min-height: 286px;
    padding: 26px 24px 24px;
    border: 1px solid rgba(38, 25, 55, .08);
    border-radius: 24px;
    background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(250,248,255,.96) 100%);
    box-shadow: 0 18px 42px rgba(31, 18, 47, .08);
}

.stellar-service-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 4px;
    background: linear-gradient(90deg, var(--stellar-purple-deep) 0%, var(--stellar-purple) 100%);
    opacity: .94;
}

.stellar-service-card::after {
    content: "";
    position: absolute;
    right: 18px;
    bottom: 18px;
    width: 92px;
    height: 92px;
    border-radius: 50%;
    border: 1px solid rgba(135,60,255,.14);
    opacity: .8;
}

.stellar-service-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 24px 58px rgba(31,18,47,.13);
}

.stellar-service-card .stellar-card-index {
    min-width: 42px;
    height: 42px;
    border-radius: 14px;
    background: rgba(135,60,255,.1);
    color: var(--stellar-purple-deep);
}

.stellar-service-card h3 {
    margin: 24px 0 12px;
    font-size: clamp(1.3rem, 2vw, 1.7rem);
    line-height: 1.12;
    letter-spacing: -.04em;
    max-width: 13ch;
}

.stellar-service-card p {
    margin: 0 0 22px;
    font-size: .98rem;
    line-height: 1.6;
}

.stellar-service-card a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: auto;
}

.stellar-reviews-section {
    background: #f2f1f4;
}

.stellar-reviews-head {
    margin-bottom: 26px;
}

.stellar-reviews-viewport {
    overflow: hidden;
    width: 100%;
}

.stellar-reviews {
    display: flex;
    gap: 18px;
    width: max-content;
}

.stellar-reviews.is-marquee {
    animation: stellar-review-loop 28s linear infinite;
    will-change: transform;
}

.stellar-reviews-viewport:hover .stellar-reviews.is-marquee {
    animation-play-state: paused;
}

@keyframes stellar-review-loop {
    from { transform: translate3d(0, 0, 0); }
    to { transform: translate3d(calc(-1 * var(--stellar-review-shift, 900px)), 0, 0); }
}

.stellar-review {
    min-width: min(520px, 42vw);
    min-height: 246px;
    padding: clamp(24px, 2.6vw, 36px);
    border-radius: 24px;
    box-shadow: 0 16px 40px rgba(22, 18, 33, .08);
}

.stellar-review blockquote {
    font-size: clamp(1.25rem, 2.2vw, 2.35rem);
    line-height: 1.08;
    max-width: 14ch;
}

.stellar-review figcaption {
    margin-top: 24px;
    font-size: .84rem;
}

@media (max-width: 980px) {
    :root {
        --stellar-header-height: 88px;
    }

    .stellar-header {
        padding-top: 8px;
    }

    .stellar-header__inner {
        min-height: 64px;
        padding-inline: 12px;
        border-radius: 20px;
    }

    .stellar-nav.is-open {
        top: calc(var(--stellar-header-height) + 2px);
        left: 10px;
        right: 10px;
        border-radius: 18px;
        background: rgba(5,5,7,.98);
    }

    .stellar-hero-grid {
        grid-template-columns: 1fr;
        gap: 28px;
        padding-block: 32px 42px;
    }

    .stellar-hero-copy {
        order: 1;
    }

    .stellar-hero-media {
        order: 2;
        max-width: 100%;
    }

    .stellar-services .stellar-section-head h2 {
        max-width: none;
    }

    .stellar-service-grid {
        grid-template-columns: 1fr 1fr;
    }

    .stellar-review {
        min-width: min(82vw, 430px);
    }
}

@media (max-width: 720px) {
    :root {
        --stellar-header-height: 82px;
    }

    .stellar-container {
        width: min(calc(100% - 24px), var(--stellar-container));
    }

    .stellar-section {
        padding-block: 56px;
    }

    .stellar-header__inner {
        width: calc(100% - 16px);
        min-height: 60px;
        padding: 8px 10px;
        border-radius: 18px;
    }

    .stellar-brand img {
        max-width: 124px;
        max-height: 32px;
    }

    .stellar-brand small {
        display: none;
    }

    .stellar-header-actions {
        gap: 8px;
    }

    .stellar-header-estimate {
        padding-inline: 16px;
    }

    .stellar-icon-button {
        width: 42px;
        height: 42px;
    }

    .stellar-hero {
        min-height: auto;
    }

    .stellar-hero-grid {
        gap: 22px;
        padding-block: 20px 34px;
    }

    .stellar-hero h1,
    .stellar-hero--page h1 {
        font-size: clamp(2.2rem, 11vw, 3.35rem);
        line-height: .96;
    }

    .stellar-hero-text {
        margin: 14px 0 18px;
        font-size: .98rem;
    }

    .stellar-hero-media img {
        aspect-ratio: 1.18;
    }

    .stellar-services .stellar-section-head h2,
    .stellar-reviews-head .stellar-section-head h2 {
        font-size: clamp(2rem, 10vw, 2.8rem);
        line-height: .96;
    }

    .stellar-service-grid {
        grid-template-columns: 1fr;
        gap: 14px;
        margin-top: 26px;
    }

    .stellar-service-card {
        min-height: 0;
        padding: 22px 20px 20px;
        border-radius: 20px;
    }

    .stellar-service-card h3 {
        margin-top: 18px;
        font-size: 1.28rem;
    }

    .stellar-service-card p {
        font-size: .95rem;
        margin-bottom: 16px;
    }

    .stellar-reviews-head {
        gap: 18px;
        margin-bottom: 18px;
    }

    .stellar-reviews.is-marquee {
        animation-duration: 22s;
    }

    .stellar-review {
        min-width: 84vw;
        min-height: 210px;
        padding: 22px 20px;
        border-radius: 20px;
    }

    .stellar-review blockquote {
        font-size: clamp(1.15rem, 6vw, 1.65rem);
        max-width: 100%;
    }

    .stellar-review figcaption {
        margin-top: 16px;
        font-size: .78rem;
    }
}

@media (max-width: 480px) {
    .stellar-header-actions .stellar-icon-button--whatsapp {
        display: inline-grid;
    }

    .stellar-header-estimate {
        min-height: 42px;
        padding-inline: 12px;
        font-size: .88rem;
    }

    .stellar-nav.is-open + .stellar-header-actions {
        left: 20px;
        right: 20px;
        bottom: 18px;
    }

    .stellar-choice-grid,
    .stellar-slot-grid {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   Cabinet Stellar stability + polish v1.2.2
   ========================================================= */

/* The global Elementor layouts use an isolated canvas in the editor. */
.single-stellar_layout,
.single-stellar_layout body,
.single-stellar_layout .stellar-main,
.stellar-layout-editor-canvas {
    min-height: 100vh;
}

.single-stellar_layout .stellar-main {
    padding-top: 0 !important;
    background: #050507;
}

.stellar-layout-editor-canvas {
    margin: 0;
}

body.elementor-editor-active .stellar-layout-editor-canvas,
body.elementor-editor-preview .stellar-layout-editor-canvas {
    visibility: visible !important;
    opacity: 1 !important;
}

/* Fixed persistent header: the Elementor wrapper can no longer limit sticky positioning. */
body:not(.single-stellar_layout) .stellar-header {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 9990;
    min-height: var(--stellar-header-height);
    padding: 10px 0;
    overflow: hidden;
    background: #050507;
}

body.admin-bar:not(.single-stellar_layout) .stellar-header {
    top: 32px;
}

body:not(.single-stellar_layout) .stellar-main {
    padding-top: var(--stellar-header-height);
}

.stellar-header::before,
.stellar-header::after {
    content: "";
    position: absolute;
    inset: -24%;
    pointer-events: none;
    background-image:
        radial-gradient(circle at 12% 26%, rgba(255,255,255,.76) 0 1.1px, transparent 1.35px),
        radial-gradient(circle at 38% 64%, rgba(135,60,255,.94) 0 1.35px, transparent 1.65px),
        radial-gradient(circle at 68% 30%, rgba(255,255,255,.58) 0 1px, transparent 1.25px),
        radial-gradient(circle at 88% 76%, rgba(135,60,255,.78) 0 1.2px, transparent 1.5px);
    background-size: 130px 130px, 210px 210px, 270px 270px, 340px 340px;
}

.stellar-header::before {
    opacity: .58;
    animation: stellar-header-shell-a 13s linear infinite;
}

.stellar-header::after {
    opacity: .24;
    transform: scale(1.06);
    animation: stellar-header-shell-b 19s linear infinite reverse;
}

.stellar-header > * {
    position: relative;
    z-index: 1;
}

@keyframes stellar-header-shell-a {
    from { transform: translate3d(0, 0, 0); }
    to { transform: translate3d(-40px, 18px, 0); }
}

@keyframes stellar-header-shell-b {
    from { transform: translate3d(0, 0, 0) scale(1.06); }
    to { transform: translate3d(34px, -24px, 0) scale(1.1); }
}

/* Reviews: enough duplicated content is injected by JS to fill every viewport. */
.stellar-reviews-viewport {
    position: relative;
    width: 100%;
    overflow: hidden;
    mask-image: linear-gradient(to right, transparent 0, #000 3%, #000 97%, transparent 100%);
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 3%, #000 97%, transparent 100%);
}

.stellar-reviews {
    flex-wrap: nowrap;
    align-items: stretch;
    padding: 2px 0 14px;
}

.stellar-reviews.is-marquee {
    animation: stellar-review-loop var(--stellar-review-duration, 28s) linear infinite;
}

.stellar-review {
    flex: 0 0 auto;
}

@keyframes stellar-review-loop {
    from { transform: translate3d(0, 0, 0); }
    to { transform: translate3d(calc(-1 * var(--stellar-review-shift, 1000px)), 0, 0); }
}

/* A light breathing space separates the final conversion block from the footer. */
.stellar-footer {
    margin-top: clamp(14px, 1.4vw, 24px);
    border-radius: 30px 30px 0 0;
    border-top: 1px solid rgba(135,60,255,.28);
}

@media (max-width: 782px) {
    body.admin-bar:not(.single-stellar_layout) .stellar-header {
        top: 46px;
    }

    .stellar-reviews-viewport {
        mask-image: linear-gradient(to right, transparent 0, #000 1.5%, #000 98.5%, transparent 100%);
        -webkit-mask-image: linear-gradient(to right, transparent 0, #000 1.5%, #000 98.5%, transparent 100%);
    }

    .stellar-footer {
        margin-top: 12px;
        border-radius: 24px 24px 0 0;
    }
}

/* =========================================================
   Cabinet Stellar v1.2.3
   - only the rounded navbar remains sticky
   - reliable services submenu
   - seamless review marquee
   - Elementor layout preview compatibility
   ========================================================= */

.stellar-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 90 !important;
    padding: 10px 0 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
}

.stellar-header::before,
.stellar-header::after {
    display: none !important;
}

body.admin-bar .stellar-header {
    top: 32px !important;
}

.stellar-header__inner {
    position: relative;
    isolation: isolate;
    overflow: visible !important;
    background: #050507 !important;
    border-radius: 24px !important;
}

.stellar-header__inner::before,
.stellar-header__inner::after {
    border-radius: inherit;
    clip-path: inset(0 round 24px);
}

.stellar-nav,
.stellar-nav__services,
.stellar-submenu {
    overflow: visible !important;
}

.stellar-nav__services {
    z-index: 120;
}

.stellar-nav__services::before {
    content: "";
    position: absolute;
    top: 100%;
    left: -28px;
    width: calc(100% + 56px);
    height: 30px;
    pointer-events: auto;
}

.stellar-submenu {
    z-index: 140 !important;
    pointer-events: none;
    background: rgba(15, 12, 20, .98) !important;
    border: 1px solid rgba(255,255,255,.11) !important;
    backdrop-filter: blur(18px);
}

.stellar-nav__services:hover .stellar-submenu,
.stellar-nav__services:focus-within .stellar-submenu,
.stellar-nav__services.is-open .stellar-submenu {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto;
    transform: translate(-50%, 0) !important;
}

.stellar-reviews-viewport {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.stellar-reviews {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 18px !important;
    width: max-content !important;
    min-width: max-content !important;
    transform: translate3d(0, 0, 0);
}

.stellar-reviews.is-marquee {
    animation: stellar-review-loop var(--stellar-review-duration, 28s) linear infinite !important;
    will-change: transform;
}

.stellar-reviews .stellar-review {
    flex: 0 0 auto !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
}

.stellar-reviews-viewport:hover .stellar-reviews.is-marquee {
    animation-play-state: paused !important;
}

@keyframes stellar-review-loop {
    from { transform: translate3d(0, 0, 0); }
    to { transform: translate3d(calc(-1 * var(--stellar-review-shift, 1000px)), 0, 0); }
}

.stellar-footer {
    margin-top: clamp(18px, 2vw, 30px) !important;
    border-top: 1px solid rgba(135,60,255,.34) !important;
    box-shadow: 0 -18px 54px rgba(14, 8, 22, .08);
}

.stellar-layout-editor-preview {
    margin: 0;
    min-height: 100vh;
    background: #050507;
}

.stellar-layout-editor-canvas {
    min-height: 100vh;
}

.stellar-layout-editor-preview .stellar-header,
.stellar-layout-editor-preview .stellar-footer {
    margin: 0 !important;
}

@media (max-width: 782px) {
    body.admin-bar .stellar-header {
        top: 46px !important;
    }

    .stellar-header {
        padding-top: 8px !important;
    }

    .stellar-header__inner {
        border-radius: 18px !important;
    }

    .stellar-header__inner::before,
    .stellar-header__inner::after {
        clip-path: inset(0 round 18px);
    }

    .stellar-nav__services::before {
        display: none;
    }

    .stellar-submenu {
        pointer-events: auto;
    }
}

/* =========================================================
   Cabinet Stellar v1.2.4
   - floating fixed navigation only
   - no external white/black header band
   - full-width Elementor service/cabinet pages
   - simplified navigation requested by the cabinet
   ========================================================= */

:root {
    --stellar-header-height: 92px;
}

html,
body {
    max-width: 100%;
    overflow-x: clip;
}

/* The shell is transparent and fixed; only the rounded navbar is visible. */
body:not(.single-stellar_layout) .stellar-header,
.stellar-header {
    position: fixed !important;
    top: 12px !important;
    right: 0 !important;
    left: 0 !important;
    width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    pointer-events: none;
    z-index: 9990 !important;
}

body.admin-bar:not(.single-stellar_layout) .stellar-header,
body.admin-bar .stellar-header {
    top: 44px !important;
}

.stellar-header::before,
.stellar-header::after {
    display: none !important;
}

.stellar-header__inner {
    pointer-events: auto;
    width: min(calc(100% - 28px), 1320px) !important;
    min-height: 72px !important;
    margin: 0 auto !important;
    padding: 9px 16px !important;
    overflow: visible !important;
    background: rgba(5, 5, 7, .96) !important;
    border: 1px solid rgba(255,255,255,.09) !important;
    border-radius: 24px !important;
    box-shadow: 0 20px 54px rgba(0,0,0,.28) !important;
    backdrop-filter: blur(18px);
}

.stellar-header.is-scrolled .stellar-header__inner {
    transform: translateY(0);
    background: rgba(5,5,7,.98) !important;
    box-shadow: 0 24px 66px rgba(0,0,0,.36) !important;
}

.stellar-header__inner::before,
.stellar-header__inner::after {
    clip-path: inset(0 round 24px) !important;
}

.stellar-brand {
    min-width: 160px;
}

.stellar-nav {
    gap: clamp(22px, 3vw, 48px) !important;
}

.stellar-nav > a,
.stellar-nav__services > a {
    font-size: .95rem;
}

.stellar-header-actions {
    margin-left: auto;
}

/* The header overlays the first section instead of creating an empty band. */
body:not(.single-stellar_layout) .stellar-main,
.stellar-main {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

.stellar-page,
.stellar-page--elementor,
.stellar-home-page {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible;
}

.stellar-page--elementor > .elementor,
.stellar-page--elementor > .elementor > .elementor-element,
.stellar-page--elementor > .elementor > .elementor-element.e-con,
.stellar-page--elementor .elementor-section-wrap {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
}

.stellar-page--elementor > .elementor > .elementor-element.e-con,
.stellar-page--elementor > .elementor > .elementor-element.e-con > .e-con-inner {
    --container-max-width: none !important;
    max-width: none !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

/* The first Stellar hero starts directly under the floating menu. */
.stellar-page--elementor .stellar-hero:first-child,
.stellar-home-page .stellar-hero:first-child {
    margin-top: 0 !important;
}

.stellar-page--elementor .stellar-hero-grid,
.stellar-home-page .stellar-hero-grid {
    padding-top: calc(var(--stellar-header-height) + 46px) !important;
}

/* Remove legacy title/box spacing that could appear around Elementor content. */
.elementor-page .stellar-content-page,
.elementor-page .entry-header,
.elementor-page .page-header,
.elementor-page .entry-title {
    display: none !important;
}

.elementor-page .stellar-main > article,
.elementor-page .stellar-main > article > .elementor {
    margin-block: 0 !important;
}

/* Services and cabinet pages keep full-bleed backgrounds while inner copy remains aligned. */
.page-parent .stellar-page--elementor,
.page-template-default .stellar-page--elementor,
body.page-id-0 .stellar-page--elementor {
    background: var(--stellar-paper);
}

.stellar-page--elementor .stellar-hero,
.stellar-page--elementor .stellar-section,
.stellar-page--elementor .stellar-final-cta {
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
}

/* Isolated Elementor layout preview remains editable and non-fixed. */
.stellar-layout-editor-preview .stellar-header,
.single-stellar_layout .stellar-header {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    left: auto !important;
    width: 100% !important;
    padding: 10px 0 !important;
    pointer-events: auto;
}

.stellar-layout-editor-preview .stellar-header__inner,
.single-stellar_layout .stellar-header__inner {
    width: min(calc(100% - 24px), 1320px) !important;
}

@media (max-width: 980px) {
    :root {
        --stellar-header-height: 82px;
    }

    body:not(.single-stellar_layout) .stellar-header,
    .stellar-header {
        top: 8px !important;
    }

    body.admin-bar:not(.single-stellar_layout) .stellar-header,
    body.admin-bar .stellar-header {
        top: 54px !important;
    }

    .stellar-header__inner {
        width: calc(100% - 18px) !important;
        min-height: 64px !important;
        padding: 8px 10px !important;
        border-radius: 19px !important;
    }

    .stellar-header__inner::before,
    .stellar-header__inner::after {
        clip-path: inset(0 round 19px) !important;
    }

    .stellar-page--elementor .stellar-hero-grid,
    .stellar-home-page .stellar-hero-grid {
        padding-top: calc(var(--stellar-header-height) + 34px) !important;
    }

    .stellar-nav.is-open {
        top: calc(var(--stellar-header-height) + 6px) !important;
        right: 9px !important;
        left: 9px !important;
        background: rgba(5,5,7,.985) !important;
        border-radius: 18px !important;
        box-shadow: 0 26px 70px rgba(0,0,0,.42) !important;
    }
}

@media (max-width: 720px) {
    :root {
        --stellar-header-height: 74px;
    }

    .stellar-header__inner {
        min-height: 58px !important;
    }

    .stellar-brand {
        min-width: 0;
    }

    .stellar-brand small {
        display: none;
    }

    .stellar-page--elementor .stellar-hero-grid,
    .stellar-home-page .stellar-hero-grid {
        padding-top: calc(var(--stellar-header-height) + 24px) !important;
    }
}

/* =========================================================
   Cabinet Stellar refinement pack v1.2.5
   - hero clearance under fixed navbar
   - restored Actualités and Contact links
   - refined service-page statement block
   - equal-height service directory cards
   - more compact testimonial carousel cards
   ========================================================= */

/* Keep the first line of each hero clearly below the floating navigation. */
.stellar-home-page .stellar-hero:first-child .stellar-hero-grid,
.stellar-page--elementor .stellar-hero:first-child .stellar-hero-grid {
    padding-top: calc(var(--stellar-header-height) + 88px) !important;
    padding-bottom: clamp(58px, 7vw, 92px) !important;
}

.stellar-home-page .stellar-hero:first-child,
.stellar-page--elementor .stellar-hero:first-child {
    min-height: clamp(650px, 86svh, 820px) !important;
}

/* The restored navigation remains balanced with five entries. */
.stellar-nav {
    gap: clamp(15px, 1.8vw, 30px) !important;
}

.stellar-nav > a,
.stellar-nav__services > a {
    font-size: clamp(.82rem, .9vw, .94rem) !important;
    white-space: nowrap;
}

/* Replace the oversized black quotation block on service pages with a lighter editorial callout. */
.stellar-service-problem {
    max-width: 1080px;
}

.stellar-service-problem blockquote {
    position: relative;
    margin: 34px 0 0 !important;
    padding: 28px 32px 28px 38px !important;
    overflow: hidden;
    background: linear-gradient(135deg, #f4edff 0%, #ffffff 70%) !important;
    color: #2a163c !important;
    border: 1px solid rgba(135,60,255,.18);
    border-left: 5px solid var(--stellar-purple) !important;
    border-radius: 20px !important;
    box-shadow: 0 16px 38px rgba(46,23,76,.07);
    font-size: clamp(1.15rem, 2vw, 1.75rem) !important;
    font-weight: 650 !important;
    line-height: 1.32 !important;
    letter-spacing: -.025em;
}

.stellar-service-problem blockquote::after {
    content: "✦";
    position: absolute;
    right: 22px;
    bottom: 12px;
    color: rgba(135,60,255,.14);
    font-size: 4.5rem;
    line-height: 1;
}

/* All cards on the service directory now share the same footprint. */
.stellar-service-grid--all {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    grid-auto-rows: 1fr;
    align-items: stretch;
    gap: 18px !important;
}

.stellar-services--all .stellar-service-card:nth-child(n) {
    grid-column: auto !important;
}

.stellar-services--all .stellar-service-card {
    width: 100%;
    height: 100%;
    min-height: 286px !important;
    padding: 24px 24px 22px !important;
}

.stellar-services--all .stellar-service-card h3 {
    min-height: 2.25em;
    display: flex;
    align-items: flex-end;
}

.stellar-services--all .stellar-service-card p {
    min-height: 4.8em;
}

/* More compact testimonials while preserving the continuous loop. */
.stellar-reviews .stellar-review {
    min-width: clamp(280px, 29vw, 390px) !important;
    width: clamp(280px, 29vw, 390px) !important;
    min-height: 190px !important;
    padding: 22px 22px 20px !important;
    border-radius: 20px !important;
}

.stellar-reviews .stellar-review blockquote {
    max-width: 100% !important;
    font-size: clamp(1.08rem, 1.55vw, 1.55rem) !important;
    line-height: 1.18 !important;
    letter-spacing: -.025em;
}

.stellar-reviews .stellar-review figcaption {
    margin-top: 18px !important;
    font-size: .72rem !important;
}

@media (max-width: 1160px) {
    .stellar-nav {
        gap: 14px !important;
    }

    .stellar-header__inner {
        padding-right: 12px !important;
        padding-left: 12px !important;
    }

    .stellar-service-grid--all {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 980px) {
    .stellar-home-page .stellar-hero:first-child .stellar-hero-grid,
    .stellar-page--elementor .stellar-hero:first-child .stellar-hero-grid {
        padding-top: calc(var(--stellar-header-height) + 62px) !important;
    }

    .stellar-home-page .stellar-hero:first-child,
    .stellar-page--elementor .stellar-hero:first-child {
        min-height: auto !important;
    }
}

@media (max-width: 720px) {
    .stellar-home-page .stellar-hero:first-child .stellar-hero-grid,
    .stellar-page--elementor .stellar-hero:first-child .stellar-hero-grid {
        padding-top: calc(var(--stellar-header-height) + 44px) !important;
        padding-bottom: 44px !important;
    }

    .stellar-service-problem blockquote {
        margin-top: 24px !important;
        padding: 22px 22px 22px 26px !important;
        border-radius: 16px !important;
        font-size: 1.08rem !important;
    }

    .stellar-service-problem blockquote::after {
        right: 12px;
        bottom: 8px;
        font-size: 3rem;
    }

    .stellar-service-grid--all {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }

    .stellar-services--all .stellar-service-card {
        min-height: 0 !important;
    }

    .stellar-services--all .stellar-service-card h3,
    .stellar-services--all .stellar-service-card p {
        min-height: 0;
    }

    .stellar-reviews .stellar-review {
        min-width: min(78vw, 320px) !important;
        width: min(78vw, 320px) !important;
        min-height: 174px !important;
        padding: 20px 18px 18px !important;
    }

    .stellar-reviews .stellar-review blockquote {
        font-size: 1.08rem !important;
    }
}

/* =========================================================
   Cabinet Stellar refinement pack v1.2.6
   - compact centered estimator / booking dialogs
   - harmonised mobile image sizing
   - calmer, consistent type scale across the site
   ========================================================= */

/* Compact modal window instead of a near full-screen panel. */
.stellar-modal {
    padding: 20px !important;
    place-items: center !important;
}

.stellar-modal__dialog,
.stellar-modal__dialog--wide {
    width: min(calc(100vw - 40px), 760px) !important;
    height: auto !important;
    max-height: min(84dvh, 780px) !important;
    padding: 28px 30px 30px !important;
    border-radius: 24px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
}

.stellar-modal__close {
    top: 14px !important;
    right: 14px !important;
    width: 40px !important;
    height: 40px !important;
}

.stellar-modal__header,
.stellar-modal__header--rich {
    gap: 8px !important;
    margin-bottom: 18px !important;
    padding-right: 46px !important;
}

.stellar-modal__eyebrow {
    gap: 8px !important;
    font-size: .76rem !important;
}

.stellar-modal__eyebrow span {
    width: 9px !important;
    height: 9px !important;
    box-shadow: 0 0 0 4px rgba(216,180,122,.15) !important;
}

.stellar-modal__header h2,
.stellar-modal__header--rich h2 {
    max-width: 14ch !important;
    font-size: clamp(2rem, 4vw, 2.85rem) !important;
    line-height: .98 !important;
    letter-spacing: -.055em !important;
}

.stellar-modal__header > p,
.stellar-modal__header--rich > p:last-of-type {
    max-width: 62ch !important;
    font-size: .94rem !important;
    line-height: 1.5 !important;
}

.stellar-modal__progress-block {
    gap: 6px !important;
    margin-top: 4px !important;
}

.stellar-modal__progress-track {
    height: 7px !important;
}

[data-estimator-progress],
[data-booking-progress] {
    margin: 0 !important;
    font-size: .78rem !important;
}

.stellar-form--cards,
.stellar-form-step,
.stellar-booking-step {
    gap: 15px !important;
}

.stellar-form-step__copy {
    gap: 5px !important;
}

.stellar-form-step__eyebrow {
    font-size: .73rem !important;
}

.stellar-form-step__copy h3,
.stellar-form legend {
    max-width: 18ch !important;
    font-size: clamp(1.55rem, 3vw, 2.15rem) !important;
    line-height: 1 !important;
    letter-spacing: -.045em !important;
}

.stellar-form-step__copy p,
.stellar-form-step__hint,
.stellar-form__hint {
    font-size: .9rem !important;
    line-height: 1.48 !important;
}

.stellar-choice-grid--cards,
.stellar-slot-grid {
    gap: 10px !important;
}

.stellar-choice--card span,
.stellar-choice--slot span,
.stellar-choice span {
    min-height: 76px !important;
    padding: 15px 16px !important;
    border-radius: 16px !important;
}

.stellar-choice--card strong,
.stellar-choice--slot strong,
.stellar-choice strong {
    font-size: 1rem !important;
    line-height: 1.22 !important;
}

.stellar-choice--card small,
.stellar-choice--slot small,
.stellar-choice small {
    margin-top: 5px !important;
    font-size: .8rem !important;
    line-height: 1.35 !important;
}

.stellar-form-grid {
    gap: 11px !important;
}

.stellar-form label {
    gap: 6px !important;
    font-size: .86rem !important;
}

.stellar-form input,
.stellar-form select {
    min-height: 48px !important;
    padding: 9px 13px !important;
    border-radius: 13px !important;
}

.stellar-form textarea {
    min-height: 104px !important;
    padding: 12px 14px !important;
    border-radius: 13px !important;
}

.stellar-checkbox {
    gap: 9px !important;
    font-size: .78rem !important;
    line-height: 1.4 !important;
}

.stellar-checkbox input {
    width: 18px !important;
    min-width: 18px !important;
    min-height: 18px !important;
}

.stellar-form-actions {
    gap: 10px !important;
}

.stellar-modal .stellar-btn {
    min-height: 44px !important;
    padding: 10px 17px !important;
    font-size: .9rem !important;
}

.stellar-input-card,
.stellar-booking-summary__card {
    padding: 15px 16px !important;
    border-radius: 16px !important;
}

.stellar-result {
    padding: 8px 0 2px !important;
}

.stellar-result h3 {
    font-size: clamp(2rem, 4vw, 2.9rem) !important;
}

/* Harmonised display type across all page families. */
.stellar-section-head h2,
.stellar-features-intro h2,
.stellar-process .stellar-section-head h2,
.stellar-about-copy .stellar-section-head h2,
.stellar-faq-title .stellar-section-head h2,
.stellar-simulator-group > header h2 {
    font-size: clamp(2.1rem, 4.15vw, 4rem) !important;
    line-height: .99 !important;
    letter-spacing: -.045em !important;
}

.stellar-service-block > header h2 {
    font-size: clamp(1.9rem, 3.7vw, 3.45rem) !important;
}

.stellar-hero h1 {
    font-size: clamp(2.65rem, 5.25vw, 5rem) !important;
}

.stellar-hero--page h1 {
    font-size: clamp(2.35rem, 4.7vw, 4.35rem) !important;
}

.stellar-article-hero h1,
.stellar-archive-hero h1,
.stellar-error-page h1 {
    font-size: clamp(2.5rem, 5.4vw, 5.2rem) !important;
}

.stellar-hero-text,
.stellar-section-head > p:last-child,
.stellar-reading-content {
    font-size: clamp(.98rem, 1.15vw, 1.08rem) !important;
}

.stellar-dark-card h3,
.stellar-service-card h3,
.stellar-simulator-card h3,
.stellar-light-card h3,
.stellar-post-card h2 {
    font-size: clamp(1.2rem, 1.8vw, 1.65rem) !important;
}

/* Images keep a consistent, restrained footprint on smaller screens. */
@media (max-width: 980px) {
    .stellar-hero-media,
    .stellar-about-media,
    .stellar-article-hero figure {
        width: min(100%, 620px) !important;
        margin-inline: auto !important;
    }

    .stellar-hero-media img,
    .stellar-about-media img,
    .stellar-article-hero figure img {
        width: 100% !important;
        max-height: 390px !important;
        aspect-ratio: 4 / 3 !important;
        object-fit: cover !important;
    }
}

@media (max-width: 720px) {
    .stellar-modal {
        padding: 10px !important;
    }

    .stellar-modal__dialog,
    .stellar-modal__dialog--wide {
        width: min(calc(100vw - 20px), 560px) !important;
        height: auto !important;
        max-height: calc(100dvh - 20px) !important;
        padding: 21px 17px 22px !important;
        border-radius: 20px !important;
    }

    .stellar-modal__header,
    .stellar-modal__header--rich {
        padding-right: 38px !important;
        margin-bottom: 14px !important;
    }

    .stellar-modal__header h2,
    .stellar-modal__header--rich h2 {
        max-width: 12ch !important;
        font-size: clamp(1.75rem, 8vw, 2.25rem) !important;
    }

    .stellar-form-step__copy h3,
    .stellar-form legend {
        font-size: clamp(1.4rem, 7vw, 1.85rem) !important;
    }

    .stellar-choice-grid--cards,
    .stellar-slot-grid,
    .stellar-form-grid {
        grid-template-columns: 1fr !important;
    }

    .stellar-choice--card span,
    .stellar-choice--slot span,
    .stellar-choice span {
        min-height: 64px !important;
        padding: 13px 14px !important;
    }

    .stellar-section-head h2,
    .stellar-features-intro h2,
    .stellar-process .stellar-section-head h2,
    .stellar-about-copy .stellar-section-head h2,
    .stellar-faq-title .stellar-section-head h2,
    .stellar-simulator-group > header h2,
    .stellar-service-block > header h2 {
        font-size: clamp(1.9rem, 9vw, 2.65rem) !important;
    }

    .stellar-hero h1,
    .stellar-hero--page h1,
    .stellar-article-hero h1,
    .stellar-archive-hero h1,
    .stellar-error-page h1 {
        font-size: clamp(2.15rem, 10.5vw, 3.15rem) !important;
        line-height: .98 !important;
    }

    .stellar-hero-media,
    .stellar-about-media,
    .stellar-article-hero figure {
        width: 100% !important;
        max-width: 520px !important;
    }

    .stellar-hero-media img,
    .stellar-about-media img,
    .stellar-article-hero figure img,
    .stellar-post-card__image img {
        max-height: 280px !important;
        aspect-ratio: 4 / 3 !important;
        object-fit: cover !important;
        border-radius: 18px !important;
    }
}

@media (max-width: 480px) {
    .stellar-modal__dialog,
    .stellar-modal__dialog--wide {
        max-height: calc(100dvh - 16px) !important;
        padding: 18px 14px 20px !important;
        border-radius: 18px !important;
    }

    .stellar-modal__header h2,
    .stellar-modal__header--rich h2 {
        font-size: 1.75rem !important;
    }

    .stellar-hero-media img,
    .stellar-about-media img,
    .stellar-article-hero figure img,
    .stellar-post-card__image img {
        max-height: 230px !important;
    }
}

/* Estimate flow refinement v1.2.7 */
.stellar-estimate-reminder {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 16px 18px;
    border: 1px solid rgba(135,60,255,.18);
    border-radius: 18px;
    background: linear-gradient(180deg, #faf6ff 0%, #f1e8ff 100%);
}

.stellar-estimate-reminder span {
    color: rgba(44,0,66,.65);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.stellar-estimate-reminder strong {
    color: #2c0042;
    font-size: clamp(1.15rem, 2vw, 1.55rem);
    line-height: 1.1;
    text-align: right;
}

@media (max-width: 620px) {
    .stellar-estimate-reminder {
        align-items: flex-start;
        flex-direction: column;
    }

    .stellar-estimate-reminder strong {
        text-align: left;
    }
}

/* =========================================================
   Cabinet Stellar v1.3.2 — performance rendering pass
   Replaces large animated CSS gradient fields with lightweight
   canvas particles. Keeps the same black / violet visual language.
   ========================================================= */

/* Hero / page particle surface: one solid paint layer + one canvas. */
.stellar-stars {
    position: absolute !important;
    inset: 0 !important;
    overflow: hidden !important;
    opacity: 1 !important;
    background: #050507 !important;
    background-image: none !important;
    animation: none !important;
    transform: none !important;
    contain: paint;
}

.stellar-stars::before,
.stellar-stars::after {
    content: none !important;
    display: none !important;
    background: none !important;
    animation: none !important;
    filter: none !important;
}

.stellar-particle-canvas {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    display: block;
    pointer-events: none;
}

/* Header particles are also canvas-based. No continuously repainted
   backdrop blur or animated radial-gradient pseudo-elements. */
.stellar-header__inner {
    isolation: isolate;
    background: rgba(5, 5, 7, .985) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    contain: paint;
}

.stellar-header__inner::before,
.stellar-header__inner::after {
    content: none !important;
    display: none !important;
    background: none !important;
    animation: none !important;
    filter: none !important;
}

.stellar-header__inner > :not(.stellar-particle-canvas) {
    position: relative;
    z-index: 1;
}

/* Remove the giant blurred halo that forced Chrome to rasterise a
   very large filtered texture while the hero stayed visible. */
.stellar-hero::before,
.stellar-archive-hero::before,
.stellar-article-hero::before {
    content: none !important;
    display: none !important;
    filter: none !important;
}

/* Footer and final CTA use the same lightweight particle renderer. */
.stellar-footer,
.stellar-final-cta__box {
    isolation: isolate;
    contain: paint;
}

.stellar-footer::before,
.stellar-footer::after,
.stellar-final-cta__box::before,
.stellar-final-cta__box::after {
    content: none !important;
    display: none !important;
    background: none !important;
    animation: none !important;
    filter: none !important;
}

.stellar-footer > :not(.stellar-particle-canvas),
.stellar-final-cta__box > :not(.stellar-particle-canvas) {
    position: relative;
    z-index: 1;
}

/* Keep the modal blur local to the modal only; the permanent header
   no longer uses a backdrop filter. */
@media (prefers-reduced-motion: reduce) {
    .stellar-particle-canvas {
        display: none !important;
    }
}

/* The dropdown must remain free to paint outside the rounded navbar. */
.stellar-header__inner {
    contain: none !important;
}

.stellar-header__inner > .stellar-particle-canvas {
    border-radius: inherit;
    clip-path: inset(0 round 24px);
}

@media (max-width: 782px) {
    .stellar-header__inner > .stellar-particle-canvas {
        clip-path: inset(0 round 18px);
    }
}


/* =========================================================
   Cabinet Stellar v1.3.2 — modal rendering performance
   ========================================================= */

/* A full-viewport backdrop-filter above moving canvases forced Chrome to
   continuously re-sample the page behind the modal. Use an opaque translucent
   surface instead: visually equivalent, substantially cheaper to composite. */
.stellar-modal__backdrop {
    background: rgba(8, 7, 10, .84) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

.stellar-modal__dialog,
.stellar-modal__dialog--wide {
    contain: layout paint style;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    box-shadow: 0 22px 64px rgba(0, 0, 0, .34) !important;
    animation: stellar-dialog-in-fast 170ms cubic-bezier(.2, .75, .25, 1) both !important;
}

@keyframes stellar-dialog-in-fast {
    from { opacity: 0; transform: translate3d(0, 8px, 0) scale(.992); }
    to { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
}

/* Pause any CSS marquee that may still be visible behind the overlay. Canvas
   particles are paused by JavaScript while a modal is open. */
body.stellar-modal-open .stellar-reviews.is-marquee {
    animation-play-state: paused !important;
}

/* Choice hover/focus remains clear without large repaint-heavy shadows. */
.stellar-modal .stellar-choice span,
.stellar-modal .stellar-choice--card span,
.stellar-modal .stellar-choice--slot span {
    transition: transform 150ms ease, border-color 150ms ease, background 150ms ease !important;
}

.stellar-modal .stellar-choice span:hover,
.stellar-modal .stellar-choice input:focus-visible + span,
.stellar-modal .stellar-choice input:checked + span {
    box-shadow: none !important;
}

@media (prefers-reduced-motion: reduce) {
    .stellar-modal__dialog,
    .stellar-modal__dialog--wide {
        animation: none !important;
    }
}

/* =========================================================
   v1.4.0 — Stellar loop signature
   Replaces generic decorative rings with a single rounded L-loop.
   ========================================================= */
.stellar-orbit,
.stellar-process-shape {
    border: 0 !important;
    border-radius: 0 !important;
    background: none !important;
    width: clamp(260px, 34vw, 560px) !important;
    height: clamp(260px, 34vw, 560px) !important;
    opacity: .9;
    transform: rotate(-8deg) !important;
}
.stellar-orbit::before,
.stellar-process-shape::before {
    content: "";
    position: absolute;
    inset: 8% 10% 10% 8%;
    border-left: clamp(24px, 3vw, 54px) solid rgba(135,60,255,.22);
    border-bottom: clamp(24px, 3vw, 54px) solid rgba(135,60,255,.22);
    border-radius: 0 0 0 clamp(72px, 10vw, 170px);
}
.stellar-orbit::after,
.stellar-process-shape::after {
    content: "";
    position: absolute;
    left: 8%;
    bottom: 8%;
    width: 58%;
    height: 58%;
    border: clamp(24px, 3vw, 54px) solid rgba(135,60,255,.22);
    border-left-color: transparent;
    border-radius: 50%;
    transform: translate(-3%, 35%) rotate(28deg);
}
.stellar-process-shape { left: -80px !important; bottom: -90px !important; }
.stellar-process-shape::before,
.stellar-process-shape::after { border-color: rgba(255,255,255,.045); }
.stellar-process-shape::after { border-left-color: transparent; }

/* Shorter, conversion-first home rhythm. */
.stellar-home-page .stellar-features,
.stellar-home-page .stellar-services,
.stellar-home-page .stellar-estimate-section,
.stellar-home-page .stellar-process,
.stellar-home-page .stellar-reviews,
.stellar-home-page .stellar-final-cta { padding-top: clamp(72px, 8vw, 120px); padding-bottom: clamp(72px, 8vw, 120px); }
.stellar-home-page .stellar-process { min-height: auto; }

@media (max-width: 767px) {
    .stellar-orbit,
    .stellar-process-shape { width: 280px !important; height: 280px !important; opacity: .62; }
    .stellar-process-shape { left: -145px !important; bottom: -70px !important; }
}


/* v1.4.1 — Google trust / word-of-mouth section */
.stellar-google-trust{padding-block:clamp(64px,8vw,112px)}
.stellar-google-trust__panel{position:relative;display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);overflow:hidden;border:1px solid rgba(25,22,31,.12);border-radius:32px;background:#fff;box-shadow:0 24px 70px rgba(25,22,31,.08)}
.stellar-google-trust__google,.stellar-google-trust__word{padding:clamp(30px,5vw,72px)}
.stellar-google-trust__google{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;background:linear-gradient(145deg,#faf9fc,#fff)}
.stellar-google-trust__brand{display:inline-flex;align-items:center;gap:12px;margin-bottom:28px;font-size:clamp(1.25rem,2vw,1.65rem);font-weight:700;letter-spacing:-.03em;color:#202124}
.stellar-google-trust__logo{width:38px;height:38px;flex:none}
.stellar-google-trust__google h2{max-width:8ch;margin:.25em 0 .45em;font-size:clamp(2.5rem,5vw,5.5rem);line-height:.92;letter-spacing:-.065em}
.stellar-google-trust__rating{max-width:32rem;margin:0 0 24px;color:var(--stellar-muted,#716b78);font-size:clamp(1rem,1.4vw,1.18rem);line-height:1.6}
.stellar-google-trust__word{position:relative;display:flex;flex-direction:column;justify-content:center;background:#202126;color:#fff}
.stellar-google-trust__mark{position:absolute;right:5%;top:4%;font-size:clamp(7rem,16vw,15rem);font-weight:800;line-height:1;color:rgba(132,55,255,.16);transform:rotate(-8deg);pointer-events:none}
.stellar-google-trust__word h3,.stellar-google-trust__word p{position:relative;z-index:1}
.stellar-google-trust__word h3{max-width:18ch;margin:0 0 24px;font-size:clamp(2rem,4vw,4.5rem);line-height:1;letter-spacing:-.055em}
.stellar-google-trust__word p{max-width:48rem;margin:0;color:rgba(255,255,255,.72);font-size:clamp(1rem,1.35vw,1.2rem);line-height:1.7}
@media(max-width:767px){.stellar-google-trust{padding-block:52px}.stellar-google-trust__panel{grid-template-columns:1fr;border-radius:24px}.stellar-google-trust__google,.stellar-google-trust__word{padding:30px 24px}.stellar-google-trust__google h2{max-width:10ch;font-size:clamp(2.65rem,14vw,4.2rem)}.stellar-google-trust__word h3{font-size:clamp(2rem,10vw,3.1rem)}.stellar-google-trust__mark{font-size:9rem}}


/* =========================================================
   v1.4.2 — homepage rebuild + real Stellar L-loop signature
   ========================================================= */

/* One reusable brand mark: a single rounded L that loops back on itself. */
.stellar-home-page .stellar-hero-media__line,
.stellar-orbit,
.stellar-process-shape,
.stellar-home-offers__loop,
.stellar-home-why__loop {
    border: 0 !important;
    border-radius: 0 !important;
    background: currentColor !important;
    -webkit-mask: url('../images/stellar-l-loop-v143.svg') center / contain no-repeat !important;
    mask: url('../images/stellar-l-loop-v143.svg') center / contain no-repeat !important;
}

.stellar-home-page .stellar-hero-media__line {
    inset: -18% -15% -18% -12% !important;
    color: var(--stellar-purple);
    opacity: .92;
    transform: rotate(-8deg) !important;
    pointer-events: none;
}

.stellar-orbit {
    color: rgba(135,60,255,.22) !important;
}

.stellar-process-shape {
    color: rgba(255,255,255,.045) !important;
}

/* Remove every remaining concentric ring from the estimator artwork. */
.stellar-estimate-visual span { display: none !important; }
.stellar-estimate-visual::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--stellar-purple);
    -webkit-mask: url('../images/stellar-l-loop-v143.svg') center / contain no-repeat;
    mask: url('../images/stellar-l-loop-v143.svg') center / contain no-repeat;
    opacity: .94;
    transform: rotate(8deg);
}

/* Replace small generic circles/ellipses used as decoration by the brand loop. */
.stellar-dark-card::after,
.stellar-service-card::after,
.stellar-simulator-card::after,
.stellar-about-media > span {
    border: 0 !important;
    border-radius: 0 !important;
    background: var(--stellar-purple) !important;
    -webkit-mask: url('../images/stellar-l-loop-v143.svg') center / contain no-repeat !important;
    mask: url('../images/stellar-l-loop-v143.svg') center / contain no-repeat !important;
    opacity: .14 !important;
    transform: rotate(-8deg) !important;
}

/* Safety: the homepage no longer uses the testimonial carousel. */
.stellar-home-page .stellar-reviews-section,
.stellar-home-page .stellar-reviews-viewport,
.stellar-home-page .stellar-reviews { display: none !important; }

/* Tighter Numbr-inspired rhythm: short sections, clear hierarchy, compact cards. */
.stellar-home-page .stellar-section {
    padding-top: clamp(52px, 5.5vw, 84px);
    padding-bottom: clamp(52px, 5.5vw, 84px);
}
.stellar-home-page .stellar-section-head { margin-bottom: 0; }
.stellar-home-page .stellar-section-head--center { max-width: 780px; margin-inline: auto; text-align: center; }
.stellar-home-page .stellar-section-head h2 { font-size: clamp(2rem, 3.6vw, 3.9rem); line-height: .98; }
.stellar-home-page .stellar-section-head > p:last-child { max-width: 680px; margin-top: 18px; }

/* 1. Compact benefits strip. */
.stellar-home-benefits { background: #fff; }
.stellar-home-benefits__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(20px, 3vw, 42px);
    margin-top: clamp(36px, 4vw, 58px);
}
.stellar-home-benefit { text-align: center; }
.stellar-home-benefit__icon {
    width: 42px;
    height: 42px;
    display: inline-grid;
    place-items: center;
    margin-bottom: 18px;
    border-radius: 14px;
    background: rgba(135,60,255,.10);
    color: var(--stellar-purple-deep);
    font-size: .75rem;
    font-weight: 800;
}
.stellar-home-benefit h3 { margin: 0 0 10px; font-size: clamp(1.08rem, 1.45vw, 1.35rem); line-height: 1.14; }
.stellar-home-benefit p { margin: 0; color: var(--stellar-muted); font-size: .94rem; line-height: 1.55; }

/* 2. Complete offer panel, inspired by the compact grouped offer block pattern. */
.stellar-home-offers { background: var(--stellar-paper); }
.stellar-home-offers__panel {
    position: relative;
    overflow: hidden;
    padding: clamp(34px, 5vw, 68px);
    border-radius: 32px;
    background: linear-gradient(135deg, #5f1fe5 0%, #873cff 56%, #6d22f3 100%);
    color: #fff;
}
.stellar-home-offers__panel .stellar-eyebrow,
.stellar-home-offers__panel .stellar-section-head > p:last-child { color: rgba(255,255,255,.76); }
.stellar-home-offers__panel .stellar-section-head { position: relative; z-index: 2; }
.stellar-home-offers__grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: clamp(32px, 4vw, 52px);
}
.stellar-home-offer {
    min-height: 285px;
    display: flex;
    flex-direction: column;
    padding: clamp(24px, 3vw, 34px);
    border-radius: 22px;
    background: #fff;
    color: var(--stellar-text);
    border-top: 5px solid var(--stellar-purple-deep);
}
.stellar-home-offer:nth-child(2) { border-top-color: #f1b84b; }
.stellar-home-offer:nth-child(3) { border-top-color: #ff6e9f; }
.stellar-home-offer__label { color: var(--stellar-purple-deep); font-size: .73rem; font-weight: 800; letter-spacing: .08em; }
.stellar-home-offer h3 { margin: 24px 0 12px; font-size: clamp(1.35rem, 2vw, 1.9rem); line-height: 1.08; }
.stellar-home-offer p { margin: 0 0 24px; color: var(--stellar-muted); line-height: 1.55; }
.stellar-home-offer a { margin-top: auto; color: var(--stellar-purple-deep); font-weight: 800; text-decoration: none; }
.stellar-home-offers__panel .stellar-section-action { position: relative; z-index: 2; margin-top: 28px; }
.stellar-home-offers__panel .stellar-btn--light { background: #fff; color: var(--stellar-purple-deep); border-color: #fff; }
.stellar-home-offers__loop {
    position: absolute;
    right: -90px;
    bottom: -120px;
    width: 420px;
    height: 420px;
    color: rgba(255,255,255,.09);
    transform: rotate(12deg);
    pointer-events: none;
}

/* 3. Estimator block: compact, no empty half-screen and no circles. */
.stellar-home-page .stellar-estimate-section { padding-block: clamp(48px, 5vw, 76px); }
.stellar-home-page .stellar-estimate-box {
    min-height: 350px;
    grid-template-columns: minmax(0, 1fr) minmax(210px, 28%);
    padding: clamp(34px, 5vw, 66px);
    border-radius: 30px;
}
.stellar-home-page .stellar-estimate-visual {
    right: -38px;
    width: clamp(260px, 28vw, 390px);
    height: clamp(260px, 28vw, 390px);
}

/* 4. Google + word of mouth: static proof block, never a carousel. */
.stellar-home-page .stellar-google-trust { padding-block: clamp(52px, 5.5vw, 82px); }
.stellar-home-page .stellar-google-trust__panel { border-radius: 28px; box-shadow: 0 18px 52px rgba(25,22,31,.07); }
.stellar-home-page .stellar-google-trust__google,
.stellar-home-page .stellar-google-trust__word { padding: clamp(30px, 4vw, 58px); }
.stellar-home-page .stellar-google-trust__google h2 { font-size: clamp(2.25rem, 4vw, 4.5rem); }
.stellar-home-page .stellar-google-trust__word h3 { font-size: clamp(1.8rem, 3vw, 3.25rem); }

/* 5. Why Stellar: one image, three concise reasons. */
.stellar-home-why { background: #fff; }
.stellar-home-why__grid {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: clamp(42px, 7vw, 100px);
    align-items: center;
}
.stellar-home-why__media {
    position: relative;
    min-height: 460px;
    margin: 0;
}
.stellar-home-why__media img {
    width: 100%;
    height: 100%;
    min-height: 460px;
    object-fit: cover;
    border-radius: 28px;
}
.stellar-home-why__loop {
    position: absolute;
    right: -54px;
    bottom: -58px;
    width: 240px;
    height: 240px;
    color: var(--stellar-purple);
    transform: rotate(-12deg);
    opacity: .95;
    pointer-events: none;
}
.stellar-home-why__list { display: grid; gap: 12px; margin-top: 30px; }
.stellar-home-why__list article {
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 16px;
    padding: 16px 0;
    border-top: 1px solid var(--stellar-line);
}
.stellar-home-why__list article > span {
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: var(--stellar-purple);
    color: #fff;
    font-size: .72rem;
    font-weight: 800;
}
.stellar-home-why__list h3 { margin: 0 0 5px; font-size: 1.05rem; }
.stellar-home-why__list p { margin: 0; color: var(--stellar-muted); font-size: .95rem; line-height: 1.5; }
.stellar-section-action--start { justify-content: flex-start; margin-top: 26px; }

/* 6. Compact FAQ and final conversion block. */
.stellar-home-page .stellar-faq { padding-block: clamp(54px, 5.5vw, 84px); }
.stellar-home-page .stellar-faq-grid { gap: clamp(30px, 5vw, 72px); }
.stellar-home-page .stellar-final-cta { padding-top: 48px; padding-bottom: 64px; }
.stellar-home-page .stellar-final-cta__box { min-height: 300px; }

@media (max-width: 980px) {
    .stellar-home-benefits__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .stellar-home-offers__grid { grid-template-columns: 1fr; }
    .stellar-home-offer { min-height: 0; }
    .stellar-home-why__grid { grid-template-columns: 1fr; }
    .stellar-home-why__media { min-height: 360px; max-width: 720px; }
    .stellar-home-why__media img { min-height: 360px; }
}

@media (max-width: 767px) {
    .stellar-home-page .stellar-section { padding-top: 44px; padding-bottom: 44px; }
    .stellar-home-benefits__grid { grid-template-columns: 1fr; gap: 26px; }
    .stellar-home-benefit { text-align: left; display: grid; grid-template-columns: 44px 1fr; column-gap: 14px; }
    .stellar-home-benefit__icon { grid-row: 1 / span 2; margin: 0; }
    .stellar-home-benefit h3 { margin-top: 2px; }
    .stellar-home-benefit p { grid-column: 2; }
    .stellar-home-offers__panel { padding: 30px 20px; border-radius: 24px; }
    .stellar-home-offers__loop { width: 250px; height: 250px; right: -110px; bottom: -80px; }
    .stellar-home-page .stellar-estimate-box { min-height: 0; grid-template-columns: 1fr; padding: 30px 24px 160px; }
    .stellar-home-page .stellar-estimate-visual { width: 210px; height: 210px; right: -55px; top: auto; bottom: -70px; transform: none; }
    .stellar-home-why__media { min-height: 300px; }
    .stellar-home-why__media img { min-height: 300px; }
    .stellar-home-why__loop { width: 170px; height: 170px; right: -28px; bottom: -42px; }
}


/* =========================================================
   v1.4.3 — corrected single Stellar L signature
   One open looped lowercase L, derived from the visual rhythm of one of the
   two interlocked L forms in the Stellar wordmark. It is intentionally open
   at the foot so it cannot read as a lowercase b or a closed circle.
   ========================================================= */

/* The hero mark is a supporting signature, never a foreground obstruction. */
.stellar-home-page .stellar-hero-media {
    isolation: isolate;
}
.stellar-home-page .stellar-hero-media img {
    position: relative;
    z-index: 1;
}
.stellar-home-page .stellar-hero-media__line {
    z-index: 2 !important;
    inset: auto -8% -13% auto !important;
    width: 58% !important;
    height: 86% !important;
    background: var(--stellar-purple) !important;
    -webkit-mask: url('../images/stellar-l-loop-v143.svg') center / contain no-repeat !important;
    mask: url('../images/stellar-l-loop-v143.svg') center / contain no-repeat !important;
    opacity: .48 !important;
    transform: rotate(-10deg) !important;
    filter: none !important;
    pointer-events: none !important;
}

/* Never show the old concentric-circle artwork on the homepage estimator. */
.stellar-home-page .stellar-estimate-visual {
    overflow: hidden !important;
    isolation: isolate;
}
.stellar-home-page .stellar-estimate-visual > span {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    border: 0 !important;
}
.stellar-home-page .stellar-estimate-visual::before {
    content: "" !important;
    position: absolute !important;
    inset: 5% 0 0 10% !important;
    background: var(--stellar-purple) !important;
    -webkit-mask: url('../images/stellar-l-loop-v143.svg') center / contain no-repeat !important;
    mask: url('../images/stellar-l-loop-v143.svg') center / contain no-repeat !important;
    opacity: .23 !important;
    transform: rotate(8deg) !important;
}

/* Reuse the exact same single-L silhouette for every decorative brand mark. */
.stellar-orbit,
.stellar-process-shape,
.stellar-home-offers__loop,
.stellar-home-why__loop,
.stellar-dark-card::after,
.stellar-service-card::after,
.stellar-simulator-card::after,
.stellar-about-media > span,
.stellar-google-trust__mark {
    border: 0 !important;
    border-radius: 0 !important;
    background: currentColor !important;
    -webkit-mask: url('../images/stellar-l-loop-v143.svg') center / contain no-repeat !important;
    mask: url('../images/stellar-l-loop-v143.svg') center / contain no-repeat !important;
}

/* Remove legacy pseudo-elements that previously rebuilt circular/b-like shapes. */
.stellar-orbit::before,
.stellar-orbit::after,
.stellar-process-shape::before,
.stellar-process-shape::after {
    content: none !important;
    display: none !important;
}

/* Controlled scale: decorative L marks stay secondary to content. */
.stellar-home-offers__loop {
    width: 300px !important;
    height: 340px !important;
    right: -76px !important;
    bottom: -132px !important;
    opacity: .10 !important;
    transform: rotate(12deg) !important;
}
.stellar-home-why__loop {
    width: 180px !important;
    height: 210px !important;
    right: -34px !important;
    bottom: -48px !important;
    opacity: .72 !important;
    transform: rotate(-10deg) !important;
}
.stellar-google-trust__mark {
    width: 150px !important;
    height: 175px !important;
    right: 4% !important;
    top: 6% !important;
    color: rgba(135,60,255,.16) !important;
    font-size: 0 !important;
    line-height: 0 !important;
    transform: rotate(-8deg) !important;
}

@media (max-width: 767px) {
    .stellar-home-page .stellar-hero-media__line {
        width: 50% !important;
        height: 72% !important;
        right: -5% !important;
        bottom: -10% !important;
        opacity: .38 !important;
    }
    .stellar-home-page .stellar-estimate-visual::before {
        inset: 8% 4% 2% 12% !important;
        opacity: .18 !important;
    }
    .stellar-home-offers__loop {
        width: 210px !important;
        height: 240px !important;
        right: -78px !important;
        bottom: -95px !important;
    }
    .stellar-home-why__loop {
        width: 135px !important;
        height: 160px !important;
        right: -20px !important;
        bottom: -34px !important;
    }
}

/* =========================================================
   v1.4.4 — reference-accurate Stellar signature treatment
   The homepage keeps the brand stroke only in the estimator and Google proof.
   The stroke is an open, continuous loop inspired by the supplied reference:
   a loop enters from the left, travels through the composition and exits upward.
   ========================================================= */

/* Remove the decorative signature from the homepage hero, offers and Why Stellar. */
.stellar-home-page .stellar-hero-media__line,
.stellar-home-page .stellar-home-offers__loop,
.stellar-home-page .stellar-home-why__loop {
    display: none !important;
}

/* Estimator: one continuous line crossing the whole card, never a standalone glyph. */
.stellar-home-page .stellar-estimate-box {
    isolation: isolate;
}
.stellar-home-page .stellar-estimate-box > :not(.stellar-estimate-visual) {
    position: relative;
    z-index: 2;
}
.stellar-home-page .stellar-estimate-visual {
    position: absolute !important;
    inset: 0 !important;
    width: auto !important;
    height: auto !important;
    transform: none !important;
    z-index: 0 !important;
    opacity: 1 !important;
    pointer-events: none !important;
}
.stellar-home-page .stellar-estimate-visual::before {
    content: "" !important;
    position: absolute !important;
    inset: -18% -12% -25% 28% !important;
    background: url('../images/stellar-section-stroke-v144.svg') center / 118% auto no-repeat !important;
    -webkit-mask: none !important;
    mask: none !important;
    opacity: .16 !important;
    transform: none !important;
}

/* Google proof: the same line crosses both halves of the panel behind the content. */
.stellar-google-trust__panel {
    position: relative;
    isolation: isolate;
}
.stellar-google-trust__panel::before {
    content: "";
    position: absolute;
    inset: -12% -8% -22% 10%;
    z-index: 0;
    background: url('../images/stellar-section-stroke-v144.svg') center / 112% auto no-repeat;
    opacity: .14;
    pointer-events: none;
}
.stellar-google-trust__google,
.stellar-google-trust__word {
    position: relative;
    z-index: 1;
}
.stellar-google-trust__mark {
    display: none !important;
}

/* Google rating supplied by the client: 4.9 / 5 from 108 reviews. */
.stellar-google-trust__score {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 12px;
    margin: 4px 0 26px;
    color: #202124;
}
.stellar-google-trust__score strong {
    font-size: clamp(1.8rem, 3vw, 2.65rem);
    line-height: 1;
    letter-spacing: -.045em;
}
.stellar-google-trust__stars {
    color: #fbbc04;
    font-size: clamp(1.15rem, 2vw, 1.55rem);
    letter-spacing: .08em;
    line-height: 1;
}
.stellar-google-trust__reviews {
    color: #4285f4;
    font-size: 1.05rem;
    font-weight: 700;
    white-space: nowrap;
}

@media (max-width: 767px) {
    .stellar-home-page .stellar-estimate-box {
        padding: 30px 24px !important;
    }
    .stellar-home-page .stellar-estimate-visual::before {
        inset: 2% -36% -18% 10% !important;
        background-size: 150% auto !important;
        opacity: .12 !important;
    }
    .stellar-google-trust__panel::before {
        inset: 20% -48% -8% -24%;
        background-size: 165% auto;
        opacity: .10;
    }
}

/* =========================================================
   v1.4.5 — mobile-first header & footer hardening
   - contained mobile navigation sheet
   - submenu never escapes the viewport
   - correct hamburger-to-close animation
   - compact, readable footer on narrow screens
   ========================================================= */

/* The visual hamburger spans follow the screen-reader label in the markup. */
.stellar-menu-button[aria-expanded="true"] > span:not(.screen-reader-text):nth-last-child(3) {
    transform: translateY(7px) rotate(45deg) !important;
}
.stellar-menu-button[aria-expanded="true"] > span:not(.screen-reader-text):nth-last-child(2) {
    opacity: 0 !important;
}
.stellar-menu-button[aria-expanded="true"] > span:not(.screen-reader-text):nth-last-child(1) {
    transform: translateY(-7px) rotate(-45deg) !important;
}

@media (max-width: 1180px) {
    body.stellar-menu-open {
        overflow: hidden !important;
        overscroll-behavior: none;
    }

    .stellar-header__inner {
        grid-template-columns: minmax(0, 1fr) auto !important;
        gap: 12px !important;
    }

    .stellar-menu-button {
        position: relative;
        z-index: 10002;
        display: grid !important;
        place-content: center;
        flex: 0 0 auto;
        border-radius: 12px;
    }

    .stellar-nav.is-open {
        box-sizing: border-box !important;
        position: fixed !important;
        top: calc(var(--stellar-header-height) + 10px) !important;
        right: 12px !important;
        bottom: 12px !important;
        left: 12px !important;
        width: auto !important;
        max-width: none !important;
        height: auto !important;
        max-height: none !important;
        margin: 0 !important;
        padding: 20px 18px 112px !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        gap: 4px !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        background: #050507 !important;
        border: 1px solid rgba(255,255,255,.10) !important;
        border-radius: 22px !important;
        box-shadow: 0 28px 80px rgba(0,0,0,.48) !important;
    }

    .stellar-nav.is-open > a,
    .stellar-nav.is-open .stellar-nav__services > a {
        min-width: 0 !important;
        width: 100% !important;
        padding: 14px 4px !important;
        color: #fff !important;
        font-size: 1.06rem !important;
        line-height: 1.25 !important;
        white-space: normal !important;
        overflow-wrap: anywhere;
    }

    .stellar-nav.is-open > a::after,
    .stellar-nav.is-open .stellar-nav__services > a::after {
        display: none !important;
    }

    .stellar-nav.is-open .stellar-nav__services {
        position: relative !important;
        z-index: auto !important;
        width: 100% !important;
        min-width: 0 !important;
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) 44px !important;
        align-items: center !important;
        gap: 0 !important;
        overflow: visible !important;
    }

    .stellar-nav.is-open .stellar-nav__services::before {
        display: none !important;
    }

    .stellar-nav.is-open .stellar-submenu-button {
        width: 44px !important;
        height: 44px !important;
        display: grid !important;
        place-items: center;
        border-radius: 12px;
        background: rgba(255,255,255,.06) !important;
    }

    .stellar-nav.is-open .stellar-submenu-button span {
        display: block;
        transition: transform 180ms ease;
    }

    .stellar-nav.is-open .stellar-submenu-button[aria-expanded="true"] span {
        transform: rotate(180deg);
    }

    .stellar-nav.is-open .stellar-submenu {
        box-sizing: border-box !important;
        position: static !important;
        top: auto !important;
        right: auto !important;
        bottom: auto !important;
        left: auto !important;
        grid-column: 1 / -1 !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin: 4px 0 10px !important;
        padding: 8px !important;
        display: none !important;
        gap: 2px !important;
        overflow: hidden !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        transform: none !important;
        background: rgba(255,255,255,.045) !important;
        border: 1px solid rgba(255,255,255,.08) !important;
        border-radius: 16px !important;
        box-shadow: none !important;
        backdrop-filter: none !important;
    }

    .stellar-nav.is-open .stellar-nav__services.is-open .stellar-submenu {
        display: grid !important;
        transform: none !important;
    }

    .stellar-nav.is-open .stellar-submenu a {
        box-sizing: border-box;
        width: 100%;
        min-width: 0;
        padding: 12px 13px !important;
        border-radius: 11px;
        font-size: .95rem !important;
        line-height: 1.3;
        white-space: normal !important;
        overflow-wrap: anywhere;
    }

    .stellar-nav.is-open + .stellar-header-actions {
        box-sizing: border-box !important;
        position: fixed !important;
        z-index: 10001 !important;
        right: 24px !important;
        bottom: 24px !important;
        left: 24px !important;
        width: auto !important;
        min-width: 0 !important;
        display: grid !important;
        grid-template-columns: 44px 44px minmax(0, 1fr) !important;
        gap: 8px !important;
        padding: 9px !important;
        background: rgba(14,12,18,.98) !important;
        border: 1px solid rgba(255,255,255,.10) !important;
        border-radius: 17px !important;
        box-shadow: 0 18px 48px rgba(0,0,0,.42) !important;
    }

    .stellar-nav.is-open + .stellar-header-actions .stellar-icon-button {
        width: 44px !important;
        height: 44px !important;
    }

    .stellar-nav.is-open + .stellar-header-actions .stellar-header-estimate {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 44px !important;
        padding: 10px 14px !important;
        justify-content: center;
        font-size: .88rem !important;
        white-space: normal !important;
        text-align: center;
    }
}

@media (max-width: 782px) {
    body.admin-bar .stellar-nav.is-open {
        top: calc(var(--stellar-header-height) + 48px) !important;
    }
}

@media (max-width: 767px) {
    :root {
        --stellar-header-height: 72px;
    }

    body:not(.single-stellar_layout) .stellar-header,
    .stellar-header {
        top: 7px !important;
    }

    body.admin-bar:not(.single-stellar_layout) .stellar-header,
    body.admin-bar .stellar-header {
        top: 53px !important;
    }

    .stellar-header__inner {
        box-sizing: border-box;
        width: calc(100% - 16px) !important;
        min-height: 58px !important;
        padding: 8px 10px 8px 14px !important;
        gap: 10px !important;
        border-radius: 18px !important;
    }

    .stellar-brand {
        width: min(100%, 170px);
        min-width: 0 !important;
    }

    .stellar-brand img {
        display: block;
        width: auto !important;
        max-width: min(150px, 100%) !important;
        max-height: 34px !important;
    }

    .stellar-menu-button {
        width: 44px !important;
        height: 44px !important;
    }

    .stellar-nav.is-open {
        top: calc(var(--stellar-header-height) + 8px) !important;
        right: 8px !important;
        bottom: 8px !important;
        left: 8px !important;
        padding: 16px 14px 104px !important;
        border-radius: 18px !important;
    }

    body.admin-bar .stellar-nav.is-open {
        top: calc(var(--stellar-header-height) + 54px) !important;
    }

    .stellar-nav.is-open + .stellar-header-actions {
        right: 18px !important;
        bottom: 18px !important;
        left: 18px !important;
    }

    /* Mobile footer: one stable outer column, compact internal link grids. */
    .stellar-footer {
        box-sizing: border-box;
        width: 100% !important;
        max-width: 100% !important;
        margin-top: 0 !important;
        padding: 42px 20px 24px !important;
        overflow: hidden !important;
    }

    .stellar-footer-grid {
        box-sizing: border-box;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 auto 30px !important;
        padding: 0 !important;
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 30px !important;
    }

    .stellar-footer-brand {
        grid-column: auto !important;
        width: 100% !important;
        min-width: 0 !important;
        gap: 9px !important;
    }

    .stellar-footer-brand img {
        width: auto !important;
        max-width: 160px !important;
        max-height: 44px !important;
    }

    .stellar-footer-brand small {
        max-width: 100% !important;
        font-size: .72rem !important;
        line-height: 1.4 !important;
        letter-spacing: .06em !important;
        white-space: normal !important;
    }

    .stellar-footer-brand p {
        max-width: 32rem !important;
        margin: 8px 0 0 !important;
        font-size: .94rem !important;
        line-height: 1.55 !important;
    }

    .stellar-footer-column {
        box-sizing: border-box;
        width: 100% !important;
        min-width: 0 !important;
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        align-content: start !important;
        gap: 10px 18px !important;
        padding-top: 2px;
    }

    .stellar-footer-column h3 {
        grid-column: 1 / -1 !important;
        margin: 0 0 6px !important;
        font-size: .76rem !important;
        letter-spacing: .14em !important;
    }

    .stellar-footer-column a {
        box-sizing: border-box;
        width: 100% !important;
        min-width: 0 !important;
        padding: 2px 0 !important;
        font-size: .9rem !important;
        line-height: 1.4 !important;
        white-space: normal !important;
        overflow-wrap: anywhere;
    }

    .stellar-footer-bottom {
        box-sizing: border-box;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding-top: 20px !important;
        font-size: .76rem !important;
        line-height: 1.5 !important;
    }
}

@media (max-width: 390px) {
    .stellar-nav.is-open + .stellar-header-actions {
        grid-template-columns: 42px 42px minmax(0, 1fr) !important;
        right: 14px !important;
        bottom: 14px !important;
        left: 14px !important;
        gap: 6px !important;
        padding: 7px !important;
    }

    .stellar-nav.is-open + .stellar-header-actions .stellar-icon-button {
        width: 42px !important;
        height: 42px !important;
    }

    .stellar-nav.is-open + .stellar-header-actions .stellar-header-estimate {
        min-height: 42px !important;
        padding-inline: 10px !important;
        font-size: .82rem !important;
    }

    .stellar-footer {
        padding-inline: 16px !important;
    }

    .stellar-footer-column {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 9px !important;
    }
}

/* ================================================================
   Cabinet Stellar v1.4.6 — Pennylane / Outils
   ================================================================ */
.stellar-pennylane-showcase {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding-block: clamp(64px, 7vw, 104px) !important;
    color: #fff;
    background:
        radial-gradient(circle at 78% 15%, rgba(110, 231, 183, .16), transparent 34%),
        linear-gradient(125deg, #082f2a 0%, #0d5149 54%, #0f766e 100%);
}

.stellar-pennylane-showcase__shape {
    position: absolute;
    z-index: -1;
    top: -22%;
    left: 26%;
    color: rgba(255,255,255,.035);
    font-size: clamp(420px, 52vw, 900px);
    font-weight: 900;
    line-height: .78;
    pointer-events: none;
    user-select: none;
}

.stellar-pennylane-showcase__grid {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(360px, .98fr);
    gap: clamp(46px, 7vw, 110px);
    align-items: center;
}

.stellar-pennylane-showcase__copy {
    min-width: 0;
    max-width: 720px;
}

.stellar-pennylane-brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 18px;
    padding: 9px 14px;
    color: #fff;
    background: rgba(3, 31, 27, .44);
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 999px;
}

.stellar-pennylane-brand strong {
    font-size: 1.02rem;
    letter-spacing: -.02em;
}

.stellar-pennylane-brand__mark {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    width: 31px;
    height: 25px;
}

.stellar-pennylane-brand__mark i {
    display: block;
    width: 7px;
    height: 22px;
    border-radius: 999px;
    transform: rotate(-17deg);
}

.stellar-pennylane-brand__mark i:nth-child(1) { background: #8b5cf6; }
.stellar-pennylane-brand__mark i:nth-child(2) { background: #fb7185; }
.stellar-pennylane-brand__mark i:nth-child(3) { background: #f59e0b; }

.stellar-pennylane-showcase .stellar-section-head {
    max-width: 720px;
    margin: 0 0 30px;
}

.stellar-pennylane-showcase .stellar-section-head .stellar-eyebrow {
    color: #a7f3d0;
}

.stellar-pennylane-showcase .stellar-section-head h2 {
    max-width: 13ch;
    margin-bottom: 18px;
    color: #fff;
    font-size: clamp(2.25rem, 4.6vw, 4.6rem);
    line-height: .98;
}

.stellar-pennylane-showcase .stellar-section-head > p:last-child {
    max-width: 64ch;
    color: rgba(255,255,255,.78);
    font-size: clamp(1rem, 1.25vw, 1.14rem);
}

.stellar-pennylane-showcase__list {
    display: grid;
    gap: 18px;
}

.stellar-pennylane-showcase__list article {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 13px;
    align-items: start;
}

.stellar-pennylane-showcase__list article > span {
    width: 24px;
    height: 24px;
    display: grid;
    place-items: center;
    margin-top: 2px;
    color: #053a33;
    background: #a7f3d0;
    border-radius: 50%;
    font-size: .76rem;
    font-weight: 900;
}

.stellar-pennylane-showcase__list h3 {
    margin: 0 0 4px;
    color: #fff;
    font-size: 1.03rem;
}

.stellar-pennylane-showcase__list p {
    margin: 0;
    color: rgba(255,255,255,.72);
    line-height: 1.55;
}

.stellar-pennylane-showcase__note {
    max-width: 68ch;
    margin: 24px 0 0;
    color: rgba(255,255,255,.58);
    font-size: .82rem;
    line-height: 1.55;
}

.stellar-pennylane-showcase .stellar-section-action {
    margin-top: 30px;
}

.stellar-btn--pennylane {
    color: #fff !important;
    background: linear-gradient(135deg, #7c3aed, #f43f5e) !important;
    border-color: transparent !important;
    box-shadow: 0 16px 34px rgba(76, 29, 149, .28);
}

.stellar-btn--pennylane:hover,
.stellar-btn--pennylane:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 20px 42px rgba(76, 29, 149, .34);
}

.stellar-pennylane-showcase__media {
    position: relative;
    margin: 0;
    min-width: 0;
}

.stellar-pennylane-showcase__media::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 7% -4% -5% 8%;
    background: rgba(0, 25, 22, .36);
    border-radius: 44px;
    filter: blur(18px);
}

.stellar-pennylane-showcase__media img {
    display: block;
    width: 100%;
    max-height: 610px;
    object-fit: contain;
    filter: drop-shadow(0 28px 42px rgba(0,0,0,.2));
}

/* The local Pennylane dashboard illustration must remain fully visible in heroes. */
.stellar-hero-media img[src*="pennylane-dashboard.svg"] {
    aspect-ratio: 1.24;
    object-fit: contain !important;
    padding: clamp(8px, 1.4vw, 20px);
    background: #063c35;
}

.stellar-hero-media:has(img[src*="pennylane-dashboard.svg"])::before {
    border-color: rgba(110, 231, 183, .32);
}

/* Keep the new bottom-of-home module close to the final conversion block. */
.stellar-pennylane-showcase + .stellar-final-cta {
    margin-top: 0 !important;
}

@media (max-width: 1024px) {
    .stellar-pennylane-showcase__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 42px;
    }

    .stellar-pennylane-showcase__copy {
        max-width: 820px;
    }

    .stellar-pennylane-showcase__media {
        width: min(100%, 760px);
        margin-inline: auto;
    }

    .stellar-pennylane-showcase .stellar-section-head h2 {
        max-width: 16ch;
    }
}

@media (max-width: 767px) {
    .stellar-pennylane-showcase {
        padding: 54px 20px 58px !important;
    }

    .stellar-pennylane-showcase__shape {
        top: 10%;
        left: 8%;
        font-size: 510px;
    }

    .stellar-pennylane-showcase__grid {
        gap: 34px;
    }

    .stellar-pennylane-showcase .stellar-section-head {
        margin-bottom: 24px;
    }

    .stellar-pennylane-showcase .stellar-section-head h2 {
        max-width: none;
        font-size: clamp(2rem, 10vw, 3.1rem);
    }

    .stellar-pennylane-showcase__list {
        gap: 16px;
    }

    .stellar-pennylane-showcase__list article {
        grid-template-columns: 26px minmax(0, 1fr);
        gap: 11px;
    }

    .stellar-pennylane-showcase__media img {
        max-height: 420px;
    }

    .stellar-hero-media img[src*="pennylane-dashboard.svg"] {
        max-height: 360px !important;
        padding: 4px;
    }
}

@media (max-width: 420px) {
    .stellar-pennylane-showcase {
        padding-inline: 16px !important;
    }

    .stellar-pennylane-brand {
        margin-bottom: 14px;
    }

    .stellar-pennylane-showcase__media img {
        max-height: 330px;
    }
}

/* ================================================================
   Cabinet Stellar v1.4.7 — Outils Stellar / identité légale
   ================================================================ */

/* Header label stays readable after the Outils Stellar rename. */
@media (min-width: 1025px) and (max-width: 1440px) {
    .stellar-nav { gap: clamp(10px, 1.15vw, 18px) !important; }
    .stellar-nav > a,
    .stellar-nav__services > a { font-size: .8rem !important; }
}

/* Footer identity and address. */
.stellar-footer-baseline {
    display: grid;
    gap: 2px;
    margin-top: 3px;
}

.stellar-footer-baseline span {
    display: block;
    width: max-content;
    max-width: 100%;
    white-space: nowrap;
}

.stellar-footer-address {
    max-width: 28rem;
    margin: 11px 0 0;
    color: rgba(255,255,255,.66);
    font-size: .82rem;
    font-style: normal;
    line-height: 1.55;
}

.stellar-footer-contact {
    display: grid;
    gap: 4px;
    margin-top: 7px;
}

.stellar-footer-contact a {
    width: max-content;
    max-width: 100%;
    color: rgba(255,255,255,.72);
    font-size: .82rem;
    text-decoration: none;
    overflow-wrap: anywhere;
}

.stellar-footer-contact a:hover,
.stellar-footer-contact a:focus-visible { color: #fff; }

/* Outils Stellar — collaboration overview. */
.stellar-tools-collaboration {
    padding-block: clamp(62px, 7vw, 104px) !important;
    background: #fff;
}

.stellar-tools-collaboration .stellar-section-head {
    max-width: 920px;
    margin-inline: auto;
}

.stellar-tools-collaboration .stellar-section-head h2 {
    max-width: 18ch;
    margin-inline: auto;
    font-size: clamp(2.15rem, 4.4vw, 4.25rem);
}

.stellar-tools-collaboration .stellar-section-head > p:last-child {
    max-width: 72ch;
    margin-inline: auto;
}

.stellar-tools-collaboration__visual {
    width: min(100%, 1040px);
    margin: clamp(32px, 4vw, 52px) auto 0;
}

.stellar-tools-collaboration__visual img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 640px;
    object-fit: contain;
    border-radius: clamp(22px, 3vw, 42px);
}

.stellar-tools-collaboration__cards {
    position: relative;
    z-index: 2;
    width: min(100%, 940px);
    margin: clamp(-34px, -3vw, -18px) auto 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.stellar-tools-collaboration__cards article {
    min-width: 0;
    padding: clamp(24px, 3vw, 36px);
    background: rgba(255,255,255,.97);
    border: 1px solid rgba(31,24,41,.1);
    border-radius: 24px;
    box-shadow: 0 18px 52px rgba(28,20,38,.09);
}

.stellar-tools-collaboration__cards article > span {
    display: inline-block;
    margin-bottom: 14px;
    color: var(--stellar-purple);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .14em;
}

.stellar-tools-collaboration__cards h3 {
    margin: 0 0 9px;
    font-size: clamp(1.2rem, 1.8vw, 1.65rem);
}

.stellar-tools-collaboration__cards p {
    margin: 0;
    color: var(--stellar-muted);
    line-height: 1.62;
}

/* Alternating Outils Stellar feature bands. */
.stellar-tools-feature {
    padding-block: clamp(64px, 7vw, 108px) !important;
    overflow: hidden;
}

.stellar-tools-feature__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, .92fr);
    gap: clamp(46px, 7vw, 108px);
    align-items: center;
}

.stellar-tools-feature--image-left .stellar-tools-feature__media { order: -1; }

.stellar-tools-feature__copy { min-width: 0; }

.stellar-tools-feature .stellar-section-head {
    max-width: 720px;
    margin: 0 0 26px;
}

.stellar-tools-feature .stellar-section-head h2 {
    max-width: 14ch;
    font-size: clamp(2.2rem, 4.5vw, 4.45rem);
    line-height: .98;
}

.stellar-tools-feature .stellar-section-head > p:last-child {
    max-width: 64ch;
    line-height: 1.65;
}

.stellar-tools-feature__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 22px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.stellar-tools-feature__list li {
    min-width: 0;
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr);
    gap: 11px;
    align-items: start;
}

.stellar-tools-feature__list li > span {
    width: 23px;
    height: 23px;
    display: grid;
    place-items: center;
    margin-top: 2px;
    border-radius: 50%;
    font-size: .72rem;
    font-weight: 900;
}

.stellar-tools-feature__list h3 {
    margin: 0 0 4px;
    font-size: 1rem;
    line-height: 1.35;
}

.stellar-tools-feature__list p {
    margin: 0;
    font-size: .9rem;
    line-height: 1.55;
}

.stellar-tools-feature__note {
    max-width: 68ch;
    margin: 24px 0 0;
    font-size: .82rem;
    line-height: 1.55;
}

.stellar-tools-feature__media {
    position: relative;
    min-width: 0;
    margin: 0;
}

.stellar-tools-feature__media::before {
    content: "";
    position: absolute;
    z-index: 0;
    inset: 8% -5% -4% 6%;
    border-radius: 42px;
    opacity: .55;
}

.stellar-tools-feature__media img {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    max-height: 610px;
    object-fit: contain;
}

.stellar-tools-feature--light { background: #fff; color: var(--stellar-text); }
.stellar-tools-feature--light .stellar-tools-feature__media::before { background: #f2edfb; }
.stellar-tools-feature--light .stellar-tools-feature__list li > span { color: #fff; background: var(--stellar-purple); }
.stellar-tools-feature--light .stellar-tools-feature__list p,
.stellar-tools-feature--light .stellar-section-head > p:last-child,
.stellar-tools-feature--light .stellar-tools-feature__note { color: var(--stellar-muted); }

.stellar-tools-feature--dark {
    color: #fff;
    background: linear-gradient(135deg, #111016 0%, #21182d 100%);
}
.stellar-tools-feature--dark .stellar-eyebrow { color: #c8a8ff; }
.stellar-tools-feature--dark .stellar-section-head h2,
.stellar-tools-feature--dark .stellar-tools-feature__list h3 { color: #fff; }
.stellar-tools-feature--dark .stellar-section-head > p:last-child,
.stellar-tools-feature--dark .stellar-tools-feature__list p { color: rgba(255,255,255,.72); }
.stellar-tools-feature--dark .stellar-tools-feature__note { color: rgba(255,255,255,.55); }
.stellar-tools-feature--dark .stellar-tools-feature__list li > span { color: #1c1027; background: #d8c0ff; }
.stellar-tools-feature--dark .stellar-tools-feature__media::before { background: rgba(124,58,237,.28); }

.stellar-tools-feature--purple {
    color: #fff;
    background: linear-gradient(125deg, #6927db 0%, #8b3dff 58%, #b55cff 100%);
}
.stellar-tools-feature--purple .stellar-eyebrow { color: rgba(255,255,255,.74); }
.stellar-tools-feature--purple .stellar-section-head h2,
.stellar-tools-feature--purple .stellar-tools-feature__list h3 { color: #fff; }
.stellar-tools-feature--purple .stellar-section-head > p:last-child,
.stellar-tools-feature--purple .stellar-tools-feature__list p { color: rgba(255,255,255,.82); }
.stellar-tools-feature--purple .stellar-tools-feature__note { color: rgba(255,255,255,.64); }
.stellar-tools-feature--purple .stellar-tools-feature__list li > span { color: #6d28d9; background: #fff; }
.stellar-tools-feature--purple .stellar-tools-feature__media::before { background: rgba(34,7,80,.2); }

.stellar-tools-feature--green {
    color: #fff;
    background: linear-gradient(125deg, #073b35 0%, #0d665d 55%, #0f766e 100%);
}
.stellar-tools-feature--green .stellar-eyebrow { color: #a7f3d0; }
.stellar-tools-feature--green .stellar-section-head h2,
.stellar-tools-feature--green .stellar-tools-feature__list h3 { color: #fff; }
.stellar-tools-feature--green .stellar-section-head > p:last-child,
.stellar-tools-feature--green .stellar-tools-feature__list p { color: rgba(255,255,255,.78); }
.stellar-tools-feature--green .stellar-tools-feature__note { color: rgba(255,255,255,.6); }
.stellar-tools-feature--green .stellar-tools-feature__list li > span { color: #06483f; background: #a7f3d0; }
.stellar-tools-feature--green .stellar-tools-feature__media::before { background: rgba(5,35,31,.35); }

/* Legal pages. */
.stellar-legal-content {
    padding-block: clamp(60px, 7vw, 104px) !important;
    background: #f7f6f9;
}

.stellar-legal-content .stellar-section-head {
    max-width: 880px;
    margin-bottom: clamp(30px, 4vw, 52px);
}

.stellar-legal-content .stellar-section-head h2 { max-width: 18ch; }

.stellar-legal-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.stellar-legal-grid article {
    min-width: 0;
    padding: clamp(24px, 3vw, 34px);
    background: #fff;
    border: 1px solid var(--stellar-line);
    border-radius: 22px;
}

.stellar-legal-grid article > span {
    display: inline-grid;
    place-items: center;
    min-width: 34px;
    height: 34px;
    margin-bottom: 16px;
    padding-inline: 9px;
    color: var(--stellar-purple-deep);
    background: var(--stellar-purple-soft);
    border-radius: 10px;
    font-size: .72rem;
    font-weight: 800;
}

.stellar-legal-grid h3 {
    margin: 0 0 10px;
    font-size: 1.08rem;
}

.stellar-legal-grid p {
    margin: 0;
    color: var(--stellar-muted);
    line-height: 1.68;
    overflow-wrap: anywhere;
}

.stellar-legal-note {
    margin-top: 22px;
    padding: 20px 22px;
    color: #513d67;
    background: #eee6fb;
    border-left: 4px solid var(--stellar-purple);
    border-radius: 14px;
    font-size: .9rem;
    line-height: 1.6;
}

@media (max-width: 1024px) {
    .stellar-tools-feature__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 40px;
    }
    .stellar-tools-feature--image-left .stellar-tools-feature__media { order: initial; }
    .stellar-tools-feature__media { width: min(100%, 760px); margin-inline: auto; }
    .stellar-tools-feature .stellar-section-head h2 { max-width: 17ch; }
}

@media (max-width: 767px) {
    .stellar-tools-collaboration,
    .stellar-tools-feature,
    .stellar-legal-content { padding: 54px 20px 58px !important; }

    .stellar-tools-collaboration .stellar-section-head h2,
    .stellar-tools-feature .stellar-section-head h2 { max-width: none; font-size: clamp(2rem, 10vw, 3.1rem); }

    .stellar-tools-collaboration__visual { margin-top: 28px; }
    .stellar-tools-collaboration__cards {
        margin-top: 16px;
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
    }
    .stellar-tools-collaboration__cards article { padding: 22px; border-radius: 18px; }

    .stellar-tools-feature__grid { gap: 30px; }
    .stellar-tools-feature__list { grid-template-columns: minmax(0, 1fr); gap: 15px; }
    .stellar-tools-feature__media img { max-height: 390px; }
    .stellar-tools-feature__media::before { inset: 10% 0 -2% 5%; border-radius: 28px; }

    .stellar-legal-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .stellar-legal-grid article { padding: 22px; border-radius: 18px; }

    .stellar-footer-baseline span { white-space: nowrap !important; }
    .stellar-footer-address,
    .stellar-footer-contact a { font-size: .8rem !important; }
}

@media (max-width: 360px) {
    .stellar-footer-baseline span { font-size: .68rem; letter-spacing: .035em; }
}

/* =========================================================
   Cabinet Stellar v1.4.11 — mobile menu scroll stability
   - the open menu is portaled outside Elementor/header wrappers
   - fixed panels stay attached to the viewport after scrolling
   - no transformed ancestor can reposition the mobile actions bar
   ========================================================= */
@media (max-width: 1180px) {
    html.stellar-menu-open,
    body.stellar-menu-open {
        overflow: hidden !important;
        overscroll-behavior: none !important;
    }

    .stellar-header__inner,
    .stellar-header.is-scrolled .stellar-header__inner {
        transform: none !important;
        filter: none !important;
        perspective: none !important;
        contain: none !important;
        will-change: auto !important;
    }

    .stellar-mobile-menu-portal {
        position: static !important;
        z-index: auto !important;
    }

    .stellar-mobile-menu-portal .stellar-nav.is-open {
        position: fixed !important;
        z-index: 10020 !important;
        transform: none !important;
    }

    .stellar-mobile-menu-portal .stellar-nav.is-open + .stellar-header-actions {
        position: fixed !important;
        z-index: 10021 !important;
        transform: none !important;
    }
}


/* =========================================================
   Cabinet Stellar v1.4.13 — stable mobile menu viewport shell
   The complete menu now lives inside one fixed body-level portal. Its content
   is positioned relative to that shell instead of to Safari's scrolling page.
   ========================================================= */
.stellar-footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px 28px;
    flex-wrap: wrap;
}

.stellar-footer-bottom a {
    color: rgba(255,255,255,.58);
    text-decoration: none;
    transition: color 180ms ease;
}

.stellar-footer-bottom a:hover,
.stellar-footer-bottom a:focus-visible {
    color: #fff;
}

@media (max-width: 1180px) {
    html.stellar-menu-open,
    body.stellar-menu-open {
        width: 100% !important;
        height: 100% !important;
        overflow: hidden !important;
        overscroll-behavior: none !important;
    }

    .stellar-mobile-menu-portal {
        box-sizing: border-box !important;
        position: fixed !important;
        inset: 0 !important;
        z-index: 9985 !important;
        width: 100vw !important;
        height: 100vh !important;
        height: 100svh !important;
        height: 100dvh !important;
        margin: 0 !important;
        overflow: hidden !important;
        pointer-events: none !important;
        touch-action: none;
        background: rgba(5,5,7,.16);
    }

    .stellar-mobile-menu-portal > .stellar-nav.is-open {
        box-sizing: border-box !important;
        position: absolute !important;
        top: calc(env(safe-area-inset-top, 0px) + 88px) !important;
        right: 12px !important;
        bottom: calc(env(safe-area-inset-bottom, 0px) + 88px) !important;
        left: 12px !important;
        z-index: 1 !important;
        width: auto !important;
        height: auto !important;
        max-height: none !important;
        margin: 0 !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        pointer-events: auto !important;
        touch-action: pan-y;
        transform: none !important;
    }

    .stellar-mobile-menu-portal > .stellar-header-actions,
    .stellar-mobile-menu-portal > .stellar-nav.is-open + .stellar-header-actions {
        box-sizing: border-box !important;
        position: absolute !important;
        top: auto !important;
        right: 18px !important;
        bottom: calc(env(safe-area-inset-bottom, 0px) + 12px) !important;
        left: 18px !important;
        z-index: 2 !important;
        width: auto !important;
        margin: 0 !important;
        display: grid !important;
        grid-template-columns: 44px 44px minmax(0, 1fr) !important;
        gap: 8px !important;
        padding: 9px !important;
        pointer-events: auto !important;
        touch-action: manipulation;
        transform: none !important;
    }
}

@media (max-width: 767px) {
    .stellar-mobile-menu-portal > .stellar-nav.is-open {
        top: calc(env(safe-area-inset-top, 0px) + 74px) !important;
        right: 8px !important;
        bottom: calc(env(safe-area-inset-bottom, 0px) + 78px) !important;
        left: 8px !important;
        padding: 16px 14px 24px !important;
    }

    .stellar-mobile-menu-portal > .stellar-header-actions,
    .stellar-mobile-menu-portal > .stellar-nav.is-open + .stellar-header-actions {
        right: 12px !important;
        bottom: calc(env(safe-area-inset-bottom, 0px) + 8px) !important;
        left: 12px !important;
    }

    .stellar-footer-bottom {
        align-items: flex-start !important;
        flex-direction: column;
        gap: 7px !important;
    }

    .stellar-footer-bottom a {
        font-size: .72rem;
    }
}

@media (max-width: 390px) {
    .stellar-mobile-menu-portal > .stellar-header-actions,
    .stellar-mobile-menu-portal > .stellar-nav.is-open + .stellar-header-actions {
        right: 8px !important;
        left: 8px !important;
        grid-template-columns: 42px 42px minmax(0, 1fr) !important;
        gap: 6px !important;
        padding: 7px !important;
    }
}

/* =========================================================
   Cabinet Stellar v1.4.14 — mobile navigation rebuilt
   A body-level full-viewport drawer replaces the former portaled header nodes.
   It is independent from scroll position and Elementor transformed wrappers.
   ========================================================= */
.stellar-mobile-menu-portal { display: none !important; }

@media (max-width: 1180px) {
    html.stellar-mobile-drawer-open,
    body.stellar-mobile-drawer-open {
        overflow: hidden !important;
        overscroll-behavior: none !important;
    }

    .stellar-mobile-drawer {
        position: fixed !important;
        inset: 0 !important;
        z-index: 2147483000 !important;
        width: 100vw !important;
        height: 100vh !important;
        height: 100dvh !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
        background: rgba(3, 3, 5, .82);
        opacity: 0;
        visibility: hidden;
        transition: opacity 150ms ease, visibility 150ms ease;
    }

    .stellar-mobile-drawer.is-visible {
        opacity: 1;
        visibility: visible;
    }

    .stellar-mobile-drawer__surface {
        box-sizing: border-box !important;
        position: absolute !important;
        inset: 0 !important;
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        height: 100% !important;
        min-height: 0 !important;
        overflow: hidden !important;
        padding: max(12px, env(safe-area-inset-top)) 14px max(12px, env(safe-area-inset-bottom)) !important;
        background: #050507 !important;
        color: #fff !important;
        transform: translateY(-8px);
        transition: transform 170ms ease;
    }

    .stellar-mobile-drawer.is-visible .stellar-mobile-drawer__surface {
        transform: translateY(0);
    }

    .stellar-mobile-drawer__top {
        flex: 0 0 auto !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 18px !important;
        min-height: 70px !important;
        padding: 8px 6px 14px !important;
        border-bottom: 1px solid rgba(255,255,255,.1) !important;
    }

    .stellar-mobile-drawer__brand {
        display: flex !important;
        align-items: center !important;
        min-width: 0 !important;
        max-width: min(64vw, 260px) !important;
        color: #fff !important;
        text-decoration: none !important;
    }

    .stellar-mobile-drawer__brand img {
        display: block !important;
        width: auto !important;
        max-width: 100% !important;
        height: 42px !important;
        object-fit: contain !important;
        object-position: left center !important;
    }

    .stellar-mobile-drawer__brand small { display: none !important; }

    .stellar-mobile-drawer__close {
        position: relative !important;
        flex: 0 0 52px !important;
        width: 52px !important;
        height: 52px !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 1px solid rgba(255,255,255,.13) !important;
        border-radius: 16px !important;
        background: #121216 !important;
        color: #fff !important;
        cursor: pointer !important;
    }

    .stellar-mobile-drawer__close span {
        position: absolute !important;
        top: 50% !important;
        left: 50% !important;
        width: 24px !important;
        height: 2px !important;
        border-radius: 99px !important;
        background: currentColor !important;
    }
    .stellar-mobile-drawer__close span:first-child { transform: translate(-50%, -50%) rotate(45deg) !important; }
    .stellar-mobile-drawer__close span:last-child { transform: translate(-50%, -50%) rotate(-45deg) !important; }

    .stellar-mobile-drawer__scroll {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
        overscroll-behavior: contain !important;
        touch-action: pan-y !important;
        padding: 18px 2px 24px !important;
    }

    .stellar-mobile-drawer__nav {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 8px !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .stellar-mobile-drawer__nav > a,
    .stellar-mobile-drawer__services > a {
        box-sizing: border-box !important;
        display: flex !important;
        align-items: center !important;
        width: 100% !important;
        min-height: 58px !important;
        padding: 15px 18px !important;
        border: 1px solid rgba(255,255,255,.1) !important;
        border-radius: 16px !important;
        background: #0d0d11 !important;
        color: #fff !important;
        font-size: clamp(1rem, 4.8vw, 1.22rem) !important;
        font-weight: 650 !important;
        line-height: 1.2 !important;
        text-decoration: none !important;
        white-space: normal !important;
    }

    .stellar-mobile-drawer__services {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) 58px !important;
        gap: 8px !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .stellar-mobile-drawer__submenu-toggle {
        display: grid !important;
        place-items: center !important;
        width: 58px !important;
        height: 58px !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 1px solid rgba(255,255,255,.1) !important;
        border-radius: 16px !important;
        background: #15151a !important;
        color: #fff !important;
        font-size: 1.45rem !important;
        line-height: 1 !important;
        cursor: pointer !important;
    }

    .stellar-mobile-drawer__submenu {
        grid-column: 1 / -1 !important;
        display: none !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 6px !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 8px !important;
        border: 1px solid rgba(135,60,255,.32) !important;
        border-radius: 18px !important;
        background: #0d0912 !important;
        box-shadow: none !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
    }

    .stellar-mobile-drawer__services.is-open .stellar-mobile-drawer__submenu { display: grid !important; }

    .stellar-mobile-drawer__submenu a {
        display: flex !important;
        align-items: center !important;
        min-height: 48px !important;
        padding: 12px 14px !important;
        border-radius: 12px !important;
        background: rgba(255,255,255,.035) !important;
        color: #fff !important;
        font-size: .98rem !important;
        line-height: 1.35 !important;
        text-decoration: none !important;
        white-space: normal !important;
    }

    .stellar-mobile-drawer__actions {
        box-sizing: border-box !important;
        flex: 0 0 auto !important;
        display: grid !important;
        grid-template-columns: 48px 48px minmax(0, 1fr) !important;
        gap: 8px !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 10px !important;
        border: 1px solid rgba(255,255,255,.11) !important;
        border-radius: 18px !important;
        background: #0d0d11 !important;
        box-shadow: 0 -16px 38px rgba(0,0,0,.28) !important;
    }

    .stellar-mobile-drawer__actions .stellar-icon-button {
        display: grid !important;
        place-items: center !important;
        width: 48px !important;
        height: 48px !important;
        min-width: 48px !important;
        padding: 0 !important;
        border-radius: 14px !important;
    }

    .stellar-mobile-drawer__actions .stellar-header-estimate {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 48px !important;
        padding: 11px 14px !important;
        border-radius: 14px !important;
        font-size: .92rem !important;
        white-space: nowrap !important;
    }
}

@media (max-width: 390px) {
    .stellar-mobile-drawer__surface { padding-inline: 9px !important; }
    .stellar-mobile-drawer__actions {
        grid-template-columns: 44px 44px minmax(0, 1fr) !important;
        gap: 6px !important;
        padding: 7px !important;
    }
    .stellar-mobile-drawer__actions .stellar-icon-button {
        width: 44px !important;
        height: 44px !important;
        min-width: 44px !important;
    }
    .stellar-mobile-drawer__actions .stellar-header-estimate {
        min-height: 44px !important;
        padding-inline: 10px !important;
        font-size: .84rem !important;
    }
}

/* v1.4.16 — Google proof displays the rating only. */
.stellar-google-trust__reviews { display: none !important; }

/* v1.4.25 — Cabinet location */
.stellar-location-map { background: var(--stellar-paper); }
.stellar-location-map__panel {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: 0;
    overflow: hidden;
    background: #fff;
    border: 1px solid rgba(113, 63, 255, .12);
    border-radius: clamp(24px, 3vw, 40px);
    box-shadow: 0 24px 70px rgba(23, 16, 31, .08);
}
.stellar-location-map__copy {
    padding: clamp(34px, 5vw, 72px);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    background: linear-gradient(180deg, #7232f2 0%, #5d26da 100%);
    color: #fff;
}
.stellar-location-map__copy .stellar-section-head { margin-bottom: 0; }
.stellar-location-map__copy .stellar-section-head .stellar-section-head__eyebrow,
.stellar-location-map__copy .stellar-section-head .stellar-section-head__title,
.stellar-location-map__copy .stellar-section-head .stellar-section-head__intro,
.stellar-location-map__copy .stellar-section-head .stellar-section-head__note { color: #fff; }
.stellar-location-map__copy .stellar-section-head .stellar-section-head__eyebrow { opacity: .84; }
.stellar-location-map__intro {
    margin: 20px 0 0;
    max-width: 34rem;
    color: rgba(255,255,255,.88);
    font-size: 1.05rem;
    line-height: 1.75;
}
.stellar-location-map__info-card {
    margin-top: 24px;
    width: min(100%, 34rem);
    padding: 22px 24px;
    border-radius: 24px;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.16);
    backdrop-filter: blur(12px);
}
.stellar-location-map__copy address {
    margin: 0 0 18px;
    color: #fff;
    font-style: normal;
    font-size: clamp(1rem, 1.25vw, 1.18rem);
    font-weight: 700;
    line-height: 1.6;
}
.stellar-location-map__contact { display: grid; gap: 8px; }
.stellar-location-map__contact a { color: rgba(255,255,255,.92); font-weight: 600; }
.stellar-location-map__actions { margin-top: 28px; }
.stellar-location-map__copy .stellar-btn--primary {
    background: #fff;
    color: var(--stellar-purple-deep);
    box-shadow: 0 18px 38px rgba(19, 12, 34, .18);
}
.stellar-location-map__copy .stellar-btn--primary:hover { color: var(--stellar-purple-deep); }
.stellar-location-map__frame {
    min-height: 520px;
    padding: 24px;
    background: linear-gradient(180deg, #f8f6fd 0%, #f1edf8 100%);
    display: flex;
    flex-direction: column;
}
.stellar-location-map__frame-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
}
.stellar-location-map__frame-tag,
.stellar-location-map__frame-city {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 0 16px;
    border-radius: 999px;
    background: #fff;
    color: var(--stellar-text);
    font-size: .9rem;
    font-weight: 700;
    box-shadow: 0 14px 28px rgba(27, 18, 41, .08);
}
.stellar-location-map__frame-city {
    color: var(--stellar-purple-deep);
    background: rgba(113, 63, 255, .12);
    box-shadow: none;
}
.stellar-location-map__map-shell {
    position: relative;
    overflow: hidden;
    flex: 1;
    min-height: 430px;
    border-radius: 28px;
    border: 1px solid rgba(113, 63, 255, .12);
    background: #e9e5ef;
}
.stellar-location-map__frame iframe { width: 100%; height: 100%; min-height: 430px; display: block; border: 0; }
.stellar-location-map__badge {
    position: absolute;
    left: 18px;
    bottom: 18px;
    display: grid;
    gap: 4px;
    padding: 14px 16px;
    border-radius: 18px;
    background: rgba(15, 10, 26, .88);
    color: #fff;
    box-shadow: 0 18px 44px rgba(15, 10, 26, .32);
    pointer-events: none;
}
.stellar-location-map__badge strong { font-size: .98rem; }
.stellar-location-map__badge span { font-size: .84rem; color: rgba(255,255,255,.78); }
@media (max-width: 900px) {
    .stellar-location-map__panel { grid-template-columns: 1fr; }
    .stellar-location-map__copy,
    .stellar-location-map__frame { padding: 24px; }
    .stellar-location-map__frame,
    .stellar-location-map__map-shell,
    .stellar-location-map__frame iframe { min-height: 360px; }
}
@media (max-width: 640px) {
    .stellar-location-map__frame-head { flex-direction: column; align-items: flex-start; }
    .stellar-location-map__badge { left: 12px; right: 12px; bottom: 12px; }
}

/* ================================================================
   Cabinet Stellar v1.4.17 — Google rating + Compte Pro showcase
   ================================================================ */
.stellar-google-trust__score strong {
    display: inline-flex;
    align-items: baseline;
    gap: .08em;
}
.stellar-google-trust__score strong small {
    font-size: .42em;
    font-weight: 800;
    letter-spacing: -.02em;
}

.stellar-tools-feature--pink {
    position: relative;
    isolation: isolate;
    margin-inline: clamp(0px, 2vw, 28px);
    color: #fff;
    background:
        radial-gradient(circle at 12% 14%, rgba(255,255,255,.10), transparent 28%),
        linear-gradient(120deg, #b90072 0%, #e60073 48%, #f00770 100%);
    border-radius: clamp(34px, 6vw, 88px) 0 0 0;
}
.stellar-tools-feature--pink::after {
    content: "";
    position: absolute;
    z-index: -1;
    right: -10%;
    bottom: -30%;
    width: 42vw;
    aspect-ratio: 1;
    border: 80px solid rgba(255,255,255,.035);
    border-radius: 50%;
}
.stellar-tools-feature--pink .stellar-eyebrow { color: rgba(255,255,255,.76); }
.stellar-tools-feature--pink .stellar-section-head h2,
.stellar-tools-feature--pink .stellar-tools-feature__list h3 { color: #fff; }
.stellar-tools-feature--pink .stellar-section-head > p:last-child,
.stellar-tools-feature--pink .stellar-tools-feature__list p { color: rgba(255,255,255,.84); }
.stellar-tools-feature--pink .stellar-tools-feature__note { color: rgba(255,255,255,.66); }
.stellar-tools-feature--pink .stellar-tools-feature__list li > span { color: #b90072; background: #fff; }
.stellar-tools-feature--pink .stellar-tools-feature__media::before { display: none; }
.stellar-tools-feature--pink .stellar-tools-feature__media img {
    max-height: 650px;
    filter: drop-shadow(0 30px 40px rgba(73, 0, 44, .24));
}
.stellar-tools-feature--pink .stellar-tools-feature__grid {
    grid-template-columns: minmax(360px, 1.03fr) minmax(0, .97fr);
}
.stellar-tools-feature--pink .stellar-section-head h2 { max-width: 12ch; }

@media (max-width: 1024px) {
    .stellar-tools-feature--pink { margin-inline: 0; border-radius: 42px 0 0 0; }
    .stellar-tools-feature--pink .stellar-tools-feature__grid { grid-template-columns: 1fr; }
    .stellar-tools-feature--pink .stellar-tools-feature__copy { order: -1; }
    .stellar-tools-feature--pink .stellar-tools-feature__media { width: min(100%, 720px); margin-inline: auto; }
}
@media (max-width: 560px) {
    .stellar-tools-feature--pink { border-radius: 28px 0 0 0; }
    .stellar-tools-feature--pink .stellar-tools-feature__media img { max-height: 400px; }
}


/* ================================================================
   Cabinet Stellar v1.4.19 — compact Pennylane account showcase
   ================================================================ */
.stellar-tools-feature--green.stellar-tools-feature--compact {
    position: relative;
    isolation: isolate;
    margin-inline: clamp(0px, 2vw, 24px);
    padding-block: clamp(44px, 5vw, 72px) !important;
    color: #fff;
    background:
        radial-gradient(circle at 14% 10%, rgba(255,255,255,.10), transparent 30%),
        linear-gradient(125deg, #075f52 0%, #087f6d 52%, #0a9a82 100%);
    border-radius: clamp(28px, 4vw, 58px) 0 0 0;
    overflow: hidden;
}
.stellar-tools-feature--green.stellar-tools-feature--compact::after {
    content: "";
    position: absolute;
    z-index: -1;
    right: -8%;
    bottom: -50%;
    width: min(38vw, 560px);
    aspect-ratio: 1;
    border: 64px solid rgba(255,255,255,.035);
    border-radius: 50%;
}
.stellar-tools-feature--compact .stellar-tools-feature__grid {
    grid-template-columns: minmax(300px, .92fr) minmax(0, 1.08fr);
    gap: clamp(34px, 5vw, 72px);
}
.stellar-tools-feature--compact .stellar-section-head {
    margin-bottom: 20px;
}
.stellar-tools-feature--compact .stellar-section-head h2 {
    max-width: 15ch;
    font-size: clamp(2rem, 3.15vw, 3.25rem);
    line-height: 1.02;
}
.stellar-tools-feature--compact .stellar-section-head > p:last-child {
    font-size: .96rem;
    line-height: 1.55;
}
.stellar-tools-feature--compact .stellar-tools-feature__list {
    gap: 13px 18px;
}
.stellar-tools-feature--compact .stellar-tools-feature__list h3 {
    font-size: .95rem;
}
.stellar-tools-feature--compact .stellar-tools-feature__list p {
    font-size: .84rem;
    line-height: 1.46;
}
.stellar-tools-feature--compact .stellar-tools-feature__note {
    margin-top: 18px;
    font-size: .76rem;
}
.stellar-tools-feature--compact .stellar-tools-feature__media img {
    max-height: 470px;
    filter: drop-shadow(0 22px 30px rgba(2, 45, 38, .22));
}
.stellar-tools-feature--compact .stellar-tools-feature__media::before {
    display: none;
}

@media (max-width: 1024px) {
    .stellar-tools-feature--green.stellar-tools-feature--compact {
        margin-inline: 0;
        border-radius: 36px 0 0 0;
    }
    .stellar-tools-feature--compact .stellar-tools-feature__grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }
    .stellar-tools-feature--compact .stellar-tools-feature__copy { order: -1; }
    .stellar-tools-feature--compact .stellar-tools-feature__media {
        width: min(100%, 620px);
        margin-inline: auto;
    }
}

@media (max-width: 560px) {
    .stellar-tools-feature--green.stellar-tools-feature--compact {
        padding-block: 38px !important;
        border-radius: 26px 0 0 0;
    }
    .stellar-tools-feature--compact .stellar-section-head h2 {
        font-size: clamp(1.85rem, 8.7vw, 2.45rem);
        max-width: 16ch;
    }
    .stellar-tools-feature--compact .stellar-tools-feature__list {
        grid-template-columns: 1fr;
    }
    .stellar-tools-feature--compact .stellar-tools-feature__media img {
        max-height: 310px;
    }
}
