/* ============================================================
   民泊「あかつき」デザインシステム
   コンセプト: 暁 — 街が目覚める前の光。
   藍墨(ink)の地に、夜明けの琥珀(amber)と金(gold)。写真をギャラリーのように光らせる。
   ============================================================ */

:root{
  /* --- 地・パネル(プリドーンの藍墨。青みを帯びた暖かい暗色) --- */
  --ink:#13151d;
  --ink-2:#1b1f2b;
  --ink-3:#252a39;          /* dark上のヘアライン/枠 */
  --ink-glass:rgba(19,21,29,.72);

  /* --- 暁の光(差し色) --- */
  --amber:#e79a3c;          /* 主アクセント: 夜明けの琥珀 */
  --gold:#f0c67d;           /* ハイライトの金 */
  --ember:#bf5f3a;          /* 残照のテラコッタ(客室壁の色) */

  /* --- 紙(読み物セクション。温かいオフホワイト) --- */
  --paper:#f5efe4;
  --paper-2:#ece3d3;
  --paper-line:#ddd2bd;

  /* --- 文字 --- */
  --on-ink:#f3ece0;         /* 暗地の本文 */
  --on-ink-dim:#9aa3b4;     /* 暗地の補助(青み neutral) */
  --on-ink-faint:#6b7488;
  --on-paper:#2a2620;       /* 紙上の本文(温かい黒) */
  --on-paper-dim:#6e6555;

  /* --- 形 --- */
  --radius:4px;             /* 直線的でシャープに。丸みは最小限 */
  --radius-lg:8px;
  --edge:1px solid var(--ink-3);
  --shadow:0 18px 50px -18px rgba(0,0,0,.65);
  --shadow-soft:0 10px 30px -12px rgba(0,0,0,.4);

  --maxw:1240px;            /* 読み物(split/カレンダー/本文) */
  --maxw-wide:1560px;       /* 魅せる要素(ナビ/ヒーロー/プレート/ギャラリー/フッター) */
  --gutter:clamp(20px,4.5vw,88px);

  /* --- タイポ --- */
  --serif:"Shippori Mincho","Zen Old Mincho",serif;
  --sans:"Zen Kaku Gothic New","Noto Sans SC","Noto Sans KR",system-ui,sans-serif;
}

/* ===== base ===== */
*{box-sizing:border-box;}
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; background:var(--ink); }
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto;} }
body.ak{
  margin:0; background:var(--ink); color:var(--on-ink);
  font-family:var(--sans); font-size:16px; line-height:1.75;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
  animation:akPageIn .5s ease both;            /* ページ読み込み時フェードイン(opacityのみ: fixed/stickyを壊さない) */
  word-break:auto-phrase;                      /* 日本語を文節境界で折り返す(変な位置での改行を防ぐ) */
  line-break:strict;
}
/* 見出し・本文の孤立文字を減らす(対応ブラウザのみ・未対応は従来動作) */
.ak-lead,.ak-hero-inner p,.ak-feature p,.ak-split-body p,.ak-note p,.ak-pin-item .cap p,
.ak-floor-body p,.ak-cat-head .nt,.ak-plate .lbl .nt,.ak-info-item span,.ak-cal-note,.ak-pull .q{
  text-wrap:pretty;
}
body.ak.ak-legacy{animation:akPageIn .5s ease both;}
body.ak.ak-leaving{opacity:0;transition:opacity .28s ease;animation:none;}  /* 遷移時フェードアウト */
@keyframes akPageIn{from{opacity:0;}to{opacity:1;}}
@media (prefers-reduced-motion:reduce){
  body.ak,body.ak.ak-legacy{animation:none;}
  body.ak.ak-leaving{transition:none;transform:none;}
}
/* 旧 public.css 依存ページ(contact 等)は明るい地で表示 */
body.ak.ak-legacy{background:var(--paper);color:var(--on-paper);}
body.ak.ak-legacy main{min-height:60vh;}
.ak img{max-width:100%;display:block;}
.ak a{color:inherit;text-decoration:none;}
.ak ::selection{background:var(--amber);color:var(--ink);}

/* ===== typography helpers ===== */
.ak h1,.ak h2,.ak h3{font-family:var(--serif);font-weight:600;line-height:1.18;margin:0;text-wrap:pretty;letter-spacing:.01em;}
.ak-kicker{
  font-family:var(--sans);font-size:.72rem;font-weight:600;
  letter-spacing:.34em;text-transform:uppercase;color:var(--amber);
  display:inline-flex;align-items:center;gap:.7em;
}
.ak-kicker::before{content:"";width:26px;height:1px;background:var(--amber);opacity:.7;}
.ak-kicker.center{justify-content:center;}
.ak-h2{font-size:clamp(1.9rem,4.2vw,3.05rem);}
.ak-lead{font-size:clamp(1.02rem,1.4vw,1.16rem);line-height:1.9;color:var(--on-ink-dim);max-width:60ch;}
.ak-serif{font-family:var(--serif);}

