/*
Theme Name: Jessica Walls Therapy
Theme URI: https://example.com
Author: BDD&D
Description: Custom, lightweight block-friendly theme for a therapist in Longmont/Boulder, CO.
Version: 1.0.0
License: GPLv2 or later
Text Domain: jessica-walls
*/

:root{
  /* Colors */
  --clr-primary: #399666;   /* soft/light green (new primary) */
  --clr-primary-dark: #1d3b29; /* forest green (used for header, text accents) */
  --clr-primary-bright: #18dc77; /* forest green (used for header, text accents) */
  --clr-coral: #F27D72;     /* coral accent */
  --clr-coral-light: #fbe2d0; /* light accent */
  --clr-light: #F7F5F2;
  --clr-dark: #2b2b2b;

  /* Typography */
  --ff-head: "Cormorant", Georgia, Times, serif;
  --ff-body: "Molengo", Helvetica, Arial, sans-serif;

  /* Layout */
  --container: 1300px;
  --gutter: 1rem;
}

@font-face {
  font-family: 'icomoon';
  src:  url('assets/fonts/icomoon.eot?8hcybd');
  src:  url('assets/fonts/icomoon.eot?8hcybd#iefix') format('embedded-opentype'),
    url('assets/fonts/icomoon.ttf?8hcybd') format('truetype'),
    url('assets/fonts/icomoon.woff?8hcybd') format('woff'),
    url('assets/fonts/icomoon.svg?8hcybd#icomoon') format('svg');
  font-weight: normal;
  font-style: normal;
  font-display: block;
}

[class^="icon-"], [class*=" icon-"] {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'icomoon' !important;
  speak: never;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;

  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

html{box-sizing:border-box;scroll-behavior:smooth;}
*,*:before,*:after{box-sizing:inherit;}
body{
  margin:0;
  font-family:var(--ff-body);
  color:var(--clr-dark);
  background:var(--clr-light);
  line-height:1.6;
  -webkit-font-smoothing: antialiased; font-size:140%;
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--clr-primary);text-decoration:none;font-weight:600;}
a:hover, a:focus{text-decoration:underline;color:var(--clr-coral);}
h1,h2,h3,h4,h5,h6{
  font-family:var(--ff-head); font-weight:800;
  color:var(--clr-primary-dark);
  margin:0 0 .6em;
  line-height:1.1;font-size:300%;
}
h2 strong, h3 strong, h4 strong, h5 strong, h6 strong {font-weight:800;}
h1 {color:var(--clr-primary); text-align:center; margin-top:1em; font-weight:100;}
h2 {font-size:200%;}
h3,h4,h5,h6 {font-size:160%;}
.container{
  width:90%;
  max-width:var(--container);
  margin:0 auto;
}

/* Fixed header */
.site-header{
  position:fixed;top:0;left:0;width:100%;
  background-color:rgba(255,255,255,0.8);z-index:999;
}
.site-header .inner{
  display:flex;align-items:center;justify-content:space-evenly;
  padding:.6rem 0;
}
.site-logo {flex:1;}
.site-logo img{height:92px;}
.menu-toggle{
  display:flex;flex:1; justify-content:center;align-items:center;gap:.4rem;
  font-size:1rem;cursor:pointer;color:var(--clr-primary);
  background:none;border:none; font-size:16px; letter-spacing:4pt; text-transform: uppercase; font-weight:400;
}
.menu-toggle .icon{font-size:1.4rem;line-height:1;transition: transform .3s; position:relative; top:-3px;}

/* when open, rotate or change to X */
.menu-toggle.open .icon {
  transform: rotate(90deg);
  /* or simply swap content: */
}
.menu-toggle.open .icon::before {
  content: "✕";    /* change to an X */
  position:relative; left:4px;
}

/* hide the original hamburger when open */
.menu-toggle.open span:first-child + .icon {
  /* if your markup is <span>Menu</span><span class="icon">☰</span> */
  content: "";    /* remove the ☰ */
}
.menu-toggle.open span.icon b {display:none;}

