/* Colours */
:root {
    /* site colours */
    /*--grey-dark: #595959;
    --grey-mid: #8D9398;
    --grey-light: #C6C9CC;
    --white: #FFFFFF;
    --black: #000000;
    --yellow-light: #FCEE32;
    --yellow-mid: #F4D13A;*/
    --grey-dark: #202F4D;
    --grey-mid: #00597C;
    --grey-light: #008797;
    --white: #FFFFFF;
    --black: #000000;
    --yellow-light: #C6C9CC;
    --yellow-mid: #81C4CB;
    --bg-main: "images/bg1.png";
}

/* General Elements */

html {
    scroll-behavior: smooth;
}
:target:before {
    content: "";
    display: block;
    height: 100px;
    margin: -100px 0 0;
}

body {
	font-family: Raleway, sans-serif;
    font-size: 1.2rem;
/*    line-height: 1.8rem;*/
}

/* General container classes */

.content {
/* source: https://ryanmulligan.dev/blog/layout-breakouts/ */
  --gap: clamp(1rem, 6vw, 3rem);
  --full: minmax(var(--gap), 1fr);
  --content: min(80ch, 100% - var(--gap) * 2);
  --popout: minmax(0, 2rem);
  --feature: minmax(0, 5rem);

  display: grid;
  grid-template-columns:
    [full-start] var(--full)
    [feature-start] var(--feature)
    [popout-start] var(--popout)
    [content-start] var(--content) [content-end]
    var(--popout) [popout-end]
    var(--feature) [feature-end]
    var(--full) [full-end];
}

.content > * {
  grid-column: content;
}
.popout {
  grid-column: popout;
  background: var(--grey-light);
/*  border-radius: 1.5rem 0 1.5rem 0;*/
  margin-bottom: 2rem;
}
.feature {
  grid-column: feature;
}
.full {
  grid-column: full;
}

section {margin-bottom: 2rem; scroll-margin-top: 2rem;}

.margin-0 {margin-left: 0; margin-right: 0;}
.padding-2 {padding: 2rem;} 

.feature-full {
	padding: 0 3rem 3rem 3rem;
	background: var(--grey-dark);
	color: var(--white);
}


/* Header & Container Setup */
.site-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background: var(--white);
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
    z-index: 1000;
}
.nav-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem var(--gap, 2rem);
    max-width: 1200px;
    margin: 0 auto;
}
.logo {
/*    font-family: 'Playfair Display', serif;*/
/*    font-style: italic;*/
    font-weight: bold;
    font-size: 1.3rem;
    text-decoration: none;
    color: #333;
}

/* The Menu Configuration */
.main-nav {
    display: flex;
    list-style: none;
    gap: 1.5rem;
    align-items: center;
}
.main-nav a, .btn a {
    text-decoration: none;
    color: var(--grey-dark);
    font-weight: 500;
    transition: color 0.2s ease;
}
.main-nav a:hover, .main-nav a:focus { color: var(--yellow-mid);}

/* Persistent CTA Button Styling in Nav */
.main-nav .nav-btn {
    background-color: var(--grey-dark);
    color: white;
    padding: 0.6rem 1.2rem;
    border-radius: 20px;
    transition: background 0.2s ease;
}
.main-nav .nav-btn:hover, .main-nav .nav-btn:focus  {
    background-color: var(--yellow-mid);
    color: var(--black);
}

.contact-btn, .back-btn {
    margin-top: 3rem;
    text-decoration: none;
    background-color: var(--grey-dark);
    color: white;
    padding: 0.4rem 1.2rem;
    border-radius: 20px;
    border: 1px solid var(--white);
}

.contact-btn:hover, .back-btn:hover {
    background: var(--grey-light);
}

