/* Nav links (desktop) */
[data-navlink] { position: relative; text-decoration: none; color: inherit; transition: opacity .5s ease; }
[data-navlink]::after { content: ""; position: absolute; left: 0; bottom: -5px; height: 1px; width: 100%; background: currentColor; transform: scaleX(0); transform-origin: left center; transition: transform .45s cubic-bezier(.2,.7,.2,1); opacity: .6; }
[data-navlink]:hover::after { transform: scaleX(1); }

/* "Practice, three ways" cards */
[data-card] { transition: transform .55s cubic-bezier(.2,.7,.2,1), border-color .55s ease; }
[data-card]:hover { transform: translateY(-8px); border-color: rgba(26,26,24,0.2) !important; }
[data-card]:hover [data-shape-spin] { transform: scale(1.08); }
[data-shape-spin] { transition: transform .85s cubic-bezier(.34,1.56,.64,1); }

/* Editorial arrow links + numbered list rows */
.te-arrow { transition: gap .4s cubic-bezier(.2,.7,.2,1), color .4s ease; }
.te-arrow:hover { gap: 20px !important; }
.te-arrow svg { transition: transform .4s cubic-bezier(.2,.7,.2,1); }
.te-arrow:hover svg { transform: translateX(6px); }
.te-listrow { transition: padding-left .45s cubic-bezier(.2,.7,.2,1), color .45s ease; }
.te-listrow:hover { padding-left: 14px; }
.te-listrow .te-dot { transition: opacity .45s ease, transform .45s cubic-bezier(.34,1.56,.64,1); }
.te-listrow:hover .te-dot { opacity: 1 !important; transform: scale(1.4); }
.te-incrow { transition: padding-left .4s cubic-bezier(.2,.7,.2,1); }
.te-incrow:hover { padding-left: 8px; }

/* Header responsiveness: burger replaces the desktop nav below 1280px */
@media (max-width: 1280px) { [data-nav-links] { display: none !important; } .te-burger { display: flex !important; } }
@media (max-width: 560px) { [data-header-cta] { display: none !important; } }

/* CTAs — nav pill, hairline secondary, block primary. All share the "colour rise" hover:
   opposite-ground fill scales up from the bottom with a 3-colour seam riding the leading edge. */
