html {
    scroll-behavior: smooth;
}


* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: Arial, sans-serif;
    color: #111111;
    background: #ffffff;
}


/* HEADER */

header {
    height: 80px;
    width: 94%;
    margin: 16px auto;
    padding: 0 4%;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: space-between;

    border: none;
    border-radius: 40px;
    background: #ffffff;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);

    position: fixed;
    top: 16px;
    left: 3%;
    z-index: 1000;
}

.logo {
    display: flex;
    align-items: center;
}

.logo img {
    width: 150px;
    height: auto;
    display: block;
}

nav {
    display: flex;
    gap: 30px;
}

nav a {
    text-decoration: none;
    color: #111111;
    font-size: 14px;
    transition: opacity 0.3s ease;
}

nav a:hover {
    opacity: 0.55;
}

.menu-toggle {
    display: none;
    background: none;
    border: none;
    font-size: 28px;
    cursor: pointer;
}


/* HERO */

.hero {
    position: relative;

    width: 100%;

    min-height: 100vh;

    background-image: url("images/hero-faucet.jpg");

    background-size: cover;

    background-position: center center;

    background-repeat: no-repeat;

    display: flex;

    align-items: center;

    overflow: hidden;
}


.hero-overlay {
    position: absolute;

    inset: 0;

    background: rgba(0, 0, 0, 0.35);

    z-index: 1;
}


.hero-content {
    position: relative;

    z-index: 2;

    max-width: 650px;

    margin-left: 7%;

    color: #ffffff;
}


.hero-label {
    font-size: 12px;

    letter-spacing: 4px;

    font-weight: bold;

    margin-bottom: 25px;
}


.hero-content h1 {
    font-size: clamp(50px, 6vw, 90px);

    line-height: 0.95;

    margin-bottom: 30px;

    letter-spacing: -2px;
}


.hero-content h1 span {
    display: block;

    font-weight: 400;
}


.hero-description {
    max-width: 520px;

    font-size: 17px;

    line-height: 1.7;

    color: #eeeeee;

    margin-bottom: 35px;
}


.hero-buttons {
    display: flex;

    gap: 15px;

    flex-wrap: wrap;
}


.hero-button {
    display: inline-block;

    padding: 16px 28px;

    text-decoration: none;

    font-size: 13px;

    transition: all 0.3s ease;
}


.hero-button.primary {
    background: #c50000;

    color: #ffffff;
}


.hero-button.primary:hover {
    background: #dddddd;
}


.hero-button.secondary {
    border: 1px solid #fbff00;

    color: #ffffff;
}


.hero-button.secondary:hover {
    background: #fbff00;

    color: #111111;
}


/* PRODUCTS */

.products {
    padding: 120px 7%;
    background: #ffffff;
}


/* SECTION HEADING */

.section-heading {
    max-width: 700px;
    margin: 0 auto 70px;

    text-align: center;
}


.section-label {
    font-size: 12px;

    letter-spacing: 3px;

    font-weight: bold;

    color: #777777;

    margin-bottom: 20px;
}


.section-heading h2 {
    font-size: 52px;

    line-height: 1.1;

    margin-bottom: 25px;
}


.section-heading h2 span {
    font-weight: 400;
}


.section-description {
    font-size: 17px;

    line-height: 1.7;

    color: #666666;
}


/* PRODUCT GRID */

.product-grid {
    display:inline-block;

    grid-template-columns: repeat(3, 1fr);

    gap: 25px;
}


/* PRODUCT CARD */

.product-card {
    display:inline-block;

    text-decoration: none;

    color: #111111;

    background: #49494921;

    overflow: hidden;
}


/* PRODUCT IMAGE */

.product-image {
    height: 200px;

    width: 300px;

    overflow: hidden;

    display: flex;

    align-items: center;

    justify-content: center;
}


.product-image img {
    width: 100%;

    height: 100%;

    object-fit: cover;

    transition: transform 0.5s ease;
}


/* HOVER EFFECT */

