@charset "utf-8";
/* CSS Document */

    :root{
      --bg:#ffffff;               /* ベース */
      --ink:#0f172a;              /* 本文色 */
      --muted:#607086;            /* 補助テキスト */
      --brand:#157f77;            /* メイン（清潔感のあるグリーン） */
      --brand-ink:#0b4a46;        /* 見出し用濃色 */
      --cta:#f26539;              /* アクセント（CTA） */
      --cta-ink:#fff;             /* CTA文字色 */
      --surface:#f6faf9;          /* セクション背景 */
      --card:#ffffff;             /* カード */
      --border:#e5edf0;           /* 罫線 */
      --shadow:0 10px 30px rgba(16,24,40,.06);
      --radius:16px;
      --radius-lg:22px;
      --maxw:1200px;
    }

    *{
		box-sizing:border-box
}
/* 固定ヘッダーの高さに合わせる */
:target {
  scroll-margin-top: 80px; /* ヘッダーの高さに合わせて調整 */
}
@keyframes draw {
  to {
    stroke-dashoffset: 0;
 }
    }

@keyframes show {
  0% {
    opacity: 0.15;
 }
  50% {
    opacity: 0.2;
 }
  100% {
    opacity: 0.15;
 }
    }
h2 {
  padding: 1rem 3rem;
  -webkit-transform: skew(-15deg);
  transform: skew(-15deg);
  color: #fff;
  background-image: -webkit-gradient(linear, left top, right top, from(#027), to(#8aa0d5));
  background-image: -webkit-linear-gradient(left, #027 0%, #8aa0d5 100%);
  background-image: linear-gradient(to right, #027 0%, #8aa0d5 100%);
}

    html,body{
		background:var(--bg);
		color:var(--ink);
		font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Inter,"Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic UI","Yu Gothic",Meiryo,sans-serif;
		line-height:1.6;
		scroll-behavior:smooth; 
		margin:0px;
}

    a{
		color:inherit
}
    img{
		max-width:100%;
		height:auto;
		display:block
}
    .container{
		max-width:var(--maxw);
		padding:0 20px;
		margin:auto
}
    .btn{
		display:inline-flex;
		align-items:center;
		gap:.6rem;
		background:var(--cta);
		color:var(--cta-ink);
		border:none;
		border-radius:999px;
		padding:20px 30px;
		font-weight:
			700;text-decoration:none;
		box-shadow:var(--shadow);
		margin: 0 auto;
		transition:0.5s;
}
    .btn:hover{
		opacity:.95;
		transform:translateY(-3px);
		  transform: scale(1.2); 
}

    /* ヘッダー */
    header{
		position:sticky;
		top:0;
		background:rgba(255,255,255,.8);
		backdrop-filter:blur(8px);
		border-bottom:1px solid var(--border);
		z-index:50
}
    .nav{
		display:flex;
		align-items:center;
		justify-content:space-between;
		height:60px;
}
    .logo{
		display:flex;
		gap:.6rem;
		align-items:center;
		font-weight:800;
		color:var(--brand-ink)
}

#logo img{
	max-width: 200px;
}
    .nav a.cta{
		background:var(--cta);
		color:#fff;
		border-radius:999px;
		padding:10px;
		font-weight:700;
		text-decoration:none
}
    /* アニメーション */
    .fade-in { 
		opacity:0; 
		transform:translateY(50px); 
		transition: all 1s ease-out; 
}
    .fade-in.visible { 
		opacity:1; 
		transform:translateY(0); 
}

/* Lightbox */
.lightbox {
  display: none;
  position: fixed;
  z-index: 1000;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,0.8);
  justify-content: center;
  align-items: center;
  animation: fadeIn 0.3s ease;
}

.lightbox-content {
  max-width: 90%;
  max-height: 80%;
  border-radius: 10px;
  box-shadow: 0 0 20px rgba(255,255,255,0.3);
}

.close {
  position: absolute;
  top: 20px;
  right: 35px;
  color: #fff;
  font-size: 40px;
  font-weight: bold;
  cursor: pointer;
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

    /* ヒーロー */
    .hero{
		position:relative;
		overflow:hidden;
		background:linear-gradient(180deg,#f6fbfb 0%,#ffffff 100%);
}
    .hero-wrap{
		display:grid;
		grid-template-columns:1.05fr .95fr;
		align-items:center;
		gap:28px;
}

.hero-figure img {
  animation: zoomIn 10s ease-in-out infinite alternate;
}

.hero-figure {
  position: relative;
  overflow: hidden;
  min-height: 400px; /* 👈 高さを確保 */
}

.hero-figure .hero-slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; /* 👈 親要素に合わせて表示 */
  object-fit: cover; /* 👈 アスペクト比を保って全体表示 */
  opacity: 0;
  transition: opacity 1.5s ease-in-out;
}

.hero-figure .hero-slide.active {
  opacity: 1;
  z-index: 1;
}

@keyframes zoomIn {
  from { transform: scale(1); }
  to { transform: scale(1.1); }
}

    @media (max-width: 900px){
		
		.hero-wrap{
			grid-template-columns:1fr;
			padding:40px 0
}
}

    .hero h1{
		font-size:clamp(28px,4vw,44px);
		line-height:1.25;
		margin:0 0 12px;
		color:var(--brand-ink)
}
    .hero p.lead{
		color:var(--muted);
		font-size:clamp(15px,2.2vw,18px);
		margin:0 0 22px;
		font-weight: bold;
		
}
    .hero-figure{
		position:relative;
		overflow: hidden;
}
/* 常に上に表示されるヒーローカード */
.hero-card {
  position: absolute;
  left: 6%;
  bottom: 6%;
  background: rgba(255,255,255,0.9);
  backdrop-filter: blur(6px);
  padding: 14px 16px;
  border-radius: 14px;
  box-shadow: var(--shadow);
  display: flex;
  gap: 12px;
  align-items: center;
  z-index: 10; /* 👈 スライドより上に固定 */
}
    .chip{
		display:inline-block;
		background:#e8f6f4;
		color:#0b4a46;
		padding:6px 10px;
		border-radius:999px;
		font-weight:700;
		font-size:12px;
		letter-spacing:.02em
}

    /* 特長 */
    .features{
		background:var(--surface);
		padding:56px 0
}
    .section-title{
		font-size:clamp(22px,3vw,32px);
		margin:0 0 18px;
}
    .grid-3{
		display:grid;
		grid-template-columns:repeat(3,1fr);
		gap:18px
}
figure{
	margin-left: 10px;
	margin-right: 10px;
}

    @media (max-width: 900px){
		
		.grid-3{
			grid-template-columns:1fr
}
}
    .card{
		background:var(--card);
		border:1px solid var(--border);
		border-radius:var(--radius);
		padding:22px;
		box-shadow:var(--shadow)
}

.card:hover {
  transform: translateY(-5px) scale(1.02);
  transition: transform 0.4s ease, box-shadow 0.4s ease;
  box-shadow: 0 12px 30px rgba(0,0,0,0.1);
}


    .card h3{
		margin:10px 0 6px;
		font-size:20px
}
    .card p{
		margin:0;
		color:var(--muted)
}

    .icon{
		width:28px;
		height:28px
}

    /* 実績 */
    .works{
		padding:56px 0
}
    .grid-4{
		display:grid;
		grid-template-columns:repeat(4,1fr);
		gap:16px
}

    @media (max-width: 1100px){
		
		.grid-4{
			grid-template-columns:repeat(2,1fr);
		}
}
@media (min-width: 561px){
	.sp{
		display: none;
	}
}

    @media (max-width: 560px){
		.pc{
			display: none;
		}
		.grid-4{
			grid-template-columns:1fr
}
		
		.container {
			padding:0 10px;
		}
		
    .logo{
		gap:.3rem;
}
		
		
    .logo-badge{
		min-width:40px;
		height:40px;
		border-radius:8px;
		background-image: url("../img/logi_new_b.png");
		background-size:cover;
}
}
    .work-card{
		background:var(--card);
		border:1px solid var(--border);
		border-radius:var(--radius);
		overflow:hidden;
		box-shadow:var(--shadow);
		transition: 1s;
		position: relative;
}
    .work-card:hover{
		transform:translateY(-3px);
		  transform: scale(1.1); 
}

   @media (min-width: 561px){
.work-card figcaption {
  position: absolute;
  bottom: -100%;
  left: 0;
  right: 0;
  background: rgba(0,0,0,0.6);
  color: #fff;
  padding: 10px;
  text-align: center;
  transition: bottom 0.4s ease;
	font-weight: 600;

}

.work-card:hover figcaption {
  bottom: 0;
}
}
   @media (max-width: 560px){
	   #logo img{
	max-width: 100px;
}
	   .work-card figcaption{
		   text-align: center;
		   font-weight: 600;
	   }
	   
}



    /* フロー */
    .flow{
		background:var(--surface);
		padding:56px 0
}
    .steps{
		display:grid;
		grid-template-columns:repeat(5,1fr);
		gap:8px;align-items:start
}

    @media (max-width: 900px){
		.steps{
			grid-template-columns:repeat(3,1fr)
}
}

    @media (max-width: 560px){
		.steps{
			grid-template-columns:repeat(2,1fr)
}
}
    .step{
		background:var(--card);
		border:1px solid var(--border);
		border-radius:14px;
		text-align:center;
		padding:18px;
		box-shadow:var(--shadow);
		transition: 0.5s;
}
    .step:hover{
		 background: #8DDDFF;
}

.step { opacity: 0; transform: translateY(20px); transition: all 0.6s ease; }
.step.visible { opacity: 1; transform: translateY(0); }

    .step b{
		display:block;
		margin-top:8px
}

    /* FAQ */
    .faq{
		padding:56px 0
}
    details{
		background:var(--card);
		border:1px solid var(--border);
		border-radius:12px;
		padding:14px 16px;
		overflow: hidden;
		transition: max-height 0.4s ease;
		max-height: 3rem; /* summary部分の高さくらい */
}
    details+details{
		margin-top:12px
}
    summary{
		font-weight:700;
		cursor:pointer
}
    details[open]{
		box-shadow:var(--shadow);
		  max-height: 500px;
}


    /* CTA帯 */
    .cta-band{
		background:linear-gradient(135deg,#e9fbf7,#f7fffe);
		border-top:1px solid var(--border);
		border-bottom:1px solid var(--border);
		padding:38px 0
}
    .cta-wrap{
		display:flex;gap:18px;
		align-items:center;
		justify-content:space-between
}
    @media (max-width: 760px){
		.cta-wrap{
			flex-direction:column;
			align-items:flex-start
}
}

    /* フッター */
    footer{
		background:#0b3a38;
		color:#e8f6f4;
		padding:36px 0;
		margin-top:24px
}
    footer a{
		color:#d2fffa
}
    .footer-grid{
		display:grid;
		grid-template-columns:2fr 1fr;
		gap:24px
}
    @media (max-width: 900px){
		.footer-grid{
			grid-template-columns:1fr
}
}
    .badge{
		display:inline-flex;
		gap:.5rem;
		align-items:center;
		background:#0d4a47;
		border:1px solid rgba(255,255,255,.15);
		padding:8px 12px;
		border-radius:999px
}
/* =========================
   お問い合わせフォーム
========================= */
.contact-form {
    padding: 4rem 0;
    background-color: #f9f9f9;
}

.contact-form .container {
    max-width: 800px;
    margin: 0 auto;
}

.contact-form h2.section-title {
    text-align: center;
    margin-bottom: 1.5rem;
    font-size: 2rem;
    color: #fff;
}

.contact-form p {
    text-align: center;
    margin-bottom: 2rem;
    color: var(--muted);
}

/* フォーム全体 */
.contact-form form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    background: #fff;
    padding: 2rem;
    border-radius: 12px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

/* ラベル */
.contact-form label {
    font-weight: 700;
    margin-bottom: 0.3rem;
    display: block;
    color: #333;
}

/* 入力・textarea・select */
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form input[type="file"],
.contact-form select,
.contact-form textarea {
    width: 100%;
    padding: 0.75rem 1rem;
    border: 1px solid #ccc;
    border-radius: 8px;
    font-size: 1rem;
    font-family: 'Noto Sans JP', sans-serif;
    transition: border-color 0.3s;
}

.contact-form input:focus,
.contact-form textarea:focus,
.contact-form select:focus {
    outline: none;
    border-color: #007BFF;
}

/* textarea */
.contact-form textarea {
    resize: vertical;
}

/* チェックボックス */
.contact-form input[type="checkbox"] {
    margin-right: 0.5rem;
}

/* 送信ボタン */
.contact-form button.btn {
    background-color: #007BFF;
    color: #fff;
    font-weight: 700;
    padding: 0.85rem 1.5rem;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    font-size: 1.1rem;
    transition: background-color 0.3s;
    align-self: flex-start;
}

.contact-form button.btn:hover {
    background-color: #0056b3;
}

/* 送信完了メッセージ */
#contact-success {
    text-align: center;
    font-size: 1.1rem;
    font-weight: 700;
    color: #28a745;
    padding: 1rem;
    border: 1px solid #28a745;
    border-radius: 8px;
    background-color: #e6f4ea;
    animation: fadeIn 0.8s ease-in-out;
}

/* フェードインアニメーション */
@keyframes fadeIn {
    from {opacity: 0; transform: translateY(10px);}
    to {opacity: 1; transform: translateY(0);}
}

/* ====== スマホ対応 ====== */
@media screen and (max-width: 768px) {
    .contact-form form {
        padding: 1.5rem;
    }

    .contact-form h2.section-title {
        font-size: 1.6rem;
    }

    .contact-form button.btn {
        width: 100%;
        text-align: center;
    }
}