/* 節見出しの共通レイアウト */
.ak-head{display:flex;flex-direction:column;gap:14px;margin-bottom:38px;}
.ak-head.center{align-items:center;text-align:center;}
.ak-head .ak-h2{color:var(--on-ink);}
.ak-head .ak-lead{margin:0;}

/* 光る強調 */
.ak-glow{color:var(--gold);}
.ak-em{color:var(--amber);}

/* ===== layout shells ===== */
.ak-wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gutter);}
.ak-wrap.wide{max-width:var(--maxw-wide);}
.ak-section{padding-block:clamp(64px,8vw,148px);}
.ak-section.tight{padding-block:clamp(44px,6vw,92px);}
/* 紙(明るい読み物)セクション */
.ak-paper{background:var(--paper);color:var(--on-paper);}
.ak-paper .ak-h2{color:var(--on-paper);}
.ak-paper .ak-lead{color:var(--on-paper-dim);}
.ak-paper .ak-kicker{color:var(--ember);}
.ak-paper .ak-kicker::before{background:var(--ember);}
/* 深い藍のセクション */
.ak-deep{background:linear-gradient(180deg,#0f1118,#181c27);}

/* ===== buttons ===== */
.ak-btn{
  display:inline-flex;align-items:center;gap:.6em;
  font-family:var(--sans);font-weight:600;font-size:.95rem;letter-spacing:.02em;
  padding:.95em 1.6em;border-radius:var(--radius);cursor:pointer;border:1px solid transparent;
  transition:transform .35s cubic-bezier(.2,.8,.2,1),background .3s,color .3s,box-shadow .3s;
}
.ak-btn:hover{transform:translateY(-2px);}
.ak-btn-primary{
  background:linear-gradient(120deg,var(--amber),var(--gold));color:#2a1c07;
  box-shadow:0 10px 28px -10px rgba(231,154,60,.6);
}
.ak-btn-primary:hover{box-shadow:0 16px 36px -10px rgba(231,154,60,.75);}
.ak-btn-ghost{border-color:rgba(243,236,224,.35);color:var(--on-ink);}
.ak-btn-ghost:hover{border-color:var(--amber);color:var(--gold);}
.ak-paper .ak-btn-ghost{border-color:rgba(42,38,32,.28);color:var(--on-paper);}
.ak-paper .ak-btn-ghost:hover{border-color:var(--ember);color:var(--ember);}

/* ===== nav / header ===== */
.ak-nav{
  position:sticky;top:0;z-index:120;
  background:var(--ink-glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(243,236,224,.08);
}
.ak-nav-inner{max-width:var(--maxw-wide);margin:0 auto;padding:14px var(--gutter);
  display:flex;align-items:center;justify-content:space-between;gap:20px;}
.ak-brand{display:flex;align-items:center;gap:12px;}
.ak-brand .mark{
  width:40px;height:40px;display:block;border-radius:10px;
  box-shadow:0 5px 16px -5px rgba(234,160,126,.65);
}
.ak-brand .txt{display:flex;flex-direction:column;line-height:1.05;}
.ak-brand .ja{font-family:var(--serif);font-size:1.12rem;font-weight:600;letter-spacing:.14em;color:var(--on-ink);}
.ak-brand .en{font-size:.6rem;letter-spacing:.42em;color:var(--on-ink-faint);text-transform:uppercase;}
.ak-navlinks{display:flex;align-items:center;gap:26px;}
.ak-navlinks a.lnk{position:relative;font-size:.9rem;color:var(--on-ink-dim);padding:4px 0;transition:color .25s;}
.ak-navlinks a.lnk::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:1px;background:var(--amber);transition:width .3s;}
.ak-navlinks a.lnk:hover{color:var(--on-ink);}
.ak-navlinks a.lnk:hover::after,.ak-navlinks a.lnk.active::after{width:100%;}
.ak-navlinks a.lnk.active{color:var(--gold);}
.ak-lang{display:inline-flex;gap:2px;border:1px solid var(--ink-3);border-radius:var(--radius);overflow:hidden;}
.ak-lang a{font-size:.72rem;letter-spacing:.06em;padding:5px 9px;color:var(--on-ink-faint);transition:background .2s,color .2s;}
.ak-lang a.active{background:var(--amber);color:var(--ink);font-weight:600;}
.ak-lang a:hover:not(.active){color:var(--on-ink);}
.ak-nav-cta{white-space:nowrap;}
.ak-burger{display:none;background:none;border:0;color:var(--on-ink);font-size:1.5rem;cursor:pointer;line-height:1;}

@media (max-width:900px){
  .ak-navlinks{position:fixed;inset:64px 0 auto 0;flex-direction:column;align-items:stretch;gap:0;
    background:var(--ink-2);border-bottom:1px solid var(--ink-3);padding:8px var(--gutter);
    transform:translateY(-140%);transition:transform .4s cubic-bezier(.2,.8,.2,1);}
  .ak-navlinks.open{transform:translateY(0);}
  .ak-navlinks a.lnk{padding:14px 0;border-top:1px solid var(--ink-3);}
  .ak-navlinks a.lnk:first-child{border-top:0;}
  .ak-navlinks .ak-lang,.ak-navlinks .ak-nav-cta{margin:12px 0;}
  .ak-burger{display:block;}
  .ak-nav-cta.desktop{display:none;}
}
@media (min-width:901px){ .ak-nav-cta.mobile{display:none;} }

/* ===== HERO ===== */
.ak-hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;}
.ak-hero-media{position:absolute;inset:0;z-index:0;}
.ak-hero-media .shot{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;
  animation:akHeroFade 24s infinite;transform:scale(1.06);}
.ak-hero-media .shot:nth-child(1){animation-delay:0s;}
.ak-hero-media .shot:nth-child(2){animation-delay:6s;}
.ak-hero-media .shot:nth-child(3){animation-delay:12s;}
.ak-hero-media .shot:nth-child(4){animation-delay:18s;}
@keyframes akHeroFade{0%{opacity:0;transform:scale(1.08);}4%{opacity:1;}22%{opacity:1;}28%{opacity:0;transform:scale(1.14);}100%{opacity:0;}}
/* 暁のグラデ被膜: 下＝藍墨、上＝ほのかな琥珀の空 */
.ak-hero-veil{position:absolute;inset:0;z-index:1;
  background:
    radial-gradient(120% 80% at 80% -10%, rgba(231,154,60,.28), transparent 55%),
    linear-gradient(180deg, rgba(15,17,24,.30) 0%, rgba(15,17,24,.55) 45%, rgba(15,17,24,.94) 100%);}
.ak-hero-veil::after{content:"";position:absolute;inset:0;
  background:radial-gradient(80% 50% at 50% 120%, rgba(191,95,58,.25), transparent 60%);}
.ak-hero-inner{position:relative;z-index:2;max-width:var(--maxw-wide);margin:0 auto;width:100%;
  padding:0 var(--gutter) clamp(56px,9vh,110px);}
.ak-hero-badge{display:inline-flex;align-items:center;gap:.6em;font-size:.78rem;letter-spacing:.16em;
  color:var(--gold);border:1px solid rgba(240,198,125,.4);border-radius:100px;padding:7px 16px;margin-bottom:26px;
  background:rgba(19,21,29,.4);backdrop-filter:blur(6px);}
.ak-hero h1{font-size:clamp(2.7rem,7.2vw,5.4rem);color:#fff;letter-spacing:.02em;
  text-shadow:0 2px 30px rgba(0,0,0,.4);}
.ak-hero h1 .en{display:block;font-size:.34em;letter-spacing:.5em;color:var(--gold);font-weight:400;
  margin-bottom:.5em;text-transform:uppercase;}
.ak-hero .ak-lead{color:rgba(243,236,224,.9);margin:22px 0 34px;max-width:44ch;}
.ak-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;}
.ak-scrollcue{position:absolute;left:50%;bottom:22px;z-index:2;transform:translateX(-50%);
  color:var(--on-ink-dim);font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;
  display:flex;flex-direction:column;align-items:center;gap:8px;}
