/* ============================================================
   TIA MANDISA SUITE — premium salon sections
   Fonts: Melodrama (display) · Jost (body) · Tenor Sans (labels)
   Palette: matte black · burnished gold · bone
   All styles scoped under .tm-root to avoid theme clashes.
   ============================================================ */

.tm-root{
  --black:#0A0A0A; --black-2:#0E0E0E; --ink:#141414;
  --gold:#C9A84C; --gold-2:#E4CD8A; --gold-soft:#bfa06a;
  --bone:#F5F0EA; --bone-dim:rgba(245,240,234,.62); --bone-faint:rgba(245,240,234,.4);
  --line:rgba(201,168,76,.26); --hair:rgba(245,240,234,.12);
  --disp:'Melodrama',Georgia,serif; --body:'Jost',-apple-system,sans-serif; --label:'Tenor Sans',serif;
  --ease:cubic-bezier(.19,1,.22,1);
  color:var(--bone); font-family:var(--body); font-weight:300; line-height:1.7;
  -webkit-font-smoothing:antialiased; background:var(--black);
}
.tm-root *{box-sizing:border-box; margin:0; padding:0;}
.tm-root img{display:block; max-width:100%;}
.tm-root a{color:inherit; text-decoration:none;}
.tm-sec{position:relative; background:var(--black); overflow:hidden;}
/* defensive: neutralise any theme rules on generic class names used inside our sections */
.tm-root .tm-grid{position:relative !important; float:none !important;}
.tm-root .tm-sec > *{position:relative;}
.tm-root .tm-about .media img,.tm-root .tm-team .m img{object-position:top center;}
.tm-wrap{max-width:1280px; margin:0 auto; padding:0 40px;}
.tm-pad{padding:clamp(80px,11vw,160px) 0;}

/* ---- type ---- */
.tm-root .eyebrow{font-family:var(--label); letter-spacing:.34em; text-transform:uppercase;
  font-size:12px; color:var(--gold); display:flex; align-items:center; gap:14px;}
.tm-root .eyebrow::before{content:""; width:30px; height:1px; background:var(--gold); opacity:.7;}
.tm-root .eyebrow.center{justify-content:center;}
.tm-root h2.tm-h{font-family:var(--disp); font-weight:500; line-height:1.02; letter-spacing:-.5px;
  font-size:clamp(38px,6vw,86px); color:var(--bone);}
.tm-root h3{font-family:var(--disp); font-weight:500; line-height:1.08; color:var(--bone);}
.tm-root .lead{font-size:clamp(16px,1.25vw,19px); color:var(--bone-dim); max-width:58ch;}
.tm-root .gold{color:var(--gold);}
.tm-root .serifit{font-style:italic; font-family:var(--disp);}

/* ---- buttons ---- */
.tm-btn{position:relative; display:inline-flex; align-items:center; gap:12px;
  font-family:var(--label); letter-spacing:.2em; text-transform:uppercase; font-size:12.5px;
  padding:19px 38px; color:var(--black); background:var(--gold); overflow:hidden; isolation:isolate;
  transition:color .5s var(--ease); border:1px solid var(--gold);}
.tm-btn::after{content:""; position:absolute; inset:0; background:var(--bone); transform:translateY(101%);
  transition:transform .5s var(--ease); z-index:-1;}
.tm-btn:hover::after{transform:translateY(0);}
.tm-btn .ar{transition:transform .5s var(--ease);}
.tm-btn:hover .ar{transform:translateX(6px);}
.tm-btn.ghost{background:transparent; color:var(--bone); border-color:rgba(245,240,234,.3);}
.tm-btn.ghost::after{background:var(--gold);}
.tm-btn.ghost:hover{color:var(--black); border-color:var(--gold);}

/* ---- reveal animations ---- */
.tm-root [data-rv]{opacity:0; transform:translateY(40px); transition:opacity 1.1s var(--ease), transform 1.1s var(--ease);}
.tm-root [data-rv].in{opacity:1; transform:none;}
.tm-root [data-rv="img"]{opacity:0; transform:scale(1.08); transition:opacity 1.4s var(--ease), transform 1.6s var(--ease);}
.tm-root [data-rv="img"].in{opacity:1; transform:none;}
.tm-root [data-d="1"]{transition-delay:.12s;} .tm-root [data-d="2"]{transition-delay:.24s;}
.tm-root [data-d="3"]{transition-delay:.36s;} .tm-root [data-d="4"]{transition-delay:.48s;}