/* Responsive Mobile Layout Override */
@media (max-width: 52rem) {
    .nav-toggle {
        display: block;
        cursor: pointer;
        background: transparent;
        border: 0;
        padding: 0.5rem;
    }
    
    /* Hamburger Line Core Dimensions */
    .hamburger {
        display: block;
        position: relative;
        width: 1.5rem;
        height: 2px;
        background: var(--grey-dark);
        transition: transform 0.2s ease-in-out;
    }
    /* Top and Bottom Lines using Pseudo-elements */
    .hamburger::before,
    .hamburger::after {
        content: '';
        position: absolute;
        left: 0;
        width: 1.5rem;
        height: 2px;
        background: var(--grey-dark);
        transition: transform 0.2s ease-in-out, top 0.2s 0.2s, bottom 0.2s 0.2s;
    }
    .hamburger::before { top: -6px; }
    .hamburger::after { bottom: -6px; }

    /* Hidden mobile drawer by default */
    .nav-menu {
        position: absolute;
        top: 100%;
        left: 0;
        width: 100%;
        background: var(--white);
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.3s ease-in-out;
    }
    .main-nav {
        flex-direction: column;
        padding: 2rem 0;
        width: 100%;
    }

    /* Active States Triggered by JavaScript Class Toggles */
    .nav-open .nav-menu {
        max-height: 20rem; /* Creates smooth slide-down animation */
    }
    /* Cross Animation Transformation */
    .nav-open .hamburger {
        transform: rotate(45deg);
    }
    .nav-open .hamburger::before {
        top: 0;
        transform: rotate(90deg);
    }
    .nav-open .hamburger::after {
        bottom: 0;
        transform: rotate(90deg);
    }
}

/* Hide desktop toggle button on large screens */
@media (min-width: 52rem) {
    .nav-toggle { display: none; }
}





blockquote {border: 1px solid var(--grey-mid); border-radius: 0.75rem;}

blockquote, blockquote > span { display: block; font-size: 1.2rem; }
blockquote > span {  font-style: italic; font-size: 1rem; margin-top: 1rem;}

h1, h2, h3, h4 {
    text-align: center; 
/*    font-family: "Playfair Display", serif; */
/*    font-style: italic;*/
}

h1 {
	font-size: 3.2rem;
	margin: 3rem 0 0 0;
    font-weight: 300;
    line-height: 3rem;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

/*h1::before {
    content: '';
    width: 100%;
    border-bottom: solid 2px var(--yellow-light);
    position: absolute;
    left: 0%;
    top: 52%;
    z-index: 1;
}*/

h1::after {
    content: '';
    width: 350px;
    height: 350px;
    background: url("../images/grey.svg") no-repeat;
    background-size: cover;
    position: absolute;
    /*left: -30px;*/
    /*left: calc(50% - 350px);*/
    /*Left: 0; */
    align-self: center;
    top: -50px;
    z-index: -1;
}



h2 {
	margin: 3rem 0 2rem 0;
	font-size: 2.2rem;
}

h3 {
	margin: 3rem 0 2rem 0;
	font-size: 1.8rem;
}

h4 {
	margin: 1rem 0 1rem 0;
	font-size: 1.5rem;
}

.cards {
	display: flex;
		flex-wrap: wrap;
		gap: 1em;
		justify-content: center;}
.card {
    /*CHANGE*/
    display: flex;
    flex-direction: column;
    gap: 1rem;
    justify-content: space-around;
    /*END CHANGE*/
		width: min(100%, 40ch);
	padding: 1.5rem; 
	border: 1px solid white; 
/*    box-shadow: 0 10px 10px 1px var(--black);*/
/*	border-radius: 0.5rem 0 0.5rem 0;*/
}

.card:hover {background: var(--grey-mid);}

@media (min-width: 52rem) { /* Approx 768px */
    .main-nav {
        flex-direction: row; /* Horizontal on tablet/desktop */
        justify-content: space-evenly;
    }
}

#home h1 span {
	display: block;
	font-size: 1.8rem;
	font-style: normal;
    line-height: 1.8rem;
    margin-top: 1rem;
}

.center {text-align: center;}
.cta { margin-top: 2rem; }
.cta a { 
    display: inline-block; 
    margin-left: 1rem; 
    color: var(--black); 
    text-decoration: none; 
    background: var(--yellow-mid); 
    padding: 0.25rem 0.5rem; 
    border-radius: 20px;
}
.cta a:hover, .cta a:focus {background: var(--white); color: var(--black)}

