
.p22-case-list{
  --green:#163b32;
  --green-d:#0f2c25;
  --cream:#f7f4ec;
  --paper:#fffdf8;
  --line:#ddd6c6;
  --line-soft:#ece6d8;
  --gold:#b08d4f;
  --rust:#8b5945;
  --ink:#2d4139;
  --mute:#7b857c;
  --eOut:cubic-bezier(.16,.84,.28,1);   /* 開く：速く出て、静かに止まる */
  --eIn :cubic-bezier(.45,.02,.35,1);   /* 閉じる：素直に畳む */
  --open:300ms;
  --close:210ms;
}
/* ── ファイル ─────────────────────────── */
.p22-file{
  position:relative;width:100%;
  padding-left:38px;
  background:
    repeating-linear-gradient(8deg,transparent 0 21px,#8b744d07 22px,transparent 23px),
    var(--paper);
  border:1px solid var(--line);border-radius:6px;
  overflow:hidden;
  transition:max-width var(--close) var(--eIn),
             border-color var(--close) var(--eIn),
             box-shadow var(--close) var(--eIn);
}
.p22-file[data-open="true"]{
  border-color:var(--green);
  box-shadow:0 12px 30px #2d413921;
  transition:max-width var(--open) var(--eOut),
             border-color var(--open) var(--eOut),
             box-shadow var(--open) var(--eOut);
}

/* 背表紙 */
.p22-file__spine{
  position:absolute;left:0;top:0;bottom:0;width:38px;
  background:var(--green);color:var(--cream);
  display:flex;align-items:center;justify-content:center;
  writing-mode:vertical-rl;
  font:500 14px/1 "Yu Mincho","Hiragino Mincho ProN",serif;letter-spacing:.24em;
  border-radius:5px 0 0 5px;
}
.p22-file__spine::after{
  content:"";position:absolute;right:0;top:9px;bottom:9px;width:1px;
  background:#ffffff26;
}
/* 分野名が長いとき（5文字以上）は背表紙からはみ出さないよう詰める */
.p22-file--long .p22-file__spine{font-size:12px;letter-spacing:.04em}

/* 見出し（閉じているときの全体） */
.p22-file__head{
  display:grid;grid-template-columns:1fr 34px;align-items:center;gap:12px;
  width:100%;min-height:78px;padding:14px 14px 14px 16px;
  border:0;background:none;text-align:left;cursor:pointer;
  font-family:inherit;color:inherit;
  -webkit-tap-highlight-color:transparent;
}
.p22-file__head:focus-visible{outline:2px solid var(--gold);outline-offset:-3px}
.p22-file__no{
  display:block;margin:0 0 5px;
  font:600 9.5px/1 sans-serif;letter-spacing:.2em;color:var(--gold);
}
.p22-file__lead{
  margin:0;font:500 15.5px/1.5 "Yu Mincho","Hiragino Mincho ProN",serif;
  letter-spacing:.03em;color:var(--green);
  /* 長い見出しが入っても2行で止める */
  display:-webkit-box;-webkit-box-orient:vertical;
  -webkit-line-clamp:2;line-clamp:2;overflow:hidden;
}
.p22-file__mark{
  width:34px;height:34px;border:1px solid var(--line);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:var(--green);font-size:15px;
  transition:transform var(--close) var(--eIn),background var(--close),
             border-color var(--close),color var(--close);
}
.p22-file__head:hover .p22-file__mark{border-color:var(--green)}
.p22-file[data-open="true"] .p22-file__mark{
  transform:rotate(135deg);
  background:var(--green);border-color:var(--green);color:var(--cream);
  transition:transform var(--open) var(--eOut),background var(--open),
             border-color var(--open),color var(--open);
}

/* 中身 */
.p22-file__body{
  display:grid;grid-template-rows:0fr;
  transition:grid-template-rows var(--close) var(--eIn);
}
.p22-file[data-open="true"] .p22-file__body{
  grid-template-rows:1fr;
  transition:grid-template-rows var(--open) var(--eOut);
}
.p22-file__clip{overflow:hidden}
.p22-file__inner{
  padding:4px 20px 22px 16px;
  opacity:0;transform:translateY(-6px);
  transition:opacity 120ms linear,transform 120ms linear;
}
.p22-file[data-open="true"] .p22-file__inner{
  opacity:1;transform:none;
  transition:opacity 180ms ease 90ms,transform 220ms var(--eOut) 60ms;
}

.p22-file__ttl{
  margin:0 0 16px;padding-top:16px;border-top:1px solid var(--line-soft);
  font:500 19px/1.65 "Yu Mincho","Hiragino Mincho ProN",serif;
  letter-spacing:.04em;color:var(--green);max-width:32em;
}
.p22-rec{display:grid;gap:14px;margin:0 0 20px;max-width:40em}
.p22-rec > div{display:grid;grid-template-columns:70px minmax(0,1fr);gap:14px;align-items:baseline}
.p22-rec dt{font:600 9.5px/1.8 sans-serif;letter-spacing:.18em;color:var(--gold)}
.p22-rec dd{margin:0;font-size:14px;line-height:1.9}

.p22-stamp{
  position:absolute;right:16px;top:0;
  padding:3px 7px;border:1.3px solid #8b594599;border-radius:2px;
  color:var(--rust);font:11px/1 "Yu Mincho",serif;letter-spacing:.14em;
  transform:rotate(-3deg);opacity:0;transition:opacity 200ms ease 140ms;
}
.p22-file[data-open="true"] .p22-stamp{opacity:1}

.p22-acts{display:flex;flex-wrap:wrap;gap:10px}
.p22-acts a,.p22-acts button{
  appearance:none;display:inline-flex;align-items:center;gap:8px;
  padding:13px 22px;border-radius:4px;
  font:600 14px/1 inherit;letter-spacing:.05em;cursor:pointer;text-decoration:none;
  transition:background 140ms,border-color 140ms,color 140ms;
}
.p22-act-main{background:var(--green);border:1px solid var(--green);color:var(--cream)}
.p22-act-main:hover{background:var(--green-d)}
.p22-act-main::after{content:"↗";font-weight:400;opacity:.85}
.p22-act-back{background:transparent;border:1px solid var(--line);color:var(--mute)}
.p22-act-back:hover{border-color:var(--green);color:var(--green)}
.p22-acts :focus-visible{outline:2px solid var(--gold);outline-offset:2px}

@media(min-width:900px){
  .p22-case-list{gap:14px}
  .p22-file{max-width:660px}
  .p22-file[data-open="true"]{max-width:940px}
  .p22-file__head{min-height:74px;padding:14px 18px 14px 20px}
  .p22-file__lead{font-size:17px}
  .p22-file__inner{padding:6px 34px 26px 20px}
  .p22-file__ttl{font-size:21px}
}
@media(max-width:519px){
  /* 幅が足りないと「事件記録」が見出しに重なるため出さない */
  .p22-stamp{display:none}
}
@media(max-width:400px){
  .p22-file{padding-left:32px}
  .p22-file__spine{width:32px;font-size:13px;letter-spacing:.18em}
  .p22-file__head{min-height:70px;padding:12px 12px 12px 13px}
  .p22-file__lead{font-size:14.5px}
  .p22-rec > div{grid-template-columns:1fr;gap:3px}
}
@media(prefers-reduced-motion:reduce){
  .p22-case-list *{transition-duration:1ms!important}
}

/* test22 integration; v11 visual rules are scoped to CASE FILE components. */
.p22-case-list{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:12px!important;justify-items:start;align-items:start;width:100%}
.p22-case-list .p22-file{margin:0;box-sizing:border-box;min-width:0;scroll-margin-top:0}
.p22-case-list .p22-file__head>span:first-child{min-width:0}
.p22-case-list .p22-file__lead{font-family:var(--serif);font-weight:500;white-space:normal;margin:0;color:var(--green)}
.p22-case-list .p22-file__no{margin:0 0 5px;color:var(--gold)}
.p22-case-list .p22-file__ttl{font-family:var(--serif);font-size:19px;margin:0 0 16px;line-height:1.65;color:var(--green)}
.p22-case-list .p22-file__inner{position:relative}
.p22-case-list .p22-stamp{top:6px;right:12px}
.p22-case-list .p22-rec p{font:inherit;line-height:inherit;margin:0 0 .65em;color:inherit;overflow-wrap:anywhere}
.p22-case-list .p22-rec p:last-child{margin-bottom:0}
.p22-case-list .p22-rec{margin:0 0 20px}
.p22-case-list .p22-rec dt{overflow-wrap:anywhere}
.p22-case-list .p22-file .p14-note{margin:0 0 18px;font-size:12px}
.p22-case-list .p22-acts a,.p22-case-list .p22-acts button{font-family:var(--sans);line-height:1.5;font-size:14px;justify-content:center}
.p22-case-list:not([data-enhanced]) .p22-file__body{grid-template-rows:1fr}
.p22-case-list:not([data-enhanced]) .p22-file__inner{opacity:1;transform:none}
.p22-case-list:not([data-enhanced]) .p22-act-back{display:none}
.p22-phone-reservation{border-top:1px solid #d9d6cb;padding-top:44px;margin-top:50px}

#reservation-result:empty{display:none}
#reservation-result:focus{outline:none}
.fp-philosophy{padding:34px 0;margin:0 0 28px;border-top:1px solid #d8d0bf;border-bottom:1px solid #d8d0bf}
.fp-philosophy h2{font-size:14px;letter-spacing:.12em;margin:0 0 12px;color:#5c6c63}
.fp-philosophy h3{font-family:var(--serif);font-size:clamp(23px,2.8vw,32px);line-height:1.6;margin:0 0 24px;color:#163b32}
.fp-philosophy p{line-height:1.95;margin:0 0 16px}.fp-philosophy p:last-child{margin-bottom:0}
.p15-portrait figcaption{top:10px!important;padding-top:12px}
@media(min-width:900px){.p22-case-list{gap:14px!important}.p22-case-list .p22-file__ttl{font-size:21px}}
@media(max-width:700px){.ed-mobile-book{display:none!important}.p15-portrait figcaption{top:4px!important;padding-top:8px}.p22-phone-reservation{padding-top:30px;margin-top:32px}}
@media(max-width:400px){.p22-case-list .p22-acts{flex-direction:column}.p22-case-list .p22-acts a,.p22-case-list .p22-acts button{width:100%;padding:12px 8px}}
.p22-case-list .p22-file__spine,.p22-case-list .p22-stamp{font-family:var(--serif)}
.p22-case-list .p22-file__no{font-family:var(--sans)}
@media(max-width:700px){.p15-hero-description>.ed-text-link{display:none}}

.p15-portrait .p22-name-break:before{content:'　'}
@media(max-width:700px){.p15-portrait figcaption>span{font-size:10px;line-height:1.65}.p15-portrait .p22-name-break{display:block}.p15-portrait .p22-name-break:before{content:none}}

/* test23: match BEFORE YOU DECIDE exactly. */
.fee-page .fp-philosophy h2.fp-eyebrow{font-family:inherit;font-size:11px;font-weight:600;letter-spacing:.18em;color:var(--gold);margin:0 0 10px}
#reservation-dates-title:focus{outline:none}

/* 1.4.38: atomic close, without competing height/width/scroll animations. */
.p33-case-closing,.p33-case-closing *{transition:none!important;animation:none!important}
html.p33-case-settling,html.p33-case-settling body{scroll-behavior:auto!important;overflow-anchor:none!important}

/* 1.4.38: normal page links and standalone practice pages. */
.p21-tabs a.tab{text-decoration:none;color:inherit}
.p34-practice .p14-intro h1{font-family:var(--serif);font-size:clamp(28px,3.5vw,46px);font-weight:500;line-height:1.55;color:inherit;margin:12px 0 24px}
.p34-practice-nav{display:flex;flex-wrap:wrap;gap:12px;padding-top:32px;padding-bottom:40px}
.p34-practice-nav a{padding:10px 16px;border:1px solid #b5bdb4;text-decoration:none}
.p34-practice-nav a[aria-current=page]{background:#163b32;color:#fff}

/* 1.4.38: compact availability copy and smaller heading. */
.p21-near .rsv__title{font-size:18px}
@media(min-width:900px){.p21-near .rsv__title{font-size:28px}}
@media(max-width:700px){.p21-near .rsv__title{font-size:17px}.p21-near .rsv__all{display:none}}

/* 1.4.38: home rhythm, scoped away from practice and booking pages. */
.p36-home .ed-kicker{margin-bottom:10px!important}
.p36-home .p15-hero{min-height:520px;padding-top:38px;padding-bottom:38px;grid-template-rows:auto auto;align-content:center}
.p36-home .p15-hero h1{font-size:clamp(32px,3.1vw,46px);line-height:1.5;margin:10px 0 20px}
.p36-home .p15-hero-description p{margin:0 0 12px;max-width:34em}
.p36-home .ed-practice{padding-top:32px;padding-bottom:32px}
.p36-home .ed-section-title{margin-bottom:20px}
.p36-home .ed-section-title h2{font-size:clamp(23px,2.4vw,32px)}
.p36-home .p15-look,.p36-home .p15-method{padding:42px 0}
.p36-home .p15-look h2,.p36-home .p15-home-files>h2,.p36-home .p15-method h2,.p36-home .p15-attorney h2,.p36-home .p15-city h2{font-size:clamp(24px,2.3vw,32px);line-height:1.5;margin:0 0 22px}
.p36-home .p15-look-grid{gap:16px}
.p36-home .p15-look-grid article{padding:20px 18px}
.p36-home .p15-look-grid h3{font-size:18px;line-height:1.65;min-height:0}
.p36-home .p15-look-grid article>span{font-size:22px;margin:6px 0}
.p36-home .p15-look-grid p{font-size:15px;line-height:1.8;margin:0}
.p36-home .p15-look-ending{font-size:18px;line-height:1.8;margin:22px 0 0;padding-top:18px}
.p36-home .p15-home-files{padding-top:42px;padding-bottom:42px}
.p36-home .p15-home-file-grid{margin-top:24px}
.p36-home .p15-home-files .p22-file{max-width:none}
.p36-home .p15-method ol{margin:0;gap:18px}
.p36-home .p15-method li{font-size:18px;padding-top:12px}
.p36-home .p15-method li span{margin-bottom:6px}
.p36-home .p15-attorney{padding-top:42px;padding-bottom:32px;gap:5%}
.p36-home .p15-attorney img{max-height:310px;aspect-ratio:1.5}
.p36-home .p15-attorney p{font-size:15px;line-height:1.85;margin:12px 0}
.p36-home .p15-other{padding-top:20px;padding-bottom:24px}
.p36-home .p15-other h2{font-size:26px;margin:0 0 20px}
.p36-home .p15-visit-links{padding-top:8px;padding-bottom:36px;gap:24px}
.p36-home .p15-visit-links a{padding:16px 12px}
.p36-home .p15-visit-links strong{font-size:23px;margin-top:8px}
.p36-home .p15-city{min-height:300px}
.p36-home .p15-city>div{padding:36px 0}
.p36-home .p15-city p{font-size:15px;line-height:1.85;margin:12px 0}
@media(min-width:900px){
 .p36-home .p21-near .rsv{padding:30px 32px}
 .p36-home .p21-near .rsv__title{font-size:25px;margin:8px 0 12px}
 .p36-home .p21-near .rsv__list{margin-top:16px;gap:12px}
 .p36-home .p21-near .slot{padding:14px 10px;gap:12px}
 .p36-home .p21-near .rsv__more{margin-top:14px}
 .p36-home .p15-home-files{display:grid;grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr);column-gap:40px;grid-template-rows:auto 1fr}
 .p36-home .p15-home-files>.ed-kicker{grid-column:1;grid-row:1}
 .p36-home .p15-home-files>h2{grid-column:1;grid-row:2}
 .p36-home .p15-home-file-grid{grid-column:2;grid-row:1/3;margin:0}
 .p36-home .p15-method>.p14-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);column-gap:36px;align-items:center}
 .p36-home .p15-method .ed-kicker{grid-column:1;grid-row:1}
 .p36-home .p15-method h2{grid-column:1;grid-row:2;margin:0;font-size:28px}
 .p36-home .p15-method ol{grid-column:2;grid-row:1/3;grid-template-columns:1fr 1fr}
 .p36-home .p15-method li:nth-child(2):after{content:none}
}
@media(min-width:701px) and (max-width:899px){
 .p36-home .p15-hero{min-height:450px}
 .p36-home .p21-near .rsv{width:100%;padding:24px 5%}
}
@media(max-width:700px){
 .p36-home .p15-hero{display:block;min-height:0;padding:20px 5% 22px}
 .p36-home .p15-hero-heading{min-height:238px;padding-top:28px}
 .p36-home .p15-hero h1{font-size:clamp(22px,6vw,29px);margin:12px 0 16px;line-height:1.6}
 .p36-home .p15-hero-description p{font-size:13px;line-height:1.85;margin:0}
 .p36-home .p15-portrait{height:290px}
 .p36-home .p21-near .rsv{padding-top:18px;padding-bottom:20px}
 .p36-home .ed-practice{padding-top:22px;padding-bottom:24px}
 .p36-home .ed-section-title{margin-bottom:16px}
 .p36-home .ed-section-title h2{font-size:23px}
 .p36-home .p15-look,.p36-home .p15-method{padding:30px 0}
 .p36-home .p15-look h2,.p36-home .p15-home-files>h2,.p36-home .p15-method h2,.p36-home .p15-attorney h2,.p36-home .p15-city h2{font-size:24px;margin-bottom:18px}
 .p36-home .p15-look-grid{gap:10px}
 .p36-home .p15-look-grid article{padding:14px 16px;grid-template-columns:22px 1fr;row-gap:6px}
 .p36-home .p15-look-grid h3{font-size:17px}
 .p36-home .p15-look-grid article>span{margin:0;font-size:20px}
 .p36-home .p15-look-grid p{font-size:14px;line-height:1.8}
 .p36-home .p15-look-ending{font-size:16px;line-height:1.8;margin-top:18px;padding-top:16px}
 .p36-home .p15-home-files{padding-top:30px;padding-bottom:30px}
 .p36-home .p15-home-file-grid{margin-top:20px}
 .p36-home .p15-method ol{gap:16px}
 .p36-home .p15-method li{font-size:17px}
 .p36-home .p15-attorney{padding-top:30px;padding-bottom:24px;gap:22px}
 .p36-home .p15-attorney img{aspect-ratio:1.65;max-height:260px}
 .p36-home .p15-other{padding-top:16px;padding-bottom:20px}
 .p36-home .p15-other h2{font-size:24px;margin-bottom:18px}
 .p36-home .p15-visit-links{padding-top:4px;padding-bottom:28px;gap:12px}
 .p36-home .p15-visit-links a{padding:12px 8px}
 .p36-home .p15-visit-links strong{font-size:21px}
 .p36-home .p15-city{min-height:0}
 .p36-home .p15-city>div{padding:30px 0}
}
.p36-home .p36-mobile-break{display:none}
@media(max-width:899px){.p36-home .p36-desktop-break{display:none}}
@media(max-width:700px){.p36-home .p36-mobile-break{display:block}}
@media(max-width:359px){
 .p36-home .ed-section-title h2,.p36-home .p15-attorney h2{font-size:20px}
 .p36-home .p15-method li{font-size:15px}
 .p36-home .p15-visit-links strong{font-size:19px}
}

/* 1.4.38: keep two-digit item labels intact with longer approved copy. */
#panel-collection .p14-concern-grid>div>span{flex-shrink:0;white-space:nowrap}
@media(min-width:701px){#panel-collection .p14-analysis-grid>article:last-child:nth-child(odd){grid-column:1/-1}}
