*{

    margin:0;

    padding:0;

    box-sizing:border-box;

}



body{

    font-family:Arial, Helvetica, sans-serif;

    color:#222;

    background:#f7f7f7;

}



/* HEADER */



.header{

    background:#fff;

    padding:15px 5%;

    display:flex;

    justify-content:space-between;

    align-items:center;

    border-bottom:1px solid #e5e5e5;

}



.logo img{

    height:110px;

    width:auto;

    display:block;

}



.navigation{

    display:flex;

    gap:35px;

}



.navigation a{

    text-decoration:none;

    color:#222;

    font-weight:600;

    font-size:14px;

    text-transform:uppercase;

    letter-spacing:1px;

}



.navigation a:hover{

    color:#6b8f6d;

}



/* HERO */



.hero{

    display:grid;

    grid-template-columns:30% 70%;

    gap:55px;

    align-items:center;

    padding:60px 5%;

    background:#fff;

}



.hero-image img{

    width:100%;

    max-width:340px;

    height:300px;

    object-fit:cover;

    border-radius:14px;

    display:block;

    margin:0 auto;

}



.hero-content{

    max-width:800px;

}



.eyebrow{

    color:#6b8f6d;

    font-weight:bold;

    letter-spacing:2px;

    margin-bottom:20px;

    display:block;

}



.hero-content h1{

    font-size:52px;

    line-height:1.05;

    margin-bottom:25px;

}



.hero-content p{

    font-size:18px;

    line-height:1.8;

    color:#666;

    margin-bottom:20px;

}



.button{

    display:inline-block;

    margin-top:15px;

    padding:15px 32px;

    background:#111;

    color:#fff;

    text-decoration:none;

    font-weight:bold;

    letter-spacing:1px;

}



.button:hover{

    background:#333;

}



/* CATEGORY SECTION */



.categories{

    padding:90px 5%;

}



.section-heading{

    text-align:center;

    margin-bottom:50px;

}



.section-heading h2{

    font-size:38px;

    margin-bottom:10px;

}



.section-heading p{

    color:#666;

}



.category-grid{

    display:grid;

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

    gap:25px;

}



.category-card{

    background:#fff;

    border:1px solid #e4e4e4;

    height:200px;

    display:flex;

    align-items:center;

    justify-content:center;

    text-decoration:none;

    color:#222;

    transition:.25s;

}



.category-card:hover{

    transform:translateY(-5px);

    box-shadow:0 10px 25px rgba(0,0,0,.08);

}



.category-card span{

    font-size:24px;

    font-weight:bold;

    letter-spacing:2px;

}



/* FOOTER */



.footer{

    background:#111;

    color:#fff;

    text-align:center;

    padding:30px;

}



/* TABLET */



@media(max-width:1000px){



    .hero{

        grid-template-columns:1fr;

        gap:40px;

    }



    .hero-image img{

        height:350px;

    }



    .hero-content h1{

        font-size:40px;

    }



    .category-grid{

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

    }

}



/* MOBILE */



@media(max-width:600px){



    .navigation{

        display:none;

    }



    .hero{

        padding:40px 5%;

    }



    .hero-image img{

        height:250px;

    }



    .hero-content h1{

        font-size:32px;

    }



    .hero-content p{

        font-size:16px;

    }



    .category-grid{

        grid-template-columns:1fr;

    }

}







/* INNER PAGE HERO */



.page-hero{

    background:#fff;

    padding:80px 5%;

    text-align:center;

    border-bottom:1px solid #e5e5e5;

}



.page-hero h1{

    font-size:56px;

    line-height:1;

    letter-spacing:2px;

    margin-bottom:20px;

}



.page-hero p{

    max-width:700px;

    margin:0 auto;

    font-size:18px;

    line-height:1.7;

    color:#666;

}



@media(max-width:600px){



    .page-hero{

        padding:55px 5%;

    }



    .page-hero h1{

        font-size:40px;

    }



    .page-hero p{

        font-size:16px;

    }

}





/* PRODUCT LISTING PAGE */



.product-section{

    padding:80px 5%;

}



.product-grid{

    display:grid;

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

    gap:28px;

}



.product-card{

    background:#fff;

    border:1px solid #e4e4e4;

    text-decoration:none;

    color:#222;

    transition:.25s;

    display:block;

}



.product-card:hover{

    transform:translateY(-5px);

    box-shadow:0 10px 25px rgba(0,0,0,.08);

}



.product-image{

    height:240px;

    background:#f2f2f2;

    display:flex;

    align-items:center;

    justify-content:center;

    overflow:hidden;

}



.product-image img{

    width:100%;

    height:100%;

    object-fit:contain;

    padding:18px;

}



.product-info{

    padding:22px;

}



.product-info h3{

    font-size:18px;

    line-height:1.35;

    margin-bottom:10px;

}



