@import url("https://fonts.googleapis.com/css2?family=Barlow:wght@400;500;600;700&display=swap");
@property --font-family {
    syntax: "*";
    inherits: false;
    initial-value: "Barlow", sans-serif;
}
@property --transition {
    syntax: "*";
    inherits: false;
    initial-value: all 0.1s linear;
}
@property --line-height {
    syntax: "<number>";
    inherits: false;
    initial-value: 1.6;
}
@property --red {
    syntax: "<color>";
    inherits: false;
    initial-value: #cb0000;
}
@property --btn-color {
    syntax: "<color>";
    inherits: false;
    initial-value: #0048d9;
}
@property --btn-color-rgb {
    syntax: "<number>+";
    inherits: false;
    initial-value: 0 72 217;
}
/**
 * Mixin
 */
/**
 * Reset
 */
* {
    margin: 0;
    padding: 0;
}

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

html,
body {
    height: 100vh;
    height: 100dvh;
}

body {
    font-feature-settings: "pwid";
    -webkit-font-smoothing: antialiased;
    text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
}

address,
caption,
cite,
code,
em,
th {
    font-style: normal;
    font-weight: normal;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

img,
svg {
    vertical-align: top;
    border: 0;
}

li {
    list-style-type: none;
}

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

fieldset {
    border: 0;
}

input[type="date"] {
    line-height: 1;
}

button,
[type="button"],
[type="reset"],
[type="submit"],
[role="button"] {
    cursor: pointer;
}

[disabled] {
    cursor: default;
}

input[type="search"],
input[type="date"],
input[type="time"] {
    background-color: #fff;
}

button,
[type="reset"],
[type="submit"] {
    appearance: button;
    -webkit-appearance: button;
}

object {
    pointer-events: none;
}

/**
 * Basic tags
 */
html {
    scroll-behavior: smooth;
    scrollbar-gutter: stable;
}
html:has(dialog[open]) {
    overflow: hidden;
}

body {
    background: #fff;
    color: #4e4e4e;
    font-family: var(--font-family);
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    line-height: 1.6;
}

input,
textarea {
    color: var(--gray);
}

a {
    color: #00add1;
    transition: var(--transition);
    text-decoration: none;
}
a:visited {
    color: #00add1;
}
a:hover {
    color: var(--red);
}
a:active {
    color: #00add1;
}
a:focus {
    color: #00add1;
}

.header {
    align-items: flex-end;
    background: #fff;
    display: flex;
    left: 0;
    line-height: 1;
    padding: 30px;
    position: fixed;
    right: 0;
    top: 0;
    transition: transform 0.3s ease;
    z-index: 100;
}
.header:before {
    align-self: flex-start;
    background: url("../../img/propertybridge/logo.svg") left top/contain
        no-repeat;
    content: "";
    flex-shrink: 0;
    height: 80px;
    margin-top: -30px;
    width: 136px;
}
.header--hidden {
    transform: translateY(-100%);
}

a.header__logo {
    margin-left: -100px;
}
a.header__logo:hover {
    opacity: 0.7;
}

.header__nav {
    align-items: center;
    display: flex;
    gap: 40px;
    margin-left: auto;
}

a.header__nav-link {
    color: #000;
    display: inline-block;
    font-weight: 700;
    text-decoration: none;
    text-transform: uppercase;
}
a.header__nav-link:hover {
    color: var(--red);
}

a.header__nav-icon {
    border-radius: 50%;
    display: block;
    height: 44px;
    overflow: hidden;
    width: 44px;
}
a.header__nav-icon:hover {
    opacity: 0.7;
}

a.header__nav-login {
    background: var(--red);
    border-radius: 6px;
    color: #fff;
    display: inline-block;
    font-weight: 700;
    padding: 14px 24px 14px;
    text-decoration: none;
    text-transform: uppercase;
}
a.header__nav-login:hover {
    opacity: 0.85;
}

.header__nav-toggle-input {
    display: none;
}

.header__nav-toggle {
    cursor: pointer;
    display: none;
    flex-direction: column;
    gap: 6px;
    justify-content: center;
    padding: 4px;
}

.header__nav-toggle-bar {
    background: #000;
    border-radius: 2px;
    display: block;
    height: 2px;
    transition: var(--transition);
    width: 26px;
}

.header__nav-toggle-input:checked
    ~ .header__nav-toggle
    .header__nav-toggle-bar:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
}

.header__nav-toggle-input:checked
    ~ .header__nav-toggle
    .header__nav-toggle-bar:nth-child(2) {
    opacity: 0;
}

.header__nav-toggle-input:checked
    ~ .header__nav-toggle
    .header__nav-toggle-bar:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
}

@media (max-width: 1024px) {
    .header {
        flex-wrap: wrap;
        padding: 30px 20px 16px 0;
    }
    .header:before {
        height: 60px;
    }
    a.header__logo {
        margin-left: -140px;
    }
    a.header__logo img {
        transform: scale(0.8);
    }
    .header__nav-toggle {
        display: flex;
        margin-left: auto;
    }
    .header__nav {
        background: #fff;
        border-top: 1px solid #eee;
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
        display: none;
        flex-direction: column;
        gap: 0;
        left: 0;
        padding: 10px 0;
        position: absolute;
        right: 0;
        top: 100%;
        z-index: 100;
    }
    .header__nav-toggle-input:checked ~ .header__nav {
        display: flex;
    }
    .header__nav-link {
        display: block;
        padding: 14px 20px;
    }
    .header__nav > li:last-child {
        padding: 14px 20px;
    }
    a.header__nav-login {
        display: block;
        padding: 14px 20px;
    }
}
.breadcrumb {
    margin: 0 30px 10px;
}

.breadcrumb__list {
    color: #000;
    display: flex;
    line-height: 1;
}
.breadcrumb__list li:last-of-type {
    font-weight: 600;
}

a.breadcrumb__link,
.breadcrumb__link {
    font-size: 0.9375rem;
    color: #000;
    white-space: nowrap;
}
a.breadcrumb__link:hover,
.breadcrumb__link:hover {
    color: var(--red);
}
a.breadcrumb__link:hover::after,
.breadcrumb__link:hover::after {
    color: #000;
}
a.breadcrumb__link::after,
.breadcrumb__link::after {
    content: "/";
    display: inline-block;
    margin: 0 4px;
}

.hero {
    margin-bottom: 30px;
}

.hero__img {
    background: url(../../img/propertybridge/img-hero.jpg) no-repeat;
    background-position-y: 30%;
    background-size: cover;
    height: 458px;
    width: 100%;
}

.hero__catch {
    font-size: 2.75rem;
    color: #fff;
    display: inline-block;
    font-weight: 700;
    line-height: 1;
    margin: 20px 30px;
}

.hero__search {
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 10px 14px rgba(0, 0, 0, 0.2);
    margin: -200px auto 30px;
    min-height: 300px;
    padding: 38px;
    width: 874px;
}
.hero__search .tabui__tab {
    display: grid;
    gap: 20px;
    grid-template-columns: 1fr 1fr;
    margin-bottom: 20px;
}
.hero__search .tabui__label {
    font-size: 1.5rem;
    background: #eee;
    color: #000;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.4rem;
    text-align: center;
}
.hero__search .tabui__label:hover {
    background: var(--btn-color);
    color: #fff;
}
.hero__search #tab-a:checked ~ .tabui__tab #tab-a__label,
.hero__search #tab-b:checked ~ .tabui__tab #tab-b__label {
    background: var(--btn-color);
    color: #fff;
    cursor: default;
}

.hero__search-keyword {
    align-items: center;
    display: flex;
    gap: 20px;
    justify-content: space-between;
    margin-bottom: 20px;
}

.hero__search-input {
    appearance: none;
    -webkit-appearance: none;
    border: 1px solid #939292;
    border-radius: 4px;
    flex: 1;
    min-height: 48px;
    padding: 12px;
}

.hero__search-mapsearch {
    color: #000;
    cursor: pointer;
    font-weight: 600;
}

.hero__search-option {
    display: flex;
    gap: 10px;
}
.hero__search-option fieldset {
    display: contents;
    font-weight: 500;
}
.hero__search-option legend {
    color: #000;
}
.hero__search-option:not(:last-of-type) {
    margin-bottom: 20px;
}

.hero__search-option-list {
    display: flex;
    gap: 10px;
}

.btn.-filter.-active,
a.btn.-filter.-active {
    background: var(--btn-color);
    color: #fff;
}

/* Filters modal (hero) — site tonmana: blue accent, 4px inputs, frame/primary btns */
.filters-modal {
    align-items: center;
    display: flex;
    inset: 0;
    justify-content: center;
    padding: 20px;
    position: fixed;
    z-index: 1000;
}

.filters-modal[hidden] {
    display: none;
}

.filters-modal__backdrop {
    background: rgba(40, 44, 46, 0.4);
    inset: 0;
    position: absolute;
}

.filters-modal__dialog {
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 10px 14px rgba(0, 0, 0, 0.2);
    display: flex;
    flex-direction: column;
    max-width: 520px;
    overflow: hidden;
    position: relative;
    width: min(520px, 100%);
    z-index: 1;
}

.filters-modal__header {
    align-items: center;
    background: #fff;
    border-bottom: 1px solid #e5e5e5;
    color: #000;
    display: flex;
    justify-content: space-between;
    min-height: 56px;
    padding: 14px 24px;
}

.filters-modal__title {
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.filters-modal__close {
    background: transparent;
    border: 0;
    color: #4f4f4f;
    cursor: pointer;
    font-size: 1.75rem;
    line-height: 1;
    padding: 0 4px;
    transition: var(--transition);
}

.filters-modal__close:hover {
    color: var(--btn-color);
}

.filters-modal__tabs {
    border-bottom: 1px solid #e5e5e5;
    display: flex;
    gap: 4px;
    overflow-x: auto;
    padding: 0 16px;
}

.filters-modal__tab {
    background: transparent;
    border: 0;
    border-bottom: 3px solid transparent;
    color: #6f7482;
    cursor: pointer;
    flex: 0 0 auto;
    font-family: inherit;
    font-size: 0.95rem;
    font-weight: 600;
    padding: 14px 12px 12px;
    transition: var(--transition);
    white-space: nowrap;
}

.filters-modal__tab:hover {
    color: var(--btn-color);
}

.filters-modal__tab.-active {
    border-bottom-color: var(--btn-color);
    color: var(--btn-color);
    font-weight: 700;
}

.filters-modal__body {
    min-height: 160px;
    padding: 28px 24px 20px;
}

.filters-modal__panel[hidden] {
    display: none;
}

.filters-modal__type-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    list-style: none;
}

.filters-modal__type-btn {
    width: auto;
}

.filters-modal__type-btn.-active,
.filters-modal .btn.-filter.-active {
    background: var(--btn-color);
    border-color: var(--btn-color);
    color: #fff;
}

.filters-modal__range {
    display: grid;
    gap: 16px;
    grid-template-columns: 1fr 1fr;
}

