:root {
  --simple-ink: #123d37;
  --simple-deep: #0c302c;
  --simple-paper: #ffffff;
  --simple-cream: #f6f3ec;
  --simple-pale: #edf3ee;
  --simple-gold: #a87d3d;
  --simple-muted: #58706a;
  --simple-line: rgba(18, 61, 55, .17);
}

.site-header {
  height: 84px;
  padding: 0 clamp(20px, 5vw, 76px);
  background: rgba(255, 255, 255, .96) !important;
  border-bottom: 1px solid var(--simple-line);
}
.info-page .site-header,
.guide-page .site-header { border-bottom-color: var(--simple-line) !important; }

.site-header > .logo-brand { display: flex !important; flex-direction: row !important; align-items: center; width: auto !important; height: 48px; gap: 11px; flex-shrink: 0; line-height: 1; }
.site-header > .logo-brand img { display: block; width: 42px !important; height: 48px !important; max-width: none !important; object-fit: contain; flex: 0 0 42px; }
.site-header > .logo-brand .brand-name { display: block; color: var(--simple-ink); font-size: 15px; font-weight: 700; letter-spacing: .04em; line-height: 1.35; white-space: nowrap; }
.site-header nav { gap: clamp(16px, 2vw, 30px); font-size: 13px; letter-spacing: .04em; }
.site-header nav a:not(.header-cta),
.info-page .site-header nav a:not(.header-cta),
.guide-page .site-header nav a:not(.header-cta) { color: var(--simple-ink); }
.header-cta {
  padding: 12px 17px;
  border-color: var(--simple-ink);
  color: var(--simple-ink) !important;
  font-size: 12px;
  white-space: nowrap;
}
.header-cta:hover { background: var(--simple-ink); color: #fff !important; }

.site-footer {
  display: grid;
  grid-template-columns: minmax(240px, 1.1fr) minmax(280px, 1fr) auto;
  gap: 38px;
  padding: 50px clamp(20px, 7vw, 110px);
  background: var(--simple-deep);
  color: rgba(255, 255, 255, .74);
  font-size: 12px;
}
.footer-company p { margin: 0 0 8px; color: #fff; font-weight: 600; }
.site-footer .footer-company p { text-align: left; }
.footer-company address { margin: 0; font-style: normal; line-height: 1.9; }
.footer-company a { display: inline-block; margin-top: 4px; color: #fff; }
.site-footer nav { display: flex; flex-wrap: wrap; align-content: start; gap: 10px 20px; }
.site-footer nav a { color: rgba(255, 255, 255, .78); }
.footer-copyright { align-self: end; margin: 0; color: rgba(255, 255, 255, .46); font-size: 10px; white-space: nowrap; }
.site-footer .footer-copyright { text-align: right; }

.home-simple { background: var(--simple-paper); color: var(--simple-ink); }
.home-container { width: min(1180px, calc(100% - 48px)); margin: 0 auto; }
.home-hero { overflow: hidden; background: linear-gradient(115deg, #fbfaf6 0%, #fbfaf6 54%, #edf2ed 100%); }
.home-hero-grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); min-height: min(690px, calc(100vh - 84px)); align-items: center; gap: clamp(36px, 7vw, 105px); }
.home-hero-copy { padding: 76px 0; }
.section-kicker { margin: 0 0 18px; color: var(--simple-gold); font: 700 11px/1.5 Arial, sans-serif; letter-spacing: .14em; }
.home-hero h1,
.home-section h2,
.home-contact h2 {
  margin: 0;
  color: var(--simple-ink);
  font-family: Georgia, "Yu Mincho", serif;
  font-weight: 400;
  letter-spacing: .02em;
}
.home-hero h1 { font-size: clamp(34px, 3.45vw, 48px); line-height: 1.38; }
.home-hero-copy > p:not(.section-kicker) { max-width: 490px; margin: 27px 0 31px; color: var(--simple-muted); font-size: 16px; line-height: 2; }
.home-hero-image { align-self: stretch; min-height: 480px; margin: 0; }
.home-hero-image img { display: block; width: 100%; height: 100%; object-fit: cover; }

.button { min-height: 50px; padding: 0 23px; font-size: 13px; letter-spacing: .04em; }
.button-gold { background: var(--simple-ink); color: #fff; }
.button-gold:hover { background: var(--simple-gold); color: #fff; }
.button-outline { background: transparent; border: 1px solid var(--simple-ink); color: var(--simple-ink); }
.button-outline:hover { background: var(--simple-ink); color: #fff; }
.button span, .text-link span { margin-left: 12px; }

.home-section { padding: 112px 0; }
.section-heading-simple { max-width: 720px; }
.section-heading-simple h2,
.home-contact h2 { font-size: clamp(29px, 3vw, 38px); line-height: 1.48; }
.section-heading-simple > p:last-child { margin: 20px 0 0; color: var(--simple-muted); font-size: 16px; line-height: 1.9; }
.section-heading-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .55fr); max-width: none; gap: 72px; align-items: end; }
.section-heading-row > p:last-child { margin-bottom: 5px; }

.home-capabilities { background: var(--simple-paper); }
.capability-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 46px; }
.capability-card { overflow: hidden; border: 1px solid var(--simple-line); background: #fff; }
.capability-card > img { display: block; width: 100%; height: 145px; object-fit: cover; filter: saturate(.72) brightness(1.08); }
.capability-card > div { min-height: 220px; padding: 27px; }
.capability-card span, .cost-list span { color: var(--simple-gold); font: 20px Georgia, serif; }
.capability-card h3, .cost-list h3 { margin: 27px 0 10px; color: var(--simple-ink); font-size: 19px; }
.capability-card p, .cost-list p { margin: 0; color: var(--simple-muted); font-size: 15px; line-height: 1.9; }
.text-link { display: inline-block; margin-top: 34px; padding-bottom: 5px; border-bottom: 1px solid currentColor; color: var(--simple-ink); font-size: 13px; }

.home-items { background: var(--simple-cream); }
.category-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 47px 0 34px; padding: 0; list-style: none; }
.category-list li { min-height: 92px; display: flex; align-items: center; padding: 22px 24px; border: 1px solid var(--simple-line); background: rgba(255, 255, 255, .72); color: var(--simple-ink); font-size: 17px; font-weight: 600; }

.home-cost { background: #fff; }
.cost-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 47px 0 34px; border-top: 1px solid var(--simple-line); }
.cost-list article { min-height: 225px; padding: 28px 30px 20px 0; border-right: 1px solid var(--simple-line); }
.cost-list article + article { padding-left: 30px; }
.cost-list article:last-child { border-right: 0; }

.home-contact { padding: 100px 0; background: var(--simple-pale); text-align: center; }
.home-contact .home-container { max-width: 720px; }
.home-contact .section-kicker { margin-bottom: 13px; }
.home-contact > .home-container > p:not(.section-kicker) { max-width: 540px; margin: 20px auto 29px; color: var(--simple-muted); font-size: 16px; line-height: 1.9; }

.page-hero { padding-top: 118px; padding-bottom: 66px; }
.page-hero h1, .contact-hero h1 { font-size: clamp(31px, 3.2vw, 42px); line-height: 1.42; }
.page-hero p:not(.eyebrow), .contact-hero > div > p:not(.eyebrow) { font-size: 16px; line-height: 2; }
.section-intro h2, .page-cta h2 { font-size: clamp(28px, 2.8vw, 36px); line-height: 1.48; }
.page-cta .button { background: var(--simple-ink); color: #fff; }

@media (max-width: 900px) {
  .site-header { height: 72px; padding: 0 5vw; }
  .site-header > .logo-brand { height: 42px; gap: 8px; }
  .site-header > .logo-brand img { width: 36px !important; height: 42px !important; flex-basis: 36px; }
  .site-header > .logo-brand .brand-name { font-size: 12px; }
  .site-header nav { gap: 0; }
  .site-header nav a:not(.header-cta) { display: none; }
  .header-cta { padding: 10px 12px; font-size: 11px; }
  .home-container { width: min(100% - 40px, 680px); }
  .home-hero-grid { grid-template-columns: 1fr; gap: 0; min-height: 0; }
  .home-hero-copy { padding: 78px 0 55px; }
  .home-hero-image { min-height: 360px; }
  .home-section { padding: 78px 0; }
  .section-heading-row { grid-template-columns: 1fr; gap: 0; }
  .capability-grid, .category-list, .cost-list { grid-template-columns: 1fr; }
  .capability-grid { gap: 14px; margin-top: 34px; }
  .capability-card { display: grid; grid-template-columns: 128px 1fr; }
  .capability-card > img { height: 100%; min-height: 188px; }
  .capability-card > div { min-height: 0; padding: 22px; }
  .capability-card h3 { margin-top: 17px; font-size: 17px; }
  .capability-card p { font-size: 14px; }
  .category-list { gap: 9px; margin-top: 34px; }
  .category-list li { min-height: 70px; padding: 18px; font-size: 16px; }
  .cost-list { margin-top: 34px; }
  .cost-list article, .cost-list article + article { min-height: 0; padding: 22px 0; border-right: 0; border-bottom: 1px solid var(--simple-line); }
  .cost-list h3 { margin-top: 15px; font-size: 17px; }
  .home-contact { padding: 78px 0; }
  .site-footer { grid-template-columns: 1fr; gap: 27px; padding: 38px 6vw; }
  .footer-copyright { align-self: auto; }
}

@media (max-width: 500px) {
  .site-header { padding: 0 16px; }
  .site-header > .logo-brand { height: 38px; gap: 5px; }
  .site-header > .logo-brand img { width: 33px !important; height: 38px !important; flex-basis: 33px; }
  .site-header > .logo-brand .brand-name { font-size: 9px; letter-spacing: 0; }
  .header-cta { padding: 9px; font-size: 10px; }
  .home-container { width: calc(100% - 40px); }
  .home-hero h1 { font-size: 29px; line-height: 1.45; }
  .section-heading-simple h2, .home-contact h2 { font-size: 26px; line-height: 1.5; }
  .home-hero-copy > p:not(.section-kicker), .section-heading-simple > p:last-child, .home-contact > .home-container > p:not(.section-kicker) { font-size: 15px; }
  .home-hero-image { min-height: 300px; }
  .capability-card { grid-template-columns: 1fr; }
  .capability-card > img { height: 140px; min-height: 0; }
  .button { width: 100%; }
  .site-footer nav { gap: 9px 16px; }
}

/* 共通ヘッダー：PCは横並び、スマホはメニューを開閉します。 */
.site-header { position: sticky; top: 0; z-index: 50; display: flex !important; align-items: center; justify-content: space-between; }
.header-mobile-actions { display: none; }
.nav-toggle { display: none; }

/* トップページから各ページへ進む案内カード */
.home-directory { padding: 108px 0; background: #fff; }
.directory-heading { display: flex; align-items: end; justify-content: space-between; gap: 40px; }
.directory-heading h2 { max-width: 600px; }
.directory-heading > p:last-child { max-width: 360px; margin: 0; color: var(--simple-muted); font-size: 15px; line-height: 1.9; }
.directory-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 44px; }
.directory-card { position: relative; display: flex; min-height: 250px; align-items: end; overflow: hidden; isolation: isolate; color: #fff; background: var(--simple-deep); }
.directory-card::after { position: absolute; z-index: -1; inset: 0; content: ""; background: linear-gradient(180deg, rgba(5, 25, 22, .08), rgba(5, 25, 22, .88)); }
.directory-card img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.directory-card:hover img, .directory-card:focus-visible img { transform: scale(1.05); }
.directory-card > div { width: 100%; padding: 26px; }
.directory-card span { display: block; margin-bottom: 21px; color: #ead6a4; font: 13px/1 Georgia, serif; letter-spacing: .08em; }
.directory-card h3 { margin: 0; color: #fff; font: 400 24px/1.45 Georgia, "Yu Mincho", serif; letter-spacing: .03em; }
.directory-card p { margin: 8px 0 0; color: rgba(255, 255, 255, .84); font-size: 13px; line-height: 1.7; }
.directory-card strong { display: block; margin-top: 18px; color: #fff; font-size: 12px; font-weight: 500; letter-spacing: .08em; }

/* ページを詳しく案内するフッター */
.site-footer.site-footer-detailed { display: block; padding: 0; background: var(--simple-deep); color: rgba(255, 255, 255, .78); }
.footer-detail-grid { display: grid; grid-template-columns: minmax(250px, 1.35fr) repeat(3, minmax(145px, 1fr)); gap: 48px; width: min(1280px, calc(100% - 96px)); margin: 0 auto; padding: 68px 0 58px; }
.footer-detail-company { padding-right: 22px; }
.footer-detail-company h2 { margin: 0 0 17px; color: #fff; font: 400 23px/1.5 Georgia, "Yu Mincho", serif; letter-spacing: .04em; }
.footer-detail-company address { margin: 0; color: rgba(255, 255, 255, .72); font-size: 13px; font-style: normal; line-height: 2; }
.footer-detail-company a { display: inline-block; margin-top: 8px; color: #fff; font-size: 13px; }
.footer-link-group h2 { margin: 0 0 15px; padding-bottom: 12px; border-bottom: 1px solid rgba(255, 255, 255, .26); color: #fff; font-size: 15px; font-weight: 600; }
.site-footer.site-footer-detailed .footer-link-group { display: block; }
.footer-link-group ul { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.footer-link-group a { color: rgba(255, 255, 255, .78); font-size: 13px; line-height: 1.7; }
.footer-link-group a::before { content: "›"; margin-right: 8px; color: #e0c383; }
.footer-bottom { display: flex; justify-content: space-between; gap: 24px; width: min(1280px, calc(100% - 96px)); margin: 0 auto; padding: 20px 0; border-top: 1px solid rgba(255, 255, 255, .18); }
.footer-bottom p, .footer-bottom a { margin: 0; color: rgba(255, 255, 255, .57); font-size: 11px; letter-spacing: .05em; }
.site-footer.site-footer-detailed .footer-bottom p { text-align: left; }

@media (max-width: 900px) {
  .header-mobile-actions { display: flex; align-items: center; gap: 8px; }
  .header-mobile-actions .mobile-contact { display: inline-flex; min-height: 38px; align-items: center; padding: 0 10px; font-size: 10px; }
  .nav-toggle { display: inline-flex; min-height: 38px; align-items: center; gap: 7px; padding: 0 9px; border: 1px solid var(--simple-line); background: #fff; color: var(--simple-ink); font: 11px "Yu Gothic", sans-serif; letter-spacing: .04em; cursor: pointer; }
  .nav-toggle i, .nav-toggle i::before, .nav-toggle i::after { display: block; width: 15px; height: 1px; background: currentColor; content: ""; }
  .nav-toggle i { position: relative; }
  .nav-toggle i::before { position: absolute; top: -5px; }
  .nav-toggle i::after { position: absolute; top: 5px; }
  .site-header > nav { display: none; position: absolute; top: 100%; right: 0; left: 0; margin: 0; padding: 12px 5vw 19px; border-top: 1px solid var(--simple-line); border-bottom: 1px solid var(--simple-line); background: #fff; box-shadow: 0 14px 22px rgba(18, 61, 55, .12); }
  .site-header.is-menu-open > nav { display: grid; }
  .site-header.is-menu-open > nav a:not(.header-cta) { display: block !important; padding: 13px 0; border-bottom: 1px solid var(--simple-line); color: var(--simple-ink); font-size: 14px; }
  .site-header > nav .header-cta { display: none; }
  .directory-heading { display: block; }
  .directory-heading > p:last-child { margin-top: 18px; }
  .directory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .directory-card { min-height: 230px; }
  .footer-detail-grid { grid-template-columns: 1.2fr 1fr 1fr; gap: 34px 24px; width: min(680px, calc(100% - 40px)); padding: 54px 0 42px; }
  .footer-detail-company { grid-column: 1 / -1; padding: 0; }
  .footer-bottom { width: min(680px, calc(100% - 40px)); }
}

@media (max-width: 560px) {
  /* スマホでも会社名・相談導線を無理に小さくせず、読める大きさを保ちます。 */
  .site-header > .logo-brand { gap: 7px; }
  .site-header > .logo-brand img { width: 34px !important; height: 40px !important; flex-basis: 34px; }
  .site-header > .logo-brand .brand-name { font-size: 11px; letter-spacing: .01em; }
  .header-mobile-actions { gap: 5px; }
  .header-mobile-actions .mobile-contact { padding: 0 9px; font-size: 11px; }
  .nav-toggle { padding: 0 9px; }
  .nav-toggle span { display: none; }
  .home-directory { padding: 76px 0; }
  .directory-grid { grid-template-columns: 1fr; margin-top: 30px; }
  .directory-card { min-height: 220px; }
  .directory-card > div { padding: 23px; }
  .directory-card h3 { font-size: 22px; }
  .footer-detail-grid { grid-template-columns: 1fr; gap: 30px; width: calc(100% - 40px); }
  .footer-bottom { flex-direction: column; width: calc(100% - 40px); gap: 8px; }
}

@media (max-width: 360px) {
  /* 320px幅でもヘッダーが詰まらないよう、余白だけを少し圧縮します。 */
  .site-header { padding-right: 12px; padding-left: 12px; }
  .site-header > .logo-brand { gap: 6px; }
  .site-header > .logo-brand img { width: 32px !important; height: 37px !important; flex-basis: 32px; }
  .site-header > .logo-brand .brand-name { font-size: 10px; }
  .header-mobile-actions .mobile-contact { padding: 0 7px; font-size: 10px; }
  .nav-toggle { padding: 0 7px; }
}

/* トップページ：商品づくりの全体像を伝えるための構成 */
.home-revamp .top-hero { overflow: hidden; background: #fff; }
.home-revamp .top-hero-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); min-height: min(680px, calc(100vh - 84px)); align-items: center; gap: clamp(38px, 7vw, 106px); }
.home-revamp .top-hero-copy { padding: 74px 0; }
.home-revamp .top-hero-copy h1,
.home-revamp .top-section-heading h2 { margin: 0; color: var(--simple-ink); font-family: Georgia, "Yu Mincho", serif; font-weight: 400; letter-spacing: .025em; }
.home-revamp .top-hero-copy h1 { font-size: clamp(36px, 3.25vw, 44px); line-height: 1.42; }
.home-revamp .top-hero-copy h1 > span { display: block; white-space: nowrap; }
.home-revamp .top-hero-copy > p:not(.section-kicker) { margin: 25px 0 31px; color: var(--simple-muted); font-size: 16px; line-height: 2; }
.home-revamp .top-hero-visual { align-self: stretch; min-height: 500px; margin: 0; }
.home-revamp .top-hero-visual img { display: block; width: 100%; height: 100%; object-fit: cover; }

.home-revamp .top-section { padding: 112px 0; }
.home-revamp .top-section-heading { max-width: 720px; }
.home-revamp .top-section-heading h2 { font-size: clamp(29px, 3.2vw, 43px); line-height: 1.47; }
.home-revamp .top-section-heading > p:last-child { margin: 20px 0 0; color: var(--simple-muted); font-size: 15px; line-height: 1.95; }
.home-revamp .top-section-heading-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .55fr); max-width: none; gap: 72px; align-items: end; }
.home-revamp .top-section-heading-row > p:last-child { margin-bottom: 5px; }

.home-revamp .top-concerns { background: var(--simple-cream); }
.home-revamp .concern-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 45px; }
.home-revamp .concern-grid article { min-height: 236px; padding: 31px 29px; border: 1px solid var(--simple-line); background: rgba(255, 255, 255, .76); }
.home-revamp .concern-grid span,
.home-revamp .reason-grid span,
.home-revamp .future-grid span { display: block; color: var(--simple-gold); font: 20px/1 Georgia, serif; letter-spacing: .07em; }
.home-revamp .concern-grid h3,
.home-revamp .reason-grid h3,
.home-revamp .future-grid h3 { margin: 31px 0 13px; color: var(--simple-ink); font-size: 19px; line-height: 1.65; }
.home-revamp .concern-grid p,
.home-revamp .reason-grid p,
.home-revamp .future-grid p { margin: 0; color: var(--simple-muted); font-size: 14px; line-height: 1.9; }

.home-revamp .top-reasons { background: #fff; }
.home-revamp .reason-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin-top: 48px; border-top: 1px solid var(--simple-line); }
.home-revamp .reason-grid article { min-height: 272px; padding: 30px 31px 25px 0; border-right: 1px solid var(--simple-line); }
.home-revamp .reason-grid article + article { padding-left: 31px; }
.home-revamp .reason-grid article:last-child { border-right: 0; }
.home-revamp .reason-grid h3 { margin-top: 27px; }
.home-revamp .top-reasons .text-link { margin-top: 34px; }

.home-revamp .top-products { background: #f3f0e7; }
.home-revamp .product-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 48px 0 35px; }
.home-revamp .product-card { overflow: hidden; border: 1px solid var(--simple-line); background: #fff; }
.home-revamp .product-card img { display: block; width: 100%; height: 155px; object-fit: cover; filter: saturate(.78) brightness(1.04); }
.home-revamp .product-card > div { min-height: 190px; padding: 23px 24px; }
.home-revamp .product-card span { color: var(--simple-gold); font: 17px/1 Georgia, serif; }
.home-revamp .product-card h3 { margin: 20px 0 9px; color: var(--simple-ink); font-size: 18px; }
.home-revamp .product-card p { margin: 0; color: var(--simple-muted); font-size: 13px; line-height: 1.8; }

.home-revamp .top-process { background: var(--simple-deep); color: #fff; }
.home-revamp .top-process .section-kicker { color: #e4c987; }
.home-revamp .top-process .top-section-heading h2 { color: #fff; }
.home-revamp .top-process .top-section-heading > p:last-child { color: rgba(255, 255, 255, .72); }
.home-revamp .process-list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; margin: 49px 0 35px; padding: 0; list-style: none; border-top: 1px solid rgba(255, 255, 255, .26); }
.home-revamp .process-list li { min-height: 257px; padding: 28px 24px 20px 0; border-right: 1px solid rgba(255, 255, 255, .2); }
.home-revamp .process-list li + li { padding-left: 24px; }
.home-revamp .process-list li:last-child { border-right: 0; }
.home-revamp .process-list span { color: #e4c987; font: 21px/1 Georgia, serif; }
.home-revamp .process-list h3 { margin: 30px 0 12px; color: #fff; font-size: 17px; }
.home-revamp .process-list p { margin: 0; color: rgba(255, 255, 255, .72); font-size: 13px; line-height: 1.9; }
.home-revamp .text-link-light { border-bottom-color: rgba(255, 255, 255, .58); color: #fff; }

.home-revamp .top-future { background: var(--simple-pale); }
.home-revamp .future-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 48px; }
.home-revamp .future-grid article { min-height: 248px; padding: 31px 29px; background: rgba(255, 255, 255, .68); border-top: 3px solid var(--simple-gold); }
.home-revamp .future-grid h3 { margin-top: 29px; }

.home-revamp .top-cost { background: #fff; }
.home-revamp .top-cost .cost-list { margin-top: 48px; }
.home-revamp .top-faq { background: var(--simple-cream); }
.home-revamp .top-faq-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 46px; }
.home-revamp .top-faq-list article { min-height: 203px; padding: 27px; background: #fff; border: 1px solid var(--simple-line); }
.home-revamp .top-faq-list h3 { margin: 0 0 16px; color: var(--simple-ink); font-size: 16px; line-height: 1.75; }
.home-revamp .top-faq-list h3::before { content: "Q"; display: block; margin-bottom: 13px; color: var(--simple-gold); font: 21px/1 Georgia, serif; }
.home-revamp .top-faq-list p { margin: 0; color: var(--simple-muted); font-size: 13px; line-height: 1.85; }
.home-revamp .top-faq-actions { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-top: 34px; }

@media (max-width: 900px) {
  .home-revamp .top-hero-grid { grid-template-columns: 1fr; gap: 0; min-height: 0; }
  .home-revamp .top-hero-copy { padding: 78px 0 55px; }
  .home-revamp .top-hero-visual { min-height: 360px; }
  .home-revamp .top-section { padding: 78px 0; }
  .home-revamp .top-section-heading-row { grid-template-columns: 1fr; gap: 0; }
  .home-revamp .concern-grid,
  .home-revamp .future-grid,
  .home-revamp .top-faq-list { grid-template-columns: 1fr; gap: 10px; margin-top: 34px; }
  .home-revamp .concern-grid article,
  .home-revamp .future-grid article,
  .home-revamp .top-faq-list article { min-height: 0; padding: 24px; }
  .home-revamp .concern-grid h3,
  .home-revamp .future-grid h3 { margin-top: 18px; font-size: 17px; }
  .home-revamp .concern-grid h3 br,
  .home-revamp .future-grid h3 br { display: none; }
  .home-revamp .reason-grid { grid-template-columns: 1fr; margin-top: 34px; }
  .home-revamp .reason-grid article,
  .home-revamp .reason-grid article + article { min-height: 0; padding: 23px 0; border-right: 0; border-bottom: 1px solid var(--simple-line); }
  .home-revamp .reason-grid h3 { margin: 17px 0 9px; font-size: 17px; }
  .home-revamp .reason-grid h3 br { display: none; }
  .home-revamp .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 34px; }
  .home-revamp .product-card img { height: 138px; }
  .home-revamp .product-card > div { min-height: 175px; padding: 20px; }
  .home-revamp .product-card h3 { font-size: 16px; }
  .home-revamp .process-list { grid-template-columns: 1fr; margin-top: 34px; }
  .home-revamp .process-list li,
  .home-revamp .process-list li + li { position: relative; min-height: 0; padding: 21px 0 21px 58px; border-right: 0; border-bottom: 1px solid rgba(255, 255, 255, .2); }
  .home-revamp .process-list span { position: absolute; top: 23px; left: 0; }
  .home-revamp .process-list h3 { margin: 0 0 7px; font-size: 16px; }
  .home-revamp .top-cost .cost-list { margin-top: 34px; }
}

@media (max-width: 560px) {
  .home-revamp .top-hero-copy { padding: 56px 0 43px; }
  .home-revamp .section-kicker { font-size: 12px; line-height: 1.6; }
  .home-revamp .top-hero-copy h1 { font-size: clamp(30px, 8.5vw, 34px); line-height: 1.48; letter-spacing: .01em; }
  .home-revamp .top-hero-copy > p:not(.section-kicker) { margin: 20px 0 26px; font-size: 15px; }
  .home-revamp .top-hero-copy > p br { display: none; }
  .home-revamp .top-hero-visual { min-height: 290px; }
  .home-revamp .top-section-heading h2 { font-size: 26px; line-height: 1.5; }
  .home-revamp .top-section-heading h2 br { display: none; }
  .home-revamp .product-grid { grid-template-columns: 1fr; }
  .home-revamp .product-card { display: grid; grid-template-columns: 118px 1fr; }
  .home-revamp .product-card img { height: 100%; min-height: 161px; }
  .home-revamp .product-card > div { min-height: 0; }
  .home-revamp .product-card p { font-size: 13px; line-height: 1.75; }
  .home-revamp .top-faq-actions { flex-direction: column; align-items: stretch; gap: 23px; }
  .home-revamp .top-faq-actions .text-link { align-self: flex-start; }
}

/* 読みやすい改行：見出しは意味のまとまりを保ち、スマホではPC用の強制改行を解除します。 */
.home-revamp h1,
.home-revamp h2,
.info-page .page-hero h1,
.info-page .section-intro h2,
.info-page .page-cta h2,
.guide-page .guide-hero h1,
.guide-page .section-heading h2,
.guide-page .story-copy h2,
.guide-page .guide-note h2,
.guide-page .guide-cta h2,
.contact-page h1,
.contact-page h2 {
  text-wrap: balance;
  line-break: strict;
  overflow-wrap: normal;
  word-break: normal;
}

@media (max-width: 640px) {
  /* 本文は画面幅に合わせて自然に流し、PC用の改行位置に縛られないようにします。 */
  .home-revamp main p br,
  .info-page main p br,
  .guide-page main p br,
  .contact-page main p br { display: none; }

  /* 見出しは自動バランスで折り返します。意味の途中で強制的に行を変えるbrは非表示にします。 */
  .info-page .page-hero h1 br,
  .info-page .section-intro h2 br,
  .info-page .page-cta h2 br,
  .guide-page .guide-hero h1 br,
  .guide-page .section-heading h2 br,
  .guide-page .story-copy h2 br,
  .guide-page .guide-note h2 br,
  .guide-page .guide-cta h2 br { display: none; }

  .info-page .page-hero h1,
  .guide-page .guide-hero h1 { font-size: clamp(27px, 7vw, 33px); line-height: 1.48; letter-spacing: .015em; }

  .info-page .section-intro h2,
  .info-page .page-cta h2,
  .guide-page .section-heading h2,
  .guide-page .story-copy h2,
  .guide-page .guide-note h2,
  .guide-page .guide-cta h2 { font-size: clamp(24px, 6.3vw, 29px); line-height: 1.52; letter-spacing: .01em; }

  .info-page .feature-card h3,
  .info-page .category-card h3,
  .guide-page .fit-grid h3,
  .guide-page .driver-grid h3,
  .guide-page .benefit-grid h3 { line-height: 1.6; line-break: strict; text-wrap: pretty; }
}
