/*
 Theme Name:   Rothera Bray
 Theme URI:    https://www.pippley.co.uk
 Author:       Studio Seventeen Ltd.
 Author URI:   https://studioseventeen.co.uk
 Template:     bricks
 Version:      1.1
 Text Domain:  bricks
*/

/* =====================================================
THEME PALETTES
===================================================== */
/* Manual themed sections */
.theme-purple {
  --service-accent: var(--s17purple);
  --service-accent-dark: var(--s17purple-d-1);
  --service-accent-light: var(--s17purple-l-1);
  --service-accent-x-light: var(--s17purple-l-2);
  --service-accent-xx-light: var(--s17purple-l-3);
}

.theme-red {
  --service-accent: var(--s17red);
  --service-accent-dark: var(--s17red-d-1);
  --service-accent-light: var(--s17red-l-1);
  --service-accent-x-light: var(--s17red-l-2);
  --service-accent-xx-light: var(--s17red-l-3);
}

.theme-teal {
  --service-accent: var(--s17teal);
  --service-accent-dark: var(--s17teal-d-1);
  --service-accent-light: var(--s17teal-l-1);
  --service-accent-x-light: var(--s17teal-l-2);
  --service-accent-xx-light: var(--s17teal-l-3);
}

.theme-green {
  --service-accent: var(--s17green);
  --service-accent-dark: var(--s17green-d-1);
  --service-accent-light: var(--s17green-l-1);
  --service-accent-x-light: var(--s17green-l-2);
  --service-accent-xx-light: var(--s17green-l-3);
}

.theme-lime {
  --service-accent: var(--s17lime);
  --service-accent-dark: var(--s17lime);
  --service-accent-light: var(--s17lime-l-1);
  --service-accent-x-light: var(--s17lime-l-2);
  --service-accent-xx-light: var(--s17lime-l-3);
}

/* =====================================================
SHARED MESH GRADIENT
Dark RB base + grey + black + themed accent
===================================================== */

.mesh-gradient {
  --mesh-bg: var(--s17purple-d-2);
  --mesh-dark: var(--s17grey-d-2);
  --mesh-black: var(--s17dark);

  --mesh-accent-1: var(--service-accent, var(--s17purple));
  --mesh-accent-2: var(--service-accent-dark, var(--s17purple-d-1));
  --mesh-accent-3: transparent;

  background-color: var(--mesh-bg);
  background-image:
    radial-gradient(at 0% 100%, var(--mesh-dark) 0px, transparent 55%),
    radial-gradient(at 100% 100%, var(--mesh-black) 0px, transparent 55%),
    radial-gradient(at 100% 0%, var(--mesh-accent-1) 0px, transparent 45%),
    radial-gradient(at 0% 0%, var(--mesh-accent-2) 0px, transparent 45%),
    radial-gradient(at 50% 50%, var(--mesh-accent-3) 0px, transparent 40%);
}

.theme-purple-teal {
  --mesh-accent-1: var(--s17teal);
  --mesh-accent-2: var(--s17purple);
  --mesh-accent-3: transparent;
}

.theme-red-purple {
  --mesh-accent-1: var(--s17red);
  --mesh-accent-2: var(--s17purple);
  --mesh-accent-3: transparent;
}

.theme-purple-red {
  --mesh-accent-1: var(--s17purple);
  --mesh-accent-2: var(--s17red);
  --mesh-accent-3: transparent;
}

.theme-red-teal-purple {
  --mesh-accent-1: var(--s17red);
  --mesh-accent-2: var(--s17teal);
  --mesh-accent-3: var(--s17purple-d-1);
}

.mesh-static {
  background-size: cover;
}

.mesh-animated {
  background-size: 150% 150%;
  animation: animatedgradient 20s ease infinite;
}

/* -------------------------------- */
/* ANIMATED GRADIENT BACKGROUNDS */
/* -------------------------------- */
@keyframes animatedgradient {
  0% {
    background-position: 0% 25%;
  }

  25% {
    background-position: 100% 50%;
  }

  50% {
    background-position: 50% 75%;
  }

  75% {
    background-position: 25% 25%;
  }

  100% {
    background-position: 0% 25%;
  }
}


/* -------------------------------- */
/* HEADER */
/* -------------------------------- */
:root {
  --header-height: 142px;
}

@media screen and (max-width: 768px) {
  :root {
    --header-height: 170px;
  }
}

.home-hero {
  height: calc(100vh - var(--header-height));
}