.ak-scrollcue i{width:1px;height:34px;background:linear-gradient(var(--amber),transparent);animation:akCue 2s infinite;}
@keyframes akCue{0%,100%{opacity:.3;transform:scaleY(.6);}50%{opacity:1;transform:scaleY(1);}}

/* ===== subpage hero (単一画像・静止) ===== */
.ak-subhero{position:relative;min-height:58vh;display:flex;align-items:flex-end;overflow:hidden;}
.ak-subhero .bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.02);}
.ak-subhero .ak-hero-inner{padding-bottom:clamp(40px,7vh,72px);}
.ak-subhero h1{font-size:clamp(2.3rem,5.5vw,4rem);color:#fff;}
.ak-subhero h1 .en{display:block;font-size:.32em;letter-spacing:.5em;color:var(--gold);font-weight:400;margin-bottom:.5em;text-transform:uppercase;}
.ak-subhero .ak-lead{color:rgba(243,236,224,.9);margin-top:16px;}

/* ===== 大きな引用(editorial pull) ===== */
.ak-pull{max-width:900px;margin:0 auto;text-align:center;}
.ak-pull .q{font-family:var(--serif);font-size:clamp(1.5rem,3.4vw,2.5rem);line-height:1.6;color:var(--on-ink);}
.ak-paper .ak-pull .q{color:var(--on-paper);}
.ak-pull .q .ak-em{font-style:normal;}
.ak-pull .q{text-wrap:pretty;}
/* PC のみの改行(モバイルは自然折返し) */
@media (max-width:600px){ br.brpc{display:none;} }
.ak-pull .by{margin-top:22px;font-size:.8rem;letter-spacing:.24em;text-transform:uppercase;color:var(--amber);}

/* ===== こだわりリスト ===== */
.ak-notes{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:26px;}
.ak-note{padding-top:22px;border-top:2px solid var(--amber);}
.ak-note .k{font-family:var(--serif);font-size:.9rem;letter-spacing:.14em;color:var(--amber);}
.ak-note h4{font-family:var(--serif);font-size:1.25rem;color:var(--on-ink);margin:8px 0 10px;font-weight:600;}
.ak-paper .ak-note h4{color:var(--on-paper);}
.ak-note p{margin:0;font-size:.92rem;color:var(--on-ink-dim);line-height:1.8;}
.ak-paper .ak-note p{color:var(--on-paper-dim);}

/* ===== category section (rooms) ===== */
.ak-cat{scroll-margin-top:80px;}
.ak-cat + .ak-cat{margin-top:clamp(48px,7vw,90px);}
.ak-cat-head{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:22px;}
.ak-cat-head .ico{font-size:1.6rem;}
.ak-cat-head h3{font-size:clamp(1.5rem,3vw,2.1rem);color:var(--on-ink);}
.ak-paper .ak-cat-head h3{color:var(--on-paper);}
.ak-cat-head .nt{color:var(--on-ink-dim);font-size:.92rem;}
.ak-paper .ak-cat-head .nt{color:var(--on-paper-dim);}
/* 写真グリッド(1枚目を大きく) */
.ak-cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
.ak-cat-grid .g{border-radius:var(--radius);overflow:hidden;cursor:zoom-in;background:var(--ink-2);aspect-ratio:1/1;}
.ak-cat-grid .g.lead{grid-column:span 2;grid-row:span 2;aspect-ratio:auto;}
.ak-cat-grid .g img{width:100%;height:100%;object-fit:cover;transition:transform .7s,filter .3s;}
.ak-cat-grid .g:hover img{transform:scale(1.05);}
@media (max-width:720px){.ak-cat-grid{grid-template-columns:repeat(2,1fr);}.ak-cat-grid .g.lead{grid-column:span 2;grid-row:auto;aspect-ratio:16/10;}}

/* ===== stat row ===== */
.ak-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--ink-3);
  border-block:1px solid var(--ink-3);}