.filters-modal__field {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.filters-modal__label {
    color: #6f7482;
    font-size: 0.875rem;
    font-weight: 600;
}

.filters-modal__input-wrap {
    align-items: center;
    display: flex;
    gap: 8px;
}

.filters-modal__prefix,
.filters-modal__suffix {
    color: #4f4f4f;
    flex: 0 0 auto;
    font-size: 0.95rem;
    font-weight: 600;
}

.filters-modal__input-wrap .filters-modal__input {
    flex: 1 1 auto;
    min-width: 0;
}

.filters-modal__footer {
    display: grid;
    gap: 12px;
    grid-template-columns: 1fr 1fr;
    padding: 8px 24px 24px;
}

.filters-modal__error {
    color: var(--red);
    font-size: 0.875rem;
    font-weight: 600;
    margin: 0;
    padding: 0 24px 8px;
}

.filters-modal__error[hidden] {
    display: none;
}

.filters-modal__footer .btn {
    text-align: center;
    width: 100%;
}

@media (max-width: 560px) {
    .filters-modal__range {
        grid-template-columns: 1fr;
    }

    .filters-modal__tabs {
        gap: 0;
    }

    .filters-modal__tab {
        font-size: 0.85rem;
        padding: 12px 8px 10px;
    }
}

@media (max-width: 1024px) {
    .hero__catch {
        font-size: 1.875rem;
        margin: 16px 20px;
    }
    .hero__search {
        margin: -140px auto 30px;
        padding: 24px 20px;
        width: min(874px, 100% - 40px);
    }
    .hero__search-keyword {
        flex-wrap: wrap;
        gap: 12px;
    }
    .hero__search-input {
        width: 100%;
    }
    .hero__search-option {
        flex-wrap: wrap;
    }
    .hero__search-option-list {
        flex-wrap: wrap;
    }
}
@media (max-width: 767px) {
    .hero__img {
        height: 300px;
    }
    .hero__catch {
        font-size: 1.5rem;
    }
    .hero__search {
        margin: -80px auto 20px;
        min-height: auto;
        padding: 20px 16px;
    }
    .hero__search .tabui__tab {
        gap: 10px;
    }
    .hero__search .tabui__label {
        font-size: 1.125rem;
        letter-spacing: 0.1rem;
    }
}
.main {
    display: grid;
    grid-template-rows: auto 1fr;
    gap: 40px;
    grid-template-columns: 1fr 405px;
    margin: 0 auto 20px;
    width: fit-content;
  }

@media (max-width: 1024px) {
    .main {
        grid-template-columns: 1fr;
        width: 100%;
    }
}
.body {
    margin-left: 30px;
}

.sidebar__imglist {
    font-size: 0.9375rem;
    margin: 30px 30px 50px;
}

.sidebar__imglist-ttl {
    font-size: 1.5rem;
    color: #000;
    font-weight: 700;
    line-height: 1;
    margin-bottom: 20px;
}

.sidebar__imglist-list {
    display: grid;
    gap: 20px;
    margin-bottom: 10px;
}

a.sidebar__imglist-link,
.sidebar__imglist-link {
    color: #000;
    display: flex;
    gap: 10px;
    line-height: 1.2;
    min-width: 0;
}
a.sidebar__imglist-link > img,
.sidebar__imglist-link > img {
    flex-shrink: 0;
}
a.sidebar__imglist-link > p,
.sidebar__imglist-link > p {
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: break-word;
}
a.sidebar__imglist-link:hover,
.sidebar__imglist-link:hover {
    opacity: 0.7;
}

.sidebar__imglist-time {
    display: block;
}

.sidebar__imglist-more {
    text-align: right;
}

.sidebar__banner {
    display: grid;
    gap: 20px;
    justify-content: center;
    text-align: center;
}

.sidebar__banner-link:hover {
    opacity: 0.7;
}

@media (max-width: 1024px) {
    .sidebar__imglist {
        margin: 20px 20px 30px;
    }
    .sidebar__imglist-list {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 767px) {
    .sidebar__imglist-list {
        grid-template-columns: 1fr;
    }
}
.footer {
    margin: 0 20px;
    padding-bottom: 35px;
}

.footer__sns {
    border-bottom: 3px solid #000;
    display: flex;
    gap: 10px;
    margin-bottom: 20px;
    padding-bottom: 20px;
}
.footer__sns.-empty {
    min-height: 0;
    padding-bottom: 0;
}

.footer__txt {
    font-size: 0.875rem;
    line-height: 1.4;
}
.footer__txt:not(:last-of-type) {
    margin-bottom: 20px;
}

@media (max-width: 767px) {
    .footer {
        margin: 0 16px;
        padding-bottom: 24px;
    }
}
.invest-opps {
    margin: 0 auto 90px;
    max-width: 1440px;
    width: fit-content;
}

.invest-opps__ttl {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1;
    margin: 0 20px 30px;
}

.invest-opps__list {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    margin: 0 20px;
    width: fit-content;
}

a.invest-opps__item {
    color: #4e4e4e;
    display: block;
    line-height: 1.35;
    max-width: 100%;
    width: 300px;
}
a.invest-opps__item:hover {
    opacity: 0.7;
}

.invest-opps__figure {
    margin-bottom: 15px;
    position: relative;
}
.invest-opps__figure figcaption {
    background: #fff;
    border-radius: 64px;
    color: var(--btn-color);
    font-weight: 500;
    left: 10px;
    padding: 8px 16px;
    position: absolute;
    top: 10px;
}

.invest-opps__data {
    display: grid;
    gap: 5px;
}

.invest-opps__name {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.35;
    overflow-wrap: anywhere;
    white-space: normal;
    word-break: break-word;
}

.invest-opps__addr {
    font-size: 0.875rem;
}

.invest-opps__price {
    font-size: 0.875rem;
    color: var(--red);
}

.invest-opps__price-num {
    font-size: 1.5rem;
    font-weight: 600;
}

.invest-opps__price-sgd {
    font-weight: 600;
}

.invest-opps__yield {
    font-size: 0.875rem;
    color: var(--red);
    font-weight: 600;
}

.invest-opps__info {
    font-size: 0.875rem;
}

@media (max-width: 1024px) {
    .invest-opps {
        margin-bottom: 60px;
        width: 100%;
    }
    .invest-opps__list {
        gap: 16px;
        width: 100%;
    }
    a.invest-opps__item {
        width: calc(50% - 8px);
    }
    a.invest-opps__item img {
        width: 100%;
        height: auto;
    }
}
@media (max-width: 767px) {
    .invest-opps__list {
        gap: 24px;
    }
    a.invest-opps__item {
        width: 100%;
    }
}
.prlist {
    font-size: 0.875rem;
    color: #4e4e4e;
    min-width: 0;
}

.prlist__ttl {
    font-size: 0.9375rem;
    color: #000;
    font-weight: 700;
    line-height: 1.35;
    margin-bottom: 5px;
    overflow-wrap: anywhere;
    white-space: normal;
    word-break: break-word;
}

.prlist__price-num {
    font-size: 1.25rem;
    font-weight: 600;
}

.proplist-header {
    margin-bottom: 14px;
}

.proplist-header__ttl {
    font-size: 1.5rem;
    color: #000;
    font-weight: 700;
    line-height: 1;
    margin-bottom: 10px;
}

.proplist-header__lead {
    font-size: 0.9375rem;
    color: #000;
    margin-bottom: 40px;
}

.proplist-header__filter {
    display: flex;
    gap: 8px;
    margin-bottom: 10px;
}

.proplist-header__filter-btn {
    font-size: 1rem;
    appearance: none;
    background: #fff;
    border: 1px solid #000;
    color: #000;
    line-height: 1;
    padding: 11px 20px;
}
.proplist-header__filter-btn:hover {
    background: #eee;
}

.proplist-header__search {
    align-items: end;
    background: #f5f5f5;
    display: grid;
    gap: 10px;
    grid-template-columns: 163px 175px 142px 154px 170px 88px;
    margin-bottom: 34px;
    padding: 20px;
    width: fit-content;
}

.proplist-searchbar {
    background: #f5f5f5;
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-bottom: 20px;
    padding: 20px;
}

.proplist-searchbar__form {
    align-items: center;
    display: flex;
    gap: 12px;
}

.proplist-searchbar__keyword {
    flex: 1 1 auto;
    min-width: 0;
}

.proplist-searchbar__filter fieldset {
    display: contents;
}

.proplist-searchbar__filter legend {
    color: #000;
    font-weight: 500;
    margin-right: 10px;
}

.proplist-searchbar__filter {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.proplist-header__count {
    color: #4f4f4f;
    font-size: 0.95rem;
    margin-right: auto;
}

.proplist-header__count strong {
    color: #000;
    font-size: 1.125rem;
}

.proplist-header__count-q {
    color: #6f7482;
}

.proplist-header__count-range {
    color: #6f7482;
}

.proplist-header__search-item.-div {
    margin-right: 12px;
}

.proplist-header__search-label {
    color: #6f7482;
}

.proplist-header__toolbar {
    align-items: center;
    display: flex;
    gap: 20px;
    justify-content: flex-end;
    margin-bottom: 20px;
}

.proplist-header__sort {
    width: 216px;
}

.proplist-header__toolbar .proplist-header__sort {
    margin-left: 0;
}

.proplist-header__switch-wrap {
    align-items: center;
    display: flex;
    gap: 10px;
    white-space: nowrap;
}

.proplist-header__switch-label {
    color: #000;
    cursor: pointer;
    font-size: 0.9375rem;
    font-weight: 600;
}

@media (max-width: 1024px) {
    .proplist-header__filter {
        flex-wrap: wrap;
    }
    .proplist-header__search {
        display: flex;
        flex-direction: column;
        gap: 12px;
        grid-template-columns: none;
        width: 100%;
    }
    .proplist-header__search-item.-div {
        margin-right: 0;
    }
    .proplist-searchbar__form {
        flex-wrap: wrap;
    }
    .proplist-header__toolbar {
        flex-wrap: wrap;
        justify-content: space-between;
    }
    .proplist-header__count {
        flex: 1 1 100%;
        margin-right: 0;
    }
    .proplist-header__sort {
        width: 100%;
    }
}
.proplist {
    margin-bottom: 34px;
    width: 100%;
}
.proplist tr {
    border-bottom: 1px solid #000;
    line-height: 1.2;
}
.proplist thead th {
    padding: 10px 0;
}
.proplist thead th:not(:last-of-type) {
    padding-right: 20px;
}
.proplist tbody td {
    padding: 30px 0 10px;
    vertical-align: top;
}
.proplist tbody td:not(:last-of-type) {
    padding-right: 20px;
}

.proplist__label {
    font-size: 0.875rem;
    background: #99e5ef;
    color: #000;
    display: inline-block;
    font-weight: 600;
    line-height: 1;
    margin-bottom: 10px;
    padding: 7px 12px;
}

.proplist__ttl {
    font-size: 1.25rem;
    color: #000;
    font-weight: 700;
    line-height: 1;
    margin-bottom: 16px;
}

.proplist__addr,
.proplist__data {
    font-size: 0.9375rem;
    color: #000;
}

.proplist__addr {
    margin-bottom: 16px;
}

.proplist__price {
    font-size: 2rem;
    color: var(--red);
    font-weight: 600;
    text-align: center;
    white-space: nowrap;
}

.proplist__size-list {
    display: grid;
    gap: 16px;
}

.proplist__size {
    display: block;
}

@media (max-width: 1024px) {
    .proplist thead {
        display: none;
    }
    .proplist tbody tr {
        border-bottom: 2px solid #000;
        display: grid;
        gap: 10px;
        grid-template-columns: 240px 1fr;
        grid-template-rows: auto auto;
        padding: 16px 0;
    }
    .proplist tbody td {
        padding: 0;
    }
    .proplist tbody td:not(:last-of-type) {
        padding-right: 0;
    }
    .proplist tbody td:nth-child(1) {
        grid-column: 1;
        grid-row: 1/3;
    }
    .proplist tbody td:nth-child(2) {
        grid-column: 2;
        grid-row: 1;
    }
    .proplist tbody td:nth-child(3) {
        grid-column: 2;
        grid-row: 2;
        text-align: left;
    }
    .proplist tbody td:nth-child(4) {
        display: none;
    }
    .proplist__price {
        font-size: 1.5rem;
        text-align: left;
    }
}
@media (max-width: 767px) {
    .proplist tbody tr {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
    }
    .proplist tbody td:nth-child(1) {
        grid-column: 1;
        grid-row: 1;
    }
    .proplist tbody td:nth-child(1) img {
        width: 100%;
        height: auto;
    }
    .proplist tbody td:nth-child(2) {
        grid-column: 1;
        grid-row: 2;
    }
    .proplist tbody td:nth-child(3) {
        grid-column: 1;
        grid-row: 3;
    }
}
.proplist-pagenation__list {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
    margin-bottom: 34px;
}

.proplist-pagenation__ellipsis {
    color: #bcbcbc;
    font-weight: 700;
    padding: 0 4px;
}

a.proplist-pagenation__link,
.proplist-pagenation__link {
    font-size: 1.125rem;
    align-items: center;
    border: 1px solid #bcbcbc;
    border-radius: 6px;
    color: #bcbcbc;
    display: flex;
    font-weight: 700;
    height: 42px;
    justify-content: center;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    width: 42px;
}
a.proplist-pagenation__link.-active,
a.proplist-pagenation__link:hover,
.proplist-pagenation__link.-active,
.proplist-pagenation__link:hover {
    background: #00add1;
    border: none;
    color: #fff;
}
a.proplist-pagenation__link.-back,
a.proplist-pagenation__link.-next,
.proplist-pagenation__link.-back,
.proplist-pagenation__link.-next {
    border: none;
    color: #00add1;
    font-weight: 600;
    width: auto;
    padding: 0 8px;
}
a.proplist-pagenation__link.-back:hover,
a.proplist-pagenation__link.-next:hover,
.proplist-pagenation__link.-back:hover,
.proplist-pagenation__link.-next:hover {
    background: transparent;
    color: var(--red);
}
a.proplist-pagenation__link.-disabled,
.proplist-pagenation__link.-disabled {
    color: #d9d9d9;
    pointer-events: none;
}
a.proplist-pagenation__link.-disabled:hover,
.proplist-pagenation__link.-disabled:hover {
    color: #d9d9d9;
}

.map-search {
    align-items: center;
    background: #fff;
    box-shadow: 0 10px 10px rgba(0, 0, 0, 0.2);
    display: grid;
    flex-shrink: 0;
    gap: 16px;
    grid-template-columns: 360px 88px 1fr minmax(200px, 240px) auto;
    padding: 16px 20px;
    position: relative;
    z-index: 50;
}

.map-search__sort {
    min-width: 0;
    width: 100%;
}

.map-search__sort .select__item {
    font-weight: 600;
}

.map-search__form {
    display: contents;
}

.map-search__switch-wrap {
    align-items: center;
    display: flex;
    gap: 10px;
    margin-left: 8px;
    white-space: nowrap;
}

.map-search__switch-label {
    color: #000;
    cursor: pointer;
    font-size: 0.9375rem;
    font-weight: 600;
}

.map-search__form {
    display: contents;
}

input.map-search__keyword {
    background: #f8fafc;
    border: 1px solid var(--btn-color);
}

.map-search__filter {
    align-items: center;
    display: flex;
    gap: 12px;
}
.map-search__filter fieldset {
    display: contents;
}
.map-search__filter legend {
    color: #000;
    font-weight: 500;
}

.map-search__filter-list {
    display: flex;
    gap: 12px;
}

@media (max-width: 1024px) {
    .map-search {
        grid-template-columns: 1fr minmax(180px, 220px) auto;
        grid-template-rows: auto auto;
    }
    .map-search__filter {
        grid-column: 1/-1;
        flex-wrap: wrap;
    }
    .map-search__filter-list {
        flex-wrap: wrap;
    }
    .map-search__sort {
        grid-column: 2;
    }
}
@media (max-width: 767px) {
    .map-search {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
        padding: 14px;
    }
    .map-search__sort {
        width: 100%;
    }
    .map-search__switch-wrap {
        justify-content: flex-end;
        margin-left: 0;
    }
}

/* Map page: viewport lock — only left list scrolls */
body.is-map-page {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    height: 100vh;
    height: 100dvh;
    overflow: hidden;
}

body.is-map-page .footer {
    display: none;
}

.map-page {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

.map-page .breadcrumb {
    flex-shrink: 0;
    margin-bottom: 0;
    padding-bottom: 10px;
}

.map-main {
    display: grid;
    flex: 1 1 auto;
    gap: 0;
    grid-template-columns: 410px minmax(0, 1fr);
    margin: 0;
    min-height: 0;
    overflow: hidden;
    width: 100%;
}

.map-main__list {
    -webkit-overflow-scrolling: touch;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    padding: 20px 20px 40px 30px;
}

.map-main__count {
    color: #4f4f4f;
    font-size: 0.95rem;
    margin-bottom: 16px;
}

.map-main__count strong {
    color: #000;
    font-size: 1.125rem;
}

.map-main__count-q {
    color: #6f7482;
}

.map-main__empty {
    padding: 2rem 0;
}

.map-main__map {
    height: 100%;
    min-height: 0;
    overflow: hidden;
    position: relative;
    width: 100%;
}

.map-main__map .map {
    bottom: 0;
    height: 100%;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
    width: 100%;
}

/* 重なりピンの一覧ポップアップ */
.map-cluster-pop {
    background: #fff;
    border-radius: 2px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
    font-family: Arial, Helvetica, sans-serif;
    max-width: 300px;
    min-width: 260px;
    overflow: hidden;
}
.map-cluster-pop__head {
    align-items: center;
    border-bottom: 1px solid #eee;
    display: flex;
    gap: 8px;
    justify-content: space-between;
    padding: 10px 12px 8px;
}
.map-cluster-pop__head-text {
    color: #222;
    flex: 1;
    font-size: 13px;
    line-height: 1.3;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.map-cluster-pop__star {
    color: #f5b400;
    font-size: 12px;
    margin: 0 2px;
}
.map-cluster-pop__close {
    background: transparent;
    border: 0;
    color: #999;
    cursor: pointer;
    flex-shrink: 0;
    font-size: 18px;
    line-height: 1;
    padding: 0 2px;
}
.map-cluster-pop__close:hover {
    color: #555;
}
.map-cluster-pop__list {
    list-style: none;
    margin: 0;
    max-height: 280px;
    overflow: auto;
    padding: 0;
}
.map-cluster-pop__item {
    align-items: center;
    color: inherit;
    display: flex;
    gap: 12px;
    padding: 10px 12px;
    text-decoration: none;
}
.map-cluster-pop__item:hover {
    background: #f7f7f7;
}
.map-cluster-pop__item + .map-cluster-pop__item {
    border-top: 1px solid #f0f0f0;
}
.map-cluster-pop__thumb {
    background: #ddd;
    flex-shrink: 0;
    height: 52px;
    object-fit: cover;
    width: 72px;
}
.map-cluster-pop__meta {
    min-width: 0;
}
.map-cluster-pop__spec {
    align-items: center;
    color: #5b9bd5;
    display: flex;
    font-size: 13px;
    gap: 4px;
    margin: 0 0 4px;
}
.map-cluster-pop__spec-ico {
    display: inline-block;
    height: 14px;
    vertical-align: -2px;
    width: 14px;
}
.map-cluster-pop__price {
    color: #111;
    font-size: 15px;
    font-weight: 700;
    margin: 0;
}

/* InfoWindow の余白・吹き出しを抑える */
.gm-style .gm-style-iw-c {
    border-radius: 2px !important;
    box-shadow: none !important;
    padding: 0 !important;
}
.gm-style .gm-style-iw-ch {
    padding: 0 !important;
}
.gm-style .gm-style-iw-d {
    overflow: auto !important;
}
.gm-style .gm-style-iw-tc,
.gm-style .gm-style-iw-t::after {
    display: none !important;
}
.gm-style button.gm-ui-hover-effect {
    display: none !important;
}

.map-heatmap {
    bottom: 32px;
    left: 200px;
    position: absolute;
    text-align: center;
    transform: translateX(-50%);
    z-index: 10;
}

.map-heatmap__btn {
    background: #2fb7ff;
    border: none;
    border-radius: 5px;
    color: #fff;
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-bottom: 2px;
    padding: 8px 22px;
    position: relative;
    white-space: nowrap;
}

.map-heatmap__btn::after {
    border-left: 7px solid transparent;
    border-right: 7px solid transparent;
    border-top: 8px solid #2fb7ff;
    bottom: -8px;
    content: "";
    left: 50%;
    position: absolute;
    transform: translateX(-50%);
}

.map-heatmap__sub {
    display: flex;
    flex-direction: row;
    gap: 6px;
    justify-content: center;
    margin-top: 10px;
}

.map-heatmap__sub-btn {
    background: rgba(255, 255, 255, 0.4);
    border: 1px solid #2fb7ff;
    border-radius: 50%;
    color: #2fb7ff;
    font-size: 0.6875rem;
    font-weight: 700;
    height: 52px;
    letter-spacing: 0.05em;
    width: 52px;
}

.map-heatmap__sub-btn.-active {
    background: #2fb7ff;
    color: #fff;
}

.map-heatmap__sub-btn:hover:not(.-active) {
}

@media (max-width: 1024px) {
    .map-main {
        grid-template-columns: 1fr;
        grid-template-rows: minmax(0, 1fr) minmax(40vh, 1fr);
        margin: 0;
        width: 100%;
    }
    .map-main__list {
        padding: 16px;
    }
    .map-main__map {
        height: auto;
        min-height: 0;
    }
}
@media (max-width: 767px) {
    .map-main {
        grid-template-rows: minmax(0, 1fr) minmax(35vh, 1fr);
    }
}
.map-prop {
    box-sizing: border-box;
    display: grid;
    gap: 10px;
    line-height: 1;
    margin-bottom: 50px;
    max-width: 100%;
    min-width: 0;
    scroll-margin-top: 8px;
    width: 100%;
}
.map-prop.-active {
    outline: 2px solid #0048d9;
    outline-offset: 4px;
}

.map-prop__img {
    aspect-ratio: 410 / 240;
    background: #ccc;
    box-sizing: border-box;
    height: auto;
    max-width: 100%;
    overflow: hidden;
    position: relative;
    touch-action: pan-y;
    user-select: none;
    width: 100%;
}
.map-prop__img-track {
    display: flex;
    height: 100%;
    transition: transform 0.25s ease;
    width: 100%;
    will-change: transform;
}
.map-prop__img-slide {
    flex: 0 0 100%;
    height: 100%;
    width: 100%;
}
.map-prop__img-slide img {
    display: block;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
    width: 100%;
}
.map-prop__img-bar {
    align-items: center;
    background: rgba(0, 0, 0, 0.6);
    bottom: 0;
    display: flex;
    height: 34px;
    left: 0;
    position: absolute;
    right: 0;
    z-index: 3;
}
.map-prop__img-num {
    align-items: center;
    color: #fff;
    display: flex;
    font-size: 0.9375rem;
    font-weight: 500;
    gap: 7px;
    left: 10px;
    line-height: 1;
    position: absolute;
    z-index: 4;
}
.map-prop__img-num-ico {
    display: block;
    flex-shrink: 0;
}
.map-prop__img-dots {
    align-items: center;
    display: flex;
    gap: 6px;
    height: 100%;
    justify-content: center;
    width: 100%;
}
.map-prop__img-dot {
    background: #757575;
    border: 0;
    border-radius: 50%;
    cursor: pointer;
    height: 8px;
    padding: 0;
    width: 8px;
}
.map-prop__img-dot.-active {
    background: #fff;
}
.map-prop__img-nav {
    display: none;
}

.map-prop__ttl {
    font-size: 1.25rem;
    font-weight: 700;
}

.map-prop__addr {
    font-size: 1.125rem;
    margin-bottom: 4px;
}

.map-prop__price {
    font-size: 0.875rem;
    color: var(--red);
    font-weight: 600;
}

.map-prop__price-num,
.map-prop__price-per {
    font-size: 1.5rem;
    font-weight: 600;
}
.map-prop__price-num small,
.map-prop__price-per small {
    font-size: 1.125rem;
}

.map-prop__plan {
    align-items: center;
    display: flex;
    gap: 20px;
}

.map-prop__plan-item {
    align-items: center;
    display: flex;
    min-height: 30px;
}
.map-prop__plan-item:not(:last-of-type) {
    border-right: 1px solid #bbb;
    padding-right: 20px;
}

.map-prop__plan-item-num {
    align-items: center;
    display: flex;
    gap: 14px;
}
.map-prop__plan-item-num:not(:last-of-type) {
    margin-right: 20px;
}
.map-prop__plan-item-num svg {
    color: #757575;
}

.map-prop__tags {
    border-bottom: 1px solid #bbb;
    display: flex;
    gap: 10px;
    margin-top: 8px;
    padding-bottom: 10px;
}

.map-prop__tag {
    border: 1px solid rgb(var(--btn-color-rgb) / 0.5);
    border-radius: 6px;
    color: rgb(var(--btn-color-rgb) / 0.5);
    display: inline-block;
    font-weight: 500;
    padding: 8px 16px;
}

.map-prop__contact {
    text-align: right;
}

.map {
    border: 0;
    height: 100%;
    vertical-align: top;
    width: 100%;
}

.login {
    align-items: center;
    background: #f5f6f8;
    display: flex;
    justify-content: center;
    min-height: 100svh;
    padding: 40px 16px;
}
.login__inner {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);
    padding: 48px 40px;
    width: 100%;
    max-width: 480px;
}
@media (max-width: 767px) {
    .login__inner {
        padding: 32px 24px;
    }
}
.login__logo {
    display: block;
    margin: 0 auto 32px;
    text-align: center;
}
.login__ttl {
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: 8px;
    text-align: center;
}
.login__desc {
    font-size: 0.875rem;
    color: #666;
    margin-bottom: 32px;
    text-align: center;
}
.login__form {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-top: 32px;
}
.login__form-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.login__label {
    font-size: 0.875rem;
    color: #333;
    font-weight: 500;
}
.login__submit {
    margin-top: 8px;
    padding: 14px;
    text-align: center;
    width: 100%;
}
.login__forgot {
    font-size: 0.875rem;
    margin-top: 16px;
    text-align: right;
}
.login__forgot a {
    color: var(--btn-color);
}
.login__forgot a:hover {
    opacity: 0.8;
}
.login__links {
    font-size: 0.875rem;
    border-top: 1px solid #eee;
    margin-top: 24px;
    padding-top: 24px;
    text-align: center;
}
.login__links a {
    color: var(--btn-color);
}
.login__links a:hover {
    opacity: 0.8;
}

.login__alert {
    font-size: 0.875rem;
    background: #eaf2ff;
    border: 1px solid var(--btn-color);
    border-radius: 6px;
    color: #333;
    margin-bottom: 24px;
    padding: 12px 16px;
    text-align: center;
}
.login__back {
    font-size: 0.875rem;
    margin-top: 20px;
    text-align: center;
}
.login__back a {
    color: var(--btn-color);
}
.login__back a:hover {
    opacity: 0.8;
}
.login__terms {
    font-size: 0.75rem;
    color: #666;
    line-height: 1.5;
    margin-top: 16px;
}
.login__terms a {
    color: var(--btn-color);
}
.login__terms a:hover {
    opacity: 0.8;
}

/* Contact（Feedback 型レイアウト / サイト配色） */
.contact-page {
    margin: 0 auto 80px;
    padding: 0 20px;
    width: min(560px, 100%);
}
.contact-page .breadcrumb {
    margin: 16px 0 8px;
}
.contact-page__inner {
    margin-top: 8px;
}
.contact-page__header {
    margin-bottom: 28px;
}
.contact-page__ttl {
    color: #000;
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    line-height: 1.2;
    margin-bottom: 10px;
}
.contact-page__lead {
    color: #4f4f4f;
    font-size: 0.95rem;
    line-height: 1.6;
}
.contact-page__alert {
    background: #fff4f4;
    border: 1px solid #e8a0a0;
    border-radius: 6px;
    color: #b42318;
    font-size: 0.875rem;
    margin-bottom: 20px;
    padding: 12px 16px;
}
.contact-page__alert ul {
    list-style: disc;
    margin: 0;
    padding-left: 1.25rem;
}
.contact-form__group {
    margin-bottom: 20px;
}
.contact-form__label {
    color: #222;
    display: block;
    font-size: 0.9375rem;
    font-weight: 700;
    margin-bottom: 8px;
}
.contact-form .input {
    border-radius: 6px;
    width: 100%;
}
.contact-form__textarea {
    min-height: 140px;
    padding: 12px 14px;
    resize: vertical;
}
.contact-form__captcha {
    position: relative;
}
.contact-form__captcha-img {
    background: #e6f2ff;
    border: 1px solid #d0d7e2;
    border-radius: 4px;
    display: block;
    height: 48px;
    margin-bottom: 10px;
    object-fit: cover;
    width: 140px;
}
.contact-form__captcha-reload {
    background: transparent;
    border: 0;
    color: var(--btn-color);
    cursor: pointer;
    font-size: 1.25rem;
    left: 148px;
    line-height: 1;
    padding: 4px 8px;
    position: absolute;
    top: 10px;
}
.contact-form__captcha-reload:hover {
    opacity: 0.75;
}
.contact-form__recaptcha {
    margin-bottom: 8px;
}
.contact-form__recaptcha .g-recaptcha {
    transform-origin: left top;
}
.contact-form__terms {
    color: #4f4f4f;
    font-size: 0.8125rem;
    line-height: 1.6;
    margin: 8px 0 24px;
}
.contact-form__terms a {
    color: var(--btn-color);
    font-weight: 600;
    text-decoration: none;
}
.contact-form__terms a:hover {
    text-decoration: underline;
}
.contact-form__actions {
    margin: 0 0 40px;
}
.contact-form__submit {
    min-width: 168px;
    padding-left: 28px;
    padding-right: 28px;
}
.contact-page__complete-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 32px;
}

.propimg {
    display: grid;
    gap: 7px;
    grid-template-columns: 513px 1fr;
    height: 381px;
    margin: 0 25px 40px;
    overflow: hidden;
}
.propimg.-single {
    grid-template-columns: min(513px, 100%);
}
.propimg__jump {
    color: inherit;
    display: block;
    height: 100%;
    min-width: 0;
}
button.propimg__jump {
    appearance: none;
    background: none;
    border: 0;
    cursor: pointer;
    padding: 0;
    text-align: left;
    width: 100%;
}
.propimg > .propimg__jump {
    height: 100%;
}
.propimg__sub .propimg__jump {
    line-height: 0;
}
.propimg__main {
    height: 100%;
    object-fit: cover;
    width: 100%;
}
.propimg__sub {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    height: 100%;
    min-width: 0;
}
.propimg__sub > li {
    min-width: 0;
    overflow: hidden;
}
.propimg__sub img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}
/* 2枚: 右1枚を縦いっぱい */
.propimg.-count-2 .propimg__sub > li {
    flex: 1 1 100%;
    height: 100%;
}
/* 3枚（サブ2）: メイン幅は4枚並びと同じ。右は空けずサブ2枚で埋める
   [main][1]
   [main][2] */
.propimg.-count-3 {
    grid-template-columns: 1.4fr 2fr;
    grid-template-rows: 1fr 1fr;
    grid-template-areas:
        "main a"
        "main b";
}
.propimg.-count-3 > .propimg__jump,
.propimg.-count-3 > .propimg__main {
    grid-area: main;
    height: 100%;
}
.propimg.-count-3 .propimg__sub {
    display: contents;
}
.propimg.-count-3 .propimg__sub > li:nth-child(1) {
    grid-area: a;
}
.propimg.-count-3 .propimg__sub > li:nth-child(2) {
    grid-area: b;
}
/* 4枚: 左メイン縦長 / 中央2段 / 右3枚目縦長
   [main][1][3]
   [main][2][3] */
.propimg.-count-4 {
    grid-template-columns: 1.4fr 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    grid-template-areas:
        "main a c"
        "main b c";
}
.propimg.-count-4 > .propimg__jump,
.propimg.-count-4 > .propimg__main {
    grid-area: main;
    height: 100%;
}
.propimg.-count-4 .propimg__sub {
    display: contents;
}
.propimg.-count-4 .propimg__sub > li:nth-child(1) {
    grid-area: a;
}
.propimg.-count-4 .propimg__sub > li:nth-child(2) {
    grid-area: b;
}
.propimg.-count-4 .propimg__sub > li:nth-child(3) {
    grid-area: c;
}

/* 5枚（サブ4）: 同上＋中央に4枚目を足す（右の3枚目は縦長のまま）
   [main][1][3]
   [main][2][3]
   [main][4][3] */
.propimg.-count-5 {
    grid-template-columns: 1.4fr 1fr 1fr;
    grid-template-rows: 1fr 1fr 1fr;
    grid-template-areas:
        "main a c"
        "main b c"
        "main d c";
}
.propimg.-count-5 > .propimg__jump,
.propimg.-count-5 > .propimg__main {
    grid-area: main;
    height: 100%;
}
.propimg.-count-5 .propimg__sub {
    display: contents;
}
.propimg.-count-5 .propimg__sub > li:nth-child(1) {
    grid-area: a;
}
.propimg.-count-5 .propimg__sub > li:nth-child(2) {
    grid-area: b;
}
.propimg.-count-5 .propimg__sub > li:nth-child(3) {
    grid-area: c;
}
.propimg.-count-5 .propimg__sub > li:nth-child(4) {
    grid-area: d;
}

@media (max-width: 1024px) {
    .propimg {
        grid-template-columns: 1fr;
        height: auto;
        margin: 0 0 24px;
    }
    .propimg.-single,
    .propimg.-count-3 {
        grid-template-columns: 1fr;
        grid-template-areas: none;
        grid-template-rows: auto;
    }
    .propimg.-count-3 > .propimg__jump,
    .propimg.-count-3 > .propimg__main {
        grid-area: auto;
        height: auto;
    }
    .propimg__main {
        width: 100%;
        height: auto;
    }
    .propimg__sub {
        display: none;
    }
}
.prop-detail {
    margin-left: 25px;
    min-width: 0;
    overflow-wrap: break-word;
}

.prop-detail__item {
    border-bottom: 1px solid #bcbcbc;
    margin-bottom: 30px;
}
.prop-detail__item.-no-frame {
    border: 0;
}

.prop-detail__heading {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 5px 10px;
    margin-bottom: 24px;
}

.prop-detail__ttl {
    font-size: 1.875rem;
    font-weight: 700;
    line-height: 1.3;
    margin-bottom: 24px;
    overflow-wrap: anywhere;
    word-break: break-word;
}
.prop-detail__heading .prop-detail__ttl {
    flex: 1 1 auto;
    margin-bottom: 0;
    min-width: 0;
}

.prop-detail__about {
    margin-bottom: 8px;
}

.prop-detail__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin: 0;
}

.prop-detail__badge {
    border: 1px solid #cb0000;
    border-radius: 5px;
    color: #cb0000;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    padding: 6px 10px;
    white-space: nowrap;
}

.prop-detail__addr {
    font-size: 1.125rem;
    margin-top: 0;
}

.prop-detail__price {
    font-size: 0.875rem;
    color: var(--red);
    font-weight: 600;
    margin-bottom: 30px;
}

.prop-detail__price-num,
.prop-detail__price-per {
    font-size: 1.75rem;
}
.prop-detail__price-num small,
.prop-detail__price-per small {
    font-size: 1.125rem;
}

.prop-detail__sgd {
    font-size: 1.125rem;
}

.prop-detail__plan {
    display: flex;
    gap: 13px;
    margin-bottom: 40px;
}

.prop-detail__plan-item {
    align-items: center;
    border: 1px solid #bbb;
    border-radius: 10px;
    color: #000;
    display: grid;
    grid-template-rows: 1fr 2em;
    height: 78px;
    justify-content: center;
    line-height: 1;
    padding-bottom: 8px;
    text-align: center;
    width: 80px;
}

.prop-detail__plan-ico {
    color: #757575;
    margin: auto auto 4px;
}

.prop-detail__list {
    margin-bottom: 40px;
}
.prop-detail__list li {
    margin-bottom: 4px;
}
.prop-detail__list.-column {
    column-count: 2;
    column-gap: 1px;
}
.prop-detail__list.-column li {
    break-inside: avoid;
}

.prop-reform {
    margin-bottom: 20px;
}
.prop-reform__ttl {
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: 8px;
}
.prop-reform__list {
    margin-bottom: 0;
}
.prop-reform__list li {
    margin-bottom: 4px;
}
.prop-reform__empty {
    margin: 0;
}
.prop-reform__text {
    margin: 8px 0 0;
    white-space: pre-wrap;
}
.prop-reform__list + .prop-reform__text {
    margin-top: 8px;
}

.prop-reform-grid {
    display: grid;
    gap: 20px 24px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-bottom: 8px;
}
@media (max-width: 767px) {
    .prop-reform-grid {
        grid-template-columns: 1fr;
    }
}

.prop-accordion__body {
    margin-top: 8px;
}

.prop-more {
    border-bottom: 1px solid #bcbcbc;
    margin-bottom: 24px;
    padding-bottom: 8px;
}
.prop-more:last-child {
    border-bottom: 0;
    margin-bottom: 0;
}
.prop-more__ttl {
    font-size: 1.25rem;
    font-weight: 700;
    margin-bottom: 16px;
}
.prop-more__list {
    margin: 0;
}
.prop-more__row {
    display: grid;
    gap: 16px;
    grid-template-columns: minmax(160px, 240px) 1fr;
    margin-bottom: 12px;
}
.prop-more__row dt {
    color: #737d87;
    font-weight: 400;
}
.prop-more__row dd {
    color: #4e4e4e;
    margin: 0;
}

.prop-detail__access {
    margin-bottom: 24px;
}

.prop-detail__media {
    display: flex;
    gap: 20px;
    margin-bottom: 40px;
}

.prop-detail__media-item,
a.prop-detail__media-item,
button.prop-detail__media-item {
    background: transparent;
    border: 0;
    color: #000;
    cursor: pointer;
    display: grid;
    font: inherit;
    gap: 10px;
    line-height: 1;
    padding: 0;
    text-align: center;
    text-decoration: underline;
}
.prop-detail__media-item:hover,
a.prop-detail__media-item:hover,
button.prop-detail__media-item:hover {
    opacity: 0.7;
}

.prop-detail__media-img {
    border-radius: 10px;
}

.prop-detail__map-tags {
    display: flex;
    gap: 8px;
    margin-bottom: 12px;
}

.prop-detail__map-wrap {
    border-radius: 10px;
    height: 430px;
    margin-bottom: 40px;
    overflow: hidden;
    position: relative;
}

.prop-detail__map {
    border: 0;
    bottom: 0;
    height: 100%;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
    width: 100%;
}

.prop-detail__map-list {
    background: #fff;
    bottom: 10px;
    box-shadow: 2px 0 8px rgba(0, 0, 0, 0.15);
    left: 10px;
    overflow-y: auto;
    padding: 12px;
    position: absolute;
    top: 10px;
    width: 260px;
    z-index: 100;
    border-radius: 10px;
}

.prop-detail__map-loading {
    color: #9ca3af;
    font-size: 0.875rem;
    padding: 16px 0;
    text-align: center;
}

.prop-detail__map-place {
    align-items: center;
    border-bottom: 1px solid #f3f4f6;
    display: flex;
    gap: 10px;
    padding: 8px 0;
}

.prop-detail__map-place:last-child {
    border-bottom: none;
}

.prop-detail__map-place-ico {
    align-items: center;
    border-radius: 50%;
    display: flex;
    flex-shrink: 0;
    height: 36px;
    justify-content: center;
    width: 36px;
}

.prop-detail__map-place-name {
    flex: 1;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.3;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.prop-detail__map-place-time {
    flex-shrink: 0;
    text-align: right;
}

.prop-detail__map-place-mins {
    align-items: center;
    display: flex;
    font-size: 0.8125rem;
    font-weight: 700;
    gap: 2px;
    justify-content: flex-end;
    line-height: 1.2;
}

.prop-detail__map-place-dist {
    color: #6b7280;
    display: block;
    font-size: 0.75rem;
    line-height: 1.2;
}

.prop-detail__details {
    display: grid;
    gap: 24px;
    grid-template-columns: 1fr 1fr;
    margin-bottom: 20px;
}

.prop-detail__details-item {
    align-items: center;
    color: #0d1011;
    display: flex;
    gap: 12px;
    line-height: 1;
}

.prop-detail__details-more {
    margin-bottom: 40px;
}

/**
 * Amenities / Common facilities dialog（filters-modal と同系のサイトトンマナ）
 */
dialog.feature-dialog {
    background: transparent;
    border: 0;
    inset: 0;
    margin: auto;
    max-height: min(80vh, 720px);
    max-width: 420px;
    padding: 0;
    position: fixed;
    width: min(420px, 92vw);
}
dialog.feature-dialog::backdrop {
    background: rgba(0, 0, 0, 0.35);
}
.feature-dialog__shell {
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 10px 14px rgba(0, 0, 0, 0.2);
    display: flex;
    flex-direction: column;
    max-height: min(80vh, 720px);
    overflow: hidden;
}
.feature-dialog__header {
    align-items: center;
    background: #fff;
    border-bottom: 1px solid #e5e5e5;
    color: #000;
    display: flex;
    flex: 0 0 auto;
    gap: 12px;
    justify-content: space-between;
    min-height: 56px;
    padding: 14px 20px;
}
.feature-dialog__ttl {
    font-family: "Barlow", sans-serif;
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.3;
    margin: 0;
}
.feature-dialog__close {
    align-items: center;
    background: transparent;
    border: 0;
    color: #4f4f4f;
    cursor: pointer;
    display: inline-flex;
    flex: 0 0 auto;
    height: 28px;
    justify-content: center;
    padding: 0;
    transition: var(--transition);
    width: 28px;
}
.feature-dialog__close:hover {
    color: var(--btn-color);
}
.feature-dialog__close svg {
    fill: currentColor;
}
.feature-dialog__list {
    list-style: none;
    margin: 0;
    overflow: auto;
    padding: 8px 0;
    -webkit-overflow-scrolling: touch;
}
.feature-dialog__item {
    align-items: center;
    color: #0d1011;
    display: flex;
    font-family: "Barlow", sans-serif;
    font-size: 15px;
    gap: 14px;
    line-height: 1.3;
    padding: 14px 20px;
}
.feature-dialog__item img {
    flex: 0 0 auto;
}

@media (max-width: 1024px) {
    .prop-detail {
        margin-left: 0;
        padding: 0 20px;
    }
    .prop-detail__map-wrap {
        height: 360px;
    }
    .prop-detail__map-list {
        width: 180px;
    }
    .prop-detail__ttl {
        font-size: 1.5rem;
    }
}
@media (max-width: 767px) {
    .prop-detail__plan {
        flex-wrap: wrap;
        gap: 10px;
    }
    .prop-detail__plan-item {
        height: 70px;
        width: 70px;
    }
    .prop-detail__list.-column {
        column-count: 1;
    }
    .prop-detail__details {
        grid-template-columns: 1fr;
    }
}
.prop-accordion {
    position: relative;
    width: 100%;
}
.prop-accordion summary {
    display: block;
    list-style: none;
    pointer-events: none;
}
.prop-accordion summary::-webkit-details-marker {
    display: none;
}
.prop-accordion__toggle {
    display: grid;
    justify-items: stretch;
    margin: 16px 0 40px;
    pointer-events: all;
    width: fit-content;
}
.prop-accordion__label {
    box-sizing: border-box;
    grid-area: 1 / 1;
    text-align: center;
    width: 100%;
    white-space: nowrap;
}
.prop-accordion__label.-hide {
    visibility: hidden;
}
.prop-accordion[open] .prop-accordion__label.-more {
    visibility: hidden;
}
.prop-accordion[open] .prop-accordion__label.-hide {
    visibility: visible;
}

#financial-overview,
#accordion-financial,
#price-history,
#property-photos {
    scroll-margin-top: 120px;
}

.price-history .tabui__tab {
    align-items: center;
    margin-bottom: 12px;
    width: 100%;
}
.price-history .tabui__label {
    font-size: 0.875rem;
    align-items: center;
    border-radius: 16px;
    color: #737d87;
    display: flex;
    font-weight: 400;
    justify-content: center;
    padding: 10px 8px;
    text-align: center;
    width: 80px;
}
.price-history .tabui__label.-disabled {
    color: #bcbcbc;
    cursor: default;
    opacity: 0.55;
    pointer-events: none;
}
.price-history #tab-a:checked ~ .tabui__tab #tab-a__label,
.price-history #tab-b:checked ~ .tabui__tab #tab-b__label {
    background: #1c1f22;
    color: #fff;
}
.price-history #tab-a:disabled:checked ~ .tabui__tab #tab-a__label,
.price-history #tab-a:disabled ~ .tabui__tab #tab-a__label.-disabled {
    background: transparent;
    color: #bcbcbc;
}

