/* ==========================================================
   Luapum style.css
   横スクロール軸デザイン（宵→夜明けBGループ / lerp連続スクロール）
   ========================================================== */
:root{
  --gold:       #c8a96e;
  --gold-light: #e8c98e;
  --navy:       #0d1626;
  --navy-mid:   #111d35;
  --navy-light: #162040;
  --text:       #d4cfc8;
  --text-dim:   rgba(212,207,200,0.45);
  --nav-w:      52px;
  --font-title: 'BIZ UDPMincho','Hiragino Mincho ProN',serif;
  --font-body:  'BIZ UDPMincho','Hiragino Mincho ProN',serif;
  --nav-open:   220px;
}

*, *::before, *::after{ box-sizing:border-box; margin:0; padding:0; }
html, body{ height:100%; overflow:hidden; }
body{
  background: var(--navy);
  color: var(--text);
  font-family:'BIZ UDPMincho','Hiragino Mincho ProN',serif;
  font-weight: 400;
}
body.standalone{ overflow:auto; }
body.is-mobile{ height:auto; overflow:visible; }
html.is-mobile{ height:auto; overflow-y:auto; overflow-x:hidden; }

/* ===== ローディング ===== */
#loader{position:fixed;inset:0;z-index:1000;background:#080b12;display:flex;align-items:center;justify-content:center;
  transition:opacity .8s ease, visibility .8s;}
#loader.hide{opacity:0;visibility:hidden;pointer-events:none;}
#loader-inner{display:flex;flex-direction:column;align-items:center;gap:14px;}
#loader-sub{font-family:'Cormorant Garamond',serif;font-size:clamp(13px,1.3vw,16px);letter-spacing:.35em;padding-left:.35em;
  color:rgba(200,169,110,.75);white-space:nowrap;margin-bottom:22px;opacity:0;animation:loLineIn .8s ease forwards .1s;}
#loader-poem{display:flex;flex-direction:column;align-items:center;gap:10px;}
.lo-line{font-family:var(--font-title);font-weight:700;font-size:clamp(26px,3.6vw,40px);letter-spacing:.12em;
  color:#e8c98e;line-height:1.5;opacity:0;transform:translateY(10px);white-space:nowrap;}
.lo-line:nth-child(1){animation:loLineIn .9s ease forwards .5s;}
.lo-line:nth-child(2){animation:loLineIn .9s ease forwards 1.15s;}
.lo-line:nth-child(3){animation:loLineIn .9s ease forwards 1.8s;}
@keyframes loLineIn{to{opacity:1;transform:translateY(0);}}

/* ===== 背景（宵→夜明けグラデーション）と月 ===== */
#bg{position:fixed;inset:0;z-index:0;}
#bg-moon{position:fixed;z-index:1;top:8%;left:22%;width:min(360px,26vw);aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle at 40% 40%,rgba(224,234,255,.5) 0%,rgba(190,210,255,.22) 30%,rgba(150,180,255,.07) 55%,transparent 72%);
  box-shadow:0 0 110px 36px rgba(180,200,255,.12);pointer-events:none;will-change:transform,opacity;}

/* ===== NAV ===== */
#nav{
  position:fixed; left:0; top:0; bottom:0; width:var(--nav-w);
  background:#0b0f1a;
  border-right:.5px solid rgba(200,169,110,.15);
  z-index:200; display:flex; flex-direction:column; align-items:center;
  transition:width .4s cubic-bezier(.4,0,.2,1); overflow:hidden;
}
#nav.open{ width:var(--nav-open); }

#nav-toggle{ width:52px; min-height:52px; display:flex; align-items:center; justify-content:center;
  cursor:pointer; border-bottom:.5px solid rgba(200,169,110,.1); flex-shrink:0; position:relative; z-index:2; }
.bar{ width:18px; height:1px; background:var(--gold); display:block; position:relative; transition:background .3s; }
.bar::before,.bar::after{ content:''; position:absolute; left:0; width:100%; height:1px; background:var(--gold); transition:transform .3s; }
.bar::before{ top:-5px; } .bar::after{ top:5px; }
#nav.open .bar{ background:transparent; }
#nav.open .bar::before{ transform:rotate(45deg) translate(3px,4px); }
#nav.open .bar::after{ transform:rotate(-45deg) translate(3px,-4px); }

#nav-brand{ writing-mode:vertical-rl; transform:rotate(180deg); font-family:'Cormorant Garamond',serif;
  font-size:13px; letter-spacing:.28em; color:var(--gold); flex:1; display:flex; align-items:center; justify-content:center;
  white-space:nowrap; opacity:.92; transition:opacity .2s; }
#nav.open #nav-brand{ opacity:0; pointer-events:none; }