.product-card:hover .product-image img {
    transform: scale(1.05);
}


/* PRODUCT INFORMATION */

.product-info {
    padding: 25px 25px 30px;

    background: #5c5c5c36;
}


.product-info h3 {
    font-size: 22px;

    margin-bottom: 10px;
}


.product-info span {
    font-size: 13px;

    color: #000000;
}


/* FOOTER */

footer {
    padding: 40px;

    text-align: center;

    background: #111111;

    color: white;
}


@media (max-width: 768px) {

    .hero {
        grid-template-columns: 1fr;

        text-align: center;

        padding: 60px 6%;
    }


    .hero h1 {
        font-size: 48px;
    }


    .hero-image {
        width: 100%;
        height: auto;
        object-fit:contain;
        object-position: center;
    }


    .hero-content {
        max-width: 100%;
    }

}


@media (max-width: 768px) {

    .products {
        padding: 80px 6%;
    }


    .section-heading h2 {
        font-size: 40px;
    }


    .product-grid {
        grid-template-columns: 1fr;
    }


    .product-image {
        height: 350px;
    }

}


/* FEATURED PRODUCTS */

.featured-products {
    padding: 120px 7%;
    background: #ffffff;
}


.featured-grid {
    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 25px;
}


.featured-card {
    background: #ffffff;

    overflow: hidden;

    transition: transform 0.3s ease,
                box-shadow 0.3s ease;
}


.featured-card:hover {
    transform: translateY(-6px);

    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.08);
}


/* PRODUCT IMAGE */

.featured-image {
    height: 420px;

    display: flex;

    align-items: center;

    justify-content: center;

    overflow: hidden;

    background: #eeeeeb;
}


.featured-image img {
    width: 100%;

    height: 100%;

    object-fit:cover;

    transition: transform 0.5s ease;
}


.featured-card:hover .featured-image img {
    transform: scale(1.04);
}


/* PRODUCT INFORMATION */

.featured-info {
    padding: 30px;
}


.product-category {
    font-size: 11px;

    letter-spacing: 2px;

    color: #000000;

    margin-bottom: 12px;
}


.featured-info h3 {
    font-size: 30px;

    margin-bottom: 12px;
}


.featured-info > p:not(.product-category) {
    font-size: 14px;

    color: #000000;

    line-height: 1.6;

    margin-bottom: 20px;
}


.featured-info a {
    color: #000000;

    text-decoration: none;

    font-size: 13px;

    font-weight: bold;
}


/* VIEW ALL BUTTON */

.featured-button {
    text-align: center;

    margin-top: 60px;
}


.outline-button {
    display: inline-block;

    padding: 15px 30px;

    border: 1px solid #111111;

    color: #111111;

    text-decoration: none;

    font-size: 13px;

    transition: all 0.3s ease;
}


.outline-button:hover {
    background: #111111;

    color: #ffffff;
}


@media (max-width: 768px) {

    .featured-products {
        padding: 80px 6%;
    }


    .featured-grid {
        grid-template-columns: 1fr;
    }


    .featured-image {
        height: 380px;
    }


    .featured-info h3 {
        font-size: 26px;
    }

}


/* ABOUT CAPSTONE */

.about {
    display: grid;

    grid-template-columns: 1fr 1fr;

    min-height: 650px;

    background: #111111;

    color: #ffffff;
}


.about-image {
    min-height: 650px;

    overflow: hidden;
}


.about-image img {
    width: 100%;

    height: 100%;

    object-fit: cover;
}


.about-content {
    display: flex;

    flex-direction: column;

    justify-content: center;

    padding: 80px 10%;
}


.about-content .section-label {
    color: #aaaaaa;

    margin-bottom: 25px;
}


.about-content h2 {
    font-size: 55px;

    line-height: 1.1;

    margin-bottom: 35px;
}


.about-content h2 span {
    font-weight: 400;
}


.about-text {
    max-width: 550px;

    font-size: 16px;

    line-height: 1.8;

    color: #cccccc;

    margin-bottom: 20px;
}