.product-meta{

    font-size:13px;

    color:#777;

    margin-bottom:10px;

}



.product-price{

    font-size:18px;

    font-weight:bold;

    color:#111;

}



/* PRODUCT RESPONSIVE */



@media(max-width:1100px){



    .product-grid{

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

    }

}



@media(max-width:800px){



    .product-grid{

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

    }

}



@media(max-width:500px){



    .product-grid{

        grid-template-columns:1fr;

    }

}





/* PRODUCT DETAIL PAGE */



.product-detail{

    display:grid;

    grid-template-columns:45% 55%;

    gap:70px;

    align-items:start;

    padding:80px 5%;

    background:#fff;

}



.product-detail-image{

    background:#f5f5f5;

    border:1px solid #e5e5e5;

    border-radius:14px;

    padding:35px;

    display:flex;

    align-items:center;

    justify-content:center;

}



.product-detail-image img{

    width:100%;

    max-height:520px;

    object-fit:contain;

    display:block;

}



.product-detail-info{

    max-width:760px;

}



.product-brand{

    color:#6b8f6d;

    font-weight:bold;

    letter-spacing:2px;

    text-transform:uppercase;

    margin-bottom:16px;

}



.product-detail-info h1,
.product-style-title{

    font-size:30px;

    line-height:1.25;

    font-weight:400;

    margin-bottom:70px;

}



.factory-name{

    color:#666;

    font-size:16px;

    line-height:1.6;

    margin-bottom:18px;

}



.product-detail-price,
.product-tier-reference{

    font-size:15px;

    font-weight:400;

    color:#666;

    margin-top:18px;

}



.option-block{

    margin-bottom:28px;

}



.option-block h3{

    font-size:18px;

    margin-bottom:12px;

}



.option-list{

    display:flex;

    flex-wrap:wrap;

    gap:10px;

}



.option-list span{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    min-width:48px;

    padding:10px 14px;

    background:#f7f7f7;

    border:1px solid #ddd;

    border-radius:999px;

    font-size:14px;

    font-weight:600;

}



.size-list span{

    min-width:52px;

}



.product-description-section{

    padding:0 5% 90px;

    background:#fff;

}



.product-description-card{

    max-width:1100px;

    background:#f7f7f7;

    border:1px solid #e5e5e5;

    border-radius:14px;

    padding:40px;

    line-height:1.8;

    color:#555;

}



.product-description-card h4,

.product-description-card h3{

    color:#222;

    margin:28px 0 12px;

    font-size:20px;

}



.product-description-card ul{

    margin-left:22px;

    margin-bottom:20px;

}



.product-description-card li{

    margin-bottom:8px;

}



/* RESPONSIVE PRODUCT DETAIL */



@media(max-width:900px){



    .product-detail{

        grid-template-columns:1fr;

        gap:40px;

        padding:50px 5%;

    }



    .product-detail-info h1{

        font-size:36px;

    }



    .product-description-section{

        padding:0 5% 60px;

    }

}



@media(max-width:600px){



    .product-detail-image{

        padding:20px;

    }



    .product-detail-info h1{

        font-size:30px;

    }



    .product-detail-price,
    .product-tier-reference{

        font-size:14px;

    }



    .product-description-card{

        padding:25px;

    }

}

/* Clinic frontend access gate */
.clinic-login-body {
    min-height: 100vh;
    background:
        radial-gradient(circle at top left, rgba(107, 143, 109, 0.18), transparent 34%),
        linear-gradient(135deg, #f6f8f5 0%, #eef4ef 48%, #f8fafc 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px;
}

.clinic-login-shell {
    width: 100%;
    max-width: 500px;
}

.clinic-login-card {
    position: relative;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.96);
    border-radius: 28px;
    padding: 42px;
    box-shadow: 0 26px 70px rgba(15, 23, 42, 0.14);
    border: 1px solid rgba(225, 232, 225, 0.95);
}

.clinic-login-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 7px;
    background: linear-gradient(90deg, #6b8f6d, #111827);
}

.clinic-login-logo img {
    max-width: 225px;
    height: auto;
    display: block;
    margin: 0 auto 28px;
}

.clinic-login-icon {
    width: 52px;
    height: 52px;
    margin: 0 auto 14px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #eef7ef;
    color: #466c48;
    font-size: 26px;
    font-weight: 900;
    box-shadow: inset 0 0 0 1px #cfe1d0;
}

.clinic-access-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    padding: 7px 12px;
    border-radius: 999px;
    background: #eef7ef;
    color: #466c48;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.clinic-login-card .clinic-access-kicker {
    display: flex;
    width: max-content;
    margin-left: auto;
    margin-right: auto;
}

.clinic-login-card h1 {
    margin: 0 0 10px;
    font-size: 34px;
    line-height: 1.08;
    color: #111827;
    text-align: center;
    letter-spacing: -0.02em;
}

