/* ====================================
   Company Profile – Base Settings
   ==================================== */

body {
  font-family: "montserrat", "source-han-sans-japanese", sans-serif;
  font-weight: 400;
  font-size: 12.5px;
  line-height: 1.9;
}


/* ====================================
   Title Visual (used across profile pages)
   ==================================== */

.title_image {
  width: 740px;
  height: 270px;
  margin: 10px 0 0 0;
}

.title_corp {
  position: relative;
  overflow: hidden;
}

.title_corp_bg {
  width: 100%;
  height: 270px;
  object-fit: cover;
  object-position: center;
  display: block;
}

.title_corp_logo {
  position: absolute;
  top: 18px;
  left: 22px;
  height: 24px;
}

.title_corp_label {
  position: absolute;
  top: 55px;
  left: 22px;
  padding: 8px 16px 6px;
  background: rgba(143, 101, 87, 0.5);
  color: #fff;
  line-height: 1.6;
  font-family: "montserrat", "source-han-sans-japanese", sans-serif;
  border-radius: 3px;
}

.title_corp_label .jp {
  margin: 0;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.05em;
}

.title_corp_label .en {
  margin: 0;
  font-size: 10px;
  opacity: 0.9;
}


/* ====================================
   Company Profile – Main Layout
   ==================================== */

.box_pro {
  display: grid;
  grid-template-columns: 365px 365px;
  grid-template-rows: auto auto auto;
  margin: 0;
  gap: 10px;
}

.box_pro dl {
  margin: 0;
}

.box_pro1 {
  margin: 0 0 0 10px;
}

.box_pro1 > dl > dt { float: left; }
.box_pro1 > dl > dd { margin: 0 0 0 100px; }

.box_pro2 {
  align-self: baseline;
  justify-self: center;
  text-align: center;
  margin: 10px 0 0 0;
}

.box_pro2 img {
  display: inline-block;
  max-width: 100%;
  height: auto;
}

.img-caption {
  margin: 0 0 8px;
  font-size: 11.5px;
  line-height: 1.6;
  color: #7a6a5f;
  text-align: center;
}

.img-caption-meta {
  display: block;
  font-size: 11px;
  color: #9a8c82;
}

.box_pro9 {
  display: grid;
  grid-template-columns: 365px 365px;
  grid-template-rows: auto;
  margin: 0;
  gap: 10px;
}

dt{
  float: left;
}

dd{
  margin: 0 0 0 100px;
}

.td_pro_left {
  padding: 3px;
  width: 70px;
  vertical-align: top;
  font-family: "montserrat", "source-han-sans-japanese", sans-serif;
  font-weight: 500;
  font-feature-settings: "palt";
  letter-spacing: 0.02em;
}

.td_pro_right {
  padding: 3px;
  width: 300px;
  vertical-align: top;
}

.td_pro_right > div > dl {
  display: grid;
  grid-template-columns: 100px 1fr;
  column-gap: 12px;
  row-gap: 6px;
}

.td_pro_right > div > dl dt,
.td_pro_right > div > dl dd {
  margin: 0;
  padding: 3px;
  vertical-align: top;
}

.td_pro_right > div > dl dt { grid-column: 1; }
.td_pro_right > div > dl dd { grid-column: 2; }

.td_pro_right > div > dl dt,
.td_pro_right > div > dl dd {
  float: none;
}

.td_pro_left2 {
  padding: 3px;
  vertical-align: top;
}

.td_pro_right2 {
  padding: 3px;
  vertical-align: top;
}

.list-business {
  list-style: none;
  margin: 0;
  padding-left: 0;
}

.list-business li {
  position: relative;
  padding-left: 1.1em;
  margin: 0 0 0.25em 0;
  line-height: 1.7;
}

.list-business li::before {
  content: "\f111";
  font-family: "Font Awesome 6 Pro";
  font-weight: 900;
  font-size: 0.55em;
  color: #212121;
  position: absolute;
  left: 0;
  top: 0.45em;
}

.italic {
  font-style: italic;
}


/* ===============================
   Profile sections
   =============================== */

.prf-section{
  margin-top: 3.2em;
}

.prf-section:first-of-type{
  margin-top: 0;
}

.prf-section > .box_mds:first-child{
  margin-top: 0;
}

.prf-section--tight{
  margin-top: 2.4em;
}


/* ====================================
   Company Profile – Mobile Adjustments
   ==================================== */

@media screen and (max-width: 767px) {

  .box_pro,
  .box_pro9 {
    display: block;
    grid-template-columns: none;
    grid-template-rows: none;
  }

  .box_pro1,
  .box_pro2 {
    margin: 0 0 16px 0;
  }

  .box_pro1 {
    max-width: 34em;
    margin: 0 auto 16px;
    padding: 0 15px;
    box-sizing: border-box;
  }

  .box_pro2 img {
    width: 100%;
    height: auto;
    display: block;
  }

  .box_pro dt,
  .box_pro9 dt {
    float: none;
  }

  .box_pro dd,
  .box_pro9 dd {
    margin: 0 0 8px 0;
  }

  .td_pro_left,
  .td_pro_left2 {
    width: auto;
    padding-right: 6px;
  }

  .td_pro_right,
  .td_pro_right2 {
    width: auto;
  }
}


