/* =========================================
   RESET
========================================= */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}


/* =========================================
   COLORS
========================================= */

:root {

    --deep-teal: #063642;

    --teal: #087f8c;

    --bright-teal: #35b8bd;

    --green: #1a9c62;

    --ink: #102f38;

    --muted: #71858a;

    --light: #f3f8f8;

    --border: #dce9eb;

    --white: #ffffff;
}


/* =========================================
   BODY
========================================= */

body {

    min-height: 100vh;

    font-family:
        "Segoe UI",
        Arial,
        Helvetica,
        sans-serif;

    background:

        radial-gradient(
            circle at 10% 10%,
            rgba(53, 184, 189, 0.22),
            transparent 28%
        ),

        radial-gradient(
            circle at 90% 90%,
            rgba(26, 156, 98, 0.12),
            transparent 30%
        ),

        linear-gradient(
            135deg,
            #041d27,
            #073f4b
        );

    display: flex;

    justify-content: center;

    align-items: center;

    padding: 35px 15px;
}


/* =========================================
   PAGE
========================================= */

.page {

    width: 100%;

    display: flex;

    justify-content: center;
}


/* =========================================
   BUSINESS CARD
========================================= */

.business-card {

    width: 100%;

    max-width: 480px;

    background: var(--white);

    border-radius: 30px;

    overflow: hidden;

    box-shadow:
        0 35px 90px
        rgba(0, 0, 0, 0.35);

    position: relative;
}


/* =========================================
   HERO
========================================= */

.hero {

    position: relative;

    overflow: hidden;

    padding:
        25px
        30px
        28px;

    color: white;

    background:

        radial-gradient(
            circle at 90% 10%,
            rgba(53, 184, 189, 0.22),
            transparent 30%
        ),

        linear-gradient(
            145deg,
            #052b36,
            #064a56
        );
}


/* =========================================
   HERO DECORATION
========================================= */

.hero-pattern {

    position: absolute;

    width: 230px;

    height: 230px;

    right: -100px;

    top: -110px;

    border-radius: 50%;

    border:
        1px solid
        rgba(255,255,255,0.08);

    box-shadow:

        0 0 0 25px
        rgba(255,255,255,0.025),

        0 0 0 50px
        rgba(255,255,255,0.02);
}


/* =========================================
   BRAND
========================================= */

.brand {

    position: relative;

    z-index: 2;

    display: flex;

    align-items: center;

    gap: 10px;
}


.brand-logo {

    width: 48px;

    height: 48px;

    background: white;

    border-radius: 10px;

    display: flex;

    align-items: center;

    justify-content: center;

    overflow: hidden;
}


.brand-logo img {

    width: 39px;

    height: 39px;

    object-fit: contain;
}


.brand-text span {

    display: block;

    color: white;

    font-size: 14px;

    font-weight: 800;

    letter-spacing: 2.5px;
}


.brand-text small {

    display: block;

    margin-top: 3px;

    color:
        rgba(255,255,255,0.72);

    font-size: 9px;

    letter-spacing: 0.3px;
}


/* =========================================
   EXECUTIVE LABEL
========================================= */

.executive-label {

    position: relative;

    z-index: 2;

    margin-top: 25px;

    display: inline-flex;

    padding:
        6px
        11px;

    border:
        1px solid
        rgba(255,255,255,0.15);

    border-radius: 100px;

    color:
        rgba(255,255,255,0.68);

    font-size: 7px;

    font-weight: 700;

    letter-spacing: 1.8px;
}


/* =========================================
   PROFILE
========================================= */

.profile-area {

    position: relative;

    z-index: 2;

    display: flex;

    align-items: center;

    gap: 20px;

    margin-top: 18px;
}


/* =========================================
   PHOTO
========================================= */

.portrait-wrapper {

    position: relative;

    width: 112px;

    height: 112px;

    flex-shrink: 0;
}


.portrait-ring {

    width: 112px;

    height: 112px;

    padding: 4px;

    border-radius: 50%;

    background:

        linear-gradient(
            145deg,
            #55c5c8,
            #087f8c
        );

    box-shadow:
        0 12px 30px
        rgba(0,0,0,0.22);
}