.price-history__tabs {
    background: #eff1f5;
    border-radius: 16px;
    display: flex;
    padding: 4px;
}

.price-history__filters-wrap {
    margin-left: auto;
    position: relative;
}

.price-history__filters {
    font-size: 0.875rem;
    appearance: none;
    border: none;
    line-height: 1;
    transition: var(--transition);
    align-items: center;
    background: transparent;
    border: 1px solid var(--btn-color);
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(40, 44, 46, 0.08);
    color: var(--btn-color);
    display: flex;
    font-weight: 500;
    gap: 5px;
    line-height: 1;
    padding: 10px 16px;
}
.price-history__filters:hover {
    background: #eee;
}
.price-history__filters[aria-expanded="true"] .price-history__filters-ico {
    rotate: 90deg;
}

.price-history__filters-ico {
    rotate: -90deg;
}

.price-history__filters-panel {
    background: #fff;
    border: 1px solid #d5dbe3;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(13, 16, 17, 0.12);
    min-width: 220px;
    padding: 16px;
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    z-index: 20;
}
.price-history__filters-ttl {
    font-size: 0.8125rem;
    font-weight: 600;
    margin: 0 0 10px;
}
.price-history__filters-list {
    display: grid;
    gap: 8px;
    margin: 0 0 14px;
}
.price-history__filters-list label {
    align-items: center;
    color: #0d1011;
    display: flex;
    font-size: 0.875rem;
    gap: 8px;
}
.price-history__filters-actions {
    display: flex;
    gap: 8px;
}

