/* ==========================================================================
   TALMIRO — "Ledger Line" design system
   Class scheme: tlm.<segment>-<part>  (dot-separated, file-path style)
   ========================================================================== */

/* ---- Design tokens ------------------------------------------------------ */
:root{
  --site-bg:#ffffff;
  --site-surface:#f5f6f8;
  --site-text:#10151a;
  --site-muted:#6b7280;
  --site-accent:#1959e0;
  --site-accent2:#c7ccd4;

  --tlm-font-heading:'Work Sans', sans-serif;
  --tlm-font-body:'Source Serif 4', serif;

  --tlm-container:1440px;
  --tlm-gutter:clamp(20px,5vw,64px);
  --tlm-section-pad:56px;
  --tlm-section-pad-lg:96px;
}

/* ---- Reset / base -------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
html,body{max-width:100%;overflow-x:hidden;}
body{
  margin:0;
  background:var(--site-bg);
  color:var(--site-text);
  font-family:var(--tlm-font-body);
  font-size:1rem;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img,svg{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
button{font:inherit;background:none;border:0;cursor:pointer;color:inherit;}
ul{margin:0;padding:0;}
input,textarea{font:inherit;color:inherit;}
h1,h2,h3,h4{
  font-family:var(--tlm-font-heading);
  font-weight:700;
  line-height:1.15;
  letter-spacing:-0.01em;
  margin:0 0 .5em;
  color:var(--site-text);
}
p{margin:0 0 1em;}
h1{font-size:clamp(2.1rem,1.6rem + 2.2vw,3.75rem);}
h2{font-size:clamp(1.6rem,1.35rem + 1.2vw,2.6rem);}
h3{font-size:clamp(1.2rem,1.05rem + .6vw,1.6rem);}

:focus-visible{outline:3px solid var(--site-accent);outline-offset:3px;}

/* ---- Layout primitives --------------------------------------------------- */
.tlm\.container{
  max-width:var(--tlm-container);
  margin-inline:auto;
  padding-inline:var(--tlm-gutter);
}
.tlm\.section{padding:var(--tlm-section-pad) 0;}
@media(min-width:768px){ .tlm\.section{padding:var(--tlm-section-pad-lg) 0;} }
.tlm\.section-tight{padding:calc(var(--tlm-section-pad) * .6) 0;}

.tlm\.section-bleed{
  padding:0;
  width:100vw;
  position:relative;
  left:50%;
  right:50%;
  margin-left:-50vw;
  margin-right:-50vw;
}

.tlm\.rule{border:0;border-top:1px solid var(--site-accent2);margin:0;}
.tlm\.eyebrow{
  display:inline-block;
  font-family:var(--tlm-font-heading);
  font-size:.78rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:var(--site-accent);
  margin-bottom:14px;
}

/* Signature element: ledger tick rule, used inside full-bleed sections */
.tlm\.ledger-rule{
  position:absolute;
  inset-block:0;
  left:clamp(14px,4vw,56px);
  width:1px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  pointer-events:none;
  z-index:2;
}
.tlm\.ledger-rule::before{
  content:'';
  position:absolute;
  top:0;bottom:0;left:0;
  width:1px;
  background:rgba(255,255,255,.35);
}
.tlm\.ledger-tick{
  position:relative;
  padding-left:14px;
  font-family:var(--tlm-font-heading);
  font-size:.68rem;
  letter-spacing:.1em;
  color:rgba(255,255,255,.65);
}
.tlm\.ledger-tick::before{
  content:'';
  position:absolute;left:0;top:.6em;
  width:9px;height:1px;
  background:rgba(255,255,255,.55);
}
.tlm\.ledger-rule--dark .tlm\.ledger-tick{color:var(--site-muted);}
.tlm\.ledger-rule--dark .tlm\.ledger-tick::before{background:var(--site-accent2);}
.tlm\.ledger-rule--dark::before{background:var(--site-accent2);}

/* ---- Photo treatment (duotone hint for Cape Town imagery) --------------- */
.tlm\.photo-duo{position:relative;overflow:hidden;}
.tlm\.photo-duo img{
  width:100%;height:100%;display:block;object-fit:cover;
  filter:grayscale(85%) contrast(1.05);
}
.tlm\.photo-duo::after{
  content:'';position:absolute;inset:0;
  background:var(--site-accent);
  mix-blend-mode:color;
  opacity:.28;
}

