main section:last-child {
    margin-bottom: 0;
}

.copyright{
    margin:0;
    font-size:1rem;
    color:var(--muted);
}
.contact-box{
    margin-top:1rem !important;
    margin-bottom:1rem !important;
}

.button-group{
    display:flex;
    justify-content:left;
    align-items:center;
    flex-wrap:wrap;
    gap:1rem;
}

.button-group .event-button{
  margin-top: 3rem;
}


:root{
    --paper:#f4f0e8;
    --paper-light:#faf7f1;
    --red:#d63a2f;
    --red-dark:#b92e24;
    --text:#000;
    --muted:#6d655f;
    --border:#d63a2f;
    --max-width:900px;
}

footer .container{
    padding:0 2rem 2rem;
}


*{
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    margin:0;
    background:var(--paper);
    color:var(--text);
    font-family:"Cormorant Garamond", Georgia, serif;
    font-size:1.2rem;
    line-height:1.7;
}

body::before{
    content:"";
    position:fixed;
    inset:0;
    border:6px solid var(--red);
    pointer-events:none;
    z-index:9999;
}

header{
    width:100%;
    aspect-ratio:1366/768;
    background:url("banner.png") center top no-repeat;
    background-size:cover;
}

.poster-top{
    display:block;
    width:100%;
    padding:1.5rem 1rem;
    background:var(--red);
    color:var(--paper-light);

    font-family:"Montserrat", Arial, sans-serif;
    font-size:1.75rem;
    font-weight:600;
    letter-spacing:2px;
    text-transform:uppercase;
    text-align:center;
  overflow-wrap: break-word;
    word-wrap: break-word;
}

h1{
    margin:0;
    padding:2.5rem 1rem;

    text-align:center;

    color:var(--paper-light);
    background:var(--red);

    border-top:6px solid #c73228;
    border-bottom:6px solid #c73228;
}

.middle-line{
    display:block;
    font-family:"Montserrat", Arial, sans-serif;
    font-size:1.35rem;
    font-weight:600;
    letter-spacing:2px;
    text-transform:uppercase;
    line-height:1.1;
}

.bottom-line{
    display:block;
    margin-top:.1rem;   /* was .75rem */
    line-height:1;

    font-family:"Cormorant Garamond", serif;
    font-style:italic;
    font-size:2rem;
    font-weight:400;
}


.container{
    max-width:var(--max-width);
    margin:0 auto;
    padding:2rem;
}

section{
    margin-bottom:3rem;
}

h2{
    color:var(--red);

    font-family:"Montserrat", Arial, sans-serif;
    font-weight:500;

    font-size:clamp(1.5rem,3vw,2.1rem);
    line-height:1.3;

    margin:2rem 0 1rem;
}

p{
    margin-bottom:1.25rem;
}

blockquote{
    margin:2rem 0;
    padding-left:1.5rem;

    border-left:4px solid var(--red);

    color:var(--muted);

    font-style:italic;
    font-size:1.25rem;
}

.pairing-box,
.instagram-box {
    margin:3rem 0;
    padding:2rem;
    background:var(--paper-light);
}

.pairing-box h2,
.instagram-box h2,
form h3{
    margin-top:0;

    color:var(--red);

    font-family:"Montserrat", Arial, sans-serif;
    font-size:1.6rem;
    font-weight:500;

    text-transform:uppercase;
    letter-spacing:2px;
}

label{
    display:block;
    margin-bottom:.5rem;
    font-weight:600;
}

input,
textarea{
    width:100%;
    padding:.9rem;

    border:1px solid #d6cec5;
    border-radius:4px;

    font-size:1rem;
}

input:focus,
textarea:focus{
    outline:none;
    border-color:var(--red);
    box-shadow:0 0 5px rgba(214,58,47,.25);
}

