@charset "UTF-8";
/* ==========================================================================
   Object / Project / company
   ========================================================================== */
.p-company__content { padding-block: 64px 120px; }
.c-entry--lower { font-size: var(--fs-base); line-height: 2; color: var(--color-text); }
.c-entry--lower > * + * { margin-top: 1.6em; }
.c-entry--lower img { max-width:100%; height:auto; }

.p-company__philosophy { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px; margin-bottom:72px; }
.p-company-card { padding:28px 36px 30px; text-align:center; background:linear-gradient(135deg,#fbfcfd,#f5f7f9); }
.p-company-card__title { margin:0 0 22px!important; padding:0 0 13px!important; border:0!important; font-family:var(--font-serif); font-size:clamp(22px,2.3vw,28px)!important; color:var(--color-heading); letter-spacing:.08em; position:relative; }
.p-company-card__title::after,.p-company-heading::after { content:""; position:absolute; left:50%; bottom:0; width:28px; height:1px; background:var(--color-gold-deep); transform:translateX(-50%); }
.p-company-card p { margin:0; line-height:2; }

.p-company-section { margin-top:68px; }
.p-company-heading { position:relative; margin:0 0 30px!important; padding:0 0 14px!important; border:0!important; font-family:var(--font-serif); font-size:clamp(27px,3vw,36px)!important; color:var(--color-heading); letter-spacing:.06em; }
.p-company-heading::after { left:0; transform:none; }
.p-company-greeting {
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(300px,.9fr);
  grid-template-areas:
    "text photo"
    "sign photo";
  column-gap:70px;
  row-gap:0;
  align-items:start;
}
.p-company-greeting__text { grid-area:text; }
.p-company-greeting__text p { margin:0 0 1.4em; }
.p-company-greeting__sign {
  grid-area:sign;
  margin-top:24px!important;
  text-align:right;
  font-family:var(--font-serif);
  font-size:18px;
  letter-spacing:.08em;
}
.p-company-greeting__photo { grid-area:photo; margin:0; }
.p-company-greeting__photo img { width:100%; display:block; object-fit:cover; }

/* 会社概要：左テーブル＋右イメージ */
.p-company-profile { display:flex; align-items:flex-end; gap:46px; }
.p-company-profile__table { flex:1 1 auto; min-width:0; }
.p-company-table { width:100%; border-collapse:collapse; border-top:1px solid #cbd4df; }
.p-company-table th,.p-company-table td { padding:10px 14px; border-bottom:1px solid #cbd4df; text-align:left; vertical-align:top; line-height:1.7; }
.p-company-table th { width:160px; color:var(--color-heading); background:#f7f9fb; font-weight:600; border-right:1px solid #cbd4df; }
.p-company-profile__visual { flex:0 0 31%; max-width:360px; margin:0 0 4px; }
.p-company-profile__visual img { display:block; width:100%; height:auto; object-fit:contain; }

.p-company-access { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.p-company-access__item { border:1px solid #cbd4df; padding:20px; }
.p-company-access__title { position:relative; margin:0 0 14px!important; padding:0 0 0 30px!important; border:0!important; font-family:var(--font-serif); font-size:22px!important; color:var(--color-heading); }

/* 支店名左のピンアイコン：見出しと同色 */
.p-company-access__title::before {
  content:"";
  position:absolute;
  left:0;
  top:.47em;
  width:19px;
  height:23px;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 30'%3E%3Cpath d='M12 0C5.93 0 1 4.93 1 11c0 8.1 11 19 11 19s11-10.9 11-19C23 4.93 18.07 0 12 0Zm0 16.1A5.1 5.1 0 1 1 12 5.9a5.1 5.1 0 0 1 0 10.2Z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 30'%3E%3Cpath d='M12 0C5.93 0 1 4.93 1 11c0 8.1 11 19 11 19s11-10.9 11-19C23 4.93 18.07 0 12 0Zm0 16.1A5.1 5.1 0 1 1 12 5.9a5.1 5.1 0 0 1 0 10.2Z'/%3E%3C/svg%3E") center/contain no-repeat;
}

.p-company-access__address { min-height:76px; margin:0 0 16px!important; font-size:14px; line-height:1.7; }
.p-company-access__map { position:relative; width:100%; aspect-ratio:4/2.45; overflow:hidden; background:#f4f7fa; }
.p-company-access__map iframe { position:absolute; inset:0; width:100%; height:100%; border:0; display:block; }

@media(max-width:1024px){
  .p-company__content{padding-block:56px 88px}

  /* タブレット：基本方針／行動指針を縦並び */
  .p-company__philosophy{
    grid-template-columns:1fr;
    gap:22px;
    max-width:760px;
    margin-inline:auto;
    margin-bottom:64px;
  }

  /* タブレット：写真 → 代表名 → 挨拶文 */
  .p-company-greeting{
    grid-template-columns:1fr;
    grid-template-areas:
      "photo"
      "sign"
      "text";
    gap:0;
  }
  .p-company-greeting__photo{
    width:100%;
    max-width:300px;
    margin:0 auto;
  }
  .p-company-greeting__sign{
    max-width:300px;
    width:100%;
    margin:16px 0 28px auto!important;
    text-align:right;
  }
  .p-company-greeting__sign small{
    font-size: 80%;
  }
  .p-company-profile{gap:28px}
  .p-company-profile__visual{flex-basis:29%}
  .p-company-access{gap:14px}
  .p-company-access__item{padding:16px}
}

@media(max-width:767px){
  .p-company__content{padding-block:44px 72px}
  .c-entry--lower{font-size:15px}
  .p-company-greeting__photo{
    margin-bottom: 15px;
  }
  .p-company-card p{
    font-size: 14px;
    text-align: left;
  }
  .p-company-card p br{
    display: none;
  }
  .p-company__philosophy{gap:18px;margin-bottom:54px}
  .p-company-card{padding:24px 20px}
  .p-company-section{margin-top:52px}
  .p-company-greeting__sign{margin-bottom:24px!important}
  .p-company-profile{flex-direction:column;align-items:stretch;gap:28px}
  .p-company-profile__visual{flex-basis:auto;max-width:440px;width:78%;margin:0 auto}
  .p-company-table th,.p-company-table td{display:block;width:100%;padding:9px 12px}
  .p-company-table th{border-right:0}
  .p-company-access{grid-template-columns:1fr;gap:18px}
  .p-company-access__address{min-height:0}
  .p-company-access__map{aspect-ratio:16/10}
  .p-company-heading{font-size:28px!important}
}
