
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Shippori+Mincho:wght@600;700&family=Noto+Sans+JP:wght@400;500;700;900&display=swap');

:root{
  /* Palette Ref: Deep Forest Luxury (client mock) */
  --paper:#FFFFFF;
  --paper-soft:#F8F7F3;
  --ink:#203B34;
  --ink-soft:#68756F;
  --forest:#00894C;
  --forest-deep:#073C30;
  --lime:#C8B890;
  --mid:#0A5C48;
  --line:rgba(32,59,52,0.12);
  --grad:linear-gradient(120deg, #0A5C48 0%, #073C30 55%, #052D25 100%);
  --grad-soft:linear-gradient(135deg, rgba(0,137,76,.10) 0%, rgba(7,60,48,.06) 100%);
  --line-color:#06C755;
  --gold:#A89060;
}
/*
  Color candidates (swap into :root to try):

  B) Cool Teal — urban / Tokyo
  --forest:#2F6B66;
  --forest-deep:#1F4A47;
  --lime:#A8D9C8;
  --mid:#3F8A82;
  --grad:linear-gradient(120deg, #B8E4D6 0%, #4A9A8E 48%, #2A5F5A 100%);
  --grad-soft:linear-gradient(135deg, rgba(168,217,200,.28) 0%, rgba(47,107,102,.08) 100%);

  C) Fresh Mid Green — clearer brand green, not neon
  --forest:#3B7A4E;
  --forest-deep:#2A5A3A;
  --lime:#B8D96A;
  --mid:#4C8F60;
  --grad:linear-gradient(120deg, #D4E88A 0%, #5A9E6C 48%, #356B45 100%);
  --grad-soft:linear-gradient(135deg, rgba(184,217,106,.24) 0%, rgba(59,122,78,.08) 100%);
*/

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:'Noto Sans JP', sans-serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.75;
  font-weight:400;
  font-size:14.5px;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}
button,select,input{font-family:inherit;}
:focus-visible{outline:2px solid var(--forest); outline-offset:2px;}
.wrap{max-width:1120px;margin:0 auto;padding:0 28px;}
.tabular{font-variant-numeric:tabular-nums;}

/* utility */
.utility{
  background:var(--forest-deep);
  color:rgba(255,255,255,.86);
  font-size:12px;
  font-weight:500;
}
.utility .wrap{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding:8px 28px;
  flex-wrap:wrap;
}
.utility a{color:#fff;}
.utility a:hover{color:var(--lime);}
.utility-right{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.line-badge{
  display:inline-flex;align-items:center;gap:6px;
  background:var(--line-color);color:#fff;
  padding:4px 10px;font-size:11px;font-weight:700;
}
.line-badge svg{width:12px;height:12px;}

/* header */
header{
  position:sticky;top:0;z-index:100;
  background:rgba(255,255,255,.97);
  border-bottom:1px solid var(--line);
  backdrop-filter:saturate(1.2) blur(8px);
}
.header-row{
  display:flex;align-items:center;justify-content:space-between;
  padding-top:14px;padding-bottom:14px;gap:20px;
}
.wordmark{display:flex;flex-direction:column;align-items:center;line-height:1.1;}
.wordmark .main{
  font-family:'Shippori Mincho', serif;
  font-size:20px;font-weight:700;letter-spacing:.08em;color:var(--ink);
}
.wordmark .sub{
  font-size:10px;font-weight:500;letter-spacing:.4em;margin-right:-.4em;color:var(--ink-soft);margin-top:3px;
}
nav{display:flex;gap:0;}
nav a{
  font-size:13.5px;font-weight:500;
  padding:10px 14px;color:var(--ink);
}
nav a:hover{color:var(--forest);}
.header-cta{
  font-size:13px;font-weight:700;
  padding:10px 18px;
  background:var(--forest-deep);color:#fff;
}
.header-cta:hover{background:var(--forest);}
@media (max-width:900px){ nav{display:none;} }

/* page lead — photo + green gradient */
.page-lead{
  position:relative;
  overflow:hidden;
  color:#fff;
  padding:96px 0 80px;
  min-height:340px;
  display:flex;
  align-items:center;
  background:var(--forest-deep);
}
.page-lead-photo{
  position:absolute;
  inset:0;
  z-index:0;
}
.page-lead-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 40%;
  transform:scale(1.02);
}
.page-lead::before{
  content:'';
  position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(105deg,
      rgba(12,36,24,.92) 0%,
      rgba(22,61,42,.82) 32%,
      rgba(42,107,69,.45) 58%,
      rgba(197,222,74,.18) 82%,
      rgba(197,222,74,.08) 100%
    );
  pointer-events:none;
}
.page-lead::after{
  content:'';
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg, rgba(12,36,24,.2) 0%, transparent 40%, rgba(12,36,24,.35) 100%);
  pointer-events:none;
}
.page-lead .wrap{position:relative;z-index:2;width:100%;}
.page-lead .en{
  font-size:11px;font-weight:700;letter-spacing:.22em;
  opacity:.9;margin-bottom:14px;
}
.page-lead h1{
  font-size:clamp(28px,4vw,42px);
  font-weight:900;
  letter-spacing:.04em;
  line-height:1.35;
}
.page-lead p{
  margin-top:16px;
  max-width:460px;
  font-size:14.5px;
  font-weight:500;
  line-height:1.85;
  color:rgba(255,255,255,.92);
}
@media (max-width:640px){
  .page-lead{padding:72px 0 60px;min-height:0;}
  .page-lead::before{
    background:linear-gradient(180deg,
      rgba(12,36,24,.9) 0%,
      rgba(22,61,42,.78) 45%,
      rgba(42,107,69,.55) 100%
    );
  }
}

/* stats under lead */
.stats-bar{
  background:var(--paper);
  border-bottom:1px solid var(--line);
}
.stats-row{
  display:grid;
  grid-template-columns:repeat(3,1fr);
}
.stat-cell{
  padding:22px 8px;
  text-align:center;
  border-right:1px solid var(--line);
}
.stat-cell:last-child{border-right:none;}
.stat-num{
  font-size:clamp(16px,2vw,22px);font-weight:900;color:var(--forest);
  letter-spacing:.02em;line-height:1.35;
}
.stat-num span{font-size:13px;font-weight:700;margin-left:2px;}
.stat-label{
  margin-top:6px;font-size:12px;font-weight:500;color:var(--ink-soft);
}
@media (max-width:640px){
  .stats-row{grid-template-columns:1fr;}
  .stat-cell{border-right:none;border-bottom:1px solid var(--line);text-align:left;padding-left:4px;}
}

/* section commons */
.section{padding:64px 0;}
.section-head{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:20px;margin-bottom:28px;flex-wrap:wrap;
}
.section-head h2{
  font-size:22px;font-weight:900;letter-spacing:.03em;line-height:1.4;
}
.section-head .sub{
  font-size:13px;font-weight:500;color:var(--ink-soft);margin-top:6px;
}
.more-link{
  font-size:13px;font-weight:700;color:var(--forest);
  border-bottom:1px solid var(--forest);padding-bottom:2px;
  white-space:nowrap;
}
.more-link:hover{opacity:.7;}

/* quick search — primary UI */
.search-block{
  margin-top:40px;
  position:relative;z-index:2;
  padding-bottom:8px;
  scroll-margin-top:24px;
}
#search-area,
#search-station,
#search-layout,
#search-features{
  scroll-margin-top:88px;
}
.search-card{
  background:var(--paper);
  border:1px solid var(--line);
  box-shadow:0 10px 30px rgba(12,36,24,.06);
}
.search-card .card-title{
  padding:16px 22px;
  border-bottom:1px solid var(--line);
  font-size:13px;font-weight:700;letter-spacing:.06em;
  color:var(--forest);
  background:var(--grad-soft);
}
.search-grid{
  display:grid;
  grid-template-columns:1.1fr 1fr 1fr auto;
  border-bottom:1px solid var(--line);
}
.search-grid--secondary{
  grid-template-columns:repeat(3,1fr);
  border-bottom:1px solid var(--line);
}
.search-cell{
  padding:16px 20px;
  border-right:1px solid var(--line);
}
.search-cell:last-child{border-right:none;}
.search-cell label{
  display:block;font-size:11px;font-weight:700;
  letter-spacing:.06em;color:var(--ink-soft);margin-bottom:8px;
}
.search-cell select{
  width:100%;border:none;background:transparent;
  font-size:15px;font-weight:700;color:var(--ink);
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23121A16' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right center;
  padding-right:18px;
}
.search-more-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:12px 20px;
  border-bottom:1px solid var(--line);
  background:var(--paper);
}
.search-more-toggle{
  border:0;
  background:transparent;
  padding:0;
  cursor:pointer;
  font-size:13px;
  font-weight:800;
  color:var(--forest-deep);
  letter-spacing:.04em;
  text-decoration:underline;
  text-underline-offset:3px;
}
.search-more-toggle:hover{color:var(--forest);}
.search-more-toggle.is-open{text-decoration:none;}
.search-more{
  border-bottom:1px solid var(--line);
  background:var(--paper-soft);
}
.search-more[hidden]{display:none !important;}
.search-features__head{
  padding:14px 22px 0;
  font-size:11px;font-weight:700;
  letter-spacing:.06em;color:var(--ink-soft);
}
.search-features__body{
  padding:12px 22px 18px;
  display:grid;
  gap:16px;
}
.search-check-label{
  margin:0 0 8px;
  font-size:12px;
  font-weight:800;
  color:var(--forest-deep);
}
.search-checks{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.search-check{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:7px 10px;
  border:1px solid var(--line);
  background:var(--paper);
  font-size:12.5px;
  font-weight:600;
  cursor:pointer;
  user-select:none;
}
.search-check:has(input:checked){
  border-color:var(--forest);
  background:#eef5f0;
  color:var(--forest-deep);
}
.search-check input{
  width:14px;
  height:14px;
  accent-color:var(--forest-deep);
}
.search-reset{
  font-size:13px;
  font-weight:700;
  color:var(--ink-soft);
  text-decoration:underline;
  text-underline-offset:3px;
}
.search-reset:hover{color:var(--forest);}
.search-submit{
  border:none;cursor:pointer;
  background:var(--forest-deep);color:#fff;
  font-size:14px;font-weight:700;
  padding:0 28px;min-width:140px;
  border-bottom:3px solid var(--lime);
}
.search-submit:hover{background:var(--forest);}
@media (max-width:900px){
  .search-grid{grid-template-columns:1fr 1fr;}
  .search-grid--secondary{grid-template-columns:1fr 1fr;}
  .search-cell{border-bottom:1px solid var(--line);}
  .search-submit{grid-column:1/-1;padding:16px;min-width:0;}
}
@media (max-width:600px){
  .search-grid,
  .search-grid--secondary{grid-template-columns:1fr;}
  .search-more-bar{flex-wrap:wrap;}
}

/* directory links */
.dir-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  margin-top:28px;
}
.dir-item{
  background:var(--paper);
  padding:18px 20px;
  display:flex;align-items:center;justify-content:space-between;
  gap:12px;
  font-size:14px;font-weight:700;
  transition:background .15s ease;
}
.dir-item:hover{background:var(--paper-soft);}
.dir-item span{
  font-size:11px;font-weight:500;color:var(--ink-soft);letter-spacing:.04em;
}
@media (max-width:700px){ .dir-grid{grid-template-columns:1fr;} }