.clinic-login-card p {
    margin: 0 0 26px;
    color: #5b6472;
    line-height: 1.6;
    text-align: center;
    font-size: 16px;
}

.clinic-login-error,
.clinic-login-notice {
    margin-bottom: 16px;
    padding: 13px 15px;
    border-radius: 14px;
    font-size: 14px;
    line-height: 1.45;
}

.clinic-login-error {
    background: #fff1f2;
    color: #9f1239;
    border: 1px solid #fecdd3;
}

.clinic-login-notice {
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1d4ed8;
}

.clinic-login-form label,
.inline-clinic-form label {
    display: block;
    font-weight: 800;
    color: #111827;
    margin-bottom: 8px;
    font-size: 14px;
}

.clinic-login-form input,
.inline-clinic-row input {
    width: 100%;
    border: 1px solid #d4dce6;
    border-radius: 14px;
    padding: 15px 16px;
    font-size: 17px;
    background: #fff;
    color: #111827;
    box-sizing: border-box;
    transition: border-color .2s, box-shadow .2s, transform .2s;
}

.clinic-login-form input::placeholder,
.inline-clinic-row input::placeholder {
    color: #9aa4b2;
}

.clinic-login-form input:focus,
.inline-clinic-row input:focus {
    outline: none;
    border-color: #6b8f6d;
    box-shadow: 0 0 0 4px rgba(107, 143, 109, 0.16);
}

.clinic-login-form input {
    margin-bottom: 16px;
}

.clinic-login-form button,
.inline-clinic-row button {
    border: 0;
    border-radius: 14px;
    padding: 0 24px;
    background: linear-gradient(135deg, #111827, #2f4931);
    color: #fff;
    font-size: 15px;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 12px 25px rgba(17, 24, 39, 0.18);
    transition: transform .2s, box-shadow .2s, opacity .2s;
    white-space: nowrap;
}

.clinic-login-form button {
    width: 100%;
    min-height: 52px;
}

.clinic-login-form button:hover,
.inline-clinic-row button:hover {
    transform: translateY(-1px);
    box-shadow: 0 16px 30px rgba(17, 24, 39, 0.22);
    opacity: .96;
}

.clinic-login-footnote,
.clinic-access-helper {
    margin-top: 15px;
    color: #7b8492;
    font-size: 13px;
    line-height: 1.45;
}

.clinic-login-footnote {
    text-align: center;
}

.clinic-session-badge {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    font-size: 13px;
    color: #0f172a;
    margin-left: 20px;
    line-height: 1.2;
}

.clinic-session-badge span {
    font-weight: 700;
}

.clinic-session-badge small {
    color: #64748b;
}

/* Inline clinic gate on homepage */
.inline-clinic-login,
.clinic-login-success {
    position: relative;
    overflow: hidden;
    margin-top: 30px;
    padding: 28px;
    border: 1px solid #e0e8e0;
    border-radius: 24px;
    background:
        linear-gradient(135deg, rgba(255,255,255,.98), rgba(248,251,248,.98));
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.10);
    max-width: 600px;
}

.inline-clinic-login::before,
.clinic-login-success::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 6px;
    background: linear-gradient(90deg, #6b8f6d, #111827);
}

.inline-clinic-login h2 {
    margin: 0 0 8px;
    font-size: 30px;
    line-height: 1.15;
    color: #111827;
    letter-spacing: -0.02em;
}

.inline-clinic-login p {
    margin: 0 0 20px;
    font-size: 16px;
    line-height: 1.55;
    color: #596273;
}

.inline-clinic-row {
    display: flex;
    gap: 12px;
    align-items: stretch;
}

.inline-clinic-row input {
    flex: 1;
    min-width: 0;
    height: 54px;
}

.inline-clinic-row button {
    min-height: 54px;
}

.clinic-login-success {
    background: linear-gradient(135deg, #f0fdf4, #ffffff);
    border-color: #bbf7d0;
    color: #166534;
    font-weight: 600;
}

.clinic-login-success a {
    color: #166534;
    font-weight: 800;
}

.clinic-badge {
    display: inline-flex;
    align-items: center;
    padding: 8px 12px;
    border-radius: 999px;
    background: #f3f4f6;
    color: #374151;
    font-size: 13px;
    font-weight: 700;
}

@media (max-width: 800px) {
    .clinic-session-badge {
        width: 100%;
        align-items: flex-start;
        margin-left: 0;
        margin-top: 10px;
    }
}

@media (max-width: 640px) {
    .clinic-login-body {
        padding: 18px;
    }

    .clinic-login-card,
    .inline-clinic-login,
    .clinic-login-success {
        padding: 26px 22px;
        border-radius: 20px;
    }

    .clinic-login-card h1,
    .inline-clinic-login h2 {
        font-size: 28px;
    }

    .inline-clinic-row {
        flex-direction: column;
    }

    .inline-clinic-row button {
        width: 100%;
    }
}