.price-history__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 20px;
}

a.price-history__tag,
.price-history__tag {
    font-size: 0.875rem;
    appearance: none;
    border: none;
    line-height: 1;
    transition: var(--transition);
    background: #fff;
    border: 1px solid #737d87;
    border-radius: 12px;
    color: #0d1011;
    display: flex;
    font-weight: 600;
    text-decoration: none;
    gap: 12px;
    padding: 10px 14px;
}
.price-history__tag:hover {
    background: #eee;
}

.history-table__header,
.history-table__item summary {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 2fr;
}

.history-table__header {
    margin-bottom: 12px;
}

.history-table__header-cell {
    color: #0d1011;
    font-weight: 600;
    line-height: 1;
    padding: 8px 15px;
}
.history-table__header-cell:not(:last-of-type) {
    border-right: 1px solid #c1c9d2;
}

.history-table__item {
    margin-bottom: 12px;
}
.history-table__item summary {
    background: #eff1f5;
    border-radius: 10px;
    cursor: pointer;
    position: relative;
    transition: var(--transition);
}
.history-table__item summary:hover {
    background: #dfe1e5;
}
.history-table__item summary::-webkit-details-marker {
    display: none;
}
.history-table__item[open] .history-table__summary-ico {
    rotate: 90deg;
}

