@charset "UTF-8";
/* ============================================================
   民宿川徳 — 岩井海岸の合宿宿
   design tokens: 藍墨(sumi) / 潮(shio) / 屋根の橙(yane) / 畳(tatami)
   ============================================================ */

:root{
  --sumi:#12242E;
  --sumi-2:#1B3542;
  --nami:#2E5C6E;
  --shio:#EDF1F0;
  --shio-2:#E2E9E8;
  --kami:#FFFFFF;
  --yane:#D95F18;
  --yane-d:#B04A0F;
  --tatami:#B9A46A;
  --ink:#16262E;
  --gray:#56666D;
  --line:#D2DBDA;

  --f-disp:"Shippori Mincho B1", "Yu Mincho", "游明朝", serif;
  --f-body:"Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Meiryo", sans-serif;
  --f-data:"Barlow Semi Condensed", "Zen Kaku Gothic New", sans-serif;

  --wrap:1120px;
  --pad:clamp(20px, 5vw, 40px);
  --r:3px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--shio); color:var(--ink);
  font-family:var(--f-body); font-size:16px; line-height:1.9;
  font-feature-settings:"palt" 1;
}
img{max-width:100%; height:auto; display:block}
a{color:var(--nami)}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:3px solid var(--yane); outline-offset:2px;
}

