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

:root {
    /* Palette */
    --colour-white: rgba(255, 255, 255, 1);
    --colour-light: rgba(158, 158, 158, 1);
    --colour-mid: rgba(105, 105, 105, 1);
    --colour-dark: rgba(27, 27, 27, 1);
    --colour-black: rgba(0, 0, 0, 1);

    --colour-brand: rgba(64, 45, 0, 1);

    --colour-accent: rgba(143, 105, 0, 1);
    --colour-accent-2: rgba(218, 218, 218, 1);
    --colour-accent-3: rgba(241, 249, 227, 1);
    --colour-accent-4: rgba(52, 41, 39, 1);

    /* Colours */
    --colour-text: var(--colour-black);
    --colour-heading: var(--colour-black);

    --colour-link: var(--colour-black);
    --colour-link-hover: var(--colour-black);
    --colour-link-secondary: var(--colour-accent);
    --colour-link-secondary-hover: var(--colour-brand);
    --colour-link-on-light: var(--colour-dark);
    --colour-link-on-light-hover: var(--colour-mid);
    --colour-link-on-dark: var(--colour-white);
    --colour-link-on-dark-hover: var(--colour-light);

    /* Primary buttons */
    --button-primary-background: var(--colour-brand);
    --button-primary-background-hover: var(--colour-accent);
    --button-primary-border: var(--colour-brand);
    --button-primary-border-hover: var(--colour-accent);
    --button-primary-text: var(--colour-white);
    --button-primary-text-hover: var(--colour-white);

    --button-primary-keyline-background: transparent;
    --button-primary-keyline-background-hover: transparent;
    --button-primary-keyline-border: var(--colour-brand);
    --button-primary-keyline-border-hover: var(--colour-accent);
    --button-primary-keyline-text: var(--colour-brand);
    --button-primary-keyline-text-hover: var(--colour-accent);

    /* Secondary buttons */
    --button-secondary-background: var(--colour-accent);
    --button-secondary-background-hover: var(--colour-brand);
    --button-secondary-border: var(--colour-accent);
    --button-secondary-border-hover: var(--colour-brand);
    --button-secondary-text: var(--colour-white);
    --button-secondary-text-hover: var(--colour-white);

    --button-secondary-keyline-background: transparent;
    --button-secondary-keyline-background-hover: transparent;
    --button-secondary-keyline-border: var(--colour-accent);
    --button-secondary-keyline-border-hover: var(--colour-brand);
    --button-secondary-keyline-text: var(--colour-accent);
    --button-secondary-keyline-text-hover: var(--colour-brand);

    /* On light background buttons */
    --button-on-light-background: var(--colour-dark);
    --button-on-light-background-hover: var(--colour-mid);
    --button-on-light-border: var(--colour-dark);
    --button-on-light-border-hover: var(--colour-mid);
    --button-on-light-text: var(--colour-white);
    --button-on-light-text-hover: var(--colour-white);

    --button-on-light-keyline-background: transparent;
    --button-on-light-keyline-background-hover: transparent;
    --button-on-light-keyline-border: var(--colour-dark);
    --button-on-light-keyline-border-hover: var(--colour-mid);
    --button-on-light-keyline-text: var(--colour-dark);
    --button-on-light-keyline-text-hover: var(--colour-mid);

    /* On dark background buttons */
    --button-on-dark-background: var(--colour-white);
    --button-on-dark-background-hover: var(--colour-light);
    --button-on-dark-border: var(--colour-white);
    --button-on-dark-border-hover: var(--colour-light);
    --button-on-dark-text: var(--colour-dark);
    --button-on-dark-text-hover: var(--colour-dark);

    --button-on-dark-keyline-background: transparent;
    --button-on-dark-keyline-background-hover: transparent;
    --button-on-dark-keyline-border: var(--colour-white);
    --button-on-dark-keyline-border-hover: var(--colour-light);
    --button-on-dark-keyline-text: var(--colour-white);
    --button-on-dark-keyline-text-hover: var(--colour-light);

    /* Contact links */
    --contact-link-primary: var(--colour-dark);
    --contact-link-primary-hover: var(--colour-mid);
    --contact-link-secondary: var(--colour-mid);
    --contact-link-secondary-hover: var(--colour-dark);
    --contact-link-on-light: var(--colour-dark);
    --contact-link-on-light-hover: var(--colour-mid);
    --contact-link-on-dark: var(--colour-white);
    --contact-link-on-dark-hover: var(--colour-light);

    /* Font families */
    --font-serif: "Cormorant Garamond", serif; /* Available in 400, 700 */
    --font-sans-serif: "Figtree", sans-serif; /* Available in 300, 400, 500, 600, 700 */

    /* Font weights */
	--weight-light: 300;
	--weight-regular: 400;
	--weight-medium: 500;
	--weight-semi-bold: 600;
	--weight-bold: 700;

    --weight-body: var(--weight-light);
    --weight-button: var(--weight-light);
    --weight-heading: var(--weight-regular);
    --weight-link: var(--weight-regular);
    --weight-highlight: var(--weight-regular);

    /* Font size */
    --font-size-medium: clamp(1.0625rem, 1.0625rem + 0.6vw, 1.125rem);
    --font-size-regular: clamp(1rem, 1rem + 0.6vw, 1rem);
    --font-size-small: clamp(0.875rem, 0.875rem + 0.6vw, 0.9375rem);
    --font-size-very-small: clamp(0.75rem, 0.75rem + 0.6vw, 0.8125rem);

    /* Line height */
    --line-height: 1.875;
    --line-height-small: 1.5;
    --line-height-close: 1.625;
    --line-height-loose: 2.125;

    /* Word spacing */
    --word-spacing: 0.125rem;
    
    /* Letter spacing */
    --letter-spacing: 0.03125em;
    --letter-spacing-regular: 0.0625em;
    --letter-spacing-loose: 0.125em;
    --letter-spacing-very-loose: 0.25em;

    /* Animation */
    --transition: all 0.3s;
    --transition-fast: all 0.1s;

    /* Borders */
    --border-radius: 0;
    --button-border-radius: 0;

    /* Gallery overlay */
    --colour-gallery-overlay: rgba(53, 72, 89, .9);

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

    /* Padding */
    --spacing-section-y: 3.125rem;

    --padding-content: var(--spacing-section-y) 1.25rem;
    --padding-gallery: var(--spacing-section-y) 0.625rem;
    --padding-sections: var(--spacing-section-y) 0;


    /* Pallettes for shared components and layouts */
    /* Nav panel */
    --nav-background: var(--colour-white);
    --nav-heading: var(--colour-black);
    --nav-divider: var(--colour-black);
    --nav-link: var(--colour-black);
    --nav-link-hover: var(--colour-accent-2);
    --nav-text: var(--colour-black);

    /* Booking panel */
    --booking-background: var(--colour-accent-2);
    --booking-heading: var(--colour-black);
    --booking-divider: var(--colour-black);
    --booking-link: var(--colour-black);
    --booking-link-hover: var(--colour-white);
    --booking-text: var(--colour-black);
}

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