form {display: flex; flex-direction: column; gap: 1rem; max-width: 50ch; margin: 0 auto;}
input {padding: 0.5rem; border: 1px solid #ccc;}
select {padding: 0.5rem; border: 1px solid #ccc;}
textarea {padding: 0.5rem; border: 1px solid #ccc;}

form .btn {
    border: 1px solid var(--white);
    background-color: var(--grey-dark);
    color: white;
    padding: 0.6rem 1.2rem;
    border-radius: 20px;
    transition: background 0.2s ease;
    align-self: center;
}

form .btn:hover, form .btn:focus  {
    background-color: var(--yellow-mid);
    color: var(--black);
}

/* Call to action */
aside {background: var(--grey-mid); padding: 1rem 1rem 0 1rem; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; width: 170px; height: 170px; margin: 0 auto 2rem auto; border-radius: 100%; color: var(--white);}
.invisible {
    position: absolute;
    left: -1000px;
    top: 0;
}
aside:hover, aside:focus {background: var(--yellow-mid); color: var(--black);cursor: pointer;}
aside h4 {font-size: 1.6rem; font-style: italic;}
aside p {font-size: 0.9rem;}
aside span {display: block;}
aside span a {color: var(--white); text-decoration: none; cursor: pointer;}
aside span a:hover, aside span a:focus {color: var(--grey-mid);}


.therapy-subtitle {
	border: 1px solid white; 
	padding: 0.75rem; 
	margin-top: 1rem; 
	display: flex; 
	justify-content: space-between;
	transition: all 0.2s ease;
}
.therapy-subtitle::after{
	content:"+";
	display: inline-block;
	margin-left: 0.5rem;
	transition: all 0.2s ease;
}

.therapy-subtitle.active::after {
    content: " –";
}

.therapy-subtitle ~ div { padding: 2rem; border: 1px solid white;}
.item p, .item li { margin-bottom: 0.5rem; }
.item li {margin-left: 1rem;}
.item a {
    text-decoration: none; 
    color: var(--yellow-mid);
    font-weight: 900;
}
.item a:hover, .item a:focus {
    color: var(--white); 
    text-decoration: underline;
}

.about a {
    text-decoration: none; 
    color: var(--grey-mid);
    font-weight: 900;
}
.about a:hover, .about a:focus {
    color: var(--yellow-mid); 
    text-decoration: underline;
}

.hidden {display: none;}


.highlight {
	margin: 0 0 2rem 0;
	padding: 1.5rem; 
	border: 1px solid var(--white); 
	border-radius: 0.75rem;
}

.inline-logos {display: flex; margin: 2rem 0; align-items: center; justify-content: center;}

#fees a {text-decoration: none; color: var(--white); padding: 0.25rem 0.5rem; margin: 0 0.25rem;  border-radius: 20px; background: var(--grey-dark);}
#fees a:hover, #fees a:focus {color: var(--black); background: var(--yellow-mid);}

.note {font-size: 1rem; font-style: italic; margin-top: 1rem;}

.fee-card-main {font-size: 1.2rem; text-align: center;}

.fee-card-sub {font-size: 0.9rem; font-style: italic; text-align: center;}

.location-cards {
	display: flex;
		flex-wrap: wrap;
		gap: 1em;
		justify-content: center;
		margin-top: 2rem;
	}
.location-card {
		width: min(100%, 35ch);
	padding: 1.5rem; 
	border: 1px solid white; 
	border-radius: 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.location-day {font-size: 1.2rem; margin: 0.5rem 0; font-style: italic;}

.address-title {margin: 1.5rem 0 0.5rem 0; font-size: 1.1rem;}

.action-title {margin: 0; padding-top: 0; font-weight: 400; font-size: 2.1rem;}

/* Footer (Grid) */
/*.main-footer { background: #263b33; color: rgba(255,255,255,0.7); padding: 80px 0 40px; }
.main-footer .grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1.5fr;
    gap: 60px;
}
.main-footer h4 { color: var(--white); margin-bottom: 25px; }
.main-footer ul { list-style: none; }
.main-footer ul li { margin-bottom: 12px; }
.main-footer a { color: rgba(255,255,255,0.7); }
.main-footer a:hover { color: var(--accent); }*/
.footer {padding: 1rem; background: var(--black); color: var(--white); text-align: center;}
.main-footer {display: flex; flex-wrap: wrap; gap: 2rem; justify-content: center; background: var(--black); color: var(--white); }
/*        .footer-bottom {display; block; color: red;}*/
.main-footer a { color: var(--white); text-decoration: none;  }
.main-footer a:hover, .main-footer a:focus { color: var(--grey-light);}
.main-footer li {list-style-type: none;}
.main-footer li {display: flex; gap: 0.75rem; align-items: center; justify-content: center;}
.main-footer i {color: var(--grey-light);}
.main-footer > div {width: min(100%, 25ch);}
.footer-bottom {margin-top: 2rem;}

.about-img {background: var(--grey-light); width: 190px; height: 190px; margin: 0 auto 2rem auto; border-radius: 100%; display: flex; flex-direction: row; justify-content: center; align-items: center; object-fit: cover;}
.about p {margin-top: 1rem; line-height: 1.6rem;}

.bacp-logo {width: 150px; margin: 2rem auto 0 auto;}

/*@property --myColor1 {
  syntax: '<color>';
  initial-value: magenta;
  inherits: false;
}

@property --myColor2 {
  syntax: '<color>';
  initial-value: #00ff00;
  inherits: false;
}*/

.main {
    /* USE DISPLAY GRID FOR ELEMENTS OVER AN IMAGE - CAN THIS WORK WITH A BACKGROUND IMAGE AND 
       THEN HOW TO POSITION A PSEUDO ELEMENT*/
    background: 
    linear-gradient(to bottom, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.5) 100%),
    url('../images/banners/banner_lewes2.webp') no-repeat;
    background-size: cover;
    color: var(--white);
/*        opacity:1;*/
    display: flex; 
    flex-direction: column; 
    justify-content: center; 
    align-items: center;
    height: 100dvh; 
    margin: 0; 
    padding: 0 2rem; 
    gap: 3rem; 
    text-align: center; 
    margin-bottom: 3rem;

/* animation OFF  */


/*    background: linear-gradient(var(--myColor1), var(--myColor2));*/

/*  animation: cycleBackgrounds 30s infinite ease-in-out;*/
}

@keyframes cycleBackgrounds {
    0%, 100% {
        /*--myColor1: #f00;
        --myColor2: yellow;*/
        background: linear-gradient(to bottom, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.5) 100%), url('../images/banners/banner_LB.webp');
    background-size: cover;
  }
  33% {
        /*--myColor1: magenta;
        --myColor2: #00ff00;*/
        background: linear-gradient(to bottom, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.5) 100%), url('../images/banners/banner_lewes.webp');
    background-size: cover;
  }
  66% {
        /*--myColor1: #f00;
        --myColor2: yellow;*/
        background: linear-gradient(to bottom, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.5) 100%), url('../images/banners/banner_trust.webp');
    background-size: cover;
  }
}


