/* A personal business homepage. All tokens and resets stay inside this page. */
.public-business-page {
  --pb-paper: #fff9fa;
  --pb-surface: #fffdfc;
  --pb-ink: #382a30;
  --pb-muted: #78636d;
  --pb-rose: #8b3d56;
  --pb-dark: #6f2d43;
  --pb-line: #ead7e0;
  --pb-gold: #ad854b;
  --pb-gold-ink: #805e33;
  min-height: 100dvh;
  padding: 0 0 1px;
  background: radial-gradient(ellipse at 100% 0%, #f8eaf0 0%, transparent 45%), var(--pb-paper);
  color: var(--pb-ink);
  font-family: var(--font, 'Noto Sans JP', -apple-system, BlinkMacSystemFont, sans-serif);
  -webkit-font-smoothing: antialiased;
}
.public-business-page * { box-sizing: border-box; }
.public-business-page a { color: inherit; text-decoration: none; }
.public-business-page button { font: inherit; cursor: pointer; }
.public-business-page a:focus-visible,
.public-business-page button:focus-visible { outline: 3px solid var(--pb-gold); outline-offset: 5px; }
.public-business-page .pb-icon { display: block; width: 20px; height: 20px; flex-shrink: 0; }
.pb-skip-link { position: fixed; z-index: 100; left: 20px; top: -100px; padding: 10px 16px; border-radius: 7px; background: var(--pb-rose); color: #fff !important; font-size: 12px; }
.pb-skip-link:focus { top: 12px; }
.pb-header, .pb-main, .pb-footer { width: min(1120px, calc(100% - 80px)); margin-inline: auto; }
.pb-header { height: 100px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.pb-brand { display: inline-flex; align-items: center; gap: 10px; flex-shrink: 0; }
.pb-brand-mark { display: block; width: 38px; height: 44px; color: var(--pb-gold); }
.pb-brand-word { display: block; color: var(--pb-rose); font-family: Georgia, serif; font-size: 27px; letter-spacing: .12em; line-height: 1.1; }
.pb-brand-word small { display: block; color: var(--pb-muted); font-family: Arial, sans-serif; font-size: 6px; letter-spacing: .09em; margin-top: 5px; }
.public-business-page .pb-header-cta { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 40px; padding: 9px 15px; border: 1px solid #dabcca; border-radius: 7px; color: var(--pb-rose); background: #fffafcc9; font-size: 11px; transition: background .2s, border-color .2s; }
.pb-header-cta .pb-icon { width: 15px; height: 15px; }
.public-business-page .pb-header-cta:hover { background: #f9eaf0; border-color: #c995ad; }
.pb-main { padding-top: 7px; }
.pb-main:focus { outline: none; }

.pb-hero { display: grid; grid-template-columns: minmax(0, 1fr) 265px; align-items: center; gap: 30px; min-height: 363px; padding: 47px 51px; border: 1px solid #e7c8d5; border-radius: 23px; background: linear-gradient(120deg, #f9e4ec, #faedf2 66%, #f7eddf); position: relative; isolation: isolate; overflow: hidden; }
.pb-hero-copy { position: relative; z-index: 1; min-width: 0; }
.pb-eyebrow { display: block; color: var(--pb-gold-ink); font-family: Arial, sans-serif; font-size: 9px; font-weight: 500; letter-spacing: .18em; line-height: 1.8; margin-bottom: 23px; }
.pb-identity-line { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 9px; }
.pb-type { display: inline-flex; padding: 1px 7px; border: 1px solid #d8b6c5; border-radius: 3px; color: #805867; font-size: 9px; line-height: 1.8; }
.pb-location { display: inline-flex; gap: 5px; align-items: center; color: #7c5c69; font-size: 11px; overflow-wrap: anywhere; }
.pb-location .pb-icon { width: 13px; height: 13px; }
.pb-name { color: #4b2c3a; font-family: 'Noto Serif JP', serif; font-size: clamp(30px, 3.4vw, 45px); font-weight: 500; letter-spacing: .07em; line-height: 1.65; margin: 0 0 8px; overflow-wrap: anywhere; }
.pb-company { color: #76505f; font-size: 14px; font-weight: 500; line-height: 1.9; margin: 0; overflow-wrap: anywhere; }
.pb-role { color: #80616f; font-size: 12px; line-height: 1.9; margin: 3px 0 0; overflow-wrap: anywhere; }
.pb-hero-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-top: 17px; }
.pb-online { display: inline-flex; align-items: center; gap: 5px; padding: 3px 8px; border: 1px solid #e0becd; border-radius: 5px; background: #fff8fa8f; color: #79485e; font-size: 10px; }
.pb-online .pb-icon { width: 12px; height: 12px; }
.pb-market-tag { padding: 3px 8px; border-radius: 4px; background: #fffcf66b; color: #7b6042; font-size: 10px; line-height: 1.8; overflow-wrap: anywhere; }
.public-business-page .pb-button { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 43px; padding: 10px 17px; border: 1px solid var(--pb-rose); border-radius: 7px; font-size: 11px; line-height: 1.8; transition: background .2s; }
.public-business-page .pb-button-primary { background: var(--pb-rose); color: #fff9fb; margin-top: 24px; }
.public-business-page .pb-button-primary:hover { background: var(--pb-dark); }
.pb-button .pb-icon { width: 15px; height: 15px; }
.pb-hero-art { position: relative; width: 265px; height: 250px; display: grid; place-items: center; }
.pb-orbit { position: absolute; top: 50%; left: 50%; border: 1px solid #b089505c; border-radius: 50%; }
.pb-orbit-one { width: 277px; height: 164px; transform: translate(-50%, -50%) rotate(-34deg); }
.pb-orbit-two { width: 230px; height: 213px; transform: translate(-50%, -50%) rotate(28deg); border-color: #ba899b44; border-style: dashed; }
.pb-monogram { width: 125px; height: 125px; border: 1px solid #a76f88; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(140deg, #a55c78, #7d334e); color: #f7dfb6; box-shadow: 0 0 0 12px #b7869c0a, 0 14px 40px #8c4e6515; }
.pb-monogram > span { font-family: 'Noto Serif JP', serif; font-size: 31px; font-weight: 400; letter-spacing: .07em; }
.pb-spark { position: absolute; top: 28px; right: 24px; color: var(--pb-gold); font-size: 29px; line-height: 1; }
.pb-art-caption { position: absolute; bottom: 0; color: #93744d; font-family: Arial, sans-serif; font-size: 7px; letter-spacing: .17em; }

.pb-main-grid { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 45px; align-items: start; margin-top: 45px; }
.pb-content, .pb-aside { min-width: 0; }
.pb-section { min-width: 0; padding-bottom: 35px; margin-bottom: 33px; border-bottom: 1px solid var(--pb-line); }
.pb-section:last-child { margin-bottom: 0; }
.pb-section-heading { margin-bottom: 18px; }
.pb-section-number { display: block; color: var(--pb-gold-ink); font-family: Arial, sans-serif; font-size: 8px; letter-spacing: .17em; margin-bottom: 7px; }
.pb-section-heading h2 { color: #563544; font-family: 'Noto Serif JP', serif; font-size: 22px; font-weight: 500; line-height: 1.8; letter-spacing: .035em; margin: 0; }
.pb-prose { color: #68505d; font-size: 13px; line-height: 2.15; white-space: pre-wrap; overflow-wrap: anywhere; margin: 0; }
.pb-offers-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); list-style: none; gap: 11px; margin: 0; padding: 0; }
.pb-offer { display: flex; align-items: flex-start; gap: 10px; min-width: 0; padding: 17px 16px; border: 1px solid #ead3de; border-radius: 10px; background: #fffdfd; color: #735063; font-size: 12px; line-height: 1.9; overflow-wrap: anywhere; }
.pb-offer .pb-icon { width: 15px; height: 15px; color: #a6814c; margin-top: 4px; }
.pb-offer span { min-width: 0; }
.pb-aside { display: grid; gap: 20px; }
.pb-detail-card { padding: 23px 21px; border: 1px solid var(--pb-line); border-radius: 15px; background: var(--pb-surface); }
.pb-detail-heading { display: flex; align-items: center; gap: 8px; margin-bottom: 21px; }
.pb-detail-heading .pb-icon { color: #a27c4a; width: 16px; height: 16px; }
.pb-detail-heading h2 { color: #674454; font-size: 13px; font-weight: 500; line-height: 1.8; margin: 0; }
.pb-details { display: grid; gap: 17px; margin: 0; }
.pb-details > div { min-width: 0; }
.pb-details dt { color: #866c79; font-size: 10px; line-height: 1.9; margin: 0 0 5px; }
.pb-details dd { color: #715562; font-size: 11px; line-height: 1.95; white-space: pre-wrap; overflow-wrap: anywhere; margin: 0; }
.pb-area-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.pb-area-tag { display: inline-flex; padding: 2px 8px; border: 1px solid #ead4df; border-radius: 4px; background: #fcf1f6; color: #805368; font-size: 10px; line-height: 1.8; }
.pb-detail-note { display: block; color: #876f7a; font-size: 9px; line-height: 1.9; margin-top: 6px; }

.pb-website { max-width: 720px; margin-bottom: 17px; }
.public-business-page .pb-website-link { display: flex; align-items: center; gap: 12px; padding: 16px; border: 1px solid #e6cad8; border-radius: 11px; background: #fffdfd; color: #7a4f65; transition: border-color .2s, background .2s; }
.public-business-page .pb-website-link:hover { border-color: #ca98af; background: #fdf2f7; }
.pb-website-symbol { display: grid; place-items: center; width: 40px; height: 40px; flex: 0 0 40px; border: 1px solid #e3c8d6; border-radius: 9px; background: #f9eaf1; color: #a4814e; }
.pb-website-link > span:nth-child(2) { min-width: 0; flex: 1; }
.pb-website-link strong { display: block; font-size: 12px; font-weight: 500; line-height: 1.8; }
.pb-website-url { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #806773; font-size: 10px; line-height: 1.8; margin-top: 2px; }
.pb-website-link > .pb-icon { width: 15px; height: 15px; color: #9c7b8c; }
.pb-video { max-width: 720px; }
.pb-video-frame { position: relative; width: 100%; min-height: 200px; aspect-ratio: 16 / 9; border: 1px solid #e5c8d6; border-radius: 13px; overflow: hidden; background: linear-gradient(125deg, #f5dce7, #fbecf2 65%, #f5e8d1); }
.pb-video-placeholder { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; width: 100%; height: 100%; padding: 22px; border: 0; border-radius: inherit; background: transparent; color: #7f4e66; }
.pb-video-placeholder:focus-visible { outline-offset: -6px !important; }
.pb-video-play { display: grid; place-items: center; width: 49px; height: 49px; border: 1px solid #d0ab72; border-radius: 50%; background: linear-gradient(140deg, #f7e6c3, #ebcd99); color: #90672f; box-shadow: 0 0 0 7px #fffaf344; margin-bottom: 4px; transition: transform .2s; }
.pb-video-play .pb-icon { width: 19px; height: 19px; margin-left: 2px; }
.pb-video-placeholder:hover .pb-video-play { transform: translateY(-2px); }
.pb-video-provider { color: var(--pb-gold-ink); font-family: Arial, sans-serif; font-size: 8px; letter-spacing: .13em; line-height: 1.7; }
.pb-video-placeholder strong { font-family: 'Noto Serif JP', serif; font-size: 17px; font-weight: 500; line-height: 1.8; }
.pb-video-subtitle { color: #816574; font-size: 10px; line-height: 1.8; text-align: center; }
.pb-video-iframe { position: absolute; inset: 0; display: block; width: 100%; height: 100%; min-height: 200px; border: 0; background: #30242e; }
.pb-video-footer { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-top: 10px; }
.public-business-page .pb-video-external { display: inline-flex; align-items: center; gap: 5px; flex-shrink: 0; color: #865a70; font-size: 10px; line-height: 1.9; }
.pb-video-external .pb-icon { width: 13px; height: 13px; }
.public-business-page .pb-video-external:hover { text-decoration: underline; text-underline-offset: 4px; }
.pb-video-note { color: #806a76; font-size: 9px; line-height: 1.9; text-align: right; margin: 0; }

.pb-footer { display: flex; align-items: center; justify-content: space-between; gap: 24px; border-top: 1px solid var(--pb-line); padding: 26px 0; margin-top: 45px; margin-bottom: 14px; }
.pb-footer-brand { color: #8c5d72; font-family: Georgia, serif; font-size: 19px; letter-spacing: .12em; line-height: 1.5; }
.pb-footer-brand span { display: block; color: #876e7b; font-family: var(--font, sans-serif); font-size: 8px; letter-spacing: .03em; margin-top: 3px; }
.pb-footer p { color: #816977; font-size: 10px; line-height: 1.9; margin: 0; }
.public-business-page .pb-footer > a { display: inline-flex; align-items: center; gap: 6px; color: #895f74; font-size: 10px; white-space: nowrap; }
.pb-footer > a .pb-icon { width: 13px; height: 13px; }

@media (max-width: 980px) {
  .pb-header, .pb-main, .pb-footer { width: calc(100% - 56px); }
  .pb-header { height: 90px; }
  .pb-hero { padding: 39px 35px; grid-template-columns: minmax(0, 1fr) 210px; gap: 20px; }
  .pb-hero-art { width: 210px; height: 230px; }
  .pb-orbit-one { width: 232px; height: 150px; }
  .pb-orbit-two { width: 198px; height: 196px; }
  .pb-main-grid { grid-template-columns: minmax(0, 1fr) 250px; gap: 30px; margin-top: 37px; }
  .pb-detail-card { padding: 21px 18px; }
  .pb-offers-grid { grid-template-columns: minmax(0, 1fr); }
  .pb-section-heading h2 { font-size: 21px; }
  .pb-video-footer { flex-direction: column; gap: 5px; }
  .pb-video-note { text-align: left; }
}
@media (max-width: 760px) {
  .pb-main-grid { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .pb-aside { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 18px; }
  .pb-offers-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pb-footer { flex-wrap: wrap; gap: 18px; }
  .pb-footer p { order: 3; width: 100%; }
  .pb-footer > a { margin-left: auto; }
}
@media (max-width: 620px) {
  .pb-header, .pb-main, .pb-footer { width: calc(100% - 36px); }
  .pb-header { height: 80px; gap: 12px; }
  .pb-brand { gap: 6px; }
  .pb-brand-mark { width: 29px; height: 35px; }
  .pb-brand-word { font-size: 22px; letter-spacing: .1em; }
  .pb-brand-word small { font-size: 5px; letter-spacing: .025em; margin-top: 4px; }
  .public-business-page .pb-header-cta { gap: 5px; min-height: 36px; padding: 8px 10px; font-size: 9px; }
  .pb-header-cta .pb-icon { width: 12px; height: 12px; }
  .pb-main { padding-top: 3px; }
  .pb-hero { display: flex; flex-direction: column; align-items: flex-start; gap: 0; min-height: 0; padding: 29px 26px; border-radius: 18px; }
  .pb-hero-art { order: -1; width: 96px; height: 96px; margin: 0 0 27px; }
  .pb-monogram { width: 76px; height: 76px; box-shadow: 0 0 0 7px #b7869c0a, 0 8px 24px #8c4e6512; }
  .pb-monogram > span { font-size: 22px; }
  .pb-orbit-one { width: 127px; height: 79px; }
  .pb-orbit-two { width: 101px; height: 103px; }
  .pb-spark { top: 0; right: -13px; font-size: 20px; }
  .pb-art-caption { display: none; }
  .pb-eyebrow { font-size: 7px; letter-spacing: .12em; margin-bottom: 17px; }
  .pb-identity-line { gap: 8px; margin-bottom: 9px; }
  .pb-type { font-size: 8px; }
  .pb-location { font-size: 10px; }
  .pb-name { font-size: 32px; line-height: 1.65; letter-spacing: .05em; margin-bottom: 8px; }
  .pb-company { font-size: 12px; }
  .pb-role { font-size: 11px; }
  .pb-hero-tags { margin-top: 16px; gap: 6px; }
  .pb-online, .pb-market-tag { font-size: 9px; }
  .public-business-page .pb-button-primary { font-size: 11px; margin-top: 21px; padding: 10px 15px; }
  .pb-main-grid { margin-top: 32px; gap: 27px; }
  .pb-section { padding-bottom: 28px; margin-bottom: 28px; }
  .pb-section-heading { margin-bottom: 15px; }
  .pb-section-number { font-size: 7px; margin-bottom: 6px; }
  .pb-section-heading h2 { font-size: 20px; line-height: 1.8; }
  .pb-prose { font-size: 12px; line-height: 2.1; }
  .pb-offers-grid { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .pb-offer { font-size: 12px; padding: 15px; }
  .pb-aside { grid-template-columns: minmax(0, 1fr); gap: 17px; }
  .pb-detail-card { padding: 22px 20px; border-radius: 13px; }
  .pb-detail-heading { margin-bottom: 19px; }
  .pb-details { gap: 17px; }
  .pb-details dt { font-size: 10px; }
  .pb-details dd { font-size: 12px; }
  .pb-area-tag { font-size: 10px; }
  .pb-detail-note { font-size: 9px; }
  .public-business-page .pb-website-link { gap: 10px; padding: 14px; }
  .pb-website-symbol { width: 36px; height: 36px; flex-basis: 36px; }
  .pb-website-url { font-size: 10px; }
  .pb-video-frame { min-height: 200px; border-radius: 11px; }
  .pb-video-placeholder { padding: 20px 15px; }
  .pb-video-placeholder strong { font-size: 16px; }
  .pb-video-subtitle { font-size: 9px; }
  .pb-video-footer { gap: 5px; }
  .pb-footer { padding: 23px 0; margin-top: 32px; margin-bottom: 0; gap: 17px; }
  .pb-footer-brand { font-size: 18px; }
  .pb-footer p { font-size: 9px; }
  .public-business-page .pb-footer > a { font-size: 9px; }
}
@media (max-width: 360px) {
  .pb-header, .pb-main, .pb-footer { width: calc(100% - 28px); }
  .pb-brand-word { font-size: 20px; }
  .pb-brand-word small { font-size: 4px; }
  .public-business-page .pb-header-cta { padding-inline: 8px; font-size: 8px; }
  .pb-hero { padding: 27px 23px; }
  .pb-name { font-size: 29px; }
}
@media (prefers-reduced-motion: reduce) {
  .public-business-page .pb-header-cta, .public-business-page .pb-button, .public-business-page .pb-website-link, .public-business-page .pb-video-play { transition: none; }
}
.enishi-not-found{max-width:660px;margin:18vh auto;padding:35px;text-align:center;color:#503843}.enishi-not-found h1{font-family:'Noto Serif JP',serif;font-weight:500;font-size:26px;line-height:1.8;margin:24px 0}.enishi-not-found p{font-size:14px;line-height:2;color:#8a7280;margin-bottom:28px}
