/* =========================
	 Header
 ========================= */
.header{
	background:#fff;
	border-bottom: 1px solid rgba(0,0,0,.08);
}
.header__inner{
	max-width: 1520px;
	display:flex;
	align-items:center;
	justify-content:space-between;
	min-height: 72px;
	padding-block: 10px;
}
.brand{ display:block; }
.brand img{
	display:block;
	height:auto;
	width:auto;
}
.header__actions{
	display:flex;
	align-items:center;
	gap: 12px;
	white-space: nowrap;
}
.header__no-link{
	margin: 0;
	font-size: 16px;
	line-height: 1;
	color:#666;
	font-weight: 700;
}
.header__actions .btn{ 
	line-height: 1; 
	box-shadow: 0 3px 0 #eee;
    border-radius: 60px;
    color: #fff;
    cursor: pointer;
    text-decoration: none;
	transition: transform .3s, box-shadow .3s;
}
.header__actions .btn:hover {
  box-shadow: none;
  transform: translateY(3px);
  transition: .3s;
}
.header__actions .btn:active {
  box-shadow: none;
  transform: translateY(3px);
}
@media (min-width: 1051px){
	.header__brand .brand img{ max-width:490px; }
}
@media (min-width:921px) and (max-width:1050px) {
	.header__brand .brand img{ max-width:360px; }
}
@media (min-width:769px) and (max-width:920px) {
	.header__brand .brand img{ max-width:280px; }
}

.btn--accent{ font-size: 21px; font-weight: 700; }

/* =========================
   Header floating (PC only)
   ========================= */
@media (min-width: 769px){

  .header{
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
  }

  /* ヘッダー高さ分の余白を確保 */
  body{
    padding-top: 72px;
  }

}

/* =========================
	 Hero
 ========================= */
.hero{ padding-block: 100px; }
.hero__inner{
	display:grid;
	gap: var(--s-5);
	align-items:center;
}
.hero__kicker,
.hero__title-em{
	font-size: 56px;
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.04em;
}
.hero__title-main{
	font-size: 30px;
	font-weight: 800;
	line-height: 1.25;
}
.hero__kicker{ margin: 0px; }
.hero__title{ margin: 0; line-height: 1.5;}

/* ==============================
	 Hero Fluid Typography 完全版
 ============================== */
@media (min-width:769px) and (max-width:1520px) {
	.hero__inner {
		padding-inline: 50px;
	}
	.hero__title-em{
		font-size: clamp(26px, 3.2vw, 56px);
		font-weight: 700;
		line-height: 1.15;
		letter-spacing: -0.04em;
	}
	
	.hero__title-main{
		font-size: clamp(14px, 1.8vw, 32px);
		font-weight: 800;
		line-height: 1.25;
		letter-spacing: -0.02em;
	}
}

@media (min-width:769px) and (max-width:1520px) {
	.hero__title {
		line-height: 0;
	}
	.hero__title-em{
		line-height: 1.6;
	}
	.hero__title-main{
		line-height: 1.6;
	}
}

@media (max-width:768px) {
	.hero {
		padding-block: 75px;
		text-align: center;
	}
	.hero__title {
		line-height: 0;
	}
	.hero__title-em{
		font-size: 32px;
		line-height: 1.25;
        margin-left: 16px;
	}
	
	.hero__title-main{
		font-size: 18px;
		line-height: 1.75;
	}
}


/* =========================
	 Problems
 ========================= */
