/*
| テーマ「エレガント」— パールの薄紫と水色 × 細い2色の線 × 角の飾り
| 調べた結果（docs/デザイン調査.md）から:
|  - 背景は白でなく、ほんのり紫がかったパールの色（ピエール・エルメの考え方）
|  - 線は細く、ピンクから水色へ移り変わる2色の線。四隅のうち対角の2か所にだけ飾り
|  - 見出しは明朝（Shippori Mincho）に広めの文字間、英字は Cormorant Garamond のイタリック
|  - 名前・時間・料金は読みやすさを優先（数字は高さのそろった形）
*/
body[data-theme="elegant"] {
  --ink: #3d3446;
  --muted: #625871;
  --paper: #fbfaff;
  --line: #e6dff0;
  --second: #eaf7f7;
  --second-ink: #3f6d70;
  --t-lilac: #b89bd6;
  --t-lilac-soft: #f1ebf8;
  --t-aqua: #9fdcdf;
  --t-rose: #eab3dc;
  --t-edge: linear-gradient(135deg, #e4b1e8, #b9a6e4 45%, #9fdcdf);
  --t-latin: "Cormorant Garamond", "Times New Roman", serif;
  --display: "Shippori Mincho", var(--serif);
  --radius: 4px;

  background-color: #f4f1fa;
  background-image:
    radial-gradient(ellipse at 0% 0%, #fbe9f6 0, transparent 42%),
    radial-gradient(ellipse at 100% 35%, #e3f6f6 0, transparent 45%),
    radial-gradient(ellipse at 20% 100%, #ece5fa 0, transparent 50%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='320' viewBox='0 0 240 320'%3E%3Cg fill='none' stroke='%23ffffff' stroke-width='1.5' opacity='.9'%3E%3Cpath d='M20 320V120a100 100 0 0 1 200 0v200'/%3E%3Cpath d='M120 20v300M20 120h200'/%3E%3Cpath d='M120 20 60 120M120 20l60 100M120 20 35 70M120 20l85 50'/%3E%3C/g%3E%3C/svg%3E");
  background-size: auto, auto, auto, 240px 320px;
  background-attachment: fixed;
}
[data-theme="elegant"] .site-shell { background: #fbfaff99; box-shadow: 0 0 60px #b9a6e433; }
[data-theme="elegant"] .site-header,
[data-theme="elegant"] .home-intro,
[data-theme="elegant"] .home-visual,
[data-theme="elegant"] .price-intro,
[data-theme="elegant"] .site-footer { background: transparent; }
[data-theme="elegant"] .site-header { border-bottom: 1px solid transparent; border-image: var(--t-edge) 1; }
[data-theme="elegant"] .brand strong { font-weight: 600; letter-spacing: .12em; }
[data-theme="elegant"] .brand small { font-family: var(--t-latin); font-style: italic; font-weight: 500; font-size: .8125rem; letter-spacing: .08em; color: #6f5a8a; }
[data-theme="elegant"] .menu-toggle { background: transparent; border: 1px solid var(--line); color: #6f5a8a; }

/* 見出し */
[data-theme="elegant"] .eyebrow {
  font-family: var(--t-latin); font-style: italic; font-weight: 500;
  font-size: .9375rem; letter-spacing: .1em; color: #6f5a8a;
}
[data-theme="elegant"] .section-heading .eyebrow::before { width: 22px; background: var(--t-edge); opacity: 1; }
[data-theme="elegant"] .section-heading h2,
[data-theme="elegant"] .home-intro h1,
[data-theme="elegant"] .cast-detail h1,
[data-theme="elegant"] .guide-banner h2 { font-weight: 600; letter-spacing: .12em; font-feature-settings: "palt"; }
[data-theme="elegant"] .home-intro h1 span { background: linear-gradient(transparent 70%, #efe3f7 70%, #e2f4f4 92%, transparent 92%); }
[data-theme="elegant"] .section + .section { border-top: 0; background-image: var(--t-edge); background-size: 40% 1px; background-repeat: no-repeat; background-position: center top; }
[data-theme="elegant"] .section-new,
[data-theme="elegant"] .section-diary,
[data-theme="elegant"] .section-blog { background-color: #ffffff66; }

/* ボタン: 深い紫の面に細い光の線 */
[data-theme="elegant"] .button-primary,
[data-theme="elegant"] .bottom-nav a:last-child {
  background: linear-gradient(135deg, #8d6bb0, #6c5796); color: #fff; border-color: transparent;
  box-shadow: inset 0 0 0 1px #ffffff40, 0 6px 16px #6c579633;
}
[data-theme="elegant"] .button-primary, [data-theme="elegant"] .button-outline, [data-theme="elegant"] .contact-option { border-radius: 2px; letter-spacing: .08em; }
[data-theme="elegant"] .bottom-nav { background: #fbfaffef; border-top: 1px solid transparent; border-image: var(--t-edge) 1; border-radius: 0; }
[data-theme="elegant"] .bottom-nav a[aria-current]:not(:last-child) { background: var(--t-lilac-soft); color: #5d4a7d; }
[data-theme="elegant"] .bottom-nav a { border-radius: 2px !important; }

/* 2色の細い線の枠（面は白、縁だけ色が移り変わる）。角の飾りは左上と右下 */
[data-theme="elegant"] .cast-info,
[data-theme="elegant"] .course-card,
[data-theme="elegant"] .notice-card,
[data-theme="elegant"] .quick-links,
[data-theme="elegant"] .shift-box,
[data-theme="elegant"] .terms-fold {
  position: relative;
  border: 1px solid transparent; border-radius: 2px;
  background: linear-gradient(#fffffff2, #fffffff2) padding-box, var(--t-edge) border-box;
}
[data-theme="elegant"] .course-card::before,
[data-theme="elegant"] .course-card::after,
[data-theme="elegant"] .notice-card::before,
[data-theme="elegant"] .notice-card::after {
  content: ""; position: absolute; width: 14px; height: 14px; pointer-events: none;
  top: 5px; left: 5px; bottom: auto; right: auto;
  border-top: 1px solid #d6a8e0; border-left: 1px solid #d6a8e0; border-radius: 0; background: none;
  display: block;
}
[data-theme="elegant"] .course-card::after,
[data-theme="elegant"] .notice-card::after {
  top: auto; left: auto; right: 5px; bottom: 5px;
  border: 0; border-bottom: 1px solid #9fd6d9; border-right: 1px solid #9fd6d9;
}

/* ───── 人のカード ───── */
[data-theme="elegant"] .cast-card { background: transparent; }
[data-theme="elegant"] .cast-picture { border-radius: 2px; box-shadow: 0 10px 24px #6c579622; }
[data-theme="elegant"] .cast-picture::after { box-shadow: inset 0 0 0 1px #ffffff80; }
[data-theme="elegant"] .cast-info { margin-top: -1px; padding: 14px 9px 10px; text-align: center; overflow: hidden; }
/* 左上の柔らかい色のふくらみ */
[data-theme="elegant"] .cast-info::before {
  content: ""; position: absolute; top: -40px; left: -40px; width: 110px; height: 90px; border-radius: 50%;
  background: radial-gradient(closest-side, #e9c6ef, transparent); opacity: .7; pointer-events: none;
}
[data-theme="elegant"] .cast-info > * { position: relative; }
[data-theme="elegant"] .cast-info h3 { justify-content: center; font-family: var(--display); font-weight: 600; letter-spacing: .12em; }
[data-theme="elegant"] .cast-meta, [data-theme="elegant"] .cast-measurements { font-size: .6875rem; font-variant-numeric: tabular-nums; }
[data-theme="elegant"] .cast-tags { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; margin-top: 8px; }
[data-theme="elegant"] .cast-tags span { background: var(--t-lilac-soft); color: #5d4a7d; border-radius: 1px; padding: 3px 2px; text-align: center; }
[data-theme="elegant"] .cast-tagline { border-top: 1px solid var(--line); padding-top: 6px; margin-top: 8px; }
[data-theme="elegant"] .cast-info .shift-time,
[data-theme="elegant"] .cast-info .shift-state:not(.is-quiet) { display: none; }
[data-theme="elegant"] .photo-badge {
  display: inline-flex; align-items: center; gap: 6px;
  position: absolute; left: 8px; right: 8px; bottom: 8px; z-index: 2; justify-content: center;
  padding: 5px 8px; border-radius: 1px;
  background: #fbfaffd9; color: #4d3d68; font-size: .75rem; font-weight: 700; line-height: 1.4;
  backdrop-filter: blur(4px); box-shadow: inset 0 0 0 1px #ffffff;
}
[data-theme="elegant"] .photo-badge svg { width: 14px; height: 14px; stroke-width: 2; }
[data-theme="elegant"] .new-label {
  top: 8px; left: 8px; padding: 2px 10px; border-radius: 1px;
  background: #eef9e9; color: #4f6b45; font-family: var(--t-latin); font-size: .8125rem; font-weight: 500; letter-spacing: .06em;
}

/* ───── 出勤表 ───── */
[data-theme="elegant"] .schedule-caption { flex-wrap: wrap; }
[data-theme="elegant"] .caption-date {
  display: inline-flex; align-items: baseline; gap: 8px; margin: 0 0 0 -24px; padding: 6px 28px 6px 24px;
  background: linear-gradient(90deg, #efe6f8, #efe6f800); color: #3d3446;
  font-family: var(--t-latin); font-weight: 500; font-size: 2.25rem; line-height: 1.1; letter-spacing: .02em;
}
[data-theme="elegant"] .caption-date small { font-size: .875rem; letter-spacing: .1em; color: var(--muted); }
[data-theme="elegant"] .schedule-caption h3 { flex-basis: 100%; font-family: var(--display); font-weight: 600; letter-spacing: .1em; }
[data-theme="elegant"] .date-tabs > a { background: #ffffffb3; border-radius: 2px; }
[data-theme="elegant"] .date-tabs strong { font-family: var(--t-latin); font-size: 1.75rem; font-weight: 500; }
[data-theme="elegant"] .date-tabs a[aria-current],
[data-theme="elegant"] .filter-tabs a[aria-current] { background: linear-gradient(135deg, #8d6bb0, #6c5796); border-color: transparent; color: #fff; }
[data-theme="elegant"] .filter-tabs a { border-radius: 2px; background: #ffffffb3; }

/* ───── 人の詳細 ───── */
[data-theme="elegant"] .photo-stage, [data-theme="elegant"] .detail-photo { border-radius: 2px; }
[data-theme="elegant"] .photo-thumb { border-radius: 1px; }
[data-theme="elegant"] .photo-thumb.is-active { box-shadow: 0 0 0 1px #8d6bb0; }
[data-theme="elegant"] .faq summary { font-family: var(--display); font-weight: 600; letter-spacing: .06em; }

/* ───── 料金ページ（参考にいただいた「線だけで上品な料金表」の方向） ───── */
[data-theme="elegant"] .course-card { box-shadow: none; padding: 18px 20px; }
[data-theme="elegant"] .course-time {
  background: transparent; border: 1px solid transparent;
  background-image: linear-gradient(#fff, #fff), var(--t-edge); background-origin: border-box; background-clip: padding-box, border-box;
  color: #5d4a7d;
}
[data-theme="elegant"] .course-time strong { font-family: var(--t-latin); font-size: 1.625rem; font-weight: 500; }
[data-theme="elegant"] .course-time small { font-family: var(--t-latin); font-style: italic; letter-spacing: .1em; }
[data-theme="elegant"] .course-name { font-family: var(--display); font-weight: 600; letter-spacing: .04em; }
[data-theme="elegant"] .course-price, [data-theme="elegant"] .extension-list strong, [data-theme="elegant"] .option-tiles strong {
  font-family: var(--t-latin); font-weight: 500; letter-spacing: .02em;
}
[data-theme="elegant"] .course-price { font-size: 1.875rem; color: var(--ink); }
[data-theme="elegant"] .course-price small { color: #8d6bb0; }
[data-theme="elegant"] .extension-list li { background: #ffffffb3; border-radius: 2px; border-bottom: 1px solid var(--line); }
[data-theme="elegant"] .extension-list svg { color: #6c5796; }
[data-theme="elegant"] .extension-list strong { font-size: 1.5rem; }
[data-theme="elegant"] .option-tiles li { border-radius: 2px; background: #ffffffcc; border-color: var(--line); }
[data-theme="elegant"] .option-name { font-family: var(--display); letter-spacing: .06em; }
[data-theme="elegant"] .option-tiles strong { font-size: 1.375rem; color: #5d4a7d; }
[data-theme="elegant"] .notice-card h3 { font-family: var(--display); letter-spacing: .08em; }
[data-theme="elegant"] .notice-card h3 svg, [data-theme="elegant"] .terms-fold summary svg { color: #8d6bb0; }
[data-theme="elegant"] .text-rows > div { border-top: 1px solid var(--line); }

/* ───── その他 ───── */
[data-theme="elegant"] .quick-links strong { font-family: var(--t-latin); font-size: 2rem; font-weight: 500; color: #5d4a7d; }
[data-theme="elegant"] .quick-links svg { color: #8d6bb0; }
[data-theme="elegant"] .quick-links > a + a { border-left-color: var(--line); }
[data-theme="elegant"] .guide-banner { background: linear-gradient(160deg, #f3ecfa, #e9f7f7); }
[data-theme="elegant"] .footer-brand { font-family: var(--display); letter-spacing: .12em; }
[data-theme="elegant"] .age-dialog { border-top: 1px solid transparent; border-image: var(--t-edge) 1; border-radius: 2px; }
[data-theme="elegant"] .age-dialog h2 { font-family: var(--display); letter-spacing: .1em; }

[data-theme="elegant"] .course-price, [data-theme="elegant"] .course-time strong, [data-theme="elegant"] .extension-list strong,
[data-theme="elegant"] .option-tiles strong, [data-theme="elegant"] .caption-date, [data-theme="elegant"] .date-tabs strong,
[data-theme="elegant"] .quick-links strong { font-variant-numeric: lining-nums tabular-nums; }

/* 本日の出勤の枠（2026-09-19 YUTAKAさん「テンプレごとに変えて」）: 楕円のカメオ。細い二重線と上下の飾り */
[data-theme="elegant"] .rail-frame { border: 1px solid #b9a6d0; border-radius: 50%; padding: 10px; }
[data-theme="elegant"] .rail-frame::after { inset: -6px; border: 1px solid #8fd3d680; border-radius: 50%; }
[data-theme="elegant"] .rail-people-stage { border-radius: 50%; background: #efeaf6; }
[data-theme="elegant"] .rail-people-stage::after { inset: 7px; border-radius: 50%; border-color: #ffffffcc; }
[data-theme="elegant"] .rail-frame-ornament { font-size: 0; top: -13px; text-shadow: none; background: var(--paper); padding: 0 6px; }
[data-theme="elegant"] .rail-frame-ornament::before { content: "❦"; font-size: 1.125rem; color: #9a7bb8; }
[data-theme="elegant"] .rail-person-info { padding: 40px 34px 34px; background: linear-gradient(transparent, #3d3446a6); }
[data-theme="elegant"] .rail-person-info strong { font-size: 1.125rem; }

/* 人のカードの枠（2026-09-19 YUTAKAさん「全サイトに枠を」）: パールの白いカードに、薄紫の細い二重線 */
[data-theme="elegant"] .cast-card { display: flex; flex-direction: column; padding: 7px 7px 4px; background: #fffffff2; border: 1px solid #d9cde8; border-radius: 3px; outline: 1px solid #e9e2f2; outline-offset: 3px; box-shadow: 0 10px 24px #6c579614; }
[data-theme="elegant"] .cast-picture { box-shadow: none; }