.portrait {

    width: 100%;

    height: 100%;

    border-radius: 50%;

    object-fit: cover;

    object-position: center;

    display: block;

    border:
        3px solid
        rgba(255,255,255,0.9);
}


/* =========================================
   ONLINE DOT
========================================= */

.online-dot {

    position: absolute;

    right: 7px;

    bottom: 7px;

    width: 16px;

    height: 16px;

    border-radius: 50%;

    background: #2ab673;

    border:
        3px solid
        #064653;

    box-shadow:
        0 0 0 3px
        rgba(42,182,115,0.15);
}


/* =========================================
   IDENTITY
========================================= */

.identity {

    min-width: 0;

    flex: 1;
}


.identity h1 {

    color: white;

    font-size: 30px;

    line-height: 1.05;

    font-weight: 750;

    letter-spacing: -0.8px;

    margin-bottom: 7px;
}


/* =========================================
   DESIGNATION
========================================= */

.role {

    display: inline-block;

    color: #55c5c8;

    font-size: 16px;

    font-weight: 700;

    letter-spacing: 0.2px;

    margin-bottom: 5px;
}


/* =========================================
   COMPANY NAME
========================================= */

.company-name {

    color: #ffffff;

    font-size: 15px;

    line-height: 1.4;

    font-weight: 700;

    letter-spacing: 0.7px;

    text-transform: uppercase;

    margin-top: 5px;

    opacity: 0.95;
}


/* =========================================
   ADDRESS IN HEADER
========================================= */

.hero-address {

    position: relative;

    z-index: 2;

    display: flex;

    align-items: flex-start;

    gap: 8px;

    margin-top: 19px;

    padding-top: 14px;

    border-top:
        1px solid
        rgba(255,255,255,0.12);

    color:
        rgba(255,255,255,0.68);

    font-size: 8px;

    line-height: 1.5;
}


.hero-address svg {

    width: 14px;

    height: 14px;

    flex-shrink: 0;

    color:
        #55c5c8;

    margin-top: 1px;
}


/* =========================================
   TAGLINE
========================================= */

.tagline {

    position: relative;

    z-index: 2;

    display: flex;

    gap: 7px;

    margin-top: 17px;

    padding-top: 15px;

    border-top:
        1px solid
        rgba(255,255,255,0.1);
}


.quote-mark {

    color: #4bc1c5;

    font-size: 25px;

    line-height: 18px;

    font-family: Georgia, serif;
}


.tagline p {

    max-width: 350px;

    color:
        rgba(255,255,255,0.76);

    font-size: 10px;

    line-height: 1.6;

    font-style: italic;
}


/* =========================================
   CONTENT
========================================= */

.content {

    padding:
        25px
        25px
        20px;

    background: white;
}


/* =========================================
   SECTION HEADING
========================================= */

.section-heading {

    display: flex;

    align-items: flex-end;

    gap: 15px;

    margin-bottom: 15px;
}


.eyebrow {

    display: block;

    color: var(--teal);

    font-size: 7px;

    font-weight: 800;

    letter-spacing: 2px;

    margin-bottom: 4px;
}


.section-heading h2 {

    color: var(--ink);

    font-size: 20px;

    line-height: 1;

    font-weight: 700;

    letter-spacing: -0.3px;
}


.line {

    height: 1px;

    flex: 1;

    margin-bottom: 2px;

    background:
        var(--border);
}


/* =========================================
   PRIMARY ACTIONS
========================================= */

.primary-actions {

    display: flex;

    flex-direction: column;

    gap: 8px;
}


.primary-action {

    position: relative;

    display: flex;

    align-items: center;

    gap: 13px;

    min-height: 60px;

    padding:
        10px
        12px;

    text-decoration: none;

    color: var(--ink);

    border:
        1px solid
        var(--border);

    border-radius: 14px;

    background:
        linear-gradient(
            100deg,
            #f8fbfb,
            #f2f8f8
        );

    transition:
        all 0.22s ease;

    overflow: hidden;
}


.primary-action::before {

    content: "";

    position: absolute;

    left: 0;

    top: 0;

    width: 3px;

    height: 100%;

    background:
        var(--teal);

    transform:
        scaleY(0);

    transform-origin:
        bottom;

    transition:
        transform 0.22s ease;
}


