@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800;900&family=Baloo+2:wght@400;500;600;700;800&display=swap");

/* ============================================================
   PABASA HOME CSS — Child-friendly, Blue + Yellow, Educational
   ============================================================ */

:root {
    color-scheme: light;

    /* Core palette — PABASA brand colors */
    --pabasa-blue-deep:   #10466E;   /* deep navy blue */
    --pabasa-blue:        #2EA8E5;   /* bright sky blue */
    --pabasa-blue-mid:    #3AAEEA;
    --pabasa-blue-light:  #EAF7FD;   /* very light blue tint */
    --pabasa-blue-soft:   #C7E9F9;
    --pabasa-yellow:      #FFD639;   /* bright yellow */
    --pabasa-yellow-deep: #F5B800;   /* amber yellow */
    --pabasa-yellow-soft: #FFF8D6;   /* very light yellow */
    --pabasa-yellow-pale: #FFFBEA;

    /* Neutral palette */
    --ink:       #0F2D45;
    --ink-muted: #4A6680;
    --ink-light: #7A99B0;
    --surface:   #FFFFFF;
    --bg-base:   #FCFBF8;
    --bg-alt:    #F5F8FB;
    --line:      rgba(16, 70, 110, 0.12);
    --line-soft: rgba(16, 70, 110, 0.07);

    /* Typography */
    --font-display: 'Baloo 2', 'Nunito', cursive;
    --font-body:    'Nunito', 'Segoe UI', sans-serif;

    /* Shadows */
    --shadow-sm:  0 4px 12px rgba(16, 70, 110, 0.08);
    --shadow-md:  0 8px 28px rgba(16, 70, 110, 0.10);
    --shadow-lg:  0 16px 48px rgba(16, 70, 110, 0.13);
    --shadow-xl:  0 24px 64px rgba(16, 70, 110, 0.14);

    /* Radius */
    --r-sm:   0.5rem;
    --r-md:   0.9rem;
    --r-lg:   1.25rem;
    --r-xl:   1.75rem;
    --r-pill: 999px;
}

/* ── Reset & Base ── */
*, *::before, *::after { box-sizing: border-box; }

body {
    margin: 0;
    font-family: var(--font-body);
    color: var(--ink);
    background-color: var(--bg-base);
    overflow-x: hidden;
    font-size: 16px;
    line-height: 1.6;
    position: relative;
}

main.flex-grow-1.py-4 {
    padding-top: 0 !important;
}

/* ============================================================
   WATERMARK BACKGROUND PATTERN
   Quiet editorial texture with brand-color undertones
   ============================================================ */
body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -2;
    background-color: var(--bg-base);
    background-image:
        radial-gradient(ellipse at 12% 18%, rgba(46, 168, 229, 0.045) 0%, transparent 52%),
        radial-gradient(ellipse at 86% 72%, rgba(255, 214, 57, 0.055) 0%, transparent 48%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.78), rgba(245, 248, 251, 0.48));
    pointer-events: none;
}

/* SVG watermark overlay using inline SVG via data URI */
body::after {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
    opacity: 0.04;
    background-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260' viewBox='0 0 260 260'%3E%3Cg fill='none' stroke='%2310466E' stroke-width='1.2' stroke-linecap='round' opacity='0.55'%3E%3Cpath d='M36 52h30M36 60h22M178 186h32M178 194h24'/%3E%3Cpath d='M92 156c10-8 22-8 32 0M124 156c10-8 22-8 32 0'/%3E%3Cpath d='M202 44l8 8 8-8'/%3E%3C/g%3E%3Cg fill='%232EA8E5' opacity='0.48'%3E%3Ccircle cx='44' cy='188' r='1.8'/%3E%3Ccircle cx='132' cy='76' r='1.6'/%3E%3Ccircle cx='220' cy='128' r='1.8'/%3E%3C/g%3E%3Cg fill='%23F5B800' opacity='0.42'%3E%3Ccircle cx='82' cy='112' r='1.7'/%3E%3Ccircle cx='198' cy='222' r='1.6'/%3E%3C/g%3E%3C/svg%3E"),
        radial-gradient(circle, rgba(16, 70, 110, 0.12) 0 0.6px, transparent 0.8px);
    background-size: 320px 320px, 34px 34px;
    pointer-events: none;
}

a { text-decoration: none; color: inherit; }

/* ============================================================
   TYPOGRAPHY
   ============================================================ */
h1, h2, h3, h4 {
    font-family: var(--font-display);
    line-height: 1.2;
    color: var(--ink);
}

/* ============================================================
   HERO SECTION - IMMERSED BROWSER EXPERIENCE
   ============================================================ */
.section-container-hero {
    padding: 2rem 2rem 4.5rem;
    margin: 0 calc(-50vw + 50%);
    width: 100vw;
    background:
        radial-gradient(circle at 12% 18%, rgba(46, 168, 229, 0.12), transparent 34%),
        radial-gradient(circle at 88% 72%, rgba(255, 214, 57, 0.14), transparent 38%),
        rgba(255, 255, 255, 0.94);
    isolation: isolate;
    overflow: hidden;
    position: relative;
}

.section-container-hero::before {
    animation: learningPatternDrift 30s linear infinite;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='360' height='240' viewBox='0 0 360 240'%3E%3Cg fill='none' stroke='%232EA8E5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' opacity='.68'%3E%3Cpath d='M36 42h24v30H36zM40 47h16M40 53h16M40 59h11'/%3E%3Cpath d='M278 160l5 10 11 2-8 8 2 11-10-5-10 5 2-11-8-8 11-2z'/%3E%3Cpath d='M190 35l16 5-9 28-16-5zM190 35l8-7 8 12'/%3E%3Cpath d='M82 174c10-7 21-7 31 0v25c-10-7-21-7-31 0zM113 174c10-7 21-7 31 0v25c-10-7-21-7-31 0z'/%3E%3C/g%3E%3Cg fill='%23F5B800' opacity='.62'%3E%3Cpath d='M315 45l3 7 8 1-6 5 2 8-7-4-7 4 2-8-6-5 8-1z'/%3E%3Ccircle cx='224' cy='192' r='4'/%3E%3Ccircle cx='55' cy='125' r='3'/%3E%3C/g%3E%3Ctext x='135' y='128' fill='%2310466E' opacity='.54' font-family='Arial,sans-serif' font-size='20' font-weight='700' letter-spacing='3'%3EABC%3C/text%3E%3Ctext x='304' y='126' fill='%232EA8E5' opacity='.48' font-family='Arial,sans-serif' font-size='16' font-weight='700'%3E123%3C/text%3E%3C/svg%3E");
    background-position: 0 0;
    background-repeat: repeat;
    content: "";
    inset: -240px -360px;
    opacity: 0.3;
    pointer-events: none;
    position: absolute;
    z-index: -1;
}

@keyframes learningPatternDrift {
    from { background-position: 0 0; }
    to { background-position: 360px 240px; }
}

@media (prefers-reduced-motion: reduce) {
    .section-container-hero::before {
        animation: none;
    }
}

.hero-stage {
    position: relative;
    padding: 1.5rem 0 0.25rem;
}

.hero-stage::before,
.hero-stage::after {
    content: "";
    position: absolute;
    inset: auto;
    border-radius: 50%;
    pointer-events: none;
    filter: blur(12px);
}

.hero-stage::before {
    width: 260px;
    height: 260px;
    top: -40px;
    right: -60px;
    background: radial-gradient(circle, rgba(255, 214, 57, 0.28) 0%, transparent 70%);
}

.hero-stage::after {
    width: 220px;
    height: 220px;
    left: -70px;
    bottom: -30px;
    background: radial-gradient(circle, rgba(46, 168, 229, 0.18) 0%, transparent 72%);
}

.hero-decor {
    position: absolute;
    z-index: 0;
    font-size: clamp(1.35rem, 2.2vw, 2rem);
    opacity: 0.9;
    animation: floatDecor 6.5s ease-in-out infinite;
    pointer-events: none;
}

.hero-decor--book { top: 8%; left: -1.2rem; animation-delay: 0.2s; }
.hero-decor--pencil { top: 18%; right: -0.6rem; animation-delay: 1s; }
.hero-decor--abc { bottom: 16%; left: -0.4rem; font-size: 1rem; font-weight: 800; color: var(--pabasa-blue-deep); letter-spacing: 0.2em; animation-delay: 1.5s; }
.hero-decor--star { top: 12%; left: 18%; animation-delay: 2s; }
.hero-decor--bubble { bottom: 20%; right: 10%; animation-delay: 2.3s; }
.hero-decor--plane { top: 32%; right: 18%; animation-delay: 2.8s; }
.hero-decor--wave { bottom: 6%; right: 22%; animation-delay: 3.2s; }

.browser-window {
    position: relative;
    border-radius: 32px;
    padding: 1rem;
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.94) 0%, rgba(245, 251, 255, 0.95) 100%);
    border: 1px solid rgba(16, 70, 110, 0.15);
    box-shadow: 0 30px 90px rgba(16, 70, 110, 0.15);
    backdrop-filter: blur(16px);
    overflow: hidden;
    transform: perspective(1400px) rotateX(1deg) rotateY(-1.5deg);
}

.browser-window::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(46, 168, 229, 0.08), transparent 45%, rgba(255, 214, 57, 0.08));
    pointer-events: none;
}

.browser-chrome {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.9rem 1rem 1rem;
}

.browser-controls {
    display: flex;
    gap: 0.45rem;
}

.browser-controls span {
    width: 0.8rem;
    height: 0.8rem;
    border-radius: 50%;
    display: inline-block;
}

.browser-controls span:nth-child(1) { background: #ff5f57; }
.browser-controls span:nth-child(2) { background: #febc2e; }
.browser-controls span:nth-child(3) { background: #28c840; }

.browser-topbar {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.65rem 1rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.82);
    border: 1px solid rgba(16, 70, 110, 0.11);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.browser-brand {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    color: var(--pabasa-blue-deep);
    font-weight: 800;
    font-family: var(--font-display);
    letter-spacing: 0.02em;
}

.browser-logo {
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, var(--pabasa-blue), var(--pabasa-yellow));
    color: white;
    font-size: 0.95rem;
    box-shadow: 0 10px 20px rgba(46, 168, 229, 0.24);
}

.browser-nav {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    justify-content: center;
    color: var(--ink-muted);
    font-size: 0.95rem;
    font-weight: 700;
}

.browser-nav a {
    transition: color 0.2s ease, transform 0.2s ease;
}

.browser-nav a:hover {
    color: var(--pabasa-blue);
    transform: translateY(-1px);
}

.browser-actions {
    display: flex;
    align-items: center;
    gap: 0.7rem;
}

.bell-badge {
    position: relative;
    width: 2.25rem;
    height: 2.25rem;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #FFF7D6;
    color: #A16207;
    box-shadow: inset 0 0 0 1px rgba(241, 184, 0, 0.16);
}

.bell-badge span {
    position: absolute;
    top: -0.15rem;
    right: -0.1rem;
    display: grid;
    place-items: center;
    min-width: 1rem;
    height: 1rem;
    padding: 0 0.2rem;
    border-radius: 999px;
    font-size: 0.65rem;
    font-weight: 800;
    color: white;
    background: var(--pabasa-blue-deep);
}

.avatar-pill {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, var(--pabasa-blue), var(--pabasa-blue-deep));
    color: white;
    font-weight: 800;
    font-size: 0.85rem;
    box-shadow: 0 10px 22px rgba(16, 70, 110, 0.18);
}

.browser-body {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.95fr);
    gap: 2rem;
    align-items: center;
    padding: 1.6rem 1.8rem 2.2rem;
}

.hero-copy {
    position: relative;
    z-index: 1;
}

.hero-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.45rem 0.8rem;
    border-radius: 999px;
    margin-bottom: 1rem;
    background: rgba(46, 168, 229, 0.12);
    color: var(--pabasa-blue-deep);
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.hero-copy h1 {
    font-size: clamp(2rem, 3.25vw, 3.2rem);
    max-width: 580px;
    margin-bottom: 1rem;
    color: var(--pabasa-blue-deep);
    line-height: 1.08;
}

.hero-copy p {
    max-width: 520px;
    font-size: 1.04rem;
    font-weight: 600;
    color: var(--ink-muted);
    margin-bottom: 1.4rem;
}

.hero-cta-group {
    display: flex;
    gap: 0.85rem;
    flex-wrap: wrap;
}

.hero-dashboard {
    position: relative;
    min-height: 390px;
}

.dashboard-panel {
    position: absolute;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(16, 70, 110, 0.12);
    border-radius: 22px;
    box-shadow: var(--shadow-md);
    padding: 1rem;
}

.dashboard-panel--main {
    inset: 1rem 2rem 3.4rem 0.2rem;
    transform: rotate(-2deg);
}

.dashboard-panel--side {
    right: 0.2rem;
    top: 2.1rem;
    width: 42%;
    transform: rotate(6deg);
    animation: floatCard 5.4s ease-in-out infinite;
}

.dashboard-panel--floating {
    left: 0.6rem;
    bottom: 0.2rem;
    width: 54%;
    transform: rotate(-3deg);
    animation: floatCard 5.8s ease-in-out infinite reverse;
}

.panel-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
    color: var(--pabasa-blue-deep);
    font-weight: 800;
    margin-bottom: 0.85rem;
}

.panel-pill {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 0.25rem 0.55rem;
    font-size: 0.72rem;
    color: var(--pabasa-blue-deep);
    background: rgba(46, 168, 229, 0.11);
}

