

:root{
  /* No type overrides. tem.css already declares this brand's stack —
     Marcellus for headings, Playfair Display above 40px, Jost for body
     and labels. The Arabic layer had to replace all three because none
     carries Arabic; English does not. */
  --tem-h1: clamp(2.9rem, 6vw, 5.4rem);
  --tem-h2: clamp(2.1rem, 4vw, 3.5rem);
  --tem-track-label: .24em;
}

.tem-num,
.tem-work__metric b,
.tem-proofbar__fig,
.tem-method__fig{
  direction: ltr;
  unicode-bidi: isolate;
}

[dir="rtl"] .tem-btn svg,
[dir="rtl"] .tem-arrowlink svg,
[dir="rtl"] .tem-rail__cta svg{
  transform: scaleX(-1);
}

[dir="rtl"] .tem-btn{
  clip-path: polygon(
    0 0,
    calc(100% - var(--tem-bevel)) 0,
    100% var(--tem-bevel),
    100% 100%,
    var(--tem-bevel) 100%,
    0 calc(100% - var(--tem-bevel))
  );
}

/* ==========================================================================
   5) Light grounds
   ========================================================================== */
:root{
  --tem-sand: #EAE1D8;      
  --tem-light-ink: rgba(15,42,30,.82);
  --tem-light-mute: rgba(15,42,30,.62);
  --tem-light-line: rgba(15,42,30,.14);
  --tem-gold-deep: #6E4A05; 
}

.tem-ground-cream{ background: var(--tem-cream); }
.tem-ground-sand { background: var(--tem-sand); }

.tem-light{ color: var(--tem-cream-ink); }
.tem-light h1,
.tem-light h2,
.tem-light h3,
.tem-light .tem-h2{ color: var(--tem-cream-ink); }
.tem-light .tem-lead{ color: var(--tem-light-ink); }
.tem-light .tem-eyebrow{ color: var(--tem-gold-deep); }
.tem-light .tem-eyebrow::before{ background: var(--tem-gold-deep); }
.tem-light .tem-glow{ display: none; }   