.history-table__item-cell {
    align-items: center;
    display: grid;
    margin: 10px 0;
    padding: 0 15px;
}
.history-table__item-cell small {
    font-size: 0.875rem;
}
.history-table__item-cell:not(:last-of-type) {
    border-right: 1px solid #fff;
}

.history-table__summary-ico {
    position: absolute;
    right: 10px;
    rotate: -90deg;
    top: calc(50% - 12px);
    transition: var(--transition);
}

.history-table__details {
    margin: 0 15px;
}
.history-table__details dt {
    font-size: 0.875rem;
    font-weight: 600;
    padding-top: 8px;
}
.history-table__details dd {
    padding-bottom: 8px;
}
.history-table__details dd:not(:last-of-type) {
    border-bottom: 1px solid #c1c9d2;
}

.history-table__footer {
    font-size: 0.75rem;
    color: #0d1011;
    line-height: 1.4;
    margin-bottom: 12px;
}
.history-table__footer small {
    font-size: 0.75rem;
    color: #5a6067;
    display: block;
}

.history-table-pagenation {
    background: #eff1f5;
    border-radius: 100px;
    margin: 0 auto 40px;
    padding: 4px;
    width: fit-content;
}

.history-table-pagenation__list {
    display: flex;
    gap: 4px;
    justify-content: center;
}

a.history-table-pagenation__link,
.history-table-pagenation__link {
    font-size: 0.875rem;
    align-items: center;
    border-radius: 50%;
    color: #5a6067;
    display: flex;
    height: 36px;
    justify-content: center;
    line-height: 1;
    white-space: nowrap;
    width: 36px;
}
a.history-table-pagenation__link.-active,
.history-table-pagenation__link.-active {
    background: #1c1f22;
    color: #fff;
}
a.history-table-pagenation__link:hover,
.history-table-pagenation__link:hover {
    background: #e0e2e6;
    color: #5a6067;
}
a.history-table-pagenation__link.-next .history-table-pagenation__ico,
.history-table-pagenation__link.-next .history-table-pagenation__ico {
    rotate: 180deg;
}
a.history-table-pagenation__link.-disabled,
.history-table-pagenation__link.-disabled {
    background: transparent;
    color: #282c2e;
}
a.history-table-pagenation__link.-disabled .history-table-pagenation__ico,
.history-table-pagenation__link.-disabled .history-table-pagenation__ico {
    color: #282c2e;
}

.history-table-pagenation__ico {
    color: #5a6067;
}

.more-listings {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-bottom: 16px;
}

.more-listings__item {
    min-width: 0;
}

a.more-listings__link {
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(40, 44, 46, 0.08);
    color: #212529;
    display: block;
    height: 100%;
    overflow: hidden;
}
a.more-listings__link:hover {
    box-shadow: 0 2px 4px rgba(40, 44, 46, 0.4);
}

a.more-listings__link > img {
    aspect-ratio: 190 / 142;
    display: block;
    height: auto;
    object-fit: cover;
    width: 100%;
}

