:root {
    --primary: #3156ed;
    --primary-dark: #2543d2;

    --green: #0b9f4d;
    --green-dark: #078b43;

    --text: #101a4b;
    --muted: #596684;

    --background: #f7f9ff;

    --white: #ffffff;

    --border: #dfe5f3;

    --shadow:
        0 18px 55px rgba(35, 61, 125, 0.10);
}


/* =====================================================
   RESET
===================================================== */

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;

    font-family:
        Inter,
        ui-sans-serif,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;

    color: var(--text);

    background:
        linear-gradient(
            135deg,
            #ffffff 0%,
            #f3f7ff 55%,
            #eefbf4 100%
        );
}


/* =====================================================
   NAVIGATION
===================================================== */

.navbar {
    height: 70px;

    background:
        rgba(255, 255, 255, 0.94);

    border-bottom:
        1px solid var(--border);

    display: flex;

    align-items: center;

    justify-content: space-between;

    padding:
        0 5%;

    position: sticky;

    top: 0;

    z-index: 100;

    backdrop-filter: blur(10px);
}


.brand {
    display: flex;

    align-items: center;

    gap: 10px;
}


.brand-logo {
    display: block;
    width: 42px;
    height: 42px;
    flex-shrink: 0;
    object-fit: contain;
}


.brand-name {
    font-size: 22px;

    font-weight: 800;
}


.brand-tagline {
    font-size: 11px;

    color: var(--muted);
}


.navbar nav {
    display: flex;

    align-items: center;

    gap: 35px;
}


.navbar nav a {
    color: var(--text);

    text-decoration: none;

    font-size: 14px;
}


.navbar nav a:hover {
    color: var(--primary);
}


.navbar nav a.active {
    color: var(--primary);

    font-weight: 700;
}


.login-nav {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    color: var(--text);
    text-decoration: none;
}

.login-icon {
    font-size: 21px;
    line-height: 1;
}

.login-label {
    font-size: 11px;
    line-height: 1;
}

.login-nav:hover {
    color: var(--primary);
}


/* =====================================================
   HERO
===================================================== */

.hero {
    max-width: 1400px;

    margin: auto;

    padding:
        70px 5% 40px;

    display: grid;

    grid-template-columns:
        1.25fr
        0.9fr;

    gap: 60px;

    align-items: center;
}


.eyebrow {
    color: var(--primary);

    font-size: 12px;

    font-weight: 800;

    letter-spacing: 2px;

    margin-bottom: 15px;
}


.hero h1 {
    font-size: 52px;

    line-height: 1.08;

    letter-spacing: -2px;

    margin:
        0 0 20px;
}


.hero h1 span {
    color: var(--green);
}


.hero-description {
    color: var(--muted);

    font-size: 19px;

    line-height: 1.6;

    max-width: 700px;

    margin-bottom: 35px;
}


/* =====================================================
   UPLOAD OPTIONS
===================================================== */

.upload-options {
    display: grid;

    grid-template-columns: repeat(3, minmax(0, 1fr));

    align-items: center;
    gap: 14px;
}

body[data-google-photos-enabled="false"] .upload-options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

body[data-google-photos-enabled="false"] .google-photos-card,
body[data-google-photos-enabled="false"] #googlePhotosPickerPanel,
body[data-google-photos-enabled="false"] #uploadGooglePhotosButton,
body[data-google-photos-enabled="false"] .google-photos-upload-button {
    display: none !important;
}


#workspaceAfterImages,
#workspaceAfterFolder {
    display: none;
}

.or-divider {
    display: none;
}

.upload-options > .or-divider {
    display: none;
}

.google-photos-icon {
    position: relative;
    background: #f7f9ff;
}

.photos-dot {
    position: absolute;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    opacity: 0.92;
}

