
/* Fixed top navigation (prevents overlap and keeps nav accessible on mobile) */
#mainNav{
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 50;
  background: transparent;
  transition: background .25s ease, backdrop-filter .25s ease, border-color .25s ease;
}

/* Solid nav background after scroll (desktop/laptop/tablet) */
#mainNav.nav--solid{
  background: rgba(0,0,0,.55);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(255,255,255,.12);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --dark:#1C2A33;
  --dark-card:rgba(28,42,51,0.93);
  --dark-card2:rgba(22,34,42,0.90);
  --cream:#F2EAD8;
  --cream-body:#E0D8C8;
  --cream-muted:#D9CEBC;
  --grey-mid:#9A9890;
  --terracotta:#B86830;
  --terracotta-lt:#CC7D45;
  --brass:#9A7B4F;
  --brass-light:#B8976A;
  --neutral:#A39E94;
  --affirm-bg:rgba(55,32,12,0.85);
  --black:'Archivo Black',sans-serif;
  --outfit:'Outfit',sans-serif;
  --cormorant:'Cormorant Garamond',Georgia,serif;
}
html{scroll-behavior:smooth}
body{padding-top:4.25rem;
font-family:var(--outfit);font-weight:300;color:var(--cream-body);background:#111c21;overflow-x:hidden}

.grain::after{
  content:'';position:absolute;inset:0;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");
  pointer-events:none;z-index:1;
}

.site-bg{
  position:fixed;inset:0;background-size:cover;
  background-position:center 52%;
  filter:brightness(0.54) saturate(0.88);z-index:0;
}

nav{
  position:fixed;top:0;left:0;right:0;z-index:200;
  display:flex;justify-content:flex-end;align-items:center;
  padding:1.6rem 5rem 1.6rem 3rem;gap:3rem;
  background:transparent;transition:background 0.4s ease;
}
nav.scrolled{background:rgba(28,42,51,0.97)}
nav a{
  font-family:var(--outfit);font-size:0.78rem;font-weight:500;
  letter-spacing:0.22em;text-transform:uppercase;
  color:var(--cream-muted);text-decoration:none;transition:color 0.3s;
}
nav a:hover{color:var(--brass-light)}

.side-tab{position:fixed;right:0.6rem;top:50%;z-index:200;transform:translateY(-50%)}
.side-tab a{
  display:flex;align-items:center;justify-content:center;
  background:var(--terracotta);color:var(--cream);
  font-family:var(--outfit);font-size:0.75rem;font-weight:600;
  letter-spacing:0.22em;text-transform:uppercase;text-decoration:none;
  padding:1.8rem 0.9rem;writing-mode:vertical-rl;
  text-orientation:mixed;transform:rotate(180deg);
  transition:background 0.3s;min-height:150px;
}
.side-tab a:hover{background:var(--terracotta-lt)}

#hero{
  position:relative;z-index:1;
  min-height:100vh;display:flex;align-items:center;
  padding:6rem 5rem 4rem 4rem;
  gap:5rem;
}
.hero-photo{
  flex-shrink:0;width:clamp(260px,30vw,440px);
  display:flex;align-items:center;
}
.hero-photo img{width:100%;display:block}
.hero-text{
  flex:1;display:flex;flex-direction:column;justify-content:center;
  padding:0;
}
.hero-name{
  font-family:var(--outfit);font-size:clamp(1.4rem,2.4vw,2rem);
  font-weight:600;letter-spacing:0.03em;color:var(--cream);margin-bottom:0.4rem;
}
/* Pill only wraps the text — inline-block */
.hero-credential{
  display:inline-block;
  font-family:var(--outfit);font-size:clamp(0.72rem,1vw,0.82rem);font-weight:500;
  letter-spacing:0.18em;text-transform:uppercase;
  color:var(--terracotta);
  background:rgba(14,22,28,0.7);
  padding:0.3rem 0.6rem;
  margin-bottom:2.5rem;
  border-radius:2px;
  width:fit-content;
  max-width:fit-content;
}
.hero-headline{
  font-family:var(--black);
  font-size:clamp(1.9rem,3.6vw,3.2rem);
  line-height:1.1;color:var(--cream);margin-bottom:1.6rem;
}
.hero-rule{width:2.5rem;height:2px;background:var(--terracotta);opacity:0.8;margin-bottom:1.6rem}
.hero-sub{
  font-family:var(--outfit);font-size:clamp(0.9rem,1.3vw,1.05rem);font-weight:300;
  color:var(--cream);letter-spacing:0.02em;
}