#nav-menu{ position:absolute; top:52px; left:0; right:0; padding:12px 0; opacity:0; pointer-events:none; transition:opacity .25s .1s;
  background:#0b0f1a; }
#nav.open #nav-menu{ opacity:1; pointer-events:all; }
#nav-menu button{
  display:flex; align-items:center; justify-content:space-between; width:100%; padding:13px 24px;
  background:none; border:none; cursor:pointer; text-align:left;
  color:rgba(212,207,200,.7); font-family:'Cormorant Garamond',serif; font-size:15px; font-weight:400; letter-spacing:.1em;
  border-bottom:.5px solid rgba(200,169,110,.06); transition:color .2s,background .2s;
}
#nav-menu button:hover{ color:var(--gold-light); background:rgba(200,169,110,.04); }
#nav-menu button .num{ font-size:10px; color:var(--gold); opacity:.5; font-style:italic; }
.new-badge{ font-size:8px; background:var(--gold); color:var(--navy); padding:2px 5px; border-radius:2px; letter-spacing:.08em; margin-left:4px; font-family:sans-serif; }

#nav-bottom{ border-top:.5px solid rgba(200,169,110,.1); padding:10px 0 14px; flex-shrink:0; }
#nav-icons{ display:flex; flex-direction:column; align-items:center; gap:8px; padding:6px 0; }
#nav.open #nav-icons{ flex-direction:row; flex-wrap:wrap; padding:6px 16px; gap:6px; justify-content:flex-start; }
#nav-icons a{ width:28px; height:28px; display:flex; align-items:center; justify-content:center; color:var(--gold);
  opacity:.55; text-decoration:none; transition:opacity .2s; flex-shrink:0; }
#nav-icons a:hover{ opacity:1; }
#nav-icons a svg{ width:14px; height:14px; fill:currentColor; }

/* ===== 現在地表示（下部・グループ単位のドット） ===== */
#stepdots{position:fixed;left:var(--nav-w);right:0;bottom:44px;z-index:150;display:flex;justify-content:center;align-items:flex-end;
  gap:clamp(22px,4vw,48px);padding:0 24px;}
body.is-mobile #stepdots{display:none;}
.sd-line{position:absolute;left:8%;right:8%;bottom:4px;height:.5px;background:rgba(200,169,110,.25);z-index:-1;}
.sd-item{display:flex;flex-direction:column;align-items:center;gap:7px;cursor:pointer;background:none;border:none;}
.sd-dot{width:6px;height:6px;border-radius:50%;background:var(--btn-gold,var(--gold));opacity:.4;transition:all .3s,background .1s linear;}
.sd-label{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:14px;letter-spacing:.08em;
  color:var(--btn-gold,var(--gold));opacity:.4;transition:all .3s,color .1s linear;white-space:nowrap;}
.sd-item.active .sd-dot{opacity:1;transform:scale(1.7);}
.sd-item.active .sd-label{opacity:1;font-size:16px;}

/* ===== 最下部フッター帯（著作権・プライバシー、常時表示） ===== */
#site-footer{position:fixed;left:var(--nav-w);right:0;bottom:0;z-index:150;min-height:24px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;
  gap:16px;padding:0 18px;background:rgba(5,7,12,.55);white-space:nowrap;overflow:hidden;}
body.is-mobile #site-footer{
  left:0; height:auto; min-height:44px; flex-direction:column; align-items:center; justify-content:center;
  gap:2px; padding:8px 14px; white-space:normal; text-align:center;
}
.sf-disclaimer{font-size:14px;letter-spacing:.02em;color:rgba(255,255,255,.55);}
body.is-mobile .sf-disclaimer{display:block;font-size:14px;line-height:1.6;}
.sf-copy{font-family:var(--font-body);font-size:14px;letter-spacing:.02em;color:rgba(255,255,255,.65);flex-shrink:0;}
.sf-privacy{font-family:var(--font-body);font-size:14px;letter-spacing:.02em;color:rgba(200,169,110,.85);
  text-decoration:underline;text-underline-offset:2px;flex-shrink:0;}
body.is-mobile .panel{ padding-bottom:64px; }

/* ===== PROGRESS ===== */
#progress{ position:fixed; top:0; left:var(--nav-w); right:0; height:1px; background:rgba(200,169,110,.1); z-index:150; }
#progress-fill{ height:100%; background:var(--gold); width:0; }
#phase{position:fixed;top:16px;right:32px;z-index:150;font-family:'Cormorant Garamond',serif;font-size:12px;letter-spacing:.3em;color:rgba(200,169,110,.8);}