.about-button {
    display: inline-block;

    margin-top: 20px;

    color: #ffffff;

    text-decoration: none;

    font-size: 13px;

    letter-spacing: 1px;

    border-bottom: 1px solid #ffffff;

    padding-bottom: 8px;

    width: fit-content;
}


@media (max-width: 768px) {

    .about {
        grid-template-columns: 1fr;
    }


    .about-image {
        min-height: 400px;
    }


    .about-content {
        padding: 70px 7%;
    }


    .about-content h2 {
        font-size: 42px;
    }

}


/* WHY CAPSTONE */

.why-capstone {
    padding: 120px 7%;

    background: #f5f5f3;

    color: #111111;
}


/* VALUES GRID */

.values-grid {
    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 1px;

    background: #d8d8d5;

    margin-top: 70px;
}


/* VALUE CARD */

.value-card {
    position: relative;

    background: #f5f5f3;

    padding: 50px 40px 55px;

    min-height: 330px;
}


/* NUMBER */

.value-number {
    display: block;

    font-size: 12px;

    letter-spacing: 2px;

    color: #888888;

    margin-bottom: 45px;
}


/* ICON */

.value-icon {
    width: 48px;

    height: 48px;

    border: 1px solid #111111;

    display: flex;

    align-items: center;

    justify-content: center;

    font-size: 20px;

    margin-bottom: 30px;
}


/* TITLE */

.value-card h3 {
    font-size: 27px;

    margin-bottom: 15px;

    text-transform: capitalize;
}


/* DESCRIPTION */

.value-card p {
    max-width: 320px;

    font-size: 15px;

    line-height: 1.7;

    color: #666666;
}


/* HOVER */

.value-card {
    transition: background 0.3s ease;
}


.value-card:hover {
    background: #ffffff;
}


@media (max-width: 768px) {

    .why-capstone {
        padding: 80px 6%;
    }


    .values-grid {
        grid-template-columns: 1fr;

        gap: 1px;

        background: #d8d8d5;
    }


    .value-card {
        min-height: auto;

        padding: 40px 30px 45px;
    }

}


section {
    scroll-margin-top: 80px;
}


.dealers {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 80px;
    padding: 120px 7%;
    background: #ffffff;
    align-items: center;
}

.dealer-content {
    max-width: 650px;
}

.dealer-content h2 {
    font-size: 55px;
    line-height: 1.1;
    margin-bottom: 30px;
}

.dealer-content h2 span {
    font-weight: 400;
}

.dealer-description {
    max-width: 550px;
    font-size: 17px;
    line-height: 1.8;
    color: #666666;
    margin-bottom: 35px;
}

.dealer-button {
    display: inline-block;
    padding: 16px 30px;
    background: #111111;
    color: #ffffff;
    text-decoration: none;
    font-size: 13px;
    letter-spacing: 0.5px;
    transition: background 0.3s ease;
}

.dealer-button:hover {
    background: #333333;
}

.dealer-info {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1px;
    background: #d8d8d5;
}

.dealer-stat {
    background: #f5f5f3;
    padding: 40px 30px;
    min-height: 260px;
}

.dealer-number {
    display: block;
    font-size: 12px;
    letter-spacing: 2px;
    color: #888888;
    margin-bottom: 50px;
}

.dealer-stat h3 {
    font-size: 22px;
    margin-bottom: 15px;
}

.dealer-stat p {
    font-size: 14px;
    line-height: 1.7;
    color: #666666;
}


@media (max-width: 768px) {

    .dealers {
        grid-template-columns: 1fr;
        gap: 50px;
        padding: 80px 6%;
    }

    .dealer-content h2 {
        font-size: 42px;
    }

    .dealer-info {
        grid-template-columns: 1fr;
    }

    .dealer-stat {
        min-height: auto;
    }

}


.contact {
    padding: 120px 7%;
    background: #111111;
    color: #ffffff;
}

