:root{--ink:#111;--paper:#fff;--muted:#6e6e68;--line:#dcdcd5;--acid:#d9ff57}html,body{margin:0;padding:0}.wp-site-blocks{margin:0;padding:0}.wp-site-blocks>*{margin-block-start:0;margin-block-end:0}.wp-block-shortcode{margin:0;padding:0}.wp-block-shortcode>.taj-site{margin:0}.taj-site{margin:0;padding:0}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,sans-serif}.taj-site{overflow:hidden}.taj-site a{color:inherit;text-decoration:none}.taj-hero{height:100svh;min-height:680px;position:relative;background:#fff}.taj-film{position:absolute;left:0;top:5.5vh;bottom:5.5vh;width:61vw;overflow:hidden;background:#ddd}.taj-film:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.08),transparent 65%)}.taj-film video{width:100%;height:100%;object-fit:cover}.taj-header{position:absolute;z-index:4;right:5vw;top:5.5vh;width:32vw;min-width:390px;padding-top:3px;display:flex;flex-direction:column;align-items:flex-end}.taj-brand{font-family:Arial,sans-serif;font-weight:800;font-size:clamp(24px,2.2vw,38px);letter-spacing:-.105em;margin-bottom:6vh}.taj-nav{display:flex;flex-direction:column;align-items:flex-end;gap:7px;font-size:clamp(16px,1.15vw,20px);font-weight:600}.taj-nav a{position:relative}.taj-nav a:before{content:"";position:absolute;right:calc(100% + 10px);top:50%;width:0;height:1px;background:#111;transition:.25s}.taj-nav a:hover:before{width:26px}.taj-head-cta{margin-top:4vh;border:1.5px solid #111;padding:14px 17px;min-width:190px;display:flex;justify-content:space-between;font-weight:700;transition:.25s}.taj-head-cta:hover{background:#111;color:#fff}.taj-menu{display:none}.taj-hero-copy{position:absolute;z-index:3;right:5vw;bottom:6vh;width:34vw;max-width:620px}.taj-kicker{text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:700;margin:0 0 14px}.taj-hero-copy h1{font-size:clamp(34px,3.4vw,64px);line-height:.98;letter-spacing:-.055em;margin:0 0 18px;white-space:nowrap}.taj-hero-copy>p:last-child{font-size:clamp(13px,1vw,17px);line-height:1.45;margin:0;color:#3f3f3b}.taj-intro{min-height:92vh;padding:12vh 6vw 10vh 14vw;position:relative;display:grid;grid-template-columns:80px 1.2fr .8fr;gap:4vw;align-items:start;border-top:1px solid var(--line)}.taj-index{font-size:12px;border-top:1px solid #111;padding-top:10px}.taj-intro h2{font-size:clamp(52px,7vw,120px);line-height:.88;letter-spacing:-.07em;margin:0;max-width:900px}.taj-intro p{font-size:clamp(18px,1.55vw,26px);line-height:1.4;margin:35vh 0 0}.taj-arrow{position:absolute;right:6vw;bottom:9vh;border-bottom:1px solid #111;padding:0 0 8px;width:260px;display:flex;justify-content:space-between;font-weight:700}.taj-work{padding:12vh 5vw 16vh}.taj-section-head{display:flex;justify-content:space-between;align-items:flex-start;border-top:1px solid #111;padding-top:12px;margin-bottom:11vh}.taj-section-head span{font-size:12px;text-transform:uppercase;letter-spacing:.12em}.taj-section-head p{width:38%;margin:0;font-size:clamp(18px,1.5vw,25px)}.taj-project{display:grid;align-items:end;margin-bottom:18vh}.taj-project figure{margin:0;overflow:hidden;background:#eee}.taj-project img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .7s ease}.taj-project:hover img{transform:scale(1.025)}.taj-project span,.taj-project p{font-size:12px;text-transform:uppercase;letter-spacing:.08em}.taj-project h3{font-size:clamp(30px,4vw,70px);line-height:.98;letter-spacing:-.055em;margin:18px 0}.taj-project-a{grid-template-columns:68% 25%;gap:5%;}.taj-project-a figure{height:72vh}.taj-project-b{grid-template-columns:31% 55%;gap:10%;margin-left:7vw}.taj-project-b figure{height:82vh}.taj-project-c{grid-template-columns:46% 36%;gap:10%;margin-left:30vw}.taj-project-c figure{height:58vh}.taj-method{background:#111;color:#fff;padding:11vh 5vw 12vh;display:grid;grid-template-columns:44% 1fr;gap:7vw;align-items:start}.taj-method-head{position:sticky;top:8vh;display:grid;grid-template-columns:70px 1fr;column-gap:24px}.taj-method-head .taj-index{grid-column:1;border-color:#777;margin:0}.taj-method-head>p{grid-column:2;margin:0;text-transform:uppercase;font-size:12px;letter-spacing:.12em}.taj-method-head h2{grid-column:1/-1;font-size:clamp(48px,5.7vw,92px);line-height:.91;letter-spacing:-.06em;margin:11vh 0 5vh}.taj-method-head>span{grid-column:2;max-width:390px;color:#aaa;font-size:15px;line-height:1.55}.taj-steps{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #555;border-left:1px solid #555}.taj-steps article{min-height:36vh;padding:30px;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid #555;border-bottom:1px solid #555;transition:background .25s,color .25s}.taj-steps article:hover{background:#fff;color:#111}.taj-steps b{font-size:12px;font-weight:500}.taj-steps h4{font-size:clamp(27px,2.4vw,40px);letter-spacing:-.04em;margin:0 0 14px}.taj-steps p{margin:0;color:#aaa;font-size:14px;line-height:1.5;max-width:270px}.taj-steps article:hover p{color:#555}.taj-collage{height:125vh;min-height:850px;position:relative;padding:10vh 5vw}.taj-collage-copy{position:absolute;left:5vw;top:10vh;width:48vw;z-index:2}.taj-collage-copy span{font-size:12px;text-transform:uppercase}.taj-collage-copy h2{font-size:clamp(45px,6vw,100px);line-height:.9;letter-spacing:-.065em;margin:25px 0}.taj-collage img{position:absolute;object-fit:cover}.taj-collage .c1{width:42vw;height:56vh;left:5vw;bottom:9vh}.taj-collage .c2{width:28vw;height:42vh;right:6vw;top:12vh}.taj-collage .c3{width:21vw;height:31vh;right:24vw;bottom:5vh;border:12px solid #fff}.taj-journal{padding:12vh 5vw 16vh;background:#f2f2ed}.taj-journal-grid{display:grid;grid-template-columns:1.25fr .8fr .8fr;gap:2.5vw;align-items:start}.taj-post{display:block}.taj-post img,.taj-post-ph{width:100%;aspect-ratio:4/5;object-fit:cover;background:#ccc}.taj-post:nth-child(2){margin-top:16vh}.taj-post:nth-child(3){margin-top:5vh}.taj-post-ph.p1{background:#c9c9c3}.taj-post-ph.p2{background:#bdbdb6}.taj-post-ph.p3{background:#d2d2ca}.taj-post span{display:block;font-size:11px;margin-top:18px;text-transform:uppercase}.taj-post h3{font-size:clamp(22px,2vw,34px);line-height:1.08;letter-spacing:-.035em;margin:12px 0 25px}.taj-post em{font-style:normal;font-weight:700;font-size:13px}.taj-contact{min-height:92vh;padding:11vh 5vw;display:grid;grid-template-columns:1.35fr .65fr;align-items:end;border-top:1px solid var(--line)}.taj-contact span{font-size:12px;text-transform:uppercase}.taj-contact h2{font-size:clamp(76px,10vw,180px);line-height:.78;letter-spacing:-.085em;margin:6vh 0 0}.taj-contact-side{padding-bottom:1vh}.taj-contact-side>p{font-size:clamp(18px,1.55vw,26px);line-height:1.4;margin:0 0 8vh}.taj-contact-side>a{display:flex;justify-content:space-between;border-top:1px solid #111;border-bottom:1px solid #111;padding:20px 0;font-size:clamp(18px,1.4vw,24px);font-weight:700}.taj-contact-side small{display:block;margin-top:5vh;color:var(--muted)}.taj-footer{background:#111;color:#fff;padding:7vh 5vw 5vh;min-height:56vh;display:flex;flex-direction:column;justify-content:space-between}.taj-footer-mark{font-size:clamp(90px,16.5vw,300px);font-weight:800;letter-spacing:-.105em;line-height:.7;white-space:nowrap}.taj-footer-mark span{color:var(--acid)}.taj-footer-meta{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;border-top:1px solid #444;padding-top:22px}.taj-footer-meta p{margin:0;color:#bbb}.taj-footer-meta>div{display:flex;gap:28px}.taj-footer-meta small{color:#888}
@media(max-width:800px){.taj-hero{min-height:100svh;color:#fff;background:#111}.taj-film{inset:0;width:100%;height:100%}.taj-film:after{background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,.08) 45%,rgba(0,0,0,.5))}.taj-header{left:0;right:0;top:0;width:auto;min-width:0;padding:20px;display:flex;flex-direction:row;align-items:center;justify-content:space-between}.taj-brand{font-family:Arial,sans-serif;font-weight:800;font-size:23px;letter-spacing:-.105em;margin:0;color:#fff}.taj-nav{position:absolute;top:0;left:0;width:100%;height:100svh;background:#111;color:#fff;display:flex;align-items:flex-start;justify-content:center;padding:20vw;gap:14px;transform:translateY(-105%);transition:.4s;z-index:-1;font-size:34px}.taj-nav.is-open{transform:none}.taj-head-cta{display:none}.taj-menu{display:flex;border:0;background:transparent;width:42px;height:42px;padding:11px 7px;flex-direction:column;justify-content:center;gap:7px;z-index:5}.taj-menu i{height:2px;background:#fff;width:100%;display:block}.taj-hero-copy{left:20px;right:20px;bottom:28px;width:auto}.taj-hero-copy h1{font-size:43px;white-space:normal;max-width:330px}.taj-hero-copy>p:last-child{color:#eee;font-size:13px}.taj-intro{min-height:100svh;padding:12vh 20px 8vh;display:block}.taj-index{width:50px;margin-bottom:9vh}.taj-intro h2{font-size:57px}.taj-intro p{margin:9vh 0 0;font-size:19px;max-width:88%}.taj-arrow{left:20px;right:auto;bottom:7vh;width:220px}.taj-work{padding:10vh 20px}.taj-section-head{margin-bottom:8vh}.taj-section-head p{width:55%;font-size:16px}.taj-project,.taj-project-a,.taj-project-b,.taj-project-c{display:block;margin:0 0 15vh}.taj-project figure,.taj-project-a figure,.taj-project-b figure,.taj-project-c figure{height:60vh;margin-bottom:24px}.taj-project-b,.taj-project-c{display:flex;flex-direction:column}.taj-project-b figure{order:-1}.taj-project h3{font-size:38px}.taj-method{min-height:auto;padding:10vh 20px;display:block}.taj-method-title p{margin-bottom:6vh}.taj-method-title h2{font-size:47px;margin-bottom:10vh}.taj-steps>div{grid-template-columns:34px 90px 1fr;gap:10px}.taj-steps h4{font-size:17px}.taj-steps p{font-size:12px}.taj-collage{height:110vh;min-height:760px;padding:8vh 20px}.taj-collage-copy{left:20px;top:8vh;width:90%}.taj-collage-copy h2{font-size:50px}.taj-collage .c1{left:20px;bottom:7vh;width:70vw;height:43vh}.taj-collage .c2{right:20px;top:39vh;width:47vw;height:31vh}.taj-collage .c3{right:8vw;bottom:4vh;width:34vw;height:24vh;border-width:7px}.taj-journal{padding:10vh 20px}.taj-journal-grid{grid-template-columns:1fr;gap:10vh}.taj-post:nth-child(2),.taj-post:nth-child(3){margin-top:0}.taj-post img,.taj-post-ph{aspect-ratio:4/4.7}.taj-contact{min-height:100svh;padding:10vh 20px 7vh;display:flex;flex-direction:column;justify-content:space-between;align-items:stretch}.taj-contact h2{font-size:76px;margin-top:4vh}.taj-contact-side>p{font-size:19px;margin-bottom:6vh}.taj-footer{min-height:60vh;padding:7vh 20px 4vh}.taj-footer-mark{font-size:24vw}.taj-footer-meta{grid-template-columns:1fr 1fr;gap:35px}.taj-footer-meta>div{flex-direction:column;gap:8px}.taj-footer-meta small{grid-column:1/-1}.wp-site-blocks{padding:0}}

@media(max-width:800px){.taj-method{padding:10vh 20px;display:block}.taj-method-head{position:static;display:block}.taj-method-head .taj-index{margin-bottom:6vh}.taj-method-head>p{margin-bottom:4vh}.taj-method-head h2{font-size:48px;margin:0 0 4vh}.taj-method-head>span{display:block;max-width:90%;margin-bottom:8vh}.taj-steps{grid-template-columns:1fr;border-left:1px solid #555}.taj-steps article{min-height:250px;padding:24px}.taj-steps h4{font-size:32px}.taj-steps p{font-size:13px}}

/* v1.0.3 — hero viewport / top-gap hardening
   Keep the entire header + hero composition inside exactly one viewport and
   prevent WordPress global spacing from adding an invisible top offset. */
html, body { margin:0; padding:0; }
body .wp-site-blocks { margin:0; padding:0; }
body .wp-site-blocks > .wp-block-shortcode:first-child { margin-block-start:0; padding-block-start:0; }
body .wp-site-blocks > .wp-block-shortcode:last-child { margin-block-end:0; padding-block-end:0; }
body .wp-block-shortcode > .taj-site { margin-block-start:0; }
.taj-hero { height:100svh; min-height:0; margin:0; overflow:hidden; }
.taj-film { top:5vh; bottom:5vh; height:auto; }
.taj-header { top:5vh; }
.taj-hero-copy { bottom:5vh; }
@media (max-width:800px){
  .taj-hero { height:100svh; min-height:100svh; }
  .taj-film { inset:0; width:100%; height:100%; }
  .taj-header { top:0; }
  .taj-hero-copy { bottom:28px; }
}\n\n

/* v1.0.6 — front-page canvas audit + section refinements */
html,body{margin:0;padding:0;border:0;min-height:100%;}
body.home{margin:0;padding:0;border:0;}
body.home>.wp-site-blocks{margin:0;padding:0;border:0;min-height:0;}
body.home>.wp-site-blocks>.wp-block-shortcode{margin:0;padding:0;border:0;display:block;line-height:normal;}
body.home>.wp-site-blocks>.wp-block-shortcode>.taj-site{margin:0;padding:0;border:0;display:block;}
body.home .taj-site{margin-block:0;}
body.home .taj-hero{margin-top:0;}
body.home .taj-footer{margin-bottom:0;}

/* Section 01 — cleaner architectural editorial composition */
.taj-intro{min-height:100svh;padding:9vh 5vw 8vh;display:block;border-top:1px solid var(--line);}
.taj-intro-top{display:flex;align-items:flex-start;justify-content:space-between;}
.taj-intro-top .taj-index{width:72px;margin:0;}
.taj-intro-label{text-transform:uppercase;letter-spacing:.12em;font-size:11px;}
.taj-intro-main{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.45fr);gap:7vw;align-items:end;margin-top:15vh;}
.taj-intro h2{font-size:clamp(64px,8.4vw,148px);line-height:.82;letter-spacing:-.075em;margin:0;max-width:none;}
.taj-intro h2 em{font-style:normal;color:#8b8b84;}
.taj-intro-note{padding-bottom:1.5vh;}
.taj-intro-note p{font-size:clamp(16px,1.25vw,21px);line-height:1.48;margin:0 0 20px;max-width:430px;}
.taj-intro .taj-arrow{position:static;margin-top:6vh;width:100%;max-width:310px;}

/* Section 05 — journal becomes an intentional asymmetric editorial spread */
.taj-journal{padding:10vh 5vw 15vh;background:#f2f2ed;}
.taj-journal-head{display:grid;grid-template-columns:120px 1fr 30%;gap:3vw;align-items:start;border-top:1px solid #111;padding-top:14px;margin-bottom:10vh;}
.taj-journal-head>span{font-size:11px;text-transform:uppercase;letter-spacing:.12em;}
.taj-journal-head h2{font-size:clamp(48px,5.8vw,98px);line-height:.88;letter-spacing:-.065em;margin:0;}
.taj-journal-head p{font-size:clamp(16px,1.25vw,21px);line-height:1.45;margin:0;padding-top:5px;}
.taj-journal-grid{grid-template-columns:1.18fr .82fr .82fr;gap:3vw;}
.taj-post:nth-child(1){margin-top:0;}.taj-post:nth-child(2){margin-top:13vh;}.taj-post:nth-child(3){margin-top:4vh;}

/* Footer wordmark must never exceed the viewport */
.taj-footer{width:100%;max-width:100%;overflow:hidden;}
.taj-footer-mark{font-size:clamp(76px,14.4vw,260px);letter-spacing:-.095em;line-height:.72;max-width:100%;white-space:nowrap;}

@media(max-width:800px){
 body.home>.wp-site-blocks,body.home>.wp-site-blocks>.wp-block-shortcode,body.home .taj-site{margin:0;padding:0;}
 .taj-intro{min-height:100svh;padding:8vh 20px 7vh;}
 .taj-intro-main{display:block;margin-top:12vh;}
 .taj-intro h2{font-size:clamp(55px,17vw,78px);}
 .taj-intro-note{margin-top:10vh;}
 .taj-intro-note p{font-size:17px;max-width:92%;}
 .taj-intro .taj-arrow{margin-top:6vh;}
 .taj-journal{padding:9vh 20px 12vh;}
 .taj-journal-head{display:block;margin-bottom:8vh;}
 .taj-journal-head h2{font-size:52px;margin:6vh 0 4vh;}
 .taj-journal-head p{font-size:17px;max-width:88%;}
 .taj-journal-grid{grid-template-columns:1fr;gap:9vh;}
 .taj-post:nth-child(1),.taj-post:nth-child(2),.taj-post:nth-child(3){margin-top:0;}
 .taj-footer-mark{font-size:19.5vw;letter-spacing:-.085em;}
}

.taj-film-image{width:100%;height:100%;object-fit:cover;display:block}.taj-journal-query{margin:0}.taj-journal-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1.25fr .8fr .8fr;gap:2.5vw;align-items:start}.taj-journal-grid>li{margin:0;padding:0}.taj-journal-grid>li:nth-child(2){margin-top:16vh}.taj-journal-grid>li:nth-child(3){margin-top:5vh}.taj-post .wp-block-post-date{font-size:11px;margin-top:18px;text-transform:uppercase}.taj-post .wp-block-post-title{font-size:clamp(22px,2vw,34px);line-height:1.08;letter-spacing:-.035em;margin:12px 0 25px}.taj-post .wp-block-read-more{font-style:normal;font-weight:700;font-size:13px}@media(max-width:760px){.taj-journal-grid{grid-template-columns:1fr}.taj-journal-grid>li:nth-child(2),.taj-journal-grid>li:nth-child(3){margin-top:0}}


/* =========================================================
   v1.1.0 — viewport, accessibility, performance hardening
   Header + hero are one exact viewport on every screen size.
   ========================================================= */
html, body, .wp-site-blocks {
  margin: 0;
  padding: 0;
}

.taj-skip-link {
  position: fixed;
  left: 16px;
  top: 12px;
  z-index: 100000;
  transform: translateY(-160%);
  padding: 10px 14px;
  background: #fff;
  color: #111;
  border: 2px solid #111;
  text-decoration: none;
  font-weight: 700;
}
.taj-skip-link:focus {
  transform: translateY(0);
}

.taj-hero {
  position: relative;
  box-sizing: border-box;
  width: 100%;
  height: 100vh;
  min-height: 100vh;
  max-height: 100vh;
  margin: 0;
  overflow: hidden;
}
@supports (height: 100svh) {
  .taj-hero {
    height: 100svh;
    min-height: 100svh;
    max-height: 100svh;
  }
}
@supports (height: 100dvh) {
  .taj-hero {
    height: 100dvh;
    min-height: 100dvh;
    max-height: 100dvh;
  }
}

/* Logged-in WordPress toolbar must not make the composition taller than the viewport. */
body.admin-bar .taj-hero {
  height: calc(100vh - 32px);
  min-height: calc(100vh - 32px);
  max-height: calc(100vh - 32px);
}
@supports (height: 100dvh) {
  body.admin-bar .taj-hero {
    height: calc(100dvh - 32px);
    min-height: calc(100dvh - 32px);
    max-height: calc(100dvh - 32px);
  }
}
@media (max-width: 782px) {
  body.admin-bar .taj-hero {
    height: calc(100vh - 46px);
    min-height: calc(100vh - 46px);
    max-height: calc(100vh - 46px);
  }
  @supports (height: 100dvh) {
    body.admin-bar .taj-hero {
      height: calc(100dvh - 46px);
      min-height: calc(100dvh - 46px);
      max-height: calc(100dvh - 46px);
    }
  }
}

/* Desktop: header and hero content stay inside the same viewport box. */
.taj-film {
  top: clamp(20px, 5dvh, 64px);
  bottom: clamp(20px, 5dvh, 64px);
}
.taj-header {
  top: clamp(20px, 5dvh, 64px);
}
.taj-hero-copy {
  bottom: clamp(20px, 5dvh, 64px);
}
.taj-film-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Prevent the mobile drawer from using a different viewport calculation. */
@media (max-width: 800px) {
  .taj-film {
    inset: 0;
    width: 100%;
    height: 100%;
  }
  .taj-header {
    top: 0;
  }
  .taj-nav {
    height: 100vh;
    min-height: 100vh;
    max-height: 100vh;
  }
  @supports (height: 100svh) {
    .taj-nav {
      height: 100svh;
      min-height: 100svh;
      max-height: 100svh;
    }
  }
  @supports (height: 100dvh) {
    .taj-nav {
      height: 100dvh;
      min-height: 100dvh;
      max-height: 100dvh;
    }
  }

  .taj-menu {
    cursor: pointer;
    touch-action: manipulation;
  }
  .taj-menu:focus-visible,
  .taj-nav a:focus-visible,
  .taj-head-cta:focus-visible,
  .taj-brand:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 4px;
  }

  html.taj-menu-open,
  html.taj-menu-open body {
    overflow: hidden;
  }
}

/* Short landscape phones / small-height tablets: keep all hero copy inside one viewport. */
@media (max-height: 620px) and (min-width: 801px) {
  .taj-brand { margin-bottom: 2.5vh; font-size: clamp(20px, 1.9vw, 30px); }
  .taj-nav { gap: 4px; font-size: clamp(14px, 1vw, 17px); }
  .taj-head-cta { margin-top: 2vh; padding: 10px 14px; }
  .taj-hero-copy h1 { font-size: clamp(30px, 3vw, 48px); margin-bottom: 10px; }
  .taj-hero-copy > p:last-child { font-size: 12px; }
}
@media (max-width: 800px) and (max-height: 560px) {
  .taj-header { padding-top: 12px; padding-bottom: 12px; }
  .taj-brand { font-size: 20px; }
  .taj-hero-copy { bottom: 16px; }
  .taj-kicker { margin-bottom: 8px; font-size: 9px; }
  .taj-hero-copy h1 { font-size: clamp(30px, 9vw, 38px); margin-bottom: 10px; }
  .taj-hero-copy > p:last-child { font-size: 11px; line-height: 1.35; }
}

/* Visible keyboard focus and reduced-motion support. */
.taj-site a:focus-visible,
.taj-site button:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    scroll-behavior: auto;
    transition-duration: 0.01ms;
    animation-duration: 0.01ms;
    animation-iteration-count: 1;
  }
}


/* =========================================================
   v1.1.1 — WordPress-native header + right-edge hero media
   Site title and navigation are core Gutenberg blocks.
   Hero media is flush with the physical right viewport edge.
   ========================================================= */
.taj-hero {
  isolation: isolate;
}

/* Desktop/tablet media: no right gutter, no rounded edge, no phantom margin. */
@media (min-width: 801px) {
  .taj-film {
    left: auto;
    right: 0;
    width: 61vw;
    margin-right: 0;
    border-right: 0;
  }

  /* Keep copy/header readable on the opposite side of the media. */
  .taj-header,
  .taj-hero-copy {
    left: 5vw;
    right: auto;
    width: 31vw;
    max-width: 620px;
    align-items: flex-start;
    text-align: left;
  }
}

/* Core Site Title must inherit the original brand visual. */
.taj-header .wp-block-site-title.taj-brand {
  margin-top: 0;
  margin-left: 0;
  margin-right: 0;
}
.taj-header .wp-block-site-title.taj-brand a {
  color: inherit;
  text-decoration: none;
}

/* Core Navigation: desktop matches the existing vertical editorial header. */
.taj-header .wp-block-navigation.taj-nav {
  margin: 0;
  width: 100%;
}
.taj-header .wp-block-navigation.taj-nav .wp-block-navigation__container {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 7px;
}
.taj-header .wp-block-navigation.taj-nav .wp-block-navigation-item__content {
  position: relative;
  padding: 0;
  color: inherit;
  text-decoration: none;
  font: inherit;
}
@media (min-width: 801px) {
  .taj-header .wp-block-navigation.taj-nav .wp-block-navigation-item__content::before {
    content: "";
    position: absolute;
    left: calc(100% + 10px);
    top: 50%;
    width: 0;
    height: 1px;
    background: currentColor;
    transition: width .25s ease;
  }
  .taj-header .wp-block-navigation.taj-nav .wp-block-navigation-item__content:hover::before,
  .taj-header .wp-block-navigation.taj-nav .wp-block-navigation-item__content:focus-visible::before {
    width: 26px;
  }
}

/* Core button wrapper preserves the old CTA proportions. */
.taj-head-cta-wrap {
  margin-top: 4vh;
}
.taj-head-cta.wp-block-button {
  margin: 0;
}
.taj-head-cta.wp-block-button .wp-block-button__link {
  min-width: 190px;
  padding: 14px 17px;
  display: flex;
  justify-content: space-between;
  gap: 22px;
  border: 1.5px solid currentColor;
  border-radius: 0;
  background: transparent;
  color: inherit;
  font-weight: 700;
  transition: background-color .25s ease, color .25s ease;
}
.taj-head-cta.wp-block-button .wp-block-button__link:hover,
.taj-head-cta.wp-block-button .wp-block-button__link:focus-visible {
  background: #111;
  color: #fff;
}

/* Mobile: media remains edge-to-edge and Gutenberg handles the burger safely. */
@media (max-width: 800px) {
  .taj-film {
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
  }

  .taj-header {
    left: 0;
    right: 0;
    width: 100%;
    max-width: none;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }

  .taj-header .wp-block-site-title.taj-brand {
    margin: 0;
    color: #fff;
  }

  .taj-header .wp-block-navigation.taj-nav {
    width: auto;
    margin-left: auto;
  }
  .taj-header .wp-block-navigation.taj-nav .wp-block-navigation__responsive-container-open,
  .taj-header .wp-block-navigation.taj-nav .wp-block-navigation__responsive-container-close {
    color: #fff;
  }
  .taj-header .wp-block-navigation.taj-nav .wp-block-navigation__responsive-container.is-menu-open {
    width: 100vw;
    height: 100dvh;
    min-height: 100svh;
    padding: 24px;
    background: #111;
    color: #fff;
  }
  .taj-header .wp-block-navigation.taj-nav .wp-block-navigation__responsive-container-content {
    align-items: flex-start;
    justify-content: center;
    height: 100%;
  }
  .taj-header .wp-block-navigation.taj-nav .wp-block-navigation__responsive-container-content .wp-block-navigation__container {
    align-items: flex-start;
    gap: 14px;
    font-size: 34px;
  }

  .taj-head-cta-wrap {
    display: none;
  }
}


/* =========================================================
   v1.1.2 — corrected hero composition
   - Hero media is full-bleed from the left viewport edge to the right.
   - Header returns to the original right-side position on desktop.
   - Site title + menu stay WordPress-native Gutenberg blocks.
   - Native Gutenberg hamburger is forced visible on mobile.
   - Hero CTA sits beside the description.
   ========================================================= */

/* FULL-BLEED HERO MEDIA — exact viewport width, both physical edges. */
.taj-hero .taj-film {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  max-width: none;
  overflow: hidden;
}
.taj-hero .taj-film-image,
.taj-hero .taj-film video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
}

/* Preserve text readability without introducing any physical media gutter. */
.taj-hero .taj-film::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(255,255,255,.05) 0%, rgba(255,255,255,.04) 48%, rgba(255,255,255,.34) 100%);
}

/* DESKTOP — restore the original right-side header/copy location. */
@media (min-width: 801px) {
  .taj-header {
    left: auto;
    right: 5vw;
    top: clamp(20px, 5dvh, 64px);
    width: 32vw;
    min-width: 390px;
    max-width: none;
    align-items: flex-end;
    text-align: right;
  }

  .taj-header .wp-block-site-title.taj-brand {
    margin: 0 0 6vh;
    text-align: right;
  }

  .taj-header .wp-block-navigation.taj-nav {
    width: auto;
    margin: 0;
  }

  .taj-header .wp-block-navigation.taj-nav .wp-block-navigation__container {
    align-items: flex-end;
  }

  .taj-header .wp-block-navigation.taj-nav .wp-block-navigation-item__content::before {
    left: auto;
    right: calc(100% + 10px);
  }

  .taj-hero-copy {
    left: auto;
    right: 5vw;
    bottom: clamp(20px, 5dvh, 64px);
    width: min(46vw, 760px);
    max-width: 760px;
    text-align: left;
  }
}

/* CTA directly beside the hero description. */
.taj-hero-bottom {
  width: 100%;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: clamp(22px, 3vw, 52px);
  align-items: end;
}
.taj-hero-description {
  margin: 0;
  min-width: 0;
}
.taj-hero-cta-wrap {
  margin: 0;
  padding: 0;
  flex: 0 0 auto;
}
.taj-hero-cta.wp-block-button {
  margin: 0;
}
.taj-hero-cta.wp-block-button .wp-block-button__link {
  box-sizing: border-box;
  min-width: 188px;
  min-height: 50px;
  padding: 13px 16px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border: 1.25px solid currentColor;
  border-radius: 0;
  background: transparent;
  color: inherit;
  font-weight: 700;
  white-space: nowrap;
  transition: background-color .2s ease, color .2s ease;
}
.taj-hero-cta.wp-block-button .wp-block-button__link:hover,
.taj-hero-cta.wp-block-button .wp-block-button__link:focus-visible {
  background: #111;
  color: #fff;
}