.tem-light .tem-ulink{ color: var(--tem-cream-ink); border-color: rgba(15,42,30,.3); }
.tem-light .tem-ulink:hover{ color:#8A5C04; border-color:#8A5C04; }
.tem-light .tem-btn--outline{ color: var(--tem-cream-ink); border-color: rgba(15,42,30,.32); }
.tem-light .tem-btn--outline:hover{ color:#8A5C04; border-color:#8A5C04; }
.tem-light .tem-tag{ color: var(--tem-light-mute); border-color: rgba(15,42,30,.18); }
.tem-light .tem-divider{ background: var(--tem-light-line); }

.tem-light .tem-faq,
.tem-light .tem-faq__item{ border-color: var(--tem-light-line); }
.tem-light .tem-faq__item summary{ color: var(--tem-cream-ink); }
.tem-light .tem-faq__item summary:hover{ color:#8A5C04; }
.tem-light .tem-faq__sign::before,
.tem-light .tem-faq__sign::after{ background: var(--tem-cream-ink); }
.tem-light .tem-faq__answer p{ color: var(--tem-light-ink); }

/* ==========================================================================
   6) Inner-page components
   ========================================================================== */

.tem-cardrow{
  display:grid; grid-template-columns:repeat(4,1fr);
  border:1px solid var(--tem-light-line);
}
.tem-cardrow--3{ grid-template-columns:repeat(3,1fr); }
.tem-cardrow > *{
  display:flex; flex-direction:column;
  padding:clamp(1.4rem,2.4vw,2rem);
  text-decoration:none; color:inherit;
  transition:background .35s var(--tem-ease);
}
.tem-cardrow > * + *{ border-inline-start:1px solid var(--tem-light-line); }
.tem-cardrow > a:hover{ background:rgba(255,255,255,.55); }
.tem-cardrow__no{
  font-family:var(--tem-label); font-size:.7rem; font-weight:600;
  color:var(--tem-light-mute); margin-bottom:1.2rem;
  direction:ltr; unicode-bidi:isolate;
}
.tem-cardrow h3{ font-size:1.1rem; font-weight:700; margin:0 0 .7rem; line-height:1.5; }
.tem-cardrow p{ font-size:.9rem; line-height:1.85; color:var(--tem-light-ink); margin:0; }
.tem-cardrow__go{
  margin-top:auto; padding-top:1.4rem;
  font-size:.78rem; font-weight:700; color:var(--tem-gold-deep);
  display:inline-flex; align-items:center; gap:.5rem;
}
.tem-cardrow__go svg{ transform:scaleX(-1); }   
@media (max-width:900px){
  .tem-cardrow,.tem-cardrow--3{ grid-template-columns:1fr 1fr; }
  .tem-cardrow > *:nth-child(3){ border-inline-start:0; }
  .tem-cardrow > *:nth-child(n+3){ border-top:1px solid var(--tem-light-line); }
}
@media (max-width:560px){
  .tem-cardrow,.tem-cardrow--3{ grid-template-columns:1fr; }
  .tem-cardrow > * + *{ border-inline-start:0; border-top:1px solid var(--tem-light-line); }
}

.tem-figurebox{
  display:grid; grid-template-columns:1fr 1fr;
  border:1px solid var(--tem-light-line); margin-top:clamp(1.8rem,3vw,2.6rem);
}
.tem-figurebox > div{ padding:clamp(1.5rem,3vw,2.3rem); }
.tem-figurebox > div + div{ border-inline-start:1px solid var(--tem-light-line); }
.tem-figurebox b{
  display:block; line-height:1;
  font-size:clamp(1.9rem,4vw,2.9rem); color:var(--tem-cream-ink);
  direction:ltr; unicode-bidi:isolate;
}
.tem-figurebox span{ display:block; margin-top:.7rem; font-size:.8rem; color:var(--tem-light-mute); }
@media (max-width:560px){
  .tem-figurebox{ grid-template-columns:1fr; }
  .tem-figurebox > div + div{ border-inline-start:0; border-top:1px solid var(--tem-light-line); }
}

.tem-statement{
  display:grid; grid-template-columns:minmax(120px,1fr) 3.2fr;
  gap:clamp(1.2rem,3vw,3rem); align-items:start;
}
.tem-statement .tem-eyebrow{ margin:0; padding-top:.5rem; }
.tem-statement p{
  font-size:clamp(1.05rem,1.9vw,1.45rem); line-height:1.95;
  color:var(--tem-cream-ink); max-width:none; margin:0 0 1.2rem; font-weight:400;
}
.tem-statement p:last-child{ margin-bottom:0; }
@media (max-width:760px){ .tem-statement{ grid-template-columns:1fr; } }

.tem-linkrow{ display:flex; flex-wrap:wrap; gap:1.6rem; margin-top:1.8rem; }
.tem-tagrow{ display:flex; flex-wrap:wrap; gap:.55rem; }

.tem-verify{ display:flex; flex-wrap:wrap; gap:1.4rem; margin-top:1.4rem; font-size:.85rem; }
.tem-verify a{ color:var(--tem-gold-deep); text-decoration:none; border-bottom:1px solid rgba(110,74,5,.35); padding-bottom:2px; }
.tem-verify a:hover{ border-color:var(--tem-gold-deep); }

@media (min-width:901px){
  .tem-cardrow > :nth-child(4n+1){ border-inline-start:0; }
  .tem-cardrow > :nth-child(n+5){ border-top:1px solid var(--tem-light-line); }

  .tem-cardrow--3 > *{ border-inline-start:1px solid var(--tem-light-line); }
  .tem-cardrow--3 > :nth-child(3n+1){ border-inline-start:0; }
  .tem-cardrow--3 > :nth-child(-n+3){ border-top:0; }
  .tem-cardrow--3 > :nth-child(n+4){ border-top:1px solid var(--tem-light-line); }
}

/* ==========================================================================
   7) Contract terms — touches
   ========================================================================== */

.tem-legalbook .tem-moves b{ font-size:.8rem; color:var(--tem-gold-lit); }
.tem-legalbook .tem-moves strong{ font-size:1.05rem; margin-bottom:.45rem; }
.tem-legalbook .tem-moves span{ line-height:1.95; }
.tem-legalbook .tem-moves li{ padding-block:1.35rem; }

.tem-legallist{ list-style:none; margin:0; padding:0; display:grid; gap:.85rem; }
.tem-legallist li{
  position:relative; padding-inline-start:1.6rem;
  font-size:.96rem; line-height:1.9; color:var(--tem-lead-ink);
}
.tem-legallist li::before{
  content:""; position:absolute; inset-inline-start:0; inset-block-start:.72em;
  width:9px; height:5px; border-inline-start:1.5px solid var(--tem-gold);
  border-block-end:1.5px solid var(--tem-gold); transform:rotate(-45deg);
}

.tem-legalseal{
  margin:clamp(1.8rem,3vw,2.6rem) 0 0;
  padding:1.1rem 1.4rem;
  border:1px solid var(--tem-light-line);
  border-inline-start:3px solid var(--tem-gold-deep);
  font-size:.92rem; color:var(--tem-cream-ink); background:rgba(255,255,255,.45);
}

/* ==========================================================================
   8) Posts — grid and reading page
   ========================================================================== */
.tem-postgrid{
  display:grid; gap:clamp(1rem,2vw,1.6rem);
  grid-template-columns:repeat(3,1fr);
}
@media (max-width:900px){ .tem-postgrid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .tem-postgrid{ grid-template-columns:1fr; } }

.tem-light .tem-post{
  background:#FFFDFB; border:1px solid var(--tem-light-line);
  padding:clamp(1.3rem,2.2vw,1.9rem); text-decoration:none; display:block;
  transition:border-color .35s var(--tem-ease), transform .35s var(--tem-ease);
}
.tem-light .tem-post:hover{ border-color:var(--tem-gold); transform:translateY(-3px); }
.tem-light .tem-post h2{ font-size:1.12rem; font-weight:700; margin:.6rem 0 .6rem; line-height:1.55; }
.tem-light .tem-post p{ font-size:.92rem; line-height:1.9; color:var(--tem-light-ink); margin:0 0 1rem; }
.tem-light .tem-post__cat{ color:var(--tem-gold-deep); font-size:.76rem; font-weight:700; }
.tem-light .tem-post__meta{ color:var(--tem-light-mute); font-size:.8rem; }

.tem-prose{ max-width:70ch; }
.tem-prose h2{ font-size:clamp(1.4rem,2.6vw,1.9rem); margin:2.2rem 0 .9rem; }
.tem-prose h3{ font-size:clamp(1.15rem,2vw,1.4rem); margin:1.8rem 0 .7rem; }
.tem-prose p, .tem-prose li{ font-size:1rem; line-height:2; color:var(--tem-light-ink); }
.tem-prose ul, .tem-prose ol{ padding-inline-start:1.4rem; margin:1rem 0; }
.tem-prose a{ color:var(--tem-gold-deep); }
.tem-prose img{ max-width:100%; height:auto; }
.tem-prose blockquote{
  margin:1.6rem 0; padding:1rem 1.4rem;
  border-inline-start:3px solid var(--tem-gold); background:rgba(255,255,255,.5);
}

.tem-light .pagination, .tem-light .nav-links{ display:flex; gap:.6rem; flex-wrap:wrap; margin-top:2.4rem; }
.tem-light .nav-links .page-numbers{
  padding:.55rem 1rem; border:1px solid var(--tem-light-line);
  color:var(--tem-cream-ink); text-decoration:none; font-size:.9rem;
}
.tem-light .nav-links .page-numbers.current,
.tem-light .nav-links .page-numbers:hover{ border-color:var(--tem-gold); color:var(--tem-gold-deep); }
.tem-linkpages{ margin-top:1.6rem; font-size:.9rem; }

/* ==========================================================================
   9) Terms pact
   ========================================================================== */
.tem-seals{
  display:grid; grid-template-columns:repeat(4,1fr);
  border:1px solid var(--tem-light-line);
  border-block-start:2px solid var(--tem-gold);
  background:rgba(255,255,255,.42);
}
.tem-seal{ padding:clamp(1.3rem,2.2vw,1.9rem); }
.tem-seal + .tem-seal{ border-inline-start:1px solid var(--tem-light-line); }
.tem-seal__no{
  display:block; font-size:.68rem; font-weight:700; color:var(--tem-gold-deep);
  margin-bottom:.9rem; direction:ltr; unicode-bidi:isolate;
}
.tem-seal b{
  display:block; font-family:var(--tem-display);
  font-size:1.02rem; color:var(--tem-cream-ink); line-height:1.5; margin-bottom:.45rem;
}
.tem-seal span:not(.tem-seal__no){
  display:block; font-size:.88rem; line-height:1.85; color:var(--tem-light-ink);
}
@media (max-width:900px){
  .tem-seals{ grid-template-columns:1fr 1fr; }
  .tem-seal:nth-child(3){ border-inline-start:0; }
  .tem-seal:nth-child(n+3){ border-block-start:1px solid var(--tem-light-line); }
}
@media (max-width:560px){
  .tem-seals{ grid-template-columns:1fr; }
  .tem-seal + .tem-seal{ border-inline-start:0; border-block-start:1px solid var(--tem-light-line); }
}

/* ==========================================================================
   9) Terms pact
   ========================================================================== */
.tem-pactband{ border-block:1px solid var(--tem-line); }

.tem-pact{
  display:grid; grid-template-columns:minmax(220px,.85fr) 2.15fr;
  gap:clamp(1.6rem,4vw,4rem); align-items:start;
}
.tem-pact__head .tem-eyebrow{ margin-bottom:.7rem; }
.tem-pact__head .tem-h2{ font-size:clamp(1.25rem,2.2vw,1.7rem); margin-bottom:1rem; }

.tem-pact__list{
  margin:0; padding:0;
  display:grid; grid-template-columns:1fr 1fr;
  border-top:1px solid var(--tem-line);
  border-inline-start:1px solid var(--tem-line);
}
.tem-pact__list > div{
  padding:1.05rem 1.3rem;
  border-bottom:1px solid var(--tem-line);
  border-inline-end:1px solid var(--tem-line);
}
.tem-pact__list dt{
  font-family:var(--tem-label); font-weight:700; font-size:.78rem;
  color:var(--tem-gold-lit); margin-bottom:.45rem;
}
.tem-pact__list dd{
  margin:0; font-size:.94rem; line-height:1.85; color:var(--tem-lead-ink);
}

@media (max-width:860px){
  .tem-pact{ grid-template-columns:1fr; gap:1.4rem; }
  .tem-pact__list{ grid-template-columns:1fr; }
}

/* ==========================================================================
   10) Services accordion
   ========================================================================== */
.tem-acc{ border-top:1px solid var(--tem-light-line); }
.tem-acc__item{ border-bottom:1px solid var(--tem-light-line); }
.tem-acc__item > summary{
  display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:1rem;
  padding:1.15rem .2rem; cursor:pointer; list-style:none;
  transition:color .3s var(--tem-ease);
}
.tem-acc__item > summary::-webkit-details-marker{ display:none; }
.tem-acc__item > summary:hover{ color:#8A5C04; }
.tem-acc__no{
  font-family:var(--tem-label); font-size:.75rem; font-weight:700;
  color:var(--tem-gold-deep); direction:ltr; unicode-bidi:isolate;
}
.tem-acc__t{ font-family:var(--tem-display); font-size:clamp(1.02rem,1.7vw,1.25rem); }
.tem-acc__body{ padding:0 0 1.6rem; max-width:78ch; }
.tem-acc__body > p{ font-size:.96rem; line-height:1.95; color:var(--tem-light-ink); margin:0 0 1rem; }
.tem-acc__subs{ display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:1.1rem; }
.tem-acc__subs a, .tem-acc__subs span{
  font-size:.85rem; padding:.4rem .85rem; text-decoration:none;
  border:1px solid var(--tem-light-line); color:var(--tem-light-ink);
  transition:border-color .3s var(--tem-ease), color .3s var(--tem-ease);
}
.tem-acc__subs a:hover{ border-color:var(--tem-gold); color:var(--tem-gold-deep); }
@media (max-width:560px){
  .tem-acc__item > summary{ grid-template-columns:auto 1fr; gap:.7rem; }
  .tem-acc__item > summary .tem-faq__sign{ grid-column:2; justify-self:end; margin-top:-1.6rem; }
}

/* ==========================================================================
   11) Services page
   ========================================================================== */

.tem-flow{
  list-style:none; margin:clamp(1.6rem,3vw,2.4rem) 0 0; padding:0;
  display:grid; grid-template-columns:repeat(6,1fr);
  border-top:1px solid var(--tem-line);
}
.tem-flow li{
  position:relative; padding:1.1rem .9rem 0;
  border-inline-end:1px solid var(--tem-line);
}
.tem-flow li:last-child{ border-inline-end:0; }
.tem-flow li::before{
  content:""; position:absolute; inset-block-start:-4px; inset-inline-start:.9rem;
  width:7px; height:7px; background:var(--tem-gold); transform:rotate(45deg);
}
.tem-flow b{
  display:block; font-family:var(--tem-label); font-size:.7rem; font-weight:700;
  color:var(--tem-gold-lit); margin-bottom:.4rem; direction:ltr; unicode-bidi:isolate;
}
.tem-flow span{ font-size:.92rem; line-height:1.6; color:var(--tem-lead-ink); }
@media (max-width:900px){ .tem-flow{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:520px){ .tem-flow{ grid-template-columns:1fr 1fr; } }

.tem-jump{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.8rem; }
.tem-jump a{
  font-size:.85rem; padding:.5rem 1rem; text-decoration:none;
  border:1px solid var(--tem-line); color:var(--tem-ivory);
  transition:border-color .3s var(--tem-ease), color .3s var(--tem-ease);
}
.tem-jump a:hover{ border-color:var(--tem-gold); color:var(--tem-gold-lit); }

.tem-acc__group{
  display:block; font-family:var(--tem-label); font-weight:700;
  font-size:clamp(2.2rem,5vw,3.4rem); line-height:1;
  color:var(--tem-gold); opacity:.28; margin-bottom:.2rem;
  direction:ltr; unicode-bidi:isolate;
}
.tem-light .tem-acc__group{ color:var(--tem-gold-deep); opacity:.3; }

.tem-acc__count{
  font-size:.76rem; color:var(--tem-muted-ink, rgba(239,240,234,.55));
  white-space:nowrap; margin-inline-start:.6rem;
}
.tem-light .tem-acc__count{ color:var(--tem-light-mute); }
.tem-acc__item > summary{ grid-template-columns:auto 1fr auto auto; }

.tem-section--deep .tem-acc,
.tem-section--deep .tem-acc__item{ border-color:var(--tem-line); }
.tem-section--deep .tem-acc__no{ color:var(--tem-gold-lit); }
.tem-section--deep .tem-acc__item > summary:hover{ color:var(--tem-gold-lit); }
.tem-section--deep .tem-acc__body > p{ color:var(--tem-lead-ink); }
.tem-section--deep .tem-acc__subs a,
.tem-section--deep .tem-acc__subs span{ border-color:var(--tem-line); color:var(--tem-lead-ink); }
.tem-section--deep .tem-acc__subs a:hover{ border-color:var(--tem-gold); color:var(--tem-gold-lit); }
@media (max-width:560px){
  .tem-acc__item > summary{ grid-template-columns:auto 1fr; }
  .tem-acc__count{ display:none; }
}

/* ==========================================================================
   12) System section
   ========================================================================== */
.tem-system__grid{
  display:grid; grid-template-columns:minmax(280px,.9fr) 1.25fr;
  gap:clamp(2rem,5vw,5rem); align-items:start;
}
.tem-system__head .tem-h2{ max-width:16ch; }
.tem-system__head .tem-lead{ max-width:38ch; }

.tem-chain{
  list-style:none; margin:0; padding:0; position:relative;
  border-inline-start:1px solid var(--tem-line);
}
.tem-chain li{
  position:relative; display:grid; grid-template-columns:auto 1fr;
  gap:1.1rem; padding:1.05rem 0 1.05rem 1.6rem;
}
.tem-chain li + li{ border-top:1px solid var(--tem-line); }
.tem-chain li::before{
  content:""; position:absolute; inset-inline-start:-4px; inset-block-start:1.55rem;
  width:7px; height:7px; background:var(--tem-gold); transform:rotate(45deg);
  transition:background .3s var(--tem-ease);
}
.tem-chain li:hover::before{ background:var(--tem-gold-lit); }
.tem-chain b{
  font-family:var(--tem-label); font-size:.72rem; font-weight:700; line-height:2;
  color:var(--tem-gold); direction:ltr; unicode-bidi:isolate;
}
.tem-chain strong{
  display:block; font-family:var(--tem-display);
  font-size:1.05rem; color:var(--tem-ivory); margin-bottom:.25rem;
}
.tem-chain span{ font-size:.92rem; line-height:1.85; color:var(--tem-lead-ink); }

@media (max-width:860px){
  .tem-system__grid{ grid-template-columns:1fr; gap:2rem; }
  .tem-system__head .tem-h2{ max-width:none; }
}

@media (min-width:1024px) and (max-width:1440px){
  .tem-wrap{ padding-inline-end:max(var(--tem-gutter), 5.2rem); }
}

/* ==========================================================================
   13) Card accordion
   ========================================================================== */
.tem-acc--cards{ border-top:0; display:grid; gap:.7rem; }
.tem-acc--cards .tem-acc__item{
  border:1px solid var(--tem-light-line); border-radius:2px;
  background:#FFFDFB;
  transition:border-color .3s var(--tem-ease), transform .3s var(--tem-ease);
}
.tem-acc--cards .tem-acc__item:hover{ border-color:var(--tem-gold); }
.tem-acc--cards .tem-acc__item[open]{ border-color:var(--tem-gold); }
.tem-acc--cards .tem-acc__item > summary{
  grid-template-columns:auto 1fr auto auto;
  gap:1rem; padding:1.15rem 1.3rem;
}

.tem-acc__icon{
  width:44px; height:44px; display:grid; place-items:center;
  border:1px solid var(--tem-light-line); color:var(--tem-gold-deep);
  transition:border-color .3s var(--tem-ease), background .3s var(--tem-ease);
}
.tem-acc__icon svg{ width:20px; height:20px; }
.tem-acc--cards .tem-acc__item:hover .tem-acc__icon,
.tem-acc--cards .tem-acc__item[open] .tem-acc__icon{
  border-color:var(--tem-gold); background:rgba(203,133,9,.07);
}

.tem-acc__stack{ display:grid; gap:.2rem; }
.tem-acc__label{
  font-family:var(--tem-label); font-size:.74rem; font-weight:700;
  color:var(--tem-light-mute);
}
.tem-acc--cards .tem-acc__t{ font-size:clamp(1rem,1.6vw,1.18rem); }
.tem-acc--cards .tem-acc__body{ padding:0 1.3rem 1.4rem; }

.tem-section--deep .tem-acc--cards .tem-acc__item{ background:rgba(239,240,234,.03); }
.tem-section--deep .tem-acc__icon{ color:var(--tem-gold-lit); }
.tem-section--deep .tem-acc__label{ color:rgba(239,240,234,.55); }

@media (max-width:560px){
  .tem-acc--cards .tem-acc__item > summary{ grid-template-columns:auto 1fr auto; padding:1rem; }
  .tem-acc--cards .tem-acc__item > summary .tem-faq__sign{ grid-column:3; margin-top:0; }
  .tem-acc__icon{ width:38px; height:38px; }
}

/* ==========================================================================
   14) Blog — bars and index
   ========================================================================== */

.tem-catbar{ display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:clamp(1.6rem,3vw,2.4rem); }
.tem-catbar a{
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.86rem; padding:.5rem 1rem; text-decoration:none;
  border:1px solid var(--tem-light-line); color:var(--tem-light-ink);
  transition:border-color .3s var(--tem-ease), color .3s var(--tem-ease);
}
.tem-catbar a span{ font-size:.72rem; color:var(--tem-light-mute); direction:ltr; unicode-bidi:isolate; }
.tem-catbar a:hover{ border-color:var(--tem-gold); color:var(--tem-gold-deep); }
.tem-catbar a.is-on{ border-color:var(--tem-gold); background:rgba(203,133,9,.07); color:var(--tem-cream-ink); }

.tem-post--lead{ grid-column:span 2; }
.tem-light .tem-post--lead h2{ font-size:clamp(1.35rem,2.6vw,1.8rem); }
.tem-light .tem-post--lead p{ font-size:1rem; }
@media (max-width:900px){ .tem-post--lead{ grid-column:span 2; } }
@media (max-width:560px){ .tem-post--lead{ grid-column:span 1; } }
.tem-post__meta i{ margin:0 .45rem; font-style:normal; opacity:.5; }

.tem-article{ display:grid; grid-template-columns:minmax(0,2.4fr) minmax(240px,.85fr); gap:clamp(1.8rem,4vw,3.4rem); align-items:start; }
.tem-article .tem-prose{ max-width:68ch; }
.tem-toc{ position:sticky; top:6.5rem; border-inline-start:2px solid var(--tem-gold); padding-inline-start:1.1rem; }
.tem-toc .tem-label{ display:block; color:var(--tem-gold-deep); margin-bottom:.8rem; }
.tem-toc ol{ list-style:none; margin:0; padding:0; display:grid; gap:.6rem; counter-reset:toc; }
.tem-toc li{ counter-increment:toc; }
.tem-toc li a{
  display:grid; grid-template-columns:auto 1fr; gap:.6rem;
  font-size:.9rem; line-height:1.65; color:var(--tem-light-ink); text-decoration:none;
}
.tem-toc li a::before{
  content:counter(toc,decimal-leading-zero);
  font-family:var(--tem-label); font-size:.7rem; font-weight:700; color:var(--tem-light-mute);
  direction:ltr; unicode-bidi:isolate;
}
.tem-toc li a:hover{ color:var(--tem-gold-deep); }
@media (max-width:900px){
  .tem-article{ grid-template-columns:1fr; }
  .tem-toc{ position:static; }
}

/* ==========================================================================
   15) Blog — dark grid
   ========================================================================== */
.tem-postgrid--rule{
  gap:0; border-top:1px solid var(--tem-line);
}
.tem-postgrid--rule .tem-post{
  background:transparent; border:0; padding:clamp(1.4rem,2.4vw,2rem);
  border-bottom:1px solid var(--tem-line);
  border-inline-end:1px solid var(--tem-line);
  display:flex; flex-direction:column;
}
.tem-postgrid--rule .tem-post:nth-child(3n){ border-inline-end:0; }
.tem-postgrid--rule .tem-post:hover{ background:rgba(239,240,234,.03); transform:none; }
.tem-postgrid--rule .tem-post__cat{
  color:var(--tem-lead-ink); font-size:.8rem; font-weight:500; margin-bottom:.7rem;
}
.tem-postgrid--rule .tem-post h2{
  font-family:var(--tem-display); color:var(--tem-ivory);
  font-size:clamp(1.08rem,1.9vw,1.28rem); line-height:1.5; margin:0 0 .6rem;
}
.tem-postgrid--rule .tem-post p{ color:var(--tem-lead-ink); font-size:.92rem; line-height:1.85; margin:0 0 1.4rem; }
.tem-postgrid--rule .tem-post__meta{ margin-top:auto; color:rgba(239,240,234,.5); font-size:.82rem; }
.tem-postgrid--rule .tem-post--lead h2{ font-size:clamp(1.3rem,2.4vw,1.65rem); }
@media (max-width:900px){
  .tem-postgrid--rule .tem-post:nth-child(3n){ border-inline-end:1px solid var(--tem-line); }
  .tem-postgrid--rule .tem-post:nth-child(2n){ border-inline-end:0; }
}
@media (max-width:560px){
  .tem-postgrid--rule .tem-post{ border-inline-end:0; }
}
.tem-section--deep .tem-catbar a{ border-color:var(--tem-line); color:var(--tem-lead-ink); }
.tem-section--deep .tem-catbar a:hover,
.tem-section--deep .tem-catbar a.is-on{ border-color:var(--tem-gold); color:var(--tem-gold-lit); }
.tem-section--deep .nav-links .page-numbers{ border:1px solid var(--tem-line); color:var(--tem-ivory); padding:.55rem 1rem; text-decoration:none; }
.tem-section--deep .nav-links{ display:flex; gap:.6rem; margin-top:2.4rem; }
.tem-section--deep .nav-links .page-numbers.current,
.tem-section--deep .nav-links .page-numbers:hover{ border-color:var(--tem-gold); color:var(--tem-gold-lit); }

.tem-aside{
  position:sticky; top:6.5rem;
  background:#FFFDFB; border:1px solid var(--tem-light-line);
  padding:1.4rem 1.5rem;
}
.tem-aside__h{
  display:block; font-family:var(--tem-display); font-size:1.05rem;
  color:var(--tem-cream-ink); padding-bottom:.9rem; margin-bottom:.9rem;
  border-bottom:1px solid var(--tem-light-line);
}
.tem-aside ul{ list-style:none; margin:0; padding:0; display:grid; gap:.9rem; }
.tem-aside li a{
  font-size:.92rem; line-height:1.7; color:var(--tem-light-ink); text-decoration:none;
  display:block; transition:color .3s var(--tem-ease);
}
.tem-aside li a:hover{ color:var(--tem-gold-deep); }
.tem-prose__meta{ color:var(--tem-light-mute); margin:0 0 1.8rem; }
@media (max-width:900px){ .tem-aside{ position:static; } }

/* ==========================================================================
   16) Contract terms — document
   ========================================================================== */
.tem-legalbook{ position:relative; overflow:hidden; }

.tem-legalseal-mark{
  position:absolute; inset-block-start:clamp(1.5rem,4vw,3rem);
  inset-inline-start:clamp(-2rem,-2vw,0rem);
  width:clamp(120px,16vw,210px); height:auto;
  color:var(--tem-gold); opacity:.13; z-index:0; pointer-events:none;
}
.tem-legalbook > .tem-wrap{ position:relative; z-index:1; }

.tem-doc__head{ max-width:64ch; }
.tem-doc__meta{
  display:grid; grid-template-columns:repeat(3,auto); gap:0;
  margin:clamp(1.6rem,3vw,2.2rem) 0 0; padding:0;
  border-block-start:1px solid var(--tem-gold);
  justify-content:start;
}
.tem-doc__meta > div{
  padding:.95rem clamp(1rem,2vw,1.8rem) .1rem 0;
  border-inline-end:1px solid var(--tem-line);
  padding-inline-end:clamp(1rem,2vw,1.8rem);
}
.tem-doc__meta > div:last-child{ border-inline-end:0; }
.tem-doc__meta > div + div{ padding-inline-start:clamp(1rem,2vw,1.8rem); }
.tem-doc__meta dt{
  font-family:var(--tem-label); font-size:.7rem; font-weight:700;
  color:var(--tem-gold-lit); margin-bottom:.4rem;
}
.tem-doc__meta dd{ margin:0; font-size:.9rem; line-height:1.6; color:var(--tem-lead-ink); }
@media (max-width:700px){
  .tem-doc__meta{ grid-template-columns:1fr; }
  .tem-doc__meta > div{ border-inline-end:0; border-block-end:1px solid var(--tem-line); padding-inline-start:0 !important; }
  .tem-doc__meta > div:last-child{ border-block-end:0; }
}

@media (min-width:960px){
  .tem-doc__clauses{ grid-template-columns:1fr 1fr; column-gap:clamp(2rem,4vw,4rem); }
  .tem-doc__clauses li:nth-child(2){ border-top:1px solid var(--tem-line); }
  .tem-doc__clauses li:last-child,
  .tem-doc__clauses li:nth-last-child(2){ border-bottom:1px solid var(--tem-line); }
}

.tem-legalseal{
  display:grid; grid-template-columns:auto 1fr; gap:1rem; align-items:center;
  background:rgba(255,255,255,.55);
}
.tem-legalseal::before{
  content:""; width:26px; height:26px; flex:none;
  border:1.5px solid var(--tem-gold-deep); transform:rotate(45deg);
}

.tem-pact__mark{
  display:block; width:34px; height:34px; color:var(--tem-gold);
  margin-bottom:1rem; opacity:.9;
}
.tem-pact__note{
  margin:0 0 1rem; font-size:.86rem; line-height:1.7; color:var(--tem-muted);
}
.tem-pact__list > div{ position:relative; padding-block-start:1.3rem; }
.tem-pact__no{
  position:absolute; inset-block-start:.55rem; inset-inline-start:1.3rem;
  font-family:var(--tem-label); font-size:.66rem; font-weight:700;
  color:var(--tem-gold); opacity:.65; direction:ltr; unicode-bidi:isolate;
}

/* ==========================================================================
   17) Footer description
   ========================================================================== */
.tem-footer__tagline{
  font-family:var(--tem-body);
  font-size:.95rem;
  font-weight:400;
  line-height:1.85;
  max-width:42ch;
  color:var(--tem-lead-ink);
  margin:1rem 0 1.1rem;
}

.tem-footer__facts{
  list-style:none; margin:0 0 1.2rem; padding:0;
  display:grid; gap:.45rem; max-width:42ch;
}
.tem-footer__facts li{
  position:relative; padding-inline-start:.95rem;
  font-size:.84rem; line-height:1.7; color:var(--tem-muted);
}
.tem-footer__facts li::before{
  content:""; position:absolute; inset-inline-start:0; inset-block-start:.62em;
  width:5px; height:5px; background:var(--tem-gold); transform:rotate(45deg);
}
.tem-footer__facts .tem-num{ color:var(--tem-ivory); font-weight:500; }

/* ==========================================================================
   18) Google Partner badge
   ========================================================================== */
.tem-gpbadge{
  display:block; width:150px; height:74px;
  margin:0 0 1.3rem;
  background:rgba(239,240,234,.06);
  border:1px solid var(--tem-line);
  padding:.5rem .7rem;
  transition:border-color .3s var(--tem-ease), background .3s var(--tem-ease);
}
.tem-gpbadge:hover{ border-color:var(--tem-gold); background:rgba(203,133,9,.08); }
.tem-gpbadge img{
  width:100%; height:100%;
  object-fit:contain; object-position:center;
  display:block;
}
@media (max-width:560px){
  .tem-gpbadge{ width:132px; height:66px; }
}

.tem-gpbadge-wrap{ display:flex; align-items:center; gap:1.1rem; flex-wrap:wrap; margin-block-start:1.2rem; }
.tem-gpbadge-wrap .tem-gpbadge{ margin:0; flex:none; }
.tem-gpbadge__note{ margin:0; font-size:.88rem; line-height:1.8; max-width:42ch; color:var(--tem-lead-ink); }
.tem-light .tem-gpbadge{ background:#FFFDFB; border-color:var(--tem-light-line); }
.tem-light .tem-gpbadge:hover{ border-color:var(--tem-gold); background:#fff; }
.tem-light .tem-gpbadge__note{ color:var(--tem-light-ink); }

.tem-proofbar__verify .tem-gpbadge-wrap{ margin-block:0 1rem; }
.tem-proofbar__verify .tem-gpbadge{ width:128px; height:64px; }

.tem-figurebox--4{ grid-template-columns:repeat(3,1fr); }
.tem-figurebox--4 > div{ border-inline-start:1px solid var(--tem-light-line); }
.tem-figurebox--4 > div:nth-child(3n+1){ border-inline-start:0; }
.tem-figurebox--4 > div:nth-child(n+4){ border-block-start:1px solid var(--tem-light-line); }
.tem-figurebox--4 b{ font-size:clamp(1.5rem,3vw,2.2rem); }
@media (max-width:760px){
  .tem-figurebox--4{ grid-template-columns:1fr 1fr; }
  .tem-figurebox--4 > div:nth-child(3n+1){ border-inline-start:1px solid var(--tem-light-line); }
  .tem-figurebox--4 > div:nth-child(2n+1){ border-inline-start:0; }
  .tem-figurebox--4 > div:nth-child(n+3){ border-block-start:1px solid var(--tem-light-line); }
}
@media (max-width:460px){
  .tem-figurebox--4{ grid-template-columns:1fr; }
  .tem-figurebox--4 > div{ border-inline-start:0 !important; }
  .tem-figurebox--4 > div + div{ border-block-start:1px solid var(--tem-light-line); }
}

/* ==========================================================================
   20) Image gallery
   ========================================================================== */
.tem-gallery{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:clamp(.7rem,1.4vw,1.1rem);
}
.tem-gallery__item{
  margin:0; overflow:hidden; aspect-ratio:4/3;
  border:1px solid var(--tem-light-line); background:#F1E8E1;
}
.tem-gallery__item img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .5s var(--tem-ease);
}
.tem-gallery__item:hover img{ transform:scale(1.05); }
.tem-section--deep .tem-gallery__item{ border-color:var(--tem-line); background:var(--tem-ink-lift); }

/* ==========================================================================
   21) Booking form
   ========================================================================== */

.tem-design{
  --ink:   var(--tem-cream-ink);
  --muted: var(--tem-light-mute);
  --line:  var(--tem-light-line);
  --rust:  var(--tem-gold-deep);
  --tan:   var(--tem-gold);
  --surface:#FFFDFB;
}

.te-lf-hp{
  position:absolute !important; inset-inline-start:-9999px !important;
  width:1px; height:1px; overflow:hidden;
}

.te-leadform{
  background:#FFFDFB !important;
  border:1px solid var(--tem-light-line) !important;
  border-radius:0 !important;
  padding:clamp(1.6rem,3vw,2.4rem) !important;
  color:var(--tem-cream-ink);
}
.te-leadform h3{ font-family:var(--tem-display); color:var(--tem-cream-ink); }
.te-leadform ul li{ color:var(--tem-light-ink); }

.te-leadform input[type="text"],
.te-leadform input[type="tel"],
.te-leadform input[type="email"],
.te-leadform select,
.te-leadform textarea{
  width:100%; box-sizing:border-box;
  background:transparent;
  border:0; border-bottom:1px solid var(--tem-light-line);
  border-radius:0; -webkit-appearance:none; appearance:none;
  padding:.8rem .2rem;
  font-family:var(--tem-body); font-size:1rem; color:var(--tem-cream-ink);
  transition:border-color .3s var(--tem-ease);
}
.te-leadform ::placeholder{ color:var(--tem-light-mute); opacity:1; }
.te-leadform input:focus,
.te-leadform select:focus,
.te-leadform textarea:focus{ outline:none; border-bottom-color:var(--tem-gold); }
.te-leadform input:focus-visible,
.te-leadform select:focus-visible{ outline:2px solid var(--tem-gold); outline-offset:4px; }
.te-leadform select{
  background-image:linear-gradient(45deg,transparent 50%,var(--tem-gold-deep) 50%),
                   linear-gradient(135deg,var(--tem-gold-deep) 50%,transparent 50%);
  background-position:12px 1.25rem,17px 1.25rem;
  background-size:5px 5px,5px 5px; background-repeat:no-repeat;
  padding-inline-start:2rem; cursor:pointer;
}

.te-leadform button,
.te-leadform input[type="submit"]{
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--tem-gold); color:#1a1204;
  border:0; padding:1rem 2rem; margin-top:.6rem;
  font-family:var(--tem-label); font-weight:700; font-size:.92rem; cursor:pointer;
  clip-path:polygon(0 0,calc(100% - var(--tem-bevel)) 0,100% var(--tem-bevel),100% 100%,var(--tem-bevel) 100%,0 calc(100% - var(--tem-bevel)));
  transition:background .3s var(--tem-ease);
}
.te-leadform button:hover{ background:#E09A1F; }

.te-lf-ok{
  background:rgba(203,133,9,.1) !important;
  border:1px solid var(--tem-gold) !important;
  border-radius:0 !important;
  color:var(--tem-cream-ink) !important;
  padding:.9rem 1.2rem !important;
}

/* ==========================================================================
   23) Accordion width
   ========================================================================== */

.tem-acc,
.tem-acc--cards{ max-width:880px; margin-inline:auto; }

.tem-acc--cards .tem-acc__item > summary{ padding:1rem 1.15rem; gap:.85rem; }
.tem-acc__icon{ width:40px; height:40px; }
.tem-acc__icon svg{ width:18px; height:18px; }
.tem-acc--cards .tem-acc__body{ padding:0 1.15rem 1.2rem; }
.tem-acc__body{ max-width:68ch; }

@media (max-width:960px){
  .tem-acc,
  .tem-acc--cards{ max-width:none; }
}

.tem-gpbadge-wrap--boxed{
  max-width:620px; margin-inline-end:auto;
  border:1px solid var(--tem-light-line); background:#FFFDFB;
  padding:1.1rem 1.3rem; align-items:center;
}
.tem-gpbadge-wrap--boxed .tem-gpbadge{ border:0; background:transparent; padding:0; }
.tem-gpbadge-wrap--boxed .tem-gpbadge:hover{ background:transparent; }
@media (max-width:520px){
  .tem-gpbadge-wrap--boxed{ max-width:none; }
}

/* ==========================================================================
   24) Footer social links
   ========================================================================== */
.tem-footer .tem-social{
  list-style:none; margin:.2rem 0 1.4rem; padding:0;
  display:flex; flex-direction:row; flex-wrap:wrap; gap:.5rem;
}
.tem-footer .tem-social li{ margin:0; }
.tem-footer .tem-social a{
  width:38px; height:38px; display:grid; place-items:center;
  border:1px solid var(--tem-line); color:var(--tem-lead-ink);
  transition:border-color .3s var(--tem-ease), color .3s var(--tem-ease), background .3s var(--tem-ease);
}
.tem-footer .tem-social svg{ width:17px; height:17px; }
.tem-footer .tem-social a:hover{
  border-color:var(--tem-gold); color:var(--tem-gold-lit); background:rgba(203,133,9,.08);
}
@media (max-width:480px){
  .tem-footer .tem-social a{ width:42px; height:42px; }
  .tem-footer .tem-social svg{ width:19px; height:19px; }
}
/* ==========================================================================
   25) Ninety-day timeline
   ========================================================================== */
.tem-timeline{
  list-style:none; margin:clamp(2rem,4vw,3rem) 0 0; padding:0;
  display:grid; grid-template-columns:repeat(4,1fr);
  position:relative;
}
.tem-timeline::before{
  content:""; position:absolute; inset-block-start:5px; inset-inline:0;
  height:1px; background:linear-gradient(to left, transparent, var(--tem-gold) 12%, var(--tem-gold) 88%, transparent);
  opacity:.45;
}
.tem-timeline__step{ position:relative; padding:2.1rem 1.2rem 0 0; padding-inline-end:1.6rem; }
.tem-timeline__step:last-child{ padding-inline-end:0; }
.tem-timeline__dot{
  position:absolute; inset-block-start:0; inset-inline-start:0;
  width:11px; height:11px; background:var(--tem-gold); transform:rotate(45deg);
  transition:transform .4s var(--tem-ease), background .3s var(--tem-ease);
}
.tem-timeline__step:hover .tem-timeline__dot{ transform:rotate(45deg) scale(1.35); background:var(--tem-gold-lit); }
.tem-timeline__when{
  display:block; font-family:var(--tem-label); font-size:.72rem; font-weight:700;
  color:var(--tem-gold-lit); margin-bottom:.55rem; direction:ltr; unicode-bidi:isolate;
}
.tem-timeline__t{
  font-family:var(--tem-display); font-size:1.08rem;
  color:var(--tem-ivory); margin:0 0 .5rem; line-height:1.5;
}
.tem-timeline__step p{ font-size:.9rem; line-height:1.9; color:var(--tem-lead-ink); margin:0; }

@media (max-width:860px){
  .tem-timeline{ grid-template-columns:1fr; }
  .tem-timeline::before{
    inset-block:8px 0; inset-inline-start:5px; inset-inline-end:auto;
    width:1px; height:auto;
    background:linear-gradient(to bottom, var(--tem-gold), transparent);
  }
  .tem-timeline__step{ padding:0 0 1.8rem 0; padding-inline-start:1.9rem; }
  .tem-timeline__dot{ inset-block-start:6px; }
}

/* ==========================================================================
   26) Bilingual panel
   ========================================================================== */
.tem-bi{
  display:grid; grid-template-columns:1fr auto 1fr;
  border:1px solid var(--tem-light-line); background:#FFFDFB;
  margin-top:clamp(1.6rem,3vw,2.4rem);
}
.tem-bi__side{ padding:clamp(1.4rem,2.6vw,2.2rem); }
.tem-bi__lang{
  display:block; font-family:var(--tem-label); font-weight:700; font-size:.74rem;
  color:var(--tem-gold-deep); margin-bottom:1.2rem;
}
.tem-bi__label{
  display:block; font-size:.72rem; color:var(--tem-light-mute);
  margin-bottom:.35rem; letter-spacing:.02em;
}
.tem-bi__q{
  margin:0 0 1.2rem; padding:.6rem .9rem;
  background:rgba(203,133,9,.07); border-inline-start:2px solid var(--tem-gold);
  font-size:.98rem; color:var(--tem-cream-ink);
}
.tem-bi__ad{
  margin:0 0 1.2rem; font-size:.95rem; line-height:1.7;
  color:#1a4d8f; text-decoration:underline; text-underline-offset:3px;
}
.tem-bi__note{ margin:0; font-size:.88rem; line-height:1.85; color:var(--tem-light-ink); }

.tem-bi__split{
  width:1px; background:var(--tem-gold); opacity:.5;
  position:relative; display:grid; place-items:center;
}
.tem-bi__split span{
  position:absolute; background:#FFFDFB; padding:.4rem 0;
  font-family:var(--tem-label); font-size:.7rem; font-weight:700;
  color:var(--tem-gold-deep); writing-mode:horizontal-tb;
}
@media (max-width:760px){
  .tem-bi{ grid-template-columns:1fr; }
  .tem-bi__split{ width:auto; height:1px; }
  .tem-bi__split span{ padding:0 .7rem; }
}

/* ==========================================================================
   27) Comparison panel
   ========================================================================== */
.tem-cmp{
  display:grid; grid-template-columns:1fr 1fr;
  border:1px solid var(--tem-light-line); background:#FFFDFB;
}
.tem-cmp__col{ padding:clamp(1.5rem,2.8vw,2.3rem); }
.tem-cmp__col--good{ border-inline-start:1px solid var(--tem-light-line); background:rgba(203,133,9,.045); }
.tem-cmp__label{
  display:block; font-family:var(--tem-label); font-weight:700; font-size:.74rem;
  color:var(--tem-light-mute); margin-bottom:.7rem;
}
.tem-cmp__col--good .tem-cmp__label{ color:var(--tem-gold-deep); }
.tem-cmp__t{
  font-family:var(--tem-display); font-size:1.12rem;
  color:var(--tem-cream-ink); margin:0 0 1.2rem; line-height:1.55;
}
.tem-cmp ul{ list-style:none; margin:0; padding:0; display:grid; gap:.85rem; }
.tem-cmp li{
  position:relative; padding-inline-start:1.5rem;
  font-size:.94rem; line-height:1.85; color:var(--tem-light-ink);
}
.tem-cmp__col--bad li::before{
  content:""; position:absolute; inset-inline-start:0; inset-block-start:.62em;
  width:8px; height:8px; border-radius:50%;
  border:1px solid var(--tem-light-mute);
}
.tem-cmp__col--good li::before{
  content:""; position:absolute; inset-inline-start:0; inset-block-start:.66em;
  width:8px; height:8px; background:var(--tem-gold); transform:rotate(45deg);
}
.tem-cmp__note{
  margin:1.2rem 0 0; font-size:.88rem; line-height:1.85;
  color:var(--tem-light-mute); max-width:64ch;
}
@media (max-width:760px){
  .tem-cmp{ grid-template-columns:1fr; }
  .tem-cmp__col--good{ border-inline-start:0; border-block-start:1px solid var(--tem-light-line); }
}

/* ==========================================================================
   28) Client strip — static
   ========================================================================== */
.tem-clients__head{ margin-bottom:clamp(1.4rem,2.6vw,2rem); }
.tem-clients{
  display:grid; grid-template-columns:repeat(6,1fr);
  border:1px solid var(--tem-light-line); background:#FFFDFB;
}
.tem-clients .tem-client{
  padding:1.2rem 1rem; text-decoration:none; display:grid; gap:.35rem; align-content:center;
  border-inline-end:1px solid var(--tem-light-line);
  transition:background .3s var(--tem-ease);
}
.tem-clients .tem-client:last-child{ border-inline-end:0; }
.tem-clients .tem-client:hover{ background:rgba(203,133,9,.06); }
.tem-client__n{
  font-family:var(--tem-display); font-size:.98rem;
  color:var(--tem-cream-ink); line-height:1.45;
}
.tem-client__m{ font-size:.78rem; color:var(--tem-light-mute); line-height:1.6; }
.tem-client--more .tem-client__n{ color:var(--tem-gold-deep); }
.tem-client--more .tem-client__m{ color:var(--tem-gold-deep); }

@media (max-width:1100px){ .tem-clients{ grid-template-columns:repeat(3,1fr); }
  .tem-clients .tem-client:nth-child(3n){ border-inline-end:0; }
  .tem-clients .tem-client:nth-child(n+4){ border-block-start:1px solid var(--tem-light-line); } }
@media (max-width:620px){ .tem-clients{ grid-template-columns:1fr 1fr; }
  .tem-clients .tem-client{ border-inline-end:1px solid var(--tem-light-line); }
  .tem-clients .tem-client:nth-child(2n){ border-inline-end:0; }
  .tem-clients .tem-client:nth-child(n+3){ border-block-start:1px solid var(--tem-light-line); } }

/* ==========================================================================
   29) Client strip — plaque
   ========================================================================== */
.tem-clientrail{
  position:relative;
  background:var(--tem-ink);
  border-block-end:1px solid var(--tem-line);
  padding-block:clamp(1.7rem,3.4vw,2.6rem);
}
.tem-clientrail::before{
  content:""; position:absolute; inset-block-start:0; inset-inline:0; height:1px;
  background:linear-gradient(to left, transparent, var(--tem-gold) 18%, var(--tem-gold) 82%, transparent);
  opacity:.5;
}

.tem-clientrail__k{
  display:flex; align-items:center; gap:1rem;
  margin:0 0 clamp(1.2rem,2.4vw,1.7rem);
  color:var(--tem-gold-lit);
}
.tem-clientrail__k::before,
.tem-clientrail__k::after{
  content:""; flex:1; height:1px; background:var(--tem-line);
}
.tem-clientrail__k span{
  font-family:var(--tem-label); font-size:.7rem; font-weight:700;
  letter-spacing:.14em; white-space:nowrap;
}

.tem-clientrail__row{
  display:flex; flex-wrap:wrap; align-items:stretch; justify-content:center;
}
.tem-clientrail__c{
  position:relative; text-decoration:none;
  display:grid; gap:.3rem; align-content:center; justify-items:center;
  padding:.2rem clamp(1rem,2.4vw,2.1rem);
  transition:transform .4s var(--tem-ease);
}
.tem-clientrail__c + .tem-clientrail__c::before{
  content:""; position:absolute; inset-inline-start:0; inset-block:.15rem;
  width:1px; background:var(--tem-line);
}
.tem-clientrail__c:hover{ transform:translateY(-2px); }
.tem-clientrail__n{
  font-family:var(--tem-display);
  font-size:clamp(1rem,1.6vw,1.28rem); line-height:1.4;
  color:var(--tem-ivory); white-space:nowrap;
  transition:color .35s var(--tem-ease);
}
.tem-clientrail__c:hover .tem-clientrail__n{ color:var(--tem-gold-lit); }
.tem-clientrail__s{
  font-family:var(--tem-label); font-size:.64rem; font-weight:700;
  letter-spacing:.06em; color:rgba(239,240,234,.42);
  transition:color .35s var(--tem-ease);
}
.tem-clientrail__c:hover .tem-clientrail__s{ color:var(--tem-gold); }

.tem-clientrail__c--more .tem-clientrail__n{
  font-family:var(--tem-label); font-weight:700; font-size:.88rem; color:var(--tem-gold);
}
.tem-clientrail__c--more .tem-clientrail__n::after{ content:" ←"; }

@media (max-width:820px){
  .tem-clientrail__row{ gap:.4rem 0; }
  .tem-clientrail__c{ padding-inline:clamp(.7rem,3vw,1.2rem); }
}
@media (max-width:560px){
  .tem-clientrail__k::before, .tem-clientrail__k::after{ display:none; }
  .tem-clientrail__k{ justify-content:center; }
  .tem-clientrail__c{ padding:.5rem .9rem; }
  .tem-clientrail__c + .tem-clientrail__c::before{ display:none; }
}

.te-lf-done{
  border:1px solid var(--tem-gold); background:rgba(203,133,9,.07);
  padding:1.5rem 1.6rem; text-align:center;
}
.te-lf-done__m{
  width:44px; height:44px; margin:0 auto .9rem; display:grid; place-items:center;
  border:1px solid var(--tem-gold); color:var(--tem-gold-deep);
}
.te-lf-done__m svg{ width:22px; height:22px; }
.te-lf-done__t{
  font-family:var(--tem-display); font-size:1.25rem;
  color:var(--tem-cream-ink); margin:0 0 .6rem;
}
.te-lf-done__d{
  font-size:.94rem; line-height:1.95; color:var(--tem-light-ink);
  margin:0 auto 1.1rem; max-width:44ch;
}
.te-lf-done__w{
  display:inline-block; font-family:var(--tem-label); font-weight:700; font-size:.86rem;
  color:var(--tem-gold-deep); text-decoration:none;
  border:1px solid var(--tem-gold); padding:.7rem 1.3rem;
  transition:background .3s var(--tem-ease);
}
.te-lf-done__w:hover{ background:rgba(203,133,9,.12); }

.te-lf-slow{
  border:1px solid #D9A93F; background:rgba(217,169,63,.1);
  padding:.95rem 1.15rem; margin:0 0 1rem;
  font-size:.9rem; line-height:1.85; color:var(--tem-cream-ink);
}


/* ==========================================================================
   30) Language switch — footer
   The pair map sends the reader to the same page in the other language, so
   the control has to look like a destination rather than a flag icon: the
   code, the language name, and what will actually happen when it is clicked.
   ========================================================================== */
.tem-langswitch{
  display:inline-flex; align-items:center; gap:.75rem;
  margin:0 0 1.6rem; padding:.6rem .9rem;
  border:1px solid var(--tem-line); text-decoration:none;
  transition:border-color .3s var(--tem-ease), background .3s var(--tem-ease);
}
.tem-langswitch:hover{ border-color:var(--tem-gold); background:rgba(203,133,9,.07); }
.tem-langswitch__code{
  width:30px; height:30px; flex:none; display:grid; place-items:center;
  border:1px solid var(--tem-gold); color:var(--tem-gold);
  font-family:var(--tem-label); font-weight:700; font-size:.76rem; line-height:1;
}
.tem-langswitch__t{
  font-family:var(--tem-label); font-size:.92rem; color:var(--tem-ivory); line-height:1.35;
}
.tem-langswitch__t em{
  display:block; font-style:normal; font-size:.74rem; color:var(--tem-muted); margin-top:.2rem;
}
.tem-langswitch:hover .tem-langswitch__t{ color:var(--tem-gold-lit); }


/* ==========================================================================
   31) Language switch — header
   The footer control was not enough: a reader arriving on an inner page
   looks for the language in the header, and finding nothing there assumes
   the other edition does not exist. It sits before the primary button so
   it reads as navigation rather than as a second call to action.
   ========================================================================== */
.tem-headlang{
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.5rem .8rem; margin-inline-end:.7rem;
  border:1px solid var(--tem-line-strong);
  text-decoration:none; white-space:nowrap;
  transition:border-color .3s var(--tem-ease), color .3s var(--tem-ease);
}
.tem-headlang:hover{ border-color:var(--tem-gold); }
.tem-headlang__c{
  font-family:var(--tem-label); font-weight:500; font-size:.72rem;
  letter-spacing:.08em; color:var(--tem-gold);
}
.tem-headlang__n{
  font-family:var(--tem-label); font-size:.72rem;
  letter-spacing:var(--tem-track-label); text-transform:uppercase;
  color:var(--tem-ivory);
}
.tem-headlang:hover .tem-headlang__n{ color:var(--tem-gold); }

/* The header actions collapse on tablet, and the mobile panel carries its
   own link — a duplicate here would sit beside the burger and crowd it. */
@media (max-width:1080px){
  .tem-headlang{ display:none; }
}

/* The mobile panel's own language link — shown only where the header one is hidden. */
.tem-nav__lang{
  display:none;
  margin-block-start:1.2rem; padding:.85rem 1rem;
  border:1px solid var(--tem-line); text-align:center;
  font-family:var(--tem-label); font-size:.82rem;
  letter-spacing:var(--tem-track-label); text-transform:uppercase;
  color:var(--tem-gold-lit);
}
@media (max-width:1080px){
  .tem-nav__lang{ display:block; }
}


/* ==========================================================================
   32) Header actions row — alignment and density
   --------------------------------------------------------------------------
   .tem-header__actions carried no rules at all: its children stacked by
   default flow, which is why the language switch floated above the bar
   instead of sitting beside the button.

   The nav also outgrew the bar once the language control was added — CASE
   STUDIES wrapped to a second line. Rather than removing items, the row
   tightens: slightly smaller labels and narrower gaps between 1081px and
   1400px, returning to full size above that.
   ========================================================================== */
.tem-header__actions{
  display:flex; align-items:center; gap:.6rem; flex:none;
}
.tem-header__actions .tem-btn{ padding-block:.85rem; }

/* The nav itself: allow it to shrink before the actions do, and never wrap. */
.tem-header .tem-nav{ min-width:0; }
.tem-header .tem-nav > ul{ flex-wrap:nowrap; }
.tem-header .tem-nav > ul > li > a{ white-space:nowrap; }

@media (min-width:1081px) and (max-width:1400px){
  .tem-header .tem-nav > ul{ gap:1.35rem; }
  .tem-header .tem-nav > ul > li > a{ font-size:.66rem; letter-spacing:.16em; }
  .tem-headlang{ padding:.45rem .65rem; margin-inline-end:.45rem; }
  .tem-headlang__n{ font-size:.66rem; letter-spacing:.14em; }
  .tem-header__cta{ padding-inline:1.3rem; font-size:.68rem; letter-spacing:.14em; }
  .tem-logo__word{ font-size:1.24rem; }
}

@media (min-width:1081px) and (max-width:1240px){
  .tem-header .tem-nav > ul{ gap:1rem; }
  .tem-header .tem-nav > ul > li > a{ font-size:.62rem; letter-spacing:.12em; }
  .tem-headlang__n{ display:none; }   /* the code alone is enough at this width */
  .tem-logo__partner{ display:none; }
}