/****** Browser bug fixes ******/
/****** normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css ******/

html {
    line-height: 1.15;
    -webkit-text-size-adjust: 100%;
}

body {
    margin: 0;
}

main {
    display: block;
}

h1 {
    font-size: 2em;
    margin: 0.67em 0;
}

hr {
    box-sizing: content-box;
    height: 0;
    overflow: visible;
}

pre {
    font-family: monospace, monospace;
    font-size: 1em;
}

a {
    background-color: transparent;
}

abbr[title] {
    border-bottom: none;
    text-decoration: underline;
    text-decoration: underline dotted;
}

b,
strong {
    font-weight: bolder;
}

code,
kbd,
samp {
    font-family: monospace, monospace;
    font-size: 1em;
}

small {
    font-size: 80%;
}

sub,
sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}

sub {
    bottom: -0.25em;
}

sup {
    top: -0.5em;
}

img {
    border-style: none;
}

button,
input,
optgroup,
select,
textarea {
    font-family: inherit;
    font-size: 100%;
    line-height: 1.15;
    margin: 0;
}

button,
input {
    overflow: visible;
}

button,
select {
    text-transform: none;
}

button,
[type="button"],
[type="reset"],
[type="submit"] {
    -webkit-appearance: button;
    appearance: button;
}

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
    border-style: none;
    padding: 0;
}

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
    outline: 1px dotted ButtonText;
}

fieldset {
    padding: 0.35em 0.75em 0.625em;
}

legend {
    box-sizing: border-box;
    color: inherit;
    display: table;
    max-width: 100%;
    padding: 0;
    white-space: normal;
}

progress {
    vertical-align: baseline;
}

textarea {
    overflow: auto;
}

[type="checkbox"],
[type="radio"] {
    box-sizing: border-box;
    padding: 0;
}

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
    height: auto;
}

[type="search"] {
    -webkit-appearance: textfield;
    appearance: textfield;
    outline-offset: -2px;
}

[type="search"]::-webkit-search-decoration {
    -webkit-appearance: none;
}

::-webkit-file-upload-button {
    -webkit-appearance: button;
    font: inherit;
}

details {
    display: block;
}

summary {
    display: list-item;
}

template {
    display: none;
}

[hidden] {
    display: none;
}



/****** Resets ******/

*,
:after,
:before {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    padding: 0;
    margin: 0;
    min-height: 0;
    min-width: 0;
}

html {
    height: 100%;
}

body {
    height: 100%;
    overflow-y: scroll;
}

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

button {
    background-color: transparent;
    color: inherit;
    border-width: 0;
    padding: 0;
    cursor: pointer;
}

cite {
    font-style: normal;
}

fieldset {
    border-width: 0;
    padding: 0;
    margin: 0;
}

figure {
    margin: 0;
}

form {
    padding: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-size: inherit;
    font-weight: inherit;
    margin: 0;
}

img {
    display: inline-block;
}

p {
    margin: 0;
}

ul,
ol,
dd {
    margin: 0;
    padding: 0;
    list-style: none;
}



/****** Aaron Ikler custom form styling https://css-tricks.com/ ******/

