/* 和装フォトウェディングnavi の表のページ（店・エリア・県・トップで共通に使う）
   色は1か所で決める。画面案：アイボリー・深いセージの緑・控えめな金・明朝の見出し */
:root {
  --w-ink: #2b2a27;
  --w-muted: #6f6a60;
  --w-line: #e6dfd0;
  --w-ivory: #faf7f0;
  --w-ivory-deep: #f3eddf;
  --w-green: #3f6b4f;
  --w-green-dark: #2f5240;
  --w-gold: #b39256;
  --w-red: #a8452f;
  --w-serif: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "Noto Serif JP", serif;
  --w-sans: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
}

/* 講座 4-7：html と body は白で横いっぱい。中の入れ物だけ幅を決める */
html, body { margin: 0; padding: 0; background: #fff; }
body.wasou { color: var(--w-ink); font-family: var(--w-sans); font-size: 16px; line-height: 1.8; -webkit-text-size-adjust: 100%; }
.wasou *, .wasou *::before, .wasou *::after { box-sizing: border-box; }
.wasou img { max-width: 100%; height: auto; display: block; }
.wasou a { color: var(--w-green); }
.w-container { max-width: 1160px; margin: 0 auto; padding: 0 24px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ヘッダー・フッター（4-18 で共通化するまでの仮） */
.w-header { border-bottom: 1px solid var(--w-line); background: #fff; }
.w-header__inner { display: flex; align-items: center; min-height: 64px; }
.w-brand { font-family: var(--w-serif); font-weight: 700; font-size: 20px; color: var(--w-ink) !important; text-decoration: none; letter-spacing: .02em; }
.w-footer { margin-top: 64px; padding: 32px 0; background: var(--w-ivory); border-top: 1px solid var(--w-line); text-align: center; }
.w-copy { margin: 8px 0 0; font-size: 13px; color: var(--w-muted); }

/* パンくず */
.w-breadcrumb ol { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 0; font-size: 13px; color: var(--w-muted); }
.w-breadcrumb li + li::before { content: "›"; margin: 0 8px; color: #b9b2a3; }
.w-breadcrumb a { color: var(--w-muted); text-decoration: none; }
.w-breadcrumb a:hover { text-decoration: underline; }

/* 店の頭 */
.w-shop-head { display: grid; grid-template-columns: 1fr 480px; gap: 8px 40px; padding: 24px 0 40px; border-bottom: 1px solid var(--w-line); }
.w-shop-head__text { grid-column: 1; }
.w-shop-title { font-family: var(--w-serif); font-size: 34px; line-height: 1.35; margin: 4px 0 4px; font-weight: 700; letter-spacing: .02em; }
.w-shop-area { margin: 0 0 16px; color: var(--w-muted); font-family: var(--w-serif); }
.w-pr { display: inline-block; font-size: 12px; line-height: 1; padding: 4px 8px; border: 1px solid var(--w-gold); color: var(--w-gold); border-radius: 3px; }
.w-shop-photo { grid-column: 2; grid-row: 1 / span 3; margin: 0; }
.w-shop-photo img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 6px; }
.w-shop-photo figcaption { font-size: 12px; color: var(--w-muted); margin-top: 6px; }
.w-keyfacts { grid-column: 1; margin: 0; padding: 20px 24px; background: var(--w-ivory); border: 1px solid var(--w-line); border-radius: 6px; }
.w-keyfacts > div { display: grid; grid-template-columns: 11em 1fr; gap: 12px; padding: 8px 0; border-top: 1px dashed var(--w-line); }
.w-keyfacts > div:first-child { border-top: 0; padding-top: 0; }
.w-keyfacts dt { color: var(--w-muted); font-size: 14px; }
.w-keyfacts dd { margin: 0; }
.w-keyfacts__main strong { font-size: 28px; font-family: var(--w-serif); color: var(--w-ink); }
.w-cta { grid-column: 1; display: flex; flex-wrap: wrap; gap: 12px; margin-top: 16px; }
.w-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 28px; border: 1px solid var(--w-green); border-radius: 6px; color: var(--w-green) !important; background: #fff; text-decoration: none; font-weight: 700; }
.w-btn--primary { background: var(--w-green); color: #fff !important; }
.w-btn--primary:hover { background: var(--w-green-dark); }

/* まとまり */
.w-section { padding: 40px 0 8px; }
.w-h2 { font-family: var(--w-serif); font-size: 24px; font-weight: 700; margin: 0 0 20px; padding-bottom: 10px; border-bottom: 2px solid var(--w-gold); letter-spacing: .03em; }
.w-h3 { font-family: var(--w-serif); font-size: 18px; margin: 28px 0 12px; }
.w-lead { margin: 0; font-size: 17px; line-height: 2; }
.w-muted { color: var(--w-muted); }
.w-small { font-size: 13px; color: var(--w-muted); margin: 12px 0 0; }
.w-note { display: block; font-size: 13px; color: var(--w-muted); font-weight: 400; line-height: 1.6; margin-top: 2px; }
.w-chip { display: inline-block; font-size: 12px; line-height: 1; padding: 4px 8px; margin-left: 6px; border-radius: 999px; background: var(--w-ivory-deep); color: var(--w-ink); vertical-align: middle; font-weight: 400; }
/* 料金の横の撮り方（スタジオ・ロケ）は、しぼりこみの「撮り方」と同じ薄い緑（2026-10-30 運営者） */
.w-chip--shoot { background: #ecf2ec; color: #34503c; }
.w-chip--campaign { background: #fbeee8; color: var(--w-red); }

/* 表 */
.w-table-wrap { overflow-x: auto; }
.w-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.w-table th, .w-table td { border-bottom: 1px solid var(--w-line); padding: 14px 12px; text-align: left; vertical-align: top; }
.w-table thead th { background: var(--w-ivory); font-weight: 700; font-size: 14px; color: var(--w-muted); white-space: nowrap; }
.w-table tbody th { font-weight: 700; }
.w-num { white-space: nowrap; font-weight: 700; }
.w-tax { display: block; font-weight: 400; font-size: 12px; color: var(--w-muted); }

/* 行の一覧 */
.w-rows { margin: 0; border-top: 1px solid var(--w-line); }
.w-rows > div { display: grid; grid-template-columns: 13em 1fr; gap: 16px; padding: 14px 4px; border-bottom: 1px solid var(--w-line); }
.w-rows dt { color: var(--w-muted); font-size: 14px; }
.w-rows dd { margin: 0; }
.w-sources { margin: 0; padding: 0; list-style: none; font-size: 13px; word-break: break-all; color: var(--w-muted); }

/* ○・－ */
.w-marks { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.w-marks li { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border: 1px solid var(--w-line); border-radius: 6px; }
.w-mark { display: inline-flex; width: 28px; height: 28px; align-items: center; justify-content: center; border-radius: 50%; font-weight: 700; flex: none; }
.w-marks .is-on .w-mark { background: var(--w-green); color: #fff; }
.w-marks .is-off { color: #a39d91; background: #fbfaf7; }
.w-marks .is-off .w-mark { background: #ece8df; color: #a39d91; }

/* チップの並び */
.w-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.w-chips li { padding: 6px 14px; border: 1px solid var(--w-line); border-radius: 999px; background: #fff; font-size: 14px; }
.w-chips--feature li { border-color: var(--w-gold); }

/* 出典 */
.w-source p { margin: 0 0 16px; }

/* 同じ市のほかの店 */
.w-neighbors { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.w-neighbors a { display: flex; flex-direction: column; gap: 2px; padding: 16px 20px; border: 1px solid var(--w-line); border-radius: 6px; text-decoration: none; color: var(--w-ink) !important; }
.w-neighbors a:hover { border-color: var(--w-green); }
.w-neighbors__name { font-family: var(--w-serif); font-weight: 700; }
.w-neighbors__price { font-size: 14px; color: var(--w-muted); }
.w-more { text-align: right; margin: 16px 0 0; }

/* タブレット */
@media (max-width: 1023px) {
  .w-shop-head { grid-template-columns: 1fr 380px; gap: 8px 28px; }
  .w-marks { grid-template-columns: repeat(2, 1fr); }
}

/* スマホ：1列。最初の画面に店名・料金が見えるように写真は料金のあと */
@media (max-width: 767px) {
  .w-container { padding: 0 16px; }
  .w-shop-head { display: flex; flex-direction: column; gap: 12px; padding: 16px 0 28px; }
  .w-shop-title { font-size: 26px; }
  .w-shop-area { margin-bottom: 4px; }
  .w-keyfacts { order: 2; padding: 16px; }
  .w-keyfacts > div { grid-template-columns: 1fr; gap: 0; }
  .w-cta { order: 3; margin-top: 0; }
  .w-cta .w-btn { width: 100%; }
  .w-shop-photo { order: 4; }
  .w-h2 { font-size: 21px; }
  .w-rows > div { grid-template-columns: 1fr; gap: 2px; }
  .w-marks { grid-template-columns: 1fr 1fr; }
  .w-neighbors { grid-template-columns: 1fr; }
  .w-table { font-size: 14px; }
  .w-table thead { display: none; }
  .w-plans tr { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; padding: 12px 0; border-bottom: 1px solid var(--w-line); }
  .w-plans th, .w-plans td { border: 0; padding: 0; }
  .w-plans tbody th { grid-column: 1 / -1; }
  .w-plans td:nth-of-type(1) { grid-column: 1 / -1; }
}

/* ---------------- 市・県のページ ---------------- */
.w-area-head { padding: 24px 0 8px; }
.w-area-title { font-family: var(--w-serif); font-size: 32px; line-height: 1.4; margin: 4px 0 8px; letter-spacing: .02em; }
.w-area-meta { margin: 0 0 12px; font-size: 14px; color: var(--w-muted); }
.w-toc ol { list-style: none; margin: 20px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; counter-reset: toc; }
.w-toc a { display: block; padding: 8px 16px; border: 1px solid var(--w-line); border-radius: 999px; text-decoration: none; font-size: 14px; color: var(--w-ink) !important; background: var(--w-ivory); }
.w-toc a:hover { border-color: var(--w-green); }
.w-criteria-lead { margin: 0; }
.w-criteria-more { margin: 8px 0 0; font-size: 14px; }
.w-criteria-more a { color: var(--w-green); }

.w-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin: 0 0 20px; padding: 16px; background: var(--w-ivory); border-radius: 6px; }
.w-tools[hidden] { display: none; }
.w-tools__sort { display: flex; align-items: center; gap: 8px; font-size: 14px; }
.w-tools__sort select { font: inherit; padding: 6px 10px; border: 1px solid var(--w-line); border-radius: 4px; background: #fff; }
.w-tools__filter { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.w-filter { font: inherit; font-size: 14px; padding: 6px 14px; border: 1px solid var(--w-line); border-radius: 999px; background: #fff; color: var(--w-ink); cursor: pointer; }
.w-filter[aria-pressed="true"] { background: var(--w-green); border-color: var(--w-green); color: #fff; }
/* しぼりこみの組（2026-10-30 運営者：案B＋衣装はえんじ）：薄い色の地に、押したボタンだけ濃い色でぬる */
.w-fgroup { --w-fc: #4a6b52; --w-fbg: #ecf2ec; --w-fink: #34503c; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.w-fgroup--costume { --w-fc: #8e2c3a; --w-fbg: #f6e9eb; --w-fink: #6e2230; }
.w-fgroup--shoot { --w-fc: #4a6b52; --w-fbg: #ecf2ec; --w-fink: #34503c; }
.w-fgroup--spot { --w-fc: #8a6d33; --w-fbg: #f6f0e2; --w-fink: #6b5323; }
.w-fgroup--data { --w-fc: #4b6478; --w-fbg: #ecf1f5; --w-fink: #384c5c; }
.w-fgroup__label { font-size: 12px; font-weight: 700; color: var(--w-fc); margin-right: 2px; }
.w-fgroup .w-filter { background: var(--w-fbg); border-color: var(--w-fbg); color: var(--w-fink); }
.w-fgroup .w-filter:hover { border-color: color-mix(in srgb, var(--w-fc) 40%, var(--w-fbg)); }
.w-fgroup .w-filter[aria-pressed="true"] { background: var(--w-fc); border-color: var(--w-fc); color: #fff; }
.w-fgroup .w-filter:focus-visible { outline: 2px solid var(--w-fc); outline-offset: 2px; }
.w-tools .w-small { margin: 0; width: 100%; }

.w-cards { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
.w-card { display: grid; grid-template-columns: 220px 1fr; gap: 20px; padding: 16px; border: 1px solid var(--w-line); border-radius: 8px; background: #fff; }
.w-card[hidden] { display: none; }
.w-card--big { grid-template-columns: 300px 1fr; padding: 20px; }
.w-card.is-paid { border: 2px solid var(--w-gold); }
.w-card__img { position: relative; display: block; align-self: start; }
.w-card__img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; }
.w-card__imgnote { position: absolute; left: 6px; bottom: 6px; font-size: 11px; padding: 2px 6px; background: rgba(255,255,255,.88); border-radius: 3px; color: var(--w-muted); }
.w-card__top { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 10px; margin-bottom: 8px; }
.w-rank { display: inline-flex; align-items: center; justify-content: center; min-width: 32px; height: 32px; padding: 0 8px; border-radius: 4px; background: var(--w-ink); color: #fff; font-family: var(--w-serif); font-weight: 700; }
.w-card__name { font-family: var(--w-serif); font-size: 20px; margin: 0; line-height: 1.4; }
.w-card--big .w-card__name { font-size: 22px; }
.w-card__name a { color: var(--w-ink) !important; text-decoration: none; }
.w-card__name a:hover { text-decoration: underline; }
.w-card__facts { margin: 0 0 10px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px 16px; font-size: 14px; }
.w-card__facts > div { display: flex; flex-direction: column; }
.w-card__facts .is-main { grid-column: 1 / -1; }
.w-card__facts dt { color: var(--w-muted); font-size: 12px; }
.w-card__facts dd { margin: 0; }
.w-card__facts .is-main strong { font-family: var(--w-serif); font-size: 22px; }
.w-cardmarks { list-style: none; margin: 0 0 10px; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; font-size: 13px; }
.w-cardmarks li { padding: 3px 10px; border-radius: 999px; border: 1px solid var(--w-line); }
.w-cardmarks li span[aria-hidden] { margin-right: 4px; font-weight: 700; }
.w-cardmarks .is-on { border-color: var(--w-green); color: var(--w-green); }
.w-cardmarks .is-off { color: #a39d91; background: #fbfaf7; }
.w-card__desc { margin: 0 0 12px; font-size: 14px; color: #4a463f; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.w-card__btns { display: flex; flex-wrap: wrap; gap: 10px; }
.w-card__btns .w-btn { min-height: 44px; padding: 0 22px; }

.w-compare th a { color: var(--w-ink); }
.w-citylist { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.w-citylist a, .w-citylist .is-empty { display: flex; justify-content: space-between; align-items: center; padding: 14px 18px; border: 1px solid var(--w-line); border-radius: 6px; text-decoration: none; color: var(--w-ink) !important; font-family: var(--w-serif); }
.w-citylist a:hover { border-color: var(--w-green); }
.w-citylist .is-empty { color: #a39d91 !important; background: #fbfaf7; }
.w-citylist__n { font-family: var(--w-sans); font-size: 13px; color: var(--w-muted); }

.w-faq details { border-bottom: 1px solid var(--w-line); padding: 4px 0; }
.w-faq summary { cursor: pointer; padding: 12px 4px; font-weight: 700; list-style: none; position: relative; padding-right: 32px; }
.w-faq summary::-webkit-details-marker { display: none; }
.w-faq summary::before { content: "Q"; display: inline-block; width: 26px; height: 26px; margin-right: 10px; border-radius: 50%; background: var(--w-gold); color: #fff; text-align: center; line-height: 26px; font-size: 13px; }
.w-faq summary::after { content: "＋"; position: absolute; right: 6px; top: 12px; color: var(--w-muted); }
.w-faq details[open] summary::after { content: "－"; }
.w-faq details p { margin: 0 0 12px 36px; }

@media (max-width: 1023px) {
  .w-card--big { grid-template-columns: 240px 1fr; }
  .w-card__facts { grid-template-columns: repeat(2, 1fr); }
  .w-citylist { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
  .w-area-title { font-size: 25px; }
  .w-card, .w-card--big { grid-template-columns: 1fr; padding: 14px; gap: 12px; }
  .w-card:not(.w-card--big) { grid-template-columns: 112px 1fr; }
  .w-card:not(.w-card--big) .w-card__desc { display: none; }
  .w-card__facts { grid-template-columns: 1fr 1fr; }
  .w-card:not(.w-card--big) .w-card__facts { grid-template-columns: 1fr; }
  .w-card__btns .w-btn { flex: 1 1 auto; }
  .w-citylist { grid-template-columns: 1fr; }
  .w-compare { min-width: 600px; }
}

/* 県のページ：市のタイル（講座 4-13。主役は市への案内） */
.w-citytiles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.w-citytiles a, .w-citytiles .is-empty { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 4px 12px; min-height: 96px; padding: 18px 20px; border: 1px solid var(--w-line); border-radius: 8px; text-decoration: none; color: var(--w-ink) !important; background: linear-gradient(135deg, #fff 0%, var(--w-ivory) 100%); }
.w-citytiles a:hover { border-color: var(--w-green); box-shadow: 0 0 0 1px var(--w-green) inset; }
.w-citytiles__name { font-family: var(--w-serif); font-size: 22px; font-weight: 700; grid-column: 1; }
.w-citytiles__n { grid-column: 2; grid-row: 1; font-size: 13px; color: var(--w-green); font-weight: 700; }
.w-citytiles__price { grid-column: 1 / -1; font-size: 13px; color: var(--w-muted); }
.w-citytiles .is-empty { background: #fbfaf7; color: #a39d91 !important; }
.w-citytiles .is-empty .w-citytiles__n { color: #a39d91; }
@media (max-width: 1023px) { .w-citytiles { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767px) { .w-citytiles { grid-template-columns: 1fr 1fr; gap: 8px; } .w-citytiles a, .w-citytiles .is-empty { min-height: 80px; padding: 14px; } .w-citytiles__name { font-size: 18px; } }

/* ================= 画面案に寄せた見た目（2026-10-26） ================= */
:root { --w-silver: #9aa0a6; --w-bronze: #a87445; }

/* 見出し：まん中寄せ、左右に細い線と小さな花の飾り（画面案の h2） */
.w-h2 { display: flex; align-items: center; justify-content: center; gap: 18px; text-align: center; border-bottom: 0; padding-bottom: 0; margin-bottom: 24px; font-size: 25px; }
.w-h2::before, .w-h2::after { content: ""; flex: 0 1 72px; height: 1px; background: var(--w-gold); }
.w-h3 { position: relative; padding-left: 14px; }
.w-h3::before { content: ""; position: absolute; left: 0; top: .35em; bottom: .35em; width: 3px; border-radius: 2px; background: var(--w-gold); }

/* 見出しの横の写真（市・県のページ） */

/* 目次の帯（アイコンつき） */

/* 写真がまだない店の枠 */
.w-photo-soon { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; width: 100%; aspect-ratio: 4 / 3; border-radius: 6px; background: repeating-linear-gradient(135deg, #f6f1e6 0 12px, #f2ecdf 12px 24px); color: #a3967c; font-size: 13px; letter-spacing: .05em; }
.w-photo-soon--large { aspect-ratio: 3 / 2; font-size: 15px; }

/* カード：写真 ｜ 店名・紹介文 ｜ 料金などの表 ｜ ボタン（画面案の4列） */
.w-card { grid-template-columns: 200px minmax(0, 1fr) 280px 170px; align-items: start; gap: 20px; }
.w-card--big { grid-template-columns: 260px minmax(0, 1fr) 300px 180px; padding: 20px; }
.w-card__img { position: relative; }
.w-card__main { min-width: 0; }
.w-card__main .w-pr { margin-bottom: 6px; }
.w-card__name { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; margin-bottom: 8px; }
.w-card__rank { font-family: var(--w-serif); font-size: 15px; color: var(--w-muted); font-weight: 700; white-space: nowrap; }
.w-card__rank.is-r1 { color: #b08a3c; } .w-card__rank.is-r2 { color: #7d848b; } .w-card__rank.is-r3 { color: var(--w-bronze); }
.w-card__facts { grid-template-columns: 1fr; gap: 0; margin: 0; padding-left: 16px; border-left: 1px solid var(--w-line); }
.w-card__facts > div { flex-direction: row; gap: 10px; padding: 5px 0; border-bottom: 1px dashed var(--w-line); }
.w-card__facts > div:last-child { border-bottom: 0; }
.w-card__facts dt { flex: 0 0 6.5em; font-size: 12px; padding-top: 2px; }
.w-card__facts .is-main { flex-direction: column; gap: 0; }
.w-card__btns { flex-direction: column; align-self: center; }
.w-card__btns .w-btn { width: 100%; min-height: 48px; padding: 0 14px; gap: 6px; font-size: 14px; }
.w-btn--gold { border-color: var(--w-gold); color: #8a6b2e !important; }

/* 順位のリボン（1〜3位は王冠と金・銀・銅） */
.w-ribbon { position: absolute; z-index: 1; left: 8px; top: -6px; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 1px; width: 40px; padding: 6px 0 12px; color: #fff; background: var(--w-ink); clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 82%, 0 100%); font-family: var(--w-serif); }
.w-ribbon b { font-size: 18px; line-height: 1; }
.w-ribbon.is-r1 { background: linear-gradient(180deg, #d4b16a, #b08a3c); }
.w-ribbon.is-r2 { background: linear-gradient(180deg, #b9bfc5, #8a9197); }
.w-ribbon.is-r3 { background: linear-gradient(180deg, #c99567, #9b6a3d); }
.w-card.is-paid { border-color: var(--w-gold); box-shadow: 0 0 0 1px var(--w-gold) inset; }

/* よくある質問：パソコンは2列 */
.w-faq { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; align-items: start; }

/* ページの終わりの帯 */
.w-band { position: relative; margin-top: 56px; padding: 64px 0; text-align: center; background: linear-gradient(rgba(250, 247, 240, .55), rgba(250, 247, 240, .55)), var(--w-band-img) center / cover no-repeat; }
.w-band__title { text-shadow: 0 0 12px rgba(255, 255, 255, .9); }
.w-band__title { font-family: var(--w-serif); font-size: 24px; margin: 0 0 20px; letter-spacing: .08em; }
.w-band .w-btn { min-width: 260px; gap: 8px; }
/* main とフッターのあいだに構造化データの <script> が入るページもあるので「~」でつなぐ */
.w-band + .w-footer, main ~ .w-footer { margin-top: 0; }

@media (max-width: 1199px) {
  .w-card, .w-card--big { grid-template-columns: 220px minmax(0, 1fr) 260px; }
  .w-card__btns { grid-column: 2 / -1; flex-direction: row; justify-content: flex-end; }
  .w-card__btns .w-btn { width: auto; min-width: 180px; }
}
@media (max-width: 1023px) {
  .w-card, .w-card--big { grid-template-columns: 200px minmax(0, 1fr); }
  .w-card__facts { grid-column: 2; padding-left: 0; border-left: 0; }
  .w-card__btns { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
  .w-h2 { font-size: 20px; gap: 10px; }
  .w-h2::before, .w-h2::after { flex-basis: 20px; }
  .w-card, .w-card--big { grid-template-columns: 1fr; }
  .w-card:not(.w-card--big) { grid-template-columns: 104px minmax(0, 1fr); }
  .w-card__facts { grid-column: 1 / -1; }
  .w-card__btns { grid-column: 1 / -1; flex-direction: column; }
  .w-card__btns .w-btn { width: 100%; }
  .w-faq { grid-template-columns: 1fr; }
  .w-band { padding: 40px 0; }
  .w-band__title { font-size: 19px; }
}

/* 写真がまだない店：画像のあとに「写真掲載予定」（ストライプの枠をやめた） */
.w-photo-soon { position: relative; display: block; background: none; aspect-ratio: auto; }
.w-photo-soon img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; filter: saturate(.85); }
.w-photo-soon--large img { aspect-ratio: 3 / 2; }
.w-photo-soon__label { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: inline-flex; align-items: center; gap: 6px; padding: 6px 14px; border-radius: 999px; background: rgba(255, 255, 255, .9); color: var(--w-muted); font-size: 13px; white-space: nowrap; }
.w-photo-soon__label svg { width: 18px; height: 18px; }
.w-photo-soon--large .w-photo-soon__label { font-size: 15px; padding: 8px 18px; }

/* 順位を目立たせる（画面案の王冠のリボンに近く） */
.w-ribbon { width: 48px; padding: 7px 0 14px; left: 10px; top: -8px; }
.w-ribbon svg { width: 22px; height: 14px; }
.w-ribbon b { font-size: 22px; }
.w-card__rank { font-size: 18px; color: var(--w-ink); }
.w-card__rank.is-r1, .w-card__rank.is-r2, .w-card__rank.is-r3 { font-size: 20px; }

/* ---------------- トップページ ---------------- */
.w-brand-wrap { margin: 0; font-size: inherit; line-height: inherit; }
/* 講座 4-16「AI っぽさを消す3つの手当て」：角丸を小さく・実写の写真を大きく・写真に箱を重ねる */
.w-top .w-btn, .w-top .w-card, .w-top .w-citytiles a, .w-top .w-search, .w-top .w-reasons li { border-radius: 4px; }
.w-tophero { position: relative; min-height: 520px; display: flex; align-items: center; overflow: hidden; background: var(--w-ivory); }
.w-tophero picture, .w-tophero picture img { position: absolute; inset: 0; width: 100%; height: 100%; }
.w-tophero picture img { object-fit: cover; object-position: 76% center; }
.w-tophero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(250,247,240,.95) 0%, rgba(250,247,240,.75) 32%, rgba(250,247,240,0) 58%); }
.w-tophero__inner { position: relative; z-index: 1; width: 100%; padding-bottom: 72px; }
.w-tophero__catch { font-family: var(--w-serif); font-size: 42px; line-height: 1.45; font-weight: 700; margin: 0 0 14px; letter-spacing: .04em; }
.w-tophero__sub { font-family: var(--w-serif); font-size: 18px; margin: 0; color: #4a463f; letter-spacing: .08em; }
.w-search { position: relative; z-index: 2; margin-top: -64px; display: grid; grid-template-columns: repeat(2, 1fr) auto; gap: 16px; align-items: end; padding: 22px 24px; background: #fff; border: 1px solid var(--w-line); box-shadow: 0 8px 24px rgba(60, 50, 30, .08); }
.w-search__field label { display: block; font-size: 13px; font-weight: 700; margin-bottom: 6px; }
.w-search__field select { width: 100%; font: inherit; padding: 10px 12px; border: 1px solid var(--w-line); border-radius: 4px; background: #fff; }
.w-search__btn { min-height: 48px; }
.w-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; counter-reset: s; }
.w-steps li { display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; align-items: start; }
.w-steps__n { grid-row: span 2; display: inline-flex; width: 34px; height: 34px; align-items: center; justify-content: center; border-radius: 50%; background: var(--w-gold); color: #fff; font-family: var(--w-serif); font-weight: 700; }
.w-steps b { font-family: var(--w-serif); font-size: 18px; }
.w-steps li > span:last-child { font-size: 14px; color: var(--w-muted); }
.w-prefs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px 32px; }
.w-prefs__region { font-family: var(--w-serif); font-size: 16px; margin: 0 0 8px; padding: 0; }
.w-prefs__region::before { display: none; }
.w-prefs ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 14px; }
.w-prefs a { color: var(--w-green); font-weight: 700; }
.w-prefs span { color: #b3ada0; }
.w-reasons { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.w-reasons li { display: grid; grid-template-columns: 56px 1fr; gap: 4px 14px; padding: 20px; border: 1px solid var(--w-line); }
.w-reasons svg { grid-row: span 2; color: var(--w-gold); }
.w-reasons h3 { font-family: var(--w-serif); font-size: 18px; margin: 0; }
.w-reasons p { margin: 0; font-size: 14px; color: #4a463f; }
@media (max-width: 1023px) {
  .w-tophero { min-height: 440px; }
  .w-tophero__catch { font-size: 34px; }
  .w-search { grid-template-columns: repeat(2, 1fr); }
  .w-search__btn { grid-column: 1 / -1; }
  .w-reasons { grid-template-columns: 1fr; }
  .w-prefs { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
  .w-tophero { min-height: 0; flex-direction: column; align-items: stretch; }
  .w-tophero picture { position: relative; display: block; }
  .w-tophero picture img { position: relative; height: auto; aspect-ratio: 3 / 4; }
  .w-tophero::after { display: none; }
  .w-tophero__inner { position: absolute; left: 0; right: 0; top: 0; padding: 20px 16px 0; }
  .w-tophero__copy { background: rgba(250, 247, 240, .9); padding: 14px 16px; display: inline-block; }
  .w-tophero__catch { font-size: 22px; margin-bottom: 4px; }
  .w-tophero__sub { font-size: 14px; }
  .w-search { grid-template-columns: 1fr; margin-top: -40px; padding: 16px; }
  .w-steps { grid-template-columns: 1fr; gap: 16px; }
  .w-prefs { grid-template-columns: 1fr; }
}

/* トップのキャッチ「前撮り・…」が写真の二人にかからない・スマホで変に折り返さない大きさ */
.w-tophero__catch { font-size: 36px; }
@media (max-width: 1023px) { .w-tophero__catch { font-size: 28px; } }
@media (max-width: 767px) { .w-tophero__catch { font-size: 19px; letter-spacing: .02em; } .w-tophero__copy { padding: 12px 14px; } }

/* ---------------- 固定ページ（運営者情報・プライバシー・お問い合わせ） ---------------- */
.w-page { max-width: 880px; }
.w-page-title { font-family: var(--w-serif); font-size: 30px; margin: 20px 0 16px; letter-spacing: .03em; }
.w-page .w-section { padding-top: 28px; }
.w-page .w-h2 { justify-content: flex-start; font-size: 21px; }
.w-page .w-h2::before { display: none; }
.w-page ul { padding-left: 1.3em; }
.w-footnav ul { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 24px; font-size: 14px; }
.w-footnav a { color: var(--w-ink); text-decoration: none; }
.w-footnav a:hover { text-decoration: underline; }
/* Contact Form 7 */
.w-form .wpcf7-form p { margin: 0 0 18px; }
.w-form label { display: block; font-weight: 700; font-size: 15px; }
.w-form .w-req { display: inline-block; margin-left: 6px; padding: 0 6px; font-size: 11px; font-weight: 400; color: #fff; background: var(--w-red); border-radius: 3px; vertical-align: middle; }
.w-form .w-opt { display: inline-block; margin-left: 6px; padding: 0 6px; font-size: 11px; font-weight: 400; color: var(--w-muted); border: 1px solid var(--w-line); border-radius: 3px; vertical-align: middle; }
.w-form input[type="text"], .w-form input[type="email"], .w-form input[type="tel"], .w-form input[type="url"], .w-form select, .w-form textarea { display: block; width: 100%; margin-top: 6px; font: inherit; font-weight: 400; padding: 10px 12px; border: 1px solid #d8d0bf; border-radius: 4px; background: #fff; }
.w-form textarea { min-height: 180px; }
.w-form .wpcf7-acceptance label { display: inline; font-weight: 400; }
.w-form input[type="submit"] { font: inherit; font-weight: 700; min-width: 240px; min-height: 52px; border: 0; border-radius: 4px; background: var(--w-green); color: #fff; cursor: pointer; }
.w-form input[type="submit"]:hover { background: var(--w-green-dark); }
.w-form input[type="submit"]:disabled { opacity: .5; cursor: not-allowed; }
.w-form .wpcf7-not-valid-tip { font-size: 13px; color: var(--w-red); font-weight: 400; }
.w-form .wpcf7-response-output { margin: 16px 0 0 !important; padding: 12px 16px !important; border-radius: 4px; font-size: 14px; }
@media (max-width: 767px) { .w-page-title { font-size: 24px; } .w-form input[type="submit"] { width: 100%; } }

/* ---------------- ヘッダー・フッター（講座 4-18） ---------------- */
.w-header { position: relative; z-index: 20; }
.w-header__inner { gap: 24px; }
.w-brand { display: inline-flex; align-items: center; gap: 10px; }
.w-brand__mark { display: block; width: 36px; height: 36px; flex: none; }
.w-nav-toggle { position: absolute; opacity: 0; pointer-events: none; }
.w-nav-btn { display: none; }
.w-gnav { margin-left: auto; }
.w-gnav .w-menu { list-style: none; margin: 0; padding: 0; display: flex; gap: 4px 28px; font-size: 14px; }
.w-gnav a { color: var(--w-ink); text-decoration: none; padding: 8px 0; display: inline-block; border-bottom: 2px solid transparent; }
.w-gnav a:hover, .w-gnav .current-menu-item > a { border-bottom-color: var(--w-gold); }
.w-footer { text-align: left; }
.w-footareas { padding-bottom: 24px; margin-bottom: 24px; border-bottom: 1px solid var(--w-line); }
.w-footareas__title { font-family: var(--w-serif); font-weight: 700; margin: 0 0 12px; }
.w-footareas__group { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 20px; font-size: 14px; }
.w-footareas__pref { font-weight: 700; color: var(--w-ink); }
.w-footareas ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 16px; }
.w-footareas a { color: var(--w-ink); }
.w-footnav ul { justify-content: flex-start; }
.w-footer .w-small, .w-copy { text-align: left; }
.w-postlist { list-style: none; padding: 0 !important; margin: 0; border-top: 1px solid var(--w-line); }
.w-postlist li { padding: 14px 4px; border-bottom: 1px solid var(--w-line); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 16px; }
.w-postlist .w-small { margin: 0; }
.w-prose { line-height: 1.9; }
.w-prose h2 { font-family: var(--w-serif); font-size: 22px; margin: 40px 0 14px; }
.w-prose h3 { font-family: var(--w-serif); font-size: 18px; margin: 28px 0 10px; }
.w-prose img { max-width: 100%; height: auto; }
@media (max-width: 767px) {
  .w-header__inner { min-height: 56px; gap: 12px; }
  .w-brand { font-size: 17px; }
  .w-brand__mark { width: 30px; height: 30px; }
  .w-nav-btn { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; padding: 8px 10px; min-height: 44px; font-size: 12px; color: var(--w-ink); cursor: pointer; border: 1px solid var(--w-line); border-radius: 4px; background: #fff; }
  .w-nav-btn__bars { display: inline-flex; flex-direction: column; gap: 4px; }
  .w-nav-btn__bars span { display: block; width: 18px; height: 2px; background: currentColor; transition: transform .2s, opacity .2s; }
  .w-nav-toggle:checked ~ .w-nav-btn .w-nav-btn__bars span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .w-nav-toggle:checked ~ .w-nav-btn .w-nav-btn__bars span:nth-child(2) { opacity: 0; }
  .w-nav-toggle:checked ~ .w-nav-btn .w-nav-btn__bars span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .w-nav-toggle:focus-visible ~ .w-nav-btn { outline: 2px solid var(--w-green); outline-offset: 2px; }
  .w-gnav { display: none; position: absolute; top: 100%; left: 0; right: 0; background: #fff; border-bottom: 1px solid var(--w-line); box-shadow: 0 8px 16px rgba(0,0,0,.06); }
  .w-nav-toggle:checked ~ .w-gnav { display: block; }
  .w-gnav .w-menu { flex-direction: column; gap: 0; padding: 4px 16px 12px; font-size: 15px; }
  .w-gnav .w-menu li { border-bottom: 1px solid var(--w-line); }
  .w-gnav .w-menu li:last-child { border-bottom: 0; }
  .w-gnav a { display: block; padding: 14px 4px; border-bottom: 0; }
}

/* ---------------- 選ぶポイントの写真つきカード（Codex 第2弾） ---------------- */
@media (max-width: 767px) {
  .w-band { background-image: linear-gradient(rgba(250, 247, 240, .6), rgba(250, 247, 240, .6)), var(--w-band-img-sm); }
}
/* スマホのヘッダー：ロゴ＋サイト名とメニューのボタンを1行に収める */
@media (max-width: 767px) {
  .w-header__inner { gap: 8px; }
  .w-brand { gap: 8px; font-size: 15px; white-space: nowrap; letter-spacing: 0; }
  .w-brand__mark { width: 28px; height: 28px; }
  .w-nav-btn { flex: none; gap: 5px; padding: 8px; font-size: 11px; white-space: nowrap; }
}

/* ---------------- 撮影プランの相談（講座 4-23） ---------------- */
.w-consult-wrap { max-width: 880px; }
.w-consult-head { display: grid; grid-template-columns: 1fr 360px; gap: 28px; align-items: center; margin-bottom: 8px; }
.w-consult-head img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 8px; }
.w-consult { margin-top: 24px; padding: 28px 32px; background: #fff; border: 1px solid var(--w-line); border-radius: 10px; scroll-margin-top: 16px; }
.w-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.w-consult__error { margin: 0 0 16px; padding: 12px 16px; border-radius: 6px; background: #fbeee9; color: var(--w-red); font-weight: 700; }
.w-consult__count { margin: 0 0 6px; font-size: 13px; color: var(--w-muted); }
.w-consult__bar { height: 6px; border-radius: 3px; background: var(--w-ivory-deep); overflow: hidden; margin-bottom: 24px; }
.w-consult__bar span { display: block; height: 100%; background: var(--w-green); transition: width .3s; }
.w-step { border: 0; margin: 0 0 28px; padding: 0; min-width: 0; }
.w-step legend { font-family: var(--w-serif); font-size: 21px; font-weight: 700; margin-bottom: 16px; padding: 0; outline: none; }
.w-legend-note { margin-left: 8px; font-family: var(--w-sans); font-size: 13px; font-weight: 400; color: var(--w-muted); }
.w-choices { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; }
.w-choice { position: relative; display: block; font-weight: 400 !important; cursor: pointer; }
.w-choice input { position: absolute; opacity: 0; }
.w-choice span { display: flex; align-items: center; min-height: 52px; padding: 10px 16px 10px 44px; border: 1px solid #d8d0bf; border-radius: 6px; background: #fff; line-height: 1.5; }
.w-choice span::before { content: ""; position: absolute; left: 16px; top: 50%; width: 18px; height: 18px; margin-top: -9px; border: 1.5px solid #b8ad97; border-radius: 50%; background: #fff; }
.w-choice input[type="checkbox"] + span::before { border-radius: 4px; }
.w-choice input:checked + span { border-color: var(--w-green); background: #f1f6f2; font-weight: 700; }
.w-choice input:checked + span::before { border-color: var(--w-green); background: var(--w-green); box-shadow: inset 0 0 0 3px #fff; }
.w-choice input:focus-visible + span { outline: 2px solid var(--w-green); outline-offset: 2px; }
.w-consult__range { margin: 0 0 16px; padding: 12px 16px; border-radius: 6px; background: var(--w-ivory); font-size: 14px; line-height: 1.8; }
.w-consult__shop { margin: 0 0 16px; padding: 10px 14px; border-left: 3px solid var(--w-gold); background: var(--w-ivory); }
.w-consult__notice { margin: 8px 0 16px; padding: 14px 18px; border-radius: 6px; background: var(--w-ivory); font-size: 14px; }
.w-consult__notice p { margin: 0 0 6px; }
.w-consult__notice ul { margin: 0; padding-left: 1.2em; }
.w-consult__agree label { font-weight: 400 !important; }
.w-consult__nav { display: flex; gap: 12px; justify-content: space-between; flex-wrap: wrap; }
.w-consult__nav .w-btn { min-width: 160px; font: inherit; font-weight: 700; cursor: pointer; }
.w-consult__nav [data-next], .w-consult__nav [data-submit] { margin-left: auto; }
.w-consult__nav .w-btn:disabled { opacity: .6; cursor: wait; }
.w-consult__no { font-size: 18px; }
.w-consult__back { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
/* 市・県のページの相談の案内 */
.w-consult-cta { display: flex; align-items: center; justify-content: space-between; gap: 16px 24px; flex-wrap: wrap; margin: 24px 0 0; padding: 20px 24px; border: 1px solid var(--w-line); border-radius: 8px; background: var(--w-ivory); }
.w-consult-cta p { margin: 0; }
.w-consult-cta b { font-family: var(--w-serif); font-size: 18px; }
@media (max-width: 767px) {
  .w-consult-head { grid-template-columns: 1fr; gap: 16px; }
  .w-consult { padding: 20px 16px; }
  .w-step legend { font-size: 19px; }
  .w-choices { grid-template-columns: 1fr; }
  .w-consult__nav .w-btn { flex: 1 1 0; min-width: 0; }
  .w-consult-cta .w-btn { width: 100%; }
}
.w-consult [hidden] { display: none !important; }

/* ---------------- 画面案 01 に近づける（2026-10-26）：横いっぱいの写真・目次カード・飾り・選ぶポイント・フッター ---------------- */
.w-main { overflow-x: clip; }
.w-hero { position: relative; display: block; min-height: 440px; margin: 12px calc(50% - 50vw) 0; padding: 56px max(24px, calc(50vw - 556px)) 84px; background: var(--w-ivory); overflow: hidden; }
.w-hero::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(250, 247, 240, .97) 0%, rgba(250, 247, 240, .92) 36%, rgba(250, 247, 240, .35) 56%, rgba(250, 247, 240, 0) 68%); }
.w-hero__img { position: absolute; inset: 0; margin: 0; }
.w-hero__img img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 80% 35%; }
.w-hero__text { position: relative; z-index: 2; max-width: 540px; }
.w-hero .w-area-title { font-size: 38px; line-height: 1.45; }
.w-hero__text .w-lead { font-size: 16px; }
.w-ornament { display: flex; align-items: center; gap: 12px; max-width: 320px; margin: 20px 0 0; }
.w-ornament::before, .w-ornament::after { content: ""; flex: 1; height: 1px; background: var(--w-gold); opacity: .7; }
.w-ornament img { display: block; width: 22px; height: 22px; }
.w-tocstrip { position: relative; z-index: 3; max-width: 1040px; margin: -44px auto 8px; padding: 14px 28px 16px; background: #fff; border: 1px solid var(--w-line); border-radius: 8px; box-shadow: 0 6px 20px rgba(60, 50, 30, .08); }
.w-tocstrip__title { display: flex; align-items: center; gap: 12px; justify-content: center; margin: 0 0 10px; font-family: var(--w-serif); font-size: 14px; color: var(--w-muted); }
.w-tocstrip__title::before, .w-tocstrip__title::after { content: ""; width: 120px; height: 1px; background: var(--w-line); }
.w-tocstrip ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 36px; }
.w-tocstrip a { display: inline-block; padding: 4px 0; font-size: 14px; color: var(--w-ink) !important; text-decoration: none; }
.w-tocstrip a::before { content: "›"; margin-right: 8px; color: var(--w-gold); }
.w-tocstrip a:hover { text-decoration: underline; }
/* 市のタイル：写真を上に */
.w-citytiles a, .w-citytiles .is-empty { grid-template-rows: auto auto auto; padding: 0 0 14px; overflow: hidden; align-items: start; }
.w-citytiles__photo { grid-column: 1 / -1; display: block; aspect-ratio: 16 / 7; margin-bottom: 10px; background: linear-gradient(135deg, var(--w-ivory) 0%, var(--w-ivory-deep) 100%); }
.w-citytiles__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.w-citytiles .is-empty .w-citytiles__photo { opacity: .5; }
.w-citytiles__name { grid-row: 2; padding-left: 18px; }
.w-citytiles__n { grid-row: 2; padding-right: 18px; align-self: center; }
.w-citytiles__price { grid-row: 3; padding: 0 18px; }
/* 選ぶポイント：小さい写真を左、文字を右 */
.w-points { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 8px 0 28px; }
.w-point { display: grid; grid-template-columns: 120px 1fr; gap: 0 14px; align-items: start; padding: 14px; background: #fff; border: 1px solid var(--w-line); border-radius: 8px; }
.w-point img { grid-row: 1 / span 2; display: block; width: 120px; height: 120px; object-fit: cover; border-radius: 6px; }
.w-point__title { font-family: var(--w-serif); font-size: 16px; line-height: 1.5; margin: 2px 0 6px; }
.w-point p { margin: 0; font-size: 13px; line-height: 1.8; }
/* フッター：ロゴとサイト名を左、メニューを横1列 */
.w-foot-top { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px 32px; padding-bottom: 20px; margin-bottom: 20px; border-bottom: 1px solid var(--w-line); }
.w-foot-brand { display: inline-flex; align-items: center; gap: 10px; font-family: var(--w-serif); font-size: 18px; font-weight: 700; color: var(--w-ink) !important; text-decoration: none; }
.w-foot-brand .w-brand__mark { width: 32px; height: 32px; }
.w-foot-top .w-footnav ul { margin: 0; }
@media (max-width: 1023px) {
  .w-hero { min-height: 380px; padding: 40px 24px 72px; }
  .w-hero::before { background: linear-gradient(90deg, rgba(250, 247, 240, .97) 0%, rgba(250, 247, 240, .9) 48%, rgba(250, 247, 240, .2) 78%); }
  .w-hero .w-area-title { font-size: 30px; }
  .w-hero__text { max-width: 460px; }
  .w-hero__text .w-lead { font-size: 15px; line-height: 1.9; }
  .w-tocstrip { margin: -40px 16px 8px; }
  .w-points { grid-template-columns: 1fr; }
  .w-point { grid-template-columns: 160px 1fr; }
  .w-point img { width: 160px; height: 120px; }
}
@media (max-width: 767px) {
  .w-hero { min-height: 0; margin-top: 8px; padding: 0 0 56px; }
  .w-hero::before { display: none; }
  .w-hero__img { position: relative; inset: auto; }
  .w-hero__img img { height: 220px; object-position: 78% 35%; }
  .w-hero__text { max-width: none; padding: 18px 16px 0; }
  .w-hero .w-area-title { font-size: 25px; }
  .w-tocstrip { margin: -36px 0 8px; padding: 12px 14px 12px; }
  .w-tocstrip__title::before, .w-tocstrip__title::after { width: 48px; }
  .w-tocstrip ul { display: grid; grid-template-columns: 1fr 1fr; gap: 2px 12px; justify-content: stretch; }
  .w-point { grid-template-columns: 96px 1fr; padding: 12px; gap: 0 12px; }
  .w-point img { width: 96px; height: 96px; }
  .w-citytiles__name { padding-left: 12px; }
  .w-citytiles__n { padding-right: 12px; }
  .w-citytiles__price { padding: 0 12px; }
  .w-foot-top { flex-direction: column; align-items: flex-start; }
}

/* お問い合わせ：説明の横に写真（飾り） */
.w-contact-head { display: grid; grid-template-columns: 1fr 220px; gap: 28px; align-items: center; }
.w-contact-head img { width: 220px; height: 260px; object-fit: cover; border-radius: 8px; }
@media (max-width: 767px) { .w-contact-head { grid-template-columns: 1fr; } .w-contact-head img { display: none; } }

/* 料金比較の表：撮影場所・衣装・詳しく見る（講座 5-5・8-8、画面案 02 v2） */
.w-compare { min-width: 960px; }
.w-compare td { font-size: 14px; }
.w-compare tbody th { min-width: 11em; }
.w-btn--sm { min-height: 36px; padding: 0 14px; font-size: 13px; white-space: nowrap; }
@media (max-width: 767px) {
  .w-table.w-compare thead { display: table-header-group; }
  .w-compare tbody th { position: sticky; left: 0; z-index: 1; background: #fff; min-width: 9em; }
  .w-table-wrap { margin: 0 -16px; padding: 0 16px; }
}
/* 表の中の読み上げ用の文字が、横にずらす枠の外へはみ出してページを広げないように */
.w-table-wrap { position: relative; }
.w-compare td:nth-child(2), .w-compare td:nth-child(3), .w-compare td:nth-child(4), .w-compare td:nth-child(7) { white-space: nowrap; }
/* 帯のないページは、中身とフッターのあいだを空ける（帯で終わるページは帯がそのままフッターにつながる） */
.w-main { padding-bottom: 56px; }
.w-main:has(> .w-band:last-child) { padding-bottom: 0; }
/* 市のタイルの写真：青空などの強い色を、サイトのアイボリーと金になじむようにやわらげる（2026-10-26 運営者の依頼） */
.w-citytiles__photo { position: relative; overflow: hidden; }
.w-citytiles__photo img { filter: saturate(.62) sepia(.18) brightness(1.06) contrast(.94); transition: filter .3s; }
.w-citytiles__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(250, 247, 240, .12) 0%, rgba(250, 247, 240, 0) 45%, rgba(250, 247, 240, .35) 100%); pointer-events: none; }
.w-citytiles a:hover .w-citytiles__photo img { filter: saturate(.85) sepia(.08) brightness(1.03); }
/* ランキングのカード（2026-10-26 スマホで崩れていたところ） */
/* 「最安の和装プラン」の見出し：縦に並べるとき、項目名の幅（6.5em）が高さになって大きなすき間ができていた */
.w-card__facts .is-main dt { flex: none; }
/* 4位以下の小さいカード：写真が小さいので、順位の印を小さく、「写真掲載予定」を写真の下のほうへ */
.w-card:not(.w-card--big) .w-ribbon { width: 30px; padding: 4px 0 8px; left: 4px; top: -4px; }
.w-card:not(.w-card--big) .w-ribbon svg { display: none; }
.w-card:not(.w-card--big) .w-ribbon b { font-size: 15px; }
.w-card:not(.w-card--big) .w-photo-soon__label { top: auto; bottom: 6px; transform: translateX(-50%); gap: 3px; padding: 3px 8px; font-size: 10px; white-space: nowrap; }
.w-card:not(.w-card--big) .w-photo-soon__label svg { width: 12px; height: 12px; }
/* ボタンや入力欄は、ブラウザの決まり（Arial など）ではなく、サイトと同じ書体にする（2026-10-26） */
button, input, select, textarea { font-family: inherit; }
.w-search__btn { font-size: 16px; }
/* スマホのトップ：写真を低くして、検索窓を最初の画面に入れる（2026-10-26 運営者の依頼） */
@media (max-width: 767px) {
  .w-tophero picture img { aspect-ratio: 1 / 1; object-fit: cover; object-position: 50% 72%; }
  .w-search { margin-top: -56px; }
}
@media (max-width: 767px) { .w-tophero__catch { font-size: clamp(15px, 4.6vw, 19px); } }
/* 検索窓の項目名は見出しと同じ明朝（画面案のトップ。2026-10-26 運営者の依頼）。選ぶ欄とボタンは読みやすさのためゴシックのまま */
.w-search label { font-family: var(--w-serif); font-weight: 700; font-size: 14px; letter-spacing: .06em; color: var(--w-ink); }
/* スマホの料金比較の表：店名の列を止めたとき、左のすき間からほかの列の文字が見えないように。見出しの「スタジオ」も一緒に止める（2026-10-26） */
@media (max-width: 767px) {
  .w-table-wrap { margin: 0; padding: 0; }
  .w-compare thead th:first-child { position: sticky; left: 0; z-index: 2; background: var(--w-ivory); }
  .w-compare tbody th { box-shadow: 1px 0 0 var(--w-line); }
}
/* スマホでは見出しの下の金の飾りを横いっぱいにして、花の紋を画面のまん中に（2026-10-26） */
@media (max-width: 767px) { .w-ornament { max-width: none; margin: 18px 0 0; } }

/* ================= 画面案 01 にもう一段寄せる（2026-10-27 運営者の依頼「白の背景だと寂しい」） =================
   ・ページの地をうすいクリーム色に。カードや表は白のまま浮かせる
   ・ページの角に金茶の線の桜の枝（deco-blossom.svg。実在の場所ではない飾り）
   ・目次はアイコンつきのカード、選ぶポイントは写真を上に、近くの市は写真の帯にボタン */
:root { --w-cream: #fefdfa; --w-shadow: 0 2px 14px rgba(90, 72, 40, .07); }
html, body { background: var(--w-cream); }
.w-header { background: rgba(254, 253, 250, .96); border-bottom-color: #ebe3d2; }
.w-footer { background: #faf7f1; }
.w-main { position: relative; }
.w-main > * { position: relative; z-index: 1; }
/* 飾りは文字の後ろにかからないよう、ページの左の余白と、写真の帯・フッターの中だけに置く */
.w-main::before { content: ""; position: absolute; z-index: 0; left: -190px; top: 0; width: 280px; height: 330px; pointer-events: none; background: url(img/deco-blossom.svg) no-repeat center / contain; opacity: .5; }
.w-footer { position: relative; overflow: hidden; }
.w-footer::before { content: ""; position: absolute; left: -70px; bottom: -40px; width: 260px; height: 300px; pointer-events: none; background: url(img/deco-blossom.svg) no-repeat center / contain; opacity: .45; transform: scaleY(-1) rotate(-8deg); }
.w-footer > * { position: relative; }
.w-hero { background: var(--w-cream); }
.w-hero::before { background: linear-gradient(90deg, rgba(254, 253, 250, .97) 0%, rgba(254, 253, 250, .9) 36%, rgba(254, 253, 250, .3) 56%, rgba(254, 253, 250, 0) 68%); }
.w-hero__text::before { content: ""; position: absolute; left: -150px; top: -70px; width: 230px; height: 270px; background: url(img/deco-blossom.svg) no-repeat center / contain; opacity: .6; pointer-events: none; z-index: -1; }

/* カード・表・質問は白で浮かせる */
.w-card, .w-point, .w-consult-cta, .w-tools, .w-keyfacts { box-shadow: var(--w-shadow); }
.w-consult-cta { background: #fff; }
.w-tools { background: #fff; border: 1px solid var(--w-line); }
.w-table-wrap { background: #fff; border: 1px solid var(--w-line); border-radius: 8px; box-shadow: var(--w-shadow); }
.w-table thead th { background: #f6f0e3; color: #5b554a; }
.w-faq details { background: #fff; border: 1px solid var(--w-line); border-radius: 6px; padding: 2px 14px; margin-bottom: 10px; }
.w-faq summary::before { background: #c7a463; }
.w-marks li { background: #fff; }
.w-marks .is-off { background: #f8f5ee; }
.w-rows, .w-plans { background: #fff; }

/* 見出し：少し大きく、線は先に行くほど薄く */
.w-h2 { font-size: 27px; letter-spacing: .06em; }
.w-h2::before { background: linear-gradient(90deg, rgba(179, 146, 86, 0), var(--w-gold)); }
.w-h2::after { background: linear-gradient(90deg, var(--w-gold), rgba(179, 146, 86, 0)); }
.w-section { padding-top: 48px; }

/* 目次：アイコンつきのカードを横に並べる */
.w-tocstrip { padding: 0; border-radius: 10px; }
.w-tocstrip ul { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 0; }
.w-tocstrip li + li { border-left: 1px solid var(--w-line); }
.w-tocstrip a { display: flex; align-items: center; gap: 12px; padding: 18px 20px; height: 100%; }
.w-tocstrip a::before { display: none; }
.w-tocstrip a:hover { text-decoration: none; background: #fdfaf3; }
.w-tocstrip__icon { flex: none; width: 30px; height: 30px; color: var(--w-gold); }
.w-tocstrip__text { display: flex; flex-direction: column; line-height: 1.5; }
.w-tocstrip__text b { font-family: var(--w-serif); font-size: 15px; letter-spacing: .04em; }
.w-tocstrip__text small { font-size: 12px; color: var(--w-muted); }

/* ランキングのカードの項目にアイコン（画面案の円・ピン・着物・データなど） */
.w-card__facts > div > dt::before { content: ""; display: inline-block; vertical-align: -2px; width: 14px; height: 14px; margin-right: 5px; background: var(--w-gold); -webkit-mask: var(--w-ic) no-repeat center / contain; mask: var(--w-ic) no-repeat center / contain; }
.w-card__facts > .is-f1 { --w-ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M7 4l5 7 5-7M12 11v9M8 12.5h8M8 16h8'/%3E%3C/svg%3E"); }
.w-card__facts > .is-f2 { --w-ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Crect x='5' y='3' width='14' height='18' rx='2'/%3E%3Cpath d='M8 7h8M8 12h2M14 12h2M8 16h2M14 16h2'/%3E%3C/svg%3E"); }
.w-card__facts > .is-f3 { --w-ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E"); }
.w-card__facts > .is-f4 { --w-ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M9 3l3 4 3-4 5 3-2 4-2-1v12H8V9l-2 1-2-4z'/%3E%3C/svg%3E"); }
.w-card__facts > .is-f5 { --w-ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Ccircle cx='9' cy='10' r='1.8'/%3E%3Cpath d='M21 16l-5-5-8 8'/%3E%3C/svg%3E"); }
.w-card__facts > .is-f6 { --w-ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M12 21s-6-6.2-6-11a6 6 0 0112 0c0 4.8-6 11-6 11z'/%3E%3Ccircle cx='12' cy='10' r='2.2'/%3E%3C/svg%3E"); }

/* 撮れる場所（2026-10-30）：しぼりこみのボタンと同じ言葉の小さな札。押したボタンに当たる札は濃く */
.w-card__facts > .w-card__places { --w-ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M4 8h3l2-3h6l2 3h3v11H4z'/%3E%3Ccircle cx='12' cy='13' r='3.5'/%3E%3C/svg%3E"); }
.w-card__places ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px; }
.w-card__places li { font-size: 12px; line-height: 1; padding: 4px 8px; border-radius: 999px; background: #f6f0e2; color: #6b5323; }
.w-card__places li[data-place-chip="studio"], .w-card__places li[data-place-chip="location"] { background: #ecf2ec; color: #34503c; }
.w-card__places li.is-hit { background: #8a6d33; color: #fff; }
.w-card__places li[data-place-chip="studio"].is-hit, .w-card__places li[data-place-chip="location"].is-hit { background: #4a6b52; color: #fff; }
.w-card__costume.is-hit { background: #8e2c3a; color: #fff; border-radius: 999px; padding: 1px 7px; }
.w-cardmarks li.is-hit { background: #4b6478; border-color: #4b6478; color: #fff; }
.w-card__facts > .is-f5.is-hit dd { color: #384c5c; font-weight: 700; }
.w-card__priceline { display: block; }
.w-card__priceline + .w-card__priceline { margin-top: 2px; }
.w-card__altnote { display: block; font-size: 12px; margin-top: 2px; }

/* 選ぶポイント：写真を上に大きく（画面案 01） */
.w-point { display: block; padding: 0 0 18px; overflow: hidden; }
.w-point img { width: 100%; height: auto; aspect-ratio: 16 / 9; border-radius: 0; margin-bottom: 14px; }
.w-point__title, .w-point p { padding: 0 18px; }
.w-point__title { font-size: 17px; margin-bottom: 8px; }
.w-point p { font-size: 14px; }

/* 近くの市：写真の帯に「○○市で探す」 */
.w-nearby { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.w-nearby a { position: relative; display: block; overflow: hidden; border-radius: 8px; border: 1px solid var(--w-line); box-shadow: var(--w-shadow); text-decoration: none; color: var(--w-ink) !important; background: #fff; }
.w-nearby .w-citytiles__photo { display: block; aspect-ratio: 16 / 6; margin: 0; }
.w-nearby .w-citytiles__photo.is-none { background: url(img/deco-blossom.svg) no-repeat right -24px center / 130px auto, linear-gradient(135deg, #f6efe0 0%, #efe4cd 100%); }
.w-nearby__label { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: inline-flex; align-items: center; gap: 8px; padding: 9px 18px; border-radius: 4px; background: rgba(255, 255, 255, .94); font-family: var(--w-serif); font-weight: 700; font-size: 15px; white-space: nowrap; box-shadow: 0 2px 8px rgba(0, 0, 0, .08); }
.w-nearby__n { font-family: var(--w-sans); font-weight: 400; font-size: 12px; color: var(--w-muted); }
.w-nearby a:hover .w-nearby__label { color: var(--w-green); }

@media (max-width: 1023px) {
  .w-tocstrip ul { grid-auto-flow: row; grid-template-columns: repeat(2, 1fr); }
  .w-tocstrip li:nth-child(odd) { border-left: 0; }
  .w-tocstrip li:nth-child(n+3) { border-top: 1px solid var(--w-line); }
  .w-points { grid-template-columns: repeat(3, 1fr); }
  .w-point img { width: 100%; height: auto; }
  .w-nearby { grid-template-columns: repeat(2, 1fr); }
  .w-main::before { display: none; }
  .w-hero__text::before { display: none; }
}
@media (max-width: 767px) {
  .w-h2 { font-size: 21px; }
  .w-section { padding-top: 40px; }
  .w-tocstrip a { padding: 12px 10px; gap: 8px; }
  .w-tocstrip__icon { width: 24px; height: 24px; }
  .w-tocstrip__text b { font-size: 13px; }
  .w-tocstrip__text small { display: none; }
  .w-points { grid-template-columns: 1fr; }
  .w-point { padding-bottom: 14px; }
  .w-point img { width: 100%; height: auto; aspect-ratio: 16 / 8; }
  .w-nearby { grid-template-columns: 1fr 1fr; gap: 10px; }
  .w-nearby .w-citytiles__photo { aspect-ratio: 16 / 9; }
  .w-nearby__label { padding: 6px 10px; font-size: 13px; gap: 4px; }
  .w-nearby__n { display: none; }
  .w-footer::before { width: 180px; height: 210px; left: -60px; opacity: .35; }
  .w-faq details { padding: 2px 10px; }
}
/* アイコンを足したぶん、項目名の幅を広げて「総額の目安」が2行に折れないように */
.w-card__facts > div:not(.is-main) > dt { flex: 0 0 7.8em; white-space: nowrap; }
/* 写真（写真AC）がまだない市のタイルは、無地ではなく桜の枝の飾り */
.w-citytiles__photo.is-none { background: url(img/deco-blossom.svg) no-repeat right -24px center / 140px auto, linear-gradient(135deg, #f6efe0 0%, #efe4cd 100%); }
.w-citytiles .is-empty .w-citytiles__photo.is-none { opacity: .5; }
/* トップの「注目の撮影エリア」：写真の帯に名前・件数・最安を重ねる。パソコンは4列で2行に収める（2026-10-27） */
.w-nearby--top { grid-template-columns: repeat(4, 1fr); }
.w-nearby--top .w-citytiles__photo { aspect-ratio: 16 / 8; }
.w-nearby--top .w-nearby__label { flex-direction: column; gap: 0; padding: 8px 16px; line-height: 1.5; text-align: center; }
.w-nearby__name { display: inline-flex; align-items: baseline; gap: 6px; }
.w-nearby__price { font-family: var(--w-sans); font-weight: 400; font-size: 11px; color: var(--w-muted); }
@media (max-width: 1023px) { .w-nearby--top { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 767px) {
  .w-nearby--top { grid-template-columns: 1fr 1fr; }
  .w-nearby--top .w-citytiles__photo { aspect-ratio: 16 / 10; }
  .w-nearby--top .w-nearby__label { padding: 5px 10px; }
  .w-nearby--top .w-nearby__n { display: inline; }
  .w-nearby__price { font-size: 10px; }
}
/* 市のページの見出しの写真（手つなぎ）：左のクリームの地に文字、右に写真。スマホは写真の右端に合わせて二人の手が入るように（2026-10-27） */
.w-hero__img--hands img { object-position: 100% 42%; }
@media (max-width: 767px) { .w-hero__img--hands img { object-position: 100% 45%; } }
.w-hero__img picture { display: block; width: 100%; height: 100%; }
/* 手つなぎの写真は左にクリームの地を足してあるので、パソコンでは白いもやをかけない（黒い着物が灰色に見えないように）。文字は写真にかからない幅に */
@media (min-width: 1200px) {
  .w-hero:has(.w-hero__img--hands)::before { display: none; }
  .w-hero:has(.w-hero__img--hands) .w-hero__text { max-width: 500px; }
}
@media (max-width: 767px) { .w-hero__img--hands img { height: auto; aspect-ratio: 16 / 9; object-position: 50% 50%; } }
/* 県のページの「市から探す」：店がまだない市（準備中）は押せない帯にして、うすく出す */
.w-nearby__empty { position: relative; display: block; overflow: hidden; border-radius: 8px; border: 1px solid var(--w-line); background: #fff; opacity: .6; }
.w-nearby__empty .w-nearby__label { color: var(--w-muted); box-shadow: none; }
/* 手つなぎの写真：タブレット・小さめのパソコンでも、もやをかけずに文字を写真の手前（左のクリームの地）に収める */
@media (min-width: 768px) and (max-width: 1199px) {
  .w-hero:has(.w-hero__img--hands)::before { display: none; }
  .w-hero:has(.w-hero__img--hands) .w-hero__text { max-width: calc(35% - 16px); }
  .w-hero:has(.w-hero__img--hands) .w-hero__text .w-lead { font-size: 14px; }
  .w-hero:has(.w-hero__img--hands) .w-area-title { font-size: 26px; }
}
/* ---------- トップの見出し（2026-10-27 運営者の依頼：画面案のように、写真の上に直接明朝の文字を重ねる。とくにスマホ） ---------- */
.w-sp { display: none; }
.w-tophero__catch { letter-spacing: .06em; text-shadow: 0 0 18px rgba(254, 253, 250, .9); }
.w-tophero__sub { text-shadow: 0 0 12px rgba(254, 253, 250, .9); }
.w-tophero .w-ornament { max-width: 300px; margin-top: 18px; }
@media (max-width: 767px) {
  .w-sp { display: inline; }
  /* 写真を縦長に大きく。上のほうをクリーム色にぼかして、そこに文字を重ねる（白い箱はやめる） */
  .w-tophero picture img { aspect-ratio: 4 / 5; object-position: 50% 62%; }
  .w-tophero::after { display: block; z-index: 0; background: linear-gradient(180deg, rgba(254, 253, 250, .97) 0%, rgba(254, 253, 250, .9) 30%, rgba(254, 253, 250, .35) 50%, rgba(254, 253, 250, 0) 62%); }
  .w-tophero__inner { z-index: 1; padding: 26px 20px 0; }
  .w-tophero__copy { display: block; background: none; padding: 0; }
  .w-tophero__catch { font-size: clamp(20px, 6.2vw, 25px); line-height: 1.55; margin-bottom: 8px; letter-spacing: .05em; }
  .w-tophero__sub { font-size: 14px; letter-spacing: .06em; }
  .w-tophero .w-ornament { max-width: 220px; margin: 12px 0 0; }
  .w-search { margin-top: -72px; }
}
/* スマホの検索窓：項目名とえらぶ欄を横に並べて背を低く（画面案のスマホ） */
@media (max-width: 767px) {
  .w-search { gap: 10px; padding: 14px 14px 16px; }
  .w-search__field { display: grid; grid-template-columns: 6.2em minmax(0, 1fr); align-items: center; gap: 8px; }
  .w-search__field label { margin: 0; font-size: 13px; }
  .w-search__field select { padding: 9px 10px; }
  .w-search__btn { min-height: 48px; margin-top: 4px; }
}
/* 検索窓を画面案に寄せる（2026-10-27 運営者の依頼）：項目名に金のアイコン、えらぶ欄は ›、ボタンに虫めがね */
.w-search { border-radius: 10px; }
.w-search label::before { content: ""; display: inline-block; vertical-align: -3px; width: 16px; height: 16px; margin-right: 6px; background: var(--w-gold); -webkit-mask: var(--w-ic) no-repeat center / contain; mask: var(--w-ic) no-repeat center / contain; }
.w-search__field:nth-of-type(1) { --w-ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M12 21s-6-6.2-6-11a6 6 0 0112 0c0 4.8-6 11-6 11z'/%3E%3Ccircle cx='12' cy='10' r='2.2'/%3E%3C/svg%3E"); }
.w-search__field:nth-of-type(2) { --w-ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M3 6l6-2 6 2 6-2v14l-6 2-6-2-6 2z'/%3E%3Cpath d='M9 4v14M15 6v14'/%3E%3C/svg%3E"); }
.w-search__field select { -webkit-appearance: none; appearance: none; padding-right: 32px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b39256' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E") no-repeat right 10px center / 14px; color: var(--w-ink); }
.w-search__btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; position: relative; border-radius: 6px; }
.w-search__arrow { position: absolute; right: 16px; font-size: 20px; line-height: 1; }
@media (min-width: 1024px) { .w-search__arrow { display: none; } }
@media (max-width: 767px) {
  .w-search { gap: 0; padding: 6px 16px 16px; }
  .w-search__field { padding: 10px 0; border-bottom: 1px solid var(--w-line); grid-template-columns: 7.2em minmax(0, 1fr); }
  .w-search__field select { border: 0; padding: 6px 28px 6px 4px; background-position: right 2px center; font-size: 15px; }
  .w-search__btn { margin-top: 14px; min-height: 50px; font-size: 15px; }
}
/* スマホのトップ：もやが写真の半分以上にかかって見にくかったので、文字のところだけにして、その下はくっきり見せる（2026-10-27） */
@media (max-width: 767px) {
  .w-tophero::after { background: linear-gradient(180deg, rgba(254, 253, 250, .96) 0%, rgba(254, 253, 250, .92) 30%, rgba(254, 253, 250, .55) 40%, rgba(254, 253, 250, 0) 47%); }
  .w-tophero picture img { aspect-ratio: 5 / 7; object-position: 50% 70%; }
  .w-tophero__inner { padding-top: 20px; }
  .w-tophero__catch { font-size: clamp(19px, 5.6vw, 23px); line-height: 1.5; margin-bottom: 6px; }
  .w-tophero__sub { font-size: 13px; }
  .w-tophero .w-ornament { margin-top: 8px; max-width: 200px; }
}
/* 地の色をもう少し白に寄せた（2026-10-27 運営者の依頼。#fbf7ee → #fefdfa） */
/* 地の色をさらに白に寄せた（2026-10-27 運営者の依頼。#fdfbf6 → #fefdfa） */
/* 相談：店・市のページから来たときの「撮影したい市」（最初の質問を飛ばしたとき） */
.w-consult__pre { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 0 0 18px; padding: 10px 14px; border-left: 3px solid var(--w-gold); background: var(--w-ivory); font-size: 15px; }
.w-consult__pre[hidden] { display: none; }
.w-consult__change { margin-left: auto; padding: 4px 12px; border: 1px solid var(--w-line); border-radius: 999px; background: #fff; color: var(--w-green); font-size: 13px; cursor: pointer; }
.w-consult__change:hover { border-color: var(--w-green); }
/* 相談の最初の質問：県 → 市（2026-10-29、1.30.6） */
.w-consult__sub { margin: 0 0 8px; color: var(--w-muted); font-size: 14px; font-weight: 700; }
.w-consult__cities { margin-top: 20px; }
.w-consult__cities[hidden] { display: none; }
.w-consult__cities[data-cities=""] { margin-top: 10px; }
/* スマホの店のページ：写真を店名のすぐ下に（2026-10-27 運営者の依頼。前は料金と相談ボタンのあと）。料金が遠くならないよう写真は少し横長に */
@media (max-width: 767px) {
  .w-shop-photo { order: 1; }
  .w-keyfacts { order: 2; }
  .w-cta { order: 3; }
  .w-shop-photo img, .w-shop-photo .w-photo-soon img { aspect-ratio: 16 / 10; }
}
/* ---------- 料金比較の表：12項目に増やし、○・札・色分けで見やすく（2026-10-27 運営者の依頼。講座 4-2「10〜15項目」） ---------- */
.w-compare { min-width: 1320px; }
.w-compare thead th { font-family: var(--w-serif); font-size: 13px; color: #5b554a; letter-spacing: .04em; line-height: 1.4; vertical-align: middle; border-bottom: 2px solid var(--w-gold); }
.w-compare thead th small { font-family: var(--w-sans); font-size: 11px; font-weight: 400; color: var(--w-muted); }
.w-compare tbody tr:nth-child(even) td, .w-compare tbody tr:nth-child(even) th { background: #fbf8f1; }
.w-compare tbody tr:hover td, .w-compare tbody tr:hover th { background: #f6f1e4; }
.w-compare tbody th, .w-compare thead th:first-child { position: sticky; left: 0; z-index: 1; background: #fff; box-shadow: 1px 0 0 var(--w-line); }
.w-compare thead th:first-child { z-index: 2; background: #f6f0e3; }
.w-compare tbody th a { font-family: var(--w-serif); font-size: 15px; text-decoration: none; color: var(--w-ink); }
.w-compare tbody th a:hover { text-decoration: underline; }
.w-compare td { vertical-align: middle; }
.w-compare td small { display: block; margin-top: 4px; font-size: 11px; line-height: 1.5; color: var(--w-muted); }
.w-tprice b { font-family: var(--w-serif); font-size: 18px; color: var(--w-ink); }
.w-tc { text-align: center !important; }
.w-tmark { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; font-weight: 700; font-size: 14px; }
.w-tmark.is-on { background: #e6efe8; color: var(--w-green); box-shadow: inset 0 0 0 1.5px var(--w-green); }
.w-tmark.is-off { color: #b8b1a3; }
.w-tag { display: inline-block; margin: 0 4px 3px 0; padding: 2px 9px; border-radius: 999px; font-size: 12px; font-weight: 700; line-height: 1.6; white-space: nowrap; }
.w-tag.is-studio { background: #edf3ee; color: var(--w-green); }
.w-tag.is-loc { background: #f7efdc; color: #8a6b2e; }
.w-tag.is-good { background: var(--w-green); color: #fff; }
.w-tcostume { min-width: 9.5em; }
.w-ctag { display: inline-block; margin: 0 4px 4px 0; padding: 1px 8px; border-radius: 3px; font-size: 12px; line-height: 1.7; white-space: nowrap; border: 1px solid; }
.w-ctag.is-shiromuku { background: #fff; color: #6f6a60; border-color: #d9d2c3; }
.w-ctag.is-iro-uchikake { background: #fbecea; color: #a8452f; border-color: #efc9c1; }
.w-ctag.is-hikifurisode { background: #f3eef7; color: #6b4f86; border-color: #ddd0e8; }
.w-ctag.is-kuro-hikifurisode { background: #3a3733; color: #fff; border-color: #3a3733; }
.w-ctag.is-montsuki-hakama { background: #eeeeec; color: #3a3733; border-color: #d6d5d1; }
.w-tplace { min-width: 10em; }
@media (max-width: 767px) {
  .w-compare tbody th { min-width: 8.5em; }
  .w-compare tbody th a { font-size: 14px; }
}
/* 表の手直し：○は丸の枠をやめて緑の○だけ（◎に見えないように）。衣装の札は横に並べて行を低く。偶数行は店名の欄も同じ色 */
.w-tmark { width: auto; height: auto; border-radius: 0; font-size: 20px; line-height: 1; }
.w-tmark.is-on { background: none; box-shadow: none; color: var(--w-green); }
.w-tcostume { min-width: 15em; }
.w-tplace { min-width: 11em; }
.w-compare tbody tr:nth-child(even) > th { background: #fbf8f1; }
.w-compare tbody tr:hover > th { background: #f6f1e4; }
.w-compare th, .w-compare td { padding: 12px 10px; }
.w-scroll-hint { display: flex; align-items: center; gap: 6px; margin: 0 0 8px; font-size: 12px; color: var(--w-muted); }
.w-scroll-hint::before { content: "⇆"; color: var(--w-gold); font-size: 15px; }
/* 県のページの「市ごとの料金相場」の表は4項目だけなので、横にずらさず画面の幅に収める（2026-10-27。市の12項目の表の設定がかかって市の列が広がっていた） */
.w-compare--pref { min-width: 0; }
.w-compare--pref tbody th, .w-compare--pref thead th:first-child { position: static; min-width: 0; box-shadow: none; }
.w-compare--pref td, .w-compare--pref th { white-space: normal !important; }
@media (max-width: 767px) {
  .w-compare--pref { font-size: 13px; }
  .w-compare--pref th, .w-compare--pref td { padding: 10px 8px; }
  .w-compare--pref tbody th { width: 5em; }
  .w-compare--pref td:nth-child(2), .w-compare--pref td:nth-child(4) { width: 4.5em; }
}
.w-nobr { white-space: nowrap; display: inline-block; }
/* ---------- 見出しの写真を AI のイメージに（2026-10-27 運営者の依頼）。左にクリームの地を足した写真（--pad）は手つなぎと同じ扱い ---------- */
.w-hero__img--pad img { object-position: 100% 45%; }
@media (min-width: 1200px) {
  .w-hero:has(.w-hero__img--pad)::before { display: none; }
  .w-hero:has(.w-hero__img--pad) .w-hero__text { max-width: 500px; }
}
@media (min-width: 768px) and (max-width: 1199px) {
  .w-hero:has(.w-hero__img--pad)::before { display: none; }
  .w-hero:has(.w-hero__img--pad) .w-hero__text { max-width: calc(35% - 16px); }
  .w-hero:has(.w-hero__img--pad) .w-area-title { font-size: 26px; }
  .w-hero:has(.w-hero__img--pad) .w-hero__text .w-lead { font-size: 14px; }
}
@media (max-width: 767px) {
  .w-hero__img--pad img { height: auto; aspect-ratio: 16 / 9; object-position: 50% 40%; }
  /* トップ：縦長（3:5）の写真の上の部分がクリーム色の地なので、文字の下に二人が来る */
  .w-tophero picture img { aspect-ratio: 3 / 5; object-position: 50% 100%; }
  .w-tophero::after { background: linear-gradient(180deg, rgba(254, 253, 250, .9) 0%, rgba(254, 253, 250, .6) 30%, rgba(254, 253, 250, 0) 40%); }
}
/* 市の見出しの写真：画面が横に広いと写真の上下が切られて頭が見切れていた。上をそろえて、切るのは足もとのほうにする（2026-10-27） */
@media (min-width: 768px) { .w-hero__img--pad img { object-position: 100% 6%; } }
/* 県のページ（池の庭の写真）とトップも、広い画面で頭が切れないよう上側をそろえる */
@media (min-width: 768px) { .w-hero__img--pond img { object-position: 80% 8%; } .w-tophero picture img { object-position: 76% 22%; } }
/* 総額の計算（料金比較の表の上）：選ぶと表の総額が変わる */
.w-calc { margin: 0 0 14px; padding: 14px 18px; background: #fff; border: 1px solid var(--w-line); border-left: 3px solid var(--w-gold); border-radius: 8px; box-shadow: var(--w-shadow); }
.w-calc[hidden] { display: none; }
.w-calc__title { margin: 0 0 10px; font-family: var(--w-serif); font-weight: 700; font-size: 15px; }
.w-calc__opts { display: flex; flex-wrap: wrap; gap: 8px 10px; }
.w-calc__opt { position: relative; cursor: pointer; }
.w-calc__opt input { position: absolute; opacity: 0; }
.w-calc__opt span { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 6px 14px 6px 12px; border: 1px solid #d8d0bf; border-radius: 999px; background: #fff; font-size: 14px; }
.w-calc__opt span::before { content: ""; width: 16px; height: 16px; border: 1.5px solid #b8ad97; border-radius: 4px; background: #fff; flex: none; }
.w-calc__opt input:checked + span { border-color: var(--w-green); background: #f1f6f2; color: var(--w-green); font-weight: 700; }
.w-calc__opt input:checked + span::before { border-color: var(--w-green); background: var(--w-green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-width='2.2'%3E%3Cpath d='M3.5 8.5l3 3 6-7'/%3E%3C/svg%3E") no-repeat center / 12px; }
.w-calc__opt input:focus-visible + span { outline: 2px solid var(--w-green); outline-offset: 2px; }
.w-calc__opts + .w-calc__opts { margin-top: 8px; }
.w-calc__label { align-self: center; min-width: 4.5em; font-size: 12px; font-weight: 700; color: var(--w-muted); }
.w-calc__opt--radio span::before { border-radius: 50%; }
.w-calc__opt--radio input:checked + span::before { background: var(--w-green); box-shadow: inset 0 0 0 3px #fff; }
.w-calc__note { margin: 10px 0 0; font-size: 12px; color: var(--w-muted); line-height: 1.7; }
.w-ttotal { transition: background .3s; }
/* 撮り方・足すものを選ぶたびに列の幅が変わらないように、料金と総額の列は幅を決めて、見出しは中で折り返す（2026-10-30 運営者） */
.w-compare:not(.w-compare--pref) thead th:nth-child(2), .w-compare:not(.w-compare--pref) tbody td:nth-child(2) { width: 9em; min-width: 9em; max-width: 9em; }
.w-compare:not(.w-compare--pref) thead th:nth-child(3), .w-compare:not(.w-compare--pref) tbody td:nth-child(3) { width: 11.5em; min-width: 11.5em; max-width: 11.5em; }
.w-compare:not(.w-compare--pref) thead th:nth-child(2), .w-compare:not(.w-compare--pref) thead th:nth-child(3) { white-space: normal; }
@media (max-width: 767px) { .w-calc { padding: 12px 14px; } .w-calc__opt span { font-size: 13px; min-height: 38px; } }

/* 店の料金表：撮影の欄（スタジオ＋ロケ など）と料金が縦に割れないように（1.20.1） */
@media (min-width: 768px) {
  .w-plans td:nth-of-type(1), .w-plans td:nth-of-type(2) { white-space: nowrap; }
  .w-plans td:nth-of-type(3) { min-width: 8em; }
}

/* 撮影プランの相談：店のページから来たときの「相談するスタジオ・撮影したい市」（変えるボタンなし。1.20.2） */
.w-consult__pre--shop { display: grid; gap: 6px; }
.w-consult__pre--shop div { display: grid; grid-template-columns: 8.5em 1fr; gap: 12px; align-items: baseline; }
.w-consult__pre--shop dt { color: var(--w-muted); font-size: 14px; }
.w-consult__pre--shop dd { margin: 0; font-weight: 700; }
.w-consult__pre--shop dl { margin: 0; }
.w-consult__prefill { margin: 0 0 12px; font-size: 13px; color: var(--w-muted); }
.w-consult__prefill[hidden] { display: none; }
.w-consult__shopnote { margin: 0; font-size: 14px; line-height: 1.7; color: var(--w-ink); }
@media (max-width: 767px) { .w-consult__pre--shop div { grid-template-columns: 7.5em 1fr; gap: 8px; } }

/* 撮影プランの相談：店のページから来たときの「ほかのスタジオもあわせて紹介してほしい」（1.20.3） */
.w-consult__others { margin: 0 0 18px; }
.w-consult__others label { display: grid; grid-template-columns: 18px 1fr; align-items: center; gap: 4px 10px; text-align: left; padding: 12px 14px; border: 1px solid var(--w-line); border-radius: 8px; background: #fff; cursor: pointer; font-weight: 700; }
.w-consult__others input { width: 18px; height: 18px; margin: 0; accent-color: var(--w-green); }
.w-consult__others-note { grid-column: 2; color: var(--w-muted); font-size: 13px; font-weight: 400; line-height: 1.6; }

/* 1024〜1199px：右の表を 260px → 320px に広げて、金額などが2行に折れないようにする（カードが1枚あたり約75px低くなる。2026-10-27 運営者の提案、1.21.6） */
@media (min-width: 1024px) and (max-width: 1199px) {
  .w-card, .w-card--big { grid-template-columns: 220px minmax(0, 1fr) 320px; }
}

/* 比較表の「残り○件を表示」（1.22.0） */
.w-tmore { text-align: center; margin: 14px 0 6px; }
.w-tmore .w-btn { min-width: 240px; gap: 8px; background: #fff; color: var(--w-green); border: 1px solid var(--w-green); }
.w-tmore .w-btn:hover { background: var(--w-green); color: #fff; }
.w-tmore .w-btn span { font-size: 11px; }
tr[hidden] { display: none; }

/* 店のページの料金の枠：最安の和装プランは見出しの下に料金を1行で出し、ほかの行は見出しの列を少し細くする
   （幅が狭いと「スタジオ」の札が料金の下に落ち、見出しと料金の高さがずれて見えた。2026-10-27 運営者の指摘、1.22.1） */
.w-keyfacts > div.w-keyfacts__main { grid-template-columns: 1fr; gap: 2px; }
.w-keyfacts__main dd { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; }
.w-keyfacts__main .w-chip { align-self: center; }
.w-keyfacts > div { grid-template-columns: 9.5em 1fr; }
@media (max-width: 767px) { .w-keyfacts > div { grid-template-columns: 1fr; } }

/* スマホのトップ：写真を縦長（3:5）から 4:5 にして上の空いた所を詰め、最初の画面に検索の枠が入るようにする（2026-10-27 運営者の指摘、1.22.2） */
@media (max-width: 767px) {
  .w-tophero picture img { aspect-ratio: 4 / 5; object-position: 50% 100%; }
  .w-tophero::after { background: linear-gradient(180deg, rgba(254, 253, 250, .92) 0%, rgba(254, 253, 250, .7) 34%, rgba(254, 253, 250, 0) 50%); }
}
/* 店のページ（パソコン・タブレット）：店名は上に横いっぱい、その下に写真を左・料金の箱を右に並べ、写真は箱と同じ高さにそろえる（2026-10-27 運営者の依頼） */
@media (min-width: 768px) {
  .w-shop-head { grid-template-columns: 480px 1fr; }
  .w-shop-head__text { grid-column: 1 / -1; }
  .w-keyfacts, .w-cta { grid-column: 2; }
  .w-shop-photo { grid-column: 1; grid-row: 2; display: flex; flex-direction: column; min-height: 0; }
  .w-shop-photo img, .w-shop-photo .w-photo-soon img { flex: 1; width: 100%; height: 100%; min-height: 240px; aspect-ratio: auto; object-fit: cover; }
  .w-shop-photo .w-photo-soon { flex: 1; display: flex; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .w-shop-head { grid-template-columns: 340px 1fr; }
}
/* スマホの店のページの料金プラン：1プラン1枠。名前→料金（税込を横に）→「撮影」「データ」の見出しつきの行（2026-10-27 運営者「見にくい」） */
@media (max-width: 767px) {
  .w-plans tr { grid-template-columns: 1fr; gap: 6px; padding: 14px 16px; }
  .w-plans tbody th { font-size: 15px; }
  .w-plans tbody th .w-note { display: block; margin-top: 4px; font-weight: 400; }
  .w-plans td.w-num { font-size: 20px; margin-top: 2px; }
  .w-plans td.w-num .w-tax { display: inline; margin-left: 4px; }
  .w-plans td[data-label] { display: grid; grid-template-columns: 4.5em 1fr; font-size: 14px; padding-top: 6px; border-top: 1px dashed var(--w-line); }
  .w-plans td[data-label]::before { content: attr(data-label); color: var(--w-muted); }
  .w-plans td[data-label] + td[data-label] { border-top: 0; padding-top: 0; }
}

/* コラム（記事作成CC の /column/）。カード・エリアへのリンク（includes/column-links.php、1.24.0） */
.w-colcards { list-style: none; margin: 0 0 8px; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.w-colcard { display: flex; flex-direction: column; height: 100%; border: 1px solid var(--w-line); border-radius: 6px; overflow: hidden; background: #fff; color: var(--w-ink) !important; text-decoration: none; }
.w-colcard:hover { border-color: var(--w-gold); }
.w-colcard__img { display: block; width: 100%; height: auto; aspect-ratio: 1200 / 630; object-fit: cover; }
.w-colcard__title { display: block; padding: 12px 14px 4px; font-family: var(--w-serif); font-weight: 700; font-size: 16px; line-height: 1.55; }
.w-colcard__date { display: block; padding: 0 14px 14px; margin-top: auto; font-size: 13px; color: var(--w-muted); }
.w-more { text-align: right; margin: 8px 0 0; }
.w-colareas { margin: 40px 0 8px; padding: 24px; border: 1px solid var(--w-line); border-top: 2px solid var(--w-gold); border-radius: 6px; background: var(--w-ivory); }
.w-colareas__title { font-family: var(--w-serif); font-size: 20px; margin: 0 0 12px; line-height: 1.5; }
.w-colareas__pref { margin: 0 0 10px; font-weight: 700; }
.w-colareas__cities { list-style: none; margin: 0 0 16px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.w-colareas__cities a { display: inline-block; padding: 6px 14px; border: 1px solid var(--w-line); border-radius: 999px; background: #fff; color: var(--w-ink) !important; text-decoration: none; font-size: 15px; }
.w-colareas__cities a:hover { border-color: var(--w-gold); }
.w-colareas__cta { margin: 8px 0 0; }
.acc-col .w-breadcrumb { margin-bottom: 8px; }
@media (max-width: 1023px) { .w-colcards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .w-colcards { grid-template-columns: 1fr; } .w-colareas { padding: 18px 16px; } }

/* 店の種類の札（写真館・式場・ホテルなど） */
.w-kind { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin: 6px 0 8px; font-size: 13px; line-height: 1.5; }
/* 店の種類は、しぼりこみの色付きの札とまぎれないように、色なしの枠だけ（2026-10-30 運営者 案1） */
.w-kind__tag { display: inline-block; padding: 1px 8px; border-radius: 4px; border: 1px solid #cfc6b4; background: transparent; color: #5f5a50; font-size: 12px; font-weight: 700; white-space: nowrap; }
.w-kind__note { color: #6b6760; }
.w-shop-head .w-kind { margin-top: 10px; }

/* 注目の撮影エリア：全部で8つまで（9つ目からは出さない）。PC（1024px〜）は写真8つ＝2行、スマホ・タブレットは写真6つ＋7・8つ目は文字のリンク（2026-10-29 れのぼくん） */
.w-arealinks { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0 16px; list-style: none; margin: 12px 0 0; padding: 0; }
.w-arealinks a { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0 6px; padding: 11px 4px; border-bottom: 1px solid var(--w-line); text-decoration: none; color: var(--w-ink) !important; }
.w-arealinks__name { font-family: var(--w-serif); font-weight: 700; font-size: 15px; }
.w-arealinks__n { font-size: 12px; color: var(--w-muted); }
.w-arealinks__price { order: 2; flex-basis: 100%; font-size: 11px; color: var(--w-muted); }
.w-arealinks__arrow { margin-left: auto; color: var(--w-muted); }
@media (min-width: 1024px) {
  .w-arealinks { display: none; }
}
@media (max-width: 1023px) {
  .w-nearby--top .is-extra { display: none; }
  .w-arealinks { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 767px) {
  .w-arealinks { grid-template-columns: 1fr 1fr; gap: 0 12px; }
}

/* 上の方の相談の案内（2026-10-29 れのぼくん） */
.w-consult-top .w-consult-cta { margin-top: 0; }

/* 店名で探す（2026-10-28 運営者の依頼）：検索窓の上にタブ。やめるときは wasou_name_search を 0 に */
.w-search--tabs { display: block; padding-top: 0; }
.w-search__tabs { display: flex; margin: 0 -24px 18px; border-bottom: 1px solid var(--w-line); }
.w-search__tabs button { flex: 1; padding: 14px 8px 12px; border: 0; border-bottom: 3px solid transparent; background: none; font-family: var(--w-serif); font-weight: 700; font-size: 15px; letter-spacing: .06em; color: var(--w-muted); cursor: pointer; }
.w-search__tabs button[aria-selected="true"] { color: var(--w-green); border-bottom-color: var(--w-green); }
.w-search__tabs button:first-child { border-top-left-radius: 10px; }
.w-search__tabs button:last-child { border-top-right-radius: 10px; }
.w-search__panel { display: grid; grid-template-columns: repeat(3, 1fr) auto; gap: 16px; align-items: end; }
.w-search__panel[hidden] { display: none; }
.w-search__panel.w-namesearch { grid-template-columns: 1fr auto; align-items: center; }
.w-namesearch__field { position: relative; }
.w-namesearch__field > svg { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--w-gold); pointer-events: none; }
.w-namesearch__field input { width: 100%; font: inherit; font-size: 16px; padding: 12px 12px 12px 42px; border: 1px solid var(--w-line); border-radius: 6px; background: #fff; color: var(--w-ink); }
.w-namesearch__field input:focus { outline: 2px solid var(--w-gold); outline-offset: 1px; }
.w-namesearch__list { position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 20; margin: 0; padding: 4px 0; list-style: none; background: #fff; border: 1px solid var(--w-line); border-radius: 6px; box-shadow: 0 8px 24px rgba(60, 50, 30, .12); max-height: 360px; overflow-y: auto; }
.w-namesearch__list[hidden] { display: none; }
.w-namesearch__list a { display: flex; align-items: baseline; gap: 8px; padding: 10px 14px; text-decoration: none; color: var(--w-ink) !important; }
.w-namesearch__list .is-active a, .w-namesearch__list a:hover { background: #f8f3e8; }
.w-namesearch__list .is-none, .w-namesearch__list .is-more { padding: 10px 14px; font-size: 12px; color: var(--w-muted); }
.w-namesearch__tag { flex: none; font-size: 11px; padding: 1px 6px; border-radius: 3px; background: #f3e7c9; color: #6b5121; }
.w-namesearch__name { font-weight: 700; }
.w-namesearch__sub { margin-left: auto; flex: none; font-size: 12px; color: var(--w-muted); }
.w-namesearch .w-search__btn { min-width: 220px; }
@media (max-width: 1023px) {
  .w-search__panel { grid-template-columns: repeat(3, 1fr); }
  .w-search__panel .w-search__btn { grid-column: 1 / -1; }
  .w-search__panel.w-namesearch { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  .w-search--tabs { padding-top: 0; }
  .w-search__tabs { margin: 0 -14px 14px; }
  .w-search__tabs button { font-size: 14px; padding: 12px 4px 10px; }
  .w-search__panel { grid-template-columns: 1fr; gap: 10px; }
  .w-namesearch .w-search__btn { min-width: 0; }
  .w-namesearch__sub { display: none; }
}
/* 検索結果のページ */
.w-namesearch--page { display: flex; gap: 8px; margin: 0 0 24px; }
.w-namesearch--page input { flex: 1; min-width: 0; font: inherit; font-size: 16px; padding: 10px 12px; border: 1px solid var(--w-line); border-radius: 6px; }
.w-nsresults { list-style: none; margin: 0 0 24px; padding: 0; border-top: 1px solid var(--w-line); }
.w-nsresults li { border-bottom: 1px solid var(--w-line); padding: 0 4px; }
.w-nsresults a { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; padding: 14px 0; text-decoration: none; color: var(--w-ink) !important; }
.w-nsresults a + .w-kind { margin: -6px 0 12px; }
.w-nsresults__name { font-family: var(--w-serif); font-weight: 700; font-size: 17px; }
.w-nsresults__sub { font-size: 13px; color: var(--w-muted); }
.w-nsresults a > span[aria-hidden] { margin-left: auto; color: var(--w-muted); }
/* スマホのエリアから探す：タブを足して背が高くなったので詰める。検索窓が最初の画面に全部入るように（2026-10-28 運営者の依頼） */
@media (max-width: 767px) {
  .w-search.w-search--tabs { margin-top: -96px; padding-bottom: 14px; }
  .w-search__tabs button { padding: 10px 4px 8px; }
  .w-search__tabs { margin-bottom: 4px; }
  .w-search__panel { gap: 0; }
  .w-search__panel .w-search__field { padding: 5px 0; }
  .w-search__panel .w-search__btn { margin-top: 12px; min-height: 46px; }
  .w-search__panel.w-namesearch { gap: 12px; padding-top: 10px; }
  .w-search__panel.w-namesearch .w-search__btn { margin-top: 0; }
}

/* トップのランキングの下の「掲載順の決め方はこちら」（講座 8-5。2026-10-28） */
.w-rankrule { margin: 12px 0 0; text-align: right; }
.w-rankrule a { color: var(--w-muted); }

/* 「詳しく見る」はボタンだけの列をやめて、紹介文の下へ（2026-10-29 れのぼくん：1列使うのはもったいない → 運営者：写真の下より説明の下）。PC（1024px〜）は 写真 ｜ 店名・紹介文・ボタン ｜ 料金などの表 の3列 */
@media (min-width: 1024px) {
  .w-card { grid-template-columns: 220px minmax(0, 1fr) 320px; grid-template-rows: auto 1fr; }
  .w-card--big { grid-template-columns: 260px minmax(0, 1fr) 340px; }
  .w-card__img { grid-column: 1; grid-row: 1 / span 2; }
  .w-card__main { grid-column: 2; grid-row: 1; }
  .w-card__facts { grid-column: 3; grid-row: 1 / span 2; }
  .w-card__btns { grid-column: 2; grid-row: 2; flex-direction: row; align-self: start; justify-content: flex-start; }
  .w-card__btns .w-btn { width: auto; min-width: 220px; min-height: 44px; }
}


/* 県のページの「市から探す」：写真のない市・準備中の市は文字のリンク。PC でも出す（2026-10-29） */
@media (min-width: 1024px) {
  .w-arealinks.w-arealinks--all { display: grid; }
  .w-arealinks--all .is-narrow { display: none; }
}
.w-arealinks__empty { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0 6px; padding: 11px 4px; border-bottom: 1px solid var(--w-line); color: var(--w-muted); }

/* 写真のない店のカード（2026-10-31 から本物の写真がある店だけ写真を出す）。写真の列をなくして詰める */
.w-card.is-nophoto, .w-card--big.is-nophoto { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1024px) {
  .w-card.is-nophoto { grid-template-columns: minmax(0, 1fr) 320px; }
  .w-card.is-nophoto .w-card__main, .w-card.is-nophoto .w-card__btns { grid-column: 1; }
  .w-card.is-nophoto .w-card__facts { grid-column: 2; }
}
@media (max-width: 1023px) {
  .w-card.is-nophoto .w-card__facts, .w-card.is-nophoto .w-card__btns { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
  .w-card.is-nophoto:not(.w-card--big) { grid-template-columns: minmax(0, 1fr); }
}

/* 掲載のお申し込み（/listing/。2026-10-29） */
.w-listing-steps { counter-reset: ls; list-style: none; margin: 0 0 12px; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.w-listing-steps li { counter-increment: ls; display: flex; flex-direction: column; gap: 6px; padding: 18px 20px; border: 1px solid var(--w-line); border-radius: 8px; background: #fff; }
.w-listing-steps li::before { content: counter(ls); display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--w-green); color: #fff; font-family: var(--w-serif); font-weight: 700; }
.w-listing-steps b { font-family: var(--w-serif); font-size: 16px; }
.w-listing-steps span { font-size: 14px; color: var(--w-muted); }
.w-listing-link { margin: 20px 0 0; padding: 20px; border: 1px solid var(--w-line); border-radius: 8px; background: var(--w-ivory); }
.w-listing-link .w-h3 { margin-top: 0; }
.w-listing-link__sample { margin: 0 0 12px; }
.w-listing-link__sample img { max-width: 100%; height: auto; }
.w-listing-link__code { width: 100%; font: 12px/1.6 ui-monospace, Consolas, monospace; padding: 10px 12px; border: 1px solid var(--w-line); border-radius: 6px; background: #fff; color: var(--w-ink); resize: vertical; }
.w-listing-link__copy { margin-top: 10px; background: #fff; color: var(--w-green); border: 1px solid var(--w-green); }
@media (max-width: 767px) {
  .w-listing-steps { grid-template-columns: 1fr; gap: 10px; }
  .w-listing-link { padding: 14px; }
}

/* コラムの最後：サイトのトップへ（2026-10-29） */
.w-colareas__top { margin: 14px 0 0; }
.w-colareas__top a { display: flex; align-items: center; gap: 12px; max-width: 560px; padding: 14px 18px; border: 2px solid var(--w-green); border-radius: 8px; background: #fff; color: var(--w-green) !important; text-decoration: none; transition: background .2s; }
.w-colareas__top a:hover { background: #f1f6f2; }
.w-colareas__top svg { flex: none; }
.w-colareas__top-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.w-colareas__top-text b { font-size: 16px; line-height: 1.5; }
.w-colareas__top-text small { font-size: 13px; color: var(--w-muted); line-height: 1.5; }
.w-colareas__top-arrow { margin-left: auto; font-size: 20px; }

/* トップの検索：県を選ぶまで市は選べない（2026-10-29） */
.w-search__field select:disabled { color: var(--w-muted); cursor: not-allowed; opacity: 1; }

/* 仮の写真：写真の上の大きな「写真掲載予定」をやめ、右下に小さく「イメージ」（2026-10-29 運営者） */
.w-photo-soon img { filter: none; }
.w-photo-soon__label, .w-photo-soon--large .w-photo-soon__label, .w-card:not(.w-card--big) .w-photo-soon__label { left: auto; top: auto; right: 6px; bottom: 6px; transform: none; gap: 0; padding: 1px 6px; border-radius: 3px; background: rgba(0, 0, 0, .45); color: #fff; font-size: 10px; line-height: 1.6; letter-spacing: .05em; }
.w-shop-photo .w-photo-soon { position: relative; }

/* コラムの下の県のボタン：左をタイトルにそろえる（2026-10-29） */
.w-colareas ul.w-colareas__prefs { margin: 0 0 4px; padding: 0 !important; }

/* 全ページの上の PR の帯（2026-10-30 運営者：屋根修理navi と同じ形） */
.w-prbar { background: #f3f1ec; border-bottom: 1px solid var(--w-line); }
.w-prbar .w-container { display: flex; justify-content: flex-end; padding-top: 3px; padding-bottom: 3px; }
.w-prbar span { font-size: 11px; line-height: 1.6; color: #6f6a60; }

/* 料金比較の表：パソコンの幅だけ、表の中で縦にもスクロールし、見出しの行と店の名前の列を固定する（2026-10-30 運営者）。スマホは今のまま（縦はページごと） */
@media (min-width: 960px) {
  .w-table-wrap--compare { max-height: min(78vh, 760px); overflow: auto; overscroll-behavior: contain; }
  .w-table-wrap--compare .w-compare thead th { position: sticky; top: 0; z-index: 2; background: #f6f0e3; box-shadow: inset 0 -2px 0 var(--w-gold); }
  .w-table-wrap--compare .w-compare thead th:first-child { left: 0; z-index: 3; }
}

/* 県のページ「市から探す」：写真のない市も箱（カード）に（2026-10-30 運営者）。上に金の短い線、右下に薄い桜の枝 */
.w-arealinks--boxes { gap: 12px; margin-top: 16px; }
.w-arealinks--boxes a, .w-arealinks--boxes .w-arealinks__empty {
  position: relative; height: 100%; box-sizing: border-box; overflow: hidden;
  padding: 16px 16px 12px; border: 1px solid var(--w-line); border-radius: 8px;
  background: #fff url(img/deco-blossom.svg) no-repeat right -26px bottom -40px / 76px auto;
  box-shadow: var(--w-shadow); transition: border-color .15s, transform .15s;
}
.w-arealinks--boxes a::before, .w-arealinks--boxes .w-arealinks__empty::before {
  content: ""; position: absolute; left: 16px; top: 0; width: 28px; height: 3px; background: var(--w-gold); border-radius: 0 0 2px 2px;
}
.w-arealinks--boxes a:hover { border-color: var(--w-gold); transform: translateY(-1px); }
.w-arealinks--boxes a:hover .w-arealinks__name { color: var(--w-green); }
.w-arealinks--boxes .w-arealinks__price { margin-top: 2px; font-size: 12px; }
.w-arealinks--boxes .w-arealinks__arrow { color: var(--w-gold); }
.w-arealinks--boxes .w-arealinks__empty { background-color: var(--w-ivory); box-shadow: none; }
.w-arealinks--boxes .w-arealinks__empty::before { background: var(--w-line); }
@media (max-width: 599px) { .w-arealinks--boxes { gap: 10px; } .w-arealinks--boxes a, .w-arealinks--boxes .w-arealinks__empty { padding: 14px 12px 10px; } }
/* 箱は2行分だけ（PC 8・タブレット 6・スマホ 4）。入らない分は下の文字のリンクに出す。箱では › を出さない（桜の飾りと重なるので） */
.w-arealinks--boxes .w-arealinks__arrow { display: none; }
.w-arealinks--boxes + .w-arealinks--all { margin-top: 14px; }
.w-arealinks--all .is-p-md, .w-arealinks--all .is-p-lg { display: none; }
@media (max-width: 1023px) { .w-arealinks--boxes .is-b-lg { display: none; } .w-arealinks--all .is-p-lg { display: block; } }
@media (max-width: 767px) { .w-arealinks--boxes .is-b-md { display: none; } .w-arealinks--all .is-p-md { display: block; } }

/* トップの掲載の数（2026-10-30 運営者 見本B）：金の線の下に4つ並べる */
.w-topstats { display: flex; list-style: none; margin: 16px 0 0; padding: 0; }
.w-topstats li { padding: 0 20px; border-left: 1px solid #e0d6c2; text-align: center; line-height: 1.3; }
.w-topstats li:first-child { padding-left: 0; border-left: 0; }
.w-topstats__n { display: block; font-family: var(--w-serif); font-size: 26px; font-weight: 700; color: var(--w-ink); }
.w-topstats__n small { margin-left: 2px; font-size: 13px; font-weight: 400; color: var(--w-muted); }
.w-topstats__l { display: block; font-size: 11px; color: #8a6d33; letter-spacing: .08em; white-space: nowrap; }
@media (max-width: 767px) {
  .w-topstats { justify-content: center; margin-top: 12px; }
  .w-topstats li { padding: 0 10px; }
  .w-topstats li:first-child { padding-left: 10px; }
  .w-topstats__n { font-size: 20px; }
  .w-topstats__n small { font-size: 11px; }
  .w-topstats__l { font-size: 10px; letter-spacing: 0; }
}

/* 県・市の見出しは言葉の切れ目（<wbr>）でだけ折り返す。入りきらない長さのときだけ途中で折る */
.w-area-title { word-break: keep-all; overflow-wrap: anywhere; }

/* 運営者情報・編集方針のページの目次（2026-10-30）。れのぼくんのサイトと同じく、見出しへ飛べる小さなボタンを並べる */
.w-pagetoc { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 20px 0 8px; padding: 0; }
.w-pagetoc a { display: inline-block; padding: 6px 14px; border: 1px solid var(--w-line); border-radius: 999px; background: #fff; font-size: 13px; color: var(--w-ink) !important; text-decoration: none; }
.w-pagetoc a:hover { border-color: var(--w-gold); color: var(--w-green) !important; }
.w-page .w-section ul:not(.w-pagetoc) { padding-left: 1.3em; }

/* 店のページ：お店からもらった写真（アイキャッチ）は横長 3:2 のまま出す（タブレット・パソコン）。高さを横の情報欄に合わせると縦長に切れて人が写らない（2026-10-30 スタジオKYUZEN で見つけた） */
@media (min-width: 768px) {
  figure.w-shop-photo { display: block; }
  figure.w-shop-photo img { flex: none; height: auto; min-height: 0; aspect-ratio: 3 / 2; }
}

/* スマホ：掲載の数が写真の上に重なって読みにくい（2026-10-30 運営者）。白い半透明の帯を敷く */
@media (max-width: 767px) {
  .w-topstats { position: relative; z-index: 2; width: fit-content; max-width: 100%; margin: 12px auto 0; padding: 8px 6px; border-radius: 8px; background: rgba(255, 253, 248, .9); box-shadow: 0 2px 10px rgba(60, 45, 20, .12); }
  .w-topstats__l { color: #6b5323; }
}
/* スマホ：帯がふたりの顔に重ならないよう、写真を少し下から始める */
@media (max-width: 767px) {
  .w-tophero picture { margin-top: 64px; }
}
/* スマホ：掲載の数の帯は左寄せで小さめに（2026-10-30 運営者） */
@media (max-width: 767px) {
  .w-topstats { margin: 10px 0 0; padding: 6px 4px; }
  .w-topstats li { padding: 0 8px; }
  .w-topstats li:first-child { padding-left: 8px; }
  .w-topstats__n { font-size: 17px; }
  .w-topstats__n small { font-size: 10px; }
  .w-topstats__l { font-size: 9px; }
}

/* スマホ：4位から下のカードでも説明文を2行だけ出す（講座 4-3-2「一覧では2〜3行だけ見せ、続きは店舗ページで全文」。2026-10-30 運営者「カードに説明文が出ていない」）。前はスマホで隠していた */
@media (max-width: 767px) {
  .w-card:not(.w-card--big) .w-card__desc { display: -webkit-box; -webkit-line-clamp: 2; margin-bottom: 8px; font-size: 13px; }
}
/* 写真のない店のページ（2026-10-31 仮の写真をやめた）：写真の列をなくし、料金の箱と相談ボタンを1列に */
@media (min-width: 768px) {
  .w-shop-head.is-nophoto { grid-template-columns: minmax(0, 760px); }
  .w-shop-head.is-nophoto .w-keyfacts, .w-shop-head.is-nophoto .w-cta { grid-column: 1; }
}
/* トップの「注目のスタジオ」はランキングではないので「◯位」の文字は出さない。リボンの番号は残す（2026-10-31 運営者） */
.w-top #ranking .w-card__rank { display: none; }
/* 県ごとの写真（2026-10-31）：ふたりは右寄りなので、横に切られるときは右と顔の高さを残す */
@media (min-width: 768px) { [class*="w-hero__img--pref-"] img { object-position: 78% 30%; } }
/* 税別の店の「スタジオの表記：290,000円（税別）」（2026-10-31 料金は税込にそろえた） */
.w-orig { display: block; font-size: 12px; font-weight: 400; color: var(--w-muted); margin-top: 2px; letter-spacing: 0; }
.w-tprice .w-orig { font-size: 11px; white-space: nowrap; }
/* 店のページの下の無料相談ボタン（2026-10-31 運営者：下まで読んだら上に戻らないと相談できなかった） */
.w-cta2 { margin: 8px auto 48px; max-width: 760px; text-align: center; }
.w-cta2 .w-btn { min-width: 320px; }
@media (max-width: 767px) { .w-cta2 .w-btn { min-width: 0; width: 100%; } }

/* トップの「注目の撮影エリア」：全国の市を掲載の多い順に8つ、箱のボタンで（2026-11-01 運営者）。市の名前の横に小さく県 */
.w-arealinks__pref { margin-left: 6px; font-size: 11px; font-weight: normal; color: #8a8478; }

/* 相談：どこに相談するか（長い選択肢は1列に。2026-11-03） */
.w-choices--wide { grid-template-columns: 1fr !important; }
.w-choices--wide .w-choice span { text-align: left; }
.w-consult__need { margin: 8px 0 0; color: #b3261e; font-size: 14px; font-weight: 700; }
.w-consult__need[hidden] { display: none; }
.w-cta-note { flex-basis: 100%; margin: 4px 0 0; color: var(--w-muted); font-size: 13px; line-height: 1.6; }
.w-cta2 .w-cta-note { margin-top: 8px; }
.w-step .w-choices + .w-consult__sub { margin-top: 20px; }
