body{overflow-x:hidden}.hero-split{display:flex;flex-direction:column;min-height:calc(100vh - var(--header-height));width:100vw;background-color:transparent;position:relative;overflow:hidden}.hero-bg-shapes{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none;overflow:hidden}.shape-blob{position:absolute;border-radius:50%;filter:blur(140px);background:var(--color-shape-blob);opacity:1}.shape-1{width:400px;height:400px;top:15%;left:-10%;z-index:1}.shape-2{width:300px;height:300px;bottom:20%;left:10%;z-index:1}.hero-text-col{flex:1;display:flex;flex-direction:column;justify-content:center;padding:4rem 2rem;background-color:transparent;z-index:2;position:relative;order:2}.hero-wrapper{max-width:500px;margin:0 auto;width:100%}.eyebrow{font-family:var(--font-primary);font-size:0.75rem;letter-spacing:0.25em;text-transform:uppercase;color:var(--color-text-light);display:block;margin-bottom:2rem;opacity:0;animation:fadeIn 0.8s ease-out forwards}.hero-text-col h1{font-family:'Playfair Display',serif;font-size:4rem;line-height:1.1;color:#1a1a1a;margin-bottom:1.5rem;letter-spacing:-0.02em;opacity:0;animation:slideUp 0.8s ease-out 0.2s forwards}.hero-text-col h1 i{font-family:'Cormorant Garamond',serif;font-weight:300;font-style:italic;color:var(--color-accent)}.hero-desc{font-family:var(--font-primary);color:#555;font-size:1.1rem;line-height:1.6;margin-bottom:3rem;font-weight:300;opacity:0;animation:slideUp 0.8s ease-out 0.4s forwards}.hero-sub-seo{font-family:var(--font-primary);color:#888;font-size:0.85rem;line-height:1.4;margin-bottom:2rem;font-weight:300;opacity:0.6;margin-top:-1.5rem}.hero-actions{display:flex;gap:1rem;margin-bottom:4rem;opacity:0;animation:slideUp 0.8s ease-out 0.5s forwards}.btn{padding:1rem 2.5rem;text-transform:uppercase;letter-spacing:0.1em;font-size:0.85rem;cursor:pointer;transition:all 0.3s ease}.btn-primary{background-color:var(--color-accent);color:#fff;border:1px solid var(--color-accent)}.btn-primary:hover{background-color:var(--color-accent-dark);color:#fff;border-color:var(--color-accent-dark)}.btn-outline{background-color:transparent;color:var(--color-accent);border:1px solid var(--color-accent)}.btn-outline:hover{background-color:var(--color-accent);border-color:var(--color-accent);color:#fff}.hero-stats{display:flex;gap:3rem;border-top:1px solid #eee;padding-top:2rem;opacity:0;animation:fadeIn 1s ease-out 0.8s forwards}.hero-stats div{display:flex;flex-direction:column}.hero-stats strong{font-family:'Playfair Display',serif;font-size:1.5rem;color:#1a1a1a}.hero-stats span{font-size:0.75rem;text-transform:uppercase;letter-spacing:0.1em;color:#999}.hero-visual-col{flex:1.2;position:relative;overflow:hidden;height:38vh;min-height:250px}@media(min-width:992px){.hero-visual-col{height:100%;min-height:100%;width:50%;flex:1.2}}.img-wrapper{width:100%;height:100%}.img-wrapper img{width:100%;height:100%;object-fit:cover;transform:scale(1.1);animation:scaleDown 1.5s cubic-bezier(0.2,0.8,0.2,1) forwards}@keyframes fadeIn{to{opacity:1}}@keyframes slideUp{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes scaleDown{to{transform:scale(1)}}@media(max-width:768px){.hero-text-col{padding:2rem 1.5rem 4rem 1.5rem;order:2;text-align:left}.hero-split{flex-direction:column}.hero-visual-col{order:1;height:45vh}.hero-text-col h1{font-size:3rem}.hero-actions{justify-content:center}.hero-stats{justify-content:center}.btn{padding:0.8rem 2rem}}.featured{padding-top:5rem}@media(min-width:992px){.hero-split{flex-direction:row;height:calc(100vh - 90px);min-height:600px}.hero-text-col{padding:4rem 8rem 4rem 4rem;order:1;justify-content:center;align-items:flex-end}.hero-wrapper{margin-left:auto!important;margin-right:0!important;text-align:left}.hero-visual-col{order:2;height:100%;min-height:100%;width:50%;flex:1.2}}.hero-title-wrapper-th{font-family:'Mitr',sans-serif;font-weight:300;color:var(--color-text-light)}.hero-title-accent{color:var(--color-accent);font-weight:500}.hero-title-text-light{font-weight:500;color:var(--color-text-light)}.swiper-slide-img{object-fit:cover;object-position:center;min-height:100%}.contact-cta-section{padding:100px 0 180px}.contact-cta-title{font-size:2rem;margin-bottom:1rem}.contact-cta-desc{margin-bottom:2rem;color:#666}.prop-tag-sold{background:#000;color:#fff}.prop-price-container{margin-top:1rem}

/* Home CTA redesign */
.contact-cta-section{
  padding:5rem 0 7rem;
}
.contact-cta-shell{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.6fr) minmax(260px,.9fr);
  gap:2rem;
  padding:clamp(1.35rem,3vw,3rem);
  border-radius:28px;
  border:1px solid #e4d3bd;
  background:
    radial-gradient(520px 260px at 102% 0%, rgba(183,133,63,.23), rgba(183,133,63,0)),
    radial-gradient(460px 240px at -8% 100%, rgba(183,133,63,.17), rgba(183,133,63,0)),
    linear-gradient(158deg,#ffffff 0%,#f7f1e8 53%,#efe4d4 100%);
  box-shadow:0 24px 52px rgba(48,31,13,.12);
  overflow:hidden;
}
.contact-cta-main{
  position:relative;
  z-index:2;
}
.contact-cta-kicker{
  margin:0 0 .8rem;
  font-size:.74rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#8d6d48;
  font-weight:600;
}
.contact-cta-title{
  font-family:var(--font-th);
  font-size:clamp(2rem,3.35vw,3rem);
  line-height:1.14;
  letter-spacing:-.01em;
  margin:0 0 1rem;
  color:#16110a;
}
:lang(th) .contact-cta-title,
html[lang="th"] .contact-cta-title{
  font-family:"Mitr",sans-serif;
  color:var(--color-text-light);
  font-weight:500;
}
.contact-cta-title:lang(en){
  font-family:"Playfair Display",serif;
  font-weight:600;
}
.contact-cta-desc{
  margin:0 0 1.2rem;
  max-width:70ch;
  font-size:clamp(1rem,1.2vw,1.08rem);
  line-height:1.75;
  color:#4d3e2f;
}
.contact-cta-highlights{
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
  margin:0 0 1.5rem;
}
.contact-cta-highlights span{
  display:inline-flex;
  align-items:center;
  gap:.42rem;
  padding:.54rem .78rem;
  border-radius:999px;
  border:1px solid rgba(166,138,100,.38);
  background:rgba(255,255,255,.7);
  color:#453628;
  font-size:.88rem;
  font-weight:500;
}
.contact-cta-highlights i{
  font-size:1rem;
  color:#9a7446;
}
.contact-cta-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.78rem;
}
.contact-cta-actions .btn{
  min-width:190px;
  text-transform:none;
  letter-spacing:.03em;
  font-size:.92rem;
  height:50px;
  border-radius:12px;
  font-weight:600;
}
.contact-cta-btn-main{
  box-shadow:0 12px 24px rgba(161,118,61,.24);
  background:linear-gradient(135deg,#6f4e2b 0%,#7f5a33 100%);
  border-color:#684925;
  color:#ffffff;
  -webkit-text-fill-color:currentColor;
  text-shadow:0 1px 0 rgba(0,0,0,.2);
  font-weight:700;
}
.contact-cta-btn-main:hover,
.contact-cta-btn-main:focus-visible,
.contact-cta-btn-main:active{
  background:linear-gradient(135deg,#5f4324 0%,#704f2d 100%);
  border-color:#5a3f22;
  color:#ffffff;
  -webkit-text-fill-color:currentColor;
}
.contact-cta-btn-main:focus-visible{
  outline:2px solid #2b2117;
  outline-offset:2px;
}
.contact-cta-btn-main-label{
  position:relative;
  z-index:1;
  color:inherit;
  -webkit-text-fill-color:inherit;
  -webkit-text-stroke:0;
  font-weight:700;
}
.contact-cta-btn-alt{
  background:#ffffffb0;
  color:#7c5a32;
  border-color:#c7a97f;
}
.contact-cta-btn-alt:hover{
  background:#f7e8d3;
  color:#593f24;
  border-color:#b7894e;
}
.contact-cta-side{
  display:flex;
  align-items:stretch;
}
.contact-cta-side-panel{
  width:100%;
  background:linear-gradient(180deg,rgba(255,255,255,.85),rgba(253,246,236,.72));
  border:1px solid rgba(169,132,84,.32);
  border-radius:18px;
  padding:1.15rem;
  box-shadow:0 10px 24px rgba(43,29,13,.08);
}
.cta-side-row{
  padding:.8rem .65rem;
}
.cta-side-row + .cta-side-row{
  border-top:1px solid rgba(162,128,85,.22);
}
.cta-side-label{
  display:block;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:#8a6b49;
  margin-bottom:.28rem;
}
.contact-cta-kicker:lang(th),
.cta-side-label:lang(th){
  text-transform:none;
  letter-spacing:.04em;
}
.cta-side-value{
  display:block;
  font-size:1rem;
  line-height:1.35;
  color:#2a2218;
  font-weight:600;
}
:lang(th) .cta-side-value,
html[lang="th"] .cta-side-value{
  font-family:"Mitr",sans-serif;
  color:var(--color-text-light);
  font-weight:500;
}
@media(max-width:992px){
  .contact-cta-shell{
    grid-template-columns:1fr;
    gap:1.15rem;
  }
  .contact-cta-desc{
    max-width:none;
  }
}
@media(max-width:768px){
  .contact-cta-section{
    padding:3.4rem 0 5.2rem;
  }
  .contact-cta-shell{
    padding:1.15rem;
    border-radius:20px;
  }
  .contact-cta-title{
    font-size:clamp(1.6rem,8vw,2.05rem);
  }
  .contact-cta-highlights{
    gap:.45rem;
  }
  .contact-cta-highlights span{
    width:100%;
    justify-content:flex-start;
    border-radius:12px;
  }
  .contact-cta-actions{
    flex-direction:column;
  }
  .contact-cta-actions .btn{
    width:100%;
    min-width:0;
  }
  .cta-side-value{
    font-size:.93rem;
  }
}
/* Featured Cards Redesign */
.featured {
  padding-top: 4.25rem;
  padding-bottom: 1.2rem;
}

.featured .section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.4rem;
}

.featured .section-header h2 {
  margin: 0;
  font-family: "Playfair Display", var(--font-heading), serif;
  font-size: clamp(1.8rem, 3.2vw, 2.55rem);
  color: #8f6f44;
  line-height: 1.1;
}

:lang(th) .featured .section-header h2 {
  font-family: "Mitr", "Noto Sans Thai", sans-serif;
  font-weight: 500;
}

.featured .view-all {
  text-decoration: none;
  border: 1px solid #d9c7aa;
  color: #7a623f;
  background: #fff;
  border-radius: 999px;
  padding: 0.45rem 0.9rem;
  font-size: 0.84rem;
  font-weight: 600;
}

.featured .view-all:hover {
  color: #fff;
  background: var(--color-accent);
  border-color: var(--color-accent);
}

.featured .property-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.featured .prop-card {
  border: 1px solid #eadfcd;
  background: linear-gradient(180deg, #ffffff 0%, #fcf8f1 100%);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 10px 24px rgba(24, 17, 9, 0.07);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.featured .prop-card:hover {
  transform: translateY(-6px);
  border-color: #d9be93;
  box-shadow: 0 18px 36px rgba(24, 17, 9, 0.12);
}

.featured .prop-card > a {
  color: inherit;
  text-decoration: none;
  display: block;
}

.featured .prop-img {
  position: relative;
  height: auto;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #ebe6de;
}

.featured .prop-img::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 42%;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.28), rgba(0, 0, 0, 0));
  pointer-events: none;
}

