/* ===== ページ共通・レスポンシブ ===== */
#wf-area, #wf-area * { box-sizing: border-box; }
#wf-area { background: #fff; }
#wf-area a { text-decoration: none; cursor: pointer; }
#wf-area a:hover { opacity: 0.78; }
  @media (max-width: 767px) {
    [data-ar-works]::after, [data-ar-posts]::after { content: ""; flex: 0 0 6px; }
    [data-ar-outnote] { font-size: 11px !important; line-height: 1.8 !important; margin-top: 12px !important; }
    [data-ar-works][data-ar-works] { display: flex !important; gap: 14px !important; overflow-x: auto !important; scroll-snap-type: x mandatory; scroll-padding-left: 20px; scroll-padding-right: 20px; -webkit-overflow-scrolling: touch; margin-left: -20px !important; margin-right: -20px !important; padding: 0 20px 8px !important; scrollbar-width: none; }
    [data-ar-works]::-webkit-scrollbar { display: none; }
    [data-ar-works] > a { flex: 0 0 78% !important; scroll-snap-align: start; }
    [data-ar-works] > a div[style*="font-size: 17px"] { font-size: 15px !important; }
    [data-ar-map][data-ar-map] { padding: 22px 20px !important; gap: 18px !important; }
    [data-ar-map] > div > div[style*="font-size: 20px"] { font-size: 18px !important; margin-top: 4px !important; line-height: 1.6 !important; }
    [data-ar-cities][data-ar-cities] { flex-direction: row !important; flex-wrap: wrap !important; gap: 8px 16px !important; margin-top: 12px !important; }
    [data-ar-cities] > div { border-bottom: none !important; padding: 0 !important; line-height: 1.8 !important; gap: 7px !important; font-size: 14px !important; }
    [data-ar-cities] > div > span { width: 7px !important; height: 7px !important; }
    [data-ar-posts][data-ar-posts] { display: flex !important; gap: 14px !important; overflow-x: auto !important; scroll-snap-type: x mandatory; scroll-padding-left: 20px; scroll-padding-right: 20px; -webkit-overflow-scrolling: touch; border-top: none !important; margin-left: -20px !important; margin-right: -20px !important; padding: 0 20px 8px !important; scrollbar-width: none; }
    [data-ar-posts]::-webkit-scrollbar { display: none; }
    [data-ar-post][data-ar-post] { flex: 0 0 78% !important; display: flex !important; flex-direction: column !important; gap: 12px !important; padding: 0 !important; border-bottom: none !important; scroll-snap-align: start; }
    [data-ar-post] a[style*="font-size: 19px"] { font-size: 15px !important; line-height: 1.6 !important; padding-bottom: 0 !important; border-bottom: none !important; }
    [data-ar-post] [data-body] { display: none !important; }
    [data-ar-post] div[style*="justify-content: flex-end"] { justify-content: flex-start !important; margin-top: 10px !important; }
    [data-body][data-body] { text-align: left !important; }
    [data-ar-wrap] { padding-left: 20px !important; padding-right: 20px !important; }
    [data-ar-sec] { padding-top: 48px !important; padding-bottom: 48px !important; }
    [data-ar-catch] { font-size: 21px !important; line-height: 1.8 !important; }
    [data-ar-en] { font-size: 26px !important; letter-spacing: 2px !important; }
    [data-ar-mh2][data-ar-mh2] { grid-template-columns: 1fr !important; gap: 16px !important; }
    [data-ar-map] { grid-template-columns: 1fr !important; gap: 24px !important; padding: 26px 20px !important; }
    [data-ar-worry][data-ar-worry][data-ar-worry] { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 8px !important; width: 100% !important; }
    [data-ar-worry] > div { font-size: 11.5px !important; padding: 12px 8px !important; min-width: 0 !important; width: auto !important; letter-spacing: 0 !important; line-height: 1.55 !important; white-space: normal !important; overflow-wrap: anywhere; word-break: normal; box-sizing: border-box !important; }
    [data-ar-worry] > div br { display: none !important; }
    [data-ar-worry] > div * { white-space: normal !important; }
    [data-ar-worry-h] { font-size: 16px !important; }
    [data-ar-3col] { grid-template-columns: 1fr !important; gap: 14px !important; }
    [data-ar-2col] { grid-template-columns: 1fr !important; gap: 14px !important; }
    [data-ar-city] { grid-template-columns: 1fr !important; gap: 0 !important; }
    [data-ar-city] img { aspect-ratio: 16/9 !important; }
    [data-ar-city] > div { padding: 24px 22px !important; }
    [data-ar-4col] { grid-template-columns: 1fr 1fr !important; gap: 12px !important; }
    [data-ar-cities] { gap: 8px !important; }
    [data-ar-cities] > * { font-size: 13px !important; padding: 9px 14px !important; }
    [data-ar-btns] { flex-direction: column !important; }
    [data-ar-local] { padding: 30px 22px !important; }
  }

  /* 本文タイポグラフィのスマホ統一 */
  @media (max-width: 767px) {
    [style*="font-size: 16px"][style*="rgb(92, 85, 75)"],
    [style*="font-size: 15px"][style*="rgb(92, 85, 75)"],
    [style*="font-size: 14px"][style*="rgb(92, 85, 75)"] { font-size: 14px !important; line-height: 2 !important; letter-spacing: 0.02em !important; }
    [style*="font-size: 13px"][style*="rgb(92, 85, 75)"] { font-size: 13px !important; line-height: 1.95 !important; }
    [style*="font-size: 13px"][style*="rgb(122, 114, 104)"],
    [style*="font-size: 12px"][style*="rgb(122, 114, 104)"],
    [style*="font-size: 11px"][style*="rgb(122, 114, 104)"] { font-size: 12px !important; line-height: 1.85 !important; }
  }