/* Header globals */
header .header__container,
.footer__container.copyright__container {
  padding: var(--s17space-xs);
}

.scrolling .header__main-nav {
  position: relative;
  background: transparent;
}

.scrolling .header__main-nav::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, .95);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  border-radius: 0 0 var(--s17radius-s) var(--s17radius-s);
  pointer-events: none;
  z-index: 0;
  clip-path: inset(0);
}

header.scrolling .header__main-nav>* {
  position: relative;
  z-index: 1;
}


/* -------------------------------- */
/* MEGA MENU */
/* -------------------------------- */

/* Left column triggers */
.mega-services__trigger {
  transition:
    transform 0.25s ease,
    opacity 0.25s ease,
    color 0.25s ease;
}

.mega-services__trigger:hover,
.mega-services__trigger.is-active {
  transform: var(--s17translate-x-global);
}

/* Right panel wrapper */
.mega-services__panels {
  position: relative;
  min-height: 22rem;
}

/* Hidden panel state */
.mega-services__panel {
  position: absolute;
  inset: 0;
  padding: 2rem 2.5rem;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;

  transform: translateX(14px);

  transition:
    opacity 0.28s ease,
    transform 0.32s cubic-bezier(.2, .7, .2, 1),
    filter 0.28s ease,
    visibility 0s linear 0.32s;
}

/* Active panel */
.mega-services__panel.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;

  transform: translateX(0);

  transition:
    opacity 0.28s ease,
    transform 0.32s cubic-bezier(.2, .7, .2, 1),
    filter 0.28s ease,
    visibility 0s;
}

/* -------------------------------- */
/* TYPOGRAPHY */
/* -------------------------------- */
strong {
  font-weight: 500
}

.news-post h2 {
  font-family: "Source Serif 4", serif;
}

blockquote,
.blockquote {
  position: relative;
}

/* Quote mark */
.blockquote.brxe-block::before {
  content: "“";
  position: absolute;
  top: var(--s17space-xs);
  left: var(--s17space-xs);
  font-size: 10em;
  line-height: 1;
  /* color: var(--s17purple-l-1);*/
  color: color-mix(in srgb, var(--s17light) 50%, transparent);
  font-family: "Raleway", san-serif;
}

cite,
.cite {
  font-style: normal;
  font-weight: 500;
  ;
}

.blockquote.brxe-block cite::before {
  content: "– ";
  font-style: normal;
}


/* -------------------------------- */
/* ROTATING TEXT */
/* -------------------------------- */
.rotating-word {
  color: var(--s17red-l-1);
  display: inline-block;
  min-width: 18ch;
  opacity: 1;
  transform: translateY(0);
  transition:
    opacity 0.25s ease,
    transform 0.25s ease;
}

.rotating-word.is-changing {
  opacity: 0;
  transform: translateY(0.15em);
}


/* Base targets: only main content areas + opt-in class */
:is(.entry-content a,
  .service-content a,
  .faq-content a,
  .link-underline) {
  position: relative;
  display: inline-block;
  text-decoration: none;

  --underline-height: 1px;
  --underline-offset: -0.08em;
  --underline-duration: .7s;
  --underline-ease: cubic-bezier(0.16, 1, 0.3, 1);
  --underline-color: currentColor;
}

:is(.entry-content a,
  .service-content a,
  .faq-content a,
  .link-underline)::before,
:is(.entry-content a,
  .service-content a,
  .faq-content a,
  .link-underline)::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: var(--underline-offset);
  height: var(--underline-height);
  background: var(--underline-color);
  transition: transform var(--underline-duration) var(--underline-ease);
}

:is(.entry-content a,
  .service-content a,
  .faq-content a,
  .link-underline)::before {
  transform-origin: left;
  transform: scaleX(0);
}

:is(.entry-content a,
  .service-content a,
  .faq-content a,
  .link-underline)::after {
  transform-origin: right;
  transform: scaleX(1);
}

:is(.entry-content a,
  .service-content a,
  .faq-content a,
  .link-underline):hover::before,
:is(.entry-content a,
  .service-content a,
  .faq-content a,
  .link-underline):focus-visible::before {
  transform: scaleX(1);
  transition-delay: .25s;
}

:is(.entry-content a,
  .service-content a,
  .faq-content a,
  .link-underline):hover::after,
:is(.entry-content a,
  .service-content a,
  .faq-content a,
  .link-underline):focus-visible::after {
  transform: scaleX(0);
}


