/*! Generated by Font Squirrel (https://www.fontsquirrel.com) on April 26, 2024 */
@font-face {
    font-family: 'josefin sans';
    src: url('../fonts/josefinsans-regular-webfont.woff2') format('woff2'),
         url('../fonts/josefinsans-regular-webfont.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}
@font-face {
    font-family: 'josefin sans';
    src: url('../fonts/josefinsans-bold-webfont.woff2') format('woff2'),
         url('../fonts/josefinsans-bold-webfont.woff') format('woff');
    font-weight: 700;
    font-style: normal;
}
@font-face {
    font-family: 'josefin sans';
    src: url('../fonts/josefinsans-italic-webfont.woff2') format('woff2'),
         url('../fonts/josefinsans-italic-webfont.woff') format('woff');
    font-weight: normal;
    font-style: italic;
}
/* 
// A MODERN CSS RESET: https://piccalil.li/blog/a-more-modern-css-reset/
// ==================================================================== */
/* Box sizing rules */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Prevent font size inflation */
html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}

/* Remove default margin in favour of better control in authored CSS */
body, h1, h2, h3, h4, p,
figure, blockquote, dl, dd {
  margin-block-end: 0;
}

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ul[role='list'],
ol[role='list'] {
  list-style: none;
}

/* Set core body defaults */
body {
  min-height: 100vh;
  line-height: 1.5;
}

/* Set shorter line heights on headings and interactive elements */
h1, h2, h3, h4,
button, input, label {
  line-height: 1.1;
}

/* Balance text wrapping on headings */
h1, h2,
h3, h4 {
  text-wrap: balance;
}

/* A elements that don't have a class get default styles */
/* a:not([class]) {
  text-decoration-skip-ink: auto;
  color: currentColor;
} */

/* Make images easier to work with */
img,
picture {
  max-width: 100%;
  display: block;
  height: auto;
}

/* Inherit fonts for inputs and buttons */
input, button,
textarea, select {
  font-family: inherit;
  font-size: inherit;
}

/* Make sure textareas without a rows attribute are not tiny */
textarea:not([rows]) {
  min-height: 10em;
}

/* Anything that has been anchored to should have extra scroll margin */
:target {
  scroll-margin-block: 5ex;
}
/*
// ====================================================================
// GENERAL STYLES
// ==================================================================== */
/* smooth scrolling unless visitor prefers reduced motion */
html {
    scroll-behavior: smooth;
}
@media screen and (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}

body {
    /* BRAND COLOURS */
    /* logo colours */
    --porsche: #E8AC57; 
    --ochre: #c68221;
    --cardinal: #CC2240;
    --sea-green: #28834A;
    --cloud-burst: #1F294A;

    /* buttons */
    --bronzed: #dd672b;
    --grenadier: #ca4400;

    /* greens */
    /* --oracle: #39756e; */
    --oracle: #397575;  
    --atlantis: #96c93c;
    --puerto-rico: #40c2ac;
    --downy: #54d1ba;
    /* coillte light green */
    --la-rioja: #B2C30C;
    --wedgewood: #4A979B;
    --eden: #144f52;
    /* map land green */
    --deco: #cdd57b;
    --neptune: #87c5b2;
    --neptune-opaque: #87c5b2bf;
    --spray: #79edc9;
    --spray-opaque: #79edc9bf;
    
    /* blues / greys */
    --ebony-clay: #282c3c;
    --shuttle-gray: #696b76;
    --periwinkle-gray: #dee5f2;
    --periwinkle-opaque: #dee5f2bf;
    --skeptic: #c9e6e1;

    /* whites */
    --spring-wood: #f9faf5;
    --pampas: #EFECE7;

    /* Block background colours */
    --bg-page-color: var(--spring-wood);
    --bg-header: var(--spray-opaque);
    --bg-header-active: var(--spray);
    --bg-section: var(--skeptic);
    --bg-section-dark: var(--eden);
    --bg-section-light: var(--periwinkle-gray);


    /* Text colours */
    --text-color: var(--shuttle-gray);
    --text-dark: var(--ebony-clay);
    --heading-color: var(--oracle);
    --link-color: var(--eden);
    --link-color-dark: var(--ebony-clay);
    --link-color-dark: var(--ebony-clay);

    /* Button colours */
    --btn-color: var(--grenadier);

    margin: 0;
    /* use flex to push footer to bottom of page */
    display: flex;
    flex-direction: column;

    background-color: var(--bg-page-color);
    color: var(--text-color);
    font-family: 'josefin sans', Arial, Helvetica, sans-serif;
    /* 1.125em: 18px font size */
    font-size: 1em; 
    line-height: 1.4;
}


/* 
// TYPOGRAPHY
// ====================================================================
 */
h1,h2,h3,h4,.h1,.h2,.h3,.h4  {
    line-height: 1.4em;
    color: var(--heading-color);    
}
article h1, article .h1 {
    font-size: 1.75em;
}
h2, .h2 {
    font-size: 1.5em;
    margin: 1.5em 0 0;
}
h4 {
    color: var(--grenadier);
    text-transform: uppercase;
    font-weight: 400;
}
p, li {
    margin: .75em 0;
    /* limit line length to improve readability */
    max-width: 36em;
}
a {
    color: var(--link-color);
}
blockquote {
    font-style: italic;
    color: var(--text-dark);
    margin-inline-start: 1rem;
}
/* Remove figure margins */
figure { 
    margin: 0 0 1em; 
}

/* lists */
ul, ol, li {
    margin: 0;
    padding: 0;
}
/* larger base font sizes on woder screens */
@media screen and (min-width: 800px) {
    body {
        font-size: 1.125em; 
    }
    article h1 {
        font-size: 2em;
    }
}
@media screen and (min-width: 1152px) {
    body {
        font-size: 1.25em; 
    }
}

/* Content grid - using grid instead of containers/wrappers: https://codepen.io/kevinpowell/pen/ExrZrrw  */
.content-grid {
    --padding-inline: 1rem;
    --content-max-width: 900px;
    --breakout-max-width: 1200px;
    --breakout-size: calc((var(--breakout-max-width) - var(--content-max-width)) / 2);
    display: grid;
    grid-template-columns:
        [full-width-start] minmax(var(--padding-inline), 1fr)
        [breakout-start] minmax(0, var(--breakout-size))
        [content-start] min(100vw - (var(--padding-inline) * 2), var(--content-max-width)) [content-end]
        minmax(0, var(--breakout-size)) [breakout-end]
        minmax(var(--padding-inline), 1fr) [full-width-end];
}
.content-grid > :not(.breakout, .full-width),
.full-width > :not(.breakout, .full-width) {
    grid-column: content;
}
.content-grid > .breakout {
    grid-column: breakout;
}
.content-grid > .full-width {
    grid-column: full-width;
    display: grid;
    grid-template-columns: inherit;
}
img.full-width, figure.full-width {
    width: 100%;
    max-height: 100vh;
    object-fit: cover;
    overflow: hidden;
}
.content-grid > figure.full-width {
    margin: 0;
    display: block;
}
.full-width img {
    width: 100%;
}
.bg-section-light {
    background-color: var(--bg-section) ;
}
.bg-section-dark {
    background-color: var(--bg-section-dark) ;
}
.section-padding {
    padding-block: 2rem;
}
.section-padding > h2 {
    margin: .25em 0 .5em;
}
/* Site Header */
.mast {
    background-color: var(--bg-header);
    padding: 0 1rem;
    position: fixed;
    z-index: 5;
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
	will-change: background-color;
  	transition: background-color 0.3s ease-in-out 0s;
    box-shadow: 0px 2px 12px 2px rgba(0,0,0,0.15);
}
.mast__logo {
    width: 186px;
    margin: 1rem 0 .5rem;
}
.mast__logo img {
    height: auto;
}

/* Main Navigation */
.nav {
    position: absolute;
    width: 100%;
    left: 0;
    padding: 0 1rem;
    top: 100%;
    z-index: 4;
    opacity: 0;
    transform: translateX(100%);
    background-color: var(--bg-header);
	will-change: transform, opacity, background-color;
  	transition: opacity 0.3s ease-in-out 0s, transform 0.3s ease-in-out 0s, background-color 0.3s ease-in-out 0s;
}
/* Nav toggle */
.nav-toggle-label {
    font-size: .875em;
    text-transform: uppercase;
    color: var(--link-color-dark);
}
#nav-toggle:checked+label {
    text-decoration: underline;
    text-decoration-thickness: 4px;
    text-underline-offset: 4px;
}
#nav-toggle:checked~nav {
    opacity: 1;
    transform: translateX(0);
}
.mast:has(#nav-toggle:checked), #nav-toggle:checked~nav {
    background-color: var(--bg-header-active);
}
#nav-toggle {
    display: none;
}
.menu {
    list-style-type: none;
    margin: 1rem 0 1rem;
}
.menu a {
    text-decoration: none;
    display: inline-block;
    color: var(--link-color-dark);
    width: 100%;
    padding: .75rem .5rem;
    /* font-size: 1.25em; */
    text-transform: uppercase;

}

