:root{
  --olive:#5C6B3E;--olive-d:#3f4b2a;--olive-m:#4d5c33;
  --cream:#EDE8DF;--cream-l:#F7F4EF;--cream-d:#DDD6C8;
  --charcoal:#1C1C1A;--warm:#B8A888;--warm-l:#d4c9b4;
  --white:#FDFBF8;--text:#3a3a38;--muted:#7a7a75;
  --border:rgba(92,107,62,0.15);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'DM Sans',sans-serif;background:var(--white);color:var(--text);font-weight:300;overflow-x:hidden;}
img{image-rendering:-webkit-optimize-contrast;transform:translateZ(0);}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:900;background:var(--white);border-bottom:1px solid var(--border);height:68px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;padding:0 2.5rem;transition:box-shadow 0.3s;}
nav.shadow{box-shadow:0 2px 18px rgba(0,0,0,0.07);}
.nav-logo{cursor:pointer;display:flex;align-items:center;}
.nav-logo img{height:48px;width:auto;}
.nav-links{display:flex;align-items:center;justify-content:center;gap:0;}
.nav-links a{text-decoration:none;color:var(--text);font-size:0.78rem;letter-spacing:0.07em;padding:0.5rem 1rem;transition:color 0.2s;position:relative;cursor:pointer;}
.nav-links a:hover,.nav-links a.active{color:var(--olive);}
.nav-links a.active::after{content:'';position:absolute;bottom:-1px;left:1rem;right:1rem;height:1.5px;background:var(--olive);}
.nav-right{display:flex;gap:0.7rem;justify-content:flex-end;}
.btn-login{font-family:'DM Sans',sans-serif;font-size:0.76rem;letter-spacing:0.05em;background:none;border:1px solid var(--border);color:var(--text);padding:0.52rem 1.1rem;cursor:pointer;transition:all 0.2s;}
.btn-login:hover{border-color:var(--olive);color:var(--olive);}
.btn-join{font-family:'DM Sans',sans-serif;font-size:0.76rem;letter-spacing:0.07em;font-weight:500;background:var(--olive);color:var(--cream);border:none;padding:0.55rem 1.3rem;cursor:pointer;transition:background 0.2s;}
.btn-join:hover{background:var(--olive-d);}
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:4px;background:none;border:none;}
.hamburger span{display:block;width:22px;height:1.5px;background:var(--charcoal);transition:all 0.3s;}
.hamburger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.hamburger.open span:nth-child(2){opacity:0;}
.hamburger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}

/* MOBILE MENU */
.mob-menu{display:none;position:fixed;top:68px;inset:0;background:var(--white);z-index:800;flex-direction:column;padding:1.5rem 2rem;overflow-y:auto;}
.mob-menu.open{display:flex;}
.mob-menu a{display:block;text-decoration:none;color:var(--text);font-size:1rem;padding:1rem 0;border-bottom:1px solid var(--border);cursor:pointer;}
.mob-menu a:hover{color:var(--olive);}
.mob-btns{display:flex;flex-direction:column;gap:0.8rem;margin-top:1.5rem;}
.nav-user{display:flex;align-items:center;gap:0.6rem;font-size:0.78rem;color:var(--text);font-weight:400;}
.nav-avatar{width:30px;height:30px;border-radius:50%;background:var(--olive);color:var(--cream);display:flex;align-items:center;justify-content:center;font-size:0.75rem;font-weight:500;}
.mob-user{font-size:0.95rem;color:var(--olive);font-weight:500;padding:0.8rem 0;border-bottom:1px solid var(--border);}
.mob-btns button{width:100%;padding:0.9rem;}

/* PAGES */
.page{display:none;padding-top:68px;}
.page.active{display:block;}

/* LAYOUT */
.wrap{max-width:1120px;margin:0 auto;padding:0 2rem;}
.wrap-sm{max-width:780px;margin:0 auto;padding:0 2rem;}