/* ---- Buttons -------------------------------------------------------------*/
.tlm\.cta-primary{
  display:inline-flex;align-items:center;gap:10px;
  background:var(--site-accent);color:#fff;
  font-family:var(--tlm-font-heading);font-weight:600;font-size:.95rem;
  padding:14px 30px;border:1px solid var(--site-accent);
  letter-spacing:.02em;border-radius:0;
  transition:background .2s ease, border-color .2s ease, color .2s ease;
}
.tlm\.cta-primary:hover{background:#123f9e;border-color:#123f9e;}
.tlm\.cta-secondary{
  display:inline-flex;align-items:center;gap:10px;
  background:transparent;color:var(--site-text);
  border:1px solid var(--site-text);
  font-family:var(--tlm-font-heading);font-weight:600;font-size:.95rem;
  padding:14px 30px;border-radius:0;
  transition:background .2s ease,color .2s ease;
}
.tlm\.cta-secondary:hover{background:var(--site-text);color:#fff;}
.tlm\.cta-ghost{
  display:inline-flex;align-items:center;gap:6px;
  font-family:var(--tlm-font-heading);font-weight:600;color:var(--site-accent);
}
.tlm\.cta-ghost::after{content:'\2192';transition:transform .2s ease;}
.tlm\.cta-ghost:hover::after{transform:translateX(5px);}

/* ==========================================================================
   HEADER — thin utility bar + large nav, logo left
   ========================================================================== */
#nav-shell-7pk{position:sticky;top:0;left:0;right:0;z-index:100;background:var(--site-bg);}

.tlm\.util-bar{
  background:var(--site-text);color:#fff;
  overflow:hidden;
  max-height:44px;
  transition:max-height .3s ease, opacity .3s ease, padding .3s ease;
}
#nav-shell-7pk.is-scrolled .tlm\.util-bar{max-height:0;opacity:0;padding-block:0;}
.tlm\.util-bar .tlm\.container{
  display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:space-between;
  padding-block:11px;
  font-family:var(--tlm-font-heading);font-size:.74rem;letter-spacing:.04em;
}
.tlm\.util-list{display:flex;gap:22px;flex-wrap:wrap;list-style:none;}
.tlm\.util-item{display:flex;align-items:center;gap:7px;color:rgba(255,255,255,.85);}
.tlm\.util-item i{color:var(--site-accent);font-size:.85em;}
.tlm\.util-item a{color:inherit;}

.tlm\.nav-bar{border-bottom:1px solid var(--site-accent2);background:var(--site-bg);}
.tlm\.nav-bar .tlm\.container{
  display:flex;align-items:center;justify-content:space-between;
  padding-block:22px;transition:padding .3s ease;gap:20px;
}
#nav-shell-7pk.is-scrolled .tlm\.nav-bar .tlm\.container{padding-block:13px;}

.tlm\.logo{display:flex;align-items:center;gap:11px;}
.tlm\.logo-mark{width:32px;height:32px;flex-shrink:0;}
.tlm\.logo-word{
  font-family:var(--tlm-font-heading);font-weight:700;font-size:1.3rem;
  letter-spacing:-.01em;color:var(--site-text);line-height:1;
}

.tlm\.nav-links{
  display:none;align-items:center;gap:34px;list-style:none;
}
@media(min-width:960px){ .tlm\.nav-links{display:flex;} }
.tlm\.nav-link{
  position:relative;font-family:var(--tlm-font-heading);font-weight:500;
  font-size:.95rem;padding:6px 1px;color:var(--site-text);
}
.tlm\.nav-link::after{
  content:'';position:absolute;left:0;right:0;bottom:-3px;height:2px;
  background:var(--site-accent);transform:scaleX(0);transform-origin:left;
  transition:transform .25s ease;
}
.tlm\.nav-link:hover::after,.tlm\.nav-link.is-active::after{transform:scaleX(1);}

.tlm\.nav-actions{display:flex;align-items:center;gap:18px;}
.tlm\.nav-actions .tlm\.cta-primary{display:none;}
@media(min-width:960px){ .tlm\.nav-actions .tlm\.cta-primary{display:inline-flex;} }

.tlm\.hamburger{
  display:inline-flex;flex-direction:column;justify-content:center;align-items:center;
  gap:5px;width:42px;height:42px;border:1px solid var(--site-accent2);flex-shrink:0;
}
@media(min-width:960px){ .tlm\.hamburger{display:none;} }
.tlm\.hamburger-bar{width:18px;height:2px;background:var(--site-text);transition:transform .2s ease,opacity .2s ease;}
#hamburger-yga[aria-expanded="true"] .tlm\.hamburger-bar:nth-child(1){transform:translateY(7px) rotate(45deg);}
#hamburger-yga[aria-expanded="true"] .tlm\.hamburger-bar:nth-child(2){opacity:0;}
#hamburger-yga[aria-expanded="true"] .tlm\.hamburger-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* Drawer */
#scrim-wrx{
  position:fixed;inset:0;background:rgba(16,21,26,.55);
  opacity:0;pointer-events:none;transition:opacity .3s ease;z-index:205;
}
#scrim-wrx.is-open{opacity:1;pointer-events:auto;}
#drawer-wdd{
  position:fixed;top:0;right:0;bottom:0;
  width:min(340px,86vw);background:var(--site-bg);
  border-left:1px solid var(--site-accent2);
  padding:28px 30px 40px;z-index:210;
  transform:translateX(100%);transition:transform .32s ease;
  overflow-y:auto;
}
#drawer-wdd.is-open{transform:translateX(0);}
#x-btn-bj7{
  position:absolute;top:18px;right:18px;font-size:1.6rem;line-height:1;
  width:38px;height:38px;border:1px solid var(--site-accent2);
}
.tlm\.drawer-nav{display:flex;flex-direction:column;margin-top:56px;}
.tlm\.drawer-link{
  font-family:var(--tlm-font-heading);font-size:1.1rem;font-weight:500;
  padding:15px 2px;border-bottom:1px solid var(--site-accent2);color:var(--site-text);
}
.tlm\.drawer-foot{margin-top:28px;padding-top:20px;border-top:1px solid var(--site-accent2);color:var(--site-muted);font-size:.85rem;}