/* Tablet Header & Nav  */
@media screen and (min-width: 800px) {
    .content-grid {
        --padding-inline: 2rem;
    }
    .mast {
        background-color: var(--bg-header-active);
    }
    .nav {
        position: relative;
        opacity: 1;
        transform: translateX(0);
        background-color: transparent;
        width: fit-content;
    }

    .nav-toggle-label, #nav-toggle {
        display: none;
    }
    .menu {
        display: flex;
    }
    .menu li {
        padding-left: 1rem;
    }    
}

/* Main content - uses .content-grid above */
main {
    flex: 1 0 auto;
    display: flex;
    flex-direction: column;    
}
/* Hero image section */
.hero {
    position: relative;
    box-shadow: 0px 2px 12px 2px rgba(0,0,0,0.15);
}
.hero > figcaption {
    position: absolute;
    bottom: 0;
    color: #fff;
    padding: 1rem;
    font-size: 1.25em;
    width: auto;
    background-color: rgba(0, 0, 0, 0.5);
}

/* Tablet Hero  */
@media screen and (min-width: 800px) {
    .hero > figcaption {
        font-size: 2em;
        padding: 2rem;    
    }
}
/* Walking Trails section */
.walks {
    list-style-type: none;
}
.walks > li {
    margin-bottom: 2em;
}
/* coloured coded walks headings */
.walks h3 {
    position: relative;
    padding-bottom: .25em;
    margin-bottom: .5em;
}
/* thick rounded underline */
.walks h3::after {
    content: "";
    position: absolute;
    top: calc(100% - 4px);
    left: 0;
    width: 100%;
    height: 4px;
    background-color: var(--cardinal);
    border-radius: 3px;
}
.walks > li:first-child h3 {
    color: var(--cardinal);
}
.walks > li:nth-child(2) h3 {
    color: var(--cloud-burst);
}
.walks > li:nth-child(2) h3::after {
    background-color: var(--cloud-burst);
}
.walks > li:nth-child(3) h3 {
    color: var(--ochre);
}
.walks > li:nth-child(3) h3::after {
    background-color: var(--ochre);
}
.walks > li:nth-child(4) h3 {
    color: var(--sea-green);
}
.walks > li:nth-child(4) h3::after {
    background-color: var(--sea-green);
}
/* Walks detail */
.walks__detail > ul {
    list-style-type: none;
}
.walks__detail li {
    background-color: var(--pampas);
    margin-left: -.25rem;
    margin-right: -.25rem;
    width: calc(100% + .5rem);
    padding: .125em .25rem;
    margin-bottom: .25em;
    color: var(--text-dark);
}
.walks__detail strong {
    color: var(--ebony-clay);
}