.contact-heading {
    max-width: 700px;
    margin-bottom: 70px;
}

.contact-heading .section-label {
    color: #aaaaaa;
}

.contact-heading h2 {
    font-size: 55px;
    line-height: 1.1;
    margin-bottom: 25px;
}

.contact-heading h2 span {
    font-weight: 400;
}

.contact-heading > p {
    max-width: 600px;
    font-size: 17px;
    line-height: 1.8;
    color: #cccccc;
}


.contact-layout {
    display: grid;
    grid-template-columns: 0.8fr 1.2fr;
    gap: 80px;
    align-items: start;
}


.contact-details {
    display: grid;
    gap: 1px;
    background: #444444;
}


.contact-item {
    background: #111111;
    padding: 35px 30px;
    border: 1px solid #333333;
}


.contact-item span {
    display: block;
    font-size: 11px;
    letter-spacing: 2px;
    color: #888888;
    margin-bottom: 30px;
}


.contact-item h3 {
    font-size: 22px;
    margin-bottom: 12px;
}


.contact-item p {
    font-size: 14px;
    line-height: 1.7;
    color: #aaaaaa;
}


.contact-form {
    display: grid;
    gap: 25px;
}


.form-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
}


.form-group label {
    font-size: 12px;
    letter-spacing: 1px;
    color: #aaaaaa;
}


.form-group input,
.form-group textarea {
    width: 100%;
    padding: 15px 0;
    background: transparent;
    border: none;
    border-bottom: 1px solid #555555;
    color: #ffffff;
    font-family: inherit;
    font-size: 15px;
    outline: none;
}


.form-group input:focus,
.form-group textarea:focus {
    border-bottom: 1px solid #ffffff;
}


.form-group textarea {
    resize: vertical;
}


.contact-form button {
    width: fit-content;
    padding: 16px 30px;
    margin-top: 10px;
    background: #ffffff;
    color: #111111;
    border: none;
    cursor: pointer;
    font-size: 13px;
    letter-spacing: 0.5px;
    transition: all 0.3s ease;
}


.contact-form button:hover {
    background: #dddddd;
}


@media (max-width: 768px) {

    .contact {
        padding: 80px 6%;
    }

    .contact-heading h2 {
        font-size: 42px;
    }

    .contact-layout {
        grid-template-columns: 1fr;
        gap: 50px;
    }

}


@media (max-width: 768px) {

    header {
        height: 70px;
        padding: 0 6%;
    }

    .logo img {
        width: 120px;
    }

    .menu-toggle {
        display: block;
    }

    nav {
        position: absolute;
        top: 70px;
        left: 0;
        width: 100%;
        display: none;
        flex-direction: column;
        gap: 0;
        background: #ffffff;
        border-top: 1px solid #eeeeee;
    }

    nav.active {
        display: flex;
    }

    nav a {
        padding: 18px 6%;
        border-bottom: 1px solid #eeeeee;
        font-size: 14px;
    }

}



/* RESPONSIVE HERO — MOBILE ONLY */
@media (max-width: 768px) {

    .hero {
        min-height: calc(100svh - 70px);
        height: auto;
        padding: 60px 6%;

        display: flex;
        align-items: center;
        justify-content: center;

        background-image: url("images/hero-faucet-mobile.jpg");
        background-size: cover;
        background-position: center center;
        background-repeat: no-repeat;
    }

    .hero-overlay {
        background: rgba(0, 0, 0, 0.42);
    }

    .hero-content {
        width: 100%;
        max-width: 520px;
        margin: 0;
        text-align: center;
    }

    .hero-label {
        font-size: 10px;
        letter-spacing: 3px;
        margin-bottom: 18px;
    }

    .hero-content h1 {
        font-size: clamp(36px, 9vw, 58px);
        line-height: 1;
        letter-spacing: -1px;
        margin-bottom: 22px;
        overflow-wrap: break-word;
    }

    .hero-description {
        max-width: 440px;
        margin: 0 auto 26px;
        font-size: 15px;
        line-height: 1.65;
    }

    .hero-buttons {
        flex-direction: column;
        align-items: center;
        gap: 12px;
    }

    .hero-button {
        max-width: 100%;
        padding: 14px 22px;
        text-align: center;
    }
}