/* ----------------------------------------
   2) MEGA PANEL LINKS
   Force include these explicitly
---------------------------------------- */
.mega-services__panels__text-link {
  position: relative;
  text-decoration: none;

  --underline-height: 1px;
  --underline-offset: -0.08em;
  --underline-duration: .7s;
  --underline-ease: cubic-bezier(0.16, 1, 0.3, 1);
  --underline-color: currentColor;
}

.mega-services__panels__text-link::before,
.mega-services__panels__text-link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: var(--underline-offset);
  height: var(--underline-height);
  background: var(--underline-color);
  transition: transform var(--underline-duration) var(--underline-ease);
}

.mega-services__panels__text-link::before {
  transform-origin: left;
  transform: scaleX(0);
}

.mega-services__panels__text-link::after {
  transform-origin: right;
  transform: scaleX(1);
}

.mega-services__panels__text-link:hover::before,
.mega-services__panels__text-link:focus-visible::before {
  transform: scaleX(1);
  transition-delay: .25s;
}

.mega-services__panels__text-link:hover::after,
.mega-services__panels__text-link:focus-visible::after {
  transform: scaleX(0);
}

/* -------------------------------- */
/* BUTTONS */
/* -------------------------------- */

.s17btn {
  position: relative;
  justify-content: flex-start;
  text-decoration: none;
  line-height: 1;
  white-space: nowrap;
  outline: 0;
  cursor: pointer;
  transition: all 0.25s ease-in-out;
  --s17btn-height: 2.5rem;
  --s17btn-pad-left: 1rem;
  --s17btn-gap-right: 0.75rem;
  --s17btn-arrow-bg: var(--s17red-l-1);
  --s17btn-arrow-bg-hover: var(--s17red);
  --s17btn-arrow-color: var(--s17dark);
  --s17btn-arrow-color-hover: var(--s17light);
  min-height: var(--s17btn-height);
  padding: 0 calc(var(--s17btn-height) + var(--s17btn-gap-right)) 0 var(--s17btn-pad-left);
  width: max-content;
  max-width: 100%;
}

/* Arrow */
.s17btn::after {
  content: "\f061";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  position: absolute;
  top: 0;
  right: 0;
  width: var(--s17btn-height);
  height: var(--s17btn-height);
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background-color: var(--s17btn-arrow-bg);
  color: var(--s17btn-arrow-color);
  font-size: 1.2rem;
  line-height: 1;
  transition:
    transform 0.35s cubic-bezier(.4, 0, .2, 1),
    background-color 0.3s ease,
    color 0.3s ease;
}

.s17btn:hover::after {
  background-color: var(--s17btn-arrow-bg-hover);
  color: var(--s17btn-arrow-color-hover);
  transform: var(--s17translate-x-global);
}

/* Light red button */
.s17btn.light {
  --s17btn-arrow-bg: var(--s17red-l-2);
  --s17btn-arrow-bg-hover: var(--s17red-l-3);
  --s17btn-arrow-color: var(--s17dark);
  --s17btn-arrow-color-hover: var(--s17dark);
}

/* Purple button */
.s17btn.purple {
  --s17btn-arrow-bg: var(--s17purple-l-1);
  --s17btn-arrow-bg-hover: var(--s17purple);
  --s17btn-arrow-color: var(--s17dark);
  --s17btn-arrow-color-hover: var(--s17light);
}

/* Light purple button */
.s17btn.purple-light {
  --s17btn-arrow-bg: var(--s17purple-l-2);
  --s17btn-arrow-bg-hover: var(--s17purple-l-3);
  --s17btn-arrow-color: var(--s17dark);
  --s17btn-arrow-color-hover: var(--s17dark);
}

/* Teal button */
.s17btn.teal {
  --s17btn-arrow-bg: var(--s17teal-l-1);
  --s17btn-arrow-bg-hover: var(--s17teal);
  --s17btn-arrow-color: var(--s17dark);
  --s17btn-arrow-color-hover: var(--s17light);
}

/* Light teal button */
.s17btn.teal-light {
  --s17btn-arrow-bg: var(--s17teal-l-2);
  --s17btn-arrow-bg-hover: var(--s17teal-l-3);
  --s17btn-arrow-color: var(--s17dark);
  --s17btn-arrow-color-hover: var(--s17dark);
}

/*
.contents-wrapper {
  display: grid;
  align-items: start;
}

.contents-wrapper[data-cols="column"] {
  grid-template-columns: 1fr;
}

.contents-wrapper[data-cols="columns-2"] {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.contents-wrapper[data-cols="columns-3"] {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}*/

