/* 撮影依頼・作者・枡のページ（commission / about / masu）。styles.css と book.css の上に重ねる */

.info-hero {
    max-width: 820px;
    margin: 0 auto;
    padding: clamp(36px, 5vw, 64px) clamp(24px, 6vw, 60px) clamp(32px, 5vw, 56px);
    text-align: center;
}

.info-hero h1 {
    margin: 14px 0 28px;
    font-family: "Shippori Mincho", serif;
    font-size: clamp(26px, 4.4vw, 42px);
    font-weight: 400;
    letter-spacing: 0.08em;
    line-height: 1.5;
}

.info-lead {
    margin: 0 auto 36px;
    max-width: 680px;
    font-size: 15px;
    line-height: 2.1;
    color: rgba(245, 241, 230, 0.8);
}

.info-lead em {
    font-style: normal;
    color: var(--gold);
}

.info-section {
    max-width: 1080px;
    margin: 0 auto;
    padding: clamp(40px, 6vw, 72px) clamp(24px, 6vw, 60px);
    border-top: 1px solid rgba(245, 241, 230, 0.08);
}

.info-narrow {
    max-width: 780px;
}

.info-section h2 {
    margin: 0 0 28px;
    font-family: "Shippori Mincho", serif;
    font-size: clamp(20px, 2.6vw, 26px);
    font-weight: 400;
    letter-spacing: 0.1em;
}

.info-section p {
    margin: 0 0 18px;
    font-size: 14px;
    line-height: 2.1;
    color: rgba(245, 241, 230, 0.78);
}

.info-note {
    font-size: 12px !important;
    color: var(--muted) !important;
}

.text-link {
    color: var(--gold);
    text-decoration: none;
    border-bottom: 1px solid var(--gold-soft);
    font-size: 13px;
    letter-spacing: 0.08em;
}

.text-link:hover {
    color: var(--text);
}

.info-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.info-card {
    padding: 28px 24px 22px;
    border: 1px solid rgba(215, 188, 117, 0.22);
    border-radius: 6px;
    background: linear-gradient(160deg, rgba(38, 33, 26, 0.55), rgba(10, 10, 10, 0.4));
}

.info-card-num {
    margin: 0 0 10px !important;
    font-size: 11px !important;
    letter-spacing: 0.3em;
    color: var(--gold) !important;
}

.info-card h3 {
    margin: 0 0 14px;
    font-family: "Shippori Mincho", serif;
    font-size: 18px;
    font-weight: 400;
    letter-spacing: 0.06em;
}

.info-card p {
    margin: 0 !important;
    font-size: 13px !important;
}

.info-flow {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 18px;
    counter-reset: step;
}

.info-flow li {
    counter-increment: step;
    padding-top: 18px;
    border-top: 1px solid var(--gold-soft);
}

.info-flow li::before {
    content: "0" counter(step);
    font-size: 11px;
    letter-spacing: 0.3em;
    color: var(--gold);
}

.info-flow h3 {
    margin: 8px 0 8px;
    font-size: 15px;
    font-weight: 400;
    letter-spacing: 0.08em;
}

.info-flow p {
    margin: 0 !important;
    font-size: 13px !important;
}

.faq-item {
    border-bottom: 1px solid rgba(245, 241, 230, 0.1);
}

.faq-item summary {
    cursor: pointer;
    list-style: none;
    padding: 18px 28px 18px 0;
    position: relative;
    font-size: 14px;
    letter-spacing: 0.06em;
}

.faq-item summary::-webkit-details-marker { display: none; }

.faq-item summary::after {
    content: "+";
    position: absolute;
    right: 4px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--gold);
    font-size: 18px;
}

.faq-item[open] summary::after { content: "−"; }

.faq-item p {
    padding: 0 0 18px;
    font-size: 13px !important;
}

.timeline {
    list-style: none;
    margin: 0;
    padding: 0;
}

.timeline a {
    display: flex;
    gap: 24px;
    padding: 12px 0;
    border-bottom: 1px solid rgba(245, 241, 230, 0.08);
    color: var(--text);
    text-decoration: none;
    font-size: 14px;
    transition: color 0.3s ease;
}

.timeline a:hover { color: var(--gold); }

.tl-year {
    flex: 0 0 90px;
    color: var(--gold);
    letter-spacing: 0.1em;
}

.info-cta {
    text-align: center;
}

/* お問い合わせフォーム */
.inquiry-form {
    display: grid;
    gap: 18px;
    margin-top: 12px;
}

.fg-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}

.fg {
    display: grid;
    gap: 8px;
    font-size: 13px;
    letter-spacing: 0.06em;
    color: rgba(245, 241, 230, 0.85);
}

.fg input,
.fg select,
.fg textarea {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid rgba(245, 241, 230, 0.18);
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.03);
    color: var(--text);
    font: inherit;
    font-size: 15px;
    letter-spacing: 0.02em;
}

