:root {
    --ink: #24352e;
    --cream: #f8f5ef;
    --sand: #e7dfd0;
    --sage: #aab8a3;
    --coral: #c76f58;
    --line: #d8d0c3;
    color-scheme: light only;
    supported-color-schemes: light
}

* {
    box-sizing: border-box
}

html, body {
  background-color: #ffffff !important;
  color: #1a1a1a !important;
}

html {
    scroll-behavior: smooth
}

body {
    margin: 0;
    background: var(--cream);
    color: var(--ink);
    font: 16px/1.6 "DM Sans", sans-serif
}

h1,
h2,
h3,
p {
    margin-top: 0
}

h1,
h2,
h3 {
    font-family: "Playfair Display", serif;
    line-height: 1.15
}

a {
    color: inherit
}

.hero {
    min-height: 760px;
    color: #fff;
    background: linear-gradient(180deg, #1e2f2a88, #1e2f2a44), url('https://images.unsplash.com/photo-1519741497674-611481863552?auto=format&fit=crop&w=1800&q=85') center/cover;
    position: relative
}

nav {
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1180px;
    margin: auto;
    padding: 0 30px
}

.brand {
    font: 700 22px "Playfair Display";
    text-decoration: none
}

.brand span {
    color: #e7b3a3
}

.nav-links {
    display: flex;
    gap: 28px
}

.nav-links a {
    text-decoration: none;
    font-size: 14px
}

.nav-toggle {
    display: none;
    background: none;
    border: 0;
    color: white;
    font-size: 23px
}

.hero-content {
    max-width: 900px;
    margin: 17vh auto 0;
    text-align: center;
    padding: 0 20px
}

.eyebrow {
    text-transform: uppercase;
    letter-spacing: .19em;
    font-size: 11px;
    font-weight: 700;
    color: var(--coral);
    margin-bottom: 17px
}

.hero .eyebrow {
    color: #f7ded3
}

.hero h1 {
    font-size: clamp(54px, 10vw, 115px);
    font-weight: 600;
    letter-spacing: -.05em;
    margin-bottom: 15px
}

.hero h1 i {
    font-weight: 400;
    color: #f3c9b9
}

.hero-date {
    font-size: 17px;
    margin-bottom: 34px
}

.button {
    border: 1px solid var(--coral);
    background: var(--coral);
    color: white;
    padding: 13px 20px;
    font-weight: 700;
    font-family: inherit;
    cursor: pointer;
    text-decoration: none;
    display: inline-flex;
    gap: 18px;
    align-items: center;
    justify-content: center
}

.button:hover {
    background: #ae5845
}

.button-light {
    background: white;
    border-color: white;
    color: var(--ink)
}

.button-light:hover {
    background: var(--cream)
}

.hero-scroll {
    position: absolute;
    bottom: 26px;
    left: 0;
    right: 0;
    text-align: center;
    font-size: 11px;
    letter-spacing: .1em
}

.hero-scroll span {
    display: block;
    font-size: 18px
}

.intro {
    max-width: 700px;
    text-align: center;
    padding: 115px 25px;
    margin: auto
}

.intro h2,
.section-heading h2,
.rsvp h2 {
    font-size: clamp(36px, 5vw, 58px);
    letter-spacing: -.04em
}

.intro>p:last-child {
    max-width: 520px;
    margin: 24px auto 0;
    color: #5e6962
}

.countdown-wrap {
    background: var(--ink);
    color: #fff;
    padding: 60px 25px;
    text-align: center
}

.countdown-wrap .eyebrow {
    color: #e7b3a3
}

.countdown {
    display: flex;
    justify-content: center;
    gap: clamp(20px, 7vw, 85px)
}

.countdown div {
    display: grid
}

.countdown b {
    font: 600 clamp(36px, 6vw, 66px) "Playfair Display"
}

.countdown span {
    text-transform: uppercase;
    letter-spacing: .14em;
    font-size: 10px;
    color: #c5cec5
}

.schedule,
.gallery,
.practical {
    max-width: 1180px;
    margin: auto;
    padding: 110px 30px
}

.section-heading {
    margin-bottom: 42px
}

.event-grid,
.info-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px
}

.event-grid article {
    background: #ebe4d8;
    padding: 43px;
    min-height: 290px
}

