
:root{--pink:#f72575;--pink2:#ff4c96;--ink:#050505;--panel:#0b0b0b;--muted:#b7b7b7;--line:#2c2c2c}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#050505;color:#fff;font-family:Arial,Helvetica,sans-serif}a{text-decoration:none;color:inherit}img{display:block;max-width:100%}.container{width:min(1180px,92vw);margin:auto}.topbar{height:30px;background:linear-gradient(90deg,#e81767,#ff3f87);font-size:12px}.topbar .container{height:100%;display:flex;align-items:center;justify-content:flex-end;gap:20px}.nav{position:sticky;top:0;z-index:40;background:#070707f5;border-bottom:1px solid #222}.navin{height:82px;display:flex;align-items:center;gap:28px}.logo{width:150px;margin-top:16px}.links{margin-left:auto;display:flex;gap:28px;align-items:center;font-weight:800;font-size:14px;letter-spacing:.03em}.links a.active,.links a:hover{color:var(--pink)}.btn{display:inline-block;border:1px solid var(--pink);padding:15px 22px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.btn.fill{background:var(--pink)}.hero{position:relative;min-height:650px;border-bottom:2px solid var(--pink);overflow:hidden;background:#050505}.hero .bg{position:absolute;inset:0;background:linear-gradient(90deg,#050505 0 37%,rgba(5,5,5,.18) 58%,rgba(5,5,5,.36)),url('assets/kamryn-3.jpg') center 32%/cover no-repeat}.hero:after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 79% 45%,rgba(247,37,117,.22),transparent 22%),linear-gradient(110deg,transparent 64%,rgba(247,37,117,.12));mix-blend-mode:screen;pointer-events:none}.heroContent{position:relative;z-index:2;padding:95px 0 70px;max-width:520px}.hero h1{font-size:76px;line-height:.91;margin:0;font-weight:1000;letter-spacing:-.045em}.brush{display:block;color:var(--pink);font-size:72px;font-style:italic;transform:skew(-8deg);margin-top:8px}.sub{font-size:24px;margin:18px 0 24px}.sub b{color:var(--pink)}.features{border-bottom:1px solid var(--pink)}.featureGrid{display:grid;grid-template-columns:repeat(4,1fr)}.feature{padding:26px 28px;text-align:center;border-right:1px solid #333}.feature:last-child{border-right:0}.ico{font-size:34px;color:var(--pink);margin-bottom:8px}.feature h3{margin:4px 0;font-size:18px}.feature p{margin:0;color:#c5c5c5;font-size:14px;line-height:1.45}.aboutBand{position:relative;padding:44px 0;background:radial-gradient(circle at 20% 50%,rgba(247,37,117,.12),transparent 30%),#070707;border-bottom:2px solid var(--pink);overflow:hidden}.aboutGrid{display:grid;grid-template-columns:.85fr 1.15fr;gap:40px;align-items:center}.aboutTitle{font-size:42px;font-style:italic;line-height:.95;margin:0 0 24px}.aboutTitle span{color:var(--pink);display:block;font-size:54px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:26px 0}.stat{padding:0 18px;border-right:1px solid var(--pink)}.stat:first-child{padding-left:0}.stat b{font-size:39px;display:block}.stat small{font-size:11px;text-transform:uppercase;color:#ddd}.angled{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;transform:skew(-8deg)}.angled .pic{height:280px;overflow:hidden;border:1px solid #333}.angled img{width:100%;height:100%;object-fit:cover;transform:skew(8deg) scale(1.13)}.ctaBand{display:grid;grid-template-columns:1fr 1.2fr .7fr;min-height:260px;align-items:stretch;border-bottom:1px solid var(--pink)}.ctaPhoto{background:url('assets/kamryn-6.jpg') center 35%/cover no-repeat;position:relative}.ctaPhoto:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.1),#050505)}.ctaText{padding:45px 42px;display:flex;flex-direction:column;justify-content:center}.ctaText h2{font-size:43px;line-height:.95;margin:0}.ctaText h2 span{color:var(--pink);font-style:italic;font-size:56px}.ctaAction{display:grid;place-items:center;border-left:1px solid #333}.footer{padding:42px 0 18px}.footerGrid{display:grid;grid-template-columns:1.3fr .7fr .8fr 1fr;gap:34px}.footerLogo{width:155px}.footer h4{color:var(--pink);margin:0 0 13px}.footer p,.footer li{color:#bbb;font-size:14px;line-height:1.6}.footer ul{list-style:none;padding:0;margin:0}.copy{text-align:center;border-top:1px solid #222;padding-top:16px;color:#888;font-size:12px;margin-top:24px}.pageHero{padding:70px 0 38px;background:radial-gradient(circle at 80% 20%,rgba(247,37,117,.12),transparent 30%),#080808;border-bottom:1px solid #222}.pageHero h1{font-size:62px;margin:0}.pageHero p{color:#bbb;max-width:760px;line-height:1.65}.section{padding:64px 0}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:30px}.panel{background:#0d0d0d;border:1px solid #272727;padding:26px}.calendarHead{display:flex;justify-content:space-between;align-items:center}.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.dayname{font-size:11px;color:#777;text-align:center;padding:8px}.day{aspect-ratio:1;background:#171717;border:1px solid #2b2b2b;color:#fff;cursor:pointer}.day.active,.day:hover{border-color:var(--pink);background:#2a0d19}.day.muted{opacity:.25;pointer-events:none}.slots{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.slot{padding:12px;background:#151515;border:1px solid #2a2a2a;color:#fff}.slot.active{border-color:var(--pink);color:var(--pink)}label{display:block;margin:14px 0 6px;font-weight:700;font-size:13px}input,textarea,select{width:100%;background:#151515;border:1px solid #333;color:#fff;padding:13px}textarea{min-height:120px}.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.gallery img{height:290px;width:100%;object-fit:cover;border:1px solid #2c2c2c}.camp{display:grid;grid-template-columns:150px 1fr auto;gap:20px;align-items:center;padding:24px;background:#0d0d0d;border:1px solid #2a2a2a;margin-bottom:14px}.datebox{background:#21101a;padding:20px;text-align:center}.datebox b{font-size:30px;color:var(--pink);display:block}.bioGrid{display:grid;grid-template-columns:.9fr 1.1fr;gap:40px;align-items:start}.bioGrid img{border:1px solid #333}.bioStats{display:grid;grid-template-columns:1fr 1fr;gap:12px}.bioCard{border:1px solid #2a2a2a;background:#0d0d0d;padding:22px}.bioCard b{font-size:34px;color:var(--pink)}@media(max-width:900px){.links{display:none}.logo{width:120px}.hero .bg{background:linear-gradient(90deg,#050505 0 30%,rgba(5,5,5,.35)),url('assets/kamryn-3.jpg') 62% center/cover no-repeat}.hero h1{font-size:54px}.brush{font-size:52px}.featureGrid,.stats{grid-template-columns:repeat(2,1fr)}.aboutGrid,.grid2,.bioGrid{grid-template-columns:1fr}.ctaBand{grid-template-columns:1fr}.ctaPhoto{min-height:240px}.ctaAction{padding:35px;border-left:0;border-top:1px solid #333}.footerGrid{grid-template-columns:1fr 1fr}.gallery{grid-template-columns:repeat(2,1fr)}.camp{grid-template-columns:1fr}}@media(max-width:560px){.topbar{display:none}.hero{min-height:580px}.heroContent{padding-top:70px}.hero h1{font-size:44px}.brush{font-size:43px}.featureGrid,.stats,.footerGrid,.gallery{grid-template-columns:1fr}.feature,.stat{border-right:0;border-bottom:1px solid #2b2b2b}.angled{grid-template-columns:1fr}.angled .pic{height:220px}.pageHero h1{font-size:44px}}


/* APPROVED HOMEPAGE COMPOSITION OVERRIDES */
.navin{
  height:92px;
}
.logo{
  width:178px;
  height:auto;
  margin-top:28px;
  position:relative;
  z-index:3;
}
.links{
  gap:30px;
}
.hero{
  min-height:640px;
}
.hero .bg{
  background:
    linear-gradient(90deg,
      #050505 0%,
      #050505 29%,
      rgba(5,5,5,.93) 34%,
      rgba(5,5,5,.56) 45%,
      rgba(5,5,5,.10) 59%,
      rgba(5,5,5,.18) 100%),
    url('assets/kamryn-3.jpg') 72% 30% / cover no-repeat;
}
.heroContent{
  position:relative;
  z-index:2;
  padding:90px 0 68px;
  width:42%;
  max-width:560px;
  margin:0;
  text-align:left;
}
.hero h1{
  font-size:74px;
  line-height:.92;
  text-align:left;
  margin:0;
}
.brush{
  text-align:left;
  font-size:72px;
}
.sub{
  text-align:left;
}
.heroContent .btn{
  text-align:left;
}
@media (min-width:1200px){
  .hero .container{
    width:min(1360px,92vw);
  }
  .heroContent{
    padding-left:28px;
  }
}
@media(max-width:900px){
  .logo{width:135px;margin-top:12px}
  .navin{height:78px}
  .hero .bg{
    background:
      linear-gradient(90deg,#050505 0 20%,rgba(5,5,5,.70) 48%,rgba(5,5,5,.18)),
      url('assets/kamryn-3.jpg') 68% center / cover no-repeat;
  }
  .heroContent{
    width:58%;
    padding:72px 0 62px;
  }
}
@media(max-width:650px){
  .hero .bg{
    background:
      linear-gradient(180deg,rgba(5,5,5,.25),rgba(5,5,5,.88) 72%,#050505 100%),
      url('assets/kamryn-3.jpg') 62% top / cover no-repeat;
  }
  .heroContent{
    width:100%;
    max-width:none;
    padding-top:330px;
  }
  .hero h1{font-size:46px}
  .brush{font-size:48px}
}


/* RESTORED WORKING ADMIN PANEL STYLES */
.adminBody{background:#0b0b0b}.adminShell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.side{background:#0d0d0d;border-right:1px solid #262626;padding:22px}.side img{width:120px;margin:auto}.side a{display:block;padding:12px 13px;border-radius:10px;color:#bbb;margin:4px 0;font-weight:700}.side a:hover,.side a.active{background:#1b1117;color:#fff}.main{padding:34px}.panel{background:#111;border:1px solid #2b2b2b;border-radius:16px;padding:22px;margin-bottom:18px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}label{display:block;font-size:12px;font-weight:900;color:#ccc;margin:14px 0 7px}input,textarea,select{width:100%;padding:12px;border-radius:9px;background:#181818;border:1px solid #333;color:white;font:inherit}textarea{min-height:120px}.status{padding:12px;border-radius:10px;background:#171717;border:1px solid #333;color:#bbb;margin:12px 0}.thumbs{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.thumb{position:relative}.thumb img{height:130px;width:100%;object-fit:cover;border-radius:10px}.thumb button{position:absolute;right:6px;top:6px}.login{width:min(430px,92vw);margin:10vh auto;background:#111;border:1px solid #292929;border-radius:18px;padding:28px}.hidden{display:none!important}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

@media(max-width:900px){
  .adminShell{grid-template-columns:1fr}
  .side{position:static}
}
@media(max-width:600px){
  .adminBody .grid2{grid-template-columns:1fr}
  .thumbs{grid-template-columns:repeat(2,1fr)}
  .main{padding:18px}
}

/* Dynamic Pages + Media */
.mediaGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.storyCard{background:#111;border:1px solid #2b2b2b;overflow:hidden}
.storyCard img{width:100%;height:240px;object-fit:cover}
.storyCardBody{padding:20px}
.storyCard .meta,.articleMeta{color:#888;font-size:12px;text-transform:uppercase;letter-spacing:.08em}
.storyCard h3{font-size:25px;margin:8px 0 10px;line-height:1.05}
.storyCard p{color:#aaa;line-height:1.6}
.articleWrap{max-width:900px}
.articleHero{width:100%;max-height:520px;object-fit:cover;margin:20px 0 28px;border:1px solid #2c2c2c}
.articleWrap h1{font-size:clamp(44px,7vw,78px)}
.articleBody{font-size:18px;line-height:1.8;color:#d0d0d0}
.articleBody p{margin:0 0 20px}
.backLink{display:inline-block;margin-bottom:22px;color:#ff2f86;font-weight:800}
.dynamicPageHero{padding:55px 0;border-bottom:1px solid #252525}
.dynamicPageBody{font-size:18px;line-height:1.8;color:#d0d0d0}
.adminTable{width:100%;border-collapse:collapse;margin-top:16px}
.adminTable th,.adminTable td{text-align:left;padding:10px;border-bottom:1px solid #2b2b2b;vertical-align:top}
.adminTable th{color:#aaa;font-size:12px;text-transform:uppercase}
.adminActions{display:flex;gap:8px;flex-wrap:wrap}
.miniBtn{padding:7px 10px;border:1px solid #444;background:#171717;color:white;cursor:pointer}
.miniBtn.danger{border-color:#773147;color:#ff8eb5}
.editorNote{font-size:12px;color:#888;margin:6px 0 12px}
@media(max-width:900px){.mediaGrid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.mediaGrid{grid-template-columns:1fr}.storyCard img{height:220px}}


/* Prevent old/static content from flashing before Supabase content loads */
html.kb2-loading body > * {
  visibility: hidden !important;
}
html.kb2-loading body::before {
  content: "";
  visibility: visible !important;
  position: fixed;
  inset: 0;
  z-index: 2147483647;
  background:
    #050505
    url("/assets/kb2-logo.png")
    center center / 150px auto
    no-repeat;
}
html.kb2-ready body {
  animation: kb2Reveal .16s ease-out both;
}
@keyframes kb2Reveal {
  from { opacity: .96; }
  to { opacity: 1; }
}

.footer a{color:inherit;text-decoration:none}
.footer a:hover{color:var(--pink)}
.footerGrid{grid-template-columns:1.3fr .8fr .8fr}
.trainingTypesSection{background:#0b0b0b}
.trainingTypesGrid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:26px}
.trainingTypeCard{background:#121212;border:1px solid #2a2a2a;padding:28px}
.trainingTypeCard h3{font-size:28px;margin:0 0 12px}
.trainingTypeCard p{color:#aaa;line-height:1.7;margin:0}
@media(max-width:800px){
  .trainingTypesGrid{grid-template-columns:1fr}
  .footerGrid{grid-template-columns:1fr}
}

.customBookingGrid{display:grid;grid-template-columns:1.05fr .95fr;gap:24px;margin-top:26px}
.bookingCalendarPanel,.bookingFormPanel{background:#111;border:1px solid #2b2b2b;padding:24px}
.calendarHeader{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0 12px}
.bookingCalendarGrid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}
.bookingDayName{text-align:center;color:#777;font-size:11px;font-weight:800;padding:8px 0;text-transform:uppercase}
.bookingDay{aspect-ratio:1;background:#181818;border:1px solid #303030;color:#fff;cursor:pointer}
.bookingDay:hover,.bookingDay.active{border-color:#ff2f86;background:#2a101d}
.bookingDay.disabled{opacity:.22;pointer-events:none}
.bookingSlots{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.bookingSlot{background:#181818;border:1px solid #303030;color:#fff;padding:12px;cursor:pointer}
.bookingSlot:hover,.bookingSlot.active{border-color:#ff2f86;color:#ff2f86}
@media(max-width:900px){.customBookingGrid{grid-template-columns:1fr}}
@media(max-width:560px){.bookingSlots{grid-template-columns:1fr 1fr}}

.trainingPrice{font-size:28px;font-weight:900;color:#ff2f86;margin:8px 0 14px}
.trainingPrice span{font-size:13px;font-weight:700;color:#999}
.bookingSlot small{display:block;font-size:10px;color:#888;margin-top:4px}
.bookingSlot.active small{color:#ff9bc1}
.bookingPriceSummary{margin-top:8px;padding:10px;background:#171717;border:1px solid #303030;color:#ff2f86;font-weight:800}
.priceInput{display:flex;align-items:center;gap:8px}
.priceInput span{font-size:22px;font-weight:900;color:#ff2f86}


.aboutStoryGrid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:48px;align-items:start}
.aboutPhotoMosaic{display:grid;grid-template-columns:1.45fr .8fr;gap:14px;position:sticky;top:120px}
.aboutPhotoMain,.aboutPhotoSmall{width:100%;display:block;object-fit:cover;border:1px solid #2d2d2d;background:#111}
.aboutPhotoMain{height:720px}.aboutPhotoStack{display:grid;grid-template-rows:1fr 1fr;gap:14px}.aboutPhotoSmall{height:353px}
.aboutStoryCopy h2{font-size:clamp(38px,5vw,68px);line-height:.95;margin:10px 0 24px}.aboutBioCopy{color:#c5c5c5;line-height:1.78;font-size:17px}
.aboutBioCopy p{margin:0 0 20px}.aboutSocialBtn{display:inline-block;margin:6px 0 28px}.aboutStats{margin-top:8px}
@media(max-width:980px){.aboutStoryGrid{grid-template-columns:1fr;gap:30px}.aboutPhotoMosaic{position:static;grid-template-columns:1.25fr .75fr}.aboutPhotoMain{height:620px}.aboutPhotoSmall{height:303px}}
@media(max-width:620px){.aboutPhotoMosaic{grid-template-columns:1fr}.aboutPhotoMain{height:auto;aspect-ratio:4/5}.aboutPhotoStack{grid-template-columns:1fr 1fr;grid-template-rows:none}.aboutPhotoSmall{height:auto;aspect-ratio:4/5}}

.topbarInner{display:flex;align-items:center;justify-content:flex-end;gap:12px}
.topbarContact{color:inherit;text-decoration:none}
.siteSocialLinks,.siteFooterSocialLinks{display:flex;gap:9px;align-items:center}
.topSocialLink,.footerSocialLink{color:inherit;text-decoration:none;font-weight:900}
.topSocialLink:hover,.footerSocialLink:hover{color:#fff}
.footer a{color:inherit;text-decoration:none}
.footer a:hover{color:var(--pink)}
@media(max-width:700px){
  .topbarInner{justify-content:center;flex-wrap:wrap}
}

.contactHoneypot{
  position:absolute !important;
  left:-10000px !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
}
#contactSubmitButton:disabled{opacity:.65;cursor:wait}
#contactFormStatus[data-state="success"]{border-color:#245b42;color:#a7efc7}
#contactFormStatus[data-state="error"]{border-color:#7b273d;color:#ff9db9}


/* ==========================================================
   KB2 MOBILE RESPONSIVE OVERHAUL
   ========================================================== */

.menuToggle{
  display:none;
  width:48px;
  height:44px;
  margin-left:auto;
  padding:9px 10px;
  border:1px solid #3a3a3a;
  background:#0c0c0c;
  cursor:pointer;
  position:relative;
  z-index:60;
}
.menuToggle span{
  display:block;
  height:3px;
  width:100%;
  background:#fff;
  margin:5px 0;
  transition:transform .2s ease,opacity .2s ease;
}
.nav.mobileMenuOpen .menuToggle span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.nav.mobileMenuOpen .menuToggle span:nth-child(2){opacity:0}
.nav.mobileMenuOpen .menuToggle span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

@media(max-width:900px){
  body.mobileNavOpen{overflow:hidden}

  .nav{
    overflow:visible;
  }
  .navin{
    min-height:86px;
    height:86px;
    position:relative;
    padding:8px 0;
    gap:14px;
  }
  .logo{
    width:108px !important;
    max-height:76px;
    object-fit:contain;
    margin:0 !important;
  }
  .menuToggle{
    display:block;
  }
  .links{
    display:none !important;
    position:absolute;
    z-index:55;
    top:100%;
    left:50%;
    width:100vw;
    max-height:calc(100vh - 86px);
    overflow-y:auto;
    transform:translateX(-50%);
    margin:0;
    padding:12px 4vw 22px;
    flex-direction:column;
    align-items:stretch;
    gap:0 !important;
    background:rgba(5,5,5,.99);
    border-top:1px solid #2d2d2d;
    border-bottom:2px solid var(--pink);
    box-shadow:0 16px 30px rgba(0,0,0,.55);
  }
  .nav.mobileMenuOpen .links{
    display:flex !important;
  }
  .links a{
    width:100%;
    padding:14px 4px;
    border-bottom:1px solid #242424;
    font-size:16px;
  }
  .links .btn{
    margin-top:12px;
    padding:15px 18px;
    text-align:center;
    border-bottom:1px solid var(--pink);
  }
}

@media(max-width:650px){
  .container{
    width:min(100% - 32px,1180px);
  }

  /* Keep the full logo comfortably inside the mobile header. */
  .navin{
    min-height:82px;
    height:82px;
    padding:6px 0;
  }
  .logo{
    width:102px !important;
    max-height:72px;
  }

  /* Mobile hero: photo gets its own clean image area, with copy below it.
     This prevents Kamryn's face from being covered/cropped by the headline. */
  .hero{
    min-height:0 !important;
    display:flex;
    flex-direction:column;
    overflow:hidden;
  }
  .hero .bg{
    position:relative !important;
    inset:auto !important;
    width:100%;
    height:390px;
    flex:0 0 390px;
    background-position:64% 18% !important;
    background-size:cover !important;
    background-repeat:no-repeat !important;
  }
  .hero:after{
    display:none;
  }
  .heroContent{
    width:100% !important;
    max-width:none !important;
    padding:30px 0 42px !important;
    margin:0 auto !important;
  }
  .hero h1{
    font-size:clamp(40px,11vw,48px) !important;
    line-height:.94;
  }
  .brush{
    font-size:clamp(40px,10.5vw,47px) !important;
    line-height:1.05;
    margin-top:10px;
  }
  .sub{
    font-size:20px;
    line-height:1.35;
  }

  /* Center and compact homepage stats into a clean 2x2 grid. */
  .aboutGrid{
    gap:30px;
  }
  .aboutGrid > div:first-child{
    text-align:center;
  }
  .aboutTitle{
    text-align:center;
    font-size:36px;
  }
  .aboutTitle span{
    font-size:46px;
  }
  .stats{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    margin:24px auto 28px;
    max-width:520px;
    text-align:center;
    border-top:1px solid #2b2b2b;
    border-left:1px solid #2b2b2b;
  }
  .stat,
  .stat:first-child{
    padding:20px 8px !important;
    border-right:1px solid #2b2b2b !important;
    border-bottom:1px solid #2b2b2b !important;
  }
  .stat b{
    font-size:40px;
  }
  .stat small{
    display:block;
    margin-top:4px;
    line-height:1.3;
  }

  /* Homepage photo strip: show the whole photo on phones instead of
     heavily cropping the portrait and cutting off faces. */
  .angled{
    grid-template-columns:1fr !important;
    gap:16px;
    transform:none !important;
    margin-top:6px;
  }
  .angled .pic{
    height:auto !important;
    min-height:0;
    aspect-ratio:4/5;
    transform:none !important;
    background:#090909;
    overflow:hidden;
  }
  .angled img{
    width:100%;
    height:100%;
    transform:none !important;
    scale:none !important;
    object-fit:contain !important;
    object-position:center center !important;
    background:#090909;
  }

  /* CTA image: prioritize Kamryn's face on narrow screens. */
  .ctaPhoto{
    min-height:350px !important;
    background-position:center 18% !important;
  }
  .ctaPhoto:after{
    background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(5,5,5,.34)) !important;
  }
  .ctaText{
    padding:34px 24px;
    text-align:center;
  }
  .ctaText h2{
    font-size:36px;
  }
  .ctaText h2 span{
    font-size:46px;
  }
  .ctaText p{
    margin-left:auto;
    margin-right:auto;
  }

  /* About page photos: never crop faces on phones. */
  .aboutPhotoMosaic{
    grid-template-columns:1fr !important;
    gap:16px !important;
  }
  .aboutPhotoStack{
    grid-template-columns:1fr !important;
    grid-template-rows:none !important;
    gap:16px !important;
  }
  .aboutPhotoMain,
  .aboutPhotoSmall{
    width:100%;
    height:auto !important;
    aspect-ratio:auto !important;
    max-height:none !important;
    object-fit:contain !important;
    object-position:center top !important;
  }
  .aboutStoryCopy{
    text-align:left;
  }
  .aboutStats{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    text-align:center;
  }
  .bioCard{
    padding:18px 10px;
  }

  /* Gallery images show their full composition on small screens. */
  .gallery{
    grid-template-columns:1fr !important;
  }
  .gallery img{
    height:auto !important;
    max-height:none;
    object-fit:contain !important;
    background:#090909;
  }

  /* General mobile polish. */
  .section{
    padding:42px 0;
  }
  .pageHero{
    padding:45px 0 30px;
  }
  .footer{
    padding-top:34px;
  }
  .footerLogo{
    width:130px;
  }
}

@media(max-width:390px){
  .hero .bg{
    height:350px;
    flex-basis:350px;
  }
  .hero h1{
    font-size:39px !important;
  }
  .brush{
    font-size:39px !important;
  }
  .aboutStats{
    grid-template-columns:1fr !important;
  }
}


/* ==========================================================
   KB2 MOBILE CONTACT PAGE FIX
   ========================================================== */
@media(max-width:650px){
  .contactPageGrid{
    display:flex !important;
    flex-direction:column !important;
    gap:18px !important;
    width:min(100% - 24px,1180px) !important;
  }

  /* Photo/info card moves above the form and becomes compact. */
  .contactInfoPanel{
    order:1;
    width:100% !important;
    padding:14px !important;
  }

  .contactInfoPanel #contactPhoto{
    width:100% !important;
    height:230px !important;
    max-height:230px !important;
    object-fit:cover !important;
    object-position:center 28% !important;
    display:block;
    margin:0 0 18px !important;
    border-radius:0;
  }

  .contactInfoPanel h2{
    font-size:30px !important;
    line-height:1 !important;
    margin:0 0 12px !important;
  }

  .contactInfoPanel p{
    font-size:16px !important;
    line-height:1.5 !important;
    margin-bottom:0 !important;
  }

  /* Form gets full mobile width beneath the photo. */
  .contactFormPanel{
    order:2;
    width:100% !important;
    padding:18px !important;
  }

  #kb2ContactForm{
    width:100%;
  }

  #kb2ContactForm label{
    display:block;
    margin-top:14px;
    margin-bottom:7px;
  }

  #kb2ContactForm input,
  #kb2ContactForm select,
  #kb2ContactForm textarea{
    width:100% !important;
    max-width:none !important;
    box-sizing:border-box;
  }

  #kb2ContactForm input,
  #kb2ContactForm select{
    min-height:52px;
  }

  #kb2ContactForm textarea{
    min-height:150px;
  }

  #contactSubmitButton{
    width:100% !important;
    min-height:56px;
  }
}

@media(max-width:390px){
  .contactInfoPanel #contactPhoto{
    height:200px !important;
    max-height:200px !important;
  }
}


/* KB2 MOBILE ABOUT PAGE - TEXT FIRST + SMALLER PHOTOS */
@media(max-width:650px){
  .aboutStoryGrid{
    display:flex !important;
    flex-direction:column !important;
    gap:24px !important;
  }

  .aboutStoryCopy{
    order:1 !important;
    width:100% !important;
  }

  .aboutPhotoMosaic{
    order:2 !important;
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:12px !important;
    width:100% !important;
    max-width:520px !important;
    margin:0 auto !important;
    position:static !important;
  }

  .aboutPhotoMain{
    grid-column:1 / -1 !important;
    width:100% !important;
    height:260px !important;
    object-fit:cover !important;
    object-position:center 18% !important;
    display:block !important;
  }

  .aboutPhotoStack{
    display:contents !important;
  }

  .aboutPhotoSmall{
    width:100% !important;
    height:190px !important;
    object-fit:cover !important;
    object-position:center 18% !important;
    display:block !important;
  }

  .aboutStoryCopy h2{
    font-size:38px !important;
    line-height:.98 !important;
    margin-bottom:18px !important;
  }

  .aboutBioCopy{
    font-size:16px !important;
    line-height:1.65 !important;
  }

  .aboutSocialBtn{
    margin-bottom:20px !important;
  }

  .aboutStats{
    margin-bottom:8px !important;
  }
}

@media(max-width:390px){
  .aboutPhotoMain{
    height:230px !important;
  }
  .aboutPhotoSmall{
    height:165px !important;
  }
}