/*@keyframes cycleBackgrounds {
  0%, 100% {
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.5) 100%), url('../images/banners/banner_LB.webp');
    background-size: cover;
    opacity:1;
  }
  33% {
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.5) 100%), url('../images/banners/banner_lewes.webp');
    background-size: cover;
    opacity:0;
  }
  66% {
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.5) 100%), url('../images/banners/banner_LB.webp');
    background-size: cover;
    opacity:1;
  }
}*/


/*@keyframes cycleBackgrounds{
   0%,100%  {background: linear-gradient(to bottom, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.5) 100%), url("../images/banners/banner_trust.webp"); background-size: cover;}
   33% {background: linear-gradient(to bottom, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.5) 100%), url("../images/banners/banner_lewes.webp"); background-size: cover;}
   66% {background: linear-gradient(to bottom, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.5) 100%), url("../images/banners/banner_LB.webp"); background-size: cover;}
}*/




.main::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 3rem;
  height: 3rem;
  background-color: red;
}

.main>* {
  position: relative;
  z-index: 2;
}



.fees {
	background: var(--yellow-light);
    /*linear-gradient(to bottom, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.3) 100%), 
    url('../images/bg2.png') no-repeat; 
    background-size: cover;*/
	padding: 1rem 2rem;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
/*    color: white;*/
}

