/* ================================================================
   TWOTEW v4 — Complete Custom CSS
   Sticky header · Native blocks only · Google Reviews styled
   Mobile-first: base → tablet 640px → desktop 900px
================================================================ */

/* ── CSS VARIABLES ── */
:root {
  --tw-ink:       #0b0b0b;
  --tw-ink-mid:   #161412;
  --tw-ink-soft:  #1e1b18;
  --tw-gold:      #c8973a;
  --tw-gold-lt:   #e0b86a;
  --tw-gold-pale: rgba(200,151,58,0.12);
  --tw-gold-line: rgba(200,151,58,0.28);
  --tw-cream:     #f0e9da;
  --tw-cream-dim: #b8ad9e;
  --tw-cream-mut: #6e6458;
  --tw-green:     #6dbf8a;
  --tw-red:       #8b2020;
  --tw-ease:      cubic-bezier(0.25,0.46,0.45,0.94);
  --tw-pad:       clamp(1.25rem,5vw,3rem);
  --tw-sec-pad:   clamp(4rem,10vw,7rem);
  --tw-max:       1100px;
  --tw-disp:      'Cormorant Garamond',Georgia,serif;
  --tw-body:      'Raleway',Helvetica,Arial,sans-serif;
}

/* ── GLOBAL RESET ── */
*,*::before,*::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  background: var(--tw-ink) !important;
  color: var(--tw-cream) !important;
  font-family: var(--tw-body) !important;
  font-weight: 300 !important;
  line-height: 1.8 !important;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
::-webkit-scrollbar { width: 4px; }
::-webkit-scrollbar-track { background: var(--tw-ink); }
::-webkit-scrollbar-thumb { background: var(--tw-gold); border-radius: 2px; }
::selection { background: var(--tw-gold); color: var(--tw-ink); }

/* Kill gap between top-level blocks */
.wp-site-blocks { display: flex; flex-direction: column; }
.wp-site-blocks > * { margin-block-start: 0 !important; margin-block-end: 0 !important; }

/* Editor background */
.editor-styles-wrapper { background: var(--tw-ink) !important; }
.block-editor-block-list__layout.is-root-container { background: var(--tw-ink) !important; }

/* em in headings = gold italic */
h1 em, h2 em, h3 em { color: var(--tw-gold-lt) !important; font-style: italic; }

/* ================================================================
   STICKY HEADER
================================================================ */
.tw-sticky-header {
  position: sticky !important;
  top: 0 !important;
  z-index: 1000 !important;
  width: 100% !important;
  max-width: none !important;
  padding: 1.2rem var(--tw-pad) !important;
  background: rgba(11,11,11,0.85) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  border-bottom: 1px solid transparent !important;
  transition: background 0.4s var(--tw-ease), border-color 0.4s var(--tw-ease), padding 0.4s var(--tw-ease) !important;
}
.tw-sticky-header.is-scrolled {
  background: rgba(11,11,11,0.97) !important;
  border-bottom-color: var(--tw-gold-line) !important;
  padding-top: 0.85rem !important;
  padding-bottom: 0.85rem !important;
}

/* Site logo */
.tw-logo .wp-block-site-title,
.tw-logo .wp-block-site-title a {
  font-family: var(--tw-disp) !important;
  font-size: 1.05rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--tw-gold) !important;
  text-decoration: none !important;
}

/* Nav links */
.tw-nav .wp-block-navigation__container { gap: 2.5rem !important; }
.tw-nav .wp-block-navigation-item a {
  font-size: 0.72rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--tw-cream-dim) !important;
  text-decoration: none !important;
  padding: 0 !important;
  transition: color 0.3s !important;
}
.tw-nav .wp-block-navigation-item a:hover { color: var(--tw-gold) !important; }

/* Enquire CTA pill */
.tw-nav-cta a {
  color: var(--tw-gold) !important;
  border: 1px solid var(--tw-gold-line) !important;
  padding: 0.4rem 1.1rem !important;
  transition: background 0.3s, border-color 0.3s !important;
}
.tw-nav-cta a:hover { background: var(--tw-gold-pale) !important; border-color: var(--tw-gold) !important; }