/* HERO */
.hero{min-height:calc(100vh - 68px);position:relative;display:flex;align-items:center;overflow:hidden;}
.hero-bg{position:absolute;inset:0;background:url('images/MAIN BANNER.jpeg') center/cover no-repeat;}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(105deg,rgba(28,28,26,0.72) 0%,rgba(28,28,26,0.35) 100%);}
.hero-content{position:relative;z-index:2;max-width:680px;padding:4rem 3rem 4rem 5vw;}
.hero-eyebrow{font-size:0.68rem;letter-spacing:0.3em;text-transform:uppercase;color:rgba(237,232,223,0.55);margin-bottom:1.5rem;font-weight:400;}
.hero-h1{font-family:'Cormorant Garamond',serif;font-size:clamp(3.2rem,6vw,5.5rem);color:var(--cream);font-weight:300;line-height:1.05;margin-bottom:1.5rem;}
.hero-h1 em{font-style:italic;color:var(--warm-l);}
.hero-sub{color:rgba(237,232,223,0.65);font-size:0.9rem;line-height:1.85;margin-bottom:2.5rem;font-weight:300;max-width:420px;}
.hero-btns{display:flex;gap:1rem;flex-wrap:wrap;}
.btn-hp{font-family:'DM Sans',sans-serif;font-size:0.78rem;letter-spacing:0.1em;text-transform:uppercase;font-weight:500;padding:0.95rem 2.2rem;border:none;cursor:pointer;transition:all 0.25s;text-decoration:none;display:inline-block;}
.btn-hp-solid{background:var(--cream);color:var(--olive-d);}
.btn-hp-solid:hover{background:var(--warm-l);}
.btn-hp-out{background:none;border:1px solid rgba(237,232,223,0.45);color:var(--cream);}
.btn-hp-out:hover{background:rgba(237,232,223,0.08);border-color:rgba(237,232,223,0.7);}

/* STRIP */
.strip{background:var(--olive-d);padding:0.85rem 2rem;text-align:center;}
.strip p{color:var(--cream);font-size:0.78rem;letter-spacing:0.04em;font-weight:300;display:flex;align-items:center;justify-content:center;gap:0.7rem;flex-wrap:wrap;}
.strip strong{color:var(--warm-l);font-weight:500;}
.strip-pill{background:var(--warm);color:var(--charcoal);padding:0.18rem 0.8rem;font-size:0.65rem;font-weight:600;letter-spacing:0.1em;}

/* SECTION HEADINGS */
.eyebrow{display:block;font-size:0.65rem;letter-spacing:0.3em;text-transform:uppercase;color:var(--olive);font-weight:500;margin-bottom:0.8rem;}
.h2{font-family:'Cormorant Garamond',serif;font-size:clamp(1.9rem,3.5vw,2.8rem);font-weight:300;line-height:1.15;color:var(--charcoal);margin-bottom:1.2rem;}
.h2 em{font-style:italic;color:var(--olive);}
.lead{color:var(--muted);font-size:0.9rem;line-height:1.85;font-weight:300;}

/* LINK BTN */
.btn-lnk{display:inline-flex;align-items:center;gap:0.45rem;font-family:'DM Sans',sans-serif;font-size:0.75rem;letter-spacing:0.1em;text-transform:uppercase;font-weight:500;color:var(--olive);background:none;border:none;cursor:pointer;text-decoration:none;transition:gap 0.2s;}
.btn-lnk:hover{gap:0.75rem;}
.btn-lnk svg{width:15px;height:15px;}

/* HOME: ABOUT */
.home-about{padding:6rem 0;}
.ab-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;}
.ab-img{position:relative;}
.ab-img img{width:100%;height:520px;object-fit:cover;object-position:center;display:block;}
.ab-img-dec{position:absolute;top:-1.2rem;left:-1.2rem;width:70px;height:70px;border:1px solid var(--warm);pointer-events:none;}
.ab-stats{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;margin-top:2.2rem;}
.stat{border-top:1px solid var(--border);padding-top:1rem;}
.stat-n{font-family:'Cormorant Garamond',serif;font-size:2.2rem;font-weight:300;color:var(--olive);line-height:1;}
.stat-l{font-size:0.68rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);margin-top:0.2rem;}

/* HOME: CLASSES */
.home-classes{background:var(--cream-l);padding:6rem 0;}
.classes-hdr{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:3rem;flex-wrap:wrap;gap:1rem;}
.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.5rem;}
.cc{background:var(--white);border:1px solid var(--border);padding:2rem 1.5rem;text-align:center;transition:transform 0.25s,box-shadow 0.25s;cursor:default;}
.cc:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(92,107,62,0.1);}
.cc-img{width:200px;height:200px;border-radius:50%;overflow:hidden;margin:0 auto 1.4rem;border:3px solid var(--cream-d);}
.cc-img img{width:100%;height:100%;object-fit:cover;object-position:center top;image-rendering:-webkit-optimize-contrast;transform:translateZ(0);}
.cc h3{font-family:'Cormorant Garamond',serif;font-size:1.3rem;font-weight:400;color:var(--charcoal);margin-bottom:0.4rem;}
.cc-desc{font-size:0.8rem;color:var(--muted);line-height:1.6;margin-bottom:0.8rem;font-weight:300;}
.cc-tag{font-size:0.62rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--olive);font-weight:500;}
.cc-price{font-family:'Cormorant Garamond',serif;font-size:1.25rem;color:var(--charcoal);margin:0.7rem 0 1rem;}
.cc-price small{font-family:'DM Sans';font-size:0.72rem;color:var(--muted);}
.btn-book{display:block;width:100%;background:var(--olive);color:var(--cream);font-family:'DM Sans',sans-serif;font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;font-weight:500;padding:0.8rem;border:none;cursor:pointer;transition:background 0.2s;}
.btn-book:hover{background:var(--olive-d);}

