/*
Theme Name: TerrenoPlus 2
Theme URI: https://terrenoplus.es/
Author: Ecoality Homes S.L.
Author URI: https://ecoality.info/
Description: Tema comercial a medida para TerrenoPlus: viviendas planteadas sobre terrenos urbanos en exclusiva.
Version: 2.2.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: terrenoplus
*/

:root {
  --tp-ink: #102f27;
  --tp-ink-2: #23463d;
  --tp-green: #0e4b38;
  --tp-green-dark: #083528;
  --tp-green-soft: #dfe9e3;
  --tp-yellow: #f5c64f;
  --tp-yellow-2: #ffdc76;
  --tp-coral: #c65d3f;
  --tp-cream: #f7f4ee;
  --tp-paper: #fffdf9;
  --tp-white: #ffffff;
  --tp-muted: #62716c;
  --tp-line: rgba(16, 47, 39, 0.14);
  --tp-shadow: 0 18px 55px rgba(13, 44, 35, 0.12);
  --tp-shadow-sm: 0 8px 28px rgba(13, 44, 35, 0.09);
  --tp-radius: 22px;
  --tp-radius-sm: 14px;
  --tp-wrap: min(1180px, calc(100vw - 48px));
  --tp-font: "Avenir Next", "Century Gothic", "Trebuchet MS", sans-serif;
}

/* Final 2.2 interaction and process overrides. */
.tp22-how{background:var(--tp-cream)}
.tp22-how .tp-step-grid article{position:relative;padding:38px 28px;text-align:center;border-right:1px solid var(--tp-line)}
.tp22-how .tp-step-grid article:last-child{border-right:0}.tp22-how .tp-step-grid b{position:absolute;top:18px;left:18px;font:700 1.5rem Georgia,serif}.tp22-how .tp-step-grid span{display:grid;place-items:center;width:92px;height:92px;margin:0 auto 24px;border:1px solid var(--tp-line);border-radius:50%;background:rgba(255,255,255,.45)}.tp22-how .tp-step-grid svg{width:44px;height:44px}.tp22-how .tp-step-grid h3{font:400 1.4rem Georgia,serif}
@media (hover:hover) and (pointer:fine){.tp-property-card:hover{transform:translateY(-10px);border-color:rgba(14,75,56,.28);box-shadow:0 26px 52px rgba(12,48,37,.16)}.tp-property-card:hover .tp-property-card__media img{transform:scale(1.075);filter:saturate(1.05)}.tp-property-card:hover .tp-text-link{transform:translateX(6px)}}
@media(max-width:900px){.tp22-how .tp-step-grid article{border-right:0;border-bottom:1px solid var(--tp-line)}}

