@charset "UTF-8";
@import url("policy.css?v=20260729-desktop-header-balance-v2");

/* 園体験 */
.taiken-page { background: #f8f6f0; }
.taiken-page .global-nav__link[aria-current="page"] { color: var(--green-dark); }

.taiken-intro__scene { height: 320px; }
.taiken-intro__bear { position: absolute; z-index: 3; left: 15px; bottom: 30px; width: 138px; }
.taiken-intro__butterfly { position: absolute; z-index: 4; right: 42px; top: 16px; width: 68px; transform: rotate(8deg); }

.taiken-inner { position: relative; z-index: 2; width: min(1200px, calc(100% - 80px)); margin: 0 auto; }
.taiken-heading { position: relative; margin-bottom: 50px; text-align: center; font-family: var(--font-round); }
.taiken-heading__en { margin: 0 0 12px; color: var(--green); font-size: 14px; font-weight: 700; letter-spacing: .22em; }
.taiken-heading h2 { margin: 0; color: #34483c; font-size: 38px; font-weight: 700; letter-spacing: .06em; }
.taiken-heading__onpu { position: absolute; left: calc(50% + 285px); top: 60px; width: 40px; height: auto; }
.taiken-heading__line { display: block; width: 88px; height: 7px; margin: 25px auto 24px; border-radius: 8px; background: linear-gradient(90deg,#ffd638 0 50%,#72c66b 50%); }
.taiken-heading > p:last-child { margin: 0; color: #59645b; font-size: 15.5px; font-weight: 500; line-height: 2; }
.taiken-bg { position: absolute; z-index: 1; max-width: none; pointer-events: none; }
.taiken-bg--ways-triangles { left: -38px; top: 68px; width: 300px; opacity: .32; }
.taiken-bg--ways-dots { left: -58px; bottom: 45px; width: 245px; opacity: .14; }
.taiken-bg--ways-right-pattern { right: -55px; top: 135px; width: 280px; opacity: .22; }
.taiken-bg--steps-blocks { right: -72px; bottom: 10px; width: 330px; opacity: .62; }
.taiken-bg--steps-triangles { left: 9%; top: 145px; width: 270px; opacity: .65; }
.taiken-bg--contact-triangles { left: -38px; bottom: -80px; width: 245px; opacity: .28; }
.taiken-deco { position: absolute; z-index: 2; pointer-events: none; }
.taiken-deco--balloon { z-index: 4; right: 12%; top: 300px; width: 68px; opacity: .95; }
.taiken-deco--ways-bird { left: auto; right: calc(50% + clamp(280px, 18vw, 360px) - 20px); top: 82px; width: 168px; transform: rotate(-7deg); }
.taiken-deco--ways-flower { right: 10%; bottom: 50px; width: 38px; }
.taiken-deco--giraffe { left: 8%; bottom: 24px; width: 118px; }
.taiken-deco--steps-butterfly { right: calc(23% + 80px); top: 105px; width: 82px; transform: rotate(9deg); }
.taiken-deco--steps-squirrel { right: 9%; bottom: 28px; width: 104px; }

.taiken-ways { position: relative; overflow: hidden; padding: 95px 0 110px; background: #fff; }
.taiken-ways .policy-section-wave,
.taiken-steps .policy-section-wave,
.taiken-contact .policy-section-wave { position: absolute; top: -1px; left: 0; z-index: 1; width: 100%; height: 27px; }
.taiken-cards { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 34px; }
.taiken-card { position: relative; display: grid; overflow: hidden; grid-template-rows: 310px 1fr; border-radius: 30px; background: #fff; color: #34483c; box-shadow: 0 12px 30px rgba(67,74,54,.10); transition: transform .25s ease,box-shadow .25s ease; }
.taiken-card:hover { transform: translateY(-5px); box-shadow: 0 18px 38px rgba(67,74,54,.16); }
.taiken-card__photo { display: block; overflow: hidden; }
.taiken-card__photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.taiken-card:hover .taiken-card__photo img { transform: scale(1.035); }
.taiken-card__body { position: relative; display: flex; align-items: flex-start; flex-direction: column; min-height: 355px; padding: 38px 42px 36px; font-family: var(--font-round); }
.taiken-card__number { position: absolute; right: 35px; top: 22px; color: #edf5e2; font-size: 70px; font-weight: 900; line-height: 1; }
.taiken-card__label { position: relative; margin-bottom: 14px; padding: 5px 15px; border-radius: 20px; background: #e8f6dd; color: #59a755; font-size: 13px; font-weight: 700; }
.taiken-card strong { position: relative; display: block; margin-bottom: 20px; color: #34483c; font-size: 27px; line-height: 1.45; letter-spacing: .05em; }
.taiken-card strong small { font-size: .72em; }
.taiken-card__text { color: #5c665e; font-size: 15px; font-weight: 500; line-height: 1.9; }
.taiken-card__info { margin-top: 18px; color: #58b253; font-size: 15px; font-weight: 700; }
.taiken-card__link { display: flex; align-items: center; justify-content: space-between; width: 100%; margin-top: auto; padding-top: 25px; border-top: 2px dotted #d4d3c8; color: #4f9e4b; font-size: 15px; font-weight: 700; }
.taiken-card__link b { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: #72c66b; color: #fff; }

.taiken-steps { position: relative; overflow: hidden; padding: 100px 0 120px; background: #eef7dc; }
.taiken-step-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; margin: 0; padding: 0; list-style: none; counter-reset: none; }
.taiken-step-list li { position: relative; display: flex; align-items: center; flex-direction: column; min-height: 455px; padding: 20px 30px 32px; border-radius: 26px; background: #fff; text-align: center; font-family: var(--font-round); box-shadow: 0 10px 25px rgba(75,95,53,.08); }
.taiken-step-list li:not(:last-child)::after { content: ""; position: absolute; z-index: 3; right: -36px; top: 50%; width: 46px; height: 46px; border-radius: 50%; background: #72c66b url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='14' viewBox='0 0 20 14'%3E%3Cpath d='M2 7h15M12 2l5 5-5 5' fill='none' stroke='%23fff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/20px 14px no-repeat; transform: translateY(-50%); }
.taiken-step__no { position: absolute; z-index: 2; left: 50%; top: -27px; display: flex; align-items: center; justify-content: center; width: 69px; height: 82px; padding-bottom: 15px; flex-direction: column; background: url("../images/common/bg_text1.svg") center/contain no-repeat; color: #34483c; font-size: 10px; font-weight: 700; line-height: 1.05; letter-spacing: .08em; transform: translateX(-50%); }
.taiken-step__no b { color: #34483c; font-size: 24px; line-height: 1; }
.taiken-step-list img { width: 100%; height: 175px; margin: 18px auto 24px; border-radius: 17px; object-fit: cover; }
.taiken-step-list h3 { margin: 0 0 14px; color: #34483c; font-size: 23px; letter-spacing: .05em; }
.taiken-step-list p { margin: 0; color: #5c665e; font-size: 14px; font-weight: 500; line-height: 1.9; }
.taiken-step-list a { display: inline-flex; align-items: center; justify-content: center; min-width: 205px; min-height: 48px; margin-top: 20px; padding: 8px 22px; border: 2px solid #72c66b; border-radius: 26px; background: #fff; color: #57a753; font-size: 13px; font-weight: 700; text-decoration: none; box-shadow: 0 5px 12px rgba(73,145,66,.08); transition: color .22s ease,background-color .22s ease,transform .22s ease,box-shadow .22s ease; }
.taiken-step-list a:hover,
.taiken-step-list a:focus-visible { background: #72c66b; color: #fff; transform: translateY(-3px); box-shadow: 0 9px 18px rgba(73,145,66,.20); }

.taiken-contact { position: relative; overflow: hidden; padding: 75px 0 55px; background: #fff9e3; }
.taiken-page .fcontact__wave { top: -1px; height: 28px; }
.taiken-contact__inner { position: relative; z-index: 2; display: grid; align-items: center; width: min(1160px,calc(100% - 80px)); margin: 0 auto; grid-template-columns: 150px 1fr 350px; gap: 40px; font-family: var(--font-round); }
.taiken-contact__inner > img { width: 135px; }
.taiken-contact__inner p { margin: 0 0 10px; color: #62b35c; font-size: 15px; font-weight: 700; letter-spacing: .08em; }
.taiken-contact__inner h2 { margin: 0; color: #34483c; font-size: 26px; line-height: 1.65; letter-spacing: .04em; }
.taiken-contact__buttons { display: grid; gap: 10px; }
.taiken-contact__buttons a { display: flex; align-items: center; justify-content: space-between; min-height: 56px; padding: 0 20px 0 24px; border: 2px solid #71c171; border-radius: 30px; background: #fff; color: #579f50; font-size: 14px; font-weight: 700; }
.taiken-contact__buttons a:last-child { background: #71c171; color: #fff; }
.taiken-contact__buttons span { font-size: 18px; }

@media (max-width: 1024px) {
  .taiken-page .fcontact__wave { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='26' viewBox='0 0 240 26' preserveAspectRatio='none'%3E%3Cpath fill='%23fff9e3' d='M0,0 H240 V22 C220,18 200,18 180,22 C160,26 140,26 120,22 C100,18 80,18 60,22 C40,26 20,26 0,22 Z'/%3E%3C/svg%3E"); }
  .taiken-card { grid-template-rows: 250px 1fr; }
  .taiken-card__body { padding: 32px 30px; }
  .taiken-deco { display: none; }
  .taiken-bg--ways-dots { left: -80px; }
  .taiken-bg--ways-triangles { left: -100px; width: 260px; }
  .taiken-bg--ways-right-pattern { right: -100px; }
  .taiken-bg--steps-triangles { left: 5%; width: 235px; }
  .taiken-contact__inner { grid-template-columns: 110px 1fr; }
  .taiken-contact__buttons { grid-column: 1/-1; width: min(700px,100%); justify-self: center; grid-template-columns: repeat(3,1fr); }
}

@media (max-width: 760px) {
  .taiken-page { padding-top: 84px; }
  .taiken-intro { min-height: auto; padding-bottom: 8px; }
  .taiken-intro .policy-intro__content { display: block; }
  .taiken-intro .policy-intro__scene { display: none; }
  .taiken-intro__bear { left: 18%; width: 100px; }
  .taiken-intro .policy-intro__tree--1 { right: 22%; bottom: 44px; width: 95px; }
  .taiken-intro .policy-intro__tree--2 { right: 8%; bottom: 40px; width: 65px; }
  .taiken-intro__butterfly { right: 20%; width: 48px; }
  .taiken-inner { width: calc(100% - 40px); }
  .taiken-heading { margin-bottom: 28px; }
  .taiken-heading h2 { font-size: 23px; line-height: 1.55; }
  .taiken-heading__onpu { display: none; }
  .taiken-heading > p:last-child {
    font-size: 14px;
    text-align: left;
  }
  .taiken-heading > p:last-child br { display: none; }
  .taiken-bg--ways-dots { left: -95px; bottom: 30px; width: 190px; }
  .taiken-bg--ways-triangles { left: -105px; top: 55px; width: 210px; opacity: .24; }
  .taiken-bg--ways-right-pattern { right: -105px; top: 190px; width: 200px; }
  .taiken-bg--steps-blocks { right: -150px; width: 260px; opacity: .45; }
  .taiken-bg--steps-triangles { display: none; }
  .taiken-bg--contact-triangles { left: -95px; width: 190px; }
  .taiken-cards,.taiken-step-list { grid-template-columns: 1fr; }
  .taiken-card { grid-template-rows: 180px 1fr; }
  .taiken-card__body { min-height: 260px; padding: 24px 22px; }
  .taiken-card strong { font-size: 23px; }
  .taiken-ways { padding-top: 50px; padding-bottom: 32px; }
  .taiken-steps { padding-top: 45px; padding-bottom: 55px; }
  .taiken-step-list { gap: 38px; }
  .taiken-step-list li {
    min-height: 0;
    padding: 16px 18px 22px;
    border-radius: 22px;
  }
  .taiken-step-list li:not(:last-child)::after {
    display: none;
  }
  .taiken-step__no {
    top: -23px;
    width: 58px;
    height: 69px;
    padding-bottom: 12px;
    font-size: 8px;
  }
  .taiken-step__no b { font-size: 20px; }
  .taiken-step-list img {
    height: 135px;
    margin: 14px auto 18px;
    border-radius: 14px;
  }
  .taiken-step-list h3 { margin-bottom: 9px; font-size: 20px; }
  .taiken-step-list p { font-size: 13px; line-height: 1.75; }
  .taiken-step-list a {
    min-width: 185px;
    min-height: 42px;
    margin-top: 14px;
    padding: 6px 18px;
    font-size: 12px;
  }
  .taiken-contact { padding: 45px 0 40px; }
  .taiken-contact__inner { display: flex; width: calc(100% - 40px); flex-direction: column; gap: 25px; text-align: center; }
  .taiken-contact__inner > img { width: 105px; }
  .taiken-contact__inner h2 { font-size: 22px; }
  .taiken-contact__buttons { display: grid; width: 100%; grid-template-columns: 1fr; }
}