/* HOME: STUDIO */
.home-studio{padding:6rem 0;}
.st-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;}
.st-imgs{display:grid;grid-template-columns:1fr 1fr;gap:0.7rem;}
.st-imgs img{width:100%;aspect-ratio:1;object-fit:cover;object-position:center;image-rendering:-webkit-optimize-contrast;transform:translateZ(0);}
.st-imgs img:first-child{grid-column:1/-1;aspect-ratio:16/9;object-fit:cover;object-position:center top;}
.pillars{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.5rem;}
.pillar{background:var(--cream-l);padding:1.1rem;border-left:2px solid var(--olive);}
.pillar h4{font-size:0.68rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--olive);font-weight:500;margin-bottom:0.3rem;}
.pillar p{font-size:0.76rem;color:var(--muted);line-height:1.55;font-weight:300;}

/* HOME: CTA */
.home-cta{background:var(--olive);padding:6rem 0;text-align:center;}
.home-cta .eyebrow{color:var(--warm-l);}
.home-cta .h2{color:var(--cream);}
.home-cta .h2 em{color:var(--warm-l);}
.home-cta p{color:rgba(237,232,223,0.65);font-size:0.88rem;line-height:1.8;max-width:480px;margin:0 auto 2rem;font-weight:300;}
.cta-ctr{display:inline-flex;align-items:center;gap:1rem;background:rgba(255,255,255,0.07);border:1px solid rgba(237,232,223,0.18);padding:1rem 1.8rem;margin-bottom:2rem;}
.ctr-num{font-family:'Cormorant Garamond',serif;font-size:2.6rem;color:var(--warm-l);font-weight:300;line-height:1;}
.ctr-lbl{font-size:0.68rem;letter-spacing:0.1em;text-transform:uppercase;color:rgba(237,232,223,0.55);text-align:left;line-height:1.5;}

/* ABOUT PAGE */
.pg-hero{background:var(--cream-l);padding:5rem 0 4rem;border-bottom:1px solid var(--border);}
.ab-page-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;}
.ab-page-img{aspect-ratio:4/5;overflow:hidden;}
.ab-page-img img{width:100%;height:100%;object-fit:cover;object-position:center top;image-rendering:-webkit-optimize-contrast;transform:translateZ(0);}
.phil-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.8rem;margin-top:3rem;}
.phil{padding:2rem;background:var(--cream-l);}
.phil svg{width:28px;height:28px;stroke:var(--olive);fill:none;stroke-width:1.5;margin-bottom:1rem;}
.phil h3{font-family:'Cormorant Garamond',serif;font-size:1.25rem;font-weight:400;color:var(--charcoal);margin-bottom:0.6rem;}
.phil p{font-size:0.8rem;color:var(--muted);line-height:1.7;font-weight:300;}
.quote-sec{background:var(--olive);padding:4.5rem 0;text-align:center;}
.quote-txt{font-family:'Cormorant Garamond',serif;font-size:clamp(1.5rem,3vw,2.3rem);font-style:italic;font-weight:300;color:var(--cream);line-height:1.4;max-width:650px;margin:0 auto;}
.quote-by{margin-top:1.2rem;font-size:0.68rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--warm-l);}
.loc-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;padding:5rem 0;}
.loc-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center;image-rendering:-webkit-optimize-contrast;transform:translateZ(0);}