/* TerrenoPlus 2.2 */
.tp-center{margin-top:34px;text-align:center}.tp22-history{background:#f5f7f3}.tp22-study{background:#fbf6e9}
.tp22-hero{background-position:center}.tp22-hero .tp21-hero__intro{background:linear-gradient(90deg,rgba(255,253,249,.97),rgba(255,253,249,.83))}
.tp-property-card{will-change:transform;transition:transform .28s cubic-bezier(.2,.7,.2,1),box-shadow .28s ease,border-color .28s ease}.tp-property-card:hover{transform:translateY(-10px);box-shadow:0 26px 52px rgba(12,48,37,.16);border-color:rgba(14,75,56,.28)}
.tp-property-card__media img{transition:transform .75s cubic-bezier(.15,.75,.2,1),filter .4s ease}.tp-property-card:hover .tp-property-card__media img{transform:scale(1.075);filter:saturate(1.05)}
.tp-property-card .tp-text-link{transition:transform .25s ease}.tp-property-card:hover .tp-text-link{transform:translateX(6px)}
.tp-property-card__badge--vendida{background:rgba(15,56,45,.9);color:#fff}.tp-property-card__badge--en_estudio{background:rgba(245,198,79,.94);color:#183b31}
.tp22-split-banner{display:grid;grid-template-columns:1fr 1fr;min-height:520px}.tp22-split-banner__visual{position:relative;display:flex;align-items:center;justify-content:center;gap:20px;overflow:hidden;background:linear-gradient(135deg,#f6e3a4,#f4c651);color:#0c3a2d}.tp22-split-banner__visual>span{position:relative;z-index:2;padding:14px 24px;border-radius:999px;background:#fffdf7;font-weight:800}.tp22-split-banner__visual>b{position:relative;z-index:2;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#0e4b38;color:#fff;font-size:1.25rem}.tp22-plot-lines{position:absolute;width:48%;aspect-ratio:1.5;border:2px solid rgba(14,75,56,.45);transform:perspective(500px) rotateX(58deg) rotateZ(-8deg)}.tp22-plot-lines:before,.tp22-plot-lines:after{content:"";position:absolute;inset:20%;border:1px solid rgba(14,75,56,.3)}.tp22-plot-lines:after{inset:40% 0;border-width:1px 0}
.tp22-split-banner__copy{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:clamp(42px,7vw,110px);background:#0e4635;color:#fff}.tp22-split-banner__copy .tp-eyebrow{color:#f5c64f}.tp22-split-banner__copy h2{max-width:720px;margin:.35em 0;font-size:clamp(2.3rem,4vw,4.4rem);line-height:1.02}.tp22-split-banner__copy p{max-width:680px;color:#e3eee9;font-size:1.05rem}.tp-button--orange{background:#c85d3e;color:#fff}.tp-button--orange:hover{background:#a94b32}
.tp-catalog-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:0 0 38px}.tp-catalog-filters a{padding:11px 18px;border:1px solid var(--tp-line);border-radius:999px;background:#fff;color:var(--tp-green);font-weight:750}.tp-catalog-filters a.is-active,.tp-catalog-filters a:hover{background:var(--tp-green);color:#fff}
.tp-process-page{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--tp-line);border-left:1px solid var(--tp-line)}.tp-process-page article{min-height:240px;padding:clamp(28px,4vw,52px);border-right:1px solid var(--tp-line);border-bottom:1px solid var(--tp-line);background:#fff}.tp-process-page article>span{color:var(--tp-coral);font-weight:800;letter-spacing:.08em}.tp-process-page h2{margin:22px 0 10px;font:400 clamp(1.8rem,3vw,3.1rem)/1.05 Georgia,serif}.tp-process-page p{max-width:620px;color:var(--tp-muted)}
@media(max-width:900px){.tp22-split-banner{grid-template-columns:1fr}.tp22-split-banner__visual{min-height:360px}.tp-process-page{grid-template-columns:1fr}}
@media(max-width:620px){.tp22-split-banner__visual{min-height:300px;gap:8px}.tp22-split-banner__visual>span{padding:11px 15px}.tp22-split-banner__copy{padding:44px 24px}.tp22-split-banner__copy h2{font-size:2.5rem}.tp-property-card:hover{transform:none}.tp-property-card__facts{display:flex}}

/* TerrenoPlus 2.1 — opportunity product homepage */
.tp21-hero{position:relative;min-height:min(760px,82vh);background-image:linear-gradient(90deg,rgba(239,244,247,.78) 0,rgba(239,244,247,.08) 44%,rgba(0,0,0,.03) 100%),var(--tp21-hero);background-size:cover;background-position:center;overflow:hidden}
.tp21-hero__intro{position:absolute;z-index:3;left:max(32px,calc((100vw - 1180px)/2));top:14%;max-width:570px;padding:32px;background:rgba(255,253,249,.88);backdrop-filter:blur(12px);border-radius:20px;box-shadow:var(--tp-shadow-sm)}
.tp21-hero__intro h1{margin:.18em 0;font-size:clamp(2.7rem,5vw,5.25rem);font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:.95}.tp21-hero__intro p{max-width:500px;color:#3c544d}
.tp21-hero__card{position:absolute;z-index:4;right:max(32px,calc((100vw - 1180px)/2));bottom:70px;display:grid;gap:8px;width:min(390px,calc(100vw - 48px));padding:32px;background:#fff;border-radius:20px;box-shadow:0 24px 60px rgba(15,42,33,.2)}
.tp21-hero__card p,.tp21-hero__card small{margin:0}.tp21-hero__card strong{font:400 clamp(2rem,3vw,3.4rem)/1.05 Georgia,serif;margin-bottom:16px}.tp21-place{color:var(--tp-coral);font-size:.85rem}.tp21-hero__blueprint{position:absolute;top:8%;left:4%;width:290px;height:170px;transform:rotate(-8deg);opacity:.6}.tp21-hero__blueprint i{position:absolute;border:2px solid var(--tp-green)}.tp21-hero__blueprint i:nth-child(1){inset:10px}.tp21-hero__blueprint i:nth-child(2){inset:42px 75px}.tp21-hero__blueprint i:nth-child(3){inset:60px 22px 25px 125px}
.tp-process-rail{position:relative;z-index:5;margin:-28px auto 0}.tp-process-rail__item>svg{width:34px;height:34px;color:var(--tp-green)}
.tp21-track-record{padding:52px 0;background:var(--tp-green);color:#fff}.tp21-track-record__inner{display:grid;grid-template-columns:.65fr 1.35fr;gap:90px;align-items:end}.tp21-track-record strong{display:block;font:400 7rem/1 Georgia,serif;color:var(--tp-yellow)}.tp21-track-record h2{margin:0;font:400 2.6rem/1 Georgia,serif}.tp21-track-record p{max-width:700px;margin:0;color:#dfeae6;font-size:1.1rem}
.tp21-system{background:#fbfcfb}.tp21-twin{max-width:1100px;margin:40px auto 90px;border:1px solid #dce6e2;border-radius:22px;background:#fff;box-shadow:0 26px 70px rgba(18,53,43,.11);overflow:hidden}.tp21-twin__bar{display:flex;align-items:center;gap:8px;padding:14px 18px;border-bottom:1px solid #e5ece9;background:#f8faf9;color:#789088;font-size:.78rem}.tp21-twin__bar i{width:10px;height:10px;border-radius:50%;background:#f07875}.tp21-twin__bar i:nth-child(2){background:#f5c04d}.tp21-twin__bar i:nth-child(3){background:#45cd84}.tp21-twin__bar span{margin-left:10px}.tp21-twin__tabs{display:flex;justify-content:center;gap:54px;border-bottom:1px solid #edf2ef}.tp21-twin__tabs button{position:relative;padding:20px 8px;border:0;background:none;color:#91a39d;cursor:pointer}.tp21-twin__tabs button[aria-selected=true]{color:var(--tp-green);font-weight:800}.tp21-twin__tabs button[aria-selected=true]:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--tp-green)}
.tp21-twin__viewport{min-height:380px}.tp21-twin__panel{display:grid;grid-template-columns:1.25fr .75fr;gap:55px;align-items:center;min-height:380px;padding:42px 50px;animation:tpTwinIn .4s ease}.tp21-twin__panel[hidden]{display:none}.tp21-twin__panel[data-tp-twin-panel=viabilidad]{grid-template-columns:180px 1fr 240px}.tp21-twin__panel--product{grid-template-columns:1.2fr .8fr;padding:0}.tp21-twin__panel--product img{width:100%;height:380px;object-fit:cover}.tp21-twin__panel--product>div{padding:38px 45px 38px 0}.tp21-panel-copy h3,.tp21-twin__panel--product h3{font:400 clamp(2rem,4vw,3.7rem)/1 Georgia,serif}.tp21-radar-list{display:grid;gap:10px}.tp21-radar-list article{display:grid;gap:5px;padding:20px;border:1px solid #dce9e4;border-radius:12px}.tp21-radar-list small{color:#65a08c;letter-spacing:.1em}.tp21-radar-list span{font-size:.8rem;color:#788d86}.tp21-twin__progress{display:flex;justify-content:center;gap:9px;padding:0 0 20px}.tp21-twin__progress i{width:34px;height:3px;background:#dce7e3}.tp21-twin__progress i.is-active{background:var(--tp-green)}
@keyframes tpTwinIn{from{opacity:.15;transform:translateX(12px)}to{opacity:1;transform:none}}
.tp21-layers-heading{margin-top:20px}.tp21-layer-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--tp-line);border-left:1px solid var(--tp-line)}.tp21-layer-grid article{min-height:190px;padding:28px;border-right:1px solid var(--tp-line);border-bottom:1px solid var(--tp-line);background:#fff}.tp21-layer-grid small{color:var(--tp-coral);font-weight:800}.tp21-layer-grid h3{margin:22px 0 8px;font:400 1.55rem Georgia,serif}.tp21-layer-grid p{margin:0;color:#61736d;font-size:.9rem}
.tp21-how{background:var(--tp-cream)}.tp21-how .tp-step-grid article{position:relative;padding:38px 28px;text-align:center;border-right:1px solid var(--tp-line)}.tp21-how .tp-step-grid article:last-child{border:0}.tp21-how .tp-step-grid b{position:absolute;top:18px;left:18px;font:700 1.5rem Georgia,serif}.tp21-how .tp-step-grid span{display:grid;place-items:center;width:92px;height:92px;margin:0 auto 24px;border:1px solid var(--tp-line);border-radius:50%;background:rgba(255,255,255,.45)}.tp21-how .tp-step-grid svg{width:44px;height:44px}.tp21-how .tp-step-grid h3{font:400 1.4rem Georgia,serif}
.tp21-owner{padding-top:95px;background:#fff}.tp21-owner__grid{display:grid;grid-template-columns:1.25fr .75fr;gap:80px;align-items:end;padding-bottom:85px}.tp21-owner h2{font:400 clamp(3rem,6vw,6.5rem)/.98 Georgia,serif}.tp21-owner__grid p{max-width:760px;font-size:1.08rem}.tp21-owner__tags{display:grid;gap:12px}.tp21-owner__tags span{justify-self:start;padding:12px 16px;background:#fff;box-shadow:0 14px 35px rgba(18,53,43,.12);font-weight:700;font-size:.83rem}.tp21-manifesto{padding:80px max(32px,calc((100vw - 1180px)/2));background:var(--tp-green);color:#fff;text-align:center}.tp21-manifesto p{max-width:1180px;margin:8px auto 0;font:400 clamp(2.5rem,5vw,5.3rem)/1.05 Georgia,serif}.tp21-manifesto .tp-eyebrow{color:var(--tp-yellow)}
.tp-audience-card{background:#f0f3ef}.tp-collab-band>div:not(.tp-collab-band__intro){font-size:.78rem;text-align:center}.tp-main-cta{background-color:var(--tp-yellow);background-image:linear-gradient(90deg,rgba(255,255,255,.05),rgba(255,255,255,.32));border-radius:14px}.tp-main-cta__copy{max-width:680px;margin:auto;text-align:center}.tp-main-cta h2{font:400 3rem Georgia,serif}
@media(max-width:900px){.tp21-hero{min-height:820px;background-position:62% center}.tp21-hero__intro{left:24px;right:24px;top:32px;max-width:none}.tp21-hero__card{left:24px;right:auto;bottom:28px}.tp21-hero__blueprint{display:none}.tp21-track-record__inner,.tp21-owner__grid{grid-template-columns:1fr;gap:30px}.tp21-twin__panel,.tp21-twin__panel[data-tp-twin-panel=viabilidad]{grid-template-columns:1fr;padding:30px}.tp21-twin__panel--product{padding:0}.tp21-twin__panel--product>div{padding:30px}.tp21-twin__panel--product img{height:260px}.tp21-twin__viewport{min-height:0}.tp21-layer-grid{grid-template-columns:1fr}.tp21-how .tp-step-grid article{border-right:0;border-bottom:1px solid var(--tp-line)}}
@media(max-width:560px){.tp21-hero__intro{padding:22px}.tp21-hero__intro h1{font-size:2.65rem}.tp21-hero__card{width:calc(100vw - 48px);padding:22px}.tp21-twin__tabs{gap:12px}.tp21-track-record strong{font-size:5rem}.tp21-owner h2{font-size:3.25rem}}

/* TerrenoPlus 2 — editorial product system */
.tp-editorial-title{font-family:Georgia,'Times New Roman',serif!important;font-weight:400!important;letter-spacing:-.035em;line-height:1.03}
.tp-section-heading--wide{max-width:920px}.tp-calculator-section{background:linear-gradient(180deg,#e7f9e2 0,#f6fbf7 72%,#fff 100%)}
.tp-plugin-required{padding:24px;border:1px solid #c7d8d2;border-radius:18px;background:#fff}.tp-calc-lead{margin-top:32px}.tp-calc-lead:empty{display:none}
.tp-system-overview{background:#fbfcfb}.tp-system-window{max-width:1020px;margin:36px auto 42px;border:1px solid #dce6e2;border-radius:22px;background:#fff;box-shadow:0 26px 70px rgba(18,53,43,.11);overflow:hidden}
.tp-system-window__bar{display:flex;align-items:center;gap:8px;padding:13px 18px;border-bottom:1px solid #e5ece9;background:#f8faf9;color:#8aa198;font-size:.75rem}.tp-system-window__bar i{width:10px;height:10px;border-radius:50%;background:#f07875}.tp-system-window__bar i:nth-child(2){background:#f5c04d}.tp-system-window__bar i:nth-child(3){background:#45cd84}.tp-system-window__bar span{margin-left:10px}
.tp-system-tabs{display:flex;justify-content:center;gap:48px;padding:18px;border-bottom:1px solid #edf2ef;color:#9baca5;font-size:.86rem}.tp-system-tabs .is-active{color:#12382e;font-weight:800;position:relative}.tp-system-tabs .is-active:after{content:"";position:absolute;left:0;right:0;bottom:-19px;height:2px;background:#12382e}
.tp-system-window__body{display:grid;grid-template-columns:180px 1fr 240px;gap:40px;align-items:center;min-height:280px;padding:48px}.tp-score-ring{width:148px;height:148px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:conic-gradient(#5fb99a 0 82%,#e8efec 82%);position:relative}.tp-score-ring:after{content:"";position:absolute;inset:12px;border-radius:50%;background:#fff}.tp-score-ring strong,.tp-score-ring small{z-index:1}.tp-score-ring strong{font-size:2.25rem}.tp-score-ring small{margin-top:14px;color:#82968f}
.tp-system-lines{display:grid;gap:17px}.tp-system-lines b{margin-bottom:8px}.tp-system-lines span{display:block;width:var(--line);height:10px;border-radius:20px;background:#dfeae6;position:relative}.tp-system-lines span:before{content:"";display:block;width:72%;height:100%;border-radius:inherit;background:#79c4aa}.tp-system-status{display:grid;gap:8px;padding:22px;border-radius:16px;background:#e7f9e2}.tp-system-status small{text-transform:uppercase;letter-spacing:.1em;color:#56776c}.tp-system-status span{font-size:.78rem;color:#56776c}
.tp-layer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.tp-layer-grid article{min-height:260px;padding:32px;border:1px solid #dfe7e4;border-radius:20px;background:#fff}.tp-layer-grid small,.tp-ten-card>span{color:#609b89;letter-spacing:.12em}.tp-layer-grid h3{font-size:1.45rem;margin:32px 0 12px}.tp-layer-grid p{color:#62766f}
.tp-system-hero{padding:clamp(100px,13vw,190px) 0;background:linear-gradient(135deg,#e8fbe4,#f7fbf7)}.tp-system-hero .tp-wrap{max-width:1000px;text-align:center}.tp-system-hero h1{font-size:clamp(3rem,7vw,6.4rem);margin:.22em 0}.tp-system-hero p{max-width:790px;margin:0 auto 28px;font-size:1.15rem;color:#526c63}
.tp-ten-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.tp-ten-card{padding:34px;border:1px solid #dfe7e4;border-radius:20px;background:#fff;min-height:230px}.tp-ten-card>span{font-size:.78rem}.tp-ten-card h3{font-size:1.45rem;margin:28px 0 12px}.tp-ten-card p{color:#60746d}.tp-section--mint{background:#e7f9e2}.tp-audience-system header{text-align:center}.tp-audience-system__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:42px}.tp-audience-system__grid article{padding:30px;border:1px solid rgba(26,73,59,.12);border-radius:18px;background:rgba(255,255,255,.72)}.tp-system-cta{text-align:center;max-width:900px}.tp-system-cta h2{font-size:clamp(2.4rem,5vw,5rem);margin:0}.tp-system-cta p{margin:18px auto 28px;max-width:700px}
@media(max-width:860px){.tp-system-window__body{grid-template-columns:1fr;text-align:center}.tp-score-ring{margin:auto}.tp-system-tabs{gap:18px}.tp-layer-grid,.tp-ten-grid,.tp-audience-system__grid{grid-template-columns:1fr}}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 92px;
}

body {
  margin: 0;
  color: var(--tp-ink);
  background: var(--tp-paper);
  font-family: var(--tp-font);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

body.tp-menu-open {
  overflow: hidden;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
select,
textarea {
  font: inherit;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

h1,
h2,
h3,
h4,
p {
  margin-top: 0;
}

h1,
h2,
h3,
h4 {
  line-height: 1.08;
  letter-spacing: -0.035em;
  text-wrap: balance;
}

p {
  text-wrap: pretty;
}

.screen-reader-text,
.tp-skip-link {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.tp-skip-link:focus {
  z-index: 10000;
  top: 10px;
  left: 10px;
  width: auto;
  height: auto;
  clip: auto;
  margin: 0;
  padding: 10px 14px;
  background: var(--tp-white);
  color: var(--tp-ink);
  border-radius: 8px;
}

.tp-wrap {
  width: var(--tp-wrap);
  margin-inline: auto;
}

.tp-narrow {
  width: min(820px, calc(100vw - 48px));
  margin-inline: auto;
}

.tp-section {
  position: relative;
  padding: 92px 0;
}

.tp-section--soft {
  background:
    radial-gradient(circle at 8% 12%, rgba(245, 198, 79, 0.13), transparent 24%),
    linear-gradient(180deg, #f3f6f2 0%, #f9f8f3 100%);
}

.tp-section-heading {
  max-width: 760px;
  margin: 0 auto 42px;
  text-align: center;
}

.tp-section-heading--left {
  margin-left: 0;
  text-align: left;
}

.tp-section-heading h2,
.tp-page-hero h1 {
  margin-bottom: 15px;
  color: var(--tp-ink);
  font-size: clamp(2rem, 4vw, 3.7rem);
  font-weight: 750;
}

.tp-section-heading p {
  max-width: 650px;
  margin: 0 auto;
  color: var(--tp-muted);
  font-size: 1.08rem;
}

.tp-section-heading--left p {
  margin-left: 0;
}

.tp-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 17px;
  color: var(--tp-coral);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.tp-eyebrow::before {
  width: 28px;
  height: 2px;
  background: currentColor;
  content: "";
}

.tp-button {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12px 22px;
  border: 1px solid transparent;
  border-radius: 12px;
  background: var(--tp-green);
  color: var(--tp-white);
  cursor: pointer;
  font-size: 0.92rem;
  font-weight: 750;
  line-height: 1.2;
  transition: transform 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}

.tp-button:hover,
.tp-button:focus-visible {
  background: var(--tp-green-dark);
  box-shadow: 0 10px 24px rgba(8, 53, 40, 0.2);
  transform: translateY(-2px);
}

.tp-button--outline {
  border-color: var(--tp-yellow);
  background: rgba(255, 255, 255, 0.86);
  color: var(--tp-ink);
}

.tp-button--outline:hover,
.tp-button--outline:focus-visible {
  border-color: var(--tp-yellow);
  background: var(--tp-yellow);
  color: var(--tp-ink);
}

.tp-button--yellow {
  background: var(--tp-yellow);
  color: var(--tp-ink);
}

.tp-button--yellow:hover,
.tp-button--yellow:focus-visible {
  background: var(--tp-yellow-2);
}

.tp-button--small {
  min-height: 42px;
  padding: 10px 17px;
  border-radius: 10px;
  font-size: 0.82rem;
}

.tp-button svg,
.tp-text-link svg {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
}

.tp-text-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--tp-green);
  font-weight: 750;
}

.tp-text-link:hover svg {
  transform: translateX(3px);
}

.tp-text-link svg {
  transition: transform 180ms ease;
}

/* Header */
.tp-site-header {
  position: sticky;
  z-index: 1000;
  top: 0;
  border-bottom: 1px solid transparent;
  background: rgba(255, 253, 249, 0.9);
  backdrop-filter: blur(16px);
  transition: border-color 180ms ease, box-shadow 180ms ease;
}

.tp-site-header.is-scrolled {
  border-color: var(--tp-line);
  box-shadow: 0 8px 30px rgba(16, 47, 39, 0.06);
}

.tp-header-inner {
  display: grid;
  min-height: 76px;
  align-items: center;
  grid-template-columns: auto 1fr auto;
  gap: 28px;
}

.tp-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #101514;
  font-size: 1.33rem;
  font-weight: 850;
  letter-spacing: -0.055em;
}

.tp-brand-mark {
  width: 31px;
  height: 31px;
  color: var(--tp-green);
}

.tp-brand .custom-logo {
  width: auto;
  max-height: 38px;
}

.tp-primary-nav {
  justify-self: center;
}

.tp-primary-nav ul,
.tp-footer-nav ul {
  display: flex;
  align-items: center;
  gap: 27px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.tp-primary-nav a {
  position: relative;
  color: #2e3b37;
  font-size: 0.82rem;
  font-weight: 650;
}

.tp-primary-nav a::after {
  position: absolute;
  right: 0;
  bottom: -7px;
  left: 0;
  height: 2px;
  background: var(--tp-yellow);
  content: "";
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 180ms ease;
}

.tp-primary-nav a:hover::after,
.tp-primary-nav .current-menu-item > a::after {
  transform: scaleX(1);
}

.tp-header-actions {
  display: flex;
  align-items: center;
  gap: 9px;
}

.tp-menu-toggle {
  display: none;
  width: 46px;
  height: 46px;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid var(--tp-line);
  border-radius: 11px;
  background: var(--tp-white);
  color: var(--tp-ink);
  cursor: pointer;
}

.tp-menu-toggle svg {
  width: 23px;
  height: 23px;
}

/* Hero */
.tp-hero {
  position: relative;
  min-height: min(720px, calc(100vh - 76px));
  overflow: hidden;
  background: #dce2dc;
  isolation: isolate;
}

.tp-hero::before {
  position: absolute;
  z-index: -2;
  inset: 0;
  background-image: var(--tp-hero-image);
  background-position: center;
  background-size: cover;
  content: "";
  transform: scale(1.01);
}

.tp-hero::after {
  position: absolute;
  z-index: -1;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(252, 250, 245, 0.99) 0%, rgba(252, 250, 245, 0.97) 27%, rgba(252, 250, 245, 0.69) 43%, rgba(252, 250, 245, 0.08) 66%),
    linear-gradient(0deg, rgba(12, 42, 33, 0.18) 0%, transparent 30%);
  content: "";
}

.tp-hero-inner {
  display: grid;
  min-height: min(720px, calc(100vh - 76px));
  align-items: center;
  grid-template-columns: minmax(0, 560px) 1fr;
  padding-block: 88px 132px;
}

.tp-hero-copy {
  animation: tp-rise 700ms both ease-out;
}

.tp-hero h1 {
  max-width: 610px;
  margin-bottom: 23px;
  color: var(--tp-green-dark);
  font-size: clamp(3rem, 5.7vw, 5.75rem);
  font-weight: 790;
  letter-spacing: -0.065em;
}

.tp-hero-copy > p {
  max-width: 525px;
  margin-bottom: 31px;
  color: #3e4b47;
  font-size: clamp(1.02rem, 1.4vw, 1.2rem);
  line-height: 1.65;
}

.tp-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.tp-featured-offer {
  position: absolute;
  right: max(24px, calc((100vw - 1180px) / 2));
  bottom: 95px;
  width: min(310px, calc(100vw - 48px));
  padding: 19px;
  border: 1px solid rgba(255, 255, 255, 0.78);
  border-radius: 17px;
  background: rgba(255, 255, 255, 0.93);
  box-shadow: var(--tp-shadow);
  backdrop-filter: blur(14px);
  animation: tp-rise 700ms 220ms both ease-out;
}

.tp-featured-offer__location {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 8px;
  color: var(--tp-coral);
  font-size: 0.79rem;
  font-weight: 750;
}

.tp-featured-offer__location svg {
  width: 16px;
  height: 16px;
  color: var(--tp-ink);
}

.tp-featured-offer h2 {
  margin-bottom: 5px;
  font-size: 1rem;
  letter-spacing: -0.02em;
}

.tp-featured-offer p {
  margin-bottom: 13px;
  color: var(--tp-muted);
  font-size: 0.77rem;
}

.tp-featured-offer__price {
  padding-top: 12px;
  border-top: 1px solid var(--tp-line);
  margin-bottom: 14px;
  color: var(--tp-ink);
  font-size: 1.62rem;
  font-weight: 800;
  letter-spacing: -0.04em;
}

.tp-featured-offer__price small {
  display: block;
  margin-bottom: 2px;
  color: var(--tp-muted);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0;
}

.tp-featured-offer .tp-button {
  width: 100%;
}

.tp-process-rail {
  position: relative;
  z-index: 10;
  display: grid;
  width: var(--tp-wrap);
  min-height: 86px;
  align-items: center;
  padding: 12px 22px;
  border: 1px solid rgba(16, 47, 39, 0.08);
  border-radius: 17px;
  margin: -43px auto 0;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: var(--tp-shadow-sm);
  grid-template-columns: repeat(4, 1fr);
}

.tp-process-rail__item {
  position: relative;
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 13px;
  padding: 7px 22px;
  color: var(--tp-ink);
  font-size: 0.82rem;
  font-weight: 750;
}

.tp-process-rail__item:not(:last-child)::after {
  position: absolute;
  top: 50%;
  right: 0;
  width: 9px;
  height: 9px;
  border-top: 1.5px solid var(--tp-muted);
  border-right: 1.5px solid var(--tp-muted);
  content: "";
  transform: translateY(-50%) rotate(45deg);
}

.tp-process-rail__icon,
.tp-step-card__icon,
.tp-collab-point__icon {
  display: inline-flex;
  width: 42px;
  height: 42px;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(16, 47, 39, 0.11);
  border-radius: 12px;
  background: var(--tp-cream);
  color: var(--tp-green);
}

.tp-process-rail__icon svg {
  width: 25px;
  height: 25px;
}

/* Listings */
.tp-listing-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}

.tp-property-card {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--tp-line);
  border-radius: var(--tp-radius-sm);
  background: var(--tp-white);
  box-shadow: 0 2px 0 rgba(16, 47, 39, 0.02);
  transition: box-shadow 220ms ease, transform 220ms ease;
}

.tp-property-card:hover {
  box-shadow: var(--tp-shadow-sm);
  transform: translateY(-6px);
}

.tp-property-card__media {
  position: relative;
  overflow: hidden;
  aspect-ratio: 3 / 2;
  background: #e3e9e4;
}

.tp-property-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 700ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.tp-property-card:hover .tp-property-card__media img {
  transform: scale(1.045);
}

.tp-property-card__badge {
  position: absolute;
  top: 13px;
  left: 13px;
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(255, 253, 249, 0.9);
  color: var(--tp-green-dark);
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  backdrop-filter: blur(9px);
}

.tp-property-card__body {
  padding: 20px;
}

.tp-property-card__location {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 9px;
  color: var(--tp-coral);
  font-size: 0.76rem;
  font-weight: 750;
}

.tp-property-card__location svg {
  width: 15px;
  height: 15px;
  color: var(--tp-ink);
}

.tp-property-card h3 {
  min-height: 2.2em;
  margin-bottom: 17px;
  font-size: clamp(1.1rem, 1.8vw, 1.35rem);
}

.tp-property-card__facts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  padding: 13px 0;
  border-top: 1px solid var(--tp-line);
  border-bottom: 1px solid var(--tp-line);
  margin: 0 0 15px;
  color: var(--tp-muted);
  font-size: 0.71rem;
}

.tp-property-card__facts span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.tp-property-card__facts svg {
  width: 14px;
  height: 14px;
  color: var(--tp-green);
}

.tp-property-card__footer {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 15px;
}

.tp-property-card__price {
  color: var(--tp-ink);
  font-size: 1.33rem;
  font-weight: 800;
  letter-spacing: -0.04em;
}

.tp-property-card__price small {
  display: block;
  color: var(--tp-muted);
  font-size: 0.66rem;
  font-weight: 550;
  letter-spacing: 0;
}

.tp-listing-note {
  max-width: 840px;
  margin: 24px auto 0;
  color: var(--tp-muted);
  font-size: 0.72rem;
  text-align: center;
}

.tp-section-actions {
  margin-top: 34px;
  text-align: center;
}

/* Steps */
.tp-step-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.tp-step-card {
  position: relative;
  padding: 5px 34px 8px;
  text-align: center;
}

.tp-step-card:not(:last-child) {
  border-right: 1px solid var(--tp-line);
}

.tp-step-card__number {
  position: absolute;
  top: -4px;
  left: 28px;
  color: var(--tp-green);
  font-size: 1.15rem;
  font-weight: 850;
}

.tp-step-card__icon {
  width: 76px;
  height: 76px;
  border-radius: 50%;
  margin: 0 auto 22px;
  background: var(--tp-cream);
}

.tp-step-card__icon svg {
  width: 36px;
  height: 36px;
}

.tp-step-card h3 {
  margin-bottom: 10px;
  font-size: 1rem;
  letter-spacing: -0.02em;
}

.tp-step-card p {
  margin: 0;
  color: var(--tp-muted);
  font-size: 0.82rem;
}

/* Audience cards */
.tp-audience-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
}

.tp-audience-card {
  display: grid;
  min-height: 390px;
  overflow: hidden;
  border: 1px solid rgba(16, 47, 39, 0.08);
  border-radius: var(--tp-radius);
  background: #eef2ed;
  grid-template-columns: 1.08fr 0.92fr;
}

.tp-audience-card--buyer {
  background: #f5f0e7;
}

.tp-audience-card__copy {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  flex-direction: column;
  padding: clamp(28px, 4vw, 47px);
}

.tp-audience-card__copy > small {
  margin-bottom: 13px;
  font-size: 0.72rem;
  font-weight: 800;
}

.tp-audience-card h2 {
  margin-bottom: 17px;
  font-size: clamp(1.5rem, 2.8vw, 2.45rem);
}

.tp-audience-card p {
  margin-bottom: 25px;
  color: var(--tp-muted);
  font-size: 0.86rem;
}

.tp-audience-card__media {
  min-height: 100%;
  background-position: center;
  background-size: cover;
}

.tp-audience-card--owner .tp-audience-card__media {
  background-position: 58% center;
}

.tp-collab-band {
  display: grid;
  align-items: center;
  padding: 27px 30px;
  border: 1px solid rgba(16, 47, 39, 0.08);
  border-radius: var(--tp-radius-sm);
  margin-top: 22px;
  background: #edf1ee;
  grid-template-columns: 1.2fr 1fr 1fr 1fr auto;
}

.tp-collab-band__intro {
  padding-right: 25px;
}

.tp-collab-band__intro small {
  display: block;
  margin-bottom: 5px;
  color: var(--tp-muted);
  font-size: 0.68rem;
}

.tp-collab-band__intro h2 {
  margin: 0;
  font-size: clamp(1.3rem, 2.4vw, 2rem);
}

.tp-collab-point {
  min-height: 90px;
  padding: 6px 20px;
  border-left: 1px solid var(--tp-line);
  color: var(--tp-muted);
  font-size: 0.69rem;
  text-align: center;
}

.tp-collab-point__icon {
  width: 42px;
  height: 42px;
  border: 0;
  margin: 0 auto 8px;
  background: transparent;
}

.tp-collab-point__icon svg {
  width: 31px;
  height: 31px;
}

/* CTA */
.tp-main-cta {
  position: relative;
  display: grid;
  overflow: hidden;
  min-height: 240px;
  align-items: center;
  padding: clamp(38px, 6vw, 70px);
  border-radius: var(--tp-radius);
  margin-top: 28px;
  background:
    linear-gradient(110deg, rgba(245, 198, 79, 0.98), rgba(255, 220, 118, 0.92)),
    var(--tp-yellow);
  grid-template-columns: 0.9fr 1.1fr;
}

.tp-main-cta::before {
  position: absolute;
  bottom: -35px;
  left: 4%;
  width: 370px;
  height: 240px;
  border: 1px solid rgba(16, 47, 39, 0.15);
  background:
    linear-gradient(30deg, transparent 48%, rgba(16, 47, 39, 0.12) 49%, rgba(16, 47, 39, 0.12) 50%, transparent 51%),
    linear-gradient(-30deg, transparent 48%, rgba(16, 47, 39, 0.1) 49%, rgba(16, 47, 39, 0.1) 50%, transparent 51%);
  content: "";
  opacity: 0.7;
  transform: skewY(-8deg) rotate(-4deg);
}

.tp-main-cta__copy {
  position: relative;
  z-index: 1;
  grid-column: 2;
}

.tp-main-cta h2 {
  margin-bottom: 9px;
  font-size: clamp(2rem, 4vw, 3.4rem);
}

.tp-main-cta p {
  margin-bottom: 23px;
  color: var(--tp-ink-2);
}

/* Forms */
.tp-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 17px;
}

.tp-form__field {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.tp-form__field--full,
.tp-form__actions,
.tp-form__notice {
  grid-column: 1 / -1;
}

.tp-form label {
  color: var(--tp-ink);
  font-size: 0.78rem;
  font-weight: 750;
}

.tp-form input,
.tp-form select,
.tp-form textarea {
  width: 100%;
  min-height: 52px;
  padding: 13px 15px;
  border: 1px solid rgba(16, 47, 39, 0.2);
  border-radius: 10px;
  outline: 0;
  background: var(--tp-white);
  color: var(--tp-ink);
  transition: border-color 180ms ease, box-shadow 180ms ease;
}

.tp-form textarea {
  min-height: 125px;
  resize: vertical;
}

.tp-form input:focus,
.tp-form select:focus,
.tp-form textarea:focus {
  border-color: var(--tp-green);
  box-shadow: 0 0 0 4px rgba(14, 75, 56, 0.1);
}

.tp-form__consent {
  display: grid;
  align-items: start;
  grid-template-columns: auto 1fr;
  gap: 9px;
}

.tp-form__consent input {
  width: 17px;
  min-height: 17px;
  margin-top: 3px;
}

.tp-form__consent label {
  color: var(--tp-muted);
  font-size: 0.7rem;
  font-weight: 550;
}

.tp-form__notice {
  padding: 13px 15px;
  border-radius: 10px;
  background: var(--tp-green-soft);
  color: var(--tp-green-dark);
  font-size: 0.82rem;
}

.tp-form__notice--error {
  background: #f8e5df;
  color: #7e2e1f;
}

.tp-form__honeypot {
  position: absolute !important;
  left: -9999px !important;
}

/* Inner pages */
.tp-page-hero {
  position: relative;
  overflow: hidden;
  padding: 105px 0 88px;
  background:
    radial-gradient(circle at 85% 18%, rgba(245, 198, 79, 0.25), transparent 24%),
    linear-gradient(135deg, #eef3ef, #faf7ef);
}

.tp-page-hero::after {
  position: absolute;
  top: -120px;
  right: -100px;
  width: 420px;
  height: 420px;
  border: 1px solid rgba(16, 47, 39, 0.1);
  border-radius: 45% 55% 62% 38%;
  content: "";
  transform: rotate(18deg);
}

.tp-page-hero__copy {
  position: relative;
  z-index: 1;
  max-width: 800px;
}

.tp-page-hero p {
  max-width: 670px;
  margin-bottom: 0;
  color: var(--tp-muted);
  font-size: 1.13rem;
}

.tp-content {
  padding: 85px 0;
}

.tp-prose {
  color: #35453f;
  font-size: 1.03rem;
}

.tp-prose h2 {
  margin: 2.3em 0 0.8em;
  color: var(--tp-ink);
  font-size: 2rem;
}

.tp-prose h3 {
  margin: 1.8em 0 0.6em;
  color: var(--tp-ink);
  font-size: 1.35rem;
}

.tp-prose a {
  color: var(--tp-green);
  text-decoration: underline;
  text-decoration-color: var(--tp-yellow);
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

.tp-info-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.tp-info-card {
  padding: 31px;
  border: 1px solid var(--tp-line);
  border-radius: var(--tp-radius-sm);
  background: var(--tp-white);
}

.tp-info-card__icon {
  display: inline-flex;
  width: 55px;
  height: 55px;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  margin-bottom: 24px;
  background: var(--tp-green-soft);
  color: var(--tp-green);
}

.tp-info-card__icon svg {
  width: 28px;
  height: 28px;
}

.tp-info-card h2,
.tp-info-card h3 {
  margin-bottom: 12px;
  font-size: 1.3rem;
}

.tp-info-card p {
  margin-bottom: 0;
  color: var(--tp-muted);
  font-size: 0.85rem;
}

.tp-split {
  display: grid;
  align-items: start;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: clamp(35px, 7vw, 90px);
}

.tp-form-card {
  padding: clamp(26px, 4vw, 45px);
  border: 1px solid var(--tp-line);
  border-radius: var(--tp-radius);
  background: var(--tp-white);
  box-shadow: var(--tp-shadow-sm);
}

.tp-form-card h2 {
  margin-bottom: 11px;
  font-size: 1.75rem;
}

.tp-form-card > p {
  margin-bottom: 24px;
  color: var(--tp-muted);
  font-size: 0.85rem;
}

.tp-archive-head {
  padding: 75px 0 40px;
}

.tp-archive-head h1 {
  margin-bottom: 12px;
  font-size: clamp(2.3rem, 5vw, 4.5rem);
}

.tp-archive-head p {
  max-width: 700px;
  color: var(--tp-muted);
}

.tp-archive-grid {
  padding: 20px 0 90px;
}

.tp-empty-state {
  padding: 50px;
  border: 1px dashed rgba(16, 47, 39, 0.26);
  border-radius: var(--tp-radius);
  background: var(--tp-cream);
  text-align: center;
}

/* Single property */
.tp-property-hero {
  padding: 48px 0 70px;
}

.tp-property-hero__grid {
  display: grid;
  align-items: center;
  grid-template-columns: minmax(0, 1.2fr) minmax(340px, 0.8fr);
  gap: 42px;
}

.tp-property-hero__media {
  overflow: hidden;
  border-radius: var(--tp-radius);
  aspect-ratio: 4 / 3;
  background: #e3e9e4;
}

.tp-property-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.tp-property-hero__copy h1 {
  margin-bottom: 17px;
  font-size: clamp(2.5rem, 5vw, 4.7rem);
}

.tp-property-price {
  margin: 23px 0;
  color: var(--tp-green);
  font-size: 2rem;
  font-weight: 850;
}

.tp-property-price small {
  display: block;
  color: var(--tp-muted);
  font-size: 0.72rem;
  font-weight: 600;
}

.tp-property-disclaimer {
  padding: 12px 14px;
  border-left: 3px solid var(--tp-yellow);
  margin-top: 24px;
  background: var(--tp-cream);
  color: var(--tp-muted);
  font-size: 0.72rem;
}

/* Footer */
.tp-site-footer {
  padding: 50px 0 23px;
  background: var(--tp-green-dark);
  color: rgba(255, 255, 255, 0.82);
}

.tp-footer-top {
  display: grid;
  align-items: start;
  grid-template-columns: 1.2fr 1fr 0.8fr;
  gap: 50px;
}

.tp-site-footer .tp-brand {
  margin-bottom: 15px;
  color: var(--tp-white);
}

.tp-site-footer .tp-brand-mark {
  color: var(--tp-yellow);
}

.tp-footer-intro p {
  max-width: 420px;
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.82rem;
}

.tp-footer-nav ul {
  align-items: flex-start;
  flex-direction: column;
  gap: 8px;
}

.tp-footer-nav a {
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.78rem;
}

.tp-footer-nav a:hover {
  color: var(--tp-yellow);
}

.tp-footer-contact h2 {
  margin-bottom: 16px;
  color: var(--tp-white);
  font-size: 1rem;
}

.tp-footer-contact a,
.tp-footer-contact span {
  display: block;
  margin-bottom: 7px;
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.78rem;
}

.tp-footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding-top: 21px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  margin-top: 40px;
  color: rgba(255, 255, 255, 0.47);
  font-size: 0.68rem;
}

.tp-legal-links {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
}

.tp-legal-links a:hover {
  color: var(--tp-white);
}

/* Motion */
.tp-reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 700ms ease, transform 700ms ease;
}

.tp-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@keyframes tp-rise {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  .tp-reveal {
    opacity: 1;
    transform: none;
  }
}

/* Responsive */
@media (max-width: 1050px) {
  .tp-primary-nav ul {
    gap: 17px;
  }

  .tp-header-actions .tp-button--outline {
    display: none;
  }

  .tp-process-rail__item {
    padding-inline: 12px;
    font-size: 0.74rem;
  }

  .tp-collab-band {
    grid-template-columns: 1.2fr 1fr 1fr auto;
  }

  .tp-collab-point:nth-of-type(4) {
    display: none;
  }
}

@media (max-width: 860px) {
  :root {
    --tp-wrap: min(calc(100% - 34px), 720px);
  }

  .tp-section {
    padding: 72px 0;
  }

  .tp-header-inner {
    min-height: 68px;
    grid-template-columns: 1fr auto;
  }

  .tp-menu-toggle {
    display: inline-flex;
    grid-column: 2;
    grid-row: 1;
  }

  .tp-primary-nav {
    position: fixed;
    z-index: 999;
    top: 68px;
    right: 0;
    bottom: 0;
    width: min(390px, 100vw);
    padding: 32px 28px;
    background: var(--tp-paper);
    box-shadow: -20px 30px 60px rgba(8, 53, 40, 0.15);
    justify-self: end;
    opacity: 0;
    pointer-events: none;
    transform: translateX(100%);
    transition: opacity 200ms ease, transform 240ms ease;
  }

  .tp-primary-nav.is-open {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(0);
  }

  .tp-primary-nav ul {
    align-items: stretch;
    flex-direction: column;
    gap: 0;
  }

  .tp-primary-nav a {
    display: block;
    padding: 14px 4px;
    border-bottom: 1px solid var(--tp-line);
    font-size: 1rem;
  }

  .tp-primary-nav a::after,
  .tp-header-actions {
    display: none;
  }

  .tp-hero,
  .tp-hero-inner {
    min-height: 690px;
  }

  .tp-hero::before {
    background-position: 60% center;
  }

  .tp-hero::after {
    background:
      linear-gradient(180deg, rgba(252, 250, 245, 0.98) 0%, rgba(252, 250, 245, 0.87) 46%, rgba(252, 250, 245, 0.14) 74%),
      linear-gradient(0deg, rgba(8, 53, 40, 0.3), transparent 36%);
  }

  .tp-hero-inner {
    align-items: start;
    grid-template-columns: 1fr;
    padding-top: 68px;
  }

  .tp-hero-copy {
    max-width: 620px;
  }

  .tp-hero h1 {
    max-width: 580px;
    font-size: clamp(3rem, 10vw, 5.1rem);
  }

  .tp-featured-offer {
    right: 17px;
    bottom: 25px;
  }

  .tp-process-rail {
    overflow-x: auto;
    width: calc(100vw - 34px);
    min-height: 79px;
    padding-inline: 7px;
    grid-template-columns: repeat(4, minmax(210px, 1fr));
    scrollbar-width: thin;
  }

  .tp-listing-grid,
  .tp-info-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tp-property-card:last-child:nth-child(odd),
  .tp-info-card:last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }

  .tp-step-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 45px 0;
  }

  .tp-step-card:nth-child(2) {
    border-right: 0;
  }

  .tp-audience-grid,
  .tp-footer-top,
  .tp-split,
  .tp-property-hero__grid {
    grid-template-columns: 1fr;
  }

  .tp-collab-band {
    grid-template-columns: 1fr 1fr;
    gap: 23px;
  }

  .tp-collab-band__intro {
    grid-column: 1 / -1;
  }

  .tp-collab-point {
    border-left: 0;
  }

  .tp-collab-point:nth-of-type(4) {
    display: block;
  }

  .tp-main-cta {
    grid-template-columns: 1fr;
  }

  .tp-main-cta::before {
    opacity: 0.28;
  }

  .tp-main-cta__copy {
    grid-column: 1;
  }
}

@media (max-width: 620px) {
  :root {
    --tp-wrap: calc(100vw - 28px);
  }

  body {
    font-size: 15px;
  }

  .tp-section {
    padding: 59px 0;
  }

  .tp-header-inner {
    min-height: 64px;
  }

  .tp-primary-nav {
    top: 64px;
  }

  .tp-brand {
    font-size: 1.22rem;
  }

  .tp-brand-mark {
    width: 28px;
    height: 28px;
  }

  .tp-menu-toggle {
    width: 42px;
    height: 42px;
  }

  .tp-hero,
  .tp-hero-inner {
    min-height: 700px;
  }

  .tp-hero::before {
    background-position: 64% center;
  }

  .tp-hero-inner {
    padding-block: 53px 220px;
  }

  .tp-hero h1 {
    margin-bottom: 17px;
    font-size: clamp(2.7rem, 13vw, 4.3rem);
  }

  .tp-hero-copy > p {
    margin-bottom: 23px;
    font-size: 0.95rem;
  }

  .tp-hero-actions .tp-button {
    flex: 1 1 auto;
    padding-inline: 14px;
  }

  .tp-featured-offer {
    right: 14px;
    bottom: 18px;
    left: 14px;
    width: auto;
    padding: 15px;
  }

  .tp-featured-offer__price {
    font-size: 1.4rem;
  }

  .tp-process-rail {
    width: calc(100vw - 28px);
    margin-top: -20px;
    grid-template-columns: repeat(4, minmax(190px, 1fr));
  }

  .tp-listing-grid,
  .tp-info-grid,
  .tp-step-grid,
  .tp-form {
    grid-template-columns: 1fr;
  }

  .tp-property-card:last-child:nth-child(odd),
  .tp-info-card:last-child:nth-child(odd),
  .tp-form__field,
  .tp-form__actions,
  .tp-form__notice {
    grid-column: auto;
  }

  .tp-step-grid {
    gap: 0;
  }

  .tp-step-card {
    padding: 25px 20px;
    border-right: 0 !important;
    border-bottom: 1px solid var(--tp-line);
  }

  .tp-step-card:last-child {
    border-bottom: 0;
  }

  .tp-step-card__number {
    top: 25px;
    left: 15px;
  }

  .tp-audience-card {
    grid-template-columns: 1fr;
  }

  .tp-audience-card__media {
    min-height: 240px;
    grid-row: 1;
  }

  .tp-collab-band {
    padding: 25px 20px;
    grid-template-columns: 1fr;
  }

  .tp-collab-band__intro {
    grid-column: auto;
  }

  .tp-collab-point {
    display: grid;
    min-height: 0;
    align-items: center;
    padding: 14px 0;
    border-top: 1px solid var(--tp-line);
    grid-template-columns: auto 1fr;
    gap: 12px;
    text-align: left;
  }

  .tp-collab-point__icon {
    margin: 0;
  }

  .tp-main-cta {
    padding: 40px 24px;
  }

  .tp-page-hero {
    padding: 72px 0 65px;
  }

  .tp-content {
    padding: 60px 0;
  }

  .tp-property-hero {
    padding-top: 25px;
  }

  .tp-property-hero__grid {
    gap: 28px;
  }

  .tp-footer-bottom {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* Final 2.2 card overrides after all responsive/base declarations. */
@media (hover:hover) and (pointer:fine) {
  .tp-property-card:hover { transform: translateY(-10px); border-color: rgba(14,75,56,.28); box-shadow: 0 26px 52px rgba(12,48,37,.16); }
  .tp-property-card:hover .tp-property-card__media img { transform: scale(1.075); filter: saturate(1.05); }
  .tp-property-card:hover .tp-text-link { transform: translateX(6px); }
}