.ak-stat{background:var(--ink);padding:30px 18px;text-align:center;}
.ak-stat .n{font-family:var(--serif);font-size:clamp(2rem,4vw,2.9rem);color:var(--gold);line-height:1;
  font-variant-numeric:tabular-nums;}
.ak-stat .n small{font-size:.42em;color:var(--amber);margin-left:.15em;}
.ak-stat .l{font-size:.78rem;letter-spacing:.1em;color:var(--on-ink-dim);margin-top:10px;}
@media (max-width:640px){.ak-stats{grid-template-columns:repeat(2,1fr);}}

/* ===== feature cards (concept) ===== */
.ak-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px;}
.ak-feature{border:var(--edge);border-radius:var(--radius-lg);padding:30px 26px;background:linear-gradient(180deg,var(--ink-2),var(--ink));
  position:relative;overflow:hidden;transition:transform .4s,border-color .4s;}
.ak-feature:hover{transform:translateY(-5px);border-color:rgba(231,154,60,.5);}
.ak-feature .idx{font-family:var(--serif);font-size:.8rem;letter-spacing:.2em;color:var(--amber);}
.ak-feature .ico{font-size:1.7rem;margin:16px 0 12px;}
.ak-feature h3{font-size:1.28rem;color:var(--on-ink);margin-bottom:10px;}
.ak-feature p{font-size:.92rem;color:var(--on-ink-dim);line-height:1.8;margin:0;}
.ak-feature::after{content:"";position:absolute;top:0;left:0;width:100%;height:2px;
  background:linear-gradient(90deg,var(--amber),transparent);transform:scaleX(0);transform-origin:left;transition:transform .5s;}
