:root{
  /* Backgrounds (wave-aligned) */
  --bg-1:#fcf6f3;   /* linen */
  --bg-2:#f3ebe1;   /* sand */
  --bg-3:#eef2f1;   /* mist */

  /* Surfaces */
  --card-bg:#ffffff;
  --card-soft-bg:#faf7f2;

  /* Text (warm cabin) */
  --text-strong:#4d1f06;  /* espresso */
  --text-body:#374151;    /* slate */
  --text-muted:#885b43;   /* warm muted */

  /* Accents / borders */
  --accent-border:#dfd6cc;
  --accent-taupe:#d8cfc5;
  --accent-highlight-1:#f4ede3; /* warm cream */
  --accent-highlight-2:#e9f1ef; /* calm mist */

  /* Shadow + radius */
  --shadow-soft:0 20px 50px rgba(15, 23, 42, .16);
  --radius-lg:24px;
  --radius-md:18px;
  --radius-sm:12px;
  --radius-pill:999px;

  /* Layout */
  --wrap:1120px;
  --header-h:76px;

  --parallax-overlay:rgba(214, 233, 242, .02); /* tweak 0.55�0.85 */
  --parallax-overlay-text:rgb(64, 90, 105);
}

*{box-sizing:border-box}
html,body{height:100%}

body{
  margin:0;
  font-family:Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text-body);
  /* background:linear-gradient(180deg, var(--bg-1), var(--bg-2) 60%, var(--bg-3)); */
  background: transparent;
  line-height:1.55;
}

.shadowblur{
  box-shadow:0 0 10px #000;
  -moz-box-shadow:0 0 10px #000;
  -webkit-box-shadow:0 0 10px #000;
}

.photoshot{
  background:#fff;
  border:1px solid #000;
  padding:10px;
  max-width:98%;
  margin:auto;
  box-shadow:0 0 10px #000;
  -moz-box-shadow:0 0 10px #000;
  -webkit-box-shadow:0 0 10px #000;
}

img{max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}

.sr-only{
  position:absolute;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

.skip-link{
  position:absolute;
  left:-999px;
  top:10px;
  background:var(--card-bg);
  color:var(--text-strong);
  padding:10px 14px;
  border-radius:var(--radius-pill);
  box-shadow:var(--shadow-soft);
  z-index:9999;
}

.skip-link:focus{left:12px}

/* Header */
.site-header{
  position:sticky;
  top:0;
  z-index:1000;
  background:rgba(252, 246, 243, .86);
  backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid rgba(223, 214, 204, .7);
}

.header-inner{
  min-height:var(--header-h);
  display:flex;
  align-items:center;
  gap:16px;
}

.brand{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:700;
  color:var(--text-strong);
  text-decoration:none;
}

.brand:hover{text-decoration:none}

.brand-mark{
  width:34px;height:34px;
  border-radius:12px;
  background:linear-gradient(135deg, var(--accent-highlight-2), var(--accent-highlight-1));
  border:1px solid rgba(223, 214, 204, .9);
  box-shadow:0 10px 22px rgba(15, 23, 42, .12);
}

.brand-text{letter-spacing:.2px}

.site-nav{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:10px;
}

.nav-link{
  padding:10px 12px;
  border-radius:var(--radius-pill);
  color:var(--text-body);
}

.nav-link:hover{
  text-decoration:none;
  background:rgba(233, 241, 239, .7);
}

.nav-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:14px 28px;
  min-height:48px;
  font-size:16px;
  font-weight:600;
  letter-spacing:.3px;
  color:#fff;
  background-color:#4d1f06; /* espresso */
  border:none;
  border-radius:var(--radius-pill);
  box-shadow:0 10px 25px rgba(77, 31, 6, .25);
  text-decoration:none;
  white-space:nowrap;
  transition:transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.nav-cta:hover{
  text-decoration:none;
  transform:translateY(-1px);
  box-shadow:0 14px 30px rgba(77, 31, 6, .35);
  color:#4d1f06 !important;
  background-color:#fff !important;
}

.nav-cta:active{
  transform:translateY(0);
  box-shadow:0 8px 18px rgba(77, 31, 6, .25);
}

.nav-toggle{
  margin-left:auto;
  display:none;
  width:44px;height:44px;
  border-radius:14px;
  border:1px solid rgba(223, 214, 204, .9);
  background:rgba(255, 255, 255, .66);
  box-shadow:0 12px 24px rgba(15, 23, 42, .10);
  cursor:pointer;
}

.nav-toggle-bars{
  display:block;
  margin:0 auto;
  width:18px;
  height:2px;
  background:var(--text-strong);
  position:relative;
  border-radius:2px;
}

.nav-toggle-bars::before,
.nav-toggle-bars::after{
  content:"";
  position:absolute;
  left:0;right:0;
  height:2px;
  background:var(--text-strong);
  border-radius:2px;
}

.nav-toggle-bars::before{top:-6px}
.nav-toggle-bars::after{top:6px}

/* Hero */
.hero{
  padding:clamp(36px, 4vw, 64px) 0 36px;
  scroll-margin-top:calc(var(--header-h) + 16px);
}

.hero-grid{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:clamp(18px, 3vw, 38px);
  align-items:start;
}

.eyebrow{
  margin:0 0 8px;
  font-weight:600;
  color:var(--text-strong);
}

.hero-title{
  margin:0 0 10px;
  font-size:clamp(32px, 3.8vw, 54px);
  line-height:1.05;
  color:var(--text-strong);
  letter-spacing:-.02em;
}

.hero-lead{
  margin:0 0 18px;
  font-size:clamp(16px, 1.3vw, 18px);
  color:var(--text-body);
  max-width:58ch;
}

.hero-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin:14px 0 18px;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:12px 16px;
  border-radius:var(--radius-pill);
  border:1px solid rgba(223, 214, 204, .9);
  background:rgba(255, 255, 255, .7);
  box-shadow:0 12px 28px rgba(15, 23, 42, .10);
  font-weight:600;
  text-decoration:none;
  cursor:pointer;
}