.chart-card {
    padding: 0.9rem;
    border-radius: 16px;
    background: linear-gradient(180deg, rgba(234, 247, 253, 0.9), rgba(255, 255, 255, 0.95));
    border: 1px solid rgba(16, 70, 110, 0.08);
}

.chart-bars {
    display: flex;
    align-items: flex-end;
    gap: 0.45rem;
    height: 92px;
}

.chart-bars span {
    flex: 1;
    min-height: 24px;
    border-radius: 999px 999px 4px 4px;
    background: linear-gradient(180deg, var(--pabasa-blue) 0%, var(--pabasa-blue-deep) 100%);
    animation: pulseBars 3.2s ease-in-out infinite;
}

.chart-bars span:nth-child(2) { height: 58%; animation-delay: 0.2s; }
.chart-bars span:nth-child(3) { height: 73%; animation-delay: 0.35s; }
.chart-bars span:nth-child(4) { height: 88%; animation-delay: 0.5s; }
.chart-bars span:nth-child(5) { height: 64%; animation-delay: 0.7s; }

.mini-list {
    display: grid;
    gap: 0.55rem;
    margin-top: 0.8rem;
}

.mini-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.55rem 0.7rem;
    border-radius: 12px;
    background: rgba(240, 248, 255, 0.8);
    color: var(--ink-muted);
    font-size: 0.92rem;
}

.mini-item strong {
    color: var(--pabasa-blue-deep);
}

.streak-ring {
    width: 96px;
    height: 96px;
    margin: 0 auto 0.9rem;
    border-radius: 50%;
    border: 10px solid rgba(46, 168, 229, 0.2);
    border-top-color: var(--pabasa-blue);
    display: grid;
    place-items: center;
    font-weight: 800;
    color: var(--pabasa-blue-deep);
    font-family: var(--font-display);
    font-size: 1.35rem;
    animation: spinRing 6.5s linear infinite;
}

.progress-track {
    width: 100%;
    height: 10px;
    border-radius: 999px;
    background: rgba(16, 70, 110, 0.08);
    overflow: hidden;
}

.progress-track span {
    display: block;
    width: 78%;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--pabasa-blue), var(--pabasa-yellow));
}

.notification-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.6rem 0.85rem;
    border-radius: 999px;
    background: rgba(255, 214, 57, 0.22);
    color: var(--pabasa-blue-deep);
    font-weight: 800;
    box-shadow: inset 0 0 0 1px rgba(241, 184, 0, 0.16);
}

@keyframes floatDecor {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-10px); }
}

@keyframes floatCard {
    0%, 100% { transform: translateY(0px) rotate(var(--rotation, 0deg)); }
    50% { transform: translateY(-10px) rotate(calc(var(--rotation, 0deg) + 1deg)); }
}

@keyframes pulseBars {
    0%, 100% { transform: scaleY(0.95); opacity: 0.9; }
    50% { transform: scaleY(1.04); opacity: 1; }
}

@keyframes spinRing {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* Hero artwork replaces the former dashboard preview. */
.hero-image-showcase {
    position: relative;
    isolation: isolate;
    display: grid;
    place-items: center;
    min-height: 390px;
    padding: 1rem;
}

.hero-image-glow {
    position: absolute;
    z-index: -1;
    inset: 10% 5%;
    border-radius: 42% 58% 55% 45% / 48% 43% 57% 52%;
    background: radial-gradient(circle at 35% 35%, rgba(72, 194, 244, 0.78), transparent 48%),
                radial-gradient(circle at 70% 65%, rgba(255, 210, 61, 0.5), transparent 52%),
                rgba(24, 130, 190, 0.22);
    filter: blur(25px);
    opacity: 0.82;
    animation: heroImageGlow 4.8s ease-in-out infinite;
}

.hero-main-image {
    display: block;
    width: min(100%, 520px);
    max-height: 405px;
    object-fit: contain;
    filter: drop-shadow(0 20px 24px rgba(12, 67, 105, 0.2));
    animation: heroImageFloat 5.5s ease-in-out infinite;
}

@keyframes heroImageGlow {
    0%, 100% { opacity: 0.68; transform: scale(0.94) rotate(-2deg); }
    50% { opacity: 1; transform: scale(1.06) rotate(2deg); }
}

@keyframes heroImageFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}

@media (prefers-reduced-motion: reduce) {
    .hero-image-glow,
    .hero-main-image { animation: none; }
}

@media (max-width: 992px) {
    .hero-image-showcase { min-height: 330px; }
    .hero-main-image { max-height: 350px; }
}

@media (max-width: 480px) {
    .hero-image-showcase { min-height: 260px; padding: 0.25rem; }
    .hero-main-image { max-height: 290px; }
}

@media (max-width: 992px) {
    .browser-body {
        grid-template-columns: 1fr;
        padding: 1.3rem 1.2rem 1.6rem;
    }

    .hero-dashboard {
        min-height: 330px;
    }

    .dashboard-panel--main {
        inset: 0.2rem 0.2rem 3.2rem 0.1rem;
    }

    .dashboard-panel--side {
        width: 46%;
        top: 1.4rem;
    }

    .dashboard-panel--floating {
        width: 56%;
        bottom: 0.1rem;
    }
}

@media (max-width: 768px) {
    .section-container-hero {
        padding: 1.2rem 0.8rem 3rem;
    }

    .browser-window {
        border-radius: 24px;
        padding: 0.75rem;
    }

    .browser-chrome {
        flex-direction: column;
        align-items: stretch;
        padding: 0.75rem 0.2rem 0.8rem;
    }

    .browser-topbar {
        padding: 0.6rem 0.8rem;
        border-radius: 18px;
    }

    .browser-nav {
        display: none;
    }

    .browser-body {
        padding: 1rem 0.7rem 1.2rem;
    }

    .hero-copy h1 {
        font-size: 1.85rem;
    }

    .hero-dashboard {
        min-height: 300px;
    }

    .dashboard-panel--main {
        inset: 0 0 3rem 0;
    }

    .dashboard-panel--side {
        width: 48%;
        top: 0.8rem;
        right: -0.2rem;
    }

    .dashboard-panel--floating {
        width: 58%;
        left: -0.1rem;
        bottom: -0.2rem;
    }
}

@media (max-width: 480px) {
    .browser-topbar {
        flex-wrap: wrap;
        justify-content: flex-end;
    }

    .browser-brand {
        width: 100%;
    }

    .hero-copy h1 {
        font-size: 1.6rem;
    }

    .hero-copy p {
        font-size: 0.96rem;
    }

    .hero-dashboard {
        min-height: 280px;
    }

    .dashboard-panel--main {
        inset: 0 0 3.2rem 0;
    }

    .dashboard-panel--side {
        width: 52%;
        top: 0.4rem;
    }

    .dashboard-panel--floating {
        width: 62%;
        left: -0.2rem;
        bottom: 0.1rem;
    }
}

/* ============================================================
   SECTION CONTAINERS
   ============================================================ */
.section-container {
    padding: 5rem 2rem;
    margin: 0 calc(-50vw + 50%);
    width: 100vw;
    background: transparent;
}

.section-container-hero {
    background: #FFFFFF;
    padding: 2rem 2rem;
    margin: 0 calc(-50vw + 50%);
    width: 100vw;
}