@supports (-webkit-appearance: none) or (-moz-appearance: none) {
    input[type='checkbox'],
    input[type='radio'] {
        --active: rgba(167, 143, 88, 1);
        --active-inner: rgba(255, 255, 255, 1);
        --focus: 0;
        --border: transparent;
        --border-hover: rgba(167, 143, 88, 1);;
        --background: #fff;
        --disabled: rgba(255, 255, 255, .2);
        --disabled-inner: rgba(255, 255, 255, .2);
        -webkit-appearance: none;
        -moz-appearance: none;
        appearance: none;
        height: 21px;
        outline: none;
        display: inline-block;
        vertical-align: top;
        position: relative;
        margin: 0;
        cursor: pointer;
        border: 1px solid var(--bc, var(--border));
        background: var(--b, var(--background));
        -webkit-transition: background .3s, border-color .3s, box-shadow .2s;
        transition: background .3s, border-color .3s, box-shadow .2s;
    }

    input[type='checkbox']:after,
    input[type='radio']:after {
        content: '';
        display: block;
        left: 0;
        top: 0;
        position: absolute;
        -webkit-transition: opacity var(--d-o, 0.2s), -webkit-transform var(--d-t, 0.3s) var(--d-t-e, ease);
        transition: opacity var(--d-o, 0.2s), -webkit-transform var(--d-t, 0.3s) var(--d-t-e, ease);
        transition: transform var(--d-t, 0.3s) var(--d-t-e, ease), opacity var(--d-o, 0.2s);
        transition: transform var(--d-t, 0.3s) var(--d-t-e, ease), opacity var(--d-o, 0.2s), -webkit-transform var(--d-t, 0.3s) var(--d-t-e, ease);
    }

    input[type='checkbox']:checked,
    input[type='radio']:checked {
        --b: var(--active);
        --bc: var(--active);
        --d-o: .3s;
        --d-t: .6s;
        --d-t-e: cubic-bezier(.2, .85, .32, 1.2);
    }

    input[type='checkbox']:disabled,
    input[type='radio']:disabled {
        --b: var(--disabled);
        cursor: not-allowed;
        opacity: .9;
    }

    input[type='checkbox']:disabled:checked,
    input[type='radio']:disabled:checked {
        --b: var(--disabled-inner);
        --bc: var(--border);
    }

    input[type='checkbox']:disabled + label,
    input[type='radio']:disabled + label {
        cursor: not-allowed;
    }

    input[type='checkbox']:hover:not(:checked):not(:disabled),
    input[type='radio']:hover:not(:checked):not(:disabled) {
        --bc: var(--border-hover);
    }

    input[type='checkbox']:focus,
    input[type='radio']:focus {
        box-shadow: 0 0 0 var(--focus);
    }

    input[type='checkbox']:not(.switch),
    input[type='radio']:not(.switch) {
        width: 21px;
    }

    input[type='checkbox']:not(.switch):after,
    input[type='radio']:not(.switch):after {
        opacity: var(--o, 0);
    }

    input[type='checkbox']:not(.switch):checked,
    input[type='radio']:not(.switch):checked {
        --o: 1;
    }

    input[type='checkbox'] + label,
    input[type='radio'] + label {
        font-size: 14px;
        line-height: 21px;
        display: inline-block;
        vertical-align: top;
        cursor: pointer;
        margin-left: 4px;
    }

    input[type='checkbox']:not(.switch) {
        border-radius: 7px;
    }

    input[type='checkbox']:not(.switch):after {
        width: 5px;
        height: 9px;
        border: 2px solid var(--active-inner);
        border-top: 0;
        border-left: 0;
        left: 7px;
        top: 4px;
        -webkit-transform: rotate(var(--r, 20deg));
        transform: rotate(var(--r, 20deg));
    }

    input[type='checkbox']:not(.switch):checked {
        --r: 43deg;
    }

    input[type='checkbox'].switch {
        width: 38px;
        border-radius: 11px;
    }

    input[type='checkbox'].switch:after {
        left: 2px;
        top: 2px;
        border-radius: 50%;
        width: 15px;
        height: 15px;
        background: var(--ab, var(--border));
        -webkit-transform: translateX(var(--x, 0));
        transform: translateX(var(--x, 0));
    }

    input[type='checkbox'].switch:checked {
        --ab: var(--active-inner);
        --x: 17px;
    }

    input[type='checkbox'].switch:disabled:not(:checked):after {
        opacity: .6;
    }

    input[type='radio'] {
        border-radius: 50%;
    }

    input[type='radio']:after {
        width: 19px;
        height: 19px;
        border-radius: 50%;
        background: var(--active-inner);
        opacity: 0;
        -webkit-transform: scale(var(--s, 0.7));
        transform: scale(var(--s, 0.7));
    }

    input[type='radio']:checked {
        --s: .5;
    }
}