/* ---- marquee ---- */
.tm-marquee{border-top:1px solid var(--hair); border-bottom:1px solid var(--hair); padding:26px 0; background:var(--black);}
.tm-marquee .track{display:flex; gap:0; white-space:nowrap; will-change:transform;}
.tm-marquee .track span{font-family:var(--disp); font-size:clamp(26px,3.4vw,46px); color:var(--bone);
  padding:0 36px; display:inline-flex; align-items:center; gap:36px; opacity:.92;}
.tm-marquee .track span::after{content:"\2726"; color:var(--gold); font-size:.5em;}
.tm-marquee .track .o{color:transparent; -webkit-text-stroke:1px rgba(245,240,234,.4);}

/* ============ ABOUT / FOUNDER ============ */
.tm-about .tm-grid{display:grid; grid-template-columns:1.02fr 1fr; gap:clamp(40px,6vw,90px); align-items:center;}
.tm-about .media{position:relative;}
.tm-about .media .ph{position:relative; overflow:hidden;}
.tm-about .media img{width:100%; height:min(76vh,720px); object-fit:cover; filter:contrast(1.05);}
.tm-about .media .edge{position:absolute; inset:16px; border:1px solid var(--line); pointer-events:none; z-index:2;}
.tm-about .media .tag{position:absolute; left:-1px; bottom:34px; background:var(--gold); color:var(--black);
  font-family:var(--label); letter-spacing:.18em; text-transform:uppercase; font-size:11px; padding:12px 20px; z-index:3;}
.tm-about .body .lead{margin-top:26px;}
.tm-stats{display:flex; gap:clamp(28px,4vw,58px); margin-top:48px; flex-wrap:wrap;}
.tm-stats .s .n{font-family:var(--disp); font-size:clamp(40px,4vw,58px); color:var(--gold); line-height:1;}
.tm-stats .s .l{font-family:var(--label); letter-spacing:.16em; text-transform:uppercase; font-size:11px; color:var(--bone-faint); margin-top:10px;}
.tm-sign{margin-top:34px; font-family:var(--disp); font-style:italic; font-size:26px; color:var(--bone);}

/* ============ SIGNATURE (D-TOX) ============ */
.tm-signature{background:var(--ink); border-top:1px solid var(--hair); border-bottom:1px solid var(--hair);}
.tm-signature .tm-grid{display:grid; grid-template-columns:1fr 1.08fr; gap:clamp(40px,6vw,86px); align-items:center;}
.tm-signature .media{position:relative; overflow:hidden;}
.tm-signature .media img{width:100%; height:min(72vh,640px); object-fit:cover;}
.tm-signature .media .float{position:absolute; right:26px; top:26px; width:128px; height:128px; border-radius:50%;
  background:var(--gold); color:var(--black); display:grid; place-content:center; text-align:center;
  font-family:var(--label); letter-spacing:.12em; text-transform:uppercase; font-size:11px; line-height:1.5; z-index:3;
  box-shadow:0 20px 50px rgba(0,0,0,.5);}
.tm-signature .media .float b{display:block; font-family:var(--disp); font-size:24px; letter-spacing:0;}
.tm-dl{list-style:none; margin:30px 0 36px;}
.tm-dl li{display:flex; justify-content:space-between; gap:20px; padding:16px 0; border-bottom:1px solid var(--hair);
  font-family:var(--label); letter-spacing:.04em; font-size:14.5px; color:rgba(245,240,234,.85);}
.tm-dl li span{color:var(--gold);}
.tm-price{display:flex; align-items:baseline; gap:14px; margin-bottom:30px;}
.tm-price .v{font-family:var(--disp); font-size:clamp(40px,4.5vw,58px); color:var(--bone); line-height:1;}
.tm-price .u{font-size:14px; color:var(--bone-faint); letter-spacing:.05em;}

/* ============ SERVICES (editorial index) ============ */
.tm-serv .head{display:flex; justify-content:space-between; align-items:flex-end; gap:30px; margin-bottom:54px; flex-wrap:wrap;}
.tm-index{border-top:1px solid var(--hair);}
.tm-row{position:relative; display:grid; grid-template-columns:64px 1fr auto auto; gap:28px; align-items:center;
  padding:34px 12px; border-bottom:1px solid var(--hair); cursor:pointer; transition:padding .5s var(--ease);}