.contact-info {flex:1; display:flex; justify-content: center;}
.contact-info a {text-transform: uppercase; letter-spacing:4pt; font-size:16px; font-weight:400;}

.menu {margin:0; padding:0; list-style-type:none;}
.menu li {margin:0; padding:0; list-style-type:none;}
.sub-menu {padding-left:0; margin-left:0;}

/* Off-canvas nav */
.offcanvas{
  position:fixed;top:112px;right:-90%;height:calc(100% - 72px);width:90%;
  background:var(--clr-primary);color:#fff;overflow-y:auto;
  transition:right .3s ease;z-index:998;padding:2rem 1.5rem;
}
@media (min-width: 768px) {
  .offcanvas {
    width: 40%; right:-40%;
  }
}
.offcanvas.active{right:0;}
.offcanvas a{display:block;color:#fff;margin:.8rem 0;font-size: 2.25rem;padding: 1rem 0;font-family: var(--ff-head); text-align: center;}
.offcanvas .menu-item.menu-item-has-children a {padding-bottom:0; margin-bottom:0;}
.offcanvas .sub-menu a {font-size:1.5rem; margin:0; padding:0;}
.offcanvas li.connect a {text-transform: uppercase; font-size:1.5rem; border:3px solid var(--clr-coral); background:rgba(255,255,255,1); color:var(--clr-coral); padding:4px; letter-spacing: 1pt; font-weight:800; width:80%; max-width:333px; margin:0 auto; border-radius:100px; transition: 0.2s all;}
.wp-block-button.is-style-outline--1 .wp-block-button__link {transition: 0.2s all;}
.offcanvas li.connect a:hover, .wp-block-button.is-style-outline--1 .wp-block-button__link:hover {text-decoration: none; color:#FFF !important; background:var(--clr-coral);}
.overlay{
  position:fixed;inset:0;top:112px;background:rgba(0,0,0,.45);
  opacity:0;visibility:hidden;transition:.3s ease;z-index:997;
}
.overlay.active{opacity:1;visibility:visible;}

/* Hero video */
.hero-video{position:relative;margin-top:122px;height:60vh;overflow:hidden;}
.hero-video video{width:100%;height:100%;object-fit:cover; filter:saturate(1.5);}
.hero-tagline{font-family:var(--ff-head); line-height:1.1; font-weight:800;
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  color:#fff;text-align:center;font-size:4.2rem;max-width:90%;
  text-shadow:0 2px 6px rgba(0,0,0,.6);
}

/* Main content spacing */
main{padding:3rem 0;}
.intro-copy{max-width:800px;margin:2rem auto;text-align:center;font-size:1.05rem;color:#333;}

/* Page elements */
.side-bar {background:var(--clr-coral-light); font-size:80%; padding:2.5%;}

/* Callouts */
.callouts{
  display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin:2.5rem 0;
}
.callout{
  flex:1 1 200px;max-width:280px;text-align:center;
  background:var(--clr-primary);color:#fff;padding:1rem 1.2rem;border-radius:8px;
  transition:.3s background;
}
.callout a{color:#fff;font-weight:bold;text-decoration:none;}
.callout:hover{background: var(--clr-coral);}

/* Coral buttons */
.btn-coral, .wp-element-button, .wp-element-button, .wp-block-button__link{
  background: var(--clr-coral);
  color:#fff;
  padding:.8rem 1.2rem;
  border-radius:50px;
  display:inline-block;
  transition:.2s background;
  text-decoration:none;
}
.btn-coral:hover, .wp-element-button:hover, .wp-element-button:hover, .wp-block-button__link:hover{ background:#e0675f; color:#FFF; text-decoration: none;}

.wp-block-image.is-style-rounded {position:relative;}
.wp-block-image.is-style-rounded img {position:relative; z-index:1;}
.wp-block-image.is-style-rounded::after {display:block; content:""; position:absolute; width:120%; height:120%; background:url(assets/img/bg-motif.png) no-repeat center center; background-size:contain; top:0; left:0; margin:-10%; z-index:0; animation: slow-rotate 10s linear infinite;}

@keyframes slow-rotate {
      from {
        transform: rotate(0deg);
      }
      to {
        transform: rotate(360deg);
      }
}

/* Scenic photo */
.scenic-img{margin:3rem 0 0;}
.scenic-img img{width:100%;display:block;}

/* Footer */
.site-footer{
  color:var(--clr-primary-dark);padding:2rem 0 1rem;text-align:center;
}
.site-footer::before {display:block; content:""; background:url(/wp-content/uploads/2025/07/florals-scaled.png) no-repeat center center; background-size:auto 100%; width:100vw; height:6vw; margin-bottom:2rem;}
.footer-contact{
  display:flex;flex-wrap:wrap;justify-content:space-around;gap:1rem;margin-bottom:1rem;
  font-size:1.25rem;
}
.footer-contact a{color:var(--clr-primary);}
.social-icons a{color:#fff;font-size:1.2rem;margin:0 .4rem;text-decoration:none; display:inline-block; transition: 0.2s all;}
.social-icons a:hover{color:var(--clr-coral); transform:scale(1.15);}
.assoc-logos img{height:42px;margin:0 .6rem;opacity:.9;transition:.2s;}
.assoc-logos img:hover{opacity:1;}
.copy{font-size:1rem;margin-top:1.2rem;color:#666;}

.wp-block-separator {border-top:0.5vw dotted var(--clr-coral); margin:2em auto; opacity:0.3;}

.icon-linkedin:before {
  content: "\e900"; color:var(--clr-coral);
}
.icon-instagram:before {
  content: "\e901"; color:var(--clr-coral);
}
.icon-facebook:before {
  content: "\e902"; color:var(--clr-coral);
}
.icon-facebook-f:before {
  content: "\e902"; color:var(--clr-coral);
}
.icon-bubbles2:before {
  content: "\e96d"; color:var(--clr-coral);
}

.ext-link.pt {display:inline-block; width:88px; text-indent:-5000em; background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='36' fill='none' viewBox='0 0 180 36'%3E%3Cg fill='%23f27d72' clip-path='url(%23a)'%3E%3Cpath d='M5.589 21.176h1.8c3.381 0 4.963-1.624 4.963-4.963V5.093c0-3.336-1.575-4.964-4.963-4.964H0v31.543h5.589zM6.803 5.178v10.95c0 .33-.136.45-.45.45h-.764V4.73h.764c.314 0 .45.136.45.45zM19.439 15.366h5.003V9.741c0-3.02-1.532-4.553-4.553-4.553h-2.022c-3.017 0-4.55 1.532-4.55 4.553v5.58c0 2.117.662 3.199 2.979 4.46l2.478 1.488c.45.272.585.45.585.9v5.003c0 .268-.089.361-.36.361h-.37c-.272 0-.361-.093-.361-.36v-5.725h-5.003v5.903c0 3.02 1.532 4.553 4.553 4.553h2.034c3.064 0 4.55-1.532 4.55-4.553v-5.767c0-2.161-.662-3.2-2.978-4.55l-2.478-1.396c-.45-.272-.586-.454-.586-.904V9.867c0-.268.09-.36.36-.36h.362c.27 0 .36.092.36.36v5.5zM44.574 16.809h5.135V9.735c0-3.021-1.532-4.553-4.55-4.553H42.77c-3.017 0-4.55 1.532-4.55 4.553V27.35c0 3.02 1.533 4.553 4.55 4.553h2.39c3.017 0 4.549-1.532 4.549-4.553v-7.435h-5.135v7.216c0 .225-.09.315-.361.315h-.33c-.272 0-.408-.09-.408-.315V9.96c0-.225.136-.361.407-.361h.331c.271 0 .36.136.36.36zM50.625 31.679h5.294V9.824q.288-.075.586-.09c.314 0 .496.133.496.494v21.45h5.271V8.654c0-2.21-1.036-3.471-3.064-3.471-1.26 0-2.3.542-3.289 1.307V0h-5.294zM69.154 9.596c.272 0 .361.135.361.36v17.176c0 .225-.09.315-.36.315h-.315c-.271 0-.407-.09-.407-.315V9.96c0-.225.136-.361.407-.361zM70.236 31.9c3.064 0 4.55-1.532 4.55-4.552V9.735c0-3.021-1.486-4.553-4.55-4.553h-2.524c-3.018 0-4.55 1.532-4.55 4.553V27.35c0 3.02 1.532 4.553 4.55 4.553zM75.719 31.679h5.274V0h-5.274zM87.905 9.596c.268 0 .361.135.361.36v17.176c0 .225-.093.315-.36.315h-.332c-.267 0-.403-.09-.403-.315V9.96c0-.225.135-.361.403-.361zM88.987 31.9c3.064 0 4.55-1.532 4.55-4.552V9.735c0-3.021-1.486-4.553-4.55-4.553h-2.524c-3.018 0-4.55 1.532-4.55 4.553V27.35c0 3.02 1.532 4.553 4.55 4.553zM106.081 5.407h-5.182v1.035a5.7 5.7 0 0 0-3.332-1.26c-2.028 0-3.11 1.26-3.11 3.47v17.845c0 2.207 1.082 3.468 3.11 3.468a5.3 5.3 0 0 0 3.332-1.26v3.106c0 .364-.178.496-.493.496h-.48c-.36 0-.496-.132-.496-.496v-1.304h-4.837v1.622c0 2.647 1.217 3.785 3.874 3.785h3.604c2.647 0 4.01-1.353 4.01-4.01zm-5.271 20.008q-.288.076-.586.09a.434.434 0 0 1-.496-.497v-14.78c0-.361.182-.493.496-.493q.298.01.586.089zM33.181 35.68c2.73 0 4.12-1.506 4.12-4.468V5.334h-5.414v18.658a2.5 2.5 0 0 1-.602.1c-.33 0-.51-.15-.51-.553V5.341h-5.413v19.853c0 2.458 1.109 3.864 3.193 3.864 1.248 0 2.36-.503 3.425-1.406v3.451c0 .4-.185.553-.51.553h-.51c-.37 0-.509-.152-.509-.553V29.65h-4.963v1.804c0 2.978 1.247 4.215 3.97 4.215zM114.816 35.68c2.73 0 4.12-1.506 4.12-4.468V5.334h-5.41v18.658q-.294.086-.599.1c-.331 0-.509-.15-.509-.553V5.341h-5.417v19.853c0 2.458 1.112 3.864 3.193 3.864 1.251 0 2.362-.503 3.425-1.406v3.451c0 .4-.186.553-.507.553h-.509c-.371 0-.51-.152-.51-.553V29.65h-4.963v1.804c0 2.978 1.251 4.215 3.971 4.215zM129.389 31.679V4.91h2.931V.136h-11.445V4.91h2.928V31.68z'/%3E%3Cpath d='M136.781 9.596c.268 0 .357.135.357.36v17.176c0 .225-.089.331-.357.331h-.331c-.268 0-.404-.092-.404-.33V9.96c0-.225.136-.361.404-.361zm1.078 22.304c3.067 0 4.553-1.532 4.553-4.552V9.735c0-3.021-1.486-4.553-4.553-4.553h-2.528c-3.021 0-4.553 1.532-4.553 4.553V27.35c0 3.02 1.532 4.553 4.553 4.553zM154.956 0h-5.271v6.442c-1.036-.764-2.071-1.26-3.246-1.26-2.025 0-3.107 1.26-3.107 3.47v19.78c0 2.208 1.082 3.472 3.107 3.472 1.264 0 2.346-.543 3.335-1.354v1.129h5.182zm-5.271 27.218c-.183.086-.383.131-.586.133a.45.45 0 0 1-.496-.493v-16.63c0-.361.182-.493.496-.493q.298.01.586.089zM155.875 28.747c0 2.121.857 3.157 2.839 3.157 1.443 0 2.343-.543 3.289-1.443v1.218h5.139V9.553c0-2.886-1.443-4.371-4.371-4.371h-2.343c-2.928 0-4.371 1.485-4.371 4.37v5.86h4.864V9.825c0-.271.093-.36.331-.36h.331c.271 0 .36.089.36.36v5.813l-3.335 1.172c-2.118.764-2.703 1.621-2.703 3.692v8.246zm5.453-1.171c-.331 0-.539-.133-.539-.45v-6.171a.92.92 0 0 1 .585-.993l.54-.225v7.75a2.6 2.6 0 0 1-.586.089M175.88 35.68c2.73 0 4.12-1.506 4.12-4.468V5.334h-5.413v18.658q-.296.086-.603.1c-.331 0-.509-.15-.509-.553V5.341h-5.413v19.853c0 2.458 1.108 3.864 3.193 3.864 1.247 0 2.359-.503 3.424-1.406v3.451c0 .4-.185.553-.509.553h-.51c-.371 0-.51-.152-.51-.553V29.65h-4.963v1.804c0 2.978 1.248 4.215 3.971 4.215z'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='a'%3E%3Cpath fill='%23fff' d='M0 0h180v35.914H0z'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E") no-repeat center center; background-size:100%;}
.ext-link.alma {display: inline-block;width: 45px;position: relative;top: 1px;}
.ext-link.alma svg {display:block; width:100%; height:auto;}
.ext-link:hover {transform: scale(1.03);}


/* ==== Scroll reveal ==== */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition:
    opacity .6s ease,
    transform .6s cubic-bezier(.17,.67,.45,1);
  will-change: opacity, transform;
  /* allow per-element delay via CSS var */
  transition-delay: var(--reveal-delay, 0s);
}
.reveal.in-view {
  opacity: 1;
  transform: translateY(0);
}

/* Optional: reduced motion respect */
@media (prefers-reduced-motion: reduce) {
  .reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* Forms */
.gform_fields {width: 90% !important;
    max-width: 760px !important;
    margin: 0 auto !important;}
.gform_heading {display:none !important;}
.gfield_label {font-size:130% !important; margin-left:25px !important;}
.gform-field-label--type-sub, .gfield_description {font-size:90% !important; margin-left:25px !important;}
.gfield_required_asterisk {font-size:230% !important;}
.gfield textarea, .gfield input[type="text"], .gfield input[type="email"] {
	border: 0;
    border-radius: 50px !important;
    font-size: 80% !important;
    color: var(--clr-primary) !important;
    padding: 16px !important;
    line-height: 1.4 !important;
    height: auto !important;
}
.gform_footer {text-align: center !important;}
.gform_footer input[type="submit"]{font-size:130% !important; background:var(--clr-coral) !important; margin:0 auto !important; padding:20px 40px !important; border-radius:50px !important;}
.gform_footer input[type="submit"]:hover {transform: scale(1.15);}

/* Responsive */
@media(max-width:680px){
  body {font-size:110%;}
  .offcanvas, .overlay {top:17vw;}
  .offcanvas a {font-size:6vw;}
  .offcanvas .sub-menu a {font-size:4.5vw; padding:3vw 0;}
  #main {padding-top:10vw !important;}
  #main h1 {font-size:230%;}
  .hero-video {height:53vw; margin-top:17.5vw;}
  .hero-tagline{font-size:2rem; max-width:99%; left:1%; transform:none;}
  .callouts{flex-direction:column;align-items:center;}
  .site-logo {flex:3;}
  .site-logo img {height:auto; width:92%;}
  .contact-info {display:none;}
  .wp-block-image.is-style-rounded {width:60%;}
  p.has-large-font-size, p.has-medium-font-size {font-size:100% !important;}
  .wp-block-spacer {height:25px !important;}
  .wp-block-buttons>.wp-block-button.wp-block-button__width-50 {width:calc(100% - var(--wp--style--block-gap, .5em)*.5);}
}

@media screen and (min-width:980px){
	.breakout {width:100% !important; max-width:100%;}
}