.featured .prop-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.45s ease;
}

.featured .prop-card:hover .prop-img img {
  transform: scale(1.05);
}

.featured .prop-img .tag {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 3;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.55);
  background: rgba(255, 255, 255, 0.94);
  color: #29231d;
  font-size: 0.68rem;
  font-weight: 700;
  font-family: "Outfit", "Segoe UI", "Tahoma", "Noto Sans Thai", sans-serif;
  line-height: 1.08;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  text-shadow: none;
  -webkit-text-stroke: 0;
  text-rendering: geometricPrecision;
  padding: 0.32rem 0.68rem;
  backdrop-filter: blur(6px);
}

.featured .prop-img .tag.tag--rent {
  background: #f3cf56;
  border-color: rgba(124, 93, 32, 0.45);
  color: #3b2a0b;
}

.featured .prop-img .tag.tag--sale {
  background: #d63a3a;
  border-color: rgba(255, 255, 255, 0.62);
  color: #ffffff;
}

:lang(th) .featured .prop-img .tag {
  font-family: "Tahoma", "Noto Sans Thai", "Mitr", sans-serif;
  letter-spacing: 0;
  text-transform: none;
}

.featured .prop-img .prop-tag-sold {
  background: rgba(15, 15, 15, 0.88);
  color: #fff;
  border-color: rgba(255, 255, 255, 0.22);
}