.map { 
    color: var(--black); font-weight: 700; 
/*    display: inline-block; */
    background: var(--yellow-mid); 
padding: 6px 16px;
  text-decoration: none;
  font-size: 1rem;
  margin-top: 1.5rem;
  cursor: pointer;
  border: 1px solid var(--white);
  border-radius: 20px;
  align-self: center;
}

.map:hover, .map:focus {color: var(--white); background: var(--grey-mid);}


.lewes {background: 
    linear-gradient(to bottom, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.8) 100%),
    url("../images/lewes.webp") no-repeat; 
    background-size: cover;
    color: var(--white);
}

.LB {background: 
    linear-gradient(to bottom, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.8) 100%),
    url("../images/trust.webp") no-repeat; 
    background-size: cover;
    color: var(--white);
    }

.online {
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.8) 100%),
    url("../images/online.png") no-repeat; 
    background-size: cover;
    color: var(--white);
    }

    .cost {font-size: 1.8rem; }
    .cost span {font-size: 0.9rem;}



.parallax-1, .parallax-2, .parallax-3 {
  background: var(--white);
  color: var(--grey-dark);
  font-weight: 400;  
}



.fees {
	margin-bottom: 0;
	margin-top: 0;
	padding-bottom: 3rem;
}

.fee-cards {
	display: flex;
	flex-wrap: wrap;
	gap: 1em;
	justify-content: center;
	margin-top: 2rem;
}

.fee-card { 
    border: 2px solid var(--white); 
    width: min(100%, 45ch); 
    text-algn: center; 
    box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
    background: var(--white);
}
.fee-card p {margin-top: 1rem;}

.fee-card-main span {display: block; font-size: 2.5rem;}

.contact {
	background: var(--grey-mid);
    color: var(--white);
	padding: 0 2rem 2rem 2rem;
	margin-bottom: 0;
	margin-top: 0;
}

.contact form { margin-top: 2rem; }

.center-text {text-align: center;}

/* Modal map */

/* When a modal window is open, remove scroll from body. */
			:is( html, body ):has( :modal ) {
				overflow: hidden ;
			}

		.modal {
			border: 1px solid #000000 ;
			border-radius: 4px ;
			width: min(100%, 60ch);
			height: 505px;

		}

		dialog[open] {
			top: 0px;
			bottom: 0px;
			margin:auto;
		}

		dialog::backdrop{
			background-color: rgb(0, 0, 0, 0.5);
			-webkit-backdrop-filter: blur(2px);
  			backdrop-filter: blur(2px);
		}

		.map-overlay {width: 80vw; height: 500px;}

/*        .close {border: none; width: 30px; height: 30px; background: red; color: var(--white);}*/

		.modalBtn { 
			position: absolute; 
			top: 5px; 
			right: 5px;
			background: red;
			border-radius: 50%;
			height: 30px;
			width: 30px;
			border: none;
			outline: none;
			display: flex;
			align-items: center;
			justify-content: center;
			color: white;
		}

		.modalBtn > i {font-size: 1.3rem; color:white;} 

		.map-modal:hover, .map-modal:focus {cursor: pointer; color: lightblue;}

		.qualifications li {margin-left: 1.2rem; margin-top: 0.75rem;}

		#home > p {width: min(100%, 67ch); font-size: 1.2rem;}

        .space-below {margin-bottom: 2rem;}

        form em a {color: var(--white); font-weight: 900; text-decoration: none; }

        form em a:hover, form em a:focus {color: var(--yellow-light); text-decoration: underline;}

        .inline-logos {display: flex; gap: 2rem;}
    .bacp-logo-inline {height: 60px;}