.btn:hover{text-decoration:none;filter:brightness(1.02)}

.btn-primary{
  background:var(--text-strong);
  color:#fff;
  border-color:rgba(0,0,0,.08);
}

.btn-ghost{
  background:rgba(255, 255, 255, .62);
  color:var(--text-strong);
}

.mini-proof{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:8px;
  color:var(--text-muted);
  font-size:14px;
}

.mini{display:flex;align-items:center;gap:10px}

.mini-dot{
  width:10px;height:10px;
  border-radius:999px;
  background:linear-gradient(135deg, var(--accent-highlight-2), var(--accent-highlight-1));
  border:1px solid rgba(223, 214, 204, .9);
}

.hero-card{position:relative}

.glass{
  background:rgba(255, 255, 255, .74);
  border:1px solid rgba(223, 214, 204, .92);
  border-radius:var(--radius-lg);
  padding:22px;
  box-shadow:var(--shadow-soft);
}

.card-title{margin:0 0 8px;color:var(--text-strong)}
.card-text{margin:0 0 14px}
.card-row{display:flex;gap:10px;flex-wrap:wrap}

.pill{
  padding:8px 12px;
  border-radius:var(--radius-pill);
  background:linear-gradient(135deg, var(--accent-highlight-1), rgba(255, 255, 255, .7));
  border:1px solid rgba(223, 214, 204, .9);
  font-weight:600;
  color:var(--text-strong);
  font-size:13px;
}

/* Waves */
.wave{
  width:100%;
  height:120px;
  overflow:hidden;
  line-height:0;
}

.wave svg{width:100%;height:120px;display:block}
.wave-top{background:transparent}
.wave-top path{fill:var(--accent-highlight-2)}
.wave-bottom{background:transparent}
.wave-bottom path{fill:var(--accent-highlight-2)}

/* Services band */
.band{
  background:var(--accent-highlight-2);
  padding:28px 0 54px;
  scroll-margin-top:calc(var(--header-h) + 16px);
}

.script-title{
  margin:10px 0 26px;
  text-align:center;
  font-family:Allura, cursive;
  font-size:clamp(40px, 5vw, 64px);
  font-weight:400;
  letter-spacing:.5px;
  color:rgba(49, 185, 215, .92);
  text-shadow:0 18px 40px rgba(15, 23, 42, .22);
}

.cards{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:18px;
}

.service-card{
  position:relative;
  background:var(--card-bg);
  border:1px solid rgba(223, 214, 204, .92);
  border-radius:var(--radius-lg);
  padding:22px 20px 20px;
  box-shadow:0 18px 44px rgba(15, 23, 42, .12);
}

.service-card h3{
  margin:14px 0 8px;
  color:var(--text-strong);
  letter-spacing:-.01em;
}

.service-card p{margin:0 0 12px;color:var(--text-body)}

.badge{
  position:absolute;
  top:-22px;
  left:20px;
  width:52px;height:52px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(216, 207, 197, .92);
  color:#000;
  font-weight:800;
  border:4px solid rgba(255, 255, 255, .96);
  box-shadow:0 14px 28px rgba(15, 23, 42, .14);
  font-size:20px;
}