/* ordered list counter numbers */
.markers {
    margin-top: 1em;
    list-style: none;
    padding-inline-start: 2em;
}
.markers > li {
    position: relative;
    display: block;
    margin: .75em 0;
    counter-increment: mycounter;
}
.markers > li::before {
    content: counter(mycounter);
    background: var(--btn-color);
    border-radius: 50%;
    color: #fff;
    font-size: .875em;
    text-align: center;
    position: absolute;
    left: -2.25em;
    top: -.125em;
    height: 1.875em;
    width: 1.875em;
    padding-top: 0.125em;
}
.markers--split {
    columns: 2;
    font-size: .875em;
}
.markers--split > li::before {
    top: 0;
    height: 1.75em;
    width: 1.75em;
}
/* Horizontally align top of columns */
.markers--split>li:first-child {
    margin-top: 0em;
}
/* push 15th item to 2nd column to prevent spill of counter background */
.markers--split>li:nth-child(15) {
    margin-top: 1em;
}
.markers p {
    margin-left: -2rem;
}
/* Tablet Walks section */
@media screen and (min-width: 800px) {
    .walks {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        margin-top: 2em;
        gap: 5%;
    }
    /* using shorthand fixes IOS safari / chrome bug of items not wrapping: https://css-tricks.com/almanac/properties/f/flex-wrap/#comment-1590767 */
    .walks > * {
        flex: 1 1 320px; 
        display: block;
        padding: .25rem 1rem;
        width: 45%;
        background-color: #fff;
        border-radius: 12px;
        box-shadow: 0px 2px 12px 2px rgba(0,0,0,0.1);
    }
    .markers {
        columns: 2;
        column-gap: 4rem;
    }
    .markers > li:first-child{
        margin-top: 0;
    }    
    .markers>li:nth-child(16)::before{
        top: 0;
    }    
    .markers--split {
        columns: 4;
        /* font-size: .875em; */
    }
    /* push 7th & 21st items to prevent spill of counter background */
    .markers--split>li:nth-child(7), .markers--split>li:nth-child(21) {
        margin-top: 1em;
    }    

}