/* ==========================================================================
   FOOTER — big multi-column, ledger-line divider on top
   ========================================================================== */
.tlm\.footer{background:var(--site-surface);}

.tlm\.footer-ledger{
  height:26px;
  background-image:
    linear-gradient(var(--site-accent2),var(--site-accent2)),
    repeating-linear-gradient(to right, var(--site-accent2) 0 1px, transparent 1px 48px);
  background-repeat:no-repeat, repeat-x;
  background-position:bottom, bottom;
  background-size:100% 1px, 100% 11px;
}

.tlm\.footer-grid{
  display:grid;grid-template-columns:1fr;gap:44px;
  padding:var(--tlm-section-pad) 0 48px;
}
@media(min-width:700px){ .tlm\.footer-grid{grid-template-columns:repeat(2,1fr);} }
@media(min-width:1100px){ .tlm\.footer-grid{grid-template-columns:1.5fr 1fr 1fr 1.1fr;} }

.tlm\.footer-heading{
  font-family:var(--tlm-font-heading);font-size:.78rem;font-weight:600;
  text-transform:uppercase;letter-spacing:.1em;color:var(--site-muted);
  margin-bottom:18px;
}
.tlm\.footer-brand{display:flex;align-items:center;gap:10px;margin-bottom:16px;}
.tlm\.footer-brand .tlm\.logo-mark{width:28px;height:28px;}
.tlm\.footer-brand .tlm\.logo-word{font-size:1.15rem;}
.tlm\.footer-blurb{color:var(--site-muted);max-width:36ch;margin-bottom:20px;}
.tlm\.footer-legal{font-size:.85rem;color:var(--site-muted);line-height:1.75;}
.tlm\.footer-legal strong{color:var(--site-text);display:block;font-weight:600;margin-bottom:4px;}

.tlm\.footer-list{list-style:none;display:flex;flex-direction:column;gap:11px;}
.tlm\.footer-link{font-size:.95rem;color:var(--site-text);}
.tlm\.footer-link:hover{color:var(--site-accent);}

.tlm\.footer-contact{display:flex;flex-direction:column;gap:12px;font-size:.95rem;}
.tlm\.footer-contact a:hover{color:var(--site-accent);}
.tlm\.footer-contact i{width:16px;color:var(--site-accent);margin-right:6px;}

.tlm\.footer-bottom{
  border-top:1px solid var(--site-accent2);
  padding:22px 0 40px;
  display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;align-items:center;
  font-size:.83rem;color:var(--site-muted);
}
.tlm\.footer-bottom-links{display:flex;gap:20px;list-style:none;flex-wrap:wrap;}
.tlm\.footer-bottom-links a{color:var(--site-muted);}
.tlm\.footer-bottom-links a:hover{color:var(--site-accent);}