.bullets{
  margin:0;
  padding-left:18px;
  color:var(--text-muted);
}

.bullets li{margin:6px 0}

.band-cta{
  display:flex;
  gap:12px;
  justify-content:center;
  flex-wrap:wrap;
  margin-top:22px;
}

/* Sections */
.section{
  padding:clamp(44px, 5vw, 74px) 0;
  scroll-margin-top:calc(var(--header-h) + 16px);
}

.section.alt{
  background:linear-gradient(180deg, var(--bg-2), var(--bg-1));
  border-top:1px solid rgba(223, 214, 204, .6);
  border-bottom:1px solid rgba(223, 214, 204, .6);
}

.split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(18px, 3vw, 32px);
  align-items:start;
}

h2{
  margin:0 0 10px;
  color:var(--text-strong);
  font-size:clamp(26px, 2.4vw, 36px);
  letter-spacing:-.02em;
}

.lead{margin:0 0 14px;font-size:18px;color:var(--text-body);max-width:62ch}
.muted{color:var(--text-muted)}

.panel{
  background:rgba(255, 255, 255, .78);
  border:1px solid rgba(223, 214, 204, .92);
  border-radius:var(--radius-lg);
  padding:22px;
  box-shadow:0 18px 44px rgba(15, 23, 42, .10);
}

.checklist{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.check{display:flex;gap:10px;align-items:flex-start;color:var(--text-body)}

.check-icon{
  width:22px;height:22px;
  border-radius:999px;
  background:linear-gradient(135deg, var(--accent-highlight-2), var(--accent-highlight-1));
  border:1px solid rgba(223, 214, 204, .9);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--text-strong);
  font-weight:900;
  flex:0 0 auto;
}

.steps{margin:10px 0 0;padding-left:18px;color:var(--text-body)}
.steps li{margin:10px 0}

/* About stats */
.stat-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:14px}

.stat{
  flex:1 1 140px;
  background:rgba(255, 255, 255, .7);
  border:1px solid rgba(223, 214, 204, .92);
  border-radius:var(--radius-md);
  padding:14px;
  box-shadow:0 12px 28px rgba(15, 23, 42, .08);
}

.stat-num{font-size:28px;font-weight:800;color:var(--text-strong);line-height:1}
.stat-label{margin-top:4px;color:var(--text-muted);font-weight:600}

/* Contact */
.contact{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(18px, 3vw, 32px);
  align-items:start;
}

.contact-cards{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}

.contact-card{
  flex:1 1 210px;
  background:rgba(255, 255, 255, .78);
  border:1px solid rgba(223, 214, 204, .92);
  border-radius:var(--radius-md);
  padding:14px;
  box-shadow:0 12px 28px rgba(15, 23, 42, .08);
}

.contact-kicker{
  color:var(--text-muted);
  font-weight:700;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.12em;
  margin-bottom:6px;
}

.form{
  background:rgba(255, 255, 255, .78);
  border:1px solid rgba(223, 214, 204, .92);
  border-radius:var(--radius-lg);
  padding:22px;
  box-shadow:var(--shadow-soft);
}

label{display:block;margin:0 0 12px}
label span{display:block;font-weight:700;color:var(--text-strong);margin:0 0 6px;font-size:13px}

input,textarea{
  width:100%;
  padding:12px;
  border-radius:var(--radius-sm);
  border:1px solid rgba(223, 214, 204, .92);
  background:rgba(250, 247, 242, .9);
  font:inherit;
  outline:none;
}

input:focus,textarea:focus{
  border-color:rgba(77, 31, 6, .55);
  box-shadow:0 0 0 4px rgba(233, 241, 239, .8);
}

.fineprint{margin:10px 0 0;color:var(--text-muted);font-size:12px}

/* Footer */
.site-footer{
  border-top:1px solid rgba(223, 214, 204, .7);
  background:rgba(252, 246, 243, .9);
}

.footer-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:20px 0;
  gap:12px;
  flex-wrap:wrap;
}

.footer-brand{font-weight:800;color:var(--text-strong)}
.footer-muted{color:var(--text-muted);font-size:13px}

.footer-right{
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--text-body);
}

.dot{opacity:.5}

/* Responsive */
@media (max-width:980px){
  .hero-grid{grid-template-columns:1fr}
  .cards{grid-template-columns:1fr}
  .split{grid-template-columns:1fr}
  .contact{grid-template-columns:1fr}
  .badge{left:16px}
}

