/* Owner-approved Legal Counsel UI; component-scoped. */
.hal-lp.hal-legal-counsel .lc-top{background:var(--hal-bg);border-block:1px solid var(--hal-line);padding-block:60px}
.hal-lp.hal-legal-counsel .lc-top .lc-copy{max-width:760px;margin-inline:auto;text-align:center}
.hal-lp.hal-legal-counsel .lc-top .lc-title{font-family:var(--hal-serif);font-size:clamp(25px,2.6vw,34px);font-weight:600;line-height:1.65;letter-spacing:.02em;margin:24px 0 28px;color:var(--hal-sumi)}
.hal-lp.hal-legal-counsel .lc-kicker{font-family:var(--hal-mono);font-size:11px;letter-spacing:.2em;line-height:1.8;color:var(--hal-gold-deep);margin:0 0 20px}
.hal-lp.hal-legal-counsel .lc-p{font-family:var(--hal-sans);font-size:16px;font-weight:400;line-height:2;letter-spacing:.035em;color:var(--hal-body);margin:0;word-break:normal;line-break:strict;text-wrap:pretty}
.hal-lp.hal-legal-counsel .lc-prose-block{width:fit-content;max-width:100%;margin-inline:auto;text-align:left}
.hal-lp.hal-legal-counsel .lc-p+.lc-p{margin-top:16px}
.hal-lp.hal-legal-counsel .lc-link{display:inline-flex;align-items:center;gap:16px;min-height:44px;font-family:var(--hal-sans);font-size:14px;line-height:1.9;color:var(--hal-gold-deep);text-decoration:none;border-bottom:1px solid var(--hal-gold-line);padding-block:8px;margin-top:24px;max-width:100%;word-break:normal}
.hal-lp.hal-legal-counsel .lc-link:hover{text-decoration:underline;text-underline-offset:5px}
.hal-lp.hal-legal-counsel .lc-link:focus-visible,.hal-lp.hal-legal-counsel .lc-button:focus-visible{outline:2px solid var(--hal-gold);outline-offset:5px}
.hal-lp.hal-legal-counsel .lc-link span{flex:none}
.hal-lp.hal-legal-counsel .lc-inner{width:100%;max-width:816px;padding-inline:28px;margin-inline:auto;box-sizing:border-box}
.hal-lp.hal-legal-counsel .lc-main{padding-top:77px}
@media(max-width:767.98px){.hal-lp.hal-legal-counsel .lc-main{padding-top:61px}}
.hal-lp.hal-legal-counsel .lc-crumb{border-bottom:1px solid var(--hal-line);padding-block:16px;font-family:var(--hal-sans);font-size:12px;line-height:1.8;color:var(--hal-muted)}
.hal-lp.hal-legal-counsel .lc-crumb a{color:inherit;text-decoration:none}
.hal-lp.hal-legal-counsel .lc-crumb span{margin-right:14px}
.hal-lp.hal-legal-counsel .lc-hero{padding:88px 0 72px;background:var(--hal-ink)}
.hal-lp.hal-legal-counsel .lc-hero .lc-kicker{color:var(--hal-gold-line)}
.hal-lp.hal-legal-counsel .lc-h1{font-family:var(--hal-serif);font-size:clamp(25px,2.8vw,36px);font-weight:500;line-height:1.6;letter-spacing:.035em;color:var(--hal-on-ink);margin:0 0 28px;text-wrap:balance;word-break:normal;text-align:center}
.hal-lp.hal-legal-counsel .lc-hero .lc-p{color:var(--hal-on-ink-sub)}
.hal-lp.hal-legal-counsel .lc-section{padding-block:64px;border-bottom:1px solid var(--hal-line)}
.hal-lp.hal-legal-counsel .lc-h2{font-family:var(--hal-serif);font-size:clamp(23px,2.1vw,28px);line-height:1.7;letter-spacing:.025em;font-weight:500;color:var(--hal-sumi);margin:0 0 28px;word-break:normal;text-wrap:balance;text-align:center}
.hal-lp.hal-legal-counsel .lc-profile{margin:32px 0 0}
.hal-lp.hal-legal-counsel .lc-profile>div{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:24px;padding-block:18px;border-top:1px solid var(--hal-line)}
.hal-lp.hal-legal-counsel .lc-profile dt{font-size:13px;line-height:2;color:var(--hal-muted);font-weight:400;text-align:left}
.hal-lp.hal-legal-counsel .lc-profile dd{margin:0;font-size:16px;line-height:1.9;color:var(--hal-body-deep);min-width:0;text-align:center}
.hal-lp.hal-legal-counsel .lc-profile dd .lc-link{font-size:13px;margin:0;padding-block:0}
.hal-lp.hal-legal-counsel .lc-roles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;margin:32px 0}
.hal-lp.hal-legal-counsel .lc-role{min-width:0;border-top:1px solid var(--hal-gold-line);padding-top:24px}
.hal-lp.hal-legal-counsel .lc-role-name{font-family:var(--hal-serif);font-size:19px;line-height:1.8;color:var(--hal-sumi);margin:0 0 24px;font-weight:600}
.hal-lp.hal-legal-counsel .lc-role dl{margin:0}
.hal-lp.hal-legal-counsel .lc-role dl>div{margin-top:20px}
.hal-lp.hal-legal-counsel .lc-role dt{font-size:12px;line-height:1.8;color:var(--hal-muted);margin-bottom:6px}
.hal-lp.hal-legal-counsel .lc-role dd{font-size:16px;line-height:2;margin:0;color:var(--hal-body)}
.hal-lp.hal-legal-counsel .lc-cta{background:var(--hal-ink);padding:72px 0}
.hal-lp.hal-legal-counsel .lc-cta .lc-h2{color:var(--hal-on-ink)}
.hal-lp.hal-legal-counsel .lc-cta .lc-p{color:var(--hal-on-ink-sub)}
.hal-lp.hal-legal-counsel .lc-button{display:inline-block;padding:16px 34px;background:var(--hal-gold);color:var(--hal-ink);text-decoration:none;font-size:14px;line-height:1.8;margin-top:28px;max-width:100%}
.hal-lp.hal-legal-counsel .lc-button:hover{background:var(--hal-gold-hover)}
.hal-lp.hal-legal-counsel .lc-cta-action{text-align:center}
.hal-lp.hal-legal-counsel .lc-copy-line{display:block;white-space:normal;word-break:normal;line-break:strict}
.hal-lp.hal-legal-counsel .lc-supervision{font-size:14px;line-height:2;color:var(--hal-on-ink-sub);margin:20px 0 0}
.hal-lp.hal-legal-counsel .lc-role .lc-role-note{margin-top:28px}
.hal-lp.hal-legal-counsel .lc-heading-part{display:inline}
@media(min-width:1024px){.hal-lp.hal-legal-counsel .lc-top{padding-block:120px}}
@media(max-width:767.98px){
 .hal-lp.hal-legal-counsel .lc-inner{padding-inline:20px}
 .hal-lp.hal-legal-counsel .lc-hero{padding:52px 0 48px}
 .hal-lp.hal-legal-counsel .lc-section{padding-block:44px}
 .hal-lp.hal-legal-counsel .lc-h2{font-size:23px;margin-bottom:24px}
 .hal-lp.hal-legal-counsel .lc-roles{grid-template-columns:minmax(0,1fr);gap:28px}
 .hal-lp.hal-legal-counsel .lc-profile>div{grid-template-columns:72px minmax(0,1fr);gap:12px;padding-block:14px}
 .hal-lp.hal-legal-counsel .lc-cta{padding:48px 0}
 .hal-lp.hal-legal-counsel .lc-top .lc-title{font-size:25px;text-wrap:balance}
 .hal-lp.hal-legal-counsel .lc-heading-part{display:block;text-wrap:wrap}
}