.problems__grid{
	display:grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 60px;
	gap: 50px 15px;
}
.problem-card{ text-align:center; }
.problem-card__avatar{
	margin-inline:auto;
	width: 100%;
	max-width: 320px;
}
.problem-card__label{
	margin-top: -60px;
	display: block;
	position: relative;
	width: 100%;
	padding: 10px 5px;
	border-radius: 5px;
	font-size: 16px;
	font-weight: 600;
	line-height: normal;
	letter-spacing: -0.8px;
}
@media (max-width: 768px){
	.problem-card__label{
        margin-top: -55px;
        padding: 10px 5px;
        min-height: 68px;
        display: flex;
        align-items: center;
        justify-content: center;
	}
}
@media (min-width:640px) and (max-width:767px) {
	.problem-card__label{
        margin-top: -55px;
	}
}
@media (min-width:501px) and (max-width:639px) {
	.problem-card__label{
        margin-top: -50px;
	}
}
@media (min-width:431px) and (max-width:500px) {
	.problem-card__label{
        margin-top: -45px;
	}
}

@media (max-width:430px) {
	.problem-card__label{
        margin-top: -35px;
	}
}
@media (min-width:769px) and (max-width:1520px) {
	.problem-card__label{
		font-size: clamp(12px, 1.6vw, 16px);
	}
}
.problems__note{
	text-align: center;
	margin-top: 65px;
	font-size: 26px;
	font-weight: 600;
	line-height: 1.6;
}
@media (max-width: 768px){
	.problems__note{
		font-size: 18px;
		font-weight: 600;
		line-height: 1.6;
		letter-spacing: -0.8px;
	}
}
/* =========================
	 Support
 ========================= */
.support__card{
	background: var(--c-white);
	padding: 0;
	overflow: hidden;
}
.support__title-btn{
	border-radius: 10px 10px 0 0;
	padding: 28px 24px;
	font-size: 30px;
	font-weight: 700;
}
@media (max-width: 768px){
	.support__title-btn{
		font-size: 26px;
		text-align: center;
	}
}

.support__intro,
.support__menu,
.support__footnote{
	padding-inline: 40px;
}
.icon-text__text{ font-size: 21px; }

@media (max-width: 768px){
	.icon-text__text {
		font-size: 18px;
		letter-spacing: -0.8px;
	}
}

.support__footnote{ padding-bottom: 40px; }