@media (max-width:820px){
  .nav-toggle{display:inline-flex;align-items:center;justify-content:center}

  .site-nav{
    position:fixed;
    top:calc(var(--header-h) + 8px);
    left:12px;
    right:12px;
    background:rgba(255, 255, 255, .9);
    border:1px solid rgba(223, 214, 204, .92);
    border-radius:var(--radius-lg);
    padding:12px;
    box-shadow:var(--shadow-soft);
    flex-direction:column;
    align-items:stretch;
    gap:6px;
    transform:translateY(-8px);
    opacity:0;
    pointer-events:none;
    transition:opacity .18s ease, transform .18s ease;
  }

  .site-nav.is-open{
    opacity:1;
    transform:translateY(0);
    pointer-events:auto;
  }

  .nav-link,.nav-cta{padding:12px 14px}
  .nav-cta{margin-left:0;text-align:center}
}

@media (prefers-reduced-motion:reduce){
  html:focus-within{scroll-behavior:auto}
  .site-nav{transition:none}
}

/* Parallax band */
.parallax-band{
  position:relative;
  min-height:160px;
  background-image:url("/assets/img/background/top-index-background-30.png");
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  background-attachment:fixed;
}

/* The light-blue tint overlay */
.parallax-band::before{
  content:"";
  position:absolute;
  inset:0;
  background:var(--parallax-overlay);
}

/* Optional: soften top/bottom edges a bit */
.parallax-band::after{
  content:"";
  position:absolute;
  inset:0;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25), inset 0 -1px 0 rgba(0,0,0,.96);
  pointer-events:none;
}

/* Parallax band (overlays) */
.parallax-band-overlays{
  position:relative;
  min-height:480px;
  background-image:url("/assets/parallax/ambient lighting image 5.jpg");
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  background-attachment:fixed;
}

/* The light-blue tint overlay */
.parallax-band-overlays::before{
  content:"";
  position:absolute;
  inset:0;
  background:var(--parallax-overlay);
}

/* Parallax band (consult) */
.parallax-band-consult{
  position:relative;
  min-height:480px;
  background-image:url("/assets/parallax/ambient lighting image 5.jpg");
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  background-attachment:fixed;
}

/* The light-blue tint overlay */
.parallax-band-consult::before{
  content:"";
  position:absolute;
  inset:0;
  background:var(--parallax-overlay);
}

.parallax-band-two{
  min-height:480px;
  background-image:
    linear-gradient(rgba(214,232,244,.65), rgba(214,232,244,.65)),
    url("/assets/parallax/f21d69c0-45ff-4372-a51d-dd8c2e96a1a7.png");
  background-size:cover;
  background-position:center;
  background-attachment:fixed;
}

.parallax-band-sessions{
  min-height:480px;
  background-image:
    linear-gradient(rgba(214,232,244,.65), rgba(214,232,244,.65)),
    url("/assets/parallax/f21d69c0-45ff-4372-a51d-dd8c2e96a1a7.png");
  background-size:cover;
  background-position:center;
  background-attachment:fixed;
  background-repeat:no-repeat;
}

/* Mobile/tablet: fixed backgrounds can be janky � switch to scroll */
@media (max-width:962px){
  .parallax-band{
    background-attachment:scroll;
    min-height:120px;
  }
}

/* Back-to-top must sit ABOVE any footer links / overlays */
#backToTop.back-to-top{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:2147483647;
  pointer-events:none; /* not clickable until visible */
}

#backToTop.back-to-top.is-visible{
  pointer-events:auto; /* clickable when shown */
}
/* Back-to-top button � older look + latest click/stack behavior */
#backToTop.back-to-top{
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 2147483647;
  width: 46px;
  height: 46px;
  border-radius: 999px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  background: #A8E6E6;
  border: 1px solid rgba(223,214,204,0.9);
  color: #004F4F;

  box-shadow: 0 18px 40px rgba(15,23,42,0.18);
  cursor: pointer;

  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s ease;

  pointer-events: none; /* not clickable until visible */
}

#backToTop.back-to-top.is-visible{
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto; /* clickable when shown */
}

#backToTop.back-to-top:hover{
  transform: translateY(-2px);
  color: #A8E6E6 !important;
	background: #004F4F;
}

#backToTop.back-to-top i{
  font-size: 20px;
  line-height: 1;
}

.wave.wave-top1 path{
  fill:var(--accent-highlight-2);
}
.wave.wave-bottom2 path{
  fill:#eef2f1;
}