.featured .prop-photo-count {
  position: absolute;
  right: 10px;
  bottom: 10px;
  z-index: 3;
  border-radius: 999px;
  background: rgba(13, 13, 13, 0.62);
  color: #fff;
  padding: 0.28rem 0.56rem;
  font-size: 0.72rem;
  font-weight: 600;
  font-family: "Outfit", "Segoe UI", "Tahoma", "Noto Sans Thai", sans-serif;
  line-height: 1;
  text-shadow: none;
  -webkit-text-stroke: 0;
  text-rendering: geometricPrecision;
  backdrop-filter: blur(4px);
}

:lang(th) .featured .prop-photo-count {
  font-family: "Tahoma", "Noto Sans Thai", "Mitr", sans-serif;
}

.featured .prop-info {
  padding: 0.95rem 1rem 1.05rem;
}

.featured .prop-info .location {
  font-size: 0.8rem;
  color: #7d6f5d;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 0.45rem;
}

:lang(th) .featured .prop-info .location {
  text-transform: none;
  letter-spacing: 0;
}

.featured .prop-info h3 {
  margin: 0;
  font-size: 1.08rem;
  line-height: 1.45;
  color: #221c16;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 3.05rem;
}

:lang(th) .featured .prop-info h3 {
  font-family: "Mitr", "Noto Sans Thai", sans-serif;
  font-weight: 400;
}