/* OwnerFix5 approved implementation: iPhone Safari typography and heading blocks. */
.hal-lp.hal-legal-counsel{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}

.hal-lp.hal-legal-counsel .lc-prose-block{
  width:fit-content;
  max-width:min(100%, 660px);
  margin-inline:auto;
  text-align:left;
}

.hal-lp.hal-legal-counsel .lc-hero .lc-prose-block,
.hal-lp.hal-legal-counsel .lc-cta .lc-prose-block{
  max-width:min(100%, 620px);
}

.hal-lp.hal-legal-counsel .lc-p,
.hal-lp.hal-legal-counsel .lc-supervision,
.hal-lp.hal-legal-counsel .lc-role dd{
  word-break:normal;
  overflow-wrap:normal;
  line-break:strict;
  text-wrap:pretty;
}

/* Source newlines no longer force visual line breaks. */
.hal-lp.hal-legal-counsel .lc-copy-line,
.hal-lp.hal-legal-counsel .lc-heading-part{
  display:inline;
  white-space:normal;
}

/* Protect only short semantic units; surrounding prose remains fluid. */
.hal-lp.hal-legal-counsel .lc-keep{
  display:inline-block;
  white-space:nowrap;
}

/* Existing light/dark palette tokens; no new colour introduced. */
.hal-lp.hal-legal-counsel .lc-h1,
.hal-lp.hal-legal-counsel .lc-h2{
  display:block;
  width:fit-content;
  max-width:100%;
  box-sizing:border-box;
  margin-inline:auto;
  padding:12px clamp(14px, 2vw, 24px);
  background:var(--hal-bg-alt);
  border:0;
  border-radius:0;
}