/* ===== SCROLLER / PANEL ===== */
#scroller{
  position:fixed; top:0; bottom:0; left:var(--nav-w); right:0;
  overflow-x:hidden; overflow-y:hidden;
  display:flex;
}
.panel{ flex:0 0 100vw; width:100vw; height:100%; position:relative; display:flex; overflow:hidden; background:transparent;
  justify-content:center; }
.panel-clone{ pointer-events:none; }

.sec-label{
  writing-mode:vertical-rl; transform:rotate(180deg); font-family:'Cormorant Garamond',serif;
  font-size:clamp(44px,6vw,72px); font-weight:600; font-style:italic; letter-spacing:.04em;
  color:var(--btn-gold,var(--gold)); transition:color .1s linear;
  padding:40px 18px; flex-shrink:0; width:88px; display:flex; align-items:center; justify-content:center;
  user-select:none; line-height:1;
}
.sec-body{
  flex:0 1 auto; padding:38px 46px; overflow-y:auto; scrollbar-width:thin; scrollbar-color:rgba(200,169,110,.2) transparent;
  display:flex; flex-direction:column; width:100%; max-width:820px; max-height:calc(100% - 56px); align-self:center;
  background:var(--panel-bg,transparent); border:.5px solid var(--panel-border,transparent);
  border-radius:10px;
  transition:background .15s linear,border-color .15s linear;
}
.sec-body::-webkit-scrollbar{ width:2px; }
.sec-body::-webkit-scrollbar-thumb{ background:rgba(200,169,110,.2); }
.sec-body.port-wide-body{ max-width:1300px; }

/* ===== HERO（写真背景） ===== */
#panel-hero, .panel-clone{ background-size:cover; background-position:center 30%; background-repeat:no-repeat; }
.hero-overlay{ position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(6,9,15,.12) 0%,rgba(6,9,15,.08) 45%,rgba(6,9,15,.72) 100%),
             linear-gradient(90deg,rgba(6,9,15,.5) 0%,transparent 45%); }
#hero-text{ position:absolute; bottom:60px; left:60px; z-index:2; animation:fadeUp 1.4s ease .6s both; }
@keyframes fadeUp{ from{opacity:0;transform:translateY(20px);} to{opacity:1;transform:translateY(0);} }
#hero-sub{ font-family:'Cormorant Garamond',serif; font-size:12px; letter-spacing:.4em; color:#e8e2d8;
  text-shadow:0 2px 12px rgba(0,0,0,.5); }
#scroll-hint{ position:absolute; right:40px; bottom:40px; z-index:2; font-family:'Cormorant Garamond',serif;
  font-size:15px; font-weight:400; color:rgba(232,201,142,.85); letter-spacing:.35em; display:flex; align-items:center; gap:10px; }
#scroll-hint-arrow{ font-size:18px; display:inline-block; animation:arrowNudge 1.6s ease-in-out infinite; }
@keyframes arrowNudge{ 0%,100%{transform:translateX(0);opacity:.6;} 50%{transform:translateX(10px);opacity:1;} }

/* ===== 共通タイポグラフィ（背景の明暗に追従） ===== */
.news-lead,.about-lead,.port-lead,.comm-lead,.cont-lead,.lp-lead,.lp-statement{color:var(--ink,var(--text));transition:color .1s linear;}
.news-title,.about-text,.news-body,.about-name{color:var(--ink,rgba(212,207,200,.85));transition:color .1s linear;font-family:var(--font-body);}
.comm-sub,.cont-sub,.news-date,.about-profile-lbl-text{color:var(--ink-dim,var(--text-dim));transition:color .1s linear;}
/* 本文・価格・説明・フォームはUDゴシックで統一。見出し・ブランド表現は明朝のまま維持 */
.news-body,.about-text,.comm-sub,.cont-sub,.comm-note,.price-item,.price-val,.lp-table td,
.values-list li,.fg input,.fg select,.fg textarea,.fg label,.form-errors p,.form-success,
.cont-sns,.no-content,.privacy-content p,.series-desc{
  font-family:var(--font-body);
}

/* ===== NEWS ===== */
.news-lead{ font-size:17px; margin-bottom:32px; }
.news-list{ display:flex; flex-direction:column; }
.news-item{ display:grid; grid-template-columns:88px 70px 1fr; gap:14px; align-items:baseline; padding:15px 0;
  border-bottom:.5px solid rgba(200,169,110,.08); text-decoration:none; color:inherit; transition:background .2s; }