/* ==========================================================================
   INDEX — hero with floating stat/price card + inline stat row
   ========================================================================== */
.tlm\.hero{background:var(--site-surface);padding:52px 0 0;}
.tlm\.hero-inner{
  display:grid;grid-template-columns:1fr;gap:44px;position:relative;
}
@media(min-width:1000px){ .tlm\.hero-inner{grid-template-columns:1.25fr .95fr;align-items:end;} }

.tlm\.hero-copy{padding-bottom:8px;}
.tlm\.hero-title{max-width:16ch;}
.tlm\.hero-lead{font-size:clamp(1.05rem,1rem + .3vw,1.25rem);color:var(--site-muted);max-width:52ch;}

.tlm\.hero-stats{
  display:grid;grid-template-columns:repeat(3,1fr);gap:20px;
  margin-top:40px;padding-top:24px;border-top:1px solid var(--site-accent2);
  max-width:560px;
}
.tlm\.hero-stat-value{
  font-family:var(--tlm-font-heading);font-weight:700;
  font-size:clamp(1.4rem,1.15rem + 1vw,2.15rem);color:var(--site-text);
}
.tlm\.hero-stat-label{
  font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;
  color:var(--site-muted);margin-top:4px;display:block;
}

.tlm\.hero-media{position:relative;aspect-ratio:4/5;overflow:hidden;}
@media(max-width:999px){ .tlm\.hero-media{aspect-ratio:16/10;} }

.tlm\.hero-card{
  position:relative;margin:-56px 20px 0;
  background:var(--site-bg);border:1px solid var(--site-accent2);
  padding:24px 26px;
}
@media(min-width:1000px){
  .tlm\.hero-card{
    position:absolute;left:-28px;bottom:-28px;margin:0;
    min-width:230px;
  }
}
.tlm\.hero-card-label{
  font-family:var(--tlm-font-heading);font-size:.72rem;text-transform:uppercase;
  letter-spacing:.08em;color:var(--site-muted);margin-bottom:8px;
}
.tlm\.hero-card-value{font-family:var(--tlm-font-heading);font-weight:700;font-size:1.9rem;}
.tlm\.hero-card-trend{font-size:.82rem;color:var(--site-accent);margin-top:6px;}

/* visual_break — parallax full-bleed, caption only */
.tlm\.visual-break{position:relative;}
.tlm\.visual-break-media{width:100%;aspect-ratio:21/9;overflow:hidden;background:var(--site-text);}
@media(max-width:640px){ .tlm\.visual-break-media{aspect-ratio:4/5;} }
.tlm\.visual-break-media img{width:100%;height:100%;object-fit:cover;filter:grayscale(70%);}
.tlm\.visual-break-caption{
  position:absolute;left:var(--tlm-gutter);bottom:26px;color:#fff;
  font-family:var(--tlm-font-heading);font-size:.8rem;letter-spacing:.1em;
  text-transform:uppercase;background:rgba(16,21,26,.6);padding:9px 16px;
}

/* quote_feature */
.tlm\.quote-feature{max-width:900px;margin-inline:auto;text-align:center;}
.tlm\.quote-feature-mark{font-family:var(--tlm-font-heading);font-size:3rem;color:var(--site-accent2);line-height:.5;}
.tlm\.quote-feature-text{
  font-family:var(--tlm-font-heading);font-weight:500;
  font-size:clamp(1.5rem,1.2rem + 1.5vw,2.4rem);line-height:1.35;color:var(--site-text);
}
.tlm\.quote-feature-rule{width:60px;height:2px;background:var(--site-accent);margin:30px auto 18px;border:0;}
.tlm\.quote-feature-attribution{
  font-family:var(--tlm-font-heading);font-size:.85rem;letter-spacing:.06em;
  text-transform:uppercase;color:var(--site-muted);
}

/* intro — centered manifesto */
.tlm\.intro{max-width:740px;margin-inline:auto;text-align:center;}
.tlm\.intro-text{
  font-size:clamp(1.1rem,1rem + .4vw,1.4rem);line-height:1.85;color:var(--site-text);
}

/* inline_form — two columns */
.tlm\.inline-form{display:grid;grid-template-columns:1fr;gap:48px;}
@media(min-width:900px){ .tlm\.inline-form{grid-template-columns:1fr 1fr;align-items:start;} }
.tlm\.inline-form-copy p{color:var(--site-muted);}
.tlm\.inline-form-panel{
  background:var(--site-bg);border:1px solid var(--site-accent2);padding:clamp(24px,4vw,44px);
}

