
    :root {
      --navy:   #0d1e3a;
      --blue:   #1a3b6e;
      --mid:    #2a5faa;
      --light:  #6a9fd4;
      --pale:   #d0dff0;
      --cream:  #f7f5f2;
      --cream2: #efecea;
      --text:   #1c1c1a;
      --sub:    #5a5650;
      --white:  #ffffff;
      --border: #e2ddd8;
    }
    *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
    html { scroll-behavior: smooth; overflow-x: hidden; }
    body { font-family: 'Noto Sans JP', sans-serif; color: var(--text); background: var(--cream); overflow-x: hidden; line-height: 1.8; }
    img { max-width: 100%; height: auto; display: block; }
    a { color: inherit; text-decoration: none; }
    ul { list-style: none; }

    /* ===== LOADING ===== */
    #loading {
      position: fixed; inset: 0; z-index: 9999;
      background: #fff;
      display: flex; align-items: center; justify-content: center;
      transition: opacity 0.7s ease;
    }
    #loading img { width: 100px; height: auto; animation: loadPulse 1.2s ease-in-out infinite; }
    #loading.hidden { opacity: 0; pointer-events: none; }
    @keyframes loadPulse {
      0%,100% { opacity:1; transform:scale(1); }
      50% { opacity:.5; transform:scale(.94); }
    }

    /* ===== HEADER ===== */
    header {
      position: fixed; top: 0; left: 0; right: 0;
      height: 62px;
      display: flex; align-items: center; justify-content: space-between;
      padding: 0 40px;
      z-index: 1000;
      background: rgba(255,255,255,0.98);
      border-bottom: 1px solid rgba(13,30,58,0.08);
      box-shadow: 0 2px 12px rgba(0,0,0,.04);
    }
    .logo-link { display: flex; align-items: center; gap: 12px; text-decoration: none; }
    .logo-link img { height: 40px; width: auto; }
    .logo-text { display: flex; flex-direction: column; }
    .logo-ja { font-family: 'Noto Serif JP', serif; font-size: 16px; font-weight: 700; color: var(--navy); letter-spacing: .06em; line-height: 1.3; }
    .logo-en { font-family: 'Cinzel', serif; font-size: 8px; letter-spacing: .22em; color: var(--mid); line-height: 1; }
    nav ul { display: flex; align-items: center; gap: 0; }
    nav a {
      display: block; padding: 0 18px; height: 62px; line-height: 62px;
      font-size: 13px; color: var(--text); letter-spacing: .06em;
      transition: color .2s; white-space: nowrap;
      border-bottom: 2px solid transparent;
    }
    nav a:hover { color: var(--mid); border-bottom-color: var(--mid); }
    nav .nav-cta {
      background: var(--navy); color: #fff !important;
      height: auto; line-height: normal;
      padding: 10px 22px; margin-left: 16px;
      border-bottom: none !important;
      font-size: 13px; letter-spacing: .08em;
      transition: background .2s;
    }
    nav .nav-cta:hover { background: #0a1628 !important; }
    .nav-insta { display:flex; align-items:center; justify-content:center; padding:0 12px; height:62px; color:var(--sub); transition:opacity .2s; border-bottom:none !important; }
    .nav-insta:hover { opacity:.7; }
    .nav-insta img { display:block; }
    .hamburger { display: none; flex-direction: column; gap: 5px; cursor: pointer; background: none; border: none; padding: 4px; }
    .hamburger span { display: block; width: 24px; height: 1.5px; background: var(--text); transition: all .3s; }
    .hamburger.open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
    .hamburger.open span:nth-child(2) { opacity: 0; }
    .hamburger.open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }
    .mobile-nav {
      display: none; position: fixed; inset: 0;
      background: var(--navy); z-index: 999;
      flex-direction: column; align-items: center; justify-content: center;
      gap: 36px; opacity: 0; transition: opacity .4s;
    }
    .mobile-nav.open { display: flex; opacity: 1; }
    .mobile-nav a { font-family: 'Noto Serif JP', serif; font-size: 18px; color: #fff; letter-spacing: .2em; }
    .mobile-nav a:hover { color: var(--light); }

    /* ===== HERO ===== */
    .hero {
      height: 100vh; min-height: 640px;
      position: relative; overflow: hidden;
      margin-top: 62px;
      display: flex; align-items: center;
    }
    /* ヒーロー背景 Ken Burns */
    .hero-slides { position: absolute; inset: 0; overflow: hidden; }
    .hero-bg {
      position: absolute; inset: 0;
      background-size: cover; background-position: center center;
    }
    /* 左グラデーション */
    .hero-overlay {
      position: absolute; inset: 0; z-index: 1;
      background: linear-gradient(
        to right,
        rgba(8,18,36,.78) 0%,
        rgba(8,18,36,.50) 28%,
        rgba(8,18,36,.05) 50%,
        rgba(8,18,36,.0) 60%
      );
    }
    /* 太陽光差し込み効果 */
    .hero-sun {
      position: absolute; inset: 0; z-index: 1;
      background: radial-gradient(
        ellipse 55% 65% at 70% 25%,
        rgba(255,248,220,.45) 0%,
        rgba(255,240,180,.20) 35%,
        transparent 65%
      );
    }
    /* コンテンツ */
    .hero-body {
      position: relative; z-index: 2;
      padding: 0 8vw; max-width: 700px;
    }
    .hero-catch {
      font-family: 'Noto Serif JP', serif;
      font-weight: 400;
      font-size: clamp(24px, 3.2vw, 46px);
      letter-spacing: .14em; line-height: 1.65;
      white-space: nowrap;
      background: linear-gradient(135deg, #ffffff 0%, #c8dff5 60%, #a0c4e8 100%);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
      filter: drop-shadow(0 2px 12px rgba(0,0,0,.5));
    }
    .hero-tagline {
      font-family: 'Noto Serif JP', serif;
      font-weight: 300;
      font-size: clamp(13px, 1.3vw, 16px);
      color: rgba(255,255,255,.85);
      letter-spacing: .16em;
      margin-top: 10px;
      text-shadow: 0 1px 8px rgba(0,0,0,.5);
    }
    .hero-line {
      width: 44px; height: 1px;
      background: rgba(255,255,255,.5);
      margin: 16px 0;
    }
    .hero-area {
      font-family: 'Noto Sans JP', sans-serif;
      font-size: 13px; color: rgba(255,255,255,.85);
      letter-spacing: .14em; margin-bottom: 6px;
    }
    .hero-services {
      font-family: 'Noto Sans JP', sans-serif;
      font-size: 12px; color: rgba(255,255,255,.7);
      letter-spacing: .1em;
    }
    /* 3アイコン */
    .hero-badges {
      display: flex; gap: 36px;
      margin-top: 40px;
    }
    .hero-badge {
      display: flex; flex-direction: column; align-items: center; gap: 8px;
    }
    /* アイコン個別アニメーション */
    @keyframes slideFromLeft {
      from { opacity:0; transform: translateX(-40px); }
      to   { opacity:1; transform: translateX(0); }
    }
    @keyframes slideFromBottom {
      from { opacity:0; transform: translateY(40px); }
      to   { opacity:1; transform: translateY(0); }
    }
    @keyframes slideFromRight {
      from { opacity:0; transform: translateX(40px); }
      to   { opacity:1; transform: translateX(0); }
    }
    @keyframes floatBadge {
      0%,100% { transform: translateY(0); }
      50%     { transform: translateY(-7px); }
    }
    .hero-badge:nth-child(1) { animation: slideFromLeft 0.9s 1.1s cubic-bezier(.22,1,.36,1) both; }
    .hero-badge:nth-child(2) { animation: slideFromBottom 0.9s 1.3s cubic-bezier(.22,1,.36,1) both; }
    .hero-badge:nth-child(3) { animation: slideFromRight 0.9s 1.5s cubic-bezier(.22,1,.36,1) both; }
    /* 入場完了後に浮遊アニメーションを追加するクラス */
    .hero-badge.float-on:nth-child(1) { animation: slideFromLeft 0.9s 1.1s cubic-bezier(.22,1,.36,1) both, floatBadge 3.2s 2.2s ease-in-out infinite; }
    .hero-badge.float-on:nth-child(2) { animation: slideFromBottom 0.9s 1.3s cubic-bezier(.22,1,.36,1) both, floatBadge 3.2s 2.7s ease-in-out infinite; }
    .hero-badge.float-on:nth-child(3) { animation: slideFromRight 0.9s 1.5s cubic-bezier(.22,1,.36,1) both, floatBadge 3.2s 3.2s ease-in-out infinite; }
    .hero-badge-icon {
      width: 44px; height: 44px;
      border: 1px solid rgba(255,255,255,.4);
      border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
    }
    .hero-badge-icon svg { width: 20px; height: 20px; fill: none; stroke: rgba(255,255,255,.9); stroke-width: 1.5; }
    .hero-badge-label {
      font-family: 'Noto Sans JP', sans-serif;
      font-size: 11px; color: rgba(255,255,255,.8);
      letter-spacing: .08em; white-space: nowrap;
    }

    @keyframes fadeUp {
      from { opacity:0; transform:translateY(20px); }
      to   { opacity:1; transform:translateY(0); }
    }

    /* ===== SECTION COMMON ===== */
    section { padding: 96px 0; }
    .inner { max-width: 1040px; margin: 0 auto; padding: 0 48px; }
    .sec-label { display: inline-flex; align-items: center; gap: 12px; margin-bottom: 12px; }
    .sec-label::before { content:''; width:24px; height:1px; background:var(--mid); }
    .sec-en { font-family:'Cormorant Garamond',serif; font-size:12px; letter-spacing:.5em; color:var(--mid); text-transform:uppercase; }
    .sec-title { font-family:'Noto Serif JP',serif; font-size:clamp(22px,3vw,32px); font-weight:600; color:var(--navy); letter-spacing:.16em; margin-bottom:12px; }
    .sec-desc { font-size:13.5px; color:var(--sub); line-height:2.1; }
    .reveal { opacity:0; transform:translateY(36px); transition:opacity .85s cubic-bezier(.22,1,.36,1), transform .85s cubic-bezier(.22,1,.36,1); }
    .reveal.visible { opacity:1; transform:translateY(0); }
    .reveal-left { opacity:0; transform:translateX(-52px); transition:opacity .85s cubic-bezier(.22,1,.36,1), transform .85s cubic-bezier(.22,1,.36,1); }
    .reveal-left.visible { opacity:1; transform:translateX(0); }
    .reveal-right { opacity:0; transform:translateX(52px); transition:opacity .85s cubic-bezier(.22,1,.36,1), transform .85s cubic-bezier(.22,1,.36,1); }
    .reveal-right.visible { opacity:1; transform:translateX(0); }
    .reveal-scale { opacity:0; transform:scale(.9); transition:opacity .9s cubic-bezier(.22,1,.36,1), transform .9s cubic-bezier(.22,1,.36,1); }
    .reveal-scale.visible { opacity:1; transform:scale(1); }
    .reveal.visible { opacity:1; transform:translateY(0); }
    .reveal-d1 { transition-delay:.12s; }
    .reveal-d2 { transition-delay:.24s; }
    .reveal-d3 { transition-delay:.36s; }

    /* ===== NEWS ===== */
    .news-section { background:#fff; border-bottom:1px solid var(--border); padding:72px 0; }
    .news-head { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:36px; }
    .news-more { font-size:12px; letter-spacing:.2em; color:var(--mid); border-bottom:1px solid var(--mid); padding-bottom:2px; }
    .news-list { display:grid; grid-template-columns:1fr; gap:0; border-top:1px solid var(--border); }
    .news-list li a { display:block; color:inherit; }
    .news-list li a:hover { opacity:.75; }
    
    
    .news-date { font-family:'Cormorant Garamond',serif; font-size:13px; color:#aaa; margin-bottom:4px; }
    .news-title-txt { font-size:13px; font-weight:700; line-height:1.6; color:var(--text); }
    @media(max-width:768px){ .news-list{ grid-template-columns:1fr; } }

    /* ===== STRENGTHS ===== */
    .strengths-section { background:var(--cream2); }
    /* Features大見出し */
    .features-bg-text {
      font-family:'Cinzel',serif;
      font-size:clamp(64px,10vw,140px);
      font-weight:600;
      letter-spacing:.12em; line-height:1;
      margin-bottom:-20px; display:block;
      background: linear-gradient(135deg, rgba(42,95,170,.18) 0%, rgba(106,159,212,.06) 60%, rgba(200,223,245,.04) 100%);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
      opacity:0; transform:translateX(-60px);
      transition:opacity 1.1s cubic-bezier(.22,1,.36,1), transform 1.1s cubic-bezier(.22,1,.36,1);
    }
    .features-bg-text.in-view { opacity:1; transform:translateX(0); }
    .features-main-title {
      font-family:'Noto Serif JP',serif;
      font-size:clamp(22px,3vw,36px); font-weight:600;
      color:var(--navy); letter-spacing:.16em;
      margin-bottom:48px; line-height:1.5;
      opacity:0; transform:translateX(-40px);
      transition:opacity 1s cubic-bezier(.22,1,.36,1) .3s, transform 1s cubic-bezier(.22,1,.36,1) .3s;
    }
    .features-main-title.in-view { opacity:1; transform:translateX(0); }
    /* カード */
    .strengths-grid { display:grid; grid-template-columns:1fr; gap:24px; margin-top:0; }
    .s-card {
      background:#fff;
      display:grid; grid-template-columns:1fr 380px;
      overflow:hidden; position:relative;
      transition:box-shadow .3s, border-left-color .3s;
      border-left:4px solid transparent;
    }
    .s-card:hover { box-shadow:0 8px 40px rgba(13,30,58,.1); border-left-color:var(--mid); }
    .s-card-right { padding:52px 56px; position:relative; }
    .s-num {
      font-family:'Cinzel',serif; font-size:100px; font-weight:600;
      color:rgba(13,30,58,.05); letter-spacing:-.04em; line-height:1;
      position:absolute; top:20px; right:24px;
    }
    .s-title { font-family:'Noto Serif JP',serif; font-size:20px; font-weight:600; color:var(--navy); letter-spacing:.08em; margin-bottom:16px; line-height:1.5; }
    .s-body { font-size:14px; color:var(--sub); line-height:2.1; max-width:480px; }
    .s-tags { display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; }
    .s-tag { font-size:11px; color:var(--mid); border:1px solid var(--pale); padding:3px 12px; letter-spacing:.1em; }
    .s-card-img { overflow:hidden; min-height:280px; }
    .s-card-img img { width:100%; height:100%; object-fit:cover; transition:transform .6s; display:block; }
    .s-card:hover .s-card-img img { transform:scale(1.05); }
    /* 偶数カードは画像左 */
    .s-card:nth-child(even) { grid-template-columns:380px 1fr; }
    .s-card:nth-child(even) .s-card-img { order:-1; }
    @media(max-width:900px){
      .s-card, .s-card:nth-child(even) { grid-template-columns:1fr; }
      .s-card:nth-child(even) .s-card-img { order:1; }
      .s-card-img { order:1; min-height:200px; }
      .s-card-img { min-height:220px; }
      .s-card-right { order:2; padding:36px 28px; }
      .s-num { font-size:72px; }
    }

    /* ===== SERVICES ===== */
    .svc-row { display:grid; grid-template-columns:repeat(2,1fr); gap:3px; margin-top:52px; }
    .svc-card { position:relative; padding:48px 40px; background:var(--navy); color:#fff; overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end; transition:transform .3s; min-height:280px; }
    .svc-card:hover { transform:translateY(-4px); }
    .svc-photo { position:absolute; inset:0; background-size:cover; background-position:center; opacity:.22; transition:opacity .4s, transform .6s; }
    .svc-card:hover .svc-photo { opacity:.32; transform:scale(1.04); }
    .svc-overlay { position:absolute; inset:0; background:linear-gradient(to top, rgba(6,15,30,.55) 15%, rgba(6,15,30,.05) 55%, transparent 100%); }
    .svc-content { position:relative; z-index:1; }
    .svc-en { font-family:'Cormorant Garamond',serif; font-size:11px; letter-spacing:.5em; color:var(--light); text-transform:uppercase; margin-bottom:14px; }
    .svc-title { font-family:'Noto Serif JP',serif; font-size:20px; font-weight:600; letter-spacing:.14em; margin-bottom:14px; line-height:1.5; }
    .svc-body { font-size:13px; color:rgba(255,255,255,.75); line-height:2; }

    /* ===== WORKS ===== */
    .works-strip { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; height:320px; overflow:hidden; margin-top:52px; }
    .w-item { position:relative; overflow:hidden; display:block; }
    .w-item img { width:100%; height:100%; object-fit:cover; transition:transform .6s; display:block; }
    .w-item:hover img { transform:scale(1.06); }
    .w-overlay { position:absolute; inset:0; background:linear-gradient(to top, rgba(6,15,30,.8) 0%, transparent 55%); opacity:.6; transition:opacity .4s; }
    .w-item:hover .w-overlay { opacity:.9; }
    .w-label { position:absolute; bottom:22px; left:22px; right:22px; }
    .w-cat { font-family:'Cinzel',serif; font-size:9px; letter-spacing:.4em; color:var(--light); display:block; margin-bottom:4px; }
    .w-name { font-size:12px; letter-spacing:.15em; color:#fff; font-family:'Noto Sans JP',sans-serif; }

    /* ===== CM ===== */
    .cm-section { background:linear-gradient(135deg,#060f1e 0%,#0d1e3a 60%,#1a3b6e 100%); padding:96px 0; }
    .cm-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
    .cm-label { display:inline-flex; align-items:center; gap:12px; margin-bottom:12px; }
    .cm-label::before { content:''; width:24px; height:1px; background:var(--light); }
    .cm-en { font-family:'Cormorant Garamond',serif; font-size:12px; letter-spacing:.5em; color:var(--light); text-transform:uppercase; }
    .cm-title { font-family:'Noto Serif JP',serif; font-size:clamp(20px,3vw,30px); font-weight:600; color:#fff; letter-spacing:.16em; margin-bottom:14px; line-height:1.6; }
    .cm-desc { font-size:13.5px; color:rgba(255,255,255,.65); line-height:2.2; }
    .cm-badge { display:inline-flex; align-items:center; gap:8px; background:rgba(42,95,170,.2); border:1px solid rgba(106,159,212,.3); color:var(--light); font-size:11px; letter-spacing:.16em; padding:6px 16px; margin-top:24px; }
    .cm-photo { border-radius:2px; overflow:hidden; box-shadow:0 16px 56px rgba(0,0,0,.5); }
    .cm-photo img { width:100%; height:auto; display:block; }
    .cm-caption { font-size:11px; color:rgba(255,255,255,.4); letter-spacing:.1em; margin-top:10px; text-align:center; }

    /* ===== SPLIT ===== */
    .split-section { background:var(--cream2); }
    .split-grid { display:block; max-width:760px; margin:0 auto; }
    .split-text { padding:80px 48px; display:flex; flex-direction:column; justify-content:center; }
    .split-img { overflow:hidden; min-height:460px; }
    .split-img img { width:100%; height:100%; object-fit:cover; display:block; }

    /* ===== INSTAGRAM ===== */
    .insta-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:3px; margin-top:44px; }
    .insta-item { aspect-ratio:1; overflow:hidden; display:block; position:relative; }
    .insta-item img { width:100%; height:100%; object-fit:cover; transition:transform .5s; display:block; }
    .insta-item:hover img { transform:scale(1.06); }
    .insta-ov { position:absolute; inset:0; background:rgba(13,30,58,.55); display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .3s; }
    .insta-item:hover .insta-ov { opacity:1; }
    .insta-ov svg { fill:#fff; width:24px; height:24px; }
    .insta-btn { display:inline-flex; align-items:center; gap:10px; background:linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888); color:#fff; font-size:13px; letter-spacing:.14em; padding:12px 32px; margin-top:28px; transition:opacity .2s; }
    .insta-btn:hover { opacity:.88; }

    /* ===== CTA ===== */
    .cta-section { background:linear-gradient(135deg,#060f1e 0%,#1a3b6e 100%); padding:96px 0; text-align:center; position:relative; overflow:hidden; }
    .cta-bg { position:absolute; inset:0; background-image:url('images/24087527_m.jpg'); background-size:cover; background-position:center; opacity:.07; }
    .cta-title { font-family:'Noto Serif JP',serif; font-size:clamp(20px,3vw,36px); font-weight:300; color:#fff; letter-spacing:.22em; margin-bottom:14px; position:relative; }
    .cta-sub { font-size:14px; color:rgba(255,255,255,.65); letter-spacing:.1em; margin-bottom:40px; position:relative; }
    .cta-tel { font-family:'Cinzel',serif; font-size:clamp(28px,4vw,44px); font-weight:600; color:#fff; letter-spacing:.06em; margin-bottom:8px; position:relative; }
    .cta-tel a { color:inherit; }
    .cta-hours { font-size:12px; color:rgba(255,255,255,.5); letter-spacing:.14em; margin-bottom:36px; position:relative; }
    .btn-cta { display:inline-block; padding:15px 52px; background:#fff; color:var(--navy); font-size:13px; letter-spacing:.2em; border:1px solid #fff; transition:all .3s; position:relative; }
    .btn-cta:hover { background:transparent; color:#fff; }

    /* ===== FOOTER ===== */
    footer { background:#060f1e; color:rgba(255,255,255,.65); padding:64px 0 32px; }
    .footer-inner { max-width:1040px; margin:0 auto; padding:0 48px; }
    .footer-top { display:flex; justify-content:space-between; align-items:flex-start; gap:56px; padding-bottom:44px; border-bottom:1px solid rgba(255,255,255,.07); }
    .f-logo .logo-ja { color:#fff; font-size:14px; }
    .f-logo .logo-en { color:var(--light); }
    .f-info { font-size:12px; line-height:2.1; margin-top:14px; }
    .f-nav { display:flex; gap:56px; }
    .f-nav-col h4 { font-family:'Cinzel',serif; font-size:10px; letter-spacing:.32em; color:var(--light); margin-bottom:16px; }
    .f-nav-col ul { list-style:none; }
    .f-nav-col li { margin-bottom:9px; }
    .f-nav-col a { font-size:12px; color:rgba(255,255,255,.55); transition:color .2s; }
    .f-nav-col a:hover { color:var(--light); }
    .footer-copy { text-align:center; padding-top:28px; font-size:11px; letter-spacing:.1em; color:rgba(255,255,255,.22); }

    /* ===== RESPONSIVE ===== */
    @media(max-width:900px){
      .strengths-grid { grid-template-columns:1fr 1fr; }
      .svc-row { grid-template-columns:1fr; }
      .works-strip { height:auto; grid-template-columns:1fr; gap:4px; }
      .w-item { aspect-ratio:16/9; min-height:220px; }
      .cm-grid { grid-template-columns:1fr; gap:36px; }
      .split-grid { grid-template-columns:1fr; }
      .split-text { padding:56px 36px; }
      .split-img { min-height:260px; }
      .insta-grid { grid-template-columns:repeat(2,1fr); }
    }
    @media(max-width:480px){
      .insta-grid { grid-template-columns:1fr; }
    }
    @media(max-width:768px){
      header { padding:0 20px; }
      nav { display:none; }
      .hamburger { display:flex; }
      .inner { padding:0 20px; }
      section { padding:64px 0; }
      .hero-body { padding:0 24px; }
      .hero-badges { gap:20px; }
      .strengths-grid { grid-template-columns:1fr; gap:2px; }
      .footer-top { flex-direction:column; }
      .f-nav { flex-wrap:wrap; gap:36px; }
      .cm-grid { padding:0 20px; }
      .svc-title { font-size:18px; }
      /* スマホ：ヒーロー画像を引きに */
      .hero-bg {
        background-position: 60% center !important;
        background-size: cover !important;
        background-repeat: no-repeat !important;
      }
      /* スマホ：キャッチ折り返し許可 */
      .hero-catch { white-space: normal; font-size: clamp(22px, 6vw, 32px); }
    }

/* スマホ固定フッターバー */
.sp-footer-bar { display: none; }
@media(max-width:768px){
  .sp-footer-bar {
    display: flex;
    position: fixed; bottom: 0; left: 0; right: 0;
    z-index: 998;
    background: var(--navy);
    border-top: 1px solid rgba(255,255,255,.1);
    padding-bottom: env(safe-area-inset-bottom);
  }
  .sp-footer-btn {
    flex: 1;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    padding: 10px 0;
    color: rgba(255,255,255,.85);
    text-decoration: none;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 10px; letter-spacing: .06em;
    gap: 4px;
    border-right: 1px solid rgba(255,255,255,.08);
    transition: background .2s;
  }
  .sp-footer-btn:last-child { border-right: none; }
  .sp-footer-btn:active { background: rgba(255,255,255,.1); }
  .sp-footer-btn svg { width: 20px; height: 20px; }
  .sp-footer-btn:nth-child(2) svg { stroke-width: 1.6; }
  footer { padding-bottom: calc(64px + env(safe-area-inset-bottom)); }
}