.news-item:hover{ background:rgba(200,169,110,.03); }
.news-item:focus-visible{ outline:2px solid var(--btn-gold,var(--gold)); outline-offset:-2px; background:rgba(200,169,110,.05); }
.news-date{ font-family:'Cormorant Garamond',serif; font-size:14px; letter-spacing:.06em; }
.news-badge{ font-size:8px; letter-spacing:.1em; color:var(--btn-gold,var(--gold)); border:.5px solid rgba(200,169,110,.4);
  padding:2px 7px; border-radius:1px; text-align:center; white-space:nowrap; transition:color .1s linear; }
.news-content{ display:flex; flex-direction:column; gap:6px; }
.news-title{ font-size:16px; font-weight:400; line-height:1.7; }
a.news-title:hover{ color:var(--gold-light); }
.news-body{ font-size:16px; line-height:1.9; }
.news-thumb{ max-width:160px; border-radius:2px; margin-top:3px; }
.no-content{ font-size:16px; color:var(--ink-dim,var(--text-dim)); padding:16px 0; transition:color .1s linear; }

/* ===== Luapum（新設パネル群） ===== */
.lp-lead{ font-size:18px; margin-bottom:22px; }
.lp-statement{ font-size:clamp(21px,2vw,30px); line-height:1.85; font-weight:400; }
.lp-table{ width:100%; border-collapse:collapse; max-width:560px; }
.lp-table td{ padding:13px 0; border-bottom:.5px solid rgba(200,169,110,.08); font-size:16px; color:var(--ink-dim,var(--text-dim)); transition:color .1s linear; }
.lp-table td:first-child{ width:auto; min-width:120px; white-space:nowrap; padding-right:18px; letter-spacing:.05em;
  font-family:'Cormorant Garamond',serif; color:var(--btn-gold,var(--gold)); transition:color .1s linear; }

.philosophy-list{ display:flex; flex-direction:column; gap:20px; margin-top:8px; }
.philosophy-item{ border-left:1px solid rgba(200,169,110,.25); padding-left:16px; }
.philosophy-title{ font-family:'Cormorant Garamond',serif; font-size:14px; letter-spacing:.15em; font-style:italic;
  color:var(--btn-gold,var(--gold)); margin-bottom:6px; transition:color .1s linear; }
.values-list{ list-style:none; display:flex; flex-direction:column; gap:9px; }
.values-list li{ font-size:16px; color:var(--ink-dim,var(--text-dim)); line-height:1.9; padding-left:18px; position:relative; transition:color .1s linear; }
.values-list li::before{ content:'✦'; position:absolute; left:0; top:0; color:var(--btn-gold,var(--gold)); font-size:8px; opacity:.8; }

.lp-logo-body{ flex-direction:row; align-items:center; gap:44px; max-width:820px; }
.lp-logo-img{ flex-shrink:0; width:clamp(110px,13vw,160px); }
.lp-logo-img img{ width:100%; height:auto; display:block; filter:drop-shadow(0 0 20px rgba(200,169,110,.18)); }
.lp-logo-text{ flex:1; }
@media(max-width:768px){ .lp-logo-body{ flex-direction:column; align-items:flex-start; gap:20px; } .lp-logo-img{ width:100px; } }

/* Luapumカード群：各カード単体が読みやすさ保証パネルを持つ（sec-body自体は透明の入れ物に） */
.sec-body.lp-cards-body{ background:none; border:none; backdrop-filter:none; -webkit-backdrop-filter:none;
  max-width:820px; gap:26px; padding:40px 0; }
.lp-cards-body-logo{ align-items:center; }
.lp-logo-title{ display:block; width:min(420px,88%); height:auto; margin:0 auto 4px;
  filter:drop-shadow(0 0 24px rgba(200,169,110,.16)); }
.lp-card{
  background:var(--panel-bg,rgba(10,14,26,.6)); border:1px solid var(--panel-border,transparent);
  border-radius:10px; padding:30px 34px;
  transition:background .15s linear,border-color .15s linear; width:100%;
}
@media(max-width:768px){ .lp-card{ padding:24px 22px; } .sec-body.lp-cards-body{ max-width:none; } }

/* ===== ABOUT（ugimalu Profile / about.php実データ） ===== */
.about-lead{ font-size:16px; line-height:1.9; margin-bottom:28px; }
.about-profile{ display:flex; gap:28px; align-items:flex-start; }
.about-icon{ flex-shrink:0; width:88px; height:88px; border-radius:50%; overflow:hidden;
  border:1px solid rgba(200,169,110,.4); box-shadow:0 0 24px rgba(200,169,110,.15); background:var(--navy-light); }
.about-icon img{ width:100%; height:100%; object-fit:cover; }
.about-name{ font-family:'Cormorant Garamond',serif; font-size:19px; letter-spacing:.2em; margin-bottom:10px; }
.about-profile-lbl{ font-family:'Cormorant Garamond',serif; font-size:12px; color:var(--btn-gold,var(--gold)); letter-spacing:.16em; font-style:italic; margin-bottom:8px; transition:color .1s linear; }
.about-text{ font-size:16px; line-height:1.95; letter-spacing:.02em; }
.about-shop{ margin-top:18px; }
@media(max-width:768px){ .about-profile{ flex-direction:column; } }