.ak-feature:hover::after{transform:scaleX(1);}

/* ===== editorial split (image + text) ===== */
.ak-split{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:clamp(28px,5vw,72px);}
.ak-split.rev .ak-split-media{order:2;}
.ak-split-media{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);}
.ak-split-media img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;transition:transform 1.1s cubic-bezier(.2,.8,.2,1);}
.ak-split-media:hover img{transform:scale(1.05);}
.ak-split-media .cap{position:absolute;left:16px;bottom:14px;font-size:.74rem;letter-spacing:.14em;
  color:#fff;background:rgba(19,21,29,.6);backdrop-filter:blur(6px);padding:5px 12px;border-radius:100px;}
.ak-split-body .badge{display:inline-block;font-family:var(--serif);color:var(--amber);font-size:1.1rem;letter-spacing:.1em;margin-bottom:8px;}
.ak-split-body h3{font-size:clamp(1.5rem,2.6vw,2.1rem);color:var(--on-ink);margin-bottom:16px;}
.ak-paper .ak-split-body h3{color:var(--on-paper);}
.ak-split-body p{color:var(--on-ink-dim);line-height:1.9;margin:0 0 18px;}
.ak-paper .ak-split-body p{color:var(--on-paper-dim);}
.ak-taglist{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0;}
.ak-taglist li{font-size:.8rem;padding:6px 13px;border:1px solid var(--ink-3);border-radius:100px;color:var(--on-ink-dim);}
.ak-paper .ak-taglist li{border-color:var(--paper-line);color:var(--on-paper-dim);}
@media (max-width:760px){.ak-split{grid-template-columns:1fr;}.ak-split.rev .ak-split-media{order:0;}}

/* ===== floor sequence (4F -> 5F : 本当の順序なので番号付けは正当) ===== */
.ak-floors{display:grid;gap:28px;}
.ak-floor{display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,4vw,48px);align-items:start;}
.ak-floor-tag{font-family:var(--serif);text-align:center;}
.ak-floor-tag .fl{font-size:clamp(2.4rem,5vw,3.6rem);color:var(--gold);line-height:1;}
.ak-floor-tag .fl small{display:block;font-size:.28em;letter-spacing:.3em;color:var(--amber);margin-top:6px;}
.ak-floor-tag .rule{width:1px;height:100%;min-height:60px;background:linear-gradient(var(--amber),transparent);margin:14px auto 0;}
.ak-floor-body h3{font-size:1.4rem;color:var(--on-ink);margin-bottom:10px;}
.ak-paper .ak-floor-body h3{color:var(--on-paper);}
.ak-floor-body p{color:var(--on-ink-dim);margin:0 0 16px;}
.ak-paper .ak-floor-body p{color:var(--on-paper-dim);}
.ak-floor-shots{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.ak-floor-shots img{aspect-ratio:1/1;object-fit:cover;border-radius:var(--radius);cursor:zoom-in;transition:opacity .3s,transform .5s;}
.ak-floor-shots img:hover{transform:scale(1.03);opacity:.92;}
@media (max-width:560px){.ak-floor{grid-template-columns:1fr;}.ak-floor-tag .rule{display:none;}}

/* ===== photo plates (space cards) ===== */
.ak-plates{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
@media (max-width:900px){.ak-plates{grid-template-columns:repeat(2,1fr);}}
@media (max-width:540px){.ak-plates{grid-template-columns:1fr;}}
.ak-plate{position:relative;border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;
  background:var(--ink-2);aspect-ratio:4/3;box-shadow:var(--shadow-soft);}
.ak-plate img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.8,.2,1);}
.ak-plate:hover img{transform:scale(1.07);}
.ak-plate .veil{position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(15,17,24,.85));}
.ak-plate .lbl{position:absolute;left:18px;right:18px;bottom:16px;z-index:2;}
.ak-plate .lbl .ico{font-size:1.3rem;}
.ak-plate .lbl .nm{font-family:var(--serif);font-size:1.22rem;color:#fff;margin-top:2px;}
.ak-plate .lbl .nt{font-size:.8rem;color:rgba(243,236,224,.75);margin-top:2px;}
.ak-plate .count{position:absolute;top:12px;right:12px;z-index:2;font-size:.72rem;letter-spacing:.06em;
  color:#fff;background:rgba(19,21,29,.55);backdrop-filter:blur(6px);padding:4px 10px;border-radius:100px;}
.ak-plate .edge{position:absolute;inset:0;border:1px solid transparent;border-radius:var(--radius-lg);transition:border-color .4s;}
.ak-plate:hover .edge{border-color:rgba(231,154,60,.55);}

/* ===== masonry gallery ===== */
.ak-gallery{columns:230px;column-gap:14px;}
.ak-gallery .pic{break-inside:avoid;margin-bottom:12px;border-radius:var(--radius);overflow:hidden;cursor:zoom-in;
  position:relative;background:var(--ink-2);}
.ak-gallery .pic img{width:100%;transition:transform .7s,filter .4s;filter:saturate(.98);}
.ak-gallery .pic:hover img{transform:scale(1.04);filter:saturate(1.06);}

/* ===== calendar ===== */
.ak-cal-legend{display:flex;gap:22px;justify-content:center;flex-wrap:wrap;margin:6px 0 26px;font-size:.85rem;color:var(--on-ink-dim);}
.ak-cal-legend span{display:inline-flex;align-items:center;gap:8px;}
.ak-cal-legend i{width:14px;height:14px;border-radius:3px;display:inline-block;}
.ak-cal-legend i.open{background:transparent;box-shadow:inset 0 0 0 1px var(--amber);}
.ak-cal-legend i.booked{background:var(--ink-3);}
.ak-cal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:900px;margin:0 auto;}
@media (max-width:820px){.ak-cal-grid{grid-template-columns:1fr;max-width:330px;}}
.ak-cal-month{border:var(--edge);border-radius:var(--radius-lg);padding:16px;background:var(--ink-2);}
.ak-cal-title{text-align:center;font-family:var(--serif);font-weight:600;color:var(--gold);margin-bottom:10px;font-size:1rem;}
.ak-cal-week,.ak-cal-days{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;}
.ak-cal-wd{text-align:center;font-size:.68rem;color:var(--on-ink-faint);padding:2px 0;}
.ak-cal-wd.sun{color:var(--ember);}.ak-cal-wd.sat{color:#6f8fc0;}
.ak-cal-day{aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;font-size:.8rem;
  border-radius:3px;position:relative;font-variant-numeric:tabular-nums;}
.ak-cal-day.empty{visibility:hidden;}
.ak-cal-day.past{color:var(--ink-3);}
.ak-cal-day.open{color:var(--on-ink);box-shadow:inset 0 0 0 1px rgba(231,154,60,.4);}
.ak-cal-day.open.sun{color:var(--ember);}.ak-cal-day.open.sat{color:#8fabd8;}
.ak-cal-day.booked{background:var(--ink-3);color:var(--on-ink-faint);}
.ak-cal-day.booked b{opacity:.4;font-weight:400;}
.ak-cal-day.booked::after{content:"×";position:absolute;font-size:.7rem;color:var(--on-ink-faint);}
.ak-cal-note{text-align:center;font-size:.85rem;color:var(--on-ink-dim);margin-top:20px;}

/* ===== info strip ===== */
.ak-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1px;background:var(--ink-3);border:var(--edge);border-radius:var(--radius-lg);overflow:hidden;}
.ak-info-item{background:var(--ink);padding:20px 22px;}
.ak-info-item b{display:block;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--amber);margin-bottom:8px;}
.ak-info-item span{font-size:.98rem;color:var(--on-ink);}

/* ===== big CTA band ===== */
.ak-cta{position:relative;text-align:center;padding:clamp(70px,11vw,140px) var(--gutter);overflow:hidden;
  background:linear-gradient(140deg,#171a24,#221a12);}
.ak-cta::before{content:"";position:absolute;inset:0;
  background:radial-gradient(60% 70% at 50% 0%,rgba(231,154,60,.22),transparent 60%);}
.ak-cta-inner{position:relative;z-index:1;max-width:640px;margin:0 auto;}
.ak-cta h2{font-size:clamp(1.9rem,4.5vw,3rem);color:#fff;margin-bottom:16px;}
.ak-cta p{color:var(--on-ink-dim);margin:0 0 30px;}

/* ===== pinned scroll story (Apple風: 画像ピン留め + コピー切替。ビート=画像+コピーのペア) ===== */
.ak-pin{position:relative;background:var(--ink);}
.ak-pin-stage{position:sticky;top:0;height:100svh;overflow:hidden;}
.ak-pin-item{position:absolute;inset:0;z-index:0;opacity:0;transition:opacity 1.1s ease;will-change:opacity;}
.ak-pin-item.active{opacity:1;z-index:1;}
.ak-pin-item .shot{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(var(--kb,1.08));transition:transform 1.2s ease;}
.ak-pin-item .veil{position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(15,17,24,.30) 0%,rgba(15,17,24,.44) 50%,rgba(15,17,24,.78) 100%);}
.ak-pin-item .veil::after{content:"";position:absolute;inset:0;
  background:radial-gradient(120% 70% at 82% 0%,rgba(231,154,60,.22),transparent 55%);}
.ak-pin-item .cap{position:absolute;inset:0;z-index:2;display:grid;place-items:center;text-align:center;padding:0 var(--gutter);}
.ak-pin-item .cap .inner{max-width:860px;}
.ak-pin-item .cap .k{font-size:.72rem;letter-spacing:.34em;text-transform:uppercase;color:var(--gold);display:inline-block;margin-bottom:18px;}
.ak-pin-item .cap h2{font-family:var(--serif);color:#fff;font-size:clamp(2rem,5.4vw,4.2rem);line-height:1.22;text-shadow:0 2px 30px rgba(0,0,0,.45);}
.ak-pin-item .cap p{color:rgba(243,236,224,.92);font-size:clamp(1rem,1.5vw,1.2rem);max-width:34ch;margin:20px auto 0;line-height:1.85;}
.ak-pin-dots{position:absolute;left:50%;bottom:30px;transform:translateX(-50%);z-index:5;display:flex;gap:10px;}
.ak-pin-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.35);transition:width .35s,background .35s;}
.ak-pin-dot.active{background:var(--gold);width:24px;border-radius:4px;}
/* モバイル/視差軽減: ピン解除 → 各ビートを画像+コピーのペアで縦積み(全ビート確実表示) */
@media (max-width:768px){
  .ak-pin{height:auto!important;}
  .ak-pin-stage{position:static;height:auto;}
  .ak-pin-item{position:relative;opacity:1;min-height:82svh;}
  .ak-pin-item .shot{transform:none;}
  .ak-pin-item .cap h2{font-size:clamp(1.9rem,8vw,2.8rem);}
  .ak-pin-dots{display:none;}
}
@media (prefers-reduced-motion:reduce){
  .ak-pin{height:auto!important;}
  .ak-pin-stage{position:static;height:auto;}
  .ak-pin-item{position:relative;opacity:1;min-height:70svh;}
  .ak-pin-item .shot{transform:none;}
  .ak-pin-dots{display:none;}
}

/* ===== footer ===== */
.ak-footer{background:#0e1016;border-top:1px solid var(--ink-3);padding:56px var(--gutter) 30px;}
.ak-footer-inner{max-width:var(--maxw-wide);margin:0 auto;display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:48px;}
.ak-footer .ak-brand{margin-bottom:16px;}
.ak-footer p{color:var(--on-ink-faint);font-size:.86rem;line-height:1.8;margin:0;}
.ak-footer h4{font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--amber);margin:0 0 14px;font-family:var(--sans);font-weight:600;}
.ak-footer ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:9px;}
.ak-footer ul a{font-size:.9rem;color:var(--on-ink-dim);transition:color .2s;}
.ak-footer ul a:hover{color:var(--gold);}
.ak-footer-base{max-width:var(--maxw-wide);margin:36px auto 0;padding-top:20px;border-top:1px solid var(--ink-3);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:.76rem;color:var(--on-ink-faint);}
@media (max-width:720px){.ak-footer-inner{grid-template-columns:1fr;gap:28px;}}

/* ===== lightbox ===== */
.ak-lb{position:fixed;inset:0;z-index:300;background:rgba(9,10,14,.94);display:flex;align-items:center;justify-content:center;
  opacity:0;animation:akLbIn .3s forwards;}
@keyframes akLbIn{to{opacity:1;}}
.ak-lb img{max-width:92vw;max-height:86vh;border-radius:var(--radius);box-shadow:0 30px 80px rgba(0,0,0,.6);}
.ak-lb button{position:absolute;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:#fff;
  width:48px;height:48px;border-radius:50%;font-size:1.4rem;cursor:pointer;display:grid;place-items:center;transition:background .2s;}
.ak-lb button:hover{background:var(--amber);color:var(--ink);border-color:var(--amber);}
.ak-lb .cl{top:22px;right:22px;}
.ak-lb .pv{left:18px;top:50%;transform:translateY(-50%);}
.ak-lb .nx{right:18px;top:50%;transform:translateY(-50%);}
.ak-lb .ct{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);color:var(--on-ink-dim);font-size:.85rem;letter-spacing:.1em;}
@media (max-width:600px){.ak-lb .pv{left:8px;}.ak-lb .nx{right:8px;}.ak-lb button{width:42px;height:42px;}}