.section-label{
  font-family:var(--outfit);font-size:0.78rem;font-weight:500;
  letter-spacing:0.28em;text-transform:uppercase;
  color:var(--brass-light);margin-bottom:1rem;
}
.section-headline{
  font-family:var(--black);font-size:clamp(1.6rem,2.8vw,2.4rem);
  line-height:1.1;color:var(--cream);margin-bottom:1.8rem;
}
.gold-rule{width:2rem;height:2px;background:var(--brass);opacity:0.5;margin-bottom:2rem}
.body-text{
  font-family:var(--outfit);font-size:0.93rem;font-weight:300;
  line-height:1.9;color:var(--cream-body);margin-bottom:1.4rem;
  text-wrap:pretty;
  hyphens:auto;
}
.body-text:last-child{margin-bottom:0}

.approach-card{
  background:var(--dark-card);padding:5rem;
  position:relative;z-index:1;margin-top:2rem;overflow:hidden;
}
.approach-cols{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start}

.focus-section{padding:6rem 5rem;position:relative;z-index:1}
.taboo-list{
  font-family:var(--outfit);font-size:clamp(0.95rem,1.7vw,1.2rem);
  font-weight:300;line-height:2.4;color:var(--cream);margin-bottom:3.5rem;
}
.taboo-list strong{font-weight:600}
.focus-boxes{display:grid;grid-template-columns:5fr 4fr;gap:2rem}
.focus-box-primary{
  background:var(--dark-card);padding:3rem;position:relative;overflow:hidden;
}
.focus-box-primary .section-headline{font-size:clamp(1.3rem,2.2vw,1.9rem);margin-bottom:1.2rem}
.focus-box-affirming{
  background:var(--affirm-bg);padding:3rem 2.5rem;
  display:flex;align-items:center;justify-content:center;
  border:1px solid rgba(184,104,48,0.3);
  position:relative;overflow:hidden;
}
.affirming-text{
  font-family:var(--cormorant);
  font-size:clamp(1.4rem,2.2vw,1.9rem);
  font-style:italic;font-weight:400;
  color:var(--cream-muted);line-height:1.7;
  text-align:center;position:relative;z-index:2;
}

.about-section{padding:6rem 5rem;position:relative;z-index:1}
.about-section::before{
  content:'';position:absolute;top:0;right:0;bottom:0;width:62%;
  background:linear-gradient(to right,transparent 0%,rgba(14,22,28,0.45) 20%,rgba(14,22,28,0.45) 100%);
  pointer-events:none;z-index:0;
}
.about-grid{position:relative;z-index:1}
.about-grid{display:grid;grid-template-columns:auto 1fr;gap:5rem;align-items:start}
.about-photo{width:clamp(200px,22vw,320px);flex-shrink:0}
.about-photo img{width:100%;display:block}

/* About copy layout: use an explicit 2-col grid for consistent top alignment (no column balancing quirks). */
.about-copy{display:grid;grid-template-columns:1fr 1fr;gap:3rem;}
.about-copy .about-col{min-width:0;}
.about-copy p{margin-top:0;}
@media (max-width: 900px){
  .about-copy{grid-template-columns:1fr;gap:0;}
  .about-copy .about-col + .about-col{margin-top:1.4rem;}
}
@media (min-width: 1200px){
  /* Keep reading width elegant on big monitors */
  .about-grid{grid-template-columns:auto minmax(0, 880px);justify-content:center;}
}


.sessions-card{background:var(--dark-card2);position:relative;z-index:1;overflow:hidden}
.sessions-top{
  padding:5rem 5rem 4rem;
  display:grid;grid-template-columns:1fr 1fr;gap:4rem;
  border-bottom:1px solid rgba(184,151,106,0.12);
  position:relative;z-index:2;
}
.sessions-info{font-family:var(--outfit);font-size:0.95rem;font-weight:300;color:var(--cream-body)}
.sessions-info-line{padding:0.8rem 0;border-bottom:1px solid rgba(184,151,106,0.35)}
.sessions-info-line:first-child{border-top:1px solid rgba(184,151,106,0.35)}
.sessions-right{display:flex;flex-direction:column;justify-content:center;position:relative;z-index:2}
.sessions-bottom{
  padding:2.5rem 5rem;
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:2rem;position:relative;z-index:2;
}
.sessions-contact a{
  display:block;font-family:var(--outfit);font-size:0.95rem;font-weight:300;
  text-decoration:none;transition:color 0.3s;margin-bottom:0.4rem;
}
.sessions-contact a.email{color:var(--brass-light)}
.sessions-contact a.email:hover{color:var(--cream)}
.sessions-contact a.phone{color:var(--grey-mid)}
.sessions-contact a.phone:hover{color:var(--cream-muted)}
.sessions-cta{
  font-family:var(--outfit);font-size:0.72rem;font-weight:600;
  letter-spacing:0.2em;text-transform:uppercase;
  color:var(--cream);background:var(--terracotta);
  padding:1rem 2.4rem;text-decoration:none;transition:background 0.3s;white-space:nowrap;
}
.sessions-cta:hover{background:var(--terracotta-lt)}