.hal-lp.hal-legal-counsel .lc-h1{
  margin-bottom:28px;
  background:rgba(255,255,255,.08);
}

.hal-lp.hal-legal-counsel .lc-h2{
  margin-bottom:28px;
}

.hal-lp.hal-legal-counsel .lc-cta .lc-h2{
  background:rgba(255,255,255,.08);
}

@media(max-width:767.98px){
  .hal-lp.hal-legal-counsel .lc-inner{
    padding-inline:18px;
  }

  .hal-lp.hal-legal-counsel .lc-p,
  .hal-lp.hal-legal-counsel .lc-role dd{
    font-size:15px;
    line-height:1.85;
    letter-spacing:.006em;
  }

  .hal-lp.hal-legal-counsel .lc-supervision{
    font-size:13px;
    line-height:1.85;
    letter-spacing:0;
  }

  .hal-lp.hal-legal-counsel .lc-h2{
    font-size:clamp(19px,5.5vw,23px);
    line-height:1.55;
    letter-spacing:.012em;
    padding:10px 12px;
    margin-bottom:24px;
  }

  .hal-lp.hal-legal-counsel .lc-cta .lc-h2{
    font-size:clamp(16px,4.7vw,19px);
    line-height:1.5;
    letter-spacing:0;
    padding-inline:8px;
    white-space:nowrap;
  }
}

@media(max-width:359.98px){
  .hal-lp.hal-legal-counsel .lc-inner{
    padding-inline:16px;
  }

  .hal-lp.hal-legal-counsel .lc-cta .lc-h2{
    font-size:15px;
    padding-inline:6px;
  }
}

/* Owner correction 2026-09-30: mobile counsel-page prose only. */
@media(max-width:767.98px){
  .hal-lp.hal-legal-counsel .lc-prose-block{ text-align:center; }
}