/* forms shared */
.tlm\.form-field{display:flex;flex-direction:column;gap:7px;margin-bottom:20px;}
.tlm\.form-label{
  font-family:var(--tlm-font-heading);font-size:.76rem;text-transform:uppercase;
  letter-spacing:.07em;color:var(--site-muted);
}
.tlm\.form-input,.tlm\.form-textarea{
  border:1px solid var(--site-accent2);background:var(--site-bg);
  padding:13px 15px;font-family:var(--tlm-font-body);font-size:1rem;
  color:var(--site-text);border-radius:0;
}
.tlm\.form-input:focus,.tlm\.form-textarea:focus{border-color:var(--site-accent);}
.tlm\.form-textarea{resize:vertical;min-height:130px;}
.tlm\.form-submit{width:100%;justify-content:center;}
.tlm\.form-note{font-size:.82rem;color:var(--site-muted);margin-top:14px;}

/* ==========================================================================
   PAGE HERO VARIANTS
   ========================================================================== */
.tlm\.page-hero{padding:64px 0;}

/* side image variant (wealth-advisory) */
.tlm\.page-hero-side .tlm\.page-hero-grid{
  display:grid;grid-template-columns:1fr;gap:40px;
}
@media(min-width:960px){
  .tlm\.page-hero-side .tlm\.page-hero-grid{grid-template-columns:1.1fr .9fr;align-items:center;}
}
.tlm\.page-hero-media{aspect-ratio:4/3;overflow:hidden;}

