@font-face {
  font-family: 'Montserrat';
  src: local('Montserrat'), local('Montserrat Regular'), url('../fonts/Montserrat-VariableFont_wght.woff2') format('woff2');
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
@font-face {
  font-family: 'Montserrat';
  src: local('Montserrat Italic'), url('../fonts/Montserrat-Italic-VariableFont_wght.woff2') format('woff2');
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
}

:root {
  --athfl-purple: #432d3e;
  --athfl-sage: #a2b385;
  --athfl-white: #ffffff;
  --athfl-soft: #f5f7f4;
  --athfl-max: 1140px;
  --athfl-header-h: 176px;
}

body.athfl-layout {
  margin: 0;
  background: var(--athfl-white);
  color: var(--athfl-purple);
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 16px;
  line-height: 20px;
  font-weight: 400;
}
body.athfl-layout *, body.athfl-layout *::before, body.athfl-layout *::after { box-sizing: border-box; }
body.athfl-layout img { max-width: 100%; height: auto; display: block; }
body.athfl-layout a { color: inherit; }
body.athfl-layout p { margin: 0 0 20px; }
body.athfl-layout h1,
body.athfl-layout h2,
body.athfl-layout h3,
body.athfl-layout h4 { font-family: 'Montserrat', Arial, sans-serif; color: var(--athfl-purple); margin-top: 0; }
body.athfl-layout h1,
.athfl-h1 {
  font-size: 76px;
  line-height: 95px;
  letter-spacing: normal;
  font-weight: 700;
  color: var(--athfl-purple);
}
body.athfl-layout h2 {
  font-size: 18px;
  line-height: 22px;
  letter-spacing: normal;
  font-weight: 600;
}

.athfl-skip-link { position: absolute; left: -9999px; top: auto; }
.athfl-skip-link:focus { left: 12px; top: 12px; z-index: 100000; background: #fff; padding: 10px 14px; }

.athfl-header {
  position: relative;
  z-index: 100;
  background: #fff;
  color: var(--athfl-purple);
}
.athfl-header.is-transparent {
  position: absolute;
  inset: 0 0 auto 0;
  background: transparent;
}
.athfl-header-inner {
  width: min(var(--athfl-max), calc(100% - 64px));
  min-height: var(--athfl-header-h);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 220px 1fr;
  align-items: center;
  gap: 64px;
  padding: 24px 0 18px;
}
.athfl-logo { display: inline-block; width: 150px; text-decoration: none; }
.athfl-logo img { width: 150px; }
.athfl-primary-nav { justify-self: end; }
.athfl-menu,
.athfl-menu ul { list-style: none; margin: 0; padding: 0; }
.athfl-menu { display: flex; align-items: center; gap: 46px; }
.athfl-menu > li { position: relative; }
.athfl-menu a {
  display: block;
  text-decoration: none;
  color: var(--athfl-purple);
  font-size: 18px;
  line-height: 24px;
  font-weight: 600;
  padding: 14px 0;
  transition: color .18s ease, background-color .18s ease;
}
.athfl-menu > li > a:hover,
.athfl-menu > li > a:focus-visible,
.athfl-menu > li.current-menu-item > a,
.athfl-menu > li.current-menu-ancestor > a { color: var(--athfl-sage); }
.athfl-menu .sub-menu {
  position: absolute;
  left: 50%;
  top: calc(100% - 2px);
  transform: translateX(-50%);
  width: 360px;
  background: #f5f8f5;
  box-shadow: 0 12px 28px rgba(67,45,62,.08);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  z-index: 110;
}
.athfl-menu li:hover > .sub-menu,
.athfl-menu li:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.athfl-menu .sub-menu a {
  text-align: center;
  padding: 12px 18px;
  font-size: 18px;
  line-height: 22px;
  font-weight: 600;
}
.athfl-menu .sub-menu a:hover,
.athfl-menu .sub-menu a:focus-visible,
.athfl-menu .sub-menu .current-menu-item > a {
  color: var(--athfl-purple);
  background: var(--athfl-sage);
}
.athfl-nav-toggle { display: none; }

.athfl-button,
body.athfl-layout .athfl-button,
body.athfl-layout input[type="submit"],
body.athfl-layout button[type="submit"],
body.athfl-layout .nf-form-content input[type="button"] {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-height: 42px;
  padding: 10px 28px;
  border: 0;
  border-radius: 0;
  background: var(--athfl-sage);
  color: #fff;
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 16px;
  line-height: 22.4px;
  font-weight: 400;
  text-decoration: none;
  box-shadow: none;
  transform: none;
  transition: color .18s ease;
  cursor: pointer;
}
.athfl-button:hover,
.athfl-button:focus-visible,
body.athfl-layout input[type="submit"]:hover,
body.athfl-layout button[type="submit"]:hover,
body.athfl-layout .nf-form-content input[type="button"]:hover { color: var(--athfl-purple) !important; background: var(--athfl-sage) !important; transform: none; }

.athfl-parallax {
  position: relative;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-attachment: fixed;
  isolation: isolate;
}
.athfl-parallax::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,var(--athfl-wash,.62));
  z-index: -1;
}
.athfl-section-inner { width: min(900px, calc(100% - 48px)); margin: 0 auto; position: relative; }
.athfl-major-title {
  margin: 0 0 14px;
  color: var(--athfl-purple);
  font-size: 42px;
  line-height: 50px;
  font-weight: 700;
}
.athfl-section-copy { max-width: 620px; margin: 0 auto 20px; }