.primary-action:hover {

    transform:
        translateX(4px);

    background: white;

    border-color:
        #bddfe1;

    box-shadow:
        0 7px 22px
        rgba(7, 90, 100, 0.11);
}


.primary-action:hover::before {

    transform:
        scaleY(1);
}


/* =========================================
   ACTION ICON
========================================= */

.action-symbol {

    width: 39px;

    height: 39px;

    flex-shrink: 0;

    border-radius: 11px;

    display: flex;

    align-items: center;

    justify-content: center;

    background:
        #dff1f3;

    color:
        var(--teal);
}


.action-symbol svg {

    width: 19px;

    height: 19px;
}


/* =========================================
   WHATSAPP
========================================= */

.whatsapp-action:hover {

    border-color:
        rgba(26,156,98,0.35);
}


.whatsapp-symbol {

    color:
        var(--green);

    background:
        #e3f5ec;
}


/* =========================================
   ACTION TEXT
========================================= */

.action-info {

    flex: 1;

    min-width: 0;
}


.action-label {

    display: block;

    color:
        #91a3a7;

    font-size: 7px;

    font-weight: 800;

    letter-spacing: 1.5px;

    margin-bottom: 3px;
}


.action-info strong {

    display: block;

    color:
        #18363e;

    font-size: 11px;

    font-weight: 650;

    white-space: nowrap;

    overflow: hidden;

    text-overflow: ellipsis;
}


/* =========================================
   ARROW
========================================= */

.action-arrow {

    color:
        #a4b9bd;

    font-size: 19px;

    transition:
        all 0.2s ease;
}


.primary-action:hover .action-arrow {

    color:
        var(--teal);

    transform:
        translate(2px,-2px);
}


/* =========================================
   SECONDARY ACTIONS
========================================= */

.secondary-actions {

    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 8px;

    margin-top: 10px;
}


.secondary-action {

    min-width: 0;

    display: flex;

    flex-direction: column;

    justify-content: space-between;

    min-height: 92px;

    padding: 11px;

    text-decoration: none;

    border:
        1px solid
        var(--border);

    border-radius: 13px;

    background: white;

    transition:
        all 0.2s ease;
}


.secondary-action:hover {

    transform:
        translateY(-3px);

    border-color:
        #b8dfe1;

    box-shadow:
        0 7px 18px
        rgba(7,90,100,0.09);
}


/* =========================================
   SECONDARY ICON
========================================= */

.secondary-icon {

    width: 31px;

    height: 31px;

    border-radius: 9px;

    display: flex;

    align-items: center;

    justify-content: center;

    color:
        var(--teal);

    background:
        #e4f3f4;
}


.secondary-icon svg {

    width: 16px;

    height: 16px;
}


.secondary-action strong {

    display: block;

    color:
        #1b373f;

    font-size: 10px;

    margin-top: 8px;

    margin-bottom: 2px;
}


.secondary-action span {

    display: block;

    color:
        #87999d;

    font-size: 7px;

    line-height: 1.35;

    overflow: hidden;
}


.secondary-action b {

    align-self: flex-end;

    color:
        #a4b9bd;

    font-size: 14px;

    font-weight: 400;

    line-height: 1;
}


.secondary-action:hover b {

    color:
        var(--teal);
}


/* =========================================
   QR PANEL
========================================= */

.qr-panel {

    margin-top: 17px;

    padding: 14px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 15px;

    border-radius: 17px;

    background:

        radial-gradient(
            circle at 100% 0,
            rgba(53,184,189,0.25),
            transparent 45%
        ),

        linear-gradient(
            135deg,
            #073e4a,
            #075c67
        );

    color: white;
}


.qr-copy {

    padding-left: 3px;

    flex: 1;
}


.qr-eyebrow {

    display: block;

    color:
        #67d1d3;

    font-size: 7px;

    font-weight: 800;

    letter-spacing: 1.6px;

    margin-bottom: 5px;
}


.qr-copy h3 {

    font-size: 17px;

    line-height: 1.1;

    margin-bottom: 5px;
}


.qr-copy p {

    max-width: 210px;

    color:
        rgba(255,255,255,0.64);

    font-size: 8px;

    line-height: 1.5;
}