/* Fix15 (2026-10-22, Owner): /legal-counsel/ on mobile (767.98px and below), one pass over the whole page. This replaces Fix14's block here (the
   paragraphs at most 310px with at least 40px on each side): on this page the text uses the screen less one gutter of 20px on each side (335px at
   375, 350px at 390, 390px at 430). The gutter is the inner box's only side padding; the blocks inside it (the text, the information table, the role
   cards, the button) take its full width, so no second margin and one left edge for everything.
   - Alignment: text, labels, the table's keys and values left (never justified); headings centred, the role headings 「HAL探偵社 東京赤坂支店」「弁護士」 too.
   - Line breaks: the text breaks only between phrases (the <wbr> of hal_legal_counsel_phrase_breaks(), word-break: keep-all; a phrase longer than the line
     may still break: overflow-wrap: anywhere). The long OwnerFix5 units flow again (no nowrap: no large gaps); only the name 「柳田康男 弁護士」 is kept
     together. The source newlines are not forced (they were not: .lc-copy-line is inline). Same text, same font sizes.
   - FV: LEGAL COUNSEL centred on the title's centre line; title → text 24px, kicker → title 16px, the paragraphs 16px apart, text → the centred note 24px.
   - 顧問弁護士: the official site link flows as text (it was a flex row that split 「外部サ／イト」), its lines balanced, at the boundaries of its units;
     the same words, address, new tab.
   - Sections 48px above and below, heading → text 24px, paragraphs 16px apart. The last heading has the size and weight of the other headings (no
     smaller size, no nowrap); 32px from its text to the button (the button already spans the content width: the ArrowFillButton of arrow-fill.css); 56px below it.
   The phrase rules apply once assets/js/hal-legal-counsel-phrases.js has put the <wbr> in (.lc-phrases on the page); without JavaScript the text
   breaks as before. PC, tablet and the TOP are not touched (this file is loaded on /legal-counsel/ only; every rule here is inside this media query). */
@media (max-width: 767.98px) {
  html body .hal-lp.hal-legal-counsel .lc-main .lc-inner { max-width: none; padding-left: 20px; padding-right: 20px; }
  html body .hal-lp.hal-legal-counsel .lc-main .lc-prose-block { width: auto; max-width: none; margin-left: 0; margin-right: 0; text-align: left; }
  html body .hal-lp.hal-legal-counsel .lc-main .lc-prose-block > .lc-p { width: auto; max-width: none; margin-left: 0; margin-right: 0; }
  html body .hal-lp.hal-legal-counsel .lc-main :is(.lc-p, .lc-copy-line, .lc-profile dt, .lc-profile dd, .lc-role dt, .lc-role dd) { text-align: left; text-align-last: auto; }
  html body .hal-lp.hal-legal-counsel.lc-phrases .lc-main :is(.lc-p, .lc-supervision, .lc-profile dd, .lc-role dd, .lc-role-name, .lc-h1, .lc-h2, .lc-copy-line, .lc-heading-part, .lc-keep, .lc-link, .lc-ph) { word-break: keep-all; overflow-wrap: anywhere; line-break: strict; }
  html body .hal-lp.hal-legal-counsel.lc-phrases .lc-main .lc-keep { display: inline; white-space: normal; }
  html body .hal-lp.hal-legal-counsel.lc-phrases .lc-main .lc-keep.lc-keep--name { white-space: nowrap; }

  html body .hal-lp.hal-legal-counsel .lc-main .lc-hero .lc-kicker { text-align: center; margin-bottom: 16px; }
  html body .hal-lp.hal-legal-counsel .lc-main .lc-hero .lc-h1 { margin-bottom: 24px; }
  html body .hal-lp.hal-legal-counsel .lc-main .lc-hero .lc-supervision { margin-top: 24px; text-align: center; }

  html body .hal-lp.hal-legal-counsel .lc-main .lc-profile dd .lc-link { display: inline-block; max-width: 100%; text-wrap: balance; word-break: keep-all; overflow-wrap: anywhere; }

  html body .hal-lp.hal-legal-counsel .lc-main .lc-role-name { text-align: center; }

  html body .hal-lp.hal-legal-counsel .lc-main .lc-section { padding-top: 48px; padding-bottom: 48px; }
  html body .hal-lp.hal-legal-counsel .lc-main .lc-section .lc-h2,
  html body .hal-lp.hal-legal-counsel .lc-main .lc-cta .lc-h2 { margin-bottom: 24px; }
  html body .hal-lp.hal-legal-counsel .lc-main .lc-cta { padding-top: 48px; padding-bottom: 56px; }
  html body .hal-lp.hal-legal-counsel .lc-main .lc-cta .lc-h2 { font-size: clamp(19px, 5.5vw, 23px); line-height: 1.55; letter-spacing: .012em; white-space: normal; }
  html body .hal-lp.hal-legal-counsel .lc-main .lc-cta .lc-cta-action { margin-top: 32px; }
}