.section-container-1 { padding-top: 0; }
.section-container-2 { background: #F8FAFC; }
.section-container-3 { background: #FFFFFF; }
.section-container-4 { background: rgba(245, 248, 251, 0.82); }

/* Animated home-section atmosphere: varied, coordinated PABASA blue themes. */
.section-container {
    isolation: isolate;
    overflow: hidden;
    position: relative;
}

.section-container > * {
    position: relative;
    z-index: 1;
}

.section-container-2 {
    background:
        radial-gradient(circle at 12% 24%, rgba(46, 168, 229, 0.2), transparent 34%),
        radial-gradient(circle at 88% 76%, rgba(103, 232, 249, 0.18), transparent 38%),
        linear-gradient(145deg, #e9f7ff 0%, #f3fbff 52%, #e8f5fb 100%);
}

.section-container-3 {
    background:
        radial-gradient(circle at 82% 18%, rgba(113, 96, 216, 0.16), transparent 34%),
        radial-gradient(circle at 14% 84%, rgba(46, 168, 229, 0.18), transparent 40%),
        linear-gradient(145deg, #eef3ff 0%, #e8f7ff 54%, #f3f1ff 100%);
}

.section-container-gallery {
    background:
        radial-gradient(circle at 18% 16%, rgba(255, 214, 57, 0.2), transparent 32%),
        radial-gradient(circle at 86% 82%, rgba(46, 168, 229, 0.2), transparent 40%),
        linear-gradient(145deg, #e4f4fb 0%, #eefaff 48%, #fff9df 100%);
}

.section-container-4 {
    background:
        radial-gradient(circle at 10% 78%, rgba(84, 194, 240, 0.2), transparent 38%),
        radial-gradient(circle at 92% 20%, rgba(154, 77, 204, 0.13), transparent 35%),
        linear-gradient(145deg, #eaf8ff 0%, #edf3ff 52%, #f6edff 100%);
}

.section-container::before {
    animation: sectionLearningPattern 38s linear infinite;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='280' viewBox='0 0 420 280'%3E%3Cg fill='none' stroke='%2310466E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' opacity='.55'%3E%3Cpath d='M44 48h30v38H44zM49 55h20M49 63h20M49 71h14'/%3E%3Cpath d='M325 176l6 12 13 2-10 9 3 13-12-6-12 6 3-13-10-9 13-2z'/%3E%3Cpath d='M214 42l18 6-11 32-18-6zM214 42l9-8 9 14'/%3E%3Cpath d='M76 207c12-8 25-8 37 0v29c-12-8-25-8-37 0zM113 207c12-8 25-8 37 0v29c-12-8-25-8-37 0z'/%3E%3C/g%3E%3Cg fill='%23F5B800' opacity='.55'%3E%3Cpath d='M365 55l4 8 9 1-7 6 2 9-8-4-8 4 2-9-7-6 9-1z'/%3E%3Ccircle cx='250' cy='224' r='4'/%3E%3Ccircle cx='66' cy='142' r='3'/%3E%3C/g%3E%3Ctext x='155' y='154' fill='%232EA8E5' opacity='.48' font-family='Arial,sans-serif' font-size='20' font-weight='700' letter-spacing='3'%3EABC%3C/text%3E%3Ctext x='348' y='142' fill='%2310466E' opacity='.4' font-family='Arial,sans-serif' font-size='16' font-weight='700'%3E123%3C/text%3E%3C/svg%3E");
    background-repeat: repeat;
    content: "";
    inset: -280px -420px;
    opacity: 0.2;
    pointer-events: none;
    position: absolute;
    z-index: 0;
}

.section-container-3::before,
.section-container-4::before {
    animation-direction: reverse;
    animation-duration: 46s;
}

.section-container-gallery::before {
    animation-duration: 32s;
    opacity: 0.16;
}

/* Section-specific icon stories. */
.section-container-2::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='280' viewBox='0 0 420 280'%3E%3Cg fill='none' stroke='%2310466E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' opacity='.5'%3E%3Ccircle cx='55' cy='55' r='10'/%3E%3Cpath d='M35 88c3-17 37-17 40 0M48 88v22M62 88v22'/%3E%3Cpath d='M300 42h62v48h-62zM310 52h10v10h-10zM327 52h10v10h-10zM344 52h10v10h-10zM327 72h10v18'/%3E%3Cpath d='M82 205c13-9 27-9 40 0v31c-13-9-27-9-40 0zM122 205c13-9 27-9 40 0v31c-13-9-27-9-40 0z'/%3E%3Cpath d='M292 194h62M302 184v20M344 184v20M323 171v33'/%3E%3C/g%3E%3Cg fill='%23F5B800' opacity='.6'%3E%3Ccircle cx='205' cy='62' r='5'/%3E%3Cpath d='M374 210l4 8 9 1-7 6 2 9-8-4-8 4 2-9-7-6 9-1z'/%3E%3C/g%3E%3Ctext x='185' y='165' fill='%232EA8E5' opacity='.48' font-family='Arial,sans-serif' font-size='16' font-weight='700'%3ETOGETHER%3C/text%3E%3C/svg%3E");
}

.section-container-3::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='280' viewBox='0 0 420 280'%3E%3Cg fill='none' stroke='%2310466E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' opacity='.5'%3E%3Crect x='42' y='40' width='28' height='50' rx='14'/%3E%3Cpath d='M34 67c0 29 44 29 44 0M56 96v18M42 114h28'/%3E%3Cpath d='M286 48h72v55h-72zM298 88V72M315 88V61M332 88V53M349 88V67'/%3E%3Cpath d='M62 203h74M72 191l18-20 17 12 21-28'/%3E%3Cpath d='M292 194h62M323 164v60M300 178h46'/%3E%3C/g%3E%3Ctext x='183' y='148' fill='%232EA8E5' opacity='.55' font-family='Arial,sans-serif' font-size='28' font-weight='700'%3EAa%3C/text%3E%3Ctext x='173' y='181' fill='%237160D8' opacity='.48' font-family='Arial,sans-serif' font-size='18' font-weight='700'%3EREPORT%3C/text%3E%3Cg fill='%23F5B800' opacity='.6'%3E%3Ccircle cx='218' cy='60' r='5'/%3E%3Ccircle cx='370' cy='222' r='4'/%3E%3C/g%3E%3C/svg%3E");
}

.section-container-gallery::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='280' viewBox='0 0 420 280'%3E%3Cg fill='none' stroke='%2310466E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' opacity='.48'%3E%3Crect x='38' y='45' width='70' height='48' rx='7'/%3E%3Ccircle cx='73' cy='69' r='12'/%3E%3Cpath d='M54 45l7-10h24l7 10'/%3E%3Cpath d='M292 48c15-10 31-10 46 0v36c-15-10-31-10-46 0zM338 48c15-10 31-10 46 0v36c-15-10-31-10-46 0z'/%3E%3Cpath d='M65 210h82M137 201l10 9-10 9'/%3E%3Cpath d='M290 200h76v38h-76zM301 211l15 13 13-10 24 18'/%3E%3C/g%3E%3Cg fill='%23F5B800' opacity='.68'%3E%3Cpath d='M205 55l5 10 11 2-8 8 2 11-10-5-10 5 2-11-8-8 11-2z'/%3E%3Ccircle cx='216' cy='217' r='5'/%3E%3C/g%3E%3Ctext x='175' y='157' fill='%232EA8E5' opacity='.5' font-family='Arial,sans-serif' font-size='18' font-weight='700'%3ESTORIES%3C/text%3E%3C/svg%3E");
}

.section-container-4::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='280' viewBox='0 0 420 280'%3E%3Cg fill='none' stroke='%2310466E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' opacity='.48'%3E%3Cpath d='M38 45h82v52H78l-18 16 5-16H38z'/%3E%3Cpath d='M299 46h72v50h-72zM311 64h48M311 77h35'/%3E%3Ccircle cx='72' cy='211' r='12'/%3E%3Ccircle cx='102' cy='211' r='12'/%3E%3Cpath d='M48 244c3-22 45-22 48 0M78 244c3-22 45-22 48 0'/%3E%3Cpath d='M292 204h74M300 191l12 13 18-26 28 26'/%3E%3C/g%3E%3Cg fill='%23F5B800' opacity='.62'%3E%3Cpath d='M205 52l4 8 9 1-7 6 2 9-8-4-8 4 2-9-7-6 9-1z'/%3E%3C/g%3E%3Cpath d='M205 183c-22-14-42 15 0 42 42-27 22-56 0-42z' fill='%239A4DCC' opacity='.38'/%3E%3Ctext x='171' y='143' fill='%232EA8E5' opacity='.5' font-family='Arial,sans-serif' font-size='17' font-weight='700'%3EPROGRESS%3C/text%3E%3C/svg%3E");
}

@keyframes sectionLearningPattern {
    from { background-position: 0 0; transform: translate3d(0, 0, 0); }
    to { background-position: 420px 280px; transform: translate3d(20px, -12px, 0); }
}

@media (prefers-reduced-motion: reduce) {
    .section-container::before {
        animation: none;
    }
}

.section-wrapper {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 1.5rem;
}

@media (max-width: 768px) {
    .section-container { padding: 3rem 1rem; }
    .section-container-hero,
    .section-container { width: 100%; margin-left: 0; margin-right: 0; }
}

/* ============================================================
   FADE-IN ANIMATION
   ============================================================ */
.fade-in-section {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.75s ease-out, transform 0.75s ease-out;
}

.fade-in-section.visible {
    opacity: 1;
    transform: translateY(0);
}

/* ============================================================
   MODERN HERO CARD
   ============================================================ */
.modern-hero {
    max-width: 1180px;
    margin: 0 auto;
    padding: 4rem 3rem;
    border-radius: var(--r-xl);
    background:
        linear-gradient(135deg, #FFFFFF 0%, #F5FBFF 50%, #FFFBEA 100%);
    border: 1px solid rgba(16, 70, 110, 0.1);
    box-shadow:
        0 20px 60px rgba(16, 70, 110, 0.05);
    position: relative;
    overflow: visible;
}

.hero-content-side {
    padding-right: 2rem;
}

.modern-hero h1 {
    font-size: clamp(2rem, 4vw, 3.2rem);
    font-weight: 900;
    color: var(--pabasa-blue-deep);
    line-height: 1.1;
}

.hero-tagline {
    font-size: 1.15rem;
    color: var(--ink-muted);
    line-height: 1.6;
    margin: 1.5rem 0 2rem;
    font-weight: 600;
}

.hero-feature-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1.25rem;
    margin-bottom: 3rem;
}

.hero-feature-item {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    background: #ffffff;
    padding: 1rem;
    border-radius: var(--r-lg);
    border: 1px solid var(--line);
    box-shadow: var(--shadow-sm);
}

.feature-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}
.feature-dot.blue { background: var(--pabasa-blue); }
.feature-dot.yellow { background: var(--pabasa-yellow-deep); }
.feature-dot.deep { background: var(--pabasa-blue-deep); }

.hero-feature-item strong {
    display: block;
    font-size: 1rem;
    color: var(--pabasa-blue-deep);
    font-family: var(--font-display);
}

.hero-feature-item span {
    font-size: 0.8rem;
    color: var(--ink-muted);
    font-weight: 700;
}

.hero-cta-group {
    display: flex;
    gap: 1rem;
}

/* --- Product Mockup Styling --- */
.product-mockup-frame {
    position: relative;
    max-width: 100%;
    background: #ffffff;
    border-radius: 16px;
    border: 1px solid rgba(16, 70, 110, 0.15);
    box-shadow: 0 30px 60px rgba(16, 70, 110, 0.15);
    overflow: visible;
    transition: transform 0.5s ease;
}

.product-mockup-frame:hover {
    transform: perspective(1000px) rotateY(-2deg) rotateX(1deg);
}

.mockup-browser-bar {
    background: #f8fafc;
    padding: 8px 16px;
    display: flex;
    align-items: center;
    border-bottom: 1px solid #e2e8f0;
    border-radius: 16px 16px 0 0;
}

.mockup-dots { display: flex; gap: 6px; }
.mockup-dots span { width: 8px; height: 8px; border-radius: 50%; background: #cbd5e1; }
.mockup-url { 
    margin: 0 auto; 
    font-size: 10px; 
    color: var(--ink-muted); 
    background: white; 
    padding: 2px 20px; 
    border-radius: 4px; 
}

.mockup-screen-content { padding: 1.5rem; background: #f8fafc; }
.mockup-dashboard-header { height: 18px; width: 35%; background: #cbd5e1; border-radius: 4px; margin-bottom: 1.5rem; }
.mockup-row { display: flex; gap: 1rem; margin-bottom: 1rem; }
.mockup-card-lg { flex: 2; height: 120px; background: white; border-radius: 8px; padding: 10px; border: 1px solid var(--line); }
.mockup-stack { flex: 1; display: flex; flex-direction: column; gap: 1rem; }
.mockup-card-sm { height: 55px; background: white; border-radius: 8px; border: 1px solid var(--line); }
.mockup-table { height: 80px; background: white; border-radius: 8px; border: 1px solid var(--line); padding: 12px; }
.mockup-tr { height: 8px; background: #f1f5f9; margin-bottom: 8px; border-radius: 4px; width: 100%; }

/* --- Floating UI Animation --- */
.floating-ui {
    position: absolute;
    background: white;
    padding: 10px 14px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    gap: 10px;
    box-shadow: var(--shadow-md);
    border: 1px solid rgba(46, 168, 229, 0.1);
    animation: heroFloat 4s ease-in-out infinite;
    z-index: 5;
}

.f-icon { width: 30px; height: 30px; border-radius: 8px; display: grid; place-items: center; font-size: 1.1rem; }
.f-icon.success { background: #ecfdf5; color: #10b981; }
.f-icon.primary { background: var(--pabasa-blue-light); color: var(--pabasa-blue); }
.f-icon.warning { background: var(--pabasa-yellow-soft); color: #854d0e; }

.floating-ui strong { display: block; font-size: 1.25rem; line-height: 1; color: var(--pabasa-blue-deep); font-family: var(--font-display); }
.floating-ui span { font-size: 0.8rem; color: var(--ink-muted); font-weight: 800; }

.f-completion { top: -20px; right: -30px; }
.f-improvement { bottom: 40px; left: -40px; animation-delay: 1s; }
.f-alert { top: 60%; right: -50px; animation-delay: 2s; }

@keyframes heroFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-12px); }
}

@media (max-width: 992px) {
    .modern-hero { padding: 3rem 1.5rem; }
    .hero-visual-side { margin-top: 4rem; }
    .floating-ui { display: none; }
    .product-mockup-frame { margin-left: 0; }
    .hero-content-side { padding-right: 0; }
}
.modern-hero > * { position: relative; z-index: 1; }
/* End Modern Hero */

/* Hero flip card */
.flip-card {
    height: 430px;
    width: 100%;
    border-radius: var(--r-lg);
    overflow: hidden;
    cursor: default;
    border: 2.5px solid rgba(46, 168, 229, 0.22);
    box-shadow: var(--shadow-lg);
    position: relative;
}

.flip-card-inner {
    position: relative;
    width: 100%;
    height: 100%;
}

.flip-card-front, .flip-card-back {
    position: absolute;
    width: 100%;
    height: 100%;
    backface-visibility: hidden;
    top: 0; left: 0;
    border-radius: var(--r-lg);
}

.flip-card-front {
    background: white;
}

.flip-card-front img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: filter 0.5s ease;
}

.flip-card-back { display: none; }

.hero-product-visual {
    border-radius: var(--r-lg);
    overflow: hidden;
    box-shadow: var(--shadow-lg);
}

@media (max-width: 992px) {
    .modern-hero .col-lg-7 { border-right: none !important; padding-right: 0 !important; }
    .modern-hero .col-lg-5 { padding-left: 0 !important; }
    .modern-hero { padding: 2rem; }
    .hero-metrics { grid-template-columns: 1fr 1fr 1fr; }
    .flip-card { height: 340px; }
}

@media (max-width: 576px) {
    .modern-hero { padding: 1.5rem; border-radius: var(--r-lg); }
    .hero-metrics { grid-template-columns: 1fr; }
    .flip-card { height: 280px; }
}

/* ============================================================
   SECTION HEADERS
   ============================================================ */
.section-kicker {
    font-family: var(--font-display);
    color: var(--pabasa-blue);
    font-size: 0.85rem;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    margin-bottom: 0.6rem;
    display: block;
}

.section-intro {
    max-width: 660px;
    margin: 0 auto;
    color: var(--ink-muted);
    font-size: 0.97rem;
    line-height: 1.7;
    font-weight: 600;
}

section.pb-4 h2,
section.pb-md-5 h2,
.section-container-2 h2,
.section-container-3 h2 {
    font-family: var(--font-display);
    font-size: clamp(1.5rem, 2.5vw, 2rem);
    font-weight: 900;
    color: var(--pabasa-blue-deep) !important;
    letter-spacing: -0.3px;
    margin-bottom: 0.5rem;
    background: none !important;
    -webkit-text-fill-color: initial !important;
    position: relative;
    display: inline-block;
    padding-bottom: 0.75rem;
}

section.pb-4 h2::after,
section.pb-md-5 h2::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, var(--pabasa-blue), var(--pabasa-yellow));
    border-radius: var(--r-pill);
}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn {
    font-family: var(--font-display);
    font-weight: 800;
    border-radius: var(--r-pill) !important;
    padding: 0.65rem 1.5rem;
    font-size: 0.93rem;
    transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
    letter-spacing: 0.02em;
}

.btn-primary {
    background: linear-gradient(135deg, var(--pabasa-blue), var(--pabasa-blue-deep)) !important;
    border: none !important;
    color: #ffffff !important;
    box-shadow: 0 6px 20px rgba(46, 168, 229, 0.35) !important;
}

.btn-primary:hover,
.btn-primary:focus {
    background: linear-gradient(135deg, #3AAEEA, #0D3A5C) !important;
    transform: translateY(-2px) scale(1.03);
    box-shadow: 0 10px 28px rgba(46, 168, 229, 0.45) !important;
}

.btn-outline-primary {
    color: var(--pabasa-blue-deep) !important;
    border: 2px solid rgba(46, 168, 229, 0.45) !important;
    background: transparent !important;
}

.btn-outline-primary:hover {
    background: var(--pabasa-blue-light) !important;
    border-color: var(--pabasa-blue) !important;
    color: var(--pabasa-blue-deep) !important;
    transform: translateY(-2px);
}

/* Yellow accent button for account CTA */
.modern-nav-wrap .btn.btn-light.btn-sm.account-cta {
    background: var(--pabasa-yellow) !important;
    border: 2px solid var(--pabasa-yellow) !important;
    border-radius: var(--r-pill) !important;
    box-shadow: 0 4px 14px rgba(255, 214, 57, 0.38) !important;
    color: var(--pabasa-blue-deep) !important;
    font-family: var(--font-display) !important;
    font-weight: 800 !important;
    padding: 0.3rem 1.1rem !important;
}

.modern-nav-wrap .btn.btn-light.btn-sm.account-cta:hover {
    background: var(--pabasa-yellow-deep) !important;
    border-color: var(--pabasa-yellow-deep) !important;
    transform: translateY(-1px) !important;
}

/* ============================================================
   SUPPORT MAP (Who It Supports)
   ============================================================ */
.support-map {
    display: grid;
    grid-template-columns: minmax(220px, 0.64fr) minmax(0, 1.36fr);
    gap: clamp(1.5rem, 4vw, 3rem);
    align-items: center;
}

.support-context {
    position: relative;
    min-height: clamp(280px, 38vw, 420px);
    display: flex;
    align-items: stretch;
    justify-content: center;
}

.support-context--gallery {
    padding: 0.25rem 0;
}

.support-visual {
    position: relative;
    width: min(100%, 430px);
    height: 100%;
    padding: clamp(0.85rem, 2vw, 1.15rem);
    border-radius: 1.8rem;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(234, 247, 253, 0.9));
    border: 1px solid rgba(16, 70, 110, 0.12);
    box-shadow: 0 24px 60px rgba(16, 70, 110, 0.10);
}

.support-visual::before {
    content: "";
    position: absolute;
    inset: 1rem;
    border-radius: 1.3rem;
    border: 1px solid rgba(46, 168, 229, 0.16);
    pointer-events: none;
}

.support-visual__tag {
    position: absolute;
    top: 1rem;
    left: 1rem;
    z-index: 2;
    padding: 0.42rem 0.7rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.94);
    color: var(--pabasa-blue-deep);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    box-shadow: 0 8px 20px rgba(16, 70, 110, 0.10);
}