/* MOBILE — preserve original header line and force Gutenberg burger visible. */
@media (max-width: 800px) {
  .taj-header {
    left: 0;
    right: 0;
    top: 0;
    width: 100%;
    min-width: 0;
    max-width: none;
    padding: 20px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    text-align: left;
  }

  .taj-header .wp-block-site-title.taj-brand {
    margin: 0;
    flex: 0 1 auto;
    color: #fff;
  }

  .taj-header .wp-block-navigation.taj-nav {
    width: auto;
    margin: 0 0 0 auto;
    flex: 0 0 auto;
  }

  .taj-header .wp-block-navigation.taj-nav .wp-block-navigation__responsive-container-open {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 8px;
    color: #fff;
    background: transparent;
    border: 0;
    z-index: 100001;
  }

  .taj-header .wp-block-navigation.taj-nav .wp-block-navigation__responsive-container:not(.is-menu-open) {
    display: none;
  }

  .taj-header .wp-block-navigation.taj-nav .wp-block-navigation__responsive-container.is-menu-open {
    display: flex;
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100dvh;
    min-height: 100svh;
    padding: 24px;
    background: #111;
    color: #fff;
    z-index: 100000;
  }

  .taj-header .wp-block-navigation.taj-nav .wp-block-navigation__responsive-container-close {
    display: flex;
    color: #fff;
  }

  .taj-hero-copy {
    left: 20px;
    right: 20px;
    bottom: 28px;
    width: auto;
    max-width: none;
  }

  .taj-hero-bottom {
    grid-template-columns: 1fr auto;
    gap: 14px;
    align-items: end;
  }

  .taj-hero-description {
    font-size: 12px;
    line-height: 1.4;
  }

  .taj-hero-cta.wp-block-button .wp-block-button__link {
    min-width: 0;
    min-height: 44px;
    padding: 11px 13px;
    gap: 12px;
    font-size: 12px;
  }
}

/* Very narrow phones: keep CTA beside description but prevent overflow. */
@media (max-width: 430px) {
  .taj-hero-bottom {
    grid-template-columns: minmax(0,1fr) auto;
    gap: 10px;
  }
  .taj-hero-description {
    font-size: 10.5px;
  }
  .taj-hero-cta.wp-block-button .wp-block-button__link {
    padding: 10px 11px;
    font-size: 11px;
    gap: 8px;
  }
}


/* =========================================================
   v1.1.3 — Section 1 + Section 2 share one viewport
   Section 1 = 50% viewport
   Section 2 = 50% viewport
   ========================================================= */

/* Section 1 = Studio / Approach */
.taj-intro {
  box-sizing: border-box;
  height: 50vh;
  min-height: 50vh;
  max-height: 50vh;
  margin: 0;
  overflow: hidden;
}

/* Section 2 = Selected Work heading / first viewport half */
.taj-work {
  box-sizing: border-box;
  min-height: 50vh;
  margin: 0;
}

/* Keep the first visual portion of Section 2 to exactly half a viewport
   while allowing project cards below it to continue naturally if present. */
.taj-work > .taj-section-head {
  box-sizing: border-box;
  height: 50vh;
  min-height: 50vh;
  max-height: 50vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin: 0;
  overflow: hidden;
}

/* Modern mobile browser viewport units. */
@supports (height: 50svh) {
  .taj-intro,
  .taj-work > .taj-section-head {
    height: 50svh;
    min-height: 50svh;
    max-height: 50svh;
  }
}

@supports (height: 50dvh) {
  .taj-intro,
  .taj-work > .taj-section-head {
    height: 50dvh;
    min-height: 50dvh;
    max-height: 50dvh;
  }
}

/* Preserve vertical centering of content inside Section 1. */
.taj-intro {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* Prevent legacy spacing from making 50 + 50 exceed one viewport. */
.taj-intro + .taj-work,
.taj-intro,
.taj-work > .taj-section-head {
  margin-top: 0;
  margin-bottom: 0;
}

/* Small-height devices: scale internal spacing instead of increasing height. */
@media (max-height: 620px) {
  .taj-intro {
    padding-top: clamp(16px, 3vh, 28px);
    padding-bottom: clamp(16px, 3vh, 28px);
  }

  .taj-intro h2 {
    font-size: clamp(28px, 5vh, 46px);
    line-height: 1;
  }

  .taj-intro-note {
    font-size: clamp(11px, 1.7vh, 14px);
  }

  .taj-work > .taj-section-head {
    padding-top: clamp(16px, 3vh, 28px);
    padding-bottom: clamp(16px, 3vh, 28px);
  }
}


/* =========================================================
   v1.1.4 — zero gap between every homepage section
   External spacing is removed; internal section padding stays intact.
   ========================================================= */
.taj-site,
.taj-site > section,
.taj-site > footer,
.taj-site > header,
.taj-site > .wp-block-group,
.taj-site > .wp-block-html {
  margin-block-start: 0;
  margin-block-end: 0;
}

.taj-site {
  display: block;
  gap: 0;
  row-gap: 0;
  column-gap: 0;
}

.taj-site > * + * {
  margin-top: 0;
}

/* Explicitly neutralise legacy adjacent-section spacing. */
.taj-hero + .taj-intro,
.taj-intro + .taj-work,
.taj-work + .taj-method,
.taj-method + .taj-collage,
.taj-collage + .taj-journal,
.taj-journal + .taj-contact,
.taj-contact + .taj-footer {
  margin-top: 0;
  margin-bottom: 0;
}

/* Gutenberg wrapper spacing must not reintroduce gaps. */
body.home .wp-site-blocks,
body.home .wp-site-blocks > main,
body.home .wp-site-blocks > main > .taj-site {
  gap: 0;
  row-gap: 0;
  margin: 0;
  padding-block: 0;
}

body.home .wp-site-blocks > * {
  margin-block-start: 0;
  margin-block-end: 0;
}

/* Prevent collapsed margins from headings/paragraphs leaking outside sections. */
.taj-site > section,
.taj-site > footer {
  display: flow-root;
}


/* =========================================================
   v1.1.5 — Section 1 + Section 2 full viewport redesign
   Each section is independently exactly one viewport.
   ========================================================= */

.taj-studio-v2,
.taj-work-v2 {
  box-sizing: border-box;
  width: 100%;
  height: 100vh;
  min-height: 100vh;
  max-height: 100vh;
  margin: 0;
  padding: 0;
  overflow: hidden;
  display: block;
}
@supports (height: 100svh) {
  .taj-studio-v2,
  .taj-work-v2 {
    height: 100svh;
    min-height: 100svh;
    max-height: 100svh;
  }
}
@supports (height: 100dvh) {
  .taj-studio-v2,
  .taj-work-v2 {
    height: 100dvh;
    min-height: 100dvh;
    max-height: 100dvh;
  }
}

.taj-vp-shell {
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  padding: clamp(24px, 4.2vw, 76px) clamp(20px, 5vw, 92px);
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: clamp(18px, 2.4vh, 30px);
}

.taj-vp-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-top: 1px solid currentColor;
  padding-top: 10px;
  font-size: 11px;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: .12em;
}
.taj-vp-index { font-weight: 800; }
.taj-vp-label { opacity: .65; }

/* Section 1 */
.taj-studio-v2 {
  background: #f1efe9;
  color: #111;
}
.taj-studio-grid {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(260px, .65fr);
  gap: clamp(36px, 8vw, 150px);
  align-items: center;
}
.taj-studio-copy,
.taj-studio-lead { min-width: 0; }
.taj-studio-eyebrow {
  margin: 0 0 clamp(14px, 2vh, 24px);
  font-size: clamp(10px, .75vw, 13px);
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: .14em;
  opacity: .58;
}
.taj-studio-v2 h2 {
  margin: 0;
  max-width: 13ch;
  font-size: clamp(46px, 5.8vw, 108px);
  line-height: .91;
  letter-spacing: -.065em;
  font-weight: 650;
}
.taj-studio-v2 h2 em { font-weight: 400; }
.taj-studio-lead {
  align-self: end;
  padding-bottom: clamp(2px, 2vh, 24px);
}
.taj-studio-lead p {
  margin: 0 0 16px;
  font-size: clamp(14px, 1vw, 18px);
  line-height: 1.55;
  max-width: 38ch;
}
.taj-studio-link {
  display: inline-flex;
  align-items: center;
  gap: 30px;
  margin-top: clamp(8px, 1.5vh, 18px);
  padding: 11px 0 8px;
  border-bottom: 1px solid currentColor;
  color: inherit;
  text-decoration: none;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.taj-principle-cards {
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  background: rgba(17,17,17,.18);
  border: 1px solid rgba(17,17,17,.18);
}
.taj-principle-card {
  min-height: clamp(146px, 19vh, 210px);
  padding: clamp(18px, 2vw, 32px);
  display: grid;
  grid-template-columns: auto 1fr;
  gap: clamp(18px, 2.4vw, 42px);
  align-items: start;
  background: #f1efe9;
}
.taj-card-no {
  font-size: 10px;
  line-height: 1;
  font-weight: 800;
  opacity: .45;
}
.taj-principle-card h3 {
  margin: 0 0 10px;
  font-size: clamp(22px, 1.7vw, 32px);
  line-height: 1;
  letter-spacing: -.035em;
}
.taj-principle-card p {
  margin: 0;
  max-width: 34ch;
  font-size: clamp(12px, .82vw, 15px);
  line-height: 1.45;
  opacity: .72;
}

/* Section 2 */
.taj-work-v2 {
  background: #111;
  color: #f6f3eb;
}
.taj-work-v2 .taj-vp-shell {
  grid-template-rows: auto auto 1fr;
}
.taj-work-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(250px, .65fr);
  gap: clamp(36px, 8vw, 150px);
  align-items: end;
}
.taj-work-heading h2 {
  margin: 0;
  max-width: 14ch;
  font-size: clamp(42px, 4.7vw, 88px);
  line-height: .93;
  letter-spacing: -.06em;
  font-weight: 650;
}
.taj-work-heading h2 em { font-weight: 400; }
.taj-work-heading > p {
  margin: 0 0 4px;
  max-width: 40ch;
  font-size: clamp(13px, .95vw, 17px);
  line-height: 1.5;
  opacity: .68;
}

.taj-project-cards {
  min-height: 0;
  display: grid;
  grid-template-columns: 1.35fr .825fr .825fr;
  gap: clamp(10px, 1.25vw, 24px);
}
.taj-project-card {
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  border: 1px solid rgba(255,255,255,.18);
  background: #181818;
  overflow: hidden;
}
.taj-project-card figure {
  min-height: 0;
  margin: 0;
  overflow: hidden;
  background: #262626;
}
.taj-project-card img {
  width: 100%;
  height: 100%;
  min-height: 0;
  display: block;
  object-fit: cover;
  transition: transform .5s ease;
}
.taj-project-card:hover img { transform: scale(1.015); }
.taj-project-card-copy { padding: clamp(14px, 1.35vw, 24px); }
.taj-project-card-meta {
  margin-bottom: 10px;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 9px;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: .11em;
  opacity: .5;
}
.taj-project-card h3 {
  margin: 0 0 7px;
  font-size: clamp(19px, 1.65vw, 30px);
  line-height: 1;
  letter-spacing: -.035em;
}
.taj-project-card p {
  margin: 0;
  max-width: 38ch;
  font-size: clamp(11px, .76vw, 14px);
  line-height: 1.35;
  opacity: .66;
}

/* Tablet */
@media (max-width: 1024px) {
  .taj-vp-shell {
    padding: 28px 30px;
    gap: 18px;
  }
  .taj-studio-grid,
  .taj-work-heading {
    grid-template-columns: 1.25fr .75fr;
    gap: 34px;
  }
  .taj-principle-card {
    padding: 18px;
    gap: 14px;
  }
  .taj-project-cards {
    grid-template-columns: 1.2fr .9fr .9fr;
    gap: 10px;
  }
}

/* Mobile: still EXACTLY one viewport per section. */
@media (max-width: 720px) {
  .taj-vp-shell {
    padding: 18px 16px;
    gap: 12px;
  }
  .taj-vp-head {
    padding-top: 7px;
    font-size: 9px;
  }

  .taj-studio-v2 .taj-vp-shell {
    grid-template-rows: auto auto 1fr;
  }
  .taj-studio-grid {
    grid-template-columns: 1fr;
    gap: 12px;
    align-content: start;
  }
  .taj-studio-eyebrow {
    margin-bottom: 8px;
    font-size: 9px;
  }
  .taj-studio-v2 h2 {
    max-width: 11ch;
    font-size: clamp(34px, 10.6vw, 48px);
    line-height: .93;
  }
  .taj-studio-lead {
    display: grid;
    grid-template-columns: 1fr auto;
    column-gap: 14px;
    align-items: end;
    padding: 0;
  }
  .taj-studio-lead p {
    grid-column: 1 / -1;
    margin-bottom: 7px;
    max-width: none;
    font-size: 11px;
    line-height: 1.35;
  }
  .taj-studio-lead p:nth-of-type(2) { display: none; }
  .taj-studio-link {
    margin-top: 2px;
    font-size: 9px;
    gap: 12px;
  }

  .taj-principle-cards {
    grid-template-columns: 1fr;
    grid-template-rows: repeat(3, minmax(0, 1fr));
    min-height: 0;
  }
  .taj-principle-card {
    min-height: 0;
    padding: 12px 13px;
    grid-template-columns: 24px 1fr;
    gap: 10px;
    align-items: center;
  }
  .taj-principle-card h3 {
    margin-bottom: 4px;
    font-size: 17px;
  }
  .taj-principle-card p {
    font-size: 9.5px;
    line-height: 1.25;
  }

  .taj-work-v2 .taj-vp-shell {
    grid-template-rows: auto auto 1fr;
  }
  .taj-work-heading {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .taj-work-heading h2 {
    max-width: 12ch;
    font-size: clamp(31px, 9.5vw, 44px);
    line-height: .94;
  }
  .taj-work-heading > p {
    font-size: 10px;
    line-height: 1.3;
    max-width: 48ch;
  }

  .taj-project-cards {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1.25fr .75fr;
    gap: 7px;
    min-height: 0;
  }
  .taj-project-card-featured {
    grid-column: 1 / -1;
  }
  .taj-project-card {
    grid-template-rows: minmax(0, 1fr) auto;
  }
  .taj-project-card-copy {
    padding: 9px 10px;
  }
  .taj-project-card-meta {
    margin-bottom: 5px;
    font-size: 7px;
  }
  .taj-project-card h3 {
    margin-bottom: 3px;
    font-size: 14px;
  }
  .taj-project-card p {
    font-size: 8.5px;
    line-height: 1.2;
  }
}

/* Short-height devices: shrink internal content, never section height. */
@media (max-height: 650px) {
  .taj-vp-shell {
    padding-top: 16px;
    padding-bottom: 16px;
    gap: 10px;
  }
  .taj-studio-v2 h2 {
    font-size: clamp(36px, 7vh, 70px);
  }
  .taj-studio-lead p {
    font-size: 11px;
    line-height: 1.3;
    margin-bottom: 8px;
  }
  .taj-principle-card {
    min-height: 116px;
    padding-top: 13px;
    padding-bottom: 13px;
  }
  .taj-work-heading h2 {
    font-size: clamp(34px, 6.5vh, 62px);
  }
  .taj-work-heading > p {
    font-size: 11px;
    line-height: 1.3;
  }
  .taj-project-card-copy {
    padding-top: 10px;
    padding-bottom: 10px;
  }
}

/* No inter-section gaps — authoritative. */
.taj-studio-v2,
.taj-work-v2,
.taj-studio-v2 + .taj-work-v2,
.taj-work-v2 + .taj-method {
  margin-top: 0;
  margin-bottom: 0;
}

/* =========================================================
   v1.1.6 — Customizer media support
   Hero and Section 2 may render local/remote images or videos.
   ========================================================= */
.taj-film > iframe,
.taj-film > video,
.taj-film > img,
.taj-project-card figure > iframe,
.taj-project-card figure > video,
.taj-project-card figure > img {
  width: 100%;
  height: 100%;
  min-width: 100%;
  min-height: 100%;
  margin: 0;
  border: 0;
  display: block;
  object-fit: cover;
}

.taj-film > iframe,
.taj-project-card figure > iframe {
  position: absolute;
  inset: 0;
  max-width: none;
}

.taj-project-card figure {
  position: relative;
}

.taj-project-card figure > video,
.taj-project-card figure > img {
  position: absolute;
  inset: 0;
}


/* =========================================================
   v1.1.7 — reference-inspired Section 1 + mirrored Section 2
   ========================================================= */
.taj-feature-section {
  box-sizing: border-box;
  width: 100%;
  height: 100vh;
  min-height: 100vh;
  max-height: 100vh;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: #f3f3f1;
  color: #111;
}
@supports (height: 100svh) {
  .taj-feature-section {
    height: 100svh;
    min-height: 100svh;
    max-height: 100svh;
  }
}
@supports (height: 100dvh) {
  .taj-feature-section {
    height: 100dvh;
    min-height: 100dvh;
    max-height: 100dvh;
  }
}
.taj-feature-inner {
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  padding: clamp(28px, 5vw, 92px);
  display: grid;
  grid-template-columns: minmax(0, 1.58fr) minmax(260px, 0.62fr);
  gap: clamp(32px, 4.8vw, 84px);
  align-items: center;
}
.taj-feature-inner-reverse {
  grid-template-columns: minmax(260px, 0.62fr) minmax(0, 1.58fr);
}
.taj-feature-media,
.taj-feature-copy { min-width: 0; }
.taj-feature-media {
  height: clamp(340px, 63vh, 640px);
  padding: clamp(14px, 2.4vw, 28px);
  background: #cec9bf;
  display: flex;
  align-items: stretch;
  justify-content: stretch;
}
.taj-feature-media img,
.taj-feature-media video,
.taj-feature-media iframe,
.taj-feature-media .taj-project-media,
.taj-feature-media .taj-custom-media {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  border: 0;
  background: #c1baae;
}
.taj-feature-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  max-width: 470px;
}
.taj-feature-kicker {
  margin: 0 0 clamp(26px, 3vh, 40px);
  font-size: clamp(12px, .92vw, 16px);
  line-height: 1.2;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.taj-feature-headline {
  margin: 0;
  font-size: clamp(48px, 5.35vw, 96px);
  line-height: .94;
  letter-spacing: -.06em;
  font-weight: 800;
  max-width: 8.5ch;
  text-wrap: balance;
}
.taj-feature-meta {
  margin: clamp(28px, 3vh, 42px) 0 0;
  font-size: clamp(14px, 1vw, 19px);
  line-height: 1.2;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.taj-feature-section-two .taj-feature-inner-reverse .taj-feature-copy {
  order: 1;
}
.taj-feature-section-two .taj-feature-inner-reverse .taj-feature-media {
  order: 2;
}

/* mobile/tablet */
@media (max-width: 960px) {
  .taj-feature-inner,
  .taj-feature-inner-reverse {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    gap: 18px;
    align-content: center;
  }
  .taj-feature-section-two .taj-feature-inner-reverse .taj-feature-copy,
  .taj-feature-section-two .taj-feature-inner-reverse .taj-feature-media {
    order: initial;
  }
  .taj-feature-media {
    height: min(46vh, 420px);
    padding: 14px;
  }
  .taj-feature-copy {
    max-width: 560px;
  }
  .taj-feature-kicker {
    margin-bottom: 14px;
    font-size: 11px;
  }
  .taj-feature-headline {
    font-size: clamp(36px, 8vw, 58px);
    max-width: 9ch;
  }
  .taj-feature-meta {
    margin-top: 16px;
    font-size: 11px;
  }
}
@media (max-width: 640px) {
  .taj-feature-inner,
  .taj-feature-inner-reverse {
    padding: 16px;
    gap: 14px;
  }
  .taj-feature-media {
    height: min(42vh, 290px);
    padding: 10px;
  }
  .taj-feature-kicker {
    font-size: 9px;
    margin-bottom: 10px;
  }
  .taj-feature-headline {
    font-size: clamp(28px, 8.8vw, 44px);
    max-width: 8.7ch;
  }
  .taj-feature-meta {
    margin-top: 12px;
    font-size: 9px;
    letter-spacing: .13em;
  }
}
@media (max-height: 680px) {
  .taj-feature-inner,
  .taj-feature-inner-reverse {
    padding-top: 20px;
    padding-bottom: 20px;
  }
  .taj-feature-media {
    height: clamp(270px, 56vh, 460px);
  }
  .taj-feature-headline {
    font-size: clamp(38px, 7vh, 72px);
  }
}

/* kill old section-1/2 design spacing if still present */
.taj-intro,
.taj-work,
.taj-studio-v2,
.taj-work-v2 {
  margin: 0;
}


/* =========================================================
   v1.1.8 — premium hero CTA refinement
   ========================================================= */
.taj-hero-cta.wp-block-button .wp-block-button__link {
  min-width: 214px;
  min-height: 67.2px;
  padding: 8px 8px 8px 18px;
  gap: 14px;
  border: 1px solid currentColor;
  border-radius: 999px;
  background: rgba(255,255,255,.22);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 10px 30px rgba(17,17,17,.08);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.taj-hero-cta-label {
  display: inline-flex;
  align-items: center;
  line-height: 1;
}
.taj-hero-cta-icon {
  width: 38px;
  height: 38px;
  border-radius: 999px;
  border: 1px solid currentColor;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 38px;
  background: rgba(255,255,255,.38);
  transition: transform .2s ease, background-color .2s ease, color .2s ease, border-color .2s ease;
}
.taj-hero-cta-icon svg {
  width: 16px;
  height: 16px;
  display: block;
}
.taj-hero-cta.wp-block-button .wp-block-button__link:hover,
.taj-hero-cta.wp-block-button .wp-block-button__link:focus-visible {
  background: #111;
  color: #fff;
  box-shadow: 0 14px 34px rgba(17,17,17,.18);
}
.taj-hero-cta.wp-block-button .wp-block-button__link:hover .taj-hero-cta-icon,
.taj-hero-cta.wp-block-button .wp-block-button__link:focus-visible .taj-hero-cta-icon {
  background: #fff;
  color: #111;
  border-color: #fff;
  transform: translateX(1px);
}
@media (max-width: 800px) {
  .taj-hero-cta.wp-block-button .wp-block-button__link {
    min-width: 0;
    min-height: 48px;
    padding: 6px 6px 6px 14px;
    gap: 10px;
    font-size: 11px;
    box-shadow: 0 8px 20px rgba(0,0,0,.16);
  }
  .taj-hero-cta-icon {
    width: 34px;
    height: 34px;
    flex-basis: 34px;
  }
  .taj-hero-cta-icon svg {
    width: 14px;
    height: 14px;
  }
}
@media (max-width: 430px) {
  .taj-hero-cta.wp-block-button .wp-block-button__link {
    padding-left: 12px;
    font-size: 10px;
    letter-spacing: .06em;
  }
  .taj-hero-cta-icon {
    width: 32px;
    height: 32px;
    flex-basis: 32px;
  }
}


/* =========================================================
   v1.1.9 — transparent overlay frames for all header + hero text
   ========================================================= */
.taj-header .wp-block-site-title.taj-brand a,
.taj-header .wp-block-navigation.taj-nav .wp-block-navigation-item__content,
.taj-kicker,
.taj-hero-copy h1,
.taj-hero-description {
  position: relative;
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  padding: 12px 16px;
  border: 1px solid rgba(17,17,17,.16);
  background: rgba(255,255,255,.24);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 10px 28px rgba(17,17,17,.06);
}

.taj-header .wp-block-site-title.taj-brand a {
  padding: 12px 15px 13px;
}

.taj-header .wp-block-navigation.taj-nav {
  gap: 10px;
}

.taj-header .wp-block-navigation.taj-nav .wp-block-navigation-item__content {
  justify-content: flex-end;
  text-align: right;
  padding: 10px 14px;
}

.taj-kicker {
  margin-bottom: 12px;
}

.taj-hero-copy h1 {
  display: inline-block;
  padding: 16px 18px 18px;
  margin-bottom: 14px;
}

.taj-hero-description {
  display: inline-block;
  padding: 14px 16px;
  color: inherit;
}

/* keep CTA consistent with the new text overlays */
.taj-hero-cta.wp-block-button .wp-block-button__link {
  background: rgba(255,255,255,.24);
  border-color: rgba(17,17,17,.26);
  box-shadow: 0 10px 28px rgba(17,17,17,.08);
}
.taj-hero-cta-icon {
  background: rgba(255,255,255,.52);
}

/* white-on-image mobile treatment */
@media (max-width: 800px) {
  .taj-header .wp-block-site-title.taj-brand a,
  .taj-header .wp-block-navigation.taj-nav .wp-block-navigation-item__content,
  .taj-kicker,
  .taj-hero-copy h1,
  .taj-hero-description {
    border-color: rgba(255,255,255,.2);
    background: rgba(255,255,255,.10);
    box-shadow: 0 8px 24px rgba(0,0,0,.18);
  }

  .taj-header .wp-block-site-title.taj-brand a {
    color: #fff;
    padding: 10px 12px 11px;
  }

  .taj-header .wp-block-navigation.taj-nav .wp-block-navigation__responsive-container-content .wp-block-navigation__container {
    gap: 12px;
    align-items: flex-start;
  }

  .taj-header .wp-block-navigation.taj-nav .wp-block-navigation-item__content {
    justify-content: flex-start;
    text-align: left;
    padding: 12px 14px;
    background: rgba(255,255,255,.08);
  }

  .taj-kicker {
    margin-bottom: 10px;
    padding: 8px 10px;
  }

  .taj-hero-copy h1 {
    padding: 12px 13px 13px;
    margin-bottom: 10px;
  }

  .taj-hero-description {
    padding: 10px 11px;
  }

  .taj-hero-cta.wp-block-button .wp-block-button__link {
    background: rgba(255,255,255,.12);
    border-color: rgba(255,255,255,.22);
  }
}


/* =========================================================
   v1.2.0 — section boundaries + Section 3 staircase grid
   ========================================================= */
/* Every homepage section has a clean divider and zero exterior gap. */
.taj-site > section,
.taj-site > .wp-block-html > section,
.taj-feature-section,
.taj-method,
.taj-collage,
.taj-journal,
.taj-contact,
.taj-footer {
  margin-top: 0;
  margin-bottom: 0;
  border-top: 1px solid rgba(17,17,17,.20);
}
.taj-hero { border-top: 0; }

/* Section 3 — exact one viewport, 1/2/3-card right-aligned staircase. */
.taj-method.taj-staircase {
  position: relative;
  box-sizing: border-box;
  width: 100%;
  height: 100vh;
  min-height: 100vh;
  max-height: 100vh;
  padding: clamp(22px,3.2vw,56px) clamp(18px,5vw,92px);
  display: block;
  overflow: hidden;
  background: #f2f1ed;
  color: #111;
}
@supports (height: 100svh) {
  .taj-method.taj-staircase {
    height: 100svh;
    min-height: 100svh;
    max-height: 100svh;
  }
}
@supports (height: 100dvh) {
  .taj-method.taj-staircase {
    height: 100dvh;
    min-height: 100dvh;
    max-height: 100dvh;
  }
}

.taj-staircase-label {
  position: absolute;
  left: clamp(18px,5vw,92px);
  top: clamp(22px,3.2vw,56px);
  z-index: 4;
  display: flex;
  gap: 18px;
  align-items: center;
  font-size: 10px;
  line-height: 1;
  letter-spacing: .13em;
  text-transform: uppercase;
  pointer-events: none;
}
.taj-staircase-label span:first-child { font-weight: 800; }
.taj-staircase-label span:last-child { opacity: .62; }

.taj-staircase-grid {
  --stair-gap: clamp(8px,1vw,18px);
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  grid-template-rows: repeat(3,minmax(0,1fr));
  gap: var(--stair-gap);
  align-items: stretch;
}

.taj-stair-card {
  position: relative;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  background: #d8d6d0;
  border: 1px solid rgba(17,17,17,.13);
}
.taj-stair-card-1 { grid-column: 3; grid-row: 1; }
.taj-stair-card-2 { grid-column: 2; grid-row: 2; }
.taj-stair-card-3 { grid-column: 3; grid-row: 2; }
.taj-stair-card-4 { grid-column: 1; grid-row: 3; }
.taj-stair-card-5 { grid-column: 2; grid-row: 3; }
.taj-stair-card-6 { grid-column: 3; grid-row: 3; }

.taj-stair-card img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transform: scale(1.002);
  transition: transform .45s ease;
}
.taj-stair-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,transparent 52%,rgba(0,0,0,.48) 100%);
  pointer-events: none;
}
.taj-stair-card:hover img { transform: scale(1.025); }

.taj-stair-card-copy {
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 14px;
  z-index: 2;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
  color: #fff;
}
.taj-stair-card-copy span {
  font-size: 9px;
  line-height: 1;
  letter-spacing: .13em;
  opacity: .72;
}
.taj-stair-card-copy h3 {
  margin: 0;
  font-size: clamp(17px,1.35vw,27px);
  line-height: 1;
  letter-spacing: -.035em;
  font-weight: 650;
  text-align: right;
}

/* Keep the 1/2/3 staircase logic on tablet and mobile too. */
@media (max-width: 760px) {
  .taj-method.taj-staircase {
    padding: 14px;
  }
  .taj-staircase-label {
    left: 14px;
    top: 14px;
    gap: 10px;
    font-size: 8px;
  }
  .taj-staircase-grid { --stair-gap: 6px; }
  .taj-stair-card-copy {
    left: 8px;
    right: 8px;
    bottom: 8px;
    gap: 8px;
  }
  .taj-stair-card-copy span { font-size: 6px; }
  .taj-stair-card-copy h3 { font-size: clamp(10px,3vw,15px); }
}

@media (max-height: 600px) {
  .taj-method.taj-staircase { padding-top: 14px; padding-bottom: 14px; }
  .taj-staircase-label { top: 14px; }
}


/* =========================================================
   v1.2.1 — raise Site Title + header menu
   ========================================================= */
@media (min-width: 801px) {
  .taj-header {
    top: 2.5vh;
  }

  .taj-header .wp-block-site-title.taj-brand {
    margin-bottom: 3vh;
  }

  .taj-header .wp-block-navigation.taj-nav {
    margin-top: 0;
  }
}

@media (max-width: 800px) {
  .taj-header {
    padding-top: 10px;
    padding-bottom: 10px;
  }

  .taj-header .wp-block-site-title.taj-brand {
    margin: 0;
  }

  .taj-header .wp-block-navigation.taj-nav {
    margin-top: 0;
  }
}


/* =========================================================
   v1.2.2 — Section 4 mirrored staircase (3 / 2 / 1, left aligned)
   ========================================================= */
.taj-collage.taj-staircase-reverse {
  position: relative;
  box-sizing: border-box;
  width: 100%;
  height: 100vh;
  min-height: 100vh;
  max-height: 100vh;
  padding: clamp(22px,3.2vw,56px) clamp(18px,5vw,92px);
  display: block;
  overflow: hidden;
  background: #111;
  color: #fff;
}
@supports (height: 100svh) {
  .taj-collage.taj-staircase-reverse {
    height: 100svh;
    min-height: 100svh;
    max-height: 100svh;
  }
}
@supports (height: 100dvh) {
  .taj-collage.taj-staircase-reverse {
    height: 100dvh;
    min-height: 100dvh;
    max-height: 100dvh;
  }
}

