/* -------------------------------------------------------- */
/* --- a reset from somewhere ... andy bell ??? */
/* 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;
}
/* Inherit fonts for inputs and buttons */
input, button, textarea, select {
    font: 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;
}
/* -------------------------------------------------------- */

html, body {
    margin: 0;
    height: 100%; /* ??? part of fixing footer ??? */
}
/* Reset h1 to behave like a plain div */
h1,h2,h3,h4,h5,h6 {
    all: unset;              /* Remove all default browser styles */
    display: block;          /* Ensure it behaves like a block element */
    font-size: 16px;         /* Same as default div text */
    font-weight: normal;
    margin: 0;
    padding: 0;
}
/* -------------------------------------------------------- */

.hidden {
    display: none;
}

.mt-0 { margin-top: 0; }
.mt-1 { margin-top: 0.3rem;}
.mt-2 { margin-top: 0.6rem; }
.mt-3 { margin-top: 0.8rem; }

.mb-0 { margin-bottom: 0; }
.mb-1 { margin-bottom: 0.3rem; }
.mb-2 { margin-bottom: 0.6rem; }
.mb-3 { margin-bottom: 0.8rem; }

div {
    margin: 0;
    margin-bottom: 0;
}
/* -------------------------------------------------------- */

.button {
    background-color: #717989;
    border: none;
    color: white;
    padding: 50px;
    padding-top: 10px;
    padding-bottom: 10px;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    border-radius: 6px;
    font-family: "Quicksand", sans-serif;
    font-optical-sizing: auto;
    font-style: normal;
    font-size: 90%;
}
.button:hover {
    background-color: #414959;
}
/* -------------------------------------------------------- */

body {
    background-color: #d9e2d8;
    background-color: #F7F5F0;
    background-color: #505050;
    background-color: #717989;
    background-color: #d9e2d8;
    color: #101010;
    font-weight: 400;
    padding: 0px;
    font-family: "Quicksand", sans-serif;
    font-optical-sizing: auto;
    font-style: normal;
    /* font-size: 90%; */
    /*min-height: 100vh; /* Full viewport height , ??? needed ???????  */
}

.standardpage {
  display: flex;
  flex-direction: column;
  min-height: 100vh; /* Full viewport height fixes footer to bottom when small page */
}

.standardcontent {
    flex: 1;
}

.row {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    max-width: 1200px;
}
@media (max-width: 768px) {
    .row {
        flex-direction: column;
        width: 100%;
    }
}
.centeredrow {
    align-items: center;
    width: 100%;
}
/* -------------------------------------------------------- */

input, textarea {
    width: 100%;
}

.text-danger, .error {
    color: red;
}
a.contextlink {
    color: blue;
}
.alert {
    font-size: 110%;
    font-weight: bold;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid #404040;
    margin-bottom: 1rem;
}
.alert-danger {
    color: red ;
}
.alert-warning {
    color: red;
}
/* -------------------------------------------------------- */

.small-gfe-logo-absolute-top-left {
    position: absolute; /* Removes it from the flex flow */
    top: 0%;
    left: 0%;
    padding: 10px;
    font-size: 90%;
    width: 150px;
    font-family: "Quicksand", sans-serif;
    font-optical-sizing: auto;
    font-style: normal;
}
/* -------------------------------------------------------- */

#backToTop {
    position: fixed;
    bottom: 20px;
    right: 20px;
    opacity: 0;
    background-color: #333;
    color: white;
    border: none;
    padding: 10px 15px;
    border-radius: 5px;
    cursor: pointer;
    font-size: 14px;
    z-index: 1000;
    transition: opacity 0.3s ease, transform 0.3s ease;
    transform: translateY(20px);
    pointer-events: none;
}
#backToTop.show {
    opacity: 1 !important;
    pointer-events: auto;
    transform: translateY(0);
}
#backToTop:hover {
    transform: translateY(0) scale(1.1);
}
/* -------------------------------------------------------- */