/* PRODUCT CATALOGUE PAGE */

.products-hero {
    min-height: 420px;

    display: flex;

    flex-direction: column;

    justify-content: center;

    padding: 80px 7%;

    background: #f5f5f3;
}


.products-hero h1 {
    font-size: clamp(55px, 7vw, 100px);

    line-height: 0.95;

    margin-bottom: 25px;
}


.products-hero > p:last-child {
    max-width: 550px;

    font-size: 17px;

    line-height: 1.7;

    color: #666666;
}


/* CATALOGUE */

.catalogue {
    padding: 120px 7%;

    background: #ffffff;
}


.catalogue-header {
    margin-bottom: 60px;
}


.catalogue-header h2 {
    font-size: 48px;
}


/* CATALOGUE GRID */

.catalogue-grid {
    display: grid;

    grid-template-columns: repeat(2, 1fr);

    gap: 25px;
}


/* CARD */

.catalogue-card {
    text-decoration: none;

    color: #111111;

    background: #f5f5f3;

    overflow: hidden;

    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease;
}


.catalogue-card:hover {
    transform: translateY(-5px);

    box-shadow:
        0 20px 50px
        rgba(0, 0, 0, 0.08);
}


/* IMAGE */

.catalogue-image {
    height: 500px;

    overflow: hidden;

    display: flex;

    align-items: center;

    justify-content: center;
}


.catalogue-image img {
    width: 100%;

    height: 100%;

    object-fit: cover;

    transition:
        transform 0.5s ease;
}


.catalogue-card:hover
.catalogue-image img {
    transform: scale(1.04);
}


/* INFO */

.catalogue-info {
    padding: 30px;
}


.catalogue-info span {
    font-size: 11px;

    letter-spacing: 2px;

    color: #888888;
}


.catalogue-info h3 {
    font-size: 30px;

    margin: 12px 0;
}


.catalogue-info p {
    font-size: 14px;

    color: #666666;

    line-height: 1.6;
}


@media (max-width: 768px) {

    .products-hero {
        min-height: 350px;

        padding: 70px 6%;
    }


    .products-hero h1 {
        font-size: 55px;
    }


    .catalogue {
        padding: 80px 6%;
    }


    .catalogue-header h2 {
        font-size: 38px;
    }


    .catalogue-grid {
        grid-template-columns: 1fr;
    }


    .catalogue-image {
        height: 400px;
    }

}


/* CATEGORY PAGE */

.category-hero {
    min-height: 430px;

    padding: 80px 7%;

    display: flex;

    flex-direction: column;

    justify-content: center;

    background: #f5f5f3;
}


.category-hero h1 {
    font-size: clamp(60px, 8vw, 110px);

    line-height: 0.9;

    margin-bottom: 30px;
}


.category-hero > p:last-child {
    max-width: 600px;

    font-size: 17px;

    line-height: 1.7;

    color: #666666;
}


/* PRODUCT LIST */

.product-list {
    padding: 120px 7%;

    background: #ffffff;
}


.product-list-header {
    margin-bottom: 60px;
}


.product-list-header h2 {
    font-size: 48px;
}


/* PRODUCT GRID */

.product-grid {
    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 25px;
}


/* PRODUCT CARD */

.product-card {
    text-decoration: none;

    color: #111111;

    background: #f5f5f3;

    overflow: hidden;

    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease;
}


.product-card:hover {
    transform: translateY(-6px);

    box-shadow:
        0 20px 50px
        rgba(0, 0, 0, 0.08);
}


/* IMAGE */

.product-card-image {
    height: 420px;

    overflow: hidden;
}


.product-card-image img {
    width: 100%;

    height: 100%;

    object-fit: cover;

    transition:
        transform 0.5s ease;
}