/* Points of interest section */
.flex-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin-top: 1em;
	gap: 2.5%;
}
/* using shorthand fixes IOS safari / chrome bug of items not wrapping: https://css-tricks.com/almanac/properties/f/flex-wrap/#comment-1590767 */
.flex-grid > * {
    flex: 1 1 160px; 
    display: block;
    padding: 0;
    width: 45%;
}
.flex-grid--thirds >* {
    width: 30%;
}

@media screen and (min-width: 800px) {
    .flex-grid > * {
        padding: 0;
    }
    .flex-grid--quarters >* {
        width: 22%;
    }
    .flex-grid--fifths >* {
        width: 17%;
    }
}
.photos figure {
    margin-bottom: 1em;
}
/* Locality page sections */
.locality {
    padding-block: 0;
    margin-bottom: 2rem;
    background-color: #fff;
    border-radius: 12px;
    box-shadow: 0px 2px 12px 2px rgba(0,0,0,0.1);
    padding: 1.5rem;
}
.locality:first-of-type {
    margin-top: 1rem;
}
/* coloured coded walks headings */
.locality h2 {
    position: relative;
    padding-bottom: .25em;
    margin-bottom: .5em;
    color: var(--grenadier);
}
/* thick rounded underline */
.locality h2::after {
    content: "";
    position: absolute;
    top: calc(100% - 4px);
    left: 0;
    width: 100%;
    height: 4px;
    background-color: var(--grenadier);
    border-radius: 3px;
}
.locality ul {
    /* list-style-type: none; */
    padding-inline-start: 1rem;
}
.locality li {
    margin: .25em 0;
    /* background-color: var(--pampas); */
    /* margin-left: -.25rem;
    margin-right: -.25rem; */
    /* width: calc(100% + .5rem); */
    /* padding: .125em .25rem; */
    /* margin-bottom: .25em; */

}
.locality strong {
    color: var(--ebony-clay);
}