/* ===== PORTFOLIO ===== */
.port-lead{ font-size:17px; letter-spacing:.05em; margin-bottom:20px; line-height:1.85; }
.series-grid{ display:flex; flex-wrap:wrap; align-items:stretch; gap:18px; margin-bottom:20px; }
.series-card{ flex:1 1 200px; max-width:240px; display:flex; flex-direction:column; border-radius:6px; overflow:hidden; cursor:pointer;
  border:.5px solid rgba(200,169,110,.14); transition:border-color .3s,transform .3s; background:var(--navy-light);
  text-decoration:none; color:inherit; }
.series-card:hover{ border-color:rgba(200,169,110,.4); transform:translateY(-2px); }
.series-card:focus-visible{ outline:2px solid var(--btn-gold,var(--gold)); outline-offset:2px; }
.series-cover{ width:100%; aspect-ratio:16/10; overflow:hidden; background:var(--navy-mid); flex-shrink:0; }
.series-cover img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s; user-select:none; }
.series-card:hover .series-cover img{ transform:scale(1.05); }
.series-body{ padding:14px 16px 18px; flex:1; display:flex; flex-direction:column; }
.series-name{ font-family:'Cormorant Garamond',serif; font-size:16px; font-weight:600; color:var(--btn-gold,var(--gold));
  letter-spacing:.04em; margin-bottom:6px; transition:color .1s linear; }
.series-desc{ font-size:12.5px; letter-spacing:.03em; line-height:1.65; color:var(--ink-dim,var(--text-dim)); transition:color .1s linear; }

/* シリーズごとの作品一覧（別窓の単体ページで表示、Flexbox） */
.standalone-wrap.port-standalone-wrap{ max-width:1300px; }
.port-group-label{ font-family:'Cormorant Garamond',serif; font-size:22px; letter-spacing:.06em; font-style:italic;
  color:var(--ink,var(--text)); margin:4px 0 20px; padding-bottom:12px; border-bottom:.5px solid rgba(200,169,110,.18);
  display:flex; align-items:center; gap:18px; transition:color .1s linear; }
.port-group-close{ background:none; border:.5px solid var(--btn-border,rgba(200,169,110,.4)); color:var(--btn-gold,var(--gold));
  font-size:13px; cursor:pointer; font-family:'Cormorant Garamond',serif; letter-spacing:.05em; padding:6px 16px;
  border-radius:3px; transition:color .1s linear,border-color .1s linear,background .2s; }
.port-group-close:hover{ background:rgba(200,169,110,.1); }
.port-group-close:focus-visible{ outline:2px solid var(--btn-gold,var(--gold)); outline-offset:2px; }
.port-items-grid{ display:flex; flex-wrap:wrap; gap:16px; margin-bottom:8px; }
.port-item-card{ flex:1 1 200px; max-width:240px; aspect-ratio:3/4; border-radius:4px; border:.5px solid rgba(200,169,110,.14);
  overflow:hidden; cursor:pointer; transition:border-color .3s,transform .3s; }
.port-item-card:hover{ border-color:rgba(200,169,110,.4); transform:translateY(-2px); }
.port-item-card:focus-visible{ outline:2px solid var(--btn-gold,var(--gold)); outline-offset:2px; }
.port-item-card img{ width:100%; height:100%; object-fit:cover; pointer-events:none; transition:transform .4s; }
.port-item-card:hover img{ transform:scale(1.06); }
@media(max-width:640px){ .port-item-card{ flex:1 1 44%; max-width:none; } }

/* Lightbox（著作権保護つき） */
#lightbox{ position:fixed; inset:0; z-index:500; display:none; align-items:center; justify-content:center; }
#lightbox.open{ display:flex; }
#lightbox-overlay{ position:absolute; inset:0; background:rgba(6,9,15,.92); }
#lightbox-inner{ position:relative; max-width:90vw; max-height:90vh; z-index:1; }
#lightbox-img{ max-width:90vw; max-height:82vh; object-fit:contain; display:block; user-select:none; pointer-events:none; }
#lightbox-watermark{ position:absolute; inset:0; pointer-events:none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='120'%3E%3Ctext x='0' y='60' font-family='Georgia,serif' font-size='20' fill='rgba(255,255,255,0.16)' transform='rotate(-28 120 60)'%3E%40ugimalu%3C/text%3E%3C/svg%3E");
  background-repeat:repeat; }