.tm-row .no{font-family:var(--label); font-size:12px; letter-spacing:.18em; color:var(--gold); opacity:.85;}
.tm-row .nm{font-family:var(--disp); font-size:clamp(24px,3vw,40px); color:var(--bone); transition:color .4s, transform .6s var(--ease);}
.tm-row .ds{font-size:14px; color:var(--bone-faint); max-width:34ch; justify-self:start;}
.tm-row .pr{font-family:var(--label); letter-spacing:.08em; text-transform:uppercase; font-size:13px; color:var(--bone-dim); white-space:nowrap;}
.tm-row .pr b{color:var(--gold); font-weight:400;}
.tm-row::before{content:""; position:absolute; left:0; bottom:-1px; height:1px; width:0; background:var(--gold); transition:width .6s var(--ease);}
.tm-row:hover{padding-left:30px;}
.tm-row:hover::before{width:100%;}
.tm-row:hover .nm{color:var(--gold);}
.tm-row .peek{position:fixed; width:220px; height:280px; pointer-events:none; object-fit:cover; opacity:0; transform:translate(-50%,-50%) scale(.85);
  transition:opacity .35s var(--ease), transform .45s var(--ease); z-index:60; box-shadow:0 30px 70px rgba(0,0,0,.6); border:1px solid var(--line);}
.tm-row.hot .peek{opacity:1; transform:translate(-50%,-50%) scale(1);}
@media(hover:none){.tm-row .peek{display:none;}}

/* ============ WHY ============ */
.tm-why{position:relative;}
.tm-why .bg{position:absolute; inset:0; object-fit:cover; width:100%; height:100%; opacity:.22; filter:grayscale(.3);}
.tm-why::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(10,10,10,.86),rgba(10,10,10,.94));}
.tm-why .tm-wrap{position:relative; z-index:2;}
.tm-why .g{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(34px,4vw,60px); margin-top:64px;}
.tm-why .it{border-top:1px solid var(--line); padding-top:26px;}
.tm-why .it .rn{font-family:var(--disp); font-size:30px; color:var(--gold); line-height:1;}
.tm-why .it h3{font-size:21px; margin:16px 0 11px;}
.tm-why .it p{font-size:14.5px; color:var(--bone-dim);}

/* ============ GALLERY ============ */
.tm-gal .tm-grid{display:grid; grid-template-columns:repeat(12,1fr); grid-auto-rows:128px; gap:14px; margin-top:54px;}
.tm-gal figure{position:relative; overflow:hidden;}
.tm-gal img{width:100%; height:100%; object-fit:cover; transition:transform 1.3s var(--ease); filter:grayscale(.08);}
.tm-gal figure:hover img{transform:scale(1.09); filter:none;}
.tm-gal figcaption{position:absolute; left:18px; bottom:16px; font-family:var(--label); letter-spacing:.16em; text-transform:uppercase;
  font-size:11px; color:#fff; opacity:0; transform:translateY(10px); transition:.5s var(--ease); text-shadow:0 2px 14px rgba(0,0,0,.7); z-index:2;}
.tm-gal figure::after{content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(10,10,10,.5),transparent 45%); opacity:0; transition:.5s;}
.tm-gal figure:hover figcaption{opacity:1; transform:none;}
.tm-gal figure:hover::after{opacity:1;}
.tm-gal .a{grid-column:span 5; grid-row:span 4;}
.tm-gal .b{grid-column:span 4; grid-row:span 2;}
.tm-gal .c{grid-column:span 3; grid-row:span 4;}
.tm-gal .d{grid-column:span 4; grid-row:span 2;}
.tm-gal .e{grid-column:span 4; grid-row:span 2;}
.tm-gal .f{grid-column:span 3; grid-row:span 2;}

