/* ============================================
   リセットCSS
   ============================================ */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
html {
  font-size: 100%;
  -webkit-text-size-adjust: 100%;
}
body {
  min-height: 100vh;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
h1,h2,h3,h4,h5,h6,p,blockquote,figure,figcaption,ul,ol,dl,li,dt,dd {
  margin: 0;
  padding: 0;
}
ul,ol { list-style: none; }
img,video,svg { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
input,button,textarea,select {
  font: inherit; color: inherit; background: none; border: none; outline: none;
  appearance: none; -webkit-appearance: none;
}
button { cursor: pointer; }
table { border-collapse: collapse; border-spacing: 0; }
blockquote,q { quotes: none; }
blockquote::before,blockquote::after,q::before,q::after { content: none; }
code,pre { font-family: monospace; }
hr { border: none; border-top: 1px solid currentColor; }

/* =============================================
   Election Popup
   ============================================= */
.election-popup {
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  z-index: 9999;
  display: flex;
  justify-content: center;
  align-items: center;
}
.election-popup-overlay {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: rgba(0,0,0,0.5);
  cursor: pointer;
}
.election-popup-content {
  position: relative;
  z-index: 1;
  width: clamp(320px, 50vw, 720px);
}
.election-popup-bg {
  width: 100%; height: auto; display: block;
}
.election-popup-days {
  position: absolute;
  top: 52%; left: 62%;
  transform: translate(-50%, -50%);
  color: #e84f7b;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(40px, 8vw, 120px);
  font-weight: 900;
  line-height: 1;
  text-align: center;
}
.election-popup-close {
  position: absolute;
  top: -1.5vw; right: -1.5vw;
  width: clamp(32px, 3vw, 44px);
  height: clamp(32px, 3vw, 44px);
  background: #333; color: #fff;
  border: none; border-radius: 50%;
  font-size: clamp(16px, 1.5vw, 22px);
  cursor: pointer;
  display: flex; justify-content: center; align-items: center;
  z-index: 2;
  transition: background 0.2s ease;
}
.election-popup-close:hover { background: #e84f7b; }
.election-popup.hidden { display: none; }

/* =============================================
   ほとだゆうな ヘッダー
   ============================================= */
.hotoda-header {
  width: 100%;
  background: linear-gradient(355deg, #ffffff 100%);
  overflow: hidden;
}
.hotoda-header__inner {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 30vw;
  width: 100%;
  padding-right: 2.083vw;
  box-sizing: border-box;
}
.hotoda-header__brand {
  display: flex;
  flex-direction: row;
  align-items: center;
  flex-shrink: 0;
}
.hotoda-header__logo-wrap {
  position: relative;
  width: 8.333vw;
  height: 5vw;
  flex-shrink: 0;
}
.hotoda-header__logo-img {
  position: absolute;
  top: 0; left: 0;
  width: 6.875vw;
  height: 8.333vw;
  display: block;
}
.hotoda-header__title-wrap {
  position: relative;
  width: 22.917vw;
  height: 5.038vw;
  flex-shrink: 0;
  left: 2.08vw;
}
.hotoda-header__title {
  position: absolute;
  left: -0.903vw;
  top: 1.547vw;
  color: #b03546;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 3.514vw;
  font-weight: 800;
  line-height: 1.944vw;
  white-space: nowrap;
  word-wrap: break-word;
}
.hotoda-header__nav { flex-shrink: 0; }
.hotoda-header__nav-list {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 1.389vw;
  list-style: none;
  margin: 0; padding: 0;
}
.hotoda-header__nav-item {
  display: flex;
  align-items: center;
}
.hotoda-header__nav-link {
  display: flex;
  flex-direction: column;
  justify-content: center;
  color: #b03546;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 1.389vw;
  font-weight: 700;
  line-height: 1.944vw;
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 0.2s ease;
}
.hotoda-header__nav-link:hover { opacity: 0.75; }

/* =============================================
   Contact Header
   ============================================= */
.contact-header {
  width: 100%;
  background: linear-gradient(355deg, #9a192c 0%, #b43e4e 47%, #e47d85 100%);
  overflow: hidden;
}
.contact-header__inner {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 23vw;
  width: 100%;
  padding-right: 2.083vw;
  box-sizing: border-box;
}
.contact-header__brand {
  display: flex;
  flex-direction: row;
  align-items: center;
  flex-shrink: 0;
}
.contact-header__logo-wrap {
  position: relative;
  width: 5.8vw; height: 5vw;
  flex-shrink: 0;
}
.contact-header__logo-img {
  position: absolute;
  left: 0;
  width: 5vw; height: auto;
  display: block;
}
.contact-header__title-wrap {
  position: relative;
  width: 22.917vw; height: 5.038vw;
  flex-shrink: 0;
}
.contact-header__title {
  position: absolute;
  left: -0.903vw; top: 1.547vw;
  color: #fff;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 3.514vw;
  font-weight: 800;
  line-height: 1.944vw;
  white-space: nowrap;
}
.contact-header__nav { flex-shrink: 0; }
.contact-header__nav-list {
  display: flex; flex-direction: row;
  align-items: center; gap: 1.389vw;
  list-style: none; margin: 0; padding: 0;
}
.contact-header__nav-item { display: flex; align-items: center; }
.contact-header__nav-link {
  color: #fff;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 1.389vw; font-weight: 700;
  line-height: 1.944vw;
  text-decoration: none; white-space: nowrap;
  transition: opacity 0.2s ease;
}
.contact-header__nav-link:hover { opacity: 0.75; }

/* =============================================
   Hero Section
   ============================================= */
.hotoda-hero {
  position: relative; width: 100%;
  overflow: hidden;
  display: flex; justify-content: center; align-items: center;
}
.hotoda-hero__bg {
  position: absolute; top: 0; left: 0;
  width: 100%; height: 100%;
  object-fit: cover; z-index: 0;
}
.hotoda-hero__container {
  position: relative; z-index: 1;
  width: 100vw; height: 50vw;
  max-width: 133.333vw;
}

/* =============================================
   Greeting
   ============================================= */
.greeting {
  background-color: #fff;
  background-image: url('../images/greeting_bg.jpg');
  background-size: cover;
  background-position: center bottom;
  background-repeat: no-repeat;
  padding: 80px 20px;
}
.greeting-inner { max-width: 800px; margin: 0 auto; }
.greeting-title {
  text-align: center;
  font-size: 2rem; font-weight: bold;
  letter-spacing: 0.2em; color: #333;
  margin-bottom: 48px;
}
.greeting-body {
  display: flex; flex-direction: column;
  align-items: center; gap: 40px;
}
.greeting-text {
  font-size: 1rem; font-weight: 500;
  line-height: 1.8; color: #333; text-align: center;
}
.greeting-keyword {
  color: #b03546; font-size: 1.3rem; font-weight: 800;
}
.greeting-signature {
  width: 100%; height: 100%; overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}

/* =============================================
   SNS Section
   ============================================= */
.sns-section {
  background: linear-gradient(172deg, #d16471 0%, #fff5e4 100%);
  width: 100%;
  display: flex; justify-content: center; align-items: center;
}
.sns-inner {
  width: 89.58vw; padding: 3.47vw;
  display: flex; flex-direction: column;
  align-items: center; gap: 1.39vw;
}
.sns-title {
  display: flex; justify-content: center; align-items: center;
  padding-bottom: 1.39vw; width: 100%;
}
.sns-title img { width: 50vw; height: auto; }
.sns-list {
  width: 100%; display: flex;
  justify-content: center; align-items: center; gap: 1.39vw;
}
.sns-item {
  flex: 1 1 13vw; height: 3.68vw;
  padding: 1.04vw; background: #fff;
  box-shadow: 0px 2px 5px rgba(0,0,0,0.2);
  border-radius: 21px;
  display: flex; justify-content: center; align-items: center; gap: 0.69vw;
  text-decoration: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.sns-item:hover { transform: translateY(-2px) scale(1.05); }
.sns-item-icon {
  width: 1.39vw; height: 1.39vw; flex-shrink: 0;
  display: flex; align-items: center;
}
.sns-item-icon img { width: 100%; height: auto; }
.sns-item-label {
  color: #333333;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 1.11vw; font-weight: 700;
  line-height: 1.4; white-space: nowrap;
}

/* =============================================
   Video Section
   ============================================= */
.video-section { width: 100%; background-color: #fff; overflow: hidden; }
.video-inner {
  width: 100%; padding: 5.56vw 0;
  display: flex; flex-direction: column;
  align-items: center; gap: 2.78vw;
}
.video-title {
  display: flex; flex-direction: column;
  align-items: center; gap: 4px; text-align: center;
}
.video-title img { width: 25vw; height: auto; }
.swiper { margin-left: -1vw !important; overflow: visible !important; }
.video-swiper { width: 100%; }
.video-slide {
  width: 18.75vw !important;
  border-radius: 16px; overflow: hidden; flex-shrink: 0;
}
.video-slide img {
  width: 100%; height: auto;
  aspect-ratio: 270 / 478; object-fit: cover; display: block;
}
.video-btn-wrap { display: flex; justify-content: center; }
.video-btn {
  display: inline-flex; align-items: center; gap: 1.39vw;
  padding: 1.04vw 2.08vw;
  background: linear-gradient(170deg, #b03546 0%, #ec898f 100%);
  border-radius: 48px; color: #fff;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 1.39vw; font-weight: 700; line-height: 1.6;
  text-decoration: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.video-btn:hover { opacity: 0.85; transform: translateY(-2px) scale(1.03); }
.video-btn-icon { width: 1.25vw; height: auto; }

/* =============================================
   News Section
   ============================================= */
.news-section { width: 100%; background: #fff5e4; padding: 6.94vw 0 10.42vw; }
.news-inner {
  width: 84.72vw; margin: 0 auto;
  display: flex; align-items: flex-start;
}
.news-left {
  flex-shrink: 0; width: 16.67vw;
  padding-right: 5.56vw; padding-bottom: 4.17vw;
  display: flex; flex-direction: column;
  align-items: flex-start; gap: 3.47vw;
}
.news-title {
  color: #b03546;
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 2.78vw; font-weight: 800; line-height: 1.4; margin: 0;
}
.news-btn {
  display: inline-flex; align-items: center; gap: 0.69vw;
  padding: 1.04vw 2.09vw;
  background: linear-gradient(346deg, #ec898f 0%, #b03546 100%);
  border-radius: 48px; color: #fff;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 1.11vw; font-weight: 700;
  text-decoration: none; white-space: nowrap;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.news-btn:hover { opacity: 0.85; transform: translateY(-2px) scale(1.03); }
.news-btn-icon { width: 1.11vw; height: auto; }
.news-list {
  flex: 1; border-top: 1px solid #eeeeee;
  display: flex; flex-direction: column;
}
.news-item { border-bottom: 1px solid #eeeeee; }
.news-item-link {
  display: flex; align-items: center;
  padding: 2.08vw 0; text-decoration: none;
  transition: opacity 0.2s ease;
}
.news-item-link:hover { opacity: 0.7; }
.news-item-thumb { flex-shrink: 0; width: 10.49vw; height: 7.85vw; overflow: hidden; }
.news-item-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.news-item-body {
  flex: 1; padding: 0 4.24vw;
  display: flex; flex-direction: column; gap: 0.69vw;
}
.news-item-title {
  color: #333333;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 1.38vw; font-weight: 700; line-height: 1.5; margin: 0;
}
.news-item-meta { display: flex; align-items: center; gap: 0.35vw; }
.news-item-dot {
  width: 5px; height: 5px; border-radius: 50%;
  background: linear-gradient(315deg, #f71d6a 0%, #f71d6a 47%, #ec898f 100%);
  flex-shrink: 0;
}
.news-item-label {
  color: #333333; font-family: 'Noto Sans JP', sans-serif;
  font-size: 0.69vw; font-weight: 350; line-height: 1.4;
}
.news-item-date {
  color: #333333; font-family: 'Noto Sans JP', sans-serif;
  font-size: 1.11vw; font-weight: 350; line-height: 1; margin-left: 0.69vw;
}

/* =============================================
   Ayumi Section
   ============================================= */
.ayumi-section { width: 100%; background: #fff; padding: 6.94vw 0 10vw; overflow: hidden; }
.ayumi-inner {
  width: 70vw; margin: 0 auto;
  display: flex; justify-content: space-between;
  align-items: flex-end; gap: 6.47vw;
}
.ayumi-left {
  flex: 1; display: flex; flex-direction: column;
  gap: 2.08vw; padding-left: 2.08vw;
}
.ayumi-section-title { margin-left: -6.94vw; }
.ayumi-section-title img { width: 27.78vw; height: auto; }
.ayumi-profile { display: flex; flex-direction: column; gap: 0.69vw; padding: 0.69vw; }
.ayumi-name-wrap { display: flex; flex-direction: column; gap: 2px; }
.ayumi-name {
  color: #333333; font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 2.22vw; font-weight: 900; line-height: 1.4; margin: 0;
}
.ayumi-name-kana {
  color: #333333; font-family: 'Noto Sans JP', sans-serif;
  font-size: 1.11vw; font-weight: 700; line-height: 1.4; margin: 0;
}
.ayumi-role {
  color: #333333; font-family: 'Noto Sans JP', sans-serif;
  font-size: 1.23vw; font-weight: 500; line-height: 1.8; margin: 0;
}
.ayumi-table { border-top: 1px solid #e84f7b; display: flex; flex-direction: column; }
.ayumi-row {
  display: flex; align-items: center;
  border-bottom: 1px solid #e84f7b;
  padding: 0.97vw 0.69vw; gap: 2.08vw;
}
.ayumi-year {
  flex-shrink: 0; width: 10.42vw; color: #333333;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 1.25vw; font-weight: 400; line-height: 1.4;
}
.ayumi-desc {
  flex: 1; color: #333333; font-family: 'Noto Sans JP', sans-serif;
  font-size: 1.11vw; font-weight: 400; line-height: 1.6;
}
.ayumi-right {
  flex-shrink: 0; width: 14.58vw; margin-left: -6.94vw;
  display: flex; align-items: flex-end;
}
.ayumi-right img { width: 100%; height: auto; display: block; }

/* =============================================
   Ayumi Cards
   ============================================= */
.ayumi-cards-bg { width: 100%; background-color: #fff5e4; margin-top: -2.08vw; }
.ayumi-cards {
  width: 85.42vw; margin: 0 auto;
  padding: 0 0 8vw;
  display: flex; justify-content: space-between; gap: 2.43vw;
}
.ayumi-card {
  flex: 1; display: flex; flex-direction: column;
  align-items: center; gap: 1.39vw;
}
.ayumi-card-header {
  display: flex; flex-direction: column;
  align-items: center; gap: 0.69vw; margin-top: -2vw;
}
.ayumi-card-num {
  width: 3.47vw; height: 3.47vw;
  background: linear-gradient(315deg, #f71d6a 0%, #f71d6a 47%, #ec898f 100%);
  border-radius: 50%;
  display: flex; justify-content: center; align-items: center;
  color: #fff; font-family: 'Roboto Condensed', sans-serif;
  font-size: 1.39vw; font-weight: 700; line-height: 1; z-index: 1;
}
.ayumi-card-heading { display: flex; flex-direction: column; align-items: center; }
.ayumi-card-title { margin: 0; text-align: center; line-height: 1.4; }
.ayumi-card-title-lg {
  color: #b03546; font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 1.67vw; font-weight: 900; line-height: 1.4;
}
.ayumi-card-title-sm {
  color: #b03546; font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 0.83vw; font-weight: 900; line-height: 1.4; vertical-align: bottom;
}
.ayumi-card-thumb { width: 100%; border-radius: 16px; overflow: hidden; }
.ayumi-card-thumb img {
  width: 100%; height: auto;
  aspect-ratio: 338 / 253; object-fit: cover; display: block;
}
.ayumi-card-text {
  color: #000; font-family: 'Noto Sans JP', sans-serif;
  font-size: 1.25vw; font-weight: 500;
  line-height: 1.8; letter-spacing: 0.1em; margin: 0; width: 100%;
}
.ayumi-card-underline {
  background: linear-gradient(0deg, rgba(232,79,123,0.6) 0%, rgba(232,79,123,0.6) 40%, rgba(232,79,123,0) 40%);
  padding-bottom: 4px;
}

/* =============================================
   Policy Section
   ============================================= */
.policy-section { width: 100%; background: #fff; padding: 6.94vw 0; }
.policy-inner {
  width: 87.5vw; margin: 0 auto;
  display: flex; flex-direction: column; gap: 3.47vw;
}
.policy-title { margin-bottom: 2.08vw; }
.policy-title img { width: 33.33vw; height: auto; }
.policy-list { display: flex; flex-direction: column; gap: 3.47vw; }
.policy-card {
  width: 100%; padding: 2.08vw; background: #fff;
  box-shadow: 0px 2px 5px rgba(0,0,0,0.2);
  border-radius: 24px;
  display: flex; align-items: center; gap: 3.47vw;
}
.policy-card-thumb { flex-shrink: 0; width: 23.47vw; }
.policy-card-thumb img {
  width: 100%; height: auto;
  aspect-ratio: 338 / 226; object-fit: cover;
  border-radius: 16px; display: block;
}
.policy-card-body {
  flex: 1; display: flex; flex-direction: column; gap: 0.35vw;
}
.policy-card-title {
  color: #b03546; font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 2.22vw; font-weight: 900; line-height: 1.4; margin: 0;
}
.policy-card-subtitle {
  color: #b03546; font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 1.39vw; font-weight: 900; line-height: 1.4; margin: 0;
}
.policy-card-text {
  color: #333333; font-family: 'Noto Sans JP', sans-serif;
  font-size: 1.25vw; font-weight: 500; line-height: 1.8; margin: 0.69vw 0 0;
}

/* =============================================
   Policy Summary Section
   ============================================= */
.policy-summary { width: 100%; position: relative; overflow: hidden; }
.policy-summary-bg img { width: 100%; height: auto; display: block; }
.policy-summary-text {
  position: absolute; right: 4.51vw; top: 15vw;
  text-align: center; color: #f3f3f3;
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: 2.08vw; font-weight: 500; line-height: 1.6;
  text-shadow: 4px 4px 4px rgba(0,0,0,0.8);
  white-space: nowrap;
}

/* =============================================
   Footer
   ============================================= */
.footer { width: 100%; background: #fff; display: flex; flex-direction: column; align-items: center; }
.footer-cta {
  width: 100%;
  background: linear-gradient(355deg, #b03546 0%, #ec898f 100%);
  display: flex; justify-content: space-between; align-items: center;
}
.footer-cta-item {
  flex: 1; padding: 2.78vw 1.39vw;
  display: flex; flex-direction: column; align-items: center; gap: 1.35vw;
  text-decoration: none; transition: opacity 0.2s ease;
}
.footer-cta-item:hover { opacity: 0.8; }
.footer-cta-icon { display: flex; justify-content: center; align-items: center; }
.footer-cta-icon img { width: 3.06vw; height: auto; }
.footer-cta-label {
  color: #fff; font-family: 'Noto Sans JP', sans-serif;
  font-size: 1.39vw; font-weight: 700; line-height: 1.4;
}
.footer-cta-divider { width: 1px; height: 12.5vw; background: #fff; flex-shrink: 0; }
.footer-nav-wrap { width: 100%; padding: 3.47vw 0; }
.footer-nav-inner {
  width: 95.83vw; margin: 0 auto;
  display: flex; justify-content: space-between; align-items: center;
}
.footer-logo {
  color: #b03546; font-family: 'Noto Sans JP', sans-serif;
  font-size: 3.47vw; font-weight: 800; line-height: 1; white-space: nowrap;
}
.footer-nav {
  display: flex; align-items: center; gap: 1.04vw;
  flex-wrap: wrap; justify-content: flex-end;
}
.footer-nav-link {
  color: #333333; font-family: 'Noto Sans JP', sans-serif;
  font-size: 1.11vw; font-weight: 700; line-height: 1.4;
  text-decoration: none; white-space: nowrap; transition: opacity 0.2s ease;
}
.footer-nav-link:hover { opacity: 0.7; }
.footer-divider { width: 100%; height: 1px; background: #eeeeee; }
.footer-info-wrap { width: 100%; padding: 3.47vw 0; }
.footer-info-inner {
  width: 95.83vw; margin: 0 auto;
  display: flex; justify-content: space-between; align-items: center;
}
.footer-info-text { display: flex; flex-direction: column; gap: 0.65vw; }
.footer-info-name {
  color: #333333; font-family: 'Noto Sans JP', sans-serif;
  font-size: 1.24vw; font-weight: 900; line-height: 2;
}
.footer-info-address {
  color: #333333; font-family: 'Noto Sans JP', sans-serif;
  font-size: 1.22vw; font-weight: 400; line-height: 2;
}
.footer-map { width: 40vw; height: 21.81vw; border-radius: 8px; overflow: hidden; flex-shrink: 0; }
.footer-copyright {
  width: 100%; padding: 3.47vw 0;
  display: flex; justify-content: center; align-items: center;
}
.footer-copyright p {
  color: #757575; font-family: 'Noto Sans JP', sans-serif;
  font-size: 0.79vw; font-weight: 400; line-height: 1.4; text-align: center;
}

/* =============================================
   SP版レスポンシブ（768px以下）
   ============================================= */
@media (max-width: 768px) {

  /* ---- Header ---- */
  .hotoda-header__inner { gap: 0; justify-content: space-between; }
  .hotoda-header__title-wrap { width: auto; height: auto; position: static; }
  .hotoda-header__title { position: static; font-size: 6vw; line-height: 1.4; color: #B03546; }

  /* ---- Contact Header ---- */
  .contact-header__inner { gap: 0; justify-content: space-between; }
  .contact-header__title-wrap { width: auto; height: auto; position: static; }
  .contact-header__title { position: static; font-size: 6vw; line-height: 1.4; }
  .contact-header__logo-wrap { width: 10vw; height: auto; }
  .contact-header__logo-img { position: static; width: 10vw; height: auto; }

  /* ---- Heading ---- */
  .heading { padding: 8vw 0 6vw; gap: 2vw; }
  .heading-en { font-size: 3vw; }
  .heading-ja { font-size: 6vw; }
  .heading-line { width: 8vw; margin-top: 1vw; }

  /* ---- Greeting ---- */
  .greeting { padding: 10vw 6vw; }
  .greeting-inner { max-width: 100%; }
  .greeting-title { font-size: 5vw; margin-bottom: 6vw; }
  .greeting-text { font-size: 3vw; text-align: center; font-weight: 500; font-family: 'Noto Sans JP', sans-serif; }
  .greeting-keyword { font-size: 3.5vw; }

  /* ---- SNS ---- */
  .sns-inner { width: 90vw; padding: 6vw 4vw; gap: 4vw; }
  .sns-title img { width: 80vw; }
  .sns-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 3vw; }
  .sns-item { height: auto; padding: 3vw 2vw; border-radius: 12px; flex: none; }
  .sns-item-icon { width: 5vw; height: 5vw; }
  .sns-item-label { font-size: 3vw; }

  /* ---- Video ---- */
  .video-inner { padding: 8vw 0; gap: 5vw; }
  .video-title img { width: 70vw; }
  .video-slide { width: 40vw !important; }
  .video-btn { font-size: 3.5vw; padding: 3vw 6vw; gap: 2vw; }
  .video-btn-icon { width: 4vw; }
  .swiper { margin-left: -15vw !important;}

  /* ---- News ---- */
  .news-section { padding: 8vw 0 10vw; }
  .news-inner { width: 90vw; flex-direction: column; gap: 6vw; }
  .news-left {
    width: 100%; padding-right: 0; padding-bottom: 0;
    flex-direction: row; align-items: center;
    justify-content: space-between; gap: 0;
  }
  .news-title { font-size: 5.5vw; }
  .news-btn { font-size: 3vw; padding: 2vw 4vw; }
  .news-item-link { padding: 4vw 0; }
  .news-item-thumb { width: 22vw; height: 16vw; }
  .news-item-body { padding: 0 3vw; gap: 1.5vw; }
  .news-item-title { font-size: 3.2vw; }
  .news-item-label { font-size: 2.2vw; }
  .news-item-date { font-size: 2.8vw; }

  /* ---- Ayumi ---- */
  .ayumi-section { padding: 10vw 0 6vw; }
  .ayumi-inner { width: 88vw; flex-direction: column; align-items: flex-start; gap: 6vw; }
  .ayumi-left { width: 100%; padding-left: 0; gap: 4vw; }
  .ayumi-section-title { margin-left: 0; }
  .ayumi-section-title img { width: 60vw; }
  .ayumi-name { font-size: 5.5vw; }
  .ayumi-name-kana { font-size: 3vw; }
  .ayumi-role { font-size: 3.2vw; }
  .ayumi-year { width: 26vw; font-size: 3vw; }
  .ayumi-desc { font-size: 3vw; }
  .ayumi-row { padding: 3vw 1vw; gap: 3vw; }
  .ayumi-right { width: 25vw; margin-left: 0; align-self: center; }

  /* ---- Ayumi Cards ---- */
  .ayumi-cards-bg { margin-top: 0; }
  .ayumi-cards { width: 88vw; flex-direction: column; gap: 10vw; padding: 6vw 0 10vw; }
  .ayumi-card { width: 100%; gap: 3vw; }
  .ayumi-card-header { margin-top: 0; gap: 2vw; }
  .ayumi-card-num { width: 8vw; height: 8vw; font-size: 4vw; }
  .ayumi-card-title-lg { font-size: 4.5vw; }
  .ayumi-card-title-sm { font-size: 2.5vw; }
  .ayumi-card-text { font-size: 3.5vw; }

  /* ---- Policy ---- */
  .policy-section { padding: 10vw 0; }
  .policy-inner { width: 88vw; gap: 6vw; }
  .policy-title img { width: 70vw; }
  .policy-list { gap: 6vw; }
  .policy-card { flex-direction: column !important; padding: 5vw; gap: 4vw; border-radius: 16px; }
  .policy-card-thumb { width: 100%; }
  .policy-card-title { font-size: 4.5vw; }
  .policy-card-subtitle { font-size: 3.5vw; }
  .policy-card-text { font-size: 3.2vw; }

  /* ---- Policy Summary ---- */
  .policy-summary-text {
    font-size: 2.5vw; right: -1.5vw; top: 15vw;
    white-space: normal; width: 45vw; text-align: center;
  }

  /* ---- Footer CTA ---- */
  .footer-cta-item { padding: 4vw 2vw; gap: 2vw; }
  .footer-cta-icon img { width: 7vw; }
  .footer-cta-label { font-size: 3vw; }
  .footer-cta-divider { height: 18vw; }

  /* ---- Footer Nav ---- */
  .footer-nav-wrap { padding: 5vw 0; }
  .footer-nav-inner { width: 90vw; flex-direction: column; align-items: flex-start; gap: 4vw; }
  .footer-logo { font-size: 7vw; }
  .footer-nav { gap: 3vw; justify-content: flex-start; }
  .footer-nav-link { font-size: 3.2vw; }

  /* ---- Footer Info ---- */
  .footer-info-wrap { padding: 5vw 0; }
  .footer-info-inner { width: 90vw; flex-direction: column; gap: 5vw; align-items: flex-start; }
  .footer-info-name { font-size: 3.8vw; }
  .footer-info-address { font-size: 3.2vw; }
  .footer-map { width: 100%; height: 55vw; }

  /* ---- Footer Copyright ---- */
  .footer-copyright p { font-size: 2.5vw; }

  /* ---- Election Popup ---- */
  .election-popup-content { width: 85vw; }
}

/* SP改行 */
.sp-br { display: none; }

@media (max-width: 768px) {
    .sp-br { display: block; }
}
