* {
    box-sizing: border-box;
}

body {
    margin: 0;
    font-family: Arial, "Noto Sans JP", sans-serif;
    color: #e4eee8;
    background: #07110d;
}

/* Header */

header {
    height: 72px;
    padding: 0 8%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #09150f;
    border-bottom: 1px solid #1d3a2b;
}

.logo {
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 3px;
    color: #dcebe1;
}

nav {
    display: flex;
    gap: 28px;
}

nav a {
    color: #a9bbae;
    text-decoration: none;
    transition: color 0.2s;
}

nav a:hover {
    color: #8fc89c;
}

/* Hero */

.hero {
    padding: 110px 8% 90px;
    max-width: 1000px;
}

.eyebrow {
    font-size: 13px;
    letter-spacing: 2px;
    font-weight: bold;
    color: #79b88a;
}

.hero h1 {
    margin: 10px 0 20px;
    font-size: 58px;
    color: #edf5f0;
}

.description {
    max-width: 600px;
    line-height: 1.8;
    color: #9baea2;
    font-size: 18px;
}

/* Sections */

.labs,
.about {
    padding: 60px 8%;
}

.labs {
    background: #09150f;
    border-top: 1px solid #142a1e;
    border-bottom: 1px solid #142a1e;
}

.labs h2,
.about h2 {
    font-size: 30px;
    margin-bottom: 30px;
    color: #e4eee8;
}

/* Cards */

.cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 24px;
}

.card {
    display: flex;
    gap: 20px;
    padding: 30px;
    min-height: 190px;

    background: #0d1d16;
    border: 1px solid #1d3a2b;
    border-radius: 14px;

    text-decoration: none;
    color: inherit;

    transition:
        transform 0.2s,
        border-color 0.2s,
        background 0.2s,
        box-shadow 0.2s;
}

a.card:hover {
    transform: translateY(-3px);
    background: #10251a;
    border-color: #3f7652;

    box-shadow:
        0 12px 32px rgba(0, 0, 0, 0.30),
        0 0 18px rgba(80, 140, 95, 0.08);
}

.icon {
    font-size: 30px;
}

.card h3 {
    margin-top: 3px;
    font-size: 20px;
    color: #edf5f0;
}

.card p {
    color: #9baea2;
    line-height: 1.7;
}

.card span {
    display: inline-block;
    margin-top: 10px;
    font-weight: bold;
    color: #79b88a;
}

.disabled {
    opacity: 0.45;
}

/* About */

.about {
    min-height: 250px;
}

.about p {
    color: #9baea2;
    line-height: 1.8;
}

/* General links */

main a {
    color: #79b88a;
}

main a:hover {
    color: #a0d4aa;
}

/* Form elements */

input,
select,
textarea {
    background: #0d1d16;
    color: #e4eee8;
    border: 1px solid #294936;
    border-radius: 6px;
}

input:focus,
select:focus,
textarea:focus {
    outline: none;
    border-color: #79b88a;
}

button {
    background: #315f42;
    color: #f0f7f2;
    border: 1px solid #477a57;
    border-radius: 6px;
    cursor: pointer;
}

button:hover {
    background: #3c714e;
}

/* Tables */

table {
    border-collapse: collapse;
    background: #0d1d16;
    color: #e4eee8;
}

th {
    background: #12271b;
    color: #dcebe1;
}

th,
td {
    border-color: #294936;
}

/* Footer */

footer {
    padding: 30px 8%;
    border-top: 1px solid #1d3a2b;
    color: #72877a;
    background: #07110d;
}