.mobile-bar{
  display:none;position:fixed;left:0;right:0;bottom:0;z-index:200;
  background:var(--terracotta);
  padding:1rem 2rem;
  padding-bottom:calc(1rem + env(safe-area-inset-bottom));
  text-align:center;
  transform:translateY(0);
  will-change:transform;
}
.mobile-bar a{
  font-family:var(--outfit);font-size:0.75rem;font-weight:600;
  letter-spacing:0.2em;text-transform:uppercase;color:var(--cream);text-decoration:none;
}

footer{
  position:relative;z-index:1;padding:2rem 5rem;
  background:rgba(10,16,20,0.97);
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:1rem;border-top:1px solid rgba(184,151,106,0.1);
}
.footer-legal{font-family:var(--outfit);font-size:0.7rem;font-weight:300;color:var(--neutral);line-height:1.9}
.footer-links{display:flex;gap:2rem;flex-wrap:wrap}
.footer-links a{
  font-family:var(--outfit);font-size:0.68rem;font-weight:400;
  letter-spacing:0.12em;text-transform:uppercase;
  color:var(--neutral);text-decoration:none;transition:color 0.3s;
}
.footer-links a:hover{color:var(--brass-light)}

.reveal{opacity:0;transform:translateY(20px);transition:opacity 0.85s ease,transform 0.85s ease}
.reveal.visible{opacity:1;transform:none}

@media(max-width:768px){
  .is-ios .mobile-bar{display:none !important;}
  .is-ios .ios-cta{display:block;}

  /* iOS Safari: disable fixed bottom CTA (can appear to float); use nav CTA instead. */
  body{padding-bottom:calc(4.25rem + env(safe-area-inset-bottom));}

  nav{padding:1.2rem 1.5rem;gap:1.8rem;background:rgba(28,42,51,0.96)}
  .side-tab{display:none}
  .mobile-bar{display:block}
  #hero{flex-direction:column;padding:5rem 1.5rem 0;gap:0;align-items:flex-start;min-height:auto}
  .hero-photo{width:80%;max-width:300px;padding-top:0;align-items:flex-start}
  .hero-text{padding:2rem 0 4rem;justify-content:flex-start}
  .approach-card{padding:3rem 1.5rem;margin-top:0}
  .approach-cols{grid-template-columns:1fr;gap:0}
  .approach-cols > div:first-child .body-text:last-child{margin-bottom:0}
  .approach-cols > div:last-child .body-text:first-child{margin-top:1.4rem}
  .focus-section{padding:3.5rem 1.5rem}
  .focus-boxes{grid-template-columns:1fr;gap:0}
  .focus-box-primary{padding:2.5rem 1.5rem}
  .focus-box-affirming{
    margin-top:2.5rem;padding:2.5rem 1.5rem;
    border:1px solid rgba(184,104,48,0.3);
  }
  .affirming-text{font-size:1.35rem}
  .about-section{padding:3.5rem 1.5rem}
  .about-grid{grid-template-columns:1fr;gap:2rem}
  .about-photo{width:70%;max-width:260px}
  .sessions-card .sessions-top{grid-template-columns:1fr;padding:3rem 1.5rem 2rem;gap:2rem}
  .sessions-bottom{padding:2rem 1.5rem;flex-direction:column;align-items:flex-start;padding-bottom:5rem}
  footer{padding:1.5rem;flex-direction:column;align-items:flex-start;gap:1.5rem;padding-bottom:5rem}
  .footer-links{gap:1.2rem}
}


/* About copy columns for wide screens */
@media (min-width: 1100px){
  .about-grid{align-items:start;}
}

@media (min-width: 1200px){
  .about-grid{max-width:1200px;margin-left:auto;margin-right:auto;}
}




/* iOS mobile: use in-content CTA instead of fixed bottom bar (avoids Safari floating). */
.ios-cta{display:none}

@media(max-width:768px){
  .ios-cta{
    position: sticky;
    top: 0;
    z-index: 15;
    padding: .85rem 1rem;
    backdrop-filter: blur(8px);
  }
  .ios-cta__button{
    display:flex;
    justify-content:center;
    align-items:center;
    width:100%;
    padding: .95rem 1rem;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,.25);
    font-weight: 500;
    letter-spacing: .02em;
    line-height: 1;
    text-decoration:none;
    white-space:nowrap;
  }
  .ios-cta__button:hover{border-color: rgba(255,255,255,.45);}
}