@media (max-width: 1024px) {
    .more-listings {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 767px) {
    .more-listings {
        grid-template-columns: 1fr;
    }
}

.more-listings__body {
    font-size: 0.875rem;
    padding: 12px 12px 24px;
}

.more-listings__ttl,
.more-listings__price {
    font-weight: 600;
}

.more-listings__plan {
    display: flex;
    gap: 12px;
    margin-bottom: 10px;
}
.more-listings__plan li {
    align-items: center;
    display: flex;
    gap: 4px;
}

.more-listings__tag {
    font-size: 0.75rem;
    border: 1px solid #737d87;
    border-radius: 8px;
    display: block;
    color: #5a6067;
    line-height: 1;
    margin-bottom: 10px;
    padding: 6px 17px;
    width: fit-content;
}

.more-listings__est {
    font-weight: 700;
}

.detail-sidebar {
    margin-right: 25px;
}

.detail-sidebar__action {
    display: flex;
    gap: 10px;
    margin-bottom: 16px;
}

.detail-sidebar__box {
    border: 1px solid #bcbcbc;
    margin-bottom: 20px;
    width: 100%;
}
.detail-sidebar__box:last-of-type {
    margin-bottom: 40px;
}
.detail-sidebar__box.-eval {
    align-items: end;
    display: flex;
    gap: 5px;
    justify-content: space-between;
    padding: 20px 15px;
}
.detail-sidebar__box.-owners-guide {
    background: url(../../img/propertybridge/banner-owners_guide.png) no-repeat
        left 15px bottom 20px;
    background-size: 272px 121px;
    padding: 20px 15px;
}
.detail-sidebar__box.-agent {
    padding: 27px 35px 35px;
}

.detail-sidebar__body {
    font-size: 0.875rem;
    color: #000;
    font-weight: 500;
}

.detail-sidebar__note {
    font-size: 0.875rem;
    border-top: 1px solid #979797;
    font-weight: 700;
    line-height: 1.4;
    padding: 20px 15px;
}

.detail-sidebar__price {
    color: var(--red);
    line-height: 1.4;
    text-align: center;
}

.detail-sidebar__price-num {
    font-size: 1.75rem;
    font-weight: 600;
}

.detail-sidebar__price-unit {
    font-size: 1.125rem;
}

.detail-sidebar__sgd {
    font-size: 1.125rem;
    font-weight: 600;
}

.detail-sidebar__price-num.-blur,
.detail-sidebar__sgd-num.-blur {
    filter: blur(5px);
}

.detail-sidebar__owners-guide {
    margin-left: auto;
    text-align: right;
    width: fit-content;
}

.detail-sidebar__owners-guide-ttl {
    font-size: 1.625rem;
    color: #5a6067;
    font-weight: 600;
    line-height: 1.4;
    margin-bottom: 30px;
    text-align: left;
}

.detail-sidebar__agent {
    font-size: 0.875rem;
    color: #000;
    display: flex;
    gap: 20px;
    margin-bottom: 24px;
}

.detail-sidebar__agent-ico {
    border-radius: 50%;
}

.detail-sidebar__agent-agency {
    font-size: 1.125rem;
    font-weight: 500;
}

.detail-sidebar__agent-name {
    font-size: 1.25rem;
    font-weight: 700;
}

.detail-sidebar__section {
    border-top: 1px solid #979797;
    margin-bottom: 25px;
}

.detail-sidebar__section-ttl {
    font-size: 1.125rem;
    color: #000;
    font-weight: 700;
    letter-spacing: 0.1em;
    line-height: 1.4;
    margin: 15px;
    text-transform: uppercase;
}

.detail-sidebar__section-txt {
    font-size: 0.875rem;
    line-height: 1.4;
    margin: 15px;
}

@media (max-width: 1024px) {
    .detail-sidebar {
        margin-right: 0;
        padding: 0 20px;
    }
}
.sidebar-accordion {
    border-top: 1px solid #979797;
    margin-bottom: 25px;
}
.sidebar-accordion summary {
    cursor: pointer;
    display: block;
    position: relative;
    transition: var(--transition);
}
.sidebar-accordion summary:hover {
    opacity: 0.7;
}
.sidebar-accordion summary::-webkit-details-marker {
    display: none;
}
.sidebar-accordion[open] .sidebar-accordion__ico {
    rotate: 90deg;
}

.sidebar-accordion__ttl {
    font-size: 1.125rem;
    color: #000;
    font-weight: 700;
    letter-spacing: 0.1em;
    line-height: 1.4;
    margin: 15px;
    text-transform: uppercase;
}

.sidebar-accordion__ico {
    rotate: -90deg;
    position: absolute;
    right: 10px;
    top: calc(50% - 12px);
    transition: var(--transition);
}

.sidebar-accordion__body {
    margin: 15px;
}

.prop-costs {
    margin-bottom: 30px;
}

.prop-costs__ttl {
    border-bottom: 1px solid #d8d8d8;
    font-weight: 700;
    letter-spacing: 1.5px;
    line-height: 1;
    margin-bottom: 20px;
    padding: 15px 0;
}

.prop-costs__list {
    font-size: 0.875rem;
}
.prop-costs__list dt {
    font-weight: 700;
}
.prop-costs__list dd {
    line-height: 1.4;
    margin-bottom: 20px;
}

.btn,
a.btn {
    font-size: 1.125rem;
    appearance: none;
    background: var(--btn-color);
    border: 0;
    border-radius: 6px;
    color: #fff;
    display: inline-block;
    font-weight: 500;
    line-height: 1;
    padding: 15px 16px;
    transition: var(--transition);
    vertical-align: middle;
    white-space: nowrap;
}
.btn:hover,
a.btn:hover {
    background: rgb(var(--btn-color-rgb) / 0.8);
}
.btn.-frame,
a.btn.-frame {
    background: #fff;
    border: 1px solid var(--btn-color);
    color: var(--btn-color);
}
.btn.-frame:hover,
a.btn.-frame:hover {
    background: var(--btn-color);
    color: #fff;
}
.btn.-small,
a.btn.-small {
    font-size: 1rem;
    border-radius: 32px;
    padding: 8px 16px;
}
.btn.-small-frame,
a.btn.-small-frame {
    font-size: 0.875rem;
    background: #fff;
    border: 1px solid var(--btn-color);
    border-radius: 28px;
    box-shadow: 0 2px 4px rgba(40, 44, 46, 0.08);
    color: var(--btn-color);
    font-weight: 600;
    padding: 12px 26px;
}
.btn.-small-frame:hover,
a.btn.-small-frame:hover {
    background: var(--btn-color);
    color: #fff;
}

/* ===== 未実装機能の Coming soon ボタン ===== */
.btn.-coming-soon,
.btn.-coming-soon:hover {
    background: #b9bec7;
    cursor: not-allowed;
    opacity: 1;
}
.btn__soon {
    display: block;
    font-size: 0.6875rem;
    font-weight: 400;
    margin-top: 4px;
}
.btn.-filter,
a.btn.-filter {
    font-size: 1rem;
    background: #fff;
    border: 1px solid var(--btn-color);
    color: var(--btn-color);
    padding: 8px 16px;
}
.btn.-filter:hover,
a.btn.-filter:hover {
    background: #eee;
}

.btn__ico {
    margin-right: 8px;
}

.input {
    font-size: 1rem;
    border: 1px solid #939292;
    border-radius: 4px;
    line-height: 1;
    padding: 12px;
    min-height: 48px;
    width: 100%;
}
.input::placeholder {
    color: #828282;
}

.select {
    display: inline-block;
    position: relative;
    width: 100%;
}
.select:after {
    content: url(../../img/propertybridge/ico-drop-down.svg);
    height: 24px;
    pointer-events: none;
    position: absolute;
    right: 12px;
    top: calc(50% - 12px);
    width: 24px;
}
.select.-blue:after {
    color: var(--btn-color);
    content: url(../../img/propertybridge/ico-arrow.svg);
    rotate: -90deg;
}
.select.-blue .select__item {
    font-size: 0.875rem;
    border-color: var(--btn-color);
    color: var(--btn-color);
    font-weight: 500;
}

.select__item {
    font-size: 1rem;
    appearance: none;
    border: 1px solid #939292;
    border-radius: 4px;
    color: #4f4f4f;
    line-height: 1;
    padding: 12px 36px 12px 12px;
    min-height: 48px;
    width: 100%;
}

.switch {
    background: #eee;
    border-radius: 30px;
    cursor: pointer;
    display: inline-block;
    height: 30px;
    overflow: hidden;
    position: relative;
    transition: var(--transition);
    width: 50px;
}
.switch:has(.switch__input:checked) {
    background: #3b4256;
}

.switch__input {
    display: none;
}

.switch__circle {
    background-color: #fff;
    border-radius: 50%;
    display: block;
    height: 26px;
    left: 2px;
    position: absolute;
    top: 2px;
    transition: var(--transition);
    width: 26px;
}

.switch__input:checked ~ .switch__circle {
    left: calc(100% - 26px - 2px);
}

.tabui {
    position: relative;
}

input[name="tabui-tab"] {
    display: none;
}

.tabui__tab {
    display: flex;
}

.tabui__label {
    cursor: pointer;
    display: block;
    font-size: 1rem;
    font-weight: bold;
    line-height: 1;
    padding: 16px 8px;
    transition: var(--transition);
}

.tabui__body {
    display: none;
    width: 100%;
}

#tab-a:checked ~ .tabui__tab #tab-a__label,
#tab-b:checked ~ .tabui__tab #tab-b__label {
    background: #eee;
}

#tab-a:checked ~ #tab-a__body,
#tab-b:checked ~ #tab-b__body {
    display: block;
}

.ul {
    padding-left: 1em;
}
.ul.-bullet li {
    line-height: 1.8;
    list-style-position: outside;
    list-style-type: disc;
}

.test {
    margin: 0 auto;
}

/**
 * Photo gallery dialog (detail Photos / Floor Plan)
 */