#lightbox-close{ position:absolute; top:-32px; right:0; background:none; border:none; color:var(--gold); font-size:18px; cursor:pointer; opacity:.75; transition:opacity .2s; }
#lightbox-close:hover{ opacity:1; }

/* ===== COMMISSION ===== */
.comm-lead{ font-size:17px; margin-bottom:6px; }
.comm-sub{ font-size:16px; line-height:1.95; margin-bottom:24px; }
.price-lbl{ font-family:'Cormorant Garamond',serif; font-size:12px; letter-spacing:.2em; color:var(--btn-gold,var(--gold)); font-style:italic; margin-bottom:12px; transition:color .1s linear; }

/* Commission 価格表（table形式） */
.price-table-wrap{ overflow-x:auto; overflow-y:hidden; border-radius:8px; border:1px solid var(--panel-border,rgba(200,169,110,.2)); }
.price-table2{ width:100%; min-width:480px; border-collapse:collapse; }
.price-table2 thead tr{ background:var(--btn-gold,var(--gold)); }
.price-table2 thead th{ padding:14px 16px; font-size:14px; font-weight:700; text-align:left;
  color:var(--ink-inverse,#0b0f1a); letter-spacing:.04em; }
.price-table2 thead th.pt-price{ text-align:right; }
.price-table2 tbody tr{ border-bottom:1px solid rgba(200,169,110,.14); transition:background .15s; }
.price-table2 tbody tr:last-child{ border-bottom:none; }
.price-table2 tbody tr:hover{ background:rgba(200,169,110,.08); }
.price-table2 th, .price-table2 td{ padding:14px 16px; font-size:15px; font-weight:400;
  color:var(--ink,var(--text)); text-align:left; transition:color .1s linear; }
.price-table2 th.pt-name{ font-weight:700; white-space:nowrap; }
.price-table2 td.pt-desc{ color:var(--ink-dim,var(--text-dim)); font-size:14px; }
.price-table2 td.pt-price{ text-align:right; font-family:var(--font-title); font-weight:700; font-size:16px;
  white-space:nowrap; color:var(--ink,var(--text)); }
@media(max-width:640px){
  .price-table2 td.pt-desc{ display:none; }
  .price-table2 thead th.pt-desc{ display:none; }
}
.comm-note{ font-size:14px; margin-top:14px; line-height:1.95; color:var(--ink-dim,var(--text-dim)); transition:color .1s linear; }

/* ===== LINKS ===== */
.link-cat-badge{ font-family:'Cormorant Garamond',serif; font-size:11px; letter-spacing:.16em; font-style:italic;
  color:var(--btn-gold,var(--gold)); margin-bottom:8px; transition:color .1s linear; }
.link-group-label{ font-family:'Cormorant Garamond',serif; font-size:15px; letter-spacing:.1em; font-style:italic;
  color:var(--btn-gold,var(--gold)); margin:32px 0 16px; padding-bottom:8px; border-bottom:.5px solid rgba(200,169,110,.18);
  transition:color .1s linear; }
.link-group-label:first-of-type{ margin-top:0; }

/* MashMosh単独強調カード */
.link-featured{
  display:flex; align-items:center; gap:28px; background:var(--panel-bg,rgba(10,14,26,.6));
  border:1px solid var(--panel-border,transparent); border-radius:10px; padding:26px 30px; margin-bottom:36px;
  transition:background .15s linear,border-color .15s linear;
}
.link-featured-photo{ flex-shrink:0; display:block; width:96px; height:96px; border-radius:50%; overflow:hidden;
  border:1px solid rgba(200,169,110,.4); box-shadow:0 0 20px rgba(200,169,110,.15); }
.link-featured-photo img{ width:100%; height:100%; object-fit:cover; }
.link-featured-body{ flex:1; min-width:0; }
.link-name{ font-size:18px; font-weight:700; color:var(--ink,var(--text)); margin-bottom:6px; transition:color .1s linear; }
.link-desc{ font-size:14px; line-height:1.8; color:var(--ink-dim,var(--text-dim)); transition:color .1s linear; }

/* カテゴリ別グリッド */
.link-grid{ display:flex; flex-wrap:wrap; gap:20px; }
.link-card{
  flex:1 1 220px; max-width:260px; background:var(--panel-bg,rgba(10,14,26,.6));
  border:1px solid var(--panel-border,transparent); border-radius:10px; padding:22px 20px; text-align:center;
  transition:background .15s linear,border-color .15s linear;
}
.link-card-photo{ display:block; width:64px; height:64px; margin:0 auto 14px; border-radius:50%; overflow:hidden;
  border:1px solid rgba(200,169,110,.35); }
.link-card-photo img{ width:100%; height:100%; object-fit:cover; }
.link-card-name{ font-size:15px; font-weight:700; color:var(--ink,var(--text)); margin-bottom:6px; transition:color .1s linear; }
.link-card-desc{ font-size:13px; line-height:1.75; color:var(--ink-dim,var(--text-dim)); margin-bottom:14px; transition:color .1s linear; }

.link-socials{ display:flex; justify-content:center; gap:10px; }
.link-featured .link-socials{ justify-content:flex-start; margin-top:12px; }
.link-socials a{ width:30px; height:30px; display:flex; align-items:center; justify-content:center;
  color:var(--btn-gold,var(--gold)); border:1px solid var(--btn-border,rgba(200,169,110,.35)); border-radius:50%;
  transition:color .1s linear,border-color .1s linear,background .2s; }
.link-socials a:hover{ background:rgba(200,169,110,.12); }
.link-socials a:focus-visible{ outline:2px solid var(--btn-gold,var(--gold)); outline-offset:2px; }
.link-socials a svg{ width:14px; height:14px; fill:currentColor; }

.link-featured-photo:focus-visible, .link-card-photo:focus-visible{
  outline:2px solid var(--btn-gold,var(--gold)); outline-offset:2px;
}

@media(max-width:640px){
  .link-featured{ flex-direction:column; text-align:center; }
  .link-featured .link-socials{ justify-content:center; }
  .link-card{ flex:1 1 100%; max-width:none; }
}

/* ===== CONTACT ===== */
.cont-lead{ font-size:17px; margin-bottom:4px; }
.cont-sub{ font-size:16px; line-height:1.9; margin-bottom:22px; }
.cont-alert{ border:.5px solid rgba(200,169,110,.2); padding:12px 16px; margin-bottom:22px; background:rgba(200,169,110,.02); }
.cont-alert p{ font-size:12.5px; color:var(--ink-dim,rgba(212,207,200,.55)); line-height:1.95; transition:color .1s linear; }
.cont-alert strong{ color:var(--btn-gold,var(--gold)); font-weight:400; display:block; margin-bottom:4px; transition:color .1s linear; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.fg{ margin-bottom:18px; }
.fg label{ display:block; font-size:14px; color:var(--btn-gold,var(--gold)); letter-spacing:.05em;
  font-weight:700; margin-bottom:7px; transition:color .1s linear; }
.fg label span{ color:var(--ink-dim,rgba(212,207,200,.35)); font-size:11px; margin-left:3px; font-weight:400; transition:color .1s linear; }
.fg input, .fg select, .fg textarea{ width:100%; background:var(--panel-bg,rgba(255,255,255,.04)); border:1px solid var(--panel-border,rgba(200,169,110,.25));
  color:var(--ink,var(--text)); font-size:16px; font-weight:400; padding:13px 14px; border-radius:3px;
  min-height:46px; outline:none; transition:border-color .2s,color .1s linear,background .15s linear; }
.fg input::placeholder, .fg textarea::placeholder{ color:var(--ink-dim,rgba(212,207,200,.4)); }
.fg input:focus, .fg select:focus, .fg textarea:focus{
  border-color:var(--btn-gold,var(--gold)); outline:2px solid var(--btn-gold,var(--gold)); outline-offset:1px;
}
.fg textarea{ min-height:110px; resize:vertical; }
.fg select{ appearance:none; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23c8a96e'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center; padding-right:32px; }
.form-errors{ border:1px solid rgba(220,110,110,.6); padding:13px 16px; margin-bottom:18px; background:rgba(200,100,100,.1); border-radius:4px; }
.form-errors p{ font-size:15px; color:#ffb3b3; line-height:1.9; }
.form-success{ border:1px solid rgba(110,220,160,.6); padding:15px 18px; background:rgba(100,200,150,.1); border-radius:4px;
  font-size:16px; color:var(--ink,rgba(212,207,200,.8)); line-height:1.9; transition:color .1s linear; }
.cont-sns{ margin-top:18px; font-size:14px; color:var(--ink-dim,var(--text-dim)); transition:color .1s linear; }
.cont-sns a{ color:var(--btn-gold,var(--gold)); text-decoration:underline; text-underline-offset:2px; transition:color .1s linear; }
.cont-sns a:hover, .cont-sns a:focus-visible{ color:var(--gold-light); }

/* ===== BUTTONS ===== */
.btn-send{ padding:14px 40px; min-height:48px; background:transparent; border:1.5px solid var(--btn-border,var(--gold)); color:var(--btn-gold,var(--gold));
  font-family:'Cormorant Garamond',serif; font-size:14px; letter-spacing:.26em; cursor:pointer; border-radius:3px; transition:background .3s,color .1s linear,border-color .1s linear; }
.btn-send:hover{ background:rgba(200,169,110,.14); color:var(--gold-light); }
.btn-send:focus-visible{ outline:2px solid var(--btn-gold,var(--gold)); outline-offset:2px; }
.btn-outline{ display:inline-block; padding:11px 30px; min-height:44px; box-sizing:border-box; border:1.5px solid var(--btn-border,rgba(200,169,110,.4));
  color:var(--btn-gold,var(--gold)); font-family:'Cormorant Garamond',serif; font-size:13px; letter-spacing:.16em;
  text-decoration:none; border-radius:3px; transition:background .3s,border-color .3s,color .1s linear; display:inline-flex; align-items:center; }
.btn-outline:hover{ background:rgba(200,169,110,.1); border-color:var(--gold); }
.btn-outline:focus-visible, .sd-item:focus-visible, #nav-toggle:focus-visible, .g-item:focus-visible{
  outline:2px solid var(--btn-gold,var(--gold)); outline-offset:2px;
}

/* ===== STANDALONE（単体アクセス時） ===== */
.standalone-wrap{ max-width:820px; margin:0 auto; padding:56px 36px 76px; }
.sec-label-h{ font-family:'Cormorant Garamond',serif; font-size:44px; font-weight:600; font-style:italic;
  color:var(--gold); letter-spacing:.06em; margin-bottom:36px; border-bottom:.5px solid rgba(200,169,110,.15); padding-bottom:14px; }
.privacy-content h2{ font-family:'Cormorant Garamond',serif; font-size:15px; color:var(--gold); letter-spacing:.1em; margin:26px 0 9px; font-weight:400; }
.privacy-content p{ font-size:16px; color:rgba(212,207,200,.75); line-height:2; margin-bottom:8px; }
.privacy-content a{ color:var(--gold); text-decoration:underline; text-underline-offset:2px; }
.privacy-date{ margin-top:28px; font-size:10px; color:var(--text-dim); }

/* ===== RESPONSIVE / モバイル（縦積みの別体験） ===== */
@media(max-width:768px){
  :root{ --nav-w:0px; }
  .sec-label{ writing-mode:horizontal-tb; transform:none; font-size:26px; width:auto; padding:26px 20px 6px; border-right:none; border-left:none; justify-content:flex-start; }
  .sec-body{ padding:24px 20px 40px; max-width:none; align-self:stretch; width:100%; max-height:none; }
  .form-row{ grid-template-columns:1fr; }
  .series-grid{ grid-template-columns:repeat(2,1fr); }
  .news-item{ grid-template-columns:1fr; gap:4px; }
  #panel-hero, .panel-clone{ background-size:contain; background-position:center center; background-color:var(--navy-mid); }
}

body.is-mobile #nav{ position:fixed; left:0; top:0; bottom:auto; width:100%; height:48px; flex-direction:row;
  border-right:none; border-bottom:.5px solid rgba(200,169,110,.15); justify-content:space-between; padding:0 4px; overflow:visible; }
body.is-mobile #nav-brand{ writing-mode:horizontal-tb; transform:none; font-size:14px; letter-spacing:.08em; white-space:nowrap; }
body.is-mobile #nav-bottom{ display:flex; margin-left:auto; padding:0; border-top:none; flex-shrink:1; min-width:0; overflow-x:auto; scrollbar-width:none; }
body.is-mobile #nav-bottom::-webkit-scrollbar{ display:none; }
body.is-mobile #nav-icons{ flex-direction:row; padding:0; gap:4px; }
body.is-mobile #nav-icons a{ width:30px; height:30px; }
body.is-mobile #nav-icons a svg{ width:14px; height:14px; }
body.is-mobile #nav-menu{ left:auto; right:0; top:48px; width:200px; height:auto; border-left:.5px solid rgba(200,169,110,.15); }
body.is-mobile #progress{ left:0; top:48px; }
body.is-mobile #scroller{ position:static; overflow:visible; height:auto; margin-top:48px; display:block; }
body.is-mobile .panel{ width:100%; height:auto; min-height:100vh; flex-direction:column; justify-content:flex-start; }
body.is-mobile #hero-text{ position:static; padding:56px 20px; }
body.is-mobile #scroll-hint{ display:none; }

/* ===== モーション低減設定への対応 ===== */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration:0.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.001ms !important;
    scroll-behavior:auto !important;
  }
  #scroll-hint-arrow{ animation:none !important; }
  #hero-text{ animation:none !important; opacity:1; transform:none; }
  .lo-line{ animation:none !important; opacity:1; transform:none; }
  #loader-sub{ animation:none !important; opacity:1; }
}