/* ===== 要素スタイル（旧 style 属性から移行） ===== */
.u-w9epnz.u-w9epnz { font-family: 'Noto Sans JP', sans-serif; color: #2e2a26; background: #fff; width: 100%; }
.u-nhtig0.u-nhtig0 { padding: 82px 0; }
.u-2vqwsa.u-2vqwsa { max-width: 880px; margin: 0 auto; padding: 0 32px; text-align: center; }
.u-10qh0dy.u-10qh0dy { font-size: 30px; font-weight: 400; letter-spacing: 3px; color: #46a1b5; line-height: 1; font-family: Futura, 'Century Gothic', YuGothic, 'Hiragino Kaku Gothic ProN'; }
.u-uwhm9l.u-uwhm9l { font-size: 26px; font-weight: 700; line-height: 1.9; letter-spacing: 0.05em; margin-top: 18px; }
.u-uai5uw.u-uai5uw { font-size: 15px; color: #5c554b; line-height: 2.4; letter-spacing: 0.04em; margin-top: 26px; }
.u-uadjhe.u-uadjhe { font-size: 15px; color: #5c554b; line-height: 2.4; letter-spacing: 0.04em; margin-top: 20px; }
.u-1o6kh4p.u-1o6kh4p { background: #f6f4ef; padding: 82px 0; }
.u-99hgc0.u-99hgc0 { max-width: 1080px; margin: 0 auto; padding: 0 32px; }
.u-1rfc3xh.u-1rfc3xh { text-align: center; }
.u-1y64ckz.u-1y64ckz { font-size: 24px; font-weight: 700; line-height: 1.9; letter-spacing: 0.05em; }
.u-uagmee.u-uagmee { font-size: 15px; color: #5c554b; line-height: 2.4; letter-spacing: 0.04em; margin-top: 24px; }
.u-m9rdjb.u-m9rdjb { display: grid; grid-template-columns: 1fr 1.1fr; gap: 44px; align-items: center; background: #fff; padding: 40px 44px; margin-top: 34px; }
.u-1ud6vfj.u-1ud6vfj { font-size: 12px; font-weight: 700; letter-spacing: 0.14em; color: #46a1b5; font-family: Futura, 'Century Gothic', YuGothic, 'Hiragino Kaku Gothic ProN'; }
.u-1g1izem.u-1g1izem { font-size: 20px; font-weight: 700; line-height: 1.8; margin-top: 10px; }
.u-1cgykfk.u-1cgykfk { display: flex; flex-direction: column; margin-top: 18px; }
.u-10ntq6o.u-10ntq6o { display: flex; align-items: center; gap: 12px; font-size: 15px; line-height: 2.2; border-bottom: 1px solid #ede9e1; padding: 8px 0; }
.u-14lqdnp.u-14lqdnp { width: 10px; height: 10px; background: #2e2a26; flex: none; }
.u-59ci3r.u-59ci3r { display: flex; align-items: center; gap: 12px; font-size: 15px; line-height: 2.2; padding: 8px 0; }
.u-9bdb9y.u-9bdb9y { font-size: 12px; color: #7a7268; line-height: 1.9; margin-top: 18px; }
.u-rf72oq.u-rf72oq { width: 100%; height: auto; display: block; }
.u-36o08a.u-36o08a { background: #fff; padding: 82px 0; }
.u-m2hxes.u-m2hxes { display: grid; grid-template-columns: 340px 1fr; gap: 36px; align-items: stretch; background: #f6f4ef; margin-top: 18px; }
.u-10i2kmr.u-10i2kmr { width: 100%; height: 100%; min-height: 190px; object-fit: cover; display: block; }
.u-hp0wxn.u-hp0wxn { padding: 30px 36px 30px 0; display: flex; flex-direction: column; justify-content: center; }
.u-1uk3zeq.u-1uk3zeq { font-size: 20px; font-weight: 700; line-height: 1.8; }
.u-j19s7p.u-j19s7p { font-size: 14px; color: #5c554b; line-height: 2.2; margin-top: 12px; }
.u-mz964f.u-mz964f { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: #46a1b5; border-bottom: 1px solid #a8d6e2; padding-bottom: 2px; margin-top: 16px; }
.u-vd0x7z.u-vd0x7z { font-size: 10px; }
.u-rcoukq.u-rcoukq { background: #46a1b5; padding: 38px 40px; margin-top: 34px; }
.u-4g2hy2.u-4g2hy2 { font-size: 22px; font-weight: 700; line-height: 1.9; letter-spacing: 0.05em; color: #fff; }
.u-497po4.u-497po4 { display: inline-flex; align-items: center; gap: 12px; background: #fff; padding: 16px 26px; margin-top: 22px; }
.u-e69pz4.u-e69pz4 { font-size: 17px; color: #46a1b5; }
.u-1sne6pn.u-1sne6pn { font-size: 19px; font-weight: 700; letter-spacing: 0.04em; }
.u-h5bf82.u-h5bf82 { font-size: 11px; color: rgba(255,255,255,0.88); line-height: 1.9; margin-top: 14px; }
.u-mt06id.u-mt06id { font-size: 24px; font-weight: 700; line-height: 1.9; letter-spacing: 0.05em; margin-top: 16px; }
.u-189fohc.u-189fohc { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 34px; }
.u-2dm5cp.u-2dm5cp { background: #f6f4ef; padding: 28px 26px; }
.u-1ryad6z.u-1ryad6z { font-size: 12px; font-weight: 700; letter-spacing: 0.1em; color: #46a1b5; }
.u-sesr1e.u-sesr1e { font-size: 16px; font-weight: 700; line-height: 1.7; margin-top: 10px; }
.u-1lhmope.u-1lhmope { font-size: 13px; color: #5c554b; line-height: 2; margin-top: 10px; }
.u-13y596d.u-13y596d { display: flex; align-items: center; gap: 20px; margin-top: 52px; }
.u-1tf0omk.u-1tf0omk { flex: 1 1 auto; height: 1px; background: #ddd5c8; }
.u-13k1d91.u-13k1d91 { flex: none; font-size: 22px; font-weight: 700; letter-spacing: 0.06em; color: #46a1b5; }
.u-1ibs1k4.u-1ibs1k4 { display: flex; flex-wrap: wrap; align-items: stretch; justify-content: center; gap: 12px; margin-top: 26px; }
.u-3ljtm2.u-3ljtm2 { border: 2px solid #a8d6e2; border-radius: 10px; background: #fff; padding: 14px 22px; font-size: 14px; font-weight: 700; line-height: 1.6; color: #2e6b78; text-align: center; display: flex; align-items: center; justify-content: center; min-height: 76px; }
.u-1k7hn7c.u-1k7hn7c { white-space: nowrap; }
.u-28lhqz.u-28lhqz { font-size: 15px; color: #5c554b; line-height: 2.4; letter-spacing: 0.04em; margin-top: 26px; text-align: center; }
.u-uknf23.u-uknf23 { display: flex; justify-content: center; margin-top: 26px; }
.u-rolair.u-rolair { display: inline-flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 700; color: #46a1b5; border: 1px solid #46a1b5; padding: 15px 30px; }
.u-vd1oy8.u-vd1oy8 { font-size: 11px; }
.u-1sghjix.u-1sghjix { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px 24px; margin-top: 34px; }
.u-huu65k.u-huu65k { display: block; }
.u-6ib8fw.u-6ib8fw { position: relative; margin-bottom: 16px; }
.u-13sk5nh.u-13sk5nh { overflow: hidden; clip-path: polygon(70px 0, 100% 0, 100% 100%, 0 100%, 0 70px); }
.u-1jyh6bk.u-1jyh6bk,
.ik-ar-workimg.ik-ar-workimg { background: #ded7cb; background-size: cover; background-position: center; aspect-ratio: 4/3; }
.u-1ea5gyi.u-1ea5gyi { position: absolute; top: 14px; left: 14px; color: #2e2a26; line-height: 1; }
.u-vd2goh.u-vd2goh { font-size: 12px; }
.u-3j230t.u-3j230t { font-size: 38px; font-weight: 300; font-family: Futura, 'Century Gothic', YuGothic, 'Hiragino Kaku Gothic ProN'; }
.u-47q8px.u-47q8px { position: absolute; right: 14px; bottom: 14px; font-size: 12px; font-weight: 700; letter-spacing: 0.06em; color: #fff; background: rgba(46,42,38,0.78); padding: 7px 14px; }
.u-1lkgute.u-1lkgute { letter-spacing: 0.08em; font-size: 17px; font-weight: 700; color: #2e2a26; margin-bottom: 0; line-height: 1.5; }
.u-sxghmn.u-sxghmn { background: #ded7cb; background-image: url('./assets/work-087.webp'); background-size: cover; background-position: center; aspect-ratio: 4/3; }
.u-1wfsxq.u-1wfsxq { background: #ded7cb; background-image: url('./assets/work-086.webp'); background-size: cover; background-position: center; aspect-ratio: 4/3; }
.u-19wj67x.u-19wj67x { background: #ded7cb; background-image: url('./assets/work-085.webp'); background-size: cover; background-position: center; aspect-ratio: 4/3; }
.u-ivihj0.u-ivihj0 { background: #ded7cb; background-image: url('./assets/work-084.webp'); background-size: cover; background-position: center; aspect-ratio: 4/3; }
.u-1qvlut7.u-1qvlut7 { background: #ded7cb; background-image: url('./assets/work-083.webp'); background-size: cover; background-position: center; aspect-ratio: 4/3; }
.u-ulbanu.u-ulbanu { display: flex; justify-content: center; margin-top: 34px; }
.u-1far2h8.u-1far2h8 { display: inline-flex; align-items: center; gap: 10px; font-size: 15px; font-weight: 700; color: #46a1b5; border: 1px solid #46a1b5; padding: 17px 36px; }
.u-uaf2xw.u-uaf2xw { font-size: 15px; color: #5c554b; line-height: 2.4; letter-spacing: 0.04em; margin-top: 22px; }
.u-nd0460.u-nd0460 { margin-top: 26px; border-top: 1px solid #e3ded4; }
.u-e41yn0.u-e41yn0 { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 32px; align-items: start; padding: 26px 0; border-bottom: 1px solid #e3ded4; }
.u-liv147.u-liv147 { width: 100%; aspect-ratio: 16/11; object-fit: cover; display: block; }
.u-1rd5d8i.u-1rd5d8i { display: flex; flex-direction: column; min-width: 0; }
.u-u96y7j.u-u96y7j { font-size: 19px; font-weight: 700; line-height: 1.65; letter-spacing: 0.04em; color: #2e2a26; padding-bottom: 12px; border-bottom: 1px solid #e3ded4; }
.u-u96y7j a { color: inherit; text-decoration: none; }
.u-hglajn.u-hglajn { font-size: 13px; color: #7a7268; letter-spacing: 0.06em; margin-top: 12px; }
.u-bhwosp.u-bhwosp { font-size: 14px; color: #5c554b; line-height: 2; letter-spacing: 0.04em; margin-top: 12px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.u-urw9n0.u-urw9n0 { display: flex; justify-content: flex-end; margin-top: 16px; }
.u-1vqcrht.u-1vqcrht { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; letter-spacing: 0.06em; color: #fff; background: #46a1b5; padding: 11px 22px; }
.u-ulcu4c.u-ulcu4c { display: flex; justify-content: center; margin-top: 36px; }
.u-izs612.u-izs612 { display: inline-flex; align-items: center; gap: 10px; font-size: 15px; font-weight: 700; color: #46a1b5; border: 1px solid #46a1b5; padding: 16px 40px; }
.u-12tnu2g.u-12tnu2g { background: #f6f4ef; padding: 72px 0; }
.u-13ohf1g.u-13ohf1g { font-size: 22px; font-weight: 700; line-height: 1.9; letter-spacing: 0.05em; text-align: center; }
.u-h69qbk.u-h69qbk { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 30px; }
.u-11jpho6.u-11jpho6 { background: #fff; display: flex; flex-direction: column; }
.u-1azrb2d.u-1azrb2d { position: relative; aspect-ratio: 16/10; overflow: hidden; }
.u-jfqwip.u-jfqwip { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 55%; display: block; }
.u-5su2s.u-5su2s { padding: 26px 28px 30px; display: flex; flex-direction: column; flex: 1 1 auto; }
.u-1ijijaq.u-1ijijaq { font-size: 18px; font-weight: 700; letter-spacing: 0.04em; line-height: 1.6; }
.u-4ndxme.u-4ndxme { font-size: 14px; color: #5c554b; line-height: 2.3; margin-top: 12px; }
.u-1co2yw7.u-1co2yw7 { display: flex; gap: 12px; margin-top: auto; padding-top: 20px; font-size: 14px; }
.u-190m0rp.u-190m0rp { border: 1px solid #a89f92; padding: 12px 28px; cursor: pointer; text-decoration: none; color: #4a443c; }
.u-1fm45e.u-1fm45e { background: #46a1b5; padding: 12px 28px; cursor: pointer; text-decoration: none; color: #fff; }
.u-1c7ilpb.u-1c7ilpb { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 35%; display: block; }
.u-1i0f9lc.u-1i0f9lc { display: flex; justify-content: center; gap: 14px; margin-top: 30px; }
.u-tl6ut4.u-tl6ut4 { display: flex; align-items: center; justify-content: center; gap: 10px; font-size: 15px; font-weight: 700; color: #fff; background: #46a1b5; padding: 18px 34px; }
.u-1wnsa4r.u-1wnsa4r { display: flex; align-items: center; justify-content: center; gap: 10px; font-size: 15px; font-weight: 700; color: #46a1b5; border: 1px solid #46a1b5; padding: 18px 34px; }
.u-1pagfgc.u-1pagfgc { background: #fff; }
.u-1xcajvq.u-1xcajvq { max-width: 1200px; margin: 0 auto; padding: 26px 32px 30px; display: flex; align-items: center; gap: 12px; font-size: 13px; color: #5c554b; }
.u-nerib9.u-nerib9 { display: inline-flex; align-items: center; gap: 8px; }
.u-1q1apfi.u-1q1apfi { border-bottom: 1px solid #c3bbae; }
