:root{
	--navy: #0f172a;
	--navy-2: #0b0f17;
	--navy-3: #1a2744;
	--white: #ffffff;
	--slate: #f8fafc;
	--slate-border: #e2e8f0;
	--gold: #a8823c;
	--gold-light: #c7a563;
	--text: #1e293b;
	--text-muted: #64748b;
	--text-faint: #94a3b8;
	--font-mincho: "Shippori Mincho","Noto Serif JP",serif;
	--font-en: "Cormorant Garamond","Noto Serif JP",serif;
	--font-sans: "Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
	--radius: 14px;
	--radius-sm: 8px;
}

.estate-body{
	margin:0;
	font-family:var(--font-sans);
	font-weight:300;
	color:var(--text);
	background:var(--white);
	line-height:1.9;
	-webkit-font-smoothing:antialiased;
	letter-spacing:.01em;
}
.estate-body *{box-sizing:border-box;}
.estate-body img{max-width:100%;display:block;}
.estate-wrap{max-width:1220px;margin:0 auto;padding:0 28px;}
.estate-main{display:block;}
.estate-body a{text-decoration:none;color:inherit;}
.estate-en{font-family:var(--font-en);font-style:italic;}

/* Buttons */
.estate-btn{
	display:inline-block;padding:15px 34px;border-radius:var(--radius-sm);font-weight:500;
	font-size:13px;transition:all .25s ease;border:1px solid var(--navy);color:var(--navy);
	letter-spacing:.1em;text-align:center;background:transparent;font-family:var(--font-sans);text-transform:uppercase;
}
.estate-btn--gold{background:var(--gold);color:#fff;border-color:var(--gold);box-shadow:0 8px 20px -6px rgba(168,130,60,.5);}
.estate-btn--gold:hover{background:var(--navy);border-color:var(--navy);}
.estate-btn--outline{border-color:var(--navy);}
.estate-btn--outline:hover{background:var(--navy);color:#fff;}
.estate-btn--outline-invert{border-color:rgba(255,255,255,.65);color:#fff;}
.estate-btn--outline-invert:hover{background:#fff;color:var(--navy);}
.estate-btn--lg{padding:18px 44px;font-size:13.5px;}
.estate-btn--block{display:block;width:100%;text-align:center;margin-bottom:12px;}

/* Header */
.estate-header{
	background:rgba(15,23,42,.94);position:fixed;top:0;left:0;right:0;z-index:100;
	backdrop-filter:blur(6px);
}
.estate-header__inner{display:flex;align-items:center;justify-content:space-between;height:84px;}
.estate-logo{display:flex;align-items:center;gap:12px;color:#fff;}
.estate-logo__mark{
	width:38px;height:38px;border:1px solid var(--gold-light);border-radius:50%;color:var(--gold-light);
	display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:600;font-family:var(--font-mincho);
}
.estate-logo__text{font-family:var(--font-mincho);font-weight:600;font-size:16px;letter-spacing:.06em;color:#fff;}
.estate-nav{display:flex;gap:36px;}
.estate-nav a{color:#e2e8f0;font-weight:400;font-size:13px;letter-spacing:.06em;transition:color .2s;}
.estate-nav a:hover{color:var(--gold-light);}
.estate-header__tel{text-align:right;}
.estate-header__tel-label{display:block;font-size:10.5px;color:#94a3b8;font-weight:500;letter-spacing:.06em;}
.estate-header__tel-number{display:block;font-size:18px;font-weight:600;color:#fff;font-family:var(--font-en);letter-spacing:.02em;}

/* Hero */
.estate-hero{position:relative;overflow:hidden;color:#fff;min-height:88vh;display:flex;align-items:center;isolation:isolate;padding-top:84px;}
.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(11,15,23,.55) 0%, rgba(15,23,42,.55) 45%, rgba(11,15,23,.92) 100%);
}
.estate-hero__inner{position:relative;z-index:1;text-align:center;width:100%;padding:60px 0 120px;}
.estate-hero__eyebrow{color:var(--gold-light);font-weight:500;letter-spacing:.3em;margin:0 0 24px;font-size:12px;font-family:var(--font-en);text-transform:uppercase;}
.estate-hero__title{font-size:52px;line-height:1.5;margin:0 0 24px;font-weight:700;color:#fff;font-family:var(--font-mincho);letter-spacing:.02em;text-shadow:0 2px 22px rgba(0,0,0,.4);}
.estate-hero__lead{color:#e2e8f0;font-size:16px;max-width:560px;margin:0 auto 8px;font-weight:400;}

/* Floating search card, overlapping hero bottom edge */
.estate-hero-search-float{position:relative;z-index:2;margin-top:-84px;}
.estate-hero-search-float .estate-search{max-width:1120px;margin:0 auto;}

/* Search form */
.estate-search{
	background:#fff;border-radius:var(--radius);padding:32px;
	box-shadow:0 30px 60px -15px rgba(15,23,42,.35);
	border:1px solid var(--slate-border);
	text-align:left;
}
.estate-search__row{display:flex;gap:20px;flex-wrap:wrap;align-items:flex-end;margin-bottom:18px;}
.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:11.5px;color:var(--text-muted);font-weight:600;margin-bottom:9px;letter-spacing:.04em;}
.estate-search select{
	width:100%;padding:13px 14px;border:1px solid var(--slate-border);border-radius:var(--radius-sm);
	font-size:14px;background:var(--slate);color:var(--text);font-family:var(--font-sans);
	transition:border-color .15s ease, background .15s ease;
}
.estate-search select:hover,
.estate-search select:focus{border-color:var(--gold);background:#fff;outline:none;}
.estate-search__submit{flex:0 0 auto;white-space:nowrap;}
.estate-checks{
	display:flex;flex-wrap:wrap;gap:10px 22px;padding:16px 18px;
	background:var(--slate);border-radius:var(--radius-sm);border:1px solid var(--slate-border);
}
.estate-check{font-size:13px;display:flex;align-items:center;gap:8px;color:var(--text);cursor:pointer;}
.estate-check input{accent-color:var(--gold);width:15px;height:15px;flex:0 0 auto;}

/* Archive-page dark search variant */
.estate-archive-hero .estate-search{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.16);backdrop-filter:blur(6px);}
.estate-archive-hero .estate-search__field label{color:#cbd5e1;}
.estate-archive-hero .estate-search select{background:rgba(255,255,255,.06);color:#fff;border-color:rgba(255,255,255,.2);}
.estate-archive-hero .estate-checks{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.14);}
.estate-archive-hero .estate-check{color:#e2e8f0;}

/* Sections & rhythm */
.estate-section{padding:110px 0;}
.estate-section--muted{background:var(--slate);}
.estate-section--dark{background:var(--navy);color:#e2e8f0;}
.estate-section__title{font-size:32px;font-weight:700;margin:0 0 28px;color:var(--navy);font-family:var(--font-mincho);line-height:1.6;letter-spacing:.01em;}
.estate-section__title--invert{color:#fff;}
.estate-section__head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:48px;gap:20px;flex-wrap:wrap;}
.estate-section__head .estate-section__title{margin-bottom:0;}
.estate-eyebrow{color:var(--gold);font-weight:500;letter-spacing:.26em;font-size:12px;margin:0 0 14px;font-family:var(--font-en);text-transform:uppercase;}
.estate-eyebrow--invert{color:var(--gold-light);}
.estate-link{color:var(--navy);font-weight:500;font-size:13px;letter-spacing:.06em;border-bottom:1px solid var(--gold);padding-bottom:3px;}
.estate-link--invert{color:#fff;border-color:var(--gold-light);}

/* Category chips */
.estate-categories__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;}
.estate-category-chip{
	background:var(--white);border:1px solid var(--slate-border);border-radius:var(--radius);padding:26px 16px;
	text-align:center;font-weight:600;font-size:14px;color:var(--navy);transition:all .2s ease;
	box-shadow:0 2px 10px rgba(15,23,42,.04);
}
.estate-category-chip:hover{border-color:var(--gold);box-shadow:0 14px 30px rgba(15,23,42,.1);transform:translateY(-3px);}

/* 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(--slate-border);border-radius:var(--radius);overflow:hidden;
	transition:all .3s ease;box-shadow:0 4px 16px rgba(15,23,42,.06);
}
.property-card:hover{box-shadow:0 24px 44px rgba(15,23,42,.16);transform:translateY(-5px);border-color:transparent;}
.property-card:hover .property-card__media img,
.property-card:hover .property-card__media{transform:scale(1.06);}
.property-card__media{
	aspect-ratio:4/3;background:linear-gradient(135deg,#26344a,#0b0f17);background-size:cover;background-position:center;
	position:relative;overflow:hidden;transition:transform .5s ease;
}
.property-card__badge{
	position:absolute;top:14px;left:14px;background:rgba(15,23,42,.85);backdrop-filter:blur(4px);color:#fff;font-size:11.5px;
	font-weight:600;padding:7px 16px;border-radius:999px;letter-spacing:.04em;
}
.property-card__body{padding:24px 22px 26px;}
.property-card__price{color:var(--navy);font-size:23px;font-weight:700;margin-bottom:10px;font-family:var(--font-en);}
.property-card__title{font-size:15px;font-weight:600;margin:0 0 12px;color:var(--navy);line-height:1.6;min-height:2.4em;font-family:var(--font-sans);}
.property-card__meta{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--text-muted);margin-bottom:8px;}
.property-card__access{font-size:12px;color:var(--text-muted);margin-bottom:16px;}
.property-card__tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px;}
.property-card__tag{background:var(--slate);color:var(--navy);font-size:11px;font-weight:600;padding:6px 13px;border-radius:999px;border:1px solid var(--slate-border);}
.property-card__cta{width:100%;padding:12px;font-size:12.5px;border-radius:var(--radius-sm);}

/* Editorial feature blocks */
.estate-feature{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;}
.estate-feature--reverse{direction:rtl;}
.estate-feature--reverse > *{direction:ltr;}
.estate-feature__media{border-radius:var(--radius);overflow:hidden;box-shadow:0 24px 50px -12px rgba(15,23,42,.25);}
.estate-feature__media img{aspect-ratio:4/3;object-fit:cover;}
.estate-feature__text{padding:70px 64px;}
.estate-feature--dark{background:var(--navy);color:#e2e8f0;}
.estate-feature--dark .estate-feature__media{border-radius:0;box-shadow:none;}
.estate-feature--dark .estate-feature__text p{color:#cbd5e1;}
.estate-check-list{list-style:none;margin:26px 0 0;padding:0;}
.estate-check-list li{padding:14px 0 14px 26px;border-top:1px solid var(--slate-border);position:relative;font-size:14.5px;color:var(--text-muted);}
.estate-section--dark .estate-check-list li{border-top-color:rgba(255,255,255,.12);color:#cbd5e1;}
.estate-check-list li::before{content:"—";position:absolute;left:0;color:var(--gold);}

/* About */
.estate-about{display:grid;grid-template-columns:1.2fr 1fr;gap:0;align-items:stretch;border-radius:var(--radius);overflow:hidden;box-shadow:0 4px 20px rgba(15,23,42,.06);border:1px solid var(--slate-border);}
.estate-about__text{padding:56px;background:#fff;}
.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(--slate-border);position:relative;}
.estate-about__list li::before{content:"✓";position:absolute;left:0;top:16px;color:var(--gold);font-weight:700;}
.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(--slate-border);font-weight:600;vertical-align:top;}
.estate-table td{padding:13px 10px;border-bottom:1px solid var(--slate-border);}
.estate-about__map{min-height:100%;}
.estate-about__map iframe{height:100% !important;min-height:420px;}

/* CTA (front page) */
.estate-cta{background:linear-gradient(120deg,var(--navy),var(--navy-3));color:#fff;padding:76px 0;}
.estate-cta__inner{display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap;}
.estate-cta h2{font-size:27px;margin:0 0 12px;color:#fff;font-family:var(--font-mincho);font-weight:700;}
.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-2);color:#94a3b8;padding:76px 0 0;}
.estate-footer__inner{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px;padding-bottom:48px;}
.estate-logo--footer{color:#fff;margin-bottom:16px;}
.estate-footer__desc{font-size:13px;color:#7c8aa0;line-height:1.9;}
.estate-footer h4{color:#e2e8f0;font-size:13px;margin:0 0 16px;letter-spacing:.06em;font-weight:600;}
.estate-footer p{font-size:13px;color:#7c8aa0;line-height:1.9;}
.estate-footer__bottom{border-top:1px solid rgba(255,255,255,.08);padding:24px;text-align:center;font-size:11.5px;color:#5c6a80;}

/* Archive hero */
.estate-archive-hero{background:linear-gradient(160deg,var(--navy),var(--navy-2));color:#fff;padding:170px 0 60px;}
.estate-archive-hero__title{font-size:32px;font-weight:700;color:#fff;margin:0 0 10px;font-family:var(--font-mincho);}
.estate-archive-hero__lead{color:#cbd5e1;margin:0 0 30px;}
.estate-result-count{color:var(--text-muted);font-size:13px;margin-bottom:26px;}
.estate-no-results{padding:80px 0;text-align:center;color:var(--text-muted);}
.estate-pagination{margin-top:54px;text-align:center;}
.estate-pagination .page-numbers{display:inline-block;padding:10px 16px;margin:0 3px;border:1px solid var(--slate-border);border-radius:var(--radius-sm);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:150px 0 16px;}
.estate-breadcrumb a{color:var(--text-faint);}
.estate-breadcrumb a:hover{color:var(--gold);}
.estate-breadcrumb__sep{margin:0 6px;}

/* Property heading + pill */
.property-detail__heading{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:24px;}
.property-detail__title{font-size:1.7rem;font-weight:700;color:var(--navy);margin:0;font-family:var(--font-mincho);}
.estate-pill{background:var(--slate);color:var(--navy);font-size:.75rem;font-weight:600;padding:6px 16px;border-radius:999px;letter-spacing:.02em;border:1px solid var(--slate-border);}

/* Gallery viewer */
.property-gallery{margin-bottom:40px;}
.property-gallery__main{
	position:relative;border-radius:var(--radius);overflow:hidden;
	box-shadow:0 10px 30px -8px rgba(15,23,42,.15);
	background:var(--slate);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,.75);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,.92);}
.property-gallery__caption{
	position:absolute;left:16px;bottom:16px;background:rgba(15,23,42,.65);color:#fff;
	font-size:12.5px;padding:7px 14px;border-radius:var(--radius-sm);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:100px;height:70px;border-radius:var(--radius-sm);overflow:hidden;border:2px solid transparent;
	padding:0;cursor:pointer;background:none;opacity:.7;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(--gold);opacity:1;}

/* Lightbox */
.property-lightbox{
	position:fixed;inset:0;background:rgba(11,15,23,.96);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;border-radius:4px;}
.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 26px;padding-bottom:24px;border-bottom:1px solid var(--slate-border);font-family:var(--font-en);}
.property-price-highlight__num{font-size:2.5rem;font-weight:700;color:var(--navy);letter-spacing:-.01em;}
.property-price-highlight__unit{font-size:1.1rem;font-weight:600;color:var(--navy);margin-left:2px;}
.property-price-highlight__sub{font-size:.85rem;color:var(--text-muted);margin-left:8px;font-family:var(--font-sans);}

/* Spec grid */
.property-spec-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:34px;}
.property-spec-card{background:var(--slate);border-radius:var(--radius-sm);padding:18px 16px;display:flex;flex-direction:column;gap:6px;border:1px solid var(--slate-border);}
.property-spec-card__icon{font-size:18px;}
.property-spec-card__label{font-size:11px;color:var(--text-muted);font-weight:600;}
.property-spec-card__value{font-size:14px;color:var(--navy);font-weight:700;font-family:var(--font-mincho);}

/* Property detail */
.property-detail{padding-bottom:100px;}
.property-detail__layout{display:grid;grid-template-columns:2fr 1fr;gap:60px;margin-top:8px;align-items:start;}
.property-detail__highlights{background:var(--slate);border-radius:var(--radius);padding:26px 30px;margin-bottom:34px;border:1px solid var(--slate-border);}
.property-detail__highlights h2{font-size:16px;margin:0 0 12px;font-family:var(--font-mincho);}
.property-detail__highlights ul{margin:0;padding-left:20px;color:var(--text-muted);font-size:14px;}
.property-detail__content{margin-bottom:34px;color:var(--text);}
.property-detail h2{font-size:19px;font-weight:700;color:var(--navy);margin:44px 0 20px;font-family:var(--font-mincho);}
.estate-table--spec th{width:160px;}
.property-detail__floorplan{border-radius:var(--radius-sm);border:1px solid var(--slate-border);}
.property-detail__tags{margin-bottom:12px;}
.property-detail__map{border-radius:var(--radius);overflow:hidden;border:1px solid var(--slate-border);}
.property-detail__sidebar{position:sticky;top:120px;}
.property-detail__inquiry-box{background:var(--slate);border:1px solid var(--slate-border);border-radius:var(--radius);padding:32px;text-align:center;}
.property-detail__inquiry-box h3{font-size:16px;margin:0 0 16px;color:var(--navy);font-family:var(--font-mincho);}
.property-detail__inquiry-price{font-size:22px;font-weight:700;color:var(--gold);margin:0 0 22px;font-family:var(--font-en);}
.property-detail__inquiry-note{font-size:11.5px;color:var(--text-muted);margin:16px 0 0;line-height:1.8;}

/* 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:var(--radius-sm);font-weight:600;font-size:14px;
	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:#06C755;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(--slate-border);padding:10px 14px;
	gap:10px;box-shadow:0 -6px 18px rgba(15,23,42,.08);
}

@media (max-width:1000px){
	.estate-nav{display:none;}
	.estate-hero__title{font-size:34px;}
	.property-grid{grid-template-columns:repeat(2,1fr);}
	.estate-about,.estate-feature{grid-template-columns:1fr;}
	.estate-feature--reverse{direction:ltr;}
	.estate-feature__text{padding:48px 32px;}
	.estate-about__text{padding:40px;}
	.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{min-height:76vh;}
	.estate-hero__title{font-size:28px;}
	.estate-section{padding:70px 0;}
	.property-spec-grid{grid-template-columns:repeat(2,1fr);}
}
