/* The Design Studio — core design system (tokens, fonts, base, buttons, motion states).
   Shared by the theme and the TDS Widgets plugin; whichever loads first is used. */
/* 1. Tokens & fonts ------------------------------------------------------- */
@font-face { font-family: "TDS Head"; src: url("../fonts/urbanist.woff2") format("woff2"); font-weight: 100 900; font-display: swap; }
@font-face { font-family: "TDS Body"; src: url("../fonts/dm-sans.woff2") format("woff2"); font-weight: 100 1000; font-display: swap; }

:root {
	--tds-text: #120805;
	--tds-bg: #FDF9F5;
	--tds-bg-soft: #F3EEEA;
	--tds-primary: #CE915B;
	--tds-primary-dark: #B57843;
	--tds-secondary: #EAF8DD;
	--tds-sage: #D6EABD;
	--tds-peach: #F7E0D0;
	--tds-clay: #EEC4A9;
	--tds-muted: #6E625A;
	--tds-line: rgba(18, 8, 5, .12);
	--tds-white: #fff;

	--tds-font-head: "TDS Head", "Beausite Slick", ui-sans-serif, system-ui, sans-serif;
	--tds-font-body: "TDS Body", "Beausite Classic", ui-sans-serif, system-ui, sans-serif;

	--tds-container: 1320px;
	--tds-gutter: clamp(20px, 4vw, 48px);
	--tds-section: clamp(80px, 11vw, 160px);
	--tds-radius: 18px;
	--tds-radius-sm: 10px;
	--tds-ease: cubic-bezier(.22, 1, .36, 1);
	--tds-header-h: 116px;
}

/* 2. Base ----------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link:focus { clip: auto; width: auto; height: auto; z-index: 1000; top: 10px; left: 10px; padding: 12px 18px; background: #fff; color: var(--tds-text); }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }

body {
	background: var(--tds-bg);
	color: var(--tds-text);
	font-family: var(--tds-font-body);
	font-size: 17px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}
h1, h2, h3, h4, h5, h6 { text-wrap: balance; font-family: var(--tds-font-head); font-weight: 600; letter-spacing: -.025em; line-height: 1.05; color: inherit; margin: 0 0 .5em; }
p { margin: 0 0 1em; }
a { color: inherit; text-decoration: none; transition: color .3s var(--tds-ease); }
img { max-width: 100%; height: auto; display: block; }
::selection { background: var(--tds-primary); color: #fff; }
:focus-visible { outline: 2px solid var(--tds-primary); outline-offset: 3px; }

.tds-container { width: 100%; max-width: calc(var(--tds-container) + var(--tds-gutter) * 2); margin-inline: auto; padding-inline: var(--tds-gutter); }
.tds-section { padding-block: var(--tds-section); }
.tds-center { text-align: center; margin-top: 56px; }
.tds-hide-sm { }
.tds-empty { padding: 40px; border: 1px dashed var(--tds-line); border-radius: var(--tds-radius); text-align: center; color: var(--tds-muted); }

.tds-display { font-size: clamp(2.6rem, 6.4vw, 6.2rem); line-height: .98; letter-spacing: -.04em; }
.tds-h2 { font-size: clamp(2.1rem, 4.4vw, 4rem); line-height: 1.02; letter-spacing: -.035em; }
.tds-title em, .tds-display em, .tds-h2 em, .tds-hero__title em { font-style: normal; color: var(--tds-primary); }
.tds-lead { font-size: clamp(1.05rem, 1.4vw, 1.25rem); color: var(--tds-muted); max-width: 56ch; }
.tds-eyebrow { display: inline-flex; align-items: center; gap: 12px; font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--tds-primary); margin-bottom: 22px; }
.tds-eyebrow span { width: 28px; height: 1px; background: currentColor; }

.tds-icon { width: 1.1em; height: 1.1em; flex: none; }

/* Elementor: our widgets handle their own spacing */
.elementor-widget-tds-hero, .elementor-widget-tds-cta, .elementor-widget-tds-marquee, .elementor-widget-tds-page-hero { width: 100%; }

