/* =========================================================
   heiwa-home-wp / デザインシステム変数
========================================================= */
:root{
  --color-black:#080808;
  --color-text:#181818;
  --color-muted:#666;
  --color-border:#111;
  --color-bg:#ffffff;
  --color-cream:#f4ead1;
  --color-soft:#f7f3ea;
  --color-soft-border:#eadfce;
  --container:1180px;
  --side-padding:clamp(1rem,4vw,2.5rem);
  --section-space:clamp(4rem,8vw,8rem);
  --section-space-small:clamp(2.5rem,5vw,4rem);
  --radius-sm:.5rem;
  --radius-md:.75rem;
  --radius-card:24px;
  --radius-pill:999px;
  --space-1:.5rem;
  --space-2:1rem;
  --space-3:1.5rem;
  --space-4:2rem;
  --space-5:3rem;
  --space-6:4rem;
  --space-7:5.5rem;
  --header:7.25rem;
  --fixed-cta-height:calc(90px + env(safe-area-inset-bottom));
  --fixed-cta-height-mobile:calc(76px + env(safe-area-inset-bottom));
}

/* 下部セクション共通のコンテナ幅（画面幅に応じて連続的にpaddingが増減する）。
   その場しのぎのmargin/padding固定値やabsolute位置調整は使わない。 */
.container,
.consult-section,
.user-needs,
.contact-section,
.site-footer,
.page-section,
.blog-section,
.properties-page-section,
.filter-section,
.area-quick-links,
.property-grid,
.property-detail{
  padding-inline:max(var(--side-padding),calc((100% - var(--container)) / 2));
}

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

html{
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--header) + 1rem);
}

body{
  margin:0;
  padding-bottom:var(--fixed-cta-height);
  font-family:"Noto Sans JP",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--color-text);
  background:var(--color-cream);
  font-weight:500;
  line-height:1.7;
  letter-spacing:.01em;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  background:var(--color-bg);
  z-index:-2;
}
body.drawer-open{overflow:hidden}

a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;height:auto}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}

a:focus-visible,
button:focus-visible{
  outline:3px solid #68a300;
  outline-offset:4px;
  border-radius:.25rem;
}

main{
  background:var(--color-bg);
  border-bottom-left-radius:2.25rem;
  border-bottom-right-radius:2.25rem;
  overflow:hidden;
  padding-bottom:var(--section-space-small);
}

.sr-only{
  position:absolute!important;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

.skip-link{
  position:fixed;
  left:1rem;
  top:1rem;
  z-index:999;
  transform:translateY(-150%);
  display:inline-flex;
  align-items:center;
  min-height:2.75rem;
  padding:0 1rem;
  color:#fff;
  background:#111;
  border-radius:var(--radius-pill);
  font-weight:800;
  transition:transform .2s;
}
.skip-link:focus{transform:translateY(0)}

/* =========================================================
   ヘッダー
========================================================= */
.site-header{
  height:var(--header);
  position:sticky;
  top:0;
  z-index:80;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:1.5rem;
  padding:1.45rem 3.25rem 1.05rem;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(.5rem);
  border-top:1px solid rgba(0,0,0,.08);
}
/* ログイン中のWordPress管理バー分、sticky headerの位置をずらす（ログアウト時は影響なし）。*/
body.admin-bar .site-header{top:32px}
@media (max-width:782px){
  body.admin-bar .site-header{top:46px}
}
.pill-nav,
.pill-nav ul{
  display:flex;
  align-items:center;
  gap:clamp(.5rem,.9vw,.875rem);
  list-style:none;
  margin:0;
  padding:0;
  flex-wrap:nowrap;
}
/* 防御用ルール：wp_nav_menu()がサブメニュー等で<ul>を出力してしまった場合でも
   縦積みにならないようにする（通常時はitems_wrapで<ul>自体を取り除いている）。*/
.pill-nav li{margin:0;padding:0}
.pill-nav a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:2.5rem;
  padding:0 .9rem;
  border:2px solid var(--color-border);
  border-radius:var(--radius-pill);
  font-size:1.05rem;
  line-height:1;
  font-weight:900;
  white-space:nowrap;
  background:#fff;
  transition:background .2s,color .2s,transform .2s;
}
.pill-nav a:hover{background:var(--color-black);color:#fff;transform:translateY(-1px)}
.pill-nav a:active{transform:translateY(0) scale(.95)}

.brand{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.25rem;
  line-height:1;
  white-space:nowrap;
  text-align:center;
}
.brand-mark{width:3.125rem;height:2.35rem;object-fit:contain;margin-bottom:.125rem}
.brand strong{font-size:clamp(1.5rem,2.1vw,2.25rem);font-weight:900;letter-spacing:.055em}
.brand span{font-family:"Inter",sans-serif;font-size:.8125rem;font-weight:800;letter-spacing:.18em}

.menu-trigger{
  justify-self:end;
  display:flex;
  align-items:center;
  gap:1rem;
  font-family:"Inter",sans-serif;
  font-size:1.125rem;
  font-weight:700;
}
.menu-trigger i{
  width:3.25rem;
  height:3.25rem;
  display:grid;
  place-items:center;
  border:2px solid var(--color-border);
  border-radius:50%;
  position:relative;
  transition:transform .15s;
}
.menu-trigger i b{display:block;width:1.5rem;height:2px;background:var(--color-border);margin:.18rem 0}
.menu-trigger:active i{transform:scale(.92)}

.outline-frame{position:relative}
.outline-frame::before{
  content:"";
  pointer-events:none;
  position:absolute;
  inset:0;
  border:2px solid var(--color-border);
  border-bottom:0;
  border-radius:.45rem .45rem 0 0;
  z-index:2;
}

/* =========================================================
   ファーストビュー（トップビュー・上部デザインは変更しない）
========================================================= */
.hero-section{padding:.875rem 3.125rem 0;background:#fff}
.hero-frame{
  height:calc(100svh - var(--header) - 2.125rem);
  min-height:38rem;
  max-height:60rem;
  overflow:visible;
}
.hero-frame::before{inset:0 0 auto;height:1.625rem}
.hero-visual{height:100%;margin:1.75rem 0 0;overflow:hidden;border-radius:.25rem .25rem 0 0;position:relative}
.hero-visual::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(0deg,rgba(0,0,0,.62) 0%,rgba(0,0,0,.28) 32%,rgba(0,0,0,0) 60%),
    linear-gradient(90deg,rgba(0,0,0,.22),rgba(0,0,0,.02) 55%,rgba(0,0,0,.06));
}
.hero-visual img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:58% 36%;
  filter:saturate(.94) contrast(.97);
}
.hero-text{
  position:absolute;
  left:8.4%;
  right:8.4%;
  bottom:max(7.2%, 10.5rem);
  z-index:3;
  color:#fff;
}
.hero-copy{
  margin:0 0 1.25rem;
  max-width:min(56rem,86vw);
  font-size:clamp(2.55rem,4.3vw,5rem);
  font-weight:900;
  line-height:1.55;
  letter-spacing:.08em;
  text-shadow:0 2px 18px rgba(0,0,0,.28);
  animation:heroFadeUp .9s cubic-bezier(.16,1,.3,1) both;
}
.hero-copy span{display:block;width:max-content;max-width:100%;border-bottom:.36rem solid currentColor;padding:0 .08em .1em}
.hero-lead{
  max-width:48rem;
  margin:0;
  font-size:clamp(1rem,1.25vw,1.35rem);
  line-height:1.85;
  font-weight:800;
  letter-spacing:.05em;
  text-shadow:0 2px 16px rgba(0,0,0,.36);
  animation:heroFadeUp .9s cubic-bezier(.16,1,.3,1) .18s both;
}
@keyframes heroFadeUp{from{opacity:0;transform:translateY(1.25rem)}to{opacity:1;transform:translateY(0)}}
.side-peek{
  position:absolute;
  top:1.75rem;
  width:1.6rem;
  height:calc(100% - 1.75rem);
  background-size:cover;
  background-position:center;
  z-index:4;
  opacity:.88;
  pointer-events:none;
}
.side-peek-left{left:-3.125rem;background-image:url("../images/project-bg.webp")}
.side-peek-right{right:-3.125rem;background-image:url("../images/real-estate-photo.webp")}