.support-visual--stacked {
    padding: 1rem;
}

.support-visual__stack {
    display: grid;
    gap: 0.8rem;
    height: 100%;
}

.support-visual__stack img {
    width: 100%;
    height: 100%;
    min-height: 150px;
    object-fit: cover;
    object-position: center;
    border-radius: 1rem;
    box-shadow: 0 10px 24px rgba(16, 70, 110, 0.12);
    display: block;
}

.support-editorial {
    max-width: 760px;
}

.support-heading {
    margin-bottom: clamp(2.25rem, 5vw, 4rem);
}

.support-heading h2,
.tools-preview h2 {
    color: var(--pabasa-blue-deep) !important;
    display: block;
    font-family: var(--font-display);
    font-size: clamp(2.25rem, 5vw, 4.6rem);
    font-weight: 900;
    line-height: 0.98;
    letter-spacing: 0;
    margin: 0;
    max-width: 760px;
    padding-bottom: 0;
}

.support-heading .section-intro {
    margin: 1.35rem 0 0;
    max-width: 560px;
    font-size: clamp(1rem, 1.3vw, 1.12rem);
    font-weight: 500;
}

.support-lanes {
    display: grid;
    border-top: 1px solid rgba(16, 70, 110, 0.18);
}

.support-lane {
    display: grid;
    grid-template-columns: 4.5rem minmax(0, 1fr);
    gap: clamp(1rem, 2vw, 1.8rem);
    border-bottom: 1px solid rgba(16, 70, 110, 0.18);
    padding: clamp(1.65rem, 3vw, 2.4rem) 0;
    background: transparent;
    box-shadow: none !important;
}

.support-lane-index {
    font-family: var(--font-display);
    color: var(--pabasa-blue);
    font-size: clamp(0.78rem, 1vw, 0.9rem);
    font-weight: 900;
    letter-spacing: 0.12em;
    padding-top: 0.42rem;
}

.support-lane h3 {
    font-family: var(--font-display);
    color: var(--pabasa-blue-deep);
    font-size: clamp(1.55rem, 2.2vw, 2.15rem);
    font-weight: 900;
    line-height: 1;
    margin: 0 0 0.65rem;
}

.support-lane p {
    color: var(--ink-muted);
    line-height: 1.6;
    margin: 0;
    font-size: clamp(0.98rem, 1.2vw, 1.08rem);
    font-weight: 500;
    max-width: 560px;
}

.support-lane-details {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem 1.15rem;
    margin-top: 1rem;
}

.support-lane-details span {
    color: var(--pabasa-blue-deep);
    display: inline-flex;
    align-items: center;
    font-family: var(--font-display);
    font-size: 0.82rem;
    font-weight: 800;
}

.support-lane-details span::before {
    content: '';
    width: 0.38rem;
    height: 0.38rem;
    border-radius: 50%;
    background: var(--pabasa-yellow-deep);
    margin-right: 0.5rem;
}

@media (max-width: 992px) {
    .support-map { grid-template-columns: 1fr; }
    .support-context {
        min-height: 260px;
        max-width: 560px;
        margin: 0 auto;
        order: 2;
        width: 100%;
    }

    .support-editorial {
        order: 1;
        max-width: none;
    }
}

@media (max-width: 576px) {
    .support-lane { grid-template-columns: 2.5rem minmax(0, 1fr) !important; gap: 0.85rem; }
    .support-context { min-height: 240px; }
    .support-visual__stack img { height: 120px; }
}

/* ============================================================
   TOOLS SHOWCASE (Key Features)
   ============================================================ */
.tools-showcase {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: clamp(1.25rem, 3vw, 2.5rem);
    margin-top: 2.5rem;
    align-items: stretch;
}

.tools-preview {
    background: linear-gradient(145deg, var(--pabasa-blue-deep) 0%, #0D3A5C 100%);
    border-radius: var(--r-xl);
    color: #ffffff;
    min-height: 420px;
    padding: clamp(1.5rem, 3vw, 2.2rem);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
    position: relative;
    border: 2px solid rgba(46, 168, 229, 0.22);
    box-shadow: var(--shadow-lg);
}

/* Decorative glow blob */
.tools-preview::after {
    content: '';
    position: absolute;
    bottom: -4rem;
    right: -4rem;
    width: 15rem;
    height: 15rem;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 214, 57, 0.3), transparent 65%);
    pointer-events: none;
}

/* Star decoration */
.tools-preview::before {
    content: '★★★';
    position: absolute;
    top: 1.25rem;
    right: 1.5rem;
    color: var(--pabasa-yellow);
    font-size: 1rem;
    opacity: 0.45;
    letter-spacing: 0.3rem;
}

.tools-preview-kicker {
    font-family: var(--font-display);
    color: var(--pabasa-yellow);
    font-size: 0.74rem;
    font-weight: 900;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    position: relative;
    z-index: 1;
}

.tools-preview h3 {
    color: #ffffff;
    font-family: var(--font-display);
    font-size: clamp(1.45rem, 2.8vw, 2rem);
    font-weight: 900;
    line-height: 1.12;
    margin: 0.85rem 0 0.75rem;
    max-width: 420px;
    position: relative;
    z-index: 1;
}

.tools-preview p {
    color: #c7e9f9;
    line-height: 1.65;
    margin: 0;
    font-size: 0.93rem;
    position: relative;
    z-index: 1;
}

.tools-preview-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    margin-top: 1.75rem;
    position: relative;
    z-index: 1;
}

.tools-preview-metrics div {
    border-top: 1.5px solid rgba(255, 255, 255, 0.2);
    padding-top: 0.8rem;
}

.tools-preview-metrics strong {
    display: block;
    font-family: var(--font-display);
    color: #ffffff;
    font-size: 1.2rem;
    line-height: 1;
    margin-bottom: 0.3rem;
}

.tools-preview-metrics span {
    color: #94c9e2;
    font-size: 0.76rem;
    font-weight: 700;
}

.tools-list {
    display: grid;
    align-content: center;
    gap: 0;
    background: var(--surface);
    border-radius: var(--r-xl);
    border: 2px solid var(--line);
    box-shadow: var(--shadow-md);
    overflow: hidden;
}

.tool-item {
    display: grid;
    grid-template-columns: 5.25rem minmax(0, 1fr);
    gap: 1.25rem;
    align-items: start;
    border-bottom: 1.5px solid var(--line-soft);
    padding: 1.5rem;
    background: transparent;
    box-shadow: none !important;
    transition: background 0.2s ease;
}

.tool-item:last-child { border-bottom: none; }
.tool-item:hover { background: var(--pabasa-blue-light); }

.tool-icon {
    width: 5rem;
    height: 5rem;
    border-radius: var(--r-md);
    background: linear-gradient(135deg, var(--pabasa-yellow-soft), #FFF3B0);
    border: 2px solid rgba(255, 184, 0, 0.28);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(255, 184, 0, 0.15);
}

.tool-icon img {
    width: 82%;
    height: 82%;
    object-fit: contain;
}

.tool-item span {
    color: var(--pabasa-blue);
    display: block;
    font-family: var(--font-display);
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    margin-bottom: 0.3rem;
    text-transform: uppercase;
}

.tool-item h3 {
    font-family: var(--font-display);
    color: var(--pabasa-blue-deep);
    font-size: 1.05rem;
    font-weight: 900;
    margin: 0 0 0.4rem;
}

.tool-item p {
    color: var(--ink-muted);
    font-size: 0.9rem;
    line-height: 1.6;
    margin: 0;
}

@media (max-width: 992px) {
    .tools-showcase { grid-template-columns: 1fr; }
    .tools-preview { min-height: 320px; }
}

@media (max-width: 576px) {
    .tool-item { grid-template-columns: 4rem minmax(0, 1fr) !important; gap: 0.85rem; }
    .tool-icon { width: 4rem; height: 4rem; }
    .tools-preview-metrics { grid-template-columns: 1fr !important; }
}

/* Editorial override for Platform Tools */
.tools-showcase {
    grid-template-columns: minmax(240px, 0.82fr) minmax(0, 1.18fr);
    gap: clamp(2.5rem, 7vw, 6rem);
    align-items: start;
    margin-top: 0;
}

.tools-preview {
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    color: var(--ink);
    display: block;
    min-height: 0;
    overflow: visible;
    padding: 0;
    position: sticky;
    top: 6rem;
}

.tools-preview::before,
.tools-preview::after {
    content: none;
}

.tools-preview p {
    color: var(--ink-muted);
    font-size: clamp(1rem, 1.3vw, 1.12rem);
    font-weight: 500;
    line-height: 1.7;
    margin: 1.35rem 0 0;
    max-width: 500px;
}

.tools-preview-metrics {
    gap: 1.25rem;
    margin-top: clamp(2rem, 4vw, 3rem);
    padding-top: 1.25rem;
    border-top: 1px solid rgba(16, 70, 110, 0.18);
}

.tools-preview-metrics div {
    border-top: 0;
    min-width: 0;
    padding-top: 0;
}

.tools-preview-metrics strong {
    color: var(--pabasa-blue);
    font-size: clamp(1.5rem, 2.5vw, 2.15rem);
    margin-bottom: 0.45rem;
}

.tools-preview-metrics span {
    color: var(--ink-muted);
    font-size: 0.82rem;
    font-weight: 800;
    line-height: 1.35;
}

.tools-list {
    align-content: initial;
    background: transparent;
    border: 0;
    border-radius: 0;
    border-top: 1px solid rgba(16, 70, 110, 0.18);
    box-shadow: none;
    overflow: visible;
}

.tool-item {
    align-items: center;
    border-bottom: 1px solid rgba(16, 70, 110, 0.18);
    gap: clamp(1rem, 2vw, 1.65rem);
    grid-template-columns: 4.75rem minmax(0, 1fr);
    padding: clamp(1.65rem, 3vw, 2.35rem) 0;
}

.tool-item:hover {
    background: transparent;
}

.tool-icon {
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    height: 4.25rem;
    width: 4.25rem;
}

.tool-icon img {
    height: 100%;
    width: 100%;
}

.tool-item h3 {
    font-size: clamp(1.45rem, 2vw, 1.95rem);
    line-height: 1;
    margin: 0 0 0.7rem;
}

.tool-item p {
    font-size: clamp(0.98rem, 1.2vw, 1.08rem);
    font-weight: 500;
    max-width: 560px;
}

@media (max-width: 992px) {
    .tools-showcase { grid-template-columns: 1fr; }
    .tools-preview { position: static; }
}

@media (max-width: 576px) {
    .tool-item {
        align-items: start;
        gap: 0.9rem;
        grid-template-columns: 3.2rem minmax(0, 1fr) !important;
    }

    .tool-icon {
        height: 3rem;
        width: 3rem;
    }
}

/* ============================================================
   TURNING PAGES TOGETHER (Photo Slider)
   ============================================================ */
.turning-pages-title {
    font-family: var(--font-display);
    font-size: clamp(1.6rem, 3.2vw, 2.3rem);
    font-weight: 900;
    color: var(--pabasa-blue);
    margin-bottom: 0.35rem;
    letter-spacing: -0.5px;
}

.turning-pages-subtitle {
    font-family: var(--font-display);
    font-size: clamp(1.1rem, 2.2vw, 1.55rem);
    font-weight: 800;
    color: var(--pabasa-blue-deep);
    margin-bottom: 2.5rem;
    letter-spacing: -0.3px;
}

.turning-pages-container {
    position: relative;
    width: 100vw;
    margin: 0 calc(-50vw + 50%);
    display: flex;
    align-items: center;
    padding: 0 0.5rem;
    gap: 0;
    overflow: visible;
}

.turning-pages-container > div {
    overflow: visible;
}

.turning-pages-slider {
    flex: 1;
    overflow: hidden;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
    padding: 0 3.25rem;
}

.turning-pages-grid {
    display: flex;
    gap: 1.25rem;
    overflow-x: auto;
    overflow-y: visible;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
    width: 100%;
    flex: 1 1 auto;
    padding-top: 1.5rem;
    padding-bottom: 2.5rem;
}

.turning-pages-grid::-webkit-scrollbar { display: none; }

.turning-pages-image {
    position: relative;
    width: 275px;
    height: 275px;
    flex-shrink: 0;
    overflow: hidden;
    border-radius: var(--r-lg);
    box-shadow: var(--shadow-md);
    border: 3px solid rgba(255, 255, 255, 0.9);
    transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1), box-shadow 0.4s ease;
    z-index: 1;
}

