.tm-property-search {
  display: grid;
  grid-template-columns: 1.35fr repeat(3, 1fr);
  gap: 10px;
  padding: 18px;
  border: 1px solid #dbe3ee;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 18px 46px rgba(7,32,74,.16);
}
.tm-property-search input, .tm-property-search select, .tm-valuation input, .tm-valuation select, .tm-valuation textarea, .tm-recruitment input, .tm-recruitment select, .tm-recruitment textarea {
  width: 100%; min-height: 50px; padding: 11px 14px; border: 1px solid #cbd5e1; border-radius: 10px; background: #fff; color: #162033; font: inherit;
}
.tm-property-search button, .tm-form-submit {
  min-height: 50px; padding: 12px 22px; border: 0; border-radius: 10px; background: #dc1c2e; color: #fff; font: inherit; font-weight: 800; cursor: pointer;
}
.tm-property-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; margin-top: 34px; }
.tm-property-card { overflow: hidden; border: 1px solid #dbe3ee; border-radius: 18px; background: #fff; box-shadow: 0 10px 30px rgba(7,32,74,.07); transition: transform .2s ease, box-shadow .2s ease; }
.tm-property-card:hover { transform: translateY(-5px); box-shadow: 0 20px 44px rgba(7,32,74,.13); }
.tm-property-card__image { position: relative; display: block; aspect-ratio: 3/2; overflow: hidden; background: #e8eef7; }
.tm-property-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.tm-property-card:hover .tm-property-card__image img { transform: scale(1.035); }
.tm-property-card__placeholder { display: grid; place-items: center; height: 100%; color: #8fa4c3; font-size: 4rem; }
.tm-property-card__badge { position: absolute; top: 14px; left: 14px; padding: 6px 10px; border-radius: 999px; background: #003da5; color: #fff; font-size: .72rem; font-weight: 850; text-transform: uppercase; }
.tm-property-card__tour { position:absolute; z-index:2; top:14px; right:14px; padding:7px 10px; border-radius:999px; background:rgba(220,28,46,.94); color:#fff; font-size:.7rem; font-weight:850; text-transform:uppercase; box-shadow:0 5px 15px rgba(0,0,0,.18); }
.tm-ape-badge { --tm-ape-color:#667085; display:inline-flex; align-items:center; gap:7px; min-width:86px; min-height:42px; padding:7px 18px 7px 11px; color:#fff; background:var(--tm-ape-color); box-shadow:0 5px 16px rgba(15,23,42,.22); clip-path:polygon(0 0,calc(100% - 13px) 0,100% 50%,calc(100% - 13px) 100%,0 100%); line-height:1; }
.tm-ape-badge__label { font-size:.62rem; font-weight:850; letter-spacing:.08em; }
.tm-ape-badge__class { font-size:1.18rem; font-weight:950; }
.tm-ape-badge--a { --tm-ape-color:#008f4c; }
.tm-ape-badge--b { --tm-ape-color:#45a62a; }
.tm-ape-badge--c { --tm-ape-color:#9abf18; }
.tm-ape-badge--d { --tm-ape-color:#d3ad00; }
.tm-ape-badge--e { --tm-ape-color:#e57a00; }
.tm-ape-badge--f { --tm-ape-color:#dc4d1b; }
.tm-ape-badge--g { --tm-ape-color:#c8242f; }
.tm-ape-badge--unknown { --tm-ape-color:#667085; }
.tm-ape-badge--card { position:absolute; z-index:2; right:12px; bottom:12px; }
.tm-property-card__body { padding: 22px; }
.tm-property-card__body h3 { margin: 5px 0 14px; font-size: 1.2rem; }
.tm-property-card__body h3 a { color: #162033; }
.tm-property-card__meta { color: #64748b; font-size: .82rem; font-weight: 700; }
.tm-property-card__facts { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 17px; color: #64748b; font-size: .84rem; }
.tm-property-card__facts span + span { padding-left: 12px; border-left: 1px solid #dbe3ee; }
.tm-property-card__price { padding-top: 15px; border-top: 1px solid #e2e8f0; color: #003da5; font-size: 1.2rem; font-weight: 900; }
.tm-property-empty { margin-top: 28px; padding: 30px; border: 1px dashed #a9b8cc; border-radius: 16px; background: #fff; color: #64748b; text-align: center; }
.tm-valuation { max-width: 960px; margin-top: 34px; padding: clamp(24px,4vw,42px); border: 1px solid #dbe3ee; border-radius: 18px; background: #f7f9fc; }
.tm-recruitment { max-width: 1040px; margin-top: 34px; }
.tm-recruitment__section { margin-bottom: 22px; padding: clamp(22px,4vw,38px); border: 1px solid #dbe3ee; border-radius: 18px; background: #f7f9fc; }
.tm-recruitment__section h3 { margin-bottom: 22px; color: #003da5; }
.tm-form-choice { display: flex; flex-wrap: wrap; gap: 10px 18px; margin-top: 9px; }
.tm-form-choice label { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; }
.tm-form-choice input { width: 18px; min-height: 18px; margin: 0; }
.tm-form-help { display: block; margin-top: 6px; color: #64748b; font-size: .78rem; font-weight: 500; }
.tm-team-gallery { max-width: 860px; margin-top: 34px; }
.tm-form-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 18px; }
.tm-form-grid label { color: #162033; font-size: .9rem; font-weight: 750; }
.tm-form-grid input, .tm-form-grid select, .tm-form-grid textarea { margin-top: 6px; font-weight: 400; }
.tm-form-grid__wide { grid-column: 1/-1; }
.tm-consent { display: flex; align-items: flex-start; gap: 11px; font-size: .86rem !important; font-weight: 500 !important; line-height: 1.5; }
.tm-consent input { flex: 0 0 18px; width: 18px; min-height: 18px; margin: 3px 0 0; }
.tm-consent span { display: block; min-width: 0; }
.tm-consent a { display: inline; color: #003da5; font-weight: 750; text-decoration: underline; text-underline-offset: 2px; }
.tm-form-submit { margin-top: 22px; }
.tm-honeypot { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; }
.tm-form-message { margin-bottom: 22px; padding: 16px; border-radius: 10px; }
.tm-form-message--success { background: #e8f8ef; color: #126338; }
.tm-form-message--error { background: #fff0f1; color: #9c1421; }
.tm-property-detail { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(300px,.65fr); gap: 40px; }
.tm-property-gallery { margin-bottom: 46px; outline: 0; }
.tm-property-gallery__stage { position: relative; overflow: hidden; aspect-ratio: 16/10; border-radius: 18px; background: #e8eef7; box-shadow: 0 14px 38px rgba(7,32,74,.12); }
.tm-property-gallery__stage > img { width: 100%; height: 100%; object-fit: cover; transition: opacity .18s ease; }
.tm-property-gallery__arrow { position: absolute; top: 50%; display: grid; place-items: center; width: 48px; height: 48px; padding: 0; border: 1px solid rgba(255,255,255,.7); border-radius: 50%; color: #fff; background: rgba(3,28,72,.72); font-size: 2rem; line-height: 1; cursor: pointer; transform: translateY(-50%); }
.tm-property-gallery__arrow--prev { left: 16px; }
.tm-property-gallery__arrow--next { right: 16px; }
.tm-property-gallery__arrow:hover, .tm-property-gallery__arrow:focus-visible { background: #003da5; outline: 3px solid #fff; outline-offset: 2px; }
.tm-property-gallery__count { position: absolute; right: 16px; bottom: 14px; padding: 6px 10px; border-radius: 999px; color: #fff; background: rgba(3,28,72,.78); font-size: .78rem; font-weight: 800; }
.tm-property-gallery__thumbs { display: flex; gap: 9px; overflow-x: auto; padding: 12px 2px 5px; scrollbar-width: thin; }
.tm-property-gallery__thumbs button { flex: 0 0 104px; overflow: hidden; aspect-ratio: 4/3; padding: 0; border: 3px solid transparent; border-radius: 10px; background: #e8eef7; cursor: pointer; }
.tm-property-gallery__thumbs button[aria-pressed="true"] { border-color: #dc1c2e; }
.tm-property-gallery__thumbs button:focus-visible { outline: 3px solid #003da5; outline-offset: 2px; }
.tm-property-gallery__thumbs img { width: 100%; height: 100%; object-fit: cover; }
.tm-ape-panel { display:flex; align-items:center; gap:14px; margin-bottom:18px; padding:16px; border:1px solid #dbe3ee; border-radius:14px; background:#f8fafc; }
.tm-ape-panel .tm-ape-badge { flex:0 0 auto; }
.tm-ape-panel__copy { display:grid; gap:2px; min-width:0; }
.tm-ape-panel__copy strong { color:#162033; font-size:.9rem; line-height:1.25; }
.tm-ape-panel__copy span { color:#475569; font-size:.78rem; line-height:1.35; }
.tm-property-facts { display: grid; grid-template-columns: repeat(2,1fr); gap: 1px; overflow: hidden; border: 1px solid #dbe3ee; border-radius: 14px; background: #dbe3ee; }
.tm-property-facts div { padding: 16px; background: #fff; }
.tm-property-facts dt { color: #64748b; font-size: .75rem; text-transform: uppercase; }
.tm-property-facts dd { margin: 3px 0 0; font-weight: 850; }
.tm-virtual-tour { margin:0 0 42px; padding:clamp(20px,3vw,30px); border:1px solid #dbe3ee; border-radius:18px; background:#f7f9fc; }
.tm-virtual-tour__heading { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:20px; }
.tm-virtual-tour__heading h2 { margin:4px 0 0; }
.tm-virtual-tour__viewer { position:relative; overflow:hidden; aspect-ratio:16/9; border-radius:14px; background:#071f4a; }
.tm-virtual-tour__viewer iframe { width:100%; height:100%; border:0; }
.tm-mortgage { max-width:1120px; margin:34px auto 0; }
.tm-mortgage form { display:grid; gap:24px; }
.tm-mortgage__layout { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr); gap:24px; }
.tm-mortgage__form,.tm-mortgage__contact,.tm-mortgage__result { padding:clamp(22px,4vw,38px); border:1px solid #dbe3ee; border-radius:18px; background:#f7f9fc; }
.tm-mortgage__form h3,.tm-mortgage__contact h3 { margin-top:0; color:#003da5; }
.tm-mortgage .tm-form-grid { align-items:stretch; }
.tm-mortgage .tm-form-grid label:not(.tm-consent) { display:flex; flex-direction:column; justify-content:flex-end; align-self:stretch; min-width:0; margin:0; color:#162033; font-size:.9rem; font-weight:750; line-height:1.35; }
.tm-mortgage .tm-form-grid__wide { grid-column:1/-1; }
.tm-mortgage .tm-form-grid input:not([type="checkbox"]),.tm-mortgage .tm-form-grid select,.tm-mortgage .tm-form-grid textarea { display:block; width:100% !important; min-width:0; min-height:50px; margin:7px 0 0; padding:11px 14px; border:1px solid #cbd5e1; border-radius:10px; background:#fff; color:#162033; font:inherit; font-weight:400; line-height:1.35; box-sizing:border-box; }
.tm-mortgage .tm-form-grid select { height:50px; }
.tm-mortgage .tm-form-grid textarea { min-height:112px; height:auto; resize:vertical; }
.tm-mortgage .tm-consent { align-self:start; margin-top:2px; }
.tm-mortgage__result { align-self:stretch; color:#fff; background:linear-gradient(145deg,#003da5,#071f4a); }
.tm-mortgage__result .tm-eyebrow { color:#fff; }
.tm-mortgage__payment { display:block; margin:18px 0 1px; font-size:clamp(2.2rem,5vw,3.7rem); line-height:1; }
.tm-mortgage__result dl { display:grid; gap:0; margin-top:28px; }
.tm-mortgage__result dl div { display:flex; justify-content:space-between; gap:15px; padding:12px 0; border-top:1px solid rgba(255,255,255,.2); }
.tm-mortgage__result dt { color:rgba(255,255,255,.76); }
.tm-mortgage__result dd { margin:0; font-weight:800; text-align:right; }
.tm-mortgage__disclaimer { color:#64748b; font-size:.78rem; line-height:1.55; }
.tm-property-inquiry { margin-top:24px; padding:22px; border:1px solid #dbe3ee; border-radius:18px; background:#f7f9fc; }
.tm-property-inquiry h3 { margin-top:0; color:#003da5; }
.tm-property-inquiry > p { color:#64748b; font-size:.88rem; line-height:1.5; }
.tm-property-inquiry__reference { display:flex; justify-content:space-between; gap:12px; margin:16px 0; padding:11px 13px; border-radius:10px; background:#e8eef7; font-size:.82rem; }
.tm-property-inquiry form { display:grid; gap:13px; }
.tm-property-inquiry form > label:not(.tm-honeypot):not(.tm-consent) { color:#162033; font-size:.82rem; font-weight:750; }
.tm-property-inquiry input:not([type="checkbox"]),.tm-property-inquiry textarea { width:100%; margin-top:5px; padding:10px 12px; border:1px solid #cbd5e1; border-radius:9px; background:#fff; color:#162033; font:inherit; font-weight:400; }
.tm-property-inquiry .tm-form-submit { width:100%; margin-top:2px; }
.tm-property-inquiry .tm-form-message { margin-bottom:14px; font-size:.84rem; }
.tm-mortgage-link { display:block; margin-top:12px; text-align:center; }
@media(max-width:1000px){.tm-property-search{grid-template-columns:repeat(2,1fr)}.tm-property-search button{grid-column:1/-1}.tm-property-grid{grid-template-columns:repeat(2,1fr)}.tm-mortgage__layout{grid-template-columns:1fr}}
@media(max-width:680px){.tm-property-search,.tm-property-grid,.tm-form-grid,.tm-property-detail{grid-template-columns:1fr}.tm-form-grid__wide{grid-column:auto}.tm-property-facts{grid-template-columns:1fr 1fr}.tm-property-gallery__stage{aspect-ratio:4/3}.tm-property-gallery__arrow{width:42px;height:42px}.tm-property-gallery__thumbs button{flex-basis:82px}.tm-ape-badge--card{right:9px;bottom:9px}.tm-ape-panel{align-items:flex-start}.tm-virtual-tour__heading{align-items:flex-start;flex-direction:column}.tm-virtual-tour__viewer{aspect-ratio:4/3}.tm-property-card__tour{top:auto;right:9px;bottom:62px}}