/* Review form page */
.review-form {
    padding-top: 6rem;
}
.review-form form {
    background-color: #fff;
    border-radius: 12px;
    box-shadow: 0px 2px 12px 2px rgba(0,0,0,0.1);
    padding: 1.5rem;
}
.review-form form > * {
    display: block;
    width: 100%;
    margin-bottom: 1em;
}
.review-form form > label, .review-form form > p {
    margin-bottom: .25em;
    color: var(--text-dark);
}
.text-input, select, textarea, .btn {
    box-shadow: 0px 2px 12px 2px rgba(0,0,0,0.1);
    background-color: var(--bg-section-light);
    border: 1px solid #fff;
    border-radius: 1.5rem;
    min-height: 2em;
    padding: .75rem;
}
form .btn {
    background-color: var(--btn-color);
    color: #fff;
    text-transform: uppercase;
    padding: 1rem 2rem .75rem;
    width: auto;
}

/* 5 star rating: https://codepen.io/hesguru/pen/BaybqXv */
.rate {
    float: left;
    height: 46px;
    padding: 0 10px;
}
.rate:not(:checked) > input {
    position:absolute;
    top:-9999px;
}
.rate:not(:checked) > label {
    float:right;
    width:1em;
    overflow:hidden;
    white-space:nowrap;
    cursor:pointer;
    font-size:30px;
    color:#ccc;
    margin: 0 .25rem;
}
.rate:not(:checked) > label:before {
    content: '★ ';
}
.rate > input:checked ~ label {
    color: #ffc700;    
}
.rate:not(:checked) > label:hover,
.rate:not(:checked) > label:hover ~ label {
    color: #deb217;  
}
.rate > input:checked + label:hover,
.rate > input:checked + label:hover ~ label,
.rate > input:checked ~ label:hover,
.rate > input:checked ~ label:hover ~ label,
.rate > label:hover ~ input:checked ~ label {
    color: #c59b08;
}

/* Footer */
footer {
    background-color: var(--bg-section-light);
    color: var(--link-color-dark);
    padding-top: 1rem;
    text-align: center;
}
.assocs {
	justify-content: space-evenly;
    list-style-type: none;
    padding-bottom: 2rem;
    margin-top: 0;   
}
.assocs__item {
    flex: 0 1 132px;
    align-self: center;
    margin: 1em;
}
.assocs__img {
    width: 100%;

}
footer h3 {
    color: var(--text-dark);
}
.copyright, footer a {
    color: #fff;
}
.social-icons {
	font-size: 0.75em;
	padding: 0;
    list-style-type: none; 
    margin-bottom: .5rem;
}
.social-icons > * {
    display: inline;
}
.social-icons a {
    display: inline-block;
    margin: 0 0 0.5em 0.5em;
    color: var(--bronzed);
    color: #fff;
    width: 44px;
    height: 44px;
}
.icon {
    width: 44px;
    height: 44px;
	padding: 4px;
	border-radius: 50%;
	/* border: 1px solid transparent; */
	background-color: var(--btn-color);
	transition: opacity 0.3s ease-in-out 0s, background-color 0.3s ease-in-out 0s;
}
.icon use { fill: currentColor; }
.copyright {
    font-size: 0.875em;
    margin: .5em auto;
}
.copyright span {
    display: block;
}
.copyright .icon {
    width: 24px;
    height: 24px;
    padding: 0;
    background-color: transparent;
    padding-top: 6px;
    margin: 0 0 -3px .5rem;
}

/* BACK TO TOP BUTTON */
.backtotop {
	display: none;
	position: fixed; 
	bottom: 15px; 
	right: 15px; 
	cursor: pointer;
	z-index: 51;
	text-decoration: none;
	height: 3em;
	width: 3em;
	background-color: var(--btn-color);
    border-radius: 50%; 
	color: #fff;		
	display: block;
	padding: .55em 0.75em; 
}

@media screen and (min-width:800px) {
    .backtotop {
        bottom: 40px; 
        right: 40px; 
    }
}
/* .backtotop:hover {
    background-color: var(--primary-dark);
} */
.backtotop .icon {
    display: block;
    width: 1.5em;
    height: 1.5em;
    border: none;
    background-color: transparent;
    stroke: currentColor;
}	

/* Helper classes from HTML5 Boilerplate */
/*
* Hide only visually, but have it available for screen readers:
* http://snook.ca/archives/html_and_css/hiding-content-for-accessibility
*/
.visuallyhidden {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
}