/* CLASSES PAGE */
.cls-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:1.8rem;padding:4rem 0;}
.cdc{background:var(--white);border:1px solid var(--border);overflow:hidden;transition:transform 0.25s,box-shadow 0.25s;}
.cdc:hover{transform:translateY(-5px);box-shadow:0 14px 36px rgba(92,107,62,0.1);}
.cdc-img{height:210px;overflow:hidden;position:relative;}
.cdc-img img{width:100%;height:100%;object-fit:cover;transition:transform 0.4s;image-rendering:-webkit-optimize-contrast;}
.cdc:hover .cdc-img img{transform:scale(1.04);}
.cdc-badge{position:absolute;top:0.9rem;left:0.9rem;background:var(--olive);color:var(--cream);font-size:0.58rem;letter-spacing:0.14em;text-transform:uppercase;padding:0.28rem 0.75rem;font-weight:500;}
.cdc-body{padding:1.6rem;}
.cdc-body h3{font-family:'Cormorant Garamond',serif;font-size:1.45rem;font-weight:400;color:var(--charcoal);margin-bottom:0.5rem;}
.cdc-body p{font-size:0.8rem;color:var(--muted);line-height:1.7;margin-bottom:1rem;font-weight:300;}
.meta-row{display:flex;gap:1.2rem;flex-wrap:wrap;margin-bottom:1.2rem;}
.mchip{display:flex;align-items:center;gap:0.35rem;font-size:0.7rem;color:var(--muted);}
.mchip svg{width:12px;height:12px;stroke:var(--olive);fill:none;stroke-width:2;}
.cdc-foot{display:flex;align-items:center;justify-content:space-between;padding-top:1.1rem;border-top:1px solid var(--border);gap:1rem;flex-wrap:wrap;}
.cdc-price{font-family:'Cormorant Garamond',serif;font-size:1.4rem;font-weight:500;color:var(--olive-d);}
.cdc-price small{font-family:'DM Sans';font-size:0.7rem;color:var(--muted);font-weight:300;margin-left:0.25rem;}
.btn-book-sm{background:var(--olive);color:var(--cream);font-family:'DM Sans',sans-serif;font-size:0.72rem;letter-spacing:0.09em;text-transform:uppercase;font-weight:500;padding:0.7rem 1.3rem;border:none;cursor:pointer;transition:background 0.2s;white-space:nowrap;}
.btn-book-sm:hover{background:var(--olive-d);}
.reform-card{background:var(--cream-l);border:1px solid var(--border);overflow:hidden;margin-top:0;}
.reform-inner{display:grid;grid-template-columns:1fr 1fr;}
.reform-img{min-height:340px;overflow:hidden;}
.reform-img img{width:100%;height:100%;object-fit:cover;image-rendering:-webkit-optimize-contrast;}
.reform-body{padding:2.5rem;}
.reform-body .h2{font-size:1.8rem;}
.eb-block{background:var(--olive-d);padding:1.1rem 1.3rem;margin-bottom:1.3rem;}
.eb-head{font-size:0.62rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--warm-l);font-weight:500;margin-bottom:0.7rem;}
.eb-tiers{display:flex;gap:0.5rem;}
.eb-t{flex:1;background:rgba(255,255,255,0.05);border:1px solid rgba(237,232,223,0.12);padding:0.7rem;text-align:center;}
.eb-t.on{border-color:var(--warm);background:rgba(184,168,136,0.12);}
.eb-t-lbl{font-size:0.58rem;letter-spacing:0.1em;text-transform:uppercase;color:rgba(237,232,223,0.45);margin-bottom:0.3rem;}
.eb-t-p{font-family:'Cormorant Garamond',serif;font-size:1.4rem;color:var(--cream);font-weight:300;}
.eb-t.on .eb-t-p{color:var(--warm-l);}
.eb-t-s{font-size:0.58rem;color:rgba(237,232,223,0.35);margin-top:0.15rem;}
.priv-banner{background:var(--charcoal);padding:3rem 3.5rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap;margin-top:1.5rem;}
.priv-banner h3{font-family:'Cormorant Garamond',serif;font-size:1.7rem;font-weight:300;color:var(--cream);margin-bottom:0.4rem;}
.priv-banner p{font-size:0.82rem;color:rgba(255,255,255,0.42);line-height:1.7;font-weight:300;max-width:440px;}
.btn-enq{font-family:'DM Sans',sans-serif;font-size:0.76rem;letter-spacing:0.09em;text-transform:uppercase;font-weight:500;background:var(--cream);color:var(--charcoal);border:none;padding:0.9rem 2rem;cursor:pointer;transition:background 0.2s;white-space:nowrap;}
.btn-enq:hover{background:var(--warm-l);}

