:root{
	--navy: #0f172a;
	--navy-2: #1e293b;
	--white: #ffffff;
	--cream: #f8fafc;
	--gold: #b8905a;
	--gold-light: #d4af7a;
	--emerald: #0f766e;
	--line-green: #06C755;
	--text: #1e293b;
	--text-muted: #64748b;
	--text-faint: #94a3b8;
	--border: #e2e8f0;
	--font-jp: "Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
	--font-en: "Inter","Noto Sans JP",sans-serif;
	--font-logo: "Montserrat","Inter",sans-serif;
}

.estate-body{
	margin:0;
	font-family:var(--font-en);
	color:var(--text);
	background:var(--white);
	line-height:1.75;
	-webkit-font-smoothing:antialiased;
}
.estate-body *{box-sizing:border-box;}
.estate-body img{max-width:100%;display:block;}
.estate-wrap{max-width:1180px;margin:0 auto;padding:0 24px;}
.estate-main{display:block;}
a{text-decoration:none;color:inherit;}

/* Buttons (legacy generic, still used on front-page CTAs) */
.estate-btn{
	display:inline-block;padding:15px 30px;border-radius:10px;font-weight:700;
	font-size:15px;transition:all .2s ease;border:2px solid transparent;text-align:center;
	letter-spacing:.01em;
}
.estate-btn--gold{background:var(--gold);color:#fff;}
.estate-btn--gold:hover{background:var(--gold-light);}
.estate-btn--outline{background:transparent;border-color:var(--navy);color:var(--navy);}
.estate-btn--outline:hover{background:var(--navy);color:#fff;}
.estate-btn--outline-invert{background:transparent;border-color:rgba(255,255,255,.7);color:#fff;}
.estate-btn--outline-invert:hover{background:#fff;color:var(--navy);}
.estate-btn--lg{padding:17px 36px;font-size:16px;}
.estate-btn--block{display:block;width:100%;margin-bottom:10px;}

/* Header */
.estate-header{
	background:#fff;position:sticky;top:0;z-index:100;
	border-bottom:1px solid var(--border);
}
.estate-header__inner{display:flex;align-items:center;justify-content:space-between;height:78px;}
.estate-logo{display:flex;align-items:center;gap:10px;color:var(--navy);font-family:var(--font-logo);font-weight:700;font-size:17px;letter-spacing:.05em;}
.estate-logo__mark{
	width:36px;height:36px;border-radius:8px;background:linear-gradient(135deg,var(--gold-light),var(--gold));color:#fff;
	display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:800;font-family:var(--font-logo);
}
.estate-nav{display:flex;gap:34px;}
.estate-nav a{color:var(--text-muted);font-weight:600;font-size:14.5px;transition:color .15s;}
.estate-nav a:hover{color:var(--navy);}
.estate-header__tel{text-align:right;}
.estate-header__tel-label{display:block;font-size:11px;color:var(--text-faint);font-weight:500;}
.estate-header__tel-number{display:block;font-size:19px;font-weight:700;color:var(--navy);font-family:var(--font-en);letter-spacing:.02em;}

/* Hero */
.estate-hero{position:relative;overflow:hidden;color:#fff;padding:110px 0 130px;isolation:isolate;}
.estate-hero__media{position:absolute;inset:0;z-index:0;}
.estate-hero__image,.estate-hero__video{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;}
.estate-hero__overlay{
	position:absolute;inset:0;
	background:linear-gradient(180deg, rgba(15,23,42,.8) 0%, rgba(15,23,42,.62) 42%, rgba(15,23,42,.9) 100%);
}
.estate-hero__inner{position:relative;z-index:1;text-align:center;}
.estate-hero__eyebrow{color:var(--gold-light);font-weight:700;letter-spacing:.06em;margin:0 0 16px;font-size:14px;}
.estate-hero__title{font-size:46px;line-height:1.35;margin:0 0 20px;font-weight:800;color:#fff;font-family:var(--font-jp);letter-spacing:.01em;text-shadow:0 2px 18px rgba(0,0,0,.35);}
.estate-hero__lead{color:#e2e8f0;font-size:16px;max-width:580px;margin:0 auto 44px;}
.estate-hero__search{max-width:940px;margin:0 auto;}

/* Search form */
.estate-search{
	background:#fff;border-radius:1rem;padding:30px;
	box-shadow:0 25px 50px -12px rgba(0,0,0,.25);
	border:1px solid rgba(226,232,240,.8);
	text-align:left;
}
.estate-search__row{display:flex;gap:18px;flex-wrap:wrap;align-items:flex-end;margin-bottom:16px;}
.estate-search__row:last-child{margin-bottom:0;}
.estate-search__field{flex:1;min-width:160px;}
.estate-search__field--wide{flex:2;min-width:260px;}
.estate-search__field label{display:block;font-size:12px;color:var(--text-muted);font-weight:700;margin-bottom:8px;}
.estate-search select{
	width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:10px;
	font-size:14px;background:#f8fafc;color:var(--text);font-family:var(--font-en);
	transition:border-color .15s ease, background .15s ease;
}
.estate-search select:hover,
.estate-search select:focus{border-color:#cbd5e1;background:#fff;outline:none;}
.estate-search__submit{
	flex:0 0 auto;white-space:nowrap;
	background:#0f172a;color:#fff;border-color:#0f172a;
	transition:background .18s ease, border-color .18s ease, transform .12s ease;
}
.estate-search__submit:hover{background:#d97706;border-color:#d97706;transform:translateY(-1px);}
.estate-checks{
	display:flex;flex-wrap:wrap;gap:10px 20px;padding:14px 16px;
	background:#f8fafc;border-radius:10px;border:1px solid var(--border);
}
.estate-check{font-size:13px;display:flex;align-items:center;gap:7px;color:var(--text);cursor:pointer;line-height:1.4;}
.estate-check input{accent-color:var(--gold);width:15px;height:15px;flex:0 0 auto;}

/* Sections */
.estate-section{padding:76px 0;}
.estate-section--muted{background:var(--cream);}
.estate-section__title{font-size:28px;font-weight:800;margin:0 0 34px;color:var(--navy);position:relative;padding-bottom:16px;font-family:var(--font-jp);}
.estate-section__title::after{content:"";position:absolute;left:0;bottom:0;width:52px;height:4px;background:var(--gold);border-radius:2px;}
.estate-section__head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:34px;}
.estate-section__head .estate-section__title{margin-bottom:0;}
.estate-link{color:var(--emerald);font-weight:700;font-size:14px;}

/* Category chips */
.estate-categories__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px;}
.estate-category-chip{
	background:var(--cream);border:1px solid var(--border);border-radius:12px;padding:24px 14px;
	text-align:center;font-weight:700;font-size:14px;color:var(--navy);transition:all .2s ease;
}
.estate-category-chip:hover{border-color:var(--gold);background:#fff;box-shadow:0 10px 24px rgba(15,23,42,.08);transform:translateY(-2px);}
.estate-category-chip__icon{display:block;font-size:28px;margin-bottom:10px;}

/* Property grid & card */
.property-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.property-grid--archive{margin-top:8px;}
.property-card{
	display:block;background:#fff;border:1px solid var(--border);border-radius:16px;overflow:hidden;
	transition:all .25s ease;box-shadow:0 2px 10px rgba(15,23,42,.05);
}
.property-card:hover{box-shadow:0 20px 40px rgba(15,23,42,.14);transform:translateY(-4px);border-color:transparent;}
.property-card__media{
	height:190px;background:linear-gradient(135deg,#334155,#0f172a);background-size:cover;background-position:center;
	position:relative;
}
.property-card__badge{
	position:absolute;top:12px;left:12px;background:rgba(15,23,42,.85);backdrop-filter:blur(4px);color:#fff;font-size:12px;
	font-weight:700;padding:6px 13px;border-radius:20px;letter-spacing:.02em;
}
.property-card__body{padding:20px 20px 24px;}
.property-card__price{color:var(--navy);font-size:23px;font-weight:800;margin-bottom:8px;font-family:var(--font-en);}
.property-card__title{font-size:15px;font-weight:700;margin:0 0 10px;color:var(--navy);line-height:1.5;min-height:2.4em;font-family:var(--font-jp);}
.property-card__meta{display:flex;gap:14px;font-size:13px;color:var(--text-muted);margin-bottom:6px;}
.property-card__access{font-size:12.5px;color:var(--text-muted);margin-bottom:12px;}
.property-card__tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px;}
.property-card__tag{background:var(--cream);color:var(--navy);font-size:11px;font-weight:700;padding:5px 11px;border-radius:14px;border:1px solid var(--border);}
.property-card__cta{width:100%;padding:11px;font-size:13px;border-radius:8px;}

/* About */
.estate-about{display:grid;grid-template-columns:1.2fr 1fr;gap:52px;align-items:start;}
.estate-about__list{list-style:none;padding:0;margin:0 0 40px;}
.estate-about__list li{padding:16px 0 16px 30px;border-bottom:1px solid var(--border);position:relative;}
.estate-about__list li::before{content:"✓";position:absolute;left:0;top:16px;color:var(--emerald);font-weight:800;}
.estate-table{width:100%;border-collapse:collapse;font-size:14px;}
.estate-table th{text-align:left;padding:13px 10px;color:var(--text-muted);width:110px;border-bottom:1px solid var(--border);font-weight:600;vertical-align:top;}
.estate-table td{padding:13px 10px;border-bottom:1px solid var(--border);}
.estate-about__map{border-radius:16px;overflow:hidden;box-shadow:0 10px 28px rgba(15,23,42,.1);}

/* CTA (front page) */
.estate-cta{background:linear-gradient(120deg,var(--navy),#26344a);color:#fff;padding:64px 0;}
.estate-cta__inner{display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap;}
.estate-cta h2{font-size:26px;margin:0 0 10px;color:#fff;font-family:var(--font-jp);}
.estate-cta p{color:#cbd5e1;max-width:520px;margin:0;}
.estate-cta__actions{display:flex;gap:14px;flex-wrap:wrap;}

/* Footer */
.estate-footer{background:var(--navy);color:#cbd5e1;padding:64px 0 0;}
.estate-footer__inner{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px;padding-bottom:44px;}
.estate-logo--footer{color:#fff;margin-bottom:14px;}
.estate-footer__desc{font-size:13.5px;color:#94a3b8;}
.estate-footer h4{color:#fff;font-size:14px;margin:0 0 14px;}
.estate-footer p{font-size:13.5px;color:#94a3b8;}
.estate-footer__bottom{border-top:1px solid #334155;padding:22px 24px;text-align:center;font-size:12.5px;color:#64748b;}

/* Archive */
.estate-archive-hero{background:var(--cream);padding:54px 0 42px;border-bottom:1px solid var(--border);}
.estate-archive-hero__title{font-size:30px;font-weight:800;color:var(--navy);margin:0 0 8px;font-family:var(--font-jp);}
.estate-archive-hero__lead{color:var(--text-muted);margin:0 0 26px;}
.estate-result-count{color:var(--text-muted);font-size:14px;margin-bottom:22px;}
.estate-no-results{padding:60px 0;text-align:center;color:var(--text-muted);}
.estate-pagination{margin-top:44px;text-align:center;}
.estate-pagination .page-numbers{display:inline-block;padding:9px 15px;margin:0 3px;border:1px solid var(--border);border-radius:8px;color:var(--navy);font-weight:600;}
.estate-pagination .page-numbers.current{background:var(--navy);color:#fff;border-color:var(--navy);}

/* Breadcrumb */
.estate-breadcrumb{font-size:.75rem;color:var(--text-faint);padding:26px 0 14px;}
.estate-breadcrumb a{color:var(--text-faint);}
.estate-breadcrumb a:hover{color:var(--emerald);}
.estate-breadcrumb__sep{margin:0 6px;}

/* Property heading + pill */
.property-detail__heading{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:22px;}
.property-detail__title{font-size:1.5rem;font-weight:700;color:var(--navy);margin:0;font-family:var(--font-jp);}
.estate-pill{background:#f1f5f9;color:#334155;font-size:.75rem;font-weight:700;padding:5px 14px;border-radius:999px;letter-spacing:.01em;}

/* Gallery viewer */
.property-gallery{margin-bottom:36px;}
.property-gallery__main{
	position:relative;border-radius:16px;overflow:hidden;
	box-shadow:0 10px 25px -5px rgba(0,0,0,.08);
	background:var(--cream);aspect-ratio:16/9;
}
.property-gallery__main img{width:100%;height:100%;object-fit:cover;cursor:zoom-in;}
.property-gallery__zoom{
	position:absolute;right:16px;top:16px;background:rgba(15,23,42,.72);color:#fff;border:none;
	border-radius:999px;padding:9px 16px;font-size:12.5px;font-weight:600;display:flex;align-items:center;gap:6px;
	cursor:pointer;backdrop-filter:blur(4px);
}
.property-gallery__zoom:hover{background:rgba(15,23,42,.9);}
.property-gallery__caption{
	position:absolute;left:16px;bottom:16px;background:rgba(15,23,42,.6);color:#fff;
	font-size:12.5px;padding:7px 14px;border-radius:8px;backdrop-filter:blur(4px);
}
.property-gallery__thumbs{display:flex;gap:10px;margin-top:12px;overflow-x:auto;padding-bottom:4px;}
.property-gallery__thumb{
	flex:0 0 auto;width:96px;height:68px;border-radius:8px;overflow:hidden;border:2px solid transparent;
	padding:0;cursor:pointer;background:none;opacity:.75;transition:all .15s ease;
}
.property-gallery__thumb img{width:100%;height:100%;object-fit:cover;}
.property-gallery__thumb:hover{opacity:1;}
.property-gallery__thumb.is-active{border-color:var(--navy);opacity:1;}

/* Lightbox */
.property-lightbox{
	position:fixed;inset:0;background:rgba(15,23,42,.94);z-index:1000;
	display:flex;align-items:center;justify-content:center;flex-direction:column;
}
.property-lightbox[hidden]{display:none;}
.property-lightbox__stage{max-width:90vw;max-height:82vh;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.property-lightbox__stage img{max-width:90vw;max-height:82vh;object-fit:contain;transition:transform .25s ease;cursor:zoom-in;}
.property-lightbox__close{position:absolute;top:22px;right:26px;background:none;border:none;color:#fff;font-size:34px;cursor:pointer;line-height:1;}
.property-lightbox__nav{
	position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.1);color:#fff;border:none;
	width:48px;height:48px;border-radius:50%;font-size:28px;cursor:pointer;display:flex;align-items:center;justify-content:center;
}
.property-lightbox__nav:hover{background:rgba(255,255,255,.2);}
.property-lightbox__nav--prev{left:20px;}
.property-lightbox__nav--next{right:20px;}
.property-lightbox__caption{color:#e2e8f0;font-size:13px;margin-top:16px;}

/* Price highlight */
.property-price-highlight{margin:4px 0 24px;font-family:var(--font-en);}
.property-price-highlight__num{font-size:2.4rem;font-weight:800;color:var(--navy);letter-spacing:-.01em;}
.property-price-highlight__unit{font-size:1.1rem;font-weight:700;color:var(--navy);margin-left:2px;}
.property-price-highlight__sub{font-size:.85rem;color:var(--text-muted);margin-left:8px;}

/* Spec grid */
.property-spec-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:32px;}
.property-spec-card{background:var(--cream);border-radius:12px;padding:16px 14px;display:flex;flex-direction:column;gap:4px;}
.property-spec-card__icon{font-size:19px;}
.property-spec-card__label{font-size:11.5px;color:var(--text-muted);font-weight:600;}
.property-spec-card__value{font-size:13.5px;color:var(--navy);font-weight:700;}

/* Property detail */
.property-detail{padding-bottom:80px;}
.property-detail__layout{display:grid;grid-template-columns:2fr 1fr;gap:48px;margin-top:8px;align-items:start;}
.property-detail__highlights{background:var(--cream);border-radius:14px;padding:22px 26px;margin-bottom:30px;}
.property-detail__highlights h2{font-size:16px;margin:0 0 10px;}
.property-detail__highlights ul{margin:0;padding-left:20px;}
.property-detail__content{margin-bottom:30px;color:var(--text);}
.property-detail h2{font-size:19px;font-weight:800;color:var(--navy);margin:38px 0 18px;font-family:var(--font-jp);}
.estate-table--spec th{width:160px;}
.property-detail__floorplan{border-radius:12px;border:1px solid var(--border);}
.property-detail__tags{margin-bottom:10px;}
.property-detail__map{border-radius:12px;overflow:hidden;border:1px solid var(--border);}
.property-detail__sidebar{position:sticky;top:100px;}
.property-detail__inquiry-box{background:var(--cream);border:1px solid var(--border);border-radius:16px;padding:28px;text-align:center;}
.property-detail__inquiry-box h3{font-size:16px;margin:0 0 14px;color:var(--navy);font-family:var(--font-jp);}
.property-detail__inquiry-price{font-size:22px;font-weight:800;color:var(--navy);margin:0 0 20px;font-family:var(--font-en);}
.property-detail__inquiry-note{font-size:12px;color:var(--text-muted);margin:14px 0 0;}

/* CTA buttons (LINE / call) */
.property-cta-group{display:flex;flex-direction:column;gap:10px;}
.estate-cta-btn{
	display:flex;align-items:center;justify-content:center;gap:9px;
	padding:15px 20px;border-radius:12px;font-weight:700;font-size:14.5px;
	box-shadow:0 8px 18px rgba(15,23,42,.12);transition:transform .15s ease, box-shadow .15s ease;
}
.estate-cta-btn:hover{transform:translateY(-1px);box-shadow:0 12px 22px rgba(15,23,42,.18);}
.estate-cta-btn--line{background:var(--line-green);color:#fff;}
.estate-cta-btn--call{background:var(--navy);color:#fff;}
.estate-cta-btn--floating{box-shadow:none;padding:12px 16px;font-size:13px;flex:1;}

.property-detail__floating-cta{
	display:none;position:fixed;bottom:0;left:0;right:0;z-index:200;
	background:#fff;border-top:1px solid var(--border);padding:10px 14px;
	gap:10px;box-shadow:0 -6px 18px rgba(15,23,42,.08);
}

@media (max-width:900px){
	.estate-nav{display:none;}
	.estate-hero__title{font-size:32px;}
	.property-grid{grid-template-columns:repeat(2,1fr);}
	.estate-about{grid-template-columns:1fr;}
	.estate-footer__inner{grid-template-columns:1fr 1fr;}
	.property-detail__layout{grid-template-columns:1fr;}
	.property-detail__sidebar{position:static;}
	.property-detail__floating-cta{display:flex;}
	.property-detail{padding-bottom:96px;}
	.property-spec-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:600px){
	.property-grid{grid-template-columns:1fr;}
	.estate-search__row{flex-direction:column;align-items:stretch;}
	.estate-hero{padding:70px 0 90px;}
	.estate-hero__title{font-size:27px;}
	.property-spec-grid{grid-template-columns:repeat(2,1fr);}
}