.qr-code {

    width: 78px;

    height: 78px;

    flex-shrink: 0;

    padding: 5px;

    border-radius: 10px;

    background: white;

    box-shadow:
        0 7px 20px
        rgba(0,0,0,0.18);
}


.qr-code img {

    display: block;

    width: 100%;

    height: 100%;

    object-fit: contain;
}


/* =========================================
   FOOTER
========================================= */

footer {

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 10px;

    padding:
        16px
        20px;

    border-top:
        1px solid
        #edf2f3;

    background:
        #fbfdfd;
}


footer span {

    color:
        var(--teal);

    font-size: 10px;

    font-weight: 800;

    letter-spacing: 2px;
}


footer i {

    width: 3px;

    height: 3px;

    border-radius: 50%;

    background:
        #b2c5c8;
}


footer small {

    color:
        #91a0a3;

    font-size: 7px;

    letter-spacing: 0.8px;
}


/* =========================================
   MOBILE
========================================= */

@media (max-width: 520px) {

    body {

        padding: 10px;

        align-items:
            flex-start;
    }


    .business-card {

        margin-top: 4px;

        border-radius: 24px;
    }


    .hero {

        padding:
            21px
            20px
            23px;
    }


    .brand-logo {

        width: 42px;

        height: 42px;
    }


    .brand-logo img {

        width: 34px;

        height: 34px;
    }


    .brand-text span {

        font-size: 11px;

        letter-spacing: 2px;
    }


    .brand-text small {

        font-size: 7px;
    }


    .executive-label {

        margin-top: 20px;

        font-size: 6px;
    }


    .profile-area {

        gap: 13px;

        margin-top: 15px;
    }


    .portrait-wrapper,
    .portrait-ring {

        width: 88px;

        height: 88px;
    }


    .online-dot {

        width: 13px;

        height: 13px;

        right: 5px;

        bottom: 5px;
    }


    .identity h1 {

        font-size: 23px;
    }


    .role {

        font-size: 12px;

        margin-bottom: 4px;
    }


    .company-name {

        font-size: 10px;

        line-height: 1.35;

        letter-spacing: 0.5px;
    }


    .hero-address {

        margin-top: 16px;

        padding-top: 12px;

        font-size: 7px;
    }


    .tagline {

        margin-top: 15px;

        padding-top: 13px;
    }


    .tagline p {

        font-size: 8px;
    }


    .content {

        padding:
            20px
            17px
            16px;
    }


    .section-heading {

        margin-bottom: 12px;
    }


    .section-heading h2 {

        font-size: 18px;
    }


    .primary-action {

        min-height: 56px;

        padding:
            9px
            10px;

        gap: 10px;
    }


    .action-symbol {

        width: 35px;

        height: 35px;
    }


    .action-symbol svg {

        width: 17px;

        height: 17px;
    }


    .action-label {

        font-size: 6px;

        margin-bottom: 2px;
    }


    .action-info strong {

        font-size: 10px;
    }


    .secondary-actions {

        grid-template-columns:
            repeat(3, 1fr);

        gap: 6px;
    }


    .secondary-action {

        min-height: 82px;

        padding: 9px;
    }


    .secondary-icon {

        width: 28px;

        height: 28px;
    }


    .secondary-action strong {

        font-size: 9px;

        margin-top: 6px;
    }


    .secondary-action span {

        font-size: 6.5px;
    }


    .qr-panel {

        padding: 11px;

        gap: 10px;

        margin-top: 13px;
    }


    .qr-copy h3 {

        font-size: 14px;
    }


    .qr-copy p {

        font-size: 7px;
    }


    .qr-code {

        width: 67px;

        height: 67px;
    }


    footer {

        padding:
            13px
            15px;
    }

}


/* =========================================
   VERY SMALL PHONES
========================================= */

@media (max-width: 370px) {

    .portrait-wrapper,
    .portrait-ring {

        width: 78px;

        height: 78px;
    }


    .identity h1 {

        font-size: 20px;
    }


    .role {

        font-size: 11px;
    }


    .company-name {

        font-size: 9px;
    }


    .secondary-action span {

        display: none;
    }


    .secondary-action {

        min-height: 70px;
    }


    .qr-copy p {

        display: none;
    }

}