select {
	-moz-appearance: none;
	-webkit-appearance: none;
	background-color: #fff;
	color: rgba(64, 64, 64, 1);
	display: inline-block;
	font-size: 16px;
	font-family: 'Literata', sans-serif;
	font-weight: 300;
	line-height: 1.3;
	padding: .6em 1.4em .5em .8em;
	width: auto;
	max-width: 100%;
	box-sizing: border-box;
	margin: 0;
	border: 1px solid rgba(64, 64, 64, 1);
	box-shadow: 0;
	border-radius: 0;
	appearance: none;
	background-image: url(/assets/images/arrow-down.svg), linear-gradient(to bottom, #ffffff 0%,#ffffff 100%);
	background-repeat: no-repeat, repeat;
	background-position: right .7em top 50%, 0 0;
	background-size: .65em auto, 100%;
}

select::-ms-expand {
	display: none;
}

select:hover {
	border-color: rgba(167, 143, 88, 1)
}

select:focus {
	border-color: rgba(167, 143, 88, 1);
	box-shadow: none;
	box-shadow: 0 0 0 0 -moz-mac-focusring;
	color: rgba(64, 64, 64, 1);
	outline: none;
}

select option {
	font-weight: normal;
}



/****** Start ******/
/****** Global tags ******/

html {
    scroll-behavior: smooth;
}

body {
    color:  rgba(34, 34, 34, 1);
    font-family: 'Literata', serif;
    font-size: 1.1875rem;
    font-weight: 400;
    letter-spacing: .0165rem;
    line-height: 2rem;
    overflow-y: scroll;
}

a {
    color: rgba(148, 175, 146, 1);
    font-family: 'Literata', sans-serif;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    text-decoration: none;
    transition: 0.4s all;
}

a:hover {
    color: rgba(148, 175, 146, .7);
}

button {
    font-family: 'Literata', sans-serif;
    font-size: inherit;
    font-weight: 400;
    letter-spacing: .09375rem;
    line-height: inherit;
    text-decoration: none;
    transition: 0.4s all;
}

img {
    border: 0;
    display: inline-block;
    height: auto;
    width: 100%;
}

h1 {
    color: rgba(34, 34, 34, 1);
    font-family: 'Literata', serif;
    font-weight: 600;
    margin: 0 0 1.25rem 0;
}

h2,
h3,
h4,
h5,
h6 {
    color: rgba(148, 175, 146, 1);
    font-family: 'Fraunces', serif;
    font-weight: 600;
    margin: 0 0 1.25rem 0;
}

h1 a,
h2 a,
h3 a,
h4 a,
h5 a,
h6 a {
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    letter-spacing: inherit;
    line-height: inherit;
}

h1 {
    font-size: 2rem;
    line-height: 1.5;
    margin: 0 0 1.25rem 0;
}

h2 {
    font-size: 1.25rem;
    line-height: 1.5;
    margin: 1.25rem 0 0 0;
}

h3 {
    font-size: 1.25rem;
    line-height: 1.5;
}

h4 {
    font-size: 1.25rem;
    line-height: 1.5;
    margin: 0 0 .3125rem 0;
} 

h5 {
    font-size: 1rem;
    line-height: 1.5;
    margin: 0 0 .3125rem 0;
}

h6 {
    font-size: 1rem;
    line-height: 1.5;
    margin: 0;
}

p {
    margin: 0 0 1.25rem 0;
}


@media (max-width:48em) {
    h2,
    h3,
    h4,
    h5,
    h6 {
        text-align: center;
    }
}


/****** Content ******/

.content {
    padding: 3.125rem 1.25rem;
    width: 100%;
}

.content-section {
    margin: 0 auto 1.25rem auto;
    max-width: 70rem;
    padding: 0 2.5rem;
    width: 100%;
}

.content-section:last-child {
    margin: 3.125rem auto;
}

.content-section p:last-child {
    margin: 0;
}

.content-heading {
    margin: 0 auto;
    max-width: 70rem;
    width: 100%;
}

.content-button {
    border: .0625rem solid rgba(167, 143, 88, 1);
    display: block;
    margin: 6.25rem auto;
    padding: .625rem 1.25rem;
    text-align: center;
    width: fit-content;
}



/****** Featured post ******/

.featured-post-grid {
    display: grid;
    gap: 2.5rem;
    grid-template-areas: "image post" "image posted-in";
    grid-template-columns: 1fr 1fr;
    width: 100%;
}

@media (max-width:48em) {
    .featured-post-grid {
        gap: 1.25rem;
        grid-template-areas: "post" "image" "posted-in";
        grid-template-columns: 1fr;
    }
}

.featured-post-copy {
    grid-area: post;
    padding: 1.25rem 0 0 0;
    width: 100%;
}

@media (max-width:48em) {
    .featured-post-copy {
        padding: 0;
    }
}

.featured-post-figure {
    grid-area: image;
    overflow: hidden;
    padding: 1.25rem;
    transition: .4s all;
    width: 100%;
}

@media (max-width:48em) {
    .featured-post-figure {
        padding: .625rem;
    }
}

.featured-post-figure:hover {
    padding: 0;
}

.featured-post-image {
    height: auto;
    width: 100%;
}

.featured-post-posted-in {
    grid-area: posted-in;
}



/****** Listing ******/

.flex-box {
    align-items: stretch;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 2.5rem;
    justify-content: center;
    width: 100%;
}

.listing {
    flex: 1 1 calc(30% - 1.25rem);
    max-width: calc(33.3333% - 1.25rem);
}

@media (max-width:64em) {
    .listing {
        border: none;
        flex: 1 1 calc(40% - 1.25rem);
        max-width: calc(50% - 1.25rem);
        padding: 0 0 3.125rem 0;
    }
}

@media (max-width:48em) {
    .listing {
        border: none;
        flex: 1 1 100%;
        max-width: 100%;
    }
}

.listing-grid {
    display: grid;
    gap: .625rem;
    grid-template-areas: "image" "header" "introduction";
    grid-template-columns: auto;
    grid-template-rows: auto auto;
}

@media (max-width:48em) {
    .listing-grid {
        grid-template-areas: "header header" "image introduction";
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto;
    }
}

.listing-figure {
    grid-area: image;
    height: fit-content;
    overflow: hidden;
    padding: .625rem;
    transition: .4s all;
    width: 100%;
}

@media (max-width:48em) {
    .listing-figure {
        padding: .3125rem;
    }
}

.listing-figure:hover {
    overflow: hidden;
    padding: 0;
}

.listing-image {
    display: block;
    height: auto;
    width: 100%;
}

.listing-header {
    grid-area: header;
}

.listing-header h3 {
    margin: 0;
}

.listing-introduction {
    grid-area: introduction;
}

.listing-categories {
    margin: auto;
}

.listing-footer {
    margin: auto;
    padding: 3.125rem 0 0 0;
    width: 100%;
}

.section-categories {
    margin: 0 auto 3.125rem auto;
}



/****** blog post ******/

.file-icon {
    height: 1.25rem;
    fill:rgba(64, 64, 64, 1);
    position: relative;
    top: .25rem;
    width: auto;
}

a:hover .file-icon {
    fill:rgba(167, 143, 88, 1);
}

.asset-download-button {
    display: block;
    margin: 0 auto;
}

.asset-download-button:hover {
    color:rgba(167, 143, 88, 1);
}

.asset-download-button:hover .file-icon {
    fill:rgba(167, 143, 88, 1);
}

.blog-post-figure {
    grid-area: image;
    height: fit-content;
    padding: 0;
    margin: 0 auto 3.125rem auto;
    transition: .4s all;
    width: 100%;
}

.blog-post-image {
    display: block;
    height: auto;
    width: 100%;
}

.blog-post-caption {
    border-top: .0625rem solid rgba(26, 33, 34, 1);
    margin: 1.25rem 0 0 0;
    padding: .625rem 0 0 0;
}



/****** Product Listing ******/

.alternate-grid {
    display: grid;
    gap: 2.5rem;
    grid-template-areas: "image details";
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
    width: 100%;
}

.alternate-grid:nth-child(even) {
    grid-template-areas: "details image";
}

@media (max-width:48em) {
    .alternate-grid {
        gap: 1.25rem;
        grid-template-areas: "image" "details";
        grid-template-columns: 1fr;
    }

    .alternate-grid:nth-child(even) {
        grid-template-areas: "image" "details";
    }
}

.product-listing {
    grid-area: details;
    display: flex;
    justify-content: center;
    align-items: center;
}

.product-listing-figure {
    grid-area: image;
}

.product-listing-image {
    height: auto;
    width: 100%;
}



/****** Footer ******/

.footer {
    display: grid;
    gap: 1.25rem;
    grid-template-areas: "column-one";
    grid-template-columns: 1fr;
    padding: 0 0 3.125rem 0;
    text-align: center;
    width: 100%;
}

.footer ul li {
    display: inline-block;
    padding: 0 0.625rem;
}

.footer ul li a {
    font-size: 1rem;
}

.footer ul li a:hover {
    color: rgba(167, 143, 88, 1);
}

.footer-header {
    grid-area: header;
}

.footer-column-one {
    grid-area: column-one;
    text-align: center;
    width: 100%;
}

.footer-column-two {
    grid-area: column-two;
    text-align: left;
    width: 100%;
}

.footer-column-three {
    grid-area: column-three;
    text-align: left;
    width: 100%;
}

.footer-column-four {
    grid-area: column-four;
    text-align: left;
    width: 100%;
}

.footer-column-five {
    align-self: center;
    grid-area: logo-footer;
    text-align: right;
    width: 100%;
}

@media (max-width:48rem) {
    .footer-column-five {
        text-align: center;
    }
}

.footer-logo-image {
    display: block;
    height: auto;
    margin: 0 auto;
    width: 60%;
}

@media (max-width:48rem) {
    .footer-logo-image {
        height: auto;
        width: 40%;
    }
}

.footer-logo-small {
    display: block;
    margin: 1.25rem auto 0 auto;
    width: 40%;
}

@media (max-width:48rem) {
    .footer-logo-small {
        height: auto;
        width: 20%;
    }
}



/****** Header ******/

.header {
    background: rgba(255, 255, 255, 1);
    display: grid;
    grid-template-areas: "logo";
    grid-template-columns: 1fr;
    height: 6.25rem;
    padding: .625rem 1.25rem;
    width: 100%;
}


.header-logo {
    align-self: center;
    grid-area: logo;
    justify-self: center;
    height: 100%;
    text-align: center;
}

.header-logo-image {
    height: auto;
    max-width: 14rem;
    width: 100%;
}



/****** Navigation ******/

.navigation {
    align-self: center;
    grid-area: navigation;
    justify-self: right;
    text-align: right;
    text-transform: uppercase;
    width: 100%;
}

.navigation--list {
    list-style-type: none;
    text-align: right;
}

@media (max-width:48rem) {
    .navigation--list {
        display: none;
    }
}

.navigation--list-item {
    display: inline-block;
    margin: 0 .625rem;
}

.navigation--list-item:first-child {
    margin: 0 .625rem 0 0;
}

.navigation--list-item:last-child {
    margin: 0 0 0 .625rem;
}

.navigation-mobile {
    background: rgba(255, 255, 255, 1);
    display: none;
}

.navigation-mobile--list {
    margin: 0 0 1.25rem 0;
    width: 100%;
}

@media (min-width:48rem) {
    .navigation-mobile-list {
        display: none;
    }
}

.navigation-mobile-list-item {
    padding: .625rem 1.25rem .5rem 1.25rem;
    text-align: center;
    text-transform: uppercase;
    width: 100%;
}

.burger {
    align-self: center;
    cursor: pointer;
    display: none;
    fill: rgba(26, 33, 34, 1);
    grid-area: navigation;
    height: 1.25rem;
    justify-self: right;
    margin: 0 0 0 auto;
    text-align: right;
    width: auto;
}

.burger:hover {
    fill: rgba(167, 143, 88, 1);
}

@media (max-width:48rem) {
    .burger {
        display: none;
    }
}

.cross {
    align-self: center;
    cursor: pointer;
    display: none;
    fill: rgba(26, 33, 34, 1);
    grid-area: navigation;
    height: 1.25rem;
    justify-self: right;
    margin: 0 0 0 auto;
    position: relative;
    text-align: right;
    top: .25rem;
    width: auto;
}

.cross:hover {
    fill: rgba(167, 143, 88, 1);
}

@media (min-width:48rem) {
    .cross {
        display: none !important;
    }
}



/****** Social Media Icons ******/

.social-media {
    background: rgba(255, 255, 255, 1);
    padding: 0 1.25rem 6.25rem 1.25rem;
    text-align: center;
    width: 100%;
}

.social-media-container {
    max-width: 40rem;
    margin: 0 auto;
    width: 100%;
}

.social-media--link {
    display: inline-block;
    height: 2.25rem;
    margin: 0 1.25rem 0 0;
    width: auto;
}

.social-media--link:last-child {
    margin: 0;
}

.social-media--logo {
    display: inline-block;
    fill: rgba(26, 33, 34, 1);
    height: 100%;
    width: auto;
}

.social-media--logo:hover {
    fill: rgba(167, 143, 88, 1);
}



/****** Newsletter ******/

.newsletter {
    background:  rgba(255, 255, 255, 1);
    padding: 0 2.5rem;
    text-align: center;
    width: 100%;
}

.newsletter-container {
    margin: 0 auto;
    max-width: 40rem;
    width: 100%;
}

.newsletter-grid {
    display: grid;
    grid-column-gap: .625rem;
    grid-template-areas: "newsletter-input newsletter-submit";
    grid-template-columns: 2fr 1fr;
}

@media (max-width:48rem) {
    .newsletter-grid {
        grid-row-gap: .625rem;
        grid-template-areas: "newsletter-input" "newsletter-submit";
        grid-template-columns: auto;
    }
}

.newsletter-email {
    border: .0625rem solid rgba(34, 34, 34, 1);
    border-radius: 0;
    font-family: 'Literata', sans-serif;
    grid-area: newsletter-input;
    padding: .3125rem .625rem;
    transition: .4s all;
    width: 100%;
}

.newsletter-email:focus {
    border: .0625rem solid rgba(148, 175, 146, 1);
    color: rgba(148, 175, 146, 1);
}

.newsletter-response {
    color: rgba(228, 82, 21 0);
    font-family: 'Literata', sans-serif;
}

.newsletter-button {
    background: rgba(148, 175, 146, 1);
    border: none;
    border-radius: 0;
    color: rgba(255, 255, 255, 1);
    cursor: pointer;
    font-family: 'Literata', sans-serif;
    font-weight: inherit;
    grid-area: newsletter-submit;
    letter-spacing: .09375rem;
    padding: .3125rem 0.625rem;
    text-align: center;
    text-transform: uppercase;
    transition: .4s all;
}

.newsletter-button:hover {
    background: rgba(148, 175, 146, .75);
}

@media (max-width:48rem) {
    .newsletter-button {
        margin: 0 auto;
        padding: .5rem 2.25rem;
        width: 100%
    }
}

.mailchimp {
    width: fit-content;
}



/****** Linktree ******/

.linktree {
    align-items: stretch;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 1.25rem;
    justify-content: center;
    margin: 0 auto;
    max-width: 48rem;
    width: 100%;
}

.linktree-listing {
    border: none;
    flex: 1 1 100%;
    max-width: 100%;
    padding: 3.125rem 0 0 0;
}

.linktree-listing-grid {
    display: grid;
    gap: .625rem;
    grid-template-areas: "header header" "image introduction";
    grid-template-columns: 1fr 2fr;
    grid-template-rows: auto;
}

.linktree-button {
    background: transparent;
    border: .0625rem solid rgba(26, 33, 34, 1);
    display: block;
    padding: .3125rem 1.25rem;
    text-align: center;
    text-transform: uppercase;
    transition: .4s all;
    margin: 0 auto;
    max-width: 48rem;
    width: 100%;
}

.linktree-button:hover {
    border: .0625rem solid rgba(167, 143, 88, 1);
    color: rgba(167, 143, 88, 1);
}

.linktree-listing-figure {
    grid-area: image;
    height: fit-content;
    overflow: hidden;
    padding: .625rem;
    transition: .4s all;
    width: 100%;
}

@media (max-width:48em) {
    .linktree-listing-figure {
        padding: .3125rem;
    }
}

.linktree-listing-figure:hover {
    overflow: hidden;
    padding: 0;
}

.linktree-listing-image {
    display: block;
    height: auto;
    width: 100%;
}

.linktree-listing-header {
    grid-area: header;
}

.linktree-listing-header h3 {
    margin: 0;
}

.linktree-listing-introduction {
    grid-area: introduction;
}

.linktree-logo {
    padding: .625rem 1.25rem;
    height: 4.375rem;
    text-align: center;
    width: 100%;
}

.linktree-logo-image {
    height: 100%;
    margin: 0 auto;
    width: auto;
}



.introduction {
    text-align: center;
}



/****** Global classes ******/

.black {
    color: rgba(26, 33, 34, 1);
}

.dark-grey {
    color: rgba(0, 0, 0, .75);
}

.mid-grey {
    color: rgba(0, 0, 0, .5);
}

.light-grey {
    color: rgba(0, 0, 0, .25);
}

.white {
    color: rgba(235, 235, 235, 1);
}

.gold {
    color: rgba(167, 143, 88, 1);
}

.black-bg {
    background: rgba(26, 33, 34, 1);
}

.dark-grey-bg {
    background: rgba(0, 0, 0, .75);
}

.mid-grey-bg {
    background: rgba(0, 0, 0, .5);
}

.light-grey-bg {
    background: rgba(0, 0, 0, .25);
}

.white-bg {
    background: rgba(235, 235, 235, 1);
}

.gold-bg {
    background: rgba(167, 143, 88, 1);
}

.standard-width {
    margin: auto;
    max-width: 70rem;
    width: 100%;
}

.full-width {
    margin: 0 auto;
    max-width: 64rem;
    width: 100%;
}

.half-width {
    margin: 0 auto;
    max-width: 60rem;
    width: 100%;
}

.padded-box {
    padding: 3.125rem;
}

@media (max-width:48em) {
    .padded-box {
        padding: 1.25rem;
    }
}

.centered {
    text-align: center;
}

.divider {
    border-bottom: .0625rem solid rgba(26, 33, 34, 1);
    margin: 0 0 .625rem 0;
}

.small {
    font-size: .875rem;
    line-height: 2;
    margin-top: 0.625rem;
}

.spacer {
    margin-bottom: 1.25rem;
}

.float-right {
    float: right;
}

.float-left {
    float: left;
}

.button {
    background: transparent;
    border: .0625rem solid rgba(26, 33, 34, 1);
    border-radius: 0;
    color: rgba(26, 33, 34, 1);
    cursor: pointer;
    display: block;
    font-family: 'Literata', sans-serif;
    font-weight: inherit;
    grid-area: newsletter-submit;
    letter-spacing: .09375rem;
    margin: 0 auto;
    padding: .125rem 2.25rem;
    text-align: center;
    text-transform: uppercase;
    transition: .4s all;
    width: fit-content;
}

.button:hover {
    border: .0625rem solid rgba(167, 143, 88, 1);
    color: rgba(167, 143, 88, 1);
}

.no-margin-bottom {
    margin-bottom: 0;
}

/****** Cards ******/





/* ==========================================================================
   Shared card styling
   ========================================================================== */

.card {
    text-align: left;
}

.card .call-to-action__button {
    margin: 0 auto;
    min-width: 12.5rem;
    width: fit-content;
}

.card .date {
    color: var(--colour-black);
    font-family: var(--font-sans-serif);
    font-size: var(--font-size-small);
    font-weight: var(--weight-highlight);
    letter-spacing: var(--letter-spacing-loose);
    margin-top: 0.9375rem;
    padding: 0 0.625rem;
    text-transform: uppercase;
}

.card h3 + div {
    padding: 0 0.625rem;
}

.card figure {
    overflow: hidden;
}

.card h3 {
    margin: 0.625rem 0;
    padding: 0 0.625rem;
}

.card img {
    height: 100%;
    object-fit: cover;
    transition: all 0.3s ease-in-out;
    width: 100%;
}

.card:hover img {
    transform: scale(1.05);
}

.card--panel-overlay {
	left: 0;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 100%;
	z-index: 2;
}

.card--overlay {
    background: rgba(0, 0, 0, .4);
    height: 100%;
    position: absolute;
    width: 100%;
    z-index: 1;
}

.card--overlay-title {
    color: var(--colour-white);
    font-family: var(--font-serif);
    width: 100%;
}

.card--overlay-h3::after {
	background: var(--colour-white);
	content: '';
	display: block;
	height: 1px;
	margin: 0.625rem auto 0;
	width: 50px;
}

.card--overlay-link {
    width: 100%;
}

/* ==========================================================================
   Four columns
   ========================================================================== */

.four-columns {
    column-gap: 3.125rem;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    padding: var(--padding-sections);
    row-gap: 3.125rem;
}

.four-columns .card figure img {
    aspect-ratio: 1/1;
}

/* Mobile adjustments */
@media (max-width: 80em) {
    .four-columns {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 64em) {
    .four-columns {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 48em) {
    .four-columns {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   Three columns
   ========================================================================== */

.three-columns {
    column-gap: 3.125rem;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    padding: var(--padding-sections);
    row-gap: 3.125rem;
}

.three-columns .card figure img {
    aspect-ratio: 1/1;
}

/* Mobile adjustments */
@media (max-width: 64em) {
    .three-columns {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 48em) {
    .three-columns {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   Two columns
   ========================================================================== */

.two-columns {
    column-gap: 3.125rem;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: var(--padding-sections);
    row-gap: 3.125rem;
}

.two-columns .card figure img {
    aspect-ratio: 6/4.5;
}

/* Mobile adjustments */
@media (max-width: 48em) {
    .two-columns {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   Features
   ========================================================================== */

.features {
    display: grid;
    padding: var(--padding-sections);
    row-gap: 3.125rem;
}

.features .card {
    align-items: center;
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
}

.features .card .date {
    margin-top: 0;
    padding: 0;
}

.features .card h3 {
    margin-top: 0;
    padding: 0;
}

.features .card .date + h3 {
    margin-top: 0.625rem;
}

.features .card h3 + div {
    padding: 0;
}

.features .card div + a {
    margin-top: 0.625rem;
}

/* Center the text content vertically */
.features__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0 3.125rem 0 4.375rem;
}

/* Odd cards: image left, content right */
.features .card:nth-child(odd) .features__image {
    grid-column: 1 / span 7;
}

.features .card:nth-child(odd) .features__content {
    grid-column: 8 / span 5;
}

/* Even cards: content left, image right */
.features .card:nth-child(even) .features__content {
    grid-column: 1 / span 5;
    grid-row: 1;
    padding: 0 4.375rem 0 3.125rem;
}

.features .card:nth-child(even) .features__image {
    grid-column: 6 / span 7;
    grid-row: 1;
}

.features__image img {
    /*aspect-ratio: 1/1;*/
}

.features .card:hover img {
    transform: scale(1);
}


/* Mobile styles */

@media (max-width: 64em) {

    .features .card:nth-child(odd) .features__image,
    .features .card:nth-child(odd) .features__content,
    .features .card:nth-child(even) .features__image,
    .features .card:nth-child(even) .features__content {
        grid-column: 1 / span 12;
        grid-row: auto;
    }

    .features__image,
    .features__content {
        width: 100%;
    }

    .features__content,
    .features .card:nth-child(even) .features__content {
        padding: .625rem 1.25rem 0 1.25rem;
    }

    .features .card .date {
        margin-top: 0.625rem;
    }

    .features .card h3 {
        margin-top: 0.625rem;
    }
}


/* ==========================================================================
   Card link
   ========================================================================== */

.card-link {
    margin-top: 0.625rem;
    padding: 0 0.625rem;
}

.features .card-link {
    padding: 0;
}


/* ==========================================================================
   Text only cards
   ========================================================================== */

.card.card__text .date,
.card.card__text:not(:has(.date)) h3 {
    margin-top: 0;
    padding-top: 0;
}

.card.card__text .box > .date {
    margin-top: 0.1875rem;
}


/* ==========================================================================
   Display as carousel on mobile
   ========================================================================== */

.desktop-cards {
    display: grid;
}

.mobile-cards {
    display: none;
}

@media (max-width: 48em) {
    .desktop-cards {
        display: none;
    }

    .mobile-cards {
        display: block;
    }
}





/* ==========================================================================
   Flickity carousel
   ========================================================================== */

.carousel {
    padding: var(--padding-sections);
    padding-bottom: 3.125rem;
    position: relative;
    width: 100%;
}

.carousel-cell {
    height: auto;
    max-width: 100%;
    padding-right: 1.25rem;
    width: 30%;
}

.carousel-cell.card {
    flex: none !important;
    height: fit-content;
    max-width: 100%;
}

.flickity-button {
    background-color: transparent;
    border-radius: 0;
    color: var(--colour-brand);
    height: 1.875rem;
    min-width: fit-content;
    width: 1.875rem;
}

.flickity-button:hover {
    color: var(--colour-accent);
}

.flickity-prev-next-button {
    top: -3.75rem;
    transform: none;
    z-index: 1;
}

.flickity-prev-next-button.next {
    right: 1.125rem;
}

.flickity-prev-next-button.previous {
    left: 1.125rem;
}

.flickity-page-dots {
    bottom: 0.25rem;
    padding: 2.25rem 0 0 0;
}

.flickity-page-dots .dot {
    background-color: transparent;
    border: 1px solid var(--colour-black);
    height: 1.125rem;
    opacity: 1;
    transition: all 0.3s;
    width: 1.125rem;
}

.dot.is-selected {
    background-color: var(--colour-black);
}

.flickity-page-dots .dot:hover {
    background-color: transparent;
    border: 1px solid var(--colour-accent-2);
}

.flickity-page-dots .dot.is-selected:hover {
    border: 1px solid var(--colour-accent-2);
    border: 1px solid var(--colour-accent-2);
}

.carousel .card figure img {
    aspect-ratio: 1/1;
}

.carousel-cel--text-box {
    padding: 0 0.625rem !important;
}

/* Mobile adjustments */
@media (max-width: 64em) {
    .carousel-cell {
        width: 40%;
    }
}

@media (max-width: 40em) {
    .carousel-cell {
        width: 80%;
    }
}

/* ==========================================================================
   Flickity text-boxes carousel
   ========================================================================== */

.carousel-text-boxes {
    padding: var(--padding-sections);
    position: relative;
    width: 100%;
}

.carousel-text-boxes .card {
    flex: none;
}

.carousel-text-boxes figure {
    display: none;
}

.carousel-text-boxes .carousel-cell {
	display: flex;
	flex-direction: column; /* keeps content stacked vertically */
    min-height: 100%;
}

.carousel-text-boxes .carousel-cell.card {
    height: auto;
}

.carousel-text-boxes .card .date {
    margin-top: 0;
    padding: 0;
}

.carousel-text-boxes .card h3 {
    margin-top: 0;
    padding: 0;
}

.carousel-text-boxes .card .date + h3 {
    margin-top: 0.625rem;
}

.carousel-text-boxes .card h3 + div {
    padding: 0;
}

.carousel-text-boxes .card a + a {
    margin-top: 0.625rem;
}

.box {
	width: 100%;
}




/* ==========================================================================
   Padding
   ========================================================================== */

.padding-none {
    padding: 0;
}

.padding-content {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
}

.padding-content--small {
    padding-left: 0.625rem !important;
    padding-right: 0.625rem !important;
}

/* ==========================================================================
   Width
   ========================================================================== */

.full-screen-width {
    max-width: 100%;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
}

.standard-width {
    margin: 0 auto;
    max-width: 82rem;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
}

/* ==========================================================================
   Hide
   ========================================================================== */

.hide {
    display: none;
}

/* ==========================================================================
   Show
   ========================================================================== */

.show {
    display: block;
}