@font-face{font-family:HK;src:url('fonts/HKGrotesk-Regular.otf') format('opentype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:HK;src:url('fonts/HKGrotesk-SemiBold.otf') format('opentype');font-style:normal;font-weight:600;font-display:swap}
:root{--tm-ink:#171316;--tm-paper:#f8f3ee;--tm-white:#fffdfa;--tm-rose:#ce2565;--tm-rose2:#f3d7e1;--tm-plum:#4b1832;--tm-muted:#756d70;--tm-line:rgba(23,19,22,.14);--tm-serif:'Bodoni MT',Didot,'Times New Roman',serif;--tm-sans:HK,Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--tm-paper);color:var(--tm-ink);font-family:var(--tm-sans);font-size:16px;line-height:1.55}a{color:inherit;text-decoration:none}.tm-page-content{overflow:hidden}.tm42-container{width:min(1180px,calc(100% - 42px))!important;max-width:1180px!important;margin-left:auto!important;margin-right:auto!important}.tm42-widget p:last-child{margin-bottom:0}.tm42-widget.elementor-widget-heading .elementor-heading-title{font-weight:400}.tm42-widget.elementor-widget-heading .elementor-heading-title em{color:var(--tm-rose);font-style:italic}.elementor-widget-text-editor p{margin:0 0 1em}.elementor-widget-text-editor p:last-child{margin-bottom:0}

/* Header/footer templates remain Elementor-editable; CSS here only handles dynamic menu behaviour and sticky presentation. */
.tm42-header{position:sticky!important;top:0;z-index:50;background:rgba(248,243,238,.92)!important;backdrop-filter:blur(16px);border-bottom:1px solid transparent;transition:.3s}.tm42-header.scrolled{border-color:var(--tm-line);box-shadow:0 8px 30px rgba(20,10,15,.05)}.tm42-header-inner{height:86px}.tm42-header .brand .elementor-heading-title span,.tm42-footer .brand .elementor-heading-title span{color:var(--tm-rose);font-style:italic}.tm42-header .elementor-widget-shortcode,.tm42-header .elementor-widget-shortcode .elementor-shortcode{width:auto}.tm42-header .tm-native-menu .elementor-shortcode{display:flex;align-items:center;gap:25px;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.tm42-header .tm-native-menu a{position:relative;white-space:nowrap}.tm42-header .tm-native-menu a:after{content:'';position:absolute;left:0;right:100%;bottom:-8px;height:1px;background:var(--tm-rose);transition:.25s}.tm42-header .tm-native-menu a:hover:after,.tm42-header .tm-native-menu a.active:after{right:0}.tm42-header .tm-native-lang .lang{display:flex;gap:8px;border-left:1px solid var(--tm-line);padding-left:18px;font-size:.78rem;text-transform:uppercase}.tm42-header .tm-native-lang .active{color:var(--tm-rose)}.tm42-header .tm-book-pill .elementor-button:hover{transform:translateY(-2px)}

.tm42-footer{background:#110e10!important;padding:70px 0 30px}.tm42-footer .tm42-footer-grid>.e-con{flex:1 1 180px}.tm42-footer .tm42-footer-grid>.e-con:first-child{flex-basis:300px}.tm42-footer a{display:inline-block;margin:5px 0;color:#e0d4d9}.tm42-footer .elementor-widget-text-editor p{margin:0}.tm42-footer-bottom{color:#8f8288}

/* Visual helpers that cannot be expressed cleanly through Elementor controls. */
.tm42-hero{min-height:calc(100vh - 86px);border-bottom:1px solid var(--tm-line)}.tm42-hero-image{overflow:hidden;position:relative}.tm42-hero-image>.elementor-widget-image,.tm42-hero-image>.elementor-widget-image .elementor-widget-container{height:100%}.tm42-hero-image img{height:100%!important;object-fit:cover!important;object-position:50% 34%!important;filter:saturate(.82) contrast(1.02)}.tm42-hero-image:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(248,243,238,.16),transparent 30%);pointer-events:none}.hero-badge{position:absolute!important;z-index:2;left:28px;bottom:28px;width:auto!important;background:rgba(255,253,250,.92);backdrop-filter:blur(10px);padding:14px 18px;border-radius:999px}.tag{position:absolute!important;z-index:2;left:16px;bottom:16px;width:auto!important;background:rgba(255,253,250,.92);padding:8px 12px;border-radius:999px;text-transform:uppercase;letter-spacing:.1em}.tm42-photo-frame{position:relative;overflow:hidden;border-radius:3px}.tm42-photo-frame>.elementor-widget-image{width:100%;height:100%}.tm42-photo-frame>.elementor-widget-image .elementor-widget-container{height:100%}.tm42-photo-frame img{width:100%;height:100%;object-fit:cover}

.tm42-stat{border-right:1px solid var(--tm-line)}.stats>.tm42-stat:last-child{border-right:0}.stat>.elementor-widget-heading .elementor-heading-title{text-align:center}.stat>.elementor-widget-text-editor{text-align:center;text-transform:uppercase;letter-spacing:.11em;color:var(--tm-muted);font-size:.73rem}.tm42-card{transition:transform .3s,box-shadow .3s}.tm42-card:hover{transform:translateY(-5px);box-shadow:0 20px 60px rgba(52,25,39,.08)}.card.feature .elementor-heading-title,.card.feature .elementor-widget-text-editor{color:#fff!important}.card.feature .elementor-widget-text-editor p{color:#e8dce2}.tm42-step{border-right:1px solid var(--tm-line)}.steps>.tm42-step:last-child{border-right:0}.circle{width:42px!important;height:42px;display:grid!important;place-items:center;background:var(--tm-rose2);border-radius:50%;margin-bottom:30px}.tm42-step>.elementor-widget-text-editor{color:var(--tm-muted)}

.checklist ul{list-style:none;padding:0;margin:26px 0;display:grid;grid-template-columns:1fr 1fr;gap:10px 20px}.checklist li{padding:12px 0;border-bottom:1px solid var(--tm-line);font-size:.9rem}.checklist li:before{content:'✦';color:var(--tm-rose);margin-right:9px}.tm42-gallery-strip>.elementor-widget-image img{height:520px!important;object-fit:cover}.tm42-gallery-strip>.elementor-widget-image:nth-child(2){margin-top:52px}.tm42-gallery-strip>.elementor-widget-image:nth-child(2) img{height:468px!important}.tm42-quote .tm42-quote-text blockquote{margin:0 auto 24px;max-width:950px}.tm42-quote>.tm42-container>.elementor-widget-text-editor:last-child{color:#e9a3bd;text-transform:uppercase;letter-spacing:.15em;font-size:.75rem}.tm42-faq{max-width:900px!important}.tm42-faq-item details{border-top:1px solid var(--tm-line);padding:22px 0}.tm42-faq-item:last-child details{border-bottom:1px solid var(--tm-line)}.tm42-faq-item summary{font-family:var(--tm-serif);font-size:1.5rem;cursor:pointer;list-style:none;display:flex;justify-content:space-between}.tm42-faq-item summary:after{content:'+';font-family:var(--tm-sans);color:var(--tm-rose)}.tm42-faq-item details[open] summary:after{content:'–'}.tm42-faq-item details p{padding-top:14px;max-width:760px;color:#5c5559}.tm42-masonry{columns:4 240px;column-gap:12px;display:block!important}.tm42-masonry>.elementor-widget-image{display:inline-block;width:100%;margin-bottom:12px;break-inside:avoid}.tm42-masonry img{width:100%;height:auto!important}.ecosystem>.eco .elementor-widget-text-editor:last-child a{font-size:.73rem;text-transform:uppercase;letter-spacing:.11em;color:var(--tm-rose)}

/* Reveal is visible while editing, animated only on the public site. */
body:not(.elementor-editor-active) .tm42-reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}body:not(.elementor-editor-active) .tm42-reveal.visible{opacity:1;transform:none}.elementor-editor-active .tm42-reveal,.elementor-editor-preview .tm42-reveal{opacity:1!important;transform:none!important}

/* Elementor editor quality-of-life: semantic sections remain visible and selectable. */
.elementor-editor-active .tm42-node{outline-offset:-1px}.elementor-editor-active .tm42-node:hover{outline:1px dashed rgba(206,37,101,.22)}.elementor-editor-active .tm42-hero{min-height:720px}.elementor-editor-active .tm42-header{position:relative!important;top:auto}.elementor-editor-active .tm42-photo-frame{min-height:240px}

@media(max-width:980px){
  .tm42-header .tm42-header-right{display:none}.tm42-hero{min-height:0}.tm42-hero>.e-con{width:100%!important}.tm42-hero-image{min-height:62vh!important}.tm42-section-head,.section-head,.split,.page-hero .grid,.contact-grid{flex-direction:column!important}.section-head>.e-con,.split>.e-con,.page-hero .grid>.e-con,.contact-grid>.e-con{width:100%!important}.cards>.e-con,.service-grid>.e-con,.journal-grid>.e-con{width:calc(50% - 8px)!important}.steps>.e-con{width:50%!important}.steps>.e-con:nth-child(2){border-right:0}.tm42-gallery-strip>.elementor-widget-image img{height:380px!important}.tm42-gallery-strip>.elementor-widget-image:nth-child(2) img{height:340px!important}.tm42-footer .tm42-footer-grid>.e-con{flex-basis:calc(50% - 23px)}
}
@media(max-width:640px){
  .tm42-container{width:min(100% - 28px,1180px)!important}.tm42-header-inner{height:72px}.tm42-hero-image{min-height:70vh!important}.stats>.e-con{width:50%!important}.tm42-stat{padding:22px 10px!important}.section{padding-top:75px!important;padding-bottom:75px!important}.cards>.e-con,.service-grid>.e-con,.journal-grid>.e-con,.steps>.e-con{width:100%!important}.steps>.e-con{border-right:0;border-bottom:1px solid var(--tm-line)}.checklist ul{grid-template-columns:1fr}.tm42-gallery-strip{flex-wrap:wrap!important}.tm42-gallery-strip>.elementor-widget-image{width:calc(50% - 6px)!important}.tm42-gallery-strip>.elementor-widget-image img{height:340px!important}.tm42-gallery-strip>.elementor-widget-image:nth-child(2){margin-top:40px}.tm42-gallery-strip>.elementor-widget-image:nth-child(2) img{height:300px!important}.tm42-gallery-strip>.elementor-widget-image:nth-child(3){display:none}.tm42-footer .tm42-footer-grid{flex-direction:column!important}.tm42-footer .tm42-footer-grid>.e-con{width:100%!important}.tm42-footer-bottom{flex-direction:column!important;gap:10px!important}.tm42-masonry{columns:2 140px}
}

/* Mobile menu hook compatible with original V1 app.js. */
.tm42-header-inner{position:relative}.tm42-header .burger{display:none;width:auto!important;margin-left:auto}.tm42-header .burger .elementor-button{padding:7px;background:transparent;color:var(--tm-ink);border:0;font-size:1.5rem}.tm42-header .menu.open{display:flex!important}
@media(max-width:980px){.tm42-header .burger{display:block!important}.tm42-header .tm42-header-right.menu.open{position:absolute;display:flex!important;flex-direction:column!important;align-items:flex-start!important;top:86px;left:0;right:0;width:100%!important;padding:26px;background:var(--tm-paper);border-bottom:1px solid var(--tm-line);gap:20px!important}.tm42-header .tm42-header-right.menu.open .tm-native-menu .elementor-shortcode{display:flex;flex-direction:column;align-items:flex-start;gap:20px}.tm42-header .tm42-header-right.menu.open .tm-native-lang .lang{border:0;padding-left:0}}
@media(max-width:640px){.tm42-header .tm42-header-right.menu.open{top:72px}}

/* Width ratios for mixed container/widget rows. Elementor stores container widths directly; these cover rows whose second child is a widget. */
.section-head>:first-child{width:43%!important}.section-head>:last-child{width:57%!important}.page-hero .grid>:first-child{width:63%!important}.page-hero .grid>:last-child{width:37%!important}.tm42-gallery-strip>.elementor-widget-image:nth-child(1){width:40%!important}.tm42-gallery-strip>.elementor-widget-image:nth-child(2){width:27%!important}.tm42-gallery-strip>.elementor-widget-image:nth-child(3){width:33%!important}
@media(max-width:980px){.section-head>:first-child,.section-head>:last-child,.page-hero .grid>:first-child,.page-hero .grid>:last-child{width:100%!important}}
@media(max-width:640px){.tm42-gallery-strip>.elementor-widget-image:nth-child(1),.tm42-gallery-strip>.elementor-widget-image:nth-child(2){width:calc(50% - 6px)!important}.tm42-gallery-strip>.elementor-widget-image:nth-child(3){display:none!important}}
