/* ==========================================================================
   Reset / Normalize
   ========================================================================== */

*, *::before, *::after {
    box-sizing: border-box;
}

* {
    margin: 0;
}

@media (prefers-reduced-motion: no-preference) {
    html {
        interpolate-size: allow-keywords;
    }
}

body {
    line-height: 1.5;
}

canvas, iframe, img, picture, svg, video {
    display: block;
    max-width: 100%;
}

button, input, select, textarea {
    font: inherit;
}

button {
	background: none;
	border: none;
	cursor: pointer;
    letter-spacing: 0.125rem;
}

p, h1, h2, h3, h4, h5, h6, li, dl, dt, blockquote {
    overflow-wrap: break-word;
}

p {
    text-wrap: pretty;
}

h1, h2, h3, h4, h5, h6 {
    text-wrap: balance;
}

/* ==========================================================================
   Root
   ========================================================================== */

:root {
    /* Font families */
    --font-serif: font-family: "minion-pro", serif;
    --font-sans-serif: owners-text, sans-serif;

    /* Font weights */
	--weight-regular: 400;
	--weight-bold: 700;

    /* Font size */
    --font-size-medium: clamp(1.125rem, 2vw, 1.25rem);      /* ~18px → 20px */
    --font-size-regular: clamp(1rem, 1.5vw, 1rem);          /* ~16px (mostly stable) */
    --font-size-small: clamp(0.875rem, 1vw, 0.875rem);      /* ~14px (mostly stable) */
    --font-size-very-small: clamp(0.75rem, 0.8vw, 0.75rem); /* ~12px (mostly stable) */

    /* Line height */
    --line-height-regular: 1.5;
    --line-height-loose: 1.7;

    /* Letter spacing */
    --letter-spacing: 0.1428571429rem;

    /* Colours */
    --colour-dark: rgba(56, 60, 63, 1);
    --colour-light: rgba(255, 255, 255, 1);
    --colour-brand: rgba(199, 181, 155, 1);
    --colour-accent: rgba(88, 148, 184, 1);

    /* Backgrounds */
    --background-brand: rgba(249, 247, 245, 1);

    /* Margins */
    --margin-regular: 0 auto;

    /* Padding */
    --padding-regular: 3.125rem 1.25rem;
    --padding-content: 3.125rem 0 0 0;
    --padding-image-wall: 3.125rem 0.625rem;
    --padding-headings: 0 0 0.625rem 0;
}

@media (max-width: 40em) {
    :root {
        /* Margins */
        ---margin-regular: 3.125rem auto 0 auto;
    }
}



/* ==========================================================================
   Tags
   ========================================================================== */

body {
    background: var(--colour-dark);
    color: var(--colour-light);
    font-family: var(--font-serif);
    font-weight: var(--weight-regular);
    font-size: var(--font-size-medium);
    font-style: normal;
    letter-spacing: var(--letter-spacing);
}

a {
    color: var(--colour-dark);
    cursor: pointer;
    text-decoration: none;
    transition: all 0.3s;
}

a:hover {
    color: var(--colour-brand);
}

address {
    font-style: normal;
}

address p {
    margin-top: 0.625rem;
}

button {
    background: var(--colour-accent);
    border-radius: 1.25rem;
    color: var(--colour-light);
    min-width: 12.5rem;
    padding: 0.3125rem 1.25rem;
    text-align: center;
    text-transform: uppercase;
    transition: all 0.3s;
    transition-timing-function: ease-in-out;
    width: fit-content;
}

button:hover {
    background: var(--colour-brand);
	transform: scale(1.05);
}

/* H1 – main page title */
h1 {
    color: var(--colour-light);
    font-size: clamp(1.75rem, 5vw, 3rem); /* 28px → 48px */
    font-weight: 400;
    line-height: 1.2;
}

/* H2 – section title */
h2 {
    color: var(--colour-light);
    font-size: clamp(1.5rem, 4vw, 2.5rem); /* 24px → 40px */
    font-weight: 400;
    line-height: 1.25;
}

/* H3 – sub-section title */
h3 {
    color: var(--colour-light);
    font-size: clamp(1.25rem, 3.5vw, 2rem); /* 20px → 32px */
    font-weight: 400;
    line-height: 1.3;
}