.wrap{width:min(100% - var(--pad)*2, var(--wrap)); margin-inline:auto}
.wrap-narrow{width:min(100% - var(--pad)*2, 800px); margin-inline:auto}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- ヘッダー ---------- */
.hdr{position:sticky; top:0; z-index:60; background:var(--sumi); color:#fff}
.hdr__in{display:flex; align-items:center; gap:20px; height:66px;
  width:min(100% - 32px, 1280px); margin-inline:auto}
.hdr__logo{display:flex; align-items:center; gap:10px; text-decoration:none; color:#fff; flex:0 0 auto}
.hdr__mark{width:30px; height:23px; flex:0 0 auto}
.hdr__wm{display:block; line-height:1}
.hdr__wm b{font-family:var(--f-disp); font-size:20px; letter-spacing:.1em; font-weight:700; display:block}
.hdr__wm span{font-family:var(--f-data); font-size:10px; letter-spacing:.13em; color:#8FADB8;
  display:block; line-height:1; margin-top:4px}
.hdr__nav{margin-left:auto; display:flex; gap:2px}
.hdr__nav a{
  color:#DCE7EA; text-decoration:none; font-size:13.5px; padding:8px 11px;
  border-radius:var(--r); white-space:nowrap; transition:background .18s, color .18s;
}
.hdr__nav a:hover{background:rgba(255,255,255,.09); color:#fff}
.hdr__nav a[aria-current]{color:var(--yane)}
.hdr__tel{
  display:flex; align-items:center; gap:8px; background:var(--yane); color:#fff;
  text-decoration:none; padding:8px 15px; border-radius:var(--r); flex:0 0 auto;
  transition:background .18s;
}
.hdr__tel:hover{background:var(--yane-d)}
.hdr__tel .n{font-family:var(--f-data); font-size:20px; font-weight:600; letter-spacing:.02em; line-height:1}
.hdr__tel .l{font-size:10px; letter-spacing:.1em; line-height:1.2; opacity:.9}
.hdr__burger{display:none; margin-left:auto; background:none; border:1px solid rgba(255,255,255,.3);
  color:#fff; width:44px; height:38px; border-radius:var(--r); cursor:pointer; font-size:11px; letter-spacing:.08em}

@media (max-width:1080px){
  .hdr__nav{
    position:fixed; inset:66px 0 auto 0; background:var(--sumi-2); flex-direction:column;
    padding:8px 16px 20px; gap:0; display:none; max-height:calc(100dvh - 66px); overflow:auto;
    border-top:1px solid rgba(255,255,255,.12);
  }
  .hdr__nav.is-open{display:flex}
  .hdr__nav a{padding:13px 6px; border-bottom:1px solid rgba(255,255,255,.09); font-size:15px}
  .hdr__burger{display:block; order:3; margin-left:auto}
  .hdr__tel{order:2; margin-left:auto; padding:6px 11px}
  .hdr__tel .n{font-size:17px}
}
@media (max-width:560px){
  .hdr__tel{display:none}
  .hdr__wm b{font-size:18px}
  .hdr__wm span{display:none}
}

/* ---------- ヒーロー ---------- */
.hero{position:relative; background:var(--sumi); color:#fff; overflow:hidden}
.hero__img{position:absolute; inset:0}

/* ヒーロー動画 */
.hero__video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.62}
.hero__fallback{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.62}
.hero__video.is-playing + .hero__fallback{opacity:0}

.hero__img img{width:100%; height:100%; object-fit:cover; opacity:.62}
.hero::after{content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(18,36,46,.72) 0%, rgba(18,36,46,.30) 42%, rgba(18,36,46,.88) 100%)}
.hero__in{position:relative; z-index:2; padding:clamp(64px,11vw,124px) 0 0}
.hero__eyebrow{font-family:var(--f-data); font-size:13px; letter-spacing:.24em; color:#F0B48C; margin:0 0 18px}
.hero h1{
  font-family:var(--f-disp); font-weight:700; margin:0 0 20px;
  font-size:clamp(30px,5.4vw,58px); line-height:1.34; letter-spacing:.02em;
  text-shadow:0 2px 24px rgba(0,0,0,.4);
}
.hero h1 em{font-style:normal; color:#F5A66E}
.hero__lead{max-width:640px; font-size:clamp(14.5px,1.7vw,17px); line-height:2; color:#E4EDEF; margin:0 0 30px}
.hero__cta{display:flex; flex-wrap:wrap; gap:12px; margin:0 0 clamp(38px,6vw,60px)}

/* 数値の帯（合宿帳） */
.ledger{position:relative; z-index:2; background:rgba(255,255,255,.96); border-top:3px solid var(--yane)}
.ledger__grid{display:grid; grid-template-columns:repeat(6,1fr)}
.ledger__c{padding:16px 10px; text-align:center; border-right:1px solid var(--line)}
.ledger__c:last-child{border-right:0}
.ledger__n{font-family:var(--f-data); font-weight:600; font-size:clamp(24px,3.4vw,34px);
  line-height:1.05; color:var(--sumi); letter-spacing:.01em}
.ledger__n i{font-style:normal; font-size:.52em; margin-left:2px; color:var(--gray)}
.ledger__l{font-size:11.5px; color:var(--gray); letter-spacing:.06em; margin-top:4px}
@media (max-width:760px){
  .ledger__grid{grid-template-columns:repeat(3,1fr)}
  .ledger__c:nth-child(3n){border-right:0}
  .ledger__c:nth-child(-n+3){border-bottom:1px solid var(--line)}
}

/* ---------- ページヘッダー（下層） ---------- */
.phead{position:relative; background:var(--sumi); color:#fff; overflow:hidden}
.phead__img{position:absolute; inset:0}
.phead__img img{width:100%;height:100%;object-fit:cover;opacity:.42}
.phead::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(18,36,46,.66),rgba(18,36,46,.86))}
.phead__in{position:relative;z-index:2; padding:clamp(46px,7vw,78px) 0}
.phead__en{font-family:var(--f-data); font-size:12px; letter-spacing:.24em; color:#F0B48C; margin:0 0 8px}
.phead h1{font-family:var(--f-disp); font-weight:700; margin:0; font-size:clamp(26px,4.4vw,42px); letter-spacing:.04em}
.phead p{margin:14px 0 0; color:#DCE7EA; max-width:660px; font-size:15px}

/* パンくず */
.crumb{background:var(--shio-2); font-size:12px; color:var(--gray)}
.crumb ol{list-style:none; display:flex; flex-wrap:wrap; gap:6px; margin:0; padding:9px 0}
.crumb li::after{content:"›"; margin-left:6px; color:var(--line)}
.crumb li:last-child::after{content:""}
.crumb a{color:var(--nami); text-decoration:none}
.crumb a:hover{text-decoration:underline}

/* ---------- セクション ---------- */
.sec{padding:clamp(52px,8vw,92px) 0}
.sec--kami{background:var(--kami)}
.sec--sumi{background:var(--sumi); color:#fff}
.sec--sumi .lead, .sec--sumi p{color:#D9E4E7}

.eyebrow{display:flex; align-items:center; gap:14px; margin:0 0 10px}
.eyebrow__en{font-family:var(--f-data); font-size:12.5px; letter-spacing:.22em; color:var(--yane); font-weight:600}
.eyebrow__rule{flex:1; height:1px; background:var(--line)}
.sec--sumi .eyebrow__rule{background:rgba(255,255,255,.2)}

.h2{font-family:var(--f-disp); font-weight:700; font-size:clamp(22px,3.4vw,33px);
  letter-spacing:.04em; line-height:1.5; margin:0 0 18px}
.h3{font-family:var(--f-disp); font-weight:700; font-size:clamp(18px,2.4vw,23px);
  letter-spacing:.03em; margin:0 0 12px}
.h4{font-size:16px; font-weight:700; margin:0 0 8px; letter-spacing:.03em}
.lead{font-size:clamp(14.5px,1.6vw,16.5px); line-height:2.05; color:var(--gray); margin:0 0 30px; max-width:720px}
.sec p{line-height:2.05}

/* ---------- ボタン ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:14px 26px; border-radius:var(--r); text-decoration:none; font-weight:700;
  font-size:15px; letter-spacing:.05em; border:2px solid transparent; cursor:pointer;
  transition:background .18s, color .18s, border-color .18s, transform .18s;
}
.btn:hover{transform:translateY(-1px)}
.btn--yane{background:var(--yane); color:#fff}
.btn--yane:hover{background:var(--yane-d)}
.btn--ghost{border-color:rgba(255,255,255,.55); color:#fff}
.btn--ghost:hover{background:#fff; color:var(--sumi); border-color:#fff}
.btn--line{border-color:var(--nami); color:var(--nami); background:#fff}
.btn--line:hover{background:var(--nami); color:#fff}
.btn .sub{font-family:var(--f-data); font-size:12px; letter-spacing:.1em; opacity:.85; font-weight:500}

/* ---------- 畳スケール（シグネチャー） ---------- */
.tatami{background:var(--kami); border:1px solid var(--line); padding:clamp(20px,4vw,34px)}
.tatami__row{display:flex; flex-wrap:wrap; align-items:flex-end; gap:clamp(16px,3vw,34px)}
.tatami__item{text-align:left}
.tatami__item svg{display:block; width:100%; height:auto}
.tatami__cap{margin-top:9px}
.tatami__jo{font-family:var(--f-data); font-weight:600; font-size:24px; color:var(--sumi); line-height:1}
.tatami__jo i{font-style:normal; font-size:.55em; margin-left:2px; color:var(--gray)}
.tatami__nm{font-size:12.5px; color:var(--gray); margin-top:2px}
.tatami__note{margin:18px 0 0; font-size:12.5px; color:var(--gray); line-height:1.85}

/* ---------- スペック表 ---------- */
.spec{width:100%; border-collapse:collapse; background:var(--kami); font-size:14.5px}
.spec caption{text-align:left; font-weight:700; padding:0 0 10px; color:var(--sumi)}
.spec th,.spec td{border:1px solid var(--line); padding:13px 16px; text-align:left; vertical-align:top; line-height:1.85}
.spec th{background:var(--shio); width:32%; font-weight:700; color:var(--sumi); white-space:nowrap}
.spec td strong{font-family:var(--f-data); font-size:1.25em; font-weight:600; letter-spacing:.01em}
@media (max-width:620px){
  .spec th,.spec td{display:block; width:100%; border-bottom:0}
  .spec tr:last-child td{border-bottom:1px solid var(--line)}
  .spec th{white-space:normal}
}

/* ---------- カード ---------- */
.cards{display:grid; gap:clamp(16px,2.4vw,26px)}
.cards--3{grid-template-columns:repeat(3,1fr)}
.cards--2{grid-template-columns:repeat(2,1fr)}
@media (max-width:860px){.cards--3{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.cards--3,.cards--2{grid-template-columns:1fr}}

.card{background:var(--kami); border:1px solid var(--line); display:flex; flex-direction:column;
  text-decoration:none; color:inherit; transition:border-color .2s, transform .2s, box-shadow .2s}
a.card:hover{border-color:var(--yane); transform:translateY(-3px); box-shadow:0 10px 28px rgba(18,36,46,.10)}
.card__img{aspect-ratio:3/2; overflow:hidden; background:var(--shio-2)}
.card__img img{width:100%;height:100%;object-fit:cover; transition:transform .5s}
a.card:hover .card__img img{transform:scale(1.045)}
.card__body{padding:20px 20px 22px; flex:1; display:flex; flex-direction:column}
.card__tag{font-family:var(--f-data); font-size:11.5px; letter-spacing:.16em; color:var(--yane); font-weight:600; margin:0 0 6px}
.card__ttl{font-family:var(--f-disp); font-weight:700; font-size:19px; margin:0 0 9px; letter-spacing:.03em}
.card__txt{font-size:13.5px; color:var(--gray); line-height:1.9; margin:0}
.card__more{margin-top:auto; padding-top:14px; font-size:13px; color:var(--yane); font-weight:700}

/* 設備リスト */
.feat{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line)}
.feat div{background:var(--kami); padding:18px 16px}
.feat b{display:block; font-size:14.5px; margin-bottom:5px; color:var(--sumi)}
.feat span{font-size:12.5px; color:var(--gray); line-height:1.8}
@media (max-width:860px){.feat{grid-template-columns:repeat(2,1fr)}}
@media (max-width:460px){.feat{grid-template-columns:1fr}}

/* 提供範囲（する/しない） */
.scope{display:grid; grid-template-columns:1fr 1fr; gap:clamp(14px,2.2vw,22px)}
@media (max-width:700px){.scope{grid-template-columns:1fr}}
.scope__box{background:var(--kami); border:1px solid var(--line); padding:24px}
.scope__box--yes{border-top:3px solid var(--nami)}
.scope__box--no{border-top:3px solid var(--tatami)}
.scope__box h3{font-family:var(--f-disp); font-size:18px; margin:0 0 4px; letter-spacing:.03em}
.scope__box .k{font-family:var(--f-data); font-size:11.5px; letter-spacing:.16em; color:var(--gray); margin:0 0 14px}
.scope__box ul{margin:0; padding-left:1.15em}
.scope__box li{font-size:14px; line-height:1.95; margin-bottom:5px}

/* 料金 */
.price{width:100%; border-collapse:collapse; background:var(--kami); font-size:15px}
.price th,.price td{border:1px solid var(--line); padding:15px 18px; text-align:left}
.price thead th{background:var(--sumi); color:#fff; font-weight:700; font-size:13.5px; letter-spacing:.08em}
.price tbody th{background:var(--shio); width:34%; font-weight:700}
.price .yen{font-family:var(--f-data); font-size:26px; font-weight:600; color:var(--sumi); letter-spacing:.01em}
.price .yen i{font-style:normal; font-size:.5em; color:var(--gray); margin-left:3px}
@media (max-width:560px){
  .price thead{display:none}
  .price th,.price td{display:block;width:100%;border-bottom:0}
  .price tbody tr:last-child td:last-child{border-bottom:1px solid var(--line)}
}

.note{background:var(--shio); border-left:3px solid var(--tatami); padding:16px 20px; font-size:13.5px;
  color:var(--gray); line-height:1.95; margin:22px 0 0}
.note ul{margin:0; padding-left:1.15em}
.note li{margin-bottom:4px}

/* ギャラリー */
.gal{display:grid; grid-template-columns:repeat(4,1fr); gap:10px}
@media (max-width:860px){.gal{grid-template-columns:repeat(3,1fr)}}
@media (max-width:520px){.gal{grid-template-columns:repeat(2,1fr)}}
.gal figure{margin:0; background:var(--kami); border:1px solid var(--line)}
.gal img{aspect-ratio:4/3; object-fit:cover; width:100%}
.gal figcaption{font-size:11.5px; color:var(--gray); padding:8px 10px; line-height:1.7}

/* FAQ */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line); background:var(--kami)}
.faq summary{
  cursor:pointer; list-style:none; padding:19px 52px 19px 20px; position:relative;
  font-weight:700; font-size:15px; line-height:1.7; color:var(--sumi);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q"; font-family:var(--f-data); color:var(--yane); font-size:17px; margin-right:11px}
.faq summary::after{
  content:""; position:absolute; right:22px; top:50%; width:11px; height:11px;
  border-right:2px solid var(--nami); border-bottom:2px solid var(--nami);
  transform:translateY(-70%) rotate(45deg); transition:transform .22s;
}
.faq details[open] summary::after{transform:translateY(-30%) rotate(225deg)}
.faq .a{padding:0 20px 22px 46px; font-size:14.5px; color:var(--gray); line-height:2}
.faq .a p{margin:0 0 8px}

/* アクセス */
.route{border-top:1px solid var(--line)}
.route__i{display:grid; grid-template-columns:190px 1fr; gap:0; border-bottom:1px solid var(--line);
  background:var(--kami)}
.route__i dt{padding:17px 20px; background:var(--shio); font-weight:700; font-size:14px; color:var(--sumi)}
.route__i dd{padding:17px 20px; margin:0; font-size:14px; line-height:1.95}
@media (max-width:640px){.route__i{grid-template-columns:1fr}}
.map{border:1px solid var(--line); background:var(--kami); line-height:0}
.map iframe{width:100%; height:420px; border:0}

/* フォーム案内 */
.contact-lead{display:grid; grid-template-columns:1fr 1fr; gap:clamp(14px,2.4vw,24px)}
@media (max-width:760px){.contact-lead{grid-template-columns:1fr}}
.contact-box{background:var(--kami); border:1px solid var(--line); padding:28px; text-align:center}
.contact-box .k{font-family:var(--f-data); font-size:11.5px; letter-spacing:.18em; color:var(--yane); font-weight:600}
.contact-box h3{font-family:var(--f-disp); font-size:20px; margin:8px 0 12px}
.contact-box p{font-size:13.5px; color:var(--gray); margin:0 0 18px; line-height:1.9}
.contact-box .tel{font-family:var(--f-data); font-size:38px; font-weight:600; color:var(--sumi);
  text-decoration:none; letter-spacing:.01em; display:block; line-height:1.15}
.contact-box .tel:hover{color:var(--yane)}
.contact-box small{display:block; font-size:12px; color:var(--gray); margin-top:6px}

/* お知らせ */
.news-list{list-style:none; margin:0; padding:0; border-top:1px solid var(--line)}
.news-list li{border-bottom:1px solid var(--line); background:var(--kami)}
.news-list a{display:flex; gap:18px; align-items:baseline; padding:17px 20px; text-decoration:none; color:inherit; flex-wrap:wrap}
.news-list a:hover{background:var(--shio)}
.news-list time{font-family:var(--f-data); font-size:14px; color:var(--gray); letter-spacing:.05em; flex:0 0 auto}
.news-list span{font-size:14.5px; font-weight:700; color:var(--sumi)}

/* CTA帯 */
.cta{background:var(--sumi); color:#fff; text-align:center; padding:clamp(46px,7vw,74px) 0}
.cta h2{font-family:var(--f-disp); font-size:clamp(21px,3.2vw,30px); margin:0 0 12px; letter-spacing:.04em}
.cta p{color:#C7D6DA; font-size:14.5px; margin:0 0 26px}
.cta__btns{display:flex; gap:13px; justify-content:center; flex-wrap:wrap}
.cta__tel{font-family:var(--f-data); font-size:clamp(32px,6vw,46px); font-weight:600; color:#fff;
  text-decoration:none; letter-spacing:.02em; display:inline-block; line-height:1.1}
.cta__tel:hover{color:#F5A66E}

/* フッター */
.ftr{background:#0C1A22; color:#A9BEC5; font-size:13.5px; padding:clamp(40px,6vw,60px) 0 0}
.ftr__grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:34px; padding-bottom:34px}
@media (max-width:780px){.ftr__grid{grid-template-columns:1fr}}
.ftr h3{font-family:var(--f-disp); color:#fff; font-size:18px; margin:0 0 12px; letter-spacing:.05em}
.ftr h4{font-family:var(--f-data); color:#7E9AA4; font-size:11.5px; letter-spacing:.18em; margin:0 0 12px; font-weight:600}
.ftr address{font-style:normal; line-height:2}
.ftr a{color:#C6D8DD; text-decoration:none}
.ftr a:hover{color:var(--yane); text-decoration:underline}
.ftr ul{list-style:none; margin:0; padding:0}
.ftr li{margin-bottom:8px; line-height:1.7}
.ftr__btm{border-top:1px solid rgba(255,255,255,.1); padding:16px 0 84px; font-size:11.5px; color:#7E9AA4;
  display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap}
@media (min-width:861px){.ftr__btm{padding-bottom:20px}}

/* モバイル固定CTA */
.mbar{position:fixed; left:0; right:0; bottom:0; z-index:70; display:none;
  background:var(--sumi); border-top:1px solid rgba(255,255,255,.15);
  padding:8px 10px calc(8px + env(safe-area-inset-bottom));}
.mbar a{flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:9px 4px; border-radius:var(--r); text-decoration:none; font-size:12.5px; font-weight:700; letter-spacing:.04em}
.mbar .m-tel{background:var(--yane); color:#fff}
.mbar .m-form{background:#fff; color:var(--sumi)}
.mbar b{font-family:var(--f-data); font-size:17px; font-weight:600; line-height:1.1}
@media (max-width:860px){.mbar{display:flex; gap:8px}}

/* 汎用 */
.mt-s{margin-top:14px}.mt-m{margin-top:26px}.mt-l{margin-top:44px}
.center{text-align:center}
.figure{margin:0; background:var(--kami); border:1px solid var(--line)}
.figure img{width:100%}
.figure figcaption{font-size:12.5px; color:var(--gray); padding:10px 14px; line-height:1.8}
.split{display:grid; grid-template-columns:1fr 1fr; gap:clamp(20px,3.4vw,44px); align-items:center}
@media (max-width:760px){.split{grid-template-columns:1fr}}
.tag-row{display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; list-style:none}
.tag-row li{font-size:12.5px; background:var(--kami); border:1px solid var(--line);
  padding:6px 12px; border-radius:100px; color:var(--gray)}

/* スクロール演出 */
.rv{opacity:0; transform:translateY(16px); transition:opacity .7s ease, transform .7s ease}
.rv.is-in{opacity:1; transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rv{opacity:1; transform:none; transition:none}
  .btn:hover{transform:none}
  a.card:hover{transform:none}
  a.card:hover .card__img img{transform:none}
}

/* ---------- Instagram フィード ---------- */
.ig-head{display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:10px}
.ig-head .h2{margin:0}
.ig{display:grid; grid-template-columns:repeat(6,1fr); gap:8px; margin-top:6px}
@media (max-width:900px){.ig{grid-template-columns:repeat(4,1fr)}}
@media (max-width:520px){.ig{grid-template-columns:repeat(3,1fr)}}
.ig__item{position:relative; display:block; aspect-ratio:1/1; overflow:hidden;
  background:var(--shio-2); border:1px solid var(--line)}
.ig__item img{width:100%; height:100%; object-fit:cover; transition:transform .5s}
.ig__item:hover img{transform:scale(1.06)}
.ig__item::before{content:""; position:absolute; inset:0; background:rgba(18,36,46,0);
  transition:background .2s; z-index:1}
.ig__item:hover::before{background:rgba(18,36,46,.12)}
.ig__item.is-video::after{content:"▶"; position:absolute; top:7px; right:8px; z-index:2;
  color:#fff; font-size:11px; text-shadow:0 1px 4px rgba(0,0,0,.6)}
@media (prefers-reduced-motion:reduce){.ig__item:hover img{transform:none}}

/* インライン動画 */
.video-figure{max-width:760px; margin-inline:auto}
.inline-video{width:100%; height:auto; display:block; background:#000; aspect-ratio:16/9}