.turning-pages-image:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-xl);
    z-index: 2;
}

.turning-pages-image img {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.turning-pages-image:hover img {
    transform: scale(1.05);
}

.turning-pages-arrow {
    flex-shrink: 0;
    width: 50px;
    height: 50px;
    background: linear-gradient(135deg, var(--pabasa-yellow), #FFE566) !important;
    border: 2.5px solid rgba(255, 184, 0, 0.4) !important;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 24px rgba(255, 184, 0, 0.35) !important;
    transition: all 0.3s ease;
    color: var(--pabasa-blue-deep) !important;
    font-size: 1.5rem;
    font-weight: 900;
    padding: 0;
    line-height: 1;
}

#sliderLeftBtn {
    left: clamp(0.75rem, 2vw, 1.5rem) !important;
}

#sliderRightBtn {
    right: clamp(0.75rem, 2vw, 1.5rem) !important;
}

.turning-pages-arrow:hover {
    background: linear-gradient(135deg, var(--pabasa-yellow-deep), var(--pabasa-yellow)) !important;
    transform: scale(1.03) !important;
    box-shadow: 0 12px 32px rgba(255, 184, 0, 0.5) !important;
}

@media (max-width: 576px) {
    .turning-pages-image { width: 200px; height: 200px; }
    .turning-pages-arrow { width: 40px; height: 40px; font-size: 1.2rem; }
}

/* ============================================================
   TESTIMONIAL PANEL (Carousel)
   ============================================================ */
.testimonial-panel {
    background: linear-gradient(135deg, #FFFFFF 0%, #EAF7FD 100%) !important;
    border: 2px solid var(--line) !important;
    border-radius: var(--r-xl) !important;
    overflow: hidden;
    box-shadow: var(--shadow-lg) !important;
}

.start-panel {
    background: var(--surface) !important;
    border: 2px solid var(--line) !important;
    border-radius: var(--r-xl) !important;
    overflow: hidden;
    box-shadow: var(--shadow-lg) !important;
}

.testimonial-slide {
    min-height: 400px;
    height: 100%;
    padding: 2.5rem 3.5rem 5.5rem; /* Reserve space for controls at the bottom */
    background: transparent !important;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
}

/* Decorative quote mark */
.testimonial-slide::before {
    content: '"';
    position: absolute;
    top: 1rem;
    right: 2rem;
    font-family: Georgia, serif;
    font-size: 8rem;
    color: var(--pabasa-blue);
    opacity: 0.07;
    line-height: 1;
    pointer-events: none;
}

.testimonial-label {
    font-family: var(--font-display);
    color: var(--pabasa-blue) !important;
    font-size: 0.74rem;
    font-weight: 900;
    letter-spacing: 0.14em;
    margin-bottom: 1.5rem;
    text-transform: uppercase;
}

.carousel-testimonial {
    display: flex;
    align-items: center;
    gap: 2rem;
    min-height: 280px;
    position: relative;
    z-index: 1;
}

.carousel-testimonial-image { flex-shrink: 0; }

.carousel-testimonial-image img {
    width: 160px;
    height: 195px;
    border-radius: var(--r-lg);
    object-fit: cover;
    border: 3px solid rgba(46, 168, 229, 0.22);
    box-shadow: var(--shadow-md);
}

.carousel-testimonial-content { flex-grow: 1; }

.carousel-testimonial-quote {
    font-size: 1.02rem;
    line-height: 1.75;
    margin-bottom: 1rem;
    color: var(--ink);
    text-align: justify;
    font-weight: 600;
}

.carousel-testimonial-name {
    font-family: var(--font-display);
    font-weight: 900;
    font-size: 0.93rem;
    color: var(--pabasa-blue-deep);
}

/* Carousel controls */
#homeHighlightsCarousel {
    position: relative;
    height: 100%;
    --carousel-nav-size: 2.35rem;
    --carousel-nav-gap: 0.6rem;
    --carousel-nav-pad: 0.5rem;
    --carousel-nav-right: 2.5rem;
    --carousel-nav-bottom: 0.75rem;
}

#homeHighlightsCarousel::after {
    content: '';
    position: absolute;
    right: var(--carousel-nav-right);
    bottom: var(--carousel-nav-bottom);
    width: calc((var(--carousel-nav-size) * 2) + var(--carousel-nav-gap) + (var(--carousel-nav-pad) * 2));
    height: calc(var(--carousel-nav-size) + (var(--carousel-nav-pad) * 2));
    border: 2px solid rgba(46, 168, 229, 0.15);
    border-radius: var(--r-pill);
    background: rgba(255, 255, 255, 0.95);
    box-shadow: var(--shadow-md);
    backdrop-filter: blur(12px);
    pointer-events: none;
    z-index: 9;
}

#homeHighlightsCarousel .carousel-control-prev,
#homeHighlightsCarousel .carousel-control-next {
    position: absolute;
    top: auto;
    bottom: calc(var(--carousel-nav-bottom) + var(--carousel-nav-pad));
    width: var(--carousel-nav-size);
    height: var(--carousel-nav-size);
    border-radius: 50%;
    background: var(--pabasa-blue-deep) !important;
    border: none !important;
    padding: 0;
    opacity: 1;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}

#homeHighlightsCarousel .carousel-control-prev {
    left: auto;
    right: calc(var(--carousel-nav-right) + var(--carousel-nav-pad) + var(--carousel-nav-size) + var(--carousel-nav-gap));
}

#homeHighlightsCarousel .carousel-control-next {
    right: calc(var(--carousel-nav-right) + var(--carousel-nav-pad));
}

#homeHighlightsCarousel .carousel-control-prev:hover,
#homeHighlightsCarousel .carousel-control-next:hover,
#homeHighlightsCarousel .carousel-control-prev:focus-visible,
#homeHighlightsCarousel .carousel-control-next:focus-visible {
    background: var(--pabasa-yellow-deep) !important;
    box-shadow: 0 8px 20px rgba(245, 184, 0, 0.38) !important;
    transform: translateY(-2px);
}

#homeHighlightsCarousel .carousel-control-prev-icon,
#homeHighlightsCarousel .carousel-control-next-icon {
    width: 0.9rem;
    height: 0.9rem;
    background-size: 100%;
}

#homeHighlightsCarousel .carousel-indicators {
    justify-content: center;
    margin: 0;
    /* Align with the vertical center of the navigation buttons */
    bottom: calc(var(--carousel-nav-bottom) + var(--carousel-nav-pad) + (var(--carousel-nav-size) / 2));
    transform: translateY(50%);
    gap: 0.5rem;
    z-index: 10; /* Ensure dots are visible above the background pill */
}

#homeHighlightsCarousel .carousel-indicators [data-bs-target] {
    width: 8px; height: 8px;
    border-radius: 50%;
    background-color: var(--pabasa-blue-soft);
    opacity: 0.6;
}

#homeHighlightsCarousel .carousel-indicators .active {
    background-color: var(--pabasa-yellow-deep) !important;
    opacity: 1;
}

/* Layout Fix: Force the carousel inner containers to fill the card height */
.testimonial-panel .card-body,
#homeHighlightsCarousel .carousel-inner,
#homeHighlightsCarousel .carousel-item {
    height: 100%;
}

@media (max-width: 768px) {
    .testimonial-slide { padding: 1.75rem 1.5rem; padding-bottom: 5rem; }
    .carousel-testimonial { flex-direction: column; align-items: flex-start; gap: 1.25rem; }
    .carousel-testimonial-image img { width: 120px; height: 145px; }
    .carousel-testimonial-quote { font-size: 0.92rem; }
    #homeHighlightsCarousel {
        --carousel-nav-right: 1.5rem;
        --carousel-nav-bottom: 1rem;
    }
    #homeHighlightsCarousel .carousel-indicators { bottom: calc(var(--carousel-nav-bottom) + var(--carousel-nav-pad) + (var(--carousel-nav-size) / 2)); }
}

/* ============================================================
   START PANEL (CTA Card)
   ============================================================ */
.start-panel .card-body {
    padding: 2.25rem !important;
    min-height: 380px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

/* Yellow accent stripe at top */
.start-panel::before {
    content: '';
    display: block;
    height: 6px;
    background: linear-gradient(90deg, var(--pabasa-yellow), var(--pabasa-blue), var(--pabasa-yellow));
}

.start-panel-kicker {
    font-family: var(--font-display);
    background: var(--pabasa-yellow-soft) !important;
    border: 1.5px solid rgba(245, 184, 0, 0.32) !important;
    color: #7A4A00 !important;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    padding: 0.3rem 0.85rem;
    border-radius: var(--r-pill);
    display: inline-block;
}

.start-panel h3 {
    font-family: var(--font-display);
    color: var(--pabasa-blue-deep) !important;
    font-size: 1.5rem;
    font-weight: 900;
    line-height: 1.2;
    margin: 0.9rem 0 0.6rem;
    background: none !important;
    -webkit-text-fill-color: initial !important;
}

.start-panel p {
    color: var(--ink-muted);
    line-height: 1.65;
    font-size: 0.94rem;
}

.start-checklist {
    display: grid;
    gap: 0.75rem;
    margin: 1.25rem 0;
    padding: 0;
    list-style: none;
}

.start-checklist li {
    color: var(--ink);
    display: flex;
    gap: 0.65rem;
    align-items: center;
    font-size: 0.92rem;
    font-weight: 700;
}

.start-checklist li::before {
    content: '✓';
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--pabasa-blue), var(--pabasa-blue-deep));
    color: #ffffff;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.7rem;
    font-weight: 900;
    box-shadow: 0 3px 8px rgba(46, 168, 229, 0.3);
}

/* ============================================================
   LOGO
   ============================================================ */
.pabasa-logo-link {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    gap: 0;
    flex-shrink: 0;
}

.pabasa-logo-svg {
    width: 64px;
    height: 54px;
    flex-shrink: 0;
}

.pabasa-logo-letters {
    display: flex;
    align-items: center;
    margin-left: -20px;
    margin-top: 4px;
}

.pabasa-logo-letters span {
    font-family: 'Coiny', var(--font-display), cursive;
    font-size: 2.1rem;
    display: inline-block;
    -webkit-text-stroke: 5px var(--pabasa-blue-deep);
    paint-order: stroke fill;
    letter-spacing: -2px;
    filter: drop-shadow(0px 2px 0px rgba(16,70,110,0.18));
    line-height: 1;
}

.lc-blue   { color: #54C2F0; }
.lc-yellow { color: #FFD639; }

/* ============================================================
   GENERAL CARD / SURFACE IMPROVEMENTS
   ============================================================ */
.modern-surface,
.audience-card,
.feature-card {
    background: var(--surface) !important;
    border: 2px solid var(--line) !important;
    border-radius: var(--r-lg);
    box-shadow: var(--shadow-md) !important;
    transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}

.modern-surface:hover,
.audience-card:hover,
.feature-card:hover {
    transform: translateY(-5px);
    border-color: rgba(46, 168, 229, 0.45) !important;
    box-shadow: var(--shadow-xl) !important;
}

/* Audience grid */
.audience-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.15rem;
    margin-top: 2.25rem;
}

.audience-card {
    padding: 1.4rem;
    min-height: 290px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.audience-visual {
    width: 100%;
    height: 130px;
    border-radius: var(--r-md);
    background: linear-gradient(135deg, var(--pabasa-blue-light), var(--pabasa-yellow-soft));
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    margin-bottom: 1.2rem;
    border: 1.5px solid rgba(46, 168, 229, 0.16);
}

.audience-visual img {
    width: 148px;
    max-height: 108px;
    object-fit: contain;
    display: block;
}

.audience-card h3,
.feature-card h3 {
    font-family: var(--font-display);
    color: var(--pabasa-blue-deep) !important;
    font-size: 1.06rem;
    font-weight: 900;
    margin: 0 0 0.5rem;
    background: none !important;
    -webkit-text-fill-color: initial !important;
}

.audience-card p,
.feature-card p {
    color: var(--ink-muted);
    font-size: 0.9rem;
    line-height: 1.62;
    margin: 0;
}

.audience-meta,
.feature-meta {
    font-family: var(--font-display);
    color: var(--pabasa-blue) !important;
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-top: 1.2rem;
    border-top: 1.5px solid var(--line-soft);
    padding-top: 0.9rem;
}

/* Feature grid */
.features-layout,
.feature-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.15rem;
    margin-top: 2.25rem;
}

.feature-card {
    padding: 1.4rem;
    min-height: 290px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.feature-icon {
    width: 100%;
    height: 130px;
    border-radius: var(--r-md);
    background: linear-gradient(135deg, var(--pabasa-blue-light), var(--pabasa-yellow-soft));
    border: 1.5px solid rgba(46, 168, 229, 0.16);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    margin-bottom: 1.2rem;
}

.feature-icon img {
    width: 148px;
    max-height: 108px;
    object-fit: contain;
}

@media (max-width: 992px) {
    .audience-grid,
    .features-layout,
    .feature-grid { grid-template-columns: 1fr; }
    .audience-card,
    .feature-card { min-height: auto; }
}

/* ============================================================
   WORKFLOW (if present)
   ============================================================ */
.workflow-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 0.42fr);
    gap: 1rem;
    margin-top: 2.35rem;
    align-items: stretch;
}

.workflow-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.workflow-card,
.workflow-summary {
    border-radius: var(--r-lg);
    border: 2px solid var(--line);
    box-shadow: var(--shadow-md);
}

