/*
Theme Name: Astra Child
Theme URI: https://wpastra.com/
Template: astra
Author: Brainstorm Force
Author URI: https://wpastra.com/about/?utm_source=theme_preview&utm_medium=author_link&utm_campaign=astra_theme
Description: The Astra WordPress theme is lightning-fast and highly customizable. It has over 1 million downloads and the only theme in the world with 6,000+ five-star reviews! It’s ideal for professional web designers, solopreneurs, small businesses, eCommerce, membership sites and any type of website. It offers special features and templates so it works perfectly with all page builders like Spectra, Elementor, Beaver Builder, etc. Fast performance, clean code, mobile-first design and schema markup are all built-in, making the theme exceptionally SEO-friendly. It’s fully compatible with WooCommerce, SureCart and other eCommerce plugins and comes with lots of store-friendly features and templates. Astra also provides expert support for free users. A dedicated team of fully trained WordPress experts are on hand to help with every aspect of the theme. Try the live demo of Astra: https://zipwp.org/themes/astra/
Tags: custom-menu,custom-logo,entertainment,one-column,two-columns,left-sidebar,e-commerce,right-sidebar,custom-colors,editor-style,featured-images,full-width-template,microformats,post-formats,rtl-language-support,theme-options,threaded-comments,translation-ready,blog
Version: 4.12.7.1775782966
Updated: 2026-04-10 10:02:46

*/

/* =========================
  基本
========================= */
.container {
  width: min(1100px, calc(100% - 40px));
  margin: 0 auto;
}

html {
  scroll-behavior: smooth;
}

body {
  scroll-behavior: smooth;
}

#about,
#service,
#strengths,
#contact {
  scroll-margin-top: 90px;
}

/* =========================
  ヘッダー
========================= */
.site-header .global-nav {
  display: block;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: #0b819b;
  color: #fff;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
}

.header-inner {
  min-height: 74px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.site-logo {
  display: inline-flex;
  flex-direction: column;
  line-height: 1.1;
  color: #fff;
  text-decoration: none;
}

.site-logo__sub {
  font-size: 11px;
  letter-spacing: 0.08em;
  opacity: 0.9;
}

.site-logo__main {
  font-size: 26px;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.global-nav__list {
  display: flex;
  align-items: center;
  gap: 24px;
  list-style: none;
  margin: 0;
  padding: 0;
  font-weight: 700;
}

.global-nav a {
  display: block;
  color: #fff;
  font-size: 14px;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.global-nav a:hover {
  opacity: 0.8;
}


/* =========================
  ヒーロー
========================= */
.hero {
  position: relative;
  min-height: 560px;
  overflow: hidden;
  color: #fff;
}

.hero__bg {
  height: 650px;
}

.hero__image {
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  filter: brightness(0.55);
}

.hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(0, 0, 0, 0.2);
}

.hero__content {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: min(1100px, calc(100% - 40px));
  height: 83%;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
}

.hero__label {
  display: inline-block;
  margin: 0 auto 18px;
  padding: 6px 16px;
  border: 1px solid rgba(255,255,255,0.7);
  border-radius: 999px;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-align: center;
}

.hero__title {
  margin: 0 0 17px 36px;
  font-size: clamp(32px, 5vw, 40px);
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: #fff;
  text-align: center;
}

.hero__text {
  margin: 0 auto 28px;
  font-size: 16px;
  text-align: center;
}

.hero__btn {
  padding: 7px 35px;
  border-radius: 999px;
  font-weight: 700;
  font-size: 15px;
  position: absolute;
  top: 100%;
}

.hero__btn--primary {
  background: #18b8da;
  color: #fff;
}


/* =========================
  共通セクション
========================= */
.section {
  padding: 2rem 2.2rem;
}

.section-label {
  color: #18a8c8;
  font-size: 13px;
  font-weight: 700;
}

.section-label p {
  margin-bottom: 0.4em;
}

.section-title {
  font-size: clamp(25px, 2vw, 40px);
  position: relative;
  padding: 16px 0 35px;
}

.section-title p {
  color: black;
  font-weight: 600;
}

.section-title::after {
  content: "";
  width: 85px;
  height: 2px;
  background: #5ec6da;
  display: block;
  margin-top: 22px;
}

.section-title--light h2 {
  color: #fff;
}

.section-text {
  margin-bottom: 32px;
}

.responsive-sp {
  display: none;
}

.responsive-pc {
  display: block;
}

/* =========================
  about
========================= */
.section-about {
  padding: 5rem 2.2rem 0;
}

/* =========================
  ボタン
========================= */
.btn {
  padding: 12px 28px;
  border-radius: 999px;
  font-weight: 700;
}

.btn--primary {
  background: #18b8da;
  color: #fff;
}

.btn--outline {
  border: 1px solid #fff;
  color: #fff;
}

/* =========================
  事業カード
========================= */
.service-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
}

.service-unit {
  display: flex;
  flex-direction: column;
}

.service-card {
  padding: 38px 38px 15px;
  border: 1px solid #7cc9d9;
  border-radius: 18px;
  background: #fff;
  height: 100%;
}

/* タイトル */
.service-card__title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 28px;
}