/* Mobile hamburger */
.wp-block-navigation__responsive-container-open svg,
.wp-block-navigation__responsive-container-close svg { color: var(--tw-cream) !important; }
.wp-block-navigation__responsive-container.is-menu-open {
  background: var(--tw-ink) !important;
  z-index: 2000 !important;
}
.wp-block-navigation__responsive-container.is-menu-open a {
  font-size: 1.1rem !important;
  color: var(--tw-cream) !important;
}

/* ================================================================
   HERO — watermark + glow via CSS pseudo-elements
================================================================ */
.tw-hero {
  position: relative !important;
  min-height: 100vh !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  padding: clamp(7rem,15vw,10rem) var(--tw-pad) clamp(5rem,8vw,7rem) !important;
  background: var(--tw-ink) !important;
  width: 100% !important;
}

/* Ambient radial glow */
.tw-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 65% 55% at 50% 55%, rgba(200,151,58,0.08) 0%, transparent 70%),
    radial-gradient(ellipse 80% 60% at 50% 100%, rgba(200,151,58,0.05) 0%, transparent 60%);
  pointer-events: none;
  z-index: 0;
}

/* Watermark kanji */
.tw-hero::after {
  content: '武道';
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -55%);
  font-family: var(--tw-disp);
  font-size: clamp(7rem,23vw,20rem);
  font-weight: 300;
  color: rgba(200,151,58,0.04);
  pointer-events: none;
  user-select: none;
  line-height: 1;
  white-space: nowrap;
  z-index: 0;
}

/* Hero inner content above pseudo-elements */
.tw-hero-inner {
  position: relative !important;
  z-index: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  width: 100% !important;
  max-width: 860px !important;
  margin: 0 auto !important;
  gap: 0 !important;
}

.tw-eyebrow {
  font-size: 0.62rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase !important;
  color: var(--tw-gold) !important;
  margin: 0 0 1.8rem !important;
  animation: twUp 0.8s 0.2s both;
}

.tw-hero-h1 {
  font-family: var(--tw-disp) !important;
  font-size: clamp(2.3rem,7vw,5.2rem) !important;
  font-weight: 300 !important;
  line-height: 1.1 !important;
  color: var(--tw-cream) !important;
  margin: 0 !important;
  animation: twUp 0.8s 0.4s both;
}

/* Gold rule */
.tw-rule,
.wp-block-separator.tw-rule {
  width: 60px !important;
  max-width: 60px !important;
  height: 0 !important;
  background: none !important;
  border: none !important;
  border-top: 1px solid var(--tw-gold-line) !important;
  margin: 2rem auto !important;
}
.tw-hero-inner .tw-rule { animation: twUp 0.8s 0.55s both; }

.tw-hero-sub {
  font-size: clamp(0.82rem,2vw,0.92rem) !important;
  color: var(--tw-cream-dim) !important;
  max-width: 470px !important;
  line-height: 1.9 !important;
  margin: 0 auto !important;
  animation: twUp 0.8s 0.65s both;
}

/* Badges */
.tw-badges {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 0.5rem !important;
  margin-top: 1.8rem !important;
  animation: twUp 0.8s 0.85s both;
}
.tw-badge {
  font-size: 0.58rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: var(--tw-cream-mut) !important;
  border: 0.5px solid rgba(110,100,88,0.4) !important;
  padding: 0.32rem 0.75rem !important;
  border-radius: 1px !important;
  margin: 0 !important;
  display: inline-block !important;
  line-height: 1.4 !important;
}
.tw-badge-no { color: var(--tw-red) !important; border-color: rgba(139,32,32,0.3) !important; }

/* Hero buttons */
.tw-hero-btns { margin-top: 2.5rem !important; animation: twUp 0.8s 1.05s both; }

.tw-btn-primary .wp-block-button__link {
  background: var(--tw-gold) !important;
  color: var(--tw-ink) !important;
  font-family: var(--tw-body) !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  padding: 0.9rem 2.2rem !important;
  border-radius: 1px !important;
  border: none !important;
  transition: background 0.3s, transform 0.3s !important;
}
.tw-btn-primary .wp-block-button__link:hover { background: var(--tw-gold-lt) !important; transform: translateY(-2px) !important; }