.support__intro{
	display:grid;
	gap: var(--s-4);
	margin-top: var(--s-4);
}
@media (max-width: 768px){
	.support__intro, .support__menu, .support__footnote {
		padding-inline: 15px;
	}
}
.support__menu{
	display: grid;
	grid-template-columns: 1fr;
	gap: 15px;
	margin-top: var(--s-4);
}
@media (min-width: 769px){
	.support__menu{ grid-template-columns: repeat(2, 1fr); }
}
.support__menu .icon-text{ background: #e1f4e4; }

@media (min-width: 769px){
	.support__footnote{
		text-align: center;
		margin-top: 36px;
		font-size: 26px;
		font-weight: 600;
		line-height: 1.6;
		border: 3px solid #23ac38;
		margin: 40px;
		border-radius: 10px;
		padding: 20px;
	}
	.support__intro{ align-items: center; }
	.support__intro-text p{
		margin-top: 8px;
		font-size: 21px;
		font-weight:700;
	}
	.support__intro-text p{ 
		line-height: 1.9; 
		font-size: clamp(16px, 1.8vw, 21px);
	}
}
@media (max-width: 768px){
	.support__intro-media {
		margin: 0 auto;
	}
	.support__footnote {
		text-align: center;
		margin-top: 36px;
		font-size: 18px;
		font-weight: 600;
		line-height: 1.6;
		border: 3px solid #23ac38;
		margin: 15px;
		border-radius: 15px;
		text-align: left;
		padding: 10px;
	}
	
	.support__footnote p {
		padding-left: 1.2em;
		text-indent: -1.1em;
		line-height: 1.3;
        letter-spacing: -0.8px;
	}

	.support__footnote p:first-child {
		padding-bottom: 5px;
	}
}
/* =========================
	 Steps / Howto
 ========================= */
.steps{ display:grid; gap: var(--s-4); }
.howto__cta{ text-align:center; margin-top:	50px; }
.howto .infobanner{ margin-top: 50px; }

@media (min-width: 769px){
	.steps{
		display: grid;
		grid-template-columns: 1fr 1fr;
		column-gap: 28px;
		align-items: start;
	}
	.steps__list{ grid-column: 1; grid-row: 1; }
	.step__bikou__text{ grid-column: 1; grid-row: 2; }
	.steps__media{
		grid-column: 2;
		grid-row: 1 / span 2;
		align-self: start;
	}
}
.steps__list{
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	row-gap: 26px;
}
.step{
	position: relative;
	display: grid;
	grid-template-columns: 70px 1fr;
	column-gap: 20px;
	align-items: center;
}
@media screen and (max-width: 768px) {
	.step{
		column-gap: 15px;
	}
}
.step__badge{
	width: 70px;
	height: 70px;
	border-radius: 999px;
	background: #23ac38;
	color: #fff;
	display: grid;
	place-items: center;
	text-align: center;
	font-weight: 900;
	margin: 0;
}
.step__label{ font-size: 13px; line-height: 1; letter-spacing: 0.05em; }
.step__num{ font-size: 30px; line-height: 1; margin-top: -25px; }
.step__text{ margin: 0; font-weight: 700; font-size: 21px; line-height: 1.6; }
@media screen and (max-width: 768px) {
	.step__text{ font-size: 18px; font-weight: 700;}
}
.step:not(:last-child)::after{
	content: "";
	position: absolute;
	left: 50%;
	top: calc(100% + 8px);
	transform: translateX(-50%);
	width: 0;
	height: 0;
	border-left: 7px solid transparent;
	border-right: 7px solid transparent;
	border-top: 9px solid #111;
}
.step__bikou__text{
	margin: 20px 0 0;
	color: var(--c-green);
	font-weight: 800;
	font-size: 18px;
	line-height: 1.6;
}
@media screen and (max-width: 768px) {
	.step__bikou__text {
			font-size: 16px;
	}
}
.steps__media img{
	display: block;
	width: 100%;
	max-width: 100%;
	margin-inline: auto;
}
@media screen and (max-width: 768px) {
	.card.steps {
		display: flex;
		flex-direction: column; /* 要素を縦並びにする */
	}

	/* 画像を一番最初（上）に配置 */
	.steps__media {
		order: 1; 
        display: contents;
	}

	/* リストを2番目に配置 */
	.steps__list {
		order: 2;
	}

	/* 備考テキストを3番目に配置 */
	.step__bikou__text {
		order: 3;
		letter-spacing: -0.8px;
	}
}

.info__col span a.url-link{
	display: inline-block;
	margin-top: 6px;
	font-weight: 600;
	color: var(--c-green-text);
	text-decoration: underline;
}

.howto__cta .btn{ 
	line-height: 1; 
	box-shadow: 0 3px 0 #ddd;
    border-radius: 60px;
    color: #fff;
    cursor: pointer;
    text-decoration: none;
	transition: transform .3s, box-shadow .3s;
}

.howto__cta .btn:hover {
  box-shadow: none;
  transform: translateY(3px);
  transition: .3s;
}
.howto__cta .btn:active {
  box-shadow: none;
  transform: translateY(3px);
}

/* =========================
	 InfoBanner
 ========================= */
.infobanner{ padding-top: 0; padding-bottom: 0; }
.infobanner .info{
	display: grid;
	gap: 24px;
	background: transparent;
	box-shadow: none;
	border: none;
	padding: 0;
}
.infobanner .info__col{
	border: 3px solid #23ac38;
	border-radius: 10px;
	background: #fff;
	padding: 22px 26px;
}
@media (min-width: 769px){
	.infobanner .info{
		grid-template-columns: 1fr 1fr;
		gap: 20px;
	}
}
.infobanner .info__col p{
	margin: 0;
	font-size: 21px;
	font-weight: 600;
	line-height: 1.75;
	color: #111;
}
@media (max-width: 768px){
	.infobanner .info__col {
			padding: 15px;
	}
	.infobanner .info__col p {
			font-size: 16px;
	}
}
@media (min-width:769px) and (max-width:1520px) {
	.infobanner .info__col p{
		font-size: clamp(14px, 1.3vw, 21px);
	}
}
.infobanner .info__col span{
	display: block;
	margin-top: 10px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.7;
	color: #111;
}

@media (min-width:769px) and (max-width:1520px) {
	.infobanner .info__col span{
		font-size: clamp(13px, 1.2vw, 18px);
	}
}
.infobanner .info__col a.arrow-right{
	color: #111;
	text-decoration: none;
	font-weight: 600;
	position: relative;
	padding-left: 18px;
}
.infobanner .info__col a.arrow-right::before{
	content: "▶";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	font-size: 12px;
}
.infobanner .info__col span,
.infobanner .info__col a{
	overflow-wrap: anywhere;
	word-break: break-word;
}

/* =========================
	 FAQ
 ========================= */
.faq__list{ display: grid; gap: 40px; }
.faq-item{ border: none; background: transparent; padding: 0; }
.faq-item__q{
	position: relative;
	margin: 0;
	background: var(--c-green);
	color: #fff;
	border-radius: 8px;
	padding: 16px 20px 16px 64px;
	font-weight: 800;
	font-size: 18px;
	line-height: 1.5;
}
.faq-item__q::before{
	font-family: "Google Sans", sans-serif;
	content: "Q.";
	position: absolute;
	left: 20px;
	top: 50%;
	transform: translateY(-50%);
	font-weight: 400;
	font-size: 32px;
	line-height: 1;
}
.faq-item__a{
	position: relative;
	margin: 14px 0 0;
	padding: 0 0 0 64px;
	font-size: 18px;
	font-weight: 600;
	line-height: 2;
	color: #111;
}
@media (max-width: 768px){
	.faq-item__a{
		font-size: 18px;
		line-height: normal;
	}
	.faq-item__q::before{
		font-weight: 500;
	}
}
.faq-item__a::before{
	font-family: "Google Sans", sans-serif;
	content: "A.";
	position: absolute;
	left: 20px;
	top: 0;
	font-weight: 400;
	font-size: 32px;
	line-height: 1;
	color: var(--c-green);
}
@media (max-width: 768px){
	.faq-item__a::before{
		font-weight: 500;
	}
}
/* =========================
	 About
 ========================= */
.about__text{
	text-align: center;
	font-size: 18px;
	font-weight: 600;
	line-height: 2;
	margin: 0 0 40px;
}

@media (max-width: 768px){
	.about__text{
		text-align: left;
		font-size: 18px;
		margin: 0 0 20px;
		line-height: normal;
	}
}

.about__panel{ padding: 0; overflow: hidden; }
.about__panel-head{
	background: var(--c-green);
	color: #fff;
	text-align: center;
	font-weight: 700;
	font-size: 30px;
	padding: 26px 24px;
}
.about__menu{
	padding: 34px 40px 40px;
	display: grid;
	grid-template-columns: 1fr;
	gap: 22px;
}
@media (min-width: 1050px){
	.about__menu{ grid-template-columns: repeat(3, 1fr); gap: 20px; }
}
@media (min-width:769px) and (max-width:1049px) {
    .about__menu {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }
}
@media (max-width: 768px){
	.about__menu{
		padding: 15px;
		display: grid;
		grid-template-columns: 1fr;
		gap: 15px;
	}
}

.about .mini-card{
	position: relative;
	background: #fff;
	padding: 20px 12px;
	min-height: 130px;
	display: grid;
	align-content: center;
	gap: 10px;
	border: 1px solid var(--accent);
	border-left: 10px solid var(--accent);
}
.about .mini-card > img{ display: none; }
.about .mini-card__title{
	margin: 0;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.3;
}
.about .mini-card__text{
	margin: 0;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.6;
	letter-spacing: -0.8px;
	color: #111;
}
.about a .mini-card::after{
	content: "";
	position: absolute;
	right: 16px;
	top: 50%;
	transform: translateY(-50%);
	width: 34px;
	height: 34px;
	border-radius: 999px;
	background: var(--accent);
	background-image: url("../assets/img/arrow-white.png");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 14px 14px;
}

.about a.about01 .mini-card{ --accent:#1f8f3a; }
.about a.about02 .mini-card{ --accent:#5b3aa4; }
.about a.about03 .mini-card{ --accent:#f39a1e; }
.about a.about04 .mini-card{ --accent:#d81b60; }
.about .hello { --accent:#1976d2; }
.about a:hover .mini-card::after{ filter: brightness(0.6); }

.about .mini-card:nth-child(2)::after {
	content: none;
	display: none;
}

/* =========================
	 Reasons（選ばれる理由）※あなたのHTML前提
 ========================= */

.reasons__grid{
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
}

/* 共通：枠 */
.reasons .feature-card,
.reasons .photo-card{
	border: 3px solid var(--c-green);
	border-radius: 10px;
	background: #fff;
	overflow: hidden; /* 写真・角のため */
}

/* 1枚目/2枚目（小カード） */
.reasons .feature-card{
	padding: 28px 28px 26px;
	text-align: center;
}
@media (max-width: 768px){
	.reasons .feature-card {
		padding: 20px 15px;
		text-align: center;
	}
}
.reasons .feature-card > img{
	display: block;
	width: 60px;
	height: auto;
	margin: 0 auto 14px;
}

.reasons .feature-card__title{
	margin: 0;
	color: var(--c-green-text);
	font-weight: 600;
	font-size: 21px;
	line-height: 1.2;
}
@media (max-width: 768px){
	.reasons .feature-card__title {
		font-size: 16px;
		line-height: 1.3;
	}
}
.reasons .feature-card__text{
	margin: 10px 0 0;
	font-weight: 700;
	font-size: 16px;
	line-height: 1.8;
	color: #111;
}
@media (max-width: 768px){
	.reasons .feature-card__text {
		margin: 5px 0 0;
		font-weight: 700;
		font-size: 14px;
		line-height: 1.3;
		color: #111;
		text-align: justify;
        letter-spacing: -0.8px;
	}
}
/* 3枚目（横長カード：左に大きいイラスト、右に本文） */
.reasons .feature-card:nth-child(3){
	padding: 0;					 /* 中で余白管理 */
	text-align: left;
}
.reasons .feature-card:nth-child(3) .feature-card__text {
		letter-spacing: -0.8px;
		text-align: justify;
}

.reasons .feature-card:nth-child(3) > img{
	/* 左の大イラスト（reason-photo.png） */
	width: 100%;
	max-width: none;
	margin: 0;
	display: block;
}

.reasons .feature-card:nth-child(3) .photo-card__body{
	/* 右側の本文エリア（クラス名はそのまま流用） */
	padding: 26px 28px;
}

.reasons .feature-card:nth-child(3) .photo-card__body > img{
	/* 右側の小アイコン（reason-03.png） */
	display: block;
	width: 52px;
	height: auto;
	margin: 0 auto 10px auto; /* 右寄せ */
}

.reasons .feature-card:nth-child(4) .feature-card__text {
		letter-spacing: -0.8px;
		text-align: justify;
}

/* 4枚目（縦長 photo-card：上写真＋下本文） */
.reasons .photo-card > img{
	width: 100%;
	height: 100%;				/* ← これが必須 */
	object-fit: cover;	 /* 中央トリミング */
	object-position: center;
	display: block;
}

.reasons .photo-card__body{
	padding: 22px 24px 26px;
	text-align: center;
}

.reasons .photo-card__body > img{
	display: block;
	width: 60px;
	height: auto;
	margin: 0 auto 12px;
}

.reasons .photo-card__title{
	margin: 0;
	color: var(--c-green-text);
	font-weight: 600;
	font-size: 21px;
	line-height: 1.2;
}

@media (max-width: 768px){
	.reasons .photo-card__title{
		font-size: 16px;
		line-height: 1.3;
		text-align: center;
	}
}
.reasons .photo-card__text{
	margin: 10px 0 0;
	font-weight: 700;
	font-size: 14px;
	line-height: 1.8;
	color: #111;
	letter-spacing: -0.8px;	
}

@media (max-width: 768px){
	.reasons .photo-card__text{
		margin: 5px 0 0;
		line-height: 1.3;
		letter-spacing: normal;
		text-align: left;
	}
}
/* PC：理想の配置（上2枚＋右縦長＋下横長） */
@media (min-width: 769px){
	.reasons__grid{
		grid-template-columns: repeat(3, 1fr);
		gap: 28px;
		align-items: stretch;
	}

	/* 右の縦長（photo-card）を2段ぶち抜き */
	.reasons .photo-card{
		grid-column: 3;
		grid-row: 1 / span 2;
	}

	/* 3枚目（横長）を左2列ぶち抜き */
	.reasons .feature-card:nth-child(3){
		grid-column: 1 / span 2;
		display: grid;
		grid-template-columns: 1.2fr 1fr; /* 左：大イラスト / 右：本文 */
		align-items: center;
	}

	.reasons .feature-card:nth-child(3) > img{
		height: 100%;
		object-fit: contain; /* イラストが切れないように */
		padding: 0; /* ←左側の余白（必要なら詰める） */
	}

	.reasons .feature-card:nth-child(3) .photo-card__body{
		padding: 24px 0 24px 0; /* ←右側余白 */
	}
}
/* =================================================
	 Reasons：PC固定（320/280/660/580 gap20）上書き専用
	 ※必ず Reasons CSS の一番下に追記
 ================================================= */
@media (min-width: 1049px){

	/* 既存の repeat(3,1fr) などを確実に上書き */
	.reasons .reasons__grid{
		display: grid;
		grid-template-columns: repeat(3, 320px);
		grid-template-rows: 280px 280px; /* 2段固定 */
		gap: 20px;

		/* 1000pxグリッドを中央に置く（containerが広ければセンター） */
		justify-content: center;

		/* もし container が1000px未満でも“崩れ”ではなく横スクロールに逃がす */
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	/* border込みで高さを守る */
	.reasons .reasons__grid > article{
		box-sizing: border-box;
		height: 100%;
		min-height: 0; /* grid内のはみ出し抑止 */
		min-width: 0;
		display: grid;
		align-content: center;
		justify-items: center;
		text-align: center;
	}

	/* 3枚目（横長）：660×280、左右1:1 */
	.reasons .reasons__grid > article.feature-card:nth-of-type(3){
		grid-column: 1 / span 2;
		grid-row: 2;
		padding: 0; /* 中で管理 */
		display: grid;
		grid-template-columns: 1fr 1fr; /* 1:1 */
		align-items: stretch;
	}

	/* 3枚目：左画像（reason-photo.png）を中央基準でフィット */
	.reasons .reasons__grid > article.feature-card:nth-of-type(3) > img{
		width: 100%;
		height: 100%;
		display: block;
		object-fit: contain;
		object-position: center;
	}

	/* 3枚目：右本文（photo-card__body）を中央に */
	.reasons .reasons__grid > article.feature-card:nth-of-type(3) .photo-card__body{
		height: 100%;
		box-sizing: border-box;
		padding: 10px;
		display: grid;
		align-content: center;
		justify-items: center;
		text-align: center;
	}

	/* 3枚目：右上アイコン（reason-03.png） */
	.reasons .reasons__grid > article.feature-card:nth-of-type(3) .photo-card__body > img{
		width: 60px;
		height: auto;
		display: block;
		margin: 0 0 10px;
	}

	/* 4枚目（縦長）：320×580（2段スパン）、上下1:1 */
	.reasons .reasons__grid > article.photo-card{
		grid-column: 3;
		grid-row: 1 / span 2;
		padding: 0;
		display: grid;
		grid-template-rows: 1fr 1fr; /* 1:1 */
	}

	/* 4枚目：上写真（reason-photo2.png）を枠内に収める（暴れ防止） */
	.reasons .reasons__grid > article.photo-card > img{
		width: 100%;
        height: 291px;		
		display: block;
		object-fit: cover;
		object-position: center;
	}

	/* 4枚目：下本文 */
	.reasons .reasons__grid > article.photo-card .photo-card__body{
		height: 100%;
		box-sizing: border-box;
		padding: 22px 24px;
		display: grid;
		align-content: center;
		justify-items: center;
		text-align: center;
	}
}
/* =========================
	 Reasons / SP(<=768) patch
 ========================= */
@media (max-width: 1049px){

	/* 1) 上2枚を2カラムにする（理想：1行2枚） */
	.reasons .reasons__grid{
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 15px; /* 既存gap(24)を維持して方向性を変えない */
	}

	/* 2) 3枚目は2カラムをまたいで横長（理想：幅いっぱい） */
	.reasons .reasons__grid > article.feature-card:nth-of-type(3){
		grid-column: 1 / -1;
		display: grid;
		grid-template-columns: 1fr 1fr; /* SP理想の「左イラスト / 右本文」を維持 */
		align-items: stretch;
	}

	/* 3枚目：左イラストは枠内フィット（切らない） */
	.reasons .reasons__grid > article.feature-card:nth-of-type(3) > img{
		width: 100%;
		height: 100%;
		object-fit: contain;
		display: block;
	}

	/* 3枚目：右本文（既存の余白は方向性維持で“数値だけ”調整したい場合ここで） */
	.reasons .reasons__grid > article.feature-card:nth-of-type(3) .photo-card__body{
		padding: 0 15px; /* 既存値を維持（必要ならここをデザイン数値で詰める） */
		display: grid;
		align-content: center;
		justify-items: center;
		text-align: center;
	}

	/* 3) 4枚目は2カラムをまたいで、内部を左右2分割（理想：左テキスト / 右写真） */
	.reasons .reasons__grid > article.photo-card{
		grid-column: 1 / -1;
		display: grid;
		grid-template-columns: 1fr 1fr;
		grid-template-rows: auto; /* 縦2分割を解除 */
	}

	/* 4枚目：本文を左カラムへ */
	.reasons .reasons__grid > article.photo-card .photo-card__body{
		grid-column: 1;
		grid-row: 1;
		display: grid;
		align-content: center;
		padding: 15px; /* 既存値維持 */
	}

	/* 4枚目：写真を右カラムへ（HTML順を変えずに配置だけ変える） */
	.reasons .reasons__grid > article.photo-card > img{
		grid-column: 2;
		grid-row: 1;
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center;
		display: block;
	}
}
/* =========================
	 Access
 ========================= */
.access__card{
	display:grid;
	gap: var(--s-4);
}
.access-row{
	display:grid;
	grid-template-columns: 84px 1fr;
	gap: 10px;
	padding-block: 8px;
	border-bottom: 1px solid rgba(0,0,0,.06);
}
.access-map-link{
	display: inline-block;
	margin-top: 6px;
	font-weight: 600;
	color: var(--c-green-text);
	text-decoration: underline;
}

.access-map-link:hover{
	opacity: 0.7;
}
@media (max-width: 768px){
	.access-row{
		grid-template-columns: 110px 1fr;
	}
	.access__card{
		gap: 15px;
	}
}
.access-row:last-child{ border-bottom:0; }
.access-row__label{ font-weight: 800; color: var(--c-green-text); }
.access__info{
	border-top: 2px solid #d9dfe3;
	border-bottom: 2px solid #d9dfe3;
}

@media (min-width: 769px){
	.access__card{
		grid-template-columns: 1fr 1fr; 
		align-items:start; 
		background: var(--c-white);
		gap: 20px;												/* 左右間の余白（理想寄せ） */
		align-items: start;
	}
	.access__card > img{
		width: 100%;
		max-width: 520px;
		height: auto;
		display: block;
	}
	.access-row{
		grid-template-columns: 110px 1fr;
		column-gap: 24px;
		padding-block: 14px;
		border-bottom: 2px solid #d9dfe3;
	}
	.access-row__label{
		color: var(--c-green-text);
		font-weight: 700;
		font-size: 16px;
	}
	.access-row__value{ font-size: 16px; }
}
@media (max-width: 768px){
	.access__card{
		background: var(--c-white);
		padding: 15px;
	}
}
.access-row a.url-link{
	display: inline-block;
	font-weight: 600;
	color: var(--c-green-text);
	text-decoration: underline;
}
/* =========================
	 Footer（1カラム中央）
 ========================= */
.footer{
	padding-block: 50px;
	padding-bottom: 20px;
	border-top: 0;
}
.footer__inner{
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 18px;
}
.footer__brand .brand{
	display: inline-flex;
	align-items: center;
}
.footer__brand img{
	display: block;
	width: 490px;
	max-width: 100%;
	height: auto;
}
.footer__copy{
	text-align: center;
	font-size: 13px;
	line-height: 1.6;
	color: #666;
}
@media (max-width: 1024px){
	.footer__brand img{ width: 520px; }
}
@media (max-width: 768px){
	.footer {
	    padding-bottom: 100px;
	}	
	.footer__brand img{ width: min(560px, 100%); }
}

/* =========================
	 PCまとめ（※reasons/accessは触らない）
 ========================= */
@media (min-width: 769px){
	.hero__inner{ grid-template-columns: 0.9fr 1.1fr; column-gap: 60px; }
	.problems__grid{ grid-template-columns: repeat(3, 1fr); }
	.support__intro{ grid-template-columns: 0.8fr 1.2fr; }
	.steps{ grid-template-columns: 1fr 1fr; align-items:center; background: var(--c-white); }
}
@media (max-width: 768px){
	.steps{	align-items:center; background: var(--c-white); gap: 20px; padding: 15px;}
}
/* 769px以上のとき */
@media screen and (min-width: 769px) {
	.sp-only {
		display: none;
	}
}

/* 768px以下のとき */
@media screen and (max-width: 768px) {
	.pc-only {
		display: none;
	}
}

/* =========================
   Floating CTA (SP only)
 ========================= */
@media (max-width: 768px){

	/* ボタンに本文が隠れないよう下余白を確保（数値ベース） */
	body{
		padding-bottom: calc(0px + env(safe-area-inset-bottom));
	}
	
	.floating-cta{
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 9999;
	
		/* 余白（デザインに合わせて数値管理） */
		padding: 0;
	
		/* 下からスライドイン */
		transform: translateY(120%);
		opacity: 0;
		animation: floatingCtaIn 520ms ease-out 120ms forwards;
	}
	
	.floating-cta__btn{
		width: 100%;
		justify-content: center;
		border-radius: 0px; /* 既存btn--blockと同系統の丸み */
	}
	
	@keyframes floatingCtaIn{
		from{ transform: translateY(120%); opacity: 0; }
		to  { transform: translateY(0);    opacity: 1; }
	}
	
	/* 端末設定で「視差効果を減らす」場合はアニメ無し */
	@media (prefers-reduced-motion: reduce){
		.floating-cta{
			animation: none;
			transform: translateY(0);
			opacity: 1;
		}
	}
}