.service-icon {
  width: 30px;
}

/* サブタイトル */
.service-card__subtitle {
  color: #28a9c6;
  font-weight: 700;
  margin: 0.5em 0 1.3em;
}

/* リード文 */
.service-card__lead {
  font-size: 15px;
  margin-bottom: 33px;
}

/* 見出し */
.service-card__block h4 {
  color: #28a9c6;
  font-size: 14px;
  margin-bottom: 9px;
}

/* リスト */
.service-list {
  list-style: none;
  padding: 0;
  margin-bottom: 38px;
}

.service-list li {
  position: relative;
  padding: 6px 0 6px 18px;
  border-bottom: 1px dotted #ccc;
}

.service-list li::before {
  content: "▶";
  position: absolute;
  left: 0;
  color: #28a9c6;
}

/* 外部リンク */
.service-outside-link {
  font-size: 14px;
  margin: 1rem 0 0 1.3rem;
}

/* バナー */
.service-unit--banner {
  display: flex;
  flex-direction: column;
}

.service-banner-link {
  display: block;
}

.service-banner-link img {
  display: block;
  width: 93%;
  margin: 0 1.3rem;
  height: auto;
}

.service-grid--banners {
  margin-top: 22px;
}

/* =========================
  強み
========================= */
.strength-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}

.strength-item {
  display: flex;
  gap: 17px;
  padding: 14px 18px;
  border: 1px solid #7cc9d9;
  border-radius: 25px;
  align-items: center;
  font-weight: 600;
}

.strength-item span {
  font-size: 32px;
  color: #7cc9d9;
  font-family: times;
  font-weight: 900;
}

/* =========================
  メッセージ
========================= */
.section-message {
  background: linear-gradient(90deg, #066a84, #0ba3c2);
  color: #fff;
  margin: 1.8rem 0;
  padding: 65px 40px;
}

.section-title--light {
  color: #fff;
}

.message-text {
  max-width: 760px;
  font-size: 1.3rem;
  font-weight: 800;
}

.message-text2 {
  margin-bottom: 3.3rem;
  font-weight: 800;
}

/* =========================
  Contact
========================= */
.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 48px;
}

.company-info__logo img {
  width: 175px;
}

.company-info__logo {
  margin-bottom: 1.5rem;
}

.company-history p{
  border-bottom: 1px solid #acacac;
  padding-bottom: 1.5rem;
  margin-right: 3rem;
}

.company-history table {
  border: none;
  margin-top: 1rem;
}

.company-history caption {
  text-align: left;
  padding-left: 0;
  border: none;
  font-weight: 800;
}

.company-history th {
  white-space: nowrap;
  text-align: left;
  border: none;
  vertical-align: top;
  padding: 3px 0 2px;
}

.company-history td {
  border: none;
  padding: 3px 0 2px 1rem;
}

/* =========================
  フッター
========================= */
.site-footer {
  background: #0c2430;
  color: #fff;
  padding: 40px 0;
}

.footer-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 12px;
}

.footer-brand {
  font-weight: 800;
  margin-bottom: 1rem;
}

.footer-brand p {
  margin-bottom: 0;
}

.footer-brand span {
  font-size: 1.8rem;
}

.footer-copy {
  opacity: 0.8;
}

.footer-right p {
  margin-bottom: 0;
}

/* =========================
  レスポンシブ
========================= */
@media (max-width: 900px) {

  .site-header .global-nav {
    display: none;
  }

  .hero__image {
    background-position: left center;
  }

  .section {
    padding: 2rem 0.5rem;
    font-size: 17px;
  }

  .section-about {
    padding: 5rem 0.5rem 0;
  }

  .section-message {
    padding: 3rem 0.5rem 4rem;
  }

  .service-grid,
  .strength-grid,
  .contact-grid {
    grid-template-columns: 1fr;
  }

  .responsive-sp {
    display: block;
  }

  .responsive-pc {
    display: none;
  }

  .service-card {
    padding: 38px 29px 15px;
  }

  .service-card__title {
    font-size: 26px;
  }

  .service-outside-link {
    font-size: 16px;
    margin: 0;
  }

  .service-banner-link img {
    margin: 0;
  }

  .footer-inner {
    flex-direction: column;
  }

  .footer-brand {
    line-height: 1.3;
  }

  .footer-right p {
    margin-bottom: 0;
    font-size: 15px;
  }

}