.workflow-card {
    background: var(--surface);
    min-height: 250px;
    padding: 1.35rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.workflow-card:hover {
    transform: translateY(-3px);
    border-color: rgba(46, 168, 229, 0.4);
    box-shadow: var(--shadow-lg);
}

.workflow-step-number {
    width: 2.4rem; height: 2.4rem;
    border-radius: var(--r-sm);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--pabasa-blue-deep);
    color: #ffffff;
    font-family: var(--font-display);
    font-size: 0.9rem;
    font-weight: 900;
    margin-bottom: 1.2rem;
}

.workflow-card h3, .workflow-summary h3 {
    font-family: var(--font-display);
    color: var(--pabasa-blue-deep);
    font-size: 1.06rem;
    font-weight: 850;
    margin: 0 0 0.6rem;
}

.workflow-card p, .workflow-summary p {
    color: var(--ink-muted);
    font-size: 0.92rem;
    line-height: 1.65;
    margin: 0;
}

.workflow-meta {
    margin-top: 1.4rem;
    padding-top: 0.9rem;
    border-top: 1.5px solid var(--line-soft);
    color: var(--pabasa-blue);
    font-family: var(--font-display);
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.workflow-summary {
    background: linear-gradient(145deg, var(--pabasa-blue-deep), #0D3A5C);
    color: #ffffff;
    padding: 1.35rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
    position: relative;
}

/* ============================================================
   ADDITIONAL RESPONSIVE FIXES (Preserve desktop design)
   - Keep all desktop rules untouched above.
   - Provide tablet and narrow-phone adjustments, modal/form safety,
     and horizontal-scroll fallbacks where appropriate.
   ============================================================ */

@media (max-width: 1024px) {
    .section-wrapper { padding: 0 1rem; max-width: 980px; }
    .modern-hero { padding: 2.5rem; }
    .hero-visual-side { margin-top: 2.5rem; }
    .product-mockup-frame { transform: none; box-shadow: var(--shadow-md); }
    .floating-ui { display: none; } /* already hidden at smaller breakpoints; reinforce here */
}

/* Stack CTAs and tighten grids on narrow phones; preserve desktop spacing */
@media (max-width: 430px) {
    .modern-hero { padding: 1.25rem; }
    .hero-content-side { padding-right: 0; }
    .hero-cta-group { flex-direction: column; gap: 0.6rem; }
    .hero-cta-group .btn { width: 100%; }
    .hero-feature-grid { grid-template-columns: 1fr; gap: 0.75rem; }
    .turning-pages-image { width: 160px; height: 160px; }
    .turning-pages-grid { padding-left: 0.5rem; padding-right: 0.5rem; }
    .turning-pages-container { padding: 0 0.25rem; }
    .testimonial-slide { padding: 1rem; }
    .start-panel .card-body { padding: 1.25rem !important; }
    .support-context { min-height: 220px; }
    .support-map { grid-template-columns: 1fr; }
    .tools-preview { min-height: 260px; }
}

@media (max-width: 390px) {
    .hero-quote { left: 0.5rem; bottom: 3rem; max-width: 220px; }
    .modern-hero h1 { font-size: 1.6rem; }
    .hero-tagline { font-size: 1rem; }
    .turning-pages-image { width: 140px; height: 140px; }
    .turning-pages-arrow { width: 36px; height: 36px; font-size: 1rem; }
    .carousel-testimonial-image img { width: 100px; height: 120px; }
}

/* Ensure modals/drawers fit within viewport on small devices */
.modal-dialog { max-width: 96vw; margin: 1.5rem; }
.modal-content { max-height: calc(100vh - 3.5rem); overflow: auto; }

/* Forms: stack form rows and input groups on small screens (home-only CSS) */
@media (max-width: 576px) {
    .form-row { display: flex; flex-direction: column; gap: 0.75rem; }
    .form-row .col, .form-row [class*="col-"] { width: 100% !important; padding-right: 0; padding-left: 0; }
    .input-group { flex-direction: column; align-items: stretch; }
}

/* Horizontal-scroll fallback for wider content blocks instead of shrinking columns */
.wide-scroll, .horizontal-fallback { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.wide-scroll > * { flex-shrink: 0; }

/* Small safety adjustments to avoid overlaps on very narrow screens */
@media (max-width: 420px) {
    .hero-quote-text { font-size: 0.9rem; }
    .hero-quote-author { font-size: 0.78rem; }
}


.workflow-summary h3 { color: #ffffff; }
.workflow-summary p  { color: #c7e9f9; }

.workflow-summary-list {
    display: grid;
    gap: 0.7rem;
    margin: 1.4rem 0 0;
    padding: 0;
    list-style: none;
}

.workflow-summary-list li {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    border-top: 1px solid rgba(255,255,255,0.14);
    padding-top: 0.7rem;
    color: #e2e8f0;
    font-size: 0.84rem;
    font-weight: 700;
}

.workflow-summary-list span { color: #94a3b8; font-weight: 700; }

@media (max-width: 992px) {
    .workflow-layout, .workflow-steps { grid-template-columns: 1fr; }
}

/* ============================================================
   STORY FLOW
   ============================================================ */
.story-flow {
    margin-top: 2.4rem;
    border-top: 2px solid var(--line);
    border-bottom: 2px solid var(--line);
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.story-step {
    padding: 1.35rem 1.1rem;
    border-right: 1.5px solid var(--line);
    min-height: 185px;
    transition: background 0.2s ease;
}

.story-step:last-child { border-right: 0; }
.story-step:hover { background: var(--pabasa-blue-light); }

.story-step span {
    font-family: var(--font-display);
    color: var(--pabasa-blue) !important;
    display: block;
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    margin-bottom: 0.8rem;
    text-transform: uppercase;
}

.story-step h3 {
    color: var(--pabasa-blue-deep);
    font-family: var(--font-display);
    font-size: 1.06rem;
    font-weight: 850;
    line-height: 1.3;
    margin: 0 0 0.5rem;
}

.story-step p {
    color: var(--ink-muted);
    font-size: 0.91rem;
    line-height: 1.62;
    margin: 0;
}

.benefit-split {
    display: grid;
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
    gap: clamp(1.5rem, 4vw, 3.5rem);
    align-items: start;
    margin-top: 2.35rem;
}

.benefit-photo {
    min-height: 420px;
    border-radius: var(--r-xl);
    overflow: hidden;
    position: relative;
    border: 2.5px solid rgba(46, 168, 229, 0.18);
    box-shadow: var(--shadow-lg);
}

.benefit-photo img {
    width: 100%; height: 100%;
    min-height: 420px;
    object-fit: cover;
    display: block;
}

.benefit-photo-caption {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    background: linear-gradient(to top, rgba(16, 70, 110, 0.85), transparent);
    color: #ffffff;
    padding: 4rem 1.35rem 1.2rem;
    font-size: 0.9rem;
    font-weight: 700;
    font-family: var(--font-display);
}

.benefit-panels { display: grid; gap: 1.5rem; }

.benefit-panel {
    border-left: 4px solid var(--pabasa-blue);
    padding-left: 1.2rem;
}

.benefit-panel h3 {
    color: var(--pabasa-blue-deep);
    font-family: var(--font-display);
    font-size: 1.08rem;
    font-weight: 900;
    margin: 0 0 0.55rem;
}

.benefit-panel p {
    color: var(--ink-muted);
    font-size: 0.92rem;
    line-height: 1.62;
    margin: 0;
}

.benefit-panel ul {
    display: grid;
    gap: 0.6rem;
    list-style: none;
    margin: 0.9rem 0 0;
    padding: 0;
}

.benefit-panel li {
    color: var(--ink-muted);
    display: flex;
    gap: 0.55rem;
    font-size: 0.92rem;
    line-height: 1.5;
}

.benefit-panel li::before {
    content: '✓';
    color: var(--pabasa-blue);
    font-weight: 900;
}

@media (max-width: 992px) {
    .story-flow { grid-template-columns: 1fr 1fr; }
    .benefit-split { grid-template-columns: 1fr; }
    .benefit-photo, .benefit-photo img { min-height: 300px; }
    .story-step { border-right: 0; border-bottom: 1.5px solid var(--line); }
}

/* ============================================================
   MISC STORY PROOF LINE
   ============================================================ */
.story-proof-line {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.15rem;
    margin-top: 1.35rem;
    color: var(--ink);
    font-size: 0.88rem;
    font-weight: 800;
}

.story-proof-line span {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
}

.story-proof-line span::before {
    content: '';
    width: 0.45rem; height: 0.45rem;
    border-radius: 50%;
    background: var(--pabasa-blue);
}

/* ============================================================
   RESPONSIVE FINAL PASS
   ============================================================ */

.section-wrapper {
    max-width: min(1320px, 100%);
    width: 100%;
    margin: 0 auto;
    padding: 0 1.5rem;
}

.hero-image-section {
    height: clamp(260px, 33vw, 420px);
}

.hero-quote {
    left: clamp(1rem, 4vw, 3rem);
    bottom: clamp(2.5rem, 4.5vw, 5.5rem);
    max-width: clamp(260px, 38vw, 420px);
}

.product-mockup-frame {
    width: min(100%, 620px);
    margin: 0 auto;
}

.hero-feature-grid {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.hero-cta-group {
    flex-wrap: wrap;
    gap: 1rem;
}

.hero-cta-group .btn {
    min-width: 180px;
}

.support-map {
    grid-template-columns: minmax(280px, 0.95fr) minmax(340px, 1.05fr);
    gap: clamp(1.5rem, 2.5vw, 3rem);
}

.tools-showcase {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: clamp(1.5rem, 3vw, 2.75rem);
}

.turning-pages-container {
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 1rem;
}

.turning-pages-grid {
    gap: 1.5rem;
    scroll-snap-type: x mandatory;
    padding: 1.75rem 0 2.5rem;
}

.turning-pages-image {
    width: clamp(220px, 26vw, 280px);
    height: clamp(220px, 26vw, 280px);
    scroll-snap-align: start;
}

.carousel-testimonial {
    gap: clamp(1.25rem, 2vw, 2rem);
}

.start-panel .card-body {
    min-height: auto;
}

@media (max-width: 1023px) {
    .section-wrapper { padding: 0 1.25rem; }
    .modern-hero { padding: 2.5rem 1.75rem; }
    .hero-content-side { padding-right: 0; }
    .hero-visual-side { margin-top: 2rem; }
    .product-mockup-frame { max-width: 100%; }
    .hero-cta-group { flex-direction: column; align-items: stretch; }
    .hero-cta-group .btn { width: 100%; }
    .hero-feature-grid { gap: 1rem; }
    .support-map { grid-template-columns: 1fr; }
    .support-context { min-height: 300px; }
    .support-lane { padding: 1.2rem 1.2rem; }
    .support-lane-details { grid-template-columns: 1fr; }
    .tools-showcase { grid-template-columns: 1fr; }
    .tools-preview { min-height: 300px; }
    .tools-preview-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tool-item { grid-template-columns: 4rem minmax(0, 1fr); }
    .turning-pages-arrow { display: inline-flex; }
    .testimonial-slide { padding: 2rem 1.5rem 5rem; }
    .carousel-testimonial { flex-direction: column; align-items: stretch; }
    .carousel-testimonial-image img { width: 140px; height: 170px; }
    .carousel-testimonial-quote { font-size: 0.98rem; }
    .start-panel .card-body { padding: 2rem !important; }
}

@media (max-width: 767px) {
    .section-container { padding: 2.5rem 1rem; }
    .section-container-hero { padding: 1.8rem 1rem; }
    .modern-hero { padding: 1.75rem 1.25rem; border-radius: var(--r-lg); }
    .hero-image-section { height: clamp(240px, 36vw, 320px); }
    .hero-quote { bottom: 3rem; left: 1rem; max-width: 240px; }
    .hero-tagline { margin: 1.25rem 0 1.5rem; font-size: 1rem; }
    .hero-feature-item { padding: 0.85rem; }
    .hero-feature-item strong { font-size: 0.98rem; }
    .hero-feature-item span { font-size: 0.82rem; }
    .hero-feature-grid { grid-template-columns: 1fr; }
    .hero-cta-group { gap: 0.75rem; }
    .product-mockup-frame { padding: 1rem; box-shadow: var(--shadow-md); }
    .mockup-row { flex-direction: column; gap: 0.9rem; }
    .mockup-stack { flex-direction: row; }
    .mockup-card-sm { height: 60px; }
    .mockup-table { min-height: 90px; }
    .support-context-copy { padding: 1.25rem; }
    .support-lane { padding: 1rem; }
    .tools-preview { min-height: 260px; }
    .tools-preview-metrics { grid-template-columns: 1fr; }
    .tool-item { grid-template-columns: 1fr; gap: 1rem; }
    .tool-icon { width: 4.5rem; height: 4.5rem; }
    .tools-preview::before { top: 1rem; right: 1rem; font-size: 0.95rem; }
    .turning-pages-container { padding: 0 0.75rem; }
    .turning-pages-grid { padding: 1.5rem 0 2rem; }
    .turning-pages-image { width: clamp(180px, 40vw, 220px); height: clamp(180px, 40vw, 220px); }
    .turning-pages-arrow { width: 42px; height: 42px; font-size: 1.25rem; }
    .testimonial-slide { padding: 1.75rem 1.25rem 4.5rem; }
    .carousel-testimonial { gap: 1.25rem; }
    .carousel-testimonial-image img { width: 120px; height: 145px; }
    .carousel-testimonial-quote { font-size: 0.94rem; }
    .start-panel .card-body { padding: 1.5rem !important; }
    .start-panel h3 { font-size: 1.4rem; }
    .start-checklist { gap: 0.65rem; }
    .start-checklist li { font-size: 0.88rem; }
    .support-lane-details { gap: 0.75rem; }
}

@media (max-width: 575px) {
    .hero-cta-group { justify-content: stretch; }
    .hero-cta-group .btn { width: 100%; }
    .support-context { min-height: 260px; }
    .support-context-copy { padding: 1rem; }
    .support-lane { grid-template-columns: auto 1fr; }
    .support-lane-details { grid-template-columns: 1fr; }
    .tools-preview { padding: 1.5rem 1.25rem; }
    .turning-pages-grid { gap: 1rem; }
    .turning-pages-image { width: 170px; height: 170px; }
    .turning-pages-arrow { display: none; }
    .testimonial-slide::before { top: 0.5rem; right: 1rem; font-size: 5.5rem; }
}

@media (min-width: 1440px) {
    .section-wrapper { max-width: 1440px; padding: 0 2rem; }
    .modern-hero { padding: 4.5rem 3.5rem; }
    .hero-feature-grid { gap: 1.5rem; }
    .product-mockup-frame { max-width: 680px; }
    .support-map { gap: 3.5rem; }
    .tools-showcase { gap: 3rem; }
    .turning-pages-grid { gap: 1.75rem; }
    .testimonial-slide { min-height: 420px; }
    .start-panel .card-body { padding: 2.5rem !important; }
}

@media (min-width: 1800px) {
    .section-wrapper { max-width: 1600px; }
}

/* ============================================================
   PLATFORM TOOLS ORBIT SHOWCASE
   ============================================================ */
#key-features .tools-showcase {
    display: block;
    margin-top: 0;
    text-align: center;
}

#key-features .tools-preview {
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    color: var(--ink);
    display: block;
    margin: 0 auto;
    max-width: 720px;
    min-height: 0;
    overflow: visible;
    padding: 0;
    position: static;
}

#key-features .tools-preview::before,
#key-features .tools-preview::after {
    content: none;
}

#key-features .tools-preview p {
    color: var(--ink-muted);
    font-size: clamp(1rem, 1.3vw, 1.12rem);
    font-weight: 500;
    line-height: 1.7;
    margin: 1.35rem auto 0;
    max-width: 680px;
}

.tools-orbit {
    margin: clamp(3.25rem, 7vw, 5.75rem) auto 0;
    max-width: 980px;
    min-height: clamp(520px, 56vw, 640px);
    position: relative;
}

.tools-connectors {
    height: 100%;
    inset: 0;
    opacity: 0;
    overflow: visible;
    pointer-events: none;
    position: absolute;
    width: 100%;
    animation: toolsConnectorIn 0.8s ease 1.9s forwards;
}

.tools-connector {
    fill: none;
    stroke: rgba(46, 168, 229, 0.22);
    stroke-linecap: round;
    stroke-width: 2.5;
}

.tools-logo-hub {
    align-items: center;
    aspect-ratio: 1;
    display: flex;
    justify-content: center;
    left: 50%;
    opacity: 0;
    position: absolute;
    top: 51%;
    transform: translate(-50%, -50%) scale(0.92);
    width: clamp(170px, 20vw, 240px);
    z-index: 2;
    animation: toolsLogoIn 0.72s cubic-bezier(0.22, 1, 0.36, 1) 0.1s forwards;
}

.tools-logo-glow {
    background:
        radial-gradient(circle, rgba(255, 214, 57, 0.38) 0%, rgba(255, 214, 57, 0.14) 34%, transparent 70%),
        radial-gradient(circle, rgba(46, 168, 229, 0.25) 0%, transparent 64%);
    border-radius: 50%;
    filter: blur(10px);
    inset: -24%;
    opacity: 0;
    position: absolute;
    animation: toolsGlowIn 0.8s ease 0.65s forwards;
}

.tools-logo {
    display: block;
    filter: drop-shadow(0 18px 28px rgba(16, 70, 110, 0.16));
    max-height: 78%;
    max-width: 100%;
    object-fit: contain;
    position: relative;
}

#key-features .tool-item {
    align-items: start;
    background: rgba(255, 255, 255, 0.78);
    border: 1.5px solid rgba(46, 168, 229, 0.16);
    border-radius: var(--r-lg);
    box-shadow: 0 18px 45px rgba(16, 70, 110, 0.1) !important;
    display: grid;
    gap: 1.1rem;
    grid-template-columns: 3.65rem minmax(0, 1fr) !important;
    max-width: 360px;
    opacity: 0;
    padding: 1.35rem;
    position: absolute;
    text-align: left;
    transition: box-shadow 0.22s ease, border-color 0.22s ease;
    z-index: 3;
}

@supports (backdrop-filter: blur(16px)) {
    #key-features .tool-item {
        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
    }
}

#key-features .tool-item:hover {
    background: rgba(255, 255, 255, 0.84);
    border-color: rgba(46, 168, 229, 0.34);
    box-shadow: 0 22px 54px rgba(16, 70, 110, 0.14) !important;
}

#key-features .tool-item--top {
    left: 50%;
    top: 0;
    transform: translate(-50%, -22px);
    animation: toolsCardTopIn 0.68s cubic-bezier(0.22, 1, 0.36, 1) 1s forwards, toolsCardFloat 5.6s ease-in-out 1.7s infinite;
}

