@media screen and (min-width: 737px) {
  #sponsorship_ito {
    width: calc(100vw - 0.7%);
    margin: 0 calc(50% - 50vw);
  }
}
@media screen and (max-width: 736px) {
  #sponsorship_ito {
    width: 100vw;
    margin: 0 calc(50% - 50vw);
    margin-top: -10px;
  }
}
:root {
  --primary-green: #009e41;
  --primary-blue: #4daee1;
  --text-color: #333;
  --bg-light: #f9f9f9;
  --max-width: 1200px;
  --breakpoint: 736px;
  --accent-gradient: linear-gradient(90deg, #009e41, #018bd4);
}
#sponsorship_ito img {
  width: 100%;
  height: auto;
}
/* 共通パーツ */
#sponsorship_ito .container {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0px 20px;
}
#sponsorship_ito section {
  width: 1100px;
  margin: 0 auto 4rem;
}
#sponsorship_ito .main-title {
  text-align: center;
  font-size: clamp(1.2rem, 0.566rem + 1.38vw, 1.6rem);
  font-weight: 600;
  margin-bottom: 20px;
}
#sponsorship_ito .sub-title {
  position: relative;
  font-size: clamp(1.4rem, 0.766rem + 1.38vw, 1.8rem);
  padding-left: 45px; /* 旗の幅に合わせた余白 */
  margin-bottom: 30px;
  line-height: 1.4;
  display: flex;
  align-items: center;
}
/* ゴルフのピン（棒） */
#sponsorship_ito .sub-title::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 4px;
  height: 45px;
  background: #018bd4; /* ピンの色 */
  border-radius: 2px;
}
/* ゴルフのフラッグ（三角形） */
#sponsorship_ito .sub-title::after {
  content: "";
  position: absolute;
  left: 3px; /* ピンのすぐ右 */
  top: 0.1px;
  width: 30px;
  height: 28px; /* 旗の高さ */
  background-image: linear-gradient(-90deg, #009e41, #018bd4);
  ; /* 旗の色 */
  /* 三角形に切り抜き */
  clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
}
#sponsorship_ito .sub-title > span {
  font-size: clamp(1rem, 0.207rem + 1.72vw, 1.5rem);
  font-weight: normal;
  font-style: italic;
  margin-left: .5rem;
  vertical-align: middle;
}
#sponsorship_ito .sub-title > span::before, .sub-title > span::after {
  content: "―";
}
/* ① KVセクション（構造の修正） */
#sponsorship_ito .kv {
  width: 100%;
  overflow: hidden;
  margin-bottom: 35px;
  background-color: #fff;
  /* 真横のストライプ背景の設定 */
  background-image: repeating-linear-gradient(180deg, var(--primary-blue) 0, var(--primary-blue) 1px, /* 水色ライン 1px */ #fff 1px, #fff 7px /* 白色 7px（計7px周期） */
    );
}
#sponsorship_ito .kv-inner {
  position: relative;
  width: 100%; /* 1200px固定から100%に変更し、最大幅はimgで制御 */
  max-width: 1200px;
  margin: 30px auto 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