/* H4 – smaller heading / card title */
h4 {
    color: var(--colour-light);
    font-size: clamp(1.125rem, 3vw, 1.75rem); /* 18px → 28px */
    font-weight: 400;
    line-height: 1.35;
}

/* H5 – minor heading / label */
h5 {
    color: var(--colour-light);
    font-size: clamp(1.125rem, 2.5vw, 1.5rem); /* 16px → 24px */
    font-weight: 400;
    line-height: 1.4;
}

/* H6 – small heading / caption */
h6 {
    color: var(--colour-light);
    font-size: clamp(1.125rem, 2vw, 1.25rem); /* 14px → 20px */
    font-weight: 400;
    line-height: 1.4;
}

input {
    border: 1px solid var(--colour-brand);
    border-radius: 1.25rem;
    padding: 0.25rem 0.625rem;
    width: 100%;
}

label {
    font-weight: var(--weight-regular) !important;
    padding: 0.625rem 0 0 1.25rem;
    text-align: left;
}

main {
    padding: 5rem 1.25rem;
    margin: 0 auto;
    max-width: 70rem;
    text-align: center;
    width: 100%;
}

@media (max-width: 40em) {
    main {
        padding: 3.75rem 1.25rem;
    }
}

p {
    margin-top: 1.25rem;
}

strong {
    font-weight: var(--weight-bold);
}

textarea {
    border: 1px solid var(--colour-brand);
    border-radius: 1.25rem;
    padding: 0.25rem 0.625rem;
    width: 100%;
}

ul {
    list-style-type: none;
    padding: 0;
}

/* Footer */

.c-footer {
    background: rgba(56, 60, 63, 1);
    position: relative;
    z-index: 2
}

.c-footer-inner {
    width: 100%;
    margin: 0 auto;
    max-width: 77.5rem;
    padding: 2.5rem 1.25rem .625rem;
    color: rgba(237, 231, 221, 1);
    text-align: center
}

@media (min-width:48em) {
    .c-footer-inner {
        max-width: 87.5rem;
        padding-left: 6.25rem;
        padding-right: 6.25rem
    }
}

.cbh-brands {
    border-top: .0625rem solid rgba(237, 231, 221, .5);
    padding-bottom: 2.25rem;
    padding-top: 2.25rem;
    position: relative;
    z-index: 2;
}

.cbh-brand {
    margin: 1.25rem 2.25rem 0
}

.cbh-brand img {
    height: 4.25rem;
    width: auto;
}

@media (max-width:64em) {
    .cbh-brand {
        margin: 1.25rem;
    }

    .cbh-brand img {
        height: 3.375rem;
    }
}

@media (max-width:48em) {
    .cbh-brand {
        margin: 1.25rem;
    }

    .cbh-brand img {
        height: 3rem;
    }
}

.cbh-brands-title {
    color: rgba(237, 231, 221, 1);
    font-family: Figtree, sans-serif;
    font-size: .875rem;
    font-weight: 500;
    letter-spacing: .1428571429rem;
    text-transform: uppercase;
    text-wrap: unset;
    word-spacing: 0.125rem;
    width: 100%;
}

.cbh-brand-inner-footer {
    width: 100%;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    text-align: center;
    margin: 0 auto 0;
}

.cbh-brand-content {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    border-top: none;
    border-bottom: none;
}

.cbh-footer-bottom {
    display: grid;
    gap: 2.5rem;
    grid-template-areas: "compulsory g7";
    grid-template-columns: 4fr 1fr;
    border-top: .0625rem solid rgba(237, 231, 221, .5);
    padding-top: 1.25rem;
}

.cbh-footer-compulsory {
    grid-area: compulsory;
    width: 100%;
    padding: .625rem;
    text-align: left;
}

.cbh-footer-g7 {
    grid-area: g7;
    width: 100%;
    padding: .625rem;
}

.cbh-footer-g7-title {
    display: block;
    height: auto;
    width: 6.125rem;
}

.cbh-footer-g7-logo {
    display: block;
    height: auto;
    width: 6.125rem;
}

.c-footer-meta-year,
.c-footer-meta-address {
    font-size: 1.0625rem;
    margin: 0;
}

/* Nav */

.c-nav {
    width: 100%;
    height: 12.5rem;
    padding: 0.625rem 0;
    text-align: center;
    background: var(--colour-dark);
}

.logo {
    height: 100%;
    width: auto;
    padding: 0.25rem;
    margin: 0 auto;
}