/* ============ TEAM ============ */
.tm-team{background:var(--ink);}
.tm-team .g{display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(20px,3vw,34px); margin-top:60px;}
.tm-team .m{position:relative; overflow:hidden;}
.tm-team .m img{width:100%; height:min(70vh,620px); object-fit:cover; transition:transform 1.1s var(--ease), filter .8s; filter:grayscale(.25);}
.tm-team .m:hover img{transform:scale(1.05); filter:none;}
.tm-team .m .cap{position:absolute; left:0; right:0; bottom:0; padding:38px 34px; background:linear-gradient(0deg,rgba(10,10,10,.92),transparent); z-index:2;}
.tm-team .m .cap span{font-family:var(--label); letter-spacing:.2em; text-transform:uppercase; font-size:11px; color:var(--gold);}
.tm-team .m .cap h3{font-size:30px; margin-top:6px; color:#fff !important;}
.tm-team .m .ig{position:absolute; top:24px; right:24px; z-index:2; width:44px; height:44px; border:1px solid rgba(245,240,234,.4);
  border-radius:50%; display:grid; place-content:center; color:var(--bone); transition:.4s; backdrop-filter:blur(4px);}
.tm-team .m .ig:hover{background:var(--gold); border-color:var(--gold); color:var(--black);}

/* ============ REVIEWS ============ */
.tm-rev{text-align:center;}
.tm-rev .stars{color:var(--gold); letter-spacing:8px; font-size:18px; margin-bottom:16px;}
.tm-rev .g{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:58px; text-align:left;}
.tm-rev .c{border:1px solid var(--hair); padding:40px 34px; background:linear-gradient(180deg,rgba(255,255,255,.02),transparent); transition:.5s var(--ease);}
.tm-rev .c:hover{border-color:var(--line); transform:translateY(-6px);}
.tm-rev .c .qm{font-family:var(--disp); font-size:56px; color:var(--gold); line-height:.6; opacity:.5;}
.tm-rev .c .q{font-family:var(--disp); font-size:21px; line-height:1.42; color:var(--bone); margin:18px 0 24px;}
.tm-rev .c .who{font-family:var(--label); letter-spacing:.12em; text-transform:uppercase; font-size:12px; color:var(--gold);}
.tm-rev .c .src{font-size:12px; color:var(--bone-faint); margin-top:4px;}

/* ============ CTA ============ */
.tm-cta{position:relative; text-align:center;}
.tm-cta .bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.4;}
.tm-cta::after{content:""; position:absolute; inset:0; background:radial-gradient(circle at 50% 40%,rgba(10,10,10,.6),rgba(10,10,10,.9));}
.tm-cta .tm-wrap{position:relative; z-index:2;}
.tm-cta .acts{display:flex; gap:18px; justify-content:center; flex-wrap:wrap; margin-top:38px;}