/* PACKAGES PAGE */
.pkg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;padding:4rem 0 2rem;}
.pk{background:var(--white);border:1px solid var(--border);padding:2.2rem;transition:transform 0.25s,box-shadow 0.25s;}
.pk:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,0.07);}
.pk.feat{background:var(--olive);border-color:var(--olive);}
.pk.feat .pk-nm{color:var(--warm-l);}
.pk.feat .pk-title{color:var(--cream);}
.pk.feat .pk-price{color:var(--cream);}
.pk.feat .pk-price sup{color:var(--warm-l);}
.pk.feat .pk-desc{color:rgba(237,232,223,0.6);}
.pk.feat .pk-feat{color:rgba(237,232,223,0.8);border-color:rgba(237,232,223,0.12);}
.pk.feat .pk-feat svg{stroke:var(--warm-l);}
.pk.feat .btn-book{background:var(--cream);color:var(--olive-d);}
.pk.feat .btn-book:hover{background:var(--warm-l);}
.pk-nm{font-size:0.62rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--olive);font-weight:500;margin-bottom:0.7rem;}
.pk-title{font-family:'Cormorant Garamond',serif;font-size:1.5rem;font-weight:400;color:var(--charcoal);margin-bottom:1rem;}
.pk-price{font-family:'Cormorant Garamond',serif;font-size:2.8rem;font-weight:300;color:var(--charcoal);line-height:1;margin-bottom:0.3rem;}
.pk-price sup{font-size:1rem;vertical-align:top;margin-top:0.5rem;display:inline-block;}
.pk-desc{font-size:0.78rem;color:var(--muted);margin-bottom:1.5rem;font-weight:300;line-height:1.6;}
.pk-feats{list-style:none;margin-bottom:1.8rem;}
.pk-feat{display:flex;align-items:center;gap:0.6rem;padding:0.5rem 0;border-bottom:1px solid var(--border);font-size:0.8rem;color:var(--text);font-weight:300;}
.pk-feat svg{width:13px;height:13px;stroke:var(--olive);fill:none;stroke-width:2;flex-shrink:0;}
.pkg-note{background:var(--cream-l);border:1px dashed var(--cream-d);padding:2rem;text-align:center;max-width:680px;margin:0 auto 4rem;}
.pkg-note strong{display:block;font-size:0.65rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--olive);margin-bottom:0.5rem;font-weight:500;}
.pkg-note p{font-size:0.82rem;color:var(--muted);font-weight:300;}

/* CONTACT PAGE */
.ct-layout{display:grid;grid-template-columns:1fr 1fr;min-height:500px;}
.ct-info{background:var(--cream-l);padding:4rem 3rem;}
.ct-item{display:flex;align-items:flex-start;gap:1.1rem;margin-bottom:2rem;}
.ct-icon{width:42px;height:42px;background:var(--olive);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.ct-icon svg{width:17px;height:17px;stroke:var(--cream);fill:none;stroke-width:1.5;}
.ct-item-b strong{display:block;font-size:0.65rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--olive);font-weight:500;margin-bottom:0.28rem;}
.ct-item-b a,.ct-item-b p{font-size:0.85rem;color:var(--text);text-decoration:none;font-weight:300;line-height:1.6;}
.ct-item-b a:hover{color:var(--olive);}
.ct-map{position:relative;}
.ct-map iframe{width:100%;height:100%;min-height:450px;border:none;filter:sepia(8%) saturate(90%);}
.ct-form-sec{padding:5rem 0;background:var(--white);}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;}
.field{margin-bottom:1.2rem;}
.field label{display:block;font-size:0.65rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-bottom:0.45rem;font-weight:500;}
.field input,.field select,.field textarea{width:100%;padding:0.85rem 1rem;border:1px solid var(--border);background:var(--cream-l);font-family:'DM Sans',sans-serif;font-size:0.85rem;color:var(--text);font-weight:300;outline:none;transition:border-color 0.2s;appearance:none;-webkit-appearance:none;}
.field textarea{height:110px;resize:vertical;}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--olive);}
.btn-submit{width:100%;background:var(--olive);color:var(--cream);font-family:'DM Sans',sans-serif;font-size:0.76rem;letter-spacing:0.12em;text-transform:uppercase;font-weight:500;border:none;padding:1rem;cursor:pointer;transition:background 0.2s;}
.btn-submit:hover{background:var(--olive-d);}

/* FOOTER */
footer{background:var(--charcoal);padding:4rem 0 2rem;}
.ft-top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;padding-bottom:3rem;border-bottom:1px solid rgba(255,255,255,0.07);margin-bottom:2rem;}
.ft-brand img{height:42px;filter:brightness(0) invert(0.7) sepia(0.15);margin-bottom:0.9rem;}
.ft-brand p{font-size:0.77rem;color:rgba(255,255,255,0.3);line-height:1.7;font-weight:300;max-width:230px;}
.ft-col h4{font-size:0.62rem;letter-spacing:0.2em;text-transform:uppercase;color:rgba(255,255,255,0.35);font-weight:500;margin-bottom:1.1rem;}
.ft-col a{display:block;font-size:0.78rem;color:rgba(255,255,255,0.3);text-decoration:none;margin-bottom:0.55rem;cursor:pointer;transition:color 0.2s;font-weight:300;}
.ft-col a:hover{color:rgba(255,255,255,0.65);}
.ft-bot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;}
.ft-bot p{font-size:0.7rem;color:rgba(255,255,255,0.18);}

