/* Registration-focused Japanese Sommelier Directory LP. Scoped to this page. */
@font-face {
  font-family:"SHO Directory Noto Serif JP";
  src:url("assets/fonts/sho-directory-noto-serif-jp.woff2") format("woff2");
  font-style:normal; font-weight:400; font-display:swap;
}
body.directory-page.polished-home.renewal-home {
  --mincho-font:"SHO Directory Noto Serif JP","SHO Noto Serif JP","Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
}
body.directory-page .directory-main { color:#242624; background:#f7f7f4; font-family:var(--mincho-font); }
body.directory-page .directory-main :is(h1,h2,h3,p,ol,ul,dl) { margin:0; }
body.directory-page .directory-main :is(p,li,dd) { font-size:16px; line-height:1.95; overflow-wrap:anywhere; text-wrap:pretty; }
body.directory-page .directory-main :is(h1,h2,h3) { font-weight:400; letter-spacing:.025em; font-feature-settings:"palt"; text-wrap:balance; }
body.directory-page .directory-main :is(section[id],h2[id]) { scroll-margin-top:100px; }
body.directory-page .directory-main a { text-underline-offset:4px; }
body.directory-page .directory-main :is(a,summary):focus-visible { outline:2px solid #7a2e3a; outline-offset:5px; }
body.directory-page .directory-main .directory-hero { padding:56px 0; background:#ededea; }
body.directory-page .directory-main .directory-hero-layout { display:grid; gap:40px; align-items:center; }
body.directory-page .directory-main .directory-hero-copy { min-width:0; }
body.directory-page .directory-main .directory-label { font-size:14px; letter-spacing:.06em; margin-bottom:24px; }
body.directory-page .directory-main .directory-label > span { display:block; margin-top:2px; color:#535650 !important; font-size:13px; letter-spacing:.03em; }
body.directory-page .directory-main h1 { font-size:clamp(25px,6.7vw,32px); line-height:1.65; }
body.directory-page .directory-main .directory-lead { margin-top:24px; max-width:36ic; }
body.directory-page .directory-main .directory-eligibility { margin-top:20px; font-size:14px; color:#535650 !important; }
body.directory-page .directory-main .directory-hero-copy > .directory-button { margin-top:24px; }
body.directory-page .directory-main .directory-button-note { margin-top:12px; max-width:42ic; color:#535650 !important; font-size:13px; line-height:1.85; }
body.directory-page .directory-main .directory-identity { padding:32px 24px; border:1px solid #c8cbc1; background:#f7f7f4; }
body.directory-page .directory-main .directory-identity-brand { display:flex; align-items:center; gap:16px; padding-bottom:24px; border-bottom:1px solid #ced0c8; }
body.directory-page .directory-main .directory-identity-brand img { display:block; flex:none; width:35px; height:45px; }
body.directory-page .directory-main .directory-identity-brand p { font-size:18px; letter-spacing:.05em; }
body.directory-page .directory-main .directory-identity-headline { margin-top:24px; font-size:22px; line-height:1.8; }
body.directory-page .directory-main .directory-identity-topics { display:grid; grid-template-columns:1fr 1fr; padding:0; list-style:none; gap:0 20px; margin-top:20px; }
body.directory-page .directory-main .directory-identity-topics li { padding:12px 0; border-bottom:1px solid #ced0c8; font-size:13px; }
body.directory-page .directory-main .directory-identity-copy { margin-top:24px; font-size:14px; color:#535650 !important; }
body.directory-page .directory-main .directory-page-nav { display:flex; flex-wrap:wrap; padding-top:20px; padding-bottom:20px; gap:4px 24px; border-bottom:1px solid #ced0c8; }
body.directory-page .directory-main .directory-page-nav a { min-height:44px; display:inline-flex; align-items:center; font-size:13px; text-decoration:none; }
body.directory-page .directory-main .directory-page-nav a:hover { text-decoration:underline; }
body.directory-page .directory-main .directory-section { padding:56px 0; }
body.directory-page .directory-main .directory-editorial-layout { display:grid; gap:28px; }
body.directory-page .directory-main .directory-section-en { font-family:"SHO Bodoni Moda",Georgia,serif !important; font-size:28px; font-style:italic; line-height:1.35; }
body.directory-page .directory-main .directory-section-caption { margin-top:8px; font-size:14px; line-height:1.7; color:#535650 !important; }
body.directory-page .directory-main .directory-editorial-copy { min-width:0; max-width:44ic; }
body.directory-page .directory-main .directory-editorial-copy > h3 { font-size:25px; line-height:1.7; margin-bottom:24px; }
body.directory-page .directory-main .directory-editorial-copy > p + p { margin-top:20px; }
body.directory-page .directory-main .directory-benefit-list { margin-top:32px; }
body.directory-page .directory-main .directory-benefit-list article { display:grid; grid-template-columns:26px minmax(0,1fr); gap:16px; padding:24px 0; border-top:1px solid #ced0c8; }
body.directory-page .directory-main .directory-benefit-list h3 { font-size:18px; line-height:1.8; margin-bottom:8px; }
body.directory-page .directory-main .directory-step-number { color:#651f36 !important; padding-top:3px; font-size:14px; }
body.directory-page .directory-main .directory-profile-section,
body.directory-page .directory-main .directory-conditions { background:#ededea; }
body.directory-page .directory-main .directory-profile-outline { margin-top:32px; padding:28px 24px; background:#fcfcfa; border:1px solid #ced0c8; }
body.directory-page .directory-main .directory-outline-caption { color:#535650 !important; font-size:13px; }
body.directory-page .directory-main .directory-outline-name { font-size:24px; margin-top:24px; }
body.directory-page .directory-main .directory-outline-role { color:#535650 !important; font-size:14px; margin-top:4px; }
body.directory-page .directory-main .directory-profile-outline dl { margin-top:24px; }
body.directory-page .directory-main .directory-profile-outline dl > div { border-top:1px solid #dedfd8; padding:16px 0; }
body.directory-page .directory-main .directory-profile-outline dt { font-size:14px; margin-bottom:4px; }
body.directory-page .directory-main .directory-profile-outline dd { margin:0; color:#535650 !important; font-size:14px; }
body.directory-page .directory-main .directory-outline-note { margin-top:8px; font-size:12px; line-height:1.8; color:#535650 !important; }
body.directory-page .directory-main .directory-writing-note { margin:28px 0; }
body.directory-page .directory-main .directory-writing-note h3 { font-size:17px; line-height:1.8; margin-bottom:8px; }
body.directory-page .directory-main .directory-explore-list { list-style:none; padding:0; margin-top:28px; }
body.directory-page .directory-main .directory-explore-list li { display:grid; grid-template-columns:28px minmax(0,1fr); gap:16px; padding:24px 0; border-top:1px solid #ced0c8; }
body.directory-page .directory-main .directory-explore-list li:last-child { border-bottom:1px solid #ced0c8; }
body.directory-page .directory-main .directory-explore-list h3 { font-size:18px; line-height:1.8; margin-bottom:8px; }
body.directory-page .directory-main .directory-preparation { margin-top:32px; border-left:2px solid #9b6e7a; padding-left:20px; }
body.directory-page .directory-main .directory-preparation h3 { font-size:17px; line-height:1.8; }
body.directory-page .directory-main .directory-preparation ul { padding-left:20px; margin-top:12px; }
body.directory-page .directory-main .directory-preparation li { padding:4px 0; font-size:14px; }
body.directory-page .directory-main .directory-join-details { padding:0; }
body.directory-page .directory-main .directory-join-details > div { display:grid; gap:8px; padding:24px 0; border-top:1px solid #bfc3b8; }
body.directory-page .directory-main .directory-join-details dt { font-size:14px; line-height:1.9; color:#535650 !important; }
body.directory-page .directory-main .directory-join-details dd { margin:0; }
body.directory-page .directory-main .directory-condition-note { margin:8px 0 28px; font-size:14px; color:#535650 !important; }
body.directory-page .directory-main .directory-faq details { border-top:1px solid #ced0c8; padding:20px 0; }
body.directory-page .directory-main .directory-faq details:last-child { border-bottom:1px solid #ced0c8; }
body.directory-page .directory-main .directory-faq summary { display:flex; justify-content:space-between; gap:20px; align-items:center; cursor:pointer; list-style:none; font-size:16px; line-height:1.8; min-height:44px; }
body.directory-page .directory-main .directory-faq summary::-webkit-details-marker { display:none; }
body.directory-page .directory-main .directory-faq summary::after { content:"+"; flex:none; font-family:Georgia,serif !important; font-size:24px; font-weight:400; color:#651f36; }
body.directory-page .directory-main .directory-faq details[open] summary::after { content:"−"; }
body.directory-page .directory-main .directory-faq details p { margin-top:16px; font-size:14px; color:#535650 !important; }
body.directory-page .directory-main .directory-button { display:inline-flex; align-items:center; justify-content:space-between; gap:20px; width:100%; max-width:420px; min-height:56px; padding:14px 20px; border:1px solid #651f36; border-radius:2px; font-size:15px; line-height:1.7; text-decoration:none; transition:background-color .2s; }
body.directory-page .directory-main .directory-button > span { flex:none; }
body.directory-page .directory-main .directory-button-primary { background:#651f36; color:#fcfcfa !important; }
body.directory-page .directory-main .directory-button-primary:hover { background:#7a2e3a; }
body.directory-page .directory-main .directory-closing { padding:56px 0; background:#e7e7e3; }
body.directory-page .directory-main .directory-closing h2 { max-width:26ic; font-size:26px; line-height:1.75; }
body.directory-page .directory-main .directory-closing-copy { margin-top:24px; }
body.directory-page .directory-main .directory-closing .directory-button { margin-top:28px; }
body.directory-page .directory-main .directory-reference { margin-top:40px; border-top:1px solid #bfc3b8; padding-top:24px; max-width:60ic; }
body.directory-page .directory-main .directory-reference p { font-size:13px; color:#535650 !important; }
body.directory-page .directory-main .directory-reference p + p { margin-top:12px; }
body.directory-page .directory-main .directory-desktop-break { display:none; }
@media (min-width:768px) {
  body.directory-page .directory-main .directory-hero { padding:80px 0; }
  body.directory-page .directory-main .directory-hero-layout { grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr); gap:48px; }
  body.directory-page .directory-main h1 { font-size:clamp(30px,3.1vw,44px); }
  body.directory-page .directory-main .directory-identity { padding:40px 28px; }
  body.directory-page .directory-main .directory-identity-headline { font-size:25px; }
  body.directory-page .directory-main .directory-section { padding:80px 0; }
  body.directory-page .directory-main .directory-editorial-layout { grid-template-columns:minmax(160px,.65fr) minmax(0,1.35fr); gap:56px; }
  body.directory-page .directory-main .directory-section-en { font-size:32px; }
  body.directory-page .directory-main .directory-editorial-copy > h3 { font-size:29px; }
  body.directory-page .directory-main .directory-benefit-list article { padding:28px 0; gap:24px; }
  body.directory-page .directory-main .directory-benefit-list h3 { font-size:20px; }
  body.directory-page .directory-main .directory-profile-outline { padding:36px 32px; }
  body.directory-page .directory-main .directory-join-details > div { grid-template-columns:104px minmax(0,1fr); gap:24px; }
  body.directory-page .directory-main .directory-closing { padding:80px 0; }
  body.directory-page .directory-main .directory-closing h2 { font-size:34px; }
}
@media (min-width:1100px) { body.directory-page .directory-main .directory-desktop-break { display:block; } }
@media (prefers-reduced-motion:reduce) { body.directory-page .directory-main .directory-button { transition:none; } }
/* Photographic context and unaltered public service screens. */
body.directory-page .directory-main .directory-hero-visual { min-width:0; margin:0; }
body.directory-page .directory-main .directory-mood-image { width:100%; height:auto; display:block; aspect-ratio:3/2; object-fit:cover; }
body.directory-page .directory-main .directory-hero-visual figcaption { margin-top:8px; font-size:12px; line-height:1.8; color:#535650; }
body.directory-page .directory-main .directory-visual-brand { margin-top:24px; padding-top:20px; border-top:1px solid #c8cbc1; display:flex; align-items:center; gap:14px; }
body.directory-page .directory-main .directory-visual-brand img { width:30px; height:auto; display:block; }
body.directory-page .directory-main .directory-visual-brand span { font-size:19px; letter-spacing:.05em; }
body.directory-page .directory-main .directory-screen { margin:32px 0; }
body.directory-page .directory-main .directory-screen-link { display:block; border:1px solid #bfc3b8; background:#fcfcfa; }
body.directory-page .directory-main .directory-screen img { display:block; width:100%; height:auto; }
body.directory-page .directory-main .directory-screen figcaption { font-size:13px; line-height:1.85; color:#535650; margin-top:12px; }
body.directory-page .directory-main .directory-screen figcaption strong { font-weight:400; }
body.directory-page .directory-main .directory-screen figcaption span { font-size:12px; }
body.directory-page .directory-main .directory-profile-fields > div { padding:16px 0; border-top:1px solid #c8cbc1; }
body.directory-page .directory-main .directory-profile-fields dt { font-size:15px; }
body.directory-page .directory-main .directory-profile-fields dd { margin:6px 0 0; font-size:14px; color:#535650 !important; }
