/* Visual-only theme. Add tsm-theme to the existing site wrapper. */
@font-face{font-family:TSMMontserrat;src:url("./fonts/montserrat-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:TSMMontserrat;src:url("./fonts/montserrat-latin-500-normal.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:TSMMontserrat;src:url("./fonts/montserrat-latin-600-normal.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:TSMMontserrat;src:url("./fonts/montserrat-latin-700-normal.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:TSMMontserrat;src:url("./fonts/montserrat-latin-800-normal.woff2") format("woff2");font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:TSMMontserrat;src:url("./fonts/montserrat-latin-900-normal.woff2") format("woff2");font-weight:900;font-style:normal;font-display:swap}

.tsm-theme {
 --tsm-navy:#031521; --tsm-panel:#092332; --tsm-cyan:#00d6e8;
 --tsm-blue:#008fff; --tsm-white:#f5f9fc; --tsm-muted:#a8becb; --tsm-line:#23404f;
 --tsm-gradient:linear-gradient(100deg,var(--tsm-blue),var(--tsm-cyan));
 font-family:TSMMontserrat,Arial,sans-serif; color:var(--tsm-white); background-color:var(--tsm-navy);
}
.tsm-theme :where(button,input,select,textarea){font-family:inherit}
.tsm-theme :where(h1,h2,h3){font-family:TSMMontserrat,Arial,sans-serif;color:var(--tsm-white);font-weight:700;letter-spacing:-.035em}
.tsm-theme .tsm-hero-title{font-weight:900;letter-spacing:-.05em;line-height:.98}
.tsm-theme .tsm-accent{color:var(--tsm-cyan)}
.tsm-theme .tsm-muted{color:var(--tsm-muted)}
.tsm-theme .tsm-eyebrow{color:var(--tsm-cyan);font-weight:700;letter-spacing:.17em;text-transform:uppercase}
.tsm-theme .tsm-surface{background-color:var(--tsm-navy);color:var(--tsm-white)}
.tsm-theme .tsm-surface :where(h1,h2,h3){color:var(--tsm-white)}
.tsm-theme .tsm-surface .tsm-muted, .tsm-theme .tsm-surface .bodyCopy, .tsm-theme .bodyCopy {color:var(--tsm-muted)}
.tsm-theme .tsm-panel{background-color:var(--tsm-panel);color:var(--tsm-white);border-color:var(--tsm-line)}
.tsm-theme .tsm-primary{background:var(--tsm-gradient);color:var(--tsm-navy);border-color:transparent;font-weight:700}
.tsm-theme .tsm-secondary{background:transparent;color:var(--tsm-white);border-color:var(--tsm-line);font-weight:600}
.tsm-theme .tsm-primary:hover{filter:brightness(1.07)}
.tsm-theme .tsm-field{background-color:var(--tsm-panel);color:var(--tsm-white);border-color:var(--tsm-line);accent-color:var(--tsm-cyan);color-scheme:dark}
.tsm-theme .tsm-field::placeholder{color:var(--tsm-muted);opacity:1}
.tsm-theme .tsm-field option{background:var(--tsm-panel);color:var(--tsm-white)}
.tsm-theme .tsm-tab{background-color:transparent;color:var(--tsm-muted);border-color:var(--tsm-line);font-weight:700}
/* Map these to EXISTING active-state logic; do not add new tab behaviour. */
.tsm-theme .tsm-tab:is(.active,[aria-selected="true"],[data-state="active"]){color:var(--tsm-cyan);border-bottom-color:var(--tsm-cyan)}
.tsm-theme .tsm-rule{border-color:var(--tsm-line)}
.tsm-theme .tsm-icon{color:var(--tsm-cyan)}
.tsm-theme .tsm-link{color:var(--tsm-cyan)}
.tsm-theme :where(a,button,input,select,textarea):focus-visible{outline:3px solid var(--tsm-cyan);outline-offset:3px}
/* Explicit opt-in only: preserve readable light pages where needed. */
.tsm-theme .tsm-light{background-color:var(--tsm-white);color:var(--tsm-navy)}
.tsm-theme .tsm-light :where(h1,h2,h3){color:var(--tsm-navy)}
.tsm-theme .tsm-light .tsm-muted, .tsm-theme .tsm-light .bodyCopy{color:#405969}
/* Decorative BACKGROUNDS only. Never apply these to listing/gallery photos. */
.tsm-theme .tsm-bg-residential{
 background-image:linear-gradient(90deg,#031521f5 0%,#031521c9 35%,#03152133 100%),linear-gradient(0deg,#031521 0%,transparent 65%),url('./residential.jpg');
 background-size:cover;background-position:center 48%;background-repeat:no-repeat;
}
.tsm-theme .tsm-bg-commercial{
 background-image:linear-gradient(90deg,#031521f0,#03152155),url('./commercial.jpg');
 background-size:cover;background-position:center;background-repeat:no-repeat;
}
.tsm-theme .tsm-bg-villa{
 background-image:linear-gradient(90deg,#031521ed,#03152144),url('./villa.jpg');
 background-size:cover;background-position:center;background-repeat:no-repeat;
}
/* Fallback logo construction used in the supplied screenshot.
 Prefer an existing approved full logo SVG/PNG; never replace it unnecessarily. */
.tsm-theme .tsm-logo{display:inline-flex;align-items:center;gap:13px;color:var(--tsm-white);text-decoration:none}
.tsm-theme .tsm-logo-symbol{display:block;flex-shrink:0;width:53px;height:47px;background:url('./brand-reference.png') no-repeat -71px -12px;background-size:520px 520px}
.tsm-theme .tsm-logo-word{font-family:TSMMontserrat,Arial,sans-serif;font-size:21px;font-weight:400;letter-spacing:.19em;line-height:1.3;white-space:nowrap}
.tsm-theme .tsm-logo-word small{display:block;font-size:10px;font-weight:400;letter-spacing:.53em}
.tsm-theme .tsm-logo-image{width:auto;max-width:100%;height:48px;object-fit:contain}
/* No grid, display, positioning, spacing or responsive layout changes to existing components. */