/* property cards */
.pgrid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}
.pcard{background:var(--paper);display:block;}
.pcard:hover .pname{color:var(--forest);}
.pmedia{
  aspect-ratio:4/3;
  overflow:hidden;
  position:relative;
  background:var(--paper-soft);
}
.pmedia img{
  width:100%;height:100%;object-fit:contain;
  transition:transform .45s ease;
}
.pcard:hover .pmedia img{transform:scale(1.04);}
.pbadge{
  position:absolute;left:0;top:0;
  background:var(--forest-deep);color:#fff;
  font-size:10px;font-weight:700;letter-spacing:.06em;
  padding:6px 10px;
}
.pbody{padding:16px 2px 4px;}
.parea{
  font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--mid);
}
.pname{
  margin-top:6px;
  font-size:16px;font-weight:900;letter-spacing:.02em;line-height:1.45;
}
.pmeta{
  margin-top:12px;
  display:flex;justify-content:space-between;align-items:baseline;
  gap:12px;
  padding-top:12px;
  border-top:1px solid var(--line);
  font-size:12.5px;color:var(--ink-soft);font-weight:500;
}
.price{
  font-size:15px;font-weight:900;color:var(--ink);
  letter-spacing:.01em;
}
@media (max-width:900px){ .pgrid{grid-template-columns:1fr;} }

/* feature / trust */
.feature-split{
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:48px;
  align-items:start;
}
.feature-copy .en{
  font-size:11px;font-weight:700;letter-spacing:.18em;color:var(--mid);
  margin-bottom:12px;
}
.feature-copy h2{
  font-size:clamp(22px,3vw,28px);
  font-weight:900;letter-spacing:.03em;line-height:1.45;
}
.feature-copy p{
  margin-top:16px;
  font-size:14px;font-weight:400;color:var(--ink-soft);
  max-width:420px;line-height:1.85;
}
.fact-list{border-top:2px solid var(--ink);}
.fact-row{
  display:grid;
  grid-template-columns:1fr auto;
  gap:20px;
  padding:18px 0;
  border-bottom:1px solid var(--line);
  align-items:baseline;
}
.fact-row .k{font-size:14px;font-weight:500;color:var(--ink-soft);}
.fact-row .v{font-size:15px;font-weight:900;color:var(--forest);white-space:nowrap;}
@media (max-width:800px){ .feature-split{grid-template-columns:1fr;} }

/* service tiles */
.service-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.service-item{
  background:var(--paper);
  padding:28px 24px;
}
.service-item .num{
  font-size:12px;font-weight:700;letter-spacing:.12em;color:var(--mid);
  margin-bottom:14px;
}
.service-item h3{
  font-size:16px;font-weight:900;letter-spacing:.02em;margin-bottom:10px;
}
.service-item p{
  font-size:13.5px;font-weight:400;color:var(--ink-soft);line-height:1.8;
}
@media (max-width:800px){ .service-grid{grid-template-columns:1fr;} }

/* topics */
.topics{border-top:1px solid var(--line);}
.topic-row{
  display:grid;
  grid-template-columns:88px 88px 1fr;
  gap:16px;
  align-items:baseline;
  padding:16px 0;
  border-bottom:1px solid var(--line);
  font-size:14px;
}
.topic-row .date{font-size:12.5px;font-weight:500;color:var(--ink-soft);}
.topic-row .tag{font-size:11px;font-weight:700;color:var(--mid);letter-spacing:.04em;}
.topic-row .title{font-weight:500;}
.topic-row:hover .title{color:var(--forest);}
@media (max-width:640px){
  .topic-row{grid-template-columns:72px 1fr;row-gap:4px;}
  .topic-row .tag{display:none;}
}

/* office teaser */
.office-band{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:0;
  border:1px solid var(--line);
  overflow:hidden;
}
.office-photos{
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:4px;
  background:var(--line);
}
.office-photos img{width:100%;height:100%;object-fit:cover;min-height:160px;}
.office-photos .wide{grid-column:1/-1;aspect-ratio:16/9;max-height:220px;}
.office-copy{
  padding:40px 36px;
  background:var(--paper-soft);
  display:flex;flex-direction:column;justify-content:center;
}
.office-copy .en{
  font-size:11px;font-weight:700;letter-spacing:.18em;color:var(--mid);
  margin-bottom:12px;
}
.office-copy h2{
  font-size:22px;font-weight:900;letter-spacing:.03em;line-height:1.45;
}
.office-copy p{
  margin-top:14px;font-size:14px;color:var(--ink-soft);line-height:1.8;
}
.office-meta{
  margin-top:22px;
  font-size:13px;font-weight:500;color:var(--ink);
  line-height:1.9;
}
.office-meta strong{font-weight:700;}
.office-copy .go{
  margin-top:24px;
  display:inline-block;
  font-size:13px;font-weight:700;
  border-bottom:1px solid var(--ink);padding-bottom:2px;
  width:fit-content;
}
@media (max-width:860px){
  .office-band{grid-template-columns:1fr;}
}

/* CTA */
.cta{
  background:var(--grad);
  color:#fff;
  position:relative;
}
.cta::before{
  content:'';
  position:absolute;inset:0;
  background:rgba(12,36,24,.28);
}
.cta-inner{
  position:relative;z-index:1;
  padding-top:56px;padding-bottom:56px;
  display:flex;justify-content:space-between;align-items:center;
  gap:28px;flex-wrap:wrap;
}
.cta h2{
  font-size:clamp(20px,2.8vw,26px);
  font-weight:900;letter-spacing:.03em;line-height:1.5;
}
.cta p{
  margin-top:10px;font-size:13.5px;font-weight:500;
  color:rgba(255,255,255,.88);
}
.cta-actions{display:flex;gap:10px;flex-wrap:wrap;}
.btn{
  padding:13px 22px;
  font-size:13.5px;font-weight:700;
  border:1px solid rgba(255,255,255,.55);
  color:#fff;
  text-align:center;
}
.btn.solid{
  background:#fff;color:var(--forest-deep);border-color:#fff;
}
.btn.solid:hover{filter:brightness(.96);}
.btn.line{
  background:var(--line-color);border-color:var(--line-color);
  display:inline-flex;align-items:center;gap:8px;
}
.btn.ghost:hover{background:rgba(255,255,255,.1);}