dialog.photo-gallery {
    background: #fff;
    border: 0;
    color: #212529;
    font-family: "Barlow", sans-serif;
    height: 100%;
    inset: 0;
    margin: auto;
    max-height: 100%;
    max-width: 100%;
    padding: 0;
    position: fixed;
    width: 100%;
}
dialog.photo-gallery[open] {
    display: flex;
    flex-direction: column;
}
dialog.photo-gallery::backdrop {
    background: rgba(33, 37, 41, 0.48);
    backdrop-filter: blur(2px);
}
.photo-gallery__shell {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    position: relative;
    transform: translateY(10px);
    transition:
        transform 0.18s ease,
        opacity 0.18s ease;
    width: 100%;
}
dialog.photo-gallery[open] .photo-gallery__shell {
    opacity: 1;
    transform: translateY(0);
}
dialog.photo-gallery.-lightbox-open .photo-gallery__shell {
    transform: none;
}
.photo-gallery__header {
    align-items: center;
    background: #fff;
    border-bottom: 1px solid #e8e8e8;
    display: flex;
    gap: 14px;
    padding: 14px 16px;
    z-index: 2;
}
.photo-gallery__back {
    align-items: center;
    background: #fff;
    border: 1px solid #d0d0d0;
    border-radius: 50%;
    box-shadow: 0 1px 2px rgba(40, 44, 46, 0.06);
    color: #212529;
    cursor: pointer;
    display: inline-flex;
    flex: 0 0 auto;
    height: 40px;
    justify-content: center;
    padding: 0;
    transition:
        background 0.12s ease,
        border-color 0.12s ease;
    width: 40px;
}
.photo-gallery__back:hover {
    background: #f6f7f9;
    border-color: #bdbdbd;
}
.photo-gallery__heading {
    flex: 1 1 auto;
    min-width: 0;
}
.photo-gallery__title {
    font-size: 17px;
    font-weight: 700;
    letter-spacing: 0.01em;
    line-height: 1.25;
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.photo-gallery__price {
    color: #6c757d;
    font-size: 13px;
    line-height: 1.4;
    margin: 3px 0 0;
}
.photo-gallery__price strong {
    color: #212529;
    font-weight: 600;
}
.photo-gallery__price-sgd {
    margin-left: 4px;
}
.photo-gallery__count {
    color: #6c757d;
    flex: 0 0 auto;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.02em;
    line-height: 1;
    margin: 0;
    white-space: nowrap;
}
.photo-gallery__tabs {
    background: #fff;
    border-bottom: 1px solid #e8e8e8;
    display: flex;
    gap: 8px;
    padding: 0 16px;
    z-index: 2;
}
.photo-gallery__tab {
    align-items: center;
    background: transparent;
    border: 0;
    border-bottom: 3px solid transparent;
    color: #8a8f95;
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    gap: 8px;
    margin-bottom: -1px;
    padding: 13px 4px 11px;
    transition:
        color 0.12s ease,
        border-color 0.12s ease;
}
.photo-gallery__tab-num {
    background: #eef1f6;
    border-radius: 999px;
    color: #5b6470;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    min-width: 1.5em;
    padding: 4px 7px;
    text-align: center;
}
.photo-gallery__tab.-active {
    border-bottom-color: #0048d9;
    color: #212529;
}
.photo-gallery__tab.-active .photo-gallery__tab-num {
    background: rgba(0, 72, 217, 0.12);
    color: #0048d9;
}
.photo-gallery__tab:hover {
    color: #212529;
}
.photo-gallery__body {
    background: #f4f5f7;
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}
.photo-gallery__panel {
    padding: 10px;
}
.photo-gallery__grid {
    display: grid;
    gap: 8px;
    grid-template-columns: 1fr 1fr;
}
.photo-gallery__item {
    background: #e5e7eb;
    border: 0;
    border-radius: 8px;
    cursor: pointer;
    display: block;
    margin: 0;
    overflow: hidden;
    padding: 0;
    position: relative;
    text-align: left;
    width: 100%;
}
.photo-gallery__item.-hero {
    grid-column: 1 / -1;
}
.photo-gallery__item img {
    display: block;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
    transition: transform 0.25s ease;
    width: 100%;
}
.photo-gallery__item.-hero img {
    aspect-ratio: 16 / 10;
}
.photo-gallery__item:not(.-hero) img {
    aspect-ratio: 1 / 1;
}
.photo-gallery__item.-plan img,
.photo-gallery__grid.-plans .photo-gallery__item img {
    background: #fff;
    object-fit: contain;
}
.photo-gallery__grid.-plans .photo-gallery__item:not(.-hero) img {
    aspect-ratio: 4 / 3;
}
@media (hover: hover) {
    .photo-gallery__item:hover img {
        transform: scale(1.02);
    }
}
@media (min-width: 768px) {
    dialog.photo-gallery {
        border-radius: 14px;
        box-shadow: 0 18px 48px rgba(40, 44, 46, 0.28);
        height: min(860px, 90vh);
        inset: 0;
        margin: auto;
        max-height: 90vh;
        max-width: 960px;
        overflow: hidden;
        position: fixed;
        width: min(960px, 94vw);
    }
    .photo-gallery__header {
        padding: 18px 22px;
    }
    .photo-gallery__title {
        font-size: 20px;
    }
    .photo-gallery__price {
        font-size: 14px;
    }
    .photo-gallery__tabs {
        gap: 18px;
        padding: 0 22px;
    }
    .photo-gallery__tab {
        font-size: 15px;
        padding: 15px 2px 12px;
    }
    .photo-gallery__panel {
        padding: 14px;
    }
    .photo-gallery__grid {
        gap: 10px;
    }
    .photo-gallery__item {
        border-radius: 10px;
    }
    .photo-gallery__item:not(.-hero) img {
        aspect-ratio: 4 / 3;
    }
}

/**
 * Photo lightbox (fullscreen enlarge inside gallery dialog)
 */
.photo-lightbox {
    background: #1c1e21;
    color: #fff;
    display: flex;
    flex-direction: column;
    inset: 0;
    position: absolute;
    z-index: 5;
}
.photo-lightbox[hidden] {
    display: none;
}
dialog.photo-gallery.-lightbox-open {
    border-radius: 0;
    height: 100%;
    max-height: 100%;
    max-width: 100%;
    width: 100%;
}
.photo-lightbox__header {
    align-items: center;
    display: flex;
    gap: 14px;
    padding: 14px 16px;
    position: relative;
    z-index: 2;
}
.photo-lightbox__back {
    align-items: center;
    background: #fff;
    border: 0;
    border-radius: 50%;
    color: #212529;
    cursor: pointer;
    display: inline-flex;
    flex: 0 0 auto;
    height: 40px;
    justify-content: center;
    padding: 0;
    width: 40px;
}
.photo-lightbox__back:hover {
    opacity: 0.9;
}
.photo-lightbox__heading {
    min-width: 0;
}
.photo-lightbox__title {
    font-size: 16px;
    font-weight: 700;
    line-height: 1.3;
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.photo-lightbox__price {
    color: rgba(255, 255, 255, 0.72);
    font-size: 13px;
    line-height: 1.4;
    margin: 2px 0 0;
}
.photo-lightbox__stage {
    align-items: center;
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    justify-content: center;
    min-height: 0;
    overflow: hidden;
    padding: 8px 56px 64px;
    width: 100%;
}
.photo-lightbox__frame {
    align-items: center;
    display: flex;
    flex: 1 1 auto;
    justify-content: center;
    min-height: 0;
    width: 100%;
}
.photo-lightbox__img {
    display: block;
    max-height: 100%;
    max-width: 100%;
    object-fit: contain;
    width: auto;
}
.photo-lightbox__caption {
    color: rgba(255, 255, 255, 0.92);
    flex: 0 0 auto;
    font-size: 14px;
    line-height: 1.45;
    margin: 12px 0 0;
    max-width: 40em;
    text-align: center;
}
.photo-lightbox__nav {
    align-items: center;
    background: rgba(255, 255, 255, 0.92);
    border: 0;
    border-radius: 50%;
    color: #212529;
    cursor: pointer;
    display: none;
    height: 44px;
    justify-content: center;
    padding: 0;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    z-index: 2;
}
dialog.photo-gallery.-lightbox-multi .photo-lightbox__nav {
    display: inline-flex;
}
.photo-lightbox__nav.-prev {
    left: 12px;
}
.photo-lightbox__nav.-next {
    right: 12px;
}
.photo-lightbox__nav.-next svg {
    transform: rotate(180deg);
}
.photo-lightbox__nav:hover {
    background: #fff;
}
.photo-lightbox__pager {
    background: rgba(0, 0, 0, 0.45);
    border-radius: 999px;
    bottom: 18px;
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    left: 50%;
    letter-spacing: 0.04em;
    line-height: 1;
    margin: 0;
    padding: 8px 12px;
    position: absolute;
    transform: translateX(-50%);
}
@media (min-width: 768px) {
    dialog.photo-gallery.-lightbox-open {
        border-radius: 14px;
        height: min(900px, 94vh);
        max-height: 94vh;
        max-width: 1100px;
        width: min(1100px, 96vw);
    }
    .photo-lightbox__header {
        padding: 18px 22px;
    }
    .photo-lightbox__title {
        font-size: 18px;
    }
    .photo-lightbox__nav.-prev {
        left: 20px;
    }
    .photo-lightbox__nav.-next {
        right: 20px;
    }
    .photo-lightbox__stage {
        padding: 12px 80px 64px;
    }
}

/**
 * Media Queries
 */
@media only screen and (max-width: 768px) {
    .test {
        margin: 0 10px;
    }
}

/**
 * Dialog common
 */
html:has(dialog[open]) {
    overflow: hidden;
}
dialog {
    border: none;
    border-radius: 8px;
    padding: 0;
    max-width: 480px;
    width: calc(100% - 32px);
    margin: 60px auto;
    overflow: visible;
}
dialog::backdrop {
    background: rgba(0, 0, 0, 0.6);
}
.dialog__close {
    background: none;
    border: none;
    cursor: pointer;
    color: #666;
    font-size: 1.25rem;
    line-height: 1;
    padding: 4px 8px;
}
.dialog__close:hover {
    color: #333;
}

/**
 * Login dialog
 */
.dialog-login .login__inner {
    position: relative;
    max-width: none;
}
.dialog-login__close {
    position: absolute;
    top: 16px;
    right: 16px;
}

/**
 * Enquiry dialog
 */
.dialog-enquiry {
    max-width: 560px;
}
.dialog-enquiry[open] {
    display: flex;
    flex-direction: column;
}
.enquiry__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #1a1a2e;
    border-radius: 8px 8px 0 0;
    padding: 16px 20px;
    flex-shrink: 0;
}
.enquiry__ttl {
    color: #fff;
    font-size: 1.125rem;
    font-weight: 700;
}
.enquiry__header .dialog__close {
    color: #fff;
    font-size: 1.5rem;
}
.enquiry__header .dialog__close:hover {
    color: #ccc;
}
.enquiry__scroll {
    padding: 12px 20px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.enquiry__alert {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    background: #fff3ef;
    border: 1px solid #f5c6b4;
    border-radius: 10px;
    color: #c0411a;
    font-size: 0.875rem;
    line-height: 1.5;
    padding: 14px 16px;
}
.enquiry__agent-info {
    font-size: 0.9375rem;
    color: #333;
    line-height: 1.5;
    padding-bottom: 12px;
    border-bottom: 1px solid #eee;
}
.enquiry__contact-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.enquiry__contact-ttl {
    font-size: 1.0625rem;
    font-weight: 700;
    color: #111;
}
.enquiry__edit-btn {
    background: none;
    border: 1px solid #ccc;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: #555;
    flex-shrink: 0;
    text-decoration: none;
}
.enquiry__edit-btn:hover {
    border-color: #888;
    color: #111;
}
.enquiry__form {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
/* contact-header・phone・email・note は全幅 */
.enquiry__contact-header,
.enquiry__form-group:has(#enquiry-phone),
.enquiry__form-group:has(#enquiry-email),
.enquiry__note {
    grid-column: 1 / -1;
}
.enquiry__form-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.enquiry__label {
    font-size: 0.875rem;
    font-weight: 600;
    color: #111;
}
.enquiry__input {
    background: #f0f1f3;
    border: none;
    border-radius: 10px;
    color: #333;
    font-size: 0.9375rem;
    line-height: 1;
    min-height: 44px;
    padding: 10px 14px;
    width: 100%;
}
.enquiry__input:focus {
    outline: 2px solid var(--btn-color);
    outline-offset: 0;
}
.enquiry__input.-disabled {
    color: #888;
    cursor: default;
}
.enquiry__tel {
    display: flex;
    align-items: center;
    background: #f0f1f3;
    border-radius: 10px;
    overflow: hidden;
    min-height: 44px;
}
.enquiry__tel-code {
    background: #e2e4e8;
    border-radius: 8px;
    color: #333;
    font-size: 0.875rem;
    font-weight: 500;
    margin: 6px 0 6px 8px;
    padding: 6px 12px;
    white-space: nowrap;
}
.enquiry__input.-tel {
    background: transparent;
    border-radius: 0;
    flex: 1;
    min-width: 0;
    min-height: auto;
    padding: 14px 12px;
}
.enquiry__note {
    font-size: 0.8125rem;
    color: #666;
    line-height: 1.5;
}
.enquiry__note a {
    color: #333;
    text-decoration: underline;
}
.enquiry__note a:hover {
    color: #000;
}
.enquiry__footer {
    border-top: 1px solid #eee;
    padding: 12px 20px;
    flex-shrink: 0;
}
.enquiry__submit {
    width: 100%;
    padding: 13px;
    font-size: 1rem;
}

/* Profile page */
.profile {
    padding: 48px 24px 80px;
    max-width: 740px;
    margin: 0 auto;
}
.profile__ttl {
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: 28px;
    color: #111;
}
.profile__banner {
    display: flex;
    align-items: center;
    gap: 12px;
    background: #cdd4da;
    border-radius: 12px;
    padding: 16px 20px;
    margin-bottom: 40px;
    font-size: 0.875rem;
    color: #333;
}
.profile__banner-icon {
    flex-shrink: 0;
}
.profile__banner-text {
    flex: 1;
}
.profile__banner-link {
    color: #111;
    font-weight: 600;
    text-decoration: underline;
}
.profile__banner-close {
    flex-shrink: 0;
    background: none;
    border: none;
    cursor: pointer;
    font-size: 1.25rem;
    color: #555;
    line-height: 1;
    padding: 0 4px;
}
.profile__section {
    margin-bottom: 40px;
}
.profile__section-ttl {
    font-size: 1.375rem;
    font-weight: 700;
    margin-bottom: 24px;
    color: #111;
}
.profile__form-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 24px;
}
.profile__label {
    font-size: 0.9375rem;
    font-weight: 600;
    color: #111;
}
.profile__field {
    font-size: 1rem;
    border: 1.5px solid #c8cdd4;
    border-radius: 14px;
    padding: 14px 18px;
    min-height: 54px;
    width: 100%;
    background: #fff;
    color: #111;
    outline: none;
    transition: border-color 0.15s;
}
.profile__field:focus {
    border-color: var(--btn-color, #555);
}
.profile__field:disabled {
    background: #f0f1f3;
    color: #888;
    cursor: default;
    border-color: #dde0e5;
}
.profile__field::placeholder {
    color: #aaa;
}
.profile__save {
    padding: 14px 52px;
}
@media (max-width: 767px) {
    .profile {
        padding: 32px 16px 60px;
    }
    .profile__ttl {
        font-size: 1.5rem;
    }
}

/* Legal pages (Privacy Policy / Terms of Service) */
.legal {
    padding: 56px 40px 80px;
    margin: 0 auto;
}
.legal__ttl {
    font-family: "Playfair Display", Georgia, "Times New Roman", serif;
    font-size: 4rem;
    font-weight: 700;
    color: #c4972a;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    line-height: 1.1;
    margin-bottom: 20px;
}
.legal__subtitle {
    font-size: 1rem;
    color: #555;
    line-height: 1.75;
    margin-bottom: 36px;
    max-width: 700px;
}
.legal__doc-title {
    font-family: "Playfair Display", Georgia, "Times New Roman", serif;
    font-size: 1.875rem;
    font-weight: 400;
    color: #1a1a2e;
    margin-bottom: 20px;
}
.legal__updated-box {
    background: #f5f3f0;
    border-left: 3px solid #c4972a;
    border-radius: 4px;
    padding: 14px 20px;
    margin-bottom: 40px;
    font-size: 0.9375rem;
    color: #555;
}
.legal__updated-box strong {
    color: #1a1a2e;
}
.legal__lead {
    font-size: 0.9375rem;
    color: #3a4a6b;
    line-height: 1.75;
    margin-bottom: 0;
    padding-bottom: 32px;
    border-bottom: 1px solid #e0dbd0;
}
.legal__lead a {
    color: #3a4a6b;
}
.legal__section {
    padding: 36px 0;
    border-bottom: 1px solid #e8e3d8;
}
.legal__section:last-child {
    border-bottom: none;
}
.legal__section-ttl {
    font-family: "Playfair Display", Georgia, "Times New Roman", serif;
    font-size: 1.75rem;
    font-weight: 400;
    color: #1a1a2e;
    margin-bottom: 16px;
    line-height: 1.3;
}
.legal__body {
    font-size: 0.9375rem;
    color: #3a4a6b;
    line-height: 1.75;
    margin-bottom: 12px;
}
.legal__list {
    font-size: 0.9375rem;
    color: #3a4a6b;
    line-height: 1.75;
    padding-left: 24px;
    margin-bottom: 12px;
    list-style-type: disc;
}
.legal__list > li {
    list-style-type: disc;
    margin-bottom: 8px;
}
.legal__ol {
    font-size: 0.9375rem;
    color: #3a4a6b;
    line-height: 1.75;
    padding-left: 24px;
    margin-bottom: 12px;
}
.legal__ol > li {
    list-style-type: decimal;
    margin-bottom: 8px;
}
.legal__ol-alpha {
    padding-left: 24px;
    margin-top: 8px;
}
.legal__ol-alpha > li {
    list-style-type: lower-alpha;
}
/* Terms: compact section headings */
.legal--doc .legal__section-ttl {
    font-family: inherit;
    font-size: 1rem;
    font-weight: 700;
    color: #111;
    margin-bottom: 12px;
}
.legal__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9375rem;
    margin-bottom: 12px;
}
.legal__table th,
.legal__table td {
    border: 1px solid #dde0e5;
    padding: 10px 14px;
    text-align: left;
    vertical-align: top;
    color: #3a4a6b;
    line-height: 1.6;
}
.legal__table th {
    background: #f5f1e8;
    font-weight: 600;
    color: #1a1a2e;
}
.legal__contact-block {
    background: #f5f3f0;
    border-radius: 10px;
    padding: 20px 24px;
    font-size: 0.9375rem;
    color: #3a4a6b;
    line-height: 1.75;
    margin-bottom: 12px;
}
.legal__contact-block strong {
    color: #1a1a2e;
    display: block;
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: 8px;
}
.legal__contact-block a {
    color: #3a4a6b;
}
.legal__card {
    background: #eef0f5;
    border-radius: 12px;
    padding: 24px 28px;
    margin-top: 32px;
}
.legal__card--warm {
    background: #f5f3f0;
}
.legal__card-ttl {
    font-size: 1rem;
    font-weight: 700;
    color: #1a1a2e;
    margin-bottom: 12px;
}
.legal__card .legal__body {
    margin-bottom: 6px;
}
@media (max-width: 767px) {
    .legal {
        padding: 32px 20px 60px;
        width: 100%;
    }
    .legal__ttl {
        font-size: 2.5rem;
    }
    .legal__section-ttl {
        font-size: 1.375rem;
    }
    .legal__doc-title {
        font-size: 1.5rem;
    }
    .legal__table {
        font-size: 0.875rem;
    }
}

.p-error {
    box-sizing: border-box;
    width: 100%;
    max-width: 1440px;
    margin: 0 auto;
    padding: 60px 30px 120px;
    font-family: "Barlow", sans-serif;
    color: #4e4e4e;
    overflow-x: clip;
}
.p-error *,
.p-error *::before,
.p-error *::after {
    box-sizing: border-box;
}
.p-error h1,
.p-error h2,
.p-error p {
    margin: 0;
}
@media (max-width: 1024px) {
    .p-error {
        padding: 50px 20px 90px;
    }
}
@media (max-width: 767px) {
    .p-error {
        padding: 40px 16px 60px;
    }
}
.p-error__kicker {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 40px !important;
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #222;
}
@media (max-width: 767px) {
    .p-error__kicker {
        margin-bottom: 24px !important;
    }
}
.p-error__kicker-bar {
    display: block;
    width: 40px;
    height: 2px;
    background: #0048d9;
}
.p-error__code {
    display: flex;
    font-size: clamp(160px, 30vw, 440px);
    font-weight: 700;
    line-height: 0.82;
    letter-spacing: -0.06em;
    color: #000;
}
.p-error__mask {
    display: block;
    overflow: hidden;
    padding: 0.02em 0.02em 0.04em 0;
}
.p-error__digit {
    display: block;
}
.p-error__digit.-blue {
    color: #0048d9;
}
.p-error__foot {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 40px 60px;
    align-items: end;
    margin-top: 50px;
    padding-top: 30px;
    border-top: 1px solid #bcbcbc;
}
@media (max-width: 1024px) {
    .p-error__foot {
        grid-template-columns: minmax(0, 1fr);
        gap: 30px;
    }
}
@media (max-width: 767px) {
    .p-error__foot {
        margin-top: 30px;
    }
}
.p-error__body {
    min-width: 0;
}
.p-error__title {
    margin-bottom: 20px !important;
    font-size: clamp(32px, 3.6vw, 52px);
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.015em;
    color: #000;
}
.p-error__text {
    max-width: 560px;
    font-size: 18px;
    line-height: 1.6;
    text-wrap: pretty;
}
@media (max-width: 767px) {
    .p-error__text {
        font-size: 16px;
    }
}
.p-error__btns {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    justify-content: flex-end;
}
@media (max-width: 1024px) {
    .p-error__btns {
        justify-content: flex-start;
    }
}
@media (max-width: 767px) {
    .p-error__btns {
        gap: 10px;
    }
    .p-error__btns .p-error-btn {
        flex: 1 1 100%;
    }
}
.p-error__contact {
    margin-top: 60px !important;
    font-size: 16px;
    line-height: 1.6;
}
.p-error__contact a {
    color: #00add1;
    transition: all 0.1s linear;
}
.p-error__contact a:hover {
    color: #cb0000;
}
@media (max-width: 767px) {
    .p-error__contact {
        margin-top: 40px !important;
    }
}

.p-error-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 15px 16px;
    border: 1px solid #0048d9;
    border-radius: 6px;
    background: #0048d9;
    font-family: inherit;
    font-size: 18px;
    font-weight: 500;
    line-height: 1;
    color: #fff;
    text-decoration: none;
    white-space: nowrap;
    transition: all 0.1s linear;
}
.p-error-btn:visited {
    color: #fff;
}
.p-error-btn:hover {
    background: rgba(0, 72, 217, 0.8);
    border-color: transparent;
    color: #fff;
}
.p-error-btn.-frame {
    background: #fff;
    color: #0048d9;
}
.p-error-btn.-frame:visited {
    color: #0048d9;
}
.p-error-btn.-frame:hover {
    background: #0048d9;
    border-color: #0048d9;
    color: #fff;
}

@keyframes pErrorDigitUp {
    from {
        transform: translateY(105%);
    }
    to {
        transform: none;
    }
}
@keyframes pErrorFadeUp {
    from {
        opacity: 0;
        transform: translateY(24px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}
.js-error-digit.is-intro {
    animation: pErrorDigitUp 1s cubic-bezier(0.2, 0.7, 0.1, 1) backwards;
    animation-delay: var(--delay, 0s);
}

.js-error-line.is-intro {
    animation: pErrorFadeUp 0.8s cubic-bezier(0.2, 0.7, 0.1, 1) backwards;
    animation-delay: var(--delay, 0s);
}

@media (prefers-reduced-motion: reduce) {
    .js-error-digit.is-intro,
    .js-error-line.is-intro {
        animation: none !important;
    }
}
.btn,
a.btn {
    font-size: 1.125rem;
    appearance: none;
    background: var(--btn-color);
    border: 0;
    border-radius: 6px;
    color: #fff;
    display: inline-block;
    font-weight: 500;
    line-height: 1;
    padding: 15px 16px;
    transition: var(--transition);
    vertical-align: middle;
    white-space: nowrap;
}
.btn:hover,
a.btn:hover {
    background: rgb(var(--btn-color-rgb) / 0.8);
}
.btn.-frame,
a.btn.-frame {
    background: #fff;
    border: 1px solid var(--btn-color);
    color: var(--btn-color);
}
.btn.-frame:hover,
a.btn.-frame:hover {
    background: var(--btn-color);
    color: #fff;
}
.btn.-small,
a.btn.-small {
    font-size: 1rem;
    border-radius: 32px;
    padding: 8px 16px;
}
.btn.-small-frame,
a.btn.-small-frame {
    font-size: 0.875rem;
    background: #fff;
    border: 1px solid var(--btn-color);
    border-radius: 28px;
    box-shadow: 0 2px 4px rgba(40, 44, 46, 0.08);
    color: var(--btn-color);
    font-weight: 600;
    padding: 12px 26px;
}
.btn.-small-frame:hover,
a.btn.-small-frame:hover {
    background: var(--btn-color);
    color: #fff;
}
.btn.-filter,
a.btn.-filter {
    font-size: 1rem;
    background: #fff;
    border: 1px solid var(--btn-color);
    color: var(--btn-color);
    padding: 8px 16px;
}
.btn.-filter:hover,
a.btn.-filter:hover {
    background: #eee;
}

.btn__ico {
    margin-right: 8px;
}

.input {
    font-size: 1rem;
    border: 1px solid #939292;
    border-radius: 4px;
    line-height: 1;
    padding: 12px;
    min-height: 48px;
    width: 100%;
}
.input::placeholder {
    color: #828282;
}

.select {
    display: inline-block;
    position: relative;
    width: 100%;
}
.select:after {
    content: url(../../img/propertybridge/ico-drop-down.svg);
    height: 24px;
    pointer-events: none;
    position: absolute;
    right: 12px;
    top: calc(50% - 12px);
    width: 24px;
}
.select.-blue:after {
    color: var(--btn-color);
    content: url(../../img/propertybridge/ico-arrow.svg);
    rotate: -90deg;
}
.select.-blue .select__item {
    font-size: 0.875rem;
    border-color: var(--btn-color);
    color: var(--btn-color);
    font-weight: 500;
}

.select__item {
    font-size: 1rem;
    appearance: none;
    border: 1px solid #939292;
    border-radius: 4px;
    color: #4f4f4f;
    line-height: 1;
    padding: 12px 36px 12px 12px;
    min-height: 48px;
    width: 100%;
}

.switch {
    background: #eee;
    border-radius: 30px;
    cursor: pointer;
    display: inline-block;
    height: 30px;
    overflow: hidden;
    position: relative;
    transition: var(--transition);
    width: 50px;
}
.switch:has(.switch__input:checked) {
    background: #3b4256;
}

.switch__input {
    display: none;
}

.switch__circle {
    background-color: #fff;
    border-radius: 50%;
    display: block;
    height: 26px;
    left: 2px;
    position: absolute;
    top: 2px;
    transition: var(--transition);
    width: 26px;
}

.switch__input:checked ~ .switch__circle {
    left: calc(100% - 26px - 2px);
}

.tabui {
    position: relative;
}

input[name="tabui-tab"] {
    display: none;
}

.tabui__tab {
    display: flex;
}

.tabui__label {
    cursor: pointer;
    display: block;
    font-size: 1rem;
    font-weight: bold;
    line-height: 1;
    padding: 16px 8px;
    transition: var(--transition);
}

.tabui__body {
    display: none;
    width: 100%;
}

#tab-a:checked ~ .tabui__tab #tab-a__label,
#tab-b:checked ~ .tabui__tab #tab-b__label {
    background: #eee;
}

#tab-a:checked ~ #tab-a__body,
#tab-b:checked ~ #tab-b__body {
    display: block;
}

.ul {
    padding-left: 1em;
}
.ul.-bullet li {
    line-height: 1.8;
    list-style-position: outside;
    list-style-type: disc;
}

.test {
    margin: 0 auto;
}

/**
 * Media Queries
 */
@media only screen and (max-width: 768px) {
    .test {
        margin: 0 10px;
    }
}