/* WA FLOAT */
.wa{position:fixed;bottom:1.8rem;right:1.8rem;z-index:700;width:52px;height:52px;background:#25D366;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(37,211,102,0.35);transition:transform 0.25s;text-decoration:none;}
.wa:hover{transform:scale(1.09);}
.wa svg{width:25px;height:25px;fill:white;}

/* MODAL */
.ov{display:none;position:fixed;inset:0;background:rgba(28,28,26,0.72);z-index:1000;align-items:center;justify-content:center;padding:1.5rem;}
.ov.open{display:flex;}
.modal{background:var(--white);max-width:440px;width:100%;padding:2.8rem;position:relative;max-height:92vh;overflow-y:auto;animation:fadeUp 0.3s ease;}
.mx{position:absolute;top:1.1rem;right:1.1rem;background:none;border:none;cursor:pointer;color:var(--muted);font-size:1rem;line-height:1;transition:color 0.2s;}
.mx:hover{color:var(--charcoal);}
.modal h2{font-family:'Cormorant Garamond',serif;font-size:1.9rem;font-weight:300;color:var(--charcoal);margin-bottom:0.35rem;}
.modal-sub{font-size:0.8rem;color:var(--muted);margin-bottom:1.8rem;font-weight:300;line-height:1.6;}
.mtabs{display:flex;border-bottom:1px solid var(--border);margin-bottom:1.8rem;}
.mtab{font-family:'DM Sans',sans-serif;font-size:0.76rem;letter-spacing:0.07em;font-weight:400;background:none;border:none;cursor:pointer;padding:0.65rem 1.1rem 0.85rem;color:var(--muted);position:relative;transition:color 0.2s;}
.mtab.on{color:var(--olive);}
.mtab.on::after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:1.5px;background:var(--olive);}
.mpanel{display:none;}
.mpanel.on{display:block;}
.found-note{background:var(--olive-d);color:var(--cream);padding:0.9rem 1.1rem;font-size:0.76rem;line-height:1.6;margin-bottom:1.5rem;font-weight:300;}
.found-note strong{color:var(--warm-l);font-weight:500;}
.succ{display:none;text-align:center;padding:0.5rem 0;}
.succ.on{display:block;}
.succ-icon{width:52px;height:52px;background:var(--cream-l);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.3rem;}
.succ-icon svg{width:22px;height:22px;stroke:var(--olive);fill:none;stroke-width:2;}
.succ h3{font-family:'Cormorant Garamond',serif;font-size:1.6rem;font-weight:300;margin-bottom:0.5rem;}
.succ p{font-size:0.82rem;color:var(--muted);line-height:1.7;font-weight:300;}

/* UTILS */
.tc{text-align:center;}.mt1{margin-top:1rem;}.mt2{margin-top:2rem;}.mt3{margin-top:3rem;}

/* REVEAL */
.rev{opacity:0;transform:translateY(18px);transition:opacity 0.6s ease,transform 0.6s ease;}
.rev.in{opacity:1;transform:none;}

/* KEYFRAMES */
@keyframes fadeUp{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:none;}}

/* RESPONSIVE */
@media(max-width:880px){
  nav{grid-template-columns:1fr auto;padding:0 1.5rem;}
  .nav-links,.nav-right{display:none;}
  .hamburger{display:flex;}
  .ab-grid,.st-grid,.ab-page-grid,.ct-layout,.loc-grid,.reform-inner{grid-template-columns:1fr;}
  .ft-top{grid-template-columns:1fr 1fr;}
  .ab-img img{height:340px;}
  .reform-img{min-height:220px;}
  .reform-body{padding:1.8rem;}
  .priv-banner{flex-direction:column;padding:2.2rem;}
  .phil-grid{grid-template-columns:1fr;}
  .frow{grid-template-columns:1fr;}
  .hero-content{padding:3rem 2rem;}
}
@media(max-width:580px){
  .hero-h1{font-size:2.7rem;}
  .pkg-grid,.cls-list{grid-template-columns:1fr;}
  .eb-tiers{flex-direction:column;}
  .ft-top{grid-template-columns:1fr;}
  .ab-stats{grid-template-columns:1fr 1fr;}
  .modal{padding:2rem 1.4rem;}
  .cards-grid{grid-template-columns:1fr;}
  .cta-ctr{flex-direction:column;text-align:center;}
}

