@charset "UTF-8";


.toc {
padding: 0;
margin-bottom: 4rem;
width: 100%;
}


.toc-list, .toc-list-sub {
display: flex;
justify-content: center;
flex-wrap: wrap;
gap: 1rem;
list-style: none;
padding: 0;
margin: 0;
}


.toc-item {
display: inline-block !important;
margin: 0;
}
.toc-item:last-child {
margin-bottom: 0;
}


.toc-link {
color: #495057;
text-decoration: none;
transition: color 0.2s ease;
}


.toc-link:hover {
color: #007bff;
text-decoration: underline;
}


.toc-list-sub {
padding-left: 1.25rem;
margin-top: 0.5rem;
}
.toc-link-sub {
font-size: 0.9rem;
color: #6c757d;
}



.company-profile-container {
max-width: 800px;
margin: 0 auto;
padding: 20px;
font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
line-height: 1.7;
color: #333;
}


.company-profile-container h2 {
font-size: 1.8rem;
border-bottom: 2px solid #333;
padding-bottom: 10px;
margin-bottom: 25px;
}
.company-profile-container h2 .wf-kana {
display: block;
font-size: 0.9rem;
color: #666;
font-weight: normal;
margin-top: 4px;
}

/* --------------------------------------------------
  定義リスト (CSS Grid)
-------------------------------------------------- */
.profile-dl {
display: grid;
grid-template-columns: 160px 1fr; 
row-gap: 0;

}


.profile-dt,
.profile-dd {
padding: 14px 10px;
border-bottom: 1px solid #eee;
margin: 0;
}
.profile-dt:nth-child(39),
.profile-dd:last-child {
border-bottom: none;
}


.profile-dt {
font-weight: bold;
background-color: #fafafa;
color: #444;
display: flex;
align-items: center; 
}


.profile-dd {
color: #333;
}


.officer-role {
display: inline-block;
margin-left: 1rem;
color: #666;
font-size: 1.1rem;
}

/* --------------------------------------------------
  沿革（History）リスト
-------------------------------------------------- */
.history-list {
list-style: none;
padding: 0;
margin: 0;
}

.history-item {
display: flex;
gap: 15px;
padding: 6px 0;
border-bottom: 1px dashed #f0f0f0;
}
.history-item:last-child {
border-bottom: none;
}

.history-date {
font-weight: bold;
white-space: nowrap;
min-width: 90px;
color: #555;
}

.history-desc {
flex: 1;
}


.related-links {
list-style: none;
padding: 0;
margin: 0;
}
.related-links li {
margin-bottom: 4px;
}
.related-links a {

text-decoration: none !important;
}
.related-links a:hover {
text-decoration: underline;
}

/* --------------------------------------------------
  レスポンシブ対応（スマホ画面）
-------------------------------------------------- */
@media (max-width: 768px) {
.toc-list, .toc-list-sub {
  justify-content: left;
  flex-direction: column;
}
.toc-item a {
display: block !important;
width: 80vw;
margin-inline: auto;
text-wrap-mode: wrap !important;
}

.profile-dl {
  grid-template-columns: 1fr; 
}
.profile-dt {
  border-bottom: none;
  padding-bottom: 4px;
}
.profile-dd {
  padding-top: 4px;
}
.officer-role {
  display: block;
  margin-left: 0;
  margin-top: 2px;
}
.history-item {
  flex-direction: column;
  gap: 2px;
}
}


.policy-container {
max-width: 800px;
margin: 0 auto;
padding: 20px;
font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
line-height: 1.7;
color: #333;
}
.policy-container h1 {
font-size: 1.8rem;
border-bottom: 2px solid #333;
padding-bottom: 10px;
margin-bottom: 20px;
}
.policy-container h2 {
text-align: center;
font-size: 2.5rem;
margin: 2.5rem 0;
}
.policy-container .dl-link {
  font-size: 1.2rem;
  font-weight: bold;
  margin-left: 3rem;
  display: inline-block;
  padding: 1rem;
  border-radius: 10px;
  background-color: #eeeded;
}
#customer_harassment-policy .dl-link {
  font-size: 1.2rem;
  font-weight: bold;
  margin-left: 1rem;
  display: inline-block;
  padding: 1rem;
  border-radius: 10px;
  background-color: #eeeded;
}
.policy-lead {
margin-bottom: 30px;
background-color: #f9f9f9;
padding: 15px 20px;
border-left: 4px solid #666;
}


.policy-list {
list-style-type: none; 
counter-reset: main-counter; 
padding-left: 0;
}

.policy-list > li > ul {
margin: 0.35rem 0;
}
.policy-list > li {
counter-increment: main-counter;
position: relative;
padding-left: 2.5em; 
margin-bottom: 20px;
}

.policy-list > li::before {
content: counter(main-counter) "."; 
position: absolute;
left: 0;
top: 0;
font-weight: bold;
}


.policy-list ol[type="a"] {
list-style-type: none;
counter-reset: sub-counter-a;
padding-left: 0;
margin-top: 8px;
}

.policy-list ol[type="a"] > li {
counter-increment: sub-counter-a;
position: relative;
padding-left: 2.2em; 
font-weight: normal;
margin-bottom: 8px;
}

.policy-list ol[type="a"] > li::before {
content: counter(sub-counter-a, lower-alpha) "."; 
position: absolute;
left: 0;
top: 0;
}


.policy-list ol[type="i"] {
list-style-type: none;
counter-reset: sub-counter-i;
padding-left: 0;
margin-top: 8px;
}

.policy-list ol[type="i"] > li {
counter-increment: sub-counter-i;
position: relative;
padding-left: 2.5em; 
margin-bottom: 8px;
}

.policy-list ol[type="i"] > li::before {
content: counter(sub-counter-i, lower-roman) "."; 
position: absolute;
left: 0;
top: 0;
}
.policy-list .section-title {
font-weight: bold;
}

.policy-meta {
margin: 0.2rem 0 0.5rem;
}

.item-label {
font-weight: bold;
}

.policy-bullet-list {
list-style-type: none;
padding-left: 0;
margin: 0 0 25px 0;
}

.policy-bullet-list > li {
position: relative;
padding-left: 1.8em; 
margin-bottom: 8px;
line-height: 1.7;
}


.policy-bullet-list > li::before {
content: "・";
position: absolute;
left: 0;
top: 0;
font-weight: bold;
color: #555;
}

.policy-section-h2 {
font-weight: bold;
margin-top: 30px;
margin-bottom: 15px;
padding-bottom: 5px;
border-bottom: 1px solid #ddd;
}

.policy-section-h3 {
font-size: 1.5rem;
font-weight: bold;
margin-top: 30px;
margin-bottom: 15px;
padding-bottom: 5px;
border-bottom: 1px solid #ddd;
}

.ai-policy-section-h3 {
font-size: 1.4rem;
font-weight: bold;
text-align: center;
margin: 5rem 0 3rem;
}

.policy-footer {
margin-top: 2rem;
padding-top: 20px;
border-top: 1px dashed #ccc;
}

.policy-footer p {
margin-bottom: 10px;
}

.policy-date-company {
text-align: right;
margin: 6rem 0 3rem;
}

section {
overflow-wrap: anywhere;
word-break: normal;
line-break: strict;
}

section.company-profile {
padding-top: 2rem;
margin-top: -2rem;
margin-bottom: 3rem;
}


h2.wf {
border-bottom: solid 1px #555;
font-family: 'Raleway', sans-serif;
font-size: 20px;
font-weight: 200;
font-style: italic;
text-align: left;
margin-bottom: 0;
}