#sponsorship_ito .kv-text {
  position: absolute;
  top: 70%;
  left: 8%;
  font-size: 2.5rem;
  color: #333;
  line-height: 1.6;
  font-weight: 700;
  z-index: 10;
  /* アニメーション：左からマスク解除 */
  overflow: hidden;
  white-space: nowrap; /* テキストが折り返さないように */
  animation: maskReveal 2.5s ease-out 0.8s forwards; /* 画像の後に開始 */
  width: 0; /* 最初は幅0 */
  text-shadow: 5px 5px 5px #fff, -5px -5px 5px #fff, -5px 5px 5px #fff, 5px -5px 5px #fff, 5px 0px 5px #fff, -5px -0px 5px #fff, 0px 5px 5px #fff, 0px -5px 5px #fff;
}
@keyframes maskReveal {
  0% {
    width: 0;
  }
  100% {
    width: 100%; /* 全表示（親要素の範囲内） */
  }
}
/* ② 人物画像： */
#sponsorship_ito .kv-image {
  position: absolute;
  width: 100%;
  z-index: 5; /* ストライプより前面 */
  display: flex;
  align-items: flex-end;
}
#sponsorship_ito .kv-mask {
  position: relative;
  width: 100%;
  z-index: 4;
  display: flex;
  align-items: flex-end;
}
#sponsorship_ito .kv-image img {
  display: block;
  width: 100%;
  height: auto;
  opacity: 0;
  transform-origin: center bottom;
  animation: kvZoomBottom 3.5s ease-out forwards;
  filter: drop-shadow(0 0 10px rgba(255, 255, 255, 0.9)) drop-shadow(0 0 10px rgba(255, 255, 255, 0.9)) drop-shadow(0 0 30px rgba(255, 255, 255, 0.5)) drop-shadow(0 0 50px rgba(255, 255, 255, 0.5));
}
#sponsorship_ito .kv-mask img {
  display: block;
  width: 100%;
  height: auto;
  opacity: 0;
  transform-origin: center bottom;
  animation: kvZoomBottom02 3.5s ease-out forwards;
  filter: drop-shadow(0 0 10px rgba(255, 255, 255, 0.9)) drop-shadow(0 0 10px rgba(255, 255, 255, 0.9)) drop-shadow(0 0 30px rgba(255, 255, 255, 0.5)) drop-shadow(0 0 50px rgba(255, 255, 255, 0.5));
}
@keyframes kvZoomBottom {
  0% {
    opacity: 0;
    transform: scale(0.8); /* 8のサイズから開始 */
  }
  100% {
    opacity: 1;
    transform: scale(1.0); /* 10のサイズへ（下端固定で上へ伸びる動き） */
  }
}
@keyframes kvZoomBottom02 {
  0% {
    opacity: 1;
    transform: scale(0.8); /* 8のサイズから開始 */
  }
  100% {
    opacity: 1;
    transform: scale(1.0); /* 10のサイズへ（下端固定で上へ伸びる動き） */
  }
}
@media (max-width: 736px) {
  /* ① 親要素：右寄せに設定 */
  #sponsorship_ito .kv-image {
    position: absolute;
    width: 100%;
    overflow: hidden;
    display: flex;
    justify-content: flex-end; /* 中央(center)から右寄せ(flex-end)に変更 */
    align-items: flex-end;
  }
  #sponsorship_ito .kv-mask {
    position: relative;
    width: 100%;
    overflow: hidden;
    display: flex;
    justify-content: flex-end; /* 中央(center)から右寄せ(flex-end)に変更 */
    align-items: flex-end;
  }
  /* ② 画像：右下を基準にアニメーション */
  #sponsorship_ito .kv-image img {
    width: 150%;
    max-width: none;
    flex-shrink: 0;
    /* 右下を起点にして拡大させることで、右端が画面に固定されます */
    transform-origin: right bottom;
    animation: kvZoomBottomSP 2.5s ease-out forwards;
    /* 白い光彩（SP用：右寄せに合わせて調整） */
    filter: drop-shadow(0 0 8px rgba(255, 255, 255, 0.8)) drop-shadow(0 0 20px rgba(255, 255, 255, 0.8));
  }
  #sponsorship_ito .kv-mask img {
    width: 150%;
    max-width: none;
    flex-shrink: 0;
    /* 右下を起点にして拡大させることで、右端が画面に固定されます */
    transform-origin: right bottom;
    animation: kvZoomBottomSP02 2.5s ease-out forwards;
    /* 白い光彩（SP用：右寄せに合わせて調整） */
    filter: drop-shadow(0 0 8px rgba(255, 255, 255, 0.8)) drop-shadow(0 0 20px rgba(255, 255, 255, 0.8));
  }
}
/* SP用アニメーション（右下固定で8から10へ） */
@keyframes kvZoomBottomSP {
  0% {
    opacity: 0;
    transform: scale(0.8);
  }
  100% {
    opacity: 1;
    transform: scale(1.0);
  }
}
@keyframes kvZoomBottomSP02 {
  0% {
    opacity: 1;
    transform: scale(0.8);
  }
  100% {
    opacity: 1;
    transform: scale(1.0);
  }
}
/* ② lineのアニメーション */
#sponsorship_ito .line {
  width: 100%;
  height: 35px;
  background-image: linear-gradient(90deg, #009e41, #018bd4);
  position: relative;
  z-index: 10;
  /* アニメーション：左からシュッと現れる */
  transform: scaleX(0);
  transform-origin: left; /* 左端を起点に伸びる */
  animation: lineIn 1.0s cubic-bezier(0.22, 1, 0.36, 1) 0s forwards;
}
@keyframes lineIn {
  0% {
    transform: scaleX(0);
  }
  100% {
    transform: scaleX(1);
  }
}
/* ② リード文 */
#sponsorship_ito .intro {
  text-align: center;
  margin-bottom: clamp(2.5rem, -1.466rem + 8.62vw, 5rem);
}
#sponsorship_ito .lead-text {
  font-size: 1.3rem;
  max-width: 800px;
  line-height: 2.2rem;
  font-weight: 500;
  margin: 0 auto;
}
/* ③ プロフィール */
#sponsorship_ito .profile-grid {
  width: 100%; /* 固定1000pxから可変へ */
  max-width: 1000px;
  display: flex;
  gap: 40px;
  margin: 0 auto 80px;
}
#sponsorship_ito .profile-photo {
  flex: 1;
}
#sponsorship_ito .profile-photo img {
  width: 85%;
  border-radius: 10px;
}
#sponsorship_ito .profile-details {
  flex: 1;
}
#sponsorship_ito .name {
  font-size: 1.8rem;
  font-weight: 600;
  text-align: center;
  margin-bottom: 10px;
}
#sponsorship_ito .profile-table {
  width: 100%;
  border-collapse: collapse;
  font-size: clamp(1rem, 0.841rem + 0.34vw, 1.1rem);
}
#sponsorship_ito .profile-table th, .profile-table td {
  padding: 15px;
  border-bottom: 1px solid #ddd;
  text-align: left;
}
#sponsorship_ito .profile-table th {
  width: 33%;
  /*color: var(--primary-blue);*/
}
/* ④ 選手コメント */
#sponsorship_ito .comment-box {
  background: var(--bg-light);
  font-size: 1rem;
  line-height: 1.8rem;
  margin: 0;
  padding: 20px;
  border-radius: 10px;
  position: relative;
}
/* ⑤ 略歴 & ⑥ 主な成績 */
#sponsorship_ito .history-content p {
  font-size: clamp(0.9rem, 0.741rem + 0.34vw, 1rem);
  line-height: 1.7rem;
}
#sponsorship_ito .results-list {
  list-style: none;
}
#sponsorship_ito .results-list li {
  padding: 10px 0;
  border-bottom: 1px dashed #ccc;
  font-size: clamp(0.9rem, 0.741rem + 0.34vw, 1rem);
}
#sponsorship_ito .results-list .year {
  display: inline-block;
  width: 100px;
  font-weight: bold;
  margin-left: clamp(0.9rem, 0.741rem + 0.34vw, 1rem);
  /*color: var(--primary-green);*/
}
/* レスポンシブ (SP) */
@media screen and (max-width: 736px) {
  #sponsorship_ito section {
    width: 100%;
    margin: 0 auto 4rem;
  }
  #sponsorship_ito .kv {
    height: auto; /* 高さ制限を解除 */
    margin-bottom: 2rem;
    background-image: repeating-linear-gradient(180deg, var(--primary-blue) 0, var(--primary-blue) 1px, /* 水色ライン 1px */ #fff 1px, #fff 6px /* 白色 6px（計6px周期） */);
  }
  #sponsorship_ito .kv-inner {
    position: relative;
    width: 100%;
    margin-top: 20px;
  }
  #sponsorship_ito .kv-text {
    /* relative から absolute に戻して画像の上に重ねる */
    position: absolute;
    /* 下からの位置を指定（lineの上に被らない程5度の位置） */
    bottom: 0;
    left: 5%;
    z-index: 20; /* 画像より前面に */
    /* レイアウト調整 */
    padding: 0;
    margin: 0;
    font-size: 1.4rem;
    color: #333; /* 背景写真が明るい場合は白(#fff)なども検討してください */
    /* アニメーション設定（PCと同様） */
    overflow: hidden;
    white-space: nowrap;
    animation: maskReveal 2.5s ease-out 0.8s forwards;
    text-shadow: 4px 4px 4px #fff, -4px -4px 4px #fff, -4px 4px 4px #fff, 4px -4px 4px #fff, 4px 0px 4px #fff, -4px -0px 4px #fff, 0px 4px 4px #fff, 0px -4px 4px #fff;
  }
#sponsorship_ito .line {
    height: 25px;
	}
  #sponsorship_ito .lead-text {
    font-size: 1rem;
    margin: 0 auto;
    text-align: left;
    line-height: 1.6rem;
    font-weight: 500;
  }
  #sponsorship_ito .profile-grid {
    flex-direction: column;
    width: 100%;
    padding: 0;
  }
  #sponsorship_ito .profile-photo img {
    width: 80%;
    margin: 0 10%;
  }
}
@keyframes fadeIn {
  0% {
    width: 0;
  }
  100% {
    width: 100%; /* 全表示（親要素の範囲内） */
  }
}