/* -------------------------------- */
/* CARDS */
/* -------------------------------- */
/* Arrow card */
.arrow-card:hover {
  transform: var(--s17translate-y-global);
}

.arrow-card__icon {
  transition: var(--s17transition-global);
}

.arrow-card:hover .arrow-card__icon,
.service-sub-menu__text-link:hover {
  transform: var(--s17translate-x-global);
}

/* -------------------------------- */
/* SINGLE SERVICE */
/* -------------------------------- */

/* CSS colour variables: personal and business */
.service-Personal {
  --service-accent: var(--s17purple);
  --service-accent-dark: var(--s17purple-d-1);
  --service-accent-light: var(--s17purple-l-1);
  --service-accent-x-light: var(--s17purple-l-2);
  --service-accent-xx-light: var(--s17purple-l-3);
}

.service-Business {
  --service-accent: var(--s17teal);
  --service-accent-dark: var(--s17teal-d-1);
  --service-accent-light: var(--s17teal-l-1);
  --service-accent-x-light: var(--s17teal-l-2);
  --service-accent-xx-light: var(--s17teal-l-3);
}

/* Animated mesh background 
.animated-mesh-gradient-background {
  --mesh-bg: var(--service-accent-dark);
  --mesh-1: var(--service-accent);
  --mesh-2: var(--service-accent-dark);
  --mesh-3: var(--service-accent-light);

  background-color: var(--mesh-bg);
  background-image:
    radial-gradient(at 0% 100%, var(--mesh-1) 0px, transparent 50%),
    radial-gradient(at 100% 100%, var(--mesh-2) 0px, transparent 50%),
    radial-gradient(at 100% 0%, var(--mesh-3) 0px, transparent 50%);

  background-size: 200% 200%;
  animation: animatedgradient 10s ease infinite;
}*/

/* DEFAULT SERVICE BUTTON */
.service-Personal .s17btn:not(.light):not(.purple):not(.purple-light):not(.teal):not(.teal-light),
.service-Business .s17btn:not(.light):not(.purple):not(.purple-light):not(.teal):not(.teal-light) {
  background: var(--service-accent);
  border-color: var(--service-accent);
  color: var(--s17light);
  --s17btn-arrow-bg: var(--service-accent-light);
  --s17btn-arrow-bg-hover: var(--service-accent);
  --s17btn-arrow-color: var(--s17dark);
  --s17btn-arrow-color-hover: var(--s17light);
}

/* Hover state */
.service-Personal .s17btn:not(.light):not(.purple):not(.purple-light):not(.teal):not(.teal-light):hover,
.service-Business .s17btn:not(.light):not(.purple):not(.purple-light):not(.teal):not(.teal-light):hover {
  background: var(--service-accent-dark);
  border-color: var(--service-accent-light);
}


/* LIGHT SERVICE BUTTON */
.service-Personal .s17btn.light:not(.purple):not(.purple-light):not(.teal):not(.teal-light),
.service-Business .s17btn.light:not(.purple):not(.purple-light):not(.teal):not(.teal-light) {
  background: var(--service-accent-light);
  border-color: var(--service-accent-x-light);
  color: var(--s17dark);

  --s17btn-arrow-bg: var(--service-accent-x-light);
  --s17btn-arrow-bg-hover: var(--service-accent-xx-light);
  --s17btn-arrow-color: var(--s17dark);
  --s17btn-arrow-color-hover: var(--s17dark);
}

/* Hover state */
.service-Personal .s17btn.light:not(.purple):not(.purple-light):not(.teal):not(.teal-light):hover,
.service-Business .s17btn.light:not(.purple):not(.purple-light):not(.teal):not(.teal-light):hover {
  background: var(--service-accent-x-light);
  border-color: var(--service-accent-x-light);
}

/* -------------------------------- */
/* IN-PAGE ANCHOR MENUS */
/* -------------------------------- */
.s17-anchor-nav__title {
  font-weight: 500;
  font-size: var(--s17text-m);
  margin: 0 0 var(--s17space-xs) 0;
  cursor: default;
}

.s17-anchor-nav__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--s17space-xs);
}

.s17-anchor-nav__link {
  border-radius: var(--s17radius-full);
  padding: var(--s17space-2xs);
  transition: all 0.2s ease-in-out;
  font-size: var(--s17text-s);
}

.s17-anchor-nav__link.is-active,
.s17-anchor-nav__link:hover {
  background: var(--s17grey-l-2);
}

