/*
 * F1.5 THEME の回のページ（template-event-theme.php）。
 * 文字より先に、図と数字で伝える。色と書体はトークンから。
 */

.f15-theme { color: var(--f15-ink); background: var(--f15-paper); }
.f15-theme .f15-wrap { max-width: 1040px; }
.f15-theme h1, .f15-theme h2 { font-family: var(--f15-serif); font-weight: 500; margin: 0; }
.f15-theme .f15-eyebrow { font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--f15-gold); margin: 0 0 10px; }
.f15-theme-num { font-family: var(--f15-serif); font-weight: 500; font-variant-numeric: lining-nums; letter-spacing: -.02em; line-height: 1; }

/* ---- hero ---- */
.f15-theme-hero { position: relative; isolation: isolate; background: var(--f15-feature); color: var(--f15-feature-ink); padding: clamp(48px, 8vw, 96px) 0 clamp(40px, 6vw, 72px); overflow: hidden; }
.f15-theme-hero .f15-wrap { max-width: var(--f15-maxw); }
.f15-theme-hero__grid { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: clamp(24px, 4vw, 56px); align-items: center; }
.f15-theme-hero__visual { display: flex; align-items: center; gap: clamp(16px, 2.5vw, 32px); }
/* 写真は切らない。縦の枠（2:3）にそのまま入れて、静かに切り替わる。 */
.f15-theme-hero__photo { position: relative; flex: 0 0 auto; width: clamp(220px, 20vw, 270px); aspect-ratio: 2 / 3; border-radius: 8px; overflow: hidden; background: var(--f15-feature-soft); box-shadow: 0 30px 60px rgba(0,0,0,.35); }
.f15-theme-hero__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 20%; opacity: 0; transition: opacity 1.8s ease; }
.f15-theme-hero__photo img.is-on { opacity: 1; }
/* 日付を先に、大きく。数字・曜日の丸・年と時間と場所の一行。 */
.f15-theme-hero__date { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin: 4px 0 22px; }
.f15-theme-hero__day { font-family: var(--f15-serif); font-weight: 500; font-size: clamp(56px, 7.4vw, 92px); line-height: .95; letter-spacing: -.02em; font-variant-numeric: lining-nums; color: var(--f15-feature-ink); }
.f15-theme-hero__dow { display: inline-grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--f15-gold); border-radius: 50%; font-family: var(--f15-serif); font-size: 17px; color: var(--f15-gold); }
.f15-theme-hero__when { flex-basis: 100%; font-size: 14px; letter-spacing: .08em; color: #cdbcb7; }
.f15-theme-hero h1 { font-size: clamp(28px, 3.4vw, 42px); line-height: 1.25; color: var(--f15-feature-ink); }
.f15-theme-hero h1 em { font-style: normal; color: var(--f15-feature-sub); }
.f15-theme-hero__lead { margin: 18px 0 0; font-size: 15px; line-height: 1.9; color: #cdbcb7; max-width: 34em; }
.f15-theme-hero__meta { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 0; padding: 0; list-style: none; }
.f15-theme-hero__meta li { font-size: 13px; padding: 7px 14px; border: 1px solid var(--f15-feature-line); border-radius: 999px; color: var(--f15-feature-ink); }
.f15-theme-hero__meta li strong { font-family: var(--f15-serif); font-weight: 500; font-size: 15px; }
.f15-theme-hero__actions { margin: 26px 0 0; display: flex; gap: 12px; flex-wrap: wrap; }
.f15-theme-hero .f15-btn { background: var(--f15-rose); color: #fff; }
.f15-theme-hero .f15-btn:hover { background: var(--f15-rose-deep); }

/* 1人を囲む3人の図（SVG） */
.f15-theme-figure { flex: 0 0 auto; width: clamp(200px, 18vw, 250px); display: block; }
.f15-theme-figure .orbit { fill: none; stroke: var(--f15-feature-line); stroke-dasharray: 3 7; }
.f15-theme-figure .ray { stroke: var(--f15-gold); stroke-width: 1.2; opacity: .85; }
.f15-theme-figure .you { fill: var(--f15-paper); }
.f15-theme-figure .you-n { font-family: var(--f15-serif); font-size: 56px; fill: var(--f15-ink); }
.f15-theme-figure .you-l { font-family: var(--f15-sans); font-size: 12px; letter-spacing: .2em; fill: var(--f15-ink-muted); }
.f15-theme-figure .ph { fill: var(--f15-feature-soft); stroke: var(--f15-gold); stroke-width: 1.2; }
.f15-theme-figure .ph-l { font-family: var(--f15-sans); font-size: 12px; letter-spacing: .14em; fill: var(--f15-feature-ink); }
.f15-theme-figure .ph-n { font-family: var(--f15-serif); font-size: 22px; fill: var(--f15-gold); }

/* ---- 数字 ---- */
.f15-theme-numbers { border-bottom: 1px solid var(--f15-line); background: #fff; }
.f15-theme-numbers__row { display: grid; grid-template-columns: repeat(4, 1fr); }
.f15-theme-numbers__item { padding: clamp(22px, 3vw, 34px) 12px; text-align: center; border-left: 1px solid var(--f15-line); }
.f15-theme-numbers__item:first-child { border-left: 0; }
.f15-theme-numbers__item .f15-theme-num { font-size: clamp(40px, 6vw, 64px); color: var(--f15-ink); }
.f15-theme-numbers__item .f15-theme-num small { font-size: .38em; margin-left: 4px; color: var(--f15-rose); }
.f15-theme-numbers__item p { margin: 8px 0 0; font-size: 13px; letter-spacing: .12em; color: var(--f15-ink-muted); }

/* ---- 30分の文字盤 ---- */
.f15-theme-flow { padding: clamp(48px, 7vw, 80px) 0; }
.f15-theme-flow__grid { display: grid; grid-template-columns: minmax(0, 380px) 1fr; gap: clamp(28px, 6vw, 72px); align-items: center; }
.f15-theme-flow h2 { font-size: clamp(22px, 3.2vw, 30px); line-height: 1.5; }
.f15-theme-flow__text { margin: 16px 0 0; font-size: 15px; line-height: 2; color: var(--f15-ink-muted); }
.f15-theme-flow__cap { margin: 22px 0 0; display: flex; flex-wrap: wrap; gap: 10px 28px; font-size: 14px; color: var(--f15-ink-muted); }
.f15-theme-flow__cap b { font-family: var(--f15-serif); font-weight: 500; font-size: 20px; color: var(--f15-ink); margin-right: 4px; }
.f15-theme-dial { display: block; width: 100%; max-width: 380px; margin: 0 auto; }
.f15-theme-dial .base { fill: none; stroke: var(--f15-paper-soft); stroke-width: 14; }
.f15-theme-dial .shoot { fill: none; stroke: var(--f15-rose); stroke-width: 14; stroke-linecap: butt; }
.f15-theme-dial .tick { stroke: var(--f15-line); stroke-width: 1; }
.f15-theme-dial .tick.is-long { stroke: var(--f15-gold); stroke-width: 1.4; }
.f15-theme-dial .lens { fill: var(--f15-paper); stroke: var(--f15-gold); stroke-width: 1.2; }
.f15-theme-dial .lens-n { font-family: var(--f15-serif); font-size: 12px; fill: var(--f15-gold); }
.f15-theme-dial .big { font-family: var(--f15-serif); font-size: 64px; fill: var(--f15-ink); }
.f15-theme-dial .unit { font-size: 22px; fill: var(--f15-rose); }
.f15-theme-dial .sub { font-family: var(--f15-sans); font-size: 12px; letter-spacing: .12em; fill: var(--f15-ink-muted); }

/* ---- ひとつの世界観（写真は切らない） ---- */
.f15-theme-world { background: var(--f15-feature); color: var(--f15-feature-ink); padding: clamp(40px, 6vw, 72px) 0; }
.f15-theme-world__grid { display: grid; grid-template-columns: minmax(0, 420px) 1fr; gap: clamp(28px, 6vw, 72px); align-items: center; }
.f15-theme-world__fig { margin: 0; aspect-ratio: 2 / 3; overflow: hidden; border-radius: 6px; background: var(--f15-feature-soft); }
.f15-theme-world__fig img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.f15-theme-world__ph { aspect-ratio: 2 / 3; border-radius: 6px; background: linear-gradient(135deg, var(--f15-feature-soft), var(--f15-feature)); }
.f15-theme-world__copy .f15-theme-num { font-size: clamp(64px, 9vw, 120px); color: var(--f15-feature-sub); display: block; line-height: .9; }
.f15-theme-world__copy h2 { font-size: clamp(24px, 3.4vw, 36px); margin: 14px 0 0; color: var(--f15-feature-ink); }
.f15-theme-world__lead { margin: 14px 0 0; font-size: 15px; letter-spacing: .06em; color: var(--f15-feature-ink); }
.f15-theme-world__note { margin: 22px 0 0; font-size: 14px; line-height: 2; color: #cdbcb7; max-width: 34em; }

/* ---- 受け取るもの ---- */
.f15-theme-receive { padding: clamp(48px, 7vw, 80px) 0; background: #fff; border-top: 1px solid var(--f15-line); }
/* ヘアメイク（その回で受けるときだけ。2026-10-12） */
.f15-theme-hair { padding: clamp(44px, 6vw, 72px) 0; background: var(--f15-paper, #fbf7f4); border-top: 1px solid var(--f15-line); }
.f15-theme-hair h2 { font-size: clamp(22px, 3.2vw, 30px); margin: 0 0 10px; }
.f15-theme-hair__lead { margin: 0 0 16px; color: var(--f15-ink); line-height: 1.9; }
.f15-theme-hair__facts { list-style: none; margin: 0 0 14px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.f15-theme-hair__facts li { background: #fff; border: 1px solid var(--f15-line); border-radius: 999px; padding: 6px 14px; font-size: 14px; color: var(--f15-ink); }
.f15-theme-hair__facts b { color: var(--f15-rose-deep, #7e4252); }
.f15-theme-hair__how { margin: 0 0 22px; font-size: 14px; color: var(--f15-ink-muted); line-height: 1.8; }
.f15-theme-hair__times { margin: 0 0 12px; font-size: 13px; color: var(--f15-ink-muted); line-height: 1.8; }
.f15-theme-hair__times b { display: inline-block; font-size: 16px; color: var(--f15-ink); letter-spacing: .04em; }
.f15-theme-hair__artist { display: flex; gap: 18px; align-items: flex-start; max-width: 720px; }
.f15-theme-hair__artist img { width: 120px; height: 120px; border-radius: 50%; object-fit: cover; flex: none; }
.f15-theme-hair__role { margin: 0; font-size: 12px; letter-spacing: .08em; color: var(--f15-ink-muted); }
.f15-theme-hair__name { margin: 2px 0 6px; font-family: 'Noto Serif JP', serif; font-size: 22px; color: var(--f15-ink); }
.f15-theme-hair__bio { margin: 0 0 8px; font-size: 14px; line-height: 1.85; color: var(--f15-ink); }
.f15-theme-hair__links { margin: 0; display: flex; flex-wrap: wrap; gap: 12px; font-size: 13px; }
.f15-theme-hair__links a { color: var(--f15-rose-deep, #7e4252); }
.f15-theme-hair__works { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; margin-top: 22px; max-width: 900px; }
.f15-theme-hair__works a { display: block; border-radius: 6px; overflow: hidden; background: #fff; }
.f15-theme-hair__works img { display: block; width: 100%; height: auto; }
@media (max-width: 720px) { .f15-theme-hair__works { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 560px) { .f15-theme-hair__artist { flex-direction: column; } .f15-theme-hair__artist img { width: 96px; height: 96px; } }
.f15-theme-receive h2 { font-size: clamp(22px, 3.2vw, 30px); }
.f15-theme-frames { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(12px, 2.4vw, 24px); margin: 28px 0 0; }
.f15-theme-frame { aspect-ratio: 3 / 4; border: 1px solid var(--f15-line); background: var(--f15-paper); border-radius: 6px; padding: 10px; display: grid; }
.f15-theme-frame__in { border: 1px solid var(--f15-line); display: grid; place-items: center; text-align: center; background: #fff; }
.f15-theme-frame__in .f15-theme-num { font-size: clamp(36px, 5vw, 56px); color: var(--f15-ink); }
.f15-theme-frame__in .f15-theme-num small { font-size: .4em; color: var(--f15-rose); margin-left: 3px; }
.f15-theme-frame__in p { margin: 6px 0 0; font-size: 12px; letter-spacing: .12em; color: var(--f15-ink-muted); }
/* 同じ方を3人が撮った写真。額の形はそのまま、写真は切らずに入れる（縦の写真を横の箱で切らない）。 */
.f15-theme-frame--photo { aspect-ratio: auto; display: block; margin: 0; }
.f15-theme-frame--photo .f15-theme-frame__in { display: block; }
.f15-theme-frame--photo img { display: block; width: 100%; height: auto; }
.f15-theme-frame--photo figcaption { margin: 10px 0 2px; text-align: center; font-size: 13px; letter-spacing: .06em; }
.f15-theme-frame--photo figcaption a { color: var(--f15-ink); text-decoration: none; }
.f15-theme-frame--photo figcaption a:hover { text-decoration: underline; text-underline-offset: 3px; }
.f15-theme-frames__note { margin: 14px 0 0; font-size: 12px; line-height: 1.8; color: var(--f15-ink-muted); }
@media (max-width: 560px) {
    /* 3枚を横に並べると切手の大きさになるので、横に送って1枚ずつ見る。次の1枚を端に覗かせる。 */
    .f15-theme-frames--photos { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; margin-inline: calc(-1 * var(--f15-gutter)); padding-inline: var(--f15-gutter); scroll-padding-inline: var(--f15-gutter); scrollbar-width: none; }
    .f15-theme-frames--photos::-webkit-scrollbar { display: none; }
    .f15-theme-frames--photos .f15-theme-frame { flex: 0 0 64vw; scroll-snap-align: start; }
}
/* 受け取るもの：アイコンと数字だけの3つの札。説明の文は出さない（よくあるご質問へ）。 */
.f15-theme-gets { list-style: none; margin: 26px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.f15-theme-gets li { display: grid; grid-template-columns: auto 1fr; column-gap: 12px; align-items: center; padding: 14px 16px; border: 1px solid var(--f15-line); border-radius: var(--f15-radius); background: #fff; }
.f15-theme-gets__icon { grid-row: 1 / span 2; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--f15-paper); color: var(--f15-ink); }
.f15-theme-gets__icon svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.f15-theme-gets__label { font-size: 12px; letter-spacing: .06em; color: var(--f15-ink-muted); }
.f15-theme-gets__value { font-size: 13px; line-height: 1.3; color: var(--f15-ink); }
.f15-theme-gets__value b { margin: 0 2px; font-family: var(--f15-serif); font-weight: 500; font-size: 28px; }
.f15-theme-gets__value.is-word { font-family: var(--f15-serif); font-size: 20px; }
@media (max-width: 640px) {
    .f15-theme-gets { grid-template-columns: 1fr; gap: 8px; }
    .f15-theme-gets li { padding: 10px 14px; }
}

/* ---- 写真家 ---- */
.f15-theme-people { padding: clamp(48px, 7vw, 80px) 0; }
.f15-theme-people h2 { font-size: clamp(22px, 3.2vw, 30px); }
.f15-theme-parts { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(14px, 2.4vw, 24px); margin: 26px 0 0; }
.f15-theme-part { background: #fff; border: 1px solid var(--f15-line); border-radius: var(--f15-radius-lg); padding: clamp(18px, 3vw, 28px); }
.f15-theme-part__head { display: flex; align-items: baseline; gap: 12px; }
.f15-theme-part__head .f15-theme-num { font-size: 30px; }
.f15-theme-receive__more { margin: 18px 0 0; padding: 14px 18px; border-radius: var(--f15-radius); background: var(--f15-rose-tint); color: var(--f15-ink); font-size: 14px; line-height: 1.8; }
/* フルパックの紹介。文で説明せず、四角の数で枚数を見せる（1つ＝1枚、足される分は色を変える）。付け方は3つの札。 */
.f15-theme-pack { margin: 28px 0 0; padding: clamp(20px, 3vw, 32px); border: 1px solid var(--f15-line); border-radius: var(--f15-radius-lg); background: var(--f15-paper); text-align: center; }
.f15-theme-pack__eyebrow { margin: 0; font-size: 11px; letter-spacing: .32em; text-transform: uppercase; color: var(--f15-gold); }
.f15-theme-pack h3 { margin: 6px 0 0; font-family: var(--f15-serif); font-weight: 500; font-size: clamp(19px, 2.4vw, 24px); }
.f15-theme-pack__badge { display: inline-flex; align-items: baseline; gap: 2px; margin: 12px 0 0; padding: 6px 16px; border: 1px solid var(--f15-rose); border-radius: 999px; background: #fff; font-size: 13px; color: var(--f15-ink); }
.f15-theme-pack__badge b { font-family: var(--f15-serif); font-weight: 500; font-size: 22px; }
.f15-theme-pack__badge small { font-size: 11px; color: var(--f15-ink-muted); }
.f15-theme-pack__visual { display: flex; align-items: flex-end; justify-content: center; gap: clamp(14px, 4vw, 44px); margin: 24px 0 0; }
.f15-theme-pack__set { width: min(220px, 36vw); }
.f15-theme-pack__dots { display: grid; grid-template-columns: repeat(10, minmax(0, 1fr)); gap: 3px; }
.f15-theme-pack__dots i { display: block; aspect-ratio: 1 / 1; border-radius: 2px; background: #d9cfcb; }
.f15-theme-pack__dots i.is-add { background: var(--f15-rose); }
.f15-theme-pack__set p { margin: 10px 0 0; font-size: 13px; color: var(--f15-ink); }
.f15-theme-pack__set p span { display: block; font-size: 12px; color: var(--f15-ink-muted); }
.f15-theme-pack__set p b { margin-right: 2px; font-family: var(--f15-serif); font-weight: 500; font-size: clamp(26px, 3.6vw, 34px); }
.f15-theme-pack__set.is-pack p span { color: var(--f15-rose); }
.f15-theme-pack__arrow { align-self: center; font-size: 22px; color: var(--f15-ink-muted); }
.f15-theme-pack__note { margin: 14px 0 0; font-size: 13px; color: var(--f15-ink-muted); }
.f15-theme-pack__steps { list-style: none; margin: 20px 0 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 28px; }
.f15-theme-pack__steps li { position: relative; display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; border: 1px solid var(--f15-line); border-radius: 999px; background: #fff; font-size: 13px; color: var(--f15-ink); }
.f15-theme-pack__steps li a { display: inline-flex; align-items: center; gap: 8px; color: inherit; text-decoration: none; }
.f15-theme-pack__steps li span { display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--f15-ink); color: #fff; font-size: 11px; }
.f15-theme-pack__steps li b { margin-left: 2px; color: var(--f15-rose); }
.f15-theme-pack__steps li + li::before { content: '→'; position: absolute; left: -21px; top: 50%; transform: translateY(-50%); font-size: 13px; color: var(--f15-ink-muted); }
@media (max-width: 560px) {
    .f15-theme-pack__steps { flex-direction: column; align-items: center; gap: 20px; }
    .f15-theme-pack__steps li + li::before { content: '↓'; left: 50%; top: -18px; transform: translateX(-50%); }
}
.f15-theme-part__head .f15-theme-part__time { font-family: var(--f15-serif); font-size: clamp(20px, 2.6vw, 24px); color: var(--f15-ink); letter-spacing: .02em; }
.f15-theme-part__head span { font-size: 14px; color: var(--f15-ink-muted); letter-spacing: .06em; }
.f15-theme-faces { display: flex; gap: 12px; margin: 18px 0 0; }
/* 名前と「さん」を1行に（72px では「高田真幸さ／ん」と折れていた。2026-10-07）。 */
.f15-theme-face { width: 84px; text-align: center; font-size: 11.5px; color: var(--f15-ink-muted); text-decoration: none; white-space: nowrap; }
.f15-theme-face i { display: grid; place-items: center; width: 64px; height: 64px; margin: 0 auto 6px; border-radius: 50%; border: 1px dashed var(--f15-rose-border); background: var(--f15-rose-tint); font-style: normal; font-family: var(--f15-serif); font-size: 20px; color: var(--f15-rose); }
.f15-theme-face img { display: block; width: 64px; height: 64px; margin: 0 auto 6px; border-radius: 50%; object-fit: cover; }
.f15-theme-people__lead { margin: 10px 0 0; max-width: 40em; font-size: 14.5px; line-height: 1.9; color: var(--f15-ink-muted); }
.f15-theme-lineup { display: flex; flex-wrap: wrap; gap: 20px 22px; margin: 26px 0 0; }
.f15-theme-lineup .f15-theme-face { width: 96px; font-size: 12.5px; color: var(--f15-ink); }
.f15-theme-lineup .f15-theme-face img, .f15-theme-lineup .f15-theme-face i { width: 88px; height: 88px; }
.f15-theme-part__note { margin: 14px 0 0; font-size: 13px; color: var(--f15-muted); }

/* ---- タイムテーブル（誰が、いつ撮るか。template-parts/theme-timetable.php） ----
   HQ のガントを、お客様が読む形に（2026-10-08）。1人1行、帯は撮っている時間。
   色は台帳の色を落ち着かせたもの（行ごとに --tt 濃い色・--tt-tint 淡い地・--tt-edge 線）。
   数える行（いる人数）は出さない ―― その代わり、下に「どの時間も3人」とひとこと。 */
.f15-tt { --tt-label: 196px; margin: 26px 0 0; padding: clamp(18px, 3vw, 30px) clamp(16px, 3vw, 32px) clamp(10px, 2vw, 18px); background: #fff; border: 1px solid var(--f15-line); border-radius: var(--f15-radius-lg); }
.f15-tt__head { padding-left: var(--tt-label); }
.f15-tt__scale { position: relative; height: 40px; }
.f15-tt__scale--hours { height: 24px; }
.f15-tt__part { position: absolute; top: 0; bottom: 8px; display: flex; align-items: baseline; justify-content: center; gap: 8px; font-size: 12.5px; letter-spacing: .04em; color: var(--f15-ink-muted); white-space: nowrap; }
.f15-tt__part::after { content: ''; position: absolute; left: 6px; right: 6px; bottom: -8px; height: 1px; background: var(--f15-gold); opacity: .55; }
.f15-tt__part b { font-family: var(--f15-serif); font-weight: 500; font-size: 17px; letter-spacing: .02em; color: var(--f15-ink); }
.f15-tt__hour { position: absolute; top: 6px; transform: translateX(-50%); font-size: 11px; letter-spacing: .02em; font-variant-numeric: tabular-nums; color: var(--f15-ink-muted); }
.f15-tt__hour:first-child { transform: none; }
.f15-tt__hour:last-child { transform: translateX(-100%); }
.f15-tt__body { position: relative; }
.f15-tt__lines { position: absolute; top: 0; bottom: 0; left: var(--tt-label); right: 0; pointer-events: none; }
.f15-tt__band { position: absolute; top: 0; bottom: 0; }
.f15-tt__band.is-alt { background: var(--f15-paper); }
.f15-tt__tick { position: absolute; top: 0; bottom: 0; border-left: 1px dotted var(--f15-line); }
.f15-tt__rows { position: relative; margin: 0; padding: 0; list-style: none; }
.f15-tt__row { display: flex; align-items: center; min-height: 66px; }
.f15-tt__row + .f15-tt__row { border-top: 1px solid rgba(236, 225, 219, .7); }
.f15-tt__who { flex: 0 0 var(--tt-label); display: flex; align-items: center; gap: 12px; padding-right: 14px; box-sizing: border-box; font-size: 14.5px; color: var(--f15-ink); text-decoration: none; }
.f15-tt__who img,
.f15-tt__who i { flex: 0 0 auto; display: block; width: 44px; height: 44px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px var(--tt); }
.f15-tt__who i { display: grid; place-items: center; background: var(--tt-tint); font-style: normal; font-family: var(--f15-serif); font-size: 17px; color: var(--tt); }
.f15-tt__name { line-height: 1.4; }
.f15-tt__left { display: block; margin-top: 2px; font-size: 11px; letter-spacing: .02em; color: var(--f15-rose-deep, #7e4252); white-space: nowrap; }
a.f15-tt__who:hover .f15-tt__name { color: var(--f15-rose-deep); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.f15-tt__track { position: relative; flex: 1 1 auto; align-self: stretch; }
.f15-tt__bar { position: absolute; top: 50%; height: 30px; transform: translateY(-50%); display: flex; align-items: center; padding: 0 12px 0 24px; box-sizing: border-box; }
.f15-tt__bar::before { content: ''; position: absolute; inset: 0 2px; border: 1px solid var(--tt-edge); border-radius: 999px; background: var(--tt-tint); }
.f15-tt__bar::after { content: ''; position: absolute; left: 11px; top: 50%; width: 6px; height: 6px; margin-top: -3px; border-radius: 50%; background: var(--tt); }
.f15-tt__time { position: relative; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; letter-spacing: .03em; font-variant-numeric: tabular-nums; color: var(--f15-ink-muted); }
/* 1時間ほどの短い帯は、点を外して時刻を入れる（点があると「12:20〜…」で切れた）。 */
.f15-tt__bar.is-short { padding: 0 8px; justify-content: center; }
.f15-tt__bar.is-short::after { display: none; }
.f15-tt__bar.is-short .f15-tt__time { font-size: 11px; letter-spacing: 0; }
.f15-tt__row.is-pending { --tt: var(--f15-rose); --tt-tint: transparent; --tt-edge: var(--f15-rose); }
.f15-tt__row.is-pending .f15-tt__who i { border: 1px dashed var(--f15-rose); box-sizing: border-box; box-shadow: none; }
.f15-tt__row.is-pending .f15-tt__bar::before { border-style: dashed; }
.f15-tt__note { margin: 14px 0 0; font-size: 13px; color: var(--f15-ink-muted); }
@media (max-width: 640px) {
    .f15-tt { --tt-label: 74px; padding: 16px 12px 8px; }
    .f15-tt__scale { height: 44px; }
    .f15-tt__part { flex-direction: column; align-items: center; justify-content: flex-start; gap: 1px; font-size: 10px; letter-spacing: .02em; }
    .f15-tt__part b { font-size: 14px; }
    /* 目盛りは「10」「11」…と時だけに（「10:00」では隣どうしが重なった）。 */
    .f15-tt__hour { font-size: 11px; }
    .f15-tt__hour span { display: none; }
    .f15-tt__row { min-height: 74px; }
    .f15-tt__who { flex-direction: column; justify-content: center; gap: 6px; padding: 8px 6px 8px 0; font-size: 10.5px; text-align: center; }
    .f15-tt__who img,
    .f15-tt__who i { width: 34px; height: 34px; font-size: 14px; }
    .f15-tt__name { line-height: 1.3; }
    .f15-tt__bar { height: 18px; padding: 0; }
    /* 時刻を入れない細い帯は、淡い地だと白に沈む。顔の輪と同じ色で塗る。 */
    .f15-tt__bar::before { inset: 0 1px; background: var(--tt); border-color: var(--tt); opacity: .82; }
    .f15-tt__row.is-pending .f15-tt__bar::before { background: transparent; opacity: 1; }
    .f15-tt__bar::after { display: none; }
    /* 帯が細いので、時刻は目盛りで読む。読み上げにだけ残す。 */
    .f15-tt__time { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); }
}

/* ---- 予約 ---- */
.f15-theme-booking { padding: clamp(48px, 7vw, 80px) 0; background: #fff; border-top: 1px solid var(--f15-line); }
.f15-theme-booking h2 { font-size: clamp(22px, 3.2vw, 30px); }
.f15-theme-booking__price { margin: 14px 0 0; display: flex; align-items: baseline; gap: 10px; }
.f15-theme-booking__price .f15-theme-num { font-size: 40px; }
.f15-theme-booking__price small { font-size: 13px; color: var(--f15-ink-muted); }
.f15-theme-booking__was { font-family: var(--f15-serif); font-size: 18px; color: var(--f15-ink-muted); }
.f15-theme-booking__note { margin: 10px 0 0; font-size: 14px; color: var(--f15-ink-muted); }
.f15-theme-booking .f15-recruit { margin-top: 16px; }
.f15-theme-booking .f15-event-booking__shell { margin-top: 22px; }

/* ---- 会場・FAQ ---- */
.f15-theme-venue { padding: clamp(36px, 5vw, 56px) 0; }
.f15-theme-venue__card { display: grid; grid-template-columns: auto 1fr; gap: 18px; align-items: center; background: #fff; border: 1px solid var(--f15-line); border-radius: var(--f15-radius-lg); padding: 20px 24px; }
.f15-theme-venue__card .f15-theme-num { font-size: 34px; color: var(--f15-gold); }
.f15-theme-venue__card p { margin: 0; font-size: 14px; color: var(--f15-ink-muted); }
.f15-theme-venue__card p strong { display: block; font-size: 16px; color: var(--f15-ink); margin-bottom: 4px; }
.f15-theme-venue__way { display: block; margin-top: 2px; }
.f15-theme-venue__map { display: inline-block; margin-top: 6px; color: var(--f15-ink); text-decoration: underline; text-underline-offset: 3px; }
.f15-theme-venue__mapbox { margin: 12px 0 0; aspect-ratio: 16 / 7; border: 1px solid var(--f15-line); border-radius: 6px; overflow: hidden; background: #fff; }
.f15-theme-venue__mapbox iframe { display: block; width: 100%; height: 100%; border: 0; }
@media (max-width: 820px) {
    .f15-theme-venue__mapbox { aspect-ratio: 4 / 3; }
}
/* 会場の写真。建物・入口・撮影室・控え室を同じ大きさで並べる（人は写っていないので 4:3 に揃えて切ってよい）。 */
.f15-theme-venue--photos h2 { font-size: clamp(22px, 3.2vw, 30px); margin: 0 0 20px; }
.f15-theme-venue__photos { list-style: none; margin: 16px 0 0; padding: 0; display: grid; grid-template-columns: repeat(var(--cols, 4), minmax(0, 1fr)); gap: 12px; }
.f15-theme-venue__photos figure { margin: 0; }
.f15-theme-venue__photos img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; background: var(--f15-paper); }
.f15-theme-venue__photos figcaption { margin-top: 6px; font-size: 12px; line-height: 1.6; color: var(--f15-ink-muted); }
.f15-theme-venue__credit { margin: 10px 0 0; font-size: 11px; color: var(--f15-ink-muted); }
@media (max-width: 820px) {
    .f15-theme-venue__photos { grid-template-columns: repeat(var(--mcols, 2), minmax(0, 1fr)); }
}
.f15-theme-faq { padding: 0 0 clamp(48px, 7vw, 80px); }
.f15-theme-faq details { border-top: 1px solid var(--f15-line); padding: 14px 0; }
.f15-theme-faq details:last-child { border-bottom: 1px solid var(--f15-line); }
.f15-theme-faq summary { cursor: pointer; font-family: var(--f15-serif); font-size: 16px; }
.f15-theme-faq p { margin: 8px 0 0; font-size: 14px; color: var(--f15-ink-muted); }

@media (prefers-reduced-motion: reduce) {
    .f15-theme-hero__photo img { transition: none; }
}

/* スマホの最初の画面の写真3枚（同じ方を3人が）。PC は右の写真があるので出さない。2026-10-21 */
.f15-theme-hero__trio { display: none; }

@media (max-width: 820px) {
    .f15-theme-hero__trio { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0 0 18px; }
    .f15-theme-hero__trio figure { margin: 0; min-width: 0; }
    .f15-theme-hero__trio img { display: block; width: 100%; height: auto; aspect-ratio: 2 / 3; object-fit: cover; object-position: center 25%; border-radius: 6px; background: var(--f15-feature-soft); }
    .f15-theme-hero__trio figcaption { margin-top: 5px; font-size: 11px; line-height: 1.3; color: rgba(255,255,255,.72); text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .f15-theme-hero__trio-note { grid-column: 1 / -1; margin: 2px 0 0; font-size: 12px; letter-spacing: .04em; color: rgba(255,255,255,.72); text-align: center; }
    .f15-theme-hero__grid { grid-template-columns: 1fr; }
    .f15-theme-hero__visual { flex-direction: column; gap: 24px; }
    .f15-theme-hero__photo { width: min(100%, 260px); }
    .f15-theme-figure { width: min(100%, 280px); }
    .f15-theme-numbers__row { grid-template-columns: repeat(2, 1fr); }
    .f15-theme-numbers__item:nth-child(3) { border-left: 0; }
    .f15-theme-numbers__item:nth-child(n+3) { border-top: 1px solid var(--f15-line); }
    .f15-theme-parts { grid-template-columns: 1fr; }
    .f15-theme-flow__grid, .f15-theme-world__grid { grid-template-columns: 1fr; }
    .f15-theme-dial { max-width: 300px; }
    .f15-theme-world__fig { max-width: 360px; margin: 0 auto; }
}

/* ご紹介用の素材。保存できる画像と動画を並べ、その下に紹介文とURL（通常の回の「ご紹介いただく際に」と同じ中身）。 */
.f15-theme-share { padding: clamp(40px, 6vw, 72px) 0; background: #fff; border-top: 1px solid var(--f15-line); }
.f15-theme-share h2 { font-size: clamp(22px, 3.2vw, 30px); }
.f15-theme-share__lead { margin: 10px 0 0; font-size: 14px; line-height: 1.9; color: var(--f15-ink-muted); }
.f15-theme-share__files { list-style: none; margin: 22px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 16px; }
.f15-theme-share__file { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
/* 動画のモーダル（1本ずつ）。暗い幕の上に、縦動画を画面の高さいっぱいに。ふわっと出て、閉じると止まる（event-theme.js）。 */
.f15-share-modal { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(20, 14, 17, .86); opacity: 0; transition: opacity .22s ease; }
.f15-share-modal.is-on { opacity: 1; }
.f15-share-modal[hidden] { display: none; }
.f15-share-modal__box { position: relative; display: flex; flex-direction: column; align-items: center; gap: 10px; max-width: min(92vw, calc((100vh - 120px) * 9 / 16)); width: 100%; transform: translateY(14px) scale(.97); transition: transform .26s ease; }
.f15-share-modal.is-on .f15-share-modal__box { transform: none; }
.f15-share-modal video { display: block; width: 100%; max-height: calc(100vh - 120px); aspect-ratio: 9 / 16; border-radius: 10px; background: #000; box-shadow: 0 30px 70px rgba(0, 0, 0, .5); }
.f15-share-modal__bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; color: #f3e7e3; font-size: 13px; }
.f15-share-modal__bar a { color: #fff; text-decoration: none; padding: 7px 14px; border: 1px solid rgba(255, 255, 255, .55); border-radius: 999px; font-size: 12.5px; white-space: nowrap; }
.f15-share-modal__close { position: absolute; top: -8px; right: -6px; transform: translateY(-100%); width: 40px; height: 40px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .14); color: #fff; font-size: 24px; line-height: 1; cursor: pointer; }
.f15-share-modal__close:hover { background: rgba(255, 255, 255, .26); }
@media (max-width: 640px) { .f15-share-modal__close { top: -4px; right: 0; } }
@media (prefers-reduced-motion: reduce) { .f15-share-modal, .f15-share-modal__box { transition: none; } }
/* 閉じた状態がふつう（2026-10-09）。「素材を見る」で、タブ・素材・紹介文がまとめて広がる。高さは grid の行で滑らかに。 */
.f15-theme-share__toggle { display: inline-flex; align-items: center; gap: 10px; margin: 16px 0 0; padding: 10px 18px 10px 20px; border: 1px solid var(--f15-ink); border-radius: 999px; background: transparent; color: var(--f15-ink); font-size: 14px; cursor: pointer; transition: background .18s ease, color .18s ease; }
.f15-theme-share__toggle small { font-size: 12px; color: var(--f15-ink-muted); transition: color .18s ease; }
.f15-theme-share__toggle i { width: 8px; height: 8px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .25s ease; }
.f15-theme-share__toggle:hover, .f15-theme-share__toggle[aria-expanded="true"] { background: var(--f15-ink); color: #fff; }
.f15-theme-share__toggle:hover small, .f15-theme-share__toggle[aria-expanded="true"] small { color: rgba(255, 255, 255, .72); }
.f15-theme-share__toggle[aria-expanded="true"] i { transform: translateY(2px) rotate(225deg); }
.f15-theme-share__panel { display: grid; grid-template-rows: 0fr; opacity: 0; visibility: hidden; transition: grid-template-rows .36s ease, opacity .28s ease, visibility 0s linear .36s; }
.f15-theme-share__panel.is-open { grid-template-rows: 1fr; opacity: 1; visibility: visible; transition: grid-template-rows .36s ease, opacity .28s ease .08s, visibility 0s; }
.f15-theme-share__panel-in { min-height: 0; overflow: hidden; }
.f15-theme-share__panel.is-open .f15-theme-share__panel-in { overflow: visible; }
/* 種類で絞り込むタブ（動画・横長・縦・正方形）。紹介文のタブと同じ丸いボタン。 */
.f15-theme-share__filter { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 0; }
.f15-theme-share__filter button { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border-radius: 999px; border: 1px solid var(--f15-line); background: #fff; color: var(--f15-ink); font-size: 13px; cursor: pointer; transition: background .18s ease, border-color .18s ease, color .18s ease, transform .18s ease; }
.f15-theme-share__filter button small { font-size: 11px; color: var(--f15-ink-muted); }
.f15-theme-share__filter button:hover { border-color: var(--f15-ink); }
.f15-theme-share__filter button[aria-selected="true"] { border-color: var(--f15-ink); background: var(--f15-ink); color: #fff; }
.f15-theme-share__filter button[aria-selected="true"] small { color: rgba(255, 255, 255, .7); }
.f15-theme-share__filter button:active { transform: scale(.97); }
/* hidden は display:flex に負ける。隠したものは本当に消す（検証で、隠したはずの動画が並んだままだった）。 */
.f15-theme-share__file[hidden], .f15-theme-share__group[hidden] { display: none; }
/* 絞り込みの動き：消えるものはすっと沈み、出てくるものは下から順にふわっと（event-theme.js）。 */
.f15-theme-share__file, .f15-theme-share__group { transition: opacity .22s ease, transform .22s ease; }
.f15-theme-share__file.is-leaving, .f15-theme-share__group.is-leaving { opacity: 0; transform: translateY(6px) scale(.97); }
.f15-theme-share__file.is-entering, .f15-theme-share__group.is-entering { opacity: 0; transform: translateY(12px); }
.f15-theme-share__files + .f15-theme-share__hint { margin-top: 16px; }
@media (prefers-reduced-motion: reduce) {
    .f15-theme-share__file, .f15-theme-share__group, .f15-theme-share__filter button { transition: none; }
}
/* 素材のまとまりの見出し（「回の紹介に」「写真家の方のご紹介に」）。格子の1行をまるごと使う。 */
.f15-theme-share__group { grid-column: 1 / -1; margin: 14px 0 -4px; padding-bottom: 6px; border-bottom: 1px solid var(--f15-line); font-size: 14px; font-weight: 500; letter-spacing: .04em; color: var(--f15-ink-muted); }
.f15-theme-share__group:first-child { margin-top: 0; }
.f15-theme-share__thumb { position: relative; display: block; aspect-ratio: 1 / 1; border: 1px solid var(--f15-line); border-radius: 6px; overflow: hidden; background: var(--f15-paper); }
.f15-theme-share__thumb img { display: block; width: 100%; height: 100%; object-fit: contain; }
.f15-theme-share__play { position: absolute; inset: 0; margin: auto; width: 48px; height: 48px; border-radius: 50%; background: rgba(28, 21, 24, .55); }
.f15-theme-share__play::before { content: ''; position: absolute; left: 19px; top: 14px; border-style: solid; border-width: 10px 0 10px 16px; border-color: transparent transparent transparent #fff; }
.f15-theme-share__label { margin: 0; font-size: 13px; line-height: 1.6; }
.f15-theme-share__label strong { display: block; font-weight: 500; color: var(--f15-ink); }
.f15-theme-share__label span { display: block; font-size: 12px; color: var(--f15-ink-muted); }
.f15-theme-share__save { align-self: flex-start; padding: 8px 16px; border-radius: 999px; border: 1px solid var(--f15-ink); color: var(--f15-ink); font-size: 13px; text-decoration: none; }
.f15-theme-share__save:hover, .f15-theme-share__save:focus-visible { background: var(--f15-ink); color: #fff; }
.f15-theme-share__hint { margin: 12px 0 0; font-size: 12px; line-height: 1.8; color: var(--f15-ink-muted); }
.f15-theme-share__text { margin: 30px 0 0; }
.f15-theme-share__tabs { display: flex; gap: 8px; }
.f15-theme-share__tabs button { padding: 6px 14px; border-radius: 999px; border: 1px solid var(--f15-line); background: #fff; color: var(--f15-ink); font-size: 13px; cursor: pointer; }
.f15-theme-share__tabs button[aria-selected="true"] { border-color: var(--f15-ink); background: var(--f15-ink); color: #fff; }
.f15-theme-share__text textarea { display: block; box-sizing: border-box; width: 100%; margin-top: 10px; padding: 12px; border: 1px solid var(--f15-line); border-radius: 6px; background: var(--f15-paper); color: var(--f15-ink); font: inherit; font-size: 13px; line-height: 1.8; resize: vertical; }
.f15-theme-share__copy { margin-top: 8px; padding: 9px 18px; border: 0; border-radius: 999px; background: var(--f15-ink); color: #fff; font-size: 13px; cursor: pointer; }
.f15-theme-share__url { display: flex; gap: 8px; align-items: center; margin-top: 14px; }
.f15-theme-share__url input { flex: 1 1 auto; min-width: 0; padding: 9px 12px; border: 1px solid var(--f15-line); border-radius: 6px; background: #fff; color: var(--f15-ink); font-size: 13px; }
.f15-theme-share__url .f15-theme-share__copy { flex: 0 0 auto; margin-top: 0; }
@media (max-width: 820px) {
    .f15-theme-share__files { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* カメラマンの紹介。写真家一覧と同じ1人1段（.f15-person-feature）を、この回の欄の中で使う。 */
.f15-theme-people__features { margin-top: 20px; }
.f15-theme-people__sub { margin: 40px 0 0; font-family: var(--f15-serif); font-weight: 500; font-size: clamp(19px, 2.4vw, 24px); }
.f15-theme-people__pending { margin: 8px 0 0; padding-top: 18px; border-top: 1px solid var(--f15-line); font-size: 13px; color: var(--f15-ink-muted); }

/* 残り枠のボードへ（別の1枚。スクショ用。2026-10-09） */
.f15-theme-share__board { margin: 0 0 18px; }
.f15-theme-share__board a { display: inline-flex; flex-direction: column; gap: 3px; padding: 11px 16px; border: 1px solid var(--f15-rose-border); border-radius: 10px; background: var(--f15-rose-tint); color: var(--f15-ink); font-size: 14px; font-weight: 500; text-decoration: none; }
.f15-theme-share__board a small { font-size: 12px; font-weight: 400; color: var(--f15-ink-muted); }
.f15-theme-share__board a:hover { border-color: var(--f15-rose); color: var(--f15-rose-deep); }

/* ---- 枠ごとの空き（タイムテーブルの上の段。2026-10-09 オーナー「お客様も見られる？イベントページに表示できる？」） ----
   残り枠のボード（template-event-board.php）と同じ見せ方：白地にローズの輪＝空き、淡い塗り＝満席、募集終了の列はグレー。
   丸は枠の幅に合わせて小さくなり、入らないときは時刻を消す（コンテナクエリ）。 */
.f15-tt { --tt-full: #e9dfda; --tt-full-ink: #a39590; --tt-closed: #cdbfb9; --tt-gone: rgba(154, 139, 133, .22); }
.f15-tt__slots { min-height: 58px; border-bottom: 1px solid var(--f15-line); }
.f15-tt__slots .f15-tt__who { font-family: var(--f15-serif); }
.f15-tt__slot { position: absolute; top: 0; bottom: 0; display: grid; place-items: center; container-type: inline-size; color: var(--f15-ink); text-decoration: none; }
.f15-tt__slot i { display: grid; place-content: center; width: min(34px, 88cqw); aspect-ratio: 1; border-radius: 50%; border: 1.5px solid var(--f15-rose); background: #fff; font-style: normal; font-size: calc(min(34px, 88cqw) * .29); letter-spacing: 0; font-variant-numeric: tabular-nums; line-height: 1; transition: transform .15s ease, box-shadow .15s ease; }
a.f15-tt__slot:hover i, a.f15-tt__slot:focus-visible i { transform: scale(1.12); box-shadow: 0 0 0 3px var(--f15-rose-tint); }
.f15-tt__slot.is-full i { border-color: transparent; background: var(--tt-full); color: var(--tt-full-ink); text-decoration: line-through; }
.f15-tt__slot.is-closed i { border-style: dashed; border-color: var(--tt-closed); background: transparent; color: var(--tt-full-ink); }
@container (max-width: 30px) { .f15-tt__slot span { display: none; } }
.f15-tt__gone { position: absolute; top: 0; bottom: 0; left: var(--tt-label); right: 0; pointer-events: none; }
.f15-tt__gone span { position: absolute; top: 0; bottom: 0; background: var(--tt-gone); }
.f15-tt__legend { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 12px 0 0; font-size: 12px; color: var(--f15-ink-muted); }
.f15-tt__legend i { display: inline-block; width: 12px; height: 12px; border-radius: 50%; border: 1.5px solid var(--f15-rose); background: #fff; vertical-align: -2px; margin-right: 5px; }
.f15-tt__legend i.is-full { border-color: transparent; background: var(--tt-full); }
.f15-tt__legend i.is-closed { border-style: dashed; border-color: var(--tt-closed); background: transparent; }
.f15-tt__legend i.is-gone { border: 0; border-radius: 3px; background: rgba(154, 139, 133, .3); }
/* 丸から飛んだ先の札を、一瞬ひかえめに光らせる。 */
.cbp-slot.is-f15-pointed { animation: f15-pointed 1.6s ease-out; }
@keyframes f15-pointed { 0%, 55% { box-shadow: 0 0 0 3px var(--f15-rose); } 100% { box-shadow: 0 0 0 3px transparent; } }
@media (max-width: 640px) { .f15-tt__slots { min-height: 36px; } .f15-tt__legend { font-size: 11px; } }

/* リンクをすぐコピー（素材を開かなくても。2026-10-09 オーナー「シェアするときのURLをサイトですぐにコピーできるように」） */
.f15-theme-share__quick { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 16px; }
.f15-theme-share__quick input { flex: 1 1 220px; max-width: 360px; padding: 10px 14px; border: 1px solid var(--f15-line); border-radius: 10px; background: #fff; color: var(--f15-ink); font-size: 15px; font-family: var(--f15-serif); letter-spacing: .02em; }
.f15-theme-share__quick .f15-theme-share__copy { margin: 0; }
