/* Reset and Base Styles */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
html {
  font-size: 62.5%;
  scroll-behavior: smooth;
}
body {
  font-family: "Zen Kaku Gothic New", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.6;
  color: #333333;
  background-color: #fff;
  overflow-x: hidden;
}
img {
  max-width: 100%;
  height: auto;
  display: block;
  width: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}
/* Utility Classes */
.container {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 20px;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
/* CSS Custom Properties */ :root {
  --primary-white: #ffffff;
  --primary-blue: #2563eb;
  --primary-light-blue: #23abe7;
  --primary-sax: #d3f5ff;
  --primary-yellow: #ffe800;
  --primary-pink: #ff05a1;
  --primary-red: #dc2626;
  --primary-orange: #ff762e;
  --gray-50: #f5f5f5;
  --gray-100: #929292;
  --gray-200: #464646;
  --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
  --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
  --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
  --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
  --transition-fast: 0.15s ease;
  --transition-normal: 0.3s ease;
  --transition-slow: 0.5s ease;
}
/* Color Utility Classes */
.white-text {
  color: var(--primary-white);
}
.blue-text {
  color: var(--primary-blue);
}
.light-blue {
  color: var(--primary-light-blue);
}
.sax-text {
  color: var(-primary-sax);
}
.yellow-text {
  color: var(--primary-yellow);
}
.pink-text {
  color: var(--primary-pink);
}
.red-text {
  color: var(--primary-red);
}
.orange-text {
  color: var(--primary-orange);
}
/*.gradient {
background: linear-gradient(135deg, #2926dc, #00ffdc);
}*/
.col-90 {
  width: 90%;
}
.col-80 {
  width: 80%;
}
.col-75 {
  width: 75%;
}
.col-74 {
  width: 74%;
}
.col-73 {
  width: 73%;
}
.col-72 {
  width: 72%;
}
.col-71 {
  width: 71%;
}
.col-70 {
  width: 70%;
}
.col-69 {
  width: 69%;
}
.col-68 {
  width: 68%;
}
.col-67 {
  width: 67%;
}
.col-66 {
  width: 66%;
}
.col-65 {
  width: 65%;
}
.col-64 {
  width: 64%;
}
.col-63 {
  width: 63%;
}
.col-62 {
  width: 61%;
}
.col-61 {
  width: 61%;
}
.col-60 {
  width: 60%;
}
.col-59 {
  width: 59%;
}
.col-58 {
  width: 58%;
}
.col-57 {
  width: 57%;
}
.col-56 {
  width: 56%;
}
.col-55 {
  width: 55%;
}
.col-54 {
  width: 54%;
}
.col-53 {
  width: 53%;
}
.col-52 {
  width: 52%;
}
.col-51 {
  width: 51%;
}
.col-50 {
  width: 50%;
}
.col-49 {
  width: 49%;
}
.col-48 {
  width: 48%;
}
.col-47 {
  width: 47%;
}
.col-46 {
  width: 46%;
}
.col-45 {
  width: 45%;
}
.col-44 {
  width: 44%;
}
.col-43 {
  width: 43%;
}
.col-42 {
  width: 42%;
}
.col-41 {
  width: 41%;
}
.col-40 {
  width: 40%;
}
.col-39 {
  width: 39%;
}
.col-38 {
  width: 38%;
}
.col-37 {
  width: 37%;
}
.col-36 {
  width: 36%;
}
.col-35 {
  width: 35%;
}
.col-34 {
  width: 34%;
}
.col-33 {
  width: 33%;
}
.col-32 {
  width: 32%;
}
.col-31 {
  width: 31%;
}
.col-30 {
  width: 30%;
}
.col-29 {
  width: 29%;
}
.col-28 {
  width: 28%;
}
.col-27 {
  width: 27%;
}
.col-26 {
  width: 26%;
}
.col-25 {
  width: 25%;
}
.col-24 {
  width: 24%;
}
.col-23 {
  width: 23%;
}
.col-20 {
  width: 20%;
}
.col-15 {
  width: 15%;
}
.col-10 {
  width: 10%;
}
.col-7 {
  width: 7%;
  margin-inline: auto;
  text-align: center;
}
.mb-ten5em {
  margin-bottom: 0.5em;
}
.mb-1em {
  margin-bottom: 1em;
}
.mb-2em {
  margin-bottom: 2em;
}
.mb-short {
  margin-bottom: clamp(20px, 4vw, 80px);
}
.mb-mid {
  margin-bottom: clamp(30px, 6vw, 100px);
}
.mb-large {
  margin-bottom: clamp(60px, 10vw, 120px);
}
.mb-xlarge {
  margin-bottom: clamp(80px, 20vw, 180px);
}
.flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
.aspect2-3 {
  aspect-ratio: 2/3;
}
.aspect3-2 {
  aspect-ratio: 3/2;
}
.aspect1-1 {
  aspect-ratio: 1/1;
}
.aspect4-5 {
  aspect-ratio: 4/5;
}
.aspect5-6 {
  aspect-ratio: 5/6;
}
.text-center {
  text-align: center;
}
.margin-auto {
  margin-inline: auto;
}
.block {
  display: block;
}
.linear {
  background: linear-gradient(transparent 60%, var(--primary-yellow) 30%);
  display: inline;
}
.font-lead {
  font-size: clamp(1.6rem, 2.2vw, 2rem);
  line-height: 1.8;
  font-weight: 700;
  text-align: center;
}
.font-lead.left {
  text-align: left;
}
.font-lead.bu {
  font-size: clamp(1.6rem, 2.2vw, 2.4rem);
  line-height: 2;
  font-weight: 700;
  text-align: center;
  color: var(--primary-blue);
}
.font-big {
  font-size: clamp(1.8rem, 2.5vw, 4rem);
  font-weight: 700;
}
.triangle {
  width: 0;
  height: 0;
  border-style: solid;
  border-right: 70px solid transparent;
  border-left: 70px solid transparent;
  border-top: 60px solid var(--primary-yellow);
  border-bottom: 0;
  text-align: center;
  margin-inline: auto;
}
.triangle.orange {
  border-top: 60px solid var(--primary-orange);
}
.bold {
  font-weight: bold;
}
.large {
  font-size: 1.5em;
}
/* Typography */
h1 {
  font-weight: bold;
  line-height: 1;
}
h2, h3, h4, h5, h6 {
  font-weight: bold;
  line-height: 1.5;
}
h1 {
  font-size: clamp(2rem, 5vw, 5.4rem);
}
h2 {
  font-size: clamp(1.8rem, 3.5vw, 4.2rem);
}
h3 {
  font-size: clamp(1.6rem, 2vw, 1.8rem);
}
/* Header */
.site-header {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  transition: all var(--transition-normal);
  /*border-bottom: 1px solid var(--gray-200);*/
}
.site-header.scrolled {
  box-shadow: var(--shadow-lg);
  background: rgba(255, 255, 255, 0.98);
}
.main-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 0;
  position: relative;
}
.logo h1 {
  color: var(--primary-orange);
  font-size: clamp(1.6rem, 2.2vw, 2rem);
  margin: 0;
}
.desktop-nav {
  display: flex;
  list-style: none;
  gap: 2rem;
}
.desktop-nav a {
  text-decoration: none;
  font-size: clamp(1.4rem, 1.327rem + 0.36vw, 1.6rem);
  color: var(--gray-700);
  font-weight: 500;
  transition: color var(--transition-normal);
  padding: 0.5rem 0;
  position: relative;
}
.desktop-nav a:hover, .desktop-nav a:focus {
  color: var(--primary-orange);
}
.desktop-nav a:focus {
  outline: 2px solid var(--primary-blue);
  outline-offset: 2px;
  border-radius: 4px;
}
/* Mobile Menu */
.mobile-menu-toggle {
  display: none;
  flex-direction: column;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.5rem;
  z-index: 1001;
  transition: transform var(--transition-normal);
}
.mobile-menu-toggle:focus {
  outline: 2px solid var(--primary-blue);
  outline-offset: 2px;
  border-radius: 4px;
}
.hamburger-line {
  width: 25px;
  height: 3px;
  background: var(--primary-blue);
  margin: 3px 0;
  transition: var(--transition-normal);
  border-radius: 2px;
}
.mobile-menu-toggle.active .hamburger-line:nth-child(1) {
  transform: rotate(-45deg) translate(-6px, 7px);
}
.mobile-menu-toggle.active .hamburger-line:nth-child(2) {
  opacity: 0;
}
.mobile-menu-toggle.active .hamburger-line:nth-child(3) {
  transform: rotate(45deg) translate(-6px, -7px);
}
.mobile-nav {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: #ffffff;
  box-shadow: var(--shadow-lg);
  border-radius: 0 0 10px 10px;
  z-index: 999;
}
.mobile-nav.active {
  display: block;
  animation: slideDown 0.3s ease;
}
@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.mobile-nav-links {
  list-style: none;
  padding: 1rem 0;
}
.mobile-nav-links li {
  border-bottom: 1px solid var(--gray-200);
}
.mobile-nav-links li:last-child {
  border-bottom: none;
}
.mobile-nav-links a {
  display: block;
  padding: 1rem 2rem;
  text-decoration: none;
  color: var(--gray-700);
  font-weight: 500;
  transition: all var(--transition-normal);
}
.mobile-nav-links a:hover, .mobile-nav-links a:focus {
  background: var(--gray-50);
  color: var(--primary-orange);
}
.mobile-menu-overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 998;
  opacity: 0;
  transition: opacity var(--transition-normal);
}
.mobile-menu-overlay.active {
  display: block;
  opacity: 1;
}
/* Buttons */
.cta-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 1rem 4rem;
  border-radius: 50px;
  text-decoration: none;
  font-weight: bold;
  text-align: center;
  transition: all var(--transition-normal);
  border: none;
  cursor: pointer;
  font-size: clamp(1.6rem, 2.2vw, 2rem);
  font-family: inherit;
  position: relative;
  overflow: hidden;
}
.cta-button:focus {
  outline: 2px solid var(--primary-blue);
  outline-offset: 2px;
}
.cta-button.primary {
  background: linear-gradient(135deg, var(--primary-red), var(--primary-orange));
  color: #ffffff;
  box-shadow: 0 4px 15px rgba(220, 38, 38, 0.3);
  animation: bounce 2s infinite;
}
.cta-button.primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(220, 38, 38, 0.4);
}
.cta-button.primary:active {
  transform: translateY(0);
}
.cta-button.large {
  padding: 1.5rem 3rem;
  font-size: clamp(1.6rem, 2.5vw, 2rem);
}
/* AOS Animation Classes-アニメーションの定義- */
[data-aos] {
  opacity: 0;
  transition: opacity 0.6s ease, transform 0.6s ease;
}
[data-aos].aos-animate {
  opacity: 1;
}
[data-aos="fade-up"] {
  transform: translateY(30px);
}
[data-aos="fade-up"].aos-animate {
  transform: translateY(0);
}
[data-aos="fade-left"] {
  transform: translateX(30px);
}
[data-aos="fade-left"].aos-animate {
  transform: translateX(0);
}
[data-aos="fade-right"] {
  transform: translateX(-30px);
}
[data-aos="fade-right"].aos-animate {
  transform: translateX(0);
}
/* Section Styles-セクションのスタイル- */
section {
  padding: clamp(8rem, 16vw, 16rem) 0 clamp(2rem, 4vw, 4rem);
  position: relative;
}
/*section.offer-section {
  padding: clamp(8rem, 16vw, 16rem) 0 0;
}*/
section.affinity-section {
  padding: clamp(4rem, 8vw, 8rem) 0 clamp(2rem, 4vw, 4rem);
}
section.action-section, section.problem-section, section.narrowing-section {
  padding: clamp(4rem, 8vw, 8rem) 0 clamp(4rem, 8vw, 8rem);
  position: relative;
}
section::before {
  content: "";
  position: absolute;
  top: 100%;
  box-sizing: border-box;
  border-right: 50vw solid transparent;
  border-left: 50vw solid transparent;
  border-top: 100px solid var(--primary-sax);
  z-index: 10;
}
/*section.problem-section::before {
  border-top: 100px solid var(--gray-50);
}*/
section.problem-section::before {
  content: none;
}
section.affinity-section::before {
  border-top: 100px solid #ffffff;
}
section.benefits-section::before {
  border-top: 100px solid var(--primary-light-blue);
}
section.evidence-section::before {
  border-top: 100px solid #ffffff;
}
section.narrowing-section::before, section.offer-section::before, section.action-section::before {
  content: none;
}
.section-header {
  text-align: center;
  margin-bottom: clamp(20px, 4vw, 80px);
}
@media (max-width: 480px) {
  section::before {
    border-top: 50px solid var(--primary-sax);
  }
  section.affinity-section::before {
    border-top: 50px solid #ffffff;
  }
  section.benefits-section::before {
    border-top: 50px solid var(--primary-light-blue);
  }
  section.evidence-section::before {
    border-top: 50px solid #ffffff;
  }
}
/*===============================================

                  Hero Section

=================================================*/
.hero {
  background-color: var(--primary-sax);
  /* ↓背景画像2枚（上部・下部）を重ねる */
  background-image: url("../images/kika-flame1@0.75x-8.png"), url("../images/kika-flame2@0.75x-8.png");
  background-repeat: no-repeat, no-repeat;
  background-position: left top, left bottom;
  background-size: 100% auto, 100% auto;
  padding: clamp(6rem, 15vw, 6rem) 0 clamp(4rem, 10vw, 8rem);
  overflow: hidden;
  text-align: center;
}
.hero-image {
  position: relative;
}
.hero-image img {
  border-radius: 15px;
  box-shadow: var(--shadow-xl);
}
.hero-description {
  font-size: clamp(1.4rem, 2.5vw, 1.6rem);
  color: #ffffff;
  font-weight: 700;
}
.discount-badge {
  position: absolute;
  top: -1rem;
  right: -1rem;
  background: var(--primary-red);
  color: #ffffff;
  padding: clamp(0.75rem, 2vw, 1rem);
  border-radius: 50%;
  font-weight: bold;
  box-shadow: 0 4px 15px rgba(220, 38, 38, 0.3);
  font-size: clamp(0.8rem, 2vw, 1rem);
  animation: bounce 2s infinite;
}
@keyframes bounce {
  0%, 20%, 53%, 80%, 100% {
    transform: translate3d(0, 0, 0);
  }
  40%, 43% {
    transform: translate3d(0, -10px, 0);
  }
  70% {
    transform: translate3d(0, -5px, 0);
  }
  90% {
    transform: translate3d(0, -2px, 0);
  }
}
.campaign-pict {
  animation: pulse 2s infinite;
  margin-bottom: -15%;
  position: relative;
  z-index: 1;
}
.canpain-description {
  font-size: clamp(1.6rem, 2.2vw, 2.4rem);
  color: var(--primary-blue);
  font-weight: 700;
}
.speech-bubble {
  background: var(--primary-blue);
  color: #ffffff;
  padding: 1.5rem 4.5rem;
  border-radius: 100px;
  font-weight: bold;
  display: inline-block;
  font-size: clamp(1.4rem, 2.2vw, 2.4rem);
  position: relative;
  max-width: 100%;
}
.offer-section .speech-bubble {
  margin-left: 0%;
}
.speech-bubble:before {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -15px;
  border: 15px solid transparent;
  border-top: 30px solid var(--primary-blue);
}
/*.urgent-badge {
  background: linear-gradient(135deg, #2926dc, #00ffdc);
  color: #f6e42b;
  padding: 0.75rem 1.5rem;
  border-radius: 25px;
  font-weight: bold;
  display: inline-block;
  margin-bottom: 2rem;
  font-size: clamp(0.8rem, 3vw, 1.8rem);
  position: relative;
  max-width: 100%;
	animation: pulse 2s infinite;
}*/
@keyframes pulse {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 1;
    transform: scale(1.05);
  }
}
.big {
  font-size: 1.5em;
  color: var(--primary-pink);
}
.subtitle, .highlight {
  /*color: var(--primary-orange);*/
  color: #333333;
  font-size: clamp(2rem, 3.5vw, 4rem);
  line-height: 1.8;
  font-weight: 700;
  display: block;
  text-align: center;
}
.highlight-amount {
  /*color: var(--primary-red);*/
  color: var(--transition-normal);
  font-size: 1.2em;
  display: block;
  /*text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);*/
}
.flex.nayami-list {
  justify-content: center;
  gap: 2em;
}
.flex.nayami-list div {
  background-color: #ffffff;
  border-radius: 1em;
  padding-bottom: 1.2em;
}
.nayami-list div p {
  font-size: 2rem;
  /*color: #ffffff;*/
  font-weight: 700;
}
.benefit-badges {
  display: flex;
  gap: 3rem;
  flex-wrap: wrap;
  justify-content: center;
}
.badge-item {
  color: #ffffff;
  aspect-ratio: 1 / 1;
  width: 15%;
  background: linear-gradient(135deg, #2926dc, #00ffdc);
  padding: clamp(0.75rem, 2vw, 1rem);
  border-radius: 100vw;
  box-shadow: var(--shadow-md);
  display: flex;
  font-weight: bold;
  font-size: clamp(1.4rem, 2vw, 2rem);
  min-width: 90px;
  transition: transform var(--transition-normal);
  flex-direction: column;
  gap: 1em;
  justify-content: center;
  align-items: center;
}
.slash-subtitle {
  color: var(--primary-orange);
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: clamp(1.4rem, 2vw, 2.4rem);
  font-weight: 700;
  position: relative;
}
.contents-section .slash-subtitle {
  color: var(--primary-blue);
}
.slash-subtitle::before, .slash-subtitle::after {
  content: "";
  background-color: var(--primary-orange);
  height: 3px;
  width: 40px;
}
.contents-section .slash-subtitle::before, .contents-section .slash-subtitle::after {
  background-color: var(--primary-blue);
}
.slash-subtitle::after {
  content: "";
  background-color: var(--primary-orange);
  height: 3px;
  width: 40px;
}
.slash-subtitle::before {
  margin-right: 5px;
  transform: rotate(60deg);
}
.slash-subtitle::after {
  margin-left: 5px;
  transform: rotate(-60deg);
}
.answer {
  color: var(--primary-orange);
  font-size: clamp(2rem, 3.5vw, 4rem);
  line-height: 1.8;
  font-weight: 700;
  display: block;
}
/*.badge:hover {
  transform: translateY(-2px);
}*/
.hero .slash-subtitle {
  color: var(--primary-red);
  font-size: clamp(2rem, 2.5vw, 5rem);
}
.hero .slash-subtitle::before, .hero .slash-subtitle::after {
  background-color: var(--primary-blue);
}
.hero .subtitle, .hero .highlight {
  /* color: var(--primary-orange); */
  color: #333333;
  font-size: clamp(1.8rem, 3.5vw, 3rem);
  line-height: 1.5;
}
.hero .slash-subtitle::before, .hero .slash-subtitle::after {
  content: none;
}
@media (max-width: 1024px) {
  .speech-bubble {
    padding: 0.5rem 1rem;
  }
  .speech-bubble:before {
    border: 10px solid transparent;
    border-top: 15px solid var(--primary-blue);
  }
}
@media (max-width: 768px) {
  .flex.nayami-list {
    justify-content: space-between;
    gap: 0;
  }
  .flex.nayami-list div {
    padding-bottom: 0.5em;
  }
  .nayami-list div p {
    font-size: 1.4rem;
  }
  .nayami-list .col-23 {
    width: 32%;
  }
  .triangle {
    border-right: 30px solid transparent;
    border-left: 30px solid transparent;
    border-top: 30px solid var(--primary-yellow);
  }
  .benefit-badges {
    gap: 1rem;
  }
  .canpain-description {
    font-size: 1.8rem;
  }
  .sp-bl {
    display: block;
  }
  .sp-none {
    display: none;
  }
  /*.hero .slash-subtitle {
    margin-left: 25vw;
  }*/
  .hero .slash-subtitle::before {
    margin-right: 0px;
  }
  .hero .slash-subtitle::after {
    margin-left: 0px;
  }
  .hero .slash-subtitle::before, .hero .slash-subtitle::after {
    height: 2px;
    width: 20px;
  }
}
@media (max-width: 480px) {
  .col-20.badge-item {
    width: 30%;
  }
}
/*///////////////cta////////////////*/
.cta-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: center;
}
.cta-content h2 {
  font-size: clamp(1.5rem, 4vw, 3rem);
  margin-bottom: 4rem;
}
.cta-subtitle {
  font-size: clamp(1.2rem, 3vw, 1.5rem);
  font-weight: bold;
  margin-bottom: 2rem;
}
.cta-card {
  color: rgb(255, 255, 255);
  background: linear-gradient(135deg, var(--primary-red), var(--primary-orange));
  padding: 6rem 5rem;
  box-shadow: var(--shadow-xl);
}
.urgent-message {
  color: #ffffff /*var(--primary-red)*/ ;
  font-size: clamp(1.8rem, 2.5vw, 4rem);
  text-align: center;
}
.cta-description {
  margin-bottom: 2rem;
  text-align: center;
  color: #333333;
  background: #ffffff;
  border-radius: 15px;
  padding: 2em;
}
.contact-methods {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-bottom: 2rem;
}
.contact-method {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-weight: bold;
}
.contact-method .icon {
  font-size: 1.5rem;
}
.cta-image {
  position: relative;
}
.cta-image img {
  box-shadow: var(--shadow-xl);
}
@media (max-width: 1024px) {}
@media (max-width: 768px) {
  .cta-card .col-70 {
    width: 100%;
  }
  .cta-description {
    margin-bottom: 0rem;
  }
}
@media (max-width: 480px) {
  .cta-card {
    padding: 3rem;
  }
  .cta-description {
    padding: 1em;
  }
}
/*===============================================

               Problem Section

=================================================*/
.problem-section {
  background-color: var(--gray-50);
  background-image: url("../images/moyamoya-8.png");
  background-position: center top;
  background-repeat: no-repeat;
  background-size: cover;
}
.content-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: center;
}
.problem-items {
  list-style: none;
  display: grid;
  gap: 3rem;
}
.problem-item {
  position: relative;
  padding: 20px;
  background-color: var(--gray-100);
  color: #ffffff;
  font-size: clamp(1.6rem, 2.2vw, 2rem);
  font-weight: 700;
  border-radius: 50px;
  text-align: center;
}
.problem-item:nth-of-type(odd) {
  background-color: var(--gray-200);
}
/* 大きい丸 */
.problem-item::before {
  content: '';
  position: absolute;
  display: block;
  border-radius: 50%;
  background-color: var(--gray-100);
  left: -35px;
  bottom: 15px;
  width: 30px;
  height: 30px;
}
.problem-item:nth-last-of-type(odd)::before {
  background-color: var(--gray-200);
}
/* 小さい丸 */
.problem-item::after {
  content: '';
  position: absolute;
  display: block;
  border-radius: 50%;
  background-color: var(--gray-100);
  left: -55px;
  bottom: 10px;
  width: 15px;
  height: 15px;
}
.problem-item:nth-last-of-type(odd)::after {
  background-color: var(--gray-200);
}
.problem-image img {
  object-position: 7%;
}
/*.problem-item:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}*/
.problem-item .icon {
  font-size: 1.5rem;
  flex-shrink: 0;
}
.conclusion {
  text-align: center;
}
.sp-bl {
  display: none;
}
/*.highlight-conclusion {
  background: linear-gradient(135deg, #fed7aa, #fef3e2);
  padding: 1.5rem;
  border-radius: 10px;
  font-weight: bold;
  color: var(--primary-orange);
  display: inline-block;
  max-width: 100%;
}*/
@media (max-width: 1024px) {}
@media (max-width: 768px) {
  .problem-items {
    width: 90%;
    margin-left: auto;
  }
}
@media (max-width: 480px) {
  .problem-items {
    width: 85%;
  }
  .problem-item {
    padding: 0.5em;
  }
  .problem-item::before {
    width: 25px;
    height: 25px;
  }
  .triangle {
    border-right: 20px solid transparent;
    border-left: 20px solid transparent;
  }
  .triangle.orange {
    border-top: 30px solid var(--primary-orange);
  }
}
/*===============================================

                 Affinity Section

=================================================*/
.affinity-grid {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  gap: 2rem;
}
/*温度計*/
.heat-loss-card {
  background: #ffffff;
  border-radius: 15px;
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  transition: transform var(--transition-normal);
}
.heat-loss-card.winter {
  border: 5px solid var(--primary-blue);
}
.heat-loss-card.summer {
  border: 5px solid var(--primary-red);
}
.card-header {
  padding: 1.5rem;
  font-weight: bold;
}
.heat-loss-card.winter .card-header {
  background: var(--primary-blue);
  color: #ffffff;
  text-align: center;
}
.heat-loss-card.summer .card-header {
  background: var(--primary-red);
  color: #ffffff;
  text-align: center;
}
.card-content {
  padding: 1.5rem;
}
.stat-item {
  display: grid;
  grid-template-columns: 1fr 2fr 1fr;
  gap: 1rem;
  align-items: center;
  margin-bottom: 1rem;
}
.stat-bar {
  width: 90%;
  height: 1rem;
  background: var(--gray-200);
  border-radius: 5px;
  overflow: hidden;
}
.bar-fill {
  height: 100%;
  border-radius: 5px;
  width: 0;
  transition: width 1.5s ease-in-out;
}
.animated-bar.animate {
  width: var(--target-width);
}
.winter-primary {
  background: var(--primary-blue);
}
.winter-secondary {
  background: #60a5fa;
}
.winter-tertiary {
  background: #93c5fd;
}
.winter-quaternary {
  background: #dbeafe;
}
.summer-primary {
  background: var(--primary-red);
}
.summer-secondary {
  background: #f87171;
}
.summer-tertiary {
  background: #fca5a5;
}
.summer-quaternary {
  background: #fecaca;
}
.stat-value.primary {
  font-weight: bold;
}
.thermal-image {
  display: flex;
  align-items: center;
}
.thermal-image img {
  border-radius: 10px;
  box-shadow: var(--shadow-md);
}
.highlight-number {
  color: var(--primary-orange);
  font-size: 1.2em;
}
@media (max-width: 1024px) {}
@media (max-width: 768px) {}
@media (max-width: 480px) {
  .affinity-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .affinity-section .col-80 {
    width: 100%;
  }
}
/*===============================================

                 Solution Section

=================================================*/
.solution-section {
  background-color: var(--primary-sax);
  /* ↓背景画像2枚（上部）を重ねる */
  background-image: url("../images/kika-flame1@0.75x-8.png");
  background-repeat: no-repeat;
  background-position: left top;
  background-size: 100% auto;
}
.moving-banner {
  background: linear-gradient(135deg, #2926dc, #00ffdc);
  color: #ffffff;
  padding: 1.5rem 4.5rem;
  border-radius: 100px;
  font-weight: bold;
  display: inline-block;
  font-size: clamp(1.8rem, 2.5vw, 4rem);
  position: relative;
  max-width: 100%;
  animation: bounce 2s infinite;
}
@media (max-width: 1024px) {}
@media (max-width: 768px) {}
@media (max-width: 480px) {}
/*===============================================

                Benefits Section

=================================================*/
/*.benefits-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: center;
}*/
.benefits-section {
  background: var(--primary-light-blue);
}
.benefits-section h3 {
  font-size: 3rem
}
.benefits-section .font-lead.bu {
  font-size: 2.4rem;
  line-height: 2;
  font-weight: 700;
  text-align: center;
  background: var(--primary-blue);
  color: #ffffff;
}
.benefit-item {
  display: flex;
  gap: 1rem;
  padding: 1.5rem 4.5rem 1.5rem 1.5rem;
  background: var(--primary-sax);
  border-radius: 15px;
  box-shadow: var(--shadow-sm);
  margin-bottom: 2em;
  transition: transform var(--transition-normal), box-shadow var(--transition-normal);
  align-items: center;
}
.benefit-item:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-lg);
}
.benefit-icon {
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  flex-shrink: 0;
}
.benefit-content h3 {
  margin-bottom: 0.5rem;
  font-size: clamp(1.8rem, 3vw, 3.4rem);
  font-weight: 700;
  border-bottom: 1px solid;
  /*color: #2563eb;*/
  padding: 0.5em;
}
.benefit-content p {
  padding: 1em;
  /*color: #2563eb;*/
}
/*.benefit-content p {
  color: var(--gray-600);
  font-size: 0.9rem;
  margin: 0;
}*/
.benefits-image {
  position: relative;
}
.benefits-image img {
  border-radius: 15px;
  box-shadow: var(--shadow-xl);
}
/*.savings-badge {
  position: absolute;
  top: 1rem;
  right: 1rem;
  background: var(--primary-green);
  color: #ffffff;
  padding: 0.75rem 1rem;
  border-radius: 10px;
  font-weight: bold;
  font-size: clamp(0.8rem, 2vw, 1rem);
}*/
@media (max-width: 1024px) {}
@media (max-width: 768px) {}
@media (max-width: 480px) {
  .benefit-item {
    padding: 1.5rem;
  }
  .benefit-item .col-25 {
    width: 50%;
  }
  .benefit-item .col-70 {
    width: 100%;
  }
}
/*===============================================

                Evidence Section

=================================================*/
.improvement-showcase {
  /*background: linear-gradient(135deg, #c5fdff, #3989f4);*/
  padding: 4em; /* 4rem 1em*/
  border-radius: 15px;
  text-align: left;
  background: var(--primary-sax);
}
.improvement-showcase .flex {
  align-items: center;
  text-align: left;
  color: #ffffff;
}
/* Slider Styles */
.before-after-slider {
  margin-top: 2rem;
}
.slider-container {
  position: relative;
  max-width: 500px;
  margin: 0 auto;
  overflow: hidden;
  border-radius: 10px;
  box-shadow: var(--shadow-lg);
}
.big-text {
  font-size: 6rem;
}
.catch-lead {
  font-size: 2rem;
  font-weight: 700;
  color: #ffffff;
}
.small-text {
  font-size: 1.2rem;
}
.ye-bold {
  font-weight: 700;
  line-height: 1.5;
  color: var(--primary-yellow);
  font-size: 2.6rem;
}
.pi-bold {
  font-weight: 700;
  line-height: 1.5;
  color: var(--primary-pink);
  font-size: clamp(1.6rem, 2vw, 2rem);
}
.slide img {
  width: 100%;
  height: auto;
  object-fit: cover;
  aspect-ratio: 3 / 2;
}
.slide-caption {
  text-align: center;
  padding: 1rem;
  background: #ffffff;
  color: #333333;
  font-weight: 700;
  font-size: 1.4rem;
  margin: 0;
}
.dli-caret-right {
  display: inline-block;
  vertical-align: middle;
  color: #ffffff;
  line-height: 1;
  width: 0;
  height: 0;
  border-style: solid;
  border-color: transparent;
  border-width: 0.5em 0.9em;
  border-left-color: currentColor;
  border-right: 0;
}
/*.column {
  background-color: #fff9c7;
  padding: 5em 5em 2em;
  border-radius: 20px;
}*/
.simple-subtitle {
  font-size: clamp(1.6rem, 2.2vw, 2.4rem);
  font-weight: 700;
  position: relative;
  display: inline-block;
  padding: 0 55px;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
}
.simple-subtitle:before, .simple-subtitle:after {
  content: '';
  position: absolute;
  top: 50%;
  display: inline-block;
  width: 45px;
  height: 3px;
  background-color: #333333;
}
.simple-subtitle:before {
  left: 5px;
}
.simple-subtitle:after {
  right: 5px;
}
.line-subtitle {
  color: var(--primary-light-blue);
  border-top: solid 2px var(--primary-light-blue);
  border-bottom: solid 2px var(--primary-light-blue);
  padding: 8px 16px 12px;
  font-size: clamp(1.8rem, 2.5vw, 3rem);
  letter-spacing: 0.1em;
  font-weight: 700;
  display: block;
  box-sizing: border-box;
  text-align: center;
  margin-bottom: 1.5em;
  margin-inline: auto;
}
/*スライダー*/
.testimonials-slider .slide {
  display: none;
  text-align: center;
}
.testimonials-slider .slide.active {
  display: block;
  animation: fadeIn 0.5s ease;
}
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.testimonials-slider .slider-controls {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  margin-top: 1rem;
}
.testimonials-slider .slider-btn {
  background: var(--primary-orange);
  color: #ffffff;
  border: none;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  cursor: pointer;
  font-size: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all var(--transition-normal);
}
.testimonials-slider .slider-btn:hover, .slider-btn:focus {
  background: var(--primary-red);
  transform: scale(1.1);
}
.testimonials-slider .slider-btn:focus {
  outline: 2px solid var(--primary-blue);
  outline-offset: 2px;
}
.testimonials-slider .slider-dots {
  display: flex;
  gap: 0.5rem;
}
.testimonials-slider .dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: none;
  background: var(--gray-50);
  cursor: pointer;
  transition: all var(--transition-normal);
}
.testimonials-slider .dot:focus {
  outline: 2px solid var(--primary-blue);
  outline-offset: 2px;
}
.testimonials-slider .dot.active {
  background: var(--primary-orange);
}
.testimonials-slider .dli-caret-right {
  display: inline-block;
  vertical-align: middle;
  color: #ffffff;
  line-height: 1;
  width: 0;
  height: 0;
  border-style: solid;
  border-color: transparent;
  border-width: 0.7em 1em;
  border-left-color: currentColor;
  border-right: 0;
}
/* お客様の声 */
.testimonials-section {
  background: var(--gray-50);
}
.testimonials-slider {
  /*max-width: 900px;*/
  margin: 0 auto;
}
.testimonial-container {
  position: relative;
  overflow: hidden;
  border-radius: 15px;
  background: #fffcdd;
  box-shadow: var(--shadow-lg);
}
.testimonial {
  display: none;
  padding: 4rem;
}
.testimonial.active {
  display: block;
  animation: fadeIn 0.5s ease;
}
.testimonial-content {
  display: flex;
  gap: 2rem;
  align-items: center;
}
.testimonial-image img {
  /*width: 80px;
  height: 80px;*/
  width: 80%;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  object-fit: cover;
}
.testimonial-text {
  flex: 1;
}
.testimonial-text blockquote {
  font-size: clamp(1.6rem, 2vw, 2rem);
  font-weight: 700;
  line-height: 1.6;
  color: var(--gray-700);
  margin-bottom: 2em;
  text-align: left;
}
.testimonial-text cite {
  display: block;
  font-style: normal;
  text-align: right;
}
.testimonial-text strong {
  color: var(--gray-900);
  font-size: 1.8rem;
  font-size: clamp(1.6rem, 1.8vw, 1.8rem);
}
.testimonial-meta {
  display: block;
  color: var(--gray-600);
  font-size: 1.4rem;
  margin-top: 0.25rem;
}
.testimonial-controls {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.5rem;
  margin-top: 2rem;
}
.testimonial-btn {
  background: #ff762e;
  color: #ffffff;
  border: none;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  cursor: pointer;
  font-size: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-bottom: 7px;
  transition: all var(--transition-normal);
}
.testimonial-btn:hover, .testimonial-btn:focus {
  background: var(--primary-red);
  transform: scale(1.1);
}
.testimonial-btn:focus {
  outline: 2px solid var(--primary-blue);
  outline-offset: 2px;
}
.testimonial-dots {
  display: flex;
  gap: 2.5rem;
}
.number1, .number2 {
  font-size: clamp(1.6rem, 2.2vw, 2.4rem);
  position: relative;
  /*padding-top: 1.5em;*/
  color: var(--primary-blue);
}
/*.number1::before, .number2::before {
  position: absolute;
  bottom: 35px;
  left: 0;
  z-index: -1;
  color: #ffffff;
  font-size: 5em;
  line-height: 1;
  content: attr(data-number);
  pointer-events: none;
}*/
@media (max-width: 1024px) {}
@media (max-width: 768px) {}
@media (max-width: 480px) {
  .evidence-section .container > .flex {
    flex-direction: column;
    gap: 2em;
  }
  .evidence-section .col-48 {
    width: 100%;
  }
  .improvement-showcase {
    padding: 3em 3rem 1em;
  }
  .slide-caption {
    padding: 0.5rem;
    font-size: 1.2rem;
  }
  .number1::before, .number2::before {
    bottom: 18px;
  }
  .evidence-section .col-70 {
    width: 100%;
  }
  .evidence-section .col-40 {
    width: 50%;
  }
  .testimonial .col-60 {
    width: 100%;
  }
  .testimonial {
    padding: 2rem;
    /*height: 100vw;*/
  }
  .testimonial-dots {
    gap: 1rem;
  }
  .testimonial-btn {
    width: 30px;
    height: 30px;
    padding-bottom: 3px;
  }
  .mb-2em.simple-subtitle {
    margin-bottom: 1em;
  }
  .col-48.subsidy-example {
    width: 100%;
  }
  .savings-highlight {
    margin-bottom: 0;
  }
}
/*===============================================

                Contents Section

=================================================*/
.contents-section {
  background-color: var(--primary-sax);
  /* ↓背景画像2枚（上部）を重ねる */
  background-image: url("../images/kika-flame1@0.75x-8.png");
  background-repeat: no-repeat;
  background-position: left top;
  background-size: 100% auto;
}
.contents-section .moving-banner {
  background: linear-gradient(135deg, #2926dc, #00ffdc);
  color: var(--primary-yellow);
  padding: 2.5rem 8.5rem;
  border-radius: 100px;
  font-weight: bold;
  display: inline-block;
  font-size: clamp(0.8rem, 3vw, 4rem);
  position: relative;
  max-width: 100%;
  animation: bounce 2s infinite;
}
/*補助額事例*/
.example {
  background: #ffffff;
  padding: 4em 2em 1em;
  border-radius: 15px;
}
.contents-calculator {
  background: #ffffff;
  padding: 2rem;
  border-radius: 15px;
  box-shadow: var(--shadow-lg);
  /* margin-bottom: 3rem; */
  /* max-width: 600px; */
  margin-left: auto;
  margin-right: auto;
}
.contents-calculator h3 {
  text-align: center;
  color: var(--primary-green);
  margin-bottom: 2rem;
}
.calculator-form {
  display: grid;
  gap: 1.5rem;
}
.form-group {
  display: grid;
  gap: 0.5rem;
}
.form-group label {
  font-weight: bold;
  color: var(--gray-700);
}
.form-group input, .form-group select {
  padding: 0.75rem;
  border: 2px solid var(--gray-200);
  border-radius: 8px;
  font-size: 1rem;
  transition: border-color var(--transition-normal);
}
.form-group input:focus, .form-group select:focus {
  outline: none;
  border-color: var(--primary-blue);
}
.form-help {
  color: var(--gray-500);
  font-size: 1.4rem;
}
.calculator-result {
  background: var(--gray-50);
  padding: 1.5rem;
  border-radius: 10px;
  margin-top: 1rem;
}
.result-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.5rem 0;
  border-bottom: 1px solid var(--gray-200);
}
.result-item:last-child {
  border-bottom: none;
}
.result-item.highlight {
  background: #ffffff;
  padding: 1rem;
  border-radius: 8px;
  margin-top: 1rem;
  font-weight: bold;
  font-size: 2.4rem;
}
.result-label {
  font-weight: 500;
}
.result-value {
  font-weight: bold;
  /*font-size: 1.1rem;*/
}
/*補助金シュミレーター*/
.subsidy-example {
  background: #ffffff;
  border-radius: 15px;
  overflow: hidden;
  box-shadow: var(--shadow-lg);
}
.subsidy-example .card-header.green {
  background: var(--primary-blue);
  color: #ffffff;
  /*display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;*/
  padding: 1.5rem;
}
.subsidy-example .card-header.green h3 {
  margin-bottom: 0px;
  font-size: clamp(2rem, 2.2vw, 2.4rem);
}
.table-container {
  overflow-x: auto;
  margin-bottom: 2rem;
}
.subsidy-table {
  width: 100%;
  border-collapse: collapse;
  /*border: 1px solid var(--primary-light-blue);*/
  text-align: center;
}
.subsidy-table th, .subsidy-table td {
  padding: clamp(0.5rem, 2vw, 1rem);
  text-align: left;
  /*border: 1px solid var(--primary-light-blue);*/
}
.subsidy-table th {
  width: 20%;
  background: var(--primary-sax);
  font-weight: bold;
  text-align: center;
}
.subsidy-table td:not(:first-child) {
  text-align: right;
}
.total-row {
  background: #fffcdd;
}
.savings-highlight {
  text-align: center;
  font-size: 2.4rem;
  font-weight: bold;
  color: var(--primary-red);
  margin-bottom: 2rem;
}
.contents-section .line-subtitle {
  color: #2563eb;
}
@media (max-width: 1024px) {}
@media (max-width: 768px) {}
@media (max-width: 480px) {
  .contents-section .moving-banner {
    padding: 1.5rem 4.5rem;
    font-size: clamp(1.8rem, 2.5vw, 4rem);
  }
  .example {
    padding: 2em 1em 01em;
  }
  .subsidy-example .card-header.green h3 {
    margin-bottom: 0px;
  }
}
/*===============================================

                Offer Section

=================================================*/
.offer-section .section-header {
  margin-bottom: 0;
}
.terms-list {
  list-style-type: disc;
  list-style-position: inside;
  padding: 1em;
  border: 2px solid #333333;
}
.terms-list li {
  padding: .5em;
  font-weight: 700;
}
.terms-list li:not(:last-child) {
  border-bottom: 1px dashed #333333;
}
.terms-list li::marker {
  color: #333333;
  font-size: 1.1em;
}
@media (max-width: 1024px) {}
@media (max-width: 768px) {}
@media (max-width: 480px) {
  .offer-section .col-80 {
    width: 90%;
  }
}
/*===============================================

                Narrowing Section

=================================================*/
/*ul.osusume-list {
  ist-style-type: none;
  padding: 1em 3em 3em;
  border: 2px solid var(--primary-blue);
  background-color: var(--primary-blue);
}*/
ul.osusume-list li {
  display: flex;
  align-items: center;
  gap: 1em;
  font-size: clamp(1.6rem, 2.2vw, 2rem);
  font-weight: 700;
  color: var(--primary-blue);
  border-left: solid 10px var(--primary-blue);
  background: var(--primary-sax);
  margin-bottom: 1em;
  padding: 1em;
}
/*ul.osusume-list li::before {
	    display: inline-block;
    width: 28px;
    height: 18px;
    border-bottom: 5px solid var(--primary-red);
    border-left: 5px solid var(--primary-red);
    transform: rotate(-45deg) translateY(-1.5px);
    content: '';
}*/
.osusume-list li img {
  width: 3%;
}
.osusume-list li img.p1 {
  padding: 0.2em;
}
.narrowing-section .mid-subtitle {
  color: #23abe7;
}
@media (max-width: 1024px) {}
@media (max-width: 768px) {}
@media (max-width: 480px) {
  .osusume-list li img {
    width: 10%;
  }
}
/*===============================================

                 Action Section

=================================================*/
.action-section {
  background: linear-gradient(135deg, var(--primary-red), var(--primary-orange));
  color: #ffffff;
  padding: clamp(4rem, 10vw, 5rem) 0;
}
.free-consultation-badge {
  position: absolute;
  top: -1rem;
  right: -1rem;
  background: #fbbf24;
  color: var(--gray-900);
  padding: clamp(0.75rem, 2vw, 1rem);
  border-radius: 50%;
  font-weight: bold;
  box-shadow: 0 4px 15px rgba(251, 191, 36, 0.3);
  animation: bounce 2s infinite;
  font-size: clamp(0.8rem, 2vw, 1rem);
}
.disclaimer {
  opacity: 0.9;
  font-size: 1.1rem;
}
.action-section .cta-card {
  color: rgb(255, 255, 255);
  background: transparent;
  padding: 0;
}
.cta-content .disc {
  list-style-type: disc;
  font-size: 1.6rem;
  line-height: 2;
  font-weight: 700;
}
@media (max-width: 1024px) {}
@media (max-width: 768px) {}
@media (max-width: 480px) {
  .cta-content .disc {
    width: 92%;
    margin-left: auto;
  }
}
/*===============================================

                     Footer

=================================================*/
.site-footer {
  background: #333333;
  padding: 5rem 0;
  text-align: center;
  color: #ffffff;
}
.site-footer .disclaimer {
  font-size: 1.4rem;
}
.footer-name {
  font-size: 3rem;
  padding-bottom: 0.5em;
  margin-bottom: 0.5em;
  border-bottom: 1px solid #ffffff;
}
.footer-address {
  font-size: 2.4rem;
  padding-bottom: 0.5em;
}
.footer-tel, .footer-fax {
  font-size: 1.8rem;
}
.footer-hp a {
  text-decoration: underline;
}
@media (max-width: 1024px) {}
@media (max-width: 768px) {
  .footer-name {
    font-size: 2rem;
  }
  .footer-address {
    font-size: 1.8rem;
  }
}
@media (max-width: 480px) {}
/* プライバシーポリシーのモーダルとリンク */
.modal {
  position: fixed;
  inset: 0;
  display: none;
  z-index: 1000
}
.modal.active {
  display: block
}
.modal-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, .5)
}
.modal-content {
  position: relative;
  margin: 5vh auto;
  max-width: 800px;
  background: #fff;
  border-radius: 12px;
  overflow: auto;
  max-height: 90vh;
  padding: 24px
}
.modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px
}
.modal-close {
  font-size: 28px;
  line-height: 1;
  border: 0;
  background: transparent;
  cursor: pointer
}
.privacy-content {
  line-height: 1.8
}
.privacy-content a {
  color: var(--primary-blue, #2563eb);
  text-decoration: underline;
}
.privacy-content a:hover, .privacy-content a:focus {
  color: var(--primary-red, #dc2626);
}
/* フッターのプライバシーポリシーリンク */
.privacy-link {
  color: #2563eb; /* 青 */
  text-decoration: underline; /* 下線 */
  text-underline-offset: 2px; /* 下線を少し離す */
  text-decoration-thickness: 2px; /* 下線をやや太く */
  font-weight: 500; /* ちょい強調（任意） */
}
/* ホバー＆キーボードフォーカス時の見え方強化 */
.privacy-link:hover, .privacy-link:focus-visible {
  color: #1d4ed8; /* 少し濃い青 */
  outline: 2px solid transparent; /* ブラウザ差吸収 */
  text-decoration-color: currentColor;
}
/* 既読でも色を変えない（紫回避） */
.privacy-link:visited {
  color: #2563eb;
}
/*===============================================

                Responsive Design

=================================================*/
@media (max-width: 1024px) {
  .evidence-grid {
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
  }
  .thermal-image {
    grid-column: 1 / -1;
    justify-content: center;
  }
}
@media (max-width: 768px) {
  .desktop-nav {
    display: none;
  }
  .mobile-menu-toggle {
    display: flex;
  }
  .main-nav {
    padding: 0.5rem 0;
  }
  .hero-content, .content-grid, .evidence-grid, .benefits-grid, .cta-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .contact-methods {
    grid-template-columns: 1fr;
  }
  .testimonial-content {
    flex-direction: column;
    text-align: center;
    gap: 1rem;
  }
  .testimonial-image {
    align-self: center;
  }
  .benefit-item {
    flex-direction: column;
    text-align: center;
  }
  .benefit-icon {
    align-self: center;
  }
  .name-inputs {
    grid-template-columns: 1fr;
  }
  .modal-content {
    margin: 1rem;
    max-height: calc(100vh - 2rem);
  }
  .modal-header, .modal-body {
    padding: 1.5rem;
  }
  .slider-controls, .testimonial-controls {
    flex-wrap: wrap;
    gap: 1.5rem;
  }
}
@media (max-width: 480px) {
  .container {
    padding: 0 15px;
  }
  .hero .slash-subtitle {
    margin-top: 10vw;
  }
  .cta-button {
    padding: 0.75rem 1.5rem;
    font-size: 1.2rem;
  }
  .cta-button.large {
    padding: 1rem 2rem;
  }
  .subsidy-table {
    font-size: 0.7rem;
  }
  .subsidy-table th, .subsidy-table td {
    padding: 0.25rem;
  }
  .modal-header, .modal-body {
    padding: 1rem;
  }
  .slider-btn, .testimonial-btn {
    width: 35px;
    height: 35px;
    font-size: 1.2rem;
  }
}
/* Print Styles */
@media print {
  .site-header, .cta-button, .urgent-badge, .discount-badge, .savings-badge, .free-consultation-badge, .modal, .slider-controls, .testimonial-controls {
    display: none;
  }
  .hero {
    margin-top: 0;
  }
  * {
    background: white !important;
    color: black !important;
  }
}
/* Accessibility Improvements */
@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  [data-aos] {
    opacity: 1 !important;
    transform: none !important;
  }
}
/* Focus Styles */
a:focus, button:focus, input:focus, select:focus, textarea:focus {
  outline: 2px solid var(--primary-blue);
  outline-offset: 2px;
}
/* High Contrast Mode */
@media (prefers-contrast: high) {
  .hero, .problem-section, .subsidy-section, .testimonials-section {
    background: #ffffff;
  }
  .badge, .problem-item, .heat-loss-card, .benefit-item {
    border: 2px solid black;
  }
}
/* Loading States */
.loading {
  opacity: 0.7;
  pointer-events: none;
}
/* Touch Improvements */
@media (hover: none) and (pointer: coarse) {
  .cta-button:hover, .slider-btn:hover, .testimonial-btn:hover {
    transform: none;
  }
  .benefit-item:hover, .problem-item:hover, .heat-loss-card:hover {
    transform: none;
  }
}