/* footer */
footer{
  padding:48px 0 24px;
  background:var(--forest-deep);
  color:rgba(255,255,255,.72);
}
.footer-top{
  display:flex;justify-content:space-between;gap:36px;flex-wrap:wrap;
  padding-bottom:28px;border-bottom:1px solid rgba(255,255,255,.12);
}
.footer-word{display:flex;flex-direction:column;align-items:center;}
.footer-word .main{
  font-family:'Shippori Mincho', serif;
  color:#fff;font-size:18px;font-weight:700;letter-spacing:.08em;
}
.footer-word .sub{
  margin-top:4px;font-size:10px;font-weight:500;letter-spacing:.35em;margin-right:-.35em;color:var(--lime);
}
.footer-cols{display:flex;gap:48px;flex-wrap:wrap;}
.footer-col .label{
  display:block;color:#fff;font-size:11px;font-weight:700;
  letter-spacing:.1em;margin-bottom:12px;
}
.footer-col a{
  display:block;font-size:13px;font-weight:500;
  margin-bottom:8px;color:rgba(255,255,255,.7);
}
.footer-col a:hover{color:#fff;}
.footer-license{
  padding-top:18px;font-size:11.5px;font-weight:500;line-height:1.7;
  color:rgba(255,255,255,.55);
}
.footer-bottom{
  display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;
  padding-top:16px;font-size:11.5px;font-weight:500;
  color:rgba(255,255,255,.45);
}


/* subpage lead (grad) */
.page-lead--simple{
  background:var(--grad);
  color:#fff;
  padding:48px 0 44px;
  min-height:0;
  display:block;
  position:relative;
  overflow:hidden;
}
.page-lead--simple::before{display:none;content:none;}
.page-lead--simple::after{
  content:'';
  position:absolute;inset:0;
  background:linear-gradient(90deg, rgba(12,36,24,.35) 0%, rgba(12,36,24,.08) 55%, transparent 100%);
  pointer-events:none;
}
.page-lead--simple .wrap{position:relative;z-index:1;}
.page-lead--simple .en{opacity:.85;margin-bottom:12px;}
.page-lead--simple h1{font-size:clamp(26px,3.6vw,36px);}
.page-lead--simple p{display:none;}

/* ===== extras about ===== */

:root{
  /* Palette Ref: Deep Forest Luxury (client mock) */
  --paper:#FFFFFF;
  --paper-soft:#F8F7F3;
  --ink:#203B34;
  --ink-soft:#68756F;
  --forest:#00894C;
  --forest-deep:#073C30;
  --lime:#C8B890;
  --mid:#0A5C48;
  --line:rgba(32,59,52,0.12);
  --grad:linear-gradient(120deg, #0A5C48 0%, #073C30 55%, #052D25 100%);
  --grad-soft:linear-gradient(135deg, rgba(0,137,76,.10) 0%, rgba(7,60,48,.06) 100%);
  --line-color:#06C755;
  --gold:#A89060;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{
  font-family:'Noto Sans JP', sans-serif;
  color:var(--ink);background:var(--paper);
  line-height:1.75;font-weight:400;font-size:14.5px;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}
:focus-visible{outline:2px solid var(--forest);outline-offset:2px;}
.wrap{max-width:1120px;margin:0 auto;padding:0 28px;}

.utility{background:var(--forest-deep);color:rgba(255,255,255,.86);font-size:12px;font-weight:500;}
.utility .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:8px 28px;flex-wrap:wrap;}
.utility a{color:#fff;}
.utility a:hover{color:var(--lime);}
.utility-right{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.line-badge{display:inline-flex;align-items:center;gap:6px;background:var(--line-color);color:#fff;padding:4px 10px;font-size:11px;font-weight:700;}
.line-badge svg{width:12px;height:12px;}

header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);backdrop-filter:saturate(1.2) blur(8px);}
.header-row{display:flex;align-items:center;justify-content:space-between;padding-top:14px;padding-bottom:14px;gap:20px;}
.wordmark{display:flex;flex-direction:column;align-items:center;line-height:1.1;}
.wordmark .main{font-family:'Shippori Mincho', serif;font-size:20px;font-weight:700;letter-spacing:.08em;color:var(--ink);}
.wordmark .sub{font-size:10px;font-weight:500;letter-spacing:.4em;margin-right:-.4em;color:var(--ink-soft);margin-top:3px;}
nav{display:flex;gap:0;}
nav a{font-size:13.5px;font-weight:500;padding:10px 14px;color:var(--ink);}
nav a:hover,nav a.active{color:var(--forest);}
nav a.active{font-weight:700;}
.header-cta{font-size:13px;font-weight:700;padding:10px 18px;background:var(--forest-deep);color:#fff;}
.header-cta:hover{background:var(--forest);}
@media (max-width:900px){nav{display:none;}}

.page-lead--simple{background:var(--grad);color:#fff;padding:48px 0 44px;position:relative;overflow:hidden;}
.page-lead--simple::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg, rgba(12,36,24,.35) 0%, rgba(12,36,24,.08) 55%, transparent 100%);pointer-events:none;}
.page-lead--simple .wrap{position:relative;z-index:1;}
.page-lead--simple .en{font-size:11px;font-weight:700;letter-spacing:.22em;opacity:.85;margin-bottom:12px;}
.page-lead h1{font-size:clamp(26px,3.6vw,36px);font-weight:900;letter-spacing:.04em;line-height:1.35;}

.section{padding:64px 0;}
.section h2{font-size:22px;font-weight:900;letter-spacing:.03em;margin-bottom:28px;}

.profile-table{border-top:2px solid var(--ink);}
.profile-row{display:grid;grid-template-columns:200px 1fr;gap:28px;padding:20px 0;border-bottom:1px solid var(--line);align-items:baseline;}
.profile-row .k{font-size:13px;font-weight:700;color:var(--ink-soft);letter-spacing:.02em;}
.profile-row .v{font-size:14.5px;font-weight:500;}
@media (max-width:700px){.profile-row{grid-template-columns:1fr;gap:6px;}}

.gallery{display:grid;grid-template-columns:1.3fr 1fr;gap:6px;align-items:stretch;}
.gallery img{display:block;width:100%;height:100%;object-fit:cover;}
.gallery .g1{aspect-ratio:3/4;height:auto;}
.gallery .g-right{display:grid;grid-template-rows:1fr 1fr;gap:6px;min-height:0;}
.gallery .g2,.gallery .g3{min-height:0;aspect-ratio:auto;}
.gallery-caption{margin-top:16px;font-size:13px;font-weight:500;color:var(--ink-soft);}
@media (max-width:700px){
  .gallery{grid-template-columns:1fr;}
  .gallery .g1{aspect-ratio:4/3;height:auto;}
  .gallery .g-right{grid-template-rows:auto auto;}
  .gallery .g2,.gallery .g3{height:auto;aspect-ratio:4/3;}
}

.access-layout{display:grid;grid-template-columns:1fr 1fr;gap:40px;}
.access-table{border-top:1px solid var(--ink);}
.access-row{display:grid;grid-template-columns:100px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);font-size:14px;}
.access-row .k{font-weight:700;color:var(--ink-soft);}
.access-row .v{font-weight:500;}
.access-note{background:var(--paper-soft);border:1px solid var(--line);padding:28px;font-size:14px;color:var(--ink-soft);line-height:1.8;}
.access-note strong{display:block;color:var(--ink);font-size:15px;font-weight:900;margin-bottom:10px;}
@media (max-width:800px){.access-layout{grid-template-columns:1fr;}}

.cta{background:var(--grad);color:#fff;position:relative;}
.cta::before{content:'';position:absolute;inset:0;background:rgba(12,36,24,.28);}
.cta-inner{position:relative;z-index:1;padding-top:56px;padding-bottom:56px;display:flex;justify-content:space-between;align-items:center;gap:28px;flex-wrap:wrap;}
.cta h2{font-size:clamp(20px,2.8vw,26px);font-weight:900;letter-spacing:.03em;line-height:1.5;}
.cta p{margin-top:10px;font-size:13.5px;font-weight:500;color:rgba(255,255,255,.88);}
.cta-actions{display:flex;gap:10px;flex-wrap:wrap;}
.btn{padding:13px 22px;font-size:13.5px;font-weight:700;border:1px solid rgba(255,255,255,.55);color:#fff;text-align:center;}
.btn.solid{background:#fff;color:var(--forest-deep);border-color:#fff;}
.btn.solid:hover{filter:brightness(.96);}
.btn.ghost:hover{background:rgba(255,255,255,.1);}

footer{padding:48px 0 24px;background:var(--forest-deep);color:rgba(255,255,255,.72);}
.footer-top{display:flex;justify-content:space-between;gap:36px;flex-wrap:wrap;padding-bottom:28px;border-bottom:1px solid rgba(255,255,255,.12);}
.footer-word .main{font-family:'Shippori Mincho', serif;color:#fff;font-size:18px;font-weight:700;letter-spacing:.08em;}
.footer-word{display:flex;flex-direction:column;align-items:center;}
.footer-word .sub{margin-top:4px;font-size:10px;font-weight:500;letter-spacing:.35em;margin-right:-.35em;color:var(--lime);}
.footer-cols{display:flex;gap:48px;flex-wrap:wrap;}
.footer-col .label{display:block;color:#fff;font-size:11px;font-weight:700;letter-spacing:.1em;margin-bottom:12px;}
.footer-col a{display:block;font-size:13px;font-weight:500;margin-bottom:8px;color:rgba(255,255,255,.7);}
.footer-col a:hover{color:#fff;}
.footer-license{padding-top:18px;font-size:11.5px;font-weight:500;line-height:1.7;color:rgba(255,255,255,.55);}
.footer-bottom{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:16px;font-size:11.5px;font-weight:500;color:rgba(255,255,255,.45);}

/* ===== extras company ===== */

:root{
  /* Palette Ref: Deep Forest Luxury (client mock) */
  --paper:#FFFFFF;
  --paper-soft:#F8F7F3;
  --ink:#203B34;
  --ink-soft:#68756F;
  --forest:#00894C;
  --forest-deep:#073C30;
  --lime:#C8B890;
  --mid:#0A5C48;
  --line:rgba(32,59,52,0.12);
  --grad:linear-gradient(120deg, #0A5C48 0%, #073C30 55%, #052D25 100%);
  --grad-soft:linear-gradient(135deg, rgba(0,137,76,.10) 0%, rgba(7,60,48,.06) 100%);
  --line-color:#06C755;
  --gold:#A89060;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:'Noto Sans JP', sans-serif;
  color:var(--ink);background:var(--paper);
  line-height:1.75;font-weight:400;font-size:14.5px;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}
:focus-visible{outline:2px solid var(--forest);outline-offset:2px;}
.wrap{max-width:1120px;margin:0 auto;padding:0 28px;}

.utility{background:var(--forest-deep);color:rgba(255,255,255,.86);font-size:12px;font-weight:500;}
.utility .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:8px 28px;flex-wrap:wrap;}
.utility a{color:#fff;}
.utility a:hover{color:var(--lime);}
.utility-right{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.line-badge{display:inline-flex;align-items:center;gap:6px;background:var(--line-color);color:#fff;padding:4px 10px;font-size:11px;font-weight:700;}
.line-badge svg{width:12px;height:12px;}

header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);backdrop-filter:saturate(1.2) blur(8px);}
.header-row{display:flex;align-items:center;justify-content:space-between;padding-top:14px;padding-bottom:14px;gap:20px;}
.wordmark{display:flex;flex-direction:column;align-items:center;line-height:1.1;}
.wordmark .main{font-family:'Shippori Mincho', serif;font-size:20px;font-weight:700;letter-spacing:.08em;color:var(--ink);}
.wordmark .sub{font-size:10px;font-weight:500;letter-spacing:.4em;margin-right:-.4em;color:var(--ink-soft);margin-top:3px;}
nav{display:flex;gap:0;}
nav a{font-size:13.5px;font-weight:500;padding:10px 14px;color:var(--ink);}
nav a:hover,nav a.active{color:var(--forest);}
nav a.active{font-weight:700;}
.header-cta{font-size:13px;font-weight:700;padding:10px 18px;background:var(--forest-deep);color:#fff;}
.header-cta:hover{background:var(--forest);}
@media (max-width:900px){nav{display:none;}}

.page-lead--simple{background:var(--grad);color:#fff;padding:48px 0 44px;position:relative;overflow:hidden;}
.page-lead--simple::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg, rgba(12,36,24,.35) 0%, rgba(12,36,24,.08) 55%, transparent 100%);pointer-events:none;}
.page-lead--simple .wrap{position:relative;z-index:1;}
.page-lead--simple .en{font-size:11px;font-weight:700;letter-spacing:.22em;opacity:.85;margin-bottom:12px;}
.page-lead h1{font-size:clamp(26px,3.6vw,36px);font-weight:900;letter-spacing:.04em;line-height:1.35;}

.section{padding:64px 0;}
.philosophy{max-width:720px;}
.philosophy .en{font-size:11px;font-weight:700;letter-spacing:.18em;color:var(--ink);margin-bottom:14px;}
.philosophy .lede{font-size:clamp(22px,3vw,28px);font-weight:900;letter-spacing:.03em;line-height:1.55;color:var(--ink);}
.philosophy p.body{margin-top:18px;font-size:17px;font-weight:500;color:var(--ink);line-height:2.15;}

.mission-block{margin-top:56px;max-width:720px;}
.mission-block .en{font-size:11px;font-weight:700;letter-spacing:.18em;color:var(--ink);margin-bottom:14px;}
.mission-text{font-size:clamp(18px,2.4vw,22px);font-weight:900;letter-spacing:.04em;line-height:1.6;color:var(--ink);}

.quality-head{margin-top:56px;}
.quality-head .en{font-size:12px;font-weight:700;letter-spacing:.18em;color:var(--ink);}

.mvv-table{border-top:2px solid var(--ink);margin-top:20px;}
.mvv-row{display:grid;grid-template-columns:120px 1fr;gap:28px;padding:28px 0;border-bottom:1px solid var(--line);}
.mvv-row .label{font-size:13px;font-weight:700;letter-spacing:.08em;color:var(--ink);}
.mvv-row .content h3{font-size:17px;font-weight:900;letter-spacing:.02em;margin-bottom:8px;}
.mvv-row .content p{font-size:16px;font-weight:500;color:var(--ink);line-height:1.85;}
@media (max-width:700px){.mvv-row{grid-template-columns:1fr;gap:10px;}}

.message-section{background:var(--forest-deep);color:#fff;}
.message-layout{display:grid;grid-template-columns:minmax(220px,30%) 1fr;gap:0;max-width:1120px;margin:0 auto;align-items:stretch;}
.message-photo{position:relative;min-height:0;max-width:340px;}
.message-photo img{width:100%;height:100%;min-height:280px;max-height:min(72vh,640px);object-fit:cover;display:block;}
.message-body{padding:40px 40px 36px;}
.message-body .en{font-size:11px;font-weight:700;letter-spacing:.18em;color:var(--lime);}
.message-body h2{font-size:clamp(18px,2.3vw,24px);font-weight:900;margin:12px 0 18px;line-height:1.55;letter-spacing:.02em;}
.message-body p{color:rgba(255,255,255,.92);font-size:14px;margin-bottom:10px;max-width:640px;line-height:1.75;}
.signature{margin-top:32px;padding-top:22px;border-top:1px solid rgba(255,255,255,.18);}
.signature .role{font-size:12px;font-weight:500;color:rgba(255,255,255,.55);letter-spacing:.06em;}
.signature .name{font-size:18px;font-weight:900;margin-top:6px;letter-spacing:.04em;}
@media (max-width:860px){
  .message-layout{grid-template-columns:1fr;}
  .message-photo{max-width:none;}
  .message-photo img{min-height:220px;max-height:320px;}
  .message-body{padding:40px 28px;}
}

.cta{background:var(--grad);color:#fff;position:relative;}
.cta::before{content:'';position:absolute;inset:0;background:rgba(12,36,24,.28);}
.cta-inner{position:relative;z-index:1;padding-top:56px;padding-bottom:56px;display:flex;justify-content:space-between;align-items:center;gap:28px;flex-wrap:wrap;}
.cta h2{font-size:clamp(20px,2.8vw,26px);font-weight:900;letter-spacing:.03em;line-height:1.5;}
.cta p{margin-top:10px;font-size:13.5px;font-weight:500;color:rgba(255,255,255,.88);}
.cta-actions{display:flex;gap:10px;flex-wrap:wrap;}
.btn{padding:13px 22px;font-size:13.5px;font-weight:700;border:1px solid rgba(255,255,255,.55);color:#fff;text-align:center;}
.btn.solid{background:#fff;color:var(--forest-deep);border-color:#fff;}
.btn.solid:hover{filter:brightness(.96);}
.btn.ghost:hover{background:rgba(255,255,255,.1);}

footer{padding:48px 0 24px;background:var(--forest-deep);color:rgba(255,255,255,.72);}
.footer-top{display:flex;justify-content:space-between;gap:36px;flex-wrap:wrap;padding-bottom:28px;border-bottom:1px solid rgba(255,255,255,.12);}
.footer-word .main{font-family:'Shippori Mincho', serif;color:#fff;font-size:18px;font-weight:700;letter-spacing:.08em;}
.footer-word{display:flex;flex-direction:column;align-items:center;}
.footer-word .sub{margin-top:4px;font-size:10px;font-weight:500;letter-spacing:.35em;margin-right:-.35em;color:var(--lime);}
.footer-cols{display:flex;gap:48px;flex-wrap:wrap;}
.footer-col .label{display:block;color:#fff;font-size:11px;font-weight:700;letter-spacing:.1em;margin-bottom:12px;}
.footer-col a{display:block;font-size:13px;font-weight:500;margin-bottom:8px;color:rgba(255,255,255,.7);}
.footer-col a:hover{color:#fff;}
.footer-license{padding-top:18px;font-size:11.5px;font-weight:500;line-height:1.7;color:rgba(255,255,255,.55);}
.footer-bottom{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:16px;font-size:11.5px;font-weight:500;color:rgba(255,255,255,.45);}

/* ===== extras contact ===== */

:root{
  /* Palette Ref: Deep Forest Luxury (client mock) */
  --paper:#FFFFFF;
  --paper-soft:#F8F7F3;
  --ink:#203B34;
  --ink-soft:#68756F;
  --forest:#00894C;
  --forest-deep:#073C30;
  --lime:#C8B890;
  --mid:#0A5C48;
  --line:rgba(32,59,52,0.12);
  --grad:linear-gradient(120deg, #0A5C48 0%, #073C30 55%, #052D25 100%);
  --grad-soft:linear-gradient(135deg, rgba(0,137,76,.10) 0%, rgba(7,60,48,.06) 100%);
  --line-color:#06C755;
  --gold:#A89060;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{
  font-family:'Noto Sans JP', sans-serif;
  color:var(--ink);background:var(--paper);
  line-height:1.75;font-weight:400;font-size:14.5px;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}
button,select,input,textarea{font-family:inherit;}
:focus-visible{outline:2px solid var(--forest);outline-offset:2px;}
.wrap{max-width:1120px;margin:0 auto;padding:0 28px;}

.utility{background:var(--forest-deep);color:rgba(255,255,255,.86);font-size:12px;font-weight:500;}
.utility .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:8px 28px;flex-wrap:wrap;}
.utility a{color:#fff;}
.utility a:hover{color:var(--lime);}
.utility-right{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.line-badge{display:inline-flex;align-items:center;gap:6px;background:var(--line-color);color:#fff;padding:4px 10px;font-size:11px;font-weight:700;}
.line-badge svg{width:12px;height:12px;}

header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);backdrop-filter:saturate(1.2) blur(8px);}
.header-row{display:flex;align-items:center;justify-content:space-between;padding-top:14px;padding-bottom:14px;gap:20px;}
.wordmark{display:flex;flex-direction:column;align-items:center;line-height:1.1;}
.wordmark .main{font-family:'Shippori Mincho', serif;font-size:20px;font-weight:700;letter-spacing:.08em;color:var(--ink);}
.wordmark .sub{font-size:10px;font-weight:500;letter-spacing:.4em;margin-right:-.4em;color:var(--ink-soft);margin-top:3px;}
nav{display:flex;gap:0;}
nav a{font-size:13.5px;font-weight:500;padding:10px 14px;color:var(--ink);}
nav a:hover{color:var(--forest);}
.header-cta{font-size:13px;font-weight:700;padding:10px 18px;background:var(--forest-deep);color:#fff;}
.header-cta:hover{background:var(--forest);}
@media (max-width:900px){nav{display:none;}}

.page-lead--simple{background:var(--grad);color:#fff;padding:48px 0 44px;position:relative;overflow:hidden;}
.page-lead--simple::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg, rgba(12,36,24,.35) 0%, rgba(12,36,24,.08) 55%, transparent 100%);pointer-events:none;}
.page-lead--simple .wrap{position:relative;z-index:1;}
.page-lead--simple .en{font-size:11px;font-weight:700;letter-spacing:.22em;opacity:.85;margin-bottom:12px;}
.page-lead h1{font-size:clamp(26px,3.6vw,36px);font-weight:900;letter-spacing:.04em;line-height:1.35;}

.section{padding:64px 0;}

.contact-options{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);margin-bottom:56px;
}
.option-card{background:var(--paper);padding:28px 24px;}
.option-card .en{display:block;font-size:11px;font-weight:700;letter-spacing:.14em;color:var(--mid);margin-bottom:12px;}
.option-card h3{font-size:16px;font-weight:900;letter-spacing:.02em;margin-bottom:8px;}
.option-card p{font-size:13px;font-weight:500;color:var(--ink-soft);margin-bottom:14px;}
.option-card .cta-line{font-size:22px;font-weight:900;color:var(--forest);letter-spacing:.02em;}
.option-card .cta-line a:hover{opacity:.75;}
.option-card .btn-mini{display:inline-block;font-size:13px;font-weight:700;border-bottom:1px solid var(--ink);padding-bottom:2px;}
@media (max-width:800px){.contact-options{grid-template-columns:1fr;}}

.form-layout{display:grid;grid-template-columns:1fr .85fr;gap:48px;align-items:start;}
.form-title{font-size:22px;font-weight:900;letter-spacing:.03em;margin-bottom:8px;}
.form-sub{font-size:13.5px;font-weight:500;color:var(--ink-soft);margin-bottom:28px;}
.field-row{margin-bottom:20px;}
.field-row label{display:block;font-size:13px;font-weight:700;margin-bottom:8px;}
.field-row label .req{color:#B5432F;font-size:11px;margin-left:6px;font-weight:700;}
.field-row input,.field-row select,.field-row textarea{
  width:100%;border:1px solid var(--line);background:var(--paper-soft);
  padding:12px 14px;font-size:14px;font-weight:500;color:var(--ink);
}
.field-row input:focus,.field-row select:focus,.field-row textarea:focus{
  outline:2px solid var(--forest);background:var(--paper);
}
.field-two{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.submit-btn{
  border:none;cursor:pointer;
  background:var(--forest-deep);color:#fff;
  font-weight:700;font-size:14px;padding:15px 36px;
  border-bottom:3px solid var(--lime);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-width:160px;
}
.submit-btn:hover{background:var(--forest);}
.submit-btn:disabled,
.submit-btn.is-loading{
  cursor:wait;
  opacity:.78;
  pointer-events:none;
  background:var(--forest-deep);
}
.submit-btn__loading{
  display:none;
  align-items:center;
  gap:8px;
}
.submit-btn.is-loading .submit-btn__label{display:none;}
.submit-btn.is-loading .submit-btn__loading{display:inline-flex;}
.submit-btn__spinner{
  width:14px;
  height:14px;
  border:2px solid rgba(255,255,255,.35);
  border-top-color:#fff;
  border-radius:50%;
  animation:contact-spin .7s linear infinite;
}
@keyframes contact-spin{
  to{transform:rotate(360deg);}
}
.form-note{font-size:12px;font-weight:500;color:var(--ink-soft);margin-top:14px;}
.field-error{margin-top:6px;font-size:12px;font-weight:600;color:#B5432F;}
.form-errors{margin-bottom:16px;font-size:13px;font-weight:600;color:#B5432F;}
.contact-flash{
  margin-bottom:24px;
  padding:14px 18px;
  border:1px solid var(--line);
  background:var(--paper-soft);
  font-size:14px;
  font-weight:600;
  color:var(--ink);
}
.contact-flash--success,
.contact-flash--ok{
  border-color:rgba(0,137,76,.35);
  background:rgba(0,137,76,.08);
  color:var(--forest-deep);
}
.contact-flash--warning,
.contact-flash--error{
  border-color:rgba(181,67,47,.35);
  background:rgba(181,67,47,.08);
  color:#8a2f1f;
}
.inquiry-property{
  margin:0 0 28px;
  padding:16px;
  border:1px solid var(--line);
  background:var(--paper-soft);
}
.inquiry-property__label{
  font-size:11px;
  font-weight:700;
  letter-spacing:.12em;
  color:var(--forest);
  margin-bottom:12px;
}
.inquiry-property__card{
  display:grid;
  grid-template-columns:120px 1fr;
  gap:16px;
  align-items:center;
  text-decoration:none;
  color:inherit;
}
.inquiry-property__media{
  aspect-ratio:4/3;
  overflow:hidden;
  background:#e8ebe6;
}
.inquiry-property__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.inquiry-property__body h3{
  font-size:16px;
  font-weight:900;
  margin:0 0 6px;
  letter-spacing:.02em;
}
.inquiry-property__meta{
  font-size:13px;
  font-weight:700;
  color:var(--ink);
  margin:0 0 4px;
}
.inquiry-property__area,
.inquiry-property__addr{
  font-size:12px;
  color:var(--ink-soft);
  margin:0;
  line-height:1.6;
}
@media (max-width:600px){
  .inquiry-property__card{grid-template-columns:1fr;}
}

.side-panel{border:1px solid var(--line);}
.side-photo{aspect-ratio:4/3;overflow:hidden;}
.side-photo img{width:100%;height:100%;object-fit:cover;}
.side-info{padding:24px;}
.side-info h4{font-size:15px;font-weight:900;letter-spacing:.03em;margin-bottom:14px;}
.side-info .row{
  display:flex;justify-content:space-between;gap:12px;
  font-size:13px;font-weight:500;padding:10px 0;
  border-bottom:1px solid var(--line);color:var(--ink-soft);
}
.side-info .row span:last-child{color:var(--ink);text-align:right;}
@media (max-width:900px){
  .form-layout{grid-template-columns:1fr;}
  .field-two{grid-template-columns:1fr;}
}

footer{padding:48px 0 24px;background:var(--forest-deep);color:rgba(255,255,255,.72);}
.footer-top{display:flex;justify-content:space-between;gap:36px;flex-wrap:wrap;padding-bottom:28px;border-bottom:1px solid rgba(255,255,255,.12);}
.footer-word .main{font-family:'Shippori Mincho', serif;color:#fff;font-size:18px;font-weight:700;letter-spacing:.08em;}
.footer-word{display:flex;flex-direction:column;align-items:center;}
.footer-word .sub{margin-top:4px;font-size:10px;font-weight:500;letter-spacing:.35em;margin-right:-.35em;color:var(--lime);}
.footer-cols{display:flex;gap:48px;flex-wrap:wrap;}
.footer-col .label{display:block;color:#fff;font-size:11px;font-weight:700;letter-spacing:.1em;margin-bottom:12px;}
.footer-col a{display:block;font-size:13px;font-weight:500;margin-bottom:8px;color:rgba(255,255,255,.7);}
.footer-col a:hover{color:#fff;}
.footer-license{padding-top:18px;font-size:11.5px;font-weight:500;line-height:1.7;color:rgba(255,255,255,.55);}
.footer-bottom{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:16px;font-size:11.5px;font-weight:500;color:rgba(255,255,255,.45);}

/* ===== extras search ===== */

:root{
  /* Palette Ref: Deep Forest Luxury (client mock) */
  --paper:#FFFFFF;
  --paper-soft:#F8F7F3;
  --ink:#203B34;
  --ink-soft:#68756F;
  --forest:#00894C;
  --forest-deep:#073C30;
  --lime:#C8B890;
  --mid:#0A5C48;
  --line:rgba(32,59,52,0.12);
  --grad:linear-gradient(120deg, #0A5C48 0%, #073C30 55%, #052D25 100%);
  --grad-soft:linear-gradient(135deg, rgba(0,137,76,.10) 0%, rgba(7,60,48,.06) 100%);
  --line-color:#06C755;
  --gold:#A89060;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{
  font-family:'Noto Sans JP', sans-serif;
  color:var(--ink);background:var(--paper);
  line-height:1.75;font-weight:400;font-size:14.5px;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}
button,select{font-family:inherit;}
:focus-visible{outline:2px solid var(--forest);outline-offset:2px;}
.wrap{max-width:1120px;margin:0 auto;padding:0 28px;}
.tabular{font-variant-numeric:tabular-nums;}

.utility{background:var(--forest-deep);color:rgba(255,255,255,.86);font-size:12px;font-weight:500;}
.utility .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:8px 28px;flex-wrap:wrap;}
.utility a{color:#fff;}
.utility a:hover{color:var(--lime);}
.utility-right{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.line-badge{display:inline-flex;align-items:center;gap:6px;background:var(--line-color);color:#fff;padding:4px 10px;font-size:11px;font-weight:700;}
.line-badge svg{width:12px;height:12px;}

header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);backdrop-filter:saturate(1.2) blur(8px);}
.header-row{display:flex;align-items:center;justify-content:space-between;padding-top:14px;padding-bottom:14px;gap:20px;}
.wordmark{display:flex;flex-direction:column;align-items:center;line-height:1.1;}
.wordmark .main{font-family:'Shippori Mincho', serif;font-size:20px;font-weight:700;letter-spacing:.08em;color:var(--ink);}
.wordmark .sub{font-size:10px;font-weight:500;letter-spacing:.4em;margin-right:-.4em;color:var(--ink-soft);margin-top:3px;}
nav{display:flex;gap:0;}
nav a{font-size:13.5px;font-weight:500;padding:10px 14px;color:var(--ink);}
nav a:hover,nav a.active{color:var(--forest);}
nav a.active{font-weight:700;}
.header-cta{font-size:13px;font-weight:700;padding:10px 18px;background:var(--forest-deep);color:#fff;}
.header-cta:hover{background:var(--forest);}
@media (max-width:900px){nav{display:none;}}

.page-lead--simple{background:var(--grad);color:#fff;padding:48px 0 44px;position:relative;overflow:hidden;}
.page-lead--simple::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg, rgba(12,36,24,.35) 0%, rgba(12,36,24,.08) 55%, transparent 100%);pointer-events:none;}
.page-lead--simple .wrap{position:relative;z-index:1;}
.page-lead--simple .en{font-size:11px;font-weight:700;letter-spacing:.22em;opacity:.85;margin-bottom:12px;}
.page-lead h1{font-size:clamp(26px,3.6vw,36px);font-weight:900;letter-spacing:.04em;line-height:1.35;}
.page-lead p{margin-top:12px;font-size:14px;font-weight:500;color:rgba(255,255,255,.9);max-width:480px;}

.section{padding:40px 0 64px;}

/* search filter */
.search-card{
  background:var(--paper);
  border:1px solid var(--line);
  box-shadow:0 10px 30px rgba(12,36,24,.06);
}
/* search results only: pull card into page-lead */
.page-lead--simple + .section .search-card{
  margin-top:-28px;
  position:relative;z-index:2;
}

/* results toolbar */
.results-bar{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:16px;flex-wrap:wrap;
  margin:36px 0 20px;
  padding-bottom:16px;
  border-bottom:2px solid var(--ink);
}
.results-count{
  font-size:18px;font-weight:900;letter-spacing:.02em;
}
.results-count span{color:var(--forest);font-size:22px;}
.results-count .sub{
  display:block;margin-top:4px;
  font-size:12.5px;font-weight:500;color:var(--ink-soft);
}
.sort-wrap{display:flex;align-items:center;gap:10px;}
.sort-wrap label{font-size:12px;font-weight:700;color:var(--ink-soft);letter-spacing:.04em;}
.sort-wrap select{
  border:1px solid var(--line);
  background:var(--paper);
  padding:8px 32px 8px 12px;
  font-size:13px;font-weight:700;color:var(--ink);
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23121A16' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 10px center;
}

/* building card */
.building-list{display:flex;flex-direction:column;gap:24px;}
.building-card{
  border:1px solid var(--line);
  background:var(--paper);
}
.building-head{
  display:grid;
  grid-template-columns:280px 1fr;
  gap:0;
  border-bottom:1px solid var(--line);
}
.building-media{
  background:var(--paper-soft);
  aspect-ratio:4/3;
  overflow:hidden;
}
.building-media img{width:100%;height:100%;object-fit:contain;}
.building-info{padding:22px 24px;}
.building-info h2{
  font-size:18px;font-weight:900;letter-spacing:.02em;line-height:1.4;
  margin-bottom:14px;
}
.bmeta{border-top:1px solid var(--line);}
.bmeta-row{
  display:grid;
  grid-template-columns:72px 1fr;
  gap:12px;
  padding:10px 0;
  border-bottom:1px solid var(--line);
  font-size:13.5px;
  align-items:baseline;
}
.bmeta-row:last-child{border-bottom:none;}
.bmeta-row .k{
  font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--mid);
  border-bottom:1.5px solid var(--lime);
  width:fit-content;padding-bottom:1px;
}
.bmeta-row .v{font-weight:500;line-height:1.7;}
@media (max-width:800px){
  .building-head{grid-template-columns:1fr;}
  .building-media{aspect-ratio:16/10;}
}

.pagination{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:10px 14px;
  margin-top:36px;
  padding-top:28px;
  border-top:1px solid var(--line);
}
.pagination__pages{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
  list-style:none;
  margin:0;
  padding:0;
}
.pagination__link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:40px;
  height:40px;
  padding:0 12px;
  font-size:13px;
  font-weight:700;
  letter-spacing:.04em;
  color:var(--forest-deep);
  background:var(--paper);
  border:1px solid var(--line);
  text-decoration:none;
  transition:background .2s ease,border-color .2s ease,color .2s ease;
}
a.pagination__link:hover{
  border-color:var(--forest);
  background:var(--paper-soft);
}
.pagination__link.is-current{
  color:#fff;
  background:var(--forest-deep);
  border-color:var(--forest-deep);
}
.pagination__link.is-disabled{
  opacity:.35;
  pointer-events:none;
}
.pagination__gap{
  padding:0 4px;
  color:var(--mid);
  font-weight:700;
}
.pagination-meta{
  text-align:center;
  margin-top:12px;
  font-size:12.5px;
  font-weight:500;
  color:var(--ink-soft);
}

/* room table */
.room-table-wrap{overflow-x:auto;}
.room-table{
  width:100%;
  border-collapse:collapse;
  font-size:13.5px;
}
.room-table thead th{
  background:var(--paper-soft);
  color:var(--ink-soft);
  font-size:11px;font-weight:700;letter-spacing:.06em;
  text-align:left;
  padding:12px 16px;
  border-right:2px solid var(--paper);
  white-space:nowrap;
}
.room-table thead th:last-child{border-right:none;}
.room-table tbody td{
  padding:16px;
  border-bottom:1px solid var(--line);
  vertical-align:middle;
  font-weight:500;
}
.room-table tbody tr:last-child td{border-bottom:none;}
.room-table tbody tr:hover{background:var(--paper-soft);}
.floor-cell{font-weight:700;white-space:nowrap;}
.new-badge{
  display:inline-block;
  background:var(--forest-deep);color:#fff;
  font-size:10px;font-weight:700;letter-spacing:.06em;
  padding:2px 6px;margin-bottom:4px;
}
.rent-fee{
  font-size:16px;font-weight:900;color:var(--forest);
  letter-spacing:.01em;
}
.rent-fee small{font-size:12px;font-weight:700;margin-left:2px;}
.detail-btn{
  display:inline-block;
  padding:9px 16px;
  background:var(--forest-deep);color:#fff;
  font-size:12.5px;font-weight:700;
  border-bottom:2px solid var(--lime);
  white-space:nowrap;
}
.detail-btn:hover{background:var(--forest);}

.cta{background:var(--grad);color:#fff;position:relative;}
.cta::before{content:'';position:absolute;inset:0;background:rgba(12,36,24,.28);}
.cta-inner{position:relative;z-index:1;padding-top:56px;padding-bottom:56px;display:flex;justify-content:space-between;align-items:center;gap:28px;flex-wrap:wrap;}
.cta h2{font-size:clamp(20px,2.8vw,26px);font-weight:900;letter-spacing:.03em;line-height:1.5;}
.cta p{margin-top:10px;font-size:13.5px;font-weight:500;color:rgba(255,255,255,.88);}
.cta-actions{display:flex;gap:10px;flex-wrap:wrap;}
.btn{padding:13px 22px;font-size:13.5px;font-weight:700;border:1px solid rgba(255,255,255,.55);color:#fff;text-align:center;}
.btn.solid{background:#fff;color:var(--forest-deep);border-color:#fff;}
.btn.solid:hover{filter:brightness(.96);}
.btn.ghost:hover{background:rgba(255,255,255,.1);}
.btn.line{background:var(--line-color);border-color:var(--line-color);display:inline-flex;align-items:center;gap:8px;}

footer{padding:48px 0 24px;background:var(--forest-deep);color:rgba(255,255,255,.72);}
.footer-top{display:flex;justify-content:space-between;gap:36px;flex-wrap:wrap;padding-bottom:28px;border-bottom:1px solid rgba(255,255,255,.12);}
.footer-word .main{font-family:'Shippori Mincho', serif;color:#fff;font-size:18px;font-weight:700;letter-spacing:.08em;}
.footer-word{display:flex;flex-direction:column;align-items:center;}
.footer-word .sub{margin-top:4px;font-size:10px;font-weight:500;letter-spacing:.35em;margin-right:-.35em;color:var(--lime);}
.footer-cols{display:flex;gap:48px;flex-wrap:wrap;}
.footer-col .label{display:block;color:#fff;font-size:11px;font-weight:700;letter-spacing:.1em;margin-bottom:12px;}
.footer-col a{display:block;font-size:13px;font-weight:500;margin-bottom:8px;color:rgba(255,255,255,.7);}
.footer-col a:hover{color:#fff;}
.footer-license{padding-top:18px;font-size:11.5px;font-weight:500;line-height:1.7;color:rgba(255,255,255,.55);}
.footer-bottom{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:16px;font-size:11.5px;font-weight:500;color:rgba(255,255,255,.45);}

/* ===== extras property ===== */

:root{
  /* Palette Ref: Deep Forest Luxury (client mock) */
  --paper:#FFFFFF;
  --paper-soft:#F8F7F3;
  --ink:#203B34;
  --ink-soft:#68756F;
  --forest:#00894C;
  --forest-deep:#073C30;
  --lime:#C8B890;
  --mid:#0A5C48;
  --line:rgba(32,59,52,0.12);
  --grad:linear-gradient(120deg, #0A5C48 0%, #073C30 55%, #052D25 100%);
  --grad-soft:linear-gradient(135deg, rgba(0,137,76,.10) 0%, rgba(7,60,48,.06) 100%);
  --line-color:#06C755;
  --gold:#A89060;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{
  font-family:'Noto Sans JP', sans-serif;
  color:var(--ink);background:var(--paper);
  line-height:1.75;font-weight:400;font-size:14.5px;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}
button{font-family:inherit;}
:focus-visible{outline:2px solid var(--forest);outline-offset:2px;}
.wrap{max-width:1120px;margin:0 auto;padding:0 28px;}
.tabular{font-variant-numeric:tabular-nums;}

.utility{background:var(--forest-deep);color:rgba(255,255,255,.86);font-size:12px;font-weight:500;}
.utility .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:8px 28px;flex-wrap:wrap;}
.utility a{color:#fff;}
.utility a:hover{color:var(--lime);}
.utility-right{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.line-badge{display:inline-flex;align-items:center;gap:6px;background:var(--line-color);color:#fff;padding:4px 10px;font-size:11px;font-weight:700;}
.line-badge svg{width:12px;height:12px;}

header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);backdrop-filter:saturate(1.2) blur(8px);}
.header-row{display:flex;align-items:center;justify-content:space-between;padding-top:14px;padding-bottom:14px;gap:20px;}
.wordmark{display:flex;flex-direction:column;align-items:center;line-height:1.1;}
.wordmark .main{font-family:'Shippori Mincho', serif;font-size:20px;font-weight:700;letter-spacing:.08em;color:var(--ink);}
.wordmark .sub{font-size:10px;font-weight:500;letter-spacing:.4em;margin-right:-.4em;color:var(--ink-soft);margin-top:3px;}
.header-nav{display:flex;gap:0;}
.header-nav a{font-size:13.5px;font-weight:500;padding:10px 14px;color:var(--ink);}
.header-nav a:hover,.header-nav a.active{color:var(--forest);}
.header-nav a.active{font-weight:700;}
.header-cta{font-size:13px;font-weight:700;padding:10px 18px;background:var(--forest-deep);color:#fff;}
.header-cta:hover{background:var(--forest);}
@media (max-width:900px){.header-nav{display:none;}}

/* sticky contact bar */
.contact-bar{
  position:sticky;top:61px;z-index:90;
  background:var(--paper);
  border-bottom:1px solid var(--line);
}
.contact-bar-inner{
  display:flex;justify-content:flex-end;align-items:center;gap:10px;
  padding-top:10px;padding-bottom:10px;
}
.contact-bar .tel-btn,
.contact-bar .mail-btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 18px;
  font-size:13px;font-weight:700;
}
.contact-bar .tel-btn{
  border:1px solid var(--line);
  background:var(--paper);
  color:var(--ink);
}
.contact-bar .tel-btn:hover{background:var(--paper-soft);}
.contact-bar .mail-btn{
  background:var(--forest-deep);color:#fff;
  border-bottom:2px solid var(--lime);
}
.contact-bar .mail-btn:hover{background:var(--forest);}
@media (max-width:700px){.contact-bar{display:none;}}

.section{padding:40px 0 64px;}

.crumb{
  display:flex;flex-wrap:wrap;align-items:baseline;
  gap:0 2px;
  font-size:12.5px;font-weight:500;color:var(--ink-soft);
  margin-bottom:20px;
  line-height:1.6;
}
.crumb a{padding:0;font-size:inherit;font-weight:500;color:var(--ink-soft);}
.crumb a:hover{color:var(--forest);}
.crumb span{margin:0 8px;opacity:.5;flex-shrink:0;}
.crumb .current{color:var(--ink);}

.property-title{
  font-size:clamp(22px,3.2vw,30px);
  font-weight:900;letter-spacing:.02em;line-height:1.4;
  margin-bottom:8px;
}
.property-sub{
  font-size:13.5px;font-weight:500;color:var(--ink-soft);
  margin-bottom:28px;
}

/* property detail gallery */
.property-gallery{
  margin-bottom:36px;
}
.property-gallery__stage{
  position:relative;
  background:var(--paper-soft);
  border:1px solid var(--line);
}
.property-gallery__main{
  display:block;
  width:100%;
  aspect-ratio:16/10;
  padding:0;
  border:0;
  background:transparent;
  cursor:zoom-in;
  position:relative;
  overflow:hidden;
}
.property-gallery__main.is-static{
  cursor:default;
}
.property-gallery__main img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  -webkit-user-drag:none;
  user-select:none;
  pointer-events:none;
}
/* subtle logo watermark (CSS overlay; not burned into file) */
.property-gallery__main::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:url("../images/classhomes_logo.359217d409ca.png") center center / min(36%,220px) no-repeat;
  opacity:.28;
  mix-blend-mode:multiply;
}
.property-gallery__label{
  position:absolute;left:0;bottom:0;z-index:2;
  background:rgba(12,36,24,.82);color:#fff;
  font-size:11px;font-weight:700;letter-spacing:.06em;
  padding:6px 12px;
  pointer-events:none;
}
.property-gallery__counter{
  position:absolute;right:0;bottom:0;z-index:2;
  background:rgba(12,36,24,.82);color:#fff;
  font-size:11px;font-weight:700;letter-spacing:.04em;
  padding:6px 12px;
  font-variant-numeric:tabular-nums;
  pointer-events:none;
}
.property-gallery__nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:2;
  width:44px;
  height:44px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.92);
  color:var(--forest-deep);
  font-size:28px;
  line-height:1;
  font-weight:400;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  transition:background .2s ease,border-color .2s ease;
}
.property-gallery__nav:hover{
  background:#fff;
  border-color:var(--forest);
}
.property-gallery__nav--prev{left:10px;}
.property-gallery__nav--next{right:10px;}
.property-gallery__thumbs{
  display:flex;
  gap:8px;
  margin-top:10px;
  overflow-x:auto;
  padding-bottom:4px;
  scroll-snap-type:x proximity;
  -webkit-overflow-scrolling:touch;
}
.property-gallery__thumb{
  flex:0 0 auto;
  width:88px;
  aspect-ratio:4/3;
  padding:0;
  border:2px solid transparent;
  background:var(--paper-soft);
  cursor:pointer;
  overflow:hidden;
  scroll-snap-align:start;
  transition:border-color .2s ease,opacity .2s ease;
}
.property-gallery__thumb img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  -webkit-user-drag:none;
  user-select:none;
  pointer-events:none;
}
.property-gallery__thumb:hover{border-color:var(--line);}
.property-gallery__thumb.is-active{
  border-color:var(--forest-deep);
}
@media (max-width:800px){
  .property-gallery__main{aspect-ratio:4/3;}
  .property-gallery__nav{width:38px;height:38px;font-size:24px;}
  .property-gallery__thumb{width:72px;}
}

/* lightbox */
html.gallery-lightbox-open{overflow:hidden;}
.gallery-lightbox[hidden]{display:none !important;}
.gallery-lightbox{
  position:fixed;
  inset:0;
  z-index:1000;
  display:flex;
  align-items:center;
  justify-content:center;
}
.gallery-lightbox__backdrop{
  position:absolute;
  inset:0;
  background:rgba(12,36,24,.88);
  cursor:pointer;
}
.gallery-lightbox__panel{
  position:relative;
  z-index:1;
  width:min(1100px,94vw);
  max-height:92vh;
  display:flex;
  align-items:center;
  justify-content:center;
}
.gallery-lightbox__figure{
  margin:0;
  max-width:100%;
  max-height:92vh;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  position:relative;
}
.gallery-lightbox__figure::after{
  content:"";
  position:absolute;
  inset:0 0 48px 0;
  z-index:1;
  pointer-events:none;
  background:url("../images/classhomes_logo.359217d409ca.png") center center / min(28%,240px) no-repeat;
  opacity:.24;
  mix-blend-mode:multiply;
}
.gallery-lightbox__figure img{
  max-width:100%;
  max-height:calc(92vh - 56px);
  width:auto;
  height:auto;
  object-fit:contain;
  background:rgba(255,255,255,.04);
  -webkit-user-drag:none;
  user-select:none;
  pointer-events:none;
}
.gallery-lightbox__figure figcaption{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  color:#fff;
  font-size:13px;
  font-weight:600;
  letter-spacing:.04em;
}
.gallery-lightbox__counter{
  font-variant-numeric:tabular-nums;
  opacity:.85;
}
.gallery-lightbox__close{
  position:absolute;
  top:-8px;
  right:-8px;
  z-index:2;
  width:44px;
  height:44px;
  border:0;
  border-radius:0;
  background:rgba(255,255,255,.12);
  color:#fff;
  font-size:28px;
  line-height:1;
  cursor:pointer;
}
.gallery-lightbox__close:hover{background:rgba(255,255,255,.22);}
.gallery-lightbox__nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:48px;
  height:48px;
  border:1px solid rgba(255,255,255,.28);
  background:rgba(255,255,255,.1);
  color:#fff;
  font-size:30px;
  line-height:1;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.gallery-lightbox__nav:hover{background:rgba(255,255,255,.2);}
.gallery-lightbox__nav--prev{left:-8px;}
.gallery-lightbox__nav--next{right:-8px;}
@media (max-width:800px){
  .gallery-lightbox__nav--prev{left:0;}
  .gallery-lightbox__nav--next{right:0;}
  .gallery-lightbox__close{top:0;right:0;}
}

/* price highlight */
.price-band{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  margin-bottom:40px;
}
.price-cell{
  background:var(--paper);
  padding:18px 20px;
}
.price-cell .label{
  font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--ink-soft);
  margin-bottom:6px;
}
.price-cell .value{
  font-size:18px;font-weight:900;color:var(--forest);
  letter-spacing:.01em;
}
.price-cell .value small{font-size:12px;font-weight:700;margin-left:2px;color:var(--ink);}
.price-cell .note{font-size:12px;font-weight:500;color:var(--ink-soft);margin-top:4px;}
@media (max-width:700px){.price-band{grid-template-columns:1fr 1fr;}}

/* spec tables */
.section-label{
  font-size:11px;font-weight:700;letter-spacing:.18em;color:var(--mid);
  margin-bottom:10px;
}
.section-heading{
  font-size:20px;font-weight:900;letter-spacing:.03em;
  margin-bottom:20px;
}
.spec-table{
  border-top:2px solid var(--ink);
  margin-bottom:48px;
}
.spec-row{
  display:grid;
  grid-template-columns:160px 1fr;
  gap:24px;
  padding:16px 0;
  border-bottom:1px solid var(--line);
  align-items:baseline;
}
.spec-row .k{
  font-size:13px;font-weight:700;color:var(--ink-soft);letter-spacing:.02em;
}
.spec-row .v{
  font-size:14.5px;font-weight:500;line-height:1.75;
}
.spec-row .v a{
  color:var(--forest);font-weight:700;
  border-bottom:1px solid var(--forest);
}
.spec-row .v a:hover{opacity:.7;}
.tags{display:flex;flex-wrap:wrap;gap:8px;}
.tag{
  display:inline-block;
  padding:4px 10px;
  background:var(--paper-soft);
  border:1px solid var(--line);
  font-size:12px;font-weight:700;color:var(--forest);
}
@media (max-width:700px){.spec-row{grid-template-columns:1fr;gap:6px;}}

/* inquiry block */
.inquiry{
  border:1px solid var(--line);
  background:var(--paper-soft);
  padding:36px 32px;
  display:flex;justify-content:space-between;align-items:center;
  gap:24px;flex-wrap:wrap;
  margin-bottom:8px;
}
.inquiry h3{
  font-size:18px;font-weight:900;letter-spacing:.02em;
}
.inquiry p{
  margin-top:6px;font-size:13.5px;color:var(--ink-soft);font-weight:500;
}
.inquiry-actions{display:flex;gap:10px;flex-wrap:wrap;}
.inquiry .btn-solid{
  display:inline-block;
  padding:13px 22px;
  background:var(--forest-deep);color:#fff;
  font-size:13.5px;font-weight:700;
  border-bottom:3px solid var(--lime);
}
.inquiry .btn-solid:hover{background:var(--forest);}
.inquiry .btn-ghost{
  display:inline-block;
  padding:13px 22px;
  border:1px solid var(--line);
  font-size:13.5px;font-weight:700;
  background:var(--paper);
}
.inquiry .btn-ghost:hover{background:var(--paper-soft);}

/* mobile fixed footer */
.mobile-cta{
  display:none;
  position:fixed;left:0;right:0;bottom:0;z-index:100;
  background:var(--paper);
  border-top:1px solid var(--line);
  padding:10px 16px;
  gap:8px;
}
.mobile-cta a{
  flex:1;text-align:center;
  padding:12px 8px;
  font-size:13px;font-weight:700;
}
.mobile-cta .m-tel{border:1px solid var(--line);}
.mobile-cta .m-mail{background:var(--forest-deep);color:#fff;}
.mobile-cta .m-line{background:var(--line-color);color:#fff;}
@media (max-width:700px){
  .mobile-cta{display:flex;}
  body{padding-bottom:68px;}
}

.cta{background:var(--grad);color:#fff;position:relative;}
.cta::before{content:'';position:absolute;inset:0;background:rgba(12,36,24,.28);}
.cta-inner{position:relative;z-index:1;padding-top:56px;padding-bottom:56px;display:flex;justify-content:space-between;align-items:center;gap:28px;flex-wrap:wrap;}
.cta h2{font-size:clamp(20px,2.8vw,26px);font-weight:900;letter-spacing:.03em;line-height:1.5;}
.cta p{margin-top:10px;font-size:13.5px;font-weight:500;color:rgba(255,255,255,.88);}
.cta-actions{display:flex;gap:10px;flex-wrap:wrap;}
.btn{padding:13px 22px;font-size:13.5px;font-weight:700;border:1px solid rgba(255,255,255,.55);color:#fff;text-align:center;}
.btn.solid{background:#fff;color:var(--forest-deep);border-color:#fff;}
.btn.solid:hover{filter:brightness(.96);}
.btn.ghost:hover{background:rgba(255,255,255,.1);}
.btn.line{background:var(--line-color);border-color:var(--line-color);display:inline-flex;align-items:center;gap:8px;}

footer{padding:48px 0 24px;background:var(--forest-deep);color:rgba(255,255,255,.72);}
.footer-top{display:flex;justify-content:space-between;gap:36px;flex-wrap:wrap;padding-bottom:28px;border-bottom:1px solid rgba(255,255,255,.12);}
.footer-word .main{font-family:'Shippori Mincho', serif;color:#fff;font-size:18px;font-weight:700;letter-spacing:.08em;}
.footer-word{display:flex;flex-direction:column;align-items:center;}
.footer-word .sub{margin-top:4px;font-size:10px;font-weight:500;letter-spacing:.35em;margin-right:-.35em;color:var(--lime);}
.footer-cols{display:flex;gap:48px;flex-wrap:wrap;}
.footer-col .label{display:block;color:#fff;font-size:11px;font-weight:700;letter-spacing:.1em;margin-bottom:12px;}
.footer-col a{display:block;font-size:13px;font-weight:500;margin-bottom:8px;color:rgba(255,255,255,.7);}
.footer-col a:hover{color:#fff;}
.footer-license{padding-top:18px;font-size:11.5px;font-weight:500;line-height:1.7;color:rgba(255,255,255,.55);}
.footer-bottom{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:16px;font-size:11.5px;font-weight:500;color:rgba(255,255,255,.45);}

/* header-nav scoped (avoid colliding with crumb nav) */
.header-nav{display:flex;gap:0;}
.header-nav a{font-size:13.5px;font-weight:500;padding:10px 14px;color:var(--ink);}
.header-nav a:hover,.header-nav a.active{color:var(--forest);}
.header-nav a.active{font-weight:700;}
@media (max-width:900px){.header-nav{display:none;}}

/* home: search must not cover stats-bar */
.stats-bar{
  position:relative;
  z-index:1;
}
.search-block{
  margin-top:40px;
  position:relative;
  z-index:1;
  padding-bottom:8px;
}
.search-block .search-card{
  margin-top:0;
}

/* wordmark: logo left of CLASSHOMES */
.wordmark{
  flex-direction:row;
  align-items:center;
  gap:8px;
  flex-shrink:0;
}
.wordmark-text{
  display:flex;
  flex-direction:column;
  align-items:center;
  line-height:1.1;
}
.wordmark-logo{
  display:block;
  height:28px;
  width:auto;
  flex-shrink:0;
  object-fit:contain;
}
/* header wordmark: readable European serif */
.wordmark .main{
  font-family:'Cormorant Garamond', 'Times New Roman', serif;
  font-weight:600;
  font-size:17px;
  letter-spacing:.1em;
}
.wordmark .sub{
  font-family:'Cormorant Garamond', 'Times New Roman', serif;
  font-weight:500;
  font-size:8.5px;
  letter-spacing:.38em;
  margin-right:-.38em;
}
@media (max-width:900px){
  .wordmark{gap:6px;}
  .wordmark-logo{height:24px;}
  .wordmark .main{font-size:15px;letter-spacing:.08em;}
  .wordmark .sub{font-size:7.5px;letter-spacing:.32em;margin-right:-.32em;}
  .header-cta{padding:9px 12px;font-size:12px;white-space:nowrap;}
}

/* footer partner logos */
.footer-partners{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  padding:20px 0;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.footer-partners-label{
  font-size:11px;
  font-weight:700;
  letter-spacing:.1em;
  color:rgba(255,255,255,.7);
}
.footer-partners-logos{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.partner-logo{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:36px;
  padding:6px 12px;
  background:#fff;
  border-radius:4px;
  text-decoration:none;
  transition:opacity .2s ease;
}
a.partner-logo:hover{opacity:.82;}
.partner-logo img{
  display:block;
  height:22px;
  width:auto;
  max-width:96px;
  object-fit:contain;
}

/* global: LINE CTA button */
.header-cta--line{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border-radius:8px;
  background:var(--forest);
}
.header-cta--line:hover{background:var(--mid);}
.page-lead--simple,
.page-lead{background:var(--grad);}
.cta{background:var(--forest-deep);}
.cta::before{display:none;}

/* company: MESSAGE — 1画面に収めやすい密度・写真幅 */
.message-body .signature{margin-top:14px;padding-top:14px;}
.message-body .signature .role{font-size:13px;}
.message-body .signature .name{font-size:16px;margin-top:4px;}
.br-pc{display:none;}
.br-sp{display:inline;}
@media (min-width:861px){
  .br-pc{display:inline;}
  .br-sp{display:none;}
}
@media (min-width:901px){
  .message-section .message-layout{align-items:center;}
  .message-photo img{max-height:min(68vh,560px);}
}