.te-cta-nav { cursor:pointer; position:relative; overflow:hidden; z-index:0; font-family:'Courier Prime',monospace; font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:#0A0A0A; background:#EAE6DF; border:1px solid #EAE6DF; border-radius:0; padding:9px 18px; transition:color .4s ease; white-space:nowrap; text-decoration:none; }
.te-cta-nav::before { content:""; position:absolute; inset:0; background:#0A0A0A; transform:scaleY(0); transform-origin:bottom; transition:transform .5s cubic-bezier(.4,0,.2,1); z-index:-1; }
.te-cta-nav::after { content:""; position:absolute; left:0; right:0; bottom:0; height:3px; background:linear-gradient(90deg,#7B2DFF 0 33.33%,#57E65A 0 66.66%,#FF6B00 0); opacity:0; transition:bottom .5s cubic-bezier(.4,0,.2,1), opacity .2s ease; z-index:1; pointer-events:none; }
.te-cta-nav:hover { color:#EAE6DF; }
.te-cta-nav:hover::before { transform:scaleY(1); }
.te-cta-nav:hover::after { bottom:calc(100% - 3px); opacity:1; }

/* "Ghost" secondary link — deliberately quieter than .te-cta-block so it never competes
   with a primary CTA sitting next to/above it: no box, just a hairline underline, muted
   colour at rest, smaller type. Darkens + arrow-nudges on hover, no colour-rise fill. */
.te-cta { cursor:pointer; position:relative; display:inline-flex; align-items:center; gap:8px; font-family:'Courier Prime',monospace; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--muted); background:transparent; border:none; border-bottom:1px solid var(--faint); padding:4px 0 6px; transition:color .3s ease, border-color .3s ease, gap .3s ease; text-decoration:none; }
.te-cta:hover { color:var(--fg); border-color:var(--fg); gap:12px; }
.te-cta svg { transition:transform .4s cubic-bezier(.2,.7,.2,1); flex:none; }
.te-cta:hover svg { transform:translateX(4px); }

.te-cta-block { position:relative; overflow:hidden; z-index:0; display:inline-flex; align-items:center; gap:12px; background:#EAE6DF; color:#0A0A0A; border:1px solid #EAE6DF; font-family:'Courier Prime',monospace; font-size:13px; font-weight:700; letter-spacing:0.02em; padding:15px 26px; cursor:pointer; text-decoration:none; transition:color .4s ease; }
.te-cta-block::before { content:""; position:absolute; inset:0; background:#0A0A0A; transform:scaleY(0); transform-origin:bottom; transition:transform .5s cubic-bezier(.4,0,.2,1); z-index:-1; }
.te-cta-block::after { content:""; position:absolute; left:0; right:0; bottom:0; height:3px; background:linear-gradient(90deg,#7B2DFF 0 33.33%,#57E65A 0 66.66%,#FF6B00 0); opacity:0; transition:bottom .5s cubic-bezier(.4,0,.2,1), opacity .2s ease; z-index:1; pointer-events:none; }
.te-cta-block:hover { color:#EAE6DF; }
.te-cta-block:hover::before { transform:scaleY(1); }
.te-cta-block:hover::after { bottom:calc(100% - 3px); opacity:1; }
.te-cta-block > svg { transition:transform .4s cubic-bezier(.2,.7,.2,1); flex:none; }
.te-cta-block:hover > svg { transform:translateX(5px); }

/* image "plates" (photo containers with caption/tag overlays) */
.te-plate { position:relative; border-radius:12px; overflow:hidden; background-color:rgba(26,26,24,0.05); box-shadow:inset 0 0 0 1px rgba(26,26,24,0.14); }
.te-plate > img { position:absolute; inset:0; width:100%; height:100%; z-index:2; object-fit:cover; }
.te-plate-cap { position:absolute; left:16px; bottom:13px; z-index:1; pointer-events:none; font-family:'Fraunces',serif; font-style:italic; font-weight:380; font-size:13px; color:rgba(10,10,10,0.5); }
.te-plate-tag { position:absolute; right:16px; bottom:14px; z-index:1; pointer-events:none; font-family:'Courier Prime',monospace; font-size:10px; letter-spacing:0.2em; text-transform:uppercase; color:rgba(10,10,10,0.33); }

/* form fields + chips + buttons (booking modal) */
.te-field { background:transparent; border:none; border-bottom:1px solid rgba(234,230,223,0.18); color:#EAE6DF; font-family:'Courier Prime',monospace; font-size:15px; padding:11px 0; outline:none; width:100%; transition:border-color .3s ease; }
.te-field:focus { border-color:#EAE6DF; }
.te-field::placeholder { color:rgba(234,230,223,0.3); }
textarea.te-field { resize:none; line-height:1.6; }
.te-chip { cursor:pointer; border:1px solid rgba(234,230,223,0.18); background:transparent; color:#EAE6DF; font-family:'Courier Prime',monospace; font-size:13px; letter-spacing:0.02em; padding:11px 16px; border-radius:0; transition:all .3s cubic-bezier(.2,.7,.2,1); }
.te-chip:hover { border-color:rgba(234,230,223,0.5); }
.te-chip[data-on="1"] { background:#EAE6DF; color:#0A0A0A; border-color:#EAE6DF; }
.te-btn { cursor:pointer; position:relative; overflow:hidden; z-index:0; font-family:'Courier Prime',monospace; font-size:12px; letter-spacing:0.14em; text-transform:uppercase; padding:14px 28px; border-radius:0; border:1px solid #EAE6DF; background:#EAE6DF; color:#0A0A0A; transition:color .4s ease, opacity .3s ease; }
.te-btn::before { content:""; position:absolute; inset:0; background:#0A0A0A; transform:scaleY(0); transform-origin:bottom; transition:transform .5s cubic-bezier(.4,0,.2,1); z-index:-1; }
.te-btn::after { content:""; position:absolute; left:0; right:0; bottom:0; height:3px; background:linear-gradient(90deg,#7B2DFF 0 33.33%,#57E65A 0 66.66%,#FF6B00 0); opacity:0; transition:bottom .5s cubic-bezier(.4,0,.2,1), opacity .2s ease; z-index:1; pointer-events:none; }
.te-btn:not(:disabled):hover { color:#EAE6DF; }
.te-btn:not(:disabled):hover::before { transform:scaleY(1); }
.te-btn:not(:disabled):hover::after { bottom:calc(100% - 3px); opacity:1; }
.te-btn--ghost { background:transparent; color:#EAE6DF; border-color:rgba(234,230,223,0.25); }
.te-btn--ghost::before, .te-btn--ghost::after { display:none; }
.te-btn--ghost:hover { border-color:#EAE6DF; color:#EAE6DF; transform:none; }
.te-btn:disabled { opacity:0.28; cursor:not-allowed; transform:none; }

/* booking / enquiry modal */
[data-book-overlay] { opacity:0; transition:opacity .4s ease; }
[data-book-overlay][data-open="1"] { opacity:1; }
[data-book-panel] { transform:translateY(24px) scale(0.985); transition:transform .5s cubic-bezier(.2,.7,.2,1); }
[data-book-overlay][data-open="1"] [data-book-panel] { transform:none; }

/* voucher — the "circled choice" selector */
.te-vprice { position:relative; appearance:none; background:transparent; border:none; cursor:pointer; font-family:var(--serif); font-weight:380; font-size:clamp(34px,4.4vw,54px); line-height:1; letter-spacing:-0.01em; color:var(--muted); padding:10px 4px; transition:color .35s ease; }
.te-vprice:hover { color:var(--fg); }
.te-vprice[data-on="1"] { color:var(--fg); }
.te-vprice--custom { display:inline-flex; align-items:baseline; }
.te-vring { position:absolute; inset:-14px -22px -18px -24px; background:url('../assets/ring-orange-bold.png') center / 100% 100% no-repeat; opacity:0; transform:scale(0.66) rotate(-7deg); transform-origin:center; transition:opacity .4s ease, transform .55s cubic-bezier(.34,1.56,.64,1); pointer-events:none; }
.te-vprice[data-on="1"] .te-vring { opacity:1; transform:scale(1) rotate(0deg); }
.te-vother { position:absolute; left:2px; top:calc(100% - 2px); font-family:var(--mono); font-size:9px; letter-spacing:0.16em; text-transform:uppercase; color:var(--muted); white-space:nowrap; }

/* mega menu — Workshops umbrella */
.te-mega { position:relative; }
.te-mega-trigger { display:inline-flex; align-items:center; gap:6px; cursor:pointer; }
.te-mega-trigger > svg { transition:transform .3s ease; opacity:0.65; }
.te-mega[data-open="1"] .te-mega-trigger > svg { transform:rotate(180deg); }
.te-mega-panel { position:fixed; left:0; right:0; top:65px; background:#0A0A0A; border-top:1px solid rgba(234,230,223,0.1); border-bottom:1px solid rgba(234,230,223,0.1); padding:clamp(34px,4vw,50px) clamp(22px,5vw,72px) clamp(38px,4vw,54px); display:grid; grid-template-columns:1.15fr 1fr 1fr; gap:clamp(30px,5vw,72px); opacity:0; visibility:hidden; transform:translateY(-10px); transition:opacity .34s ease, transform .34s cubic-bezier(.2,.7,.2,1), visibility .34s; box-shadow:0 30px 60px -34px rgba(0,0,0,0.9); text-transform:none; letter-spacing:normal; }
.te-mega[data-open="1"] .te-mega-panel { opacity:1; visibility:visible; transform:none; }
.te-mega-col { display:flex; flex-direction:column; align-items:flex-start; gap:14px; }
.te-mega-eyebrow { font-family:'Courier Prime',monospace; font-size:10px; letter-spacing:0.18em; text-transform:uppercase; }
.te-mega-lead { margin:0; font-family:'Fraunces',serif; font-weight:360; font-size:22px; line-height:1.2; color:#EAE6DF; letter-spacing:-0.005em; }
.te-mega-link { display:inline-flex; align-items:center; gap:9px; cursor:pointer; font-family:'Courier Prime',monospace; font-size:12px; letter-spacing:0.03em; text-transform:none; color:rgba(234,230,223,0.6); text-decoration:none; transition:color .3s ease, gap .3s ease; }
.te-mega-link:hover { color:#EAE6DF; gap:13px; }
.te-mega-link > svg { flex:none; }
.te-mega-fmt { display:flex; flex-direction:column; gap:13px; }

/* burger + full-screen mobile menu */
.te-burger { display:none; width:32px; height:32px; border:1px solid rgba(234,230,223,0.2); background:transparent; cursor:pointer; padding:0; flex-direction:column; align-items:center; justify-content:center; gap:5px; flex:none; }
.te-burger > span { display:block; width:20px; height:1.5px; background:#EAE6DF; transition:transform .3s ease, opacity .3s ease; }
.te-burger[aria-expanded="true"] > span:nth-child(1) { transform:translateY(6.5px) rotate(45deg); }
.te-burger[aria-expanded="true"] > span:nth-child(2) { opacity:0; }
.te-burger[aria-expanded="true"] > span:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg); }
.te-mobnav { position:fixed; inset:0; z-index:40; background:#0A0A0A; color:#EAE6DF; display:flex; flex-direction:column; padding:20px clamp(22px,5vw,40px) clamp(28px,5vh,44px); opacity:0; visibility:hidden; transform:translateY(-10px); transition:opacity .4s ease, transform .4s ease, visibility .4s; overflow-y:auto; }
.te-mobnav[data-open="1"] { opacity:1; visibility:visible; transform:none; }
.te-mobnav-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:clamp(24px,5vh,48px); }
.te-mobnav-close { width:44px; height:44px; border:1px solid rgba(234,230,223,0.2); background:transparent; color:#EAE6DF; cursor:pointer; font-size:16px; line-height:1; }
.te-mobnav-links { display:flex; flex-direction:column; }
.te-mobnav-links > a { display:flex; align-items:center; justify-content:space-between; gap:16px; text-decoration:none; color:#EAE6DF; font-family:'Fraunces',serif; font-weight:360; font-size:clamp(26px,6.5vw,40px); line-height:1.05; letter-spacing:-0.01em; padding:13px 0; border-bottom:1px solid rgba(234,230,223,0.09); }
.te-mobnav-sub { display:flex; flex-wrap:wrap; gap:11px 24px; padding:15px 2px 20px; }
.te-mobnav-sub a, .te-mobnav-sub [data-open-book] { font-family:'Courier Prime',monospace; font-size:12px; letter-spacing:0.03em; color:rgba(234,230,223,0.6); text-decoration:none; cursor:pointer; }
.te-mobnav-sub a:hover, .te-mobnav-sub [data-open-book]:hover { color:#EAE6DF; }

/* Workshop Programme responsive grid (workshop cards stack to 1 column, media caps width) */
@media (max-width: 920px) {
  [data-wkgrid] { grid-template-columns:1fr !important; gap:28px !important; }
  [data-wkgrid] [data-wkmedia] { max-width:420px; }
}

/* Member Onboarding wizard */
.mo-field { width:100%; box-sizing:border-box; background:transparent; border:none; border-bottom:1px solid rgba(26,26,24,0.22); color:#1A1A18; font-family:'Courier Prime',monospace; font-size:15px; padding:11px 0; outline:none; }
.mo-field:focus { border-color:#1A1A18; }
.mo-check { display:flex; align-items:flex-start; gap:13px; cursor:pointer; padding:14px 0; border-bottom:1px solid rgba(26,26,24,0.1); }
.mo-check input { margin-top:3px; width:16px; height:16px; flex:none; accent-color:#7B2DFF; cursor:pointer; }
.mo-check span { font-size:13.5px; line-height:1.65; }
.mo-plan { position:relative; border:1px solid rgba(26,26,24,0.16); padding:24px 24px 22px; cursor:pointer; transition:border-color .3s ease, background .3s ease; }
.mo-plan[data-on="1"] { border-color:#1A1A18; background:rgba(26,26,24,0.03); }
.mo-primary { cursor:pointer; position:relative; overflow:hidden; z-index:0; display:inline-flex; align-items:center; gap:10px; background:#1A1A18; color:#EDEAE4; border:1px solid #1A1A18; font-family:'Courier Prime',monospace; font-size:13px; font-weight:700; padding:15px 26px; transition:color .45s ease; text-decoration:none; }
.mo-primary::before { content:""; position:absolute; inset:0; background:#EDEAE4; transform:scaleY(0); transform-origin:bottom; transition:transform .5s cubic-bezier(.4,0,.2,1); z-index:-1; }
.mo-primary::after { content:""; position:absolute; left:0; right:0; bottom:0; height:3px; background:linear-gradient(90deg,#7B2DFF 0 33.33%,#57E65A 0 66.66%,#FF6B00 0); opacity:0; transition:bottom .5s cubic-bezier(.4,0,.2,1), opacity .2s ease; z-index:1; }
.mo-primary:disabled { opacity:0.32; cursor:not-allowed; }
.mo-primary:not(:disabled):hover { color:#1A1A18; }
.mo-primary:not(:disabled):hover::before { transform:scaleY(1); }
.mo-primary:not(:disabled):hover::after { bottom:calc(100% - 3px); opacity:1; }
.mo-ghost { cursor:pointer; background:transparent; border:1px solid rgba(26,26,24,0.2); color:#1A1A18; font-family:'Courier Prime',monospace; font-size:12px; letter-spacing:0.08em; text-transform:uppercase; padding:14px 22px; transition:border-color .3s ease; }
.mo-ghost:hover { border-color:#1A1A18; }