#key-features .tool-item--left {
    bottom: 4%;
    left: 5%;
    transform: translateX(-34px);
    animation: toolsCardLeftIn 0.68s cubic-bezier(0.22, 1, 0.36, 1) 1.28s forwards, toolsCardFloat 5.8s ease-in-out 2s infinite;
}

#key-features .tool-item--right {
    bottom: 4%;
    right: 5%;
    transform: translateX(34px);
    animation: toolsCardRightIn 0.68s cubic-bezier(0.22, 1, 0.36, 1) 1.48s forwards, toolsCardFloat 6s ease-in-out 2.2s infinite;
}

#key-features .tool-icon {
    align-items: center;
    background: linear-gradient(135deg, rgba(46, 168, 229, 0.14), rgba(255, 214, 57, 0.22));
    border: 1px solid rgba(46, 168, 229, 0.16);
    border-radius: var(--r-md);
    box-shadow: none;
    color: var(--pabasa-blue-deep);
    display: inline-flex;
    flex-shrink: 0;
    font-size: 1.6rem;
    height: 3.65rem;
    justify-content: center;
    overflow: hidden;
    width: 3.65rem;
}

#key-features .tool-item h3 {
    color: var(--pabasa-blue-deep);
    font-family: var(--font-display);
    font-size: 1.18rem;
    font-weight: 900;
    line-height: 1.1;
    margin: 0 0 0.45rem;
}

#key-features .tool-item p {
    color: var(--ink-muted);
    font-size: 0.94rem;
    font-weight: 500;
    line-height: 1.5;
    margin: 0;
    max-width: none;
}

@keyframes toolsLogoIn {
    to {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }
}

@keyframes toolsGlowIn {
    to { opacity: 1; }
}

@keyframes toolsConnectorIn {
    to { opacity: 1; }
}

@keyframes toolsCardTopIn {
    to {
        opacity: 1;
        transform: translate(-50%, 0);
    }
}

@keyframes toolsCardLeftIn {
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes toolsCardRightIn {
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes toolsCardFloat {
    0%, 100% { margin-top: 0; }
    50% { margin-top: -6px; }
}

@media (max-width: 992px) {
    .tools-orbit {
        max-width: 820px;
        min-height: 560px;
    }

    #key-features .tool-item {
        max-width: 330px;
        padding: 1.15rem;
    }

    #key-features .tool-item--left { left: 0; }
    #key-features .tool-item--right { right: 0; }
}

@media (max-width: 576px) {
    .tools-orbit {
        display: grid;
        gap: 1rem;
        margin-top: 2.4rem;
        min-height: 0;
        place-items: center;
    }

    .tools-connectors {
        display: none;
    }

    .tools-logo-hub,
    #key-features .tool-item,
    #key-features .tool-item--top,
    #key-features .tool-item--left,
    #key-features .tool-item--right {
        inset: auto;
        position: relative;
        transform: none;
    }

    .tools-logo-hub {
        grid-row: 1;
        margin-bottom: 0.65rem;
        transform: scale(0.92);
        width: min(62vw, 210px);
        animation: toolsLogoMobileIn 0.72s cubic-bezier(0.22, 1, 0.36, 1) 0.1s forwards;
    }

    #key-features .tool-item {
        animation: toolsCardMobileIn 0.6s ease forwards, toolsCardFloat 5.8s ease-in-out 1.2s infinite;
        max-width: 100%;
        width: min(100%, 360px);
    }

    #key-features .tool-item--top { animation-delay: 0.75s, 1.4s; }
    #key-features .tool-item--left { animation-delay: 0.95s, 1.6s; }
    #key-features .tool-item--right { animation-delay: 1.15s, 1.8s; }

    @keyframes toolsLogoMobileIn {
        to {
            opacity: 1;
            transform: scale(1);
        }
    }

    @keyframes toolsCardMobileIn {
        from {
            opacity: 0;
            transform: translateY(18px);
        }
        to {
            opacity: 1;
            transform: translateY(0);
        }
    }
}

/* ============================================================
   MOBILE-FIRST RESPONSIVE REPAIR
   Keeps desktop premium layouts, removes phone-width overflow.
   ============================================================ */
@media (max-width: 767px) {
    html,
    body {
        max-width: 100%;
        overflow-x: hidden;
    }

    main.flex-grow-1.py-4 > .container {
        max-width: 100%;
        padding-left: 0;
        padding-right: 0;
    }

    .section-container,
    .section-container-hero {
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 1.5rem !important;
        padding-right: 1.5rem !important;
        width: 100% !important;
    }

    .section-wrapper {
        max-width: 420px;
        padding-left: 0;
        padding-right: 0;
    }

    .hero-stage {
        padding-top: 0;
    }

    .hero-stage::before,
    .hero-stage::after,
    .hero-decor {
        display: none;
    }

    .browser-window {
        border-radius: 22px;
        padding: 0.75rem;
        transform: none;
    }

    .browser-body {
        display: flex;
        flex-direction: column;
        gap: 1.6rem;
        padding: 1.1rem;
    }

    .hero-copy {
        text-align: left;
    }

    .hero-copy h1 {
        font-size: clamp(2.25rem, 10vw, 2.65rem);
        line-height: 1.05;
        max-width: none;
    }

    .hero-copy p {
        font-size: 1rem;
        max-width: none;
    }

    .hero-cta-group {
        align-items: stretch;
        flex-direction: column;
        gap: 0.75rem;
        width: 100%;
    }

    .hero-cta-group .btn {
        width: 100%;
    }

    .hero-dashboard {
        margin: 0 auto;
        max-width: 360px;
        min-height: 300px;
        width: 100%;
    }

    .dashboard-panel {
        max-width: 100%;
    }

    .dashboard-panel--main {
        inset: 0 0 3.2rem 0;
    }

    .dashboard-panel--side {
        right: 0;
        width: 50%;
    }

    .dashboard-panel--floating {
        left: 0;
        width: 60%;
    }

    #key-features .tools-showcase {
        text-align: center;
    }

    #key-features .tools-preview {
        max-width: 420px;
    }

    .tools-orbit {
        display: grid;
        gap: 1rem;
        margin-top: 2.5rem;
        max-width: 420px;
        min-height: 0;
        place-items: center;
        width: 100%;
    }

    .tools-connectors {
        display: none;
    }

    .tools-logo-hub,
    #key-features .tool-item,
    #key-features .tool-item--top,
    #key-features .tool-item--left,
    #key-features .tool-item--right {
        inset: auto;
        position: relative;
        transform: none;
    }

    .tools-logo-hub {
        grid-row: 1;
        margin: 0 auto 0.75rem;
        width: min(64vw, 220px);
    }

    #key-features .tool-item,
    .audience-card,
    .feature-card,
    .support-lane,
    .start-panel,
    .testimonial-slide {
        margin-left: auto;
        margin-right: auto;
        max-width: 400px;
        width: 100%;
    }

    #key-features .tool-item {
        grid-template-columns: 3.4rem minmax(0, 1fr) !important;
        padding: 1.15rem;
    }

    #key-features .tool-icon {
        height: 3.4rem;
        width: 3.4rem;
    }

    .turning-pages-container {
        margin-left: auto !important;
        margin-right: auto !important;
        max-width: 100% !important;
        overflow: visible;
        padding-left: 0 !important;
        padding-right: 0 !important;
        width: 100% !important;
    }

    .turning-pages-slider {
        max-width: 100%;
        overflow: hidden;
        padding-left: 2.75rem !important;
        padding-right: 2.75rem !important;
        width: 100%;
    }

    .turning-pages-grid {
        max-width: 100%;
        overflow-x: auto;
        padding-left: 0;
        padding-right: 0;
    }

    .turning-pages-arrow {
        display: inline-flex !important;
        height: 42px;
        width: 42px;
        z-index: 4 !important;
    }
}

/* Alternating audience story inspired by the supplied layout. */
.audience-story {
    width: min(100%, 1080px);
    margin: 0 auto;
}

.audience-story__heading {
    max-width: 720px;
    margin: 0 auto clamp(3.5rem, 7vw, 6rem);
    text-align: center;
}