/* HOME */
.athfl-home-hero {
  min-height: 560px;
  padding-top: var(--athfl-header-h);
  display: flex;
  align-items: center;
  text-align: center;
  --athfl-wash: .55;
}
.athfl-home-hero .athfl-section-inner { max-width: 760px; }
.athfl-home-hero h1 { margin-bottom: 4px; }
.athfl-home-service {
  min-height: 340px;
  display: flex;
  align-items: center;
  text-align: center;
  --athfl-wash: .66;
}
.athfl-home-service .athfl-section-inner { max-width: 650px; }
.athfl-home-service .athfl-button { margin-top: 2px; }
.athfl-about-split { display: grid; grid-template-columns: 1fr 1fr; min-height: 460px; }
.athfl-about-split-image { background-size: cover; background-position: center; min-height: 460px; }
.athfl-about-split-copy { background: rgba(67,45,62,.82); color: #fff; display: flex; align-items: center; padding: 60px 72px; }
.athfl-about-split-copy h2 { color: #fff; font-size: 36px; line-height: 44px; font-weight: 600; margin-bottom: 24px; }
.athfl-about-split-copy p { max-width: 420px; }
.athfl-home-testimonial { min-height: 260px; display:flex; align-items:center; text-align:center; --athfl-wash:.72; }
.athfl-home-testimonial blockquote { margin: 0 auto; max-width: 760px; font-style: italic; color: var(--athfl-purple); font-size: 16px; line-height: 22px; }
.athfl-get-in-touch { padding: 44px 0 0; text-align: center; }
.athfl-get-in-touch > h2 { font-size: 42px; line-height: 50px; margin: 0 0 4px; font-weight: 700; }
.athfl-get-in-touch > p { color: var(--athfl-sage); margin-bottom: 28px; }
.athfl-contact-cards { width:min(1220px,calc(100% - 48px)); margin:0 auto; display:grid; grid-template-columns:1fr 1fr 3fr; }
.athfl-contact-card { min-height:475px; position:relative; display:flex; align-items:center; justify-content:center; padding:32px 24px; background-size:cover; background-position:center; color:#fff; isolation:isolate; text-align:center; }
.athfl-contact-card::before { content:''; position:absolute; inset:0; z-index:-1; background:rgba(67,45,62,.58); }
.athfl-contact-card.is-sage::before { background:rgba(162,179,133,.72); }
.athfl-contact-card p { margin:0; }
.athfl-contact-card-content { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:20px; width:100%; }
.athfl-contact-card-content a { color:#fff; text-decoration:underline; font-size:16px; line-height:22px; }
.athfl-contact-card-icon { color:#fff; font-size:58px; width:58px; height:58px; line-height:58px; }

/* ABOUT */
.athfl-about-hero { display:grid; grid-template-columns: 1fr 1.65fr 1fr; min-height: 300px; }
.athfl-about-hero-image { background-size:cover; background-position:center; min-height:300px; }
.athfl-about-title-panel { background:var(--athfl-sage); display:flex; align-items:center; justify-content:center; text-align:center; padding:32px; }
.athfl-about-title-panel h1 { color:#fff; margin:0; }
.athfl-page-copy-wrap { background:var(--athfl-soft); padding:0 0 80px; }
.athfl-page-copy { width:min(900px,calc(100% - 48px)); margin:0 auto; background:#fff; padding:46px 54px; }
.athfl-page-copy > *:last-child { margin-bottom:0; }

/* SERVICES */
.athfl-services-hero { min-height:310px; display:flex; align-items:center; text-align:center; --athfl-wash:.63; }
.athfl-services-hero h1 { margin: 0; }
.athfl-services-intro { text-align:center; padding:34px 20px 20px; color:var(--athfl-sage); }
.athfl-services-intro p { font-size:24px; line-height:30px; font-weight:600; margin:0; }
.athfl-services-grid-wrap { background:var(--athfl-purple); padding:52px 0 90px; }
.athfl-services-grid { width:min(900px,calc(100% - 48px)); margin:0 auto; display:grid; grid-template-columns:repeat(2,1fr); gap:70px 52px; }
.athfl-service-card { display:grid; grid-template-columns: 1fr 1.25fr; gap:28px; align-items:center; color:#fff; }
.athfl-service-card-content h2 { color:#fff; font-size:22px; line-height:28px; font-weight:700; margin-bottom:16px; }
.athfl-service-card-content p { font-size:14px; line-height:19px; }
.athfl-service-card-copy > *:last-child { margin-bottom:0; }

.athfl-service-card-image { aspect-ratio: 4/5; background-size:cover; background-position:center; }

/* SERVICE DETAIL */
.athfl-service-detail-hero { min-height:520px; padding-top:var(--athfl-header-h); display:flex; align-items:center; text-align:center; --athfl-wash:.68; }
.athfl-service-detail-hero h1 { margin:0; }
.athfl-video-wrap { width:min(640px,calc(100% - 48px)); margin:-80px auto 0; position:relative; z-index:5; background:#000; }
.athfl-video-wrap iframe, .athfl-video-wrap video { display:block; width:100%; aspect-ratio:16/9; border:0; }
.athfl-detail-main { background:var(--athfl-soft); padding:0 0 70px; }
.athfl-detail-card { width:min(900px,calc(100% - 48px)); margin:0 auto; background:#fff; padding:42px 54px 60px; }
.athfl-video-wrap + .athfl-detail-main .athfl-detail-card { padding-top:120px; margin-top:-84px; }
.athfl-detail-section { padding:24px 0; border-bottom:1px solid rgba(67,45,62,.08); }
.athfl-detail-section:last-of-type { border-bottom:0; }
.athfl-detail-section h2 { color:var(--athfl-sage); margin-bottom:18px; }
.athfl-detail-section.is-image { background-size:cover; background-position:center; padding:42px; position:relative; isolation:isolate; }
.athfl-detail-section.is-image::before { content:''; position:absolute; inset:0; background:rgba(255,255,255,.82); z-index:-1; }
.athfl-testimonials { padding:22px 0 4px; }
.athfl-testimonial { margin:0 0 28px; }
.athfl-testimonial blockquote { margin:0; font-style:italic; }
.athfl-testimonial cite { display:block; margin-top:10px; text-align:right; font-style:normal; }
.athfl-booking-wrap { margin-top:36px; }
.athfl-about-form-wrap { margin-top:36px; }

/* CONTACT */
.athfl-contact-main { width:min(var(--athfl-max),calc(100% - 64px)); margin:0 auto; padding:68px 0 70px; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr); gap:120px; align-items:start; }
.athfl-contact-main h1 { margin-bottom:34px; }
.athfl-contact-details { padding-top:95px; }
.athfl-contact-detail { margin-bottom:46px; }
.athfl-contact-detail h2 { font-size:24px; line-height:30px; margin-bottom:18px; }
.athfl-contact-detail .dashicons { color:var(--athfl-sage); font-size:34px; width:34px; height:34px; margin-bottom:16px; }
.athfl-map iframe { width:100%; min-height:420px; border:0; display:block; }

/* Ninja Forms */
body.athfl-layout .nf-form-content { max-width:none; padding:0; }
body.athfl-layout .nf-field-label label { color:var(--athfl-purple); font-size:14px; line-height:18px; font-weight:600; }
body.athfl-layout .nf-form-content input:not([type=button]):not([type=submit]),
body.athfl-layout .nf-form-content textarea,
body.athfl-layout .nf-form-content select {
  border:0;
  border-bottom:5px solid var(--athfl-sage);
  border-radius:0;
  background:#fff;
  color:var(--athfl-purple);
  min-height:48px;
  padding:8px 0;
  box-shadow:none;
}
body.athfl-layout .nf-form-content textarea { min-height:130px; }

/* FOOTER */
.athfl-footer { background:#fff; padding:54px 0 42px; color:var(--athfl-sage); font-family:'Montserrat',Arial,sans-serif; }
.athfl-footer-inner { width:min(1260px,calc(100% - 64px)); margin:0 auto; display:grid; grid-template-columns:1fr 1fr 1fr; gap:60px; align-items:start; }
body.athfl-layout .athfl-footer h2 { color:var(--athfl-sage) !important; font-size:18px; line-height:22px; font-weight:600; margin:0 0 18px; }
.athfl-footer-menu { list-style:none; padding:0; margin:0; }
.athfl-footer-menu li { margin:0 0 10px; }
body.athfl-layout .athfl-footer-menu a { text-decoration:none; color:var(--athfl-sage); font-size:16px; line-height:20px; font-weight:400; }
.athfl-footer-brand-col { justify-self:center; width:260px; text-align:center; }
.athfl-footer-logo { width:180px; margin:0 auto 34px; }
.athfl-footer-copy { margin:0 auto 28px; font-size:16px; line-height:20px; text-align:center; }
.athfl-footer-social-col { display:flex; flex-direction:column; align-items:flex-end; gap:12px; }
.athfl-footer-social-col a { width:46px; height:46px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:#999; color:#fff !important; text-decoration:none; }
.athfl-footer-social-col .dashicons { font-size:30px; width:30px; height:30px; line-height:30px; }
.athfl-footer-credit { grid-column:1 / -1; text-align:center; color:var(--athfl-sage); font-size:14px; line-height:20px; margin-top:34px; }
.athfl-footer-credit p { margin:0; }
.athfl-footer-credit a { color:inherit; }

@media (max-width: 1000px) {
  :root { --athfl-header-h: 132px; }
  .athfl-header-inner { width:min(920px,calc(100% - 40px)); grid-template-columns:150px 1fr; gap:32px; min-height:var(--athfl-header-h); padding:18px 0; }
  .athfl-logo, .athfl-logo img { width:120px; }
  .athfl-menu { gap:26px; }
  .athfl-menu a { font-size:16px; }
  body.athfl-layout h1, .athfl-h1 { font-size:58px; line-height:70px; }
  .athfl-contact-main { gap:64px; }
}

@media (max-width: 760px) {
  :root { --athfl-header-h: 96px; }
  .athfl-parallax { background-attachment:scroll; }
  .athfl-header-inner { width:calc(100% - 32px); grid-template-columns:100px 1fr; min-height:96px; padding:12px 0; }
  .athfl-logo, .athfl-logo img { width:86px; }
  .athfl-nav-toggle { display:flex; justify-self:end; width:42px; height:38px; border:0; background:transparent; padding:7px; flex-direction:column; justify-content:space-around; }
  .athfl-nav-toggle span:not(.screen-reader-text) { display:block; height:2px; background:var(--athfl-purple); width:100%; }
  .athfl-primary-nav { position:absolute; top:100%; left:0; right:0; background:#fff; display:none; box-shadow:0 10px 28px rgba(67,45,62,.12); }
  .athfl-primary-nav.is-open { display:block; }
  .athfl-menu { display:block; }
  .athfl-menu > li > a { padding:14px 24px; }
  .athfl-menu .sub-menu { position:static; width:auto; transform:none; opacity:1; visibility:visible; pointer-events:auto; box-shadow:none; display:none; }
  .athfl-menu li:hover > .sub-menu, .athfl-menu li:focus-within > .sub-menu { display:block; }
  .athfl-menu .sub-menu a { text-align:left; padding-left:42px; }
  body.athfl-layout h1, .athfl-h1 { font-size:44px; line-height:52px; }
  .athfl-major-title, .athfl-get-in-touch > h2 { font-size:34px; line-height:42px; }
  .athfl-home-hero { min-height:520px; }
  .athfl-home-service { min-height:300px; }
  .athfl-about-split { grid-template-columns:1fr; }
  .athfl-about-split-image { min-height:380px; }
  .athfl-about-split-copy { padding:46px 32px; min-height:360px; }
  .athfl-contact-cards { grid-template-columns:1fr; width:100%; }
  .athfl-contact-card { min-height:260px; }
  .athfl-about-hero { grid-template-columns:1fr; }
  .athfl-about-hero-image, .athfl-about-title-panel { min-height:260px; }
  .athfl-page-copy { width:calc(100% - 32px); padding:32px 24px; }
  .athfl-services-grid { grid-template-columns:1fr; }
  .athfl-service-card { grid-template-columns:1fr; }
  .athfl-service-card-image { order:-1; aspect-ratio:16/11; }
  .athfl-detail-card { width:calc(100% - 32px); padding:32px 24px 42px; }
  .athfl-video-wrap + .athfl-detail-main .athfl-detail-card { padding-top:96px; }
  .athfl-detail-section.is-image { padding:28px 20px; }
  .athfl-contact-main { width:calc(100% - 40px); grid-template-columns:1fr; gap:30px; padding:48px 0 50px; }
  .athfl-contact-details { padding-top:0; }
  .athfl-footer-inner { width:calc(100% - 40px); grid-template-columns:1fr; text-align:center; }
  .athfl-footer-brand-col { justify-self:center; width:min(280px,100%); }
  .athfl-footer-social-col { align-items:center; flex-direction:row; justify-content:center; }
}