.standardheader {
    display: flex;
    font-family: "Cormorant Garamond", serif;
    font-optical-sizing: auto;
    font-style: normal;
    padding-top:1.5rem;
    font-size: 160%;
    line-height: 1.5rem;    
}
.standardheader .row {
    flex: 1;
    text-align: center;
    align-items: center;
    margin-left: auto;
    margin-right: auto;
    max-width: 30rem;
}
.standardheader .top-line {
    font-size: 140%;
    padding-bottom: 1rem;
    line-height: 2rem;    
}
.standardheader .other-lines {
    font-size: 80%;
    font-family: "Quicksand", sans-serif;
    margin-left: auto;
    margin-right: auto;
}
.standardheader .other-lines div {
    padding-bottom: 1rem;
}
.standardheader .other-lines .separator-line {
    line-height: 0em;    
    padding-bottom: 0rem;
    padding-top: 0rem;
    margin-bottom: 0rem;
    margin-top: 0rem;
}
@media (max-width: 1200px) {
}
@media (max-width: 800px) {
    .standardheader {
        padding-top:4.5rem;
    }
}
@media (max-width: 768px) {
    .standardheader {
        padding-top:5rem;
    }
    .standardheader .row {
        flex-direction: column;
        width: 100%;
        max-width: 25rem;
    }
    .standardheader .top-line {
        font-size: 130%;
    }
}
.standardheader .menu-link-sep {
    margin-left:1rem;
}
@media (max-width: 800px) {
    .standardheader .menu-link-sep {
        margin-left:0.5rem;
    }
}
/* -------------------------------------------------------- */

.standardcontent {
    font-family: "Quicksand", sans-serif;
    font-optical-sizing: auto;
    font-style: normal;
    font-size: 120%;
    padding: 10px;
    padding-top: 0px;
    padding-left: 1rem;
    padding-right: 1rem;
    text-align: center;
    max-width: 50em;
    margin-left: auto;
    margin-right: auto;
}

.XXXXXXXXXXXstandardheader .column-text {
    flex: 1; /* Takes up 50% of the width */
    padding-left: 3rem;
    padding-right: 3rem;
    text-align: center;
}

/* -------------------------------------------------------- */

.testimonialspagecontent .testimonial p {
    font-family: "Cormorant Garamond", serif;
    font-optical-sizing: auto;
    font-style: italic;
    font-size: 130%;
}
.testimonialspagecontent .testimonial div:first-child {
    margin-top: 0px;
    padding-top: 0px;
}
.testimonialspagecontent .testimonial div:last-child {
    line-height: 0em; 
    padding-top: 0.8rem;
    padding-bottom: 0.4rem;
}
.testimonialspagecontent .testimonial:after {
    content: "⁓";
    display: block;
    height: 25px;
}
.testimonialspagecontent img {
    margin-top:1.7rem;
    max-width: 300px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 2rem;
}

/* -------------------------------------------------------- */

.aboutpagescontent .contenttextrow {
    font-family: "Cormorant Garamond", serif;
    font-optical-sizing: auto;
    font-style: italic;
    font-size: 110%;
    margin-top: 2rem;
    margin-bottom: 2rem;
}
.aboutpagescontent .sep {
    line-height: 0em; 
    padding-top: 0.3em;
}
.aboutpagescontent img {
    max-width: 300px;
    margin-left: auto;
    margin-right: auto;
}

.xaboutpagescontent div:has(> img) {
  background-color: #F7F5F0;
  padding-top: 10px;
  padding-bottom: 10px;
  border-radius: 5px;;
}

.xaboutpagescontent :not(div:has(> img) ) {
  background-color: #F7F5F0;
}
/* -------------------------------------------------------- */

.footer {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    font-size: 90%;
    background-color: #717989;
    color: #f0f0f0;
    margin-top: 1rem ;
    font-weight: bold;
    padding-top: 1.2rem;
    padding-bottom: 0.5rem;
}
.footer a {
    color: #f0f0f0;
}
.footer a + a {
    margin-left:0.5rem;
}
.footer > div {
    min-height: 1rem;
    padding-bottom: 0.7rem;
}
/* -------------------------------------------------------- */