/* ===== opening splash (暁の夜明け演出。セッション1回) ===== */
.ak-splash{display:none;}
.ak-splash.run{display:grid;position:fixed;inset:0;z-index:1000;place-items:center;overflow:hidden;
  background:radial-gradient(130% 100% at 50% 118%, #3a2513 0%, #1c130c 42%, var(--ink) 72%);}
.ak-splash .box{display:flex;flex-direction:column;align-items:center;gap:16px;z-index:2;
  animation:akSplashBox 1.3s cubic-bezier(.2,.8,.2,1) both;}
.ak-splash img{width:92px;height:92px;border-radius:22px;box-shadow:0 24px 70px -12px rgba(234,160,126,.7);}
.ak-splash .nm{font-family:var(--serif);color:#fff;font-size:1.9rem;letter-spacing:.34em;padding-left:.34em;}
.ak-splash .sub{font-size:.62rem;letter-spacing:.36em;text-transform:uppercase;color:var(--gold);opacity:.9;}
/* 昇る朝日の光 */
.ak-splash .sun{position:absolute;left:50%;bottom:-42vmin;width:84vmin;height:84vmin;transform:translateX(-50%);
  border-radius:50%;z-index:1;background:radial-gradient(circle at 50% 50%, rgba(240,198,125,.5), rgba(231,154,60,.16) 45%, transparent 68%);
  animation:akSplashSun 2.4s cubic-bezier(.4,0,.2,1) both;}
.ak-splash.done{opacity:0;transform:translateY(-3%);pointer-events:none;
  transition:opacity .8s ease,transform .8s cubic-bezier(.6,0,.2,1);}
@keyframes akSplashBox{0%{opacity:0;transform:translateY(16px) scale(.94);}55%{opacity:1;}100%{opacity:1;transform:none;}}
@keyframes akSplashSun{0%{transform:translateX(-50%) translateY(30vmin) scale(.7);opacity:0;}
  60%{opacity:1;}100%{transform:translateX(-50%) translateY(0) scale(1);opacity:1;}}
@media (prefers-reduced-motion:reduce){
  .ak-splash .box,.ak-splash .sun{animation-duration:.4s;}
}

/* ===== scroll progress ===== */
.ak-progress{position:fixed;top:0;left:0;height:2px;width:0;z-index:200;
  background:linear-gradient(90deg,var(--amber),var(--gold));transition:width .1s;}

/* ===== reveal ===== */
.ak-reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.8,.2,1);}
.ak-reveal.vis{opacity:1;transform:none;}
.ak-reveal[data-d="1"]{transition-delay:.08s;}
.ak-reveal[data-d="2"]{transition-delay:.16s;}
.ak-reveal[data-d="3"]{transition-delay:.24s;}
@media (prefers-reduced-motion:reduce){
  .ak-reveal{opacity:1;transform:none;transition:none;}
  .ak-hero-media .shot{animation:none;opacity:1;}
  .ak-hero-media .shot:not(:first-child){display:none;}
  .ak-scrollcue i{animation:none;}
}

/* ===== small screens: 見出し/字間/ボタンを詰めて破綻を防ぐ ===== */
@media (max-width:600px){
  .ak-hero h1 .en,.ak-subhero h1 .en{letter-spacing:.2em;font-size:.46em;}
  .ak-hero .ak-lead{font-size:1rem;}
  .ak-hero-cta{gap:10px;}
  .ak-hero-cta .ak-btn{flex:1 1 100%;justify-content:center;}
  .ak-pull .q{font-size:1.4rem;line-height:1.55;}
  .ak-cta h2{font-size:1.75rem;}
  .ak-cat-grid{gap:8px;}
  .ak-kicker{font-size:.66rem;letter-spacing:.26em;}
}

/* ===== wide screens: 全体を少し大きく、より雄大に ===== */
@media (min-width:1500px){
  body.ak{font-size:17px;}
  .ak-hero h1{font-size:clamp(3.4rem,6.4vw,6rem);}
  .ak-h2{font-size:clamp(2.4rem,3.4vw,3.5rem);}
  .ak-stat .n{font-size:clamp(2.6rem,3.4vw,3.4rem);}
}
@media (min-width:1900px){
  body.ak{font-size:18px;}
}

/* ===== misc ===== */
.ak-divider{height:1px;background:var(--ink-3);border:0;margin:0;}
.ak-center{text-align:center;}
.ak-mt{margin-top:34px;}