.event-number {
    color: var(--coral);
    font-size: 14px;
    font-weight: bold
}

.event-grid h3,
.info-grid h3 {
    font-size: 30px;
    margin: 26px 0 8px
}

.event-time {
    font-weight: bold
}

.event-grid a {
    font-size: 13px;
    font-weight: bold
}

.gallery {
    padding-top: 20px
}

.photo-grid {
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    grid-template-rows: 250px 250px;
    gap: 12px
}

.photo {
    background-size: cover;
    background-position: center;
    position: relative;
    color: #fff
}

.photo:after {
    content: "";
    inset: 0;
    position: absolute;
    background: linear-gradient(transparent, #15241dcc)
}

.photo span {
    position: absolute;
    z-index: 1;
    bottom: 16px;
    left: 16px;
    font: italic 16px "Playfair Display"
}

.photo-one {
    grid-row: span 2;
    background-image: url('resources/Primo_incontro.jpg');
    background-size: cover;
    background-position: center 25%
}

.photo-two {
    background-image: url('resources/acquisto_casa.jpg')
}

.photo-three {
    background-image: url('resources/Promessa.jpg');
    background-size: cover;
    background-position: center 90%
}

.rsvp {
    background: #e3dacb;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    padding: 105px max(30px, calc((100vw - 1050px)/2))
}

.rsvp-copy {
    padding-top: 15px
}

.rsvp-copy>p:not(.eyebrow) {
    color: #506057
}

.rsvp-note {
    font-size: 13px;
    font-weight: bold;
    margin-top: 30px
}

form {
    background: var(--cream);
    padding: 30px;
    display: grid;
    gap: 15px;
    box-shadow: 0 8px 28px #26332812
}

label {
    font-size: 12px;
    font-weight: bold;
    display: grid;
    gap: 5px
}

input,
select,
textarea {
    background: white;
    border: 1px solid var(--line);
    padding: 11px;
    font: 15px "DM Sans";
    color: var(--ink);
    width: 100%
}

textarea {
    resize: vertical
}

.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px
}

.guest-hint {
    background: #edf2ea;
    color: #3f5946;
    padding: 8px 10px;
    font-size: 13px
}

.form-message {
    font-size: 14px;
    margin: 0
}

.form-message.error {
    color: #a3372a
}

.form-message.success {
    color: #3d7049
}

.practical {
    padding-bottom: 120px
}

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

.info-grid article {
    border-top: 1px solid var(--ink);
    padding-top: 18px
}

.info-grid article>span {
    color: var(--coral);
    font-size: 25px
}

.info-grid h3 {
    font-size: 24px;
    margin: 14px 0 8px
}

.info-grid p {
    color: #5e6962;
    font-size: 14px
}

footer {
    padding: 38px 30px;
    background: var(--ink);
    color: #fff;
    text-align: center
}

footer p {
    font: 600 30px "Playfair Display";
    margin: 0
}

footer span {
    font-size: 11px;
    letter-spacing: .2em;
    color: #c5cec5
}

@media (prefers-color-scheme: dark) {
  html, body {
    background-color: #ffffff !important;
    color: #1a1a1a !important;
  }
}

img {
  color-scheme: light;
}

@media(max-width:650px) {
    .hero {
        min-height: 680px
    }

    nav {
        padding: 0 20px
    }

    .nav-toggle {
        display: block
    }

    .nav-links {
        display: none;
        position: absolute;
        right: 20px;
        top: 65px;
        background: var(--ink);
        padding: 15px;
        flex-direction: column;
        z-index: 2
    }

    .nav-links.open {
        display: flex
    }

    .hero-content {
        margin-top: 16vh
    }

    .event-grid,
    .rsvp,
    .info-grid {
        grid-template-columns: 1fr
    }

    .rsvp {
        gap: 30px;
        padding: 70px 20px
    }

    .schedule,
    .gallery,
    .practical {
        padding: 75px 20px
    }

    .event-grid article {
        min-height: auto;
        padding: 30px
    }

    .photo-grid {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: 210px 180px
    }

    .photo-one {
        grid-column: span 2;
        grid-row: auto
    }

    .countdown {
        gap: 15px
    }

    .countdown b {
        font-size: 34px
    }

    .countdown span {
        font-size: 9px
    }
}