/* ============ FOOTER ============ */
.tm-foot{background:#060606; border-top:1px solid var(--line); padding:90px 0 36px;}
.tm-foot .g{display:grid; grid-template-columns:1.5fr 1fr 1fr 1.1fr; gap:40px;}
.tm-foot .logo{font-family:var(--disp); font-size:32px; color:var(--bone); line-height:1;}
.tm-foot .logo small{display:block; font-family:var(--label); font-size:11px; letter-spacing:.34em; text-transform:uppercase; color:var(--gold); margin-top:10px;}
.tm-foot h4{font-family:var(--label); letter-spacing:.2em; text-transform:uppercase; font-size:12px; color:var(--gold); margin-bottom:20px;}
.tm-foot a{color:var(--bone-dim); font-size:14.5px; display:block; margin-bottom:12px; transition:.3s; width:fit-content;}
.tm-foot a:hover{color:var(--gold);}
.tm-foot .muted{color:var(--bone-faint); font-size:14px; line-height:1.95;}
.tm-foot .bottom{display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-top:64px; padding-top:26px;
  border-top:1px solid var(--hair); font-family:var(--label); letter-spacing:.08em; font-size:12px; color:var(--bone-faint);}

/* ============ responsive ============ */
@media(max-width:980px){
  .tm-about .tm-grid,.tm-signature .tm-grid{grid-template-columns:1fr; gap:40px;}
  .tm-why .g,.tm-rev .g{grid-template-columns:1fr;}
  .tm-team .g{grid-template-columns:1fr;}
  .tm-foot .g{grid-template-columns:1fr 1fr;}
  .tm-row{grid-template-columns:40px 1fr auto;}
  .tm-row .ds{display:none;}
  .tm-gal .tm-grid{grid-template-columns:repeat(6,1fr); grid-auto-rows:120px;}
  .tm-gal .a{grid-column:span 6; grid-row:span 3;}
  .tm-gal .b,.tm-gal .c,.tm-gal .d,.tm-gal .e,.tm-gal .f{grid-column:span 3; grid-row:span 2;}
}
@media(max-width:560px){
  .tm-wrap{padding:0 22px;}
  .tm-about .media img,.tm-signature .media img,.tm-team .m img{height:62vh;}
  .tm-foot .g{grid-template-columns:1fr;}
  .tm-row{grid-template-columns:32px 1fr; gap:14px;}
  .tm-row .pr{grid-column:2; justify-self:start; margin-top:6px;}
}

/* ===== INTERIOR PAGES (services / about / contact) ===== */
.tm-phead{position:relative; text-align:center; padding:clamp(150px,20vh,230px) 0 clamp(54px,8vh,96px); overflow:hidden;}
.tm-phead .bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.3; filter:grayscale(.2);}
.tm-phead::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(10,10,10,.72),rgba(10,10,10,.93));}
.tm-phead .tm-wrap{position:relative; z-index:2;}
.tm-phead h1{font-family:var(--disp); font-weight:500; color:var(--bone)!important; line-height:1; font-size:clamp(46px,8vw,104px); margin-top:14px;}
.tm-phead p{color:var(--bone-dim); max-width:54ch; margin:22px auto 0; font-size:clamp(15px,1.2vw,18px);}
.tm-cat{margin-top:clamp(50px,7vw,88px);}
.tm-cat:first-of-type{margin-top:0;}
.tm-cat .cat-h{display:flex; align-items:baseline; gap:18px; margin-bottom:6px; border-bottom:1px solid var(--line); padding-bottom:14px;}
.tm-cat .cat-h h2{font-family:var(--disp); font-weight:500; font-size:clamp(26px,3vw,40px); color:var(--bone)!important;}
.tm-cat .cat-h .cat-n{font-family:var(--label); letter-spacing:.2em; color:var(--gold); font-size:13px;}
.tm-srow{display:flex; justify-content:space-between; gap:24px; align-items:center; padding:20px 8px; border-bottom:1px solid var(--hair); transition:padding .4s var(--ease), background .4s; cursor:pointer;}
.tm-srow:hover{padding-left:18px; background:rgba(201,168,76,.05);}
.tm-srow .sleft{display:flex; flex-direction:column; gap:3px;}
.tm-srow .snm{font-family:var(--disp); font-size:clamp(18px,1.8vw,24px); color:var(--bone); transition:color .4s;}
.tm-srow:hover .snm{color:var(--gold);}
.tm-srow .sds{font-family:var(--body); font-size:13px; color:var(--bone-faint);}
.tm-srow .spr{font-family:var(--label); letter-spacing:.06em; text-transform:uppercase; font-size:13px; color:var(--gold); white-space:nowrap;}
.tm-contact .tm-grid2{display:grid; grid-template-columns:0.85fr 1.15fr; gap:clamp(40px,6vw,80px); align-items:start;}
.tm-contact .info h3{font-size:24px; margin-bottom:18px;}
.tm-contact .info .row{display:flex; gap:16px; padding:18px 0; border-bottom:1px solid var(--hair);}
.tm-contact .info .row .k{font-family:var(--label); letter-spacing:.16em; text-transform:uppercase; font-size:11px; color:var(--gold); min-width:84px;}
.tm-contact .info .row .v{color:var(--bone-dim); font-size:15px; line-height:1.7;}
.tm-contact .info .row .v a{color:var(--bone-dim);}
.tm-contact .info .row .v a:hover{color:var(--gold);}
.tm-formwrap{background:linear-gradient(180deg,rgba(255,255,255,.02),transparent); border:1px solid var(--hair); padding:clamp(28px,4vw,46px);}
.tm-formwrap .forminator-label,.tm-formwrap label{font-family:var(--label)!important; letter-spacing:.1em!important; text-transform:uppercase!important; font-size:11px!important; color:var(--bone-dim)!important;}
.tm-formwrap input,.tm-formwrap textarea,.tm-formwrap select{background:rgba(255,255,255,.03)!important; border:1px solid var(--hair)!important; color:var(--bone)!important; border-radius:0!important; font-family:var(--body)!important; padding:14px 16px!important;}
.tm-formwrap input:focus,.tm-formwrap textarea:focus,.tm-formwrap select:focus{border-color:var(--gold)!important; outline:none!important; box-shadow:none!important;}
.tm-formwrap ::placeholder{color:var(--bone-faint)!important; opacity:1;}
.tm-formwrap button,.tm-formwrap .forminator-button{background:var(--gold)!important; color:var(--black)!important; border:1px solid var(--gold)!important; border-radius:0!important; font-family:var(--label)!important; letter-spacing:.2em!important; text-transform:uppercase!important; font-size:12.5px!important; padding:17px 36px!important; transition:.4s!important; cursor:pointer;}
.tm-formwrap button:hover,.tm-formwrap .forminator-button:hover{background:transparent!important; color:var(--gold)!important;}
@media(max-width:980px){ .tm-contact .tm-grid2{grid-template-columns:1fr;} }
.tm-foot .bottom a{display:inline; margin:0; color:var(--gold);}
.tm-foot .bottom a:hover{color:var(--bone);}
