:root{--bg:#faf8f3;--fg:#3a3330;--muted:#7a716a;--accent:#e2571f;--accent-d:#bf4513;--band:#fbb04f;--sub:#edefd9;--green:#5b6b57;--greige:#8f8b84;--line:#e3dccf;--max:1080px;
--serif:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;--sans:"Noto Sans JP","Hiragino Sans","Yu Gothic",Meiryo,sans-serif}
@media (prefers-color-scheme:dark){:root{--bg:#1f1b18;--fg:#f1ebe4;--muted:#b3a99f;--sub:#2a2e24;--line:#3a332d;--accent:#f0764a;--band:#8a5a1f}}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);background:var(--bg);color:var(--fg);line-height:1.9;letter-spacing:.03em}
a{color:var(--accent)}
img{max-width:100%;height:auto;display:block}
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}
/* header */
header.site{background:rgba(250,248,243,.95);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10;backdrop-filter:blur(6px)}
@media (prefers-color-scheme:dark){header.site{background:rgba(31,27,24,.95)}}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:8px 20px 8px 4px}
.logo{display:inline-flex;align-items:center;text-decoration:none;line-height:0;margin-top:6px;flex:0 0 auto}
.logo img{height:60px;width:auto;display:block}
.flogo{margin:0 0 12px}.flogo img{height:30px}
nav{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
nav a{text-decoration:none;color:var(--fg);font-size:.92rem}
nav a:hover,nav a[aria-current]{color:var(--accent)}
nav a.cta{background:var(--accent);color:#fff;padding:8px 18px;border-radius:2px;font-weight:700}
nav a.cta:hover{background:var(--accent-d);color:#fff}
/* hero */
.hero-photo{position:relative;min-height:min(78vh,640px);display:flex;align-items:flex-end;color:#fff;background:#6d655d center/cover no-repeat}
.hero-photo::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05) 30%,rgba(0,0,0,.6))}
.hero-photo .wrap{position:relative;padding-bottom:56px;padding-top:120px}
.eyebrow{font-family:var(--sans);font-size:.78rem;letter-spacing:.28em;color:var(--accent);text-transform:uppercase;margin:0 0 6px}
.hero-photo .eyebrow{color:#fff;opacity:.9}
.hero-photo h1{font-family:var(--serif);font-weight:700;font-size:clamp(1.9rem,6vw,3.2rem);line-height:1.4;margin:0 0 10px;letter-spacing:.08em}
.hero-photo p{margin:0 0 22px;text-shadow:0 1px 8px rgba(0,0,0,.4)}
.hero{background:var(--sub);padding:56px 0}
.hero h1{font-family:var(--serif);font-size:clamp(1.6rem,5vw,2.4rem);line-height:1.5;margin:0 0 12px;letter-spacing:.06em}
.btn{display:inline-block;background:var(--accent);color:#fff;padding:13px 30px;border-radius:2px;text-decoration:none;font-weight:700;letter-spacing:.1em}
.btn:hover{background:var(--accent-d)}
.btn.ghost{background:transparent;border:1px solid currentColor;color:inherit}
.hero-photo .btn.ghost{color:#fff}
/* sections */
section{padding:72px 0}
h1,h2,h3{font-family:var(--serif)}
h2{font-size:clamp(1.4rem,3.6vw,1.9rem);font-weight:700;text-align:center;margin:0 0 36px;letter-spacing:.1em;line-height:1.6}
h2::after{content:"";display:block;width:36px;height:2px;background:var(--accent);margin:14px auto 0}
.alt{background:var(--sub)}
.band{background:var(--band);color:#3a2a14;text-align:center}
.band h2::after{background:#3a2a14}
.band p{max-width:640px;margin:0 auto 1em}
.grid{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.three{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.two{display:grid;gap:28px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start}
.card{background:#fff;border:1px solid var(--line);overflow:hidden}
@media (prefers-color-scheme:dark){.card{background:#2a2521}}
.card img{width:100%;aspect-ratio:4/3;object-fit:cover}
.card .body{padding:18px 20px 22px}
.card h3{margin:0 0 6px;font-size:1.15rem}
.card h3 a,.card h2 a{color:var(--fg);text-decoration:none}
.card .ph{aspect-ratio:4/3;background:var(--sub);display:flex;align-items:center;justify-content:center;color:var(--muted)}
.pill{background:var(--greige);color:#fff;padding:26px 22px;text-align:center}
.pill h3{margin:0 0 8px;font-size:1.05rem}
.ideal{background:#fff;border-top:3px solid var(--accent);padding:26px 22px}
@media (prefers-color-scheme:dark){.ideal{background:#2a2521}}
.ideal .no{font-family:var(--serif);color:var(--accent);font-size:2rem;line-height:1}
.ideal h3{margin:6px 0 8px;font-size:1.1rem}
.ideal p{margin:0;font-size:.92rem;color:var(--muted)}
.price{font-family:var(--serif);font-size:2.6rem;font-weight:700;color:var(--accent);margin:6px 0;line-height:1.2}
.price small{font-size:1rem;color:var(--fg);font-weight:400;margin-left:4px}
.tags{list-style:none;padding:0;margin:14px 0 22px;display:flex;flex-wrap:wrap;gap:8px}
.tags li{background:var(--green);color:#fff;padding:2px 12px;font-size:.82rem;letter-spacing:.06em}
figure{margin:0}
figcaption,.note{font-size:.82rem;color:var(--muted);margin-top:8px}
table{border-collapse:collapse;width:100%;background:#fff}
@media (prefers-color-scheme:dark){table{background:#2a2521}}
th,td{border:1px solid var(--line);padding:12px 14px;text-align:left;vertical-align:top}
th{width:10em;background:var(--sub);font-weight:500;white-space:nowrap}
.todo{background:#fff3cd;color:#5c4a00;padding:0 4px;border-radius:3px}
.center{text-align:center}
footer.site{background:var(--green);color:#f1efe6;padding:36px 0;font-size:.88rem;margin-top:0}
footer.site a{color:#fff}
footer.site .logo{color:#fff;display:inline-block;margin-bottom:8px}
@media (max-width:640px){section{padding:52px 0}nav{gap:12px}nav a{font-size:.85rem}th{width:7em;white-space:normal}}
.plain::after{display:none}
/* 写真の枠: assets/photos/<名前>.jpg を置くと自動で表示される。無いときは名前入りの仮枠 */
.slot{position:relative;background:var(--sub);aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--muted);font-size:.8rem;overflow:hidden}
.slot::after{content:"写真: " attr(data-name) ".jpg";padding:0 8px}
.slot::before{content:"";position:absolute;inset:0;background-size:cover;background-position:center;z-index:1}
.slot.wide{aspect-ratio:16/9}
.tile{display:block;text-decoration:none;color:var(--fg);background:#fff;border:1px solid var(--line)}
@media (prefers-color-scheme:dark){.tile{background:#2a2521}}
.tile .t{padding:14px 18px;display:flex;justify-content:space-between;align-items:center;font-family:var(--serif)}
.tile .t::after{content:"→";color:var(--accent)}
.tile:hover .slot{opacity:.9}
.photo-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.slot::before{background-image:var(--u)}
/* LP ブロック */
.video{position:relative;aspect-ratio:16/9;max-width:860px;margin:0 auto;background:#000}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
section p{margin:0 0 1em}
.btn.ghost{background:transparent}
.hero-photo .btn+.btn{margin-left:10px}
/* LP ブロック */
.video{position:relative;aspect-ratio:16/9;max-width:860px;margin:0 auto;background:#000}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
/* 動画2本(1階・2階など) */
.videos{display:grid;grid-template-columns:1fr 1fr;gap:22px;max-width:1040px;margin:0 auto}
.videos figure,.video-one{margin:0}
.video-one{max-width:860px;margin:0 auto}
.videos figcaption,.video-one figcaption{text-align:center;font-size:.9rem;color:var(--fg);opacity:.85;margin-top:8px}
@media (max-width:760px){.videos{grid-template-columns:1fr;gap:18px}}
/* スタッフブログ(Threadsの投稿) */
.feed{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:22px}
.post{background:#fff;border:1px solid var(--line);border-radius:10px;padding:20px 22px}
@media (prefers-color-scheme:dark){.post{background:#2a2521}}
.pdate{margin:0 0 8px;font-size:.78rem;letter-spacing:.1em;color:var(--muted)}
.ptext{margin:0;line-height:1.95;white-space:normal;word-break:break-word}
.ptext a{color:var(--accent)}
.pmedia{margin:14px 0 0;display:grid;gap:8px}
.pmedia.multi{grid-template-columns:repeat(2,1fr)}
.pmedia .fi{margin:0;position:relative;overflow:hidden;border-radius:8px;background:var(--sub)}
.pmedia img{width:100%;height:100%;object-fit:cover;display:block;cursor:zoom-in}
.pmedia:not(.multi) img{max-height:620px;object-fit:contain;background:#000}
.pmedia .play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:54px;height:54px;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.3rem;pointer-events:none}
.plink{margin:12px 0 0;font-size:.85rem}
.plink a{color:var(--muted);text-decoration:none}
.plink a:hover{color:var(--accent)}
@media (max-width:640px){.post{padding:16px 16px}.feed{gap:16px}}

/* インスタのリール(縦長・カード型) */
.video.ig{aspect-ratio:auto;width:100%;max-width:340px;height:640px;background:transparent}
.video.short{aspect-ratio:9/16;max-width:340px}
.videos.igs{max-width:760px}
@media (max-width:420px){.video.ig{max-width:none;height:calc((100vw - 40px) * 1.5 + 130px)}}
section p{margin:0 0 1em}
/* ---- LPブロック(参考LPの構成) ---- */
:root{--brown:#4a3426;--red:#b8342a;--gold:#c9a227}
.btn.gold{background:var(--gold);color:#2b1d12}
.btn.gold:hover{background:#b08d1f}
.dark{background:var(--brown);color:#f6efe6}.dark h2,.dark h3{color:#fff}.dark .eyebrow{color:#f3c97a}
.red{background:var(--red);color:#fff;padding:44px 0}.red .small{margin:0 0 6px;font-weight:700;letter-spacing:.1em}
h2.big{font-size:clamp(1.5rem,5vw,2.3rem)}
.lead{text-align:center;max-width:680px;margin:-14px auto 28px;color:var(--muted)}
.stack{background:var(--brown);color:#fff}
.stack-photo{position:relative;max-height:620px;overflow:hidden}
.stack-photo img{width:100%;height:100%;max-height:620px;object-fit:cover}
.stack-panel{padding:36px 0 44px}
.stack-panel h1{font-size:clamp(1.7rem,5.5vw,2.8rem);line-height:1.4;margin:0 0 10px;letter-spacing:.08em}
.stack-panel .eyebrow{color:#f3c97a}
.stack-panel .price{color:#f3c97a}.stack-panel .price small{color:#fff}
.stack-panel .btn{margin-top:8px}
.badge{position:absolute;right:16px;top:16px;width:104px;height:104px;border-radius:50%;background:var(--red);color:#fff;display:flex;align-items:center;justify-content:center;text-align:center;font-weight:700;font-size:.85rem;line-height:1.35;box-shadow:0 4px 14px rgba(0,0,0,.3);z-index:2;padding:8px}
.hero-photo .badge{right:max(16px,calc((100vw - var(--max))/2 + 20px));top:24px}
.stats{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));max-width:760px;margin:0 auto}
.stat{background:#fff;border:1px solid var(--line);text-align:center;padding:16px 8px;display:flex;flex-direction:column;align-items:center;line-height:1.4}
@media (prefers-color-scheme:dark){.stat,.cardx,.num{background:#2a2521}}
.stat .ic{font-size:1.6rem}.stat small{color:var(--muted)}.stat b{font-family:var(--serif);font-size:2rem;color:var(--accent);line-height:1.2}
.cards{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.cardx{background:#fff;border:1px solid var(--line);padding:22px 20px}
.cardx .ic{font-size:2rem;line-height:1;margin-bottom:6px}.cardx h3{margin:0 0 6px;font-size:1.05rem}.cardx p{margin:0;font-size:.92rem;color:var(--muted)}
.nums{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.num{position:relative;background:#fff;border:1px solid var(--line);padding:28px 20px 22px;border-top:3px solid var(--accent)}
.num .n{position:absolute;right:14px;top:8px;font-family:var(--serif);font-size:2.2rem;color:var(--line);font-weight:700}
.num .ic{font-size:2rem;line-height:1;margin-bottom:6px}.num h3{margin:0 0 6px;font-size:1.05rem}.num p{margin:0;font-size:.92rem;color:var(--muted)}
.specs{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));max-width:760px;margin:0 auto 28px}
.specs div{background:#fff;border:1px solid var(--line);text-align:center;padding:12px 6px;display:flex;flex-direction:column}
@media (prefers-color-scheme:dark){.specs div{background:#2a2521}}
.specs small{color:var(--muted)}.specs b{font-family:var(--serif);font-size:1.2rem}
.gal{display:grid;gap:10px;grid-template-columns:repeat(3,1fr)}
@media (max-width:640px){.gal{grid-template-columns:repeat(2,1fr)}}
.gal img{width:100%;aspect-ratio:4/3;object-fit:cover}
img.zoom{cursor:zoom-in}
.lb{position:fixed;inset:0;background:rgba(0,0,0,.88);z-index:50;display:flex;align-items:center;justify-content:center;cursor:zoom-out;padding:12px}
.lb img{max-width:100%;max-height:100%;object-fit:contain}
.faq details{background:#fff;border:1px solid var(--line);margin-bottom:10px;padding:0 18px}
@media (prefers-color-scheme:dark){.faq details{background:#2a2521}}
.faq summary{cursor:pointer;padding:14px 0;font-weight:700;list-style:none}
.faq summary::before{content:"Q. ";color:var(--accent)}.faq summary::after{content:"＋";float:right}
.faq details[open] summary::after{content:"－"}
.faq details p{margin:0 0 16px;color:var(--muted)}
.price.big{font-size:3rem}
section.center .price{margin:6px 0}
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:30;background:rgba(74,52,38,.96);color:#fff;display:flex;gap:12px;align-items:center;justify-content:center;padding:10px 14px;box-shadow:0 -2px 12px rgba(0,0,0,.25)}
.sticky-cta span{font-weight:700;font-size:.92rem}
.sticky-cta .btn{padding:9px 20px}
body:has(.sticky-cta){padding-bottom:62px}
/* ---- 企画書(売るためのチラシ/イベントページ制作ポイント)に沿った部品 ---- */
.target{display:inline-block;background:#f3c97a;color:#2b1d12;font-weight:700;padding:3px 12px;margin:0 0 10px;font-size:.95rem;letter-spacing:.06em}
.monthly{margin:6px 0;font-size:1rem}
.monthly b{font-family:var(--serif);font-size:clamp(2rem,7vw,3rem);color:#f3c97a;line-height:1.2}
.monthly small{display:block;font-size:.78rem;opacity:.85;line-height:1.5;margin-top:2px}
.monthly.big{font-size:1.2rem;color:var(--fg)}
.monthly.big b{color:var(--accent);font-size:clamp(2.4rem,9vw,3.6rem)}
.note.loan{max-width:640px;margin:0 auto 18px;line-height:1.6}
.total{font-size:1.1rem;margin:4px 0 8px}.total small{font-size:.9rem}
.stack-panel .price{font-size:1.1rem;margin:4px 0 14px}.stack-panel .price small{font-size:.9rem}
.tr{max-width:760px;margin:0 auto;display:grid;gap:10px}
.tr-row{display:grid;grid-template-columns:1fr auto 1.6fr;gap:10px;align-items:center;background:#fff;border:1px solid var(--line);padding:12px 16px}
@media (prefers-color-scheme:dark){.tr-row{background:#2a2521}}
.tr-spec{font-weight:700;color:var(--muted);font-size:.92rem}.tr-arrow{color:var(--accent);font-weight:700}.tr-life{font-family:var(--serif);font-weight:700}
@media (max-width:640px){.tr-row{grid-template-columns:1fr;gap:2px}.tr-arrow{display:none}.tr-life::before{content:"→ ";color:var(--accent)}}
.ticks{list-style:none;padding:0;margin:0 0 18px;display:inline-block;text-align:left}
.ticks li::before{content:"✔ ";color:#3a2a14;font-weight:700}
/* ---- コンパクト版(スクロールを減らす) ---- */
body{font-size:15px;line-height:1.7}
.wrap{padding:0 16px}
section{padding:36px 0}
h2{font-size:clamp(1.2rem,3.2vw,1.55rem);margin:0 0 20px}
h2::after{margin-top:8px}
h3{font-size:1rem}
.eyebrow{font-size:.7rem;margin-bottom:2px}
.lead{margin:-8px auto 16px;font-size:.9rem}
header.site .wrap{padding-top:6px;padding-bottom:6px}
.logo img{height:30px!important}
nav{gap:14px}nav a{font-size:.85rem}nav a.cta{padding:6px 14px}
.hero-photo{min-height:min(52vh,420px)}
.hero-photo .wrap{padding-top:70px;padding-bottom:30px}
.hero-photo h1{font-size:clamp(1.6rem,5vw,2.4rem)}
.stack-photo{max-height:340px}.stack-photo img{max-height:340px}
.stack-panel{padding:20px 0 26px}
.stack-panel h1{font-size:clamp(1.4rem,5vw,2.1rem);margin-bottom:6px}
.stack-panel p{margin:0 0 6px}
.target{font-size:.85rem;padding:2px 10px;margin-bottom:6px}
.monthly b{font-size:clamp(1.7rem,6vw,2.4rem)}
.monthly.big b{font-size:clamp(2rem,7vw,2.8rem)}
.price{font-size:1.9rem}.price.big{font-size:2.2rem}
.btn{padding:10px 22px}
.badge{width:84px;height:84px;font-size:.72rem}
.red{padding:26px 0}
.tags{margin:8px 0 10px}.tags li{font-size:.75rem;padding:1px 10px}
.grid,.three,.two,.cards,.nums{gap:14px}
.card .body{padding:12px 14px 14px}
.cardx,.num,.ideal{padding:16px 14px}.num{padding-top:20px}
.cardx .ic,.num .ic{font-size:1.5rem}.num .n{font-size:1.6rem}
.stat{padding:10px 4px}.stat b{font-size:1.5rem}.stat .ic{font-size:1.2rem}
.specs{gap:8px;margin-bottom:16px}.specs div{padding:8px 4px}.specs b{font-size:1rem}
.tr{gap:6px}.tr-row{padding:8px 12px}
th,td{padding:8px 10px}
.faq details{margin-bottom:6px}.faq summary{padding:10px 0}
.gal{gap:6px}
figure img{max-height:60vh;object-fit:contain}
footer.site{padding:20px 0;font-size:.8rem}
.sticky-cta{padding:7px 12px}.sticky-cta .btn{padding:7px 16px}
body:has(.sticky-cta){padding-bottom:50px}
@media (max-width:640px){
  .gal{grid-template-columns:repeat(3,1fr)}
  .cards,.nums{grid-template-columns:repeat(2,1fr)}
  .cardx p,.num p{font-size:.82rem}
  .cardx h3,.num h3{font-size:.92rem}
  .three{grid-template-columns:repeat(2,1fr)}
  .two{grid-template-columns:1fr}
  header.site .wrap{flex-wrap:wrap}
  nav{gap:10px;overflow-x:auto;white-space:nowrap}
  .stack-photo{max-height:240px}.stack-photo img{max-height:240px}
  .hero-photo{min-height:300px}
}
table{font-size:.85rem}
th{width:8em}
@media (max-width:640px){
  .two.sm2{grid-template-columns:1fr 1fr}
  .two.sm2 ul{padding-left:1.1em;margin:0 0 8px;font-size:.85rem}
  table{font-size:.8rem}th,td{padding:5px 8px}th{width:6.5em}
}
/* ---- 最初の画面いっぱい(写真/動画) ---- */
.hero-full{position:relative;height:calc(100vh - 54px);height:calc(100svh - 54px);min-height:440px;max-height:920px;color:#fff;display:flex;align-items:flex-end;background:#3a2a1c;overflow:hidden}
.hero-media{position:absolute;inset:0}
.hero-media img,.hero-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-media iframe{position:absolute;top:50%;left:50%;width:177.78vh;height:100%;min-width:100%;min-height:56.25vw;transform:translate(-50%,-50%);border:0;pointer-events:none}
.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.18) 0%,rgba(0,0,0,.02) 38%,rgba(0,0,0,.74) 100%)}
.hero-content{position:relative;padding-top:60px;padding-bottom:26px}
.hero-full h1{font-size:clamp(1.5rem,4.6vw,2.6rem);line-height:1.35;margin:0 0 6px;letter-spacing:.08em;text-shadow:0 2px 12px rgba(0,0,0,.45)}
.hero-full p{margin:0 0 6px;text-shadow:0 1px 8px rgba(0,0,0,.5)}
.hero-full .eyebrow{color:#fff;opacity:.9}
.hero-full .target{text-shadow:none}
.hero-full .monthly b{color:#f3c97a}
.hero-full .monthly small{font-size:.7rem;line-height:1.4;max-width:560px}
.hero-full .price{color:#fff;font-size:1rem;margin:2px 0 10px}.hero-full .price small{color:#fff;font-size:.85rem}
.hero-full .btn.ghost{color:#fff}
.hero-full .badge{right:16px;top:16px}
body:has(.sticky-cta) .hero-full .hero-content{padding-bottom:62px}
@media (prefers-reduced-motion:reduce){.hero-media video,.hero-media iframe{display:none}}
@media (max-width:640px){.hero-full{min-height:420px}.hero-content{padding-top:40px}.hero-full .monthly small{display:none}}
/* ---- 写真が全部入るヒーロー(split) / 写真コメント ---- */
.hero-split{display:flex;flex-direction:column;height:calc(100vh - 54px);height:calc(100svh - 54px);min-height:520px;max-height:980px;background:var(--brown);color:#fff}
body:has(.sticky-cta) .hero-split{height:calc(100svh - 104px)}
.split-media{position:relative;flex:1 1 auto;min-height:200px;overflow:hidden;background:#2b1d12}
.split-media .bg{position:absolute;inset:-24px;width:calc(100% + 48px);height:calc(100% + 48px);object-fit:cover;filter:blur(24px) brightness(.62)}
.split-media .fg{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.split-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:transparent}
.split-media iframe{position:absolute;top:50%;left:50%;width:100%;height:100%;transform:translate(-50%,-50%);border:0;pointer-events:none}
.split-media .badge{right:14px;top:12px}
.photo-cap{position:absolute;left:0;right:0;bottom:0;margin:0;padding:18px 16px 8px;font-size:.78rem;line-height:1.5;color:#fff;background:linear-gradient(0deg,rgba(0,0,0,.6),transparent);text-align:left}
.split-panel{flex:0 0 auto;padding:12px 0 14px;background:var(--brown)}
.split-panel h1{font-size:clamp(1.25rem,4.2vw,2rem);line-height:1.35;margin:0 0 4px;letter-spacing:.06em}
.split-panel p{margin:0 0 4px}
.split-panel .eyebrow{color:#f3c97a;margin:0 0 2px}
.split-panel .target{margin:0 0 6px}
.split-panel .monthly{margin:4px 0 2px}.split-panel .monthly b{color:#f3c97a;font-size:clamp(1.5rem,5vw,2.1rem)}
.split-panel .monthly small{font-size:.68rem;line-height:1.4}
.split-panel .price{color:#fff;font-size:.95rem;margin:2px 0 8px}.split-panel .price small{color:#fff;font-size:.8rem}
.split-panel .btn{padding:8px 20px}
.split-panel .btn.ghost{color:#fff}
@media (max-width:640px){.split-panel .monthly small{display:none}.hero-split{min-height:500px}}
.gal.withcap{grid-template-columns:repeat(2,1fr);gap:12px}
.gal.withcap figure{margin:0}
.gal.withcap figcaption{margin:5px 2px 0;font-size:.8rem;line-height:1.5;color:var(--fg);opacity:.85;text-align:left}
@media (min-width:900px){.gal.withcap{grid-template-columns:repeat(3,1fr)}}
.gal figure{margin:0}
@media (min-width:900px){
  .hero-split{flex-direction:row}
  .split-media{flex:1 1 62%;min-height:0}
  .split-panel{flex:0 0 38%;display:flex;align-items:center;padding:20px 0}
  .split-panel .wrap{max-width:none;padding:0 32px}
  .split-panel h1{font-size:clamp(1.4rem,2.4vw,2.1rem)}
  .split-panel .monthly small{display:block}
}

/* ---- エリアマップ ---- */
.areamap{position:relative;max-width:440px;margin:0 auto;aspect-ratio:66.0/103.1;background:#dff0ec;border:3px solid #fff;box-shadow:0 0 0 1px var(--line)}
@media (prefers-color-scheme:dark){.areamap{background:#233030}}
.areamap svg{position:absolute;inset:0;width:100%;height:100%}
.am-r{fill:#6aa84f;stroke:#fff;stroke-width:.9;stroke-linejoin:round;transition:fill .15s}
.am-r.off{fill:#b9c4b0}
.areamap:has(.am-btn[data-area="n"]:hover) .am-r[data-area="n"],.areamap:has(.am-btn[data-area="s"]:hover) .am-r[data-area="s"],.am-r.cur{fill:#e2571f}
.am-btn{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:1px;background:#0b6b3a;color:#fff;text-decoration:none;font-weight:700;font-size:.82rem;line-height:1.25;padding:6px 14px 7px;border-radius:5px;border:1px solid rgba(255,255,255,.7);box-shadow:0 3px 0 #064d29;white-space:nowrap}
.am-btn em{font-style:normal;font-size:.68rem;margin-left:2px}
.am-btn i{font-style:normal;font-size:.66rem;font-weight:500;opacity:.9}
.am-btn:hover,.am-btn.cur{background:var(--accent);box-shadow:0 3px 0 var(--accent-d);color:#fff}
.am-btn.off{background:#8d9a85;box-shadow:0 3px 0 #6f7b68}
.am-hint{position:absolute;right:8px;bottom:8px;width:84px;height:84px;border-radius:50%;background:#2a2a2a;color:#fff;font-size:.68rem;font-weight:700;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.35}
@media (max-width:640px){.am-btn{font-size:.74rem;padding:5px 10px 6px}.am-hint{width:68px;height:68px;font-size:.6rem}}
.areawrap{display:grid;gap:24px;grid-template-columns:minmax(260px,440px) 1fr;align-items:center}
@media (max-width:760px){.areawrap{grid-template-columns:1fr}}
.arealist{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.arealist a{display:flex;justify-content:space-between;gap:10px;align-items:center;background:#fff;border:1px solid var(--line);padding:10px 14px;text-decoration:none;color:var(--fg)}
@media (prefers-color-scheme:dark){.arealist a{background:#2a2521}}
.arealist b{font-family:var(--serif)}.arealist small{display:block;color:var(--muted);font-size:.78rem;line-height:1.4}
.arealist em{font-style:normal;color:var(--accent);font-weight:700;white-space:nowrap}
.areamap{width:100%}
.areamap{max-width:330px}
.areawrap{grid-template-columns:minmax(240px,330px) 1fr;gap:28px}
@media (max-width:760px){.areawrap{grid-template-columns:1fr}.areamap{max-width:300px}}

/* ---- デザイン刷新: 英字ヘッダー・ゴースト見出し・ステートメント・SOLD OUT (暖かい色は維持) ---- */
header.site{background:rgba(250,248,243,.97)}
header.site .wrap{max-width:1280px}
.hnav{display:flex;gap:6px;align-items:stretch}
.hbtn{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:104px;padding:6px 12px;border:1px solid var(--fg);background:var(--bg);color:var(--fg);text-decoration:none;line-height:1.15}
.hbtn b{font-family:"Barlow Condensed","Noto Sans JP",sans-serif;font-weight:700;font-size:1.02rem;letter-spacing:.1em}
.hbtn small{font-size:.62rem;opacity:.75;margin-top:1px}
.hbtn:hover,.hbtn.cur{background:var(--fg);color:var(--bg)}
.hbtn.dark{background:var(--brown);border-color:var(--brown);color:#fff}
.hbtn.dark:hover,.hbtn.dark.cur{background:#2b1d12}
.hbtn.solid{background:var(--accent);border-color:var(--accent);color:#fff}
.hbtn.solid:hover{background:var(--accent-d);border-color:var(--accent-d)}
/* スマホ: PCと同じ英字+日本語の2段のまま、3列にきっちり整列。来店予約は横いっぱい */
@media (max-width:760px){
  .hnav{display:flex;flex-wrap:wrap;gap:4px;width:100%}
  .hbtn{min-width:0;padding:4px 3px;line-height:1.1;flex:1 1 calc((100% - 10px)/3)}
  .hbtn b{font-size:.64rem;letter-spacing:.06em}
  .hbtn small{font-size:.56rem;margin-top:0;opacity:.75;white-space:nowrap}
  .hbtn.solid{flex-basis:100%}
  header.site .hright{gap:6px;flex-wrap:wrap;width:100%;justify-content:flex-start;margin-top:3px}
  header.site .wrap{position:relative;padding:5px 14px 6px 10px}
  /* SNSはロゴの右の空きに置く(高さを増やさない) */
  .hsns{display:flex;gap:2px;position:absolute;right:12px;top:13px}
  .hsns a{width:26px;height:26px}
  .hsns svg{width:17px;height:17px}
}
/* ゴースト見出し */
.eyebrow.center{font-family:"Barlow Condensed","Noto Sans JP",sans-serif;font-weight:700;font-size:clamp(2.2rem,8vw,4.4rem);line-height:.9;letter-spacing:.1em;color:transparent;-webkit-text-stroke:1px rgba(226,87,31,.5);margin:0 0 -.45em;position:relative;z-index:0;pointer-events:none;user-select:none}
.eyebrow.center + h2{position:relative;z-index:1}
.band .eyebrow.center,.red .eyebrow.center{-webkit-text-stroke-color:rgba(58,42,20,.4)}
.dark .eyebrow.center{-webkit-text-stroke-color:rgba(243,201,122,.55)}
body.lp .eyebrow.center{font-size:clamp(1.8rem,6vw,3rem)}
/* 余白を広く(LP以外) */
body.roomy section{padding:64px 0}
body.roomy h2{margin-bottom:30px}
@media (max-width:640px){body.roomy section{padding:44px 0}}
body.roomy .hero-full{height:calc(100svh - 62px)}
/* ステートメント */
.statement{background:var(--bg)}
.st-grid{display:grid;gap:36px;grid-template-columns:1.05fr .95fr;align-items:center}
@media (max-width:760px){.st-grid{grid-template-columns:1fr}}
.st-text .eyebrow{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:clamp(2.2rem,7vw,4rem);line-height:.9;letter-spacing:.1em;color:transparent;-webkit-text-stroke:1px rgba(226,87,31,.5);margin:0 0 6px}
.st-title{font-family:var(--serif);font-size:clamp(1.5rem,4.4vw,2.4rem);line-height:1.7;letter-spacing:.1em;text-align:left;margin:0 0 20px}
.st-title::after{display:none}
.st-text p{max-width:34em}
.st-photo{clip-path:polygon(50% 0,100% 16%,100% 100%,0 100%,0 16%);aspect-ratio:1/1;background:var(--sub)}
.st-photo img{width:100%;height:100%;object-fit:cover}
/* カード・SOLD OUT */
.cardimg{display:block;position:relative;overflow:hidden}
.card.sold .cardimg img{filter:grayscale(.85) brightness(.85)}
.ribbon{position:absolute;left:0;top:14px;background:#1d1a17;color:#fff;font-family:"Barlow Condensed",sans-serif;font-weight:700;letter-spacing:.14em;font-size:1rem;padding:3px 14px 3px 12px}
.ribbon.neg{background:var(--accent);font-family:var(--sans);font-size:.8rem}
body.roomy .card .body{padding:16px 18px 20px}
body.roomy .card h3,body.roomy .card h2{font-family:var(--serif)}
.card .eyebrow{font-family:"Barlow Condensed",sans-serif;font-weight:600;font-size:.95rem;letter-spacing:.14em;color:var(--muted)}
.btn{border-radius:0}

.areamap{max-width:360px}
.am-r{stroke-width:1.1}

.areamap{aspect-ratio:66.0/103.1}
.am-r{stroke-width:.7;stroke-linejoin:round}

/* ---- SNSマーク ---- */
.hright{display:flex;align-items:center;gap:16px}
.sns{display:flex;gap:6px;align-items:center}
.sns a{width:34px;height:34px;display:flex;align-items:center;justify-content:center;color:var(--fg);border-radius:50%;transition:.15s}
.sns a:hover{color:var(--accent);background:rgba(226,87,31,.08)}
.sns svg{width:24px;height:24px}
footer.site .sns{margin:10px 0 6px}
footer.site .sns a{color:#fff}
footer.site .sns a:hover{background:rgba(255,255,255,.14);color:#fff}


/* ---- 一番上の動画を明るく ---- */
.hero-media img,.hero-media video{filter:brightness(var(--b,1)) contrast(1.04) saturate(1.06)}
.hero-shade{background:linear-gradient(180deg,rgba(0,0,0,.04) 0%,rgba(0,0,0,0) 52%,rgba(0,0,0,.5) 100%)}

.hero-shade{background:linear-gradient(180deg,rgba(0,0,0,.1) 0%,rgba(0,0,0,.01) 45%,rgba(0,0,0,.62) 100%)}

/* ---- 写真は切らずに全部見せる ---- */
.hero-media img.bg{position:absolute;inset:-24px;width:calc(100% + 48px);height:calc(100% + 48px);object-fit:cover;filter:blur(24px) brightness(.7)}
.hero-media img.fg,.hero-media video{object-fit:contain}
.card .cardimg img{aspect-ratio:auto;height:auto;object-fit:contain}
.grid{align-items:start}
.gal{align-items:start}
.gal img{aspect-ratio:auto;height:auto;object-fit:contain}
.st-photo{clip-path:none;aspect-ratio:auto;background:none}
.st-photo img{height:auto;object-fit:contain}
.photo-grid{align-items:start}
/* スマホ縦長: 動画/写真は上に切れずに、文字は下の茶色の枠へ */
@media (max-width:640px){
  .hero-full{display:block;height:auto;min-height:0;max-height:none;background:var(--brown)}
  .hero-media{position:relative;inset:auto;aspect-ratio:4/3}
  .hero-shade{display:none}
  .hero-content{padding:16px 16px 22px;background:var(--brown)}
  body:has(.sticky-cta) .hero-full .hero-content{padding-bottom:22px}
}
@media (max-width:640px){body.roomy .hero-full{height:auto}}

/* 写真に重ねる小さな表示 */
.imgwrap{position:relative;display:block}
.phototag{position:absolute;right:6px;bottom:6px;font-size:.62rem;line-height:1.3;background:rgba(0,0,0,.62);color:#fff;padding:2px 7px;pointer-events:none;letter-spacing:.04em}

/* ---- 写真は全部同じ形(4:3)にそろえ、切らずに全部見せる(余白は同じ写真をぼかして敷く) ---- */
.tile{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:var(--sub)}
.tile::before{content:"";position:absolute;inset:-24px;background:var(--src) center/cover no-repeat;filter:blur(20px) brightness(.88)}
.tile img,.gal .tile img,.card .cardimg.tile img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;max-height:none;object-fit:contain}
.tile .ribbon{z-index:2}
/* ---- 写真の余白は無地(生成り)・形は3:2 ---- */
.tile{aspect-ratio:3/2;background:#eee9df}
@media (prefers-color-scheme:dark){.tile{background:#2a2521}}
.tile::before{display:none}
.gal.withcap{justify-content:center}
/* ギャラリー: 最後の段は中央にそろえる */
.gal,.gal.withcap{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.gal figure{width:calc((100% - 24px)/3);margin:0}
@media (max-width:640px){.gal figure{width:calc((100% - 12px)/2)}}

/* ---- 実績バッジ ---- */
.badges{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin:0 0 14px}
.bd{display:flex;flex-direction:column;align-items:center;gap:3px}
.bd svg{width:84px;height:auto;display:block;filter:drop-shadow(0 2px 6px rgba(0,0,0,.35))}
.bd img{height:84px;width:auto;display:block;background:#fff;border-radius:6px}
.bd small{font-size:.58rem;color:#fff;opacity:.9;text-shadow:0 1px 4px rgba(0,0,0,.6)}
.bnotes{font-size:.6rem;line-height:1.5;opacity:.88;margin:0 0 12px;max-width:560px}
@media (max-width:640px){.bd svg{width:70px}.bd img{height:70px}}

/* バッジごとの注意書き(バッジの横) */
.bd.hasnote{flex-direction:row;align-items:flex-end;gap:10px}
.bd .bdm{display:flex;flex-direction:column;align-items:center;gap:3px}
.bnote{margin:0;font-size:.6rem;line-height:1.5;color:#fff;opacity:.9;max-width:210px;text-align:left;text-shadow:0 1px 4px rgba(0,0,0,.55)}
@media (max-width:640px){.bd.hasnote{flex-direction:column;align-items:flex-start}.bnote{max-width:none}}

/* ---- トップの一番上: 文字とバッジを左端に寄せる ---- */
.hero-full .hero-content{max-width:none;margin:0;padding-left:clamp(18px,3.2vw,56px);padding-right:clamp(18px,3.2vw,56px);text-align:left}
.hero-full .hero-content h1{font-size:clamp(1.7rem,4.4vw,3rem);margin:0 0 6px}
.hero-full .presented{font-family:"Barlow Condensed","Noto Sans JP",sans-serif;font-weight:600;font-size:clamp(.95rem,2.2vw,1.35rem);letter-spacing:.14em;margin:0 0 8px;opacity:.95;text-transform:uppercase}
.hero-full .hlead{font-size:clamp(.9rem,1.8vw,1.1rem);margin:0 0 14px}
.hero-full .hero-cta{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 16px}
.hero-full .hero-cta .btn.ghost{margin-left:0}
.hero-full .badges{margin:0 0 6px}
/* ---- バッジ: 高さを全部そろえる・透明のまま ---- */
.badges{align-items:flex-start;gap:14px}
.bd img,.bd svg{height:88px;width:auto;max-width:none;display:block;background:transparent;border-radius:0}
.bd.hasnote{align-items:center}
.bd .bdm{align-items:center}
.bd small{margin-top:2px}
@media (max-width:640px){.bd img,.bd svg{height:72px}}
/* ---- パソコン: 動画は画面いっぱい(左右のグレーなし)。写真は切らない ---- */
@media (min-width:641px){
  .hero-full .hero-media video{object-fit:cover;object-position:center 58%}
}
/* ---- スマホ: バッジは1列に小さく並べ、注意書きはその下にまとめる / 動画は16:9で帯なし ---- */
@media (max-width:640px){
  .hero-media{aspect-ratio:16/9}
  .hero-full .badges{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:flex-start;margin:4px 0 6px}
  .hero-full .bd.hasnote{display:contents}
  .hero-full .bd .bnote{flex:0 0 100%;order:10;max-width:none;margin:2px 0 0}
  .hero-full .bd img,.hero-full .bd svg{height:58px}
  .hero-full .bd small{font-size:.5rem}
  .hero-full .hero-cta{margin-bottom:12px}
}
/* スマホ: LPの一番上は、写真を3:2の枠に(上下の余りを減らす)・高さは中身に合わせる */
@media (max-width:640px){
  .hero-split,body:has(.sticky-cta) .hero-split{height:auto;min-height:0;max-height:none}
  .split-media{flex:none;aspect-ratio:3/2;min-height:0}
}

/* 問い合わせフォームの埋め込み */
.formframe{max-width:760px;margin:0 auto;border:1px solid var(--line);background:#fff}
.formframe iframe{display:block;width:100%;height:1280px;border:0}
@media (max-width:640px){.formframe iframe{height:1500px}}

/* ---- LINE登録バナー ---- */
.line-grid{display:grid;gap:28px;grid-template-columns:minmax(220px,300px) 1fr;align-items:center;justify-content:center}
@media (max-width:700px){.line-grid{grid-template-columns:1fr;justify-items:center;text-align:center}}
.linebanner{display:block;max-width:300px;box-shadow:0 6px 18px rgba(0,0,0,.18);border-radius:6px;overflow:hidden;transition:.15s}
.linebanner:hover{transform:translateY(-2px)}
.linebanner img{display:block;width:100%;height:auto}
.linetext .eyebrow{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:1.6rem;letter-spacing:.14em;color:#06c755;margin:0}
.line-h{text-align:left;font-size:clamp(1.2rem,3.4vw,1.6rem);margin:0 0 10px}
@media (max-width:700px){.line-h{text-align:center}}
.btn.line{background:#06c755;color:#fff;margin-top:6px}.btn.line:hover{background:#05a948}
.linenote{margin-top:10px;font-size:.78rem}

/* ---- 会社案内 ---- */
.phil{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.phil-card{background:#fff;border:1px solid var(--line);border-top:3px solid var(--accent);padding:20px 22px}
@media (prefers-color-scheme:dark){.phil-card{background:#2a2521}}
.phil-card h3{margin:0 0 8px;font-size:1rem;color:var(--accent)}
.phil-card p{margin:0}.phil-big{font-family:var(--serif);font-size:1.15rem;line-height:1.8;font-weight:700}
.rules{margin:0;padding-left:1.6em}.rules li{margin:0 0 4px}
.quals summary{cursor:pointer;color:var(--accent);font-weight:700}
.quals p{margin:10px 0 0;font-size:.88rem;line-height:1.8}
.timeline{margin:0;max-width:760px;margin-inline:auto}
.timeline>div{display:grid;grid-template-columns:9em 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.timeline dt{font-family:var(--serif);font-weight:700;color:var(--accent)}.timeline dd{margin:0}
@media (max-width:640px){.timeline>div{grid-template-columns:7em 1fr}}
.mapframe{aspect-ratio:4/3;border:1px solid var(--line);background:#eee}
.mapframe iframe{width:100%;height:100%;border:0;display:block}

/* ---- 数字カード: 文字色を固定(暗い背景の上でも読める)・押すと説明画像 ---- */
.stat{color:var(--fg)}
.stat span,.stat small,.stat b{color:inherit}
.stat b{color:var(--accent)}
.stat small{color:var(--muted)}
.stat.has-img{appearance:none;font:inherit;border:1px solid var(--line);cursor:pointer;transition:.15s;position:relative}
.stat.has-img:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(0,0,0,.2);border-color:var(--accent)}
.stat .more{font-style:normal;font-size:.62rem;color:var(--accent);margin-top:4px;font-weight:700}
/* 英字の大見出しは、日本語の見出しに重ねない(上に離して置く) */
.eyebrow.center{margin:0 0 6px;line-height:1}
.eyebrow.center + h2{position:relative;z-index:1}

/* 元の雰囲気を保ち、写真の案内とスマホの理想カードだけ整える */
.feature-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:stretch}
.feature-card{display:block;text-decoration:none;background:var(--bg);color:var(--fg);border:1px solid var(--line)}
.feature-card>img{width:100%;aspect-ratio:3/2;object-fit:contain;background:#eee9df}
.feature-body{padding:16px 18px}
.feature-body h3{display:flex;justify-content:space-between;gap:10px;margin:0;font-size:1rem;font-weight:500;line-height:1.7}
.feature-body h3 span{color:var(--accent);font-family:var(--sans)}
.feature-card:hover{border-color:var(--accent)}
.feature-card:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
@media (max-width:760px){
 .ideal-grid{grid-template-columns:1fr;gap:16px}
 .ideal-grid .ideal{display:grid;grid-template-columns:42px 1fr;column-gap:16px;padding:22px}
 .ideal-grid .no{grid-row:1/3;font-size:1.8rem;padding-top:4px}
 .ideal-grid h3{margin:0 0 8px;font-size:1.05rem;line-height:1.6}
 .ideal-grid p{line-height:1.85}
 .feature-grid{grid-template-columns:1fr;gap:20px}
}
@media (prefers-color-scheme:dark){.feature-card>img{background:#2a2521}}

/* ---- 物件カードの販売状況バッジ ---- */
.card .eyebrow.cardtop{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.stp{font-family:var(--sans);font-size:.72rem;font-weight:700;letter-spacing:.06em;line-height:1;padding:5px 11px;border-radius:999px;text-transform:none;color:#fff;white-space:nowrap}
.stp.on{background:var(--green)}
.stp.neg{background:var(--accent)}
.stp.sold{background:var(--greige)}

/* ---- 商談中はクリックできない ---- */
.card.closed .cardimg,.card.closed h2 a,.card.closed h3 a{cursor:default}
.card.closed .cardimg img{filter:saturate(.75)}

/* ---- 施工事例: メイン写真の下にサブ写真3枚 ---- */
.photo-grid .wsubs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:4px}
.photo-grid .wsubs .imgwrap{aspect-ratio:3/2}

/* 施工事例: 写真ごとの拡大表示 */
.works-photo{display:block;width:100%;padding:0;border:0;border-radius:0;background-color:transparent;color:inherit;font:inherit;cursor:zoom-in;text-align:inherit}
.works-photo:focus-visible{outline:3px solid #bd8040;outline-offset:4px}
.works-viewer{box-sizing:border-box;width:96vw;max-width:1800px;height:94dvh;max-height:94dvh;padding:16px;border:0;background:#171717;color:white;overflow:hidden}
.works-viewer[open]{display:flex;flex-direction:column;gap:12px}
.works-viewer::backdrop{background:rgba(0,0,0,.85)}
.works-viewer-tools{display:flex;justify-content:flex-end;gap:12px;flex-shrink:0}
.works-viewer-tools button{padding:10px 16px;background:#fff;color:#222;border:1px solid #ddd;border-radius:4px;cursor:pointer;font:inherit}
.works-viewer-stage{flex:1;min-height:0;overflow:auto;display:flex;align-items:center;justify-content:center;overscroll-behavior:contain}
.works-viewer-stage img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;cursor:zoom-in}
.works-viewer.is-zoomed .works-viewer-stage{display:block}
.works-viewer.is-zoomed img{width:200%;max-width:none;max-height:none;height:auto;cursor:zoom-out}
.works-viewer-caption{flex-shrink:0;margin:0;text-align:center;font-size:.9rem}
@media(max-width:640px){.works-viewer{padding:10px;width:98vw;height:94dvh}.works-viewer-tools button{padding:9px 12px}}

.photo-grid .works-title{font-size:1.15rem;font-weight:700;line-height:1.6;color:var(--fg);margin:12px 0;text-align:center;overflow-wrap:anywhere}

/* 施工事例を物件ごとの枠にまとめる */
.photo-grid .works-card{min-width:0;margin:0;padding:14px;border:1px solid #c9bcae;border-radius:8px;background:#fff;box-shadow:0 3px 12px rgba(60,45,30,.06)}

/* 先行公開: 写真なしでも物件名が主役になるページ */
.coming-soon{min-height:60vh;display:flex;align-items:center;padding:80px 0}
.coming-soon .eyebrow{letter-spacing:.24em;color:var(--green)}
.coming-soon h1{font-size:clamp(1.6rem,5vw,2.8rem);line-height:1.6;overflow-wrap:anywhere;margin:20px 0 28px}

/* 先行公開の物件カード: 写真や価格が未定でも名前だけで掲載 */
.coming-soon-card-link{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:260px;height:100%;padding:28px 20px;text-align:center;color:var(--fg);text-decoration:none}
.coming-soon-card .eyebrow{color:var(--green);letter-spacing:.18em}
.coming-soon-card h2,.coming-soon-card h3{font-size:1.15rem;line-height:1.7;margin:12px 0;overflow-wrap:anywhere}
.coming-soon-card .note{margin:0}