.taj-collage.taj-staircase-reverse .taj-staircase-label {
  color: #fff;
}

.taj-staircase-grid-reverse {
  --stair-gap: clamp(8px,1vw,18px);
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  grid-template-rows: repeat(3,minmax(0,1fr));
  gap: var(--stair-gap);
  align-items: stretch;
}

/* 3 cards across the top, 2 cards left on row two, 1 card left on row three. */
.taj-reverse-card-1 { grid-column: 1; grid-row: 1; }
.taj-reverse-card-2 { grid-column: 2; grid-row: 1; }
.taj-reverse-card-3 { grid-column: 3; grid-row: 1; }
.taj-reverse-card-4 { grid-column: 1; grid-row: 2; }
.taj-reverse-card-5 { grid-column: 2; grid-row: 2; }
.taj-reverse-card-6 { grid-column: 1; grid-row: 3; }

.taj-collage.taj-staircase-reverse .taj-stair-card {
  border-color: rgba(255,255,255,.17);
  background: #292929;
}

@media (max-width: 760px) {
  .taj-collage.taj-staircase-reverse {
    padding: 14px;
  }
  .taj-staircase-grid-reverse {
    --stair-gap: 6px;
  }
}

@media (max-height: 600px) {
  .taj-collage.taj-staircase-reverse {
    padding-top: 14px;
    padding-bottom: 14px;
  }
}


/* =========================================================
   v1.2.4 — Section 5/6 half viewport + Section 7/Footer half viewport
   ========================================================= */
.taj-testimonial,
.taj-latest-posts,
.taj-cta-seven,
.taj-footer-v2 {
  box-sizing:border-box;
  width:100%;
  height:50vh;
  min-height:50vh;
  max-height:50vh;
  margin:0;
  overflow:hidden;
  border-top:1px solid rgba(17,17,17,.20);
}
@supports (height:50svh){
  .taj-testimonial,.taj-latest-posts,.taj-cta-seven,.taj-footer-v2{height:50svh;min-height:50svh;max-height:50svh}
}
@supports (height:50dvh){
  .taj-testimonial,.taj-latest-posts,.taj-cta-seven,.taj-footer-v2{height:50dvh;min-height:50dvh;max-height:50dvh}
}