.fg select option { color: #111; }

.fg input:focus,
.fg select:focus,
.fg textarea:focus {
    outline: none;
    border-color: var(--gold);
}

.req { color: var(--gold); }
.opt { font-size: 11px; color: var(--muted); margin-left: 4px; }

.fg-check {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    font-size: 13px;
    color: rgba(245, 241, 230, 0.75);
}

.fg-check a { color: var(--gold); }

.hp { display: none !important; }

.inquiry-form .btn {
    justify-self: start;
    cursor: pointer;
    font: inherit;
}

.inquiry-form .btn:disabled { opacity: 0.5; cursor: default; }

.form-status {
    font-size: 13px !important;
    color: var(--gold) !important;
}

.form-status.is-error { color: #e08a7a !important; }

.fg-label { display: block; }

.info-cards-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 26px; }

@media (max-width: 900px) {
    .info-cards-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
    .info-cards,
    .info-cards-3 { grid-template-columns: 1fr; }
    .fg-row { grid-template-columns: 1fr; }
    .inquiry-form .btn { justify-self: stretch; text-align: center; }
    .tl-year { flex-basis: 72px; }
}

/* 書籍ページの最後に置く依頼への導線 */
.book-cta {
    max-width: 780px;
    margin: 0 auto;
    padding: clamp(48px, 7vw, 80px) clamp(24px, 6vw, 60px);
    text-align: center;
}

.book-cta h2 {
    margin: 10px 0 16px;
    font-family: "Shippori Mincho", serif;
    font-size: clamp(20px, 3vw, 28px);
    font-weight: 400;
    letter-spacing: 0.08em;
}

.book-cta p {
    margin: 0 0 28px;
    font-size: 14px;
    line-height: 2;
    color: rgba(245, 241, 230, 0.75);
}

/* 日本語は文節の切れ目で改行する（「20カ／国」のような途中改行を防ぐ。対応ブラウザのみ） */
:lang(ja) .info-hero h1,
:lang(ja) .info-section h2,
:lang(ja) .book-cta h2,
:lang(ja) .info-lead,
:lang(ja) .info-section p,
:lang(ja) .info-card p,
:lang(ja) .book-cta p {
    word-break: auto-phrase;
}

/* 依頼ページ：写真集が地域の発信に向く理由・活用例 */
.info-points {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 32px;
}

.info-point h3 {
    margin: 0 0 12px;
    padding-top: 16px;
    border-top: 1px solid var(--gold-soft);
    font-family: "Shippori Mincho", serif;
    font-size: 17px;
    font-weight: 400;
    letter-spacing: 0.06em;
}

.info-point p {
    margin: 0 !important;
    font-size: 13px !important;
}

.info-uses {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.info-uses li {
    padding: 8px 16px;
    border: 1px solid rgba(215, 188, 117, 0.3);
    border-radius: 999px;
    font-size: 13px;
    letter-spacing: 0.06em;
    color: rgba(245, 241, 230, 0.85);
}

@media (max-width: 780px) {
    .info-points { grid-template-columns: 1fr; gap: 24px; }
}

/* 依頼ページ：これまでの写真集と「次の1冊」の本棚 */
.info-series {
    padding: 8px 0 clamp(40px, 6vw, 64px);
}

.info-series-caption {
    margin: 0 0 18px;
    text-align: center;
    font-size: 11px;
    letter-spacing: 0.25em;
    color: var(--gold);
}

.series-shelf {
    display: flex;
    gap: 14px;
    overflow-x: auto;
    padding: 6px max(24px, calc((100vw - 1180px) / 2)) 14px;
    scroll-padding-left: max(24px, calc((100vw - 1180px) / 2));
    scroll-snap-type: x proximity;
    scrollbar-width: none;
}

.series-shelf::-webkit-scrollbar { display: none; }

.series-book {
    flex: 0 0 auto;
    width: 110px;
    scroll-snap-align: start;
    color: var(--muted);
    text-decoration: none;
    font-size: 11px;
    letter-spacing: 0.08em;
    text-align: center;
}

.series-book img,
.series-slot {
    width: 100%;
    aspect-ratio: 440 / 605;
    height: auto;
    border-radius: 3px;
    margin-bottom: 8px;
    box-shadow: 0 12px 26px rgba(0, 0, 0, 0.55);
    transition: transform 0.4s ease;
}

.series-book:hover img,
.series-book:hover .series-slot { transform: translateY(-4px); }

.series-slot {
    display: grid;
    place-items: center;
    border: 1px dashed var(--gold);
    background: rgba(215, 188, 117, 0.06);
    color: var(--gold);
    font-size: 12px;
    line-height: 1.7;
    letter-spacing: 0.1em;
    box-shadow: none;
}

.series-next span { color: var(--gold); }

/* 作例：1枚の枠で切り替えるスライドショー */
.info-split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 360px);
    gap: clamp(32px, 6vw, 80px);
    align-items: center;
}

.slideshow {
    width: 100%;
    max-width: 360px;
    justify-self: center;
}

.slides {
    position: relative;
    aspect-ratio: 1288 / 1800;
    border-radius: 4px;
    overflow: hidden;
    background: #151313;
    box-shadow: 0 30px 60px rgba(0, 0, 0, 0.6);
}

.slide {
    position: absolute;
    inset: 0;
    margin: 0;
    opacity: 0;
    transition: opacity 1s ease;
}

.slide.is-active { opacity: 1; }

.slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.slide figcaption {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 36px 16px 14px;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.6), transparent);
    font-size: 11px;
    letter-spacing: 0.25em;
    color: #f5f1e6;
    text-align: center;
}

.slide-dots {
    display: flex;
    justify-content: center;
    margin-top: 8px;
}

/* 見た目は小さな点、押せる範囲は指に合わせて広く */
.slide-dots button {
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
}

.slide-dots button::before {
    content: "";
    display: block;
    width: 7px;
    height: 7px;
    margin: auto;
    border-radius: 50%;
    background: rgba(245, 241, 230, 0.25);
}

.slide-dots button[aria-current="true"]::before { background: var(--gold); }

@media (max-width: 780px) {
    .info-split { grid-template-columns: 1fr; }
    .slideshow { max-width: 320px; }
}


.info-section p.label {
    margin: 0 0 8px;
    font-size: 11px;
    letter-spacing: 0.3em;
    color: var(--gold);
}

.info-partners {
    margin-top: 18px !important;
}