/* =========================================================
   価値説明セクション
========================================================= */
.value-section{padding:clamp(4rem,7vw,7rem) 0}
.value-inner{display:block}
.value-text{
  background:rgba(255,255,255,.97);
  padding:clamp(2rem,4vw,3.25rem) clamp(1.25rem,4vw,2.25rem);
  border:2px solid var(--color-border);
  border-radius:.5rem;
}
.value-text h2{margin:0 0 1.25rem;font-size:clamp(1.625rem,2.6vw,2.375rem);line-height:1.5;font-weight:900}
.value-text p{margin:0;font-size:1rem;line-height:1.95;color:#333}
.value-visual{position:relative;overflow:hidden;margin-top:1.5rem;border-radius:.5rem;height:clamp(15rem,32vw,26rem)}
.value-track{display:flex;height:100%;width:max-content;gap:1.25rem;animation:valueSlide 46s linear infinite;will-change:transform}
.value-visual:hover .value-track,
.value-visual:focus-within .value-track{animation-play-state:paused}
.value-track img{flex:0 0 auto;width:clamp(13rem,22vw,20rem);height:100%;object-fit:cover;border-radius:.375rem}
@keyframes valueSlide{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (min-width:901px){
  .value-inner{display:grid;grid-template-columns:minmax(20rem,26rem) 1fr;gap:2.5rem;align-items:start}
  .value-text{position:sticky;top:calc(var(--header) + 1.5rem)}
  .value-visual{margin-top:0;height:clamp(22rem,34vw,32rem)}
}

/* =========================================================
   共通セクション見出し・上部（quick-search / area / properties）
========================================================= */
.quick-search,
.properties-section,
.area-section{
  padding-inline:3.875rem;
}
.quick-search{padding-top:5rem;padding-bottom:4.375rem;background:#fff}
.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;margin-bottom:clamp(2rem,3.4vw,3.5rem)}
.section-head h2{margin:0;max-width:58rem;font-size:clamp(2rem,3vw,3.55rem);line-height:1.3;font-weight:900;letter-spacing:.01em}
.eyebrow{margin:0 0 1rem;font-family:"Inter",sans-serif;font-size:.8125rem;letter-spacing:.22em;font-weight:900;color:#777}
.circle-link{display:inline-flex;align-items:center;gap:.75rem;padding-top:.625rem;font-size:1.05rem;line-height:1.4;font-weight:800;white-space:nowrap}
.circle-link span{
  width:2.125rem;
  height:2.125rem;
  display:grid;
  place-items:center;
  border:2px solid var(--color-border);
  border-radius:50%;
  font-family:"Inter",sans-serif;
  font-size:1.625rem;
  line-height:1;
  transition:transform .2s,background .2s,color .2s;
}
.circle-link:hover span{transform:translateX(.25rem);background:#111;color:#fff}
.circle-link:active span{transform:translateX(.25rem) scale(.9)}

/* =========================================================
   4導線（買う・売る・空き家・活かす）
========================================================= */
.search-grid{display:grid;grid-template-columns:1fr 1fr;border:2px solid var(--color-border);border-radius:.45rem;overflow:hidden}
.search-grid::before{display:none}
.search-panel{
  min-height:20.5rem;
  padding:clamp(2.25rem,3.2vw,3.25rem) clamp(2rem,3.6vw,3.75rem);
  border-bottom:2px solid var(--color-border);
  border-right:2px solid var(--color-border);
  background:#fff;
}
.search-panel:nth-child(2n){border-right:0}
.search-panel:nth-child(n+3){border-bottom:0}
.panel-main{display:grid;grid-template-columns:1fr auto;gap:1.25rem;align-items:start;margin-bottom:1.85rem}
.panel-main h3{margin:0;font-size:clamp(2.75rem,3.2vw,3.6rem);line-height:1;font-weight:900}
.panel-main p{grid-column:1/2;max-width:38rem;margin:0;color:#4a4a4a;font-size:1rem;line-height:1.85;font-weight:600}
.panel-arrow{
  grid-column:2;
  grid-row:1/3;
  width:2.625rem;
  height:2.625rem;
  display:grid;
  place-items:center;
  border:2px solid var(--color-border);
  border-radius:50%;
  font-family:"Inter",sans-serif;
  font-size:1.875rem;
  line-height:1;
  transition:transform .2s,background .2s,color .2s;
}
.panel-main:hover .panel-arrow{transform:translateX(.3rem);background:#000;color:#fff}
.panel-main:active .panel-arrow{transform:translateX(.3rem) scale(.9)}
.panel-tags{display:flex;flex-wrap:wrap;gap:.75rem}
.panel-tags a{
  display:inline-flex;
  min-height:2.4rem;
  align-items:center;
  justify-content:center;
  padding:.45rem 1.1rem;
  border:1px dashed #666;
  border-radius:var(--radius-pill);
  font-size:.95rem;
  font-weight:800;
  background:#fff;
  transition:background .2s,border-color .2s,transform .15s;
}
.panel-tags a:hover{background:var(--color-soft);border-color:#111}
.panel-tags a:active{transform:scale(.95)}

/* =========================================================
   対応エリア（area-section：page-real-estate.php でも利用）
========================================================= */
.area-section{
  padding-top:5.25rem;
  padding-bottom:5.75rem;
  background:var(--color-soft);
  border-top:1px solid var(--color-soft-border);
  border-bottom:1px solid var(--color-soft-border);
}
.area-grid,
.needs-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}
.area-grid article,
.needs-grid article{min-height:16.25rem;padding:2.15rem 2rem;border:2px solid var(--color-border);border-radius:.5rem;background:#fff}
.area-grid h3,
.needs-grid h3{margin:0 0 1rem;font-size:clamp(1.3rem,1.6vw,1.65rem);line-height:1.55;font-weight:900}
.area-grid p,
.needs-grid p{margin:0;color:#333;font-size:1rem;line-height:2;font-weight:500}
.area-grid a.area-card{
  display:flex;
  flex-direction:column;
  gap:.5rem;
  min-height:16.25rem;
  padding:2.15rem 2rem;
  border:2px solid var(--color-border);
  border-radius:.5rem;
  background:#fff;
  text-decoration:none;
  color:inherit;
  transition:background .2s,color .2s;
}
.area-grid a.area-card:hover,
.area-grid a.area-card:focus-visible{background:var(--color-black);color:#fff}
.area-grid a.area-card strong{font-size:clamp(1.2rem,1.6vw,1.5rem);font-weight:900}
.area-grid a.area-card span{font-size:.95rem;line-height:1.8;opacity:.85}
.area-section .area-grid{grid-template-columns:repeat(4,minmax(0,1fr))}

/* =========================================================
   新着物件（マーキー）／物件カード（marquee・grid 共通）
========================================================= */
.properties-section{padding-top:5.5rem;padding-bottom:6.875rem;background:#fff;overflow:hidden}
.marquee-shell{width:100%;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;padding:.75rem 0 1.625rem;cursor:grab}
.marquee-shell:active{cursor:grabbing}
.property-track{width:max-content;display:flex;gap:clamp(1.75rem,4vw,4.375rem);animation:propertySlide 55s linear infinite;will-change:transform}
.marquee-shell:hover .property-track,
.marquee-shell:focus-within .property-track{animation-play-state:paused}
@keyframes propertySlide{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.property-card{
  width:35rem;
  flex:0 0 auto;
  padding:2.15rem 2rem 1.9rem;
  border:1px solid transparent;
  border-radius:.25rem;
  background:#fff;
  transition:border-color .2s,transform .2s,box-shadow .2s;
}
.property-card:hover{border-color:#111;transform:translateY(-.2rem);box-shadow:0 .5rem 1.5rem rgba(0,0,0,.06)}
.property-card:active{transform:translateY(-.1rem) scale(.985)}
.property-title{display:flex;gap:1.55rem;align-items:baseline;margin-bottom:1rem;font-size:clamp(1.25rem,1.45vw,1.625rem);line-height:1.35;font-weight:900}
.property-title strong{font-size:inherit;font-weight:900}
.property-card figure{margin:0 0 1.25rem;position:relative;height:20.625rem;overflow:hidden;border-radius:.45rem;background:#eee}
.property-card figure img{width:100%;height:100%;object-fit:cover;transition:transform .45s}
.property-card:hover figure img{transform:scale(1.035)}
.photo-pill{
  position:absolute;
  right:1rem;
  bottom:1rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  min-height:2.5rem;
  padding:0 1rem;
  color:#fff;
  background:#000;
  border-radius:var(--radius-pill);
  font-size:1rem;
  font-weight:900;
  box-shadow:0 0 0 2px #fff inset;
}
.property-label{color:#777;font-size:.875rem;margin:0 0 .45rem}
.property-address{margin:0 0 1.2rem;font-size:1rem;line-height:1.55;font-weight:700}
.property-spec{display:grid;grid-template-columns:1fr 1fr;border:1px solid #c9c9c9;border-radius:.45rem;overflow:hidden}
.property-spec span{min-height:4.875rem;padding:.75rem 1rem;display:flex;flex-direction:column;justify-content:space-between}
.property-spec span+span{border-left:1px solid #c9c9c9}
.property-spec small{color:#666;font-size:.8rem;font-weight:700}
.property-spec b{text-align:right;font-size:clamp(1.25rem,1.55vw,1.75rem);line-height:1.12;font-weight:900}
.property-spec .property-cta-text{color:#111;font-size:1.05rem;line-height:1.35}

/* =========================================================
   相談導線（consult-section）／こんな相談に対応します（user-needs）
========================================================= */
.consult-section{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(22rem,.92fr);
  gap:clamp(2.5rem,4.4vw,4.375rem);
  padding-block:6.25rem;
  background:var(--color-soft);
  border-top:1px solid var(--color-soft-border);
}
.consult-copy h2,
.contact-box h2{margin:0 0 1.75rem;font-size:clamp(2rem,3.5vw,4rem);line-height:1.38;font-weight:900}
.consult-copy p:not(.eyebrow),
.contact-box p{margin:0;color:#333;font-size:1.05rem;line-height:2.05;font-weight:500}
.consult-cards{display:grid;gap:1rem;align-content:center}
.consult-cards a{
  display:flex;
  justify-content:space-between;
  gap:1.5rem;
  align-items:center;
  min-height:6.5rem;
  padding:1.75rem 2rem;
  border:2px solid var(--color-border);
  border-radius:.5rem;
  background:#fff;
  transition:background .2s,color .2s,transform .2s;
}
.consult-cards a:hover{background:#111;color:#fff;transform:translateY(-1px)}
.consult-cards a:active{transform:translateY(0) scale(.97)}
.consult-cards strong{font-size:clamp(1.35rem,1.7vw,1.75rem);font-weight:900;white-space:nowrap}
.consult-cards span{font-size:.92rem;line-height:1.75;color:inherit;opacity:.82}
.consult-photo-strip{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.375rem;margin-top:.625rem}
.consult-photo-strip figure{position:relative;height:16.25rem;margin:0;overflow:hidden;border-radius:.5rem;border:2px solid var(--color-border);background:#eee}
.consult-photo-strip img{width:100%;height:100%;object-fit:cover}
.consult-photo-strip figcaption{
  position:absolute;
  left:1rem;
  bottom:1rem;
  display:inline-flex;
  min-height:2.125rem;
  align-items:center;
  padding:.35rem .85rem;
  background:rgba(255,255,255,.93);
  border:1px solid var(--color-border);
  border-radius:var(--radius-pill);
  font-size:.875rem;
  font-weight:900;
}
.user-needs{padding-block:5.75rem 6.5rem;background:#fff}

/* =========================================================
   会社情報セクション（company-summary.php）
========================================================= */
.company-section{
  padding-top:6.25rem;
  padding-bottom:clamp(6rem,10vw,10rem);
  background:var(--color-soft);
  border-top:1px solid var(--color-soft-border);
  overflow:visible;
}
.company-section .section-head,
.company-grid,
.company-message-card,
.company-detail-grid{
  width:min(100% - 32px,var(--container));
  margin-inline:auto;
}
.company-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(380px,.9fr);
  gap:clamp(2rem,4vw,4rem);
  align-items:stretch;
}
.company-photo{margin:0;min-width:0;border:0;border-radius:var(--radius-card);overflow:hidden;background:#fff}
.company-photo img{
  width:100%;
  height:100%;
  min-height:460px;
  aspect-ratio:16/10;
  object-fit:cover;
  object-position:center;
  border:2px solid var(--color-border);
  border-radius:var(--radius-card);
}
/* position:relative のみを使用し、絶対配置・負のmargin・transform/translateで
   写真の上に重ねる指定は一切行わない（PCで写真とカードが被る不具合の対策）。 */
.company-info{
  position:relative;
  z-index:1;
  margin:0;
  transform:none;
  inset:auto;
  padding:clamp(1.75rem,3vw,3rem);
  background:#fff;
  border:2px solid var(--color-border);
  border-radius:var(--radius-card);
  max-height:none;
  overflow:visible;
}
@media (max-width:900px){
  .company-grid{grid-template-columns:1fr}
  .company-photo img{min-height:auto;height:auto}
  .company-info{margin:0;transform:none}
}
.company-logo-row{display:flex;align-items:center;gap:1.25rem;margin-bottom:1.75rem}
.company-logo-row img{width:4.875rem;height:3.625rem;object-fit:contain;flex:0 0 auto}
.company-logo-row strong{display:block;font-size:clamp(1.45rem,2vw,1.875rem);font-weight:900;letter-spacing:.06em}
.company-logo-row span{display:block;margin-top:.5rem;font-family:"Inter",sans-serif;font-size:.75rem;letter-spacing:.2em;font-weight:900}
.company-info p{margin:0 0 1.875rem;color:#333;font-size:1rem;line-height:2.05;font-weight:500}
.company-list{display:grid;gap:.875rem;margin:0}
.company-list div{padding:1.1rem 0;border-top:1px solid var(--color-border)}
.company-list dt{margin:0 0 .5rem;color:#777;font-size:.875rem;font-weight:900}
.company-list dd{margin:0;font-size:.98rem;line-height:1.8;font-weight:700}

.company-message-card,
.company-table-card,
.company-access-card{
  margin-top:1.5rem;
  padding:clamp(1.5rem,3vw,2.5rem);
  border:2px solid var(--color-border);
  border-radius:.5rem;
  background:#fff;
}
.company-message-card h3,
.company-table-card h3,
.company-access-card h3{margin:0 0 1rem;font-size:clamp(1.45rem,2.6vw,2rem);line-height:1.35;font-weight:900;letter-spacing:.04em}
.company-message-card p{max-width:44rem;margin:0 0 1rem;color:#222;font-size:1rem;line-height:1.95;font-weight:500}
.company-message-card .company-sign{margin-top:1.5rem;font-weight:900;text-align:right}
.company-detail-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(22rem,.95fr);gap:1.5rem;align-items:start}
.company-profile-table{width:100%;border-collapse:collapse;font-size:.96rem}
.company-profile-table th,
.company-profile-table td{padding:1rem 0;border-top:1px solid rgba(17,17,17,.18);text-align:left;vertical-align:top;line-height:1.75}
.company-profile-table th{width:10.5rem;color:#666;font-weight:900;white-space:nowrap}
.company-profile-table td{font-weight:600}
.company-profile-table a{text-decoration:underline;text-underline-offset:.2em}
.company-access-card p{margin:0 0 1rem;font-size:.98rem;line-height:1.85;font-weight:600}
.company-map{overflow:hidden;height:auto;aspect-ratio:16/9;margin:1rem 0;border:1.5px solid var(--color-border);border-radius:.5rem;background:#f3f3f3}
.company-map iframe{display:block;width:100%;height:100%;border:0}
.map-link{
  display:inline-flex;
  min-height:2.75rem;
  align-items:center;
  justify-content:center;
  padding:.7rem 1rem;
  border:1.5px solid var(--color-border);
  border-radius:var(--radius-pill);
  background:#fff;
  font-size:.92rem;
  font-weight:900;
  transition:transform .2s,background .2s,color .2s;
}
.map-link:hover{transform:translateY(-1px);background:#111;color:#fff}
.map-link:active{transform:translateY(0) scale(.96)}

/* =========================================================
   スタッフ紹介セクション・スタッフカード
========================================================= */
.staff-section{background:var(--color-soft);padding:clamp(5rem,8vw,8rem) var(--side-padding)}
.staff-section .section-head,
.staff-grid{
  width:min(100% - 32px,var(--container));
  margin-inline:auto;
}
.staff-grid{
  margin-top:clamp(2rem,4vw,3.5rem);
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(1.5rem,3vw,2.5rem);
}
.staff-card{
  min-width:0;
  display:grid;
  grid-template-columns:120px minmax(0,1fr);
  gap:clamp(1.25rem,2.5vw,2rem);
  align-items:start;
  padding:clamp(1.5rem,3vw,2.5rem);
  background:#fff;
  border:2px solid var(--color-border);
  border-radius:28px;
  overflow:hidden;
  transition:transform .25s ease,box-shadow .25s ease;
}
.staff-card:hover{transform:translateY(-.25rem);box-shadow:0 .75rem 1.75rem rgba(0,0,0,.08)}
.staff-card:active{transform:translateY(0) scale(.99)}
.staff-card figure{width:104px;aspect-ratio:1/1;margin:0;overflow:hidden;border-radius:999px;background:#eef3e6;flex-shrink:0}
.staff-card img{width:100%;height:100%;object-fit:cover;object-position:center top}
.staff-card h3,
.staff-card p,
.staff-card span{max-width:100%;overflow-wrap:anywhere;word-break:normal}
.staff-card span{display:inline-block;margin-bottom:.5rem;color:#777;font-family:"Inter",sans-serif;font-size:.75rem;letter-spacing:.22em;font-weight:900}
.staff-card h3{margin:.4rem 0 .5rem;font-size:clamp(1.5rem,2vw,2rem);line-height:1.3;font-weight:900}
.staff-card p{margin:0;line-height:1.85;color:#333;font-weight:500}
.staff-card p strong{font-weight:900}
.staff-card .staff-role{margin:0 0 .4rem;color:#666;font-size:.85rem;font-weight:900}
.staff-card .staff-lead{font-size:.95rem}
.staff-card p + p{margin-top:.75rem}
.staff-hobby{padding-top:.75rem;border-top:1px solid rgba(17,17,17,.14)}

@media (max-width:900px){
  .staff-grid{grid-template-columns:1fr}
}
@media (max-width:520px){
  .staff-card{grid-template-columns:1fr;padding:1.4rem}
  .staff-card figure{width:96px}
  .staff-card h3{font-size:1.7rem;line-height:1.3}
  .staff-card p{font-size:.95rem;line-height:1.8}
}

/* =========================================================
   お問い合わせCTA（contact-cta.php）
========================================================= */
.contact-section{padding-block:6.25rem;background:#fff}
.contact-box{padding:clamp(2.5rem,4.5vw,4.375rem);border:2px solid var(--color-border);border-radius:.5rem}
.contact-box::before{display:none}
.contact-actions{display:flex;gap:1.125rem;flex-wrap:wrap;margin-top:2.125rem}
.contact-actions a{
  display:inline-flex;
  min-height:3.5rem;
  align-items:center;
  justify-content:center;
  padding:0 1.75rem;
  border:2px solid var(--color-border);
  border-radius:var(--radius-pill);
  font-size:1.05rem;
  font-weight:900;
  transition:background .2s,color .2s,transform .2s;
}
.contact-actions a:hover{transform:translateY(-1px)}
.contact-actions a:active{transform:translateY(0) scale(.96)}
.contact-actions a:first-child{background:#111;color:#fff}
.contact-box .contact-meta{margin:1.25rem 0 0;color:#555;font-size:.88rem}

/* =========================================================
   固定CTA（template-parts/fixed-cta.php）
========================================================= */
.fixed-cta{
  position:fixed;
  left:50%;
  bottom:max(16px,env(safe-area-inset-bottom) + 16px);
  transform:translateX(-50%);
  z-index:50;
  width:min(calc(100% - 24px),33.75rem);
  min-height:56px;
  display:grid;
  grid-template-columns:1fr auto 1fr auto 1fr;
  align-items:center;
  background:#fff;
  border:2px solid var(--color-border);
  border-radius:999px;
  box-shadow:0 .625rem 1.875rem rgba(0,0,0,.12);
  white-space:normal;
  overflow:hidden;
  transition:opacity .2s,visibility .2s;
}
.fixed-cta a{
  min-height:56px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  padding:0 .5rem;
  font-size:clamp(.85rem,1.6vw,1.05rem);
  font-weight:800;
  line-height:1.1;
  text-align:center;
}
.fixed-cta a:first-child{padding-left:1.25rem}
.fixed-cta a:last-child{padding-right:1.25rem}
.fixed-cta svg{width:1.25rem;height:1.25rem;flex:0 0 auto;fill:currentColor}
.fixed-cta__line{width:1px;height:1.75rem;background:#111;opacity:.35}
body.drawer-open .fixed-cta{opacity:0;visibility:hidden;pointer-events:none}

@media (max-width:640px){
  .fixed-cta{
    width:100%;
    left:0;
    right:0;
    bottom:0;
    transform:none;
    border-radius:1.125rem 1.125rem 0 0;
    border-left:0;
    border-right:0;
    border-bottom:0;
    padding-bottom:env(safe-area-inset-bottom);
  }
  .fixed-cta a{min-height:60px;flex-direction:column;gap:.2rem;font-size:.78rem;padding:0 .25rem}
  .fixed-cta svg{width:1.375rem;height:1.375rem}
  body{padding-bottom:var(--fixed-cta-height-mobile)}
}

/* =========================================================
   ドロワーメニュー（template-parts/drawer.php）
========================================================= */
.drawer{
  position:fixed;
  inset:0;
  z-index:100;
  background:#fff;
  transform:translateY(-100%);
  transition:transform .45s cubic-bezier(.77,0,.175,1);
  overflow:auto;
}
/* 固定CTA(z-index:50)より確実に手前に表示されるようにする（開閉状態によらず明示）。*/
.drawer.is-open,
.drawer[aria-hidden="false"]{z-index:100}
.drawer.is-open{transform:translateY(0)}
.drawer-inner{min-height:100%;padding:clamp(2.5rem,5vw,4.375rem) clamp(1.25rem,5.6vw,5.375rem) 5.625rem}
.drawer-head{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem;margin-bottom:clamp(2.25rem,4vw,3.625rem)}
.drawer-brand{align-items:flex-start}
.drawer-brand strong{font-size:clamp(1.8rem,3vw,2.625rem)}
.drawer-close{display:flex;align-items:center;gap:1.5rem;font-family:"Inter",sans-serif;font-size:clamp(1.15rem,2.2vw,1.75rem);font-weight:700}
.drawer-close i{width:4.75rem;height:4.75rem;border:2px solid var(--color-border);border-radius:50%;position:relative;transition:transform .15s}
.drawer-close i::before,
.drawer-close i::after{content:"";position:absolute;left:1.125rem;top:2.25rem;width:2.375rem;height:2px;background:#111}
.drawer-close i::before{transform:rotate(45deg)}
.drawer-close i::after{transform:rotate(-45deg)}
.drawer-close:active i{transform:scale(.92)}
.drawer-frame{border:2px solid var(--color-border);border-radius:.45rem;padding:clamp(1.35rem,3vw,2.625rem) clamp(1.75rem,4.6vw,4.375rem) clamp(2rem,3.5vw,3.375rem);display:grid}
/* 防御用ルール：<ul>が出力された場合でも1カラムの縦並びを維持する（.pill-navと同じ理由）。*/
.drawer-frame ul{display:grid;list-style:none;margin:0;padding:0}
.drawer-frame li{margin:0;padding:0}
.drawer-frame a{
  min-height:clamp(5.5rem,8vw,8.125rem);
  border-bottom:2px solid var(--color-border);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
  font-size:clamp(2.75rem,5vw,4rem);
  line-height:1.1;
  font-weight:900;
}
.drawer-frame a span{
  width:3.125rem;
  height:3.125rem;
  flex:0 0 auto;
  display:grid;
  place-items:center;
  border:2px solid var(--color-border);
  border-radius:50%;
  font-family:"Inter",sans-serif;
  font-size:2.25rem;
}
.drawer-frame a.small{min-height:4.75rem;font-size:clamp(1.25rem,2vw,1.6875rem);justify-content:flex-start}
.drawer-frame a:last-child{border-bottom:0}

/* =========================================================
   フッター（footer.php）
========================================================= */
.site-footer{
  background:var(--color-cream);
  padding-top:var(--section-space-small);
  padding-bottom:calc(5rem + env(safe-area-inset-bottom));
  border-top:1px solid var(--color-soft-border);
}
.footer-inner{max-width:100%;display:grid;gap:1.5rem}
.footer-brand{align-items:flex-start;width:max-content}
.footer-nav{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem}
/* 防御用ルール：pill-navと同じ理由（<ul>1個がflexアイテムになり縦積みになるのを防ぐ）。*/
.footer-nav ul{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;list-style:none;margin:0;padding:0}
.footer-nav li{margin:0;padding:0}
.footer-nav a{
  display:inline-flex;
  min-height:2.25rem;
  align-items:center;
  padding:.35rem .85rem;
  border:1px solid #111;
  border-radius:var(--radius-pill);
  background:rgba(255,255,255,.5);
  font-weight:800;
}
.footer-note{max-width:48rem;margin:0;color:#333;font-size:.95rem;line-height:1.8;font-weight:600}
.copyright{margin:0;color:#555;font-family:"Inter",sans-serif}

/* =========================================================
   固定ページ・ブログ 共通レイアウト（page.php / home.php / archive.php /
   single.php / archive-property.php / single-property.php 等）
========================================================= */
.page-section{padding-top:6.5rem;padding-bottom:1rem}
.page-inner{padding-bottom:1rem}
.page-head{max-width:48rem}
.page-head h1{margin:.75rem 0 0;font-size:clamp(1.875rem,3.4vw,2.75rem);line-height:1.4;font-weight:900}
.page-lead{margin:1.25rem 0 0;max-width:44rem;font-size:1.05rem;line-height:1.9;color:#333}
.page-body{margin-top:1.5rem;max-width:48rem}
.page-body p{margin:0 0 1.25rem;font-size:1rem;line-height:1.9;color:#333}
.entry-content{max-width:48rem;font-size:1rem;line-height:1.9;color:#333}
.entry-content > *:first-child{margin-top:0}
.entry-content h2{margin:2.5rem 0 1rem;font-size:clamp(1.35rem,2vw,1.75rem);font-weight:900}
.entry-content h3{margin:2rem 0 .875rem;font-size:clamp(1.15rem,1.6vw,1.375rem);font-weight:800}
.entry-content p{margin:0 0 1.25rem}
.entry-content img{max-width:100%;height:auto;border-radius:var(--radius-sm)}
.entry-content ul,
.entry-content ol{margin:0 0 1.25rem;padding-left:1.5rem}
.entry-content a{color:var(--color-black);text-decoration:underline;text-underline-offset:.2em}
.sr-only-heading{position:absolute;width:1px;height:1px;overflow:hidden}

/* パンくずリスト */
.breadcrumb{margin:0 0 1.5rem}
.breadcrumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin:0;padding:0;list-style:none;font-size:.8rem;color:#777}
.breadcrumb li{display:flex;align-items:center;gap:.4rem}
.breadcrumb li:not(:last-child)::after{content:"›";color:#bbb}
.breadcrumb a{color:#777;text-decoration:underline;text-underline-offset:.2em}
.breadcrumb a:hover{color:var(--color-black)}
.breadcrumb [aria-current="page"]{color:var(--color-black);font-weight:700}

/* ブログ一覧カード */
.blog-section{padding-block:clamp(5rem,8vw,8rem)}
.blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.25rem,2vw,2rem)}
.blog-card{min-width:0;max-width:26rem;border:2px solid var(--color-border);border-radius:.5rem;overflow:hidden;background:#fff}
.blog-card-link{display:flex;flex-direction:column;height:100%;color:inherit;text-decoration:none}
.blog-card figure{margin:0;aspect-ratio:4/3;overflow:hidden;background:var(--color-soft)}
.blog-card img{width:100%;height:100%;object-fit:cover;display:block}
.blog-card-body{display:flex;flex-direction:column;gap:.625rem;padding:1.375rem 1.5rem 1.625rem;flex:1}
.blog-card-meta{display:flex;align-items:center;gap:.75rem;margin:0;font-size:.8rem;color:#777}
.blog-card-cat{display:inline-flex;align-items:center;height:1.5rem;padding:0 .7rem;border:1px solid var(--color-border);border-radius:var(--radius-pill);font-weight:700;color:var(--color-text)}
.blog-card-body h3{margin:0;font-size:1.1rem;line-height:1.6;font-weight:900}
.blog-card-excerpt{margin:0;font-size:.9rem;line-height:1.8;color:#555;flex:1}
.blog-card-readmore{margin-top:auto;font-size:.85rem;font-weight:800}

/* ブログ詳細 */
.blog-single{padding:1rem 0 clamp(3rem,5vw,4.5rem)}
.blog-single-meta{display:flex;gap:1rem;margin:.5rem 0 0;font-size:.85rem;color:#777}
.blog-single-thumb{margin:1.75rem 0;aspect-ratio:16/9;overflow:hidden;border-radius:var(--radius-sm)}
.blog-single-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.blog-single-pager{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:2.5rem 0;border-top:1px solid rgba(17,17,17,.14);padding-top:1.5rem}
.blog-single-pager a{display:flex;flex-direction:column;gap:.35rem;padding:1rem;border:2px solid var(--color-border);border-radius:.5rem}
.blog-single-pager__next{text-align:right}
.blog-single-pager span{font-size:.75rem;color:#777;font-weight:700}
.blog-single-pager strong{font-size:.95rem;font-weight:800}

/* =========================================================
   物件一覧（archive-property.php）
========================================================= */
.filter-section{padding:clamp(2rem,4vw,3rem) 0;border-bottom:1px solid rgba(0,0,0,.1)}
.filter-chips{display:flex;flex-wrap:wrap;gap:.625rem}
.filter-chip{
  display:inline-flex;
  align-items:center;
  height:2.375rem;
  padding:0 1.125rem;
  border:2px solid var(--color-border);
  border-radius:var(--radius-pill);
  background:#fff;
  font-size:.9rem;
  font-weight:700;
  cursor:pointer;
  transition:background .2s,color .2s;
}
.filter-chip input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.filter-chip:has(input:checked){background:var(--color-black);color:#fff}
.filter-chip:has(input:focus-visible){outline:2px solid var(--color-black);outline-offset:2px}
.filter-chip--static{cursor:default}
.filter-selects{display:flex;flex-wrap:wrap;gap:1.25rem;margin-top:1.75rem}
.filter-selects select{height:2.75rem;padding:0 1rem;border:2px solid var(--color-border);border-radius:.375rem;background:#fff;font-size:.92rem}
.filter-selects select:focus-visible{outline:2px solid var(--color-black);outline-offset:2px}
.filter-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:1.75rem}
.filter-actions button{
  height:2.875rem;
  padding:0 2rem;
  border:2px solid var(--color-border);
  border-radius:var(--radius-pill);
  background:var(--color-black);
  color:#fff;
  font-weight:800;
  cursor:pointer;
}
.filter-actions button:hover,
.filter-actions button:focus-visible{background:#fff;color:var(--color-black)}
.filter-reset{font-size:.9rem;color:#666;text-decoration:underline;text-underline-offset:.2em}

.area-quick-links{display:flex;flex-wrap:wrap;gap:.75rem;padding:clamp(1.75rem,3vw,2.75rem) 0}
.area-quick-links a{
  display:inline-flex;
  align-items:center;
  height:2.5rem;
  padding:0 1.25rem;
  border:2px solid var(--color-border);
  border-radius:var(--radius-pill);
  background:#fff;
  font-weight:800;
  text-decoration:none;
  color:inherit;
}
.area-quick-links a:hover,
.area-quick-links a:focus-visible{background:var(--color-black);color:#fff}

.property-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));gap:1.75rem;padding:.5rem 0 clamp(3rem,5vw,4.5rem)}
.property-grid .property-card{width:auto}
.property-grid .property-link{cursor:default}
.property-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.25rem}
.property-actions a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:2.75rem;
  padding:0 1.25rem;
  border:2px solid var(--color-border);
  border-radius:var(--radius-pill);
  font-size:.88rem;
  font-weight:800;
  transition:background .2s,color .2s;
}
.property-actions a.is-primary{background:var(--color-black);color:#fff}
.property-actions a:hover{background:var(--color-black);color:#fff}
.properties-empty{padding:2.5rem 0;color:#666}

/* properties.htmlから移植したページ見出し（archive-property.php用） */
.properties-page-section{padding-top:6.5rem;padding-bottom:1rem}
.properties-lead{margin:1.25rem 0 0;max-width:44rem;font-size:1.05rem;line-height:1.9;color:#333}

/* =========================================================
   物件詳細（single-property.php）
========================================================= */
.property-detail{padding-top:1rem;padding-bottom:var(--section-space-small)}
.detail-back-link{margin-bottom:1.5rem}
.detail-gallery{display:grid;gap:.625rem}
.detail-gallery img{width:100%;height:auto;object-fit:cover;border-radius:.375rem}
.detail-gallery-main{aspect-ratio:4/3;overflow:hidden;border-radius:.5rem}
.detail-gallery-main img{width:100%;height:100%}
.detail-gallery-sub{display:grid;grid-template-columns:repeat(3,1fr);gap:.625rem}
.detail-gallery-sub img{aspect-ratio:4/3}
.detail-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin:1.75rem 0}
.detail-head h1{margin:0;font-size:clamp(1.625rem,2.6vw,2.25rem);font-weight:900}
.detail-price{font-size:clamp(1.5rem,2.2vw,1.875rem);font-weight:900}
.detail-tags{margin-top:1rem}
.detail-table{width:100%;border-collapse:collapse;margin-top:1.5rem}
.detail-table th,
.detail-table td{text-align:left;padding:.875rem .75rem;font-size:.92rem;border-bottom:1px solid rgba(0,0,0,.12)}
.detail-table th{width:9rem;color:#777;font-weight:800}
.detail-map{margin-top:2rem}
.detail-section-title{margin-top:2.5rem;font-size:1.375rem;font-weight:900}
.detail-points{margin:1rem 0 0;padding-left:1.25rem;color:#333;line-height:1.9}
.detail-surroundings p{margin:0;font-size:1rem;line-height:1.9;color:#333}
.detail-note{
  margin-top:1.75rem;
  padding:1.25rem 1.375rem;
  background:var(--color-soft);
  border:1px solid var(--color-soft-border);
  border-radius:.5rem;
  font-size:.9rem;
  line-height:1.85;
  color:#555;
}
.detail-cta{display:flex;flex-wrap:wrap;gap:.875rem;margin-top:1.75rem}
.detail-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:3.25rem;
  padding:0 1.5rem;
  border:2px solid var(--color-border);
  border-radius:var(--radius-pill);
  font-weight:900;
  transition:background .2s,color .2s,transform .2s;
}
.detail-button:hover{transform:translateY(-1px)}
.detail-button.is-primary{background:#111;color:#fff}

/* =========================================================
   スクロールインの演出（.has-js は script.js が付与）
========================================================= */
.has-js [data-reveal]{
  opacity:0;
  transform:translateY(1.5rem);
  transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);
}
.has-js [data-reveal].is-visible{opacity:1;transform:none}
.area-grid article:nth-child(2),
.needs-grid article:nth-child(2),
.search-panel:nth-child(2),
.consult-cards a:nth-child(2),
.consult-photo-strip figure:nth-child(2),
.staff-card:nth-child(2){transition-delay:.1s}
.area-grid article:nth-child(3),
.needs-grid article:nth-child(3),
.search-panel:nth-child(3),
.consult-cards a:nth-child(3),
.consult-photo-strip figure:nth-child(3){transition-delay:.2s}
.search-panel:nth-child(4),
.consult-cards a:nth-child(4){transition-delay:.3s}

/* =========================================================
   レスポンシブ（1200 / 900 / 640 / 480 / 360）
========================================================= */
@media (max-width:1200px){
  .site-header{padding-left:1.75rem;padding-right:1.75rem}
  .pill-nav a{padding:0 .7rem;font-size:1rem}
  .hero-section{padding-left:1.75rem;padding-right:1.75rem}
  .side-peek-left{left:-1.75rem}
  .side-peek-right{right:-1.75rem}
  .property-card{width:31.25rem}
  .property-card figure{height:18.25rem}
}

/* ヘッダーの丸枠ナビは1100px以下で非表示にし、MENU（ドロワー）に集約する。
   5項目・padding基準のサイズでも、狭い画面では折り返す前に確実に隠す。
   grid-template-columnsも2カラムに変え、ナビ分の空白ができないようにする。 */
@media (max-width:1100px){
  .site-header{grid-template-columns:1fr auto}
  .pill-nav{display:none}
}

@media (max-width:900px){
  /* ヘッダーの高さは固定値ではなくmin-heightにし、ロゴ・社名・英字表記が
     3段になっても中身に合わせて自然に伸びるようにする（固定heightだと
     ファーストビュー画像に文字がはみ出す原因になるため）。 */
  :root{--header:7.375rem}
  body{background:#fff}
  main{border-radius:0}
  .site-header{
    min-height:var(--header);
    height:auto;
    grid-template-columns:1fr auto;
    align-items:center;
    padding:1rem 1.25rem;
  }
  .brand{align-items:flex-start;text-align:left;max-width:calc(100vw - 120px);overflow:visible}
  .brand-mark{width:2.75rem;height:auto}
  .brand strong{font-size:clamp(1.8rem,8vw,2.6rem);line-height:1.1;white-space:nowrap}
  .brand span{display:block;font-size:clamp(.7rem,2.8vw,.9rem);line-height:1.2;letter-spacing:.14em;white-space:nowrap}
  .menu-trigger{justify-self:end;align-self:center}
  .menu-trigger span{display:none}
  .menu-trigger i{width:3.5rem;height:3.5rem}

  .hero-section{padding:0 1rem 0}
  .hero-frame{height:78svh;min-height:34rem}
  .hero-frame::before{height:1.375rem}
  .side-peek{display:none}
  .hero-visual{margin-top:1.5rem;border-radius:.25rem}
  .hero-visual img{object-position:62% 26%}
  .hero-text{left:1.35rem;right:1.35rem;bottom:max(1.6rem, 5.5rem)}
  .hero-copy{margin-bottom:.85rem;font-size:clamp(2rem,9vw,3.25rem);line-height:1.65;letter-spacing:.05em}
  .hero-copy span{border-bottom-width:.25rem}
  .hero-lead{max-width:100%;font-size:.9rem;line-height:1.75;letter-spacing:.03em}

  .quick-search,
  .properties-section,
  .area-section{padding-left:1.125rem;padding-right:1.125rem}

  .section-head{margin-bottom:1.75rem;align-items:flex-start;gap:1rem}
  .section-head h2{font-size:clamp(1.75rem,7.4vw,2rem)}
  .circle-link{font-size:.82rem;white-space:normal;justify-content:flex-end;text-align:right;max-width:10.5rem}
  .circle-link span{width:1.875rem;height:1.875rem;font-size:1.375rem}

  .quick-search{padding-top:3.625rem;padding-bottom:3.75rem}
  .search-grid{grid-template-columns:1fr}
  .search-panel{min-height:auto;padding:2.1rem 1.6rem 2rem;border-right:0;border-bottom:2px solid #111}
  .search-panel:last-child{border-bottom:0}
  .panel-main h3{font-size:2.75rem}
  .panel-main p{font-size:.93rem}
  .panel-tags{gap:.5rem}
  .panel-tags a{font-size:.82rem;min-height:2rem;padding:.35rem .75rem}

  .area-section{padding-top:3.625rem;padding-bottom:3.625rem}
  .area-section .area-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .area-grid,
  .needs-grid{grid-template-columns:1fr;gap:.875rem}
  .area-grid article,
  .needs-grid article{min-height:auto;padding:1.5rem 1.35rem}
  .area-grid h3,
  .needs-grid h3{font-size:1.35rem}
  .area-grid p,
  .needs-grid p{font-size:.92rem}

  .properties-section{padding-top:3.75rem;padding-bottom:4.75rem}
  .property-track{gap:1.35rem;animation-duration:70s}
  .property-card{width:min(82vw,23.5rem);padding:1.35rem 1rem 1.15rem}
  .property-title{display:block;font-size:1.08rem;margin-bottom:.85rem}
  .property-title strong{display:block;margin-top:.15rem;font-size:inherit}
  .property-card figure{height:max(13.75rem,52vw)}
  .photo-pill{right:.75rem;bottom:.75rem;font-size:.88rem;min-height:2.125rem}
  .property-address{font-size:.9rem}
  .property-spec b{font-size:1.25rem}
  .property-spec span{min-height:4.25rem;padding:.65rem .75rem}

  .consult-section{display:block;padding-block:4.35rem}
  .consult-copy h2,
  .contact-box h2{font-size:clamp(1.8rem,7.5vw,2.1rem)}
  .consult-copy p:not(.eyebrow),
  .contact-box p{font-size:.95rem}
  .consult-cards{margin-top:2rem}
  .consult-cards a{min-height:auto;display:block;padding:1.35rem}
  .consult-cards strong{display:block;font-size:1.5rem;margin-bottom:.45rem}
  .consult-photo-strip{grid-template-columns:1fr;gap:.75rem;margin-top:1.75rem}
  .consult-photo-strip figure{height:13.75rem}

  .user-needs{padding-block:3.875rem 4.25rem}

  .company-section{padding-block:3.875rem 4.25rem}
  .company-info{padding:1.75rem 1.35rem}
  .company-logo-row{gap:.875rem;margin-bottom:1.35rem}
  .company-logo-row img{width:3.5rem;height:2.625rem}
  .company-logo-row strong{font-size:1.35rem}
  .company-info p,
  .company-list dd{font-size:.9rem}
  .company-detail-grid{grid-template-columns:1fr;gap:1rem}
  .company-message-card,
  .company-table-card,
  .company-access-card{margin-top:1rem;padding:1.5rem 1.25rem}
  .company-profile-table,
  .company-profile-table tbody,
  .company-profile-table tr,
  .company-profile-table th,
  .company-profile-table td{display:block;width:100%}
  .company-profile-table tr{padding:.8rem 0;border-top:1px solid rgba(17,17,17,.18)}
  .company-profile-table th,
  .company-profile-table td{padding:0;border:0}
  .company-profile-table th{margin-bottom:.25rem;font-size:.82rem}
  .company-profile-table td{font-size:.92rem}
  .company-map{aspect-ratio:4/3}

  .contact-section{padding-block:3.875rem}
  .contact-box{padding:2rem 1.5rem}
  .contact-actions a{width:100%;font-size:1rem}

  .page-section{padding-top:5.25rem}
  .properties-page-section{padding-top:5.25rem}

  .drawer-inner{padding:2.125rem 1.25rem 3.75rem}
  .drawer-head{margin-bottom:2.35rem}
  .drawer-brand .brand-mark{width:2.75rem;height:2.05rem}
  .drawer-brand strong{font-size:1.7rem}
  .drawer-close{font-size:1.1rem;gap:.75rem}
  .drawer-close i{width:3.375rem;height:3.375rem}
  .drawer-close i::before,
  .drawer-close i::after{left:.875rem;top:1.58rem;width:1.55rem}
  .drawer-frame{padding:1.35rem 1.75rem 2.25rem}
  .drawer-frame a{min-height:6rem;font-size:2.75rem}
  .drawer-frame a.small{min-height:3.875rem;font-size:1.22rem}
  .drawer-frame a span{width:2.5rem;height:2.5rem;font-size:1.75rem}

  .site-footer{padding-top:var(--section-space-small)}
  .footer-nav{gap:.5rem}
  .footer-nav a{font-size:.9rem}

  .blog-single-pager{grid-template-columns:1fr}
  .blog-single-pager__next{text-align:left}

  .blog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:640px){
  .blog-grid{grid-template-columns:1fr}
  .blog-card{max-width:none}
  .blog-section .section-head{display:block}
}

@media (max-width:480px){
  .hero-frame{min-height:32rem}
  .hero-copy{font-size:clamp(1.85rem,10vw,2.7rem)}
}

@media (max-width:390px){
  .brand strong{font-size:1.85rem}
  .brand span{font-size:.68rem;letter-spacing:.1em}
  .menu-trigger i{width:3.25rem;height:3.25rem}
}

@media (max-width:360px){
  .area-section .area-grid{grid-template-columns:1fr}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,
  *::before,
  *::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition:none!important;
    scroll-behavior:auto!important;
  }
  .property-track,
  .value-track{animation:none}
}


/* =========================================================
   Final Chappy repair 2026-07-23
   Header / Property archive / Company overlap / Staff cards
   直近のWordPress化で崩れた3点を最終上書き補正。
========================================================= */

/* 共通：コンテンツ基準線を中央1180pxに統一 */
:root{
  --container:1180px;
  --side-padding:clamp(1rem,4vw,2.5rem);
}

.site-header{
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  overflow:visible;
}

.pill-nav{
  justify-self:start;
  min-width:0;
  max-width:100%;
  overflow:visible;
}

.pill-nav,
.pill-nav ul{
  flex-wrap:nowrap;
}

.pill-nav a{
  padding-inline:clamp(.75rem,1vw,1rem);
  white-space:nowrap;
  word-break:keep-all;
}

.menu-trigger{
  justify-self:end;
  min-width:max-content;
}

/* 物件一覧：左端に寄る原因になる padding shorthand を上書き */
body.post-type-archive-property .page-section,
body.post-type-archive-property .filter-section,
body.post-type-archive-property .properties-section,
body.post-type-archive-property .area-quick-links,
body.post-type-archive-property .property-grid{
  width:min(calc(100% - 64px),var(--container));
  margin-inline:auto;
  padding-left:0;
  padding-right:0;
}

body.post-type-archive-property .page-section{
  padding-top:clamp(4rem,7vw,6.5rem);
  padding-bottom:clamp(1.5rem,3vw,2.5rem);
}

body.post-type-archive-property .filter-section{
  padding-top:clamp(1.75rem,3vw,2.75rem);
  padding-bottom:clamp(1.75rem,3vw,2.75rem);
}

body.post-type-archive-property .area-quick-links{
  padding-top:clamp(1.5rem,2.5vw,2.5rem);
  padding-bottom:clamp(1.5rem,2.5vw,2.5rem);
}

body.post-type-archive-property .properties-section{
  padding-top:0;
  padding-bottom:clamp(4rem,6vw,6rem);
}

body.post-type-archive-property .property-grid{
  padding-top:.5rem;
  padding-bottom:clamp(4rem,6vw,6rem);
}

/* company-summary：PCでは写真と情報カードを被せない。 */
.company-section .section-head,
.company-grid,
.company-message-card,
.company-detail-grid{
  width:min(calc(100% - 64px),var(--container));
  margin-inline:auto;
}

.company-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(360px,.88fr);
  gap:clamp(1.75rem,3.5vw,3.25rem);
  align-items:stretch;
  overflow:visible;
}

.company-photo{
  position:relative;
  z-index:0;
  margin:0;
  min-width:0;
  overflow:hidden;
}

.company-photo img{
  display:block;
  width:100%;
  height:100%;
  min-height:420px;
  max-height:620px;
  aspect-ratio:16/10;
  object-fit:cover;
  border:2px solid var(--color-border);
  border-radius:var(--radius-card);
}

.company-info{
  position:relative !important;
  z-index:1;
  inset:auto !important;
  transform:none !important;
  translate:none !important;
  margin:0 !important;
  min-width:0;
  max-width:none;
  height:auto;
  max-height:none;
  overflow:visible;
  align-self:stretch;
}

.company-logo-row{
  min-width:0;
}

.company-logo-row > div{
  min-width:0;
}

.company-logo-row strong,
.company-logo-row span,
.company-list dd{
  overflow-wrap:anywhere;
  word-break:normal;
}

/* fixed CTAが下部カードに強く被らないように余白を確保 */
.company-section,
.staff-section,
.contact-section{
  scroll-margin-top:calc(var(--header) + 1rem);
}

.company-section{
  padding-bottom:clamp(6.5rem,9vw,10rem);
}

/* Staff：中途半端な画面幅では2カラムにせず、文字つぶれを回避 */
.staff-section .section-head,
.staff-grid{
  width:min(calc(100% - 64px),var(--container));
  margin-inline:auto;
}

.staff-grid{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,520px),1fr));
  gap:clamp(1.25rem,2.5vw,2rem);
  align-items:stretch;
}

.staff-card{
  min-width:0;
  grid-template-columns:96px minmax(0,1fr);
  gap:clamp(1rem,2vw,1.5rem);
  padding:clamp(1.35rem,2.4vw,2rem);
  overflow:hidden;
  border-radius:28px;
}

.staff-card > div{
  min-width:0;
}

.staff-card figure{
  width:88px;
}

.staff-card span{
  display:block;
  white-space:normal;
  letter-spacing:.18em;
  overflow-wrap:anywhere;
}

.staff-card h3{
  font-size:clamp(1.45rem,1.8vw,1.8rem);
}

.staff-card p{
  overflow-wrap:anywhere;
  word-break:normal;
  line-height:1.85;
}

/* PCだけ2カラム固定。小さめノート・タブレットでは1カラムにして可読性優先 */
@media (min-width:1180px){
  .staff-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:1179px){
  .staff-grid{
    grid-template-columns:1fr;
  }
}

/* タブレット以下：会社情報は縦積み、余白は守る */
@media (max-width:900px){
  .site-header{
    grid-template-columns:1fr auto;
  }

  .company-section .section-head,
  .company-grid,
  .company-message-card,
  .company-detail-grid,
  .staff-section .section-head,
  .staff-grid,
  body.post-type-archive-property .page-section,
  body.post-type-archive-property .filter-section,
  body.post-type-archive-property .properties-section,
  body.post-type-archive-property .area-quick-links,
  body.post-type-archive-property .property-grid{
    width:min(calc(100% - 32px),var(--container));
  }

  .company-grid{
    grid-template-columns:1fr;
    gap:1.25rem;
  }

  .company-photo img{
    height:auto;
    min-height:0;
    max-height:none;
  }

  .company-info{
    align-self:auto;
  }

  .staff-section .section-head{
    display:flex;
    align-items:flex-start;
  }
}

/* スマホ：ヘッダー内で社名・英字を必ず収める */
@media (max-width:640px){
  :root{--header:7.75rem}

  .site-header{
    min-height:var(--header);
    padding:.95rem 1rem .9rem;
    align-items:center;
  }

  .brand{
    max-width:calc(100vw - 96px);
    align-items:flex-start;
    text-align:left;
    overflow:hidden;
  }

  .brand-mark{
    width:2.45rem;
    height:auto;
  }

  .brand strong{
    font-size:clamp(1.75rem,8.5vw,2.35rem);
    line-height:1.05;
    letter-spacing:.035em;
    white-space:nowrap;
  }

  .brand span{
    max-width:100%;
    font-size:clamp(.62rem,2.65vw,.78rem);
    line-height:1.15;
    letter-spacing:.12em;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:clip;
  }

  .menu-trigger{
    gap:.5rem;
  }

  .menu-trigger i{
    width:3.25rem;
    height:3.25rem;
  }

  .hero-section{
    padding-top:0;
  }

  .staff-section{
    padding-left:0;
    padding-right:0;
  }

  .staff-section .section-head{
    display:block;
  }

  .staff-section .circle-link{
    margin-top:1rem;
    max-width:none;
    justify-content:flex-start;
    text-align:left;
  }

  .staff-grid{
    grid-template-columns:1fr;
    gap:1rem;
  }

  .staff-card{
    grid-template-columns:1fr;
    padding:1.25rem;
  }

  .staff-card figure{
    width:88px;
  }

  .staff-card h3{
    font-size:1.55rem;
  }

  .staff-card p{
    font-size:.92rem;
    line-height:1.8;
  }

  body.post-type-archive-property .filter-chips,
  body.post-type-archive-property .filter-selects,
  body.post-type-archive-property .filter-actions,
  body.post-type-archive-property .area-quick-links{
    gap:.55rem;
  }

  body.post-type-archive-property .filter-chip,
  body.post-type-archive-property .area-quick-links a{
    min-height:2.25rem;
    height:auto;
    padding:.35rem .75rem;
    font-size:.82rem;
  }

  body.post-type-archive-property .filter-selects{
    display:grid;
    grid-template-columns:1fr;
  }

  body.post-type-archive-property .filter-selects select,
  body.post-type-archive-property .filter-actions button,
  body.post-type-archive-property .filter-reset{
    width:100%;
  }
}

@media (max-width:390px){
  .brand strong{
    font-size:1.65rem;
  }

  .brand span{
    font-size:.58rem;
    letter-spacing:.08em;
  }

  .menu-trigger i{
    width:3rem;
    height:3rem;
  }
}


/* Archive property nested filter correction */
body.post-type-archive-property .filter-section > form{
  width:100%;
  max-width:100%;
}
body.post-type-archive-property .filter-section > .area-quick-links{
  width:100%;
  margin-inline:0;
  padding-left:0;
  padding-right:0;
}


/* =========================================================
   Final Chappy repair 2026-07-24
   Staff full on top / Property archive UI / Property detail UI
========================================================= */

/* トップページ：スタッフ詳細リンクは使わず、トップ内に詳細を表示する */
.home .staff-section .circle-link,
.front-page .staff-section .circle-link{
  display:none;
}

.home .staff-section,
.front-page .staff-section{
  padding-top:clamp(5rem,8vw,8rem);
  padding-bottom:clamp(5rem,8vw,8rem);
}

.home .staff-grid,
.front-page .staff-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:stretch;
}

.home .staff-card,
.front-page .staff-card{
  grid-template-columns:120px minmax(0,1fr);
  min-height:auto;
  padding:clamp(1.75rem,3vw,2.65rem);
}

.home .staff-card figure,
.front-page .staff-card figure{
  width:108px;
}

.home .staff-card .staff-hobby,
.front-page .staff-card .staff-hobby{
  margin-top:1rem;
  padding-top:1rem;
  border-top:1px solid rgba(17,17,17,.14);
}

@media (max-width:1180px){
  .home .staff-grid,
  .front-page .staff-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width:640px){
  .home .staff-card,
  .front-page .staff-card{
    grid-template-columns:1fr;
  }

  .home .staff-card figure,
  .front-page .staff-card figure{
    width:92px;
  }
}

/* 物件一覧ページ：白い余白の中に埋もれない、見やすい検索UIへ整理 */
body.post-type-archive-property .page-section{
  background:#fff;
  padding-top:clamp(3.5rem,6vw,5.5rem);
  padding-bottom:clamp(2rem,3vw,3rem);
}

body.post-type-archive-property .page-inner{
  width:min(calc(100% - 32px),var(--container));
  margin-inline:auto;
  padding:0;
}

body.post-type-archive-property .page-head{
  max-width:62rem;
}

body.post-type-archive-property .page-head h1{
  font-size:clamp(2.4rem,4vw,4.2rem);
  line-height:1.15;
}

body.post-type-archive-property .page-lead{
  max-width:56rem;
  font-size:clamp(1rem,1.3vw,1.18rem);
  font-weight:700;
}

body.post-type-archive-property .filter-section.property-filter-section{
  width:min(calc(100% - 32px),var(--container));
  margin:0 auto;
  padding:0 0 clamp(2rem,4vw,3rem);
  border:0;
  background:transparent;
}

.property-filter-card{
  padding:clamp(1.5rem,3.2vw,2.75rem);
  background:var(--color-soft);
  border:2px solid var(--color-border);
  border-radius:28px;
  box-shadow:0 .75rem 2rem rgba(0,0,0,.04);
}

.property-filter-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(16rem,.8fr);
  gap:clamp(1rem,3vw,3rem);
  align-items:end;
  margin-bottom:clamp(1.5rem,3vw,2.25rem);
  padding-bottom:1.25rem;
  border-bottom:1px solid rgba(17,17,17,.18);
}

.property-filter-head h2{
  margin:0;
  font-size:clamp(1.5rem,2.4vw,2.35rem);
  line-height:1.3;
  font-weight:900;
}

.property-filter-head p{
  margin:0;
  color:#444;
  font-size:.98rem;
  line-height:1.85;
  font-weight:700;
}

.property-filter-form{
  display:grid;
  gap:clamp(1.25rem,2.4vw,2rem);
}

.filter-block{
  min-width:0;
}

.filter-block h3{
  margin:0 0 .85rem;
  color:#777;
  font-family:"Inter","Noto Sans JP",sans-serif;
  font-size:.86rem;
  letter-spacing:.16em;
  font-weight:900;
}

.filter-note{
  color:#666;
  font-size:.92rem;
  font-weight:700;
}

.filter-block--selects .filter-selects{
  margin-top:0;
}

body.post-type-archive-property .filter-chips{
  gap:.7rem;
}

body.post-type-archive-property .filter-chip,
body.post-type-archive-property .area-quick-links a{
  min-height:2.65rem;
  height:auto;
  padding:.45rem 1.05rem;
  background:#fff;
  border:2px solid var(--color-border);
  border-radius:var(--radius-pill);
  font-size:.92rem;
  font-weight:900;
  line-height:1.25;
}

body.post-type-archive-property .filter-chip span{
  line-height:1.25;
}

body.post-type-archive-property .filter-selects{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,18rem));
  gap:1rem;
}

body.post-type-archive-property .filter-selects label{
  display:grid;
  gap:.45rem;
  color:#777;
  font-size:.8rem;
  font-weight:900;
  letter-spacing:.08em;
}

body.post-type-archive-property .filter-selects select{
  width:100%;
  height:3.2rem;
  padding:0 1rem;
  border:2px solid var(--color-border);
  border-radius:14px;
  background:#fff;
  color:#111;
  font-size:.95rem;
  font-weight:800;
}

body.post-type-archive-property .filter-actions{
  margin-top:.25rem;
  display:flex;
  align-items:center;
  gap:1rem;
  flex-wrap:wrap;
}

body.post-type-archive-property .filter-actions button{
  min-height:3.25rem;
  height:auto;
  padding:.65rem 2rem;
  border-radius:var(--radius-pill);
  font-size:1rem;
}

body.post-type-archive-property .area-quick-links{
  width:100%;
  margin-top:clamp(1rem,2vw,1.5rem);
  padding:0;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.75rem;
}

body.post-type-archive-property .area-quick-links > span{
  color:#777;
  font-size:.86rem;
  font-weight:900;
  letter-spacing:.12em;
  margin-right:.25rem;
}

body.post-type-archive-property .properties-section{
  width:min(calc(100% - 32px),var(--container));
  margin:0 auto;
  padding:0 0 clamp(5rem,8vw,8rem);
}

body.post-type-archive-property .property-grid{
  width:100%;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(1.25rem,2.2vw,2rem);
}

body.post-type-archive-property .property-card{
  width:auto;
  padding:clamp(1.15rem,2vw,1.5rem);
  border:2px solid var(--color-border);
  border-radius:22px;
  background:#fff;
  box-shadow:0 .6rem 1.7rem rgba(0,0,0,.04);
}

body.post-type-archive-property .property-card figure{
  height:auto;
  aspect-ratio:4/3;
  border-radius:16px;
}

body.post-type-archive-property .property-title{
  gap:.75rem;
  flex-wrap:wrap;
  margin-bottom:.85rem;
  font-size:clamp(1.05rem,1.4vw,1.35rem);
}

body.post-type-archive-property .property-label{
  margin:.9rem 0 .35rem;
  font-size:1.05rem;
  line-height:1.55;
  font-weight:900;
}

body.post-type-archive-property .property-address{
  margin:.25rem 0 1rem;
  color:#555;
  font-size:.92rem;
  line-height:1.6;
}

body.post-type-archive-property .property-spec{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.75rem;
  margin-top:1rem;
}

body.post-type-archive-property .property-spec span{
  display:grid;
  gap:.25rem;
  padding:.8rem;
  background:var(--color-soft);
  border-radius:14px;
}

body.post-type-archive-property .property-actions{
  display:grid;
  grid-template-columns:1fr;
  gap:.65rem;
  margin-top:1rem;
}

body.post-type-archive-property .property-actions a{
  min-height:2.85rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.65rem 1rem;
  border:2px solid var(--color-border);
  border-radius:var(--radius-pill);
  font-weight:900;
}

body.post-type-archive-property .property-actions a.is-primary{
  background:#111;
  color:#fff;
}

.properties-empty{
  width:min(calc(100% - 32px),var(--container));
  margin:clamp(1.5rem,3vw,2.5rem) auto clamp(4rem,6vw,6rem);
  padding:clamp(1.5rem,3vw,2.75rem);
  background:#fff;
  border:2px solid var(--color-border);
  border-radius:28px;
}

.properties-empty h2{
  margin:.5rem 0 1rem;
  font-size:clamp(1.5rem,2.4vw,2.2rem);
  line-height:1.4;
  font-weight:900;
}

.properties-empty p{
  margin:0;
  color:#444;
  line-height:1.9;
  font-weight:700;
}

/* 物件詳細ページ：写真・概要・CTAを1画面で把握しやすく再構成 */
.single-property .page-section{
  padding-top:clamp(2.5rem,5vw,4.5rem);
  padding-bottom:1rem;
}

.single-property .page-inner{
  width:min(calc(100% - 32px),var(--container));
  margin-inline:auto;
  padding:0;
}

.single-property .property-detail{
  width:min(calc(100% - 32px),var(--container));
  margin:0 auto;
  padding:0 0 clamp(5rem,8vw,8rem);
}

.property-detail-hero{
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(360px,.88fr);
  gap:clamp(1.5rem,3vw,3rem);
  align-items:start;
}

.single-property .detail-gallery{
  min-width:0;
  display:grid;
  gap:.75rem;
}

.single-property .detail-gallery-main{
  margin:0;
  aspect-ratio:4/3;
  border:2px solid var(--color-border);
  border-radius:24px;
  overflow:hidden;
  background:#f2f2f2;
}

.single-property .detail-gallery-main img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.single-property .detail-gallery-sub{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.75rem;
}

.single-property .detail-gallery-sub figure{
  margin:0;
  aspect-ratio:4/3;
  border:2px solid var(--color-border);
  border-radius:16px;
  overflow:hidden;
  background:#f2f2f2;
}

.single-property .detail-gallery-sub img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.detail-summary-card,
.detail-card{
  background:#fff;
  border:2px solid var(--color-border);
  border-radius:28px;
  padding:clamp(1.5rem,3vw,2.75rem);
}

.detail-summary-card{
  position:sticky;
  top:calc(var(--header) + 1rem);
}

.detail-summary-card h1{
  margin:.45rem 0 .85rem;
  font-size:clamp(1.65rem,2.5vw,2.6rem);
  line-height:1.25;
  font-weight:900;
}

.detail-summary-card .detail-price{
  margin:0 0 1rem;
  font-size:clamp(1.45rem,2.2vw,2.1rem);
  font-weight:900;
}

.detail-address{
  margin:0 0 1.25rem;
  padding:.9rem 1rem;
  background:var(--color-soft);
  border-radius:16px;
  color:#333;
  font-weight:800;
  line-height:1.7;
}

.detail-description{
  margin:0 0 1.25rem;
  max-width:none;
}

.detail-description p{
  margin:0;
  color:#333;
  line-height:1.9;
  font-weight:600;
}

.detail-cta--summary{
  margin-top:1.4rem;
  display:grid;
  grid-template-columns:1fr;
}

.property-detail-body{
  margin-top:clamp(1.5rem,3vw,3rem);
  display:grid;
  gap:clamp(1.25rem,2.5vw,2rem);
}

.single-property .detail-section-title{
  margin:0 0 1rem;
  font-size:clamp(1.25rem,2vw,1.6rem);
  line-height:1.4;
  font-weight:900;
}

.single-property .detail-table{
  width:100%;
  margin:0;
  border-collapse:collapse;
}

.single-property .detail-table th,
.single-property .detail-table td{
  padding:1rem .75rem;
  border-bottom:1px solid rgba(17,17,17,.16);
  text-align:left;
  vertical-align:top;
  font-size:.98rem;
  line-height:1.7;
}

.single-property .detail-table th{
  width:12rem;
  color:#777;
  font-weight:900;
}

.single-property .detail-map{
  margin-top:0;
  aspect-ratio:16/9;
  border-radius:20px;
  overflow:hidden;
}

.single-property .detail-map iframe{
  width:100%;
  height:100%;
  border:0;
}

.single-property .detail-note{
  margin:0;
  padding:1.2rem 1.4rem;
  background:var(--color-soft);
  border:1px solid var(--color-soft-border);
  border-radius:18px;
  color:#555;
  line-height:1.85;
  font-weight:600;
}

.single-property .detail-cta{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  margin-top:0;
}

.single-property .detail-button{
  min-height:3.2rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.75rem 1.25rem;
  border:2px solid var(--color-border);
  border-radius:var(--radius-pill);
  background:#fff;
  font-weight:900;
  line-height:1.4;
}

.single-property .detail-button.is-primary{
  background:#111;
  color:#fff;
}

@media (max-width:1024px){
  body.post-type-archive-property .property-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .property-detail-hero{
    grid-template-columns:1fr;
  }

  .detail-summary-card{
    position:static;
  }
}

@media (max-width:760px){
  .property-filter-head{
    grid-template-columns:1fr;
    align-items:start;
  }

  body.post-type-archive-property .filter-selects{
    grid-template-columns:1fr;
  }

  body.post-type-archive-property .property-grid{
    grid-template-columns:1fr;
  }

  body.post-type-archive-property .page-head h1{
    font-size:clamp(2.2rem,11vw,3.2rem);
  }

  .single-property .property-detail,
  .single-property .page-inner{
    width:min(calc(100% - 32px),var(--container));
  }

  .single-property .detail-table,
  .single-property .detail-table tbody,
  .single-property .detail-table tr,
  .single-property .detail-table th,
  .single-property .detail-table td{
    display:block;
    width:100%;
  }

  .single-property .detail-table tr{
    padding:.85rem 0;
    border-bottom:1px solid rgba(17,17,17,.16);
  }

  .single-property .detail-table th,
  .single-property .detail-table td{
    padding:0;
    border:0;
  }

  .single-property .detail-table th{
    margin-bottom:.25rem;
    font-size:.86rem;
  }

  .single-property .detail-map{
    aspect-ratio:4/3;
  }

  .single-property .detail-cta{
    display:grid;
    grid-template-columns:1fr;
  }

  .single-property .detail-button{
    width:100%;
  }
}

@media (max-width:520px){
  .property-filter-card,
  .detail-summary-card,
  .detail-card{
    border-radius:22px;
  }

  body.post-type-archive-property .filter-chip,
  body.post-type-archive-property .area-quick-links a{
    font-size:.86rem;
    padding:.4rem .78rem;
  }

  body.post-type-archive-property .area-quick-links > span{
    width:100%;
  }

  .single-property .detail-gallery-sub{
    gap:.45rem;
  }
}


/* =========================================================
   Chappy final v3: top nav removal / drawer compact / property UI
========================================================= */

/* トップページ左上の丸枠ナビは出さない。左カラムは残し、中央ロゴと右MENUのバランスを維持する。 */
.pill-nav--front-empty{
  visibility:hidden;
  pointer-events:none;
}
body.home .site-header .pill-nav,
body.front-page .site-header .pill-nav{
  visibility:hidden;
  pointer-events:none;
}

/* 下層ページの丸枠ナビは従来通り。ただし小さめにして崩れにくくする。 */
.pill-nav a{
  padding-inline:clamp(.75rem,1.2vw,1.05rem);
  font-size:clamp(.95rem,1.05vw,1.05rem);
}

/* MENUを開いた後のドロワーを少し小さく、読みやすく。 */
.drawer-inner{
  width:min(calc(100% - 32px),960px);
  margin-inline:auto;
  padding-block:clamp(1.25rem,3.2vw,2.75rem);
}
.drawer-frame{
  padding:clamp(1.1rem,2.4vw,2rem) clamp(1.25rem,3vw,3rem);
}
.drawer-frame a{
  min-height:clamp(3.4rem,6vw,5.25rem);
  font-size:clamp(1.55rem,3.4vw,2.65rem);
  line-height:1.18;
}
.drawer-frame a.small{
  min-height:3.35rem;
  font-size:clamp(1rem,2vw,1.25rem);
}

/* 物件情報ページ：使い方カード */
.property-guide-section{
  padding-inline:max(var(--side-padding),calc((100% - var(--container)) / 2));
  padding-bottom:clamp(1.5rem,3vw,2.5rem);
  background:#fff;
}
.property-guide-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(1rem,2vw,1.5rem);
}
.property-guide-grid article{
  min-width:0;
  padding:clamp(1.25rem,2.4vw,2rem);
  background:var(--color-soft);
  border:2px solid var(--color-border);
  border-radius:24px;
}
.property-guide-grid span{
  display:inline-flex;
  margin-bottom:.65rem;
  color:#777;
  font-family:"Inter",sans-serif;
  font-size:.78rem;
  letter-spacing:.18em;
  font-weight:900;
}
.property-guide-grid h2{
  margin:0 0 .55rem;
  font-size:clamp(1.2rem,1.8vw,1.55rem);
  line-height:1.35;
  font-weight:900;
}
.property-guide-grid p{
  margin:0;
  color:#333;
  font-size:.95rem;
  line-height:1.85;
  font-weight:650;
}

/* 物件一覧の検索UIをよりカード型に整理 */
.property-filter-card{
  background:#fff;
}
body.post-type-archive-property .property-filter-form{
  grid-template-columns:1fr;
}
body.post-type-archive-property .filter-block{
  padding:clamp(1rem,2vw,1.5rem);
  background:var(--color-soft);
  border:1px solid var(--color-soft-border);
  border-radius:20px;
}
body.post-type-archive-property .filter-chip input:checked + span,
body.post-type-archive-property .filter-chip:has(input:checked){
  background:#111;
  color:#fff;
}
body.post-type-archive-property .filter-actions{
  padding-top:.25rem;
}
body.post-type-archive-property .property-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(1.25rem,2vw,2rem);
}
body.post-type-archive-property .property-card .property-spec{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
body.post-type-archive-property .property-card .property-spec span{
  min-width:0;
}
body.post-type-archive-property .property-card .property-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.75rem;
}

/* 個別物件ページ：主要情報を見やすく */
.detail-key-specs{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.65rem;
  margin:1.2rem 0 0;
}
.detail-key-specs span{
  min-width:0;
  padding:.85rem .9rem;
  background:var(--color-soft);
  border:1px solid var(--color-soft-border);
  border-radius:14px;
}
.detail-key-specs small{
  display:block;
  margin-bottom:.25rem;
  color:#777;
  font-size:.72rem;
  font-weight:900;
}
.detail-key-specs b{
  display:block;
  color:#111;
  font-size:.95rem;
  line-height:1.4;
  font-weight:900;
  overflow-wrap:anywhere;
}
.detail-remarks p,
.detail-surroundings p{
  margin:0;
  line-height:1.9;
  font-weight:650;
}

@media (max-width:1024px){
  .property-guide-grid{
    grid-template-columns:1fr;
  }
  body.post-type-archive-property .property-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:760px){
  .site-header{
    grid-template-columns:1fr auto;
  }
  .pill-nav--front-empty,
  body.home .site-header .pill-nav,
  body.front-page .site-header .pill-nav{
    display:none;
  }
  body.post-type-archive-property .property-grid{
    grid-template-columns:1fr;
  }
  body.post-type-archive-property .property-card .property-actions{
    grid-template-columns:1fr;
  }
  .detail-key-specs{
    grid-template-columns:1fr;
  }
}

@media (max-width:520px){
  .drawer-frame a{
    min-height:3.1rem;
    font-size:1.35rem;
  }
  .drawer-frame a.small{
    min-height:2.8rem;
    font-size:1rem;
  }
}


/* =========================================================
   Chappy final v4: property admin/menu cleanup + final UI polish
========================================================= */

/* トップページはロゴとMENUを主役にし、左ナビを完全に見せない */
body.home .site-header .pill-nav,
body.front-page .site-header .pill-nav,
.pill-nav--front-empty{
  display:block;
  visibility:hidden;
  pointer-events:none;
}

/* ドロワーは少し小さめにして、MENUを開いた後も圧迫感を出さない */
.drawer-inner{
  width:min(calc(100% - 32px),900px);
}
.drawer-frame a{
  min-height:clamp(3.05rem,5.2vw,4.7rem);
  font-size:clamp(1.35rem,3vw,2.25rem);
}
.drawer-frame a.small{
  min-height:2.9rem;
  font-size:clamp(.95rem,1.8vw,1.12rem);
}

/* 物件情報ページ：タイトル周りを読みやすく中央コンテナに収める */
body.post-type-archive-property .page-section{
  padding-top:clamp(3.5rem,6vw,5.5rem);
  padding-bottom:clamp(1rem,2vw,2rem);
}
body.post-type-archive-property .page-inner{
  width:min(calc(100% - 32px),var(--container));
  margin-inline:auto;
  padding:0;
}
body.post-type-archive-property .page-head{
  max-width:58rem;
}
body.post-type-archive-property .page-head h1{
  font-size:clamp(2.4rem,4.8vw,4.6rem);
  line-height:1.12;
}
body.post-type-archive-property .page-lead{
  max-width:52rem;
  font-size:clamp(1rem,1.25vw,1.13rem);
}

/* 物件ページの使い方カード */
.property-guide-section{
  padding-top:0;
}
.property-guide-grid article{
  background:#fff;
  box-shadow:0 .7rem 1.8rem rgba(0,0,0,.035);
}

/* 絞り込みUIをスタッフ/利用者双方が見やすいカードに整える */
.property-filter-section{
  padding-top:clamp(1rem,2.5vw,2rem);
  padding-bottom:clamp(2rem,4vw,3.5rem);
}
.property-filter-card{
  width:min(100%,var(--container));
  margin-inline:auto;
  border:2px solid var(--color-border);
  border-radius:32px;
  padding:clamp(1.25rem,3vw,2.5rem);
  background:#fff;
  box-shadow:0 .9rem 2rem rgba(0,0,0,.04);
}
.property-filter-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(18rem,28rem);
  gap:1.5rem;
  align-items:end;
  margin-bottom:clamp(1rem,2vw,1.75rem);
}
.property-filter-head h2{
  margin:.35rem 0 0;
  font-size:clamp(1.7rem,2.6vw,2.5rem);
  line-height:1.25;
  font-weight:900;
}
.property-filter-head p{
  margin:0;
  color:#444;
  line-height:1.8;
  font-weight:700;
}
body.post-type-archive-property .filter-block h3{
  margin:0 0 .8rem;
  font-size:1.05rem;
  font-weight:900;
}
body.post-type-archive-property .filter-chips{
  display:flex;
  flex-wrap:wrap;
  gap:.7rem;
}
body.post-type-archive-property .filter-chip{
  cursor:pointer;
}
body.post-type-archive-property .filter-chip input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
body.post-type-archive-property .filter-chip span,
body.post-type-archive-property .filter-chip{
  min-height:2.55rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.45rem 1rem;
  border:2px solid var(--color-border);
  border-radius:var(--radius-pill);
  background:#fff;
  font-weight:900;
  line-height:1.1;
}
body.post-type-archive-property .filter-chip:has(input) {
  border:0;
  padding:0;
  background:transparent;
}
body.post-type-archive-property .filter-chip input:checked + span{
  background:#111;
  color:#fff;
}
body.post-type-archive-property .filter-selects{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
}
body.post-type-archive-property .filter-selects label{
  display:grid;
  gap:.45rem;
  font-weight:900;
}
body.post-type-archive-property .filter-selects select{
  width:100%;
  min-height:3rem;
  border:2px solid var(--color-border);
  border-radius:14px;
  padding:.45rem .85rem;
  background:#fff;
  font:inherit;
  font-weight:800;
}
body.post-type-archive-property .filter-actions{
  display:flex;
  align-items:center;
  gap:1rem;
  flex-wrap:wrap;
  margin-top:.75rem;
}
body.post-type-archive-property .filter-actions button{
  min-height:3.2rem;
  padding:.75rem 1.6rem;
  border-radius:var(--radius-pill);
  background:#111;
  color:#fff;
  font-weight:900;
}
body.post-type-archive-property .filter-reset{
  color:#555;
  text-decoration:underline;
  font-weight:900;
}

/* エリアクイックリンク */
body.post-type-archive-property .area-quick-links{
  width:min(calc(100% - 32px),var(--container));
  margin:clamp(1rem,2vw,1.5rem) auto 0;
  padding-inline:0;
}

/* 検索結果ヘッダー */
.property-list-section{
  padding-top:clamp(1rem,2vw,2rem);
}
.property-result-head{
  width:min(calc(100% - 32px),var(--container));
  margin:0 auto clamp(1.25rem,2.5vw,2rem);
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:1rem;
  align-items:end;
}
.property-result-head h2{
  margin:.35rem 0 0;
  font-size:clamp(1.8rem,3vw,2.7rem);
  line-height:1.25;
  font-weight:900;
}
.property-result-count{
  margin:0;
  padding:.55rem 1rem;
  border:2px solid #111;
  border-radius:var(--radius-pill);
  font-weight:900;
  white-space:nowrap;
}
.property-active-filters{
  grid-column:1/-1;
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  align-items:center;
}
.property-active-filters span{
  color:#777;
  font-size:.82rem;
  font-weight:900;
  letter-spacing:.08em;
}
.property-active-filters b{
  display:inline-flex;
  min-height:2.1rem;
  align-items:center;
  padding:.25rem .8rem;
  border-radius:var(--radius-pill);
  background:#111;
  color:#fff;
  font-size:.86rem;
}

/* 物件カードの見やすさを強化 */
body.post-type-archive-property .property-card{
  border-radius:24px;
}
body.post-type-archive-property .property-card figure{
  aspect-ratio:4/3;
}
body.post-type-archive-property .property-spec span small{
  color:#777;
  font-weight:900;
}
body.post-type-archive-property .property-spec span b{
  overflow-wrap:anywhere;
}

/* 個別物件ページ：追加項目 */
.detail-catchcopy{
  margin:-.25rem 0 1rem;
  color:#333;
  font-size:1.02rem;
  line-height:1.8;
  font-weight:800;
}
.detail-location-note,
.detail-public-note{
  margin:.75rem 0 1.1rem;
  padding:.8rem 1rem;
  background:#fff8df;
  border:1px solid #eadfce;
  border-radius:14px;
  color:#4b4336;
  font-weight:800;
  line-height:1.7;
}
.detail-public-note{
  margin-top:1rem;
}
.single-property .detail-points{
  margin:.75rem 0 0;
  padding-left:1.1rem;
}
.single-property .detail-points li{
  margin:.35rem 0;
  line-height:1.85;
  font-weight:700;
}

/* スマホ最終調整 */
@media (max-width:900px){
  .property-filter-head{
    grid-template-columns:1fr;
    align-items:start;
  }
  .property-result-head{
    grid-template-columns:1fr;
    align-items:start;
  }
  .property-result-count{
    justify-self:start;
    white-space:normal;
  }
}

@media (max-width:760px){
  body.post-type-archive-property .page-section{
    padding-top:clamp(2.5rem,9vw,4rem);
  }
  .property-filter-card{
    border-radius:24px;
    padding:1.2rem;
  }
  body.post-type-archive-property .filter-selects{
    grid-template-columns:1fr;
  }
  body.post-type-archive-property .filter-chip span,
  body.post-type-archive-property .filter-chip{
    font-size:.9rem;
    min-height:2.35rem;
  }
  .property-guide-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width:520px){
  .drawer-inner{
    width:min(calc(100% - 24px),900px);
  }
  .drawer-frame{
    padding:1rem;
  }
  .drawer-frame a{
    min-height:2.75rem;
    font-size:1.18rem;
  }
  .drawer-frame a.small{
    min-height:2.45rem;
    font-size:.92rem;
  }
  body.post-type-archive-property .page-head h1{
    font-size:clamp(2.1rem,12vw,3rem);
  }
  .property-result-count{
    width:100%;
    justify-content:center;
    text-align:center;
  }
}


/* =========================================================
   Final v5 property UI / 管理しやすく、見やすい物件ページ
========================================================= */
body.home .site-header .pill-nav,
body.front-page .site-header .pill-nav{
  display:none;
}

.drawer-frame a{
  font-size:clamp(1.35rem,3vw,2.05rem);
  line-height:1.25;
  padding:clamp(.7rem,1.6vw,1.1rem) 0;
}
.drawer-frame a.small{
  font-size:clamp(1rem,2vw,1.25rem);
}
.drawer-inner{
  width:min(100% - 32px,960px);
}

.property-archive-hero{
  padding-top:clamp(4.5rem,7vw,7rem);
  padding-bottom:clamp(2rem,4vw,4rem);
  background:#fff;
}
.property-archive-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,360px);
  gap:clamp(1.5rem,4vw,4rem);
  align-items:end;
}
.property-archive-head h1{
  margin:.65rem 0 0;
  font-size:clamp(2.6rem,5vw,5.4rem);
  line-height:1.05;
  font-weight:900;
  letter-spacing:-.04em;
}
.property-archive-support{
  padding:1.5rem;
  border:2px solid var(--color-border);
  border-radius:24px;
  background:var(--color-soft);
}
.property-archive-support span{
  display:block;
  margin-bottom:.55rem;
  color:#777;
  font-family:"Inter",sans-serif;
  letter-spacing:.18em;
  font-weight:900;
  font-size:.78rem;
}
.property-archive-support strong{
  display:block;
  font-size:1.15rem;
  line-height:1.5;
  font-weight:900;
}
.property-archive-support p{
  margin:.75rem 0 1rem;
  color:#444;
  line-height:1.8;
  font-weight:650;
}
.property-archive-support a{
  min-height:2.9rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 1.2rem;
  background:#111;
  color:#fff;
  border-radius:999px;
  font-weight:900;
}

.property-guide-section,
.property-results-section{
  padding-inline:max(var(--side-padding),calc((100% - var(--container)) / 2));
}
.property-guide-section{
  padding-top:0;
  padding-bottom:clamp(2rem,4vw,3rem);
  background:#fff;
}
.property-guide-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(1rem,2vw,1.5rem);
}
.property-guide-grid article{
  min-width:0;
  min-height:12rem;
  padding:clamp(1.25rem,2.2vw,2rem);
  background:#fff;
  border:2px solid var(--color-border);
  border-radius:28px;
  box-shadow:0 1rem 2.2rem rgba(0,0,0,.035);
}
.property-guide-grid span{
  display:inline-flex;
  margin-bottom:.6rem;
  color:#777;
  font-family:"Inter",sans-serif;
  font-size:.78rem;
  letter-spacing:.18em;
  font-weight:900;
}
.property-guide-grid h2{
  margin:0 0 .55rem;
  font-size:clamp(1.25rem,1.8vw,1.7rem);
  line-height:1.35;
  font-weight:900;
}
.property-guide-grid p{
  margin:0;
  color:#444;
  font-size:.98rem;
  line-height:1.85;
  font-weight:650;
}

.property-filter-card{
  padding-top:clamp(2rem,4vw,3rem);
  padding-bottom:clamp(2.5rem,5vw,4.5rem);
  background:var(--color-soft);
}
.property-filter-form{
  width:min(100% - 32px,var(--container));
  margin-inline:auto;
  padding:clamp(1.25rem,3vw,2.25rem);
  background:#fff;
  border:2px solid var(--color-border);
  border-radius:32px;
  box-shadow:0 1rem 2.4rem rgba(0,0,0,.04);
}
.property-filter-head{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:start;
  gap:1.5rem;
  margin-bottom:1.5rem;
}
.property-filter-head h2{
  margin:.25rem 0 0;
  font-size:clamp(1.8rem,3vw,3rem);
  line-height:1.25;
  font-weight:900;
}
.property-filter-note{
  margin:.35rem 0 0;
  color:#666;
  font-weight:700;
}
.active-filter-list{
  max-width:32rem;
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
  justify-content:flex-end;
}
.active-filter-list span{
  flex-basis:100%;
  color:#777;
  font-size:.75rem;
  font-weight:900;
  letter-spacing:.14em;
  text-align:right;
}
.active-filter-list b{
  display:inline-flex;
  align-items:center;
  min-height:2rem;
  padding:0 .8rem;
  color:#fff;
  background:#111;
  border-radius:999px;
  font-size:.85rem;
}
.filter-block{
  min-width:0;
  margin-top:1rem;
  padding:1.25rem;
  background:var(--color-soft);
  border:1px solid var(--color-soft-border);
  border-radius:22px;
}
.filter-block h3{
  margin:0 0 .9rem;
  font-size:1rem;
  font-weight:900;
}
.filter-selects{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
}
.filter-block select{
  width:100%;
  min-height:3rem;
  padding:0 1rem;
  border:2px solid var(--color-border);
  border-radius:14px;
  background:#fff;
  font-weight:800;
}
.filter-chips{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
}
.filter-chip{
  display:inline-flex;
  min-width:0;
}
.filter-chip input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.filter-chip span,
.filter-chip--static,
.property-area-links a{
  min-height:2.65rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.25rem 1rem;
  border:2px solid var(--color-border);
  border-radius:999px;
  background:#fff;
  color:#111;
  font-weight:900;
  line-height:1.2;
  cursor:pointer;
  transition:background .2s,color .2s,transform .2s;
}
.filter-chip input:checked + span,
.filter-chip--static{
  background:#111;
  color:#fff;
}
.filter-chip span:hover,
.property-area-links a:hover{
  transform:translateY(-1px);
  background:#111;
  color:#fff;
}
.filter-actions{
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  align-items:center;
  margin-top:1.5rem;
}
.filter-actions button,
.filter-actions a{
  min-height:3.25rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 1.5rem;
  border:2px solid var(--color-border);
  border-radius:999px;
  font-weight:900;
}
.filter-actions button{
  background:#111;
  color:#fff;
}
.filter-actions a{
  color:#666;
  text-decoration:underline;
  text-underline-offset:.18em;
}

.property-area-links{
  padding-block:clamp(1rem,2vw,1.5rem);
  background:#fff;
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  align-items:center;
}
.property-results-section{
  padding-top:clamp(2rem,4vw,3.5rem);
  padding-bottom:clamp(4rem,8vw,7rem);
  background:#fff;
}
.property-results-head{
  width:min(100%,var(--container));
  margin-inline:auto;
  margin-bottom:clamp(1.5rem,3vw,2.5rem);
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:1rem;
}
.property-results-head h2{
  margin:.25rem 0 0;
  font-size:clamp(2rem,4vw,4rem);
  line-height:1.1;
  font-weight:900;
}
.property-results-head p{
  margin:0;
  color:#777;
  font-weight:900;
}
.property-grid--archive,
.property-grid--related{
  width:min(100%,var(--container));
  margin-inline:auto;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(1.25rem,2vw,2rem);
}

.property-card--grid{
  width:auto;
  min-width:0;
  display:flex;
  flex-direction:column;
  padding:0;
  overflow:hidden;
  border:2px solid var(--color-border);
  border-radius:28px;
  background:#fff;
  box-shadow:0 1rem 2.2rem rgba(0,0,0,.035);
}
.property-card--grid:hover{
  transform:translateY(-.18rem);
  box-shadow:0 1.1rem 2.6rem rgba(0,0,0,.07);
}
.property-card--grid .property-link{
  display:block;
  flex:1;
  padding:1.1rem 1.1rem 0;
}
.property-card-head{
  display:flex;
  justify-content:space-between;
  gap:.75rem;
  align-items:flex-start;
  margin-bottom:.9rem;
}
.property-card .property-title{
  display:block;
  margin:0;
  font-size:1rem;
}
.property-card .property-title span{
  display:block;
  color:#777;
  font-size:.78rem;
  letter-spacing:.12em;
  font-family:"Inter",sans-serif;
  font-weight:900;
}
.property-card .property-title strong{
  display:block;
  margin-top:.15rem;
  font-size:clamp(1.15rem,1.6vw,1.55rem);
  line-height:1.25;
  font-weight:900;
}
.property-status{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:2rem;
  padding:0 .75rem;
  border:2px solid #111;
  border-radius:999px;
  background:#111;
  color:#fff;
  font-size:.8rem;
  font-weight:900;
  white-space:nowrap;
}
.property-card--grid figure{
  height:auto;
  aspect-ratio:4/3;
  margin:0 0 1rem;
  border-radius:20px;
}
.property-card-title{
  margin:.25rem 0 .4rem;
  font-size:clamp(1.2rem,1.6vw,1.55rem);
  line-height:1.45;
  font-weight:900;
}
.property-card-copy{
  margin:0 0 .75rem;
  color:#444;
  font-size:.95rem;
  line-height:1.75;
  font-weight:650;
}
.property-card--grid .property-address{
  margin:0 0 1rem;
  color:#333;
  font-weight:800;
}
.property-card--grid .property-spec{
  grid-template-columns:repeat(2,minmax(0,1fr));
  border-color:#d9d9d9;
  border-radius:18px;
}
.property-card--grid .property-spec span{
  min-height:4.5rem;
  padding:.75rem .8rem;
}
.property-card--grid .property-spec span:nth-child(odd):not(:first-child){
  border-left:0;
}
.property-card--grid .property-spec span:nth-child(n+3){
  border-top:1px solid #d9d9d9;
}
.property-card--grid .property-spec b{
  text-align:left;
  font-size:.95rem;
  line-height:1.35;
  overflow-wrap:anywhere;
}
.property-card-tags{
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
  margin-top:1rem;
}
.property-card-tags span{
  display:inline-flex;
  min-height:1.75rem;
  align-items:center;
  padding:0 .65rem;
  border:1px solid #bbb;
  border-radius:999px;
  font-size:.78rem;
  font-weight:800;
}
.property-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.75rem;
  padding:1rem 1.1rem 1.1rem;
}
.property-actions a{
  min-height:3rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.55rem .9rem;
  border:2px solid var(--color-border);
  border-radius:999px;
  font-weight:900;
  text-align:center;
}
.property-actions a.is-primary{
  background:#111;
  color:#fff;
}
.properties-empty-card{
  width:min(100%,var(--container));
  margin-inline:auto;
  padding:clamp(1.5rem,3vw,2.5rem);
  border:2px solid var(--color-border);
  border-radius:28px;
  background:var(--color-soft);
}
.properties-empty-card h2{
  margin:.25rem 0 .75rem;
  font-size:clamp(1.6rem,2.6vw,2.4rem);
  font-weight:900;
}
.property-consult-section{
  border-top:1px solid var(--color-soft-border);
}

/* 個別物件ページ */
.property-detail{
  padding-top:clamp(4rem,7vw,7rem);
  padding-bottom:clamp(5rem,8vw,8rem);
  background:#fff;
}
.property-detail-lead{
  width:min(100%,var(--container));
  margin-inline:auto;
  margin-bottom:clamp(1.5rem,3vw,2.5rem);
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(240px,340px);
  gap:clamp(1rem,3vw,2rem);
  align-items:end;
}
.property-detail-lead h1{
  margin:.35rem 0 .7rem;
  font-size:clamp(2.3rem,5vw,5.4rem);
  line-height:1.08;
  font-weight:900;
  letter-spacing:-.04em;
}
.property-detail-lead p:not(.eyebrow){
  margin:0;
  color:#333;
  font-weight:800;
  line-height:1.8;
}
.detail-price-badge{
  padding:1.35rem;
  border:2px solid var(--color-border);
  border-radius:24px;
  background:var(--color-soft);
}
.detail-price-badge span{
  display:block;
  color:#777;
  font-family:"Inter",sans-serif;
  font-size:.78rem;
  letter-spacing:.18em;
  font-weight:900;
}
.detail-price-badge strong{
  display:block;
  margin:.3rem 0 .4rem;
  font-size:clamp(1.5rem,2.6vw,2.4rem);
  line-height:1.2;
  font-weight:900;
}
.detail-price-badge em{
  display:inline-flex;
  min-height:2rem;
  align-items:center;
  padding:0 .75rem;
  border-radius:999px;
  background:#111;
  color:#fff;
  font-size:.85rem;
  font-style:normal;
  font-weight:900;
}
.property-detail-hero{
  width:min(100%,var(--container));
  margin-inline:auto;
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(360px,.88fr);
  gap:clamp(1.5rem,3vw,3rem);
  align-items:start;
}
.single-property .detail-gallery{
  min-width:0;
  display:grid;
  gap:.75rem;
}
.single-property .detail-gallery-main{
  margin:0;
  aspect-ratio:4/3;
  border:2px solid var(--color-border);
  border-radius:28px;
  overflow:hidden;
  background:#f2f2f2;
}
.single-property .detail-gallery-main img,
.single-property .detail-gallery-sub img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.single-property .detail-gallery-sub{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.75rem;
}
.single-property .detail-gallery-sub figure{
  margin:0;
  aspect-ratio:4/3;
  border:2px solid var(--color-border);
  border-radius:18px;
  overflow:hidden;
  background:#f2f2f2;
}
.detail-summary-card,
.detail-card{
  background:#fff;
  border:2px solid var(--color-border);
  border-radius:28px;
  padding:clamp(1.5rem,3vw,2.75rem);
  box-shadow:0 1rem 2.2rem rgba(0,0,0,.035);
}
.detail-summary-card{
  position:sticky;
  top:calc(var(--header) + 1rem);
}
.detail-summary-card .detail-price{
  margin:.25rem 0 1rem;
  font-size:clamp(1.55rem,2.2vw,2.2rem);
  font-weight:900;
}
.detail-address{
  margin:0 0 1rem;
  padding:.9rem 1rem;
  background:var(--color-soft);
  border-radius:16px;
  color:#333;
  font-weight:900;
  line-height:1.7;
}
.detail-location-note{
  margin:-.45rem 0 1rem;
  color:#666;
  font-weight:650;
  line-height:1.8;
}
.detail-key-specs{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.65rem;
  margin:1rem 0;
}
.detail-key-specs span{
  min-width:0;
  padding:.85rem .9rem;
  background:var(--color-soft);
  border:1px solid var(--color-soft-border);
  border-radius:14px;
}
.detail-key-specs small{
  display:block;
  margin-bottom:.25rem;
  color:#777;
  font-size:.72rem;
  font-weight:900;
}
.detail-key-specs b{
  display:block;
  color:#111;
  font-size:.95rem;
  line-height:1.45;
  font-weight:900;
  overflow-wrap:anywhere;
}
.detail-agent-card{
  display:grid;
  grid-template-columns:72px 1fr;
  gap:.9rem;
  align-items:center;
  margin-top:1rem;
  padding:1rem;
  border:1px solid var(--color-soft-border);
  border-radius:20px;
  background:var(--color-soft);
}
.detail-agent-card img{
  width:72px;
  aspect-ratio:1/1;
  object-fit:cover;
  border-radius:999px;
}
.detail-agent-card span{
  display:block;
  color:#777;
  font-weight:900;
  font-size:.78rem;
  letter-spacing:.12em;
}
.detail-agent-card strong{
  display:block;
  margin:.1rem 0 .25rem;
  font-size:1.2rem;
  font-weight:900;
}
.detail-agent-card p{
  margin:0;
  color:#444;
  font-size:.9rem;
  line-height:1.65;
  font-weight:650;
}
.detail-cta--summary{
  display:grid;
  grid-template-columns:1fr;
  margin-top:1.25rem;
}
.property-detail-body{
  width:min(100%,var(--container));
  margin:clamp(1.5rem,3vw,3rem) auto 0;
  display:grid;
  gap:clamp(1.25rem,2.5vw,2rem);
}
.detail-introduction{
  width:min(100%,var(--container));
  margin:clamp(1.25rem,3vw,2rem) auto 0;
}
.single-property .detail-section-title{
  margin:0 0 1rem;
  font-size:clamp(1.35rem,2vw,1.8rem);
  line-height:1.4;
  font-weight:900;
}
.single-property .detail-table{
  width:100%;
  margin:0;
  border-collapse:collapse;
}
.single-property .detail-table th,
.single-property .detail-table td{
  padding:1rem .75rem;
  border-bottom:1px solid rgba(17,17,17,.16);
  text-align:left;
  vertical-align:top;
  font-size:.98rem;
  line-height:1.7;
}
.single-property .detail-table th{
  width:13rem;
  color:#777;
  font-weight:900;
}
.detail-points{
  margin:0;
  padding-left:1.2rem;
}
.detail-points li{
  margin:.35rem 0;
  line-height:1.85;
  font-weight:650;
}
.detail-surroundings p,
.detail-remarks p{
  margin:0 0 1rem;
  line-height:1.9;
  font-weight:650;
}
.single-property .detail-map{
  margin-top:0;
  aspect-ratio:16/9;
  border-radius:20px;
  overflow:hidden;
}
.single-property .detail-map iframe{
  width:100%;
  height:100%;
  border:0;
}
.single-property .detail-note{
  margin:1rem 0 0;
  padding:1rem 1.1rem;
  background:var(--color-soft);
  border:1px solid var(--color-soft-border);
  border-radius:18px;
  color:#555;
  line-height:1.85;
  font-weight:650;
}
.single-property .detail-cta{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  margin-top:0;
}
.single-property .detail-button{
  min-height:3.2rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.75rem 1.25rem;
  border:2px solid var(--color-border);
  border-radius:var(--radius-pill);
  background:#fff;
  font-weight:900;
  line-height:1.4;
  text-align:center;
}
.single-property .detail-button.is-primary{
  background:#111;
  color:#fff;
}
.detail-inquiry-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
  margin-top:1.25rem;
}
.detail-inquiry-grid a{
  display:grid;
  gap:.25rem;
  padding:1.25rem;
  border:2px solid var(--color-border);
  border-radius:22px;
  background:var(--color-soft);
}
.detail-inquiry-grid span{
  color:#777;
  font-size:.82rem;
  letter-spacing:.12em;
  font-weight:900;
}
.detail-inquiry-grid strong{
  font-size:1.15rem;
  line-height:1.45;
  font-weight:900;
}
.detail-inquiry-grid small{
  color:#555;
  font-weight:750;
}
.detail-related .property-grid--related{
  width:100%;
}

@media (max-width:1024px){
  .property-archive-head,
  .property-detail-lead,
  .property-detail-hero{
    grid-template-columns:1fr;
  }
  .property-guide-grid,
  .property-grid--archive,
  .property-grid--related{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .detail-summary-card{
    position:static;
  }
}
@media (max-width:760px){
  .property-archive-head h1,
  .property-detail-lead h1{
    font-size:clamp(2.25rem,12vw,3.7rem);
  }
  .property-filter-head,
  .filter-selects{
    grid-template-columns:1fr;
  }
  .active-filter-list{
    justify-content:flex-start;
  }
  .active-filter-list span{
    text-align:left;
  }
  .property-guide-grid,
  .property-grid--archive,
  .property-grid--related,
  .detail-inquiry-grid{
    grid-template-columns:1fr;
  }
  .property-filter-form{
    width:min(100% - 24px,var(--container));
    border-radius:24px;
  }
  .filter-block{
    padding:1rem;
  }
  .filter-chip span,
  .filter-chip--static,
  .property-area-links a{
    min-height:2.45rem;
    padding-inline:.85rem;
    font-size:.9rem;
  }
  .property-results-head{
    display:block;
  }
  .property-card--grid .property-spec,
  .detail-key-specs{
    grid-template-columns:1fr;
  }
  .property-card--grid .property-spec span+span{
    border-left:0;
    border-top:1px solid #d9d9d9;
  }
  .property-actions{
    grid-template-columns:1fr;
  }
  .single-property .detail-table th,
  .single-property .detail-table td{
    display:block;
    width:100%;
    padding:.85rem 0;
  }
  .single-property .detail-table th{
    padding-bottom:.2rem;
    border-bottom:0;
  }
  .single-property .detail-gallery-sub{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .detail-agent-card{
    grid-template-columns:64px 1fr;
  }
  .detail-agent-card img{
    width:64px;
  }
}


/* =========================================================
   v7 property polish / 物件ページ・メニュー連携・詳細表示強化
========================================================= */
.property-detail-title-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(220px,.55fr);
  gap:clamp(1rem,3vw,2rem);
  align-items:start;
}
.property-detail-title-row h1{
  margin:0;
}
.property-detail-title-row > strong{
  display:block;
  font-size:clamp(1.75rem,4vw,4rem);
  line-height:1.12;
  font-weight:900;
  letter-spacing:-.045em;
  overflow-wrap:anywhere;
}
.detail-introduction{
  width:min(100%,var(--container));
  margin:clamp(2rem,4vw,3rem) auto 0;
}
.detail-introduction p{
  font-size:clamp(1rem,1.25vw,1.18rem);
  line-height:2;
  font-weight:650;
}
.property-archive-head,
.property-filter-form,
.property-guide-grid,
.property-results-head,
.property-grid--archive,
.properties-empty-card,
.property-consult-section .consult-copy,
.property-consult-section .consult-cards{
  max-width:var(--container);
}
.property-guide-grid article,
.property-filter-form,
.property-card--grid,
.detail-card,
.detail-summary-card{
  border-width:2px;
}
.property-filter-card{
  background:linear-gradient(180deg,#fff 0%,var(--color-soft) 100%);
}
.property-filter-form{
  position:relative;
}
.property-filter-form::before{
  content:"入力条件を選ぶだけ";
  position:absolute;
  top:-1rem;
  left:clamp(1rem,3vw,2rem);
  display:inline-flex;
  min-height:2rem;
  align-items:center;
  padding:0 .9rem;
  color:#fff;
  background:#111;
  border-radius:999px;
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.08em;
}
.property-card--grid .property-card-title{
  min-height:2.7em;
}
.property-actions a{
  transition:background .2s,color .2s,transform .2s;
}
.property-actions a:hover{
  transform:translateY(-1px);
}
.property-actions a:not(.is-primary):hover{
  background:#111;
  color:#fff;
}
.single-property .detail-gallery-sub figure:nth-child(n+7){
  display:none;
}
.detail-summary-card .detail-cta--summary{
  display:grid;
  gap:.75rem;
}
.detail-summary-card .detail-button{
  width:100%;
}
.drawer-frame a{
  scroll-margin-top:var(--header);
}
@media (max-width:1100px){
  .property-detail-title-row{
    grid-template-columns:1fr;
  }
  .property-detail-title-row > strong{
    font-size:clamp(1.7rem,6vw,3rem);
  }
  .property-guide-grid{
    grid-template-columns:1fr;
  }
}
@media (max-width:900px){
  .property-archive-head,
  .property-filter-head{
    grid-template-columns:1fr;
  }
  .active-filter-list{
    justify-content:flex-start;
  }
  .active-filter-list span{
    text-align:left;
  }
}
@media (max-width:640px){
  .property-archive-hero{
    padding-top:clamp(2.5rem,8vw,4rem);
  }
  .property-filter-form{
    width:min(100% - 24px,var(--container));
    border-radius:24px;
  }
  .filter-selects,
  .property-grid--archive,
  .property-grid--related{
    grid-template-columns:1fr;
  }
  .property-results-head{
    display:block;
  }
  .property-detail-lead{
    grid-template-columns:1fr;
  }
  .property-detail-title-row > strong{
    font-size:1.7rem;
  }
  .detail-key-specs{
    grid-template-columns:1fr;
  }
}


/* =========================================================
   Final v8 polish: property-first hero / right drawer / subtle motion
========================================================= */
.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.875rem;
  margin-top:clamp(1.1rem,2vw,1.75rem);
  animation:heroFadeUp .9s cubic-bezier(.16,1,.3,1) .28s both;
}
.hero-actions a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:3.25rem;
  padding:0 1.35rem;
  border:2px solid #fff;
  border-radius:var(--radius-pill);
  background:#fff;
  color:#111;
  font-weight:900;
  box-shadow:0 12px 32px rgba(0,0,0,.18);
  transition:transform .2s cubic-bezier(.16,1,.3,1),background .2s,color .2s;
}
.hero-actions a:nth-child(2){background:rgba(255,255,255,.08);color:#fff;backdrop-filter:blur(8px)}
.hero-actions a:hover{transform:translateY(-2px)}
.search-panel,
.property-card,
.staff-card,
.contact-box,
.detail-card,
.property-filter-card,
.property-card--grid{
  transition:transform .28s cubic-bezier(.16,1,.3,1),box-shadow .28s cubic-bezier(.16,1,.3,1);
}
.search-panel:hover,
.property-card:hover,
.property-card--grid:hover{
  transform:translateY(-4px);
  box-shadow:0 24px 64px rgba(17,17,17,.12);
}

/* MENUは右上から開くため、全画面落下ではなく右側パネルとして表示 */
.drawer{
  inset:0;
  display:block;
  background:rgba(17,17,17,.28);
  backdrop-filter:blur(4px);
  transform:none;
  opacity:0;
  pointer-events:none;
  transition:opacity .28s ease;
}
.drawer.is-open,
.drawer[aria-hidden="false"]{
  opacity:1;
  pointer-events:auto;
  transform:none;
}
.drawer-inner{
  margin-left:auto;
  width:min(35rem,calc(100% - 1rem));
  min-height:100%;
  background:#fff;
  padding:clamp(1.25rem,3vw,2.5rem) clamp(1rem,3.2vw,2.25rem) 4rem;
  box-shadow:-28px 0 80px rgba(0,0,0,.18);
  border-left:2px solid var(--color-border);
  transform:translateX(100%);
  transition:transform .42s cubic-bezier(.16,1,.3,1);
  overflow:auto;
}
.drawer.is-open .drawer-inner,
.drawer[aria-hidden="false"] .drawer-inner{transform:translateX(0)}
.drawer-head{align-items:center;margin-bottom:clamp(1.5rem,3vw,2.4rem)}
.drawer-brand .brand-mark{width:3rem}
.drawer-brand strong{font-size:clamp(1.6rem,3vw,2.3rem)}
.drawer-close{font-size:1rem;gap:.85rem}
.drawer-close i{width:3.5rem;height:3.5rem}
.drawer-close i::before,
.drawer-close i::after{left:.75rem;top:1.65rem;width:2rem}
.drawer-frame{
  padding:clamp(1rem,2vw,1.5rem);
  border-radius:1.25rem;
}
.drawer-frame a{
  min-height:clamp(3.7rem,6vw,5rem);
  font-size:clamp(1.65rem,4vw,2.8rem);
  transition:padding-left .18s ease,background .18s ease;
}
.drawer-frame a:hover{padding-left:.5rem;background:#f7f3ea}
.drawer-frame a span{
  width:2.35rem;
  height:2.35rem;
  font-size:1.55rem;
}
.drawer-frame a.small{
  min-height:3.25rem;
  font-size:clamp(1.05rem,2.5vw,1.35rem);
}
.drawer-open .menu-trigger{opacity:.35;pointer-events:none}

@media (max-width:640px){
  .hero-actions{gap:.6rem}
  .hero-actions a{min-height:2.9rem;padding:0 1rem;font-size:.92rem}
  .drawer-inner{width:min(100%,24.5rem);border-left:0}
  .drawer-frame a{font-size:clamp(1.35rem,7vw,2rem);min-height:3.4rem}
  .drawer-frame a.small{font-size:1rem}
}

@media (prefers-reduced-motion:reduce){
  .hero-actions,
  .search-panel,
  .property-card,
  .property-card--grid,
  .drawer,
  .drawer-inner{animation:none!important;transition:none!important}
}

/* =========================================================
   v9 final polish: property-first order / company image / admin-linked UX
========================================================= */
.properties-section{
  padding-top:clamp(4.75rem,7vw,7rem);
  padding-bottom:clamp(4rem,6vw,6rem);
  background:#fff;
}
.quick-search{
  padding-top:clamp(4rem,6vw,6rem);
  padding-bottom:clamp(4.75rem,7vw,7rem);
}
.company-grid{
  align-items:stretch;
}
.company-photo{
  display:grid;
  place-items:stretch;
  min-height:clamp(460px,42vw,620px);
  padding:0;
  border:2px solid var(--color-border);
  border-radius:var(--radius-card);
  background:#fff;
}
.company-photo img{
  width:100%;
  height:100%;
  min-height:inherit;
  aspect-ratio:auto;
  object-fit:cover;
  object-position:center center;
  border:0;
  border-radius:calc(var(--radius-card) - 2px);
}
@media (min-width:901px){
  .company-grid{grid-template-columns:minmax(0,1fr) minmax(420px,.86fr)}
  .company-info{min-height:clamp(460px,42vw,620px);display:flex;flex-direction:column;justify-content:center}
}
@media (max-width:900px){
  .company-photo{
    min-height:auto;
    aspect-ratio:16/10;
  }
  .company-photo img{
    min-height:auto;
    height:100%;
    aspect-ratio:auto;
  }
}
@media (max-width:640px){
  .company-photo{aspect-ratio:4/3}
}

/* 物件一覧・詳細の視線誘導を少し強化 */
.property-archive-hero,
.property-filter-panel,
.property-detail-hero,
.property-detail-summary{
  transition:transform .22s ease, box-shadow .22s ease;
}
.property-filter-panel:focus-within,
.property-detail-summary:hover{
  box-shadow:0 22px 60px rgba(17,17,17,.10);
}
.property-archive-help-card{
  animation:heiwaSoftRise .55s ease both;
}
@keyframes heiwaSoftRise{
  from{opacity:0;transform:translateY(12px)}
  to{opacity:1;transform:translateY(0)}
}
@media (prefers-reduced-motion:reduce){
  .property-archive-help-card{animation:none}
}


/* =========================================================
   v10 final polish: property-first hero / stylish sections / mobile
========================================================= */
:root{
  --ease-out:cubic-bezier(.16,1,.3,1);
}

/* 物件情報を主役にしたトップビュー */
.hero-frame{
  isolation:isolate;
  overflow:hidden;
}
.hero-frame::before{
  content:none;
  position:absolute;
  left:50%;
  top:2.5rem;
  transform:translateX(-50%);
  z-index:1;
  width:max-content;
  font-family:"Inter","Noto Sans JP",sans-serif;
  font-size:clamp(4rem,13vw,13rem);
  line-height:1;
  font-weight:900;
  letter-spacing:.08em;
  color:transparent;
  -webkit-text-stroke:1px rgba(255,255,255,.32);
  opacity:.55;
  pointer-events:none;
}
.hero-visual img{
  transform:scale(1.02);
  transition:transform 1.2s var(--ease-out),filter 1.2s var(--ease-out);
}
.hero-frame:hover .hero-visual img{
  transform:scale(1.055);
}
.hero-text{
  max-width:min(760px,calc(100% - 2rem));
}
.hero-copy{
  text-shadow:0 8px 32px rgba(0,0,0,.3);
}
.hero-lead{
  max-width:760px;
}
.hero-feature-pills{
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
  margin:1.25rem 0 0;
  padding:0;
  list-style:none;
}
.hero-feature-pills li{
  display:inline-flex;
  align-items:center;
  min-height:2.35rem;
  padding:0 .95rem;
  border:1.5px solid rgba(255,255,255,.86);
  border-radius:999px;
  background:rgba(255,255,255,.12);
  color:#fff;
  backdrop-filter:blur(8px);
  font-size:.9rem;
  font-weight:900;
}
.hero-actions{
  margin-top:1.25rem;
}
.hero-actions a{
  transform:translateY(0);
  transition:transform .18s var(--ease-out),background .18s var(--ease-out),color .18s var(--ease-out),box-shadow .18s var(--ease-out);
}
.hero-actions a:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 34px rgba(0,0,0,.18);
}

/* 新着物件を単調に見せないカード感 */
.properties-section{
  position:relative;
  background:
    linear-gradient(180deg,#fff 0%,#fff 72%,var(--color-soft) 100%);
}
.properties-section::before{
  content:none;
  position:absolute;
  right:max(1rem,calc((100% - var(--container))/2));
  top:1.5rem;
  color:transparent;
  -webkit-text-stroke:1px rgba(17,17,17,.12);
  font-family:"Inter","Noto Sans JP",sans-serif;
  font-size:clamp(4rem,11vw,11rem);
  font-weight:900;
  line-height:1;
  letter-spacing:.08em;
  pointer-events:none;
}
.property-card{
  transition:transform .24s var(--ease-out),box-shadow .24s var(--ease-out);
}
.property-card:hover{
  transform:translateY(-4px);
  box-shadow:0 24px 70px rgba(17,17,17,.12);
}
.property-card figure{
  background:#f7f3ea;
}
.property-card figure img{
  transition:transform .5s var(--ease-out);
}
.property-card:hover figure img{
  transform:scale(1.035);
}

/* 不動産導線は物件後に自然につながるよう少し柔らかく */
.quick-search{
  background:var(--color-soft);
}
.search-panel{
  transition:transform .2s var(--ease-out),box-shadow .2s var(--ease-out),background .2s var(--ease-out);
}
.search-panel:hover{
  transform:translateY(-3px);
  box-shadow:0 18px 46px rgba(17,17,17,.08);
  background:#fff;
}

/* 会社情報の写真をカード内で自然に見せる */
.company-grid{
  align-items:stretch;
}
.company-photo{
  display:grid;
  min-height:100%;
  background:#fff;
  border:2px solid var(--color-border);
  border-radius:var(--radius-card);
  overflow:hidden;
  box-shadow:0 18px 50px rgba(17,17,17,.06);
}
.company-photo img{
  width:100%;
  height:100%;
  min-height:520px;
  object-fit:cover;
  object-position:center;
  border:0!important;
  border-radius:0!important;
}
.company-info{
  box-shadow:0 18px 60px rgba(17,17,17,.08);
}
@media (min-width:901px){
  .company-grid{
    grid-template-columns:minmax(0,1fr) minmax(420px,.92fr);
    gap:clamp(2rem,4vw,4.5rem);
  }
}

/* 右スライドメニューを上品に */
.drawer{
  background:rgba(8,8,8,.22);
  backdrop-filter:blur(8px);
}
.drawer-inner{
  margin-left:auto;
  margin-right:0;
  width:min(460px,calc(100% - 28px));
  min-height:100%;
  border-radius:28px 0 0 28px;
  transform:translateX(100%);
  transition:transform .32s var(--ease-out);
}
.drawer[aria-hidden="false"] .drawer-inner,
.drawer.is-open .drawer-inner{
  transform:translateX(0);
}
.drawer-frame a{
  font-size:clamp(1.35rem,3vw,2.35rem);
}
.drawer-frame a.small{
  font-size:clamp(1rem,1.8vw,1.25rem);
}

/* スマホ最適化 */
@media (max-width:900px){
  .hero-frame::before{
    top:1rem;
    font-size:clamp(3.2rem,16vw,6rem);
    -webkit-text-stroke:1px rgba(255,255,255,.22);
  }
  .hero-text{
    left:1rem;
    right:1rem;
    bottom:clamp(2rem,8vw,4rem);
    max-width:none;
  }
  .hero-feature-pills{
    gap:.45rem;
  }
  .hero-feature-pills li{
    min-height:2rem;
    padding:0 .72rem;
    font-size:.78rem;
  }
  .company-photo img{
    min-height:auto;
    aspect-ratio:16/10;
  }
  .drawer-inner{
    width:min(390px,calc(100% - 18px));
    border-radius:22px 0 0 22px;
  }
}
@media (max-width:520px){
  .hero-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:.6rem;
  }
  .hero-copy{
    font-size:clamp(2.45rem,13vw,4.2rem);
  }
  .section-head{
    gap:1rem;
  }
  .circle-link{
    font-size:.9rem;
  }
}

/* 動きを苦手とするユーザーに配慮 */
@media (prefers-reduced-motion:reduce){
  .hero-visual img,
  .property-card,
  .property-card figure img,
  .search-panel,
  .drawer-inner,
  .hero-actions a{
    transition:none!important;
    transform:none!important;
  }
}


/* =========================================================
   v11 final tuning: menu / smartphone / original copy balance
========================================================= */

/* メニュー位置とリンクの体裁を統一。トップページは左ナビを出さず、下層は5項目だけ。 */
body.home .site-header .pill-nav,
body.front-page .site-header .pill-nav{
  visibility:hidden;
  pointer-events:none;
}
.site-header{
  grid-template-columns:1fr auto 1fr;
}
.pill-nav a{
  min-height:2.45rem;
  padding-inline:clamp(.8rem,1.1vw,1.1rem);
  font-size:clamp(.95rem,1vw,1.05rem);
}

/* 右上MENUから、そのまま右側パネルとして開く。 */
.drawer{
  inset:0;
  display:flex;
  justify-content:flex-end;
  background:rgba(17,17,17,.22);
  opacity:0;
  pointer-events:none;
  transform:none!important;
  transition:opacity .24s ease;
  overflow:hidden;
}
.drawer.is-open,
.drawer[aria-hidden="false"]{
  opacity:1;
  pointer-events:auto;
}
.drawer-inner{
  width:min(520px,100%);
  max-width:100%;
  min-height:100%;
  margin-left:auto;
  margin-right:0;
  padding:clamp(1.25rem,3vw,2rem);
  background:#fff;
  border-left:2px solid var(--color-border);
  box-shadow:-24px 0 70px rgba(17,17,17,.18);
  overflow:auto;
  transform:translateX(105%);
  transition:transform .28s cubic-bezier(.16,1,.3,1);
}
.drawer.is-open .drawer-inner,
.drawer[aria-hidden="false"] .drawer-inner{
  transform:translateX(0);
}
.drawer-head{
  align-items:center;
  margin-bottom:clamp(1.25rem,3vw,2rem);
}
.drawer-close{
  gap:.8rem;
  font-size:clamp(.95rem,2vw,1.15rem);
}
.drawer-close i{
  width:3.4rem;
  height:3.4rem;
}
.drawer-close i::before,
.drawer-close i::after{
  left:.82rem;
  top:1.58rem;
  width:1.65rem;
}
.drawer-frame{
  border:2px solid var(--color-border);
  border-radius:22px;
  padding:clamp(.8rem,2vw,1.2rem);
}
.drawer-frame a{
  min-height:clamp(3.25rem,7vw,4.2rem);
  font-size:clamp(1.35rem,4.6vw,2.05rem);
  line-height:1.15;
}
.drawer-frame a.small{
  min-height:3rem;
  font-size:clamp(.95rem,2.8vw,1.1rem);
}
.drawer-frame a span{
  width:2.25rem;
  height:2.25rem;
  font-size:1.35rem;
}

/* スマホヘッダーはロゴとMENUだけに絞り、文字が画像へ被らないようにする。 */
@media (max-width:900px){
  :root{--header:6.25rem}
  .site-header{
    min-height:var(--header);
    height:auto;
    padding:.85rem 1rem .75rem;
    grid-template-columns:1fr auto;
    gap:1rem;
  }
  .pill-nav{display:none!important}
  .brand{
    align-items:flex-start;
    text-align:left;
    max-width:calc(100vw - 6.5rem);
    overflow:visible;
  }
  .brand-mark{width:2.75rem;height:auto}
  .brand strong{
    font-size:clamp(1.7rem,7vw,2.25rem);
    line-height:1.05;
  }
  .brand span{
    font-size:clamp(.65rem,2.7vw,.82rem);
    letter-spacing:.13em;
    line-height:1.15;
    white-space:nowrap;
  }
  .menu-trigger{gap:.5rem}
  .menu-trigger span{display:none}
  .menu-trigger i{width:3.2rem;height:3.2rem}
  .hero-section{padding:.65rem 1rem 0}
  .hero-frame{
    min-height:32rem;
    height:min(76svh,42rem);
  }
  .hero-text{
    left:7%;
    right:7%;
    bottom:max(8%, 6.5rem);
  }
  .hero-copy{
    font-size:clamp(2rem,9vw,3.2rem);
    line-height:1.45;
  }
  .hero-lead{
    font-size:.95rem;
    line-height:1.75;
  }
}

@media (max-width:520px){
  .drawer-inner{width:min(92vw,420px)}
  .drawer-frame a{font-size:1.4rem}
  .drawer-brand strong{font-size:1.5rem}
}

/* 動きは控えめに。 */
@media (prefers-reduced-motion:reduce){
  .drawer,
  .drawer-inner,
  .pill-nav a,
  .property-card,
  [data-reveal]{
    transition:none!important;
    animation:none!important;
  }
}

/* =========================================================
   v12 final polish: remove navigation grid / desktop company section
========================================================= */
.quick-search{
  display:none!important;
}

/* PC版の会社情報は、写真と情報カードを横並びの上質なカードとして見せる */
@media (min-width:901px){
  .company-section{
    padding-top:clamp(6rem,8vw,9rem);
    padding-bottom:clamp(7rem,9vw,10rem);
    background:
      radial-gradient(circle at 12% 8%, rgba(200,230,62,.12), transparent 26rem),
      var(--color-soft);
  }
  .company-section .section-head,
  .company-grid,
  .company-message-card,
  .company-detail-grid{
    width:min(calc(100% - 72px),var(--container));
    margin-inline:auto;
  }
  .company-section .section-head{
    align-items:end;
    margin-bottom:clamp(2rem,4vw,3.5rem);
  }
  .company-section .section-head h2{
    max-width:860px;
    font-size:clamp(3.2rem,5vw,5.6rem);
    line-height:1.06;
    letter-spacing:-.04em;
  }
  .company-grid{
    grid-template-columns:minmax(0,1.05fr) minmax(390px,.92fr)!important;
    gap:clamp(2rem,4vw,4rem)!important;
    align-items:stretch!important;
  }
  .company-photo{
    min-height:0!important;
    aspect-ratio:1.12 / 1!important;
    border-radius:32px!important;
    border:2px solid var(--color-border)!important;
    background:#fff!important;
    overflow:hidden!important;
    box-shadow:0 24px 70px rgba(17,17,17,.08)!important;
  }
  .company-photo img{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:auto!important;
    object-fit:cover!important;
    object-position:center center!important;
    border:0!important;
    border-radius:0!important;
    transform:scale(1.08);
  }
  .company-info{
    padding:clamp(2rem,3.5vw,3.2rem)!important;
    border:2px solid var(--color-border)!important;
    border-radius:32px!important;
    background:#fff!important;
    box-shadow:0 24px 70px rgba(17,17,17,.08)!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    min-height:auto!important;
  }
  .company-logo-row{
    align-items:center;
    gap:1.1rem;
  }
  .company-logo-row img{
    width:64px;
  }
  .company-logo-row strong{
    font-size:clamp(1.7rem,2.3vw,2.25rem);
    line-height:1.25;
  }
  .company-logo-row span{
    font-size:.82rem;
  }
  .company-info>p{
    margin:1.6rem 0;
    font-size:1rem;
    line-height:2;
  }
  .company-list div{
    padding:1rem 0;
  }
}

/* 1024〜1280pxで左右に詰まりすぎないように調整 */
@media (min-width:901px) and (max-width:1180px){
  .company-section .section-head,
  .company-grid,
  .company-message-card,
  .company-detail-grid{
    width:min(calc(100% - 48px),var(--container));
  }
  .company-grid{
    grid-template-columns:1fr 1fr!important;
    gap:1.5rem!important;
  }
  .company-photo{
    aspect-ratio:1 / 1!important;
  }
  .company-section .section-head h2{
    font-size:clamp(2.7rem,5vw,4rem);
  }
}

/* スマホ版は現状の見やすい縦並びを維持し、余白だけ整える */
@media (max-width:900px){
  .company-section{
    padding-top:clamp(4rem,10vw,5.5rem);
  }
  .company-section .section-head h2{
    font-size:clamp(2.35rem,9vw,4rem);
  }
  .company-photo{
    border-radius:24px!important;
  }
  .company-photo img{
    transform:none!important;
  }
}


/* =========================================================
   v13 final company layout
   PCでは店舗写真を小さめの上段ビジュアルにし、会社概要カードを横長に整理
========================================================= */
@media (min-width: 901px){
  .company-section{
    padding-top:clamp(5rem,7vw,7rem);
    padding-bottom:clamp(7rem,9vw,9rem);
  }
  .company-grid{
    width:min(100% - 72px, var(--container));
    display:grid;
    grid-template-columns:1fr;
    gap:1.35rem;
    align-items:start;
  }
  .company-photo{
    width:min(760px, 68%);
    margin:0 auto;
    border-radius:28px;
    overflow:hidden;
    background:#fff;
  }
  .company-photo img{
    display:block;
    width:100%;
    height:clamp(220px, 23vw, 320px);
    min-height:0;
    aspect-ratio:16 / 7;
    object-fit:cover;
    object-position:center;
    border:2px solid var(--color-border);
    border-radius:28px;
  }
  .company-info{
    width:min(100%, 1080px);
    margin:0 auto;
    display:grid;
    grid-template-columns:minmax(300px,.78fr) minmax(0,1.22fr);
    gap:clamp(1.8rem,3vw,3rem);
    align-items:center;
    padding:clamp(2rem,3vw,3rem);
    border-radius:28px;
  }
  .company-logo-row{
    margin:0;
  }
  .company-logo-row strong{
    font-size:clamp(1.55rem,2.2vw,2.2rem);
    line-height:1.28;
  }
  .company-info p{
    grid-column:1;
    margin:1.35rem 0 0;
    font-size:.98rem;
    line-height:2;
  }
  .company-list{
    grid-column:2;
    grid-row:1 / span 2;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0 1.8rem;
  }
  .company-list div{
    padding:1rem 0;
  }
  .company-list dt{
    font-size:.82rem;
  }
  .company-list dd{
    font-size:.94rem;
  }
}
@media (min-width:901px) and (max-width:1180px){
  .company-grid{
    width:min(100% - 48px, var(--container));
  }
  .company-photo{
    width:min(720px, 78%);
  }
  .company-info{
    grid-template-columns:1fr;
  }
  .company-info p,
  .company-list{
    grid-column:auto;
    grid-row:auto;
  }
  .company-list{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:900px){
  .company-photo img{
    object-position:center;
  }
  .company-info{
    border-radius:24px;
  }
}


/* =========================================================
   v14 company layout refinement
   PCでは会社情報カードを横幅いっぱいにし、外観写真は右下の小さなビジュアルとして配置
========================================================= */
.company-section .section-head h2{
  letter-spacing:.04em;
}
.company-grid{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:clamp(1rem,2vw,1.5rem)!important;
  align-items:start!important;
}
.company-info{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:clamp(2rem,4vw,4rem)!important;
  border-radius:28px!important;
}
.company-logo-row{
  max-width:68rem;
}
.company-logo-row strong{
  font-size:clamp(1.75rem,3vw,3.25rem)!important;
  line-height:1.18!important;
  word-break:keep-all;
  overflow-wrap:anywhere;
}
.company-info p{
  max-width:58rem;
}
.company-list{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(1rem,2vw,1.5rem);
}
.company-list div{
  border-top:1.5px solid var(--color-border);
}
.company-photo{
  width:min(42vw,520px)!important;
  margin:clamp(1rem,2.4vw,2rem) 0 0 auto!important;
  border-radius:24px!important;
  background:#fff!important;
}
.company-photo img{
  min-height:0!important;
  height:auto!important;
  aspect-ratio:16/9!important;
  object-fit:cover!important;
  border-width:2px!important;
  border-radius:24px!important;
}
.company-detail-grid{
  margin-top:clamp(1.5rem,3vw,2.5rem);
}

@media (max-width:1100px){
  .company-list{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .company-photo{
    width:min(52vw,460px)!important;
  }
}
@media (max-width:900px){
  .company-info{
    padding:clamp(1.5rem,5vw,2.5rem)!important;
  }
  .company-logo-row{
    align-items:flex-start;
  }
  .company-logo-row strong{
    font-size:clamp(1.55rem,7vw,2.25rem)!important;
  }
  .company-list{
    grid-template-columns:1fr;
  }
  .company-photo{
    width:100%!important;
    margin:1rem 0 0!important;
  }
  .company-photo img{
    aspect-ratio:16/10!important;
  }
}


/* =========================================================
   v15 company background visual
   会社外観写真を独立カードではなく、会社情報カードの背景として薄く表示
========================================================= */
.company-section .section-head h2{
  letter-spacing:.04em;
}
.company-section .section-head{
  align-items:flex-end;
}
.company-grid{
  width:min(100% - 72px, var(--container))!important;
  margin-inline:auto!important;
  display:block!important;
}
.company-photo{
  display:none!important;
}
.company-info{
  position:relative!important;
  isolation:isolate;
  overflow:hidden!important;
  width:100%!important;
  max-width:none!important;
  margin:0 auto!important;
  padding:clamp(2.25rem,4.2vw,4.75rem)!important;
  border:2px solid var(--color-border)!important;
  border-radius:32px!important;
  background:#fff!important;
  box-shadow:0 24px 54px rgba(17,17,17,.06);
}
.company-info::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:
    linear-gradient(90deg,
      rgba(255,255,255,.98) 0%,
      rgba(255,255,255,.94) 42%,
      rgba(255,255,255,.84) 64%,
      rgba(255,255,255,.68) 100%
    ),
    url("../images/company-exterior.webp") right center / cover no-repeat;
  opacity:.92;
  pointer-events:none;
}
.company-info::after{
  content:"";
  position:absolute;
  right:clamp(1.5rem,4vw,4rem);
  bottom:clamp(1.5rem,4vw,3.5rem);
  width:min(34vw,420px);
  aspect-ratio:16/9;
  border:1.5px solid rgba(17,17,17,.18);
  border-radius:24px;
  background:rgba(255,255,255,.18);
  pointer-events:none;
  z-index:0;
}
.company-info > *{
  position:relative;
  z-index:1;
}
@media (min-width:901px){
  .company-info{
    display:grid!important;
    grid-template-columns:minmax(0,.9fr) minmax(22rem,1.1fr)!important;
    gap:clamp(2rem,4vw,4rem)!important;
    align-items:start!important;
    min-height:clamp(420px,34vw,560px);
  }
  .company-logo-row{
    grid-column:1!important;
    margin:0!important;
    max-width:42rem!important;
  }
  .company-logo-row strong{
    font-size:clamp(1.9rem,3vw,3.35rem)!important;
    line-height:1.18!important;
    word-break:keep-all;
    overflow-wrap:anywhere;
  }
  .company-info p{
    grid-column:1!important;
    max-width:42rem!important;
    margin:clamp(1.75rem,3vw,2.75rem) 0 0!important;
    font-size:clamp(.98rem,1vw,1.06rem)!important;
    line-height:2.08!important;
  }
  .company-list{
    grid-column:2!important;
    grid-row:1 / span 2!important;
    align-self:stretch!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:0 clamp(1.35rem,2vw,2rem)!important;
    padding:clamp(1rem,2vw,1.5rem)!important;
    border-radius:24px;
    background:rgba(255,255,255,.74);
    backdrop-filter:blur(4px);
    -webkit-backdrop-filter:blur(4px);
  }
  .company-list div{
    padding:clamp(.95rem,1.5vw,1.25rem) 0!important;
    border-top:1.5px solid rgba(17,17,17,.55)!important;
  }
  .company-list dt{
    font-size:.82rem!important;
  }
  .company-list dd{
    font-size:.95rem!important;
    line-height:1.75!important;
  }
}
@media (min-width:901px) and (max-width:1180px){
  .company-grid{
    width:min(100% - 48px, var(--container))!important;
  }
  .company-info{
    grid-template-columns:1fr!important;
    min-height:0;
  }
  .company-info::before{
    background:
      linear-gradient(90deg, rgba(255,255,255,.98) 0%, rgba(255,255,255,.9) 100%),
      url("../images/company-exterior.webp") right center / cover no-repeat;
    opacity:.78;
  }
  .company-info::after{
    display:none;
  }
  .company-logo-row,
  .company-info p,
  .company-list{
    grid-column:auto!important;
    grid-row:auto!important;
  }
  .company-list{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media (max-width:900px){
  .company-grid{
    width:min(100% - 32px, var(--container))!important;
  }
  .company-info{
    padding:clamp(1.5rem,5vw,2.5rem)!important;
    border-radius:24px!important;
  }
  .company-info::before{
    background:
      linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(255,255,255,.93) 100%),
      url("../images/company-exterior.webp") center top / cover no-repeat;
    opacity:.52;
  }
  .company-info::after{
    display:none;
  }
  .company-logo-row{
    align-items:flex-start;
    margin-bottom:1.4rem!important;
  }
  .company-logo-row strong{
    font-size:clamp(1.55rem,7vw,2.25rem)!important;
  }
  .company-info p{
    margin:0 0 1.5rem!important;
  }
  .company-list{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:0!important;
    padding:0!important;
    background:transparent!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
}



/* =========================================================
   v16 final visual polish
   Top hero wave animation / value image rail / refined cards
========================================================= */

/* 全体の黒枠を少し細く・上品に */
:root{
  --heiwa-border-soft:rgba(17,17,17,.82);
  --heiwa-shadow-soft:0 22px 54px rgba(17,17,17,.065);
  --heiwa-shadow-hover:0 28px 70px rgba(17,17,17,.10);
}

.outline-frame::before,
.value-text,
.company-info,
.company-message-card,
.company-table-card,
.company-access-card,
.staff-card,
.contact-box,
.needs-grid article,
.area-grid article,
.property-card,
.consult-cards a,
.consult-photo-strip figure,
.fixed-cta{
  border-color:var(--heiwa-border-soft)!important;
}

.value-text,
.company-info,
.company-message-card,
.company-table-card,
.company-access-card,
.staff-card,
.contact-box,
.needs-grid article,
.area-grid article,
.property-card,
.consult-cards a{
  border-width:1.5px!important;
  box-shadow:var(--heiwa-shadow-soft);
}

.needs-grid article,
.area-grid article,
.consult-cards a,
.staff-card,
.company-message-card,
.company-table-card,
.company-access-card,
.contact-box{
  border-radius:clamp(20px,2vw,28px)!important;
}

/* トップビュー：参考イメージに寄せて、写真・余白・文字の動きを上品に */
.hero-section{
  position:relative;
  padding:clamp(1.25rem,2.4vw,2rem) clamp(1rem,3.4vw,3.125rem) 0!important;
  background:#fff!important;
  overflow:hidden;
}
.hero-section::before{
  content:"HEIWA HOME REAL ESTATE";
  position:absolute;
  left:50%;
  top:clamp(.75rem,2vw,1.25rem);
  transform:translateX(-50%);
  width:max-content;
  max-width:160vw;
  color:transparent;
  -webkit-text-stroke:1px rgba(17,17,17,.08);
  text-stroke:1px rgba(17,17,17,.08);
  font-family:"Inter",sans-serif;
  font-size:clamp(3rem,10vw,9rem);
  font-weight:900;
  letter-spacing:.18em;
  line-height:1;
  pointer-events:none;
  z-index:0;
}
.hero-frame{
  border-radius:clamp(20px,2.5vw,34px)!important;
  overflow:hidden!important;
  box-shadow:0 34px 90px rgba(17,17,17,.12);
  isolation:isolate;
}
.hero-frame::before{
  border-width:1.5px!important;
  border-radius:inherit!important;
  height:auto!important;
  inset:0!important;
  border-bottom:1.5px solid var(--heiwa-border-soft)!important;
}
.hero-visual{
  margin:0!important;
  border-radius:inherit!important;
}
.hero-visual img{
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.045);
  animation:heiwaHeroDrift 18s ease-in-out infinite alternate;
}
.hero-visual::after{
  background:
    linear-gradient(90deg, rgba(0,0,0,.62) 0%, rgba(0,0,0,.34) 45%, rgba(0,0,0,.08) 100%)!important;
}
.hero-text{
  left:clamp(1.5rem,7vw,7rem)!important;
  right:clamp(1.5rem,7vw,7rem)!important;
  bottom:max(8%, 8.5rem)!important;
}
.hero-copy{
  animation:none!important;
}
.hero-copy--wave{
  font-size:clamp(2.6rem,5vw,5.65rem)!important;
  line-height:1.38!important;
  letter-spacing:.06em!important;
}
.hero-copy--wave span{
  border:0!important;
  padding:0!important;
  width:auto!important;
  max-width:none!important;
}
.hero-copy--wave .hero-line{
  display:block!important;
  width:max-content!important;
  max-width:100%!important;
  border-bottom:.24rem solid rgba(255,255,255,.94)!important;
  padding:0 .08em .12em!important;
  overflow:hidden;
}
.hero-copy--wave .hero-char{
  display:inline-block!important;
  opacity:0;
  transform:translateY(1.15em) rotate(4deg);
  animation:heiwaCharWave .9s cubic-bezier(.16,1,.3,1) forwards;
  animation-delay:calc(var(--i) * .045s + .12s);
  will-change:transform, opacity;
}
.hero-lead{
  animation:heroFadeUp .9s cubic-bezier(.16,1,.3,1) 1.05s both!important;
}
@keyframes heiwaCharWave{
  0%{opacity:0;transform:translateY(1.15em) rotate(4deg)}
  58%{opacity:1;transform:translateY(-.12em) rotate(-1.5deg)}
  100%{opacity:1;transform:translateY(0) rotate(0)}
}
@keyframes heiwaHeroDrift{
  from{transform:scale(1.045) translate3d(-.4%,0,0)}
  to{transform:scale(1.085) translate3d(.7%,0,0)}
}

/* 「物件情報だけでは…」は文字を固定、背景写真だけがゆっくり流れる */
.value-section{
  position:relative;
  overflow:hidden;
  padding:clamp(5rem,8vw,8.5rem) 0!important;
  background:#fff!important;
}
.value-inner{
  position:relative;
  width:min(100% - 32px,var(--container));
  min-height:clamp(26rem,38vw,36rem);
  margin-inline:auto;
  display:block!important;
}
.value-text{
  position:relative!important;
  z-index:2;
  width:min(30rem,100%);
  padding:clamp(1.8rem,3vw,3rem)!important;
  border-radius:26px!important;
  background:rgba(255,255,255,.94)!important;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.value-text h2{
  font-size:clamp(2rem,3.2vw,3.1rem)!important;
  line-height:1.42!important;
  letter-spacing:.03em;
}
.value-text p{
  line-height:2!important;
}
.value-visual{
  position:absolute!important;
  z-index:1;
  inset:clamp(1rem,2vw,2rem) -12vw clamp(1rem,2vw,2rem) clamp(16rem,27vw,29rem);
  height:auto!important;
  margin:0!important;
  overflow:hidden!important;
  border-radius:0!important;
  pointer-events:none;
}
.value-visual::before,
.value-visual::after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  width:15vw;
  z-index:2;
  pointer-events:none;
}
.value-visual::before{left:0;background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,0) 100%)}
.value-visual::after{right:0;background:linear-gradient(270deg,#fff 0%,rgba(255,255,255,0) 100%)}
.value-track{
  height:100%!important;
  gap:clamp(1rem,2vw,2rem)!important;
  animation:valueSlide 58s linear infinite!important;
}
.value-track img{
  width:clamp(15rem,24vw,25rem)!important;
  height:100%!important;
  border-radius:18px!important;
  filter:saturate(.96) contrast(.98);
  box-shadow:0 18px 40px rgba(17,17,17,.08);
}

/* 相談・カード類：黒枠の印象を和らげ、押せるUIに */
.consult-section{
  background:linear-gradient(180deg,#fff 0%,var(--color-soft) 100%)!important;
}
.consult-cards a{
  background:rgba(255,255,255,.9)!important;
  border-color:rgba(17,17,17,.72)!important;
  transition:transform .22s ease, box-shadow .22s ease, background .22s ease;
}
.consult-cards a:hover{
  transform:translateY(-4px)!important;
  box-shadow:var(--heiwa-shadow-hover);
  background:#fff!important;
}
.consult-cards strong{
  white-space:normal!important;
  letter-spacing:.02em;
}
.consult-photo-strip figure{
  border-width:1.5px!important;
  border-radius:24px!important;
  box-shadow:var(--heiwa-shadow-soft);
}
.panel-tags a,
.property-filter-chip,
.property-tag,
.property-detail-chip{
  border-color:rgba(17,17,17,.55)!important;
}

/* 会社情報：社名が2行で割れないよう、PCは少し小さめに調整 */
.company-info{
  border-width:1.5px!important;
  border-color:rgba(17,17,17,.78)!important;
}
.company-logo-row{
  min-width:0;
}
.company-logo-row strong{
  font-size:clamp(1.45rem,2.25vw,2.72rem)!important;
  line-height:1.16!important;
  letter-spacing:.035em!important;
  white-space:nowrap!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
}
.company-logo-row span{
  letter-spacing:.18em!important;
}
.company-list dd{
  word-break:keep-all;
  overflow-wrap:anywhere;
}

/* 既存のv15背景写真は残しつつ、文字の読みやすさを優先 */
.company-info::before{
  background:
    linear-gradient(90deg,
      rgba(255,255,255,.99) 0%,
      rgba(255,255,255,.97) 48%,
      rgba(255,255,255,.88) 72%,
      rgba(255,255,255,.72) 100%
    ),
    url("../images/company-exterior.webp") right center / cover no-repeat!important;
  opacity:.9!important;
}

/* スマホ最適化 */
@media (max-width:900px){
  .hero-section{
    padding:.875rem 1rem 0!important;
  }
  .hero-section::before{
    display:none;
  }
  .hero-frame{
    min-height:min(74svh,40rem)!important;
    height:auto!important;
  }
  .hero-visual{
    min-height:min(74svh,40rem);
  }
  .hero-text{
    left:1.25rem!important;
    right:1.25rem!important;
    bottom:clamp(5.5rem,16vw,7.5rem)!important;
  }
  .hero-copy--wave{
    font-size:clamp(2.25rem,10.5vw,3.6rem)!important;
    line-height:1.42!important;
  }
  .hero-copy--wave .hero-line{
    border-bottom-width:.18rem!important;
  }
  .hero-lead{
    font-size:.94rem!important;
    line-height:1.85!important;
  }

  .value-section{
    padding:clamp(4rem,12vw,5.5rem) 0!important;
  }
  .value-inner{
    min-height:auto;
    display:grid!important;
    gap:1.25rem;
  }
  .value-text{
    width:100%;
    position:relative!important;
  }
  .value-visual{
    position:relative!important;
    inset:auto!important;
    height:clamp(14rem,58vw,22rem)!important;
    border-radius:20px!important;
    overflow:hidden!important;
  }
  .value-track img{
    width:clamp(13rem,70vw,18rem)!important;
  }

  .company-logo-row{
    align-items:flex-start!important;
  }
  .company-logo-row strong{
    font-size:clamp(1.38rem,6vw,2rem)!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }
}

@media (max-width:520px){
  .hero-copy--wave{
    font-size:clamp(2rem,10vw,3.1rem)!important;
  }
  .value-text h2{
    font-size:clamp(1.75rem,8vw,2.45rem)!important;
  }
}

@media (prefers-reduced-motion:reduce){
  .hero-visual img,
  .hero-copy--wave .hero-char,
  .value-track{
    animation:none!important;
    transform:none!important;
    opacity:1!important;
  }
}


/* =========================================================
   v17 final polish
   Header center / menu right / hero copy lower-left / admin photo card fix
========================================================= */

/* トップビューのロゴは常に中央、MENUは右寄せに固定 */
.site-header{
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;
}
.site-header .pill-nav{
  grid-column:1!important;
  justify-self:start!important;
}
.site-header .brand{
  grid-column:2!important;
  justify-self:center!important;
  align-items:center!important;
  text-align:center!important;
}
.site-header .menu-trigger{
  grid-column:3!important;
  justify-self:end!important;
}

/* トップページは左ナビを完全に消しつつ、中央ロゴの位置は維持 */
body.home .site-header .pill-nav,
body.front-page .site-header .pill-nav,
.pill-nav--front-empty{
  display:block!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

/* ヒーロー文字は左下に読みやすく配置 */
.hero-text{
  left:clamp(1.5rem,6.2vw,6.75rem)!important;
  right:auto!important;
  bottom:clamp(5.75rem,10vh,8.25rem)!important;
  width:min(64rem,calc(100% - 3rem))!important;
  max-width:calc(100% - 3rem)!important;
  text-align:left!important;
}
.hero-copy--wave{
  max-width:min(62rem,100%)!important;
}
.hero-copy--wave .hero-line{
  max-width:100%!important;
}
.hero-lead{
  max-width:min(46rem,100%)!important;
}

/* スマホでもロゴ中央・MENU右、本文は画像に被りすぎない左下配置 */
@media (max-width:900px){
  .site-header{
    grid-template-columns:4rem minmax(0,1fr) 4rem!important;
    padding:.9rem 1rem!important;
  }
  .site-header .pill-nav{
    display:none!important;
  }
  .site-header .brand{
    grid-column:2!important;
    justify-self:center!important;
    align-items:center!important;
    text-align:center!important;
    max-width:100%!important;
  }
  .site-header .brand-mark{
    width:2.35rem!important;
  }
  .site-header .brand strong{
    font-size:clamp(1.55rem,6.7vw,2.15rem)!important;
    line-height:1.05!important;
    white-space:nowrap!important;
  }
  .site-header .brand span{
    font-size:clamp(.58rem,2.3vw,.72rem)!important;
    letter-spacing:.13em!important;
    white-space:nowrap!important;
    overflow:visible!important;
  }
  .site-header .menu-trigger{
    grid-column:3!important;
    justify-self:end!important;
  }
  .site-header .menu-trigger i{
    width:3.1rem!important;
    height:3.1rem!important;
  }
  .hero-text{
    left:1.15rem!important;
    right:1.15rem!important;
    bottom:clamp(5.2rem,13vw,6.8rem)!important;
    width:auto!important;
    max-width:none!important;
  }
  .hero-copy--wave{
    font-size:clamp(2rem,9.2vw,3.25rem)!important;
    line-height:1.38!important;
  }
  .hero-lead{
    max-width:32rem!important;
    font-size:.9rem!important;
  }
}
@media (max-width:390px){
  .site-header{
    grid-template-columns:3.4rem minmax(0,1fr) 3.4rem!important;
    padding:.82rem .75rem!important;
  }
  .site-header .brand strong{
    font-size:clamp(1.35rem,6.4vw,1.85rem)!important;
  }
  .site-header .brand span{
    font-size:.56rem!important;
    letter-spacing:.1em!important;
  }
  .site-header .menu-trigger i{
    width:2.85rem!important;
    height:2.85rem!important;
  }
}

/* SEO・アクセシビリティ補助：見出し/CTAの可読性を強化 */
.hero-copy,
.hero-lead{
  text-wrap:balance;
}
.hero-copy--wave .hero-char{
  backface-visibility:hidden;
}


/* =========================================================
   v18 Additional service pages
   Rent / Sell / Lend / Vacant house
========================================================= */
.service-page {
  background: var(--color-bg);
  padding: calc(var(--header) + 2rem) var(--side-padding) var(--section-space);
  color: var(--color-text);
}

.service-page .eyebrow {
  letter-spacing: .22em;
  color: var(--color-muted);
}

.service-hero,
.service-split,
.service-lead,
.service-feature-grid,
.service-card-row,
.service-photo-band,
.service-detail-grid,
.service-two-photos {
  width: min(100% - 32px, var(--container));
  margin-inline: auto;
}

.service-hero {
  display: grid;
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
  min-height: min(72vh, 720px);
  padding-block: clamp(3rem, 7vw, 7rem);
}

.service-hero--image-left {
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.1fr);
}

.service-hero--center,
.service-hero--plain {
  text-align: center;
  min-height: auto;
  max-width: 980px;
}

.service-hero h1,
.service-split h1 {
  margin: .65rem 0 1.25rem;
  font-size: clamp(2.8rem, 6vw, 6.8rem);
  line-height: 1.12;
  letter-spacing: -.04em;
  font-weight: 900;
}

.service-hero p,
.service-split p,
.service-lead p {
  font-size: clamp(1rem, 1.3vw, 1.22rem);
  line-height: 2;
  font-weight: 700;
}

.service-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .9rem;
  margin-top: 2rem;
}

.button-primary,
.button-secondary,
.service-action-list a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.35rem;
  padding: .8rem 1.4rem;
  border: 1.5px solid var(--color-black);
  border-radius: 999px;
  font-weight: 900;
  text-decoration: none;
  transition: transform .28s ease, box-shadow .28s ease, background .28s ease;
}

.button-primary {
  background: var(--color-black);
  color: #fff;
}

.button-secondary {
  background: #fff;
  color: var(--color-black);
}

.button-primary:hover,
.button-secondary:hover,
.service-action-list a:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(0,0,0,.1);
}

.service-hero__visual {
  margin: 0;
  border-radius: 30px;
  overflow: hidden;
  box-shadow: 0 28px 80px rgba(0,0,0,.12);
}

.service-hero__visual img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}

.service-lead {
  max-width: 900px;
  text-align: center;
  margin-top: clamp(2rem, 6vw, 5rem);
  margin-bottom: clamp(2rem, 5vw, 4rem);
}

.service-lead h2,
.service-detail-grid h2,
.service-two-photos h2 {
  font-size: clamp(2rem, 3vw, 3.4rem);
  line-height: 1.2;
  margin: 0 0 1rem;
}

.service-feature-grid,
.service-card-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.5rem, 3vw, 2.5rem);
  margin-top: clamp(2rem, 4vw, 4rem);
}

.service-feature-grid article,
.service-card-row article,
.service-detail-grid article,
.service-two-photos article {
  background: rgba(255,255,255,.82);
  border: 1.25px solid rgba(17,17,17,.22);
  border-radius: 30px;
  padding: clamp(1.4rem, 2.5vw, 2.5rem);
  box-shadow: 0 20px 60px rgba(0,0,0,.06);
}

.service-feature-grid figure {
  margin: 0 0 1.25rem;
  border-radius: 999px;
  overflow: hidden;
  border: 1.25px solid rgba(17,17,17,.25);
}

.service-feature-grid figure img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

.service-feature-grid span {
  display: inline-block;
  font-size: 2.4rem;
  line-height: 1;
  font-weight: 900;
  border-bottom: 2px solid currentColor;
  margin-bottom: .8rem;
}

.service-feature-grid h3,
.service-card-row h2 {
  font-size: clamp(1.35rem, 1.8vw, 2rem);
  margin: 0 0 .8rem;
}

.service-feature-grid p,
.service-card-row p,
.service-detail-grid p,
.service-detail-grid li,
.service-two-photos li {
  font-weight: 700;
  line-height: 2;
}

.service-split {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
  gap: clamp(2rem, 6vw, 6rem);
  align-items: center;
  padding-block: clamp(4rem, 8vw, 8rem);
}

.service-action-list {
  display: grid;
  gap: 1.2rem;
}

.service-action-list a {
  justify-content: space-between;
  gap: 2rem;
  border-radius: 20px;
  padding: clamp(1.4rem, 2.6vw, 2.4rem);
  background: #fff;
  color: var(--color-black);
}

.service-action-list a strong {
  font-size: clamp(1.4rem, 2.3vw, 2.5rem);
  line-height: 1.25;
}

.service-action-list a span {
  max-width: 16em;
  color: var(--color-muted);
  font-weight: 800;
  line-height: 1.7;
}

.service-photo-band {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.6rem);
  margin-top: clamp(3rem, 6vw, 6rem);
}

.service-photo-band img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 22px;
}

.service-detail-grid,
.service-two-photos {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.5rem, 3vw, 2.5rem);
  margin-top: clamp(3rem, 6vw, 6rem);
}

.service-detail-grid ul,
.service-two-photos ul {
  padding-left: 1.2em;
  margin: 1rem 0 0;
}

.service-two-photos img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: 20px;
  margin-bottom: 1.5rem;
}

@media (max-width: 980px) {
  .service-hero--image-left,
  .service-split,
  .service-feature-grid,
  .service-card-row,
  .service-photo-band,
  .service-detail-grid,
  .service-two-photos {
    grid-template-columns: 1fr;
  }

  .service-hero {
    min-height: auto;
  }

  .service-action-list a {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 640px) {
  .service-page {
    padding-top: calc(var(--header) + 1rem);
  }

  .service-hero h1,
  .service-split h1 {
    font-size: clamp(2.35rem, 12vw, 3.6rem);
  }

  .service-actions {
    display: grid;
  }

  .button-primary,
  .button-secondary {
    width: 100%;
  }
}


/* =========================================================
   v20: トップページ整理 / 平和ホームについて
   トップは新着物件まで。会社紹介以降は /about/ に集約。
========================================================= */
.front-next-card{
  width:min(100% - 32px,var(--container));
  margin:clamp(2rem,4vw,3rem) auto 0;
  padding:clamp(1.25rem,3vw,2rem);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.25rem;
  background:linear-gradient(135deg,#fff 0%,#faf6ec 100%);
  border:1px solid rgba(17,17,17,.12);
  border-radius:clamp(1.25rem,3vw,2rem);
  box-shadow:0 18px 45px rgba(0,0,0,.06);
}
.front-next-card p{
  margin:0;
  color:var(--color-muted);
  font-weight:700;
}
.front-next-card a{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  min-height:3rem;
  padding:0 1.25rem;
  border-radius:999px;
  background:#111;
  color:#fff;
  font-weight:900;
}
.front-next-card a span{
  width:1.75rem;
  height:1.75rem;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.55);
  border-radius:999px;
}
.about-page{
  --about-max:1280px;
  background:#fff;
  color:#151515;
}
.about-page .eyebrow{
  color:#7a7a7a;
}
.about-hero,
.about-story,
.about-message,
.about-features,
.about-consult,
.about-company{
  padding-inline:max(var(--side-padding),calc((100% - var(--about-max)) / 2));
}
.about-hero{
  position:relative;
  min-height:clamp(560px,76vh,820px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding-top:clamp(4rem,8vw,8rem);
  padding-bottom:clamp(4rem,9vw,9rem);
  overflow:hidden;
  background:
    linear-gradient(90deg,rgba(255,255,255,.94) 0%,rgba(255,255,255,.86) 52%,rgba(255,255,255,.70) 100%),
    linear-gradient(180deg,rgba(255,255,255,.95) 0%,rgba(248,243,232,.88) 100%),
    url('https://www.heiwagiken.jp/common/wp-content/uploads/P1000455-scaled.jpg') center center / cover no-repeat;
}
.about-kicker{
  width:max-content;
  margin:0 0 clamp(2rem,4vw,3.5rem);
  border-bottom:2px solid #111;
  font-size:clamp(1.05rem,2vw,1.55rem);
  font-weight:800;
  letter-spacing:.03em;
}
.about-hero h1{
  position:relative;
  z-index:1;
  max-width:1060px;
  margin:0;
  font-size:clamp(2.55rem,5.8vw,6.35rem);
  line-height:1.35;
  letter-spacing:.02em;
  font-weight:900;
}
.about-hero-lead{
  max-width:820px;
  margin:clamp(2rem,4vw,3rem) 0 0;
  font-size:clamp(1rem,1.6vw,1.25rem);
  line-height:2.1;
  font-weight:700;
}
.about-outline-word{
  position:absolute;
  left:50%;
  bottom:clamp(1rem,3vw,2rem);
  transform:translateX(-50%);
  white-space:nowrap;
  font-family:"Inter",sans-serif;
  font-size:clamp(4.8rem,13vw,13rem);
  font-weight:900;
  letter-spacing:.08em;
  color:transparent;
  -webkit-text-stroke:1px rgba(0,0,0,.12);
  pointer-events:none;
}
.about-story{
  display:grid;
  grid-template-columns:minmax(280px,.85fr) minmax(0,1fr);
  gap:clamp(2.5rem,6vw,7rem);
  padding-top:clamp(5rem,10vw,9rem);
  padding-bottom:clamp(5rem,10vw,9rem);
  align-items:start;
}
.about-story-photo{
  margin:0;
  position:sticky;
  top:calc(var(--header) + 2rem);
}
.about-story-photo img{
  width:100%;
  min-height:clamp(420px,62vw,760px);
  object-fit:cover;
  border-radius:0;
  box-shadow:0 22px 70px rgba(0,0,0,.08);
}
.about-story-text{
  max-width:720px;
}
.about-story-text h2,
.about-message h2,
.about-section-head h2,
.about-consult h2{
  margin:.5rem 0 clamp(1.5rem,3vw,2.5rem);
  font-size:clamp(2rem,4.4vw,4.4rem);
  line-height:1.35;
  letter-spacing:.01em;
  font-weight:900;
}
.about-story-text p,
.about-message p,
.about-consult p,
.about-feature-grid p{
  font-size:clamp(1rem,1.22vw,1.12rem);
  line-height:2.05;
  font-weight:700;
}
.about-message{
  padding-top:clamp(2rem,4vw,4rem);
  padding-bottom:clamp(4rem,8vw,7rem);
}
.about-message-inner{
  padding:clamp(2rem,5vw,4.5rem);
  background:#fbfaf7;
  border:1px solid rgba(17,17,17,.10);
  border-radius:clamp(1.5rem,3vw,2.5rem);
  box-shadow:0 18px 60px rgba(0,0,0,.05);
}
.about-features{
  padding-top:clamp(4rem,7vw,7rem);
  padding-bottom:clamp(4rem,9vw,8rem);
  border-top:1px solid rgba(0,0,0,.08);
}
.about-section-head{
  margin-bottom:clamp(2rem,4vw,3.5rem);
}
.about-feature-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(1.5rem,3vw,2.5rem);
}
.about-feature-grid article{
  padding:clamp(1.25rem,2vw,2rem);
  background:#f7f7f5;
  border-radius:clamp(1.25rem,2.5vw,2rem);
  box-shadow:0 12px 38px rgba(0,0,0,.045);
}
.about-feature-grid img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  border-radius:clamp(1rem,2vw,1.6rem);
  margin-bottom:clamp(1.5rem,3vw,2.4rem);
}
.about-feature-grid h3{
  margin:0 0 1rem;
  font-size:clamp(1.35rem,2.2vw,2.15rem);
  line-height:1.45;
  font-weight:900;
}
.about-consult{
  display:grid;
  grid-template-columns:minmax(0,.85fr) minmax(320px,1fr);
  gap:clamp(2rem,5vw,5rem);
  align-items:center;
  padding-top:clamp(4rem,7vw,7rem);
  padding-bottom:clamp(4rem,9vw,8rem);
  border-top:1px solid rgba(0,0,0,.08);
}
.about-consult-copy ul{
  display:grid;
  gap:.8rem;
  margin:2rem 0 0;
  padding:0;
  list-style:none;
}
.about-consult-copy li{
  position:relative;
  padding-left:1.35rem;
  font-weight:800;
  line-height:1.8;
}
.about-consult-copy li::before{
  content:"";
  position:absolute;
  left:0;
  top:.82em;
  width:.5rem;
  height:.5rem;
  border-radius:50%;
  background:#bada36;
}
.about-consult-photo{
  margin:0;
}
.about-consult-photo img{
  width:100%;
  aspect-ratio:16/10;
  object-fit:cover;
  border-radius:clamp(1.25rem,2.5vw,2rem);
  box-shadow:0 18px 60px rgba(0,0,0,.08);
}
.about-company{
  padding-top:clamp(4rem,7vw,7rem);
  padding-bottom:clamp(4rem,8vw,7rem);
  background:#fbf8f0;
}
.about-company-layout{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr);
  gap:clamp(2rem,5vw,5rem);
  align-items:start;
}
.about-company-table,
.about-access{
  padding:clamp(1.5rem,3vw,2.5rem);
  background:#fff;
  border:1px solid rgba(17,17,17,.10);
  border-radius:clamp(1.25rem,2.5vw,2rem);
  box-shadow:0 16px 50px rgba(0,0,0,.05);
}
.about-access h3{
  margin:0 0 1rem;
  font-size:clamp(1.7rem,3vw,2.6rem);
}
.about-access p{
  margin:0 0 1.5rem;
  font-weight:800;
  line-height:1.8;
}
.about-map{
  width:100%;
  aspect-ratio:4/3;
  overflow:hidden;
  border-radius:1.25rem;
  background:#eee;
}
.about-map iframe{
  width:100%;
  height:100%;
  border:0;
}
.about-company .company-profile-table th,
.about-company .company-profile-table td{
  padding-block:1.2rem;
}
.about-page .staff-section{
  background:#fff;
  border-top:1px solid rgba(0,0,0,.08);
}
.about-page .contact-section{
  background:#fff;
}

@media (max-width: 1024px){
  .about-story,
  .about-company-layout,
  .about-consult{
    grid-template-columns:1fr;
  }
  .about-story-photo{
    position:relative;
    top:auto;
  }
  .about-story-photo img{
    min-height:auto;
    aspect-ratio:16/10;
  }
  .about-feature-grid{
    grid-template-columns:1fr;
  }
}
@media (max-width: 640px){
  .front-next-card{
    flex-direction:column;
    align-items:flex-start;
  }
  .front-next-card a{
    width:100%;
    justify-content:space-between;
  }
  .about-hero{
    min-height:auto;
    padding-top:3.5rem;
    padding-bottom:5rem;
  }
  .about-hero h1{
    font-size:clamp(2.4rem,11vw,4.2rem);
  }
  .about-hero-lead{
    line-height:1.9;
  }
  .about-outline-word{
    font-size:4.8rem;
    bottom:.5rem;
  }
  .about-story,
  .about-message,
  .about-features,
  .about-consult,
  .about-company{
    padding-top:3.75rem;
    padding-bottom:3.75rem;
  }
  .about-message-inner,
  .about-company-table,
  .about-access{
    padding:1.35rem;
    border-radius:1.35rem;
  }
  .about-company .company-profile-table tr,
  .about-company .company-profile-table th,
  .about-company .company-profile-table td{
    display:block;
    width:100%;
  }
  .about-company .company-profile-table th{
    padding-bottom:.25rem;
  }
  .about-company .company-profile-table td{
    padding-top:.25rem;
  }
}

/* トップを新着物件までにした分、最下部の余白を自然に確保 */
.home .properties-section{
  padding-bottom:clamp(5rem,8vw,8rem);
}


/* =========================================================
   v21 refinement
   - 文字サイズを全体的に少し抑えて視認性を改善
   - 物件情報ページの使い方3カードを非表示
   - 枠線を弱め、余白と行間で上品に見せる
========================================================= */

/* 基本タイポグラフィ：見出しの圧を抑え、本文の読みやすさを優先 */
body{
  font-family:"Zen Kaku Gothic New","Noto Sans JP",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.015em;
  font-feature-settings:"palt" 1;
}
p,li,td,th{
  line-height:1.9;
}
.eyebrow,
.about-kicker,
.service-page .eyebrow{
  font-size:clamp(.78rem,.92vw,.95rem)!important;
  letter-spacing:.18em;
}

/* トップページ */
.hero-copy{
  font-size:clamp(2.05rem,3.45vw,3.95rem)!important;
  line-height:1.42!important;
  letter-spacing:.045em!important;
  max-width:min(48rem,88vw)!important;
}
.hero-lead{
  font-size:clamp(.92rem,1.05vw,1.08rem)!important;
  line-height:1.85!important;
  max-width:42rem!important;
}
.section-head h2{
  font-size:clamp(1.65rem,2.35vw,2.75rem)!important;
  line-height:1.34!important;
}
.panel-main h3{
  font-size:clamp(1.85rem,2.45vw,2.85rem)!important;
  line-height:1.12!important;
}
.consult-copy h2,
.contact-box h2{
  font-size:clamp(1.85rem,3vw,3.15rem)!important;
  line-height:1.34!important;
}

/* 物件情報ページ：不要な説明3カードを完全に消す */
.property-guide-section{
  display:none!important;
}
.property-archive-hero{
  padding-top:clamp(3.25rem,5.5vw,5.25rem)!important;
  padding-bottom:clamp(1.5rem,3vw,3rem)!important;
}
.property-archive-head h1,
body.post-type-archive-property .page-head h1{
  font-size:clamp(2rem,3.5vw,3.65rem)!important;
  line-height:1.16!important;
  letter-spacing:-.02em!important;
}
.property-archive-head,
body.post-type-archive-property .page-head{
  max-width:var(--container);
}
.property-filter-head h2{
  font-size:clamp(1.6rem,2.35vw,2.55rem)!important;
  line-height:1.3!important;
}
.property-section-title,
.property-results-head h2{
  font-size:clamp(1.55rem,2.2vw,2.45rem)!important;
  line-height:1.35!important;
}
.property-card .property-title,
.property-card .property-title strong{
  font-size:clamp(1.08rem,1.3vw,1.35rem)!important;
  line-height:1.45!important;
}
.property-filter-card,
.property-card,
.property-empty,
.property-archive-support{
  border-color:rgba(17,17,17,.12)!important;
  box-shadow:0 16px 48px rgba(0,0,0,.055)!important;
}

/* 下層・追加ページ */
.page-head h1,
.service-hero h1,
.service-split h1{
  font-size:clamp(2.1rem,4.1vw,4.25rem)!important;
  line-height:1.22!important;
  letter-spacing:-.025em!important;
}
.service-lead h2,
.service-detail-grid h2,
.service-two-photos h2{
  font-size:clamp(1.65rem,2.55vw,2.7rem)!important;
  line-height:1.32!important;
}
.service-action-list a strong{
  font-size:clamp(1.2rem,1.8vw,1.85rem)!important;
  line-height:1.35!important;
}
.service-feature-grid h3,
.service-card-row h2{
  font-size:clamp(1.15rem,1.55vw,1.55rem)!important;
  line-height:1.55!important;
}
.service-feature-grid article,
.service-card-row article,
.service-detail-grid article,
.service-two-photos article{
  border-color:rgba(17,17,17,.10)!important;
  box-shadow:0 16px 46px rgba(0,0,0,.045)!important;
}

/* 平和ホームについて */
.about-hero{
  min-height:clamp(460px,62vh,680px)!important;
  padding-top:clamp(3.25rem,6vw,6rem)!important;
  padding-bottom:clamp(3.5rem,7vw,7rem)!important;
}
.about-hero h1{
  max-width:900px!important;
  font-size:clamp(2.2rem,4.5vw,5rem)!important;
  line-height:1.42!important;
  letter-spacing:.005em!important;
}
.about-hero-lead{
  max-width:760px!important;
  font-size:clamp(.95rem,1.15vw,1.08rem)!important;
  line-height:2!important;
}
.about-outline-word{
  font-size:clamp(3.6rem,9vw,9rem)!important;
  opacity:.75;
}
.about-story-text h2,
.about-message h2,
.about-section-head h2,
.about-consult h2{
  font-size:clamp(1.75rem,3.1vw,3.25rem)!important;
  line-height:1.38!important;
}
.about-feature-grid h3{
  font-size:clamp(1.15rem,1.7vw,1.65rem)!important;
  line-height:1.55!important;
}
.about-access h3{
  font-size:clamp(1.35rem,2.2vw,2rem)!important;
}
.about-message-inner,
.about-feature-grid article,
.about-company-table,
.about-access{
  border-color:rgba(17,17,17,.10)!important;
  box-shadow:0 16px 50px rgba(0,0,0,.045)!important;
}

/* 会社情報ロゴの改行を防ぎつつサイズを抑える */
.company-logo-row strong{
  font-size:clamp(1.35rem,1.8vw,1.7rem)!important;
  line-height:1.2!important;
  word-break:keep-all;
  overflow-wrap:normal;
}
.company-logo-row span{
  font-size:.78rem!important;
  letter-spacing:.18em!important;
}

/* スタッフ・詳細系 */
.staff-card h3{
  font-size:clamp(1.25rem,1.7vw,1.65rem)!important;
}
.detail-head h1,
.property-detail-title-row h1{
  font-size:clamp(1.65rem,3.1vw,3rem)!important;
  line-height:1.25!important;
}
.single-property .detail-section-title{
  font-size:clamp(1.2rem,1.65vw,1.5rem)!important;
}

/* スマホ：タイトルをさらに抑え、1画面内で情報を拾いやすくする */
@media (max-width: 640px){
  .hero-copy{
    font-size:clamp(1.75rem,8vw,2.55rem)!important;
    line-height:1.45!important;
  }
  .hero-lead{
    font-size:.92rem!important;
  }
  .section-head h2,
  .property-archive-head h1,
  body.post-type-archive-property .page-head h1,
  .page-head h1{
    font-size:clamp(1.7rem,7.4vw,2.35rem)!important;
    line-height:1.3!important;
  }
  .about-hero{
    padding-top:2.5rem!important;
    padding-bottom:4.25rem!important;
  }
  .about-hero h1{
    font-size:clamp(1.9rem,8.8vw,3rem)!important;
    line-height:1.45!important;
  }
  .about-story-text h2,
  .about-message h2,
  .about-section-head h2,
  .about-consult h2,
  .service-hero h1,
  .service-split h1{
    font-size:clamp(1.7rem,7.5vw,2.4rem)!important;
    line-height:1.35!important;
  }
  .about-outline-word{
    font-size:3.6rem!important;
  }
}

/* =========================================================
   v22: 売る・貸すページのトップビュー調整 / 借りる導線非表示
========================================================= */
.service-cover-hero{
  position:relative;
  width:min(100% - 32px, 1500px);
  min-height:clamp(420px, 70vh, 780px);
  margin:0 auto clamp(3rem, 6vw, 5.5rem);
  overflow:hidden;
  border-radius:clamp(1rem, 2vw, 1.75rem);
  background:#111;
  box-shadow:0 24px 70px rgba(0,0,0,.10);
  isolation:isolate;
}
.service-cover-hero img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.025);
  animation:serviceHeroFloat 18s ease-in-out infinite alternate;
}
.service-cover-hero--sale img{
  object-position:center center;
}
.service-cover-hero--lend img{
  object-position:center 58%;
}
.service-cover-hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(90deg, rgba(0,0,0,.38) 0%, rgba(0,0,0,.16) 42%, rgba(0,0,0,.04) 100%),
    linear-gradient(0deg, rgba(0,0,0,.48) 0%, rgba(0,0,0,.02) 55%);
  pointer-events:none;
}
.service-cover-hero__copy{
  position:absolute;
  left:clamp(1.6rem, 5vw, 5rem);
  bottom:clamp(1.8rem, 5.5vw, 5rem);
  z-index:2;
  color:#fff;
  max-width:min(80vw, 760px);
}
.service-cover-hero__copy .eyebrow{
  color:rgba(255,255,255,.78);
  text-shadow:0 1px 18px rgba(0,0,0,.26);
}
.service-cover-hero__copy h1{
  margin:.45rem 0 0;
  display:inline-block;
  font-size:clamp(3.2rem, 8vw, 7.5rem);
  line-height:1;
  letter-spacing:-.045em;
  font-weight:500;
  text-shadow:0 8px 30px rgba(0,0,0,.28);
  border-bottom:.07em solid currentColor;
  padding-bottom:.08em;
}
.service-lead--wide{
  max-width:980px;
  margin-top:0;
}
.service-lead--wide h2{
  font-size:clamp(1.8rem, 3vw, 3.15rem);
  line-height:1.35;
  letter-spacing:-.03em;
}
.service-action-list--wide{
  width:min(100% - 32px, var(--container));
  margin:clamp(2rem, 4vw, 3.5rem) auto 0;
  grid-template-columns:repeat(2, minmax(0, 1fr));
}
.service-actions--center{
  justify-content:center;
}
@keyframes serviceHeroFloat{
  from{transform:scale(1.025) translate3d(0,0,0)}
  to{transform:scale(1.08) translate3d(-1.2%, -.8%,0)}
}
@media (prefers-reduced-motion: reduce){
  .service-cover-hero img{animation:none}
}
@media (max-width:980px){
  .service-action-list--wide{
    grid-template-columns:1fr;
  }
}
@media (max-width:640px){
  .service-cover-hero{
    width:min(100% - 24px, 1500px);
    min-height:clamp(390px, 64vh, 560px);
    border-radius:1.2rem;
    margin-bottom:2.5rem;
  }
  .service-cover-hero__copy{
    left:1.25rem;
    right:1.25rem;
    bottom:1.5rem;
  }
  .service-cover-hero__copy h1{
    font-size:clamp(2.6rem, 15vw, 4rem);
  }
  .service-cover-hero::before{
    background:
      linear-gradient(90deg, rgba(0,0,0,.34) 0%, rgba(0,0,0,.10) 70%),
      linear-gradient(0deg, rgba(0,0,0,.58) 0%, rgba(0,0,0,.05) 60%);
  }
}



/* v23: 平和技建リンク追加・about FV背景調整 */
.pill-nav a[target="_blank"]{
  padding-inline:clamp(.75rem,1.1vw,1.05rem);
  font-size:clamp(.86rem,.95vw,1.02rem);
}
.about-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 78% 20%,rgba(180,211,58,.16),transparent 26%),
    linear-gradient(180deg,rgba(255,255,255,.26),rgba(255,255,255,.58));
  pointer-events:none;
}
.about-hero > *{
  position:relative;
  z-index:1;
}
@media (max-width: 900px){
  .about-hero{
    background-position:center top;
  }
  .about-hero h1{
    font-size:clamp(2.2rem,10vw,4.2rem);
  }
}

/* =========================================================
   v24 refinement
   - ドロワーメニューの文字サイズを統一
   - 平和技建リンクを一番下に配置
   - トップビュー画像をページ幅へ自然に拡張
   - 物件情報ページの不要な相談カードを削除
   - aboutヒーロー見出しを小さくし、視認性を優先
========================================================= */

/* ドロワーメニュー：全項目のサイズ差をなくす */
.drawer-frame{
  padding:clamp(1.15rem,2.6vw,2rem) clamp(1.35rem,3.8vw,3.25rem);
  border-width:1.5px;
}
.drawer-frame a,
.drawer-frame a.small{
  min-height:clamp(4.25rem,6vw,5.5rem)!important;
  font-size:clamp(1.55rem,2.65vw,2.45rem)!important;
  line-height:1.18!important;
  font-weight:900;
  letter-spacing:.01em;
  justify-content:flex-start!important;
  border-bottom:1.5px solid rgba(17,17,17,.88);
}
.drawer-frame a.drawer-build-link{
  margin-top:.45rem;
  background:var(--color-soft);
  padding-inline:clamp(.9rem,2vw,1.35rem);
  border-radius:1rem;
  border-bottom:0;
}
.drawer-frame a.drawer-build-link + a{
  border-top:1.5px solid rgba(17,17,17,.88);
}

/* PCヘッダーの丸枠ナビは買う/売る/貸すに絞り、サイズを統一 */
.pill-nav a{
  font-size:clamp(.92rem,1vw,1.02rem)!important;
  padding-inline:clamp(.85rem,1.15vw,1.05rem)!important;
}

/* トップビュー：写真をページ幅へ広げ、文字は左下の読みやすい位置に固定 */
.hero-section{
  padding:clamp(.65rem,1.3vw,1.1rem) clamp(.75rem,2.4vw,2rem) 0!important;
}
.hero-frame{
  width:min(100%,1540px);
  margin-inline:auto;
  height:clamp(520px,calc(100svh - var(--header) - 1.5rem),860px)!important;
  min-height:clamp(480px,68svh,680px)!important;
  max-height:none!important;
  overflow:hidden!important;
  border-radius:clamp(1rem,2vw,1.75rem);
}
.hero-frame::before{
  display:none!important;
}
.outline-frame.hero-frame::before{
  display:none!important;
}
.hero-visual{
  height:100%!important;
  margin:0!important;
  border-radius:inherit!important;
}
.hero-visual img{
  transform:scale(1.018);
  object-position:58% 42%;
}
.hero-text{
  left:clamp(1.75rem,5vw,5.5rem)!important;
  right:clamp(1.5rem,5vw,5rem)!important;
  bottom:clamp(2rem,6vw,5rem)!important;
}
.hero-copy{
  font-size:clamp(2.1rem,3.8vw,4.6rem)!important;
  line-height:1.42!important;
}
.hero-lead{
  max-width:min(44rem,86vw)!important;
}

/* 物件情報ページ：2枚目で不要だった相談サポートカードを非表示 */
.property-archive-head{
  display:block!important;
}
.property-archive-support{
  display:none!important;
}
.property-archive-head h1{
  font-size:clamp(2rem,3.6vw,3.9rem)!important;
}

/* 私たちについて：大きすぎるタイトルを抑制 */
.about-hero{
  min-height:clamp(480px,68vh,700px)!important;
  padding-top:clamp(3.25rem,6vw,6.25rem)!important;
  padding-bottom:clamp(3.5rem,7vw,7rem)!important;
}
.about-hero h1{
  max-width:980px!important;
  font-size:clamp(2.25rem,5.1vw,5.25rem)!important;
  line-height:1.42!important;
  letter-spacing:.005em!important;
}
.about-hero-lead{
  font-size:clamp(.95rem,1.25vw,1.1rem)!important;
  line-height:2!important;
}
.about-outline-word{
  opacity:.28!important;
}

/* スマホ最適化 */
@media (max-width:900px){
  .site-header{
    grid-template-columns:1fr auto 1fr!important;
    padding:.9rem 1rem!important;
  }
  .site-header .brand{
    grid-column:2;
    align-items:center!important;
    text-align:center!important;
    max-width:min(58vw,18rem)!important;
  }
  .site-header .menu-trigger{
    grid-column:3;
    justify-self:end!important;
  }
  .site-header .pill-nav{
    display:none!important;
  }
  .drawer-head{
    align-items:flex-start;
    gap:1rem;
  }
  .drawer-brand strong{
    font-size:clamp(1.8rem,7vw,2.45rem)!important;
  }
  .drawer-brand span{
    font-size:clamp(.62rem,2.5vw,.8rem)!important;
  }
  .drawer-close span{
    font-size:clamp(1rem,4vw,1.35rem)!important;
  }
  .drawer-close i{
    width:3.5rem!important;
    height:3.5rem!important;
  }
  .drawer-close i::before,
  .drawer-close i::after{
    left:.85rem!important;
    top:1.68rem!important;
    width:1.75rem!important;
  }
  .drawer-frame{
    padding:1rem 1.25rem!important;
  }
  .drawer-frame a,
  .drawer-frame a.small{
    min-height:3.65rem!important;
    font-size:clamp(1.35rem,6vw,1.85rem)!important;
  }
  .drawer-frame a.drawer-build-link{
    margin-top:.6rem;
  }

  .hero-section{
    padding:.75rem .9rem 0!important;
  }
  .hero-frame{
    width:100%!important;
    min-height:clamp(520px,72svh,690px)!important;
    height:clamp(540px,75svh,720px)!important;
    border-radius:1.35rem!important;
  }
  .hero-visual img{
    object-position:60% 30%;
  }
  .hero-text{
    left:1.35rem!important;
    right:1.35rem!important;
    bottom:clamp(1.6rem,8vw,3rem)!important;
  }
  .hero-copy{
    font-size:clamp(2rem,9vw,3.25rem)!important;
    line-height:1.48!important;
    max-width:100%!important;
  }
  .hero-lead{
    font-size:.9rem!important;
  }

  .about-hero{
    min-height:auto!important;
    padding-top:2.75rem!important;
    padding-bottom:4.5rem!important;
  }
  .about-hero h1{
    font-size:clamp(1.9rem,8vw,3.15rem)!important;
    line-height:1.55!important;
  }
  .about-kicker{
    font-size:clamp(.95rem,4vw,1.15rem)!important;
    margin-bottom:1.6rem!important;
  }
}

@media (max-width:390px){
  .drawer-frame a,
  .drawer-frame a.small{
    font-size:1.28rem!important;
    min-height:3.35rem!important;
  }
  .about-hero h1{
    font-size:clamp(1.75rem,8.2vw,2.75rem)!important;
  }
}



/* =========================================================
   v25 compact typography / menu tuning
   - MENU文字を小さい方に統一
   - タイトル・サブタイトルを全体的に小さくして視認性を優先
========================================================= */

/* ヘッダー丸ボタン：1行で収まる小さめサイズへ */
.pill-nav,
.pill-nav ul{
  gap:clamp(.35rem,.65vw,.6rem)!important;
}
.pill-nav a{
  min-height:2.05rem!important;
  padding:0 .68rem!important;
  border-width:1.5px!important;
  font-size:.82rem!important;
  letter-spacing:.02em!important;
  line-height:1!important;
  white-space:nowrap!important;
}

/* MENUボタン本体も少しだけ軽く */
.menu-trigger{
  gap:.65rem!important;
  font-size:.88rem!important;
  letter-spacing:.03em!important;
}
.menu-trigger i{
  width:2.85rem!important;
  height:2.85rem!important;
  border-width:1.5px!important;
}
.menu-trigger i b{width:1.35rem!important}

/* ドロワー：全項目を同じ小ささに統一。スマホでも1行表示を優先 */
.drawer-frame{
  padding:clamp(1.1rem,2vw,1.55rem)!important;
}
.drawer-frame a,
.drawer-frame a.small,
.drawer-frame a.drawer-build-link{
  min-height:2.8rem!important;
  padding:.65rem 0!important;
  font-size:clamp(.92rem,2.35vw,1.05rem)!important;
  line-height:1.12!important;
  letter-spacing:.02em!important;
  font-weight:850!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  border-bottom-width:1px!important;
}
.drawer-frame a.drawer-build-link{
  margin-top:.25rem!important;
  padding-inline:0!important;
  background:transparent!important;
}

/* 主要タイトル：今より約半分〜6割程度の見え方へ */
h1{
  font-size:clamp(1.45rem,2.25vw,2.15rem)!important;
  line-height:1.48!important;
  letter-spacing:.015em!important;
}
.page-lead{
  font-size:clamp(.9rem,1.05vw,1rem)!important;
  line-height:1.9!important;
}

.hero-copy{
  font-size:clamp(1.85rem,3.1vw,3rem)!important;
  line-height:1.45!important;
  letter-spacing:.045em!important;
}
.hero-copy span{
  border-bottom-width:.16rem!important;
}
.hero-lead{
  font-size:clamp(.86rem,1vw,1.02rem)!important;
  line-height:1.75!important;
}

.value-text h2,
.section-head h2,
.property-filter-head h2,
.property-results-head h2,
.consult-box h2,
.contact-box h2{
  font-size:clamp(1.28rem,2vw,2rem)!important;
  line-height:1.48!important;
}

/* 物件情報ページ */
.property-archive-head h1{
  font-size:clamp(1.65rem,2.75vw,2.75rem)!important;
  line-height:1.35!important;
}
.property-filter-head h2{
  font-size:clamp(1.3rem,2.1vw,2.05rem)!important;
}

/* 私たちについて・追加ページの大見出し */
.about-hero{
  min-height:clamp(420px,58vh,640px)!important;
}
.about-hero h1{
  max-width:920px!important;
  font-size:clamp(1.95rem,3.95vw,4rem)!important;
  line-height:1.48!important;
  letter-spacing:.005em!important;
}
.about-hero-lead{
  font-size:clamp(.92rem,1.05vw,1rem)!important;
  line-height:1.95!important;
}
.about-kicker{
  font-size:clamp(.9rem,1.25vw,1.1rem)!important;
}
.about-message h2,
.about-features h2,
.about-consult h2,
.about-company h2,
.about-story h2{
  font-size:clamp(1.45rem,2.5vw,2.35rem)!important;
  line-height:1.45!important;
}

/* 売る・貸す・空き家などの追加ページ */
.service-hero h1,
.service-split h1{
  font-size:clamp(1.8rem,3.45vw,3.75rem)!important;
  line-height:1.22!important;
  letter-spacing:-.015em!important;
}
.service-cover-hero__copy h1{
  font-size:clamp(2rem,4.7vw,4.35rem)!important;
  line-height:1.05!important;
}
.service-lead--wide h2,
.service-lead h2{
  font-size:clamp(1.35rem,2.25vw,2.25rem)!important;
  line-height:1.5!important;
}
.service-card h2,
.service-card h3,
.service-action-list h3{
  font-size:clamp(1.2rem,1.75vw,1.75rem)!important;
  line-height:1.45!important;
}

/* 固定CTAは目立たせつつ、文字だけ少し詰める */
.fixed-cta{
  font-size:.9rem!important;
}
.fixed-cta a{
  white-space:nowrap!important;
}

@media (max-width:900px){
  .site-header{
    padding:.8rem .9rem!important;
    gap:.6rem!important;
  }
  .pill-nav{display:none!important}
  .menu-trigger{
    gap:.45rem!important;
    font-size:.78rem!important;
  }
  .menu-trigger i{
    width:2.7rem!important;
    height:2.7rem!important;
  }

  .drawer-panel,
  .drawer-inner{
    width:min(100% - 1.5rem, 34rem)!important;
  }
  .drawer-frame a,
  .drawer-frame a.small,
  .drawer-frame a.drawer-build-link{
    min-height:2.65rem!important;
    font-size:clamp(.82rem,3.25vw,.98rem)!important;
    letter-spacing:.01em!important;
  }

  h1{
    font-size:clamp(1.35rem,5.4vw,1.95rem)!important;
  }
  .hero-copy{
    font-size:clamp(1.65rem,7vw,2.55rem)!important;
  }
  .hero-lead{
    font-size:.82rem!important;
  }
  .about-hero h1{
    font-size:clamp(1.55rem,6.8vw,2.45rem)!important;
    line-height:1.55!important;
  }
  .about-hero-lead{
    font-size:.9rem!important;
  }
  .service-cover-hero__copy h1{
    font-size:clamp(1.75rem,8vw,2.75rem)!important;
  }
  .service-hero h1,
  .service-split h1{
    font-size:clamp(1.55rem,6.4vw,2.4rem)!important;
  }
  .property-archive-head h1{
    font-size:clamp(1.55rem,6vw,2.2rem)!important;
  }
}

@media (max-width:390px){
  .drawer-frame{
    padding:.9rem 1rem!important;
  }
  .drawer-frame a,
  .drawer-frame a.small,
  .drawer-frame a.drawer-build-link{
    min-height:2.45rem!important;
    font-size:.82rem!important;
  }
  .hero-copy{
    font-size:clamp(1.45rem,7vw,2.15rem)!important;
  }
}


/* =========================================================
   v26: 新着物件の英字装飾削除 / トップコピー変更 / 空き家ヒーロー調整
========================================================= */

/* 指示：新着物件まわりの大きな英字装飾を消す */
.properties-section::before,
.hero-frame::before {
  content:none !important;
  display:none !important;
}

/* 新着物件の見出し周りを日本語だけで見せる */
.properties-section .section-head {
  position:relative;
  z-index:1;
}

/* 変更後のトップコピーを2行で読みやすく */
.hero-copy {
  max-width:min(980px, 92vw);
}
.hero-copy .hero-line {
  white-space:nowrap;
}

/* 空き家相談ページを売る/貸すページと同じ写真ヒーローに統一 */
.service-cover-hero--vacant img {
  object-position:center center;
}
.service-cover-hero__copy p:not(.eyebrow) {
  margin:clamp(1rem, 2vw, 1.6rem) 0 0;
  max-width:min(760px, 88vw);
  color:rgba(255,255,255,.94);
  font-size:clamp(.95rem, 1.2vw, 1.15rem);
  line-height:1.9;
  font-weight:700;
  text-shadow:0 5px 22px rgba(0,0,0,.34);
}

/* 「買う、売る、活かすを一緒に整理」の見出しを少し控えめに */
.about-feature-grid h3 {
  font-size:clamp(1.35rem, 2vw, 2rem);
  line-height:1.45;
}

/* スマホ全体の読みやすさ補正 */
@media (max-width: 760px) {
  .hero-copy {
    font-size:clamp(2.35rem, 10vw, 4.2rem) !important;
    line-height:1.18 !important;
  }
  .hero-copy .hero-line {
    white-space:normal;
  }
  .service-cover-hero {
    width:min(100% - 24px, 100%);
    min-height:clamp(420px, 72vh, 620px);
    border-radius:1.35rem;
  }
  .service-cover-hero__copy {
    left:1.4rem;
    right:1.4rem;
    bottom:1.8rem;
    max-width:none;
  }
  .service-cover-hero__copy h1 {
    font-size:clamp(2.4rem, 11vw, 4.2rem);
  }
  .service-cover-hero__copy p:not(.eyebrow) {
    font-size:.95rem;
    line-height:1.85;
  }
  .about-feature-grid h3 {
    font-size:1.35rem;
  }
}


/* =========================================================
   v27 final requested refinements
   - Top headline 3 lines
   - Vacant house cover image
   - Slightly smaller feature copy
   - Smartphone adjustments + SEO-friendly readable layout
========================================================= */
.hero-copy{
  max-width:min(46rem,88vw);
  font-size:clamp(2.15rem,3.7vw,4.2rem);
  line-height:1.42;
  letter-spacing:.055em;
}
.hero-copy span{
  width:max-content;
  max-width:100%;
}
@media (max-width: 760px){
  .hero-text{
    left:clamp(1.35rem,6vw,2.2rem);
    right:clamp(1.35rem,6vw,2.2rem);
    bottom:clamp(3.4rem,13vw,5.6rem);
  }
  .hero-copy{
    font-size:clamp(1.85rem,8.4vw,3.1rem);
    line-height:1.42;
    letter-spacing:.03em;
  }
  .hero-lead{
    font-size:.92rem;
    line-height:1.75;
  }
}

.about-hero h1{
  max-width:980px;
  font-size:clamp(2.05rem,4.6vw,4.95rem) !important;
  line-height:1.46 !important;
  letter-spacing:.005em;
}
.about-hero-lead{
  font-size:clamp(.95rem,1.25vw,1.1rem);
}
.about-feature-grid h3{
  font-size:clamp(1.12rem,1.55vw,1.62rem) !important;
  line-height:1.55;
}
.about-feature-grid p{
  font-size:clamp(.92rem,1.04vw,1rem);
  line-height:1.95;
}

.service-cover-hero--vacant img{
  object-position:center center;
  filter:saturate(.96) contrast(.98);
}
.service-cover-hero--vacant::before{
  background:
    linear-gradient(90deg, rgba(0,0,0,.50) 0%, rgba(0,0,0,.22) 44%, rgba(0,0,0,.05) 100%),
    linear-gradient(0deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.03) 58%);
}
.service-cover-hero__copy p{
  margin:clamp(1rem,2vw,1.4rem) 0 0;
  max-width:min(48rem,80vw);
  font-size:clamp(.96rem,1.18vw,1.15rem);
  line-height:1.9;
  font-weight:800;
  text-shadow:0 4px 24px rgba(0,0,0,.34);
}
.service-lead h2,
.service-detail-grid h2,
.service-card-row h2,
.service-two-photos h2{
  font-size:clamp(1.45rem,2.4vw,2.55rem) !important;
  line-height:1.45;
}
.service-lead p,
.service-detail-grid p,
.service-detail-grid li,
.service-card-row p,
.service-two-photos li{
  font-size:clamp(.95rem,1.08vw,1.05rem);
  line-height:1.95;
}

@media (max-width: 760px){
  .about-hero{
    min-height:auto;
    padding-top:clamp(3rem,12vw,5rem);
    padding-bottom:clamp(3rem,14vw,5.5rem);
  }
  .about-hero h1{
    font-size:clamp(1.75rem,8vw,2.65rem) !important;
    line-height:1.48 !important;
  }
  .about-hero-lead{
    font-size:.94rem;
    line-height:1.9;
  }
  .service-cover-hero{
    width:min(100% - 24px, 1500px);
    min-height:clamp(440px,68vh,680px);
    border-radius:1.25rem;
  }
  .service-cover-hero__copy{
    left:1.35rem;
    right:1.35rem;
    bottom:1.55rem;
    max-width:none;
  }
  .service-cover-hero__copy h1{
    font-size:clamp(2.25rem,12vw,3.6rem) !important;
  }
  .service-cover-hero__copy p{
    font-size:.9rem;
    line-height:1.75;
    max-width:100%;
  }
}


/* =========================================================
   v29 final refinements
   - About top copy: smaller and no awkward one-character line
   - Vacant house headline update
   - All button hover text: dark green, not white
========================================================= */
:root{
  --color-green-dark:#2f5f16;
}

/* 「平和ホームは、五條市に根ざしながら…」をさらに小さくして自然に改行 */
.about-hero h1{
  max-width:min(1080px, 92vw) !important;
  font-size:clamp(1.58rem,3.15vw,3.25rem) !important;
  line-height:1.55 !important;
  letter-spacing:.002em !important;
  word-break:keep-all !important;
  overflow-wrap:normal !important;
  text-wrap:balance;
}
.about-hero-lead{
  font-size:clamp(.9rem,1vw,1rem) !important;
}

/* ボタン/リンクのhoverで白文字にならないよう濃い緑に統一 */
.pill-nav a:hover,
.drawer-frame a:hover,
.drawer-frame a.small:hover,
.drawer-frame a.drawer-build-link:hover,
.circle-link:hover,
.circle-link:hover span,
.panel-main:hover,
.panel-main:hover .panel-arrow,
.panel-tags a:hover,
.consult-cards a:hover,
.map-link:hover,
.contact-actions a:hover,
.contact-actions a:first-child:hover,
.property-actions a:hover,
.property-actions a:not(.is-primary):hover,
.detail-button:hover,
.detail-button.is-primary:hover,
.button-primary:hover,
.button-secondary:hover,
.service-action-list a:hover,
.hero-actions a:hover,
.fixed-cta a:hover{
  color:var(--color-green-dark) !important;
  background:#fff !important;
  border-color:var(--color-green-dark) !important;
}

/* アイコン線や矢印もhover時は緑に合わせる */
.circle-link:hover span,
.panel-main:hover .panel-arrow,
.service-action-list a:hover::after{
  color:var(--color-green-dark) !important;
}

/* 黒背景ボタンのhoverも読みやすい反転に統一 */
.button-primary:hover,
.contact-actions a:first-child:hover,
.detail-button.is-primary:hover,
.property-actions a:hover,
.hero-actions a:hover{
  box-shadow:0 12px 30px rgba(47,95,22,.16) !important;
}

/* 固定CTAはhover時もレイアウトを崩さず、文字だけ濃い緑へ */
.fixed-cta a:hover{
  box-shadow:none !important;
}

/* 空き家ページのヒーロー説明は少しだけ読みやすく */
.service-cover-hero--vacant .service-cover-hero__copy p{
  font-size:clamp(.92rem,1.08vw,1.05rem) !important;
  line-height:1.9 !important;
  max-width:min(680px,86vw) !important;
}

/* スマホ */
@media (max-width:760px){
  .about-hero h1{
    max-width:100% !important;
    font-size:clamp(1.3rem,5.9vw,2.05rem) !important;
    line-height:1.6 !important;
    word-break:keep-all !important;
  }
  .about-hero-lead{
    font-size:.86rem !important;
    line-height:1.9 !important;
  }
  .service-cover-hero--vacant .service-cover-hero__copy p{
    font-size:.86rem !important;
    line-height:1.8 !important;
  }
}


/* =========================================================
   v30 final polish
   - スマホのトップビュー文字をさらに小さく
   - フッターのタグメニュー削除
   - 私たちについての背景に会社外観を薄く表示
   - スクロールアニメーション強化
   - SEO視点の読みやすさ・CLS対策
========================================================= */

/* フッターの丸タグ型メニューは非表示。導線はMENUと固定CTAに集約 */
.footer-nav{
  display:none !important;
}

/* 私たちについて：会社外観をうっすら背景表示 */
.about-hero{
  background:
    linear-gradient(90deg, rgba(255,255,255,.95) 0%, rgba(255,255,255,.90) 54%, rgba(255,255,255,.84) 100%),
    linear-gradient(180deg, rgba(255,255,255,.95) 0%, rgba(247,243,234,.92) 100%),
    url("../images/company-exterior-about.png") center bottom / min(92vw, 1280px) auto no-repeat !important;
}
.about-hero::after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:42%;
  pointer-events:none;
  background:linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.94) 100%);
  z-index:0;
}
.about-hero > *{
  position:relative;
  z-index:1;
}

/* スマホ：トップビュー左下コピーを現在の約1/2に */
@media (max-width:760px){
  .hero-section .hero-text{
    left:clamp(1.25rem,5vw,1.75rem) !important;
    right:clamp(1.25rem,5vw,1.75rem) !important;
    bottom:clamp(2.3rem,9vw,3.8rem) !important;
  }
  .hero-section .hero-copy{
    font-size:clamp(1.05rem,4.7vw,1.55rem) !important;
    line-height:1.42 !important;
    letter-spacing:.025em !important;
    max-width:92% !important;
  }
  .hero-section .hero-copy span{
    border-bottom-width:.08rem !important;
    padding-bottom:.06em !important;
  }
  .hero-section .hero-lead{
    max-width:92%;
    font-size:.72rem !important;
    line-height:1.75 !important;
    letter-spacing:.015em !important;
  }
}

/* スクロールイン演出を少しリッチに */
.has-js [data-reveal]{
  opacity:0;
  transform:translate3d(0, 2rem, 0) scale(.985);
  filter:blur(6px);
  transition:
    opacity .82s cubic-bezier(.16,1,.3,1),
    transform .82s cubic-bezier(.16,1,.3,1),
    filter .82s cubic-bezier(.16,1,.3,1);
  transition-delay:calc(var(--reveal-order, 0) * 55ms);
  will-change:opacity, transform, filter;
}
.has-js [data-reveal].is-visible{
  opacity:1;
  transform:translate3d(0,0,0) scale(1);
  filter:blur(0);
}

/* 写真系は少し奥から浮き上がる */
.has-js figure[data-reveal],
.has-js .service-photo-band[data-reveal],
.has-js .value-visual[data-reveal],
.has-js .about-consult-photo[data-reveal]{
  transform:translate3d(0,2.4rem,0) scale(.965);
}

/* カード系は横のリズムをつける */
.has-js .about-feature-grid article[data-reveal]:nth-child(odd),
.has-js .service-card-row article[data-reveal]:nth-child(odd),
.has-js .service-detail-grid article[data-reveal]:nth-child(odd){
  transform:translate3d(-1.25rem,1.9rem,0) scale(.985);
}
.has-js .about-feature-grid article[data-reveal]:nth-child(even),
.has-js .service-card-row article[data-reveal]:nth-child(even),
.has-js .service-detail-grid article[data-reveal]:nth-child(even){
  transform:translate3d(1.25rem,1.9rem,0) scale(.985);
}
.has-js .about-feature-grid article[data-reveal].is-visible,
.has-js .service-card-row article[data-reveal].is-visible,
.has-js .service-detail-grid article[data-reveal].is-visible{
  transform:translate3d(0,0,0) scale(1);
}

/* ホバー演出は上品に、緑で統一 */
a,
button,
.property-card,
.service-card-row article,
.about-feature-grid article{
  transition:
    color .22s ease,
    background .22s ease,
    border-color .22s ease,
    box-shadow .28s ease,
    transform .28s ease;
}
.property-card:hover,
.service-card-row article:hover,
.about-feature-grid article:hover{
  transform:translateY(-4px);
  box-shadow:0 22px 54px rgba(0,0,0,.08);
}

/* SEO・可読性：本文の行長と折り返しを安定 */
.about-hero h1,
.service-cover-hero__copy h1,
.hero-copy{
  text-wrap:balance;
}
.about-hero h1{
  word-break:keep-all !important;
  overflow-wrap:break-word !important;
}

/* PCでは about 見出しを見やすい範囲でさらに少しだけ抑える */
@media (min-width:761px){
  .about-hero h1{
    font-size:clamp(1.45rem,2.65vw,2.85rem) !important;
    line-height:1.62 !important;
    max-width:min(880px,78vw) !important;
  }
}

/* モーション軽減設定 */
@media (prefers-reduced-motion: reduce){
  *,
  *::before,
  *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    scroll-behavior:auto !important;
    transition-duration:.01ms !important;
  }
  .has-js [data-reveal]{
    opacity:1 !important;
    transform:none !important;
    filter:none !important;
  }
}
