/* 第4案：可読性とロゴの視認性を優先した調整 */
.header-inner{height:98px}.brand-logo{height:71px;max-width:375px}.primary-nav a{font-size:16px}.eyebrow{font-size:13px}.service-card h3,.contact-card h3{font-size:20px}.service-card p,.contact-card p{font-size:16px;line-height:1.8}.service-card b,.contact-card b{font-size:15px}.footer-inner div:nth-child(2){font-size:15px}.footer-brand .brand-logo{height:53px;max-width:285px}

@media(max-width:820px){.header-inner{height:84px}.brand-logo{height:56px;max-width:285px}.primary-nav{top:84px}.footer-brand .brand-logo{height:53px;max-width:285px}}
@media(max-width:430px){.brand-logo{height:47px;max-width:235px}}

/* ヒーロー：中央ボックス型メインビジュアル＋右側クイックメニュー（他ページと同じコンテンツ幅に統一） */
.hero{display:block;min-height:0;background:#fff}
.hero:before,.hero:after{display:none}
.hero-shell{display:grid;grid-template-columns:1fr 224px;gap:20px;align-items:stretch;padding-top:36px;padding-bottom:36px}
.hero-visual{position:relative;overflow:hidden;min-height:420px;background:#fff8e8}
.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 58%}
.hero-visual-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,16,14,.6) 0%,rgba(20,16,14,.4) 30%,rgba(20,16,14,.12) 55%,rgba(20,16,14,0) 68%)}
.hero-copy{position:absolute;inset:0;z-index:1;max-width:560px;padding:34px 38px;display:flex;flex-direction:column;justify-content:center}
.hero-copy .eyebrow{color:#ffd876}
.hero-copy h1{font-size:clamp(28px,3.1vw,42px);letter-spacing:normal;font-feature-settings:"palt";color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.4)}
.hero-copy .hero-lead{color:#fff}
.hero-copy .hero-text{color:#f4efe9}
.hero-cta{color:#fff;display:inline-flex;align-items:center;padding-bottom:3px;border-bottom:2px solid var(--yellow)}
.hero-cta:hover{color:var(--yellow);border-bottom-color:var(--yellow)}
.hero-quick{display:flex;flex-direction:column;gap:10px}
.hero-quick a{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center;padding:10px 14px;background:#fff;border:1px solid var(--line);border-left:4px solid var(--yellow);color:var(--text);text-decoration:none;box-shadow:0 4px 12px rgba(77,73,71,.06)}
.hero-quick a:nth-child(2){border-left-color:var(--orange)}
.hero-quick a:nth-child(3){border-left-color:var(--gold)}
.hero-quick a:nth-child(4){border-left-color:#49ad70}
.hero-quick a:hover{background:#fffaf0}
.hero-quick span{font-size:16px;font-weight:700;line-height:1.3}
.hero-quick small{font-size:12px;color:var(--muted);line-height:1.4;margin-top:3px}
@media(max-width:1100px){
  .hero-shell{grid-template-columns:1fr}
  .hero-quick{display:none}
}
@media(max-width:820px){
  .hero-shell{padding-top:26px;padding-bottom:26px}
  .hero-copy{padding:26px 22px;max-width:none}
  .hero-photo{object-position:66% 55%}
  .hero-visual-overlay{background:linear-gradient(90deg,rgba(20,16,14,.64) 0%,rgba(20,16,14,.5) 45%,rgba(20,16,14,.34) 75%,rgba(20,16,14,.22) 100%)}
}

.area-visual{background-image:url("../Images/area-guide-central-park.jpg");background-size:cover;background-position:center 52%;}

/* 文字サイズ調整：大見出し・ロゴ・レイアウト・配色は変更しない */
body{font-size:18px}
.primary-nav a{font-size:18px}
.hero-lead{font-size:22px}
.hero-text,.section-heading>p,.area-copy>p:not(.eyebrow),.benefit-inner>p{font-size:18px}
.button,.text-link{font-size:18px}
.today-card .card-label{font-size:14px}
.today-card .preparing-text{font-size:18px}
.service-card h3,.contact-card h3{font-size:21px}
.service-card p,.contact-card p{font-size:18px}
.service-card b,.contact-card b{font-size:18px}
.property-note{font-size:18px}
.category-list span{font-size:16px}
.hero-image-note strong{font-size:16px}.hero-image-note small{font-size:13px}
.property-placeholder strong{font-size:18px}.property-placeholder small{font-size:13px}
.footer-inner div:nth-child(2){font-size:18px}.copyright{font-size:13px}

@media(max-width:820px){
  .primary-nav a{font-size:18px}
  .hero-text,.section-heading>p,.area-copy>p:not(.eyebrow),.benefit-inner>p{font-size:18px}
  .service-card p,.contact-card p,.property-note{font-size:18px}
}

/* おすすめ物件：差し替え用カード構造 */
.property-card{background:#fff;border:1px solid var(--line);display:flex;flex-direction:column;min-width:0}
.property-photo{height:150px;background:linear-gradient(135deg,#fff8e8,#fff);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;color:var(--logo-gray);position:relative}
.property-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.property-photo:before{content:"";position:absolute;left:0;right:0;top:0;height:8px;background:linear-gradient(90deg,var(--yellow),var(--orange))}
.property-photo span{font-size:12px;letter-spacing:.14em;font-weight:700;color:var(--orange)}
.property-photo strong{font-size:18px;margin-top:5px}.property-photo small{font-size:13px}
.property-card-body{padding:15px 17px;display:flex;flex-direction:column;align-items:flex-start}
.property-badges{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.property-type{font-size:14px;font-weight:700;padding:3px 10px;color:#fff}.property-type.rent{background:var(--orange)}.property-type.sale{background:var(--yellow);color:var(--text)}
.property-category{font-size:15px;font-weight:700;color:var(--logo-gray)}
.property-name{font-size:20px;margin:10px 0 3px;color:var(--text)}.property-price{font-size:18px;font-weight:700;margin:0;color:var(--logo-gray)}
.property-meta{font-size:16px;color:var(--muted);margin:4px 0 0}.property-link{font-size:16px;font-weight:700;color:var(--orange);text-decoration:none;margin-top:auto;padding-top:12px}.property-link span{font-size:18px}
.test-badge{display:block;margin-top:7px;font-size:11px;line-height:1.4;color:var(--logo-gray);background:#fff9e8;border-left:2px solid var(--yellow);padding:2px 6px}
.property-photo.has-photo span,.property-photo.has-photo strong{display:none}
.property-photo.has-photo.photo-missing img{display:none}
.property-photo.has-photo.photo-missing span,.property-photo.has-photo.photo-missing strong{display:block}
.property-load-error{grid-column:1/-1;padding:24px;text-align:center;font-size:16px;color:var(--muted);border:1px dashed var(--line);background:#faf8f5}
/* 物件カード一覧：PC4列（固定・件数が少なくても4列分の幅を確保）／タブレット2列／スマホ1列
   auto-fit・auto-fillは使わず、常に repeat(4, minmax(0,1fr)) で列数を固定する。
   style.css 側に残る旧・3列指定（.property-grid の3か所）より確実に優先させるため !important を付ける。 */
.property-grid,.property-list-page .property-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:16px}
@media(max-width:820px){.property-photo{height:135px}.property-name{font-size:19px}.property-grid,.property-list-page .property-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:430px){.property-grid,.property-list-page .property-grid{grid-template-columns:minmax(0,1fr)!important}}

/* お知らせ・西新宿ニュース：LOCAL NEWSカード内の「ニュース一覧」リンク（NOTICEカードには影響なし） */
.campaign-card{padding-bottom:46px}
.today-card-link{position:absolute;right:22px;bottom:15px;font-size:14px;font-weight:700;color:var(--orange);text-decoration:none}
.today-card-link:hover{text-decoration:underline}
.today-card-link span{font-size:16px;margin-left:2px}
.notice-date{font-size:13px;font-weight:700;color:#aaa;margin:10px 0 0}
.notice-card .preparing-text{margin-top:2px}
.notice-title-link{color:inherit;text-decoration:none}
.notice-title-link:hover{text-decoration:underline;color:var(--orange)}
.notice-card .card-arrow{text-decoration:none}

/* フッター：個人情報保護方針リンク */
.footer-inner a{color:inherit;text-decoration:underline}
.footer-inner a:hover{color:var(--yellow)}
.footer-links{display:flex;flex-wrap:wrap;gap:8px 20px;margin:0}

/* トップページ：おすすめ物件（賃貸・売買グループ表示） */
.property-group{margin-bottom:22px}
.property-group:last-of-type{margin-bottom:0}
.property-group-title{font-size:21px;font-weight:700;margin:0 0 12px;padding-left:13px;border-left:4px solid var(--orange);color:var(--text)}
.property-group[data-deal="sale"] .property-group-title{border-left-color:var(--yellow)}
.property-group-more{text-align:center;margin-top:10px}
.property-card.is-draft{opacity:.82}
.property-card.is-draft .property-name{color:var(--muted)}
.property-card.is-draft .property-photo{height:90px}
@media(max-width:820px){
  .property-group{margin-bottom:18px}
  .property-group-title{font-size:19px}
}

/* 賃貸・売買一覧ページ／物件詳細ページ共通 */
.property-list-page{background:#fff;color:var(--text)}
.property-list-hero{background:#fffaf0;border-bottom:1px solid #f5e7c9;padding:26px 0 12px}
.property-list-hero .section-shell{padding-top:0!important;padding-bottom:0!important}
.property-list-hero .eyebrow{margin-bottom:6px}
.property-list-hero h1{font-family:"Yu Gothic","游ゴシック",Meiryo,"メイリオ",sans-serif;font-size:clamp(33px,4vw,50px);line-height:1.3;margin:0 0 8px;font-weight:700}
.property-list-hero h1:last-child{margin-bottom:0}
.property-list-lead{font-size:18px;color:#4a4543;margin:0;line-height:1.6;font-weight:500}
.property-list-section{padding-top:12px!important;padding-bottom:36px!important;margin-top:0}
.property-list-page .property-grid{margin-top:0}
.property-list-cta{text-align:center;margin-top:22px}
@media(max-width:820px){
  .property-list-hero{padding:22px 0 10px}
  .property-list-lead{font-size:18px}
  .property-list-section{padding-top:10px!important;padding-bottom:32px!important}
}

.property-detail-page{background:#fff;color:var(--text)}
.detail-wrap{max-width:1080px;margin:0 auto}
.detail-badges{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:16px}
.detail-badges .property-type{font-size:15px;font-weight:700;padding:4px 12px;color:#fff}
.detail-badges .property-type.rent{background:var(--orange)}
.detail-badges .property-type.sale{background:var(--yellow);color:var(--text)}
.detail-badges .test-badge{font-size:15px}
.detail-name{font-size:clamp(26px,2.4vw,30px);margin:0 0 12px;font-weight:700}
.detail-price{font-size:22px;font-weight:700;color:var(--logo-gray);margin:0 0 30px}
.detail-summary{font-size:17px;color:#4a4543;line-height:1.8;font-weight:500;margin:-16px 0 30px}

.detail-photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:0 0 36px}
.detail-photo-item{margin:0}
.detail-photo-frame{width:100%;height:210px;padding:0;margin:0;background:linear-gradient(135deg,#fff8e8,#fff);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;color:var(--logo-gray);position:relative;overflow:hidden;font:inherit}
button.detail-photo-frame{cursor:pointer;-webkit-appearance:none;appearance:none}
button.detail-photo-frame:disabled{cursor:default}
button.detail-photo-frame:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
.detail-photo-frame:before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:linear-gradient(90deg,var(--yellow),var(--orange));z-index:1}
.detail-photo-frame img{display:block;width:100%;height:100%;object-fit:cover}
.detail-photo-frame.type-floorplan img{object-fit:contain;background:#fff}
.detail-photo-frame span{font-size:12px;letter-spacing:.14em;font-weight:700;color:var(--orange)}
.detail-photo-frame strong{font-size:16px;margin-top:6px}
.detail-photo-frame.has-photo span,.detail-photo-frame.has-photo strong{display:none}
.detail-photo-frame.has-photo.photo-missing img{display:none}
.detail-photo-frame.has-photo.photo-missing span,.detail-photo-frame.has-photo.photo-missing strong{display:block}
.detail-photo-item figcaption{margin-top:9px;font-size:16px;font-weight:700;color:var(--text);text-align:center}

.detail-info-block{margin:0 0 36px}
.detail-info-title{font-size:22px;font-weight:700;margin:0 0 16px;padding-left:12px;border-left:4px solid var(--orange);color:var(--text)}
.detail-info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 40px;border-top:1px solid var(--line)}
.detail-info-row{display:flex;align-items:baseline;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.detail-info-label{flex:0 0 11.5em;font-size:17px;font-weight:700;color:#3f3b39}
.detail-info-value{font-size:17px;color:#4a4543;font-weight:500;word-break:break-word}
.detail-freetext{font-size:17px;color:#4a4543;line-height:1.8;font-weight:500;margin:0;white-space:pre-line}

.detail-cta{text-align:center;background:#fff5df;padding:26px 20px 30px}
.detail-cta .button{display:inline-flex;min-width:250px;justify-content:center;align-items:center;font-size:18px;padding:15px 28px}
.detail-not-found{text-align:center;padding:50px 20px}
.detail-not-found p{font-size:18px;color:var(--muted);margin:0 0 22px}
@media(max-width:820px){
  .detail-name{font-size:26px}
  .detail-price{font-size:20px;margin-bottom:26px}
  .detail-photo-grid{grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:30px}
  .detail-photo-frame{height:230px}
  .detail-info-grid{grid-template-columns:1fr}
  .detail-info-block{margin-bottom:28px}
  .detail-info-label{flex-basis:10.5em}
}
@media(max-width:480px){
  .detail-info-row{flex-direction:column;gap:3px}
  .detail-info-label{flex-basis:auto}
}
@media(max-width:430px){
  .detail-photo-grid{grid-template-columns:1fr}
  .detail-photo-frame{height:220px}
}

/* ==== 物件詳細ページ：文字サイズの最終指定 ====
   properties-render.js が実際に出力するクラス名（.property-detail-page 配下の
   .detail-name / .detail-price / .detail-info-title / .detail-info-label /
   .detail-info-value / .detail-photo-item figcaption / .detail-photo-frame strong /
   .detail-cta .button）に対して、詳細度と読み込み順の影響を受けないよう、
   このファイルの末尾で確定値を指定する。数値は上のセクションと同じだが、
   表示に確実に反映させるための最終ブロックとして重複定義する。 */
.property-detail-page .detail-name{font-size:clamp(26px,2.4vw,30px)!important}
.property-detail-page .detail-price{font-size:22px!important}
.property-detail-page .detail-info-title{font-size:22px!important}
.property-detail-page .detail-info-label{font-size:17px!important}
.property-detail-page .detail-info-value{font-size:17px!important}
.property-detail-page .detail-photo-item figcaption{font-size:16px!important}
.property-detail-page .detail-photo-frame strong{font-size:16px!important}
.property-detail-page .detail-cta .button{font-size:18px!important}
@media(max-width:820px){
  .property-detail-page .detail-name{font-size:26px!important}
  .property-detail-page .detail-price{font-size:20px!important}
}

/* トップページ：緊急連絡先（アクセス24／弊社管理物件にお住まいの方へ） */
.emergency-contact{background:#fff9e8;border-top:1px solid #f5e7c9;border-bottom:1px solid #f5e7c9}
.emergency-contact-inner{padding-top:26px;padding-bottom:26px}
.emergency-box{background:#fff;border:1px solid var(--line);border-left:4px solid var(--orange);padding:22px 26px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 32px}
.emergency-box-text{flex:1 1 260px;min-width:0}
.emergency-audience{font-size:17px;font-weight:700;color:var(--text);margin:0 0 4px;letter-spacing:normal}
.emergency-audience:after{display:none}
.emergency-desc{font-size:18px;font-weight:500;color:var(--text);margin:0}
.emergency-box-phone{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-start}
.emergency-tel{display:inline-flex;align-items:baseline;gap:9px;text-decoration:none;color:var(--text)}
.emergency-tel-label{font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--orange);white-space:nowrap}
.emergency-tel-number{font-size:23px;font-weight:700;color:var(--text);white-space:nowrap}
.emergency-tel:hover .emergency-tel-number,.emergency-tel:hover .emergency-tel-label{color:var(--orange)}
.emergency-provider{font-size:13px;color:var(--muted);margin:3px 0 0}
.emergency-note{flex:1 1 100%;font-size:16px;color:var(--muted);margin:0;padding-top:12px;border-top:1px dashed var(--line)}
@media(max-width:820px){
  .emergency-contact-inner{padding-top:20px;padding-bottom:20px}
  .emergency-box{flex-direction:column;align-items:flex-start;padding:18px 20px}
  .emergency-box-phone{align-items:flex-start}
}

/* 物件詳細ページ：写真の拡大モーダル（外部ライブラリなし） */
.photo-lightbox{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:24px}
.photo-lightbox[hidden]{display:none}
.photo-lightbox-backdrop{position:absolute;inset:0;background:rgba(20,17,15,.82);border:0;padding:0;margin:0}
.photo-lightbox-dialog{position:relative;z-index:1;max-width:92vw;max-height:88vh;display:flex}
.photo-lightbox-image{display:block;max-width:92vw;max-height:88vh;width:auto;height:auto;object-fit:contain;background:#fff;box-shadow:0 20px 60px rgba(0,0,0,.4)}
.photo-lightbox-close{position:absolute;top:-46px;right:0;width:38px;height:38px;border:0;border-radius:50%;background:#fff;color:var(--text);font-size:24px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.photo-lightbox-close:hover{background:var(--yellow)}
.photo-lightbox-close:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
body.photo-lightbox-open{overflow:hidden}
@media(max-width:480px){
  .photo-lightbox{padding:16px}
  .photo-lightbox-close{top:-42px;right:0;width:34px;height:34px;font-size:20px}
}
/* トップページ：黒背景と白文字 */
.home-page,
.home-page main,
.home-page .hero,
.home-page .today,
.home-page .emergency-contact,
.home-page .properties{
  background:#000 !important;
}
.home-page .today-card,
.home-page .emergency-box{
  background:#171717 !important;
  border-color:#3A3A3A !important;
}
.home-page .section-heading h2,
.home-page .section-heading > p,
.home-page .preparing-text,
.home-page .emergency-audience,
.home-page .emergency-desc,
.home-page .emergency-tel-number,
.home-page .emergency-provider,
.home-page .emergency-note,
.home-page .property-group-title,
.home-page .property-group-more .text-link{
  color:#FFF !important;
}
.home-page .emergency-note{border-top-color:#444 !important;}
.home-page .property-card .property-link,
.home-page .property-card .property-type{color:var(--orange) !important;}