.photos-blue { background: #4285f4; left: 2px; top: 2px; }
.photos-red { background: #ea4335; right: 2px; top: 2px; }
.photos-yellow { background: #fbbc04; left: 2px; bottom: 2px; }
.photos-green { background: #34a853; right: 2px; bottom: 2px; }

.photos-center {
    position: absolute;
    width: 17px;
    height: 17px;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: white;
    box-shadow: 0 1px 5px rgba(16, 26, 75, 0.12);
}

.google-photos-card {
    border-color: #d8def0;
}

.google-photos-status {
    min-height: 18px;
    margin: 8px 0 10px !important;
    color: var(--muted);
    font-size: 12px !important;
}

.google-photos-status.is-error,
.google-photos-picker-message.is-error {
    color: #b42318;
}

.google-photos-connect,
.google-photos-disconnect {
    width: 100%;
    min-height: 44px;
    margin-top: 8px;
}

.google-photos-disconnect {
    background: #fff;
    color: var(--muted);
    border: 1px solid var(--border);
}

.google-photos-picker {
    margin-top: 16px;
    padding: 20px;
    background: white;
    border: 1px solid var(--border);
    border-radius: 18px;
    box-shadow: var(--shadow);
}

.google-photos-picker-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.google-photos-picker-header h2 {
    margin: 0;
    font-size: 18px;
}

.google-photos-picker-header p {
    margin: 8px 0 0;
    color: var(--muted);
    font-size: 13px;
}

.google-photos-media-items {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 10px;
    margin: 16px 0;
}

.google-photos-media-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    min-width: 0;
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: 12px;
    font-size: 13px;
}

.google-photos-media-item input {
    flex: 0 0 auto;
    margin-top: 2px;
    accent-color: var(--primary);
}

.google-photos-media-item span {
    min-width: 0;
    overflow-wrap: anywhere;
}

.google-photos-media-item small {
    display: block;
    margin-top: 4px;
    color: var(--muted);
    font-size: 11px;
}

.google-photos-picker > .primary-button {
    max-width: 260px;
}

button:focus-visible,
a:focus-visible,
input:focus-visible {
    outline: 3px solid rgba(91, 92, 226, 0.45);
    outline-offset: 2px;
}


.upload-card {
    background:
        rgba(255, 255, 255, 0.85);

    border:
        1.5px solid #b7c8ff;

    border-radius: 22px;

    padding: 25px;

    box-shadow: var(--shadow);

    transition:
        transform 0.2s,
        box-shadow 0.2s;
}


.upload-card:hover {
    transform:
        translateY(-3px);

    box-shadow:
        0 25px 60px rgba(35, 61, 125, 0.15);
}


.folder-card {
    border-color:
        #a9e2c4;
}


.upload-icon {
    width: 50px;

    height: 50px;

    border-radius: 14px;

    display: grid;

    place-items: center;

    background: #e6edff;

    font-size: 24px;

    margin-bottom: 15px;
}


.folder-card .upload-icon {
    background: #def8e9;
}


.upload-card h2 {
    font-size: 19px;

    margin:
        0 0 7px;
}


.upload-card p {
    color: var(--muted);

    font-size: 14px;

    margin:
        0 0 18px;
}


.upload-card small {
    display: block;

    text-align: center;

    color: var(--muted);

    font-size: 11px;

    margin-top: 12px;
}


.or-divider {
    display: grid;

    place-items: center;
}


.or-divider span {
    width: 42px;

    height: 42px;

    border-radius: 50%;

    background: white;

    box-shadow: var(--shadow);

    display: grid;

    place-items: center;

    font-size: 11px;

    font-weight: 800;
}


/* =====================================================
   BUTTONS
===================================================== */

.primary-button {
    width: 100%;

    border: 0;

    border-radius: 12px;

    padding:
        13px 18px;

    color: white;

    background:
        linear-gradient(
            135deg,
            var(--primary),
            var(--primary-dark)
        );

    font-size: 14px;

    font-weight: 750;

    cursor: pointer;

    transition:
        transform 0.15s,
        opacity 0.15s;
}


.primary-button:hover {
    transform:
        translateY(-1px);
}


.primary-button:disabled {
    opacity: 0.55;

    cursor: not-allowed;
}


.primary-button.green {
    background:
        linear-gradient(
            135deg,
            var(--green),
            var(--green-dark)
        );
}


/* =====================================================
   HERO IMAGE COMPARISON
===================================================== */

.hero-visual {
    position: relative;

    width: 100%;
}


.comparison {
    display: flex;

    align-items: center;

    justify-content: center;

    gap: 0;
}


/* =====================================================
   IMAGE FRAME
===================================================== */

.image-preview {
    width: 230px;

    height: 310px;

    border-radius: 25px;

    /*
     * No artificial beige background.
     */

    background: transparent;

    /*
     * White outer frame.
     */

    border:
        7px solid white;

    /*
     * Important:
     * Remove padding so image can occupy
     * the complete available area.
     */

    padding: 0;

    position: relative;

    overflow: hidden;

    box-shadow: var(--shadow);
}


/* =====================================================
   PREVIEW HEADER
===================================================== */

.preview-header {
    position: absolute;

    top: 12px;

    left: 12px;

    right: 12px;

    z-index: 10;

    display: flex;

    justify-content: space-between;

    align-items: center;

    pointer-events: none;
}


.preview-header span,
.preview-header strong {
    background: white;

    padding:
        7px 11px;

    border-radius: 20px;

    font-size: 11px;

    box-shadow:
        0 3px 12px rgba(0, 0, 0, 0.08);
}


.preview-header strong {
    color: white;

    background: #777;
}


.avif-size-label {
    background:
        var(--green) !important;
}


/* =====================================================
   IMAGE CONTAINER
===================================================== */

.preview-image-container {
    width: 100%;
    height: 100%;
    overflow: hidden;
    position: relative;
}

.comparison-image {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center;
}


/* =====================================================
   AVIF PLACEHOLDER
===================================================== */

.avif-placeholder {
    position: absolute;

    left: 50%;

    top: 50%;

    transform:
        translate(-50%, -50%);

    background:
        rgba(255, 255, 255, 0.92);

    color: var(--muted);

    padding:
        10px 15px;

    border-radius: 20px;

    font-size: 11px;

    font-weight: 700;

    white-space: nowrap;

    box-shadow:
        0 5px 20px rgba(0, 0, 0, 0.08);
}


/* =====================================================
   COMPARISON ARROW
===================================================== */

.comparison-arrow {
    width: 55px;

    height: 55px;

    border-radius: 50%;

    background: white;

    display: grid;

    place-items: center;

    font-size: 35px;

    color: var(--green);

    box-shadow: var(--shadow);

    z-index: 10;

    flex-shrink: 0;
}


/* =====================================================
   SMALLER BADGE
===================================================== */

.smaller-badge {
    position: absolute;

    bottom: 18px;

    right: 10px;

    z-index: 20;

    background: var(--green);

    color: white;

    padding:
        10px 14px;

    border-radius: 20px;

    font-size: 12px;

    font-weight: 800;

    box-shadow:
        0 4px 15px rgba(0, 0, 0, 0.12);
}


/* =====================================================
   VISUAL MESSAGE
===================================================== */

.visual-message {
    text-align: center;

    margin-top: 18px;

    font-size: 16px;

    transform:
        rotate(-2deg);
}


.visual-message strong {
    color: var(--green);
}


/* =====================================================
   BENEFITS
===================================================== */

.benefits {
    margin:
        20px 5% 40px;

    background: white;

    border:
        1px solid var(--border);

    border-radius: 22px;

    box-shadow: var(--shadow);

    display: grid;

    grid-template-columns:
        repeat(5, 1fr);

    padding: 18px;
}


.benefit {
    display: flex;

    gap: 10px;

    padding:
        8px 18px;

    border-right:
        1px solid var(--border);
}


.benefit:last-child {
    border-right: 0;
}


.benefit-icon {
    font-size: 18px;
}


.benefit strong {
    display: block;

    font-size: 13px;
}


.benefit small {
    display: block;

    margin-top: 4px;

    color: var(--muted);

    font-size: 10px;
}


/* =====================================================
   WORKSPACE
===================================================== */

.workspace {
    margin:
        40px 5%;

    padding: 25px;

    background: white;

    border:
        1px solid var(--border);

    border-radius: 24px;

    box-shadow: var(--shadow);
}


#workspaceAfterImages,
#workspaceAfterFolder,
#workspaceDesktopSlot {
    display: none;
}


.hidden {
    display: none !important;
}


.workspace-header {
    display: flex;

    justify-content: space-between;

    align-items: center;

    gap: 25px;
}


.workspace-header h2 {
    margin: 0;

    font-size: 21px;
}


.workspace-header h2 span {
    font-size: 11px;

    background: #def8e9;

    color: var(--green);

    padding:
        7px 11px;

    border-radius: 20px;

    margin-left: 8px;
}


.workspace-header p {
    color: var(--muted);

    font-size: 13px;
}


.conversion-controls {
    display: flex;

    align-items: center;

    gap: 15px;
}


.conversion-controls label {
    border:
        1px solid var(--border);

    border-radius: 12px;

    padding:
        11px 14px;

    display: flex;

    align-items: center;

    gap: 10px;

    font-size: 12px;
}

.quality-label-text {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.quality-hint {
    color: var(--muted);
    font-size: 11px;
    font-weight: 400;
    white-space: nowrap;
}


.conversion-controls input {
    accent-color:
        var(--primary);
}


.conversion-controls output {
    font-weight: 800;
}


/* =====================================================
   TABLE
===================================================== */

.table-container {
    overflow-x: auto;

    margin-top: 25px;
}


/* =====================================================
   TABLE
===================================================== */

.table-container {
    overflow-x: auto;
    margin-top: 25px;
}

table {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
    font-size: 12px;
}

/*
 * Keep all 8 columns evenly spaced.
 * Each column gets exactly the same width.
 */
th,
td {
    width: 12.5%;
    box-sizing: border-box;
    padding: 13px 16px;
}

th {
    color: #68738f;
    text-align: left;
    border-bottom: 1px solid var(--border);
}

td {
    border-bottom: 1px solid #edf0f6;
}

/* Image column */
td img {
    width: 55px;
    height: 45px;
    object-fit: cover;
    border-radius: 8px;
}

.file-name {
    font-weight: 700;
    overflow-wrap: anywhere;
}

.file-name small {
    display: block;
    color: var(--muted);
    font-weight: 400;
    margin-top: 4px;
}

.reduction-badge {
    display: inline-block;
    background: #def8e9;
    color: var(--green);
    padding: 5px 9px;
    border-radius: 15px;
    font-weight: 800;
}


th {
    color: #68738f;

    text-align: left;

    padding: 13px;

    border-bottom:
        1px solid var(--border);
}


td {
    padding: 12px;

    border-bottom:
        1px solid #edf0f6;
}


td img {
    width: 55px;

    height: 45px;

    object-fit: cover;

    border-radius: 8px;
}


.file-name {
    font-weight: 700;
}


.file-name small {
    display: block;

    color: var(--muted);

    font-weight: 400;

    margin-top: 4px;
}


.reduction-badge {
    display: inline-block;

    background: #def8e9;

    color: var(--green);

    padding:
        5px 9px;

    border-radius: 15px;

    font-weight: 800;
}


.secondary-button {
    border:
        1px solid #b9c5df;

    background: white;

    color: var(--text);

    padding:
        12px 18px;

    border-radius: 12px;

    font-weight: 700;

    cursor: pointer;
}


.secondary-button:disabled {
    cursor: not-allowed;
    opacity: 0.55;
}


.download-button {
    border: 0;

    background: #dfe4eb;

    color: #8790a2;

    padding:
        13px 22px;

    border-radius: 12px;

    font-weight: 800;
}


.download-button.ready {
    background:
        var(--green);

    color: white;

    cursor: pointer;
}


.workspace-footer {
    display: flex;

    justify-content: space-between;

    margin-top: 20px;
}


/* =====================================================
   HOW IT WORKS
===================================================== */

.how-section {
    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 20px;

    margin:
        80px 5%;
}


.how-card {
    background: white;

    border:
        1px solid var(--border);

    border-radius: 20px;

    padding: 25px;
}


.how-card > span {
    color: var(--primary);

    font-weight: 900;
}


.how-card h2 {
    margin:
        12px 0 5px;
}


.how-card p {
    color: var(--muted);

    font-size: 14px;

    line-height: 1.5;
}


/* =====================================================
   FAQ
===================================================== */

.faq-section {
    max-width: 800px;

    margin:
        70px auto;

    padding:
        0 25px;
}


.faq-section h2 {
    font-size: 30px;
}


.faq-section p {
    color: var(--muted);

    line-height: 1.7;
}


/* =====================================================
   FOOTER
===================================================== */

footer {
    border-top:
        1px solid var(--border);

    padding:
        35px;

    text-align: center;

    color: var(--muted);

    font-size: 12px;
}


footer strong {
    color: var(--text);

    margin-right: 10px;
}


/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 950px) {

    .hero {
        grid-template-columns: 1fr;
    }


    .hero-visual {
        order: -1;
    }


    .benefits {
        grid-template-columns:
            repeat(2, 1fr);
    }


    .benefit {
        border: 0;
    }


    .workspace-header {
        flex-direction: column;

        align-items: stretch;
    }


    .conversion-controls {
        flex-direction: column;

        align-items: stretch;
    }

}


@media (max-width: 650px) {

    .navbar {
        padding:
            0 20px;
    }


    .navbar nav {
        gap: 10px;
    }


    .navbar nav a {
        display: none;
    }

    .navbar nav a.login-nav {
        display: flex;
    }


    .brand-tagline {
        display: none;
    }


    .hero {
        padding:
            45px 20px 25px;
    }


    .hero h1 {
        font-size: 38px;
    }


    .hero-description {
        font-size: 16px;
    }


    .upload-options {
        grid-template-columns: 1fr;

        gap: 10px;
    }


    .or-divider {
        margin:
            5px auto;
    }


    .comparison {
        transform:
            scale(0.82);

        margin-left: -20px;

        margin-right: -20px;
    }


    .benefits {
        margin:
            20px;

        grid-template-columns: 1fr;
    }


    .how-section {
        grid-template-columns: 1fr;

        margin:
            50px 20px;
    }


    .workspace {
        margin:
            30px 20px;

        padding: 15px;
    }


    .workspace-footer {
        flex-direction: column;

        gap: 12px;
    }

}

/* =========================================================
   MOBILE RESPONSIVE DESIGN
   ========================================================= */


/* ---------------------------------------------------------
   TABLET
   --------------------------------------------------------- */

@media (max-width: 1024px) {

    .navbar {
        padding: 18px 28px;
    }

    .hero {
        grid-template-columns: 1fr;
        gap: 50px;
        padding: 50px 28px 40px;
    }

    .hero-content {
        max-width: 760px;
        margin: 0 auto;
        width: 100%;
    }

    .hero-visual {
        width: 100%;
        max-width: 760px;
        margin: 0 auto;
    }

    .upload-options {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .comparison {
        width: 100%;
    }

}


/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 768px) {

    /* Prevent horizontal scrolling */

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


    /* =====================================================
       NAVIGATION
       ===================================================== */

    .navbar {
        padding: 14px 18px;
        min-height: auto;
        flex-direction: row;
        gap: 12px;
        align-items: center;
    }

    .brand {
        width: auto;
        justify-content: flex-start;
    }

    .brand-logo {
        flex-shrink: 0;
    }

    .brand-name {
        font-size: 22px;
    }

    .brand-tagline {
        font-size: 10px;
    }

    .navbar nav {
        width: auto;
        margin-left: auto;
        display: flex;
        justify-content: flex-end;
        align-items: center;
        gap: 18px;
        flex-wrap: nowrap;
    }

    .navbar nav a {
        font-size: 13px;
    }



    /* =====================================================
       HERO
       ===================================================== */

    .hero {
        display: flex;
        flex-direction: column;
        width: 100%;
        padding: 34px 16px 30px;
        gap: 38px;
    }

    .hero-content {
        width: 100%;
        max-width: 100%;
        text-align: center;
    }

    .hero-visual {
        width: 100%;
        max-width: 100%;
    }


    /* =====================================================
       EYEBROW
       ===================================================== */

    .eyebrow {
        display: inline-block;
        font-size: 10px;
        padding: 7px 12px;
        margin-bottom: 14px;
    }


    /* =====================================================
       MAIN HEADING
       ===================================================== */

    .hero h1 {
        font-size: clamp(34px, 10vw, 48px);
        line-height: 1.05;
        margin: 0 auto 18px;
    }

    .hero h1 br {
        display: none;
    }


    /* =====================================================
       DESCRIPTION
       ===================================================== */

    .hero-description {
        font-size: 14px;
        line-height: 1.6;
        max-width: 500px;
        margin: 0 auto 26px;
    }


    /* =====================================================
       UPLOAD OPTIONS
       ===================================================== */

    .upload-options {
        display: flex;
        flex-direction: column;
        width: 100%;
        gap: 12px;
    }

    .upload-icon,
    .upload-card p,
    .upload-card small {
        display: none;
    }

    .upload-card {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 10px;
        padding: 16px;
    }

    .upload-card h2 {
        margin: 0;
    }


    /* =====================================================
       UPLOAD CARDS
       ===================================================== */

    .upload-card {
        width: 100%;
        min-height: 0;
        padding: 24px 18px;
        box-sizing: border-box;
    }

    .upload-card h2 {
        font-size: 20px;
        margin: 10px 0 6px;
    }

    .upload-card p {
        font-size: 13px;
        margin: 0 0 16px;
    }

    .upload-card small {
        font-size: 11px;
        line-height: 1.4;
    }

    .upload-icon {
        font-size: 28px;
    }


    /* =====================================================
       BUTTONS
       ===================================================== */

    .primary-button {
        min-height: 46px;
        width: 100%;
        font-size: 14px;
    }

    .secondary-button {
        min-height: 44px;
    }


    /* =====================================================
       OR DIVIDER
       ===================================================== */

    .or-divider {
        width: 100%;
        height: 34px;
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .or-divider::before,
    .or-divider::after {
        content: "";
        height: 1px;
        flex: 1;
    }

    .or-divider span {
        margin: 0 12px;
        flex-shrink: 0;
    }


    /* =====================================================
       IMAGE COMPARISON
       ===================================================== */

    .comparison {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 36px minmax(0, 1fr);
        gap: 6px;
        width: 100%;
        align-items: center;
    }

    .image-preview {
        width: 100%;
        min-width: 0;
        border-radius: 14px;
        overflow: hidden;
    }

    .preview-header {
        padding: 10px 10px;
        font-size: 11px;
    }

    .preview-header strong {
        font-size: 10px;
    }


    /* =====================================================
       IMAGE AREA
       ===================================================== */

    .preview-image-container {
        width: 100%;
        height: 180px;
        overflow: hidden;
        position: relative;
    }

    .comparison-image {
        width: 100%;
        height: 100%;
        display: block;

        /*
         * Keep the entire image visible.
         * No oversized zoom on mobile.
         */

        object-fit: cover;
        object-position: center;
    }


    /* =====================================================
       COMPARISON ARROW
       ===================================================== */

    .comparison-arrow {
        width: 34px;
        height: 34px;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 17px;
        flex-shrink: 0;
    }


    /* =====================================================
       SMALLER BADGE
       ===================================================== */

    .smaller-badge {
        font-size: 9px;
        padding: 6px 8px;
        white-space: nowrap;
    }

    .visual-message {
        text-align: center;
        font-size: 13px;
        line-height: 1.5;
        margin-top: 16px;
    }


    /* =====================================================
       BENEFITS
       ===================================================== */

    .benefits {
        grid-template-columns: 1fr 1fr;
        gap: 10px;
        padding: 20px 16px;
    }

    .benefit {
        padding: 14px 10px;
    }

    .benefit strong {
        font-size: 12px;
    }

    .benefit small {
        font-size: 10px;
        line-height: 1.4;
    }

    .benefit-icon {
        font-size: 20px;
    }


    /* =====================================================
       WORKSPACE
       ===================================================== */

    .workspace {
        width: calc(100% - 24px);
        margin: 20px auto;
        padding: 18px 12px;
        box-sizing: border-box;
        overflow: hidden;
    }

    .workspace-header {
        display: flex;
        flex-direction: column;
        gap: 20px;
    }

    .workspace-header h2 {
        font-size: 22px;
    }

    .workspace-header p {
        font-size: 12px;
    }


    /* =====================================================
       CONVERSION CONTROLS
       ===================================================== */

    .conversion-controls {
        width: 100%;
        display: flex;
        flex-direction: column;
        gap: 14px;
    }

    .conversion-controls label {
        width: 100%;
    }

    .conversion-controls input[type="range"] {
        width: 100%;
    }

    #convertButton {
        width: 100%;
    }


    /* =====================================================
       TABLE
       ===================================================== */

    .table-container {
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    table {
        min-width: 650px;
    }

    table th:nth-child(2),
    table td:nth-child(2) {
        display: none;
    }

    table th,
    table td {
        width: 14.285%;
    }


    /* =====================================================
       WORKSPACE FOOTER
       ===================================================== */

    .workspace-footer {
        display: flex;
        flex-direction: column;
        gap: 10px;
        margin-top: 16px;
    }

    .workspace-footer button {
        width: 100%;
    }


    /* =====================================================
       HOW IT WORKS
       ===================================================== */

    .how-section {
        padding: 40px 16px;
    }

    .how-card {
        padding: 20px;
    }


    /* =====================================================
       FAQ
       ===================================================== */

    .faq-section {
        padding: 40px 18px;
    }


    /* =====================================================
       FOOTER
       ===================================================== */

    footer {
        padding: 24px 16px;
        text-align: center;
        font-size: 12px;
    }

}


/* ---------------------------------------------------------
   SMALL PHONES
   --------------------------------------------------------- */

@media (max-width: 480px) {

    /* =====================================================
       MOBILE NAVIGATION
       ===================================================== */

    .navbar {
        padding: 12px 14px;
        justify-content: space-between;
    }

    .navbar nav {
        display: flex;
        justify-content: flex-end;
    }

    .navbar nav a:not(.login-nav) {
        display: none;
    }


    /*
     * Center the Sonydoc logo/name.
     */

    .brand {
        justify-content: flex-start;
        width: auto;
    }


    /* =====================================================
       HERO
       ===================================================== */

    .hero {
        padding: 28px 12px;
        gap: 24px;

        /*
         * Mobile should be a single vertical flow.
         */

        display: flex;
        flex-direction: column;
    }

    .hero-content {
        width: 100%;
        text-align: center;
    }

    .hero-visual {
        width: 100%;
    }

    .hero h1 {
        font-size: 34px;
        line-height: 1.08;
    }

    .hero-description {
        font-size: 13px;
        line-height: 1.55;
    }


    .google-photos-card {
        text-align: left;
    }

    .google-photos-card p,
    .google-photos-card small {
        display: block;
        text-align: left;
    }

    .google-photos-card .google-photos-icon {
        display: grid;
    }

    /* =====================================================
       MOBILE UPLOAD OPTIONS
       ===================================================== */

    .upload-options {
        display: flex;
        flex-direction: column;
        gap: 12px;
        width: 100%;
    }


    /* =====================================================
       UPLOAD CARDS
       ===================================================== */

    .upload-card {
        padding: 20px 14px;
        width: 100%;
        box-sizing: border-box;
    }

    .upload-card h2 {
        font-size: 19px;
    }

    .upload-card p {
        font-size: 12px;
    }

    .upload-card small {
        font-size: 10px;
    }


    /* =====================================================
       BUTTONS
       ===================================================== */

    .primary-button {
        width: 100%;
        min-height: 46px;
        font-size: 13px;
    }

    .secondary-button {
        min-height: 42px;
    }


    /* =====================================================
       OR DIVIDER
       ===================================================== */

    .or-divider {
        width: 100%;
        height: 28px;

        display: flex;
        align-items: center;
        justify-content: center;
    }

    .or-divider::before,
    .or-divider::after {
        content: "";
        height: 1px;
        flex: 1;
    }

    .or-divider span {
        margin: 0 10px;
        font-size: 11px;
    }


    /* =====================================================
       SELECTED IMAGES
       
       Initially hidden by JS.
       Becomes visible after image/folder selection.
       ===================================================== */

    .mobile-selected-images {
        width: 100%;
        margin-top: 12px;

        padding: 14px;

        box-sizing: border-box;

        border-radius: 14px;

        background: rgba(255, 255, 255, 0.75);

        border: 1px solid rgba(0, 0, 0, 0.08);
    }

    .mobile-selected-images.hidden {
        display: none;
    }

    .mobile-selected-images h3 {
        margin: 0 0 10px;

        font-size: 14px;
        font-weight: 700;
    }

    .mobile-selected-images-list {
        display: flex;
        flex-direction: column;
        gap: 8px;

        max-height: 280px;

        overflow-y: auto;
    }

    .mobile-selected-image {
        display: flex;
        align-items: center;
        gap: 10px;

        width: 100%;

        padding: 8px;

        box-sizing: border-box;

        border-radius: 10px;

        background: rgba(255, 255, 255, 0.8);
    }

    .mobile-selected-image img {
        width: 42px;
        height: 42px;

        flex-shrink: 0;

        object-fit: cover;

        border-radius: 7px;
    }

    .mobile-selected-image-info {
        min-width: 0;
        flex: 1;
    }

    .mobile-selected-image-name {
        display: block;

        font-size: 11px;
        font-weight: 600;

        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .mobile-selected-image-size {
        display: block;

        margin-top: 2px;

        font-size: 9px;
        opacity: 0.65;
    }


    /* =====================================================
       COMPARISON
       
       HIDDEN INITIALLY.
       JS adds .mobile-show-comparison
       after conversion.
       ===================================================== */

    .comparison {
        grid-template-columns:
            minmax(0, 1fr)
            28px
            minmax(0, 1fr);

        gap: 4px;

        width: 100%;

        /*
         * Hide sample comparison initially.
         */

        display: none;
    }

    /*
     * JS will add this class after conversion.
     */

    .comparison.mobile-show-comparison {
        display: grid;
    }


    /* =====================================================
       COMPARISON IMAGE
       ===================================================== */

    .preview-image-container {
        height: 135px;
    }

    .comparison-image {
        width: 100%;
        height: 100%;

        display: block;

        object-fit: cover;
        object-position: center;
    }


    /* =====================================================
       PREVIEW HEADER
       ===================================================== */

    .preview-header {
        padding: 8px 7px;
        font-size: 9px;
    }

    .preview-header strong {
        font-size: 8px;
    }


    /* =====================================================
       COMPARISON ARROW
       ===================================================== */

    .comparison-arrow {
        width: 28px;
        height: 28px;

        font-size: 14px;
    }


    /* =====================================================
       SMALLER BADGE
       ===================================================== */

    .smaller-badge {
        font-size: 7px;
        padding: 5px 6px;

        white-space: nowrap;
    }

    .visual-message {
        font-size: 12px;
    }


    /* =====================================================
       BENEFITS
       ===================================================== */

    .benefits {
        grid-template-columns: 1fr;
    }


    /* =====================================================
       WORKSPACE
       ===================================================== */

    .workspace {
        width: calc(100% - 16px);

        padding: 14px 8px;

        box-sizing: border-box;
    }

}