.featured .prop-info .specs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 0.75rem;
}

.featured .prop-info .specs span {
  background: #f7f1e6;
  border: 1px solid #e7dbc8;
  color: #6a5c49;
  border-radius: 999px;
  padding: 0.22rem 0.58rem;
  font-size: 0.75rem;
  font-weight: 500;
}

.featured .prop-info .price {
  margin-top: 0.86rem;
  font-size: 1.42rem;
  font-weight: 700;
  color: #9a7847;
  line-height: 1.2;
  font-family: "Outfit", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  font-variant-numeric: tabular-nums lining-nums;
  font-feature-settings: "tnum" 1, "lnum" 1;
  letter-spacing: -0.006em;
}

.hero-actions .btn.btn-primary {
  color: #fffef7;
  border-radius: 14px;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
  -webkit-text-stroke: 0;
}

.hero-actions .btn.btn-primary::before {
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.16) 0%,
    rgba(255, 255, 255, 0) 86%
  );
}

.hero-actions .btn.btn-primary:hover {
  color: #ffffff;
}

@media (max-width: 1199px) {
  .featured .property-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .featured {
    padding-top: 2.8rem;
  }

  .featured .section-header {
    flex-wrap: wrap;
    margin-bottom: 1rem;
  }

  .featured .property-grid {
    grid-template-columns: 1fr;
    gap: 0.85rem;
  }

  .featured .prop-info h3 {
    font-size: 1rem;
  }
}

@media (max-width: 768px) {
  .hero-actions .btn.btn-primary {
    background-color: var(--color-accent-dark);
    border-color: var(--color-accent-dark);
    color: #fff;
  }

  .hero-swiper .swiper-pagination-bullet {
    border: 20px solid transparent;
    margin: 0 -16px;
    background-clip: content-box;
    box-sizing: content-box;
  }

  .hero-swiper .swiper-pagination {
    overflow: visible;
  }
}

.hero-mobile-cover,
.hero-swiper-shell {
  width: 100%;
  height: 100%;
}

.hero-mobile-cover {
  position: relative;
  z-index: 1;
}

.hero-mobile-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.hero-swiper-shell {
  display: none;
}

@media (min-width: 992px) {
  .hero-mobile-cover,
  .hero-swiper-shell {
    position: absolute;
    inset: 0;
  }

  .hero-mobile-cover {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: opacity 0.28s ease, visibility 0.28s ease;
  }

  .hero-swiper-shell {
    display: block;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    z-index: 2;
    transition: opacity 0.28s ease, visibility 0.28s ease;
  }

  .hero-visual-col.hero-swiper-ready .hero-mobile-cover {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }

  .hero-visual-col.hero-swiper-ready .hero-swiper-shell {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
}

/* Keep homepage advisor CTA text/background contrast accessible */
.contact-cta-actions a.btn.btn-primary.contact-cta-btn-main,
.contact-cta-actions a.btn.btn-primary.contact-cta-btn-main:hover,
.contact-cta-actions a.btn.btn-primary.contact-cta-btn-main:focus-visible,
.contact-cta-actions a.btn.btn-primary.contact-cta-btn-main:active {
  color: #ffffff !important;
  -webkit-text-fill-color: currentColor !important;
  -webkit-text-stroke: 0 !important;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.2) !important;
  font-weight: 700;
}

.contact-cta-actions a.btn.btn-primary.contact-cta-btn-main::before {
  content: none !important;
}

@media (max-width: 991px) {
  .hero-bg-shapes {
    display: none;
  }

  .hero-mobile-cover img,
  .img-wrapper img {
    animation: none !important;
    transform: none !important;
  }

  .featured,
  .contact-cta-section {
    content-visibility: auto;
    contain-intrinsic-size: 1px 920px;
  }
}