.product-card:hover
.product-card-image img {
    transform: scale(1.04);
}


/* PRODUCT INFO */

.product-card-info {
    padding: 28px;
}


.product-card-info span {
    font-size: 10px;

    letter-spacing: 2px;

    color: #888888;
}


.product-card-info h3 {
    font-size: 28px;

    margin: 10px 0;
}


.product-card-info p {
    font-size: 14px;

    line-height: 1.6;

    color: #666666;
}


@media (max-width: 900px) {

    .product-grid {
        grid-template-columns: repeat(2, 1fr);
    }

}


@media (max-width: 600px) {

    .category-hero {
        min-height: 350px;

        padding: 70px 6%;
    }


    .category-hero h1 {
        font-size: 60px;
    }


    .product-list {
        padding: 80px 6%;
    }


    .product-list-header h2 {
        font-size: 38px;
    }


    .product-grid {
        grid-template-columns: 1fr;
    }


    .product-card-image {
        height: 400px;
    }

}


/* MODEL PAGE */

.model-hero {
    padding: 80px 7%;

    background: #f5f5f3;
}


.model-hero h1 {
    font-size: clamp(70px, 9vw, 60px);

    line-height: 0.85;

    margin: 20px 0 25px;
}


.model-tagline {
    font-size: 18px;

    margin-bottom: 25px;
}


.model-description {
    max-width: 600px;

    font-size: 16px;

    line-height: 1.8;

    color: #666666;
}


.model-categories {
    padding: 120px 7%;
}


.model-category-header {
    margin-bottom: 60px;
}


.model-category-header h2 {
    font-size: 48px;
}


.category-grid {
    display: grid;

    grid-template-columns:
        repeat(4, 1fr);

    gap: 25px;
}


.category-card {
    text-decoration: none;

    color: #111111;

    background: #f5f5f3;

    overflow: hidden;

    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease;
}


.category-card:hover {
    transform: translateY(-5px);

    box-shadow:
        0 20px 50px
        rgba(0, 0, 0, 0.08);
}


.category-card-image {
    height: 200px;

    overflow: hidden;
}


.category-card-image img {
    width: 100%;

    height: 100%;

    object-fit: cover;

    transition:
        transform 0.5s ease;
}


.category-card:hover
.category-card-image img {
    transform: scale(1.04);
}


.category-card-info {
    padding: 30px;
}


.category-card-info span {
    font-size: 10px;

    letter-spacing: 2px;

    color: #888888;
}


.category-card-info h3 {
    font-size: 28px;

    margin: 10px 0;
}


.category-card-info p {
    font-size: 14px;

    line-height: 1.6;

    color: #666666;
}


@media (max-width: 600px) {

    .model-hero {
        padding: 80px 6%;
    }


    .model-hero h1 {
        font-size: 70px;
    }


    .model-tagline {
        font-size: 20px;
    }


    .model-categories {
        padding: 80px 6%;
    }


    .model-category-header h2 {
        font-size: 38px;
    }


    .category-grid {
        grid-template-columns: 1fr;
    }


    .category-card-image {
        height: 350px;
    }

}



/* CAPSTONE LOGO INTRO */

#logo-intro {
    position: fixed;
    inset: 0;
    z-index: 99999;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #ffffff;

    opacity: 1;
    visibility: visible;

    transition:
        opacity 0.7s ease,
        visibility 0.7s ease;
}

#logo-intro img {
    display: block;
    width: min(65vw, 280px);
    max-height: 120px;
    object-fit: contain;

    opacity: 0;
    transform: scale(0.92);

    animation: capstone-logo-reveal 1s ease forwards;
}

@keyframes capstone-logo-reveal {
    to {
        opacity: 1;
        transform: scale(1);
    }
}

#logo-intro.intro-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

body.intro-active {
    overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
    #logo-intro,
    #logo-intro img {
        animation: none;
        transition: none;
    }

    #logo-intro img {
        opacity: 1;
        transform: none;
    }
}