/* TIMETABLE */
.tt-week-nav{display:flex;align-items:center;justify-content:center;gap:1.5rem;margin-bottom:2.5rem;}
.tt-nav-btn{width:40px;height:40px;background:var(--cream-l);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.2s;}
.tt-nav-btn:hover{background:var(--olive);border-color:var(--olive);}
.tt-nav-btn:hover svg{stroke:white;}
.tt-nav-btn svg{width:18px;height:18px;stroke:var(--olive);}
.tt-nav-btn:disabled{opacity:0.35;cursor:not-allowed;}
.tt-nav-btn:disabled:hover{background:var(--cream-l);border-color:var(--border);}
.tt-nav-btn:disabled:hover svg{stroke:var(--olive);}
.tt-week-label{font-family:'Cormorant Garamond',serif;font-size:1.4rem;font-weight:300;color:var(--charcoal);min-width:200px;text-align:center;}
.tt-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem;margin-bottom:2rem;}
.tt-day{background:var(--cream-l);overflow:hidden;}
.tt-day-head{background:var(--olive);padding:0.9rem 1rem;text-align:center;}
.tt-day-name{font-size:0.65rem;letter-spacing:0.2em;text-transform:uppercase;color:rgba(237,232,223,0.7);font-weight:500;margin-bottom:0.2rem;}
.tt-day-date{font-family:'Cormorant Garamond',serif;font-size:1.5rem;color:var(--cream);font-weight:300;line-height:1;}
.tt-day-date.today{color:var(--warm-l);}
.tt-day-head.today-head{background:var(--olive-d);}
.tt-slots{padding:0.8rem;}
.tt-slot{background:var(--white);border:1px solid var(--border);padding:0.9rem 1rem;margin-bottom:0.6rem;cursor:pointer;transition:all 0.2s;position:relative;}
.tt-slot:hover{border-color:var(--olive);box-shadow:0 4px 12px rgba(92,107,62,0.1);}
.tt-slot.full{opacity:0.55;cursor:not-allowed;}
.tt-slot.full:hover{border-color:var(--border);box-shadow:none;}
.tt-slot.booked{border-color:var(--olive);background:rgba(92,107,62,0.04);}
.tt-slot-time{font-size:0.72rem;letter-spacing:0.1em;color:var(--olive);font-weight:500;margin-bottom:0.3rem;}
.tt-slot-name{font-family:'Cormorant Garamond',serif;font-size:1rem;font-weight:400;color:var(--charcoal);margin-bottom:0.4rem;}
.tt-slot-price{font-size:0.72rem;color:var(--muted);margin-bottom:0.5rem;}
.tt-slot-spots{display:flex;align-items:center;gap:0.4rem;font-size:0.65rem;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;}
.tt-dot{width:7px;height:7px;border-radius:50%;display:inline-block;}
.tt-dot.available{background:#5C6B3E;}
.tt-dot.filling{background:#d4820a;}
.tt-dot.full{background:#c0392b;}
.tt-dot.booked{background:#5C6B3E;}
.tt-slot-spots.s-available{color:var(--olive);}
.tt-slot-spots.s-filling{color:#d4820a;}
.tt-slot-spots.s-full{color:#c0392b;}
.tt-slot-spots.s-booked{color:var(--olive);}
.tt-booked-badge{position:absolute;top:0.5rem;right:0.5rem;background:var(--olive);color:var(--cream);font-size:0.55rem;letter-spacing:0.1em;text-transform:uppercase;padding:0.15rem 0.5rem;font-weight:500;}
.tt-no-classes{padding:2rem 1rem;text-align:center;color:var(--muted);font-size:0.8rem;font-weight:300;}
.tt-loading{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem;color:var(--muted);font-size:0.85rem;gap:1rem;}
.tt-spinner{width:32px;height:32px;border:2px solid var(--border);border-top-color:var(--olive);border-radius:50%;animation:spin 0.8s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
.tt-legend{display:flex;gap:2rem;justify-content:center;flex-wrap:wrap;margin-top:1.5rem;}
.tt-legend-item{display:flex;align-items:center;gap:0.5rem;font-size:0.72rem;color:var(--muted);letter-spacing:0.05em;}

/* BOOKING DETAIL BOX */
.detail-box{background:var(--cream-l);border-left:3px solid var(--olive);padding:1.1rem 1.3rem;margin-bottom:1.2rem;}
.detail-row{display:flex;justify-content:space-between;align-items:center;padding:0.4rem 0;border-bottom:1px solid var(--cream-d);font-size:0.82rem;}
.detail-row:last-child{border:none;}
.detail-label{color:var(--muted);}
.detail-value{color:var(--charcoal);font-weight:500;}

/* DASHBOARD */
.dash-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;margin-bottom:2.5rem;}
.dash-stat{background:var(--cream-l);padding:1.8rem 1.5rem;text-align:center;border:1px solid var(--border);}
.dash-stat-icon{width:44px;height:44px;background:var(--olive);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;}
.dash-stat-icon svg{width:20px;height:20px;stroke:var(--cream);}
.dash-stat-num{font-family:'Cormorant Garamond',serif;font-size:2.2rem;font-weight:300;color:var(--olive);line-height:1;margin-bottom:0.3rem;}
.dash-stat-lbl{font-size:0.68rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);}
.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:0;}
.dash-card{background:var(--white);border:1px solid var(--border);overflow:hidden;}
.dash-card-head{display:flex;align-items:center;justify-content:space-between;padding:1.3rem 1.5rem;border-bottom:1px solid var(--border);}
.dash-card-head h3{font-family:'Cormorant Garamond',serif;font-size:1.2rem;font-weight:400;color:var(--charcoal);}
.dash-booking{display:flex;align-items:center;gap:1rem;padding:1.1rem 1.5rem;border-bottom:1px solid var(--border);}
.dash-booking:last-child{border:none;}
.dash-booking-dot{width:10px;height:10px;border-radius:50%;background:var(--olive);flex-shrink:0;}
.dash-booking-info{flex:1;}
.dash-booking-name{font-size:0.88rem;font-weight:500;color:var(--charcoal);margin-bottom:0.2rem;}
.dash-booking-date{font-size:0.76rem;color:var(--muted);font-weight:300;}
.dash-booking-ref{font-size:0.68rem;color:var(--muted);letter-spacing:0.08em;}
.dash-cancel-btn{font-family:'DM Sans',sans-serif;font-size:0.65rem;letter-spacing:0.08em;text-transform:uppercase;background:none;border:1px solid rgba(192,57,43,0.3);color:#c0392b;padding:0.35rem 0.7rem;cursor:pointer;transition:all 0.2s;}
.dash-cancel-btn:hover{background:#c0392b;color:white;}
.dash-empty{padding:2.5rem;text-align:center;color:var(--muted);font-size:0.82rem;font-weight:300;line-height:1.7;}
.dash-payment-row{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--border);font-size:0.82rem;}
.dash-payment-row:last-child{border:none;}
.dash-payment-name{font-weight:500;color:var(--charcoal);}
.dash-payment-date{font-size:0.72rem;color:var(--muted);margin-top:0.15rem;}
.dash-payment-amount{font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-weight:500;color:var(--olive-d);}
.dash-not-logged{text-align:center;padding:5rem 2rem;}
.dash-not-logged h2{font-family:'Cormorant Garamond',serif;font-size:2rem;font-weight:300;margin-bottom:1rem;}
.dash-not-logged p{font-size:0.9rem;color:var(--muted);margin-bottom:2rem;}

@media(max-width:880px){
  .dash-stats{grid-template-columns:1fr 1fr;}
  .dash-grid{grid-template-columns:1fr;}
  .tt-grid{grid-template-columns:1fr;}
}
@media(max-width:580px){
  .dash-stats{grid-template-columns:1fr 1fr;}
  .tt-week-label{font-size:1.1rem;min-width:160px;}
}

/* PASSWORD EYE TOGGLE */
.pw-wrap{position:relative;display:flex;align-items:center;}
.pw-wrap input{width:100%;padding-right:2.8rem;}
.pw-eye{position:absolute;right:0.8rem;background:none;border:none;cursor:pointer;padding:0.3rem;color:var(--muted);transition:color 0.2s;display:flex;align-items:center;}
.pw-eye:hover{color:var(--olive);}
.pw-eye svg{width:16px;height:16px;}

/* POLICIES */
.pol-tab{
  font-family:'DM Sans',sans-serif;font-size:0.78rem;letter-spacing:0.07em;
  font-weight:400;background:none;border:none;cursor:pointer;
  padding:0.7rem 1.3rem 0.9rem;color:var(--muted);position:relative;
  transition:color 0.2s;
}
.pol-tab:hover{color:var(--olive);}
.pol-tab-active{color:var(--olive);}
.pol-tab-active::after{
  content:'';position:absolute;bottom:-1px;left:0;right:0;
  height:2px;background:var(--olive);
}
.pol-panel{}
.pol-body h3{
  font-family:'Cormorant Garamond',serif;
  font-size:1.15rem;font-weight:400;color:var(--charcoal);
  margin:2rem 0 0.6rem;
}
.pol-body p{
  font-size:0.88rem;color:var(--muted);line-height:1.85;
  margin-bottom:0.8rem;font-weight:300;
}
.pol-body ul{
  margin:0.5rem 0 1rem 1.2rem;
}
.pol-body ul li{
  font-size:0.88rem;color:var(--muted);line-height:1.8;font-weight:300;
}