/* Position based on sticky header active */
:root {
  --anchor-menu-top: 20px;
}

.anchor-menu-container {
  position: sticky;
  z-index: 10;
  top: var(--anchor-menu-top);
  transition: top 0.25s ease;
}

body.sticky-header-visible {
  --anchor-menu-top: 120px;
}


@media (max-width: 768px) {
  .s17-anchor-nav__list {
    display: none;
  }

  .s17-anchor-nav.is-open .s17-anchor-nav__list {
    display: flex;
  }

  /* Mobile toggle arrow */
  .s17-anchor-nav__title {
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
  }

  .s17-anchor-nav__title::after {
    content: "▾";
    font-size: .8em;
    transition: transform .25s ease;
  }

  .s17-anchor-nav.is-open .s17-anchor-nav__title::after {
    transform: rotate(180deg);
  }

}

section:target {
  animation: sectionFlash 1s ease;
}

@keyframes sectionFlash {
  from {
    background: rgba(0, 0, 0, .04);
  }

  to {
    background: transparent;
  }
}

html {
  scroll-behavior: smooth;
}

section[id] {
  scroll-margin-top: 120px;
}

/* Main service in-page sub-menu section */
.service-sub-menu__text-link {
  justify-content: space-between;
}


/* -------------------------------- */
/* Vertical / horizontal scrolling galleries */
/* -------------------------------- */
.vertical-scroll-gallery {
  --gallery-speed: 30s;
  will-change: transform;
}

.vertical-scroll-gallery.scroll-up {
  animation: scrollInfinite-y-up var(--gallery-speed) linear infinite;
}

.vertical-scroll-gallery.scroll-down {
  animation: scrollInfinite-y-down var(--gallery-speed) linear infinite;
}

@keyframes scrollInfinite-y-up {
  from {
    transform: translateY(0);
  }

  to {
    transform: translateY(-50%);
  }
}

@keyframes scrollInfinite-y-down {
  from {
    transform: translateY(-50%);
  }

  to {
    transform: translateY(0);
  }
}

@keyframes scrollInfinite-x-up {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-50%);
  }
}

@keyframes scrollInfinite-x-down {
  from {
    transform: translateX(-50%);
  }

  to {
    transform: translateX(0);
  }
}

@media (max-width: 767px) {
  .gallery-columns {
    grid-template-columns: 1fr;
  }

  .vertical-scroll-gallery {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-start;
    width: max-content;
    max-width: none;
    max-height: none;
  }

  .vertical-scroll-gallery>.brxe-image-gallery {
    display: flex;
    flex-wrap: nowrap;
    flex: 0 0 auto;
    width: max-content;
    max-width: none;
    gap: var(--s17space-s);
  }

  .vertical-scroll-gallery>.brxe-image-gallery.bricks-layout-wrapper[data-layout="grid"] {
    grid-template-columns: none;
  }

  .vertical-scroll-gallery>.brxe-image-gallery>.bricks-layout-item {
    flex: 0 0 clamp(110px, 30vw, 160px);
    width: clamp(110px, 30vw, 160px);
    max-width: none;
  }

  .vertical-scroll-gallery img {
    display: block;
    width: 100%;
    height: auto;
  }

  .vertical-scroll-gallery.scroll-up {
    animation: scrollInfinite-x-up var(--gallery-speed) linear infinite;
  }

  .vertical-scroll-gallery.scroll-down {
    animation: scrollInfinite-x-down var(--gallery-speed) linear infinite;
  }
}

/* -------------------------------- */
/* SINGLE TEAM MEMBER */
/* -------------------------------- */
.profile-qualifications__timeline ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.profile-qualifications__timeline li {
  --timeline-size: 1.1em;
  --timeline-gap: 1.4em;
  position: relative;
  padding-left: calc(var(--timeline-size) + var(--timeline-gap));
  margin-bottom: 0.9em;
}

/* timeline icon */
.profile-qualifications__timeline li::before {
  content: "\f192";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  position: absolute;
  left: 0;
  top: 0.25em;
  font-size: var(--timeline-size);
  line-height: 1;
  color: var(--s17red);
}

/* vertical line */
.profile-qualifications__timeline li::after {
  content: "";
  position: absolute;
  left: calc(var(--timeline-size) / 2);
  top: calc(var(--timeline-size) + 0.35em);
  bottom: -0.9em;
  width: 0.12em;
  background: var(--s17red);
  transform: translateX(-50%);
}

/* remove last line */
.profile-qualifications__timeline li:last-child::after {
  display: none;
}