/* =========================================================
   CHIFFON.DK
   Main stylesheet
   ========================================================= */


/* ---------------------------------------------------------
   1. Variables
   --------------------------------------------------------- */

:root {
    --color-black: #080808;
    --color-dark: #111111;
    --color-white: #ffffff;
    --color-light: #dddddd;
    --color-gray: #999999;
    --color-red: #ed1c24;

    --content-width: 1400px;

    --font-body: Arial, Helvetica, sans-serif;
    --font-heading: Georgia, "Times New Roman", serif;
}


/* ---------------------------------------------------------
   2. Reset
   --------------------------------------------------------- */

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
}

body {
    background: var(--color-black);
    color: var(--color-white);
    font-family: var(--font-body);
    line-height: 1.6;
}

img {
    display: block;
    max-width: 100%;
}

a {
    color: inherit;
    text-decoration: none;
}

button {
    font: inherit;
}


/* ---------------------------------------------------------
   3. General layout
   --------------------------------------------------------- */

.container {
    width: min(100% - 48px, var(--content-width));
    margin-inline: auto;
}


/* ---------------------------------------------------------
   4. Header
   --------------------------------------------------------- */


/* ---------------------------------------------------------
   5. Hero
   --------------------------------------------------------- */

.hero {
    background: var(--color-black);
}


/* Facade image */

.hero-image {
    width: 100%;
    height: min(65vh, 720px);

    overflow: hidden;
}

.hero-image img {
    width: 100%;
    height: 100%;

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

    /* Slightly soften the image */
    filter: brightness(0.92);
}


/* Welcome section */

.hero-content {
    padding: 70px 24px 80px;

    text-align: center;
}

.hero-content h1 {
    margin: 14px 0;

    color: var(--color-white);

    font-family: var(--font-heading);
    font-size: clamp(4rem, 9vw, 8rem);
    font-weight: 400;
    line-height: 0.95;
    letter-spacing: 4px;
}

.eyebrow {
    margin: 0 0 14px;

    color: var(--color-white);

    font-size: clamp(0.9rem, 2vw, 1.2rem);
    font-weight: 400;
    letter-spacing: 8px;
}

.tagline {
    margin-top: 28px;

    color: var(--color-light);

    font-size: clamp(1rem, 2vw, 1.35rem);
}

.chiffon-title {
    width: fit-content;
    margin-inline: auto;
}


/* ---------------------------------------------------------
   6. Red lines
   --------------------------------------------------------- */

.red-line {
    width: 100%;
    height: 3px;

    margin-inline: auto;

    background: var(--color-red);
}

.red-line.small {
    width: 54px;
    height: 2px;

    margin-top: 14px;
    margin-bottom: 28px;
}


/* ---------------------------------------------------------
   7. Information section
   --------------------------------------------------------- */

.information {
    border-top: 1px solid #292929;
    border-bottom: 1px solid #292929;

    background: var(--color-dark);
}

.info-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}


/* Information cards */

.info-card {
    min-height: 430px;

    padding: 55px 42px;

    border-right: 1px solid #333;

    text-align: center;
}

.info-card:last-child {
    border-right: 0;
}


/* Icons */

.info-icon {
    margin-bottom: 22px;

    color: var(--color-red);

    font-size: 46px;
    line-height: 1;
}


/* Headings */

.info-card h2 {
    color: var(--color-white);

    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 3px;
}


/* Text */

.info-card p {
    margin-bottom: 20px;

    color: var(--color-light);

    font-size: 1rem;
}

.info-card address {
    margin-bottom: 28px;

    color: var(--color-light);

    font-style: normal;
    font-size: 1rem;
}


/* ---------------------------------------------------------
   8. Opening hours
   --------------------------------------------------------- */

.opening-hours {
    display: flex;
    flex-direction: column;
    gap: 5px;

    text-align: left;
}

.opening-hours div {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.opening-hours dt,
.opening-hours dd {
    color: var(--color-light);
    font-size: 0.95rem;
}

.opening-hours dd {
    text-align: right;
}


/* ---------------------------------------------------------
   9. Links
   --------------------------------------------------------- */

.info-card a {
    transition: color 0.2s ease;
}

.info-card a:hover {
    color: var(--color-red);
}


/* Email */

.info-card a[href^="mailto"] {
    color: var(--color-red);
    text-decoration: underline;
    text-underline-offset: 4px;
}


/* Phone */

.info-card a[href^="tel"] {
    color: var(--color-white);
    font-size: 1.1rem;
}


/* ---------------------------------------------------------
   10. Buttons
   --------------------------------------------------------- */

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 155px;

    padding: 12px 22px;

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

    color: var(--color-white) !important;

    font-size: 0.9rem;
    letter-spacing: 2px;

    transition:
        background-color 0.2s ease,
        color 0.2s ease;
}

.button:hover {
    background: var(--color-red);

    color: var(--color-white) !important;
}


/* ---------------------------------------------------------
   11. Footer
   --------------------------------------------------------- */

.site-footer {
    padding: 28px 0;

    border-top: 2px solid var(--color-red);

    background: var(--color-black);

    text-align: center;
}

.site-footer p {
    color: var(--color-gray);

    font-size: 0.8rem;
}


/* ---------------------------------------------------------
   12. Tablet
   --------------------------------------------------------- */

@media (max-width: 1000px) {

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

    .info-card:nth-child(2) {
        border-right: 0;
    }

    .info-card:nth-child(-n + 2) {
        border-bottom: 1px solid #333;
    }

}


/* ---------------------------------------------------------
   13. Mobile
   --------------------------------------------------------- */

@media (max-width: 650px) {

    .container {
        width: min(100% - 32px, var(--content-width));
    }


    /* Header */


    /* Hero */

    .hero-image {
        height: 55vh;
        min-height: 360px;
    }

    .hero-image img {
        object-position: center;
    }

    .hero-content {
        padding: 55px 20px 60px;
    }

    .hero-content h1 {
        font-size: clamp(3.2rem, 17vw, 5rem);
        letter-spacing: 2px;
    }

    .eyebrow {
        font-size: 0.75rem;
        letter-spacing: 5px;
    }

    .tagline {
        font-size: 1rem;
        line-height: 1.5;
    }


    /* Information */

    .info-grid {
        display: block;
    }

    .info-card {
        min-height: auto;

        padding: 50px 25px;

        border-right: 0;
        border-bottom: 1px solid #333;
    }

    .info-card:last-child {
        border-bottom: 0;
    }


    /* Opening hours */

    .opening-hours {
        max-width: 320px;
        margin-inline: auto;
    }


    /* Footer */

    .site-footer {
        padding: 24px 16px;
    }

}