.audience-story__heading h2 {
    color: var(--pabasa-blue-deep);
    font-family: var(--font-display);
    font-size: clamp(2.25rem, 5vw, 4.5rem);
    font-weight: 900;
    line-height: 1;
    margin: 0.65rem 0 0;
}

.audience-row {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(280px, 0.92fr);
    align-items: center;
    gap: clamp(2.5rem, 8vw, 7rem);
    min-height: clamp(360px, 48vw, 510px);
    padding: clamp(1rem, 2vw, 2rem) 0;
}

.audience-row--reverse .audience-row__visual { order: 2; }
.audience-row--reverse .audience-row__copy { order: 1; }

.audience-row__visual {
    position: relative;
    display: grid;
    place-items: center;
    isolation: isolate;
    min-height: 330px;
}

.audience-row__visual::before,
.audience-row__visual::after {
    content: "";
    position: absolute;
    z-index: -1;
    border-radius: 50%;
}

.audience-row__visual::before {
    width: 76%;
    aspect-ratio: 1;
    background: linear-gradient(145deg, rgba(93, 198, 241, 0.28), rgba(255, 220, 86, 0.2));
    filter: blur(2px);
}

.audience-row__visual::after {
    width: 18px;
    height: 18px;
    top: 12%;
    left: 9%;
    background: var(--pabasa-yellow);
    box-shadow: 34px 232px 0 -4px var(--pabasa-blue), 380px 40px 0 -5px rgba(46, 168, 229, 0.55);
}

.audience-row__orb {
    position: absolute;
    right: 7%;
    bottom: 12%;
    width: 42px;
    height: 42px;
    border: 9px solid rgba(46, 168, 229, 0.3);
    border-radius: 50%;
    animation: audienceOrbFloat 4.5s ease-in-out infinite;
}

.audience-row__visual img {
    width: min(100%, 470px);
    height: clamp(280px, 36vw, 390px);
    object-fit: cover;
    border-radius: 0;
    box-shadow: 0 25px 55px rgba(12, 73, 113, 0.18);
    transform: rotate(-1.5deg);
}

.audience-row--reverse .audience-row__visual img {
    border-radius: 0;
    transform: rotate(1.5deg);
}

.audience-row__copy { max-width: 440px; }

.audience-row__number {
    color: var(--pabasa-blue);
    display: block;
    font-family: var(--font-display);
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.18em;
    margin-bottom: 0.75rem;
}

.audience-row__copy h3 {
    color: var(--pabasa-blue-deep);
    font-family: var(--font-display);
    font-size: clamp(2rem, 4vw, 3.5rem);
    font-weight: 900;
    line-height: 1;
    margin: 0 0 1rem;
}

.audience-row__copy p {
    color: var(--ink-muted);
    font-size: clamp(0.98rem, 1.25vw, 1.08rem);
    line-height: 1.7;
    margin: 0;
    max-width: 410px;
}

@keyframes audienceOrbFloat {
    0%, 100% { transform: translateY(0) rotate(0); }
    50% { transform: translateY(-12px) rotate(12deg); }
}

@media (max-width: 768px) {
    .audience-story__heading { margin-bottom: 2.5rem; }
    .audience-row {
        grid-template-columns: 1fr;
        gap: 1.25rem;
        min-height: 0;
        padding: 2.5rem 0;
        text-align: center;
    }
    .audience-row--reverse .audience-row__visual,
    .audience-row--reverse .audience-row__copy { order: initial; }
    .audience-row__visual { min-height: 260px; }
    .audience-row__visual img { height: clamp(240px, 72vw, 340px); }
    .audience-row__copy { margin: 0 auto; }
}

@media (prefers-reduced-motion: reduce) {
    .audience-row__orb { animation: none; }
}

/* Keep the opening learning-space panel fitted to the available viewport. */
.section-container-hero {
    display: grid;
    align-items: center;
    min-height: calc(100svh - 86px);
    padding-block: clamp(1rem, 3.5vh, 2.5rem);
}

.section-container-hero > .section-wrapper {
    width: min(100%, 1180px);
}

.section-container-hero .hero-stage {
    padding-block: 0;
}

.section-container-hero .browser-window {
    width: 100%;
    max-width: 100%;
}

.section-container-hero .browser-body {
    grid-template-columns: minmax(0, 1.05fr) minmax(280px, 0.95fr);
    gap: clamp(1.25rem, 3vw, 2rem);
    padding: clamp(1.1rem, 2.5vh, 1.8rem) clamp(1rem, 2.5vw, 1.8rem);
}

.section-container-hero .hero-copy h1 {
    font-size: clamp(2rem, min(4vw, 6vh), 3.2rem);
}

.section-container-hero .hero-copy p {
    font-size: clamp(0.95rem, 1.2vw, 1.04rem);
}

.section-container-hero .hero-image-showcase {
    min-height: 0;
    height: min(48vh, 405px);
}

.section-container-hero .hero-main-image {
    width: 100%;
    height: 100%;
    max-height: none;
}

@media (max-width: 900px) {
    .section-container-hero {
        min-height: auto;
    }

    .section-container-hero .browser-body {
        grid-template-columns: 1fr;
    }

    .section-container-hero .hero-image-showcase {
        height: clamp(250px, 45vw, 360px);
    }
}

@media (max-width: 767px) {
    .section-container-hero {
        display: block;
        min-height: auto;
        padding-top: 1rem !important;
        padding-bottom: 2rem !important;
    }

    .section-container-hero > .section-wrapper {
        max-width: 100%;
        width: 100%;
    }

    .section-container-hero .browser-body {
        gap: 1.25rem;
        padding: clamp(0.8rem, 4vw, 1.1rem);
    }

    .section-container-hero .hero-copy h1 {
        font-size: clamp(1.9rem, 9vw, 2.65rem);
    }

    .section-container-hero .hero-image-showcase {
        height: clamp(220px, 68vw, 320px);
    }
}

@media (max-height: 700px) and (min-width: 901px) {
    .section-container-hero {
        min-height: auto;
    }

    .section-container-hero .hero-image-showcase {
        height: min(42vh, 310px);
    }
}

/* 3D Turning Pages carousel, based on the supplied page-flip reference. */
.section-container-gallery .turning-pages-container {
    display: block !important;
    width: 100% !important;
    max-width: 1120px !important;
    margin: 0 auto !important;
    padding: clamp(1rem, 3vw, 2rem) clamp(3.25rem, 7vw, 6rem) !important;
}

.turning-pages-stage {
    position: relative;
    display: grid;
    place-items: center;
    min-height: clamp(360px, 48vw, 560px);
    perspective: 1600px;
    perspective-origin: 50% 45%;
    width: 100%;
}

.turning-pages-count {
    position: absolute;
    top: 0;
    left: 50%;
    z-index: 30;
    transform: translateX(-50%);
    color: var(--pabasa-blue-deep);
    font-family: var(--font-display);
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.section-container-gallery .turning-pages-slider {
    position: relative;
    display: block !important;
    width: 100% !important;
    height: clamp(300px, 41vw, 470px);
    max-width: 780px !important;
    overflow: visible !important;
    padding: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    transform-style: preserve-3d;
}

.section-container-gallery .turning-pages-grid {
    position: relative;
    width: 100%;
    height: 100%;
    max-width: none !important;
    display: block !important;
    overflow: visible !important;
    padding: 0 !important;
    transform-style: preserve-3d;
}

.section-container-gallery .turning-pages-image {
    --page-offset: 0;
    --page-depth: 1;
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    overflow: hidden;
    border: 8px solid rgba(255, 255, 255, 0.96);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 24px 60px rgba(16, 70, 110, 0.22);
    opacity: calc(1 - (var(--page-offset) * 0.08));
    z-index: var(--page-depth);
    transform-origin: 3% 50%;
    transform: translate3d(calc(var(--page-offset) * 19px), calc(var(--page-offset) * 2px), calc(var(--page-offset) * -55px)) rotateY(calc(var(--page-offset) * -1.4deg));
    transition: transform 760ms cubic-bezier(.2, .72, .18, 1), opacity 520ms ease, box-shadow 520ms ease;
    backface-visibility: hidden;
    will-change: transform;
}

.section-container-gallery .turning-pages-image::after {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 12%;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(7, 48, 79, 0.2), transparent);
    opacity: 0.65;
}

.section-container-gallery .turning-pages-image.is-active {
    opacity: 1;
    box-shadow: 0 30px 75px rgba(16, 70, 110, 0.28);
    transform: translate3d(0, 0, 0) rotateY(0deg);
}

.section-container-gallery .turning-pages-image.is-turning-forward {
    z-index: 40;
    opacity: 0;
    transform: translate3d(-48%, 4px, 70px) rotateY(-112deg);
}

.section-container-gallery .turning-pages-image.is-turning-back {
    z-index: 40;
    opacity: 0;
    transform-origin: 97% 50%;
    transform: translate3d(48%, 4px, 70px) rotateY(112deg);
}

.section-container-gallery .turning-pages-image.is-turned {
    z-index: 0;
    opacity: 0;
    pointer-events: none;
    transform: translate3d(-48%, 4px, -80px) rotateY(-112deg);
    transition: none;
}

.section-container-gallery .turning-pages-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 10px;
    transform: none !important;
}

.section-container-gallery .turning-pages-arrow {
    position: absolute !important;
    top: 50% !important;
    z-index: 50 !important;
    display: inline-grid !important;
    place-items: center;
    transform: translateY(-50%) !important;
}

.section-container-gallery #sliderLeftBtn { left: -3.5rem !important; }
.section-container-gallery #sliderRightBtn { right: -3.5rem !important; }

@media (max-width: 767px) {
    .section-container-gallery .turning-pages-container {
        padding: 1rem 2.75rem !important;
    }
    .turning-pages-stage { min-height: clamp(290px, 88vw, 410px); }
    .section-container-gallery .turning-pages-slider {
        height: clamp(240px, 68vw, 340px);
    }
    .section-container-gallery .turning-pages-image {
        border-width: 5px;
        border-radius: 13px;
        transform: translate3d(calc(var(--page-offset) * 8px), calc(var(--page-offset) * 2px), calc(var(--page-offset) * -32px)) rotateY(calc(var(--page-offset) * -1deg));
    }
    .section-container-gallery #sliderLeftBtn { left: -2.5rem !important; }
    .section-container-gallery #sliderRightBtn { right: -2.5rem !important; }
}

@media (prefers-reduced-motion: reduce) {
    .section-container-gallery .turning-pages-image {
        transition-duration: 0.01ms;
    }
}

/* Extra-small device fit: keep text and media inside narrow phone viewports. */
@media (max-width: 480px) {
    .section-container,
    .section-container-hero {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }

    .section-wrapper {
        width: 100%;
        max-width: 100%;
        padding-left: 0;
        padding-right: 0;
    }

    .section-container-hero .browser-window {
        border-radius: 16px;
        padding: 0.5rem;
    }

    .section-container-hero .browser-body {
        padding: 0.8rem;
    }

    .section-container-hero .hero-chip {
        font-size: 0.68rem;
        letter-spacing: 0.08em;
        margin-bottom: 0.75rem;
        padding: 0.38rem 0.65rem;
    }

    .section-container-hero .hero-copy h1 {
        font-size: clamp(1.7rem, 8.5vw, 2rem);
        line-height: 1.08;
        overflow-wrap: break-word;
    }

    .section-container-hero .hero-copy p,
    .audience-row__copy p,
    .tools-preview p {
        font-size: 0.94rem;
        line-height: 1.6;
    }

    .section-container-hero .hero-image-showcase {
        height: clamp(190px, 62vw, 255px);
    }

    .audience-story__heading h2,
    .tools-preview h2 {
        font-size: clamp(1.75rem, 9vw, 2rem) !important;
        line-height: 1.04 !important;
        overflow-wrap: break-word;
    }

    .audience-row__copy h3 {
        font-size: clamp(1.65rem, 8.5vw, 1.95rem);
        line-height: 1.06;
    }

    .audience-row {
        padding: 1.75rem 0;
    }

    .audience-row__visual {
        min-height: 210px;
    }

    .audience-row__visual img {
        height: clamp(205px, 66vw, 270px);
    }

    .turning-pages-title {
        font-size: clamp(1.35rem, 7vw, 1.65rem);
        line-height: 1.1;
        overflow-wrap: anywhere;
    }

    .turning-pages-subtitle {
        font-size: 0.95rem;
    }

    .section-container-gallery .turning-pages-container {
        padding: 0.75rem 2rem !important;
    }

    .turning-pages-stage {
        min-height: clamp(255px, 84vw, 350px);
    }

    .section-container-gallery .turning-pages-slider {
        height: clamp(215px, 64vw, 295px);
    }

    .section-container-gallery #sliderLeftBtn { left: -1.75rem !important; }
    .section-container-gallery #sliderRightBtn { right: -1.75rem !important; }

    .section-container-gallery .turning-pages-arrow {
        width: 36px !important;
        height: 36px !important;
        font-size: 1rem !important;
    }

    .hero-cta-group .btn {
        min-height: 44px;
        font-size: 0.92rem;
    }
}

@media (max-width: 350px) {
    .section-container,
    .section-container-hero {
        padding-left: 0.75rem !important;
        padding-right: 0.75rem !important;
    }

    .section-container-hero .hero-copy h1 {
        font-size: 1.65rem;
    }

    .audience-story__heading h2,
    .tools-preview h2 {
        font-size: 1.7rem !important;
    }
}
