@charset "UTF-8";
/* ============================================================
   portal-site (最下部の黒い波完全削除 ＆ 会社情報文字色修正版)
   ============================================================ */
:root {
  --color-text: #222222;
  --color-sub: #888888;
  --color-line: #222222;
  --color-bg: #fffaf5;
  --color-bg-gray: #f9f0e8;
  --color-accent: #222222;
  --color-dark: #333333;
	
  --c-teal: #ff8c32;  
  --c-sea: #ff6f3d;   
  --c-navy: #f26419;  

  --inner: 1160px;
  --inner-wide: 1600px;
  --gutter: 40px;
  --sec-pt: clamp(56px, 5.6vw, 88px);
  --sec-pb: clamp(64px, 6.4vw, 96px);
  --head-gap: 48px;
  --u: min(100cqw / 1920, 1px);
}
@media (max-width: 767px) { :root { --gutter: 20px; --head-gap: 28px; } }
main { container-type: inline-size; }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  color: var(--color-text);
  background: var(--color-bg) !important;
  background-image: none !important; /* 画面最下部の黒い波・背景画像を強制削除 */
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-size: 15px;
  line-height: 1.8;
}
img { max-width: 100%; height: auto; vertical-align: bottom; }
a { color: inherit; }
figure { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4, p, dl, dd { margin: 0; }

.inner {
  max-width: calc(var(--inner) + var(--gutter) * 2);
  margin: 0 auto;
  padding: 0 var(--gutter);
}

.breadcrumb { margin: 16px 0 40px; font-size: .75rem; color: var(--color-sub); }
.breadcrumb ul { display: flex; flex-wrap: wrap; }
.breadcrumb li:not(:last-child)::after { content: "＞"; margin: 0 .6em; }

/* 見出し */
.sec-title {
  --line: rgba(255, 140, 50, .5);
  --gap: 4px;
  position: relative;
  isolation: isolate;
  display: grid;
  justify-items: start;
  width: fit-content;
  max-width: 100%;
  margin: 0;
  padding: 0 0 calc(var(--gap) + 2px + 14px);
  --cut: calc(var(--gap) + 2px);
  --line-shadow: rgba(242, 100, 25, .18);
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", Meiryo, sans-serif;
  font-size: max(26px, calc(44 * var(--u)));
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .04em;
  text-align: left;
}
.sec-title__main { grid-area: 1 / 1; display: block; position: relative; top: .32em; }
.sec-title__main { text-shadow: 1px 1.5px 2px var(--line-shadow); }
.sec-title__line {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: var(--cut);
  background:
    linear-gradient(var(--line), var(--line)) 0 100% / 100% 1px no-repeat,
    linear-gradient(var(--line), var(--line)) 0 0 / calc(100% - var(--cut)) 1px no-repeat,
    linear-gradient(to top right, transparent calc(50% - .9px), var(--line) 50%, transparent calc(50% + .9px)) 100% 100% / var(--cut) var(--cut) no-repeat;
  filter: drop-shadow(1px 1.5px 1px var(--line-shadow));
  pointer-events: none;
}
.sec-title__sub {
  grid-area: 1 / 1;
  z-index: -1;
  align-self: center;
  display: flex;
  align-items: center;
  height: 0;
  margin-left: .45em;
  transform: translateY(-.08em);
  color: var(--c-teal);
  opacity: .15;
  font-family: "Helvetica Neue", Arial, "Hiragino Sans", sans-serif;
  font-size: max(62px, calc(165 * var(--u)));
  font-weight: 700;
  letter-spacing: -.01em;
  line-height: 1;
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
}
.sec-title__cap { font-size: 1.15em; font-weight: 500; line-height: 0; }

/* ▼ 白文字にするのは「サービスの帯」「ギャラリーの帯」「フリースペースの帯」のみに変更（会社情報は除外） ▼ */
:is(.band--services, .band--gallery, .band--free) .sec-title { --line: rgba(255, 255, 255, .8); --line-shadow: rgba(0, 0, 0, .15); color: #fff; }
:is(.band--services, .band--gallery, .band--free) .sec-title__sub { color: #fff; opacity: .18; }

@media (max-width: 767px) {
  .sec-title { padding-bottom: calc(var(--gap) + 2px + 10px); font-size: 27px; }
}

/* ------------------------------------------------------------
   header
   ------------------------------------------------------------ */
.site-header {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 14px var(--gutter);
}
.site-logo { font-size: 1.2rem; font-weight: 500; line-height: 1.3; }
.site-logo a { text-decoration: none; }
.site-logo img { max-height: 50px; width: auto; }

.global-nav ul { display: flex; gap: 28px; }
.global-nav a { text-decoration: none; font-size: 0.9rem; }
.global-nav a:hover { opacity: .6; }

.nav-toggle { display: none; }

@media (max-width: 767px) {
  .nav-toggle {
    display: block;
    position: relative;
    z-index: 20;
    width: 40px; height: 40px;
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
  }
  .nav-toggle span {
    position: absolute; left: 8px;
    width: 24px; height: 2px;
    background: var(--color-text);
    transition: transform .3s, opacity .3s;
  }
  .nav-toggle span:nth-child(1) { top: 12px; }
  .nav-toggle span:nth-child(2) { top: 19px; }
  .nav-toggle span:nth-child(3) { top: 26px; }
  .is-nav-open .nav-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .is-nav-open .nav-toggle span:nth-child(2) { opacity: 0; }
  .is-nav-open .nav-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

  .global-nav {
    position: fixed; inset: 0;
    z-index: 10;
    display: flex; align-items: center; justify-content: center;
    background: rgba(255, 255, 255, .97);
    opacity: 0; visibility: hidden;
    transition: opacity .3s, visibility .3s;
  }
  .is-nav-open .global-nav { opacity: 1; visibility: visible; }
  .global-nav ul { flex-direction: column; align-items: center; gap: 24px; }
  .global-nav a { font-size: 1.1rem; }
}

/* ------------------------------------------------------------
   FV
   ------------------------------------------------------------ */
.fv {
  position: relative;
  background: var(--color-bg-gray);
  overflow: hidden;
}
.fv__img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
}
.fv__inner {
  position: absolute; left: 0; right: 0; top: 0; bottom: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  max-width: none;
  padding: 0 var(--gutter) 0 clamp(20px, 6.25vw, 120px);
}
.fv__catch {
  position: relative;
  max-width: min(100%, 980px);
  font-size: clamp(26px, 3.2vw, 54px);
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: .08em;
  word-break: auto-phrase;
  text-wrap: pretty;
}
.fv__catch > span { display: block; }
.fv__catch {
  --halo: 0, 0, 0;
  --o: 2px;
  color: #fff;
  text-shadow:
    var(--o) 0 0 rgba(var(--halo), .75), calc(var(--o) * -1) 0 0 rgba(var(--halo), .75),
    0 var(--o) 0 rgba(var(--halo), .75), 0 calc(var(--o) * -1) 0 rgba(var(--halo), .75),
    var(--o) var(--o) 0 rgba(var(--halo), .75), calc(var(--o) * -1) var(--o) 0 rgba(var(--halo), .75),
    var(--o) calc(var(--o) * -1) 0 rgba(var(--halo), .75), calc(var(--o) * -1) calc(var(--o) * -1) 0 rgba(var(--halo), .75),
    calc(var(--o) * 2.5) calc(var(--o) * 2.5) 0 rgba(var(--halo), .45);
}
.fv__catch.is-dark-text {
  --halo: 255, 255, 255;
  color: #111;
}
@media (max-width: 767px) { .fv__catch { --o: 1.5px; } }

.fv--top { height: max(320px, calc(768.82 * var(--u))); }
.fv--top .fv__inner { bottom: 0; }
.fv__wave { display: none !important; }
.fv--detail { height: max(360px, calc(765.83 * var(--u))); }

:root {
  --shadow-card: calc(8.6 * var(--u)) calc(8.6 * var(--u)) calc(12 * var(--u)) rgba(242, 100, 25, .08);
  --shadow-card-hover: calc(12 * var(--u)) calc(16 * var(--u)) calc(22 * var(--u)) rgba(242, 100, 25, .15);
  --shadow-photo: calc(8.6 * var(--u)) calc(8.6 * var(--u)) calc(14 * var(--u)) rgba(242, 100, 25, .1);
}

/* ------------------------------------------------------------
   1lv：企業一覧
   ------------------------------------------------------------ */
.company-list { position: relative; z-index: 2; padding: var(--sec-pt) 0 var(--sec-pb); }
.company-list__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.industry-filter { display: flex; flex-wrap: wrap; gap: 8px; }
.industry-filter a {
  display: block;
  padding: .2em 1em;
  border: 1px solid #ebd8cb;
  border-radius: 999px;
  background: #fff;
  font-size: .85rem;
  text-decoration: none;
  transition: background .2s, color .2s;
}
.industry-filter a:hover,
.industry-filter a.is-current { background: var(--c-teal); border-color: var(--c-teal); color: #fff; }

.company-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(28px, 3vw, 48px) clamp(20px, 2.4vw, 36px);
  margin-top: var(--head-gap);
}
.company-card { position: relative; }
.company-card a {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: calc(14.83 * var(--u)) calc(16.09 * var(--u)) calc(18 * var(--u)) calc(14.02 * var(--u));
  color: inherit;
  text-decoration: none;
}
.company-card__bg {
  position: absolute; inset: -.5px;
  z-index: -1;
  filter: drop-shadow(calc(10 * var(--u)) calc(13 * var(--u)) calc(6 * var(--u)) rgba(20, 0, 0, .03));
  transition: filter .5s var(--ease-out, ease);
}
.company-card__bg::before {
  content: "";
  position: absolute; inset: 0;
  border-radius: calc(8.59 * var(--u));
  background: #fff;
  clip-path: polygon(0 0, calc(100% - 63.34 * var(--u)) 0, 100% calc(54.61 * var(--u) + .5px), 100% 100%, 0 100%);
}
.company-card__ribbon {
  position: absolute; top: 0; right: 0;
  z-index: 1;
  width: calc(50.69 * var(--u)); height: calc(44.71 * var(--u));
  min-width: 40px; min-height: 35px;
  filter: drop-shadow(calc(9.8 * var(--u)) calc(9.8 * var(--u)) calc(4.6 * var(--u)) rgba(0, 4, 4, .06));
}
.company-card__ribbon::before {
  content: "";
  position: absolute; inset: 0;
  border-top-right-radius: calc(4.54 * var(--u));
  background: var(--c-navy);
  clip-path: polygon(0 0, 100% 0, 100% 100%);
}
.company-card__ribbon span {
  position: absolute; top: 33.2%; left: 69.6%;
  color: #fff;
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", Meiryo, sans-serif;
  font-size: max(6px, calc(6.75 * var(--u)));
  font-weight: 600;
  line-height: 1;
  transform: translate(-50%, -50%) rotate(41.4deg);
}
.company-card__thumb {
  display: flex; align-items: center; justify-content: center;
  aspect-ratio: 293.92 / 194.62;
  background: var(--color-bg-gray);
  overflow: hidden;
  clip-path: polygon(0 0, calc(100% - 47.25 * var(--u)) 0, 100% calc(40.76 * var(--u)), 100% 100%, 0 100%);
}
.company-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
.no-image { color: #999; font-size: .8rem; }
.no-post { color: var(--color-sub); }
.company-card__body { padding: calc(14 * var(--u)) calc(2 * var(--u)) 0; }
.company-card__industry {
  color: var(--c-teal);
  font-size: max(11px, calc(12 * var(--u)));
  line-height: 1.5;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.company-card__name {
  margin-top: calc(6 * var(--u));
  color: #222222;
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", Meiryo, sans-serif;
  font-size: max(14px, calc(18 * var(--u)));
  font-weight: 600;
  line-height: 1.5;
}

.pagination {
  display: flex; justify-content: center; flex-wrap: wrap; gap: 8px;
  margin-top: var(--head-gap);
}
.pagination .page-numbers {
  min-width: 40px;
  padding: .3em .8em;
  border: 1px solid #ebd8cb;
  background: #fff;
  text-align: center;
  text-decoration: none;
}
.pagination .page-numbers.current { background: var(--c-teal); border-color: var(--c-teal); color: #fff; }
.pagination .page-numbers.dots { border: 0; background: none; }

@media (max-width: 1023px) {
  .company-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .company-list__head { display: block; }
  .industry-filter { margin-top: 20px; }
  .company-grid { grid-template-columns: 1fr; gap: 20px 12px; }
  .company-card a { padding: 10px 10px 12px; }
  .company-card__bg::before { clip-path: polygon(0 0, calc(100% - 50px) 0, 100% 43px, 100% 100%, 0 100%); border-radius: 8px; }
  .company-card__thumb { clip-path: polygon(0 0, calc(100% - 40px) 0, 100% 33px, 100% 100%, 0 100%); }
  .company-card__body { padding: 8px 0 0; }
  .company-card__industry { font-size: 10px; }
  .company-card__name { margin-top: 2px; font-size: 13px; }
}

/* ------------------------------------------------------------
   2lv：企業詳細
   ------------------------------------------------------------ */
.company-detail {
  --c-paper: #fffaf5;
  background: var(--c-paper);
  overflow: clip;
}
.company-detail .fv { margin: 0; }
.band .inner { position: relative; z-index: 0; }

.band { --color-bg: var(--c-paper); position: relative; background: var(--color-bg); padding: var(--sec-pt) 0 var(--sec-pb); }
.band--services { --color-bg: var(--c-teal); }
.band--gallery { --color-bg: var(--c-sea); }
.band--free { --color-bg: var(--c-navy); color: #fff; }

.band__tree,
.band__sky,
.free__deco,
.band__right { display: none !important; }

.band--intro {
  padding-bottom: var(--sec-pb);
  background: var(--color-bg);
}
.intro {
  --intro-fs: 15px;
  --intro-lh: 2.4;
  --intro-gap: 34px;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}
.intro.has-photo {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-template-areas: "title ." "body photo";
  column-gap: 60px;
  align-items: start;
}
.intro.has-photo .intro__text { display: contents; }
.intro.has-photo .sec-title { grid-area: title; }
.intro.has-photo .intro__body { grid-area: body; }
.intro.has-photo .intro__photo { grid-area: photo; margin-top: calc(var(--intro-gap) + var(--intro-fs) * (var(--intro-lh) - 1) / 2); }
.intro:not(.has-photo) .intro__text { max-width: 860px; }
.intro__body {
  margin-top: var(--intro-gap);
  color: #333333;
  font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, sans-serif;
  font-size: var(--intro-fs);
  font-weight: 300;
  line-height: var(--intro-lh);
}
.intro__photo {
  --r: calc(28 * var(--u) + 8px);
  position: relative;
  isolation: isolate;
  aspect-ratio: 3 / 2;
  margin-right: 0;
}
.intro__photo::before { display: none; }
.intro__photo img {
  position: absolute; inset: 0;
  display: block;
  width: 100%; height: 100%;
  border-radius: 0 var(--r) 0 var(--r);
  background: var(--color-bg-gray);
  box-shadow: var(--shadow-photo);
  object-fit: cover;
}

@media (max-width: 767px) {
  .intro.has-photo {
    grid-template-columns: 1fr;
    grid-template-areas: "title" "photo" "body";
    column-gap: 0;
  }
  .intro.has-photo .intro__photo { margin-top: 20px; margin-bottom: 20px; }
}

.services__list {
  display: grid;
  grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr));
  gap: clamp(20px, 2.4vw, 36px);
  max-width: calc(560px + (var(--n, 3) - 1) * 9999px);
  margin-top: var(--head-gap);
}
.service {
  position: relative;
  display: flex;
  flex-direction: column;
  border-radius: 0 calc(13.03 * var(--u)) 0 calc(13.03 * var(--u));
  background: #fff;
  box-shadow: var(--shadow-card);
  color: #333333;
}
.service::before,
.service::after { display: none; }
.service__img { aspect-ratio: 16 / 10; border-top-right-radius: calc(13.03 * var(--u)); background: #fff3eb; overflow: hidden; }
.service__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.service__body { position: relative; flex: 1; padding: calc(31.57 * var(--u)) calc(41.5 * var(--u)) calc(42.9 * var(--u)) calc(37.52 * var(--u)); }
.service__badge { position: absolute; top: calc(10.86 * var(--u)); right: calc(12.58 * var(--u)); width: calc(60.18 * var(--u)); height: calc(59.97 * var(--u)); min-width: 44px; min-height: 44px; }
.service__img + .service__body .service__badge { top: calc(-30 * var(--u)); }
.service__badge svg { display: block; width: 100%; height: 100%; overflow: visible; }
.service__title { padding-right: calc(48 * var(--u)); color: var(--c-sea); font-size: max(17px, calc(22 * var(--u))); font-weight: 500; line-height: 1.4; }
.service__text { margin-top: 18px; font-size: 14px; line-height: 2; color: #555555; }

@media (max-width: 1023px) {
  .services__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .services__list { grid-template-columns: 1fr; }
}

.strengths__list {
  display: grid;
  grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr));
  gap: clamp(20px, 2.4vw, 36px);
  margin-top: var(--head-gap);
}
.strengths__list li {
  position: relative;
  display: grid;
  grid-row: span 3;
  grid-template-rows: subgrid;
  row-gap: 0;
  align-content: start;
  padding: 30px 32px 34px;
  border-radius: 0 calc(13.03 * var(--u)) 0 calc(13.03 * var(--u));
  background: #fff;
  box-shadow: var(--shadow-card);
}
.strengths__num { display: block; grid-row: 1; height: 56px; }
.strengths__num svg { display: block; width: auto; height: 100%; overflow: visible; filter: drop-shadow(calc(2.6 * var(--u)) calc(2.6 * var(--u)) calc(1.6 * var(--u)) rgba(242, 100, 25, .15)); }
.strengths__title { grid-row: 2; align-self: stretch; display: flex; align-items: flex-start; margin-top: 18px; padding-bottom: 12px; border-bottom: 1px solid #f9e8dc; color: #333333; font-size: max(17px, calc(22 * var(--u))); font-weight: 500; line-height: 1.5; }
.strengths__text { grid-row: 3; margin-top: 14px; color: #666666; font-size: 14px; line-height: 2; }

@media (max-width: 1023px) {
  .strengths__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .strengths__list { grid-template-columns: 1fr; }
  .strengths__list li { grid-row: auto; grid-template-rows: auto; }
}

.gallery { position: relative; }
.gallery__stage {
  --slide: min(42vw, 540px);
  position: relative;
  margin-top: var(--head-gap);
}
.gallery__track {
  display: flex;
  gap: clamp(16px, 1.7vw, 32.5px);
  margin: -20px 0;
  padding: 20px calc((100% - var(--slide)) / 2);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.gallery__track::-webkit-scrollbar { display: none; }
.gallery__slide { flex: 0 0 var(--slide); scroll-snap-align: center; }
.gallery__slide a {
  position: relative;
  display: block;
  aspect-ratio: 482.51 / 328.15;
  background: #f2f2f2;
  box-shadow: var(--shadow-photo);
  text-decoration: none;
  cursor: pointer;
  overflow: hidden;
}
.gallery__slide.is-active a { cursor: zoom-in; }
.gallery__slide img { width: 100%; height: 100%; object-fit: contain; transition: opacity .2s; }
.gallery__slide a:hover img { opacity: .85; }
.gallery__zoom {
  position: absolute; right: 10px; bottom: 10px;
  padding: .2em .8em;
  background: rgba(0, 0, 0, .55);
  color: #fff;
  font-size: .75rem;
  opacity: 0;
  transition: opacity .2s;
}
.gallery__slide.is-active a:hover .gallery__zoom,
.gallery__slide.is-active a:focus-visible .gallery__zoom { opacity: 1; }
.gallery__caption { padding-top: 10px; color: #fff; font-size: .9rem; text-align: center; }

.gallery__nav {
  display: flex; justify-content: center; align-items: center;
  gap: 24px;
  margin-top: 36px;
}
.gallery__arrow {
  position: relative;
  flex: none;
  width: 48px; height: 48px;
  padding: 0;
  border: 1.5px solid rgba(255, 255, 255, .85);
  border-radius: 50%;
  background: transparent;
  color: #fff;
  cursor: pointer;
  filter: drop-shadow(1.5px 2px 1.5px rgba(242, 100, 25, .25));
  transition: background .3s, border-color .3s, color .3s;
}
.gallery__arrow::before {
  content: "";
  position: absolute; left: 50%; top: 50%;
  width: 9px; height: 9px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transition: transform .4s var(--ease-out, ease);
}
.gallery__arrow--prev::before { transform: translate(-30%, -50%) rotate(-135deg); }
.gallery__arrow--next::before { transform: translate(-70%, -50%) rotate(45deg); }
.gallery__arrow:hover { border-color: #fff; background: #fff; color: var(--c-sea); }
.gallery__arrow--prev:hover::before { transform: translate(calc(-30% - 2px), -50%) rotate(-135deg); }
.gallery__arrow--next:hover::before { transform: translate(calc(-70% + 2px), -50%) rotate(45deg); }
.gallery__dots {
  display: flex; justify-content: center; align-items: center;
  gap: calc(7.24 * var(--u));
}
.gallery__dots button {
  width: calc(12.14 * var(--u)); height: calc(12.14 * var(--u));
  min-width: 8px; min-height: 8px;
  padding: 0;
  border: 0; border-radius: 999px;
  background: #f9f0e8;
  cursor: pointer;
  transition: width .3s, background .3s;
}
.gallery__dots button.is-active { width: calc(45.02 * var(--u)); height: calc(11.65 * var(--u)); background: #ebd8cb; }

/* フリースペース */
.free { position: relative; }
.free__body { position: relative; max-width: 860px; margin-top: var(--head-gap); color: #fff; font-size: 15px; line-height: 2.2; }
.band--free .editor-content a { color: #fff; text-decoration: underline; }
.band--free .editor-content .wp-caption-text,
.band--free .editor-content .gallery-caption { color: rgba(255, 255, 255, .95); }

/* 最下部セクション */
.band--info {
  padding: var(--sec-pt) 0 var(--sec-pb);
  background: var(--color-bg);
}
.band--free + .band--info::before { display: none !important; }

.company-info-sec {
  position: relative; z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  gap: clamp(40px, 5vw, 80px);
  align-items: start;
}
.company-info-sec:not(.has-map) .company-info__side { align-self: center; }
.company-info-sec.has-map { align-items: stretch; }
.company-info__side { display: flex; flex-direction: column; }
.company-info-sec.has-map .company-map { flex: 1 0 auto; }
.company-info-sec.has-map .company-info { display: flex; flex-direction: column; }
.company-info-sec.has-map .company-info__sns { margin-top: auto; }
.company-map {
  position: relative;
  aspect-ratio: 4 / 3;
  margin-top: 40px;
  border-radius: calc(35.25 * var(--u));
  background: #fff;
  overflow: hidden;
}
.company-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.company-info {
  padding: clamp(26px, 2.6vw, 40px) clamp(24px, 3vw, 44px) clamp(22px, 2.2vw, 32px);
  border-radius: 0 calc(13.03 * var(--u)) 0 calc(13.03 * var(--u));
  background: #fff;
  box-shadow: var(--shadow-card);
}
.company-info__head { display: flex; align-items: center; gap: 16px; padding-bottom: 20px; border-bottom: 1px solid #f9e8dc; }
.company-info__logo { flex: none; width: 58px; height: 58px; display: flex; align-items: center; justify-content: center; }
.company-info__logo img { max-width: 100%; max-height: 100%; width: auto; object-fit: contain; }
.company-info__name { color: #222222; font-size: max(17px, calc(21 * var(--u))); font-weight: 500; line-height: 1.5; }
.company-info__list > div {
  display: grid;
  grid-template-columns: 8em minmax(0, 1fr);
  gap: 16px;
  padding: 15px 0;
  border-bottom: 1px solid #faf0e6;
}
.company-info__list > div:last-child { border-bottom: 0; }
.company-info__list dt { position: relative; padding-left: 14px; color: #222222; font-size: 14px; line-height: 1.8; }
.company-info__list dt::before {
  content: "";
  position: absolute; left: 0; top: .72em;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--c-teal);
}
.company-info__list dd { margin: 0; color: #555555; font-size: 14px; line-height: 1.8; word-break: break-all; }
.company-info__list a { text-decoration: none; color: var(--c-sea); }
.company-info__list a:hover { text-decoration: underline; }
.company-info__sns { display: flex; gap: 8px; padding-top: 16px; border-top: 1px solid #faf0e6; }
.company-info__sns li { line-height: 0; }
.company-info__sns img { width: 32px; height: auto; aspect-ratio: 1; object-fit: contain; }
.company-info__sns a:hover { opacity: .6; }

@media (max-width: 767px) {
  .company-info-sec { grid-template-columns: 1fr; gap: 30px; }
  .company-info__list > div { grid-template-columns: 7em minmax(0, 1fr); gap: 10px; }
}

.company-detail .back-link { position: relative; z-index: 1; display: flex; justify-content: center; margin-top: clamp(56px, 5vw, 80px); }
.company-detail .back-link a {
  --wipe: var(--c-sea);
  display: inline-flex; align-items: center; justify-content: center;
  width: calc(169.2 * var(--u)); height: calc(55.87 * var(--u));
  min-width: 140px; min-height: 44px;
  padding: 0;
  border: 0;
  background: var(--c-teal);
  color: #fff;
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", Meiryo, sans-serif;
  font-size: max(14px, calc(18.25 * var(--u)));
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  border-radius: 4px;
  transition: background .2s;
}
.company-detail .back-link a:hover { background: var(--c-sea); color: #fff; }

.editor-content > * + * { margin-top: 1em; }
.editor-content h2, .editor-content h3, .editor-content h4 { font-weight: 500; line-height: 1.5; }
.editor-content ul { list-style: disc; padding-left: 1.5em; }
.editor-content ol { list-style: decimal; padding-left: 1.5em; }
.editor-content a { color: var(--c-sea); }
.editor-content iframe { max-width: 100%; }
.editor-content .alignleft { float: left; margin: 0 1em 1em 0; }
.editor-content .alignright { float: right; margin: 0 0 1em 1em; }
.editor-content .aligncenter { display: block; margin-left: auto; margin-right: auto; }
.editor-content::after { content: ""; display: block; clear: both; }
.editor-content img { height: auto; }
.editor-content .wp-caption { max-width: 100%; }
.editor-content .wp-caption img { display: block; }
.editor-content .wp-caption-text,
.editor-content .gallery-caption {
  margin-top: .5em;
  font-size: .85em;
  color: var(--color-sub);
  line-height: 1.6;
  text-align: center;
}
.editor-content .gallery,
.editor-content .wp-video,
.editor-content .wp-audio-shortcode,
.editor-content iframe { clear: both; }
.editor-content .gallery {
  --gcols: 3;
  display: grid;
  grid-template-columns: repeat(var(--gcols), minmax(0, 1fr));
  gap: clamp(8px, 1vw, 16px);
  margin-inline: 0;
}
.editor-content .gallery-columns-1 { --gcols: 1; }
.editor-content .gallery-columns-2 { --gcols: 2; }
.editor-content .gallery-columns-4 { --gcols: 4; }
.editor-content .gallery-columns-5 { --gcols: 5; }
.editor-content .gallery-columns-6 { --gcols: 6; }
.editor-content .gallery-columns-7 { --gcols: 7; }
.editor-content .gallery-columns-8 { --gcols: 8; }
.editor-content .gallery-columns-9 { --gcols: 9; }
.editor-content .gallery br { display: none; }
.editor-content .gallery-item { margin: 0; }
.editor-content .gallery-icon a { display: block; overflow: hidden; }
.editor-content .gallery-icon img { display: block; width: 100%; }
.editor-content .gallery-size-thumbnail .gallery-icon img { aspect-ratio: 1; object-fit: cover; }