/* 3. Buttons & UI --------------------------------------------------------- */
.tds-btn {
	--bg: var(--tds-text); --fg: #fff;
	position: relative; display: inline-flex; align-items: center; gap: 10px;
	padding: 16px 26px; border-radius: 12px; border: 1px solid transparent;
	background: var(--bg); color: var(--fg);
	font: 600 15px/1 var(--tds-font-body); letter-spacing: .01em;
	overflow: hidden; isolation: isolate; cursor: pointer;
	transition: color .45s var(--tds-ease), border-color .45s var(--tds-ease), transform .45s var(--tds-ease);
}
.tds-btn::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--tds-text); transform: translateY(101%); border-radius: inherit; transition: transform .55s var(--tds-ease); }
.tds-btn:hover::before { transform: translateY(0); }
.tds-btn:hover { color: #fff; }
.tds-btn .tds-icon { transition: transform .45s var(--tds-ease); }
.tds-btn:hover .tds-icon { transform: translateX(4px); }
.tds-btn--primary { --bg: var(--tds-primary); }
.tds-btn--outline { --bg: transparent; --fg: var(--tds-text); border-color: var(--tds-text); }
.tds-btn--glass { --bg: rgba(255,255,255,.12); --fg: #fff; border-color: rgba(255,255,255,.35); backdrop-filter: blur(10px); }
.tds-btn--glass::before { background: #fff; }
.tds-btn--glass:hover { color: var(--tds-text); }
.tds-btn--sm { padding: 13px 20px; font-size: 14px; }
.tds-btn--phone { padding: 8px 22px 8px 8px; font-size: 17px; margin-top: 34px; }
.tds-btn--phone i { display: grid; place-items: center; width: 40px; height: 40px; background: #fff; color: var(--tds-text); border-radius: 8px; }
.tds-btn--phone i .tds-icon { transform: none !important; }
.tds-btn-row { display: flex; flex-wrap: wrap; gap: 12px; }

.tds-link { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; }
.tds-link .tds-icon { transition: transform .4s var(--tds-ease); }
a:hover .tds-link .tds-icon, .tds-link:hover .tds-icon { transform: translateX(5px); }

.tds-socials { display: flex; gap: 10px; }
.tds-socials a { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--tds-line); transition: background .3s, color .3s, border-color .3s; }
.tds-socials a:hover { background: var(--tds-primary); border-color: var(--tds-primary); color: #fff; }
.tds-socials .tds-icon { width: 16px; height: 16px; }

/* Inner page header */
.tds-page-hero { padding-top: calc(var(--tds-header-h) + clamp(40px, 7vw, 100px)); }
.tds-page-hero__head { padding-bottom: clamp(40px, 5vw, 70px); }
.tds-page-hero__head .tds-display { max-width: 14ch; }
.tds-page-hero__media { margin: 0; aspect-ratio: 16 / 7.5; overflow: hidden; border-radius: var(--tds-radius); }
.tds-page-hero__media img { width: 100%; height: 118%; object-fit: cover; }

.tds-w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .1em; margin-bottom: -.1em; }
.tds-w > span { display: inline-block; transform-origin: 0 100%; }
@media (prefers-reduced-motion: no-preference) {
	.tds-motion body:not(.elementor-editor-active) [data-tds-fade],
	.tds-motion body:not(.elementor-editor-active) [class*="tds-anim-fade"],
	.tds-motion body:not(.elementor-editor-active) .tds-anim-scale { opacity: 0; }
	.tds-motion body:not(.elementor-editor-active) [data-tds-split],
	.tds-motion body:not(.elementor-editor-active) .tds-anim-split .elementor-heading-title { visibility: hidden; }
	.tds-motion body:not(.elementor-editor-active) [data-tds-clip],
	.tds-motion body:not(.elementor-editor-active) .tds-anim-clip { clip-path: inset(100% 0 0 0); }
	.tds-motion body:not(.elementor-editor-active) [data-tds-stagger] > *,
	.tds-motion body:not(.elementor-editor-active) .tds-anim-stagger > .e-con-inner > *,
	.tds-motion body:not(.elementor-editor-active) .tds-anim-stagger.e-con-full > * { opacity: 0; }
}
@media (max-width: 900px) {
	:root { --tds-header-h: 100px; }
}
@media (max-width: 600px) {
	body { font-size: 16px; }
	.tds-hide-sm { display: none !important; }
	.tds-page-hero__media { aspect-ratio: 4/3.6; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}