/* Section 5 — testimonial, warm editorial panel. */
.taj-testimonial{position:relative;padding:clamp(22px,3vw,52px) clamp(20px,5vw,92px);background:#e8e4dc;color:#111}
.taj-testimonial-label{display:flex;gap:18px;font-size:10px;letter-spacing:.13em;text-transform:uppercase;line-height:1}
.taj-testimonial-label span:first-child{font-weight:800}.taj-testimonial-label span:last-child{opacity:.62}
.taj-testimonial-grid{height:calc(100% - 20px);display:grid;grid-template-columns:.2fr 1.35fr .55fr;gap:clamp(24px,4vw,72px);align-items:center}
.taj-testimonial-mark{font-size:clamp(90px,12vw,210px);line-height:.5;font-weight:700;opacity:.22;align-self:center}
.taj-testimonial-quote{margin:0;font-size:clamp(30px,3.45vw,66px);line-height:.96;letter-spacing:-.055em;font-weight:650;max-width:20ch}
.taj-testimonial-person{align-self:end;padding-bottom:clamp(6px,2vh,24px);display:flex;flex-direction:column;gap:6px;border-top:1px solid rgba(17,17,17,.28);padding-top:12px}
.taj-testimonial-person strong{font-size:13px}.taj-testimonial-person span{font-size:10px;letter-spacing:.11em;text-transform:uppercase;opacity:.6}

/* Section 6 — latest posts, compact 50vh journal row. */
.taj-latest-posts{padding:clamp(20px,2.6vw,44px) clamp(20px,5vw,92px);background:#f5f5f2;color:#111;display:grid;grid-template-columns:.55fr 1.45fr;gap:clamp(28px,5vw,88px);align-items:stretch}
.taj-latest-head{min-width:0;display:flex;flex-direction:column;justify-content:space-between}
.taj-latest-label{display:flex;gap:18px;font-size:10px;letter-spacing:.13em;text-transform:uppercase}.taj-latest-label span:first-child{font-weight:800}.taj-latest-label span:last-child{opacity:.62}
.taj-latest-head h2{margin:auto 0 12px;font-size:clamp(34px,3.4vw,64px);line-height:.93;letter-spacing:-.055em}
.taj-latest-head p{margin:0;max-width:33ch;font-size:12px;line-height:1.45;opacity:.65}
.taj-latest-query{min-width:0;height:100%;margin:0}
.taj-latest-grid{height:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(10px,1.2vw,22px);list-style:none;margin:0;padding:0}
.taj-latest-grid>li{min-width:0;margin:0;padding:0}
.taj-latest-card{height:100%;display:grid;grid-template-rows:minmax(0,1fr) auto auto auto;align-content:stretch;border-left:1px solid rgba(17,17,17,.18);padding-left:clamp(10px,1.2vw,20px)}
.taj-latest-card .wp-block-post-featured-image{margin:0 0 12px;min-height:0;overflow:hidden}.taj-latest-card .wp-block-post-featured-image img{width:100%;height:100%;object-fit:cover;display:block}
.taj-latest-card .wp-block-post-date{margin:0 0 8px;font-size:9px;letter-spacing:.11em;text-transform:uppercase;opacity:.52}
.taj-latest-card .wp-block-post-title{margin:0;font-size:clamp(17px,1.4vw,26px);line-height:1;letter-spacing:-.035em}.taj-latest-card .wp-block-post-title a{text-decoration:none;color:inherit}
.taj-latest-card .wp-block-post-excerpt{margin:8px 0 0;font-size:10px;line-height:1.35;opacity:.62}.taj-latest-card .wp-block-post-excerpt__more-text{display:none}

/* Section 7 — CTA, exactly half viewport. */
.taj-contact.taj-cta-seven{padding:clamp(22px,3vw,50px) clamp(20px,5vw,92px);background:#111;color:#fff;display:grid;grid-template-rows:auto 1fr;gap:10px;align-items:stretch}
.taj-cta-seven-index{display:flex;gap:18px;font-size:10px;letter-spacing:.13em;text-transform:uppercase}.taj-cta-seven-index span:first-child{font-weight:800}.taj-cta-seven-index span:last-child{opacity:.58}
.taj-cta-seven-main{display:grid;grid-template-columns:1.35fr .65fr;gap:clamp(34px,7vw,120px);align-items:end}
.taj-cta-seven h2{margin:0;font-size:clamp(46px,5.5vw,102px);line-height:.88;letter-spacing:-.07em;max-width:12ch}
.taj-cta-seven-side{padding-bottom:2px}.taj-cta-seven-side p{margin:0 0 clamp(16px,3vh,28px);max-width:38ch;font-size:clamp(13px,1vw,17px);line-height:1.5;color:#c9c9c5}
.taj-cta-seven-button{width:100%;min-height:52px;padding:7px 8px 7px 18px;border:1px solid rgba(255,255,255,.48);border-radius:999px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:#fff;text-decoration:none;font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;background:rgba(255,255,255,.05)}
.taj-cta-seven-button svg{width:36px;height:36px;padding:9px;border-radius:50%;background:#fff;color:#111;flex:0 0 36px}

/* Footer — second half of the final viewport; Site Title is synced by JS. */
.taj-footer.taj-footer-v2{padding:clamp(22px,3vw,50px) clamp(20px,5vw,92px);background:#f3f1eb;color:#111;display:grid;grid-template-rows:1fr auto;min-height:0}
.taj-footer-top{display:flex;justify-content:space-between;align-items:flex-start;gap:30px}.taj-footer-site-title{font-size:clamp(72px,11vw,190px);line-height:.72;font-weight:800;letter-spacing:-.085em;white-space:nowrap;overflow:hidden}.taj-footer-top-link{font-size:10px;letter-spacing:.11em;text-transform:uppercase;border-bottom:1px solid currentColor;padding-bottom:7px}
.taj-footer-bottom{display:grid;grid-template-columns:1fr 1fr auto;gap:28px;align-items:end;border-top:1px solid rgba(17,17,17,.22);padding-top:14px}.taj-footer-bottom p{margin:0;font-size:12px;line-height:1.4}.taj-footer-links{display:flex;gap:24px;font-size:11px}.taj-footer-bottom small{font-size:10px;opacity:.55}

@media(max-width:800px){
 .taj-testimonial{padding:16px}.taj-testimonial-grid{grid-template-columns:44px 1fr;grid-template-rows:1fr auto;gap:12px 10px}.taj-testimonial-mark{font-size:72px}.taj-testimonial-quote{font-size:clamp(23px,7vw,38px);max-width:16ch}.taj-testimonial-person{grid-column:2;padding-top:8px;padding-bottom:0}
 .taj-latest-posts{padding:14px 16px;grid-template-columns:1fr;grid-template-rows:auto 1fr;gap:10px}.taj-latest-head{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:end}.taj-latest-head h2{margin:0;font-size:26px}.taj-latest-head p{display:none}.taj-latest-grid{gap:6px}.taj-latest-card{padding-left:7px}.taj-latest-card .wp-block-post-excerpt{display:none}.taj-latest-card .wp-block-post-title{font-size:12px}.taj-latest-card .wp-block-post-date{font-size:7px}
 .taj-contact.taj-cta-seven{padding:16px}.taj-cta-seven-main{grid-template-columns:1fr;gap:12px}.taj-cta-seven h2{font-size:clamp(34px,10vw,52px);max-width:11ch}.taj-cta-seven-side{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:end}.taj-cta-seven-side p{margin:0;font-size:10px}.taj-cta-seven-button{width:auto;min-height:44px;padding-left:12px;font-size:9px}.taj-cta-seven-button svg{width:30px;height:30px;flex-basis:30px;padding:7px}
 .taj-footer.taj-footer-v2{padding:16px}.taj-footer-site-title{font-size:clamp(54px,20vw,98px)}.taj-footer-bottom{grid-template-columns:1fr auto;gap:10px}.taj-footer-links{gap:12px;font-size:9px}.taj-footer-bottom small{grid-column:1/-1}.taj-footer-description{font-size:9px}
}
@media(max-height:620px){
 .taj-testimonial,.taj-latest-posts,.taj-cta-seven,.taj-footer-v2{padding-top:12px;padding-bottom:12px}
 .taj-testimonial-quote{font-size:clamp(24px,5vh,42px)}.taj-latest-head h2{font-size:30px}.taj-cta-seven h2{font-size:clamp(34px,7vh,58px)}.taj-footer-site-title{font-size:clamp(58px,14vh,105px)}
}


/* =========================================================
   v1.2.5 — Section 1/2 media height, testimonial carousel,
   editorial latest posts, premium CTA, restored footer.
   ========================================================= */

/* Section 1 + 2: taller media, tighter vertical breathing room. */
.taj-feature-section-one .taj-feature-media,
.taj-feature-section-two .taj-feature-media {
  height: clamp(520px, 76vh, 790px);
}
@media (max-width: 960px) {
  .taj-feature-section-one .taj-feature-media,
  .taj-feature-section-two .taj-feature-media { height: min(56vh, 560px); }
}
@media (max-width: 640px) {
  .taj-feature-section-one .taj-feature-media,
  .taj-feature-section-two .taj-feature-media { height: min(50vh, 380px); }
}

/* Section 5 — five testimonial carousel. */
.taj-testimonial-carousel {
  padding: clamp(20px,2.5vw,42px) clamp(20px,5vw,92px);
  display: grid;
  grid-template-rows: auto 1fr;
  gap: 10px;
  overflow: hidden;
}
.taj-testimonial-topbar { display:flex;justify-content:space-between;align-items:center;gap:20px; }
.taj-testimonial-controls { display:flex;align-items:center;gap:10px; }
.taj-testimonial-controls button {
  width:38px;height:38px;border:1px solid rgba(17,17,17,.25);border-radius:50%;background:transparent;color:#111;padding:0;display:grid;place-items:center;cursor:pointer;transition:.2s;
}
.taj-testimonial-controls button:hover,.taj-testimonial-controls button:focus-visible{background:#111;color:#fff;border-color:#111}
.taj-testimonial-controls svg{width:16px;height:16px}.taj-testimonial-counter{font-size:9px;letter-spacing:.12em;min-width:48px;text-align:center}.taj-testimonial-counter b{font-weight:800}
.taj-testimonial-viewport { width:100%;height:100%;min-height:0;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-inline:contain;touch-action:pan-x pan-y; }
.taj-testimonial-viewport::-webkit-scrollbar{display:none}
.taj-testimonial-track { height:100%;display:flex;gap:clamp(16px,2vw,30px); }
.taj-testimonial-slide {
  flex:0 0 100%;width:100%;height:100%;scroll-snap-align:start;scroll-snap-stop:always;display:grid;grid-template-columns:.18fr 1.35fr .55fr;gap:clamp(20px,4vw,72px);align-items:center;
}
.taj-testimonial-slide blockquote { margin:0;font-size:clamp(29px,3.35vw,64px);line-height:.96;letter-spacing:-.055em;font-weight:650;max-width:20ch; }
.taj-testimonial-slide .taj-testimonial-person { align-self:end;padding-bottom:clamp(4px,1.5vh,18px); }
@media(max-width:720px){
 .taj-testimonial-carousel{padding:14px 16px}.taj-testimonial-controls button{width:34px;height:34px}.taj-testimonial-slide{grid-template-columns:42px 1fr;grid-template-rows:1fr auto;gap:8px 10px}.taj-testimonial-slide .taj-testimonial-mark{font-size:68px}.taj-testimonial-slide blockquote{font-size:clamp(22px,6.8vw,36px);max-width:17ch}.taj-testimonial-slide .taj-testimonial-person{grid-column:2;padding:8px 0 0}
}

/* Section 6 — redesigned editorial post rail. */
.taj-latest-posts {
  padding: clamp(18px,2.3vw,38px) clamp(20px,5vw,92px);
  display:grid;grid-template-columns:minmax(250px,.7fr) minmax(0,1.6fr);gap:clamp(32px,5vw,90px);background:#f6f5f1;color:#111;
}
.taj-latest-head{display:flex;flex-direction:column;justify-content:space-between;min-width:0;border-right:1px solid rgba(17,17,17,.18);padding-right:clamp(20px,3vw,48px)}
.taj-latest-title-row h2{margin:0 0 16px;font-size:clamp(34px,3.8vw,68px);line-height:.9;letter-spacing:-.06em;max-width:8ch}
.taj-latest-title-row p{margin:0;font-size:11px;line-height:1.45;max-width:30ch;opacity:.62}
.taj-latest-query{height:100%;min-height:0;margin:0}.taj-latest-grid{height:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:rgba(17,17,17,.18);list-style:none;padding:0;margin:0}
.taj-latest-grid>li{margin:0;min-width:0;background:#f6f5f1}
.taj-latest-card{height:100%;padding:0 14px 12px;border:0;display:grid;grid-template-rows:minmax(0,1fr) auto auto auto auto;align-content:stretch}
.taj-latest-card .wp-block-post-featured-image{margin:0 -14px 12px;min-height:0;overflow:hidden}.taj-latest-card .wp-block-post-featured-image img{height:100%;width:100%;object-fit:cover}
.taj-latest-card .wp-block-post-date{margin:0 0 7px;font-size:8px;letter-spacing:.12em;text-transform:uppercase;opacity:.5}
.taj-latest-card .wp-block-post-title{font-size:clamp(16px,1.35vw,24px);line-height:1;margin:0;letter-spacing:-.035em}
.taj-latest-card .wp-block-post-excerpt{font-size:9px;line-height:1.35;margin:7px 0 0;opacity:.58}.taj-latest-card .wp-block-post-excerpt__more-text{display:none}
.taj-latest-card .wp-block-read-more{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-top:9px;text-decoration:none;border-bottom:1px solid currentColor;width:max-content;padding-bottom:3px}
@media(max-width:720px){.taj-latest-posts{padding:12px 16px;grid-template-columns:1fr;grid-template-rows:auto 1fr;gap:8px}.taj-latest-head{border:0;border-bottom:1px solid rgba(17,17,17,.18);padding:0 0 8px;display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:end}.taj-latest-title-row{display:flex;justify-content:space-between;align-items:end;gap:16px}.taj-latest-title-row h2{font-size:24px;margin:0;max-width:none}.taj-latest-title-row p{display:none}.taj-latest-grid{gap:1px}.taj-latest-card{padding:0 6px 7px}.taj-latest-card .wp-block-post-featured-image{margin:0 -6px 7px}.taj-latest-card .wp-block-post-title{font-size:11px}.taj-latest-card .wp-block-post-excerpt{display:none}.taj-latest-card .wp-block-read-more{font-size:7px;margin-top:6px}}

/* Section 7 — premium black CTA. */
.taj-contact.taj-cta-seven{padding:clamp(20px,2.5vw,42px) clamp(20px,5vw,92px);background:#090909;color:#fff;display:grid;grid-template-rows:auto 1fr;gap:8px}
.taj-cta-seven-layout{display:grid;grid-template-columns:1.3fr .7fr;gap:clamp(40px,8vw,140px);align-items:center;border-top:1px solid rgba(255,255,255,.16);padding-top:clamp(18px,2.5vh,30px)}
.taj-cta-seven-eyebrow{margin:0 0 14px;font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:#8d8d87}
.taj-cta-seven h2{margin:0;font-size:clamp(46px,5.5vw,102px);line-height:.86;letter-spacing:-.07em;max-width:11ch}
.taj-cta-seven-side{align-self:end;padding-bottom:3px}.taj-cta-seven-side>p{margin:0 0 clamp(16px,2.6vh,25px);max-width:38ch;font-size:clamp(12px,.95vw,16px);line-height:1.5;color:#aaa}
.taj-cta-seven-button{min-height:58px;width:100%;padding:7px 7px 7px 20px;border:1px solid rgba(255,255,255,.34);border-radius:999px;background:rgba(255,255,255,.035);display:flex;align-items:center;justify-content:space-between;gap:20px;color:#fff;text-decoration:none;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;transition:.2s}
.taj-cta-seven-icon{width:42px;height:42px;flex:0 0 42px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#111}.taj-cta-seven-icon svg{width:17px;height:17px}.taj-cta-seven-button:hover,.taj-cta-seven-button:focus-visible{background:#fff;color:#111}.taj-cta-seven-button:hover .taj-cta-seven-icon,.taj-cta-seven-button:focus-visible .taj-cta-seven-icon{background:#111;color:#fff}
@media(max-width:720px){.taj-contact.taj-cta-seven{padding:14px 16px}.taj-cta-seven-layout{grid-template-columns:1fr;gap:10px;padding-top:10px}.taj-cta-seven-eyebrow{font-size:8px;margin-bottom:7px}.taj-cta-seven h2{font-size:clamp(32px,9.5vw,48px)}.taj-cta-seven-side{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end}.taj-cta-seven-side>p{font-size:9px;margin:0}.taj-cta-seven-button{width:auto;min-height:44px;padding:5px 5px 5px 12px;font-size:8px}.taj-cta-seven-icon{width:32px;height:32px;flex-basis:32px}.taj-cta-seven-icon svg{width:13px;height:13px}}

/* Footer — restore the earlier strong FIELD/FORM composition, constrained to 50% viewport. */
.taj-footer.taj-footer-v3{height:50vh;min-height:50vh;max-height:50vh;padding:clamp(20px,3vw,48px) clamp(20px,5vw,92px);background:#111;color:#fff;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}
@supports(height:50svh){.taj-footer.taj-footer-v3{height:50svh;min-height:50svh;max-height:50svh}}
@supports(height:50dvh){.taj-footer.taj-footer-v3{height:50dvh;min-height:50dvh;max-height:50dvh}}
.taj-footer-v3 .taj-footer-mark{font-size:clamp(76px,15.7vw,285px);font-weight:800;letter-spacing:-.105em;line-height:.7;white-space:nowrap;overflow:hidden}.taj-footer-v3 .taj-footer-site-title{display:block}
.taj-footer-v3 .taj-footer-meta{display:grid;grid-template-columns:1fr auto auto;gap:clamp(22px,4vw,72px);align-items:end;border-top:1px solid #444;padding-top:14px}.taj-footer-v3 .taj-footer-meta p{margin:0;color:#bbb;font-size:11px;line-height:1.4}.taj-footer-v3 .taj-footer-meta>div{display:flex;gap:22px;flex-wrap:wrap;font-size:10px}.taj-footer-v3 .taj-footer-meta small{color:#888}
@media(max-width:720px){.taj-footer.taj-footer-v3{padding:16px}.taj-footer-v3 .taj-footer-mark{font-size:clamp(62px,21vw,108px)}.taj-footer-v3 .taj-footer-meta{grid-template-columns:1fr auto;gap:10px}.taj-footer-v3 .taj-footer-meta>div{gap:10px;font-size:8px}.taj-footer-v3 .taj-footer-meta small{grid-column:1/-1}.taj-footer-v3 .taj-footer-meta p{font-size:9px}}


/* =========================================================
   v1.2.6 — merged staircase cards in Sections 3 and 4
   Section 3 merges cards 2,3,5,6 into one block.
   Section 4 merges cards 1,2,4,5 into one block.
   ========================================================= */
.taj-staircase-grid-merged .taj-stair-card-1 { grid-column: 3; grid-row: 1; }
.taj-staircase-grid-merged .taj-stair-card-merged-s3 {
  grid-column: 2 / 4;
  grid-row: 2 / 4;
}
.taj-staircase-grid-merged .taj-stair-card-4 { grid-column: 1; grid-row: 3; }

.taj-staircase-grid-merged-reverse .taj-reverse-card-merged {
  grid-column: 1 / 3;
  grid-row: 1 / 3;
}
.taj-staircase-grid-merged-reverse .taj-reverse-card-3 { grid-column: 3; grid-row: 1; }
.taj-staircase-grid-merged-reverse .taj-reverse-card-6 { grid-column: 1; grid-row: 3; }

/* remove old implicit layout effects for cards that no longer exist */
.taj-staircard-hidden,
.taj-stair-card-2,
.taj-stair-card-3,
.taj-stair-card-5,
.taj-stair-card-6,
.taj-reverse-card-1,
.taj-reverse-card-2,
.taj-reverse-card-4,
.taj-reverse-card-5 {
  display: none;
}

.taj-stair-card-merged-s3 .taj-stair-card-copy,
.taj-reverse-card-merged .taj-stair-card-copy {
  align-items: end;
}
.taj-stair-card-merged-s3 .taj-stair-card-copy span,
.taj-reverse-card-merged .taj-stair-card-copy span {
  font-size: 8px;
}
.taj-stair-card-merged-s3 .taj-stair-card-copy h3,
.taj-reverse-card-merged .taj-stair-card-copy h3 {
  font-size: clamp(18px, 1.5vw, 28px);
}

@media (max-width: 760px) {
  .taj-staircase-grid-merged .taj-stair-card-merged-s3 .taj-stair-card-copy span,
  .taj-staircase-grid-merged-reverse .taj-reverse-card-merged .taj-stair-card-copy span {
    font-size: 6px;
  }
}


/* =========================================================
   v1.2.7 — Section 5/6/7/Footer fit + visual cleanup
   ========================================================= */

/* ---------- Section 5: testimonial carousel ----------
   Keep all content safely inside 50% viewport. */
.taj-testimonial-carousel {
  grid-template-rows: auto minmax(0,1fr);
  gap: clamp(8px,1.2vh,14px);
  padding-top: clamp(14px,2vh,24px);
  padding-bottom: clamp(14px,2vh,24px);
}
.taj-testimonial-viewport,
.taj-testimonial-track,
.taj-testimonial-slide {
  min-height: 0;
}
.taj-testimonial-track {
  align-items: stretch;
}
.taj-testimonial-slide {
  grid-template-columns: clamp(42px,6vw,90px) minmax(0,1fr) minmax(180px,.38fr);
  gap: clamp(16px,3vw,52px);
  align-items: center;
  padding-block: clamp(4px,1vh,10px);
}
.taj-testimonial-slide .taj-testimonial-mark {
  align-self: start;
  margin-top: .05em;
  font-size: clamp(70px,9vw,150px);
  line-height: .72;
}
.taj-testimonial-slide blockquote {
  max-width: 28ch;
  font-size: clamp(26px,2.65vw,50px);
  line-height: 1.02;
  letter-spacing: -.045em;
  text-wrap: balance;
}
.taj-testimonial-slide .taj-testimonial-person {
  align-self: center;
  padding: 12px 0 0;
  margin: 0;
  min-width: 0;
}

@media (max-width: 720px) {
  .taj-testimonial-carousel {
    padding: 10px 14px;
    gap: 6px;
  }
  .taj-testimonial-topbar {
    min-height: 32px;
  }
  .taj-testimonial-slide {
    grid-template-columns: 32px minmax(0,1fr);
    grid-template-rows: minmax(0,1fr) auto;
    gap: 4px 8px;
    padding-block: 2px;
  }
  .taj-testimonial-slide .taj-testimonial-mark {
    font-size: 52px;
  }
  .taj-testimonial-slide blockquote {
    max-width: 27ch;
    font-size: clamp(18px,5.2vw,28px);
    line-height: 1.02;
  }
  .taj-testimonial-slide .taj-testimonial-person {
    grid-column: 2;
    padding-top: 6px;
    border-top-width: 1px;
  }
  .taj-testimonial-person strong { font-size: 10px; }
  .taj-testimonial-person span { font-size: 7px; }
}
@media (max-height: 650px) {
  .taj-testimonial-slide blockquote {
    font-size: clamp(20px,4.7vh,35px);
    line-height: 1;
  }
  .taj-testimonial-slide .taj-testimonial-mark {
    font-size: clamp(50px,10vh,85px);
  }
}

/* ---------- Section 6: cleaner latest posts ----------
   Calm top bar + three disciplined editorial cards. */
.taj-latest-posts {
  padding: clamp(14px,2vh,24px) clamp(20px,5vw,92px);
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto minmax(0,1fr);
  gap: clamp(10px,1.6vh,18px);
  background: #f6f5f1;
  overflow: hidden;
}
.taj-latest-head {
  min-width: 0;
  display: grid;
  grid-template-columns: auto minmax(0,1fr);
  align-items: end;
  gap: clamp(28px,4vw,72px);
  padding: 0 0 clamp(8px,1.2vh,14px);
  border-right: 0;
  border-bottom: 1px solid rgba(17,17,17,.18);
}
.taj-latest-label {
  align-self: start;
}
.taj-latest-title-row {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(220px,.55fr);
  gap: clamp(24px,4vw,70px);
  align-items: end;
}
.taj-latest-title-row h2 {
  margin: 0;
  max-width: none;
  font-size: clamp(28px,2.8vw,52px);
  line-height: .95;
  letter-spacing: -.05em;
}
.taj-latest-title-row p {
  margin: 0 0 2px;
  max-width: 40ch;
  font-size: 10px;
  line-height: 1.4;
  opacity: .58;
}
.taj-latest-query,
.taj-latest-grid,
.taj-latest-grid > li,
.taj-latest-card {
  min-height: 0;
}
.taj-latest-query {
  height: 100%;
  overflow: hidden;
}
.taj-latest-grid {
  height: 100%;
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: clamp(8px,1vw,16px);
  background: transparent;
}
.taj-latest-grid > li {
  background: transparent;
}
.taj-latest-card {
  height: 100%;
  min-height: 0;
  padding: 0;
  display: grid;
  grid-template-columns: minmax(90px,.9fr) minmax(0,1.15fr);
  grid-template-rows: auto auto 1fr auto;
  column-gap: clamp(10px,1vw,16px);
  align-content: stretch;
  border: 1px solid rgba(17,17,17,.14);
  background: #fff;
  overflow: hidden;
}
.taj-latest-card .wp-block-post-featured-image {
  grid-column: 1;
  grid-row: 1 / -1;
  margin: 0;
  width: 100%;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  background: #ddd;
}
.taj-latest-card .wp-block-post-featured-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.taj-latest-card .wp-block-post-date {
  grid-column: 2;
  margin: 0;
  padding: 12px 12px 0 0;
  font-size: 7px;
  letter-spacing: .12em;
}
.taj-latest-card .wp-block-post-title {
  grid-column: 2;
  margin: 0;
  padding: 7px 12px 0 0;
  font-size: clamp(14px,1.2vw,21px);
  line-height: 1.02;
}
.taj-latest-card .wp-block-post-excerpt {
  grid-column: 2;
  margin: 0;
  padding: 7px 12px 0 0;
  font-size: 8.5px;
  line-height: 1.3;
  opacity: .58;
  overflow: hidden;
}
.taj-latest-card .wp-block-read-more {
  grid-column: 2;
  margin: 0;
  padding: 8px 12px 11px 0;
  font-size: 7.5px;
  border: 0;
  text-transform: uppercase;
  letter-spacing: .1em;
}

@media (max-width: 720px) {
  .taj-latest-posts {
    padding: 9px 14px;
    gap: 6px;
  }
  .taj-latest-head {
    grid-template-columns: auto 1fr;
    gap: 12px;
    padding-bottom: 6px;
  }
  .taj-latest-title-row {
    grid-template-columns: 1fr;
  }
  .taj-latest-title-row h2 {
    font-size: 21px;
    white-space: nowrap;
  }
  .taj-latest-title-row p { display: none; }
  .taj-latest-query {
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }
  .taj-latest-query::-webkit-scrollbar { display: none; }
  .taj-latest-grid {
    width: max-content;
    grid-template-columns: repeat(3,minmax(250px,72vw));
    gap: 8px;
  }
  .taj-latest-grid > li { scroll-snap-align: start; }
  .taj-latest-card {
    grid-template-columns: 42% 58%;
  }
  .taj-latest-card .wp-block-post-excerpt { display: none; }
}

/* ---------- Section 7: much cleaner CTA ---------- */
.taj-contact.taj-cta-seven {
  padding: clamp(14px,2vh,24px) clamp(20px,5vw,92px);
  background: #090909;
  color: #fff;
  display: grid;
  grid-template-rows: auto minmax(0,1fr);
  gap: clamp(10px,1.5vh,16px);
  overflow: hidden;
}
.taj-cta-seven-layout {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0,1.25fr) minmax(280px,.55fr);
  gap: clamp(34px,7vw,120px);
  align-items: center;
  padding-top: clamp(12px,1.8vh,20px);
  border-top: 1px solid rgba(255,255,255,.18);
}
.taj-cta-seven-copy {
  align-self: center;
}
.taj-cta-seven-eyebrow {
  margin: 0 0 10px;
  font-size: 9px;
  letter-spacing: .14em;
}
.taj-cta-seven h2 {
  margin: 0;
  max-width: 10ch;
  font-size: clamp(38px,4.6vw,80px);
  line-height: .92;
  letter-spacing: -.06em;
  text-wrap: balance;
}
.taj-cta-seven-side {
  align-self: center;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: clamp(14px,2vh,22px);
}
.taj-cta-seven-side > p {
  margin: 0;
  max-width: 36ch;
  font-size: clamp(11px,.85vw,14px);
  line-height: 1.45;
  color: #aaa;
}
.taj-cta-seven-button {
  width: 100%;
  max-width: 420px;
  min-height: 52px;
  padding: 6px 6px 6px 18px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.34);
  background: rgba(255,255,255,.035);
  box-shadow: none;
}
.taj-cta-seven-icon {
  width: 38px;
  height: 38px;
  flex-basis: 38px;
}

@media (max-width: 720px) {
  .taj-contact.taj-cta-seven {
    padding: 10px 14px;
    gap: 6px;
  }
  .taj-cta-seven-layout {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    gap: 8px;
    padding-top: 8px;
    align-content: center;
  }
  .taj-cta-seven-eyebrow { margin-bottom: 5px; font-size: 7px; }
  .taj-cta-seven h2 {
    max-width: 12ch;
    font-size: clamp(28px,8.4vw,42px);
    line-height: .94;
  }
  .taj-cta-seven-side {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 10px;
    align-items: end;
  }
  .taj-cta-seven-side > p {
    font-size: 8.5px;
    line-height: 1.3;
  }
  .taj-cta-seven-button {
    width: auto;
    min-width: 148px;
    min-height: 42px;
    font-size: 7.5px;
  }
  .taj-cta-seven-icon {
    width: 30px;
    height: 30px;
    flex-basis: 30px;
  }
}

/* ---------- Footer: prevent TEMAGUE clipping ---------- */
.taj-footer.taj-footer-v3 {
  padding-top: clamp(14px,2vh,24px);
  padding-bottom: clamp(14px,2vh,24px);
}
.taj-footer-v3 .taj-footer-mark {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  align-items: center;
  overflow: visible;
  padding: .08em 0 .12em;
  font-size: clamp(68px,14.2vw,255px);
  line-height: .88;
}
.taj-footer-v3 .taj-footer-site-title {
  display: block;
  overflow: visible;
  line-height: inherit;
}
.taj-footer-v3 .taj-footer-meta {
  flex: 0 0 auto;
  padding-top: 11px;
}

@media (max-width: 720px) {
  .taj-footer.taj-footer-v3 {
    padding: 12px 14px;
  }
  .taj-footer-v3 .taj-footer-mark {
    font-size: clamp(52px,18vw,92px);
    line-height: .9;
    padding-bottom: .16em;
  }
  .taj-footer-v3 .taj-footer-meta {
    padding-top: 8px;
  }
}


/* =========================================================
   v1.2.9 — Latest Posts cleanup + CTA complete redesign
   ========================================================= */

/* Latest posts: image + title + tags only. */
.taj-latest-posts {
  box-sizing: border-box;
  height: 50vh;
  min-height: 50vh;
  max-height: 50vh;
  padding: clamp(12px,1.8vh,20px) clamp(20px,5vw,92px);
  display: grid;
  grid-template-rows: auto minmax(0,1fr);
  grid-template-columns: 1fr;
  gap: clamp(8px,1.2vh,14px);
  overflow: hidden;
  background: #f5f4ef;
  color: #111;
}
@supports (height: 50svh) {
  .taj-latest-posts {
    height: 50svh;
    min-height: 50svh;
    max-height: 50svh;
  }
}
@supports (height: 50dvh) {
  .taj-latest-posts {
    height: 50dvh;
    min-height: 50dvh;
    max-height: 50dvh;
  }
}

.taj-latest-head {
  min-width: 0;
  padding: 0 0 clamp(7px,1vh,11px);
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  border-right: 0;
  border-bottom: 1px solid rgba(17,17,17,.18);
}
.taj-latest-label {
  flex: 0 0 auto;
}
.taj-latest-title-row {
  margin-left: auto;
  display: block;
}
.taj-latest-title-row h2 {
  margin: 0;
  font-size: clamp(24px,2.4vw,44px);
  line-height: .94;
  letter-spacing: -.045em;
  text-align: right;
  white-space: nowrap;
}
.taj-latest-title-row p {
  display: none;
}

.taj-latest-query,
.taj-latest-grid,
.taj-latest-grid > li,
.taj-latest-card {
  min-height: 0;
}
.taj-latest-query {
  height: 100%;
  overflow: hidden;
}
.taj-latest-grid {
  height: 100%;
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: clamp(8px,1vw,16px);
}
.taj-latest-grid > li {
  margin: 0;
  padding: 0;
  min-width: 0;
}
.taj-latest-card {
  position: relative;
  box-sizing: border-box;
  height: 100%;
  min-height: 0;
  padding: 0;
  display: grid;
  grid-template-rows: minmax(0,1fr) auto auto;
  align-content: stretch;
  border: 1px solid rgba(17,17,17,.14);
  background: #fff;
  overflow: hidden;
}
.taj-latest-card .wp-block-post-featured-image {
  min-height: 0;
  height: 100%;
  margin: 0;
  overflow: hidden;
  background: #ddd;
}
.taj-latest-card .wp-block-post-featured-image a {
  display: block;
  width: 100%;
  height: 100%;
}
.taj-latest-card .wp-block-post-featured-image img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform .35s ease;
}
.taj-latest-card:hover .wp-block-post-featured-image img {
  transform: scale(1.018);
}
.taj-latest-card .wp-block-post-title {
  margin: 0;
  padding: clamp(9px,1vh,13px) 12px 4px;
  font-size: clamp(15px,1.25vw,22px);
  line-height: 1.02;
  letter-spacing: -.035em;
}
.taj-latest-card .wp-block-post-title a {
  color: inherit;
  text-decoration: none;
}
.taj-latest-card .wp-block-post-date,
.taj-latest-card .wp-block-post-excerpt,
.taj-latest-card .wp-block-read-more {
  display: none;
}
.taj-latest-card .taj-latest-tags,
.taj-latest-card .wp-block-post-terms {
  margin: 0;
  padding: 0 12px 11px;
  min-height: 18px;
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  font-size: 7.5px;
  line-height: 1.1;
  text-transform: uppercase;
  letter-spacing: .09em;
}
.taj-latest-card .wp-block-post-terms a {
  display: inline-flex;
  align-items: center;
  padding: 4px 7px;
  border: 1px solid rgba(17,17,17,.18);
  border-radius: 999px;
  color: inherit;
  text-decoration: none;
}
.taj-latest-card .wp-block-post-terms__separator {
  display: none;
}

/* CTA: one clean, centered composition that cannot clip. */
.taj-contact.taj-cta-seven {
  box-sizing: border-box;
  height: 50vh;
  min-height: 50vh;
  max-height: 50vh;
  margin: 0;
  padding: clamp(12px,1.8vh,20px) clamp(20px,5vw,92px);
  display: grid;
  grid-template-rows: auto minmax(0,1fr);
  gap: clamp(8px,1.1vh,12px);
  overflow: hidden;
  background: #080808;
  color: #fff;
}
@supports (height: 50svh) {
  .taj-contact.taj-cta-seven {
    height: 50svh;
    min-height: 50svh;
    max-height: 50svh;
  }
}
@supports (height: 50dvh) {
  .taj-contact.taj-cta-seven {
    height: 50dvh;
    min-height: 50dvh;
    max-height: 50dvh;
  }
}

.taj-cta-seven-index {
  min-height: 20px;
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0;
  font-size: 8px;
  line-height: 1;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.taj-cta-seven-index span:first-child {
  font-weight: 800;
}
.taj-cta-seven-index span:last-child {
  opacity: .55;
}

.taj-cta-seven-layout {
  min-height: 0;
  height: 100%;
  padding: 0;
  border-top: 1px solid rgba(255,255,255,.17);
  display: grid;
  grid-template-columns: minmax(0,1.25fr) minmax(260px,.55fr);
  gap: clamp(30px,6vw,96px);
  align-items: center;
}
.taj-cta-seven-copy,
.taj-cta-seven-side {
  min-width: 0;
}
.taj-cta-seven-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.taj-cta-seven-eyebrow {
  margin: 0 0 clamp(7px,1vh,11px);
  font-size: 8px;
  line-height: 1.15;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #8e8e88;
}
.taj-cta-seven h2 {
  margin: 0;
  max-width: 11ch;
  font-size: clamp(34px,4vw,68px);
  line-height: .93;
  letter-spacing: -.055em;
  font-weight: 700;
  text-wrap: balance;
}
.taj-cta-seven-side {
  align-self: center;
  padding: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: clamp(12px,1.8vh,20px);
}
.taj-cta-seven-side > p {
  margin: 0;
  max-width: 34ch;
  font-size: clamp(10px,.82vw,13px);
  line-height: 1.42;
  color: #a7a7a2;
}
.taj-cta-seven-button {
  box-sizing: border-box;
  width: 100%;
  max-width: 360px;
  min-height: 48px;
  margin: 0;
  padding: 5px 5px 5px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border: 1px solid rgba(255,255,255,.32);
  border-radius: 999px;
  background: rgba(255,255,255,.03);
  color: #fff;
  text-decoration: none;
  font-size: 8.5px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.taj-cta-seven-icon {
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  color: #111;
}
.taj-cta-seven-icon svg {
  width: 14px;
  height: 14px;
}
.taj-cta-seven-button:hover,
.taj-cta-seven-button:focus-visible {
  background: #fff;
  color: #111;
}
.taj-cta-seven-button:hover .taj-cta-seven-icon,
.taj-cta-seven-button:focus-visible .taj-cta-seven-icon {
  background: #111;
  color: #fff;
}

/* Mobile: preserve 50% viewport without clipping. */
@media (max-width: 720px) {
  .taj-latest-posts {
    padding: 8px 12px;
    gap: 5px;
  }
  .taj-latest-head {
    min-height: 28px;
    padding-bottom: 5px;
    gap: 10px;
  }
  .taj-latest-title-row h2 {
    font-size: 18px;
    white-space: nowrap;
  }
  .taj-latest-query {
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }
  .taj-latest-query::-webkit-scrollbar {
    display: none;
  }
  .taj-latest-grid {
    width: max-content;
    grid-template-columns: repeat(3,minmax(235px,72vw));
    gap: 7px;
  }
  .taj-latest-grid > li {
    scroll-snap-align: start;
  }
  .taj-latest-card .wp-block-post-title {
    padding: 7px 9px 3px;
    font-size: 13px;
  }
  .taj-latest-card .taj-latest-tags,
  .taj-latest-card .wp-block-post-terms {
    padding: 0 9px 8px;
    font-size: 6px;
  }

  .taj-contact.taj-cta-seven {
    padding: 8px 12px;
    gap: 5px;
  }
  .taj-cta-seven-layout {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    gap: 7px;
    align-content: center;
    padding-top: 7px;
  }
  .taj-cta-seven-eyebrow {
    margin-bottom: 4px;
    font-size: 6.5px;
  }
  .taj-cta-seven h2 {
    max-width: 12ch;
    font-size: clamp(25px,7.6vw,36px);
    line-height: .94;
  }
  .taj-cta-seven-side {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 8px;
    align-items: end;
  }
  .taj-cta-seven-side > p {
    font-size: 7.5px;
    line-height: 1.28;
  }
  .taj-cta-seven-button {
    width: auto;
    min-width: 142px;
    min-height: 38px;
    padding: 4px 4px 4px 10px;
    font-size: 6.5px;
    gap: 8px;
  }
  .taj-cta-seven-icon {
    width: 28px;
    height: 28px;
    flex-basis: 28px;
  }
  .taj-cta-seven-icon svg {
    width: 11px;
    height: 11px;
  }
}

/* Short-height screens: compress content, never let it overflow. */
@media (max-height: 620px) {
  .taj-latest-posts,
  .taj-contact.taj-cta-seven {
    padding-top: 7px;
    padding-bottom: 7px;
  }
  .taj-latest-title-row h2 {
    font-size: clamp(17px,3.7vh,27px);
  }
  .taj-cta-seven h2 {
    font-size: clamp(24px,6.7vh,42px);
  }
  .taj-cta-seven-side > p {
    font-size: 7.5px;
    line-height: 1.25;
  }
  .taj-cta-seven-button {
    min-height: 36px;
  }
}


/* =========================================================
   v1.3.0 — desktop hero copy left + raised frameless Site Title
   ========================================================= */
@media (min-width: 801px) {
  /* Hero text group moves to the shared left page margin. */
  .taj-hero-copy {
    left: 5vw;
    right: auto;
    width: min(46vw, 760px);
    max-width: 760px;
    text-align: left;
    align-items: flex-start;
  }

  .taj-hero-copy .taj-kicker,
  .taj-hero-copy h1,
  .taj-hero-bottom,
  .taj-hero-description,
  .taj-hero-cta-wrap {
    margin-left: 0;
    margin-right: auto;
    text-align: left;
  }

  .taj-hero-bottom {
    width: 100%;
    justify-items: start;
  }

  /* Raise the whole desktop header another ~50% from the previous top offset. */
  .taj-header {
    top: 1.25vh;
  }

  /* Site Title: no glass box/frame, only a subtle translucent text outline. */
  .taj-header .wp-block-site-title.taj-brand a {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    -webkit-text-stroke: .55px rgba(17,17,17,.28);
    text-shadow: 0 0 1px rgba(255,255,255,.16);
  }
}

/* Mobile intentionally keeps the approved layout and spacing. */
@media (max-width: 800px) {
  .taj-header .wp-block-site-title.taj-brand a {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    -webkit-text-stroke: .5px rgba(255,255,255,.34);
    text-shadow: 0 1px 8px rgba(0,0,0,.22);
  }
}


/* =========================================================
   v1.3.1 — CTA section total redesign
   Clean framed composition, safe inside exact 50% viewport.
   ========================================================= */
.taj-contact.taj-cta-seven {
  box-sizing: border-box;
  width: 100%;
  height: 50vh;
  min-height: 50vh;
  max-height: 50vh;
  margin: 0;
  padding: clamp(14px, 2.1vh, 24px) clamp(20px, 5vw, 92px);
  display: block;
  overflow: hidden;
  background: #090909;
  color: #fff;
}
@supports (height: 50svh) {
  .taj-contact.taj-cta-seven {
    height: 50svh;
    min-height: 50svh;
    max-height: 50svh;
  }
}
@supports (height: 50dvh) {
  .taj-contact.taj-cta-seven {
    height: 50dvh;
    min-height: 50dvh;
    max-height: 50dvh;
  }
}

.taj-cta-seven-panel {
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  min-height: 0;
  padding: clamp(16px, 2vw, 28px) clamp(18px, 2.6vw, 40px);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: clamp(10px, 1.5vh, 18px);
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.018);
}

.taj-cta-seven-index {
  min-height: 18px;
  margin: 0;
  padding: 0 0 clamp(8px, 1.1vh, 12px);
  display: flex;
  align-items: center;
  gap: 14px;
  border-bottom: 1px solid rgba(255,255,255,.14);
  font-size: 8px;
  line-height: 1;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.taj-cta-seven-index span:first-child { font-weight: 800; }
.taj-cta-seven-index span:last-child { opacity: .58; }

.taj-cta-seven-layout {
  min-height: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(280px, .65fr);
  gap: clamp(36px, 6vw, 110px);
  align-items: center;
  border: 0;
}

.taj-cta-seven-copy,
.taj-cta-seven-side {
  min-width: 0;
  min-height: 0;
}

.taj-cta-seven-copy {
  align-self: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.taj-cta-seven-eyebrow {
  margin: 0 0 clamp(8px, 1.2vh, 14px);
  font-size: 8px;
  line-height: 1.2;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #858580;
}

.taj-cta-seven h2 {
  width: 100%;
  max-width: 11.8ch;
  margin: 0;
  padding: 0;
  font-size: clamp(38px, 4.3vw, 74px);
  line-height: .92;
  letter-spacing: -.06em;
  font-weight: 700;
  text-wrap: balance;
  overflow: visible;
}

.taj-cta-seven-side {
  align-self: center;
  padding: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: clamp(14px, 2vh, 22px);
}

.taj-cta-seven-side > p {
  width: 100%;
  max-width: 36ch;
  margin: 0;
  padding: 0;
  font-size: clamp(10px, .8vw, 13px);
  line-height: 1.45;
  color: #aaa;
}

.taj-cta-seven-button {
  box-sizing: border-box;
  width: 100%;
  max-width: 360px;
  min-height: 50px;
  margin: 0;
  padding: 5px 5px 5px 17px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border: 1px solid rgba(255,255,255,.34);
  border-radius: 999px;
  background: transparent;
  color: #fff;
  text-decoration: none;
  font-size: 8.5px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  overflow: visible;
}

.taj-cta-seven-icon {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  color: #111;
}
.taj-cta-seven-icon svg {
  width: 14px;
  height: 14px;
}

.taj-cta-seven-button:hover,
.taj-cta-seven-button:focus-visible {
  background: #fff;
  color: #111;
}
.taj-cta-seven-button:hover .taj-cta-seven-icon,
.taj-cta-seven-button:focus-visible .taj-cta-seven-icon {
  background: #111;
  color: #fff;
}

/* Tablet + mobile: preserve full content inside 50% viewport. */
@media (max-width: 900px) {
  .taj-contact.taj-cta-seven {
    padding: 10px 14px;
  }
  .taj-cta-seven-panel {
    padding: 12px 14px;
    gap: 8px;
  }
  .taj-cta-seven-layout {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    gap: 8px;
    align-content: center;
  }
  .taj-cta-seven-eyebrow {
    margin-bottom: 5px;
    font-size: 6.5px;
  }
  .taj-cta-seven h2 {
    max-width: 13ch;
    font-size: clamp(27px, 7.3vw, 42px);
    line-height: .94;
  }
  .taj-cta-seven-side {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: end;
  }
  .taj-cta-seven-side > p {
    font-size: 7.5px;
    line-height: 1.28;
  }
  .taj-cta-seven-button {
    width: auto;
    min-width: 150px;
    min-height: 40px;
    padding: 4px 4px 4px 11px;
    gap: 8px;
    font-size: 6.5px;
  }
  .taj-cta-seven-icon {
    width: 30px;
    height: 30px;
    flex-basis: 30px;
  }
  .taj-cta-seven-icon svg {
    width: 11px;
    height: 11px;
  }
}

@media (max-height: 620px) {
  .taj-contact.taj-cta-seven {
    padding-top: 7px;
    padding-bottom: 7px;
  }
  .taj-cta-seven-panel {
    padding-top: 8px;
    padding-bottom: 8px;
    gap: 5px;
  }
  .taj-cta-seven-index {
    padding-bottom: 5px;
    min-height: 14px;
  }
  .taj-cta-seven h2 {
    font-size: clamp(24px, 6.4vh, 42px);
  }
  .taj-cta-seven-side > p {
    font-size: 7px;
  }
  .taj-cta-seven-button {
    min-height: 36px;
  }
}


/* =========================================================
   v1.3.2 — premium high-contrast CTA + header raised another 50%
   ========================================================= */

/* DESKTOP: mandatory 50% reduction from the previous 1.25vh top gap. */
@media (min-width: 801px) {
  .taj-header {
    top: .625vh;
  }
}

/* MOBILE: halve the remaining top padding too, while preserving the approved layout. */
@media (max-width: 800px) {
  .taj-header {
    top: 0;
    padding-top: 5px;
  }
}

/* Section 7 CTA: standout acid action with guaranteed arrow contrast. */
.taj-cta-seven-button {
  border-color: #d9ff57;
  background: #d9ff57;
  color: #0a0a0a;
  box-shadow: 0 10px 30px rgba(217,255,87,.12);
  transition:
    background-color .2s ease,
    color .2s ease,
    border-color .2s ease,
    transform .2s ease,
    box-shadow .2s ease;
}

.taj-cta-seven-icon {
  background: #0a0a0a;
  color: #d9ff57;
  border: 1px solid #0a0a0a;
}

.taj-cta-seven-icon svg,
.taj-cta-seven-icon svg path {
  color: #d9ff57;
  stroke: #d9ff57;
}

/* Premium hover: clean white surface, black icon, white arrow. */
.taj-cta-seven-button:hover,
.taj-cta-seven-button:focus-visible {
  background: #ffffff;
  color: #0a0a0a;
  border-color: #ffffff;
  transform: translateY(-1px);
  box-shadow: 0 14px 34px rgba(0,0,0,.22);
}

.taj-cta-seven-button:hover .taj-cta-seven-icon,
.taj-cta-seven-button:focus-visible .taj-cta-seven-icon {
  background: #0a0a0a;
  color: #ffffff;
  border-color: #0a0a0a;
}

.taj-cta-seven-button:hover .taj-cta-seven-icon svg,
.taj-cta-seven-button:hover .taj-cta-seven-icon svg path,
.taj-cta-seven-button:focus-visible .taj-cta-seven-icon svg,
.taj-cta-seven-button:focus-visible .taj-cta-seven-icon svg path {
  color: #ffffff;
  stroke: #ffffff;
}


/* =========================================================
   v1.3.4 — footer social icons + legal links
   ========================================================= */
.taj-footer-v3 .taj-footer-meta {
  grid-template-columns: auto 1fr auto;
  align-items: center;
}
.taj-footer-socials {
  display: flex;
  align-items: center;
  gap: 9px;
}
.taj-social-icon {
  width: 34px;
  height: 34px;
  display: inline-grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 50%;
  color: #fff;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.taj-social-icon svg {
  width: 15px;
  height: 15px;
  display: block;
}
.taj-social-icon:hover,
.taj-social-icon:focus-visible {
  background: var(--acid);
  border-color: var(--acid);
  color: #111;
  transform: translateY(-1px);
}
.taj-footer-v3 .taj-footer-links {
  display: flex;
  justify-content: center;
  gap: clamp(18px,3vw,42px);
  font-size: 10px;
}
.taj-footer-v3 .taj-footer-links a {
  position: relative;
  padding-bottom: 4px;
}
.taj-footer-v3 .taj-footer-links a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: 0;
  height: 1px;
  background: currentColor;
  transition: right .2s ease;
}
.taj-footer-v3 .taj-footer-links a:hover::after,
.taj-footer-v3 .taj-footer-links a:focus-visible::after {
  right: 0;
}
.taj-footer-v3 .taj-footer-copyright {
  white-space: nowrap;
  text-align: right;
}

@media (max-width: 720px) {
  .taj-footer-v3 .taj-footer-meta {
    grid-template-columns: auto 1fr;
    gap: 9px 12px;
    align-items: center;
  }
  .taj-footer-socials {
    gap: 6px;
  }
  .taj-social-icon {
    width: 28px;
    height: 28px;
  }
  .taj-social-icon svg {
    width: 12px;
    height: 12px;
  }
  .taj-footer-v3 .taj-footer-links {
    justify-content: flex-end;
    gap: 12px;
    font-size: 8px;
  }
  .taj-footer-v3 .taj-footer-copyright {
    grid-column: 1 / -1;
    text-align: left;
    font-size: 8px;
  }
}


/* =========================================================
   v1.3.5 — CTA readability and icon contrast
   ========================================================= */
.taj-cta-seven-side > p {
  font-size: clamp(14px, 1.05vw, 18px);
  line-height: 1.5;
  max-width: 40ch;
  color: #d6d6d1;
}

/* Make the icon capsule unmistakably visible against the CTA. */
.taj-cta-seven-icon {
  background: #d9ff57;
  color: #0a0a0a;
  border: 1px solid #d9ff57;
  box-shadow: 0 0 0 1px rgba(217,255,87,.18), 0 8px 18px rgba(217,255,87,.12);
}
.taj-cta-seven-icon svg,
.taj-cta-seven-icon svg path {
  color: #0a0a0a;
  stroke: #0a0a0a;
}

.taj-cta-seven-button:hover .taj-cta-seven-icon,
.taj-cta-seven-button:focus-visible .taj-cta-seven-icon {
  background: #0a0a0a;
  color: #d9ff57;
  border-color: #0a0a0a;
}
.taj-cta-seven-button:hover .taj-cta-seven-icon svg,
.taj-cta-seven-button:hover .taj-cta-seven-icon svg path,
.taj-cta-seven-button:focus-visible .taj-cta-seven-icon svg,
.taj-cta-seven-button:focus-visible .taj-cta-seven-icon svg path {
  color: #d9ff57;
  stroke: #d9ff57;
}

@media (max-width: 720px) {
  .taj-cta-seven-side > p {
    font-size: 11px;
    line-height: 1.4;
    max-width: 34ch;
  }
}


/* =========================================================
   v1.3.7 — safe rebuild after v1.3.6 white-screen regression
   ========================================================= */
/* Restore the v1.3.4 CTA color treatment. */
.taj-cta-seven-button {
  border-color: #d9ff57;
  background: #d9ff57;
  color: #0a0a0a;
  box-shadow: 0 10px 30px rgba(217,255,87,.12);
}
.taj-cta-seven-icon {
  background: #0a0a0a;
  color: #d9ff57;
  border: 1px solid #0a0a0a;
  box-shadow: none;
}
.taj-cta-seven-icon svg,
.taj-cta-seven-icon svg path {
  color: #d9ff57;
  stroke: #d9ff57;
}
.taj-cta-seven-button:hover,
.taj-cta-seven-button:focus-visible {
  background: #fff;
  color: #0a0a0a;
  border-color: #fff;
}
.taj-cta-seven-button:hover .taj-cta-seven-icon,
.taj-cta-seven-button:focus-visible .taj-cta-seven-icon {
  background: #0a0a0a;
  color: #fff;
}
.taj-cta-seven-button:hover .taj-cta-seven-icon svg,
.taj-cta-seven-button:hover .taj-cta-seven-icon svg path,
.taj-cta-seven-button:focus-visible .taj-cta-seven-icon svg,
.taj-cta-seven-button:focus-visible .taj-cta-seven-icon svg path {
  color: #fff;
  stroke: #fff;
}
/* +2px readability request. */
.taj-cta-seven-eyebrow { font-size: 10px; }
.taj-footer-v3 .taj-footer-links { font-size: 12px; }
.taj-footer-v3 .taj-footer-copyright { font-size: 11px; }
/* Five Font Awesome Free brand SVG paths are embedded inline: no CDN, no mask files. */
.taj-footer-socials { flex-wrap: nowrap; gap: 8px; }
.taj-social-icon svg { width: 15px; height: 15px; display:block; }
@media (max-width:720px) {
  .taj-cta-seven-eyebrow { font-size: 8.5px; }
  .taj-footer-v3 .taj-footer-links { font-size: 10px; }
  .taj-footer-v3 .taj-footer-copyright { font-size: 10px; }
  .taj-footer-socials { gap: 5px; }
  .taj-social-icon svg { width: 12px; height: 12px; }
}

/* =========================================================
   v1.3.8 — requested visual + mobile fixes
   - CTA headline one line on desktop
   - Latest Posts excerpt restored
   - Native Gutenberg mobile hamburger forced visible
   - Site Title raised to the top edge
   - Hero copy frameless with readability overlay
   - CTA dark-grey panel / white frame / dark type
   - Footer pure black
   - Hero CTA matches Section CTA button
   ========================================================= */

/* HERO: remove glass frames from eyebrow/headline/description, keep legibility. */
.taj-hero-copy .taj-kicker,
.taj-hero-copy h1,
.taj-hero-description {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  color: #fff;
  -webkit-text-stroke: .28px rgba(0,0,0,.44);
  text-shadow:
    0 1px 2px rgba(0,0,0,.82),
    0 3px 16px rgba(0,0,0,.48);
}
.taj-hero .taj-film::after {
  background:
    linear-gradient(180deg, rgba(0,0,0,.18) 0%, rgba(0,0,0,.02) 42%, rgba(0,0,0,.24) 100%),
    linear-gradient(90deg, rgba(0,0,0,.20) 0%, rgba(0,0,0,.03) 52%, rgba(0,0,0,.18) 100%);
}

/* HEADER: move Site Title/header as high as safely possible. */
@media (min-width: 801px) {
  .taj-header {
    top: 0;
    padding-top: 0;
  }
}
@media (max-width: 800px) {
  .taj-header {
    top: 0;
    padding-top: 0;
    min-height: 58px;
  }
  .taj-header .wp-block-site-title.taj-brand {
    align-self: flex-start;
    margin-top: 0;
  }

  /* Force the native Gutenberg responsive navigation trigger to render. */
  .taj-header .wp-block-navigation.taj-nav .wp-block-navigation__responsive-container-open {
    display: inline-flex;
    visibility: visible;
    opacity: 1;
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 100002;
    color: #fff;
  }
  .taj-header .wp-block-navigation.taj-nav .wp-block-navigation__responsive-container-open svg {
    display: block;
    width: 28px;
    height: 28px;
    fill: currentColor;
  }
}

/* LATEST POSTS: restore readable post text/excerpt. */
.taj-latest-card {
  grid-template-rows: minmax(0,1fr) auto auto auto;
}
.taj-latest-card .taj-latest-excerpt,
.taj-latest-card .wp-block-post-excerpt {
  display: block;
  margin: 0;
  padding: 0 12px 8px;
  color: #565651;
  font-size: clamp(9px,.72vw,12px);
  line-height: 1.35;
  overflow: hidden;
}
.taj-latest-card .wp-block-post-excerpt__excerpt {
  margin: 0;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.taj-latest-card .taj-latest-tags {
  margin: 0;
  padding: 0 12px 10px;
}
@media (max-width: 720px) {
  .taj-latest-card .taj-latest-excerpt,
  .taj-latest-card .wp-block-post-excerpt {
    display: block;
    font-size: 9px;
    padding-bottom: 6px;
  }
}

/* SECTION CTA: dark grey background, white outer frame, dark typography. */
.taj-contact.taj-cta-seven {
  background: #777777;
  color: #111111;
}
.taj-cta-seven-panel {
  border-color: #ffffff;
  background: transparent;
}
.taj-cta-seven-index {
  border-bottom-color: rgba(255,255,255,.75);
  color: #111111;
}
.taj-cta-seven-index span:last-child {
  opacity: .76;
}
.taj-cta-seven-eyebrow,
.taj-cta-seven h2,
.taj-cta-seven-side > p {
  color: #111111;
}
.taj-cta-seven-side > p {
  opacity: .88;
}

/* Desktop CTA headline must stay on one line. */
@media (min-width: 901px) {
  .taj-cta-seven-layout {
    grid-template-columns: minmax(0,1.8fr) minmax(260px,.55fr);
    gap: clamp(24px,4vw,72px);
  }
  .taj-cta-seven h2 {
    max-width: none;
    white-space: nowrap;
    text-wrap: nowrap;
    font-size: clamp(30px,3.75vw,64px);
    letter-spacing: -.055em;
  }
}

/* Section CTA action: retain premium lime pill. */
.taj-cta-seven-button {
  border-color: #d9ff57;
  background: #d9ff57;
  color: #0a0a0a;
}
.taj-cta-seven-icon {
  background: #0a0a0a;
  color: #d9ff57;
  border-color: #0a0a0a;
}
.taj-cta-seven-icon svg,
.taj-cta-seven-icon svg path {
  color: #d9ff57;
  stroke: #d9ff57;
}

/* HERO CTA: exactly follow the Section CTA button language. */
.taj-hero-cta.wp-block-button .wp-block-button__link {
  min-height: 50px;
  padding: 5px 5px 5px 17px;
  border: 1px solid #d9ff57;
  border-radius: 999px;
  background: #d9ff57;
  color: #0a0a0a;
  box-shadow: 0 10px 30px rgba(217,255,87,.12);
  font-size: 8.5px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.taj-hero-cta-icon {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #0a0a0a;
  color: #d9ff57;
}
.taj-hero-cta-icon svg,
.taj-hero-cta-icon svg path {
  width: 14px;
  height: 14px;
  color: #d9ff57;
  stroke: #d9ff57;
}
.taj-hero-cta.wp-block-button .wp-block-button__link:hover,
.taj-hero-cta.wp-block-button .wp-block-button__link:focus-visible {
  background: #ffffff;
  color: #0a0a0a;
  border-color: #ffffff;
}
.taj-hero-cta.wp-block-button .wp-block-button__link:hover .taj-hero-cta-icon,
.taj-hero-cta.wp-block-button .wp-block-button__link:focus-visible .taj-hero-cta-icon {
  background: #0a0a0a;
  color: #ffffff;
}
.taj-hero-cta.wp-block-button .wp-block-button__link:hover .taj-hero-cta-icon svg path,
.taj-hero-cta.wp-block-button .wp-block-button__link:focus-visible .taj-hero-cta-icon svg path {
  stroke: #ffffff;
}
@media (max-width: 800px) {
  .taj-hero-cta.wp-block-button .wp-block-button__link {
    min-height: 42px;
    padding: 4px 4px 4px 11px;
    font-size: 7px;
    gap: 8px;
  }
  .taj-hero-cta-icon {
    width: 30px;
    height: 30px;
    flex-basis: 30px;
  }
  .taj-hero-cta-icon svg,
  .taj-hero-cta-icon svg path {
    width: 11px;
    height: 11px;
  }
}

/* FOOTER: pure black as requested. */
.taj-footer,
.taj-footer.taj-footer-v3 {
  background: #000000;
}


/* =========================================================
   v1.3.9 — latest tags only + CTA visual alignment
   - Latest Posts shows title + tags only (no excerpt)
   - Hero CTA follows the approved lime pill reference
   - Section CTA uses dark-grey background, white frame, dark text
   ========================================================= */

/* Latest posts: remove description/excerpt, emphasize tags. */
.taj-latest-card {
  grid-template-rows: minmax(0,1fr) auto auto;
}
.taj-latest-card .taj-latest-excerpt,
.taj-latest-card .wp-block-post-excerpt {
  display: none;
}
.taj-latest-card .taj-latest-tags,
.taj-latest-card .wp-block-post-terms {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 8px;
  margin: 10px 0 0;
  padding: 0 12px 12px;
  font-size: clamp(8px,.68vw,10px);
  line-height: 1.2;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #4f4f49;
}
.taj-latest-card .wp-block-post-terms a,
.taj-latest-card .taj-latest-tags a {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 9px;
  border: 1px solid rgba(17,17,17,.14);
  border-radius: 999px;
  background: rgba(17,17,17,.03);
}
.taj-latest-card .wp-block-post-terms__separator {
  display: none;
}
@media (max-width: 720px) {
  .taj-latest-card .taj-latest-tags,
  .taj-latest-card .wp-block-post-terms {
    font-size: 8px;
    gap: 6px;
    padding: 0 8px 10px;
  }
  .taj-latest-card .wp-block-post-terms a,
  .taj-latest-card .taj-latest-tags a {
    min-height: 21px;
    padding: 0 8px;
  }
}

/* Section CTA surface. */
.taj-contact.taj-cta-seven {
  background: #6d6d69;
  color: #111111;
}
.taj-cta-seven-panel {
  border: 1px solid #ffffff;
  background: transparent;
}
.taj-cta-seven-index {
  border-bottom-color: rgba(255,255,255,.9);
  color: #111111;
}
.taj-cta-seven-index span:last-child {
  opacity: .8;
}
.taj-cta-seven-eyebrow,
.taj-cta-seven h2,
.taj-cta-seven-side > p {
  color: #111111;
}
.taj-cta-seven-side > p {
  opacity: .92;
}

/* Shared premium CTA language for hero + section CTA. */
.taj-hero-cta.wp-block-button .wp-block-button__link,
.taj-cta-seven-button {
  box-sizing: border-box;
  width: min(100%, 406px);
  max-width: 406px;
  min-height: 76.8px;
  margin: 0;
  padding: 8px 8px 8px 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border: 1px solid #d9ff57;
  border-radius: 999px;
  background: #d9ff57;
  color: #0b0b0a;
  text-decoration: none;
  box-shadow: none;
  font-size: 11px;
  line-height: .92;
  font-weight: 800;
  letter-spacing: .085em;
  text-transform: uppercase;
}
.taj-hero-cta-label,
.taj-cta-seven-button > span:first-child {
  display: inline-block;
  max-width: 17ch;
  text-align: left;
}
.taj-hero-cta-icon,
.taj-cta-seven-icon {
  position: relative;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid #050505;
  background: #050505;
  color: #111111;
  overflow: hidden;
  box-shadow: none;
}
.taj-hero-cta-icon::before,
.taj-cta-seven-icon::before {
  content: "";
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #ffffff;
  display: block;
}
.taj-hero-cta-icon svg,
.taj-cta-seven-icon svg {
  position: absolute;
  inset: 0;
  margin: auto;
  width: 12px;
  height: 12px;
  z-index: 1;
}
.taj-hero-cta-icon svg path,
.taj-cta-seven-icon svg path,
.taj-hero-cta-icon svg,
.taj-cta-seven-icon svg {
  stroke: #0b0b0a;
  color: #0b0b0a;
}
.taj-hero-cta.wp-block-button .wp-block-button__link:hover,
.taj-hero-cta.wp-block-button .wp-block-button__link:focus-visible,
.taj-cta-seven-button:hover,
.taj-cta-seven-button:focus-visible {
  background: #ffffff;
  border-color: #ffffff;
  color: #0b0b0a;
  transform: none;
}
.taj-hero-cta.wp-block-button .wp-block-button__link:hover .taj-hero-cta-icon,
.taj-hero-cta.wp-block-button .wp-block-button__link:focus-visible .taj-hero-cta-icon,
.taj-cta-seven-button:hover .taj-cta-seven-icon,
.taj-cta-seven-button:focus-visible .taj-cta-seven-icon {
  background: #050505;
  border-color: #050505;
  color: #111111;
}
.taj-hero-cta.wp-block-button .wp-block-button__link:hover .taj-hero-cta-icon svg path,
.taj-hero-cta.wp-block-button .wp-block-button__link:focus-visible .taj-hero-cta-icon svg path,
.taj-cta-seven-button:hover .taj-cta-seven-icon svg path,
.taj-cta-seven-button:focus-visible .taj-cta-seven-icon svg path {
  stroke: #0b0b0a;
}

@media (max-width: 800px) {
  .taj-hero-cta.wp-block-button .wp-block-button__link,
  .taj-cta-seven-button {
    min-height: 50px;
    padding: 6px 6px 6px 16px;
    gap: 10px;
    font-size: 8.5px;
    width: min(100%, 320px);
    max-width: 320px;
  }
  .taj-hero-cta-icon,
  .taj-cta-seven-icon {
    width: 36px;
    height: 36px;
    flex-basis: 36px;
  }
  .taj-hero-cta-icon::before,
  .taj-cta-seven-icon::before {
    width: 20px;
    height: 20px;
  }
  .taj-hero-cta-icon svg,
  .taj-cta-seven-icon svg {
    width: 10px;
    height: 10px;
  }
}


/* =========================================================
   v1.4.0 — CTA dark outer / white inner + footer legal relocation
   ========================================================= */
.taj-contact.taj-cta-seven {
  background: #1F1F1F;
  color: #111111;
}
.taj-cta-seven-panel {
  background: #FFFFFF;
  border: 1px solid #111111;
}
.taj-cta-seven-index {
  color: #111111;
  border-bottom: 1px solid #111111;
}
.taj-cta-seven-eyebrow,
.taj-cta-seven h2,
.taj-cta-seven-side > p {
  color: #111111;
}

/* Footer legal links now sit above the divider/social row. */
.taj-footer.taj-footer-v3 {
  background: #000000;
}
.taj-footer-v3 .taj-footer-legal {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: clamp(18px, 2.4vw, 34px);
  margin-top: auto;
  margin-bottom: 14px;
  font-size: 12px;
}
.taj-footer-v3 .taj-footer-legal a {
  color: #ffffff;
  text-decoration: none;
  position: relative;
  padding-bottom: 3px;
}
.taj-footer-v3 .taj-footer-legal a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: 0;
  height: 1px;
  background: currentColor;
  transition: right .2s ease;
}
.taj-footer-v3 .taj-footer-legal a:hover::after,
.taj-footer-v3 .taj-footer-legal a:focus-visible::after {
  right: 0;
}
.taj-footer-v3 .taj-footer-meta {
  grid-template-columns: 1fr auto;
  align-items: center;
  border-top: 1px solid #444;
  padding-top: 14px;
}
.taj-footer-v3 .taj-footer-copyright {
  justify-self: end;
  text-align: right;
}
/* Old container retained nowhere in markup; hide defensively if cached block markup exists. */
.taj-footer-v3 .taj-footer-links { display: none; }

@media (max-width:720px) {
  .taj-footer-v3 .taj-footer-legal {
    gap: 14px;
    margin-bottom: 10px;
    font-size: 10px;
  }
  .taj-footer-v3 .taj-footer-meta {
    grid-template-columns: 1fr auto;
    gap: 10px;
  }
  .taj-footer-v3 .taj-footer-copyright {
    grid-column: auto;
    font-size: 10px;
  }
}


/* =========================================================
   v1.4.1 — CTA colours reversed + slimmer hero CTA
   ========================================================= */
/* Section CTA: white outer section, charcoal inner panel, light frame + type. */
.taj-contact.taj-cta-seven {
  background: #FFFFFF;
  color: #F5F5F2;
}
.taj-cta-seven-panel {
  background: #1F1F1F;
  border: 1px solid #FFFFFF;
}
.taj-cta-seven-index {
  color: #F5F5F2;
  border-bottom: 1px solid rgba(255,255,255,.92);
}
.taj-cta-seven-index span:last-child {
  opacity: .72;
}
.taj-cta-seven-eyebrow,
.taj-cta-seven h2,
.taj-cta-seven-side > p {
  color: #F5F5F2;
}
.taj-cta-seven-side > p {
  opacity: .82;
}

/* Hero CTA only: remove the arrow glyph and reduce vertical height only. */
.taj-hero-cta-icon svg {
  display: none;
}
.taj-hero-cta.wp-block-button .wp-block-button__link {
  min-height: 67.2px;
  padding-top: 5px;
  padding-bottom: 5px;
}
@media (max-width: 800px) {
  .taj-hero-cta.wp-block-button .wp-block-button__link {
    min-height: 44px;
    padding-top: 4px;
    padding-bottom: 4px;
  }
}


/* =========================================================
   v1.4.2 — Latest Posts: title + tags only
   ========================================================= */
.taj-latest-card .taj-latest-excerpt,
.taj-latest-card .wp-block-post-excerpt,
.taj-latest-card .wp-block-post-excerpt__excerpt,
.taj-latest-card .wp-block-post-excerpt__more-text {
  display: none;
}
.taj-latest-card {
  grid-template-rows: minmax(0,1fr) auto auto;
}
.taj-latest-card .taj-latest-tags,
.taj-latest-card .wp-block-post-terms {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 8px;
  margin: 10px 0 0;
  padding: 0 12px 12px;
  font-size: clamp(8px,.68vw,10px);
  line-height: 1.2;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #4f4f49;
}
.taj-latest-card .taj-latest-tags a,
.taj-latest-card .wp-block-post-terms a {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 9px;
  border: 1px solid rgba(17,17,17,.14);
  border-radius: 999px;
  background: rgba(17,17,17,.03);
  text-decoration: none;
}
.taj-latest-card .wp-block-post-terms__separator {
  display: none;
}
@media (max-width:720px) {
  .taj-latest-card .taj-latest-tags,
  .taj-latest-card .wp-block-post-terms {
    font-size: 8px;
    gap: 6px;
    padding: 0 8px 10px;
  }
  .taj-latest-card .taj-latest-tags a,
  .taj-latest-card .wp-block-post-terms a {
    min-height: 21px;
    padding: 0 8px;
  }
}

/* =========================================================
   v1.4.3 — ONLY header top + guaranteed mobile hamburger
   ========================================================= */
/* Site title/header: eliminate every remaining top gap. */
.taj-header {
  top: 0;
  margin-top: 0;
  padding-top: 0;
}
.taj-header .wp-block-site-title.taj-brand,
.taj-header .wp-block-site-title.taj-brand a {
  margin-top: 0;
}

/* Explicit burger is mobile-only and independent from Gutenberg's sometimes-hidden opener. */
.taj-mobile-burger {
  display: none;
}
@media (max-width: 800px) {
  .taj-header {
    top: 0;
    margin-top: 0;
    padding: 0 20px 20px;
    min-height: 48px;
  }
  .taj-header .wp-block-site-title.taj-brand {
    align-self: flex-start;
    margin: 0;
  }
  .taj-mobile-burger {
    position: relative;
    z-index: 100003;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    margin: 0 0 0 auto;
    padding: 8px;
    border: 0;
    background: transparent;
    color: #fff;
    display: inline-flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    gap: 6px;
    cursor: pointer;
  }
  .taj-mobile-burger span {
    display: block;
    width: 100%;
    height: 2px;
    background: currentColor;
    border-radius: 999px;
    transform-origin: center;
    transition: transform .2s ease, opacity .2s ease;
  }
  .taj-mobile-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
  .taj-mobile-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .taj-mobile-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

  /* Hide the unreliable native opener so only one burger appears. */
  .taj-header .wp-block-navigation.taj-nav .wp-block-navigation__responsive-container-open {
    display: none;
  }
  .taj-header .wp-block-navigation.taj-nav {
    margin-left: 0;
    width: auto;
  }
  html.taj-menu-open,
  html.taj-menu-open body {
    overflow: hidden;
  }
}

/* =========================================================
   v1.4.6 — canonical header audit
   One final source of truth for Site Title alignment + mobile burger.
   ========================================================= */

/* Shared header reset: kill legacy top offsets, padding and Gutenberg block-gap. */
.taj-header {
  top: 0;
  margin: 0;
  padding-top: 0;
  gap: 0;
  row-gap: 0;
}
.taj-header .wp-block-site-title.taj-brand {
  margin-top: 0;
  margin-left: 0;
  margin-right: 0;
  padding: 0;
}
.taj-header .wp-block-site-title.taj-brand a {
  margin: 0;
  padding: 0;
  line-height: 1;
}

/* DESKTOP: give the Site Title a real header row, then center it vertically in that row. */
@media (min-width: 801px) {
  .taj-header {
    top: 0;
    padding: 0;
    align-items: flex-end;
  }
  .taj-header .wp-block-site-title.taj-brand {
    box-sizing: border-box;
    width: 100%;
    min-height: 81.6px;
    margin: 0 0 18px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    align-self: stretch;
    text-align: right;
  }
  .taj-header .wp-block-site-title.taj-brand a {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    min-height: 81.6px;
  }
  .taj-header .wp-block-navigation.taj-nav {
    margin: 0;
  }
}

/* MOBILE: one 64px header row; Site Title and explicit burger share the exact vertical center. */
@media (max-width: 800px) {
  .taj-header {
    top: 0;
    left: 0;
    right: 0;
    box-sizing: border-box;
    width: 100%;
    height: 76.8px;
    min-height: 76.8px;
    max-height: 76.8px;
    padding: 0 20px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
  .taj-header .wp-block-site-title.taj-brand {
    width: auto;
    min-height: 76.8px;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    align-self: center;
  }
  .taj-header .wp-block-site-title.taj-brand a {
    min-height: 76.8px;
    display: inline-flex;
    align-items: center;
  }
  .taj-mobile-burger {
    display: inline-flex;
    align-self: center;
    margin: 0 0 0 auto;
  }
  .taj-header .wp-block-navigation.taj-nav .wp-block-navigation__responsive-container-open {
    display: none;
  }
  .taj-header .wp-block-navigation.taj-nav {
    width: auto;
    margin: 0;
  }
}



/* =========================================================
   v1.4.7 — Hero CTA + Section CTA light blue action color
   ========================================================= */
.taj-cta-seven-button {
  border-color: #8ed8ff;
  background: #8ed8ff;
  color: #0a0a0a;
}
.taj-cta-seven-icon {
  background: #0a0a0a;
  color: #8ed8ff;
  border-color: #0a0a0a;
}
.taj-cta-seven-icon svg,
.taj-cta-seven-icon svg path {
  color: #8ed8ff;
  stroke: #8ed8ff;
}
.taj-hero-cta.wp-block-button .wp-block-button__link {
  border-color: #8ed8ff;
  background: #8ed8ff;
  color: #0a0a0a;
  box-shadow: 0 10px 30px rgba(142,216,255,.16);
}
.taj-hero-cta-icon {
  background: #0a0a0a;
  color: #8ed8ff;
}
.taj-hero-cta-icon svg,
.taj-hero-cta-icon svg path {
  color: #8ed8ff;
  stroke: #8ed8ff;
}


/* =========================================================
   v1.4.8 — reference-style social icons + X + WhatsApp
   ========================================================= */
.taj-footer-socials {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 18px;
}
.taj-social-icon {
  width: 30px;
  height: 30px;
  min-width: 30px;
  min-height: 30px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #fff;
  box-shadow: none;
  transform: none;
}
.taj-social-icon svg {
  display: block;
  width: 27px;
  height: 27px;
  max-width: 27px;
  max-height: 27px;
}
.taj-social-instagram svg { width: 26px; height: 26px; }
.taj-social-linkedin svg { width: 26px; height: 26px; }
.taj-social-facebook svg { width: 27px; height: 27px; }
.taj-social-youtube svg { width: 29px; height: 26px; }
.taj-social-x svg { width: 25px; height: 25px; }
.taj-social-whatsapp svg { width: 27px; height: 27px; }
.taj-social-icon:hover,
.taj-social-icon:focus-visible {
  border: 0;
  background: transparent;
  color: #fff;
  transform: none;
  opacity: .72;
}
@media (max-width: 720px) {
  .taj-footer-socials { gap: 14px; }
  .taj-social-icon { width: 28px; height: 28px; min-width:28px; min-height:28px; }
  .taj-social-icon svg { max-width: 25px; max-height: 25px; }
}


/* =========================================================
   v1.5.0 — footer legal expansion + soft-grey wordmark + house SVG burger
   ========================================================= */
.taj-footer-v3 .taj-footer-legal {
  flex-wrap: wrap;
  row-gap: 10px;
}
.taj-footer-v3 .taj-footer-site-title {
  color: #b8b8b2;
}

.taj-mobile-burger {
  color: #111111;
}
.taj-mobile-burger svg {
  display: block;
  width: 34px;
  height: auto;
  max-width: 34px;
  overflow: visible;
}
.taj-mobile-burger span {
  display: none;
}
.taj-mobile-burger[aria-expanded="true"] {
  opacity: .84;
}
@media (max-width: 800px) {
  .taj-mobile-burger {
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    padding: 6px;
    align-items: center;
    justify-content: center;
  }
  .taj-mobile-burger svg {
    width: 36px;
    max-width: 36px;
  }
  .taj-footer-v3 .taj-footer-legal {
    column-gap: 14px;
    row-gap: 8px;
  }
}


/* =========================================================
   v1.5.1 — social icons -15% + Section 4 label bottom-right
   ========================================================= */
/* Reduce only the visible social SVG artwork by exactly 15%. */
.taj-footer-socials .taj-social-icon svg {
  transform: scale(.85);
  transform-origin: center;
}

/* Section 4 only: move the section label to the bottom-right. */
.taj-collage.taj-staircase-reverse .taj-staircase-label {
  left: auto;
  right: clamp(18px,5vw,92px);
  top: auto;
  bottom: clamp(22px,3.2vw,56px);
  justify-content: flex-end;
  text-align: right;
}

@media (max-width: 760px) {
  .taj-collage.taj-staircase-reverse .taj-staircase-label {
    left: auto;
    right: 14px;
    top: auto;
    bottom: 14px;
  }
}

@media (max-height: 600px) {
  .taj-collage.taj-staircase-reverse .taj-staircase-label {
    top: auto;
    bottom: 14px;
  }
}


/* =========================================================
   v1.6.0 — burger +20 percent from v1.5.9
   ========================================================= */
.taj-mobile-burger {
  color: #ffffff;
  background: transparent;
  width: 67.2px;
  height: 67.2px;
  flex: 0 0 67.2px;
  padding: 4px;
}
.taj-mobile-burger svg {
  display: block;
  width: 55.2px;
  max-width: 55.2px;
  height: auto;
  overflow: visible;
}
@media (max-width: 1024px) {
  .taj-mobile-burger {
    width: 76.8px;
    height: 76.8px;
    flex: 0 0 76.8px;
    padding: 4px;
  }
  .taj-mobile-burger svg {
    width: 64.8px;
    max-width: 64.8px;
  }
}
@media (max-width: 800px) {
  .taj-mobile-burger {
    width: 81.6px;
    height: 81.6px;
    flex: 0 0 81.6px;
    padding: 4px;
  }
  .taj-mobile-burger svg {
    width: 69.6px;
    max-width: 69.6px;
  }
}

/* =========================================================
   v1.5.4 — Section 2 premium deep-indigo system
   ========================================================= */
.taj-feature-section-two {
  background: #4b3f8f;
  color: #f7f5ff;
  border-top-color: rgba(255,255,255,.34);
}
.taj-feature-section-two .taj-feature-kicker,
.taj-feature-section-two .taj-feature-headline,
.taj-feature-section-two .taj-feature-meta {
  color: #f7f5ff;
}
.taj-feature-section-two .taj-feature-kicker,
.taj-feature-section-two .taj-feature-meta {
  opacity: .9;
}
.taj-feature-section-two .taj-feature-media {
  background: #5a4ca5;
  outline: 1px solid rgba(255,255,255,.28);
  outline-offset: -1px;
}
.taj-feature-section-two .taj-feature-media img,
.taj-feature-section-two .taj-feature-media video,
.taj-feature-section-two .taj-feature-media iframe,
.taj-feature-section-two .taj-feature-media .taj-project-media,
.taj-feature-section-two .taj-feature-media .taj-custom-media {
  background: #3a3170;
}


/* =========================================================
   v1.5.5 — classic header menu + title outline + orange S4 + section motion
   ========================================================= */

/* Site title: preserve current fill, add a crisp premium black outline. */
.taj-header .wp-block-site-title.taj-brand a {
  -webkit-text-stroke: .75px rgba(0,0,0,.92);
  paint-order: stroke fill;
  text-shadow:
    0 1px 1px rgba(0,0,0,.42),
    0 2px 8px rgba(0,0,0,.18);
}

/* Classic WordPress menu rendered inside the Gutenberg/FSE header. */
.taj-header > .wp-block-shortcode {
  margin: 0;
  padding: 0;
  width: 100%;
}
.taj-classic-nav {
  width: 100%;
  margin: 0;
  padding: 0;
}
.taj-classic-menu,
.taj-classic-menu ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.taj-classic-menu {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 7px;
}
.taj-classic-menu > li {
  position: relative;
  width: max-content;
  max-width: 100%;
}
.taj-classic-menu a {
  position: relative;
  display: inline-flex;
  align-items: center;
  color: inherit;
  text-decoration: none;
}
.taj-classic-menu > li > a::before {
  content: "";
  position: absolute;
  right: calc(100% + 10px);
  top: 50%;
  width: 0;
  height: 1px;
  background: currentColor;
  transition: width .22s ease;
}
.taj-classic-menu > li:hover > a::before,
.taj-classic-menu > li:focus-within > a::before {
  width: 26px;
}
.taj-classic-menu .sub-menu {
  position: absolute;
  z-index: 100010;
  top: -10px;
  right: calc(100% + 18px);
  min-width: 210px;
  padding: 10px 0;
  background: rgba(17,17,17,.96);
  color: #fff;
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: 0 18px 45px rgba(0,0,0,.22);
  opacity: 0;
  visibility: hidden;
  transform: translateX(8px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}
.taj-classic-menu .sub-menu li {
  position: relative;
}
.taj-classic-menu .sub-menu a {
  display: flex;
  width: 100%;
  padding: 10px 14px;
  white-space: nowrap;
}
.taj-classic-menu li:hover > .sub-menu,
.taj-classic-menu li:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateX(0);
}
.taj-classic-menu .sub-menu .sub-menu {
  top: 0;
  right: calc(100% + 8px);
}
.taj-submenu-toggle {
  display: none;
}

/* Section 4: premium orange background system based on user-approved swatch, light typography/lines. */
.taj-collage.taj-staircase-reverse {
  background: #d96c1f;
  color: #fff8f3;
}
.taj-collage.taj-staircase-reverse .taj-staircase-label,
.taj-collage.taj-staircase-reverse .taj-stair-card-copy,
.taj-collage.taj-staircase-reverse .taj-stair-card-copy span,
.taj-collage.taj-staircase-reverse .taj-stair-card-copy h3 {
  color: #fff8f3;
}
.taj-collage.taj-staircase-reverse .taj-stair-card {
  background: #b85b19;
  border-color: rgba(255,248,243,.30);
}

/* v1.6.7 — PREMIUM SAFE motion system.
   No section/card geometry is translated. Premium movement comes from
   clip reveal + blur-to-sharp + opacity + media-only micro zoom. */
.taj-motion-section > * {
  will-change: opacity, filter, clip-path;
  transition:
    opacity .62s cubic-bezier(.22,.8,.22,1),
    filter .72s cubic-bezier(.22,.8,.22,1),
    clip-path .78s cubic-bezier(.22,.8,.22,1);
  transition-delay: var(--taj-motion-delay, 0ms);
}

/* Scroll down: reveal from the lower edge without moving layout. */
.taj-motion-section.taj-enter-from-bottom:not(.taj-motion-active) > * {
  transform: none;
  opacity: .12;
  filter: blur(8px) saturate(.88);
  clip-path: inset(7% 0 0 0 round 2px);
}

/* Scroll up: reveal from the upper edge without moving layout. */
.taj-motion-section.taj-enter-from-top:not(.taj-motion-active) > * {
  transform: none;
  opacity: .12;
  filter: blur(8px) saturate(.88);
  clip-path: inset(0 0 7% 0 round 2px);
}

.taj-motion-section.taj-motion-active > * {
  transform: none;
  opacity: 1;
  filter: blur(0) saturate(1);
  clip-path: inset(0 0 0 0 round 0);
}

/* Direction-aware stagger for the bidirectional motion system.
   Forward/downward entry keeps the original cinematic stagger.
   Reverse/upward entry starts all direct layers together, preventing
   delayed UI pieces when revisiting a previous section. */
.taj-motion-section.taj-enter-from-bottom > *:nth-child(1) { --taj-motion-delay: 0ms; }
.taj-motion-section.taj-enter-from-bottom > *:nth-child(2) { --taj-motion-delay: 70ms; }
.taj-motion-section.taj-enter-from-bottom > *:nth-child(3) { --taj-motion-delay: 135ms; }
.taj-motion-section.taj-enter-from-bottom > *:nth-child(4) { --taj-motion-delay: 195ms; }
.taj-motion-section.taj-enter-from-bottom > *:nth-child(n+5) { --taj-motion-delay: 235ms; }

.taj-motion-section.taj-enter-from-top > * {
  --taj-motion-delay: 0ms;
}

/* Media gets a subtle cinematic settle. This changes only the artwork,
   never the viewport/card dimensions. */
.taj-motion-section .taj-film-image,
.taj-motion-section .taj-feature-media img,
.taj-motion-section .taj-feature-media video,
.taj-motion-section .taj-feature-media iframe,
.taj-motion-section .taj-stair-card > img,
.taj-motion-section .wp-block-post-featured-image img {
  transition:
    transform 1.05s cubic-bezier(.22,.8,.22,1),
    filter .72s cubic-bezier(.22,.8,.22,1);
  transform-origin: center center;
}

.taj-motion-section:not(.taj-motion-active) .taj-film-image,
.taj-motion-section:not(.taj-motion-active) .taj-feature-media img,
.taj-motion-section:not(.taj-motion-active) .taj-feature-media video,
.taj-motion-section:not(.taj-motion-active) .taj-feature-media iframe,
.taj-motion-section:not(.taj-motion-active) .taj-stair-card > img,
.taj-motion-section:not(.taj-motion-active) .wp-block-post-featured-image img {
  transform: scale(1.035);
  filter: contrast(.96) brightness(.94);
}

.taj-motion-section.taj-motion-active .taj-film-image,
.taj-motion-section.taj-motion-active .taj-feature-media img,
.taj-motion-section.taj-motion-active .taj-feature-media video,
.taj-motion-section.taj-motion-active .taj-feature-media iframe,
.taj-motion-section.taj-motion-active .taj-stair-card > img,
.taj-motion-section.taj-motion-active .wp-block-post-featured-image img {
  transform: scale(1);
  filter: none;
}

/* Text/copy gains a second-stage crisp fade, still with zero movement. */
.taj-motion-section .taj-hero-copy,
.taj-motion-section .taj-feature-copy,
.taj-motion-section .taj-stair-card-copy,
.taj-motion-section .taj-staircase-label,
.taj-motion-section .taj-testimonial-slide,
.taj-motion-section .taj-latest-head,
.taj-motion-section .taj-cta-seven-layout,
.taj-motion-section .taj-footer-meta {
  transition:
    opacity .58s ease,
    filter .68s ease;
}

.taj-motion-section:not(.taj-motion-active) .taj-hero-copy,
.taj-motion-section:not(.taj-motion-active) .taj-feature-copy,
.taj-motion-section:not(.taj-motion-active) .taj-stair-card-copy,
.taj-motion-section:not(.taj-motion-active) .taj-staircase-label,
.taj-motion-section:not(.taj-motion-active) .taj-testimonial-slide,
.taj-motion-section:not(.taj-motion-active) .taj-latest-head,
.taj-motion-section:not(.taj-motion-active) .taj-cta-seven-layout,
.taj-motion-section:not(.taj-motion-active) .taj-footer-meta {
  opacity: .22;
  filter: blur(5px);
}

.taj-motion-section.taj-motion-active .taj-hero-copy,
.taj-motion-section.taj-motion-active .taj-feature-copy,
.taj-motion-section.taj-motion-active .taj-stair-card-copy,
.taj-motion-section.taj-motion-active .taj-staircase-label,
.taj-motion-section.taj-motion-active .taj-testimonial-slide,
.taj-motion-section.taj-motion-active .taj-latest-head,
.taj-motion-section.taj-motion-active .taj-cta-seven-layout,
.taj-motion-section.taj-motion-active .taj-footer-meta {
  opacity: 1;
  filter: blur(0);
}

@media (max-width: 800px) {
  .taj-header > .wp-block-shortcode {
    width: auto;
    margin: 0;
  }
  .taj-classic-nav {
    position: fixed;
    inset: 0;
    z-index: 100001;
    width: 100vw;
    height: 100dvh;
    padding: 92px 22px 34px;
    overflow-y: auto;
    background: #111;
    color: #fff;
    transform: translateY(-102%);
    visibility: hidden;
    opacity: 0;
    transition: transform .32s cubic-bezier(.22,.8,.22,1), opacity .22s ease, visibility .32s ease;
  }
  .taj-classic-nav.is-open {
    transform: translateY(0);
    visibility: visible;
    opacity: 1;
  }
  .taj-mobile-burger {
    position: relative;
    z-index: 100005;
  }
  .taj-classic-menu {
    align-items: stretch;
    gap: 0;
  }
  .taj-classic-menu > li {
    width: 100%;
    border-bottom: 1px solid rgba(255,255,255,.16);
    position: relative;
  }
  .taj-classic-menu > li > a {
    min-height: 58px;
    width: calc(100% - 52px);
    font-size: clamp(24px, 7vw, 34px);
    line-height: 1.1;
    font-weight: 600;
  }
  .taj-classic-menu > li > a::before {
    display: none;
  }
  .taj-submenu-toggle {
    position: absolute;
    right: 0;
    top: 7px;
    display: inline-flex;
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    border: 0;
    background: transparent;
    color: #fff;
    font-size: 26px;
    cursor: pointer;
  }
  .taj-classic-menu .sub-menu,
  .taj-classic-menu .sub-menu .sub-menu {
    position: static;
    min-width: 0;
    padding: 0 0 10px 18px;
    border: 0;
    box-shadow: none;
    background: transparent;
    opacity: 1;
    visibility: visible;
    transform: none;
    display: none;
  }
  .taj-classic-menu .is-submenu-open > .sub-menu {
    display: block;
  }
  .taj-classic-menu .sub-menu a {
    padding: 9px 0;
    white-space: normal;
    font-size: 16px;
    opacity: .86;
  }
  html.taj-menu-open,
  html.taj-menu-open body {
    overflow: hidden;
  }

}

@media (prefers-reduced-motion: reduce) {
  .taj-motion-section > * {
    transition: none;
    transform: none;
    opacity: 1;
  }
}


/* =========================================================
   v1.5.7 — desktop white outline for site title and header menu
   ========================================================= */
@media (min-width: 801px) {
  .taj-header .wp-block-site-title.taj-brand a {
    -webkit-text-stroke: 0.9px rgba(255,255,255,.96);
    text-shadow:
      0 0 1px rgba(255,255,255,.98),
      0 0 10px rgba(255,255,255,.12);
  }

  .taj-classic-menu > li > a,
  .taj-classic-menu .sub-menu a,
  .taj-header .wp-block-navigation.taj-nav .wp-block-navigation-item__content {
    text-shadow:
      -0.6px 0 rgba(255,255,255,.95),
      0.6px 0 rgba(255,255,255,.95),
      0 -0.6px rgba(255,255,255,.95),
      0 0.6px rgba(255,255,255,.95),
      0 0 8px rgba(255,255,255,.10);
  }
}


/* =========================================================
   v1.6.1 — mobile burger flush-right + white header typography
   Requested-only override.
   ========================================================= */

/* Desktop header: site title + menu are solid white.
   Shadow/outline is dark and subtle so the white stays readable on imagery. */
@media (min-width: 801px) {
  .taj-header .wp-block-site-title.taj-brand a,
  .taj-classic-menu > li > a,
  .taj-classic-menu .sub-menu a,
  .taj-header .wp-block-navigation.taj-nav .wp-block-navigation-item__content {
    color: #ffffff;
  }

  .taj-header .wp-block-site-title.taj-brand a {
    -webkit-text-stroke: .55px rgba(0,0,0,.78);
    text-shadow:
      0 1px 2px rgba(0,0,0,.72),
      0 2px 10px rgba(0,0,0,.30);
  }

  .taj-classic-menu > li > a,
  .taj-classic-menu .sub-menu a,
  .taj-header .wp-block-navigation.taj-nav .wp-block-navigation-item__content {
    -webkit-text-stroke: .35px rgba(0,0,0,.60);
    text-shadow:
      0 1px 2px rgba(0,0,0,.68),
      0 2px 8px rgba(0,0,0,.26);
  }

  .taj-classic-menu > li > a::before,
  .taj-header .wp-block-navigation.taj-nav .wp-block-navigation-item__content::before {
    background: #ffffff;
  }
}

/* Mobile/tablet header: white site title and burger pinned to the right content edge. */
@media (max-width: 800px) {
  .taj-header {
    box-sizing: border-box;
    padding-left: 20px;
    padding-right: 20px;
  }

  .taj-header .wp-block-site-title.taj-brand,
  .taj-header .wp-block-site-title.taj-brand a {
    color: #ffffff;
  }

  .taj-header .wp-block-site-title.taj-brand a {
    -webkit-text-stroke: .55px rgba(0,0,0,.78);
    text-shadow:
      0 1px 2px rgba(0,0,0,.72),
      0 2px 10px rgba(0,0,0,.30);
  }

  .taj-mobile-burger {
    margin-left: auto;
    margin-right: -4px;
    align-self: center;
  }
}


/* =========================================================
   v1.6.5 — mobile structure audit
   - Section 3 = three vertical viewports
   - Latest Posts = all three cards visible
   - Burger aligned to the shared right margin
   - Footer Site Title auto-fit support
   ========================================================= */
@media (max-width: 760px) {
  /* Shared mobile right edge: exactly 14px from viewport. */
  .taj-header {
    padding-right: 14px;
  }
  .taj-mobile-burger {
    margin-left: auto;
    margin-right: 0;
    right: auto;
  }

  /* SECTION 3: three cards = three full vertical viewports. */
  .taj-method.taj-staircase {
    height: 300svh;
    min-height: 300svh;
    max-height: none;
    padding: 0;
    overflow: visible;
    display: block;
    position: relative;
  }
  @supports (height: 100dvh) {
    .taj-method.taj-staircase {
      height: 300dvh;
      min-height: 300dvh;
    }
  }
  .taj-method.taj-staircase .taj-staircase-label {
    left: 14px;
    top: 16px;
    z-index: 12;
    color: #111;
  }
  .taj-method.taj-staircase .taj-staircase-grid,
  .taj-method.taj-staircase .taj-staircase-grid-merged {
    width: 100%;
    height: 300svh;
    min-height: 300svh;
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 0;
  }
  @supports (height: 100dvh) {
    .taj-method.taj-staircase .taj-staircase-grid,
    .taj-method.taj-staircase .taj-staircase-grid-merged {
      height: 300dvh;
      min-height: 300dvh;
    }
  }
  .taj-method.taj-staircase .taj-stair-card,
  .taj-method.taj-staircase .taj-stair-card-1,
  .taj-method.taj-staircase .taj-stair-card-merged-s3,
  .taj-method.taj-staircase .taj-stair-card-4 {
    flex: 0 0 100svh;
    width: 100%;
    height: 100svh;
    min-height: 100svh;
    max-height: 100svh;
    grid-column: auto;
    grid-row: auto;
    border-left: 0;
    border-right: 0;
    border-top: 0;
    border-bottom: 1px solid rgba(17,17,17,.15);
  }
  @supports (height: 100dvh) {
    .taj-method.taj-staircase .taj-stair-card,
    .taj-method.taj-staircase .taj-stair-card-1,
    .taj-method.taj-staircase .taj-stair-card-merged-s3,
    .taj-method.taj-staircase .taj-stair-card-4 {
      flex-basis: 100dvh;
      height: 100dvh;
      min-height: 100dvh;
      max-height: 100dvh;
    }
  }
  .taj-method.taj-staircase .taj-stair-card img,
  .taj-method.taj-staircase .taj-stair-card video,
  .taj-method.taj-staircase .taj-stair-card iframe {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .taj-method.taj-staircase .taj-stair-card-copy {
    left: 14px;
    right: 14px;
    bottom: 16px;
  }
  .taj-method.taj-staircase .taj-stair-card-copy span {
    font-size: 8px;
  }
  .taj-method.taj-staircase .taj-stair-card-copy h3 {
    font-size: clamp(24px, 8vw, 38px);
  }

  /* LATEST POSTS: keep section compact, but all three cards are visible together. */
  .taj-latest-posts {
    overflow: hidden;
  }
  .taj-latest-query {
    overflow: hidden;
    width: 100%;
  }
  .taj-latest-grid {
    width: 100%;
    height: 100%;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 4px;
  }
  .taj-latest-grid > li {
    min-width: 0;
    width: auto;
  }
  .taj-latest-card {
    height: 100%;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: minmax(0,1fr) auto auto;
    overflow: hidden;
  }
  .taj-latest-card .wp-block-post-featured-image {
    grid-column: 1;
    grid-row: 1;
    margin: 0;
    width: 100%;
    min-height: 0;
  }
  .taj-latest-card .wp-block-post-title {
    grid-column: 1;
    margin: 0;
    padding: 5px 4px 2px;
    font-size: clamp(9px, 2.65vw, 12px);
    line-height: 1.05;
  }
  .taj-latest-card .taj-latest-tags,
  .taj-latest-card .wp-block-post-terms {
    grid-column: 1;
    margin: 0;
    padding: 2px 4px 5px;
    gap: 3px;
    font-size: 6px;
    max-height: 28px;
    overflow: hidden;
  }
  .taj-latest-card .taj-latest-tags a,
  .taj-latest-card .wp-block-post-terms a {
    min-height: 16px;
    padding: 0 4px;
  }

  /* FOOTER: JS sizes the wordmark; CSS only guarantees exact usable width. */
  .taj-footer-v3 .taj-footer-mark {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
  }
  .taj-footer-v3 .taj-footer-site-title {
    display: inline-block;
    white-space: nowrap;
    transform: none;
    transform-origin: left center;
  }
}


/* =========================================================
   v1.6.6 — SAFE VIEWPORT + MOTION AUDIT
   Stable mobile viewport geometry; no section is allowed to
   resize unpredictably as the browser address bar opens/closes.
   ========================================================= */
@media (max-width: 800px) {
  /* Use the stable small viewport on mobile. 100dvh changes during scroll
     on several browsers and was the main source of intermittent clipping. */
  .taj-hero,
  .taj-studio-v2,
  .taj-work-v2,
  .taj-collage.taj-staircase-reverse {
    height: 100svh;
    min-height: 100svh;
    max-height: 100svh;
  }

  /* Section 3 intentionally contains three independent mobile viewports. */
  .taj-method.taj-staircase {
    height: 300svh;
    min-height: 300svh;
    max-height: 300svh;
    overflow: visible;
  }
  .taj-method.taj-staircase .taj-staircase-grid,
  .taj-method.taj-staircase .taj-staircase-grid-merged {
    height: 300svh;
    min-height: 300svh;
    max-height: 300svh;
  }
  .taj-method.taj-staircase .taj-stair-card,
  .taj-method.taj-staircase .taj-stair-card-1,
  .taj-method.taj-staircase .taj-stair-card-merged-s3,
  .taj-method.taj-staircase .taj-stair-card-4 {
    flex: 0 0 100svh;
    height: 100svh;
    min-height: 100svh;
    max-height: 100svh;
    transform: none;
  }

  /* Never allow the motion system to move full-height cards or their grid. */
  .taj-method.taj-staircase.taj-motion-section > .taj-staircase-grid,
  .taj-method.taj-staircase.taj-motion-section > .taj-staircase-grid-merged,
  .taj-method.taj-staircase .taj-stair-card {
    transform: none;
  }

  /* Section 5/6 and CTA/Footer are paired 50/50 viewports.
     Stable svh prevents the lower edge from jumping mid-scroll. */
  .taj-testimonial,
  .taj-latest-posts,
  .taj-contact.taj-cta-seven,
  .taj-footer.taj-footer-v3 {
    height: 50svh;
    min-height: 50svh;
    max-height: 50svh;
  }

  /* Keep meaningful copy inside its own card boundaries. */
  .taj-stair-card-copy {
    box-sizing: border-box;
    max-width: calc(100% - 28px);
  }
  .taj-stair-card-copy h3,
  .taj-stair-card-copy span {
    max-width: 100%;
  }

  /* Avoid GPU/compositing leftovers from previous transform animations. */
  .taj-motion-section > * {
    will-change: opacity, filter, clip-path;
    transform: none;
  }

  /* Only artwork may scale; boxes/cards/viewport geometry remain fixed. */
  .taj-motion-section .taj-film-image,
  .taj-motion-section .taj-feature-media img,
  .taj-motion-section .taj-feature-media video,
  .taj-motion-section .taj-feature-media iframe,
  .taj-motion-section .taj-stair-card > img,
  .taj-motion-section .wp-block-post-featured-image img {
    will-change: transform, filter;
  }
}

/* Reduced motion remains fully static and fully visible. */
@media (prefers-reduced-motion: reduce) {
  .taj-motion-section,
  .taj-motion-section > * {
    transform: none;
    opacity: 1;
  }
}


/* v1.6.7 geometry lock: premium motion is visual-only. */
.taj-motion-section,
.taj-motion-section > .taj-staircase-grid,
.taj-motion-section > .taj-staircase-grid-merged,
.taj-motion-section .taj-stair-card,
.taj-motion-section .taj-feature-media,
.taj-motion-section .taj-latest-card {
  transform: none;
}

/* Cards/images keep clipping their own artwork safely during micro-zoom. */
.taj-motion-section .taj-stair-card,
.taj-motion-section .taj-feature-media,
.taj-motion-section .wp-block-post-featured-image {
  overflow: hidden;
}


/* ==========================================================================
   v1.6.8 — PREMIUM INTERACTION LAYER
   Visual polish only. No viewport/card geometry is changed.
   ========================================================================== */

/* Premium pointer affordance for interactive controls. */
@media (hover:hover) and (pointer:fine) {
  .taj-site a,
  .taj-site button,
  .taj-site [role="button"] {
    transition:
      color .28s ease,
      background-color .32s ease,
      border-color .32s ease,
      box-shadow .36s cubic-bezier(.22,.8,.22,1),
      opacity .28s ease;
  }

  /* Button/link copy and icon micro-shift only. The control box never moves. */
  .taj-site a > svg,
  .taj-site button:not(.taj-mobile-burger) > svg,
  .taj-cta-seven-button .taj-cta-seven-icon,
  .taj-stair-card a svg,
  .taj-latest-card a svg {
    transition: transform .38s cubic-bezier(.22,.8,.22,1), opacity .28s ease;
    transform: translate3d(0,0,0);
  }

  .taj-site a:hover > svg,
  .taj-site button:not(.taj-mobile-burger):hover > svg,
  .taj-cta-seven-button:hover .taj-cta-seven-icon,
  .taj-stair-card a:hover svg,
  .taj-latest-card a:hover svg {
    transform: translate3d(4px,-1px,0);
  }

  .taj-cta-seven-button,
  .taj-hero .wp-block-button__link,
  .taj-site .wp-element-button {
    position: relative;
    isolation: isolate;
    overflow: hidden;
  }

  .taj-cta-seven-button::after,
  .taj-hero .wp-block-button__link::after,
  .taj-site .wp-element-button::after {
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    opacity:0;
    background:linear-gradient(110deg, transparent 18%, rgba(255,255,255,.20) 48%, transparent 78%);
    transform:translate3d(-115%,0,0);
    transition:transform .7s cubic-bezier(.22,.8,.22,1), opacity .2s ease;
  }

  .taj-cta-seven-button:hover::after,
  .taj-hero .wp-block-button__link:hover::after,
  .taj-site .wp-element-button:hover::after {
    opacity:1;
    transform:translate3d(115%,0,0);
  }

  /* Premium image hover: only the pixels move inside existing clipping bounds. */
  .taj-feature-media,
  .taj-stair-card,
  .taj-latest-card .wp-block-post-featured-image,
  .taj-latest-card figure {
    overflow:hidden;
  }

  .taj-feature-media img,
  .taj-stair-card > img,
  .taj-latest-card .wp-block-post-featured-image img,
  .taj-latest-card figure img {
    transition:
      transform .9s cubic-bezier(.22,.8,.22,1),
      filter .55s ease;
    transform-origin:center;
    backface-visibility:hidden;
  }

  .taj-feature-media:hover img,
  .taj-stair-card:hover > img,
  .taj-latest-card:hover .wp-block-post-featured-image img,
  .taj-latest-card:hover figure img {
    transform:scale(1.025);
    filter:contrast(1.02) saturate(1.03);
  }
}

/* Slim viewport progress cue. Injected by main.js; pointer-events stay off. */
.taj-viewport-progress {
  --taj-progress: 0;
  position:fixed;
  right:clamp(14px,1.4vw,24px);
  top:50%;
  z-index:9990;
  display:flex;
  align-items:center;
  gap:9px;
  transform:translateY(-50%);
  pointer-events:none;
  mix-blend-mode:difference;
  color:#fff;
  font:600 10px/1 "Zalando Sans Expanded", Arial, sans-serif;
  letter-spacing:.08em;
  opacity:.72;
}
.taj-viewport-progress__track {
  position:relative;
  width:1px;
  height:86px;
  background:rgba(255,255,255,.28);
  overflow:hidden;
}
.taj-viewport-progress__fill {
  position:absolute;
  inset:auto 0 0;
  height:calc(var(--taj-progress) * 100%);
  background:#fff;
  transition:height .42s cubic-bezier(.22,.8,.22,1);
}
.taj-viewport-progress__count {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:4px;
  min-width:22px;
}
.taj-viewport-progress__current { opacity:1; }
.taj-viewport-progress__total { opacity:.48; }
.taj-viewport-progress__divider {
  display:block;
  width:13px;
  height:1px;
  background:currentColor;
  opacity:.48;
}

/* Subtle desktop cursor. Pure fixed overlay; never changes layout/hit targets. */
.taj-premium-cursor {
  position:fixed;
  left:0;
  top:0;
  z-index:1000000;
  width:18px;
  height:18px;
  margin:-9px 0 0 -9px;
  border:1px solid rgba(255,255,255,.75);
  border-radius:50%;
  pointer-events:none;
  mix-blend-mode:difference;
  opacity:0;
  transform:translate3d(var(--taj-cursor-x, -100px), var(--taj-cursor-y, -100px), 0) scale(1);
  transition:
    width .22s ease,
    height .22s ease,
    margin .22s ease,
    opacity .18s ease,
    border-color .22s ease,
    background-color .22s ease;
}
.taj-premium-cursor.is-visible { opacity:.78; }
.taj-premium-cursor.is-interactive {
  width:34px;
  height:34px;
  margin:-17px 0 0 -17px;
  background:rgba(255,255,255,.13);
  border-color:rgba(255,255,255,.9);
}

/* Keep the interaction layer intentionally quiet on touch/mobile. */
@media (max-width:800px), (hover:none), (pointer:coarse) {
  .taj-viewport-progress,
  .taj-premium-cursor { display:none; }
}

/* Accessibility / comfort: all premium decoration becomes static. */
@media (prefers-reduced-motion: reduce) {
  .taj-viewport-progress__fill,
  .taj-premium-cursor,
  .taj-cta-seven-button::after,
  .taj-hero .wp-block-button__link::after,
  .taj-site .wp-element-button::after,
  .taj-feature-media img,
  .taj-stair-card > img,
  .taj-latest-card img {
    transition:none;
    animation:none;
    transform:none;
  }
  .taj-cta-seven-button::after,
  .taj-hero .wp-block-button__link::after,
  .taj-site .wp-element-button::after {
    display:none;
  }
}


/* =========================================================
   v1.6.9 — menu stability + premium water hover + slimmer CTA
   ========================================================= */
@media (min-width: 801px) {
  .taj-header,
  .taj-header > .wp-block-shortcode,
  .taj-classic-nav,
  .taj-classic-menu,
  .taj-classic-menu li { overflow: visible; }
  .taj-classic-nav { position: relative; z-index: 100020; }
  .taj-classic-menu .sub-menu {
    z-index: 100030;
    max-height: min(72vh, 620px);
    overflow-x: visible;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
  }
  .taj-classic-menu .sub-menu .sub-menu { z-index: 100040; }
}

.taj-mobile-burger,
.taj-mobile-burger:hover,
.taj-mobile-burger:focus,
.taj-mobile-burger:focus-visible,
.taj-mobile-burger:active,
.taj-mobile-burger svg,
.taj-mobile-burger:hover svg,
.taj-mobile-burger:focus svg,
.taj-mobile-burger:active svg {
  transform: none;
  translate: none;
  rotate: none;
  scale: 1;
}
.taj-mobile-burger { transition: opacity .16s ease; }

@media (max-width: 800px) {
  .taj-classic-nav { display: block; pointer-events: none; }
  .taj-classic-nav.is-open { display: block; pointer-events: auto; }
  .taj-mobile-menu-search { margin-top: 26px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.16); }
  .taj-mobile-menu-search form { position: relative; margin: 0; }
  .taj-mobile-menu-search input[type="search"] {
    width: 100%; height: 48px; padding: 0 52px 0 16px;
    border: 1px solid rgba(255,255,255,.24); border-radius: 999px;
    background: rgba(255,255,255,.06); color: #fff; font: inherit; outline: none;
  }
  .taj-mobile-menu-search input[type="search"]::placeholder { color: rgba(255,255,255,.58); }
  .taj-mobile-menu-search input[type="search"]:focus { border-color: rgba(255,255,255,.72); background: rgba(255,255,255,.09); }
  .taj-mobile-menu-search button {
    position: absolute; top: 50%; right: 6px; width: 36px; height: 36px;
    transform: translateY(-50%); border: 0; border-radius: 50%;
    display: grid; place-items: center; background: #fff; color: #111; cursor: pointer;
  }
  .taj-mobile-menu-search button svg { width: 16px; height: 16px; }
}

.taj-water-media { position: relative; isolation: isolate; overflow: hidden; }
.taj-water-media::before,
.taj-water-media::after {
  content: ""; position: absolute; left: var(--taj-water-x, 50%); top: var(--taj-water-y, 50%);
  width: var(--taj-water-size, 0px); height: var(--taj-water-size, 0px); border-radius: 50%;
  pointer-events: none; z-index: 5; opacity: 0; transform: translate(-50%, -50%) scale(.25);
}
.taj-water-media::before {
  border: 1.5px solid rgba(255,255,255,.56);
  box-shadow: 0 0 0 5px rgba(255,255,255,.07), inset 0 0 14px rgba(255,255,255,.08);
}
.taj-water-media::after {
  background: radial-gradient(circle, rgba(255,255,255,.11) 0 9%, rgba(255,255,255,.025) 10% 24%, rgba(255,255,255,.10) 25% 27%, transparent 28% 43%, rgba(255,255,255,.07) 44% 46%, transparent 47%);
  mix-blend-mode: soft-light;
}
.taj-water-media.is-water-active::before { animation: tajWaterRing .76s cubic-bezier(.16,.84,.32,1) both; }
.taj-water-media.is-water-active::after { animation: tajWaterSurface .82s ease-out both; }
@keyframes tajWaterRing {
  0% { opacity: .72; transform: translate(-50%,-50%) scale(.20); }
  65% { opacity: .32; }
  100% { opacity: 0; transform: translate(-50%,-50%) scale(1); }
}
@keyframes tajWaterSurface {
  0% { opacity: .46; transform: translate(-50%,-50%) scale(.18); filter: blur(0); }
  60% { opacity: .20; }
  100% { opacity: 0; transform: translate(-50%,-50%) scale(1.08); filter: blur(1px); }
}
.taj-water-media.is-water-hover img,
.taj-water-media.is-water-hover video,
.taj-water-media.is-water-hover iframe {
  transform: scale(1.012);
  transition: transform .55s cubic-bezier(.22,.8,.22,1);
}

.taj-hero-cta.wp-block-button .wp-block-button__link { min-height: 46px; padding-top: 4px; padding-bottom: 4px; }
.taj-hero-cta-icon { width: 36px; height: 36px; flex-basis: 36px; }
.taj-cta-seven-button { min-height: 48px; padding-top: 4px; padding-bottom: 4px; }
.taj-cta-seven-icon { width: 36px; height: 36px; flex-basis: 36px; }
@media (max-width: 800px) {
  .taj-hero-cta.wp-block-button .wp-block-button__link { min-height: 44px; }
  .taj-cta-seven-button { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  .taj-water-media::before, .taj-water-media::after { display: none; }
}


/* =========================================================
   v1.7.0 — fix water ripple visibility + premium mobile search
   ========================================================= */
@media (max-width: 800px) {
  .taj-mobile-menu-search {
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid rgba(255,255,255,.14);
  }
  .taj-mobile-search-label {
    margin: 0 0 10px;
    color: rgba(255,255,255,.68);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
  }
  .taj-mobile-menu-search form {
    position: relative;
    margin: 0;
    padding: 8px;
    border-radius: 22px;
    border: 1px solid rgba(255,255,255,.14);
    background: linear-gradient(180deg, rgba(255,255,255,.09), rgba(255,255,255,.045));
    box-shadow: 0 18px 34px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.08);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
  }
  .taj-mobile-menu-search input[type="search"] {
    width: 100%;
    height: 52px;
    padding: 0 64px 0 18px;
    border: 0;
    border-radius: 16px;
    background: rgba(255,255,255,.97);
    color: #111;
    font: inherit;
    font-size: 15px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.35);
    outline: none;
  }
  .taj-mobile-menu-search input[type="search"]::placeholder {
    color: rgba(17,17,17,.42);
  }
  .taj-mobile-menu-search input[type="search"]:focus {
    box-shadow: 0 0 0 2px rgba(255,255,255,.18), inset 0 1px 0 rgba(255,255,255,.45);
  }
  .taj-mobile-menu-search button {
    position: absolute;
    top: 50%;
    right: 14px;
    width: 40px;
    height: 40px;
    transform: translateY(-50%);
    border: 0;
    border-radius: 999px;
    display: grid;
    place-items: center;
    background: #111;
    color: #fff;
    box-shadow: 0 10px 24px rgba(0,0,0,.18);
    cursor: pointer;
  }
  .taj-mobile-menu-search button svg {
    width: 17px;
    height: 17px;
  }
}
.taj-water-media::before,
.taj-water-media::after {
  z-index: 8;
}
.taj-water-media::before {
  border: 2px solid rgba(255,255,255,.72);
  box-shadow: 0 0 0 6px rgba(255,255,255,.10), 0 0 24px rgba(255,255,255,.12), inset 0 0 22px rgba(255,255,255,.10);
}
.taj-water-media::after {
  background: radial-gradient(circle, rgba(255,255,255,.22) 0 7%, rgba(255,255,255,.08) 8% 14%, rgba(255,255,255,.16) 15% 17%, transparent 18% 31%, rgba(255,255,255,.12) 32% 34%, transparent 35% 100%);
  mix-blend-mode: screen;
}
.taj-water-media.is-water-hover img,
.taj-water-media.is-water-hover video,
.taj-water-media.is-water-hover iframe {
  transform: scale(1.018);
  filter: contrast(1.02) saturate(1.02) brightness(.99);
}


/* =========================================================
   v1.7.1 — robust mobile menu + stronger water ripple
   ========================================================= */
@media (max-width: 800px) {
  .taj-classic-nav {
    display: block;
    pointer-events: none;
    visibility: hidden;
    opacity: 0;
    transform: translateY(-102%);
  }
  .taj-classic-nav.is-open {
    pointer-events: auto;
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
  }
}

.taj-water-media::before,
.taj-water-media::after {
  z-index: 12;
}
.taj-water-media::before {
  border: 3.5px solid rgba(255,255,255,.90);
  box-shadow:
    0 0 0 10px rgba(255,255,255,.14),
    0 0 0 24px rgba(255,255,255,.06),
    0 0 38px rgba(255,255,255,.18),
    inset 0 0 28px rgba(255,255,255,.14);
}
.taj-water-media::after {
  background:
    radial-gradient(circle,
      rgba(255,255,255,.30) 0 6%,
      rgba(255,255,255,.16) 7% 12%,
      rgba(255,255,255,.24) 13% 15%,
      transparent 16% 26%,
      rgba(255,255,255,.16) 27% 30%,
      transparent 31% 42%,
      rgba(255,255,255,.12) 43% 45%,
      transparent 46% 100%);
  mix-blend-mode: screen;
}
.taj-water-media.is-water-active::before {
  animation: tajWaterRingStrong 1.02s cubic-bezier(.16,.84,.22,1) both;
}
.taj-water-media.is-water-active::after {
  animation: tajWaterSurfaceStrong 1.08s ease-out both;
}
@keyframes tajWaterRingStrong {
  0%   { opacity: .98; transform: translate(-50%,-50%) scale(.14); }
  45%  { opacity: .76; }
  100% { opacity: 0; transform: translate(-50%,-50%) scale(1.28); }
}
@keyframes tajWaterSurfaceStrong {
  0%   { opacity: .72; transform: translate(-50%,-50%) scale(.12); filter: blur(0); }
  55%  { opacity: .44; }
  100% { opacity: 0; transform: translate(-50%,-50%) scale(1.34); filter: blur(1.6px); }
}
.taj-water-media.is-water-hover img,
.taj-water-media.is-water-hover video,
.taj-water-media.is-water-hover iframe {
  transform: scale(1.024);
  filter: contrast(1.04) saturate(1.04) brightness(.985);
  transition: transform .65s cubic-bezier(.22,.8,.22,1), filter .55s ease;
}


/* =========================================================
   v1.7.2 — mobile nav portal + desktop search + liquid lens
   ========================================================= */

/* Mobile menu now lives directly under BODY, outside hero/header clipping. */
@media (max-width:800px) {
  body > .taj-classic-nav {
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    box-sizing: border-box;
    width: 100vw;
    height: 100svh;
    max-height: 100svh;
    padding: 94px 22px 30px;
    background: #0d0d0d;
    color: #fff;
    overflow-x: hidden;
    overflow-y: auto;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate3d(0,-100%,0);
    transition: none;
  }
  body > .taj-classic-nav.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translate3d(0,0,0);
    transition: none;
  }
  .taj-mobile-burger {
    z-index: 2147483640;
  }
}

/* Desktop search: compact, quiet, premium; aligned beneath the menu. */
@media (min-width:801px) {
  .taj-mobile-menu-search {
    width: min(100%, 286px);
    margin: 26px 0 0 auto;
    padding: 0;
  }
  .taj-mobile-search-label {
    display: none;
  }
  .taj-mobile-menu-search form {
    position: relative;
    margin: 0;
    padding: 0;
    height: 42px;
    border: 1px solid rgba(255,255,255,.34);
    border-radius: 999px;
    background: rgba(12,12,12,.18);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.07), 0 9px 30px rgba(0,0,0,.10);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    overflow: hidden;
  }
  .taj-mobile-menu-search input[type="search"] {
    width: 100%;
    height: 40px;
    padding: 0 48px 0 16px;
    border: 0;
    outline: 0;
    border-radius: 999px;
    background: transparent;
    color: #fff;
    font-size: 12px;
    letter-spacing: .02em;
    box-shadow: none;
  }
  .taj-mobile-menu-search input[type="search"]::placeholder {
    color: rgba(255,255,255,.62);
  }
  .taj-mobile-menu-search button {
    position: absolute;
    right: 4px;
    top: 50%;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 50%;
    transform: translateY(-50%);
    display: grid;
    place-items: center;
    background: rgba(255,255,255,.94);
    color: #111;
    cursor: pointer;
    transition: background .2s ease, box-shadow .2s ease;
  }
  .taj-mobile-menu-search button:hover,
  .taj-mobile-menu-search button:focus-visible {
    background: #fff;
    box-shadow: 0 0 0 5px rgba(255,255,255,.10);
  }
  .taj-mobile-menu-search button svg { width:15px; height:15px; }
}

/* Continuous liquid lens: broad rings, water-reflection palette, no restart/stutter. */
.taj-water-media {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.taj-water-media::before,
.taj-water-media::after {
  display: none; /* retire old restart-based ripple */
}
.taj-water-lens {
  --taj-water-diameter: 360px;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 20;
  width: var(--taj-water-diameter);
  height: var(--taj-water-diameter);
  border-radius: 50%;
  pointer-events: none;
  opacity: 0;
  will-change: transform, opacity;
  background:
    radial-gradient(circle at center,
      rgba(235,247,255,.10) 0 24%,
      rgba(196,224,240,.18) 25% 29%,
      rgba(240,250,255,.08) 30% 38%,
      rgba(172,209,229,.20) 39% 44%,
      rgba(239,249,255,.07) 45% 56%,
      rgba(155,197,221,.15) 57% 62%,
      transparent 63% 100%);
  border: 6px solid rgba(211,235,247,.38);
  box-shadow:
    inset 0 0 0 12px rgba(236,248,255,.065),
    inset 0 0 34px rgba(161,207,230,.18),
    0 0 0 12px rgba(229,244,252,.07),
    0 0 42px rgba(116,175,205,.16);
  mix-blend-mode: screen;
  -webkit-backdrop-filter: blur(1.4px) saturate(1.08) brightness(1.025);
  backdrop-filter: blur(1.4px) saturate(1.08) brightness(1.025);
  transition: opacity .14s ease, width .18s ease, height .18s ease;
}
.taj-water-lens::before,
.taj-water-lens::after {
  content:"";
  position:absolute;
  border-radius:50%;
  pointer-events:none;
}
.taj-water-lens::before {
  inset: 18%;
  border: 5px solid rgba(226,243,252,.26);
  box-shadow: 0 0 22px rgba(187,220,237,.11);
}
.taj-water-lens::after {
  inset: 34%;
  border: 4px solid rgba(232,246,253,.17);
}
.taj-water-lens.is-visible {
  opacity: .92;
  animation: tajLiquidBreath 1.55s ease-in-out infinite alternate;
}
@keyframes tajLiquidBreath {
  from { filter: saturate(.96) brightness(.98); }
  to   { filter: saturate(1.07) brightness(1.035); }
}
.taj-water-media.is-water-hover img,
.taj-water-media.is-water-hover video,
.taj-water-media.is-water-hover iframe {
  transform: scale(1.012);
  filter: saturate(1.035) contrast(1.018) brightness(.995);
  transition: transform .48s cubic-bezier(.22,.8,.22,1), filter .38s ease;
}

@media (prefers-reduced-motion:reduce) {
  .taj-water-lens { display:none; }
}


/* =========================================================
   v1.7.3 — visible menu close + uniform menu + one-shot water impact
   ========================================================= */

@media (max-width:800px) {
  body > .taj-classic-nav {
    padding: 92px 20px 28px;
  }

  /* A real close control inside the overlay, independent of header stacking contexts. */
  .taj-mobile-menu-close {
    position: fixed;
    top: 9px;
    right: 14px;
    z-index: 2147483647;
    width: 68px;
    height: 58px;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    cursor: pointer;
    transform: none;
  }
  .taj-mobile-menu-close svg {
    width: 58px;
    height: auto;
    max-height: 50px;
    display: block;
    transform: none;
  }
  .taj-mobile-menu-close span { display:none; }

  /* Main menu typography: one consistent visual scale. */
  body > .taj-classic-nav .taj-classic-menu > li > a {
    width: calc(100% - 48px);
    min-height: 54px;
    padding: 10px 0;
    font-size: clamp(22px, 6.2vw, 28px);
    line-height: 1.08;
    font-weight: 600;
    letter-spacing: -.025em;
  }
  body > .taj-classic-nav .taj-classic-menu .sub-menu a {
    min-height: 40px;
    padding: 8px 0;
    font-size: 15px;
    line-height: 1.25;
    font-weight: 500;
  }
  body > .taj-classic-nav .taj-submenu-toggle {
    top: 5px;
    width: 44px;
    height: 44px;
  }

  /* Mobile search intentionally mirrors the desktop search language. */
  body > .taj-classic-nav .taj-mobile-menu-search {
    width: min(100%, 286px);
    margin: 24px 0 0 auto;
    padding: 0;
    border: 0;
  }
  body > .taj-classic-nav .taj-mobile-search-label {
    display: none;
  }
  body > .taj-classic-nav .taj-mobile-menu-search form {
    position: relative;
    height: 42px;
    margin: 0;
    padding: 0;
    border: 1px solid rgba(255,255,255,.34);
    border-radius: 999px;
    background: rgba(12,12,12,.18);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.07), 0 9px 30px rgba(0,0,0,.10);
    overflow: hidden;
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
  }
  body > .taj-classic-nav .taj-mobile-menu-search input[type="search"] {
    width: 100%;
    height: 40px;
    padding: 0 48px 0 16px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #fff;
    font-size: 12px;
    letter-spacing: .02em;
    box-shadow: none;
    outline: 0;
  }
  body > .taj-classic-nav .taj-mobile-menu-search input[type="search"]::placeholder {
    color: rgba(255,255,255,.62);
  }
  body > .taj-classic-nav .taj-mobile-menu-search button {
    position: absolute;
    right: 4px;
    top: 50%;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 50%;
    transform: translateY(-50%);
    display: grid;
    place-items: center;
    background: rgba(255,255,255,.94);
    color: #111;
    box-shadow: none;
  }
}

/* Retire the persistent liquid lens from v1.7.2. */
.taj-water-lens { display:none; }

/* One impact only: broad water surface, then it disappears. */
.taj-water-impact {
  --taj-impact-diameter: 520px;
  position:absolute;
  z-index:24;
  width:var(--taj-impact-diameter);
  height:var(--taj-impact-diameter);
  border-radius:50%;
  pointer-events:none;
  transform:translate(-50%,-50%) scale(.06);
  opacity:0;
  will-change:transform,opacity,filter;
  border: clamp(10px, 1.4vw, 20px) solid rgba(215,236,246,.46);
  background:
    radial-gradient(circle,
      rgba(247,252,255,.24) 0 8%,
      rgba(203,229,241,.18) 9% 18%,
      rgba(248,253,255,.10) 19% 29%,
      rgba(181,216,233,.18) 30% 38%,
      transparent 39% 100%);
  box-shadow:
    inset 0 0 0 clamp(14px,2vw,28px) rgba(235,248,255,.08),
    inset 0 0 48px rgba(137,190,216,.19),
    0 0 0 clamp(12px,1.8vw,25px) rgba(229,244,251,.07),
    0 0 55px rgba(111,169,199,.16);
  mix-blend-mode:screen;
  -webkit-backdrop-filter: blur(2.2px) saturate(1.08) brightness(1.03);
  backdrop-filter: blur(2.2px) saturate(1.08) brightness(1.03);
  animation:tajWaterImpact 1.02s cubic-bezier(.16,.76,.22,1) forwards;
}
.taj-water-impact::before {
  content:"";
  position:absolute;
  inset:21%;
  border-radius:50%;
  border: clamp(7px,1vw,13px) solid rgba(229,244,251,.28);
  box-shadow:0 0 30px rgba(183,219,236,.10);
}
.taj-water-impact::after {
  content:"";
  position:absolute;
  inset:40%;
  border-radius:50%;
  background:rgba(241,250,254,.16);
  filter:blur(6px);
}
@keyframes tajWaterImpact {
  0%   { opacity:.08; transform:translate(-50%,-50%) scale(.06); filter:blur(0); }
  12%  { opacity:.92; }
  55%  { opacity:.64; }
  82%  { opacity:.26; }
  100% { opacity:0; transform:translate(-50%,-50%) scale(1.18); filter:blur(2.6px); }
}

/* The photograph itself responds softly while hovered. */
.taj-water-media {
  --taj-photo-x:0px;
  --taj-photo-y:0px;
}
.taj-water-media.is-water-hover img,
.taj-water-media.is-water-hover video,
.taj-water-media.is-water-hover iframe {
  transform:translate3d(var(--taj-photo-x),var(--taj-photo-y),0) scale(1.028);
  filter:saturate(1.035) contrast(1.018) brightness(.995);
  transition:transform .16s linear, filter .35s ease;
  will-change:transform;
}
.taj-water-media:not(.is-water-hover) img,
.taj-water-media:not(.is-water-hover) video,
.taj-water-media:not(.is-water-hover) iframe {
  transform:translate3d(0,0,0) scale(1);
  transition:transform .52s cubic-bezier(.22,.8,.22,1), filter .38s ease;
}

@media (prefers-reduced-motion:reduce) {
  .taj-water-impact { display:none; }
}


/*
   v1.7.5 — premium ripple refinement + centered mobile-menu search
*/
@media (max-width: 800px) {
  body > .taj-classic-nav .taj-mobile-menu-search {
    width: min(100%, 320px);
    margin: 28px auto 0;
    padding: 0;
    border: 0;
    text-align: center;
  }
  body > .taj-classic-nav .taj-mobile-search-label {
    display: block;
    margin: 0 0 12px;
    text-align: center;
    font-size: 11px;
    line-height: 1.2;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: rgba(255,255,255,.70);
  }
  body > .taj-classic-nav .taj-mobile-menu-search form {
    position: relative;
    height: 46px;
    margin: 0 auto;
    width: 100%;
    border: 1px solid rgba(255,255,255,.30);
    border-radius: 999px;
    background: rgba(255,255,255,.05);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.07), 0 14px 34px rgba(0,0,0,.14);
    overflow: hidden;
  }
  body > .taj-classic-nav .taj-mobile-menu-search input[type="search"] {
    width: 100%;
    height: 44px;
    padding: 0 58px 0 22px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #fff;
    text-align: center;
    font-size: 13px;
    letter-spacing: .015em;
    box-shadow: none;
    outline: 0;
  }
  body > .taj-classic-nav .taj-mobile-menu-search input[type="search"]::placeholder {
    color: rgba(255,255,255,.64);
    text-align: center;
  }
  body > .taj-classic-nav .taj-mobile-menu-search button {
    position: absolute;
    right: 5px;
    top: 50%;
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 50%;
    transform: translateY(-50%);
    display: grid;
    place-items: center;
    background: rgba(255,255,255,.96);
    color: #111;
    box-shadow: 0 5px 18px rgba(0,0,0,.10);
  }
}

.taj-water-impact {
  --taj-impact-diameter: 560px;
  position: absolute;
  z-index: 24;
  width: var(--taj-impact-diameter);
  height: var(--taj-impact-diameter);
  border-radius: 50%;
  pointer-events: none;
  transform: translate(-50%, -50%) scale(.08);
  opacity: 0;
  will-change: transform, opacity, filter;
  border: clamp(12px, 1.5vw, 24px) solid rgba(214, 234, 244, .36);
  background: radial-gradient(circle,
    rgba(247,252,255,.18) 0 5%,
    rgba(214,233,242,.14) 6% 10%,
    rgba(255,255,255,.08) 11% 14%,
    transparent 15% 100%);
  box-shadow:
    inset 0 0 0 clamp(18px, 2vw, 34px) rgba(241,249,253,.08),
    inset 0 0 70px rgba(137, 182, 205, .16),
    0 0 0 clamp(16px, 2vw, 30px) rgba(227,241,249,.05),
    0 10px 60px rgba(115, 161, 185, .13);
  mix-blend-mode: screen;
  -webkit-backdrop-filter: blur(2.8px) saturate(1.08) brightness(1.02);
  backdrop-filter: blur(2.8px) saturate(1.08) brightness(1.02);
  animation: tajWaterImpactMain 1.08s cubic-bezier(.12,.74,.18,1) forwards;
}
.taj-water-impact::before,
.taj-water-impact::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  inset: 0;
  pointer-events: none;
}
.taj-water-impact::before {
  inset: 12%;
  border: clamp(10px, 1.2vw, 18px) solid rgba(234, 246, 252, .42);
  box-shadow: inset 0 0 35px rgba(255,255,255,.12), 0 0 22px rgba(189,219,233,.12);
  animation: tajWaterImpactInner 1.05s ease-out forwards;
}
.taj-water-impact::after {
  inset: 32%;
  border: clamp(8px, .9vw, 14px) solid rgba(247, 252, 255, .30);
  filter: blur(.2px);
  animation: tajWaterImpactCore .98s ease-out forwards;
}
@keyframes tajWaterImpactMain {
  0%   { opacity: .04; transform: translate(-50%, -50%) scale(.08); }
  10%  { opacity: .95; }
  55%  { opacity: .62; }
  100% { opacity: 0; transform: translate(-50%, -50%) scale(1.16); filter: blur(2.6px); }
}
@keyframes tajWaterImpactInner {
  0%   { opacity: .18; transform: scale(.58); }
  18%  { opacity: .68; }
  100% { opacity: 0; transform: scale(1.28); }
}
@keyframes tajWaterImpactCore {
  0%   { opacity: .22; transform: scale(.38); }
  14%  { opacity: .52; }
  100% { opacity: 0; transform: scale(1.38); }
}
.taj-water-media {
  --taj-photo-x: 0px;
  --taj-photo-y: 0px;
}
.taj-water-media.is-water-hover img,
.taj-water-media.is-water-hover video,
.taj-water-media.is-water-hover iframe {
  transform: translate3d(var(--taj-photo-x), var(--taj-photo-y), 0) scale(1.036);
  filter: saturate(1.04) contrast(1.02) brightness(.997);
  transition: none;
  will-change: transform, filter;
}
.taj-water-media:not(.is-water-hover) img,
.taj-water-media:not(.is-water-hover) video,
.taj-water-media:not(.is-water-hover) iframe {
  transform: translate3d(var(--taj-photo-x), var(--taj-photo-y), 0) scale(1);
  transition: none;
  will-change: transform, filter;
}


/* =========================================================
   v1.7.6 — Omega Zenith search placement, header artifact fix,
   image-only softer water interaction
   ========================================================= */

/* Desktop: the search UI no longer belongs in the header/menu column. */
@media (min-width: 801px) {
  .taj-classic-nav .taj-mobile-menu-search,
  .taj-header .taj-mobile-menu-search {
    display: none;
  }
}

/* Mobile hamburger: use the former desktop search design, centered exactly. */
@media (max-width: 800px) {
  body > .taj-classic-nav .taj-mobile-menu-search {
    display: block;
    width: 238px;
    max-width: calc(100vw - 44px);
    margin: 28px auto 0;
    padding: 0;
    border: 0;
    text-align: center;
  }
  body > .taj-classic-nav .taj-mobile-search-label {
    display: none;
  }
  body > .taj-classic-nav .taj-mobile-menu-search form {
    position: relative;
    width: 100%;
    height: 44px;
    margin: 0 auto;
    padding: 0;
    border: 1px solid rgba(255,255,255,.32);
    border-radius: 999px;
    background: rgba(18,18,18,.22);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.07), 0 10px 26px rgba(0,0,0,.10);
    overflow: hidden;
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
  }
  body > .taj-classic-nav .taj-mobile-menu-search input[type="search"] {
    display: block;
    width: 100%;
    height: 42px;
    margin: 0;
    padding: 0 48px 0 18px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #fff;
    text-align: left;
    font: inherit;
    font-size: 12px;
    line-height: 42px;
    letter-spacing: .02em;
    box-shadow: none;
    outline: 0;
  }
  body > .taj-classic-nav .taj-mobile-menu-search input[type="search"]::placeholder {
    color: rgba(255,255,255,.60);
    text-align: left;
  }
  body > .taj-classic-nav .taj-mobile-menu-search button {
    position: absolute;
    top: 50%;
    right: 4px;
    width: 34px;
    height: 34px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    transform: translateY(-50%);
    display: grid;
    place-items: center;
    background: rgba(255,255,255,.96);
    color: #111;
    box-shadow: none;
  }
  body > .taj-classic-nav .taj-mobile-menu-search button svg {
    width: 15px;
    height: 15px;
  }
}

/* Remove the stray white marker beneath the Site Title on mobile. */
@media (max-width: 800px) {
  .taj-header::before,
  .taj-header::after,
  .taj-header .taj-brand::before,
  .taj-header .taj-brand::after,
  .taj-header .wp-block-site-title::before,
  .taj-header .wp-block-site-title::after,
  .taj-header .wp-block-site-title > a::before,
  .taj-header .wp-block-site-title > a::after {
    content: none;
    display: none;
    border: 0;
    box-shadow: none;
  }
}

/* Softer, more natural one-shot water ripple — still images only via JS. */
.taj-water-impact {
  border: clamp(7px, .85vw, 13px) solid rgba(224,239,247,.25);
  background: radial-gradient(circle,
    rgba(250,253,255,.10) 0 5%,
    rgba(218,235,244,.09) 6% 10%,
    rgba(255,255,255,.045) 11% 15%,
    transparent 16% 100%);
  box-shadow:
    inset 0 0 0 clamp(10px,1.25vw,19px) rgba(242,249,252,.045),
    inset 0 0 46px rgba(145,187,207,.09),
    0 0 0 clamp(9px,1.1vw,17px) rgba(230,242,248,.028),
    0 8px 34px rgba(119,163,184,.07);
  mix-blend-mode: screen;
  -webkit-backdrop-filter: blur(1.4px) saturate(1.035) brightness(1.01);
  backdrop-filter: blur(1.4px) saturate(1.035) brightness(1.01);
  animation-duration: 1.02s;
}
.taj-water-impact::before {
  border-width: clamp(5px,.65vw,10px);
  border-color: rgba(235,246,251,.22);
  box-shadow: inset 0 0 24px rgba(255,255,255,.055), 0 0 14px rgba(190,219,232,.055);
}
.taj-water-impact::after {
  border-width: clamp(4px,.5vw,7px);
  border-color: rgba(247,252,255,.16);
}

/* Photo response remains present, but restrained and premium. */
.taj-water-media.is-water-hover img {
  transform: translate3d(var(--taj-photo-x),var(--taj-photo-y),0) scale(1.022);
  filter: saturate(1.02) contrast(1.01) brightness(.998);
  transition: none;
  will-change: transform, filter;
}
.taj-water-media:not(.is-water-hover) img {
  transform: translate3d(var(--taj-photo-x),var(--taj-photo-y),0) scale(1);
  transition: none;
}
/* Explicit safety: video/iframe must never inherit the water-hover transform. */
.taj-water-media video,
.taj-water-media iframe,
.taj-water-media.is-water-hover video,
.taj-water-media.is-water-hover iframe {
  transform: none;
  filter: none;
}




/* =========================================================
   v1.7.10 — restore original house burger + contain SVG overflow
   Keep v1.7.9 menu hierarchy and full-width search improvements.
   ========================================================= */
@media (max-width: 800px) {
  /* Smaller primary menu, larger submenu for clearer hierarchy. */
  body > .taj-classic-nav .taj-classic-menu > li > a {
    width: calc(100% - 46px);
    min-height: 48px;
    padding: 8px 0;
    font-size: clamp(18px, 5.1vw, 23px);
    line-height: 1.12;
    font-weight: 700;
    letter-spacing: -.018em;
  }
  body > .taj-classic-nav .taj-classic-menu .sub-menu a {
    width: 100%;
    min-height: 44px;
    padding: 9px 0;
    font-size: clamp(17px, 4.7vw, 21px);
    line-height: 1.22;
    font-weight: 500;
    letter-spacing: -.012em;
  }
  body > .taj-classic-nav .taj-submenu-toggle {
    top: 2px;
    width: 44px;
    height: 44px;
  }

  /* Full-width responsive search inside the mobile menu. */
  body > .taj-classic-nav .taj-mobile-menu-search {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin: 28px 0 0;
    padding: 0;
    text-align: center;
  }
  body > .taj-classic-nav .taj-mobile-menu-search form {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    height: 54px;
    margin: 0;
    border-radius: 999px;
  }
  body > .taj-classic-nav .taj-mobile-menu-search input[type="search"] {
    box-sizing: border-box;
    width: 100%;
    height: 52px;
    padding: 0 64px 0 22px;
    font-size: 15px;
    line-height: 52px;
    text-align: left;
  }
  body > .taj-classic-nav .taj-mobile-menu-search input[type="search"]::placeholder {
    text-align: left;
  }
  body > .taj-classic-nav .taj-mobile-menu-search button {
    right: 5px;
    width: 44px;
    height: 44px;
  }
  body > .taj-classic-nav .taj-mobile-menu-search button svg {
    width: 18px;
    height: 18px;
  }
}

@media (min-width: 801px) {
  .taj-mobile-burger { display: none; }
}




/* =========================================================
   v1.7.13 — TOTAL AUDIT: canonical mobile burger + reliable post tags
   ========================================================= */
@media (max-width: 800px) {
  /* Header owns the burger; it must never participate in the flex width calculation. */
  .taj-header {
    position: relative;
  }
  .taj-header .taj-mobile-burger,
  .taj-mobile-burger {
    display: inline-flex;
    position: absolute;
    top: 0;
    right: 14px;
    left: auto;
    bottom: auto;
    z-index: 100005;
    box-sizing: border-box;
    width: 76.8px;
    height: 76.8px;
    min-width: 76.8px;
    min-height: 76.8px;
    flex: none;
    margin: 0;
    padding: 4px;
    border: 0;
    background: transparent;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    contain: layout paint;
  }
  .taj-header .taj-mobile-burger svg,
  .taj-mobile-burger svg {
    display: block;
    width: 64.8px;
    max-width: 64.8px;
    height: auto;
    max-height: 64.8px;
    margin: 0;
    overflow: hidden;
    clip-path: none;
  }
}
@media (max-width: 760px) {
  .taj-header .taj-mobile-burger,
  .taj-mobile-burger {
    right: 14px;
  }
}
@media (min-width: 801px) {
  .taj-mobile-burger { display: none; }
}


/* =========================================================
   v1.7.17 — canonical mobile control + softer image-water motion
   ========================================================= */
@media (max-width: 800px) {
  /* The copied in-overlay close control is retired. The original burger is the only control. */
  .taj-mobile-menu-close {
    display: none;
    visibility: hidden;
    pointer-events: none;
  }

  /* Keep the original hamburger above the portaled navigation when open. Shape/SVG untouched. */
  .taj-mobile-burger.is-menu-open {
    position: fixed;
    top: 0;
    right: 14px;
    z-index: 2147483647;
  }

  /* Search exists only as a complete form at the bottom of the mobile menu. */
  body > .taj-classic-nav .taj-mobile-menu-search {
    position: relative;
    display: block;
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin: 28px 0 0;
    padding: 0;
  }
  body > .taj-classic-nav .taj-mobile-menu-search form {
    position: relative;
    display: block;
    box-sizing: border-box;
    width: 100%;
    height: 54px;
    margin: 0;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.30);
    border-radius: 999px;
    background: rgba(18,18,18,.20);
  }
  body > .taj-classic-nav .taj-mobile-menu-search input[type="search"] {
    display: block;
    box-sizing: border-box;
    width: 100%;
    height: 52px;
    margin: 0;
    padding: 0 64px 0 22px;
    border: 0;
    background: transparent;
    color: #fff;
    font-size: 15px;
    line-height: 52px;
    outline: 0;
    box-shadow: none;
  }
  body > .taj-classic-nav .taj-mobile-menu-search button {
    position: absolute;
    top: 50%;
    right: 5px;
    width: 44px;
    height: 44px;
    margin: 0;
    padding: 0;
    transform: translateY(-50%);
    border: 0;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: rgba(255,255,255,.96);
    color: #111;
  }
}

/* Retire all legacy pseudo-ripple systems: only the injected .taj-water-impact is used. */
.taj-water-media::before,
.taj-water-media::after,
.taj-water-lens {
  display: none;
  content: none;
}

/* Softer one-shot water impact: broader transparency, much lower contrast. */
.taj-water-impact {
  border: 4px solid rgba(225,239,247,.16);
  background: radial-gradient(circle,
    rgba(250,253,255,.060) 0 7%,
    rgba(219,235,244,.050) 8% 13%,
    rgba(255,255,255,.028) 14% 18%,
    transparent 19% 100%);
  box-shadow:
    inset 0 0 0 8px rgba(242,249,252,.022),
    inset 0 0 34px rgba(145,187,207,.045),
    0 0 0 7px rgba(230,242,248,.018),
    0 6px 24px rgba(119,163,184,.035);
  mix-blend-mode: screen;
  -webkit-backdrop-filter: blur(.8px) saturate(1.015) brightness(1.005);
  backdrop-filter: blur(.8px) saturate(1.015) brightness(1.005);
  animation-duration: .94s;
}
.taj-water-impact::before {
  border-width: 3px;
  border-color: rgba(235,246,251,.12);
  box-shadow: 0 0 12px rgba(190,219,232,.03);
}
.taj-water-impact::after {
  border-width: 2px;
  border-color: rgba(247,252,255,.08);
}

/* Image stays alive under the pointer: gentle drift, no video motion. */
.taj-water-media.is-water-hover img {
  transform: translate3d(var(--taj-photo-x), var(--taj-photo-y), 0) scale(1.018);
  filter: saturate(1.012) contrast(1.006) brightness(.999);
  transition: none;
  will-change: transform, filter;
}
.taj-water-media:not(.is-water-hover) img {
  transform: translate3d(var(--taj-photo-x), var(--taj-photo-y), 0) scale(1);
  transition: none;
}
.taj-water-media video,
.taj-water-media iframe,
.taj-water-media.is-water-hover video,
.taj-water-media.is-water-hover iframe {
  transform: none;
  filter: none;
}
\n\n/* =========================================================\n   v1.7.18 — single-image viewport + Section 3 mobile reset\n   ========================================================= */\n@media (max-width: 800px) {\n  .taj-method.taj-staircase {\n    width:100%;\n    height:100svh;\n    min-height:100svh;\n    max-height:100svh;\n    padding:14px;\n    overflow:hidden;\n    display:block;\n    position:relative;\n  }\n  .taj-method.taj-staircase .taj-staircase-label { left:14px; top:14px; z-index:12; }\n  .taj-method.taj-staircase .taj-staircase-grid,\n  .taj-method.taj-staircase .taj-staircase-grid-merged {\n    --stair-gap:6px;\n    width:100%;\n    height:100%;\n    min-height:0;\n    max-height:none;\n    padding:0;\n    display:grid;\n    grid-template-columns:repeat(3,minmax(0,1fr));\n    grid-template-rows:repeat(3,minmax(0,1fr));\n    gap:var(--stair-gap);\n    overflow:hidden;\n  }\n  .taj-method.taj-staircase .taj-stair-card,\n  .taj-method.taj-staircase .taj-stair-card-1,\n  .taj-method.taj-staircase .taj-stair-card-merged-s3,\n  .taj-method.taj-staircase .taj-stair-card-4 {\n    flex:none;\n    width:auto;\n    height:auto;\n    min-height:0;\n    max-height:none;\n    border:1px solid rgba(17,17,17,.13);\n    transform:none;\n  }\n  .taj-method.taj-staircase .taj-stair-card-1 { grid-column:3; grid-row:1; }\n  .taj-method.taj-staircase .taj-stair-card-merged-s3 { grid-column:2/4; grid-row:2/4; }\n  .taj-method.taj-staircase .taj-stair-card-4 { grid-column:1; grid-row:3; }\n  .taj-method.taj-staircase .taj-stair-card img,\n  .taj-method.taj-staircase .taj-stair-card video,\n  .taj-method.taj-staircase .taj-stair-card iframe { width:100%; height:100%; object-fit:cover; }\n  .taj-method.taj-staircase .taj-stair-card-copy { left:8px; right:8px; bottom:8px; gap:8px; }\n  .taj-method.taj-staircase .taj-stair-card-copy span { font-size:6px; }\n  .taj-method.taj-staircase .taj-stair-card-copy h3 { font-size:clamp(10px,3vw,15px); }\n}\n

/* =========================================================
   v1.7.22 — requested typography adjustments only
   - Desktop header menu: +2px.
   - Mobile hero description: +2px, preserving narrow-phone scale.
   ========================================================= */
@media (min-width: 801px) {
  .taj-classic-menu > li > a,
  .taj-classic-menu .sub-menu a,
  .taj-header .wp-block-navigation.taj-nav .wp-block-navigation-item__content {
    font-size: 20px;
  }
}

@media (max-width: 800px) {
  .taj-hero-description {
    font-size: 14px;
  }
}

@media (max-width: 430px) {
  .taj-hero-description {
    font-size: 12.5px;
  }
}


/* =========================================================
   v1.7.23 — requested desktop menu + CTA shine fix
   ========================================================= */
@media (min-width: 801px) {
  .taj-classic-menu > li > a,
  .taj-classic-menu .sub-menu a,
  .taj-header .wp-block-navigation.taj-nav .wp-block-navigation-item__content {
    font-size: 20px;
  }
}

/* CTA button: keep the existing hover colors, remove only the sweeping light flash. */
.taj-cta-seven-button::after,
.taj-cta-seven-button:hover::after,
.taj-cta-seven-button:focus-visible::after {
  display: none;
  content: none;
  opacity: 0;
  background: none;
  transform: none;
  transition: none;
}


/* =========================================================
   v1.7.25 — Latest Posts: title + WordPress categories only
   ========================================================= */
.taj-latest-card .taj-latest-categories {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
  margin: 8px 0 0;
  padding: 0 12px 12px;
  min-height: 18px;
  color: #4f4f49;
  font-size: clamp(8px,.68vw,10px);
  line-height: 1.2;
  letter-spacing: .07em;
  text-transform: uppercase;
  overflow: visible;
  max-height: none;
}
.taj-latest-card .taj-latest-categories a {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 8px;
  border: 1px solid rgba(17,17,17,.14);
  border-radius: 999px;
  background: rgba(17,17,17,.03);
  color: inherit;
  opacity: .72;
  text-decoration: none;
}
.taj-latest-card .taj-latest-categories .wp-block-post-terms__separator {
  display: none;
}
@media (max-width: 800px) {
  .taj-latest-card .taj-latest-categories {
    gap: 3px;
    margin-top: 2px;
    padding: 2px 4px 5px;
    font-size: 6px;
  }
  .taj-latest-card .taj-latest-categories a {
    min-height: 16px;
    padding: 0 4px;
  }
}


/* =========================================================
   v1.7.28 — Latest Posts categories framed/pill style
   ========================================================= */
.taj-latest-card .taj-latest-categories {
  gap: 8px 8px;
  margin: 10px 0 0;
  padding: 0 12px 12px;
}
.taj-latest-card .taj-latest-categories a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 0 10px;
  border: 1px solid rgba(17,17,17,.34);
  border-radius: 999px;
  background: #ffffff;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.45);
  color: #111111;
  opacity: 1;
  text-decoration: none;
}
.taj-latest-card .taj-latest-categories a:hover,
.taj-latest-card .taj-latest-categories a:focus-visible {
  background: #f3f2ed;
  border-color: rgba(17,17,17,.48);
  color: #111111;
  opacity: 1;
}
@media (max-width: 800px) {
  .taj-latest-card .taj-latest-categories {
    gap: 4px;
    margin-top: 4px;
    padding: 2px 4px 6px;
  }
  .taj-latest-card .taj-latest-categories a {
    min-height: 18px;
    padding: 0 6px;
    border-width: 1px;
  }
}


/* =========================================================
   v1.7.29 — Latest Posts category frame guaranteed on wrapper
   ========================================================= */
.taj-latest-card .taj-latest-categories,
.taj-latest-card .taxonomy-category.wp-block-post-terms,
.taj-latest-card .wp-block-post-terms.taxonomy-category {
  box-sizing: border-box;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  width: max-content;
  max-width: calc(100% - 24px);
  min-height: 30px;
  margin: 10px 12px 12px;
  padding: 5px 9px;
  border: 1.5px solid #111111;
  border-radius: 8px;
  background: #ffffff;
  color: #111111;
  opacity: 1;
  overflow: visible;
}
.taj-latest-card .taj-latest-categories a,
.taj-latest-card .taxonomy-category.wp-block-post-terms a,
.taj-latest-card .wp-block-post-terms.taxonomy-category a {
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: #111111;
  opacity: 1;
}
@media (max-width: 800px) {
  .taj-latest-card .taj-latest-categories,
  .taj-latest-card .taxonomy-category.wp-block-post-terms,
  .taj-latest-card .wp-block-post-terms.taxonomy-category {
    max-width: calc(100% - 8px);
    min-height: 22px;
    margin: 4px 4px 6px;
    padding: 3px 5px;
    border-width: 1px;
    border-radius: 5px;
  }
}

/* =========================================================
   v1.7.36 — Section 5 vertically centered + right viewport bleed
   ========================================================= */
.taj-feature-section-five {
  background: #ffffff;
  color: #111111;
  border-top-color: rgba(17,17,17,.18);
}
.taj-feature-section-five .taj-feature-kicker,
.taj-feature-section-five .taj-feature-headline,
.taj-feature-section-five .taj-feature-meta {
  color: #111111;
  opacity: 1;
}
.taj-feature-section-five .taj-feature-media {
  align-self: center;
  width: calc(100% + clamp(28px, 5vw, 92px));
  margin-top: 0;
  margin-right: calc(0px - clamp(28px, 5vw, 92px));
  padding: 0;
  background: transparent;
  outline: 0;
  box-shadow: none;
  border: 0;
}
.taj-feature-section-five .taj-feature-media img,
.taj-feature-section-five .taj-feature-media video,
.taj-feature-section-five .taj-feature-media iframe,
.taj-feature-section-five .taj-feature-media .taj-project-media,
.taj-feature-section-five .taj-feature-media .taj-custom-media {
  border: 0;
  outline: 0;
  box-shadow: none;
  background: transparent;
}

@media (max-width: 960px) {
  .taj-feature-section-five .taj-feature-media {
    align-self: center;
    margin-top: 0;
  }
}
@media (max-width: 640px) {
  .taj-feature-section-five .taj-feature-media {
    width: calc(100% + 16px);
    margin-right: -16px;
  }
}

/* =========================================================
   v1.7.36 — Section 6 vertically centered + left viewport bleed
   ========================================================= */
.taj-feature-section-six {
  background: #5ca310;
  color: #ffffff;
  border-top-color: rgba(255,255,255,.22);
}
.taj-feature-section-six .taj-feature-kicker,
.taj-feature-section-six .taj-feature-headline,
.taj-feature-section-six .taj-feature-meta {
  color: #ffffff;
  opacity: 1;
}
.taj-feature-section-six .taj-feature-copy {
  justify-self: end;
}
.taj-feature-section-six .taj-feature-media {
  align-self: center;
  width: calc(100% + clamp(28px, 5vw, 92px));
  margin-top: 0;
  margin-left: calc(0px - clamp(28px, 5vw, 92px));
  margin-right: 0;
  padding: 0;
  background: transparent;
  outline: 0;
  box-shadow: none;
  border: 0;
}
.taj-feature-section-six .taj-feature-media img,
.taj-feature-section-six .taj-feature-media video,
.taj-feature-section-six .taj-feature-media iframe,
.taj-feature-section-six .taj-feature-media .taj-project-media,
.taj-feature-section-six .taj-feature-media .taj-custom-media {
  border: 0;
  outline: 0;
  box-shadow: none;
  background: transparent;
}

@media (max-width: 960px) {
  .taj-feature-section-six .taj-feature-copy {
    justify-self: auto;
  }
  .taj-feature-section-six .taj-feature-media {
    align-self: center;
    margin-top: 0;
  }
}
@media (max-width: 640px) {
  .taj-feature-section-six .taj-feature-media {
    width: calc(100% + 16px);
    margin-left: -16px;
  }
}


/* =========================================================
   v1.7.38 — Section 4 photo-edge cleanup
   ========================================================= */
.taj-collage.taj-staircase-reverse .taj-stair-card {
  background: #ffffff;
  border-color: #ffffff;
}

/* =========================================================
   v1.7.45 — FINAL FOOTER AUDIT
   One clean footer rule-set. Removes legacy Quick Links patch stacking.
   Critical fix: footer meta must never use CSS filter because Chromium
   clips absolutely-positioned descendants to the filtered element region.
   ========================================================= */

/* Footer geometry stays fixed: opening Quick Links never changes its height. */
.taj-footer.taj-footer-v3 {
  position: relative;
  height: 50svh;
  min-height: 50svh;
  max-height: 50svh;
  overflow: visible;
  background: #000000;
  isolation: auto;
}

/* Site wrapper may crop horizontally, never vertically. */
.taj-site {
  overflow-x: hidden;
  overflow-y: visible;
}

/* IMPORTANT: remove footer-meta filter/compositing clip from global motion system. */
.taj-motion-section .taj-footer-meta,
.taj-motion-section:not(.taj-motion-active) .taj-footer-meta,
.taj-motion-section.taj-motion-active .taj-footer-meta,
.taj-footer-v3 .taj-footer-meta {
  filter: none;
  -webkit-filter: none;
  clip-path: none;
  -webkit-clip-path: none;
  transform: none;
  will-change: auto;
  contain: none;
  overflow: visible;
  opacity: 1;
}

.taj-footer-v3 .taj-footer-mark {
  position: relative;
  z-index: 1;
}

/* Legal row: approved +2px sizing. */
.taj-footer-v3 .taj-footer-legal {
  position: relative;
  z-index: 2;
  font-size: 14px;
}

/* Bottom row. */
.taj-footer-v3 .taj-footer-meta {
  position: relative;
  z-index: 100;
  grid-template-columns: minmax(0,1fr) minmax(260px,330px);
  align-items: end;
}

.taj-footer-v3 .taj-footer-social-block {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  min-width: 0;
}

/* Approved +3px copyright sizing. The legacy .taj-footer-meta small 9px lock was removed so this rule can govern the copyright. */
.taj-footer-v3 .taj-footer-copyright {
  display: block;
  margin: 0;
  color: #888888;
  font-size: 12px;
  line-height: 1.35;
  text-align: left;
  white-space: normal;
}

/* ---------- QUICK LINKS ---------- */
.taj-footer-v3 .taj-footer-quick-links,
.taj-footer-v3 .taj-footer-quick-links[open] {
  position: relative;
  justify-self: end;
  width: 100%;
  min-width: 0;
  color: #ffffff;
  overflow: visible;
  z-index: 300;
}

.taj-footer-v3 .taj-footer-quick-links > summary {
  position: relative;
  z-index: 302;
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  width: 100%;
  min-width: 0;
  padding: 8px 0;
  margin: 0;
  border-bottom: 1px solid rgba(255,255,255,.42);
  font-size: 12px;
  line-height: 1.2;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  user-select: none;
}
.taj-footer-v3 .taj-footer-quick-links > summary::-webkit-details-marker { display: none; }
.taj-footer-v3 .taj-footer-quick-links > summary::marker { content: ""; }

.taj-footer-v3 .taj-footer-quick-links-icon,
.taj-footer-v3 .taj-footer-quick-links-icon svg {
  width: 12px;
  height: 12px;
  flex: 0 0 12px;
  display: block;
}
.taj-footer-v3 .taj-footer-quick-links-icon {
  transition: transform .2s ease;
}
.taj-footer-v3 .taj-footer-quick-links[open] .taj-footer-quick-links-icon {
  transform: rotate(180deg);
}

/* True overlay: completely outside normal flow, opening it cannot create space. */
.taj-footer-v3 .taj-footer-quick-links-list {
  display: none;
  position: absolute;
  right: 0;
  left: auto;
  bottom: calc(100% + 10px);
  top: auto;
  width: 100%;
  min-width: 0;
  height: auto;
  max-height: none;
  margin: 0;
  padding: 15px 20px;
  gap: 9px;
  background: #111111;
  border: 1px solid rgba(255,255,255,.28);
  box-shadow: 0 16px 40px rgba(0,0,0,.42);
  overflow: visible;
  visibility: hidden;
  opacity: 0;
  z-index: 1000;
}
.taj-footer-v3 .taj-footer-quick-links[open] > .taj-footer-quick-links-list {
  display: grid;
  visibility: visible;
  opacity: 1;
}
.taj-footer-v3 .taj-footer-quick-links-list a {
  display: block;
  position: relative;
  width: 100%;
  margin: 0;
  padding: 4px 0;
  color: #ffffff;
  font-size: 12px;
  line-height: 1.35;
  overflow: visible;
}
.taj-footer-v3 .taj-footer-quick-links-list a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: 0;
  height: 1px;
  background: currentColor;
  transition: right .2s ease;
}
.taj-footer-v3 .taj-footer-quick-links-list a:hover::after,
.taj-footer-v3 .taj-footer-quick-links-list a:focus-visible::after { right: 0; }

/* ---------- FLOATING CONTACT ----------
   Clear square contact icon, fully inside footer and above Quick Links. */
.taj-footer-v3 .taj-footer-floating-contact {
  position: absolute;
  right: 0;
  bottom: 58px;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  color: #ffffff;
  background: #111111;
  border: 1px solid rgba(255,255,255,.65);
  text-decoration: none;
  z-index: 400;
  overflow: visible;
  animation: taj-footer-contact-float 3.8s ease-in-out infinite;
}
.taj-footer-v3 .taj-footer-floating-contact svg {
  width: 18px;
  height: 18px;
  display: block;
}
.taj-footer-v3 .taj-footer-floating-contact:hover,
.taj-footer-v3 .taj-footer-floating-contact:focus-visible {
  background: #ffffff;
  color: #000000;
}
@keyframes taj-footer-contact-float {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}

@media (max-width: 720px) {
  .taj-footer.taj-footer-v3 {
    height: 50svh;
    min-height: 50svh;
    max-height: 50svh;
    overflow: visible;
  }
  .taj-footer-v3 .taj-footer-legal { font-size: 12px; }
  .taj-footer-v3 .taj-footer-meta {
    grid-template-columns: minmax(0,1fr) minmax(138px,42vw);
    gap: 14px;
  }
  .taj-footer-v3 .taj-footer-copyright {
    font-size: 12px;
    max-width: 34ch;
  }
  .taj-footer-v3 .taj-footer-quick-links > summary,
  .taj-footer-v3 .taj-footer-quick-links-list a {
    font-size: 10px;
  }
  .taj-footer-v3 .taj-footer-quick-links-icon,
  .taj-footer-v3 .taj-footer-quick-links-icon svg {
    width: 10px;
    height: 10px;
    flex-basis: 10px;
  }
  .taj-footer-v3 .taj-footer-quick-links-list {
    right: 0;
    bottom: calc(100% + 8px);
    width: min(215px,72vw);
    padding: 12px 14px;
    gap: 6px;
  }
  .taj-footer-v3 .taj-footer-floating-contact {
    right: 0;
    bottom: 50px;
    width: 30px;
    height: 30px;
  }
  .taj-footer-v3 .taj-footer-floating-contact svg {
    width: 14px;
    height: 14px;
  }
}



/* =========================================================
   v1.7.46 — Global fixed Contact button
   The floating Contact control is viewport-fixed and no longer
   belongs to the footer layout, so it remains visible everywhere.
   ========================================================= */
.taj-global-floating-contact {
  position: fixed;
  right: clamp(20px, 2.6vw, 48px);
  bottom: clamp(20px, 3.2vh, 34px);
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  margin: 0;
  padding: 0;
  color: #ffffff;
  background: #111111;
  border: 1px solid rgba(255,255,255,.72);
  text-decoration: none;
  z-index: 99999;
  overflow: visible;
  transform: none;
  filter: none;
  opacity: 1;
  visibility: visible;
  isolation: isolate;
  animation: taj-global-contact-float 3.8s ease-in-out infinite;
}
.taj-global-floating-contact svg {
  width: 19px;
  height: 19px;
  display: block;
}
.taj-global-floating-contact:hover,
.taj-global-floating-contact:focus-visible {
  background: #ffffff;
  color: #000000;
}
@keyframes taj-global-contact-float {
  0%,100% { translate: 0 0; }
  50% { translate: 0 -5px; }
}
@media (max-width: 720px) {
  .taj-global-floating-contact {
    right: 16px;
    bottom: 18px;
    width: 36px;
    height: 36px;
  }
  .taj-global-floating-contact svg {
    width: 16px;
    height: 16px;
  }
}


/* =========================================================
   v1.7.48 — Raise global WhatsApp contact above Quick Links arrow
   ========================================================= */
.taj-global-floating-contact {
  bottom: clamp(88px, 11vh, 124px);
}
@media (max-width: 720px) {
  .taj-global-floating-contact {
    bottom: 82px;
  }
}


/* =========================================================
   v1.7.49 — WhatsApp edge tab with label
   ========================================================= */
.taj-global-floating-contact {
  right: 0;
  width: auto;
  min-width: 190px;
  height: 48px;
  padding: 0 18px 0 16px;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  border-radius: 24px 0 0 24px;
  border-right: 0;
  white-space: nowrap;
}
.taj-global-floating-contact svg {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
}
.taj-global-floating-contact-label {
  display: inline-block;
  font-size: 14px;
  line-height: 1;
  font-weight: 600;
  letter-spacing: .01em;
}
@media (max-width: 720px) {
  .taj-global-floating-contact {
    right: 0;
    min-width: 166px;
    height: 42px;
    padding: 0 14px 0 13px;
    gap: 8px;
    border-radius: 21px 0 0 21px;
  }
  .taj-global-floating-contact svg {
    width: 18px;
    height: 18px;
    flex-basis: 18px;
  }
  .taj-global-floating-contact-label {
    font-size: 12px;
  }
}


/* =========================================================
   v1.7.50 — Latest Posts category pills: final visible frame
   ========================================================= */
.taj-latest-card .taj-latest-categories,
.taj-latest-card .taxonomy-category.wp-block-post-terms,
.taj-latest-card .wp-block-post-terms.taxonomy-category {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  width: auto;
  max-width: 100%;
  min-height: 0;
  margin: 12px 0 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}
.taj-latest-card .taj-latest-categories a,
.taj-latest-card .taxonomy-category.wp-block-post-terms a,
.taj-latest-card .wp-block-post-terms.taxonomy-category a {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 6px 13px;
  border: 1.5px solid #111111;
  border-radius: 999px;
  outline: 0;
  background: transparent;
  box-shadow: inset 0 0 0 .01px #111111;
  color: #111111;
  opacity: 1;
  font-size: clamp(13px,.92vw,17px);
  line-height: 1.2;
  letter-spacing: 0;
  text-transform: none;
  text-decoration: none;
  white-space: normal;
}
.taj-latest-card .taj-latest-categories a:hover,
.taj-latest-card .taj-latest-categories a:focus-visible,
.taj-latest-card .taxonomy-category.wp-block-post-terms a:hover,
.taj-latest-card .taxonomy-category.wp-block-post-terms a:focus-visible {
  background: #111111;
  color: #ffffff;
  border-color: #111111;
}
.taj-latest-card .taj-latest-categories .wp-block-post-terms__separator,
.taj-latest-card .taxonomy-category.wp-block-post-terms .wp-block-post-terms__separator,
.taj-latest-card .wp-block-post-terms.taxonomy-category .wp-block-post-terms__separator {
  display: none;
}
@media (max-width: 800px) {
  .taj-latest-card .taj-latest-categories,
  .taj-latest-card .taxonomy-category.wp-block-post-terms,
  .taj-latest-card .wp-block-post-terms.taxonomy-category {
    gap: 5px;
    margin-top: 7px;
  }
  .taj-latest-card .taj-latest-categories a,
  .taj-latest-card .taxonomy-category.wp-block-post-terms a,
  .taj-latest-card .wp-block-post-terms.taxonomy-category a {
    min-height: 25px;
    padding: 4px 9px;
    border-width: 1px;
    font-size: 10px;
  }
}


/* =========================================================
   v1.7.51 — Latest Posts categories canonical fallback
   Render-time markup in functions.php is authoritative; this block is the
   visual fallback for editor/front-end variants and cached block markup.
   ========================================================= */
.taj-latest-posts .taj-latest-card .taj-latest-categories,
.taj-latest-posts .taj-latest-card .taxonomy-category.wp-block-post-terms {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 12px 0 0;
  padding: 0;
  overflow: visible;
  max-height: none;
}
.taj-latest-posts .taj-latest-card .taj-latest-category-pill,
.taj-latest-posts .taj-latest-card .taj-latest-categories > a,
.taj-latest-posts .taj-latest-card .taxonomy-category.wp-block-post-terms > a {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 6px 13px;
  border: 2px solid #111111;
  border-radius: 999px;
  background: #ffffff;
  color: #111111;
  opacity: 1;
  font-size: clamp(13px,.92vw,17px);
  line-height: 1.2;
  letter-spacing: 0;
  text-transform: none;
  text-decoration: none;
}
.taj-latest-posts .taj-latest-card .wp-block-post-terms__separator {
  display: none;
}
@media (max-width: 800px) {
  .taj-latest-posts .taj-latest-card .taj-latest-category-pill,
  .taj-latest-posts .taj-latest-card .taj-latest-categories > a,
  .taj-latest-posts .taj-latest-card .taxonomy-category.wp-block-post-terms > a {
    min-height: 25px;
    padding: 4px 9px;
    border-width: 1.5px;
    font-size: 10px;
  }
}


/* =========================================================
   v1.7.52 — Section 8 category frame: template-owned canonical fix
   The visible frame lives on an explicit wrapper in front-page.html,
   independent of Gutenberg's Post Terms markup and historical selectors.
   ========================================================= */
.taj-latest-posts .taj-latest-card .taj-latest-category-hardframe {
  box-sizing: border-box;
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  min-height: 36px;
  margin: 12px 0 0;
  padding: 6px 13px;
  border: 2px solid #111111;
  border-radius: 999px;
  background: #ffffff;
  color: #111111;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  overflow: visible;
  opacity: 1;
}
.taj-latest-posts .taj-latest-card .taj-latest-category-hardframe .wp-block-post-terms,
.taj-latest-posts .taj-latest-card .taj-latest-category-hardframe .taj-latest-categories {
  display: inline;
  width: auto;
  max-width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  overflow: visible;
}
.taj-latest-posts .taj-latest-card .taj-latest-category-hardframe a {
  display: inline;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #111111;
  box-shadow: none;
  text-decoration: none;
  font-size: clamp(13px,.92vw,17px);
  line-height: 1.25;
}
.taj-latest-posts .taj-latest-card .taj-latest-category-hardframe:hover {
  background: #111111;
  color: #ffffff;
}
.taj-latest-posts .taj-latest-card .taj-latest-category-hardframe:hover a {
  color: #ffffff;
}
@media (max-width: 720px) {
  .taj-latest-posts .taj-latest-card .taj-latest-category-hardframe {
    min-height: 32px;
    padding: 5px 11px;
  }
}


/* =========================================================
   v1.7.53 — Remove outer category frame + lower WhatsApp tab
   ========================================================= */
/* Only the individual category links should be framed. Any legacy outer
   wrapper is intentionally neutralised so cached/editor markup cannot
   produce the large second pill around the category row. */
.taj-latest-posts .taj-latest-card .taj-latest-category-hardframe,
.taj-latest-posts .taj-latest-card .taj-latest-category-hardframe-runtime {
  display: contents;
  width: auto;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}

/* Restore the floating WhatsApp tab to the lower, normal viewport position. */
.taj-global-floating-contact {
  bottom: clamp(24px, 3.4vh, 36px);
}
@media (max-width: 720px) {
  .taj-global-floating-contact {
    bottom: 20px;
  }
}


/* =========================================================
   v1.7.54 — Remove category commas + mobile clipping fix + WhatsApp clearance
   ========================================================= */
/* Category rows use flex gap only. Never render visual separators. */
.taj-latest-posts .taj-latest-card .wp-block-post-terms__separator,
.taj-latest-posts .taj-latest-card .taj-latest-categories .wp-block-post-terms__separator {
  display: none;
  width: 0;
  margin: 0;
  padding: 0;
}

/* Slightly raise the fixed WhatsApp edge tab so it clears the Quick Links arrow. */
.taj-global-floating-contact {
  bottom: clamp(46px, 5.6vh, 62px);
}

@media (max-width: 720px) {
  /* Section 8 must grow if long category names need another line. Legacy
     50vh/max-height rules were clipping the bottom pills. */
  .taj-latest-posts {
    height: auto;
    min-height: 50svh;
    max-height: none;
    overflow: visible;
    padding-bottom: 12px;
  }
  .taj-latest-query,
  .taj-latest-grid,
  .taj-latest-grid > li,
  .taj-latest-card {
    height: auto;
    min-height: 0;
    max-height: none;
    overflow: visible;
  }
  .taj-latest-grid {
    align-items: start;
  }
  .taj-latest-card .taj-latest-categories,
  .taj-latest-card .wp-block-post-terms {
    max-height: none;
    min-height: 0;
    overflow: visible;
    flex-wrap: wrap;
    align-content: flex-start;
    padding-bottom: 8px;
  }
  .taj-latest-posts .taj-latest-card .taj-latest-category-pill,
  .taj-latest-posts .taj-latest-card .taj-latest-categories > a,
  .taj-latest-posts .taj-latest-card .taxonomy-category.wp-block-post-terms > a {
    flex: 0 1 auto;
    max-width: 100%;
    white-space: normal;
    overflow: visible;
    height: auto;
    min-height: 25px;
  }
  .taj-global-floating-contact {
    bottom: 58px;
  }
}


/* =========================================================
   v1.7.55 — Fine position + desktop header menu typography
   ========================================================= */
/* Move the global WhatsApp tab down exactly 2px from v1.7.54. */
.taj-global-floating-contact {
  bottom: calc(clamp(46px, 5.6vh, 62px) - 2px);
}

/* Desktop header navigation: reduce the current 20px size by 1px only. */
@media (min-width: 801px) {
  .taj-classic-menu > li > a,
  .taj-classic-menu .sub-menu a,
  .taj-header .wp-block-navigation.taj-nav .wp-block-navigation-item__content {
    font-size: 19px;
  }
}

@media (max-width: 720px) {
  .taj-global-floating-contact {
    bottom: 56px;
  }
}
\n\n/* =========================================================\n   v1.7.56 — Threads footer icon + Hero-aware WhatsApp motion\n   ========================================================= */\n.taj-footer-v3 .taj-social-threads svg {\n  width: 27px;\n  height: 27px;\n  display: block;\n}\n\n/* Controlled state starts hidden while the Hero occupies any part of viewport. */\n.taj-global-floating-contact.taj-contact-hero-controlled {\n  opacity: 0;\n  visibility: hidden;\n  pointer-events: none;\n  transform: translate3d(30px, 0, 0) scale(.965);\n  filter: blur(7px);\n  transition:\n    opacity .42s cubic-bezier(.22,1,.36,1),\n    transform .58s cubic-bezier(.16,1,.3,1),\n    filter .42s cubic-bezier(.22,1,.36,1),\n    visibility 0s linear .58s;\n  will-change: transform, opacity, filter;\n}\n.taj-global-floating-contact.taj-contact-hero-controlled.is-contact-visible {\n  opacity: 1;\n  visibility: visible;\n  pointer-events: auto;\n  transform: translate3d(0,0,0) scale(1);\n  filter: blur(0);\n  transition:\n    opacity .46s cubic-bezier(.22,1,.36,1),\n    transform .62s cubic-bezier(.16,1,.3,1),\n    filter .46s cubic-bezier(.22,1,.36,1),\n    visibility 0s linear 0s;\n}\n@media (prefers-reduced-motion: reduce) {\n  .taj-global-floating-contact.taj-contact-hero-controlled,\n  .taj-global-floating-contact.taj-contact-hero-controlled.is-contact-visible {\n    transition: opacity .15s linear, visibility 0s linear;\n    transform: none;\n    filter: none;\n  }\n}\n

/* =========================================================
   v1.7.59 — Section 4 mobile: one card per viewport + outlined overlays
   ========================================================= */

/* Desktop + mobile: keep all text over Section 4 imagery readable.
   The outline color is supplied dynamically by PHP as the inverse
   of the configured Section 4 text color. */
.taj-collage.taj-staircase-reverse .taj-staircase-label,
.taj-collage.taj-staircase-reverse .taj-staircase-label span,
.taj-collage.taj-staircase-reverse .taj-stair-card-copy,
.taj-collage.taj-staircase-reverse .taj-stair-card-copy span,
.taj-collage.taj-staircase-reverse .taj-stair-card-copy h3 {
  -webkit-text-stroke: .7px var(--taj-s4-text-outline, #000000);
  text-shadow:
    -.65px -.65px 0 var(--taj-s4-text-outline, #000000),
     .65px -.65px 0 var(--taj-s4-text-outline, #000000),
    -.65px  .65px 0 var(--taj-s4-text-outline, #000000),
     .65px  .65px 0 var(--taj-s4-text-outline, #000000);
  paint-order: stroke fill;
}

/* Mobile: Section 4 becomes three independent full viewports.
   There are three actual cards in the merged layout, so each card gets 100svh. */
@media (max-width: 800px) {
  .taj-collage.taj-staircase-reverse {
    position: relative;
    box-sizing: border-box;
    width: 100%;
    height: 300svh;
    min-height: 300svh;
    max-height: 300svh;
    padding: 0;
    overflow: visible;
    display: block;
  }

  .taj-collage.taj-staircase-reverse .taj-staircase-grid,
  .taj-collage.taj-staircase-reverse .taj-staircase-grid-reverse,
  .taj-collage.taj-staircase-reverse .taj-staircase-grid-merged-reverse {
    width: 100%;
    height: 300svh;
    min-height: 300svh;
    max-height: 300svh;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
    overflow: visible;
  }

  .taj-collage.taj-staircase-reverse .taj-stair-card,
  .taj-collage.taj-staircase-reverse .taj-reverse-card-merged,
  .taj-collage.taj-staircase-reverse .taj-reverse-card-3,
  .taj-collage.taj-staircase-reverse .taj-reverse-card-6 {
    position: relative;
    flex: 0 0 100svh;
    width: 100%;
    height: 100svh;
    min-height: 100svh;
    max-height: 100svh;
    margin: 0;
    border: 0;
    transform: none;
    overflow: hidden;
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }

  .taj-collage.taj-staircase-reverse .taj-stair-card > img,
  .taj-collage.taj-staircase-reverse .taj-stair-card > video,
  .taj-collage.taj-staircase-reverse .taj-stair-card > iframe,
  .taj-collage.taj-staircase-reverse .taj-stair-card > .taj-custom-media {
    width: 100%;
    height: 100%;
    min-height: 100%;
    object-fit: cover;
    transform: none;
  }

  /* 04 + Material + light visually belongs to Card 1, top-left over the image. */
  .taj-collage.taj-staircase-reverse .taj-staircase-label {
    position: absolute;
    left: 18px;
    right: auto;
    top: 18px;
    bottom: auto;
    z-index: 30;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    text-align: left;
    pointer-events: none;
  }

  .taj-collage.taj-staircase-reverse .taj-stair-card-copy {
    left: 18px;
    right: 18px;
    bottom: 18px;
    z-index: 20;
    max-width: calc(100% - 36px);
  }

  .taj-collage.taj-staircase-reverse .taj-stair-card-copy span {
    font-size: 10px;
  }

  .taj-collage.taj-staircase-reverse .taj-stair-card-copy h3 {
    font-size: clamp(22px, 7vw, 34px);
  }

  /* Prevent the global motion system from moving or clipping these viewport cards. */
  .taj-collage.taj-staircase-reverse.taj-motion-section > .taj-staircase-grid,
  .taj-collage.taj-staircase-reverse.taj-motion-section > .taj-staircase-grid-reverse,
  .taj-collage.taj-staircase-reverse.taj-motion-section > .taj-staircase-grid-merged-reverse,
  .taj-collage.taj-staircase-reverse .taj-stair-card {
    transform: none;
    filter: none;
    clip-path: none;
  }
}


/* =========================================================
   v1.7.60 — Section 3 outlined card text + remove card numbers
   ========================================================= */
.taj-method.taj-staircase .taj-stair-card-copy,
.taj-method.taj-staircase .taj-stair-card-copy h3 {
  -webkit-text-stroke: .7px var(--taj-s3-text-outline, #000000);
  text-shadow:
    -.65px -.65px 0 var(--taj-s3-text-outline, #000000),
     .65px -.65px 0 var(--taj-s3-text-outline, #000000),
    -.65px  .65px 0 var(--taj-s3-text-outline, #000000),
     .65px  .65px 0 var(--taj-s3-text-outline, #000000);
  paint-order: stroke fill;
}
.taj-method.taj-staircase .taj-stair-card-copy > span {
  display: none;
}

/* =========================================================
   v1.8.27 — Desktop header menu typography: -2px
   ========================================================= */
@media (min-width: 801px) {
  .taj-classic-menu > li > a,
  .taj-classic-menu .sub-menu a,
  .taj-header .wp-block-navigation.taj-nav .wp-block-navigation-item__content {
    font-size: 17px;
  }
}