/* ====================================
   Greeting Block (Company Message / Philosophy)
   Used in: /profile/index.html, /profile/philosophy.html
   ==================================== */

/* --- Desktop / default (PC) --- */
.greeting,
.greeting-en {
  max-width: 724px;
  width: 100%;
  box-sizing: border-box;
  padding: 0 8px 16px;
  line-height: 1.9;
}

.greeting {
  font-size: 12.5px;
}

.greeting-en {
  font-size: 12px;
  line-height: 1.8;
}

.greeting p,
.greeting-en p {
  font-family: "montserrat", "source-han-sans-japanese", sans-serif;
  font-weight: 400;
  margin: 0 0 1em 0;
  white-space: normal;
  overflow-wrap: break-word;
  word-break: break-word;
}

.greeting-en p {
  margin: 0 0 0.9em 0;
}

.greeting-en-title {
  margin-top: 1.8em;
}

/* Signature block (desktop) */
.name {
  font-family: "montserrat", "source-han-sans-japanese", sans-serif;
  font-weight: 400;
  margin: 30px 120px 0 0;
  text-align: right;
}

.name-inner {
  display: inline-block;
  text-align: left;
  line-height: 1.8;
}

.name-inner span {
  display: block;
}

.greeting > p:first-child,
.greeting-en > p:first-child {
  margin-top: 0;
}

.phl-lead{
  margin: 0 0 1em;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5;
}

/* --- Mobile (<= 768px) --- */
@media screen and (max-width: 767px) {

  /* Make JP/EN identical */
  .greeting,
  .greeting-en {
    max-width: 34em;
    width: 100%;
    margin: 0 auto;
    padding: 8px 15px 0;
    box-sizing: border-box;
  }

  /* Hide manual <br> tags on mobile for better flow */
  .greeting br,
  .greeting-en br {
    display: none;
  }

  /* Signature block */
  .name {
    text-align: left;
    margin: 24px 0 0 0;
    padding: 0 15px;
    box-sizing: border-box;
  }
}


/* =========================================================
   Floor maps (profile page)
   ========================================================= */

/* Base */
.floor-map {
  display: block;
  margin: 0 auto;
  height: auto;
}

/* Mobile: prevent annex map from stretching edge-to-edge */
@media screen and (max-width: 768px) {
  .floor-map--annex {
    width: 100%;
    max-width: 520px;
  }
}


/* ====================================
   Access Page – Base Layout
   ==================================== */

.access-wrapper {
  width: 724px;
  margin: 0 0 30px 0;
  padding: 10px 0 0 10px;
}

.access-map iframe {
  width: 100%;
  height: 340px;
  border: 0;
}

.access-handmap img,
.access-photo img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 3px;
}

.access-caption {
  margin: 8px 0 4px;
  font-size: 13px;
  color: #876d4a;
}

.access-info {
  margin-top: 24px;
  font-size: 13px;
  line-height: 1.9;
}

.access-info h3 {
  margin-top: 18px;
}

.access-list {
  list-style: none;
  margin: 0;
  padding-left: 0;
}

.access-list li {
  margin-bottom: 3px;
}


/* ====================================
   Access Page – Layout for PC (≥769px)
   ==================================== */

@media screen and (min-width: 769px) {

  .access-wrapper {
    display: grid;
    grid-template-columns: 360px 360px;
    grid-template-rows: auto auto auto auto;
    gap: 18px 20px;
    grid-template-areas:
      "photo-main map"
      "photo-main handmap"
      "shinkan-sign honkan"
      "info info";
  }

  .access-map {
    grid-area: map;
    margin-top: 37px;
  }

  .access-photo-main       { grid-area: photo-main; align-self: start; }
  .access-handmap          { grid-area: handmap; align-self: start; }
  .access-photo-honkan     { grid-area: honkan; }
  .access-photo-shinkan-sign { grid-area: shinkan-sign; }
  .access-info             { grid-area: info; }
}


/* ====================================
   Access Page – Mobile Adjustments
   ==================================== */

@media screen and (max-width: 768px) {

  /* Convert to single-column layout */
  .access-wrapper {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0 0 24px;
    box-sizing: border-box;
  }

  /* Full-width blocks */
  .access-map,
  .access-handmap,
  .access-photo,
  .access-info {
    width: 100%;
    margin: 0 0 20px 0;
    padding: 0;
    box-sizing: border-box;
  }

  /* Fit images and map within screen */
  .access-wrapper img,
  .access-map iframe {
    width: 100%;
    max-width: 100%;
    height: auto;
    display: block;
  }

  /* Minimum height for Google map */
  .access-map iframe {
    height: 260px;
  }

  /* Slight padding for text blocks */
  .access-info h2,
  .access-info h3,
  .access-info p,
  .access-list {
    padding: 0 4px;
  }
}