/* type-only oversized headline on solid field (tax-and-compliance) */
.tlm\.page-hero-solid{background:var(--site-text);color:#fff;padding:104px 0 88px;}
.tlm\.page-hero-solid .tlm\.page-hero-title{
  font-size:clamp(2.6rem,2rem + 4.5vw,5.6rem);color:#fff;max-width:15ch;
}
.tlm\.page-hero-solid .tlm\.page-hero-lead{color:rgba(255,255,255,.72);max-width:56ch;font-size:1.15rem;}
.tlm\.page-hero-solid .tlm\.eyebrow{color:#8fb0ff;}

/* tinted band variant (our-methodology) */
.tlm\.page-hero-tint{background:var(--site-surface);padding:92px 0;border-bottom:1px solid var(--site-accent2);}
.tlm\.page-hero-tint .tlm\.page-hero-title{max-width:18ch;}

/* compact centered variant (contact) */
.tlm\.page-hero-compact{
  text-align:center;max-width:720px;margin-inline:auto;padding:60px 0 40px;
}

/* ==========================================================================
   SERVICES — alternating rows (wealth-advisory)
   ========================================================================== */
.tlm\.service-row{
  display:grid;grid-template-columns:1fr;gap:32px;
  padding:48px 0;border-bottom:1px solid var(--site-accent2);
}
.tlm\.service-row:first-of-type{padding-top:0;}
@media(min-width:900px){
  .tlm\.service-row{grid-template-columns:1fr 1fr;align-items:center;gap:56px;}
  .tlm\.service-row-reverse .tlm\.service-media{order:2;}
  .tlm\.service-row-reverse .tlm\.service-body{order:1;}
}
.tlm\.service-media{aspect-ratio:4/3;overflow:hidden;}
.tlm\.service-index{
  font-family:var(--tlm-font-heading);font-weight:700;font-size:.85rem;
  color:var(--site-accent);letter-spacing:.08em;margin-bottom:10px;display:block;
}

/* ==========================================================================
   STATS — bordered boxes
   ========================================================================== */
.tlm\.stat-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  border-top:1px solid var(--site-accent2);
  border-left:1px solid var(--site-accent2);
}
.tlm\.stat-box{
  padding:36px 26px;
  border-right:1px solid var(--site-accent2);
  border-bottom:1px solid var(--site-accent2);
}
.tlm\.stat-value{font-family:var(--tlm-font-heading);font-weight:700;font-size:clamp(1.8rem,1.5rem + 1vw,2.6rem);}
.tlm\.stat-label{font-size:.85rem;color:var(--site-muted);margin-top:8px;}

/* ==========================================================================
   TESTIMONIALS — single large, with photo
   ========================================================================== */
.tlm\.testimonial{
  display:grid;grid-template-columns:1fr;gap:36px;align-items:center;
}
@media(min-width:860px){ .tlm\.testimonial{grid-template-columns:.75fr 1.25fr;gap:64px;} }
.tlm\.testimonial-photo{aspect-ratio:4/5;overflow:hidden;}
.tlm\.testimonial-quote{
  font-family:var(--tlm-font-heading);font-weight:500;
  font-size:clamp(1.3rem,1.1rem + 1vw,1.9rem);line-height:1.45;
}
.tlm\.testimonial-name{font-family:var(--tlm-font-heading);font-weight:700;margin-top:24px;}
.tlm\.testimonial-role{color:var(--site-muted);font-size:.9rem;}

/* ==========================================================================
   CTA STRIP — split (wealth-advisory) / centered (tax-and-compliance)
   ========================================================================== */
.tlm\.cta-strip-split{
  display:grid;grid-template-columns:1fr;gap:32px;
  background:var(--site-text);color:#fff;
  padding:64px var(--tlm-gutter);
}
@media(min-width:860px){ .tlm\.cta-strip-split{grid-template-columns:1.2fr .8fr;align-items:center;} }
.tlm\.cta-strip-info{display:flex;flex-direction:column;gap:6px;font-size:.98rem;}
.tlm\.cta-strip-info i{color:var(--site-accent);margin-right:8px;}
.tlm\.cta-strip-split .tlm\.cta-secondary{border-color:#fff;color:#fff;}
.tlm\.cta-strip-split .tlm\.cta-secondary:hover{background:#fff;color:var(--site-text);}

.tlm\.cta-strip-centered{display:flex;justify-content:center;}
.tlm\.cta-strip-card{
  max-width:640px;width:100%;text-align:center;
  background:var(--site-surface);border:1px solid var(--site-accent2);
  padding:clamp(36px,6vw,64px);
}

/* ==========================================================================
   CHECKLIST — two column (tax-and-compliance)
   ========================================================================== */
.tlm\.checklist{display:grid;grid-template-columns:1fr;gap:44px;}
@media(min-width:860px){ .tlm\.checklist{grid-template-columns:1fr 1fr;} }
.tlm\.checklist-intro p{color:var(--site-muted);}
.tlm\.checklist-list{list-style:none;display:flex;flex-direction:column;gap:0;}
.tlm\.checklist-item{
  display:flex;gap:14px;align-items:flex-start;
  padding:16px 0;border-bottom:1px solid var(--site-accent2);
}
.tlm\.checklist-item::before{
  content:'\2713';font-family:var(--tlm-font-heading);font-weight:700;
  color:var(--site-accent);flex-shrink:0;line-height:1.5;
}

/* ==========================================================================
   FAQ ACCORDION — collapsed by default, .is-open expands
   ========================================================================== */
.tlm\.accordion{border-top:1px solid var(--site-accent2);}
.tlm\.accordion-item{border-bottom:1px solid var(--site-accent2);}
.tlm\.accordion-toggle{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:22px 2px;text-align:left;
  font-family:var(--tlm-font-heading);font-weight:600;font-size:1.05rem;color:var(--site-text);
}
.tlm\.accordion-icon{font-size:1.3rem;color:var(--site-accent);transition:transform .25s ease;flex-shrink:0;}
.is-open .tlm\.accordion-icon{transform:rotate(45deg);}

.tlm\.accordion-body{
  max-height:0;
  overflow:hidden;
  transition:max-height .3s ease;
}
.is-open .tlm\.accordion-body{max-height:600px;}
.tlm\.accordion-body-inner{padding:0 2px 22px;color:var(--site-muted);}

/* ==========================================================================
   METHODOLOGY — numbered phases, rule between (our-methodology)
   ========================================================================== */
.tlm\.methodology{display:flex;flex-direction:column;}
.tlm\.phase{
  display:grid;grid-template-columns:auto 1fr;gap:28px;padding:44px 0;
}
.tlm\.phase + .tlm\.phase{border-top:1px solid var(--site-accent2);}
.tlm\.phase-number{
  font-family:var(--tlm-font-heading);font-weight:700;
  font-size:clamp(2rem,1.6rem + 1.5vw,3.4rem);color:var(--site-accent2);line-height:1;
}
.tlm\.phase-title{margin-bottom:10px;}
.tlm\.phase-body p{color:var(--site-muted);max-width:64ch;}

/* ==========================================================================
   CREDENTIALS — mark tiles row (our-methodology)
   ========================================================================== */
.tlm\.credentials{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:28px;text-align:center;
}
.tlm\.credential-mark{
  aspect-ratio:1/1;border:1px solid var(--site-accent2);
  display:flex;align-items:center;justify-content:center;margin-bottom:12px;
  font-size:1.6rem;color:var(--site-accent);
}
.tlm\.credential-caption{font-size:.85rem;color:var(--site-muted);}

/* ==========================================================================
   WHY US — single long-form column (our-methodology)
   ========================================================================== */
.tlm\.why-us{max-width:760px;margin-inline:auto;}
.tlm\.why-us-text{font-size:1.12rem;line-height:1.9;}
.tlm\.why-us-text p + p{margin-top:22px;}

/* ==========================================================================
   CONTACT FORM — reassurance left / form right + address beneath
   ========================================================================== */
.tlm\.contact-form{display:grid;grid-template-columns:1fr;gap:48px;}
@media(min-width:900px){ .tlm\.contact-form{grid-template-columns:1fr 1fr;align-items:start;} }
.tlm\.contact-form-copy p{color:var(--site-muted);}
.tlm\.contact-form-panel{background:var(--site-bg);border:1px solid var(--site-accent2);padding:clamp(24px,4vw,44px);}
.tlm\.contact-address{
  margin-top:30px;padding-top:22px;border-top:1px solid var(--site-accent2);
  display:grid;gap:8px;font-size:.92rem;color:var(--site-muted);
}
.tlm\.contact-address i{color:var(--site-accent);width:16px;margin-right:8px;}

/* ==========================================================================
   Generic card / grid utilities
   ========================================================================== */
.tlm\.card{border:1px solid var(--site-accent2);background:var(--site-bg);}
.tlm\.card-body{padding:28px;}
.tlm\.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:32px;}

/* ==========================================================================
   SWIPER overrides
   ========================================================================== */
.tlm\.carousel{padding-bottom:48px;}
.tlm\.carousel .swiper-slide{height:auto;}
.swiper-pagination-bullet{
  background:var(--site-accent2);opacity:1;border-radius:0;width:22px;height:3px;
}
.swiper-pagination-bullet-active{background:var(--site-accent);}
.swiper-button-prev,.swiper-button-next{color:var(--site-text);}
.swiper-button-prev::after,.swiper-button-next::after{font-size:1.1rem;}

/* ==========================================================================
   MODAL — scroll-safe overlay
   ========================================================================== */
.site-modal{
  position:fixed;inset:0;z-index:300;
  display:flex;align-items:center;justify-content:center;
  padding:24px;background:rgba(16,21,26,.68);
  opacity:0;pointer-events:none;transition:opacity .25s ease;
}
.site-modal.is-open{opacity:1;pointer-events:auto;}
.dialog-42h{
  position:relative;width:100%;max-width:560px;max-height:85vh;overflow-y:auto;
  background:var(--site-bg);border:1px solid var(--site-accent2);
  padding:clamp(28px,5vw,44px);
  transform:translateY(14px);transition:transform .25s ease;
}
.site-modal.is-open .dialog-42h{transform:translateY(0);}
.tlm\.dialog-close{
  position:absolute;top:16px;right:16px;font-size:1.5rem;line-height:1;
  width:36px;height:36px;color:var(--site-text);
}

/* ==========================================================================
   Responsive helpers
   ========================================================================== */
@media(max-width:359px){
  .tlm\.hero-stats{grid-template-columns:1fr;}
}
@media(max-width:767px){
  .tlm\.util-list{gap:14px;}
}


/* --- cookie consent (per-site) --- */
.consent-8sn-overlay{position:fixed;inset:0;opacity:0;visibility:hidden;transition:.25s;z-index:9998;}
.consent-8sn-overlay.is-open{opacity:1;visibility:visible;}
.consent-8sn-panel{position:fixed;background:var(--site-surface,#fff);color:var(--site-text,#1a1a1a);
  box-shadow:0 20px 60px rgba(0,0,0,.28);padding:24px;opacity:0;visibility:hidden;transition:.25s;z-index:9999;}
.consent-8sn-panel.is-open{opacity:1;visibility:visible;}
.consent-8sn-panel h3{margin:0 0 8px;font-size:1.2rem;}
.consent-8sn-panel>p{margin:0 0 16px;color:var(--site-muted,#666);font-size:.95rem;}
.consent-8sn-cat{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid rgba(128,128,128,.2);}
.consent-8sn-cat h4{margin:0 0 2px;font-size:.98rem;}
.consent-8sn-cat p{margin:0;color:var(--site-muted,#777);font-size:.85rem;}
.consent-8sn-switch{position:relative;flex:0 0 auto;width:44px;height:24px;}
.consent-8sn-switch input{opacity:0;width:0;height:0;position:absolute;}
.consent-8sn-switch span{position:absolute;inset:0;background:#c9c9c9;border-radius:999px;transition:.2s;cursor:pointer;}
.consent-8sn-switch span::before{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s;}
.consent-8sn-switch input:checked+span{background:var(--site-accent,#2b7);}
.consent-8sn-switch input:checked+span::before{transform:translateX(20px);}
.consent-8sn-switch input:disabled+span{opacity:.6;cursor:not-allowed;}
.consent-8sn-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;}
.consent-8sn-actions button{flex:1;min-width:140px;padding:11px 16px;border:none;border-radius:10px;font:inherit;font-weight:600;cursor:pointer;}
.consent-8sn-actions #consent-8sn-all{background:var(--site-accent,#2b7);color:#fff;}
.consent-8sn-actions #consent-8sn-save{background:transparent;color:var(--site-text,#222);border:1px solid rgba(128,128,128,.4);}
.consent-8sn-links{display:flex;gap:16px;margin-top:14px;font-size:.85rem;}
.consent-8sn-links a{color:var(--site-accent,#2b7);text-decoration:underline;}
.consent-8sn-trigger{position:fixed;left:18px;bottom:18px;width:44px;height:44px;border-radius:50%;border:none;cursor:pointer;
  background:var(--site-surface,#fff);color:var(--site-accent,#2b7);box-shadow:0 6px 18px rgba(0,0,0,.2);z-index:9997;font-size:1.1rem;}

.consent-8sn-overlay{background:transparent;pointer-events:none;}
.consent-8sn-panel{left:0;right:0;bottom:0;width:100%;border-radius:16px 16px 0 0;transform:translateY(100%);}
.consent-8sn-panel>*{max-width:900px;margin-left:auto;margin-right:auto;}
.consent-8sn-panel.is-open{transform:translateY(0);}
@media(max-width:520px){.consent-8sn-actions button{min-width:100%;}}
#fab-stack-y0f{left:auto !important;right:18px !important;}
@media(max-width:520px){#fab-stack-y0f{right:12px !important;}}
html[data-cookie-open] #fab-stack-y0f{bottom:min(46vh,260px) !important;}


/* --- safety net (deterministic) --- */
*,*::before,*::after{box-sizing:border-box;}
html,body{overflow-x:hidden;overflow-x:clip;max-width:100%;}
img,svg,video,iframe,canvas{max-width:100%;}
table{max-width:100%;}
/* simpleParallax оборачивает <img> в свой .simpleParallax — заставляем обёртку
   тянуться на всю высоту родителя, а фото внутри — cover. Проценты безопасны:
   при родителе без заданной высоты height:100% откатывается к auto (без коллапса). */
.simpleParallax{display:block;width:100%;height:100%;}
.simpleParallax img{width:100%;height:100%;object-fit:cover;}
/* Браузерный дефолт для <blockquote> и <figure> — margin: 1em 40px. Модель берёт
   эти семантические теги для отзывов и карточек с подписью, но сбросить поля
   забывает: внутри карточки в 267px текст сжимался до 131px (по 40px с каждой
   стороны) и переносился по одному слову, а между карточками зияли пустоты.
   Сбрасываем только горизонтальные поля — вертикальные обычно задуманы. */
blockquote, figure { margin-left: 0; margin-right: 0; }
/* Вложенные фигуры внутри сеток тоже не должны добавлять отступ сбоку. */
figure > blockquote, figure > figcaption { margin-left: 0; margin-right: 0; }
/* Если AOS не поднялся (CDN недоступен, блокировщик) — main.js вешает .no-aos.
   Без этого элементы с data-aos остались бы с opacity:0 из aos.css, то есть
   половина страницы была бы невидимой. */
html.no-aos [data-aos]{opacity:1 !important;transform:none !important;}
/* Пользователи с prefers-reduced-motion получают контент сразу, без анимаций. */
@media(prefers-reduced-motion:reduce){
  [data-aos]{opacity:1 !important;transform:none !important;transition:none !important;}
}