.event-button,
button{
    display:inline-flex;
    align-items:center;
    gap:8px;

    padding:1rem 1.8rem;
    margin:.5rem .75rem .5rem 0;

    background:var(--red);
    color:#fff;

    border:none;
    border-radius:4px;

    text-decoration:none;

    font-family:"Montserrat", Arial, sans-serif;
    font-size:1rem;
    font-weight:600;
    letter-spacing:1px;
    text-transform:uppercase;

    cursor:pointer;
    transition:.25s ease;

    text-align:left;
}
.event-button:hover,
button:hover{
    background:var(--red-dark);
    transform:translateY(-2px);
}

.event-button:focus,
button:focus{
    outline:2px solid var(--red-dark);
    outline-offset:2px;
}

.home-button
{
    display:inline-flex;
    align-items:center;
    gap:8px;

    padding:1rem 1.8rem;
    margin:.5rem .75rem .5rem 0;

    background:var(--red);
    color:#fff;

    border:none;
    border-radius:4px;

    text-decoration:none;

    font-family:"Montserrat", Arial, sans-serif;
    font-size:1rem;
    font-weight:600;
    letter-spacing:1px;
    text-transform:uppercase;

    cursor:pointer;
    transition:.25s ease;

    text-align:left;
    margin-top: 10rem;
}
.home-button:hover,
button:hover{
    background:var(--red-dark);
    transform:translateY(-2px);
}

.home-button:focus,
button:focus{
    outline:2px solid var(--red-dark);
    outline-offset:2px;
}


.instagram-logo{
    width:20px;
    height:20px;
    margin-left:.5rem;
    vertical-align:middle;
}

.captcha-submit{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:20px;
    flex-wrap:wrap;
}

.h-captcha{
    display:flex;
    justify-content:center;
    margin:1rem 0;
}

a{
    color:#5a3028;
}

a:hover{
    color:#000;
}

footer{
    margin-top: 0;
    padding-top: 0;
    text-align:center;
    color:var(--muted);
    font-size:1rem;
padding-bottom: 0.5rem;  
}

.author{
    color:var(--muted);
    font-style:italic;
}

@media (max-width:768px){

    body{
        font-size:1.1rem;
    }

    .container{
        padding:1.5rem;
    }

    h1{
        padding:2rem 1rem;
    }

    .middle-line{
        font-size:1.1rem;
    }

    .bottom-line{
        font-size:1.7rem;
    }

    .pairing-box,
    .instagram-box,
    form{
        padding:1.5rem;
    }
}

@media (max-width:480px){

    body{
        font-size:1rem;
    }

    .container{
        padding:1rem;
    }

    .poster-top{
        font-size:1.25rem;
        letter-spacing:1px;
    }

    .event-button,
    button{
        display:block;
        width:100%;
        margin:.75rem 0;
        text-align:center;
    }

}

body::before {
    position: fixed;
    inset: 0;
    border: 6px solid var(--red);
}

/* ===== Centre all main content ===== */
main {
    text-align: center;
}

/* Centre the button rows */
.button-group {
    justify-content: center;
}

/* Centre button text (also fixes multi-line button labels) */
.event-button,
button {
    justify-content: center;
    text-align: center;
    margin-right: 0;
}

/* Lighter background behind the founder quote */
blockquote {
    background: var(--paper-light);
    color: #2b2623;
    padding: 1.5rem;
}

/* Space between all boxes and the edges of the page */
blockquote,
.pairing-box,
.instagram-box,
form,
main section > p,
main section > h2 {
    margin-left: 2.5rem;
    margin-right: 2.5rem;
}

@media (max-width:480px){
    blockquote,
    .pairing-box,
    .instagram-box,
    form,
    main section > p,
    main section > h2 {
        margin-left: 0.5rem;
        margin-right: 0.5rem;
    }
}

/* Match the size of the headings inside the boxes */
main section > h2 {
    font-size: 1.6rem;
}

/* Remove the border around the "Join Our Foodie Community" block */
.pairing-box.no-border {
    border: none;
}

form {
    border: 2px solid var(--border);
    outline: none;
    box-shadow: none;
    background: var(--paper-light);
padding: 2rem;
}



.pairing-box:not(.no-border) {
    border:2px solid var(--border);
}

.event-button {
    padding:.7rem 1.2rem;
    font-size:.85rem;
    letter-spacing:.5px;
}
