/* Site structure: sitemap footer, descriptive navigation menus, district pages, About pages
   and homepage sections. Uses the existing SF type, neutral/blue palette and glass cards. */

/* Navigation menus (Apple-style flyout panels with Tribe-style link descriptions). */
.nav-drop{position:static}
.nav-drop-toggle{display:flex;align-items:center;gap:6px;min-height:44px;padding:0;border:0;background:none;color:#1d1d1f;font:inherit;cursor:pointer;white-space:nowrap}
.nav-drop-toggle svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:transform var(--segment-duration,.75s) var(--segment-easing,cubic-bezier(.2,.8,.2,1))}
.nav-drop-toggle[aria-expanded=true] svg{transform:rotate(180deg)}
.nav-drop-toggle:hover{color:#0066cc}
.nav-flyout h3{margin:0 0 12px;font-size:12px;font-weight:400;line-height:1.4;letter-spacing:0;color:#6e6e73}
.nav-flyout a strong{display:block;font-weight:500;color:inherit}
.nav-flyout a span{display:block;color:#6e6e73}
.flyout-districts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 10px}
@media(min-width:801px){
  .nav-flyout{position:absolute;left:0;right:0;top:100%;z-index:30;padding:34px 0 42px;background:rgba(250,250,252,.96);border-bottom:1px solid rgba(0,0,0,.1);box-shadow:0 24px 48px rgba(0,0,0,.06);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);animation:nav-flyout-in .45s var(--segment-easing,cubic-bezier(.2,.8,.2,1))}
  .nav-flyout-inner{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));gap:40px;width:min(1200px,calc(100% - var(--hig-gutter) - var(--hig-gutter)));margin:0 auto}
  .nav nav .nav-flyout a{display:block;padding:8px 0;color:#1d1d1f;font-size:17px;line-height:1.3;white-space:normal}
  .nav-flyout a strong{font-size:17px;letter-spacing:-.01em}
  .nav-flyout a span{margin-top:3px;font-size:13px;line-height:1.4}
  .nav nav .nav-flyout a:hover strong{color:#0066cc}
  .nav nav .nav-flyout .flyout-districts a{padding:5px 0;font-size:13px}
  body:has(main>.hero:first-child) .nav-drop-toggle{color:#f5f5f7}
  body:has(main>.hero:first-child) .nav-drop-toggle:hover{color:#fff;opacity:.72}
  body:has(main>.hero:first-child) .nav-flyout{background:rgba(22,22,23,.94);border-bottom-color:rgba(255,255,255,.12);box-shadow:0 24px 48px rgba(0,0,0,.25)}
  body:has(main>.hero:first-child) .nav nav .nav-flyout a{color:#f5f5f7}
  body:has(main>.hero:first-child) .nav-flyout h3,body:has(main>.hero:first-child) .nav-flyout a span{color:#a1a1a6}
  body:has(main>.hero:first-child) .nav nav .nav-flyout a:hover strong{color:#2997ff}
}
@media(max-width:800px){
  .nav-drop{width:100%}
  .nav-drop-toggle,body:has(main>.hero:first-child) .nav-drop-toggle{width:100%;justify-content:space-between;min-height:48px;padding:13px 14px;color:#1d1d1f;font-size:16px}
  .nav-flyout{padding:0 8px 12px}
  .nav-flyout-inner{display:grid;gap:16px}
  .nav-flyout h3{margin:4px 6px}
  .nav nav .nav-flyout a{display:block;min-height:0;padding:9px 6px;border-radius:10px;color:#1d1d1f;font-size:15px;line-height:1.35}
  .nav-flyout a strong{font-weight:400}
  .nav-flyout a span{display:none}
  .nav nav .nav-flyout a:hover{background:#f0f0f5}
}
@keyframes nav-flyout-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

/* Sitemap footer. */
.site-footer.sitemap-footer{display:block;padding:56px max(var(--hig-gutter),calc((100% - 1200px)/2)) 32px;font-size:13px;line-height:1.5}
.site-footer.sitemap-footer>div{display:block}
.site-footer.sitemap-footer>.footer-top{display:grid;grid-template-columns:minmax(280px,1.3fr) minmax(0,3.7fr);gap:40px;align-items:start}
.footer-sitemap{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:24px}
.footer-sitemap>div{display:flex;flex-direction:column;align-items:flex-start;gap:9px;min-width:0}
.sitemap-footer h2{margin:0 0 4px;font-size:13px;font-weight:600;line-height:1.4;letter-spacing:0;color:#1d1d1f}
.footer-sitemap a,.footer-districts a{color:#6e6e73;font-size:13px;line-height:1.4}
.sitemap-footer a:hover{color:#0066cc}
.footer-districts{margin-top:40px;padding-top:24px;border-top:1px solid #d2d2d7}
.footer-districts>div{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px 24px;margin-top:14px}
.footer-districts a{font-size:12px}
.footer-districts a span{margin-right:2px;color:#1d1d1f;font-variant-numeric:tabular-nums}
.footer-legal{margin-top:28px;padding-top:20px;border-top:1px solid #d2d2d7;font-size:12px;color:#86868b}
.site-footer .footer-legal p{margin:0 0 6px;max-width:none;font-size:12px}
@media(max-width:1180px){.site-footer.sitemap-footer>.footer-top{grid-template-columns:1fr}}
@media(max-width:1000px){
  .footer-sitemap{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 24px}
}
@media(max-width:800px){
  .site-footer.sitemap-footer{padding:40px 20px 28px}
  .footer-sitemap{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}
  .footer-districts>div{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Homepage sections. */
main#top>.home-stats,main#top>.home-section{width:min(1200px,calc(100% - var(--hig-gutter) - var(--hig-gutter)));margin-inline:auto}
.home-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;padding:56px 0 8px}
.home-stats>div{padding-top:20px;border-top:1px solid #d2d2d7}
.home-stats strong{display:block;font-size:clamp(34px,4vw,48px);font-weight:500;line-height:1.1;letter-spacing:-.03em;color:#1d1d1f;font-variant-numeric:tabular-nums}
.home-stats span{display:block;margin-top:8px;font-size:15px;line-height:1.45;color:#6e6e73}
.home-section h2{margin:0 0 20px;font-size:clamp(30px,3.5vw,48px);font-weight:500;line-height:1.12;letter-spacing:-.03em}
.home-section h3{font-size:21px;font-weight:500;letter-spacing:-.02em;line-height:1.3}
.home-section p{font-size:17px;line-height:1.65;color:#6e6e73}
.home-section .advisory-text-link{display:inline-block;margin-top:28px}
.home-section.advisory-faq{margin-bottom:24px}
@media(max-width:800px){
  main#top>.home-stats,main#top>.home-section{width:calc(100% - 40px)}
  .home-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px;padding-top:40px}
  .home-section p{font-size:16px;line-height:1.6}
}

/* District pages and directory strip. */
.district-head{max-width:860px}
.district-head .district-areas{margin-bottom:12px;font-size:21px;line-height:1.4;color:#1d1d1f}
.district-section{padding-top:72px}
.district-section .launch-project-grid{margin-top:28px}
.district-sold{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:0 28px;margin-top:20px}
.district-sold a{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:14px 0;border-bottom:1px solid #e8e8ed}
.district-sold strong{font-weight:500;color:#1d1d1f}
.district-sold span{flex:none;font-size:14px;color:#6e6e73}
.district-sold a:hover strong{color:#0066cc}
.district-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.district-chips a{padding:8px 14px;border:1px solid #d2d2d7;border-radius:99px;background:rgba(255,255,255,.6);font-size:14px;font-variant-numeric:tabular-nums}
.district-chips a:hover{border-color:#0066cc;color:#0066cc}
.district-chips a[aria-current=page]{border-color:#1d1d1f;background:#1d1d1f;color:#fff}
.district-browse{padding:72px 0 24px}
.district-browse-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-top:24px}
.district-browse-grid a{display:block;padding:16px 18px;border:1px solid #e8e8ed;border-radius:18px;background:rgba(255,255,255,.68)}
.district-browse-grid strong{display:block;font-size:17px;font-weight:500;color:#1d1d1f}
.district-browse-grid span{display:block;margin-top:2px;font-size:13px;line-height:1.4;color:#6e6e73}
.district-browse-grid a:hover{border-color:#0066cc}

/* About, How I work, Reviews and Contact pages. */
.structure-page .launch-eyebrow{display:block;margin-bottom:14px;font-size:14px;line-height:1.4;color:#6e6e73}
.structure-page .page-intro{max-width:860px}
.structure-portrait img{object-position:center 22%}
.structure-cta{margin:88px 0 72px;padding:40px;border:1px solid #e8e8ed;border-radius:24px;background:rgba(255,255,255,.7)}
.structure-cta>div{display:flex;flex-direction:column;align-items:flex-start;gap:18px}
.structure-cta h2,.structure-cta p{margin:0}
.district-page .structure-cta{margin-top:72px}
.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.review-card{padding:30px;border:1px solid #e8e8ed;border-radius:22px;background:rgba(255,255,255,.68)}
.review-card p{color:#1d1d1f}
.review-card span{font-size:14px;color:#6e6e73}
.contact-phone{font-size:clamp(28px,3vw,40px);font-weight:500;letter-spacing:-.02em;color:#1d1d1f}
.contact-phone:hover{color:#0066cc}
.structure-page .journal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-top:28px}
.structure-page .journal-grid a{display:block;padding:28px;border:1px solid #e8e8ed;border-radius:20px;background:#ffffffa6}
.structure-page .journal-grid strong{display:block;font-size:21px;font-weight:500;letter-spacing:-.02em;color:#1d1d1f}
.structure-page .journal-grid span{display:block;margin-top:10px;line-height:1.5;color:#6e6e73}
.structure-page .journal-grid a:hover{border-color:#0066cc}
.structure-page .advisory-section .advisory-text-link{display:inline-block;margin-top:24px}
@media(min-width:801px){.structure-page .advisory-steps:has(>article:nth-child(4)){grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:800px){
  .structure-cta{margin:56px 0 48px;padding:26px 22px}
  .review-grid{grid-template-columns:1fr}
  .district-section{padding-top:52px}
}

/* Shared helpers. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* Homepage ticker of launches and news (Lofty-style). */
.home-ticker{overflow:hidden;border-bottom:1px solid #d2d2d7;background:rgba(255,255,255,.72);-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.ticker-track{display:flex;width:max-content;animation:ticker-scroll 90s linear infinite}
.home-ticker:hover .ticker-track,.home-ticker:focus-within .ticker-track{animation-play-state:paused}
.ticker-track ul{display:flex;gap:36px;margin:0;padding:14px 18px;list-style:none}
.ticker-track a{display:flex;align-items:center;gap:10px;white-space:nowrap;font-size:14px;color:#1d1d1f}
.ticker-track img{width:32px;height:32px;border-radius:8px;object-fit:cover}
.ticker-track strong{font-weight:500}
.ticker-track span{color:#6e6e73}
.ticker-track a:hover strong{color:#0066cc}
.ticker-track .ticker-tag{padding:3px 8px;border-radius:99px;background:#e8f1fb;color:#0066cc;font-size:12px}
@keyframes ticker-scroll{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.ticker-track{animation:none}.home-ticker{overflow-x:auto}.ticker-track ul[aria-hidden]{display:none}}

/* Launch finder with featured project card (Lofty card + Tribe search). */
main#top>.home-finder{width:min(1200px,calc(100% - var(--hig-gutter) - var(--hig-gutter)));margin:0 auto;padding:72px 0 16px}
.home-finder{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:56px;align-items:center}
.finder-eyebrow{display:block;margin-bottom:14px;font-size:14px;color:#6e6e73}
.home-finder h2{margin:0 0 18px;font-size:clamp(34px,4.4vw,56px);font-weight:500;line-height:1.08;letter-spacing:-.035em}
.finder-copy>p{margin:0;max-width:520px;font-size:17px;line-height:1.6;color:#6e6e73}
.finder-form{position:relative;display:flex;gap:10px;max-width:560px;margin-top:28px}
.finder-form input{flex:1;min-width:0;min-height:52px;padding:0 20px;border:1px solid #d2d2d7;border-radius:99px;background:#fff;font:inherit;font-size:16px;color:#1d1d1f}
.finder-form input:focus{outline:none;border-color:#0071e3;box-shadow:0 0 0 4px rgba(0,113,227,.15)}
.finder-form button{display:inline-flex;align-items:center;gap:14px;min-height:52px;padding:0 24px;border:0;border-radius:99px;background:#0071e3;color:#fff;font:inherit;font-size:16px;cursor:pointer}
.finder-form button:hover{background:#0077ed}
.finder-results{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 8px);margin:0;padding:8px;list-style:none;border:1px solid #e5e5ea;border-radius:18px;background:rgba(250,250,252,.97);box-shadow:0 18px 48px rgba(0,0,0,.12);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}
.finder-results a{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:12px;color:#1d1d1f}
.finder-results a:hover,.finder-results a:focus{background:#f0f0f5;outline:none}
.finder-results span{font-size:14px;color:#6e6e73;white-space:nowrap}
.finder-empty{padding:12px 14px;color:#6e6e73}
.finder-results .finder-empty a{display:inline;padding:0;color:#0066cc}
.finder-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:40px}
.finder-stats div{padding-top:16px;border-top:1px solid #d2d2d7}
.finder-stats strong{display:block;font-size:32px;font-weight:500;line-height:1.1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.finder-stats span{display:block;margin-top:6px;font-size:14px;line-height:1.4;color:#6e6e73}
.finder-card{overflow:hidden;border:1px solid #e8e8ed;border-radius:28px;background:rgba(255,255,255,.78);box-shadow:0 24px 60px rgba(29,29,31,.08)}
.finder-card-image{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;background:#e8e8ed}
.finder-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .75s cubic-bezier(.2,.8,.2,1)}
.finder-card-image:hover img{transform:scale(1.03)}
.finder-card-image span{position:absolute;top:16px;right:16px;padding:6px 12px;border-radius:99px;background:rgba(255,255,255,.85);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font-size:13px;color:#1d1d1f}
.finder-card-body{padding:24px 26px 26px}
.finder-card h3{margin:0;font-size:26px;font-weight:500;letter-spacing:-.02em}
.finder-card-body>p{margin:4px 0 0;font-size:15px;color:#6e6e73}
.finder-price{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:18px;padding:14px 16px;border-radius:14px;background:#f5f5f7}
.finder-price span{font-size:14px;color:#6e6e73}
.finder-price strong{font-size:24px;font-weight:500;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.finder-facts{margin:14px 0 0}
.finder-facts div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid #e8e8ed;font-size:14px}
.finder-facts dt{color:#6e6e73}
.finder-facts dd{margin:0;text-align:right;color:#1d1d1f}
.finder-card .finder-note{margin:14px 0 18px;font-size:13px;line-height:1.45;color:#86868b}
@media(max-width:900px){.home-finder{grid-template-columns:1fr;gap:40px}}
@media(max-width:800px){
  main#top>.home-finder{width:calc(100% - 40px);padding-top:48px}
  .finder-form{flex-direction:column}
  .finder-form button{justify-content:center}
  .finder-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .finder-card-body{padding:20px}
}

/* Latest news on the homepage (Tribe "latest analysis"). */
.home-news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:28px}
.home-news-card{display:flex;flex-direction:column;overflow:hidden;border:1px solid #e8e8ed;border-radius:22px;background:rgba(255,255,255,.7)}
.home-news-card img{width:100%;aspect-ratio:16/10;object-fit:cover}
.home-news-card>span,.home-news-card>strong{padding:0 22px}
.home-news-card .home-news-meta{margin-top:18px;font-size:13px;color:#6e6e73}
.home-news-card strong{margin-top:8px;font-size:21px;font-weight:500;line-height:1.3;letter-spacing:-.02em;color:#1d1d1f}
.home-news-card>span:last-child{margin:10px 0 22px;font-size:15px;line-height:1.5;color:#6e6e73}
.home-news-card:hover strong{color:#0066cc}
@media(max-width:800px){.home-news-grid{grid-template-columns:1fr}}

/* Sun path & facing tool. */
.sun-controls{display:flex;flex-wrap:wrap;align-items:center;gap:14px}
.sun-controls>span{font-size:15px;color:#6e6e73}
.sun-facings{display:flex;flex-wrap:wrap;gap:8px}
.sun-facings button{min-width:56px;min-height:44px;padding:0 16px;border:1px solid #d2d2d7;border-radius:99px;background:rgba(255,255,255,.7);font:inherit;font-size:15px;color:#1d1d1f;cursor:pointer;transition:background .75s cubic-bezier(.2,.8,.2,1),color .75s cubic-bezier(.2,.8,.2,1)}
.sun-facings button:hover{border-color:#0066cc;color:#0066cc}
.sun-facings button[aria-pressed=true]{border-color:#1d1d1f;background:#1d1d1f;color:#fff}
.sun-summary{margin:24px 0 18px;font-size:21px;line-height:1.4;letter-spacing:-.01em;color:#1d1d1f}
.sun-tool{min-width:0;max-width:100%}
.sun-chart-wrap,.planning-table-wrap{position:relative}
.sun-chart-wrap{max-width:100%;overflow-x:auto;padding:20px;border:1px solid #e8e8ed;border-radius:22px;background:rgba(255,255,255,.7)}
.sun-chart{width:100%;min-width:620px;border-collapse:separate;border-spacing:3px;font-size:12px;color:#6e6e73}
.sun-chart th{font-weight:400;text-align:center;padding:2px 0}
.sun-chart tbody th{text-align:left;padding-right:8px;color:#1d1d1f}
.sun-chart td{height:26px;border-radius:6px}
.sun-l0{background:#f0f0f3}.sun-l1{background:#ffe2b3}.sun-l2{background:#ffc266}.sun-l3{background:#ff9f0a}
.sun-legend{display:flex;flex-wrap:wrap;gap:18px;margin-top:14px;font-size:13px;color:#6e6e73}
.sun-legend span{display:inline-flex;align-items:center;gap:8px}
.sun-legend i{display:inline-block;width:14px;height:14px;border-radius:4px}
@media(max-width:800px){.sun-summary{font-size:18px}.sun-chart-wrap{padding:12px}}

/* Planning tools: same form and result card as the core calculators. */
.planning-crumb{display:inline-block;margin-bottom:14px;font-size:14px;color:#0066cc}
.planning-pair{display:grid;gap:16px;margin:0;padding:18px;border:1px solid #e8e8ed;border-radius:18px}
.planning-pair legend{padding:0 6px;font-size:15px;font-weight:500;color:#1d1d1f}
.planning-table-wrap{margin-top:24px;overflow-x:auto;border:1px solid #e8e8ed;border-radius:22px;background:rgba(255,255,255,.86)}
.planning-table{width:100%;min-width:680px;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}
.planning-table th,.planning-table td{padding:14px 16px;border-bottom:1px solid #e8e8ed;text-align:right;vertical-align:top}
.planning-table thead th{font-size:13px;font-weight:400;color:#6e6e73}
.planning-table th:first-child{text-align:left}
.planning-table tbody th{font-weight:500;color:#1d1d1f}
.planning-table tbody th small{display:block;margin-top:2px;font-size:12px;font-weight:400;color:#6e6e73}
.planning-table tbody tr:last-child>*{border-bottom:0}
.planning-more{margin-top:72px}
.planning-more h2{margin:0 0 20px;font-size:clamp(28px,3vw,40px);font-weight:500;letter-spacing:-.03em}
.planning-more-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}
.planning-more-grid a{display:block;padding:22px;border:1px solid #e8e8ed;border-radius:20px;background:rgba(255,255,255,.7)}
.planning-more-grid strong{display:block;font-size:18px;font-weight:500;color:#1d1d1f}
.planning-more-grid span{display:block;margin-top:6px;font-size:14px;line-height:1.45;color:#6e6e73}
.planning-more-grid a:hover{border-color:#0066cc}
.planning-page .structure-cta{margin-bottom:24px}

/* Glossary and buyer's journey. */
.glossary-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px;margin:0}
.glossary-item{padding:22px 0;border-bottom:1px solid #d2d2d7;scroll-margin-top:140px}
.glossary-item dt strong{font-size:21px;font-weight:500;letter-spacing:-.02em;color:#1d1d1f}
.glossary-item dt span{margin-left:10px;font-size:15px;color:#6e6e73}
.glossary-item dd{margin:8px 0 0;font-size:16px;line-height:1.6;color:#6e6e73}
.glossary-item dd a{color:#0066cc;white-space:nowrap}
.journey-steps{row-gap:36px}
@media(max-width:1000px){.footer-sitemap{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){
  .glossary-list{grid-template-columns:1fr}
  .footer-sitemap{grid-template-columns:repeat(2,minmax(0,1fr))}
  .planning-more{margin-top:48px}
}

/* HDB resale data pages, price check and market charts. */
.data-table-wrap{position:relative;max-width:100%;margin-top:20px;overflow-x:auto;border:1px solid #e8e8ed;border-radius:22px;background:rgba(255,255,255,.86)}
.data-table{width:100%;min-width:560px;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}
.data-table th,.data-table td{padding:13px 16px;border-bottom:1px solid #e8e8ed;text-align:right;white-space:nowrap}
.data-table thead th{font-size:13px;font-weight:400;color:#6e6e73}
.data-table th:first-child,.data-table .cell-text{text-align:left}
.data-table tbody th{font-weight:500;color:#1d1d1f}
.data-table tbody tr:last-child>*{border-bottom:0}
.data-note{margin-top:16px!important;font-size:13px!important;line-height:1.5!important;color:#86868b!important}
.hdb-stats{margin:8px 0 0}
.hdb-town-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-top:24px}
.hdb-town-grid a{display:block;padding:18px 20px;border:1px solid #e8e8ed;border-radius:18px;background:rgba(255,255,255,.68)}
.hdb-town-grid strong{display:block;font-size:18px;font-weight:500;color:#1d1d1f}
.hdb-town-grid span{display:block;margin-top:4px;font-size:13px;color:#6e6e73}
.hdb-town-grid em{display:block;margin-top:10px;font-style:normal;font-size:14px;color:#1d1d1f;font-variant-numeric:tabular-nums}
.hdb-town-grid a:hover{border-color:#0066cc}
.planning-page .data-table-wrap{margin-top:24px}
.viz-card{position:relative;margin:16px 0 0;padding:20px;border:1px solid #e8e8ed;border-radius:22px;background:#fcfcfb}
.viz{position:relative;width:100%}
.viz svg{display:block;max-width:100%;height:auto}
.viz-grid{stroke:#e8e8ed;stroke-width:1}
.viz-axis{font-size:11px;fill:#6e6e73;font-variant-numeric:tabular-nums}
.viz-label{font-size:12px;fill:#1d1d1f}
.viz-cross{stroke:#86868b;stroke-width:1;stroke-dasharray:3 3}
.viz-tip{position:absolute;z-index:2;min-width:170px;padding:10px 12px;border:1px solid #e5e5ea;border-radius:12px;background:rgba(255,255,255,.97);box-shadow:0 8px 24px rgba(0,0,0,.12);font-size:13px;pointer-events:none}
.viz-tip strong{display:block;margin-bottom:6px;font-weight:500;color:#1d1d1f}
.viz-tip span{display:flex;align-items:center;gap:8px;color:#52514e}
.viz-tip b{margin-left:auto;font-weight:500;color:#1d1d1f;font-variant-numeric:tabular-nums}
.viz-tip i,.viz-legend i{display:inline-block;width:10px;height:10px;border-radius:3px}
.viz-legend{display:flex;flex-wrap:wrap;gap:16px;font-size:14px;color:#52514e}
.viz-legend span{display:inline-flex;align-items:center;gap:8px}
@media(max-width:800px){.viz-card{padding:12px}}

/* Floor plans grouped by unit type on project pages: closed until opened. */
.plan-group-note{max-width:860px;margin:0 0 20px;font-size:15px;line-height:1.55;color:#6e6e73}
.plan-groups{border-top:1px solid #d2d2d7}
.plan-group{border-bottom:1px solid #d2d2d7}
.plan-group>summary{display:flex;align-items:baseline;justify-content:space-between;gap:16px;min-height:64px;padding:20px 4px;cursor:pointer;list-style:none}
.plan-group>summary::-webkit-details-marker{display:none}
.plan-group>summary::after{content:'';flex:none;width:9px;height:9px;margin-left:4px;border-right:1.6px solid #1d1d1f;border-bottom:1.6px solid #1d1d1f;transform:translateY(-3px) rotate(45deg);transition:transform var(--segment-duration,.75s) var(--segment-easing,cubic-bezier(.2,.8,.2,1))}
.plan-group[open]>summary::after{transform:translateY(2px) rotate(225deg)}
.plan-group-title{font-size:21px;font-weight:500;letter-spacing:-.02em;color:#1d1d1f}
.plan-group-meta{margin-left:auto;font-size:14px;color:#6e6e73;text-align:right}
.plan-group>summary:hover .plan-group-title{color:#0066cc}
.plan-group .project-plan-grid{padding:4px 0 28px;animation:nav-flyout-in .45s var(--segment-easing,cubic-bezier(.2,.8,.2,1))}
@media(max-width:800px){.plan-group-title{font-size:19px}.plan-group-meta{font-size:13px}}

/* Home scorecard, saved launches and Chinese pages. */
.score-rows{display:grid;gap:10px}
.score-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1.1fr);align-items:end;gap:12px;padding:12px 0;border-top:1px solid #e8e8ed}
.score-label{align-self:center;font-size:15px;font-weight:500;color:#1d1d1f}
.score-row label{font-size:12px;color:#6e6e73}
.tool-result .score-send{margin-top:20px}
.watch-bar{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin:4px 0 18px}
.watch-toggle{min-height:40px;padding:0 18px;border:1px solid #d2d2d7;border-radius:99px;background:rgba(255,255,255,.75);font:inherit;font-size:15px;color:#1d1d1f;cursor:pointer;transition:background var(--segment-duration,.75s) var(--segment-easing,cubic-bezier(.2,.8,.2,1))}
.watch-toggle[aria-pressed=true]{border-color:#1d1d1f;background:#1d1d1f;color:#fff}
.watch-toggle:hover{border-color:#0066cc}
.watch-link{font-size:14px;color:#0066cc}
.watch-empty{padding:32px;border:1px solid #e8e8ed;border-radius:22px;background:rgba(255,255,255,.7)}
.watch-empty h2{margin-top:0}
.watch-actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:28px}
.watch-clear,.watch-remove{padding:0;border:0;background:none;font:inherit;font-size:14px;color:#0066cc;cursor:pointer}
.watch-remove{margin-top:12px;justify-self:start}
.zh-more{margin:0 0 48px}
.zh-more a{color:#0066cc}
@media(max-width:800px){.score-row{grid-template-columns:1fr 1fr}.score-label{grid-column:1/-1}}

/* Live rates and rates admin. */
.rates-updated{margin:0 0 8px;font-size:13px;color:#86868b}
.admin-page .tool-heading{max-width:760px}
.admin-token,.admin-form{max-width:900px;margin-top:24px;padding:28px;border:1px solid #e8e8ed;border-radius:22px;background:rgba(255,255,255,.86)}
.admin-token{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px}
.admin-token label{flex:1 1 280px}
.admin-subhead{margin:32px 0 8px;font-size:21px;font-weight:500}
.admin-table input,.admin-table select{width:100%;min-width:90px;min-height:40px;padding:0 10px;border:1px solid #d2d2d7;border-radius:10px;font:inherit;font-size:14px}
#adminStatus[data-state=error]{color:#c4271b}
#adminStatus[data-state=ok]{color:#1d7d3a}

/* News editor posts. */
.post-page .post-summary{font-size:21px;line-height:1.5;color:#1d1d1f}
.post-hero{margin:28px 0 0;overflow:hidden;border-radius:22px}
.post-hero img{display:block;width:100%;max-height:520px;object-fit:cover}
.post-body{max-width:760px;margin-top:32px;font-size:18px;line-height:1.7;color:#1d1d1f}
.post-body h2{margin:36px 0 12px;font-size:28px;font-weight:500;letter-spacing:-.02em}
.post-body h3{margin:28px 0 10px;font-size:21px;font-weight:500}
.post-body p,.post-body ul{margin:0 0 18px}
.post-body a{color:#0066cc;text-decoration:underline;text-underline-offset:3px}
.admin-preview{margin-top:8px;padding:20px;border:1px dashed #d2d2d7;border-radius:16px;font-size:16px}
.admin-form textarea{width:100%;padding:12px 14px;border:1px solid #d2d2d7;border-radius:14px;font:inherit;font-size:15px;line-height:1.5}
.admin-check{display:flex;align-items:center;gap:10px;font-size:15px}
.live-posts{margin-bottom:24px}
/* Live values inside stat figures stay inline. */
.finder-stats strong span,.finder-stats span span{display:inline;margin:0;font-size:inherit;line-height:inherit;color:inherit}
/* Home loan package comparison */
.loan-best{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:24px 0 8px}
.loan-best[hidden]{display:none}
.loan-best div{padding:18px 18px 16px;border-radius:22px;background:#f5f5f7}
.loan-best span{display:block;font-size:13px;color:#6e6e73}
.loan-best strong{display:block;margin-top:6px;font-size:30px;font-weight:500;line-height:1.1;letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:#1d1d1f}
.loan-best small{display:block;margin-top:6px;font-size:13px;line-height:1.4;color:#6e6e73}
.loan-filters{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:22px 0 10px}
.loan-filters label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#6e6e73}
.loan-filters input,.loan-filters select{min-height:44px;padding:0 12px;border:1px solid #d2d2d7;border-radius:12px;background:#fff;font:inherit;font-size:15px;color:#1d1d1f;width:100%;min-width:0}
.loan-filters input:focus,.loan-filters select:focus{outline:none;border-color:#0071e3;box-shadow:0 0 0 4px rgba(0,113,227,.15)}
.loan-count{margin:6px 0 10px;font-size:13px;color:#6e6e73}
.loan-table th small,.loan-table td small{display:block;margin-top:3px;font-size:12px;font-weight:400;line-height:1.35;color:#86868b}
.loan-table th[scope=row]{min-width:190px}
.loan-table td{white-space:nowrap;font-variant-numeric:tabular-nums}
.loan-table td strong{font-weight:500;color:#1d1d1f}
.loan-table .loan-tags{color:#0066cc}
@media (max-width:900px){.loan-best{grid-template-columns:repeat(2,minmax(0,1fr))}.loan-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:560px){.loan-best strong{font-size:24px}.loan-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
.admin-sources{margin:10px 0 14px;padding-left:18px;font-size:14px;line-height:1.6}
.admin-paste{margin:12px 0}
.admin-paste summary{cursor:pointer;color:#0066cc;font-size:15px}
.admin-paste textarea{display:block;width:100%;margin:8px 0;padding:10px 12px;border:1px solid #d2d2d7;border-radius:12px;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}
.admin-paste code,.admin-page code{font-size:13px;background:#f5f5f7;padding:1px 5px;border-radius:6px}
/* Lenis smooth scrolling (from lenis.css 1.1.13) */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}
/* Grades */
.grade-badge{display:inline-flex;align-items:baseline;gap:6px;min-width:44px;justify-content:center;padding:6px 12px;border-radius:99px;font-weight:600;font-size:15px;color:#fff;background:#8e8e93;line-height:1}
.grade-badge small{font-size:11px;font-weight:500;opacity:.85}
.grade-s{background:#0a7d55}.grade-a{background:#1baf7a}.grade-b{background:#2a78d6}.grade-c{background:#eb6834}.grade-d{background:#c2410c}.grade-none{background:#e8e8ed;color:#6e6e73}
.project-grade{display:inline-flex;align-items:center;gap:10px;margin:14px 0 0;font-size:13px;color:#6e6e73;text-decoration:none}
.project-score{display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:start;margin-top:18px}
.project-score>.grade-badge{font-size:34px;padding:16px 22px;border-radius:24px}
.score-rows{display:grid;gap:14px}
.score-row{display:grid;grid-template-columns:130px 1fr 44px;gap:4px 14px;align-items:center;font-size:15px}
.score-row small{grid-column:1/-1;color:#6e6e73;font-size:13px}
.score-bar{height:8px;border-radius:99px;background:#e8e8ed;overflow:hidden}.score-bar i{display:block;height:100%;border-radius:inherit;background:#2a78d6}
.score-row strong{text-align:right;font-weight:500;font-variant-numeric:tabular-nums}
.grade-filter{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 14px}
.grade-filter button,.unit-chips button{min-height:38px;padding:0 16px;border:1px solid #d2d2d7;border-radius:99px;background:#fff;font:inherit;font-size:14px;color:#1d1d1f;cursor:pointer;transition:background .25s,color .25s,border-color .25s}
.grade-filter button[aria-pressed=true],.unit-chips button[aria-pressed=true]{background:#1d1d1f;border-color:#1d1d1f;color:#fff}
.score-table th small,.score-table td small{display:block;font-size:12px;color:#86868b;font-weight:400}
/* Schools, comparables */
.school-lists{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:16px}
.school-lists h3{margin:0 0 8px;font-size:15px;font-weight:600}
.school-lists ul{margin:0;padding:0;list-style:none}
.school-lists li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #e8e8ed;font-size:15px}
.school-lists small{color:#6e6e73;white-space:nowrap}
/* Project section nav + PDF button */
.project-section-nav{flex-wrap:wrap}
.project-pdf-button{margin-left:auto;min-height:36px;padding:0 16px;border:1px solid #0071e3;border-radius:99px;background:#fff;color:#0071e3;font:inherit;font-size:14px;cursor:pointer}
.project-pdf-button:hover{background:#0071e3;color:#fff}
/* Unit selector */
.unit-selector{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:28px;margin-top:18px;align-items:start}
.unit-step{margin:14px 0 8px;font-size:13px;color:#6e6e73}.unit-step:first-child{margin-top:0}
.unit-chips{display:flex;flex-wrap:wrap;gap:8px}
.unit-plan{margin:0;padding:18px;border-radius:24px;background:#f5f5f7}
.unit-plan img{display:block;width:100%;height:auto;max-height:560px;object-fit:contain;border-radius:14px;background:#fff}
.unit-plan figcaption{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:12px;font-size:14px;color:#6e6e73}
.unit-plan figcaption strong{color:#1d1d1f;font-weight:500}
.unit-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;width:100%;margin-top:6px}
.unit-actions .advisory-button{margin:0}
.pdf-mode .unit-actions{display:none}
.unit-chart table{font-size:12px}.unit-chart th,.unit-chart td{padding:3px;text-align:center}
.unit-chart button{min-width:46px;min-height:30px;border:0;border-radius:8px;font:inherit;font-size:11px;cursor:pointer;background:#e8e8ed}
.unit-chart button[aria-pressed=true]{outline:2px solid #1d1d1f;outline-offset:1px}
.unit-chart .u-sold{background:#d2d2d7!important;color:#86868b;text-decoration:line-through}
.r-0{background:#dcebfb!important}.r-1{background:#d8f3e8!important}.r-2{background:#fde4d6!important}.r-3{background:#efe3fb!important}.r-4{background:#fdf1c7!important}.r-5{background:#e2e8f0!important}
.unit-legend{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.unit-legend span{padding:3px 10px;border-radius:99px;font-size:12px}
/* Projects map */
.pmap-tools{display:flex;gap:10px;margin:22px 0 12px}
.pmap-search{flex:1}.pmap-search input,.sunmap-controls input[type=search],.sunmap-controls input[type=date]{width:100%;min-height:48px;padding:0 18px;border:1px solid #d2d2d7;border-radius:99px;font:inherit;font-size:16px;background:#fff}
.pmap-near{min-height:48px;padding:0 20px;border:1px solid #d2d2d7;border-radius:99px;background:#fff;font:inherit;cursor:pointer}
.pmap-filters{display:flex;flex-wrap:wrap;gap:10px 22px;margin-bottom:14px;font-size:14px}
.pmap-filters>div{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center}
.pmap-filters label{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.pmap-wrap{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px}
.pmap{height:min(72vh,680px);border-radius:24px;overflow:hidden;background:#e8e8ed;z-index:0}
.pmap-list{max-height:min(72vh,680px);overflow:auto;padding:4px}
.pmap-list p{margin:0 0 8px;font-size:13px;color:#6e6e73}
.pmap-list ol{margin:0;padding:0;list-style:none}
.pmap-list button{display:flex;gap:12px;align-items:center;width:100%;padding:10px 8px;border:0;border-bottom:1px solid #e8e8ed;background:none;font:inherit;text-align:left;cursor:pointer}
.pmap-list button:hover{background:#f5f5f7}
.pmap-list small{display:block;font-size:12px;color:#6e6e73}
.grade-dot{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;color:#fff;font-size:12px;font-weight:600}
.pmap-pop{display:grid;gap:4px;font:13px/1.4 -apple-system,BlinkMacSystemFont,"SF Pro Text",sans-serif}
.pmap-pop strong{font-size:15px}.pmap-pop .grade-badge{justify-self:start;font-size:12px;padding:4px 10px}
/* Sun map */
.sunmap-controls{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:14px;margin:18px 0 14px}
.sunmap-controls label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#6e6e73}
.sunmap-controls output{color:#1d1d1f;font-weight:500}
.sunmap-controls input[type=range]{width:100%;accent-color:#0071e3;min-height:40px}
.sunmap-wrap{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:16px}
.sunmap{height:min(60vh,520px);border-radius:24px;overflow:hidden;z-index:0}
.sunmap-read{padding:18px;border-radius:24px;background:#f5f5f7;font-size:14px}
.sunmap-status{margin:0 0 12px;font-size:17px;font-weight:500;color:#1d1d1f}
.sunmap-read dl{margin:0;display:grid;gap:10px}.sunmap-read dt{color:#6e6e73;font-size:12px}.sunmap-read dd{margin:2px 0 0}
/* Lead dialog */
.lead-dialog{width:min(520px,calc(100vw - 32px));padding:0;border:0;border-radius:28px;box-shadow:0 30px 80px rgba(0,0,0,.25)}
.lead-dialog::backdrop{background:rgba(0,0,0,.35);backdrop-filter:blur(6px)}
.lead-form{display:grid;gap:12px;padding:28px}
.lead-form h2{margin:0;font-size:24px;font-weight:600;letter-spacing:-.02em}.lead-form p{margin:0;color:#6e6e73;font-size:14px}
.lead-form label{display:flex;flex-direction:column;gap:6px;font-size:14px}
.lead-form input:not([type=checkbox]){min-height:46px;padding:0 14px;border:1px solid #d2d2d7;border-radius:12px;font:inherit;font-size:16px}
.lead-form .lead-consent{flex-direction:row;align-items:flex-start;gap:10px;font-size:13px;color:#6e6e73}
.lead-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.lead-actions{display:flex;gap:12px;align-items:center}
.lead-tools{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:14px 0}
.lead-tools label{display:flex;flex-direction:column;gap:6px;font-size:13px}
.lead-tools input{min-height:40px;padding:0 12px;border:1px solid #d2d2d7;border-radius:10px;font:inherit}
@media (max-width:900px){.pmap-wrap,.sunmap-wrap,.unit-selector{grid-template-columns:minmax(0,1fr)}.pmap-list{max-height:none}.sunmap-controls{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.school-lists,.project-score{grid-template-columns:1fr}.project-pdf-button{margin-left:0}.pmap{height:62vh}.sunmap-controls{grid-template-columns:1fr}}
/* PDF / print */
@media print{
  .nav,.site-footer,.wa,.wa-pop,.project-section-nav,.lead-dialog,iframe,.project-map-grid,.structure-cta,#project-enquiry,.project-tour-tabs,video,.unit-picker,button{display:none!important}
  *{opacity:1!important;transform:none!important;animation:none!important;transition:none!important}
  body{background:#fff!important}
  .advisory-section,.plan-group,.project-plan,figure,tr{break-inside:avoid}
  a{color:inherit;text-decoration:none}
  main::after{content:"Hanson Ong \00B7 +65 9664 6949 \00B7 homeswithhanson.sg";display:block;margin-top:24px;font-size:12px;color:#6e6e73}
}
.lead-form .lead-consent input{flex:none;width:18px;height:18px;min-height:0;margin:2px 0 0;padding:0;accent-color:#0071e3}
.lead-form label{gap:4px}
.lead-actions .lead-cancel{min-height:44px;padding:0 18px;border:0;border-radius:99px;background:none;color:#0066cc;font:inherit;font-size:15px;cursor:pointer;box-shadow:none}
.lead-actions .lead-cancel:hover{background:#f5f5f7}
/* Homepage toolkit: questions people actually ask, each opening a tool */
.home-toolkit{width:min(1200px,calc(100% - var(--hig-gutter) - var(--hig-gutter)));margin:0 auto;padding:88px 0 24px}
.tk-head{max-width:640px}
.tk-head h2{margin:10px 0 14px;font-size:clamp(34px,4.4vw,56px);font-weight:500;line-height:1.08;letter-spacing:-.035em;color:#1d1d1f}
.tk-head p{margin:0;font-size:17px;line-height:1.55;color:#6e6e73}
.tk-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:36px}
.tk-grid a{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:22px;min-height:184px;padding:22px 22px 20px;border-radius:24px;background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:0 1px 2px rgba(0,0,0,.03);text-decoration:none;color:#1d1d1f;transition:transform .75s cubic-bezier(.2,.8,.2,1),box-shadow .75s cubic-bezier(.2,.8,.2,1),border-color .3s}
.tk-grid a:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(0,0,0,.08);border-color:rgba(0,113,227,.25)}
.tk-q{font-size:19px;font-weight:600;line-height:1.25;letter-spacing:-.015em;padding-right:22px}
.tk-a{font-size:13px;line-height:1.45;color:#6e6e73}
.tk-a strong{display:block;margin-bottom:3px;font-size:13px;font-weight:600;color:#0066cc}
.tk-go{position:absolute;top:22px;right:20px;color:#86868b;font-size:15px;transition:transform .75s cubic-bezier(.2,.8,.2,1),color .3s}
.tk-grid a:hover .tk-go{transform:translateX(3px);color:#0066cc}
.tk-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 28px;margin-top:22px}
.tk-tech{display:flex;align-items:center;gap:10px;margin:0;font-size:13px;color:#6e6e73}
.tk-live{flex:none;width:8px;height:8px;border-radius:50%;background:#1baf7a;box-shadow:0 0 0 0 rgba(27,175,122,.5);animation:tk-pulse 2.4s ease-out infinite}
@keyframes tk-pulse{0%{box-shadow:0 0 0 0 rgba(27,175,122,.45)}70%{box-shadow:0 0 0 9px rgba(27,175,122,0)}100%{box-shadow:0 0 0 0 rgba(27,175,122,0)}}
.tk-more{display:flex;flex-wrap:wrap;gap:10px 22px;margin:0;font-size:15px}
.tk-more a{color:#0066cc;text-decoration:none}.tk-more a:hover{text-decoration:underline}
.tk-more .tk-wa{font-weight:500}
@media (max-width:1000px){.tk-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.home-toolkit{width:calc(100% - 40px);padding-top:56px}.tk-grid{grid-template-columns:1fr;gap:10px}.tk-grid a{min-height:0;gap:10px;padding:18px}.tk-q{font-size:17px}}
@media (prefers-reduced-motion:reduce){.tk-live{animation:none}}
.hero-actions .button{white-space:nowrap}
.unit3d{margin:18px 0 26px}
.u3-controls{display:grid;grid-template-columns:1fr 1fr 180px;gap:12px 18px;align-items:end;margin-bottom:12px}
.u3-controls label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#6e6e73}
.u3-controls output{color:#1d1d1f;font-weight:500}
.u3-controls input[type=range]{width:100%;accent-color:#0071e3;min-height:36px}
.u3-controls input[type=date]{min-height:40px;padding:0 12px;border:1px solid #d2d2d7;border-radius:12px;font:inherit}
.u3-faces{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.u3-faces span{margin-right:6px;font-size:13px;color:#6e6e73}
.u3-faces button,.u3-views button{min-height:34px;padding:0 13px;border:1px solid #d2d2d7;border-radius:99px;background:#fff;font:inherit;font-size:13px;cursor:pointer}
.u3-faces button[aria-pressed=true]{background:#1d1d1f;border-color:#1d1d1f;color:#fff}
.u3-wrap{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px}
.u3-map{height:min(66vh,560px);border-radius:24px;overflow:hidden;background:#e8e8ed}
.u3-side{display:flex;flex-direction:column;gap:10px}
.u3-views{display:flex;flex-wrap:wrap;gap:6px}
.u3-read{padding:18px;border-radius:24px;background:#f5f5f7;font-size:14px}
.u3-title{margin:0 0 10px;font-size:17px;font-weight:600;color:#1d1d1f}
.u3-read dl{margin:0;display:grid;gap:10px}.u3-read dt{font-size:12px;color:#6e6e73}.u3-read dd{margin:2px 0 0}
.u3-note{margin:12px 0 0;font-size:12px;color:#86868b}
@media (max-width:900px){.u3-wrap{grid-template-columns:1fr}.u3-controls{grid-template-columns:1fr 1fr}.u3-map{height:60vh}}
@media print{.unit3d{display:none}}
.admin-textarea{display:block;width:100%;margin-top:6px;padding:12px 14px;border:1px solid #d2d2d7;border-radius:12px;font:inherit;font-size:15px}.admin-code{font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}.bio-live p{margin:0 0 14px}
/* ---------- Glass system (frosted, brand blue) ---------- */
:root{--glass-bg:rgba(255,255,255,.62);--glass-border:rgba(255,255,255,.7);--glass-edge:rgba(15,40,80,.08);--glass-shadow:0 18px 50px rgba(16,42,84,.12),0 2px 6px rgba(16,42,84,.06);--brand:#0071e3;--brand-soft:rgba(0,113,227,.12)}
.glass-panel{background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow),inset 0 1px 0 rgba(255,255,255,.85);backdrop-filter:blur(22px) saturate(160%);-webkit-backdrop-filter:blur(22px) saturate(160%);border-radius:28px}
.glass-icon{display:inline-grid;place-items:center;width:56px;height:56px;border-radius:18px;background:linear-gradient(155deg,rgba(255,255,255,.85),rgba(214,232,252,.55));border:1px solid rgba(255,255,255,.9);box-shadow:0 10px 24px rgba(0,113,227,.18),inset 0 1px 0 #fff,inset 0 -8px 16px rgba(0,113,227,.08);color:var(--brand)}
.glass-icon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
/* ---------- 3D Explorer ---------- */
.explore3d{padding:16px;margin-top:18px}
.x3-search{display:flex;gap:10px;margin-bottom:12px}
.x3-search input{flex:1;min-width:0;min-height:52px;padding:0 20px;border:1px solid rgba(15,40,80,.12);border-radius:99px;background:rgba(255,255,255,.9);font:inherit;font-size:16px}
.x3-search input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-soft)}
.x3-search button{min-height:52px;padding:0 24px;border:0;border-radius:99px;background:var(--brand);color:#fff;font:inherit;font-size:16px;cursor:pointer}
.x3-stage{position:relative}
.x3-map{height:min(70vh,640px);border-radius:22px;overflow:hidden;background:#dfe6ee}
.x3-toolbar{position:absolute;left:12px;top:12px;display:flex;gap:6px;padding:6px;border-radius:99px;background:rgba(255,255,255,.72);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 6px 20px rgba(16,42,84,.14)}
.x3-toolbar button,.x3-faces button,.x3-now{min-height:34px;padding:0 14px;border:0;border-radius:99px;background:transparent;font:inherit;font-size:13px;color:#1d1d1f;cursor:pointer;transition:background .3s,color .3s}
.x3-toolbar button[aria-pressed=true],.x3-faces button[aria-pressed=true]{background:#1d1d1f;color:#fff}
.x3-faces button,.x3-now{border:1px solid rgba(15,40,80,.12);background:rgba(255,255,255,.8)}
.x3-plan{position:absolute;right:12px;bottom:12px;width:min(320px,calc(100% - 24px));max-height:calc(100% - 24px);overflow:auto;padding:14px;font-size:13px}
.x3-plan p{margin:0 0 8px;font-weight:600}.x3-plan img{display:block;width:100%;height:auto;border-radius:12px;background:#fff;transition:transform .75s cubic-bezier(.2,.8,.2,1)}
.x3-plan small{display:block;margin:8px 0 4px;color:#6e6e73}.x3-plan a{color:var(--brand)}
.x3-controls{display:grid;grid-template-columns:minmax(0,2fr) 170px auto;gap:12px 16px;align-items:end;margin:14px 2px 6px}
.x3-controls label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#6e6e73}
.x3-controls output{color:#1d1d1f;font-weight:500}
.x3-controls input[type=range]{width:100%;accent-color:var(--brand);min-height:36px}
.x3-controls input[type=date],.x3-units select,.x3-units input:not([type=range]){min-height:40px;padding:0 12px;border:1px solid rgba(15,40,80,.12);border-radius:12px;background:#fff;font:inherit;font-size:15px}
.x3-faces{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.x3-faces span{margin-right:6px;font-size:13px;color:#6e6e73}
.x3-units{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.x3-read{margin-top:12px;padding:18px;border-radius:22px;background:rgba(245,247,250,.85);font-size:14px}
.x3-title{margin:0;font-size:19px;font-weight:600;color:#1d1d1f}.x3-sub{margin:2px 0 12px;color:#6e6e73}
.x3-read dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:0}.x3-read dt{font-size:12px;color:#6e6e73}.x3-read dd{margin:2px 0 0}
.x3-sun{color:#c2410c;font-weight:600}.x3-link{display:inline-block;margin-top:12px;color:var(--brand)}
.x3-note,.x3-hint{margin:10px 0 0;font-size:12px;color:#86868b}.x3-hint{font-size:15px;color:#6e6e73}
.u3-open{display:inline-block;margin-top:8px;color:var(--brand);font-size:14px}
@media (max-width:700px){.x3-controls{grid-template-columns:1fr 1fr}.x3-time{grid-column:1/-1}.x3-map{height:62vh}.x3-search button{padding:0 16px}}
/* ---------- Search-first glass homepage ---------- */
.hero .hero-actions{display:block;margin-top:28px}
.hero-search{position:relative;display:flex;align-items:center;gap:8px;max-width:600px;padding:7px 7px 7px 50px;border-radius:99px;background:rgba(255,255,255,.88);border:1px solid rgba(255,255,255,.95);box-shadow:0 20px 50px rgba(0,20,40,.28),inset 0 1px 0 #fff;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.hero-search-icon{position:absolute;left:18px;top:50%;width:22px;height:22px;transform:translateY(-50%);fill:none;stroke:#0071e3;stroke-width:2;stroke-linecap:round}
.hero-search input{flex:1;min-width:0;min-height:48px;border:0;background:transparent;font:inherit;font-size:17px;color:#1d1d1f;outline:none}
.hero-search input::placeholder{color:#6e6e73}
.hero-search button{min-height:48px;padding:0 24px;border:0;border-radius:99px;background:#0071e3;color:#fff;font:inherit;font-size:16px;font-weight:500;cursor:pointer;transition:background .3s,transform .75s cubic-bezier(.2,.8,.2,1)}
.hero-search button:hover{background:#0077ed;transform:translateY(-1px)}
.hero-links{display:flex;flex-wrap:wrap;gap:10px 22px;margin:16px 0 0;font-size:15px}
.hero-links a{color:#fff;text-decoration:none;opacity:.92}.hero-links a:hover{opacity:1;text-decoration:underline}
.hero-frost video{filter:blur(40px) brightness(.6) saturate(.85)}
/* Tool tiles with glass icons */
.tk-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.tk-grid a{justify-content:flex-start;gap:12px;min-height:0;padding:22px;background:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.9);box-shadow:0 12px 36px rgba(16,42,84,.08),inset 0 1px 0 #fff;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.tk-grid a .glass-icon{width:52px;height:52px;border-radius:16px}
.tk-grid a:hover .glass-icon{box-shadow:0 14px 30px rgba(0,113,227,.28),inset 0 1px 0 #fff}
.home-toolkit{position:relative}
.home-toolkit::before{content:"";position:absolute;inset:40px 0 auto;height:420px;z-index:-1;background:radial-gradient(60% 60% at 30% 40%,rgba(0,113,227,.10),transparent 70%),radial-gradient(50% 50% at 80% 30%,rgba(27,175,122,.08),transparent 70%);pointer-events:none}
@media (max-width:1000px){.tk-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.tk-grid{grid-template-columns:1fr}.hero-search{padding-left:44px}.hero-search-icon{left:15px}.hero-search input{font-size:16px}.hero-search button{padding:0 16px}}
/* ---------- Simple homepage: intents + bento ---------- */
.hero-ask{margin:0 0 12px;font-size:15px;color:rgba(255,255,255,.85)}
.hero-intents{display:flex;flex-wrap:wrap;gap:10px}
.hero-intent{display:inline-flex;align-items:center;min-height:50px;padding:0 24px;border-radius:99px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.55);color:#fff;font-size:16px;font-weight:500;text-decoration:none;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:inset 0 1px 0 rgba(255,255,255,.45);transition:background .3s,color .3s,transform .75s cubic-bezier(.2,.8,.2,1)}
.hero-intent:hover{background:#fff;color:#1d1d1f;transform:translateY(-2px)}
.home-bento{width:min(1200px,calc(100% - var(--hig-gutter) - var(--hig-gutter)));margin:0 auto;padding:88px 0 24px}
.bento-head{max-width:620px;margin-bottom:28px}
.bento-head h2{margin:0 0 12px;font-size:clamp(32px,4.2vw,52px);font-weight:500;line-height:1.08;letter-spacing:-.035em;color:#1d1d1f}
.bento-head p{margin:0;font-size:17px;line-height:1.55;color:#6e6e73}
.bento-grid{display:grid;grid-template-columns:1.25fr 1fr;grid-template-rows:auto auto;gap:16px}
.bento-tile{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:8px;padding:28px;border-radius:30px;text-decoration:none;color:#1d1d1f;background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.9);box-shadow:0 14px 40px rgba(16,42,84,.08),inset 0 1px 0 #fff;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);transition:transform .75s cubic-bezier(.2,.8,.2,1),box-shadow .75s cubic-bezier(.2,.8,.2,1)}
.bento-tile:hover{transform:translateY(-4px);box-shadow:0 24px 60px rgba(16,42,84,.14),inset 0 1px 0 #fff}
.bento-tile .glass-icon{margin-bottom:10px}
.bento-kicker{font-size:13px;font-weight:600;color:#0066cc}
.bento-tile strong{font-size:clamp(22px,2.4vw,30px);font-weight:600;line-height:1.15;letter-spacing:-.025em}
.bento-tile>span:not(.glass-icon):not(.bento-kicker):not(.bento-go):not(.bento-art){max-width:440px;font-size:15px;line-height:1.5;color:#6e6e73}
.bento-go{margin-top:auto;padding-top:14px;font-size:15px;font-weight:500;color:#0066cc}
.bento-map{grid-row:span 2;min-height:440px;background:linear-gradient(160deg,rgba(255,255,255,.85),rgba(226,238,252,.7))}
.bento-art{position:absolute;right:-30px;bottom:-30px;width:300px;height:220px;border-radius:40px;background:radial-gradient(circle at 30% 40%,rgba(0,113,227,.10),transparent 60%),repeating-linear-gradient(35deg,rgba(0,113,227,.06) 0 2px,transparent 2px 26px),repeating-linear-gradient(-55deg,rgba(0,113,227,.05) 0 2px,transparent 2px 30px);pointer-events:none}
.bento-art i{position:absolute;width:16px;height:16px;border-radius:50%;border:3px solid #fff;box-shadow:0 4px 12px rgba(0,0,0,.15)}
.bento-art i:nth-child(1){left:60px;top:50px;background:#0a7d55}.bento-art i:nth-child(2){left:120px;top:90px;background:#1baf7a}.bento-art i:nth-child(3){left:180px;top:40px;background:#2a78d6}
.bento-art i:nth-child(4){left:90px;top:140px;background:#1baf7a}.bento-art i:nth-child(5){left:210px;top:120px;background:#eb6834}.bento-art i:nth-child(6){left:150px;top:170px;background:#2a78d6}
.bento-sun{background:linear-gradient(160deg,rgba(255,255,255,.85),rgba(253,238,222,.7))}
.bento-more{margin:18px 0 0;font-size:15px}.bento-more a{color:#0066cc;text-decoration:none}.bento-more a:hover{text-decoration:underline}
@media (max-width:820px){.bento-grid{grid-template-columns:1fr}.bento-map{grid-row:auto;min-height:340px}.bento-art{width:220px;height:170px}}
@media (max-width:560px){.home-bento{width:calc(100% - 40px);padding-top:56px}.bento-tile{padding:22px;border-radius:26px}.hero-intent{min-height:46px;padding:0 18px;font-size:15px}}
/* ---------- Themed graphics, CTA banner, map menus and list ---------- */
.structure-cta{position:relative;overflow:hidden;display:flex!important;align-items:center;justify-content:space-between;gap:24px;padding:40px 44px;border:1px solid rgba(255,255,255,.9);border-radius:32px;
  background:linear-gradient(120deg,rgba(255,255,255,.88),rgba(228,240,253,.78));box-shadow:0 18px 50px rgba(16,42,84,.1),inset 0 1px 0 #fff;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.structure-cta>div{flex:1 1 360px;max-width:560px;position:relative;z-index:1}
.structure-cta h2{font-size:clamp(26px,3vw,38px);line-height:1.1;letter-spacing:-.03em;font-weight:600}
.structure-cta p{font-size:16px;color:#6e6e73}
.cta-art{flex:0 1 360px;width:360px;max-width:42%;height:auto;margin:-12px -16px -40px 0}
.page-intro.has-art{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:32px;align-items:center}
.intro-art{width:100%;height:auto;filter:drop-shadow(0 18px 40px rgba(16,42,84,.10))}
.bento-tile .bento-art{position:absolute;right:-8px;bottom:-6px;width:300px;max-width:62%;height:auto;pointer-events:none;opacity:.95}
.bento-tile .bento-art-sm{width:180px;max-width:46%;right:-6px;bottom:-10px}
.bento-units,.bento-sun{min-height:230px;padding-right:44%}
@media (max-width:820px){.structure-cta{flex-direction:column;align-items:flex-start;padding:28px 24px}.cta-art{width:100%;max-width:340px;margin:0 auto -30px}
  .page-intro.has-art{grid-template-columns:1fr}.intro-art{max-width:260px;order:-1}.bento-units,.bento-sun{padding-right:22px;min-height:0;padding-bottom:150px}
  .bento-tile .bento-art-sm{width:150px}}
/* Map: compact filter menus */
.pmap-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.pmap-menu{position:relative}
.pmap-menu summary{list-style:none;display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 16px;border-radius:99px;border:1px solid rgba(15,40,80,.12);background:rgba(255,255,255,.85);font-size:14px;cursor:pointer;user-select:none}
.pmap-menu summary::-webkit-details-marker{display:none}
.pmap-menu summary::after{content:"";width:7px;height:7px;border-right:1.6px solid #6e6e73;border-bottom:1.6px solid #6e6e73;transform:rotate(45deg) translateY(-2px);transition:transform .3s}
.pmap-menu[open] summary{background:#1d1d1f;color:#fff;border-color:#1d1d1f}.pmap-menu[open] summary::after{border-color:#fff;transform:rotate(-135deg)}
.pmap-menu summary span{font-size:12px;color:inherit;opacity:.7}
.pmap-pop-menu{position:absolute;z-index:500;top:calc(100% + 8px);left:0;min-width:220px;display:grid;gap:2px;padding:10px;border-radius:20px;background:rgba(255,255,255,.95);border:1px solid rgba(255,255,255,.9);box-shadow:0 20px 50px rgba(16,42,84,.18);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.pmap-pop-menu label{display:flex;align-items:center;gap:10px;min-height:38px;padding:0 8px;border-radius:12px;font-size:14px;cursor:pointer}
.pmap-pop-menu label:hover{background:#f5f5f7}
.pmap-pop-menu input{accent-color:#0071e3}
.pmap-pop-menu .grade-dot{width:22px;height:22px;font-size:11px}
.g-s{background:#0a7d55}.g-a{background:#1baf7a}.g-b{background:#2a78d6}.g-c{background:#eb6834}.g-d{background:#c2410c}.g-none{background:#8e8e93}
.pmap-menu-link{padding:8px 8px 2px;font-size:13px;color:#0066cc}
/* Map: list with thumbnails */
.pmap-list button{gap:12px}
.pmap-list img,.pmap-thumb-none{flex:none;width:64px;height:48px;border-radius:10px;object-fit:cover;background:linear-gradient(135deg,#eef4fc,#dbe9fa)}
.pmap-item{flex:1;min-width:0}.pmap-item strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pmap-more{list-style:none;padding:10px 0}.pmap-more button{justify-content:center;min-height:40px;border:1px solid rgba(15,40,80,.12)!important;border-radius:99px;background:#fff;color:#0066cc;font-size:14px}
@media (max-width:900px){.pmap-list{max-height:none}}
.bento-units,.bento-sun{padding-right:28px!important;min-height:230px}
.bento-tile .bento-art-sm{top:14px;right:10px;bottom:auto;width:132px;max-width:38%;opacity:.9}
.structure-cta .cta-art,.home-profile .cta-art{width:340px!important;height:auto!important;max-width:42%;border-radius:0!important;object-fit:contain!important;object-position:center!important;filter:none!important}
@media (max-width:820px){.structure-cta{text-align:left}.structure-cta .cta-art,.home-profile .cta-art{width:100%!important;max-width:300px;margin:4px auto -26px}.bento-units,.bento-sun{padding-bottom:22px!important}.bento-tile .bento-art-sm{width:110px}}
@media (max-width:820px){.structure-cta{gap:4px!important;min-height:0!important}.structure-cta>div{flex:0 0 auto}}
/* ---------- Loading placeholders (shimmer), no empty screens ---------- */
@keyframes sk-shimmer{0%{background-position:-480px 0}100%{background-position:480px 0}}
.sk-line,.sk-thumb,.sk-surface:not(.is-ready),.img-wait{background:linear-gradient(90deg,#eceff3 0%,#f6f8fa 40%,#eceff3 80%) #eceff3;background-size:960px 100%;animation:sk-shimmer 1.4s linear infinite}
.sk-line{display:block;height:12px;margin:8px 0;border-radius:99px;width:100%}
.sk-line.sk-short{width:55%}.sk-line.sk-big{height:26px;width:70%;margin:10px 0}
.sk-thumb{display:block;flex:none;width:64px;height:48px;border-radius:10px}
.sk-row{display:flex;gap:12px;align-items:center;padding:10px 8px;border-bottom:1px solid #e8e8ed}.sk-row>span:last-child{flex:1}
.sk-surface.is-ready{animation:none}
.img-wait{color:transparent}
@media (prefers-reduced-motion:reduce){.sk-line,.sk-thumb,.sk-surface,.img-wait{animation:none}}
/* ---------- Phone: app-style tab bar and big tap targets ---------- */
.app-tabs{display:none}
@media (max-width:760px){
  .app-tabs{position:fixed;z-index:60;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(5,1fr);gap:2px;padding:6px;border-radius:26px;
    background:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.95);box-shadow:0 14px 40px rgba(16,42,84,.18),inset 0 1px 0 #fff;backdrop-filter:blur(22px) saturate(170%);-webkit-backdrop-filter:blur(22px) saturate(170%)}
  .app-tabs a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:54px;border-radius:20px;color:#6e6e73;font-size:11px;font-weight:500;text-decoration:none;transition:background .3s,color .3s}
  .app-tabs svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .app-tabs a[aria-current=page]{color:#0071e3;background:rgba(0,113,227,.10)}
  .app-tabs .app-tab-wa{color:#fff;background:#25d366}
  body{padding-bottom:calc(92px + env(safe-area-inset-bottom))}
  .wa,.wa-pop{display:none!important}
  /* App-like buttons: full width, easy to tap */
  .hero-intents{display:grid;grid-template-columns:1fr;gap:10px}
  .hero-intent{justify-content:center;min-height:54px;font-size:16px}
  .structure-cta .button,.advisory-tool .button,.bento-go{min-height:50px}
  .structure-cta .button{width:100%;justify-content:center}
  .bento-tile{border-radius:26px}
  .bento-go{display:flex;align-items:center;justify-content:center;margin-top:14px;padding:0 18px;border-radius:99px;background:#0071e3;color:#fff!important}
  .pmap-menu summary{min-height:44px}
  .pmap-tools .pmap-near{min-height:48px}
}
img[src*="graphics/clay-"]{border-radius:24px;object-fit:cover}
.bento-tile img[src*="graphics/clay-"].bento-art{right:0;bottom:0;width:56%;border-radius:24px 0 30px 0;opacity:1}
/* Landscape hero on wider screens */
.hero-wide{display:none}
@media (min-width:801px){
  .hero.is-wide .hero-wide{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 35%;z-index:0}
  .hero.is-wide .hero-frost,.hero.is-wide .hero-media{display:none}
  .hero.is-wide .hero-shade{z-index:1;background:linear-gradient(90deg,rgba(6,20,15,.55),rgba(6,20,15,.18) 45%,transparent 70%),linear-gradient(0deg,rgba(6,20,15,.45),transparent 30%)}
  .hero.is-wide .hero-content,.hero.is-wide .hero-bottom{z-index:2}
}
/* Map tools: draw an area, growth layer, area shortlist form */
.pmap-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:-2px 0 12px}
.pmap-chip{min-height:40px;padding:0 16px;border-radius:99px;border:1px solid rgba(15,40,80,.12);background:rgba(255,255,255,.85);font:inherit;font-size:14px;cursor:pointer;transition:background .3s,color .3s}
.pmap-chip[aria-pressed=true]{background:#0071e3;border-color:#0071e3;color:#fff}
.pmap-clear{color:#c2410c}
.pmap-radius{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:#6e6e73}
.pmap-radius input{accent-color:#0071e3;width:140px}
.pmap.is-drawing{cursor:crosshair}.pmap.is-drawing .leaflet-interactive{cursor:crosshair}
.pmap-rail span{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:22px;border-radius:99px;background:#1d1d1f;color:#fff;font:600 11px/1 -apple-system,BlinkMacSystemFont,sans-serif;box-shadow:0 4px 10px rgba(0,0,0,.2)}
.pmap-growth-label{background:rgba(255,255,255,.9);border:0;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.12);font-size:11px;font-weight:600;color:#0a7d55}
.pmap-ask{display:grid;gap:8px;margin-top:14px;padding:16px;border-radius:22px;font-size:14px}
.pmap-ask strong{font-size:15px}.pmap-ask>span{color:#6e6e73;font-size:13px}
.pmap-ask input:not([type=checkbox]){min-height:42px;padding:0 12px;border:1px solid #d2d2d7;border-radius:12px;font:inherit;font-size:15px;background:#fff}
.pmap-ask-consent{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:#6e6e73}
.pmap-ask-consent input{width:16px;height:16px;margin-top:1px;accent-color:#0071e3}
.pmap-ask .button{justify-content:center}.pmap-ask-note{margin:0;font-size:13px;color:#0a7d55}
.pmap .maplibregl-popup-content{border-radius:16px;padding:14px 16px;box-shadow:0 14px 40px rgba(16,42,84,.18)}
.pmap-pop-links{display:flex;gap:14px}.pmap-pop a{color:#0066cc}
.pmap-rail{border:0;background:none;padding:0;cursor:pointer}
.pmap-dim{min-width:52px;font-weight:600}
.pmap.is-drawing .maplibregl-canvas{cursor:crosshair}

/* 3D Explorer: map left, unit details panel right */
.x3-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);gap:16px;align-items:start}
.x3-left{min-width:0}
.x3-layout .x3-read{position:sticky;top:96px;margin-top:0;padding:20px;border-radius:24px;max-height:calc(100vh - 120px);overflow:auto;font-size:14px}
.x3-kicker{margin:0;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#0066cc}
.x3-read .x3-title{margin:4px 0 2px;font-size:21px;line-height:1.2}
.x3-panel-plan{margin:12px 0;padding:10px;border-radius:16px;background:#fff;border:1px solid #e8e8ed}
.x3-panel-plan img{display:block;width:100%;height:auto;max-height:280px;object-fit:contain}
.x3-panel-plan figcaption{margin-top:6px;font-size:12px;color:#6e6e73}.x3-panel-plan a{color:#0066cc}
.x3-sunbox{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin:12px 0;padding:12px;border-radius:16px;background:#fff8ef;border:1px solid #f6e2c8}
.x3-sunbox>div:not(.x3-bar){display:grid;gap:3px}.x3-sunbox span{font-size:12px;color:#8a6a3f}.x3-sunbox strong{font-size:15px}
.x3-dots{display:inline-flex;gap:3px}.x3-dots i{width:9px;height:9px;border-radius:50%;background:#f1dfc8}.x3-dots i.on{background:#f2a33a}
.x3-bar{grid-column:1/-1;display:grid;grid-template-columns:repeat(24,1fr);gap:2px;height:16px;margin-top:4px}
.x3-bar i{border-radius:3px;background:#f2a33a}
.x3-sunbox small{grid-column:1/-1;font-size:11px;color:#8a6a3f}
.x3-tags{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px;padding:0;list-style:none}
.x3-tags li{padding:4px 10px;border-radius:99px;background:#eef4fc;color:#0b4fb3;font-size:12px}
.x3-facts{display:grid;gap:8px;margin:0 0 14px}.x3-facts dt{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#86868b}.x3-facts dd{margin:2px 0 0}
.x3-actions{display:grid;gap:8px}
.x3-act{display:flex;align-items:center;justify-content:center;min-height:44px;padding:0 14px;border-radius:14px;border:1px solid #d2d2d7;background:#fff;color:#1d1d1f;font:inherit;font-size:14px;font-weight:500;text-decoration:none;cursor:pointer}
.x3-act:hover{border-color:#0071e3;color:#0071e3}
.x3-primary{background:#1d1d1f;border-color:#1d1d1f;color:#fff}.x3-primary:hover{color:#fff;background:#000}
.x3-gold{background:#f6d58e;border-color:#f6d58e}
.x3-act-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media (max-width:980px){.x3-layout{grid-template-columns:1fr}.x3-layout .x3-read{position:static;max-height:none}}
/* Type-ahead suggestions */
.ac-host{position:relative}
.ac-list{position:absolute;z-index:700;left:0;right:0;top:calc(100% + 6px);max-height:min(60vh,420px);overflow:auto;margin:0;padding:6px;list-style:none;border-radius:18px;background:rgba(255,255,255,.97);border:1px solid rgba(15,40,80,.08);box-shadow:0 20px 50px rgba(16,42,84,.18);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.ac-list li{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:12px;cursor:pointer}
.ac-list li[aria-selected=true],.ac-list li:hover{background:#eef4fc}
.ac-list strong{font-size:15px;font-weight:500;color:#1d1d1f}.ac-list mark{background:none;color:#0071e3;font-weight:600}
.ac-list small{font-size:12px;color:#6e6e73}
/* Photoreal 3D (Google 3D Tiles + every unit) */
.photoreal{margin:8px 0 30px;padding:18px;border-radius:28px;background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}
.pr-head{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.pr-head h3{margin:0 0 4px;font-size:1.25rem}.pr-head p{margin:0;color:#6e6e73;font-size:.92rem;max-width:52ch}
.pr-legend{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pr-legend button{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--glass-edge);background:#fff;border-radius:999px;padding:6px 11px;font:inherit;font-size:.82rem;cursor:pointer}
.pr-legend button[aria-pressed="false"]{opacity:.4}
.pr-legend i,.pr-kicker i{width:10px;height:10px;border-radius:3px;display:inline-block}
.pr-legend span{font-size:.82rem;color:#6e6e73;margin-left:4px}
.pr-wrap{position:relative}
.pr-stage{position:relative;height:min(70vh,620px);border-radius:22px;overflow:hidden;background:linear-gradient(160deg,#dfe7f1,#eef1f5);display:grid;place-items:center}
.pr-stage .cesium-viewer,.pr-stage .cesium-widget{position:absolute;inset:0}
.pr-start{border:0;background:#1d1d1f;color:#fff;border-radius:999px;padding:14px 22px;font:inherit;font-weight:600;cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.18)}
.pr-start:disabled{opacity:.6;cursor:progress}
.photoreal.is-loading .pr-start::after{content:" · loading…"}
.pr-msg{margin:0;padding:0 24px;text-align:center;color:#3a3a3c}
.pr-card{position:absolute;top:14px;right:14px;width:min(320px,calc(100% - 28px));max-height:calc(100% - 28px);overflow:auto;padding:16px;border-radius:20px;background:rgba(255,255,255,.92);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:var(--glass-shadow);z-index:2}
.pr-card h3{margin:2px 0 4px;font-size:1.1rem}.pr-card p{margin:0 0 8px;font-size:.88rem;color:#3a3a3c}
.pr-kicker{display:flex;align-items:center;gap:6px;font-size:.78rem!important;color:#6e6e73!important;text-transform:uppercase;letter-spacing:.04em}
.pr-card img{width:100%;border-radius:12px;background:#fff;margin:4px 0 10px}
.pr-actions{display:grid;gap:8px}
.pr-actions button,.pr-actions a{display:block;text-align:center;border-radius:14px;padding:10px;font:inherit;font-size:.9rem;font-weight:600;text-decoration:none;cursor:pointer;border:1px solid var(--glass-edge);background:#fff;color:#1d1d1f}
.pr-actions button:first-child{background:#1d1d1f;color:#fff;border-color:#1d1d1f}
.pr-actions a{background:#25d366;color:#fff;border-color:#25d366}
@media (max-width:700px){.photoreal{padding:12px;border-radius:22px}.pr-stage{height:62vh}.pr-card{position:static;width:auto;margin-top:10px;max-height:none}}
/* ---- Matte liquid glass: frosted, low-shine, with a fine grain ---- */
:root{--matte-bg:rgba(250,251,253,.56);--matte-edge:rgba(255,255,255,.62);--matte-line:rgba(20,40,80,.06);--matte-blur:blur(26px) saturate(125%);
--matte-shadow:0 1px 1px rgba(16,42,84,.04),0 18px 44px rgba(16,42,84,.09);
--matte-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.glass-panel,.bento-tile,.photoreal,.pr-card,.cliff,.unit3d .u3-side .u3-read,.x3-panel{background:var(--matte-grain),linear-gradient(160deg,rgba(255,255,255,.66),rgba(244,247,252,.48)),var(--matte-bg);
border:1px solid var(--matte-edge);box-shadow:var(--matte-shadow),inset 0 0 0 1px var(--matte-line),inset 0 1px 0 rgba(255,255,255,.7);
backdrop-filter:var(--matte-blur);-webkit-backdrop-filter:var(--matte-blur)}
@media (prefers-reduced-transparency:reduce){.glass-panel,.bento-tile,.photoreal,.pr-card,.cliff{background:#f7f8fa;backdrop-filter:none;-webkit-backdrop-filter:none}}
/* Clay picture beside each project section heading */
.launch-section-head.has-clay{display:flex;align-items:center;gap:18px}
.launch-section-head.has-clay .sec-clay{flex:0 0 auto;width:96px;height:auto;filter:drop-shadow(0 10px 18px rgba(16,42,84,.10))}
.launch-section-head.has-clay .sec-text>*{margin-left:0}
.launch-section-head.has-clay h2{margin-bottom:4px}
.sec-fine{font-size:.78rem!important;color:#86868b!important;margin-top:4px!important}
@media (max-width:700px){.launch-section-head.has-clay{gap:12px}.launch-section-head.has-clay .sec-clay{width:68px}}
/* Bento art in clay: let the picture breathe */
.bento-art[src*="clay-"]{width:46%;max-width:240px;right:10px;bottom:10px;border-radius:0;filter:drop-shadow(0 14px 22px rgba(16,42,84,.12))}
/* The ending: what is not on this page */
#project-enquiry{display:block}
.cliff{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:32px;align-items:center;padding:36px;border-radius:32px;margin:12px 0}
.cliff-art{width:100%;height:auto;filter:drop-shadow(0 18px 28px rgba(16,42,84,.14))}
.cliff-kicker{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:#0071e3;margin:0 0 6px}
.cliff h2{margin:0 0 10px;font-size:clamp(1.6rem,3.4vw,2.4rem);line-height:1.1}
.cliff-copy>p{color:#3a3a3c;max-width:56ch}
.cliff-list{list-style:none;padding:0;margin:18px 0 22px;display:grid;gap:10px;max-width:520px}
.cliff-list li{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px;border-radius:16px;background:rgba(255,255,255,.7);border:1px solid var(--matte-line);font-weight:600;font-size:.95rem}
.cliff-list i{flex:0 0 42%;height:12px;border-radius:999px;background:linear-gradient(90deg,#d6dbe4,#eef1f6,#d6dbe4);background-size:200% 100%;filter:blur(1.5px);animation:cliff-shimmer 2.6s linear infinite}
.cliff-list li:nth-child(2) i{flex-basis:34%}.cliff-list li:nth-child(3) i{flex-basis:26%}
@keyframes cliff-shimmer{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.cliff-list i{animation:none}}
.cliff-cta{display:inline-flex}
.cliff-note{font-size:.8rem;color:#86868b;margin-top:10px}
@media (max-width:760px){.cliff{grid-template-columns:1fr;padding:24px;gap:16px}.cliff-art{max-width:200px;margin:0 auto}}
#project-enquiry.advisory-tool{background:none!important;border:0!important;box-shadow:none!important;padding:0!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.bento-tile .bento-art-sm[src*="clay-"]{width:118px;max-width:30%;top:14px;right:14px;bottom:auto}
.bento-tile:has(.bento-art-sm[src*="clay-"]) h3,.bento-tile:has(.bento-art-sm[src*="clay-"]) .bento-kicker{padding-right:min(132px,32%)}
.bento-map .bento-art[src*="clay-"]{width:52%;max-width:300px}
.flythrough{margin:6px 0 22px;border-radius:26px;overflow:hidden;background:#e9edf3;box-shadow:var(--matte-shadow)}
.flythrough video{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:#e9edf3}
.flythrough figcaption{padding:10px 16px 12px;font-size:.8rem;color:#6e6e73;background:var(--matte-bg)}
.avail-strip{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:6px 0 22px;padding:14px 18px;border-radius:20px;background:var(--matte-grain),var(--matte-bg);border:1px solid var(--matte-edge);box-shadow:var(--matte-shadow)}
.avail-text{font-size:1rem;color:#1d1d1f}.avail-text strong{font-size:1.35rem;color:#0071e3}
.avail-text small{display:block;font-size:.75rem;color:#86868b;margin-top:2px}
.avail-bar{flex:1 1 160px;height:8px;border-radius:999px;background:rgba(20,40,80,.08);overflow:hidden}
.avail-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0071e3,#5ac8fa)}
.legal-page section{margin:26px 0}.legal-page h2{font-size:1.25rem;margin:0 0 8px}.legal-page ul{padding-left:20px;line-height:1.6}
.lead-consent a,.pmap-ask-consent a{color:#0071e3}
.footer-legal a{color:inherit;text-decoration:underline}

.legal-dates{font-size:.85rem;color:#6e6e73;margin:4px 0 12px}
.legal-toc{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 4px}
.legal-toc a{padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.7);border:1px solid var(--matte-line);font-size:.85rem;color:#1d1d1f;text-decoration:none}
.legal-page section{scroll-margin-top:90px}
/* Compact footer */
.footer-compact{grid-template-columns:repeat(4,minmax(0,1fr))!important}
details.footer-districts summary{cursor:pointer;font-weight:600;font-size:.9rem;color:#6e6e73;list-style:none;padding:8px 0}
details.footer-districts summary::after{content:" +";}
details.footer-districts[open] summary::after{content:" −"}
@media (max-width:760px){.footer-compact{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
/* Page-aware WhatsApp option */
.wa-options .wa-context{background:#25d366!important;color:#fff!important;font-weight:600}
/* After the PDF */
.pdf-handoff{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:80;display:flex;align-items:center;gap:12px;flex-wrap:wrap;
max-width:min(620px,calc(100% - 24px));padding:12px 14px 12px 18px;border-radius:20px;background:var(--matte-grain),rgba(255,255,255,.92);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:var(--matte-shadow);font-size:.92rem}
.pdf-handoff a{background:#25d366;color:#fff;border-radius:999px;padding:9px 14px;font-weight:600;text-decoration:none}
.pdf-handoff button{border:0;background:none;font-size:20px;cursor:pointer;color:#6e6e73}
@media (max-width:760px){.pdf-handoff{bottom:calc(100px + env(safe-area-inset-bottom))}}
.tool-send{margin-top:14px;background:#25d366!important;border-color:#25d366!important;color:#fff!important}
/* Launch directory shortlist */
.shortlist-cta{display:grid;grid-template-columns:160px 1fr;gap:26px;align-items:center;padding:28px;border-radius:30px;background:var(--matte-grain),linear-gradient(160deg,rgba(255,255,255,.7),rgba(244,247,252,.5));border:1px solid var(--matte-edge);box-shadow:var(--matte-shadow)}
.shortlist-cta img{width:100%;height:auto}.shortlist-cta h2{margin:0 0 8px}
@media (max-width:700px){.shortlist-cta{grid-template-columns:1fr;text-align:left}.shortlist-cta img{max-width:120px}}

/* Clay picture at page headings */
.page-clay{float:right;width:clamp(92px,17vw,200px);height:auto;margin:0 0 10px 18px;filter:drop-shadow(0 14px 22px rgba(16,42,84,.12));shape-outside:margin-box}
@media (max-width:700px){.page-clay{width:96px;margin:0 0 6px 12px}}
/* Matte liquid glass on cards, calculators and tiles across the site */
.advisory-grid article,.tool-inputs,.tool-result,.launch-project-card,.district-browse a,.structure-cta,.guide-next,.score-row,.faq-list details{
background:var(--matte-grain),linear-gradient(160deg,rgba(255,255,255,.7),rgba(244,247,252,.5)),var(--matte-bg);
border:1px solid var(--matte-edge);box-shadow:var(--matte-shadow),inset 0 0 0 1px var(--matte-line),inset 0 1px 0 rgba(255,255,255,.7);
backdrop-filter:var(--matte-blur);-webkit-backdrop-filter:var(--matte-blur)}

/* Launch directory intro: same type scale as other page intros, in a matte glass squircle */
.launch-directory-head{max-width:none!important;margin:28px 0 40px;padding:clamp(28px,4.5vw,52px)!important;border-radius:32px;
background:var(--matte-grain),linear-gradient(160deg,rgba(255,255,255,.72),rgba(244,247,252,.5)),var(--matte-bg);border:1px solid var(--matte-edge);
box-shadow:var(--matte-shadow),inset 0 0 0 1px var(--matte-line),inset 0 1px 0 rgba(255,255,255,.75);backdrop-filter:var(--matte-blur);-webkit-backdrop-filter:var(--matte-blur)}
.launch-directory-head .launch-eyebrow{font-size:14px;line-height:1.4;margin:0 0 14px}
.launch-directory-head h1{margin:0 0 18px}
.launch-directory-head>p{max-width:640px;margin:0}
@media (max-width:700px){.launch-directory-head{margin:16px 0 28px;border-radius:26px}}

/* Weekly units-left report */
.ul-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin:28px 0 36px}
.ul-card{padding:20px 22px;border-radius:26px;background:var(--matte-grain),linear-gradient(160deg,rgba(255,255,255,.72),rgba(244,247,252,.5)),var(--matte-bg);
border:1px solid var(--matte-edge);box-shadow:var(--matte-shadow),inset 0 1px 0 rgba(255,255,255,.7);display:flex;flex-direction:column;gap:10px}
.ul-card header{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.ul-card h3{margin:0;font-size:1.12rem}
.ul-card h3 a{color:#1d1d1f;text-decoration:none}.ul-card header span{font-size:.78rem;color:#86868b}
.ul-left{margin:0;font-size:.95rem}.ul-left strong{font-size:1.7rem;color:#0071e3;margin-right:4px}.ul-left small{display:block;color:#6e6e73;font-size:.78rem}
.ul-rooms{list-style:none;display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:0}.ul-rooms li{font-size:.8rem;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.75);border:1px solid var(--matte-line)}
.ul-foot{display:flex;justify-content:space-between;gap:10px;margin:4px 0 0;font-size:.85rem;color:#3a3a3c}.ul-foot a{color:#0071e3;text-decoration:none;font-weight:600}
.hero-report a{font-weight:600}
.ul-card .avail-bar{flex:none;height:8px;width:100%}

.ul-card{padding:0;overflow:hidden;gap:0}
.ul-thumb{display:block;aspect-ratio:16/9;background:#e8ecf2;overflow:hidden}
.ul-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .75s cubic-bezier(.2,.8,.2,1)}
.ul-card:hover .ul-thumb img{transform:scale(1.04)}
.ul-body{display:flex;flex-direction:column;gap:10px;padding:16px 20px 20px}
.ul-meta{margin:0;font-size:.82rem;color:#6e6e73}
.ul-ask{align-self:flex-start;margin-top:4px;font-size:.88rem;font-weight:600;color:#0071e3;text-decoration:none}
.ul-optin{display:inline-flex;flex-direction:column;align-items:stretch;gap:0;margin-top:6px}
.ul-optin small{display:block;margin-top:10px;font-size:.75rem;line-height:1.4;color:#86868b;text-align:center}

/* Graphics: smaller, quieter accents across the site */
.page-clay{width:clamp(72px,10vw,120px)!important;margin:0 0 6px 14px!important}
.launch-section-head.has-clay .sec-clay{width:64px!important}
.page-intro.has-art{grid-template-columns:minmax(0,1fr) 170px!important;gap:24px!important}
.intro-art{max-width:170px!important}
.cliff{grid-template-columns:minmax(0,150px) minmax(0,1fr)!important}
.cliff-art{max-width:150px!important}
.shortlist-cta{grid-template-columns:96px 1fr!important}
.bento-art[src*="clay-"]{width:34%!important;max-width:170px!important}
.bento-art-sm[src*="clay-"]{width:84px!important}
.bento-tile:has(.bento-art-sm[src*="clay-"]) h3,.bento-tile:has(.bento-art-sm[src*="clay-"]) .bento-kicker{padding-right:96px}
.cta-art,.home-profile .cta-art{width:220px!important;max-width:30%!important;margin:0 0 -16px!important}
@media (max-width:700px){.page-clay{width:68px!important}.launch-section-head.has-clay .sec-clay{width:48px!important}.intro-art{max-width:120px!important}
 .cliff-art{max-width:110px!important}.shortlist-cta img{max-width:80px!important}.cta-art,.home-profile .cta-art{width:150px!important;max-width:45%!important}}
.hero-intent-main{background:#fff!important;color:#1d1d1f!important;font-weight:600}
/* Hero: words sit lower, short deck */
.hero-deck{max-width:460px!important}
@media (min-width:801px){.hero .hero-content{top:auto!important;bottom:clamp(84px,13vh,150px)!important;transform:none!important}}
@media (max-width:800px){.hero .hero-content{bottom:calc(84px + env(safe-area-inset-bottom))!important}}
/* Bento graphics: inset from the tile edge by the same amount as the tile padding, so gaps are even and scale with the squircle */
.bento-tile{--tile-pad:clamp(20px,2.2vw,28px);padding:var(--tile-pad)!important}
.bento-tile .bento-art[src*="clay-"],.bento-tile .bento-art-sm[src*="clay-"]{position:absolute!important;margin:0!important;transform:none!important;height:auto!important;object-fit:contain!important}
.bento-tile .bento-art[src*="clay-"]{right:var(--tile-pad)!important;bottom:var(--tile-pad)!important;top:auto!important;left:auto!important;width:min(38%,190px)!important;max-width:none!important}
.bento-tile .bento-art-sm[src*="clay-"]{right:var(--tile-pad)!important;top:var(--tile-pad)!important;bottom:auto!important;left:auto!important;width:min(26%,88px)!important}
.bento-tile:has(.bento-art-sm[src*="clay-"]) h3,.bento-tile:has(.bento-art-sm[src*="clay-"]) strong,.bento-tile:has(.bento-art-sm[src*="clay-"]) .bento-kicker{padding-right:calc(min(26%,88px) + 12px)}
.data-table thead th.cell-text{text-align:left}

/* Price change colours */
.chg-up{color:#1a8f3c;font-weight:600}.chg-down{color:#d1342f;font-weight:600}.chg-flat{color:#6e6e73}
/* MRT station badges (line colours) */
.mrt-list{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:14px 0 18px}
.mrt-list li{display:inline-flex;align-items:center;gap:6px;padding:5px 10px 5px 6px;border-radius:999px;background:rgba(255,255,255,.75);border:1px solid var(--matte-line);font-size:.85rem}
.mrt-code{display:inline-block;min-width:34px;padding:2px 7px;border-radius:999px;background:var(--line);color:#fff;font-size:.72rem;font-weight:700;letter-spacing:.02em;text-align:center;line-height:1.5}
.mrt-more{color:#6e6e73;padding-left:10px!important}
.town-lines{display:flex;gap:4px;flex-wrap:wrap;margin:4px 0}
.mrt-line{display:inline-block;padding:1px 6px;border-radius:999px;background:var(--line);color:#fff;font-size:.66rem;font-weight:700}

/* Homepage: HDB prices by town */
.home-hdb{max-width:1180px;margin:0 auto;padding:clamp(56px,8vw,96px) clamp(16px,4vw,32px) 24px}
.home-hdb-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:22px}
.home-hdb-head h2{margin:0 0 8px;font-size:clamp(1.9rem,4vw,2.8rem);line-height:1.08;letter-spacing:-.02em}
.home-hdb-head p{margin:0;color:#6e6e73;max-width:560px}
.home-town-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.home-town-grid a{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border-radius:20px;text-decoration:none;color:#1d1d1f;
background:var(--matte-grain),linear-gradient(160deg,rgba(255,255,255,.75),rgba(244,247,252,.55));border:1px solid var(--matte-edge);box-shadow:var(--matte-shadow);transition:transform .75s cubic-bezier(.2,.8,.2,1)}
.home-town-grid a:hover{transform:translateY(-2px)}
.home-town-grid strong{font-size:.98rem}.home-town-grid em{font-style:normal;font-size:.85rem;color:#3a3a3c}
.home-hdb-more{margin:16px 0 0;font-size:.9rem}.home-hdb-more a{color:#0071e3;text-decoration:none;font-weight:600}
.hdb-town-grid a .town-lines{display:flex!important;flex-direction:row!important;gap:4px!important;flex-wrap:wrap!important;margin:2px 0 4px!important;padding:0!important;background:none!important;width:auto!important}
.hdb-town-grid a .town-lines .mrt-line{display:inline-block!important;width:auto!important;height:auto!important;padding:1px 7px!important;border-radius:999px!important;background:var(--line)!important;color:#fff!important;font-size:.66rem!important;font-weight:700!important;line-height:1.5!important;margin:0!important}
.chg-up{color:#1a8f3c!important}.chg-down{color:#d1342f!important}

.service-links{margin:14px 0 0;font-size:.92rem}.service-links a{color:#0071e3;text-decoration:none;font-weight:600}
.service-chooser{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 18px}
.service-chooser a{padding:9px 14px;border-radius:999px;background:rgba(255,255,255,.75);border:1px solid var(--matte-line);color:#1d1d1f;text-decoration:none;font-weight:600;font-size:.9rem}
/* ===== One standard for every line of text under a button, site-wide ===== */
:root{--note-size:13px;--note-line:1.5;--note-gap:12px;--note-colour:#6e6e73;--note-link:#0071e3}
.button + p,.button + small,.advisory-button + p,.advisory-button + small,
.cliff-note,.ul-optin small,.service-links,.hero-report,.hero-links,.bento-more,.home-hdb-more,.tool-result-note,
.pmap-ask-note,.x3-note,.u3-note,.launch-data-note,.service-chooser + .button + p{
  font-family:inherit!important;font-size:var(--note-size)!important;line-height:var(--note-line)!important;font-weight:400!important;
  letter-spacing:0!important;color:var(--note-colour)!important;margin:var(--note-gap) 0 0!important;text-transform:none!important}
.button + p a,.advisory-button + p a,.cliff-note a,.service-links a,.hero-report a,.hero-links a,.bento-more a,.home-hdb-more a,.tool-result-note a,.pmap-ask-note a{
  color:var(--note-link)!important;font-weight:400!important;font-size:inherit!important;text-decoration:none!important}
.ul-optin small{text-align:center}
/* On the dark hero video the same line stays readable */
.hero .hero-report,.hero .hero-links{color:rgba(255,255,255,.82)!important}
.hero .hero-report a,.hero .hero-links a{color:#fff!important}

/* Homepage: value cards for every seller */
.value-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:6px 0 18px}
.value-card{display:flex;flex-direction:column;gap:6px;padding:22px 24px;border-radius:26px;text-decoration:none;color:#1d1d1f;
background:var(--matte-grain),linear-gradient(160deg,rgba(255,255,255,.78),rgba(244,247,252,.55));border:1px solid var(--matte-edge);box-shadow:var(--matte-shadow);transition:transform .75s cubic-bezier(.2,.8,.2,1)}
.value-card:hover{transform:translateY(-3px)}
.value-kind{font-size:13px;color:#6e6e73;letter-spacing:.02em}
.value-card strong{font-size:clamp(1.6rem,3vw,2.1rem);line-height:1.1;letter-spacing:-.01em}
.value-card > span:not(.value-kind){font-size:13px;color:#6e6e73;line-height:1.5}
.value-card em{margin-top:auto;padding-top:8px;font-style:normal;font-weight:600;color:#0071e3;font-size:.95rem}
.home-towns{margin:4px 0 0}
.home-towns summary{cursor:pointer;list-style:none;font-weight:600;font-size:1rem;padding:12px 0;color:#1d1d1f}
.home-towns summary::after{content:" +";color:#0071e3}.home-towns[open] summary::after{content:" −"}
@media (max-width:760px){.value-cards{grid-template-columns:1fr}}

/* Moving up pages: HDB to condo, condo to the next home */
.move-strip{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;counter-reset:none}
.move-strip li{position:relative;display:flex;flex-direction:column;gap:6px;padding:20px 22px;border-radius:24px;
background:var(--matte-grain),linear-gradient(160deg,rgba(255,255,255,.8),rgba(244,247,252,.55));border:1px solid var(--matte-edge);box-shadow:var(--matte-shadow)}
.move-strip li:not(:last-child)::after{content:"";position:absolute;right:-10px;top:50%;width:8px;height:8px;border-top:2px solid #0071e3;border-right:2px solid #0071e3;transform:translateY(-50%) rotate(45deg);z-index:1}
.move-strip span{font-size:12px;font-weight:600;color:#0071e3;letter-spacing:.04em}
.move-strip strong{font-size:1.15rem;line-height:1.2;color:#1d1d1f}
.move-strip em{font-style:normal;font-size:13px;line-height:1.45;color:#6e6e73}
.move-strip li:last-child{background:var(--matte-grain),linear-gradient(160deg,rgba(232,242,255,.95),rgba(214,232,255,.7))}
.move-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.move-cards article{padding:20px 22px;border-radius:22px;background:rgba(255,255,255,.62);border:1px solid var(--matte-edge)}
.move-cards h3{margin:0 0 6px;font-size:1.05rem}
.move-cards p{margin:0;font-size:.95rem;line-height:1.55;color:#424245}
.move-why p{max-width:62ch;font-size:1.05rem;line-height:1.6}
.move-plan{list-style:none;margin:0;padding:0;display:grid;gap:8px;counter-reset:plan}
.move-plan li{counter-increment:plan}
.move-plan a{display:flex;align-items:center;gap:14px;padding:14px 18px;border-radius:18px;text-decoration:none;color:#1d1d1f;background:rgba(255,255,255,.62);border:1px solid var(--matte-edge);transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.move-plan a::before{content:counter(plan);flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:600;background:#e8f1ff;color:#0071e3}
.move-plan a:hover{transform:translateX(3px)}
.move-plan strong{flex:1;font-weight:600;font-size:1rem}
.move-plan span{font-size:.9rem;font-weight:600;color:#0071e3;white-space:nowrap}
.move-plan .move-review a{background:#0071e3;border-color:#0071e3;color:#fff}
.move-plan .move-review a::before{content:"✓";background:rgba(255,255,255,.22);color:#fff}
.move-plan .move-review span{color:#fff}
@media (max-width:760px){
  .move-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .move-strip li:nth-child(2)::after{display:none}
  .move-cards{grid-template-columns:1fr}
  .move-plan a{flex-wrap:wrap}.move-plan span{width:100%;padding-left:42px}
}
/* Home loan rates: bank logos */
.loan-table th[scope=row] .bank-logo{display:block;height:22px;width:auto;max-width:96px;margin:0 0 6px;object-fit:contain;object-position:left center}
.loan-best .bank-logo{display:block;height:20px;width:auto;max-width:90px;margin:4px 0 2px;object-fit:contain;object-position:left center}
.bank-logos{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:14px 0 18px}
.bank-logos img{width:100%;height:64px;padding:16px 18px;object-fit:contain;border-radius:18px;background:#fff;border:1px solid var(--matte-edge);box-sizing:border-box}
@media (max-width:760px){.bank-logos{grid-template-columns:repeat(3,minmax(0,1fr))}.bank-logos img{height:54px;padding:12px}}
/* Homes sold gallery (selling pages) */
.sold-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.sold-grid figure{margin:0;aspect-ratio:4/3;border-radius:20px;overflow:hidden;background:#f2f2f4}
.sold-grid img{width:100%;height:100%;object-fit:cover;display:block}

/* ===== One type scale for every page (5 Nov 2026): page title, section heading, card heading ===== */
:root{--t-h2:clamp(1.85rem,3.1vw,2.5rem);--t-h3:1.15rem}
main h2:not(.sr-only){font-size:var(--t-h2)!important;font-weight:600!important;letter-spacing:-.022em!important;line-height:1.12!important}
main h3,main .bento-tile strong,main .move-strip strong{font-size:var(--t-h3)!important;font-weight:600!important;letter-spacing:-.01em!important;line-height:1.3!important}
main .bento-tile strong{display:block;margin:6px 0 4px}
/* closing call to action: same heading size, more room above it */
main section.home-profile{margin-top:clamp(72px,9vw,128px)!important}

/* Homepage: value cards with every flat type, sub-tool buttons, plain town buttons */
.value-types{list-style:none;margin:4px 0 2px;padding:0;display:grid;gap:4px}
.value-types li{display:flex;align-items:baseline;gap:8px;font-size:.95rem}
.value-types li span:first-child{flex:1;color:#424245}
.value-types b{font-size:1.05rem;font-weight:600;color:#1d1d1f}
.value-types .chg-up,.value-types .chg-down,.value-types .chg-flat{font-size:12px;min-width:44px;text-align:right}
.home-subtools{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0}
.home-subtools a{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;border-radius:999px;text-decoration:none;font-size:.92rem;font-weight:600;color:#0071e3;
background:rgba(255,255,255,.72);border:1px solid var(--matte-edge);box-shadow:0 1px 2px rgba(15,23,42,.05);transition:background .3s,transform .3s}
.home-subtools a::after{content:"\203A";font-size:1.1em;line-height:1}
.home-subtools a:hover{background:#fff;transform:translateY(-1px)}
.home-town-grid a .town-lines{display:none}

/* Bento art: bigger map; richer unit and sun art */

/* How I work */
.hw-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,5vw,72px);align-items:end;padding-top:clamp(24px,4vw,48px)}
.hw-hero-text p{font-size:1.1rem;line-height:1.6;max-width:56ch}
.hw-trust{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:28px;padding-top:20px;border-top:1px solid rgba(0,0,0,.08)}
.hw-trust img{height:56px;width:auto}
.hw-trust span{font-size:13px;color:#6e6e73;line-height:1.5}
.hw-portrait{margin:0;display:flex;justify-content:center;border-radius:32px;overflow:hidden;
background:radial-gradient(120% 80% at 50% 100%,rgba(0,113,227,.16),rgba(232,241,255,.6) 60%,rgba(255,255,255,0))}
.hw-portrait img{width:min(100%,360px);height:auto;display:block;filter:drop-shadow(0 18px 30px rgba(15,23,42,.18))}
.hw-position-grid{display:grid;grid-template-columns:minmax(200px,280px) 1fr;gap:clamp(20px,4vw,48px);align-items:start}
.hw-film{margin:0;border-radius:24px;overflow:hidden;box-shadow:var(--matte-shadow)}
.hw-film img{width:100%;height:auto;display:block}
.hw-points{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.hw-points article,.hw-chope-text article{padding:20px 22px;border-radius:22px;background:rgba(255,255,255,.62);border:1px solid var(--matte-edge)}
.hw-points article>span,.hw-chope-text article>span{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#0b3d6e;color:#fff;font-size:13px;font-weight:600;margin-bottom:10px}
.hw-points p,.hw-chope-text p{margin:6px 0 0;font-size:.95rem;line-height:1.6;color:#424245}
.hw-points blockquote{grid-column:1/-1;margin:0;padding:24px 28px;border-radius:24px;background:#0b3d6e;color:#fff;font-size:1.1rem;line-height:1.6;font-style:italic}
.hw-sources{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:20px;border-radius:28px;background:linear-gradient(90deg,rgba(214,232,255,.9),rgba(255,255,255,.85),rgba(214,232,255,.9))}
.hw-source{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:120px;text-align:center}
.hw-source strong{font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;color:#0b3d6e}
.hw-logos{display:flex;flex-direction:column;align-items:center;gap:6px}
.hw-logos img{height:24px;width:auto}
.hw-badge{width:64px;height:64px}
.hw-icon svg{width:52px;height:52px;fill:none;stroke:#0b3d6e;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.hw-arrows{display:grid;grid-template-columns:repeat(3,1fr);height:40px}
.hw-arrows i{justify-self:center;width:2px;background:#0b3d6e;position:relative}
.hw-arrows i::after{content:"";position:absolute;bottom:0;left:50%;width:10px;height:10px;border-right:2px solid #0b3d6e;border-bottom:2px solid #0b3d6e;transform:translate(-50%,-1px) rotate(45deg)}
.hw-arrow-one{grid-template-columns:1fr}
.hw-pool{padding:16px;border-radius:18px;background:#0b3d6e;color:#fff;text-align:center;font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:clamp(.85rem,1.6vw,1.05rem)}
.hw-flow{list-style:none;margin:0;padding:18px 22px;display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto auto;align-items:center;gap:10px;border-radius:24px;border:1.5px solid #0b3d6e;background:#fff}
.hw-flow li{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#0b3d6e}
.hw-flow li.hw-sep{font-size:1.8rem;font-weight:300}
.hw-flow .hw-sold{padding:14px 22px;border-radius:14px;background:#0b3d6e;color:#fff}
.hw-chope{display:grid;grid-template-columns:1fr minmax(260px,400px);gap:clamp(24px,5vw,64px);align-items:center}
.hw-chope-text{display:grid;gap:14px}
.hw-phone{margin:0;padding:12px;border-radius:36px;background:#1d1d1f;box-shadow:0 30px 60px rgba(15,23,42,.22)}
.hw-phone img{width:100%;height:auto;display:block;border-radius:26px}
.hw-phone figcaption{color:#a1a1a6;font-size:12px;text-align:center;padding:10px 0 2px}
.hw-stages-head{display:grid;grid-template-columns:1fr minmax(260px,460px);gap:clamp(24px,5vw,64px);align-items:center;margin-bottom:24px}
.hw-stages-art{width:100%;height:auto}
.hw-stage-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,3vw,32px)}
.hw-stage-grid .advisory-steps{grid-template-columns:1fr!important}
@media (max-width:800px){
  .hw-hero,.hw-position-grid,.hw-chope,.hw-stages-head,.hw-stage-grid{grid-template-columns:1fr}
  .hw-portrait img{width:min(70%,300px)}
  .hw-points{grid-template-columns:1fr}
  .hw-film{max-width:280px}
  .hw-sources{padding:14px;gap:8px}
  .hw-logos img{height:16px}.hw-badge{width:44px;height:44px}.hw-icon svg{width:38px;height:38px}
  .hw-flow{grid-template-columns:1fr auto 1fr;row-gap:16px}.hw-flow li.hw-sep:nth-child(4){display:none}
}

/* Sell-and-buy timelines */
.tl-lane{margin:0 0 18px}
.tl-lane ol{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;align-items:stretch}
.tl-lane li{position:relative;display:flex;flex-direction:column;gap:4px;padding:14px 16px;margin:0 22px 10px 0;border-radius:16px;background:rgba(255,255,255,.75);border:1px solid var(--matte-edge);min-width:150px;max-width:220px}
.tl-lane li:not(:last-child)::after{content:"";position:absolute;right:-16px;top:50%;width:10px;height:10px;border-top:2px solid #0071e3;border-right:2px solid #0071e3;transform:translateY(-50%) rotate(45deg)}
.tl-lane li b{font-size:.95rem;font-weight:600;color:#1d1d1f}
.tl-lane li span{font-size:12.5px;color:#0071e3;font-weight:600}
.tl-lane + .tl-lane li{background:rgba(232,241,255,.7)}
main .tl-block h3{font-size:.85rem!important;text-transform:uppercase;letter-spacing:.06em!important;color:#6e6e73}
.hw-trust img[alt="PropNex"]{height:34px}
.hw-logos{gap:10px}.hw-logos img{height:26px;max-width:150px;object-fit:contain}
/* Headings are never bold (5 Nov 2026) */
main h1,main h2:not(.sr-only),main h3,main h4,main .bento-tile strong,main .move-strip strong,.page-intro h1,.hero h1{font-weight:500!important}
/* value section lines up with the sections below it */
main section.home-hdb{max-width:none!important;width:min(1200px,calc(100% - var(--hig-gutter) - var(--hig-gutter)))!important;margin-left:auto!important;margin-right:auto!important;padding-left:0!important;padding-right:0!important}
@media (max-width:800px){main section.home-hdb{width:calc(100% - 40px)!important}}

/* 5 Nov 2026 (2): hero type back to its earlier scale, report link lower, bento art modest, How I work portrait flush */
.hero h1{font-size:clamp(44px,5.2vw,76px)!important;line-height:1.04!important;max-width:14ch}
.hero .hero-report{margin-top:clamp(28px,4vh,48px)!important}
.bento-tile.bento-map .bento-art[src*="clay-"]{width:min(46%,250px)!important}
.bento-tile .bento-art-sm[src*="clay-"]{width:min(30%,112px)!important}
.bento-tile:has(.bento-art-sm[src*="clay-"]) strong,.bento-tile:has(.bento-art-sm[src*="clay-"]) .bento-kicker,.bento-tile:has(.bento-art-sm[src*="clay-"]) > span:not(.bento-go){padding-right:calc(min(30%,112px) + 14px)}
.hw-portrait{align-items:flex-end;padding:0!important;min-height:0}
.hw-portrait img{filter:none!important;margin:0 auto -1px!important;display:block}
.hw-hero{align-items:stretch}
.hw-hero-text{align-self:center}
.hw-art{margin:0;display:flex;align-items:center;justify-content:center;border-radius:24px;background:linear-gradient(160deg,rgba(232,241,255,.9),rgba(255,255,255,.6));padding:18px}
.hw-art img{width:100%;height:auto;display:block}
/* bento art: no hatched backdrop; icon chips keep their size */
.bento-tile .bento-art,.bento-tile .bento-art-sm{background:none!important;border-radius:0!important;box-shadow:none!important}
.bento-tile:has(.bento-art-sm[src*="clay-"]) > .glass-icon{padding-right:0!important}
.bento-tile.bento-map .bento-art[src*="clay-"]{width:min(62%,340px)!important;right:50%!important;transform:translateX(50%)!important;bottom:calc(var(--tile-pad) + 36px)!important}
.hero h1{max-width:none!important;font-size:clamp(40px,4.6vw,66px)!important}
.hero h1{font-size:clamp(38px,4.1vw,54px)!important}
.hw-art{align-self:start}.hw-art img{max-width:260px;margin:auto}

/* 5 Nov 2026 (3): no outlines on cards and sheets, anywhere */
.card,.journey-options a,.proceeds-panel,.calc-panel,.service-features>div,.proceeds-panel>.proceeds-inputs,.proceeds-panel>.proceeds-result,#mortgagePanel,.quick-estimate,.quick-estimate>div,
.journal-grid a,.content-grid article,.content-page article.story,.advisory-tool,.advisory-grid article,.guide-card,.guide-next,.calculator-menu,.tool-choices,.tool-shell,.tool-review,.tool-inputs,.tool-result,
.news-filters,.news-card,.news-key,.news-next,.news-context>a,.guide-grid .guide-card,.guide-table-wrap,.launch-plan-art,.launch-stage-panel,.launch-art-note,.launch-stage-takeaway,.launch-funding-grid article,
.district-browse-grid a,.structure-cta,.structure-page .journal-grid a,.finder-results,.finder-card,.home-news-card,.sun-chart-wrap,.planning-pair,.planning-table-wrap,.planning-more-grid a,.data-table-wrap,
.hdb-town-grid a,.viz-card,.watch-empty,.tk-grid a,.glass-panel,.bento-tile,.pmap-pop-menu,.x3-panel-plan,.x3-sunbox,.photoreal,.avail-strip,.shortlist-cta,.launch-directory-head,.ul-card,.home-town-grid a,
.value-card,.move-strip li,.move-cards article,.move-plan a,.bank-logos img,.hw-points article,.hw-chope-text article,.hw-flow,.tl-lane li,.launch-carousel-controls,.launch-filter-sheet,.launch-project-card,
.project-section-nav,.project-check-grid article,.project-plan,.project-lightbox,.statement-inner,.hero-content,.calc-tile,.home-subtools a,.service-chooser a{border-color:transparent!important;outline:none!important}
.hw-flow{box-shadow:var(--matte-shadow)}

/* button text is never bold */
.button,button,.hero-intent,.home-subtools a,.service-chooser a,.project-pdf-button,.bento-go,.value-card em,.move-plan span,.advisory-text-link,.tool-send,.calc-tile em,
.app-tabs a,.nav-drop-toggle,.wa-pop a,.hw-sold,.hw-pool,.planner-tabs button,.service-tabs button,.grade-filter button,.unit-chips button,.sun-facings button,.watch-toggle,.pmap-near,.pmap-chip{font-weight:400!important}

/* homepage calculators: three tool tiles and an All calculators button */
.calc-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:14px 0 0}
.calc-tile{display:flex;align-items:center;gap:16px;padding:18px 20px;border-radius:24px;text-decoration:none;color:#1d1d1f;
background:var(--matte-grain),linear-gradient(160deg,rgba(255,255,255,.82),rgba(240,245,252,.6));box-shadow:var(--matte-shadow);transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.calc-tile:hover{transform:translateY(-3px)}
.calc-tile img{width:84px;height:64px;object-fit:contain;flex:none}
.calc-tile span{display:flex;flex-direction:column;gap:2px}
main .calc-tile strong{font-size:var(--t-h3);font-weight:500;letter-spacing:-.01em}
.calc-tile em{font-style:normal;font-size:13px;color:#6e6e73;line-height:1.4}
.calc-all{margin:18px 0 0}
@media (max-width:760px){.calc-tiles{grid-template-columns:1fr}}

/* 5 Nov 2026 (4): one gap between every section; hero type up a step; weekly line regular weight */
:root{--sec-gap:clamp(80px,9vw,128px)}
main > section:not(.hero):not(.structure-cta):not(.advisory-tool):not(.tool-panel):not(.service-lead):not(.review-wrap):not(.shortlist-cta):not(.guide-official-sources):not(.tools-groups):not(:first-child){
  padding-top:var(--sec-gap)!important;padding-bottom:0!important;margin-top:0!important;margin-bottom:0!important}
main > section:not(.hero):not(.structure-cta):not(.advisory-tool):not(.tool-panel):not(.service-lead):not(.review-wrap):not(.shortlist-cta):not(.guide-official-sources):not(.tools-groups):not(:first-child):last-child{padding-bottom:var(--sec-gap)!important}
main > section.structure-cta,main > section.advisory-tool,main > section.review-wrap,main > section.shortlist-cta{margin-top:var(--sec-gap)!important;margin-bottom:0!important}
main > section.home-profile:not(.structure-cta){padding-top:var(--sec-gap)!important}
.hero h1{font-size:clamp(42px,4.7vw,62px)!important}
.hero .hero-report,.hero .hero-report a,.hero-links a{font-weight:400!important}

/* selling pages: team block and positioning without a picture */
.hw-team{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,5vw,72px);align-items:stretch}
.hw-team .hw-hero-text{align-self:center}
.hw-portrait{display:flex;align-items:flex-end;justify-content:center;overflow:hidden;padding:24px 24px 0!important;min-height:360px}
.hw-portrait img{width:auto!important;max-width:100%;height:min(520px,100%)!important;max-height:520px;object-fit:contain;object-position:bottom;margin:0!important;display:block}
.hw-position .hw-points{grid-template-columns:1fr 1fr}

/* closing call to action with Hanson's photo, cut at the card's bottom edge */
.cta-photo{display:grid!important;grid-template-columns:1fr auto;align-items:end;overflow:hidden;padding-bottom:0!important}
.cta-photo > div{align-self:center;padding-bottom:clamp(32px,4vw,56px)}
.cta-portrait{display:block;height:clamp(240px,26vw,340px);width:auto;margin:clamp(24px,3vw,40px) clamp(8px,3vw,40px) 0 0}
@media (max-width:800px){.hw-team{grid-template-columns:1fr}.hw-position .hw-points{grid-template-columns:1fr}
  .cta-photo{grid-template-columns:1fr}.cta-portrait{justify-self:center;height:240px;margin:8px 0 0}}
.hw-team .hw-portrait{align-self:end;min-height:0!important;padding:28px 28px 0!important}
.hw-team .hw-portrait img{height:auto!important;max-height:none!important;width:min(100%,320px)!important}
.cta-portrait{height:clamp(280px,30vw,400px)!important}
@media (min-width:801px){.hero h1{width:max-content!important;max-width:calc(100vw - 2*var(--hig-gutter))!important}}

/* 5 Nov 2026 (5): positioning and home-matching in the site's own card + glyph style */
.hw-lead{max-width:62ch;font-size:1.05rem;line-height:1.6;color:#424245;margin:-4px 0 22px}
.hw-position .hw-points{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:14px}
.hw-points article{padding:22px 24px!important;border-radius:24px!important;background:var(--matte-grain),linear-gradient(160deg,rgba(255,255,255,.82),rgba(240,245,252,.6))!important;box-shadow:var(--matte-shadow)}
.hw-points article .glass-icon,.hw-chope-text .glass-icon{margin-bottom:14px}
.hw-quote{margin:22px 0 0;font-size:clamp(1.2rem,2vw,1.5rem);line-height:1.35;color:#0071e3;letter-spacing:-.01em}
.hw-source .glass-icon,.hw-flow .glass-icon{width:56px;height:56px}
.hw-flow{border:0!important;background:var(--matte-grain),linear-gradient(160deg,rgba(255,255,255,.85),rgba(240,245,252,.6))!important;color:#1d1d1f}
.hw-flow li{color:#1d1d1f!important;text-transform:none!important;letter-spacing:0!important;font-size:.95rem!important;font-weight:400!important;gap:10px!important}
.hw-flow li.hw-sep{color:#0071e3!important}
.hw-flow .hw-sold{background:#0071e3!important;color:#fff!important;display:flex;flex-direction:row!important;align-items:center;gap:10px;padding:10px 18px 10px 10px!important}
.hw-flow .hw-sold .glass-icon{width:40px;height:40px;border-radius:12px}
.hw-sources{background:var(--matte-grain),linear-gradient(160deg,rgba(255,255,255,.85),rgba(232,241,255,.7))!important;box-shadow:var(--matte-shadow)}
.hw-source strong{color:#1d1d1f!important;text-transform:none!important;letter-spacing:0!important;font-size:.95rem!important;font-weight:500!important}
.hw-pool{background:linear-gradient(90deg,#0071e3,#2a8af0)!important;text-transform:none!important;letter-spacing:0!important;font-size:1.05rem!important;font-weight:500!important}
.hw-arrows i,.hw-arrows i::after{background:none}.hw-arrows i{background:#0071e3!important}.hw-arrows i::after{border-color:#0071e3!important}
.hw-points article>span:not(.glass-icon){display:none}
@media (max-width:800px){.hw-position .hw-points{grid-template-columns:1fr!important}}
/* footer: sitemap columns sit further from the profile */
@media (min-width:801px){.footer-top{grid-template-columns:minmax(280px,1.2fr) minmax(0,3.2fr)!important;column-gap:clamp(56px,8vw,128px)!important}}

/* Timelines: one quiet card per route */
.tl-head{display:flex;align-items:center;gap:16px;margin-bottom:20px}
.tl-head h2{margin:0}
.tl-lanes{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.tl-lane{margin:0!important;padding:22px 24px;border-radius:24px;background:var(--matte-grain),linear-gradient(160deg,rgba(255,255,255,.82),rgba(240,245,252,.6));box-shadow:var(--matte-shadow)}
.tl-lane-name{margin:0 0 14px;font-size:13px;color:#6e6e73;letter-spacing:.02em}
.tl-lane ol{list-style:none;margin:0!important;padding:0!important;display:block!important}
.tl-lane li{all:unset;position:relative;display:flex!important;flex-direction:column;gap:2px;padding:0 0 18px 26px!important}
.tl-lane li::before{content:"";position:absolute;left:4px;top:7px;width:9px;height:9px;border-radius:50%;background:#0071e3}
.tl-lane li:not(:last-child)::after{content:""!important;position:absolute!important;left:8px!important;top:20px!important;bottom:2px;width:1px!important;height:auto!important;border:0!important;background:rgba(0,113,227,.25)!important;transform:none!important;right:auto!important}
.tl-lane li span{font-size:1rem;color:#1d1d1f;font-weight:400}
.tl-lane li em{font-style:normal;font-size:13px;color:#0071e3;font-weight:400}
@media (max-width:760px){.tl-lanes{grid-template-columns:1fr}}

/* Guides hub */
.gh-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.gh-card{display:flex;align-items:center;gap:16px;padding:18px 20px;border-radius:24px;text-decoration:none;color:#1d1d1f;
background:var(--matte-grain),linear-gradient(160deg,rgba(255,255,255,.82),rgba(240,245,252,.6));box-shadow:var(--matte-shadow);transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.gh-card:hover{transform:translateY(-3px)}
.gh-card span{display:flex;flex-direction:column;gap:3px}
main .gh-card strong{font-size:var(--t-h3);font-weight:500}
.gh-card em{font-style:normal;font-size:13px;color:#6e6e73;line-height:1.45}
.gh-photo{flex-direction:column;align-items:stretch;padding:0;overflow:hidden}
.gh-photo img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}
.gh-photo span{padding:16px 20px 20px}
/* guides hub photo cards keep a 3:2 picture */
.gh-photo img{height:auto!important;aspect-ratio:3/2!important;object-fit:cover!important;max-height:none!important}
/* glyph chips in the selling-page cards (override the old numbered badges) */
.hw-points article>.glass-icon,.hw-chope-text article>.glass-icon{display:inline-grid!important;width:52px!important;height:52px!important;border-radius:16px!important;
background:linear-gradient(155deg,rgba(255,255,255,.85),rgba(214,232,252,.55))!important;color:var(--brand)!important;margin-bottom:14px}
/* HDB value card: a neat 2 x 2 of flat types */
.value-types{grid-template-columns:1fr 1fr!important;gap:12px 16px!important;margin:6px 0 10px!important}
.value-types li{flex-direction:column!important;align-items:flex-start!important;gap:2px!important}
.value-types li span:first-child{font-size:12px!important;color:#6e6e73!important}
.value-types b{font-size:1.35rem!important;font-weight:500!important;letter-spacing:-.01em}
main .hw-quote{font-size:clamp(1.25rem,2.2vw,1.6rem)!important;color:#0071e3!important;margin-top:26px!important;line-height:1.35}
/* the last section always ends one full gap above the footer */
main.advisory-page,main.structure-page{padding-bottom:0!important}
main > section:last-child:not(.structure-cta):not(.advisory-tool):not(.hero){padding-bottom:var(--sec-gap)!important}
main > section.structure-cta:last-child,main > section.advisory-tool:last-child,main > section.review-wrap:last-child,main > section.shortlist-cta:last-child{margin-bottom:var(--sec-gap)!important}
/* one paragraph style under every section heading */
main section > p:not([class]),main .home-profile > div > p,main .bento-head p,main .home-hdb-head p,main .structure-cta p{font-size:1.05rem!important;line-height:1.6!important;color:#6e6e73!important;font-weight:400!important}
main section > h2 + p,main .home-profile h2 + p{margin-top:12px!important}
main .home-profile .button,main .structure-cta .button{margin-top:24px!important}
main > section.home-profile:not(.structure-cta){padding-bottom:var(--sec-gap)!important}
main section h2:not(.sr-only){margin-top:0!important}
/* nothing inside a section adds its own trailing space; the section gap is the only gap */
main > section > :last-child,main > section > :last-child > :last-child{margin-bottom:0!important}main > section > :last-child:not(a):not(button):not(article):not(figure):not(details):not(li):not(.hw-flow):not(figcaption):not(.cliff):not(.x3-read):not(.ul-body):not(.tool-sell-next):not(.swipe-nav):not(.mnf-card):not(.meet-card),main > section > :last-child > :last-child:not(a):not(button):not(article):not(figure):not(details):not(li):not(.hw-flow):not(figcaption):not(.cliff):not(.x3-read):not(.ul-body):not(.tool-sell-next):not(.swipe-nav):not(.mnf-card):not(.meet-card){padding-bottom:0!important}
main > section:not(.structure-cta):not(.advisory-tool) > :last-child:not(a):not(button):not(article):not(figure):not(details):not(li):not(.hw-flow):not(figcaption):not(.cliff):not(.x3-read):not(.ul-body):not(.tool-sell-next):not(.swipe-nav):not(.mnf-card):not(.meet-card){padding-bottom:0!important}
main > section.hw-team > .hw-hero-text{align-self:start!important}
main > section > h2:first-child{padding-top:0!important}
/* desktop hero shows the whole film: the box takes the video's own 16:9 frame instead of zooming it to fill */
@media (min-width:801px){
  .hero.is-wide{height:auto!important;min-height:0!important;aspect-ratio:16/9;max-height:none!important}
  .hero.is-wide .hero-wide{object-fit:cover;object-position:center center!important}
}

/* 6 Nov 2026: brand library pictures in place */
.value-card{position:relative}
.value-card .value-art{position:absolute;top:14px;right:14px;width:min(38%,132px);height:auto;pointer-events:none}
.value-card .value-kind{max-width:56%}
.hw-position-head{display:grid;grid-template-columns:1fr minmax(220px,360px);gap:clamp(24px,4vw,56px);align-items:center;margin-bottom:24px}
.hw-position-head .hw-lead{margin-bottom:0}
.hw-art-img{width:100%;height:auto;display:block}
main .page-clay{width:auto!important;height:auto!important;max-width:min(240px,34vw)!important;max-height:170px!important;object-fit:contain}
.move-page .service-lead figure img{background:none;object-fit:contain}
@media (max-width:800px){.hw-position-head{grid-template-columns:1fr}.hw-art-img{max-width:320px}.value-card .value-art{width:96px}}
/* value cards: picture on top, figures below, nothing overlaps */
.value-card .value-art{position:static!important;display:block;width:auto!important;height:112px;max-width:100%;object-fit:contain;margin:0 0 10px;align-self:flex-start}
.value-card .value-kind{max-width:none}
/* moving-up pages: the scene sits on the page, not in a grey box */
.move-page .service-lead figure{background:none!important;box-shadow:none!important;border-radius:0!important;display:flex;align-items:center;justify-content:center}
.move-page .service-lead figure img{width:100%;height:auto;max-height:440px}
/* phones: every selling-page block fits the screen */
@media (max-width:800px){
  .hw-sources{grid-template-columns:1fr 1fr 1fr!important;padding:12px!important;gap:6px!important}
  .hw-source{min-height:96px}.hw-logos img{height:14px!important;max-width:90px}
  .hw-source strong{font-size:.8rem!important}
  .hw-flow{grid-template-columns:1fr 1fr!important;row-gap:14px!important;padding:16px!important}
  .hw-flow li.hw-sep{display:none!important}
  .hw-flow .hw-sold{justify-self:center}
  .hw-team,.hw-position-head,.hw-chope,.cta-photo,.service-lead{grid-template-columns:minmax(0,1fr)!important}
  .hw-phone{max-width:100%}
  main,main > section{min-width:0;max-width:100%}
}
html,body{overflow-x:clip}
.hw-trust img[alt="Realtors Collective"]{height:40px;width:auto}
/* Team write-up (Realtors Collective) */
.hw-team-points{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:16px}
.hw-team-points li{display:flex;gap:16px;align-items:flex-start}
.hw-team-points .glass-icon{flex:none;width:48px;height:48px;border-radius:15px}
.hw-team-points h3{margin:2px 0 4px}
.hw-team-points p{margin:0;font-size:.95rem;line-height:1.55;color:#6e6e73}
.hw-motto{margin:22px 0 0!important;font-size:clamp(1.2rem,2vw,1.45rem)!important;color:#0071e3!important;letter-spacing:-.01em}
.hw-trust{margin-top:22px!important}
.hw-trust img[alt="Realtors Collective"]{height:38px!important}
.hw-trust img[alt="PropNex"]{height:30px!important}
/* closing card: half-body photo rising from the card's bottom edge, clear of the rounded corner */
.cta-photo{padding-right:0!important}
.cta-photo .cta-portrait{height:clamp(240px,24vw,320px)!important;width:auto;align-self:end;margin:24px clamp(48px,6vw,88px) 0 0!important;display:block}
@media (max-width:800px){.cta-photo .cta-portrait{justify-self:center;height:220px!important;margin:8px auto 0!important}}
.cta-photo img.cta-portrait{border-radius:0!important;object-fit:contain!important;object-position:bottom!important;width:auto!important;min-height:0!important;aspect-ratio:auto!important;max-width:none!important}

/* ===== 6 Nov 2026: alignment pass ===== */
/* Glyph chips: the icon sits dead centre in its square, everywhere */
.glass-icon{display:inline-grid!important;place-items:center!important;flex:none;padding:0!important;line-height:0}
.glass-icon > svg,.glass-icon > .property-glyph{grid-row:auto!important;grid-column:auto!important;margin:0!important;display:block!important;width:26px!important;height:26px!important;
  fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* Buttons and pills: label centred on both axes */
.button,a.button,.hero-intent,.service-chooser a,.calc-all .button{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:10px;text-align:center;line-height:1.2!important}
.button > span[aria-hidden],.button span[aria-hidden="true"]{display:inline-block;line-height:1;margin:0!important;transform:translateY(-.5px)}

/* FAQ: equal space above and below every question and its line */
.advisory-faq details{border-top:1px solid #d2d2d7!important;border-bottom:0!important;padding:0!important}
.advisory-faq details:last-of-type{border-bottom:1px solid #d2d2d7!important}
.advisory-faq summary{display:flex!important;align-items:center;justify-content:space-between;gap:16px;min-height:64px;padding:18px 0!important;margin:0!important;list-style:none;font-size:1.05rem!important;font-weight:500!important;line-height:1.4}
.advisory-faq summary::-webkit-details-marker{display:none}
.advisory-faq summary::marker{content:""}
.advisory-faq summary::after{content:"";flex:none;width:9px;height:9px;border-right:1.7px solid #0071e3;border-bottom:1.7px solid #0071e3;transform:rotate(45deg) translateY(-3px);transition:transform .3s}
.advisory-faq details[open] summary::after{transform:rotate(-135deg) translateY(-2px)}
.advisory-faq details > p{margin:0!important;padding:0 0 20px!important;color:#6e6e73;line-height:1.6}

/* Steps: glyph, number and title on one rhythm; the rule above each step sits the same distance away */
.advisory-steps article{border-top:1px solid #d2d2d7!important;padding-top:22px!important;display:flex;flex-direction:column;gap:6px}
.advisory-steps article > .glass-icon{width:48px;height:48px;border-radius:15px;margin-bottom:10px}
.advisory-steps article > span:not(.glass-icon){font-size:13px;color:#0071e3;letter-spacing:.04em}
.advisory-steps article h3{margin:0!important}
.advisory-steps article p{margin:0!important}
.advisory-grid article > .glass-icon{width:48px;height:48px;border-radius:15px;margin-bottom:14px}

/* Homepage value cards: picture centred, the same 2 x 2 of figures on every card */
.value-card{align-items:stretch}
.value-card .value-art{align-self:center!important;margin:0 auto 14px!important;height:120px!important}
.value-card .value-types b .chg-up,.value-card .value-types b .chg-down,.value-card .value-types b .chg-flat{font-size:inherit!important;min-width:0!important;text-align:left!important}
.value-card > span:not(.value-kind){margin-top:2px}

/* HDB prices by town: a real toggle button */
.home-towns{margin:18px 0 0!important}
.home-towns summary{display:inline-flex!important;align-items:center;gap:10px;list-style:none;cursor:pointer;padding:12px 18px 12px 22px!important;border-radius:999px;
  background:var(--matte-grain),linear-gradient(160deg,rgba(255,255,255,.9),rgba(240,245,252,.7));box-shadow:var(--matte-shadow);font-size:.95rem!important;font-weight:400!important;color:#0071e3!important}
.home-towns summary::-webkit-details-marker{display:none}
.home-towns summary::after{content:none!important}
.home-towns .ht-close{display:none}.home-towns[open] .ht-open{display:none}.home-towns[open] .ht-close{display:inline}
.home-towns .ht-chev{display:inline-grid;place-items:center;width:20px;height:20px;transition:transform .3s}
.home-towns .ht-chev svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.home-towns[open] .ht-chev{transform:rotate(180deg)}
.home-towns[open] .home-town-grid{margin-top:16px}

/* More prices: app-style tiles, one row, equal widths */
.home-subtools{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px!important;margin:22px 0 0!important}
.home-subtools a{display:flex!important;flex-direction:column;align-items:center;justify-content:flex-start;gap:12px;padding:20px 12px 18px!important;border-radius:24px!important;text-align:center;
  color:#1d1d1f!important;font-size:.9rem!important;font-weight:400!important;line-height:1.3;background:var(--matte-grain),linear-gradient(160deg,rgba(255,255,255,.85),rgba(240,245,252,.6))!important;box-shadow:var(--matte-shadow)!important}
.home-subtools a::after{content:none!important}
.home-subtools a .glass-icon{width:52px;height:52px;border-radius:16px}
.home-subtools a span:not(.glass-icon){display:block;min-height:2.6em;display:flex;align-items:center;justify-content:center}
@media (max-width:800px){.home-subtools{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media (max-width:420px){.home-subtools{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* Bento art: every picture sits inside the tile padding, at a consistent scale */
.bento-tile .bento-art{position:absolute!important;transform:none!important;height:auto!important;object-fit:contain!important;margin:0!important;background:none!important;pointer-events:none}
.bento-tile .bento-art-sm{top:var(--tile-pad)!important;right:var(--tile-pad)!important;bottom:auto!important;left:auto!important;width:min(30%,132px)!important;max-height:120px!important}
.bento-tile:has(.bento-art-sm) > strong,.bento-tile:has(.bento-art-sm) > .bento-kicker,.bento-tile:has(.bento-art-sm) > span:not(.bento-go):not(.glass-icon){padding-right:calc(min(30%,132px) + 16px)!important}
/* Projects map: a big picture framed inside the tile, the button floating on it */
.bento-tile.bento-map{min-height:520px}
.bento-tile.bento-map .bento-art{left:var(--tile-pad)!important;right:var(--tile-pad)!important;bottom:var(--tile-pad)!important;top:auto!important;width:calc(100% - 2 * var(--tile-pad))!important;max-width:none!important;
  height:56%!important;max-height:none!important;object-position:center bottom!important;border-radius:22px}
.bento-tile.bento-map .bento-go{position:absolute;left:calc(var(--tile-pad) + 14px);bottom:calc(var(--tile-pad) + 14px);z-index:2;margin:0!important;min-height:44px;padding:0 20px!important;
  border-radius:999px;background:rgba(0,113,227,.92)!important;color:#fff!important;box-shadow:0 10px 24px rgba(0,113,227,.28);backdrop-filter:blur(8px)}
@media (max-width:800px){.bento-tile.bento-map{min-height:460px}.bento-tile.bento-map .bento-art{height:50%!important}}

/* Team photo: the whole cut-out inside its panel, legs meeting the panel's bottom edge */
.hw-team .hw-portrait{background:linear-gradient(180deg,#eef4fd 0%,#dde9fb 100%)!important;border-radius:28px!important;padding:36px 32px 0!important;overflow:hidden;align-self:stretch!important;display:flex!important;align-items:flex-end;justify-content:center}
.hw-team .hw-portrait img{width:auto!important;height:auto!important;max-width:100%!important;max-height:560px!important;display:block}
.bento-tile .bento-art-sm{height:auto!important;object-fit:contain!important}
.bento-units .bento-art-sm{aspect-ratio:1211/888}
.bento-sun .bento-art-sm{aspect-ratio:822/877;width:min(24%,104px)!important}
.bento-go{line-height:1!important;align-items:center!important;justify-content:center!important;padding-top:0!important;padding-bottom:0!important}

/* ===== 6 Nov 2026: hover glow on everything clickable ===== */
:root{--hover-ease:cubic-bezier(.22,.8,.24,1)}
.button,a.button,button.button,.advisory-button,.hero-intent,.bento-go,.tool-send,.calc-all .button,.service-chooser a,.home-towns summary,.home-subtools a,
.calc-tile,.value-card,.gh-card,.move-plan a,.bento-tile,.planning-more-grid a,.journal-grid a,.hdb-town-grid a,.district-browse-grid a,.launch-project-card,
.ul-card,.news-card,.guide-card,.cta-photo .button,.wa,.app-tabs a,.nav-drop-toggle,.hw-sold,.project-pdf-button,.loan-best > div{
  transition:transform .45s var(--hover-ease),box-shadow .45s var(--hover-ease),background-color .45s var(--hover-ease),filter .45s var(--hover-ease)!important}
/* filled buttons: lift and a blue glow */
.button:hover,a.button:hover,.advisory-button:hover,.bento-go:hover,.tool-send:hover,.hero-intent-main:hover,.project-pdf-button:hover,
.bento-tile:hover .bento-go{transform:translateY(-2px);box-shadow:0 0 0 4px rgba(0,113,227,.14),0 10px 26px rgba(0,113,227,.32)!important;filter:brightness(1.05)}
/* outline / glass pills: a soft white-blue glow */
.hero-intent:not(.hero-intent-main):hover{transform:translateY(-2px);box-shadow:0 0 0 4px rgba(255,255,255,.16),0 10px 26px rgba(0,0,0,.22)!important;background-color:rgba(255,255,255,.18)!important}
.service-chooser a:hover,.home-towns summary:hover,.nav-drop-toggle:hover{transform:translateY(-1px);box-shadow:0 0 0 4px rgba(0,113,227,.10),0 8px 22px rgba(0,113,227,.16)!important}
/* cards and tiles: lift with a quiet glow */
.home-subtools a:hover,.calc-tile:hover,.value-card:hover,.gh-card:hover,.move-plan a:hover,.bento-tile:hover,.planning-more-grid a:hover,.journal-grid a:hover,
.hdb-town-grid a:hover,.district-browse-grid a:hover,.launch-project-card:hover,.ul-card:hover,.news-card:hover,.guide-card:hover{
  transform:translateY(-4px);box-shadow:0 0 0 1px rgba(0,113,227,.10),0 0 0 6px rgba(0,113,227,.06),0 22px 48px rgba(16,42,84,.14)!important}
.wa:hover,.app-tabs a:hover{transform:translateY(-2px);filter:brightness(1.06);box-shadow:0 0 0 4px rgba(37,211,102,.16),0 10px 24px rgba(0,0,0,.18)!important}
.button:active,.hero-intent:active,.bento-go:active,.calc-tile:active,.home-subtools a:active,.value-card:active{transform:translateY(0) scale(.98);transition-duration:.12s!important}
.button:focus-visible,.hero-intent:focus-visible,a:focus-visible,summary:focus-visible{outline:none;box-shadow:0 0 0 3px #fff,0 0 0 6px rgba(0,113,227,.55)!important}
@media (prefers-reduced-motion:reduce){*:hover{transform:none!important}}

/* hero: headline a step larger and the copy sits a little higher */
.hero h1{font-size:clamp(46px,5.3vw,74px)!important}
@media (min-width:801px){.hero .hero-content{translate:0 -6vh}}
@media (max-width:800px){.hero h1{font-size:clamp(40px,10.5vw,54px)!important}.hero .hero-content{translate:0 -3vh}}

/* ===== 6 Nov 2026 (2) ===== */
/* Change figures: green up, red down, never bold, everywhere */
.chg-up,.chg-down,.chg-flat{font-weight:inherit!important}
.value-types li > span:first-child{flex:1;color:#6e6e73!important;font-size:12px!important}
.value-types li span.chg-up{color:#1a8f3c!important}.value-types li span.chg-down{color:#d1342f!important}.value-types li span.chg-flat{color:#6e6e73!important}
.value-types b{font-weight:500!important}

/* Town cards: the 4-room median and its change are the headline figures */
.hdb-town-grid a .tc-label{display:block;margin-top:12px!important;font-size:12px!important;color:#6e6e73!important}
.hdb-town-grid a .tc-figure{display:flex!important;align-items:baseline;flex-wrap:wrap;gap:4px 10px;margin-top:2px!important;color:#1d1d1f!important;font-size:inherit!important}
.hdb-town-grid a .tc-figure b{font-size:1.45rem;font-weight:500;letter-spacing:-.015em;font-variant-numeric:tabular-nums;color:#1d1d1f}
.hdb-town-grid a .tc-figure .chg-up,.hdb-town-grid a .tc-figure .chg-down,.hdb-town-grid a .tc-figure .chg-flat{display:inline!important;margin:0!important;font-size:1.05rem!important;font-weight:500!important}
.home-town-grid a .tc-figure b{font-size:1.25rem}

/* Glyph squares: clean and flat, no shadow or glow (Apple-style) */
.glass-icon{box-shadow:none!important;border:0!important;background:#edf3fc!important;color:#0071e3!important;filter:none!important}
.bento-tile:hover .glass-icon,.glass-icon:hover{box-shadow:none!important;transform:none!important}

/* Pill buttons: label centred, equal padding all round */
.bento-go,.calc-all .button,.how-actions .button{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px;height:46px;min-height:46px!important;
  padding:0 22px!important;line-height:1!important;border-radius:999px;font-size:15px;white-space:nowrap}
.bento-go > span,.calc-all .button > span{line-height:1!important;margin:0!important;transform:none!important}
.bento-tile.bento-map .bento-go{left:var(--tile-pad)!important;bottom:var(--tile-pad)!important}
.calc-all{display:flex;margin-top:20px!important}

/* How we work together: two next steps */
.how-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.button-quiet,.button.button-quiet{background:#edf3fc!important;color:#0071e3!important;box-shadow:none}
.button-quiet:hover{background:#e2ecfb!important}
.bento-tile .bento-go{align-self:flex-start!important;background:#0071e3!important;color:#fff!important;margin-top:auto!important}
.hw-chope-text article > .glass-icon{display:inline-grid!important;margin-bottom:14px}

/* ===== 6 Nov 2026 (3) ===== */
/* Glyph squares: flat tint with a very fine edge, like an app icon */
.glass-icon{border:1px solid rgba(0,113,227,.16)!important;box-sizing:border-box}

/* Valuation tools: wide address/project field and the type-ahead list */
.tool-fields .vc-wide{grid-column:1/-1}
.vc-ac{position:relative;display:block}
.vc-ac input{width:100%}
.vc-ac-list{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 6px);margin:0;padding:6px;list-style:none;max-height:300px;overflow:auto;border-radius:16px;
  background:#fff;border:1px solid rgba(0,0,0,.08);box-shadow:0 18px 40px rgba(16,42,84,.16)}
.vc-ac-list li{padding:10px 12px;border-radius:10px;font-size:.95rem;color:#1d1d1f;cursor:pointer;line-height:1.3}
.vc-ac-list li:hover,.vc-ac-list li.is-active{background:#edf3fc;color:#0071e3}
.tool-row b.chg-up{color:#1a8f3c!important}.tool-row b.chg-down{color:#d1342f!important}
.tool-row b[data-out="profit"]{font-size:1.15rem}

/* Home-matching flow: four equal columns, labels sit right under their icon, Sold matches the others */
.hw-flow{display:grid!important;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr!important;align-items:start!important;padding:22px 28px!important;gap:0 8px!important}
.hw-flow li{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important;gap:10px!important;text-align:center;font-size:.95rem!important}
.hw-flow li.hw-sep{align-self:center;margin-top:-22px;font-size:1.4rem!important;color:#c7d6ea!important}
.hw-flow .hw-sold{background:none!important;color:#1d1d1f!important;padding:0!important;border-radius:0!important;box-shadow:none!important;flex-direction:column!important}
.hw-flow .hw-sold .glass-icon{width:56px!important;height:56px!important;border-radius:16px!important;background:#0071e3!important;color:#fff!important;border-color:#0071e3!important}
@media (max-width:800px){.hw-flow{grid-template-columns:1fr 1fr!important;row-gap:18px!important}.hw-flow li.hw-sep{display:none!important}}

/* Bento: the small tiles are the buttons; their pictures share one size and one inset */
.bento-units .bento-art-sm,.bento-sun .bento-art-sm{top:var(--tile-pad)!important;right:var(--tile-pad)!important;width:auto!important;height:132px!important;max-height:none!important;max-width:36%!important;aspect-ratio:auto!important}
.bento-tile:has(.bento-art-sm) > strong,.bento-tile:has(.bento-art-sm) > .bento-kicker,.bento-tile:has(.bento-art-sm) > span:not(.bento-go):not(.glass-icon){padding-right:calc(36% + 20px)!important}
.bento-units,.bento-sun{min-height:calc(132px + 2 * var(--tile-pad))}
@media (max-width:800px){.bento-units .bento-art-sm,.bento-sun .bento-art-sm{height:104px!important}}
/* glyphs always take their square's colour */
.glass-icon .property-glyph,.glass-icon svg{color:inherit!important}
.hw-flow .hw-sold .glass-icon svg{color:#fff!important}

/* ===== 6 Nov 2026 (4) ===== */
/* Home-matching: arrows drawn like the glyphs (1.7 stroke, round caps); labels sit clear of the card edge */
.hw-arrows{height:44px!important;color:#0071e3}
.hw-arrows .hw-arrow-svg{justify-self:center;display:block;width:24px;height:44px}
.hw-flow{padding:24px 28px 26px!important}
.hw-flow li.hw-sep{align-self:start!important;margin-top:17px!important;color:rgba(0,113,227,.5)!important;font-size:0!important}
.hw-flow li.hw-sep svg{display:block;width:22px;height:22px}

/* Chope: heading across the row, the two cards stack to exactly the phone's height */
.hw-chope > h2{grid-column:1/-1;margin:0}
.hw-chope-text{grid-template-rows:1fr 1fr}
.hw-chope-text article{display:flex!important;flex-direction:column;justify-content:flex-start}
.hw-chope-text article > .glass-icon{margin-bottom:auto!important}
.hw-chope-text article > h3{margin-top:18px}
@media (min-width:801px){
  .hw-chope{grid-template-columns:minmax(0,1fr) minmax(260px,360px)!important;align-items:stretch!important;row-gap:28px!important}
  .hw-phone{align-self:start}
}
@media (max-width:800px){.hw-chope{row-gap:18px!important}.hw-chope-text{grid-template-rows:auto}}

/* Type-ahead suggestions: regular weight */
.vc-ac-list li,.vc-ac-list li *{font-weight:400!important}
main > section.hw-match > ol.hw-flow:last-child{padding-bottom:26px!important}

/* Mobile portrait: balanced hero headline, full-width main button on service pages (app-style) */
@media (max-width:600px){
  h1{text-wrap:balance}
  .service-lead .advisory-button{width:100%;justify-content:center}
}

/* ===== 6 Nov 2026 (5) ===== */
/* Team block: trust row sits clear of the motto; no standing portrait, text uses the full width */
.hw-team .hw-trust{margin-top:44px!important}
.hw-team{grid-template-columns:minmax(0,1fr)!important}
@media (min-width:801px){.hw-team .hw-team-points{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px!important}}
/* Home-matching art centred */
.hw-match .hw-art-img{margin-inline:auto!important;display:block}
/* Sell pages: the desktop hero film, framed on Hanson */
.service-lead figure video{object-fit:cover;object-position:45% 30%}
.hero-media video,.hero-frost video{object-position:center center}
/* Closing card: button centred in its column */
.cta-photo .advisory-button{align-self:center}

@media (max-width:800px){
  /* Mobile menu: category names and links large enough to scan */
  .nav-flyout h3{font-size:16px!important;font-weight:500!important;color:#0071e3!important;letter-spacing:0!important;text-transform:none!important;margin:22px 0 4px!important}
  .nav-flyout h3:first-child{margin-top:6px!important}
  .nav nav .nav-flyout a{font-size:17px!important;min-height:44px;display:flex!important;align-items:center}
}

@media (max-width:600px){
  /* App-style swipe rows: one row you swipe instead of a long stack */
  .value-cards,.home-subtools,.home-town-grid,.bento-grid,.advisory-grid,.hw-points,.move-cards{
    display:grid!important;grid-auto-flow:column!important;grid-template-columns:none!important;grid-auto-columns:82%!important;
    overflow-x:auto!important;overflow-y:hidden!important;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;
    gap:12px!important;margin-inline:-18px!important;padding:6px 18px 16px!important;scroll-padding-inline:18px;scrollbar-width:none;max-width:none!important}
  .value-cards::-webkit-scrollbar,.home-subtools::-webkit-scrollbar,.home-town-grid::-webkit-scrollbar,.bento-grid::-webkit-scrollbar,
  .advisory-grid::-webkit-scrollbar,.hw-points::-webkit-scrollbar,.move-cards::-webkit-scrollbar{display:none}
  .value-cards > *,.home-subtools > *,.home-town-grid > *,.bento-grid > *,.advisory-grid > *,.hw-points > *,.move-cards > *{scroll-snap-align:start;min-width:0;margin:0!important}

  /* Value cards: bigger kind label, smaller picture */
  .value-card .value-kind{font-size:1.3rem!important;font-weight:500!important;color:#1d1d1f!important;letter-spacing:0!important;text-transform:none!important}
  .value-card .value-art{height:88px!important;width:auto!important;max-width:60%!important;margin:0 auto 6px!important}
  .value-card{padding:18px!important}

  /* Quick tools: small square tiles */
  .home-subtools{grid-auto-columns:112px!important}
  .home-subtools > a{padding:14px 10px!important;min-height:0!important;font-size:.82rem!important;gap:8px!important}
  .home-subtools > a .glass-icon{width:42px!important;height:42px!important}

  /* Prices by town: two short rows you swipe */
  .home-town-grid{grid-template-rows:repeat(2,auto)!important;grid-auto-columns:44%!important}

  /* Bento: equal, shorter tiles */
  .bento-grid{grid-auto-columns:84%!important;align-items:stretch!important}
  .bento-grid > .bento-tile{min-height:0!important;height:auto!important;grid-column:auto!important;grid-row:auto!important}
  .bento-map .bento-art,.bento-map img.bento-art{max-height:170px!important;object-fit:contain}

  /* Steps: compact rows, glyph on the left */
  .advisory-steps{gap:10px!important}
  .advisory-steps article{display:grid!important;grid-template-columns:44px minmax(0,1fr);column-gap:14px;align-items:start;padding:16px!important}
  .advisory-steps article > .glass-icon{grid-row:1 / span 3;width:44px!important;height:44px!important;margin:0!important}
  .advisory-steps article > span:not(.glass-icon){font-size:.75rem;margin:0!important}
  .advisory-steps article > h3{margin:2px 0 4px!important}
  .advisory-steps article > p{margin:0!important}

  /* HDB prices page: two columns of compact town cards */
  .hdb-town-grid:not(.home-town-grid){grid-template-columns:1fr 1fr!important;gap:10px!important}
  .hdb-town-grid:not(.home-town-grid) > a{padding:14px!important;min-height:0!important}
  .hdb-town-grid:not(.home-town-grid) .town-lines{display:none!important}

  /* Pictures sized for a phone */
  .hw-art-img{max-height:190px!important;width:auto!important}
  .hw-phone{max-width:250px!important;margin-inline:auto!important}

  /* Closing card: photo cropped to head and shoulders, button full width */
  .cta-photo img.cta-portrait{width:min(240px,66%)!important;height:auto!important;aspect-ratio:1/1!important;object-fit:cover!important;object-position:50% 0!important;margin-inline:auto!important}
  .cta-photo .advisory-button{width:100%!important;justify-content:center!important;box-sizing:border-box;margin-inline:0!important}
}
@media (max-width:600px){
  .value-cards,.home-subtools,.bento-grid,.advisory-grid,.hw-points,.move-cards{grid-template-rows:none!important}
  .bento-map{display:flex!important;flex-direction:column!important}
  .bento-grid .bento-tile.bento-map .bento-art{top:20px!important;right:20px!important;bottom:auto!important;left:auto!important;width:auto!important;height:94px!important;max-width:38%!important;max-height:none!important}
  .bento-map > .bento-kicker,.bento-map > strong{padding-right:calc(38% + 12px)!important}
  .bento-grid .bento-tile.bento-map .bento-go{position:static!important;align-self:flex-start;margin-top:auto!important}
}
@media (max-width:800px){.cta-photo > div{padding-right:24px!important;box-sizing:border-box}}
@media (max-width:600px){
  html body main .value-cards,html body main .home-subtools,html body main .bento-grid,html body main .advisory-grid,
  html body main .hw-position .hw-points,html body main .hw-points,html body main .move-cards{grid-template-columns:none!important;grid-template-rows:none!important}
  html body main .home-town-grid{grid-template-columns:none!important;grid-template-rows:repeat(2,auto)!important}
}

/* ===== 6 Nov 2026 (6) SEO: A–Z project list on the launch directory ===== */
.projects-az details{border-radius:22px;background:var(--matte-grain),linear-gradient(160deg,rgba(255,255,255,.85),rgba(240,245,252,.6));box-shadow:var(--matte-shadow);padding:18px 22px}
.projects-az summary{cursor:pointer;font-size:1.05rem;color:#0071e3;list-style:none}
.projects-az summary::-webkit-details-marker{display:none}
.projects-az-list{list-style:none;margin:16px 0 0;padding:0;columns:3 220px;column-gap:28px}
.projects-az-list li{break-inside:avoid;display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid rgba(0,0,0,.05);font-size:.92rem}
.projects-az-list li span{color:#86868b;font-size:.8rem;white-space:nowrap}
/* One weight system, site-wide (Hanson, 5 Nov 2026: headings 500, everything else 400, buttons never bold).
   8 Nov 2026 sweep of what was still 600-700: form labels, the PDF form, footer headings, badges, map list, figures.
   MRT line badges (.mrt-line) stay bold: they reproduce the official line logos. */
.footer-sitemap h2,details.footer-districts summary,.lead-dialog h2,.wa-pop strong,.u3-title,.bento-kicker,.pmap-item strong,.pmap-ask strong,
.tool-fields label,.tool-inputs label,.lead-form label,.vc-wide,.grade-badge,.grade-dot,.avail-text strong,.cliff-list li span{font-weight:500}
.lead-form label small,.lead-form .lead-consent,.lead-form a,.lead-form .lead-hp,.service-links a{font-weight:400}
.move-plan li strong,.move-strip li span{font-weight:500}
.ul-left strong,.ul-rooms b{font-weight:500}.ul-ask{font-weight:400}
/* What you pay, and when (pay-plan.js, 8 Nov 2026): price slider, big first figures, stage timeline. */
.pay-plan{margin-top:18px;padding:clamp(18px,3vw,30px);border-radius:28px;background:linear-gradient(160deg,rgba(255,255,255,.82),rgba(255,255,255,.5));
  border:1px solid rgba(255,255,255,.8);box-shadow:0 1px 1px rgba(16,42,84,.04),0 18px 44px rgba(16,42,84,.09),inset 0 1px 0 #fff;
  -webkit-backdrop-filter:blur(24px) saturate(160%);backdrop-filter:blur(24px) saturate(160%)}
.pay-top{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(18px,3vw,36px);align-items:end}
.pay-label{display:block;font-size:14px;color:#6e6e73}
.pay-price-out{display:block;margin:2px 0 10px;font-size:clamp(34px,4.6vw,52px);font-weight:500;letter-spacing:-.03em;line-height:1.05;font-variant-numeric:tabular-nums}
.pay-price input[type=range]{width:100%;accent-color:#0071e3;height:28px}
.pay-ends{display:flex;justify-content:space-between;font-size:13px;color:#6e6e73}
.pay-opts{display:grid;gap:12px}
.pay-opts label{display:grid;gap:6px;font-size:14px;color:#6e6e73}
.pay-opts input,.pay-opts select{min-height:46px;padding:0 14px;border-radius:14px;border:1px solid rgba(0,0,0,.08);background:rgba(255,255,255,.9);font:inherit;font-size:15px;color:#1d1d1f}
.pay-hero{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:24px}
.pay-big{display:grid;align-content:start;gap:6px;padding:18px;border-radius:22px;background:#fff;box-shadow:0 1px 1px rgba(16,42,84,.04),0 10px 26px rgba(16,42,84,.06)}
.pay-big small{font-size:13px;color:#6e6e73}
.pay-big b{font-size:clamp(24px,2.6vw,32px);font-weight:500;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.1}
.pay-big b em{font-style:normal;font-size:15px;color:#6e6e73;margin-left:2px}
.pay-big span{font-size:13px;line-height:1.45;color:#3a3a3c}
.pay-big.is-main{background:linear-gradient(160deg,#0a84ff,#0071e3);color:#fff;box-shadow:0 14px 34px rgba(0,113,227,.3),inset 0 1px 0 rgba(255,255,255,.35)}
.pay-big.is-main small,.pay-big.is-main span{color:rgba(255,255,255,.85)}
.pay-steps{list-style:none;margin:26px 0 0;padding:0;display:grid;gap:2px}
.pay-step{position:relative;display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:16px;align-items:center;padding:12px 4px 12px 26px;border-bottom:1px solid rgba(0,0,0,.06)}
.pay-step::before{content:"";position:absolute;left:6px;top:50%;width:10px;height:10px;margin-top:-5px;border-radius:50%;background:#0071e3}
.pay-step::after{content:"";position:absolute;left:10px;top:0;bottom:0;width:2px;background:rgba(0,113,227,.15);z-index:-1}
.pay-step.is-cash::before{background:#ff9f0a}.pay-step.is-either::before{background:#30b0c7}
.pay-step time{font-size:14px;color:#6e6e73;font-variant-numeric:tabular-nums}
.pay-step strong{display:block;font-weight:500;font-size:15px}
.pay-step span{font-size:13px;color:#6e6e73}
.pay-step b{font-weight:400;font-size:15px;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.pay-step b small{display:block;font-size:12px;color:#6e6e73}
.pay-sum{margin:18px 0 0;font-size:15px;line-height:1.55;color:#3a3a3c}
.pay-sum b{font-weight:500}
.pay-ask{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;margin-top:22px;padding-top:20px;border-top:1px solid rgba(0,0,0,.06)}
.pay-ask p{margin:0;font-size:16px;max-width:520px}
.pay-ask .advisory-button{margin:0}
@media (max-width:900px){.pay-top{grid-template-columns:1fr}.pay-hero{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.pay-hero{grid-template-columns:1fr}.pay-step{grid-template-columns:76px minmax(0,1fr);gap:4px 12px}
  .pay-step b{grid-column:2;text-align:left}.pay-ask .advisory-button{width:100%}}
/* Value cards v2 (8 Nov 2026): Apple-style hierarchy. The action is a glass pill on top; its glyph squircle grows a
   little inside the pill and glows faintly on hover; the pill glows; nothing underlines. Then type, figures, source. */
.value-card.vcard{display:flex;flex-direction:column;gap:10px;padding:20px 22px 22px;text-decoration:none!important;transition:box-shadow .45s cubic-bezier(.2,.8,.2,1)}
.value-card.vcard:hover{transform:none}
.value-card.vcard > span.vcard-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;font-size:inherit;color:inherit}
.vcard .vcta{display:inline-flex;align-items:center;gap:10px;padding:5px 16px 5px 5px;border-radius:999px;color:#0071e3;font-size:17px;font-weight:400;line-height:1.2;
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,255,255,.72));border:1px solid rgba(255,255,255,.95);
  box-shadow:0 1px 1px rgba(16,42,84,.05),0 8px 22px rgba(16,42,84,.08),inset 0 1px 0 #fff;
  -webkit-backdrop-filter:blur(18px) saturate(160%);backdrop-filter:blur(18px) saturate(160%);
  transition:box-shadow .45s cubic-bezier(.2,.8,.2,1),scale .35s cubic-bezier(.2,.8,.2,1)}
.vcard .vcta-glyph{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:12px;color:#0071e3;
  background:linear-gradient(160deg,#eef5ff,#d9e9fd);box-shadow:inset 0 1px 0 #fff;transition:scale .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s cubic-bezier(.2,.8,.2,1)}
.vcard .vcta-glyph svg{width:21px;height:21px;transition:scale .45s cubic-bezier(.2,.8,.2,1)}
.vcard .vcta-chev{font-size:20px;line-height:1;transition:translate .35s cubic-bezier(.2,.8,.2,1)}
.vcard:hover .vcta,.vcard:focus-visible .vcta{box-shadow:0 6px 20px rgba(0,113,227,.12),0 1px 4px rgba(16,42,84,.06),inset 0 1px 0 #fff}
.vcard:hover .vcta-glyph,.vcard:focus-visible .vcta-glyph{scale:1.08;box-shadow:0 4px 14px rgba(0,113,227,.16),inset 0 1px 0 #fff}
.vcard:hover .vcta-glyph svg{scale:1.1}
.vcard:hover .vcta-chev{translate:3px 0}
.vcard:active .vcta{scale:.97}
.vcard .vcard-art{width:96px;height:auto;flex:none;margin:-6px -6px 0 0;pointer-events:none}
.value-card.vcard > span.vcard-kind{margin-top:4px;font-size:20px;font-weight:500;letter-spacing:-.02em;color:#1d1d1f;line-height:1.2}
.value-card.vcard > span.vcard-note{margin-top:auto;font-size:13px;color:#6e6e73}
.vcard .value-types{margin:2px 0 6px!important}
@media (max-width:760px){.vcard .vcard-art{width:84px}.vcard .vcta{font-size:16px}}
/* Price shortcuts: the glyph's squircle grows a little inside the pill with a very faint glow. */
.home-subtools a{font-weight:400}
.home-subtools a .glass-icon{transition:scale .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s cubic-bezier(.2,.8,.2,1)}
.home-subtools a .glass-icon svg{transition:scale .45s cubic-bezier(.2,.8,.2,1)}
.home-subtools a:hover .glass-icon,.home-subtools a:focus-visible .glass-icon{scale:1.1;box-shadow:0 4px 14px rgba(0,113,227,.16),inset 0 1px 0 #fff}
.home-subtools a:hover .glass-icon svg{scale:1.08}
.home-subtools a:hover{transform:none;text-decoration:none}
.home-subtools a:hover .glass-icon,.home-subtools a:focus-visible .glass-icon{box-shadow:0 4px 14px rgba(0,113,227,.16),inset 0 1px 0 #fff!important}
/* Sun path page (8 Nov 2026): one sun view. The card opens Map & 3D with the facing picked in the chart. */
.sun3d-card{display:grid;grid-template-columns:180px minmax(0,1fr);gap:24px;align-items:center;padding:22px 26px;border-radius:28px;text-decoration:none!important;color:#1d1d1f;
  background:linear-gradient(160deg,#fff8ec,#ffffff 60%);box-shadow:0 1px 1px rgba(16,42,84,.04),0 18px 44px rgba(16,42,84,.09);transition:box-shadow .45s cubic-bezier(.2,.8,.2,1)}
.sun3d-card img{width:100%;height:auto}
.sun3d-text{display:grid;gap:10px;justify-items:start}
.sun3d-title{font-size:clamp(24px,3vw,32px);font-weight:500;letter-spacing:-.03em;line-height:1.15}
.sun3d-sub{font-size:17px;line-height:1.5;color:#3a3a3c;max-width:560px}
.sun3d-card .vcta{display:inline-flex;align-items:center;gap:10px;margin-top:4px;padding:5px 16px 5px 5px;border-radius:999px;color:#0071e3;font-size:17px;font-weight:400;
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,255,255,.72));border:1px solid rgba(255,255,255,.95);box-shadow:0 1px 1px rgba(16,42,84,.05),0 8px 22px rgba(16,42,84,.08),inset 0 1px 0 #fff;
  transition:box-shadow .45s cubic-bezier(.2,.8,.2,1)}
.sun3d-card .vcta-glyph{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:linear-gradient(160deg,#eef5ff,#d9e9fd);transition:scale .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s cubic-bezier(.2,.8,.2,1)}
.sun3d-card .vcta-glyph svg{width:21px;height:21px;transition:scale .45s cubic-bezier(.2,.8,.2,1)}
.sun3d-card .vcta-chev{font-size:20px;line-height:1;transition:translate .35s cubic-bezier(.2,.8,.2,1)}
.sun3d-card:hover .vcta{box-shadow:0 6px 20px rgba(0,113,227,.12),0 1px 4px rgba(16,42,84,.06),inset 0 1px 0 #fff}
.sun3d-card:hover .vcta-glyph{scale:1.08;box-shadow:0 4px 14px rgba(0,113,227,.16)}
.sun3d-card:hover .vcta-glyph svg{scale:1.1}
.sun3d-card:hover .vcta-chev{translate:3px 0}
.sun-facings button{transition:background .3s cubic-bezier(.2,.8,.2,1),color .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s cubic-bezier(.2,.8,.2,1)}
.sun-facings button:hover{box-shadow:0 6px 20px rgba(0,113,227,.12),0 1px 4px rgba(16,42,84,.06)}
@media (max-width:640px){.sun3d-card{grid-template-columns:1fr;gap:12px;padding:18px}.sun3d-card img{width:130px}.sun3d-sub{font-size:16px}}
.vcard .vcta{white-space:nowrap}
@media (max-width:760px){.vcard .vcard-art{width:64px;margin:-4px -4px 0 0}.vcard .vcta{font-size:16px;padding-right:12px;gap:8px}.vcard .vcta-glyph{width:34px;height:34px;border-radius:11px}.vcard .vcta-glyph svg{width:19px;height:19px}}
/* ===== 8 Nov 2026: softer hover light (Hanson: "a very faint, soft glow that disperses, not a hard glow").
   Large cards: a soft shadow only, no glow ring. Small buttons and pills: a gentle blue glow that fades out. Squircles: fainter still. ===== */
.button:hover,a.button:hover,.advisory-button:hover,.bento-go:hover,.tool-send:hover,.hero-intent-main:hover,.project-pdf-button:hover,
.bento-tile:hover .bento-go{transform:translateY(-1px);box-shadow:0 6px 22px rgba(0,113,227,.18),0 2px 8px rgba(0,113,227,.08)!important;filter:none}
.service-chooser a:hover,.home-towns summary:hover,.nav-drop-toggle:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(0,113,227,.12),0 1px 4px rgba(16,42,84,.06)!important}
.home-subtools a:hover,.calc-tile:hover,.value-card:hover,.gh-card:hover,.move-plan a:hover,.bento-tile:hover,.planning-more-grid a:hover,.journal-grid a:hover,
.hdb-town-grid a:hover,.district-browse-grid a:hover,.launch-project-card:hover,.ul-card:hover,.news-card:hover,.guide-card:hover{
  transform:translateY(-3px);box-shadow:0 18px 40px rgba(16,42,84,.12),0 2px 6px rgba(16,42,84,.05)!important}
.value-card.vcard:hover{transform:none}
.wa:hover,.app-tabs a:hover{transform:translateY(-1px);filter:none;box-shadow:0 8px 22px rgba(37,211,102,.22)!important}
.hero-intent:not(.hero-intent-main):hover{box-shadow:0 8px 24px rgba(0,0,0,.16)!important}

/* 8 Nov 2026: a button label that wraps on a phone stays centred: the lines centre and the arrow follows the last word. */
@media (max-width:560px){
  .advisory-button:not([hidden]){display:inline-flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;text-wrap:balance}
  .advisory-button>span{display:inline-block;margin-left:10px}
}
/* The review card owns its padding; the form inside adds none, so the gap is the same on all four sides. */
main > section.review-wrap{padding:clamp(24px,3.4vw,44px)!important}
main > section.review-wrap > .lead-form{padding:0!important}
main > section.shortlist-cta{padding:clamp(24px,3.2vw,40px)!important}
/* Guide pages: the sources line sits a full section below the article, and the closing card has room above and below. */
main > section.guide-official-sources{margin-top:var(--sec-gap)!important;padding-top:28px!important;padding-bottom:0!important}
main > aside.guide-next{margin-top:var(--sec-gap)!important;margin-bottom:var(--sec-gap)!important}
@media (max-width:560px){.advisory-button:not([hidden]) > span[aria-hidden]{margin-left:10px!important}}
/* Guide text: a paragraph after a list starts a new thought, so it gets a little air. */
main.guide-article section ul + p,main.guide-article section ol + p{margin-top:16px!important}
/* The last block before the footer keeps a full section gap, even when scripts follow it inside <main>. */
main > section:is(.structure-cta,.advisory-tool,.review-wrap,.shortlist-cta):not(:has(~ :not(script,style,template))){margin-bottom:var(--sec-gap)!important}
main > section:not(.hero):not(.structure-cta):not(.advisory-tool):not(.tool-panel):not(.service-lead):not(.review-wrap):not(.shortlist-cta):not(:first-child):not(:has(~ :not(script,style,template))){padding-bottom:var(--sec-gap)!important}
main > p:not(:has(~ :not(script,style,template))){margin-bottom:var(--sec-gap)!important}
/* Phones and tablets: the page-end illustration sits centred under the button at a readable size, with no empty box around it. */
@media (max-width:820px){
  main section.home-profile > img.cta-art,main section.structure-cta > img.cta-art{display:block;width:min(80%,300px)!important;max-width:none!important;height:auto!important;min-height:0!important;max-height:none!important;object-fit:contain!important;flex:0 0 auto!important;aspect-ratio:auto!important;align-self:center!important;margin:24px auto 0!important}
}
/* Project pages: the section bar sits clear of the hero photo card. */
main > nav.project-section-nav{margin-top:clamp(20px,2.4vw,32px)!important}
/* Payment timeline on launch pages: how the price splits across the build, coloured by how each stage is paid. */
.pay-track{margin:26px 0 0}
.pay-key{display:flex;flex-wrap:wrap;gap:16px;margin:0 0 10px;padding:0;list-style:none;font-size:13px;color:#3a3a3c}
.pay-key li{display:inline-flex;align-items:center;gap:7px}
.pay-key li::before{content:"";width:10px;height:10px;border-radius:50%;background:#0071e3}
.pay-key .is-cash::before,.pay-bar .is-cash{background:#ff9f0a}
.pay-key .is-either::before,.pay-bar .is-either{background:#30b0c7}
.pay-bar{display:flex;gap:3px;height:12px}
.pay-bar i{border-radius:6px;background:#0071e3;opacity:.85}
.pay-track + .pay-steps{margin-top:14px}
.pay-step.is-built{background:linear-gradient(90deg,rgba(255,159,10,.07),transparent 70%);border-radius:12px}
/* A hidden button stays hidden (the site-wide button rule must not win over [hidden]). */
.button[hidden],.tool-sell[hidden]{display:none!important}
/* Valuation pages: "Ready to sell?" sits under "Send this result to Hanson", same width, quieter. */
.tool-sell{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px 6px;margin-top:10px;min-height:50px;padding:12px 22px;border-radius:999px;background:rgba(255,255,255,.9);border:1px solid rgba(0,113,227,.22);color:#0071e3;font-size:16px;text-align:center;text-decoration:none;transition:box-shadow .3s ease,translate .3s ease}
.tool-sell span:first-child{color:#1d1d1f}
.tool-sell span[aria-hidden]{margin-left:4px}
.tool-sell:hover{translate:0 -1px;box-shadow:0 6px 20px rgba(0,113,227,.12),0 1px 4px rgba(16,42,84,.06)}
/* Phones: the page illustration sits beside the title only; the intro runs full width underneath, no ragged first line. */
@media (max-width:700px){main .page-clay{max-height:104px!important;max-width:30vw!important}main .page-clay ~ p{clear:both}
  .tool-sell{border-radius:22px;font-size:15px}}
/* Valuation pages: the way on to the Sell page, always visible after "How this check works". */
.tool-sell-next{display:flex;align-items:center;justify-content:space-between;gap:16px 28px;margin:28px 0 0;padding:clamp(20px,2.6vw,28px) clamp(20px,3vw,32px);border-radius:24px;background:rgba(255,255,255,.82);box-shadow:0 1px 2px rgba(16,42,84,.04),0 12px 30px rgba(16,42,84,.07)}
.tool-sell-next div{display:grid;gap:4px}
.tool-sell-next strong{font-size:clamp(19px,2vw,22px);font-weight:500;letter-spacing:-.01em;color:#1d1d1f}
.tool-sell-next span:not([aria-hidden]){font-size:15px;line-height:1.5;color:#6e6e73}
.tool-sell-next .advisory-button{flex-shrink:0;margin:0!important}
@media (max-width:700px){.tool-sell-next{flex-direction:column;align-items:stretch;text-align:left}.tool-sell-next .advisory-button{width:100%;justify-content:center}}
/* 9 Nov 2026 — swipe rows. Apple-style round arrows under each row that moves sideways. */
.swipe-nav{display:flex;justify-content:flex-end;gap:12px;margin:14px 0 0}
.swipe-nav[hidden]{display:none!important}
.swipe-btn{display:grid;place-items:center;width:38px;height:38px;padding:0;border:0;border-radius:50%;background:rgba(210,210,215,.62);color:#1d1d1f;cursor:pointer;
  -webkit-backdrop-filter:blur(14px) saturate(180%);backdrop-filter:blur(14px) saturate(180%);transition:background .25s ease,opacity .25s ease,scale .2s ease}
.swipe-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.swipe-btn:hover:not(:disabled){background:rgba(200,200,206,.85)}
.swipe-btn:active:not(:disabled){scale:.94}
.swipe-btn:disabled{opacity:.36;cursor:default}
.swipe-btn:focus-visible{outline:2px solid #0071e3;outline-offset:2px}
@media (max-width:600px){
  /* Same room above and below the cards; soft shadows that fit inside it, so no band is cut off. */
  .value-cards,.home-subtools,.home-town-grid,.bento-grid,.advisory-grid,.hw-points,.move-cards{padding:22px 18px!important;margin-top:-16px!important;margin-bottom:-14px!important}
  .value-cards > *,.home-subtools > *,.home-town-grid > *,.bento-grid > *,.advisory-grid > *,.hw-points > *,.move-cards > *{box-shadow:0 1px 2px rgba(16,42,84,.05),0 6px 16px rgba(16,42,84,.08)!important}
  .swipe-nav{margin-top:6px;padding-right:2px}
  /* Inside each card: content sits in the middle, so the space above and below is the same. */
  .home-subtools > a,.home-town-grid > a,.advisory-grid > article,.move-cards > *,.hw-points > *{display:flex!important;flex-direction:column!important;justify-content:center!important}
  /* Tools bento: the illustration spans the card, every card ends with its link at the same distance from the bottom. */
  .bento-grid > .bento-tile{display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;padding:20px!important}
  .bento-grid > .bento-tile > .glass-icon{display:none!important}
  .home-bento .bento-grid > .bento-tile > img.bento-art{order:-1;position:static!important;inset:auto!important;transform:none!important;display:block!important;
    width:100%!important;max-width:none!important;height:150px!important;max-height:none!important;object-fit:contain!important;margin:0 0 14px!important;opacity:1}
  .bento-grid .bento-go{margin-top:auto!important;padding-top:12px;align-self:flex-start}
}

/* 9 Nov 2026 — cards are white. The grey grain made them melt into the page; white cards with a soft shadow read as cards. */
:root{--matte-bg:#fff;--matte-grain:none;--glass-bg:rgba(255,255,255,.96)}
.glass-panel,.bento-tile,.photoreal,.pr-card,.cliff,.unit3d .u3-side .u3-read,.x3-panel,.avail-strip,.pdf-handoff,.shortlist-cta,
.advisory-grid article,.tool-inputs,.tool-result,.launch-project-card,.district-browse a,.structure-cta,.guide-next,.score-row,.faq-list details,
.launch-directory-head,.ul-card,.home-town-grid a,.value-card,.move-strip li,.calc-tile,.hw-points article,.hw-flow,.hw-sources,.tl-lane,.gh-card,
.home-towns summary,.home-subtools a,.projects-az details,.move-cards > *,.tool-tile,.journal-grid a,.news-card,.guide-card,.x3-read,.service-chooser a{
  background:#fff!important;background-image:none!important;border-color:rgba(16,42,84,.06)!important}
.value-card,.bento-tile,.calc-tile,.home-subtools a,.home-town-grid a,.advisory-grid article,.launch-project-card,.ul-card,.structure-cta,.tool-tile,.news-card,.guide-card{
  box-shadow:0 1px 2px rgba(16,42,84,.05),0 10px 30px rgba(16,42,84,.07)!important}

/* Button labels sit in the true middle: the arrow is drawn at the right edge, with the same room on both sides. */
.button:has(> span[aria-hidden="true"]:last-child),.advisory-button:has(> span[aria-hidden="true"]:last-child){
  position:relative;justify-content:center!important;text-align:center!important;padding-left:46px!important;padding-right:46px!important}
.button > span[aria-hidden="true"]:last-child,.advisory-button > span[aria-hidden="true"]:last-child{position:absolute!important;right:20px;top:50%;translate:0 -50%;margin:0!important}
@media (max-width:560px){.advisory-button:not([hidden]) > span[aria-hidden]{margin-left:0!important}}

/* Phone tab bar: lighter liquid glass, so the page shows through a little. */
@media (max-width:800px){
  .app-tabs{background:rgba(255,255,255,.34)!important;border:1px solid rgba(255,255,255,.5)!important;
    -webkit-backdrop-filter:blur(24px) saturate(200%)!important;backdrop-filter:blur(24px) saturate(200%)!important;
    box-shadow:0 10px 30px rgba(16,42,84,.12),inset 0 1px 0 rgba(255,255,255,.65),inset 0 -1px 0 rgba(255,255,255,.25)!important}
  .app-tabs a[aria-current=page]{background:rgba(0,113,227,.12)!important}
  .app-tabs .wa-logo{width:24px;height:24px}
  .app-tabs{transition:background-color .45s ease,box-shadow .45s ease,border-color .45s ease!important}
  /* Over the hero film: more solid, still glass (blur and highlight stay). */
  .app-tabs.is-over-hero{background:rgba(255,255,255,.8)!important;border-color:rgba(255,255,255,.85)!important;
    box-shadow:0 12px 34px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.9)!important}
}

/* All tools: one tile per tool, grouped by question. */
.tools-page .tools-groups{display:grid;gap:clamp(36px,4.4vw,56px);padding-top:clamp(20px,3vw,36px)!important}
.tools-group h2{margin:0 0 16px!important;font-size:clamp(22px,2.4vw,28px)!important;font-weight:500!important;letter-spacing:-.015em}
.tools-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.tools-start .tools-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.tool-tile{display:flex;align-items:center;gap:16px;min-height:100px;padding:20px 22px;border-radius:22px;color:#1d1d1f;text-decoration:none;transition:translate .35s ease,box-shadow .35s ease}
.tool-tile:hover{translate:0 -2px;box-shadow:0 2px 4px rgba(16,42,84,.05),0 16px 36px rgba(16,42,84,.1)!important}
.tool-tile .glass-icon{flex:0 0 48px;width:48px!important;height:48px!important;margin:0!important}
.tool-tile-text{display:grid;gap:4px;flex:1;min-width:0}
.tool-tile-text strong{font-size:17px;font-weight:500;letter-spacing:-.01em}
.tool-tile-text span{font-size:14px;line-height:1.45;color:#6e6e73}
.tool-tile-go{flex:0 0 auto;font-size:24px;line-height:1;color:#0071e3}
.tools-start .tool-tile{min-height:132px;padding:26px 28px}
.tools-start .tool-tile .glass-icon{flex-basis:60px;width:60px!important;height:60px!important}
.tools-start .tool-tile-text strong{font-size:20px}
@media (max-width:1000px){.tools-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.tools-grid,.tools-start .tools-grid{grid-template-columns:1fr;gap:10px}
  .tool-tile,.tools-start .tool-tile{min-height:0;padding:16px 18px;gap:14px}
  .tool-tile .glass-icon,.tools-start .tool-tile .glass-icon{flex-basis:44px;width:44px!important;height:44px!important}
  .tools-start .tool-tile-text strong{font-size:18px}}
/* New launch map: what S, A, B, C and D mean, right under the title. */
.pmap-grades{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:20px 32px;align-items:center;margin:0 0 26px;padding:clamp(18px,2.4vw,26px) clamp(18px,2.6vw,30px);
  border-radius:24px;background:#fff;box-shadow:0 1px 2px rgba(16,42,84,.05),0 10px 30px rgba(16,42,84,.07)}
.pmap-grades-text{display:grid;gap:6px}
.pmap-grades-text strong{font-size:clamp(18px,1.8vw,21px);font-weight:500;letter-spacing:-.01em;color:#1d1d1f}
.pmap-grades-text span{font-size:14px;line-height:1.55;color:#6e6e73}
.pmap-grades-text a{font-size:14px;color:#0071e3;text-decoration:none}
.pmap-grade-key{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}
.pmap-grade-key li{display:grid;justify-items:center;gap:6px;padding:12px 6px;border-radius:16px;background:#f5f5f7;text-align:center}
.pmap-grade-key li > span:last-child{display:grid;gap:2px}
.pmap-grade-key b{font-size:13px;font-weight:500;color:#1d1d1f}
.pmap-grade-key small{font-size:11px;color:#6e6e73}
@media (max-width:900px){.pmap-grades{grid-template-columns:1fr}}
@media (max-width:620px){
  .pmap-grade-key{grid-template-columns:1fr;gap:6px}
  .pmap-grade-key li{grid-template-columns:28px minmax(0,1fr);justify-items:start;align-items:center;gap:12px;padding:9px 12px;text-align:left}
  .pmap-grade-key li > span:last-child{display:flex;justify-content:space-between;align-items:baseline;width:100%;gap:8px}
  .pmap-grade-key b{font-size:14px}.pmap-grade-key small{font-size:12px}
}
/* Phones: page intros with a picture keep the title on the left and the picture on the right; the text runs full width below. */
@media (max-width:700px){
  .page-intro.has-art{display:grid!important;grid-template-columns:minmax(0,1fr) 104px!important;grid-template-areas:"eyebrow art" "title art" "lead lead" "more more";column-gap:14px!important;row-gap:0!important;align-items:center}
  .page-intro.has-art > div{display:contents}
  .page-intro.has-art .launch-eyebrow{grid-area:eyebrow;align-self:end}
  .page-intro.has-art h1{grid-area:title;align-self:start;font-size:clamp(30px,8.6vw,36px)!important}
  .page-intro.has-art > div > p{grid-area:lead;margin-top:14px!important}
  .page-intro.has-art > div > :not(.launch-eyebrow):not(h1):not(p){grid-column:1 / -1}
  .page-intro.has-art .intro-art{grid-area:art;width:104px!important;height:auto!important;max-height:none!important;justify-self:end;align-self:center;margin:0!important}
}
/* Desktop bento: two equal cards (projects map, 3D view & sun path). Text at the top; the illustration and the link line up along the bottom. */
@media (min-width:821px){
  .home-bento .bento-grid{grid-template-columns:1fr 1fr!important;grid-template-rows:auto!important;align-items:stretch!important}
  .home-bento .bento-grid > .bento-tile{grid-row:auto!important;min-height:0!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;padding:28px!important}
  .home-bento .bento-grid > .bento-tile > .bento-kicker,.home-bento .bento-grid > .bento-tile > strong{padding-right:0!important}
  .home-bento .bento-grid > .bento-tile > img.bento-art{position:static!important;inset:auto!important;transform:none!important;order:5;display:block;width:100%!important;max-width:none!important;
    height:250px!important;max-height:none!important;object-fit:contain!important;object-position:center!important;margin:auto 0 0!important;padding-top:20px}
  .home-bento .bento-grid > .bento-tile > .bento-go{position:static!important;order:6;align-self:flex-start;margin-top:20px!important}
}
.home-bento .bento-grid > .bento-tile > span:not(.bento-kicker):not(.bento-go):not(.glass-icon),.home-bento .bento-grid > .bento-tile > strong{max-width:none!important;padding-right:0!important;margin-right:0!important;width:auto!important}
/* Swipe arrows as one pill: both arrows joined in a single glass capsule with a hairline between them. */
.swipe-nav{display:flex;width:max-content;margin:14px 0 0 auto!important;gap:0!important;padding:3px;border-radius:999px;background:rgba(210,210,215,.55);
  -webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%);box-shadow:inset 0 0 0 .5px rgba(0,0,0,.06)}
.swipe-nav .swipe-btn{position:relative;width:44px;height:34px;border-radius:999px;background:transparent!important;-webkit-backdrop-filter:none;backdrop-filter:none}
.swipe-nav .swipe-btn + .swipe-btn::before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:1px;background:rgba(29,29,31,.16)}
.swipe-nav .swipe-btn:hover:not(:disabled){background:rgba(255,255,255,.55)!important}
.swipe-nav .swipe-btn svg{width:17px;height:17px}
@media (max-width:600px){.swipe-nav{margin:8px auto 0!important}}

/* 9 Nov 2026 — one spacing around every arrow pill: 18px from the cards above to the pill, 18px from the pill to whatever
   comes next. The row's 22px padding (room for the card shadows) is cancelled with a -22px top margin and taken back by
   the pill's -4px top margin, so collapsing margins can't make the two gaps differ. */
@media (max-width:600px){
  .value-cards,.home-subtools,.home-town-grid,.bento-grid,.advisory-grid,.hw-points,.move-cards{padding:22px 18px!important;margin-top:-22px!important;margin-bottom:0!important}
  .swipe-nav{margin:-4px auto 18px!important}
}
.hv2-row{padding-top:22px!important;padding-bottom:22px!important;margin-top:-22px!important;margin-bottom:0!important}
@media (min-width:601px){.swipe-nav{margin:-4px 0 18px auto!important}}
.swipe-nav:not([hidden]) + *:not(.value-cards):not(.home-subtools):not(.home-town-grid):not(.bento-grid):not(.advisory-grid):not(.hw-points):not(.move-cards):not(.hv2-row){margin-top:0!important}
/* Desktop: the price section keeps one 22px step between title, cards, tiles and the towns button. */
@media (min-width:601px){.home-hdb > .home-towns{margin-top:22px!important}}
/* Phone tab bar: a full capsule lifted 22px off the bottom and sides (about 20px on screen, as phones show the site at 90%),
   so its rounded ends follow the iPhone's own screen corners (20px inset + 30px capsule radius ≈ the display's ~50px
   corner radius) instead of being clipped by them.
   The highlight inside is a capsule too (34 - 6px padding = 28px), so every curve shares one centre. */
@media (max-width:800px){
  .app-tabs{left:22px!important;right:22px!important;bottom:calc(22px + env(safe-area-inset-bottom))!important;border-radius:999px!important;padding:6px!important}
  .app-tabs a,.app-tabs .app-tab-wa{border-radius:999px!important}
  body{padding-bottom:calc(110px + env(safe-area-inset-bottom))!important}
  .hero .hero-content{bottom:calc(118px + env(safe-area-inset-bottom))!important}
}
/* Homepage: My numbers, the first tool. One white card: the promise, three things it shows, one calm button. */
.home-mynumbers .mnf-card{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(20px,4vw,48px);align-items:center;
  padding:clamp(28px,4vw,48px);border-radius:32px;background:#fff;box-shadow:0 1px 2px rgba(16,42,84,.05),0 14px 40px rgba(16,42,84,.08)}
.mnf-text h2{margin:10px 0 14px!important;max-width:18ch}
.mnf-text > p{margin:0!important;max-width:54ch}
.mnf-points{display:grid;gap:12px;margin:24px 0 0;padding:0;list-style:none}
.mnf-points li{display:flex;align-items:center;gap:12px;font-size:16px;color:#1d1d1f}
.mnf-points .glass-icon{flex:0 0 40px;width:40px!important;height:40px!important;margin:0!important}
.mnf-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;margin-top:28px}
.mnf-actions .button{margin:0!important}
.mnf-actions small{font-size:14px;color:#6e6e73}
.mnf-art{display:block;width:100%;max-width:420px;height:auto;justify-self:center}
.home-mynumbers + .home-hdb{padding-top:clamp(56px,6vw,88px)!important}
@media (max-width:760px){
  .home-mynumbers .mnf-card{grid-template-columns:1fr;padding:24px 20px;border-radius:28px;gap:6px}
  .mnf-art{order:-1;max-width:none;width:100%;height:170px;object-fit:contain}
  .mnf-actions{flex-direction:column;align-items:stretch;gap:10px}
  .mnf-actions .button{width:100%}
  .mnf-actions small{text-align:center}
}
/* Buy pages: Budget calculator to the left of the main button. */
.service-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.service-actions .button{margin:0!important}
@media (max-width:560px){.service-actions{flex-direction:column;align-items:stretch}.service-actions .button{width:100%}}
/* Secondary buttons: a white pill with a soft blue edge, so they read as buttons beside the blue one. */
.button-quiet,.button.button-quiet{background:#fff!important;color:#0071e3!important;box-shadow:inset 0 0 0 1px rgba(0,113,227,.28),0 1px 2px rgba(16,42,84,.06)!important}
.button-quiet:hover,.button.button-quiet:hover{background:#f5f9ff!important;box-shadow:inset 0 0 0 1px rgba(0,113,227,.4),0 6px 20px rgba(0,113,227,.12)!important}
/* The My numbers card lines up with the homepage sections around it. */
main section.home-mynumbers{max-width:none!important;width:min(1200px,calc(100% - var(--hig-gutter) - var(--hig-gutter)))!important;margin-left:auto!important;margin-right:auto!important;padding-left:0!important;padding-right:0!important}
@media (max-width:800px){main section.home-mynumbers{width:calc(100% - 40px)!important}}
/* Tab labels stay on one line, even on the narrowest phones. */
@media (max-width:800px){.app-tabs a span{white-space:nowrap}}
@media (max-width:400px){.app-tabs a span{font-size:10.5px;letter-spacing:-.01em}.app-tabs{padding:5px!important}}
/* Homepage: who you'll work with. One white card: the face, three promises, then proof the visitor can check. */
main section.home-meet{max-width:none!important;width:min(1200px,calc(100% - var(--hig-gutter) - var(--hig-gutter)))!important;margin-left:auto!important;margin-right:auto!important;padding-left:0!important;padding-right:0!important}
.home-meet .meet-card{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(24px,4vw,56px);align-items:center;
  padding:clamp(28px,4vw,48px);border-radius:32px;background:#fff;box-shadow:0 1px 2px rgba(16,42,84,.05),0 14px 40px rgba(16,42,84,.08)}
.meet-photo{margin:0;justify-self:center;width:100%;max-width:400px}
.meet-photo img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:28px;background:#f5f5f7}
.meet-text h2{margin:10px 0 14px!important;max-width:20ch}
.meet-text > p{margin:0!important;max-width:54ch}
.meet-points{display:grid;gap:18px;margin:24px 0 0;padding:0;list-style:none}
.meet-points li{display:flex;align-items:flex-start;gap:14px}
.meet-points .glass-icon{flex:0 0 40px;width:40px!important;height:40px!important;margin:0!important}
.meet-points h3{margin:0 0 4px!important;font-size:17px;font-weight:500;line-height:1.3}
.meet-points p{margin:0!important;font-size:15px;line-height:1.5;color:#424245}
.meet-proof{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:28px 0 0!important;padding:20px 0 0!important;border-top:1px solid rgba(0,0,0,.08)}
.meet-proof div{min-width:0}
.meet-proof dt{font-size:22px;font-weight:500;color:#1d1d1f;line-height:1.2;letter-spacing:-.01em}
.meet-proof dd{margin:4px 0 0;font-size:13.5px;line-height:1.4;color:#6e6e73}
.meet-proof a{color:#0066cc;text-decoration:none}
.meet-proof a:hover{text-decoration:underline}
@media (max-width:800px){
  main section.home-meet{width:calc(100% - 40px)!important}
  .home-meet .meet-card{grid-template-columns:1fr;padding:24px 20px;border-radius:28px;gap:18px}
  .meet-photo{max-width:180px}
  .meet-photo img{border-radius:24px}
  .meet-text{text-align:left}
  .meet-proof{grid-template-columns:1fr;gap:14px}
  .meet-proof div{display:flex;align-items:baseline;gap:10px}
  .meet-proof dt{flex:0 0 auto;font-size:19px}
  .meet-proof dd{margin:0}
}
/* Who you'll work with: more air between lines, points and the proof strip (9 Nov 2026). */
.meet-text h2{margin:14px 0 18px!important}
.meet-text > p{line-height:1.6}
.meet-points{gap:26px;margin-top:32px}
.meet-points li{gap:16px}
.meet-points h3{margin-bottom:8px!important}
.meet-points p{line-height:1.65}
.meet-proof{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:36px!important;padding-top:26px!important}
.meet-proof dd{margin-top:6px;line-height:1.5}
@media (max-width:800px){
  .home-meet .meet-card{padding:30px 22px;gap:24px}
  .meet-points{gap:24px;margin-top:28px}
  .meet-proof{grid-template-columns:1fr;gap:18px;margin-top:30px!important;padding-top:22px!important}
  .meet-proof div{display:block}
  .meet-proof dd{margin-top:4px}
  /* Chope screenshot: as wide as the cards around it on phones. */
  .hw-chope .hw-phone{max-width:none!important;width:100%!important;margin-inline:0!important;justify-self:stretch!important}
}
/* Calculator panels after the first use <h2> (one <h1> per page) but look the same as the first. */
.tool-heading h2.tool-title{font-size:var(--advisory-title);font-weight:500;line-height:1.08;letter-spacing:-.035em;margin:0 0 18px;color:#1d1d1f}
main .tool-panel .tool-heading h2.tool-title{font-size:var(--advisory-title)!important;line-height:1.08!important;letter-spacing:-.035em!important;margin:0 0 18px!important;max-width:none!important}
/* Homepage hero (9 Nov 2026): one main path for sellers moving up; first-home and new-launch paths as quiet links. */
.hero .hero-eyebrow{margin:0 0 14px!important;font-size:15px;font-weight:400;letter-spacing:.01em;color:rgba(255,255,255,.86)}
.hero .hero-paths{gap:8px 26px!important}
@media (max-width:800px){
  /* Portrait crop: scale from the bottom edge so the face sits higher, clear of the headline. */
  .hero .hero-media video,.hero .hero-frost video{transform:scale(1.11);transform-origin:50% 100%}
  /* Overlay: darken only the lower half behind the text; keep the face bright (no side shade on phones). */
  .hero .hero-shade{background:linear-gradient(0deg,rgba(12,12,16,.88) 0%,rgba(12,12,16,.74) 30%,rgba(12,12,16,.3) 50%,rgba(12,12,16,0) 64%)!important}
  /* Clear the floating tab bar: the last line of the hero ends well above it. */
  /* The hero is exactly one screen tall (the page is zoomed to 90% on phones, hence /.9), so the text keeps its gap above the tab bar on every phone height. */
  main section.hero{height:calc(100svh / .9)!important;min-height:600px!important;max-height:none!important}
  .hero .hero-content{translate:none!important;bottom:calc(118px + env(safe-area-inset-bottom))!important}
  .hero .hero-eyebrow{font-size:14px;margin-bottom:10px!important}
  .hero .hero-deck{margin-top:12px!important}
  .hero .hero-intents{margin-top:22px}
  .hero .hero-paths{margin-top:18px!important;flex-direction:column;align-items:flex-start;gap:10px!important;font-size:15px}
}
/* Short phones: keep the face clear by dropping the supporting line under the headline. */
@media (max-width:800px) and (max-height:700px){.hero .hero-deck{display:none!important}.hero .hero-intents{margin-top:20px}}
.bento-head h2{text-wrap:balance}