.tw-btn-ghost .wp-block-button__link {
  background: transparent !important;
  color: var(--tw-cream) !important;
  font-family: var(--tw-body) !important;
  font-size: 0.72rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  padding: 0.9rem 2.2rem !important;
  border: 1px solid var(--tw-gold-line) !important;
  border-radius: 1px !important;
  transition: border-color 0.3s, color 0.3s, transform 0.3s !important;
}
.tw-btn-ghost .wp-block-button__link:hover { border-color: var(--tw-gold) !important; color: var(--tw-gold) !important; transform: translateY(-2px) !important; }

/* ================================================================
   SECTION FOUNDATION
================================================================ */
.tw-section {
  width: 100% !important;
  padding: var(--tw-sec-pad) var(--tw-pad) !important;
}
.tw-section-dark { background: var(--tw-ink) !important; }
.tw-section-mid  { background: var(--tw-ink-mid) !important; }

/* Constrain inner content blocks */
.tw-section > .wp-block-group,
.tw-section > .wp-block-columns,
.tw-section > .wp-block-separator,
.tw-section > .wp-block-heading,
.tw-section > .wp-block-paragraph,
.tw-section > .tw-quote,
.tw-section > .tw-hindi,
.tw-section > .tw-rating-bar,
.tw-section > .tw-reviews-intro,
.tw-section > .tw-grw-wrapper {
  max-width: var(--tw-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  width: 100% !important;
}

/* Section label */
.tw-label {
  font-size: 0.6rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.35em !important;
  text-transform: uppercase !important;
  color: var(--tw-gold) !important;
  margin: 0 0 1rem !important;
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
  max-width: var(--tw-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.tw-label::before {
  content: '';
  display: inline-block;
  width: 24px; height: 1px;
  background: var(--tw-gold);
  flex-shrink: 0;
}

/* Section title */
.tw-section-title {
  font-family: var(--tw-disp) !important;
  font-size: clamp(2rem,4.5vw,3rem) !important;
  font-weight: 300 !important;
  line-height: 1.2 !important;
  color: var(--tw-cream) !important;
  margin: 0 0 0 !important;
  max-width: var(--tw-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.tw-section-intro {
  font-size: 0.85rem !important;
  color: var(--tw-cream-mut) !important;
  max-width: var(--tw-max) !important;
  line-height: 1.9 !important;
  margin: 0.75rem auto 0 !important;
}
.tw-body-text {
  color: var(--tw-cream-dim) !important;
  font-size: 0.88rem !important;
  line-height: 1.9 !important;
  margin: 0 0 1.4rem !important;
}

/* ================================================================
   PHILOSOPHY
================================================================ */
.tw-quote {
  position: relative !important;
  border-left: 2px solid var(--tw-gold-line) !important;
  border-top: 0.5px solid rgba(110,100,88,0.12) !important;
  padding: 2rem 2.5rem !important;
  max-width: var(--tw-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.tw-quote:first-of-type { border-top: none !important; }

.tw-qnum {
  font-family: var(--tw-disp) !important;
  font-size: 3.5rem !important;
  font-weight: 300 !important;
  color: rgba(200,151,58,0.09) !important;
  position: absolute !important;
  top: 1rem !important; right: 1.5rem !important;
  line-height: 1 !important;
  margin: 0 !important;
  user-select: none !important;
}

.tw-blockquote,
.wp-block-quote.tw-blockquote { border: none !important; padding: 0 !important; margin: 0 !important; }
.tw-blockquote p {
  font-family: var(--tw-disp) !important;
  font-style: italic !important;
  font-size: clamp(1.1rem,2.5vw,1.5rem) !important;
  font-weight: 300 !important;
  line-height: 1.6 !important;
  color: var(--tw-cream) !important;
  margin: 0 !important;
}
.tw-blockquote cite { display: none !important; }

.tw-hindi {
  background: var(--tw-gold-pale) !important;
  border-left: 2px solid var(--tw-gold) !important;
  padding: 1.5rem 2rem !important;
  margin-top: 4rem !important;
  max-width: var(--tw-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.tw-hindi-text { font-family: var(--tw-disp) !important; font-style: italic !important; font-size: 1rem !important; color: var(--tw-cream-dim) !important; margin: 0 0 0.5rem !important; }
.tw-hindi-trans { font-size: 0.75rem !important; color: var(--tw-cream-mut) !important; margin: 0 !important; }

/* ================================================================
   SENSEI / ABOUT
================================================================ */
.tw-about-cols { gap: clamp(2rem,6vw,5rem) !important; align-items: start !important; max-width: var(--tw-max) !important; margin: 0 auto !important; }
.tw-portrait-col { display: flex !important; flex-direction: column !important; align-items: center !important; }
.tw-portrait-frame {
  width: 100% !important;
  aspect-ratio: 3/4;
  background: var(--tw-ink-soft) !important;
  border: 1px solid var(--tw-gold-line) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: relative;
  overflow: hidden;
}
.tw-portrait-frame::before {
  content: '';
  position: absolute; inset: 10px;
  border: 0.5px solid rgba(200,151,58,0.18);
  pointer-events: none;
}
.tw-portrait-initials {
  font-family: var(--tw-disp) !important;
  font-size: clamp(3rem,8vw,5rem) !important;
  font-weight: 300 !important;
  color: var(--tw-gold-line) !important;
  letter-spacing: 0.1em !important;
  margin: 0 !important;
}
.tw-portrait-cap { font-size: 0.65rem !important; letter-spacing: 0.2em !important; text-transform: uppercase !important; color: var(--tw-cream-mut) !important; margin-top: 1rem !important; }

.tw-about-text .tw-rule { margin: 1.5rem 0 !important; }

.tw-credentials { margin-top: 2rem !important; }
.tw-cred-row {
  display: flex !important;
  align-items: baseline !important;
  gap: 0.75rem !important;
  padding: 0.6rem 0 !important;
  border-bottom: 0.5px solid rgba(110,100,88,0.12) !important;
  flex-wrap: wrap !important;
}
.tw-cred-row:last-child { border-bottom: none !important; }
.tw-cred-row p { margin: 0 !important; font-size: 0.78rem !important; line-height: 1.5 !important; }
.tw-cred-key { color: var(--tw-gold-lt) !important; font-weight: 500 !important; min-width: 160px !important; flex-shrink: 0 !important; }
.tw-cred-val { color: var(--tw-cream-mut) !important; }

/* ================================================================
   PROGRAMS
================================================================ */
.tw-prog-cols { gap: 2rem !important; align-items: start !important; max-width: var(--tw-max) !important; margin: 2rem auto 0 !important; }
.tw-prog-card {
  border: 1px solid var(--tw-gold-line) !important;
  padding: clamp(1.8rem,4vw,2.8rem) clamp(1.5rem,3vw,2.5rem) !important;
  background: var(--tw-ink) !important;
  position: relative;
  overflow: hidden;
  transition: border-color 0.4s var(--tw-ease);
}
.tw-prog-card::before {
  content: ''; position: absolute; top: 0; left: 0;
  width: 0; height: 2px; background: var(--tw-gold);
  transition: width 0.5s ease;
}
.tw-prog-card:hover::before { width: 100%; }
.tw-prog-card:hover { border-color: var(--tw-gold) !important; }
.tw-prog-closed { opacity: 0.72 !important; }
.tw-prog-closed:hover { border-color: rgba(200,151,58,0.2) !important; }
.tw-prog-closed:hover::before { width: 0 !important; }

.tw-prog-status { font-size: 0.6rem !important; font-weight: 600 !important; letter-spacing: 0.2em !important; text-transform: uppercase !important; margin: 0 0 1.4rem !important; }
.tw-status-open { color: var(--tw-green) !important; }
.tw-status-closed { color: var(--tw-cream-mut) !important; }

.tw-prog-name { font-family: var(--tw-disp) !important; font-size: clamp(1.3rem,3vw,1.75rem) !important; font-weight: 300 !important; line-height: 1.3 !important; color: var(--tw-cream) !important; margin: 0 0 0.6rem !important; }
.tw-prog-sub { font-size: 0.68rem !important; letter-spacing: 0.14em !important; text-transform: uppercase !important; color: var(--tw-gold) !important; margin: 0 0 1.8rem !important; }
.tw-prog-desc { font-size: 0.85rem !important; color: var(--tw-cream-dim) !important; line-height: 1.9 !important; margin: 0 0 1.8rem !important; }
.tw-prog-note { font-size: 0.75rem !important; font-style: italic !important; color: var(--tw-cream-mut) !important; line-height: 1.7 !important; margin: 0 0 1.8rem !important; }
.tw-prog-tag { font-size: 0.58rem !important; letter-spacing: 0.15em !important; text-transform: uppercase !important; padding: 0.28rem 0.7rem !important; border: 0.5px solid rgba(110,100,88,0.35) !important; color: var(--tw-cream-mut) !important; display: inline-block !important; margin: 0 !important; }

.tw-details { margin-bottom: 1.8rem !important; }
.tw-detail { display: flex !important; align-items: baseline !important; flex-wrap: wrap !important; gap: 0.5rem !important; padding: 0.4rem 0 !important; border-bottom: 0.5px solid rgba(110,100,88,0.1) !important; }
.tw-detail:last-child { border-bottom: none !important; }
.tw-detail p { margin: 0 !important; font-size: 0.78rem !important; line-height: 1.5 !important; }
.tw-dlabel { color: var(--tw-cream-mut) !important; font-weight: 500 !important; letter-spacing: 0.08em !important; min-width: 88px !important; flex-shrink: 0 !important; }
.tw-dval { color: var(--tw-cream-dim) !important; }

.tw-prog-list { list-style: none !important; padding: 0 !important; margin: 0 0 1.8rem !important; }
.wp-block-list.tw-prog-list li { display: flex !important; align-items: baseline !important; gap: 0.75rem !important; font-size: 0.82rem !important; color: var(--tw-cream-dim) !important; line-height: 1.6 !important; margin-bottom: 0.5rem !important; }
.wp-block-list.tw-prog-list li::before { content: '—'; color: var(--tw-gold); flex-shrink: 0; }
.wp-block-list.tw-prog-list li > * { margin: 0 !important; }

/* ================================================================
   GOOGLE REVIEWS — Rich Showcase plugin override to match theme
================================================================ */
.tw-reviews-section { background: var(--tw-ink) !important; }

.tw-reviews-intro {
  display: flex !important;
  align-items: center !important;
  gap: 2rem !important;
  flex-wrap: wrap !important;
  margin-bottom: 3rem !important;
  max-width: var(--tw-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.tw-rating-box {
  display: flex !important;
  align-items: center !important;
  gap: 1rem !important;
  padding: 1.2rem 1.8rem !important;
  border: 1px solid var(--tw-gold-line) !important;
  flex-shrink: 0 !important;
}
.tw-rating-num { font-family: var(--tw-disp) !important; font-size: 3rem !important; font-weight: 300 !important; color: var(--tw-gold) !important; line-height: 1 !important; margin: 0 !important; }
.tw-stars { color: var(--tw-gold) !important; font-size: 0.9rem !important; margin: 0 0 0.3rem !important; }
.tw-rating-meta { font-size: 0.62rem !important; color: var(--tw-cream-mut) !important; letter-spacing: 0.08em !important; margin: 0 !important; }
.tw-rating-note { font-size: 0.82rem !important; color: var(--tw-cream-mut) !important; max-width: 360px !important; line-height: 1.9 !important; margin: 0 !important; }

.tw-grw-wrapper { max-width: var(--tw-max) !important; margin: 0 auto !important; }

/* ─── Rich Showcase for Google Reviews — full dark theme override ─── */

/* Outer container */
.grw-container, #grw-wr, .grw-wr { background: transparent !important; }

/* Each review card */
.grw-ri,
.grw-rr {
  background: var(--tw-ink-soft) !important;
  border: 0.5px solid rgba(110,100,88,0.25) !important;
  border-radius: 2px !important;
  padding: 1.8rem !important;
  color: var(--tw-cream-dim) !important;
}

/* Review text */
.grw-ri .grw-rr-rcnt,
.grw-ri .grw-rr-txt,
.grw-rr p,
.grw-rr span:not(.grw-st-on):not(.grw-st-off) {
  color: var(--tw-cream-dim) !important;
  font-family: var(--tw-disp) !important;
  font-style: italic !important;
  font-size: 0.93rem !important;
  line-height: 1.75 !important;
}

/* Reviewer name */
.grw-ri .grw-rr-anm,
.grw-rr .grw-rr-anm,
.grw-ra .grw-rr-anm { color: var(--tw-cream) !important; font-family: var(--tw-body) !important; font-style: normal !important; font-weight: 500 !important; font-size: 0.82rem !important; letter-spacing: 0.06em !important; }

/* Stars filled */
.grw-st-on { color: var(--tw-gold) !important; }
/* Stars empty */
.grw-st-off { color: var(--tw-cream-mut) !important; }

/* Review date */
.grw-ri .grw-rr-adt,
.grw-rr .grw-rr-adt { color: var(--tw-cream-mut) !important; font-size: 0.62rem !important; letter-spacing: 0.1em !important; }

/* Avatar circle fallback */
.grw-ri .grw-rr-avt,
.grw-rr .grw-rr-avt {
  border: 1px solid var(--tw-gold-line) !important;
  background: var(--tw-gold-pale) !important;
}

/* "Powered by Google" text and logo area */
.grw-pb, .grw-powered { opacity: 0.4 !important; filter: invert(0.6) !important; }

/* Overall rating display at top */
.grw-total-stars .grw-st-on { color: var(--tw-gold) !important; }
.grw-total-box, .grw-tb { color: var(--tw-cream) !important; font-family: var(--tw-disp) !important; }
.grw-total-box .grw-tb-rn,
.grw-total-num { font-size: 3rem !important; font-weight: 300 !important; color: var(--tw-gold) !important; }

/* Slider / navigation arrows */
.grw-arrow, .grw-nav-btn {
  background: var(--tw-gold-pale) !important;
  border: 1px solid var(--tw-gold-line) !important;
  color: var(--tw-gold) !important;
  border-radius: 1px !important;
}
.grw-arrow:hover, .grw-nav-btn:hover { background: var(--tw-gold) !important; color: var(--tw-ink) !important; }

/* "Read more" link */
.grw-ri a, .grw-rr a { color: var(--tw-gold) !important; text-decoration: none !important; }
.grw-ri a:hover, .grw-rr a:hover { color: var(--tw-gold-lt) !important; }

/* Write a review CTA */
.grw-btn, .grw-write-btn {
  background: transparent !important;
  border: 1px solid var(--tw-gold-line) !important;
  color: var(--tw-gold) !important;
  font-family: var(--tw-body) !important;
  font-size: 0.65rem !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  border-radius: 1px !important;
  padding: 0.5rem 1.2rem !important;
  transition: background 0.3s, border-color 0.3s !important;
}
.grw-btn:hover, .grw-write-btn:hover { background: var(--tw-gold-pale) !important; border-color: var(--tw-gold) !important; }

/* ================================================================
   CONTACT
================================================================ */
.tw-contact-cols { gap: clamp(2.5rem,6vw,6rem) !important; align-items: start !important; max-width: var(--tw-max) !important; margin: 0 auto !important; }
.tw-contact-title { font-family: var(--tw-disp) !important; font-size: clamp(1.8rem,3.5vw,2.8rem) !important; font-weight: 300 !important; line-height: 1.2 !important; color: var(--tw-cream) !important; margin: 0 !important; }
.tw-contact-note { font-size: 0.82rem !important; color: var(--tw-cream-mut) !important; line-height: 1.8 !important; margin: 0 0 2rem !important; }

.tw-method {
  display: flex !important;
  align-items: center !important;
  gap: 1.25rem !important;
  padding: 1.2rem 1.5rem !important;
  border: 1px solid var(--tw-gold-line) !important;
  margin-bottom: 1rem !important;
  transition: background 0.3s, border-color 0.3s;
}
.tw-method:hover { background: var(--tw-gold-pale) !important; border-color: var(--tw-gold) !important; }
.tw-method .wp-block-group { gap: 0.2rem !important; }
.tw-method p { margin: 0 !important; }
.tw-method-icon { font-size: 1.1rem !important; color: var(--tw-gold) !important; width: 40px !important; height: 40px !important; min-width: 40px !important; border-radius: 50% !important; border: 1px solid var(--tw-gold-line) !important; display: flex !important; align-items: center !important; justify-content: center !important; }
.tw-method-label { font-size: 0.6rem !important; letter-spacing: 0.2em !important; text-transform: uppercase !important; color: var(--tw-cream-mut) !important; }
.tw-method-val { font-family: var(--tw-disp) !important; font-size: 1.05rem !important; color: var(--tw-cream) !important; }
.tw-method-val a { color: var(--tw-cream) !important; text-decoration: none !important; }
.tw-method-val a:hover { color: var(--tw-gold) !important; }

.tw-info-box { padding: clamp(1.5rem,4vw,3rem) !important; border: 1px solid rgba(110,100,88,0.22) !important; background: var(--tw-ink) !important; }
.tw-info-row { padding-bottom: 1.5rem !important; margin-bottom: 1.5rem !important; border-bottom: 0.5px solid rgba(110,100,88,0.12) !important; }
.tw-info-last { border-bottom: none !important; margin-bottom: 0 !important; padding-bottom: 0 !important; }
.tw-info-row p { margin: 0 !important; }
.tw-ilabel { font-size: 0.58rem !important; letter-spacing: 0.25em !important; text-transform: uppercase !important; color: var(--tw-gold) !important; font-weight: 500 !important; margin-bottom: 0.2rem !important; }
.tw-ival   { font-family: var(--tw-disp) !important; font-size: 1.1rem !important; color: var(--tw-cream) !important; font-weight: 300 !important; }
.tw-isub   { font-size: 0.7rem !important; color: var(--tw-cream-mut) !important; }

/* ================================================================
   FOOTER
================================================================ */
.tw-footer { background: var(--tw-ink) !important; border-top: 0.5px solid var(--tw-gold-line) !important; padding: 2.5rem var(--tw-pad) !important; }
.tw-footer-inner { max-width: var(--tw-max) !important; margin: 0 auto !important; display: flex !important; align-items: center !important; justify-content: space-between !important; flex-wrap: wrap !important; gap: 1.5rem !important; }
.tw-footer-logo .wp-block-site-title,
.tw-footer-logo a { font-family: var(--tw-disp) !important; font-size: 0.9rem !important; font-weight: 600 !important; letter-spacing: 0.15em !important; text-transform: uppercase !important; color: var(--tw-gold) !important; text-decoration: none !important; }
.tw-footer-nav .wp-block-navigation__container { display: flex !important; flex-wrap: wrap !important; gap: 0.5rem 1.75rem !important; justify-content: center !important; }
.tw-footer-nav .wp-block-navigation-item a { font-size: 0.63rem !important; letter-spacing: 0.14em !important; text-transform: uppercase !important; color: var(--tw-cream-mut) !important; text-decoration: none !important; padding: 0 !important; transition: color 0.3s !important; }
.tw-footer-nav .wp-block-navigation-item a:hover { color: var(--tw-gold) !important; }
.tw-footer-copy { text-align: right; }
.tw-copy-line { font-size: 0.68rem !important; color: var(--tw-cream-mut) !important; margin: 0 !important; }
.tw-copy-sub  { font-size: 0.6rem  !important; color: var(--tw-cream-mut) !important; margin: 0 !important; opacity: 0.55; }

/* ================================================================
   INNER PAGES
================================================================ */
.tw-inner-page { padding: clamp(7rem,15vw,10rem) var(--tw-pad) clamp(4rem,8vw,6rem) !important; min-height: 60vh !important; background: var(--tw-ink) !important; }
.tw-page-title { font-family: var(--tw-disp) !important; font-size: clamp(2rem,5vw,3.5rem) !important; font-weight: 300 !important; color: var(--tw-cream) !important; margin: 0 !important; }
.tw-post-card { padding: 2rem 0; border-bottom: 0.5px solid rgba(110,100,88,0.18); }
.tw-post-date { font-size: 0.65rem !important; color: var(--tw-cream-mut) !important; letter-spacing: 0.1em !important; }
.tw-post-title a { color: var(--tw-cream) !important; text-decoration: none !important; }
.tw-post-title a:hover { color: var(--tw-gold) !important; }
.tw-read-more a { font-size: 0.72rem !important; color: var(--tw-gold) !important; text-decoration: none !important; letter-spacing: 0.1em !important; }
.tw-post-nav { margin-top: 4rem !important; padding-top: 2rem !important; border-top: 0.5px solid rgba(110,100,88,0.18) !important; }
.tw-inner-page .wp-block-post-content p { color: var(--tw-cream-dim) !important; }
.tw-inner-page .wp-block-post-content h2,
.tw-inner-page .wp-block-post-content h3 { font-family: var(--tw-disp) !important; color: var(--tw-cream) !important; }

/* ================================================================
   SCROLL REVEAL ANIMATIONS
================================================================ */
.tw-reveal, .tw-reveal-left, .tw-reveal-right, .tw-reveal-up {
  opacity: 0;
  transition: opacity 0.8s var(--tw-ease), transform 0.8s var(--tw-ease);
}
.tw-reveal       { transform: translateY(18px); }
.tw-reveal-left  { transform: translateX(-22px); }
.tw-reveal-right { transform: translateX(22px);  }
.tw-reveal-up    { transform: translateY(26px);  }

.tw-delay-1 { transition-delay: 0.1s !important; }
.tw-delay-2 { transition-delay: 0.2s !important; }
.tw-delay-3 { transition-delay: 0.3s !important; }

.tw-reveal.is-visible,
.tw-reveal-left.is-visible,
.tw-reveal-right.is-visible,
.tw-reveal-up.is-visible { opacity: 1 !important; transform: none !important; }

/* ── KEYFRAMES ── */
@keyframes twUp {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: none; }
}
@keyframes twPulse { 0%,100%{opacity:1} 50%{opacity:0.2} }

/* ================================================================
   RESPONSIVE — TABLET  640px–899px
================================================================ */
@media (min-width: 640px) and (max-width: 899px) {
  .tw-about-cols { flex-direction: column !important; }
  .tw-portrait-col, .tw-about-text { width: 100% !important; flex-basis: 100% !important; }
  .tw-portrait-frame { max-width: 280px !important; margin: 0 auto !important; }
  .tw-contact-cols { flex-direction: column !important; }
  .tw-contact-left, .tw-contact-right { width: 100% !important; }
  .tw-footer-inner { justify-content: flex-start !important; }
  .tw-footer-copy { text-align: left !important; }
}

/* ================================================================
   RESPONSIVE — MOBILE  < 640px
================================================================ */
@media (max-width: 639px) {
  .tw-hero { padding-top: 7rem !important; }
  .tw-hero-h1 br { display: none; }
  .tw-hero-btns { flex-direction: column !important; width: 100% !important; }
  .tw-hero-btns .wp-block-button { width: 100% !important; }
  .tw-hero-btns .wp-block-button__link { width: 100% !important; text-align: center !important; display: block !important; }

  .tw-quote { padding: 1.8rem 1.25rem !important; }
  .tw-qnum  { font-size: 2.5rem !important; }
  .tw-hindi { padding: 1.25rem !important; }

  .tw-about-cols { flex-direction: column !important; }
  .tw-portrait-col, .tw-about-text { width: 100% !important; flex-basis: 100% !important; }
  .tw-portrait-frame { max-width: 240px !important; margin: 0 auto !important; }

  .tw-prog-cols { flex-direction: column !important; }
  .tw-prog-cols .wp-block-column { width: 100% !important; flex-basis: 100% !important; }

  .tw-reviews-intro { flex-direction: column !important; align-items: flex-start !important; }

  .tw-contact-cols { flex-direction: column !important; }
  .tw-contact-left, .tw-contact-right { width: 100% !important; }
  .tw-contact-title br { display: none !important; }
  .tw-info-box { padding: 1.5rem !important; }

  .tw-footer-inner { flex-direction: column !important; align-items: flex-start !important; }
  .tw-footer-copy { text-align: left !important; }

  .tw-cred-key { min-width: 100% !important; }
  .tw-section-title br { display: none !important; }
}

/* ── REDUCE MOTION ── */
@media (prefers-reduced-motion: reduce) {
  .tw-reveal,.tw-reveal-left,.tw-reveal-right,.tw-reveal-up,
  .tw-eyebrow,.tw-hero-h1,.tw-hero-sub,.tw-badges,.tw-hero-btns,
  .tw-hero-inner .tw-rule { opacity:1 !important; transform:none !important; animation:none !important; transition:none !important; }
}
