@charset "UTF-8";
/*
Template:     swell
Theme Name:   FAMiLIA CORPORATE CHILD
Theme URI:    https://familia.co.jp/
Description:  合同会社FAMiLIA コーポレートサイト専用 SWELL 子テーマ。FLOCSS風命名 (.l-/.p-/.c-/.w-/.u-) + 独自プレフィックス .fam-。
Version:      1.0.0
Author:       合同会社FAMiLIA
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
*/

@import url("./css/01-tokens.css");
@import url("./css/02-base.css");
@import url("./css/03-header.css");
@import url("./css/04-hero.css");
@import url("./css/05-sections.css");
@import url("./css/06-cards.css");
@import url("./css/07-services.css");
@import url("./css/08-philosophy.css");
@import url("./css/09-partners.css");
@import url("./css/10-contact.css");
@import url("./css/11-footer.css");
@import url("./css/12-responsive.css");
@import url("./css/13-overrides.css");

/* Critical featured image polish: remove SWELL's card-like shadow and leave
   breathing room after article meta. */
.single .p-articleThumb,
.single .p-articleThumb__img {
  margin-top: 24px !important;
}
.single .p-articleThumb__img,
.single .p-articleThumb img {
  border-radius: 0 !important;
  box-shadow: none !important;
  filter: none !important;
}
.single .p-articleThumb img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
}

/* Case article company information */
.single .post_content .fam-caseInfo {
  margin: 24px 0 8px !important;
  padding: 0 !important;
}
.single .post_content .fam-caseInfo__row {
  display: grid !important;
  grid-template-columns: 160px minmax(0, 1fr) !important;
  gap: 24px !important;
  align-items: start !important;
  padding: 16px 0 !important;
  border-bottom: 1px solid #EFE6E0 !important;
}
.single .post_content .fam-caseInfo__key,
.single .post_content .fam-caseInfo__val {
  margin: 0 !important;
  padding: 0 !important;
  font-family: "Noto Sans JP", system-ui, sans-serif !important;
  letter-spacing: 0.03em !important;
}
.single .post_content .fam-caseInfo__key {
  font-weight: 700 !important;
  color: #6B6764 !important;
}
.single .post_content .fam-caseInfo__val {
  color: #0B0B0B !important;
  line-height: 1.9 !important;
  overflow-wrap: anywhere !important;
}
@media (max-width: 599px) {
  .single .post_content .fam-caseInfo__row {
    grid-template-columns: 1fr !important;
    gap: 6px !important;
    padding: 14px 0 !important;
  }
}

/* Critical SP guard: keep single article titles and featured images inside
   viewport even when imported CSS is served from cache. */
@media (max-width: 599px) {
  .single .p-articleHead {
    padding: 48px 20px 24px !important;
  }
  .single .p-articleHead .c-postTitle,
  .single .p-articleHead h1.c-postTitle,
  .single .p-articleHead .c-postTitle__ttl,
  .single h1.c-postTitle__ttl {
    max-width: 100% !important;
    padding-inline: 0 !important;
    font-size: clamp(23px, 6.8vw, 30px) !important;
    overflow-wrap: anywhere !important;
    box-sizing: border-box !important;
  }
  .single .p-articleThumb,
  .single .p-articleThumb__img {
    width: calc(100% - 40px) !important;
    max-width: calc(100% - 40px) !important;
    margin: 20px 20px 0 !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  .single .p-articleThumb img {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
  }
  .single .post_content,
  .single article.l-article .post_content,
  .single article.l-article {
    max-width: 100% !important;
    padding-inline: 20px !important;
    box-sizing: border-box !important;
  }
  .single .p-toc,
  .single .p-toc.-double {
    max-width: 100% !important;
    padding: 24px 20px !important;
    box-sizing: border-box !important;
  }
}
