/* =================== Base CSS =================== */

    :root {
      --orange: #ed5a24;
      --orange-dark: #d94b18;
      --orange-soft: #fff0e8;
      --cream: #fff6eb;
      --cream-2: #fbf3e3;
      --ink: #33302e;
      --muted: #6b625c;
      --line: #f4c4a9;
      --shadow: 0 14px 34px rgba(98, 58, 35, .12);
      --radius: 24px;
      --max: 980px;
    }

    * {
      box-sizing: border-box;
    }

    html {
      scroll-behavior: smooth;
      scroll-padding-top: 90px;
    }

    body {
      margin: 0;
      color: var(--ink);
      font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
      line-height: 1.75;
      background: #fff;
      letter-spacing: 0;
    }

    img,
    svg {
      max-width: 100%;
      height: auto;
      vertical-align: middle;
    }

    .sp-only {
      display: none;
    }

    a {
      color: inherit;
      text-decoration: none;
      transition: opacity .2s ease;
    }

    a:hover,
    a:focus-visible {
      opacity: .5;
    }

	#windowScrollTop{
		position:fixed;
		z-index:9999;
		bottom:10px;
		right:20px;
		display:none;
	}
	#windowScrollTop a{
		font-size:12px;
		color:#fff;
		text-decoration:none;
		width: 85px;
		height: 85px;
		background-color:#8a8383;
		display:inline-block;
		text-align:center;
		border-radius:50%;
	}
	#windowScrollTop a:hover{
		opacity:.7;
	}
	#windowScrollTop a span{
		padding-top:45px;
		display:inline-block;
		line-height:1.2;
	}
	#windowScrollTop a span::after{
		content: "";
		display: block;
		background:url(https://www.harmonick.co.jp/client_info/HARMONICK/view/userweb/images/icon-pagetop.png) no-repeat;
		background-size:contain;
		width: 40px;
		height: 35px;
		position: absolute;
		margin: auto;
		top: 7px;
		right: 0;
		left: 0;
	}

    .site-header {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 1000;
      height: 90px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 0;
      padding: 0 20px;
      border-bottom: 1px solid #eee;
      background: #fff;
    }

    main {
      padding-top: 90px;
    }

    .brand {
      display: inline-flex;
      align-items: center;
      flex: 0 1 clamp(150px, 20vw, 280px);
      min-width: 0;
    }

    .brand img {
      display: block;
      width: 150px;
      height: auto;
    }

    .header-nav {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      flex: 1 1 auto;
      min-width: 0;
      gap: 0;
      color: #c93212;
      font-size: clamp(13px, 1.25vw, 17px);
      font-weight: 800;
      line-height: 1.45;
      white-space: nowrap;
    }

    .header-nav a {
      flex: 1 1 0;
      min-width: 0;
      max-width: 210px;
      min-height: 48px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 0 18px;
      border-left: 1px solid #f08a18;
      text-align: center;
    }

    .hero {
      position: relative;
      height: 540px;
      max-height: 540px;
      display: flex;
      align-items: center;
      overflow: hidden;
      color: #fff;
      text-align: center;
      background-color: #ff5345;
      background-image: url("../img/title_bg.jpg");
      background-position: center top;
      background-repeat: no-repeat;
      background-size: auto 540px;
    }

    .hero-inner {
      position: relative;
      z-index: 2;
      width: min(calc(100% - 64px), 760px);
      margin: 0 auto;
      padding: 80px 0 30px 0;
    }

    .hero-label {
      display: block;
      width: 316px;
      margin: 48px auto 0 auto;
    }

    .hero h1 {
      margin: 14px 0;
      line-height: 1.16;
      text-shadow: 0 3px 0 rgba(154, 60, 23, .16);
    }

    .hero-title-logo {
      display: block;
      width: min(100%, 438px);
      margin: 0 auto;
    }

    .hero-copy {
      margin: 0 0 26px;
      font-size: 24px;
      line-height: 1.55;
    }

    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 12px;
      min-height: 58px;
      padding: 14px 48px;
      border-radius: 999px;
      background: var(--orange);
      color: #fff;
      font-size: 20px;
      font-weight: 800;
      line-height: 1.3;
      box-shadow: 0 0 8px rgba(0, 0, 0, .2);
    }

    .hero .btn {
      position: relative;
      min-height: 58px;
      font-size: 23px;
      background: #fff;
      color: var(--orange);
      box-shadow: 0 0px 12px rgba(131, 45, 12, .22);
    }

    .hero .btn::before,
    .hero .btn::after {
      position: absolute;
      top: 50%;
      width: 51px;
      height: 72px;
      background: url("../img/btn_kouka.svg") center / contain no-repeat;
      content: "";
      pointer-events: none;
      transform: translateY(-50%);
    }

    .hero .btn::before {
      left: -40px;
      top:6px;
    }

    .hero .btn::after {
      right: -40px;
      top:6px;
      transform: translateY(-50%) scaleX(-1);
    }

    .btn .circle {
      width: 22px;
      height: 22px;
      border: 2px solid currentColor;
      border-radius: 50%;
      display: inline-grid;
      place-items: center;
      font-size: 12px;
      line-height: 1;
      flex: 0 0 auto;
    }

    .ribbon {
      position: relative;
      z-index: 5;
      width: 100%;
      height: 86px;
      margin: -40px auto -50px;
      background: url("../img/ribbon_bg.png") center top repeat-x;
      pointer-events: none;
    }

    .ribbon::before {
      position: absolute;
      inset: 0;
      background: url("../img/ribbon.png") center top / auto 86px no-repeat;
      content: "";
    }

    .ribbon span {
      display: none;
    }

    .section {
      padding: 96px 20px;
      text-align: center;
    }

    .section-inner {
      width: min(100%, var(--max));
      margin: 0 auto;
    }

    .section-cream {
      background: var(--cream);
    }

    .section-white {
      background: #fff;
    }

    .section-stripe {
      background:
        repeating-linear-gradient(0deg, rgba(224, 226, 211, .58) 0 8px, rgba(255, 255, 255, 0) 8px 18px),
        #f3f2e9;
    }

    .section-dot {
      background:
        radial-gradient(rgba(244, 139, 84, .18) 2px, transparent 1px) 0 0 / 18px 18px,
        #fff6eb;
    }

    .section-label {
      margin: 10px 0 26px;
      color: #7e746d;
      font-size: medium;
      font-weight: bold;
      letter-spacing: .28em;
      line-height: 1;
    }

    .section-label::after {
      display: block;
      width: 112px;
      height: 22px;
      margin: 10px auto 0;
      background: url("../img/read_icon.svg") center / contain no-repeat;
      content: "";
    }

    h2 {
      margin: 0 0 24px;
      font-size: 38px;
      line-height: 1.48;
      font-weight: 800;
      overflow-wrap: anywhere;
    }

    h2 .accent,
    .accent {
      color: var(--orange);
    }

    .lead {
      max-width: 650px;
      margin: 0 auto 36px;
      color: var(--muted);
      font-size: 18px;
      line-height: 1.9;
      font-weight: normal;
    }

    .cards-3,
    .feature-grid,
    .reason-grid,
    .occasion-grid,
    .safe-grid,
    .steps-grid {
      display: grid;
      gap: 24px;
    }

    .cards-3 {
      grid-template-columns: repeat(3, 1fr);
      max-width: 720px;
      margin: 0 auto;
    }

    .feature-grid {
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 24px;
      max-width: var(--max);
      margin: 0 auto;
    }

    .point-title {
      margin: 0 0 4px;
      color: var(--orange);
      font-size: x-large;
      font-weight: 800;
    }

    .mini-illust {
      position: relative;
      display: grid;
      place-items: center;
      aspect-ratio: 1 / 1;
      border-radius: 12px;
      overflow: hidden;
      background: var(--bg, #dff4f2);
    }

    .feature-card {
      position: relative;
      display: block;
      min-height: 400px;
      overflow: hidden;
      padding-bottom: 70px;
      border-radius: 18px;
      background: #fff;
      box-shadow: 0 4px 4px rgba(0, 0, 0, .16);
      text-align: left;
      margin-top:30px;
    }

    .feature-illust {
      position: relative;
      display: block;
      width: 100%;
      aspect-ratio: 1 / 1;
      overflow: hidden;
      border-radius: 0;
      background: var(--bg, #dff4f2);
    }

    .feature-card:nth-child(1) .feature-illust {
      background: url("../img/feature_1.jpg") center / cover no-repeat;
    }

    .feature-card:nth-child(2) .feature-illust {
      background: url("../img/feature_2.jpg") center / cover no-repeat;
    }

    .feature-card:nth-child(3) .feature-illust {
      background: url("../img/feature_4.jpg") center / cover no-repeat;
    }

    .feature-card:nth-child(4) .feature-illust {
      background: url("../img/feature_3.jpg") center / cover no-repeat;
    }

    .mini-illust img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .feature-illust::before,
    .feature-illust::after {
      display: none;
    }

    .feature-illust::before {
      width: 42%;
      aspect-ratio: 1;
      border-radius: 50%;
      background: rgba(255,255,255,.82);
      box-shadow:
        42px 18px 0 -10px rgba(255,255,255,.72),
        -34px 24px 0 -14px rgba(255,255,255,.66);
      content: "";
    }

    .feature-illust::after {
      position: absolute;
      bottom: 16%;
      left: 50%;
      width: 36%;
      aspect-ratio: 1 / .72;
      border-radius: 5px;
      background:
        linear-gradient(90deg, transparent 44%, rgba(237,90,36,.85) 44% 56%, transparent 56%),
        linear-gradient(0deg, transparent 44%, rgba(237,90,36,.85) 44% 56%, transparent 56%),
        #fff;
      box-shadow: 0 10px 18px rgba(130, 80, 55, .12);
      content: "";
      transform: translateX(-50%);
    }

    .item-copy {
      margin: 14px 0 0;
      font-size: medium;
      line-height: 1.65;
      font-weight: 700;
    }

    .feature-card h3,
    .reason-card h3 {
      margin: 0px 0 4px;
      font-size: 22px;
      line-height: 1.45;
      font-weight: bold;
    }

    .feature-card h3 {
      margin: 24px 22px 10px;
      color: #111;
      font-size: 18px;
      line-height: 1.35;
      font-weight: 800;
      text-align: left;
    }

    .feature-card::after {
      position: absolute;
      left: 50%;
      bottom: 22px;
      width: 44px;
      height: 44px;
      border: 2px solid var(--orange);
      border-radius: 50%;
      display: inline-grid;
      place-items: center;
      color: var(--orange);
      font-size: 0;
      line-height: 1;
      content: "";
      transform: translateX(-50%);
    }

    .feature-card::before {
      position: absolute;
      left: 50%;
      bottom: 40px;
      z-index: 1;
      width: 16px;
      height: 16px;
      border-right: 3px solid var(--orange);
      border-bottom: 3px solid var(--orange);
      content: "";
      transform: translateX(-50%) rotate(45deg);
    }

    .feature-card p,
    .reason-card p {
      margin: 0;
      color: var(--muted);
      font-size: medium;
      line-height: 1.65;
      font-weight: normal;
      text-align:left;
    }

    .feature-card p {
      margin: 0 22px;
      color: #111;
      font-size: 14px;
      line-height: 1.5;
      text-align: left;
    }

    .section-action {
      margin: 42px 0 0;
    }

    .product-grid {
      display: grid;
      gap: 32px;
      margin: 72px auto 0;
    }

    .product-grid-4 {
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .product-card {
      display: grid;
      gap: 0;
      padding: 0;
      background: transparent;
      box-shadow: none;
      text-align: left;
    }

    .product-thumb {
      display: block;
      width: 100%;
      aspect-ratio: 1.03 / 1;
      height: auto;
      object-fit: cover;
      background:
        linear-gradient(135deg, rgba(255,255,255,.22), rgba(255,255,255,0)),
        #c9c9c9;
    }

    .product-card h3 {
      min-height: auto;
      margin: 18px 0 4px;
      color: var(--ink);
      font-size: 19px;
      line-height: 1.45;
      font-weight: 800;
    }

    .product-card p {
      margin: 0;
      color: var(--ink);
      font-size: 16px;
      line-height: 1.7;
    }

    .product-card .product-price {
      min-height: auto;
      margin: 0;
      padding-bottom: 22px;
      border-bottom: 1px solid #111;
      color: var(--ink);
      font-size: 20px;
      line-height: 1.3;
      font-weight: 800;
    }

    .product-card .product-point {
      padding: 12px 0px;
    }

    .product-thumb-link {
      display: block;
    }

    .product-card .product-detail-link {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 48px;
      padding: 10px 16px;
      border-radius: 6px;
      background: var(--orange);
      color: #fff;
      font-size: 19px;
      font-weight: 800;
      line-height: 1.2;
      text-align: center;
    }

    .product-card .product-detail-link::after {
      display: block;
      width: 0;
      height: 0;
      margin-left: 12px;
      border-top: 5px solid transparent;
      border-bottom: 5px solid transparent;
      border-left: 7px solid #fff;
      content: "";
    }

    .lineup-grid {
      margin-top: 34px;
    }

    .lineup-grid .product-card .product-price {
      margin-bottom: 28px;
      padding-bottom: 0;
      border-bottom: 0;
    }

    .lineup-grid .product-card[hidden] {
      display: none;
    }

    .lineup-grid.is-centered-page {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      align-items: flex-start;
    }

    .lineup-grid.is-centered-page .product-card:not([hidden]) {
      flex: 0 1 calc((100% - 96px) / 4);
    }

    .pager {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 34px;
      margin-top: 96px;
      color: #111;
      font-size: 22px;
      font-weight: 800;
    }

    .pager button {
      appearance: none;
      border: 0;
      background: transparent;
      color: inherit;
      font: inherit;
      cursor: pointer;
    }

    .pager button:disabled {
      cursor: default;
      opacity: 1;
    }

    .pager button[hidden] {
      display: none;
    }

    .pager-pages {
      display: contents;
    }

    .pager .is-active {
      display: grid;
      place-items: center;
      width: 46px;
      height: 46px;
      border-radius: 50%;
      background: var(--orange);
      color: #fff;
    }

    .pager button {
      display: inline-flex;
      align-items: center;
      min-height: 46px;
    }

    .pager-prev {
      color: #9a9a9a;
    }

    .pager-next {
      color: var(--orange);
    }

    .pager-dots {
      letter-spacing: .45em;
    }

    .search-block {
      margin-top: 30px;
    }

    .search-section {
      padding: 0px 20px 96px 20px;
    }

    .search-title {
      margin: 0 0 18px;
      color: var(--ink);
      font-size: 24px;
      line-height: 1.45;
      font-weight: 800;
    }

    .budget-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 20px 16px;
      max-width: 980px;
      margin: 0 auto;
    }

    .budget-grid a {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      min-height: 46px;
      padding: 20px 30px;
      border: 2px solid #f00;
      border-radius: 16px;
      color: var(--orange);
      font-size: 24px;
      font-weight: 800;
      line-height: 1.2;
      background: #fff;
    }

    .worry-cloud {
      position: relative;
      display: grid;
      grid-template-columns: repeat(6, 1fr);
      gap: 0px;
      max-width: 980px;
      margin: -30px auto 0px auto;
    }

    .bubble {
      position: relative;
      z-index: 0;
      grid-column: span 2;
      min-height: 280px;
      display: grid;
      place-items: center;
      padding: 0px 60px 0px 60px;
      color: #534d48;
      font-size: 20px;
      line-height: 1.6;
      font-weight: normal;
      text-align:left;
      margin-bottom:-100px;
    }

    .bubble::before {
      position: absolute;
      inset: 0;
      z-index: -1;
      background: url("../img/fukidashi.svg") center / contain no-repeat;
      content: "";
      pointer-events: none;
      top:30px;
    }

    .bubble:nth-child(2)::before,
    .bubble:nth-child(3)::before,
    .bubble:nth-child(5)::before {
      transform: scaleX(-1);
    }

    .bubble {
      isolation: isolate;
    }

    .bubble:nth-child(4) {
      grid-column: 2 / 4;
    }

    .bubble:nth-child(5) {
      grid-column: 4 / 6;
    }

    .answer-line {
      position: relative;
      margin-top: 136px;
      padding-top: 34px;
      border-top: 3px dotted var(--orange);
    }

    .answer-line::before {
      position: absolute;
      top: -3px;
      left: 50%;
      z-index: 1;
      width: 44px;
      height: 34px;
      background: #fff;
      clip-path: polygon(50% 100%, 0 50%, 50% 0, 100% 50%);
      content: "";
      transform: translate(-50%, -50%);
    }

    .answer-line::after {
      position: absolute;
      top: -3px;
      left: 50%;
      z-index: 2;
      width: 28px;
      height: 28px;
      border-right: 3px dotted var(--orange);
      border-bottom: 3px dotted var(--orange);
      content: "";
      transform: translate(-50%, -50%) rotate(45deg);
    }

    .section-stripe .answer-line::before {
      background:
        repeating-linear-gradient(0deg, rgba(224, 226, 211, .58) 0 8px, rgba(255, 255, 255, 0) 8px 18px),
        #f3f2e9;
    }

    .compare-wrap::before {
      background: #fff;
    }

    .answer-line strong {
      display: block;
      font-size: 32px;
      line-height: 1.55;
    }

    .reason-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      margin: 38px auto 56px;
    }

    .reason-card {
      position: relative;
      display: grid;
      grid-template-columns: 120px 1fr;
      gap: 70px;
      align-items: center;
      min-height: 150px;
      padding: 20px 20px 20px 40px;
      border-radius: var(--radius);
      background: var(--orange-soft);
      text-align: left;
    }

    .reason-card::before {
      position: absolute;
      top: 0;
      left: 0;
      z-index: 2;
      width: 96px;
      height: 96px;
      background: url("../img/ribbon_naname.png") left top / contain no-repeat;
      content: "";
      pointer-events: none;
    }

    .line-illust {
      aspect-ratio: 1;
      display: grid;
      place-items: center;
    }

    .line-illust img {
      width: 100%;
      height: 100%;
      min-height:140px;
      min-width:170px;
      object-fit: contain;
      margin-bottom:-18px;
    }

    .compare-wrap {
      margin-top: 24px;
    }

    .compare-title {
      margin: 0 0 22px;
      font-size: 30px;
      font-weight: 800;
    }

    .compare {
      display: grid;
      grid-template-columns: 1fr auto 1fr;
      gap: 12px;
      align-items: stretch;
      max-width: 980px;
      margin: 0 auto 42px;
    }

    .compare-box {
      padding: 30px 36px;
      border-radius: 28px;
      background-color: #f4f4f4;
      background-image:
        linear-gradient(rgba(255, 255, 255, .78) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .78) 1px, transparent 1px);
      background-size: 24px 24px;
      text-align: left;
    }

    .compare-box.plus {
      background-color: #fff6ef;
    }

    .compare-box h3 {
      margin: 0 0 18px;
      color: var(--orange);
      font-size: 24px;
      text-align: center;
    }

    .compare-box ul {
      display: grid;
      gap: 12px;
      margin: 0;
      padding: 0;
      list-style: none;
    }

    .compare-box li {
      position: relative;
      padding-left: 30px;
      color: #333;
      font-size: 18px;
      font-weight: normal;
      line-height: 1.8em;
    }

    .compare-box li::before {
      position: absolute;
      left: 0;
      top: .2em;
      width: 18px;
      height: 18px;
      background: url("../img/check_icon_black.svg") center / contain no-repeat;
      content: "";
    }

    .compare-box.plus li::before {
      background-image: url("../img/check_icon_orange.svg");
    }

    .compare-box.plus li {
      font-weight: bold;
    }

    .vs {
      display: grid;
      place-items: center;
      color: #2f2b28;
      font-size: 30px;
      font-weight: bold;
    }

    .steps-grid {
      grid-template-columns: repeat(5, minmax(0, 1fr));
      margin-top: 34px;
    }

    .step-card {
      overflow: hidden;
      border: 2px solid #ffa652;
      border-radius: var(--radius);
      background: #fff;
      box-shadow: 0 8px 18px rgba(130, 82, 45, .08);
    }

    .step-head {
      padding: 14px 0px 6px 0px;
      background: #ff9d2f;
      color: #fff;
      font-size: 20px;
      font-weight: 800;
      line-height: 1.2;
    }

    .step-body {
      display: grid;
      gap: 10px;
      justify-items: center;
      padding: 18px 18px 20px 18px;
    }

    .step-icon {
      width: 130px;
      aspect-ratio: 1;
      display: grid;
      place-items: center;
    }

    .step-icon img {
      width: 100%;
      height: 100%;
      object-fit: contain;
    }

    .step-card h3 {
      min-height: 42px;
      margin: 0;
      color: var(--orange);
      font-size: 16px;
      line-height: 1.5;
      font-weight: 800;
    }

    .step-card p {
      margin: 0;
      color: var(--muted);
      font-size: 14px;
      line-height: 1.6;
      font-weight: normal;
      text-align:left;
    }

    .occasion-grid {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 24px;
      margin: 34px auto 48px;
    }

    .occasion-card {
      display: block;
      width: calc((100% - 72px) / 4);
      overflow: hidden;
      border-radius: var(--radius);
      background: var(--orange);
      color: #fff;
      text-align: left;
      text-decoration: none;
      box-shadow: 0 0 5px rgba(0, 0, 0, .2);
    }

    .occasion-card > img {
      display: block;
      width: 100%;
      aspect-ratio: 1.2 / 1;
      object-fit: cover;
    }

    .occasion-card:focus-visible {
      outline: 3px solid #2f2b28;
      outline-offset: 4px;
    }

    .scene {
      position: relative;
      aspect-ratio: 1.2 / 1;
      overflow: hidden;
      background-position: center;
      background-repeat: no-repeat;
      background-size: cover;
    }

    .occasion-card:nth-child(1) .scene {
      background-image: url("../img/occasion_1.jpg");
    }

    .occasion-card:nth-child(2) .scene {
      background-image: url("../img/occasion_2.jpg");
    }

    .occasion-card:nth-child(3) .scene {
      background-image: url("../img/occasion_3.jpg");
    }

    .occasion-card:nth-child(4) .scene {
      background-image: url("../img/occasion_4.jpg");
    }

    .occasion-body {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      padding: 16px 18px 18px 30px;
    }

    .occasion-card h3 {
      margin: 0;
      font-size: 20px;
      line-height: 1;
    }

    .occasion-card p {
      margin: 2px 0 0;
      font-size: 14px;
      font-weight: normal;
    }

    .occasion-arrow {
      width: 24px;
      height: 24px;
      border: 2px solid #fff;
      border-radius: 50%;
      display: grid;
      place-items: center;
      flex: 0 0 auto;
      font-size: 12px;
      font-weight:bold;
    }

    .safe-band {
      width: min(100%, 1040px);
      margin: 60px auto 0 auto;
      padding: 48px;
      background: #fb7d56;
      color: #fff;
      text-align: center;
    }

    .safe-band h2 {
      margin-bottom: 28px;
      color: #fff;
      font-size: 32px;
    }

    .safe-grid {
      grid-template-columns: repeat(3, 1fr);
    }

    .safe-card {
      display: grid;
      grid-template-rows: 30px 30px auto 4px;
      padding: 16px;
      background: #fff;
      color: var(--ink);
      text-align: center;
    }

    .safe-card h3 {
      display: flex;
      align-items: center;
      justify-content: center;
      min-height: 0;
      margin: 0;
      font-size: 20px;
      font-weight: bold;
    }

    .safe-photo {
      grid-row: 3;
      aspect-ratio: 1.55 / 1;
      margin-top: 12px;
      border-radius: 4px;
      background-position: center;
      background-repeat: no-repeat;
      background-size: cover;
    }

    .safe-card:nth-child(1) .safe-photo {
      background-image: url("../img/anshin_1.jpg");
    }

    .safe-card:nth-child(2) .safe-photo {
      background-image: url("../img/anshin_2.jpg");
    }

    .safe-card:nth-child(3) .safe-photo {
      background-image: url("../img/anshin_3.jpg");
    }

    .safe-note {
      grid-row: 2;
      margin: 0;
      color: var(--muted);
      font-size: medium;
      line-height: 1.4;
      font-weight: normal;
      text-align: center;
    }

    .section-faq {
      background:
        linear-gradient(rgba(255,255,255,.65) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.65) 1px, transparent 1px),
        #fff6ef;
      background-size: 24px 24px;
    }

    .faq-inner {
      max-width: 920px;
    }

    .faq-stack {
      display: grid;
      gap: 42px;
      margin-top: 30px;
    }

    .faq-group {
      overflow: hidden;
      border: 2px solid #ffb081;
      border-radius: 16px;
      background: #fff;
      box-shadow: 0 12px 28px rgba(130, 82, 45, .08);
      text-align: left;
    }

    .faq-group > h3 {
      margin: 0;
      padding: 22px 28px;
      background: var(--orange);
      color: #fff;
      font-size: 28px;
      line-height: 1.3;
      text-align: center;
    }

    .faq-list {
      display: grid;
    }

    .faq-item {
      border-top: 1px solid #ffd3bd;
      background: #fff;
    }

    .faq-item:first-child {
      border-top: 0;
    }

    .faq-item summary {
      display: grid;
      grid-template-columns: 54px 1fr 24px;
      gap: 18px;
      align-items: center;
      padding: 20px 24px;
      cursor: pointer;
      list-style: none;
    }

    .faq-item summary::-webkit-details-marker {
      display: none;
    }

    .faq-mark {
      width: 46px;
      height: 46px;
      border-radius: 50%;
      display: grid;
      place-items: center;
      flex: 0 0 auto;
      background: #fff2eb;
      color: var(--orange-dark);
      font-size: 22px;
      font-weight: 800;
      line-height: 1;
    }

    .faq-question {
      color: var(--ink);
      font-size: 20px;
      font-weight: 800;
      line-height: 1.55;
    }

    .faq-arrow {
      width: 24px;
      height: 24px;
      display: grid;
      place-items: center;
      color: var(--orange-dark);
      font-size: 24px;
      font-weight: 800;
      line-height: 1;
      transition: transform .2s ease;
      transform-origin: center;
    }

    .faq-item[open] .faq-arrow {
      transform: rotate(180deg);
    }

    .faq-answer {
      display: grid;
      grid-template-columns: 54px 1fr;
      gap: 18px;
      padding: 0 24px 24px;
      color: #000;
      font-size: 18px;
      line-height: 1.85;
    }

    .faq-answer .faq-mark {
      background: #ffd7c2;
    }

    .faq-answer p {
      margin: 0;
    }

    .faq-answer p + p {
      margin-top: 12px;
    }

    .faq-answer a {
      color: var(--orange-dark);
      font-weight: 800;
      text-decoration: underline;
      text-underline-offset: 3px;
    }

    .site-footer {
      padding: 26px 20px;
      background: #251b18;
      color: rgba(255, 255, 255, .78);
      text-align: center;
      font-size: medium;
    }

    .section-safe {
      padding-top: 0;
    }

/* =================== Tablet (max-width: 800px) =================== */

    @media (max-width: 800px) {
      html {
        scroll-padding-top: 56px;
      }

      .hero {
        height: 480px;
        background-size: auto 480px;
      }

      .hero-inner {
        width: calc(100% - 32px);
        padding: 56px 0 0 0;
      }

      .hero-label {
        width: 240px;
        margin-top: 36px;
      }

      .hero h1 {
        margin: 12px 0;
      }

      .hero-title-logo {
        width: min(100%, 360px);
      }

      .hero-copy {
        margin-bottom: 22px;
        font-size: 20px;
      }

      .compare {
        grid-template-columns: 1fr;
      }
      
      .vs {
        min-height: 34px;
      }

      .bubble:nth-child(4),
      .bubble:nth-child(5) {
        grid-column: auto;
      }
      .site-header {
        height: 56px;
        flex-direction: column;
        align-items: stretch;
        justify-content: center;
        padding: 0 12px;
      }

      main {
        padding-top: 56px;
      }

      .brand {
        display: none;
      }

      .header-nav {
        display: flex;
        justify-content: center;
        width: 100%;
        margin-top: 0;
        font-size: 11px;
        line-height: 1.25;
        white-space: normal;
      }

      .header-nav a {
        flex: 1 1 25%;
        max-width: none;
        min-height: 40px;
        padding: 0 5px;
        overflow-wrap: anywhere;
      }

      .header-nav a:first-child {
        border-left: 0;
      }

      .answer-line {
        margin-top: 46px;
        padding-top: 34px;
        border-top: 3px dotted var(--orange);
      }
      
      .btn {
        min-width: 0;
        width: min(100%, 420px);
        min-height: 54px;
        font-size: 24px;
      }

      .hero .btn {
        min-height: 56px;
        font-size: 20px;
      }

      .hero .btn::before,
      .hero .btn::after {
        width: 42px;
        height: 60px;
      }

      .hero .btn::before {
        left: -50px;
      }

      .hero .btn::after {
        right: -50px;
      }

      .section {
        padding: 56px 26px;
      }

      h2 {
        font-size: 32px;
      }

      .lead {
        font-size: 16px;
      }

      .answer-line strong {
        font-size: 32px;
      }

      .answer-line {
        padding-top: 0;
        border-top: 0;
      }

      .answer-line::before,
      .answer-line::after {
        display: none;
      }

      .compare-title {
        font-size: 26px;
      }

      .section-label {
        margin: 0px 0 10px;
        font-size:small;
        font-weight: normal;
      }
      
      .reason-grid,
      .worry-cloud {
        grid-template-columns: 1fr;
      }

      .worry-cloud {
        gap: 28px;
        max-width: 620px;
        margin: 20px auto 0;
      }

      .cards-3,
      .feature-grid,
      .steps-grid,
      .safe-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        justify-content: center;
      }

      .cards-3,
      .feature-grid {
        max-width: 540px;
      }

      .section-features .section-inner {
        width: min(100%, 680px);
      }

      .feature-card {
        min-height: 430px;
        padding-bottom: 70px;
        border-radius: 18px;
      }

      .feature-card h3 {
        margin: 20px 22px 10px;
        font-size: 20px;
        text-align: left;
      }
      
      .item-copy {
        font-size: 20px;
      }
      
      .feature-card p {
        margin: 0 22px;
        font-size: 15px;
        text-align: left;
      }

      .feature-card::after {
        bottom: 22px;
        width: 42px;
        height: 42px;
        border-width: 2px;
      }

      .feature-card::before {
        bottom: 39px;
        width: 16px;
        height: 16px;
        border-right-width: 3px;
        border-bottom-width: 3px;
      }

      .steps-grid,
      .safe-grid {
        max-width: 680px;
        margin-right: auto;
        margin-left: auto;
      }

      .cards-3,
      .feature-grid,
      .reason-grid,
      .safe-grid,
      .steps-grid {
        display: grid;
        gap: 14px;
      }
      
      .cards-3 > :last-child,
      .steps-grid > :last-child,
      .safe-grid > :last-child {
        grid-column: 1 / -1;
        width: calc((100% - 24px) / 2);
        justify-self: center;
      }

      .product-grid-4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        max-width: 680px;
      }

      .product-card h3,
      .product-card p {
        min-height: auto;
      }

      .budget-grid {
        grid-template-columns: 1fr;
        gap: 12px;
      }

      .step-card h3 {
        font-size: 22px;
      }

    .step-card p {
      font-size: 16px;
      margin:0px 10px 0px 10px;
    }
      
      .compare-box ul {
        gap: 0px;
      }
      
      .bubble {
        grid-column: auto;
        min-height: auto;
        display: block;
        margin: 0;
        padding: 20px 22px 20px 22px ;
        border: 2px solid #6f6b66;
        border-radius: 28px;
        background: #fff;
        font-size: 16px;
        text-align: left;
      }

      .bubble::before {
        inset: auto auto -14px 50%;
        z-index: -1;
        width: 26px;
        height: 26px;
        border-right: 2px solid #6f6b66;
        border-bottom: 2px solid #6f6b66;
        background: #fff;
        transform: translateX(-50%) rotate(45deg);
      }

      .bubble:nth-child(2)::before,
      .bubble:nth-child(3)::before,
      .bubble:nth-child(5)::before {
        transform: translateX(-50%) rotate(45deg);
      }

      .occasion-grid {
        gap: 16px;
      }

      .occasion-card {
        width: calc((100% - 16px) / 2);
      }

      .reason-card {
        grid-template-columns: 160px 1fr;
        gap: 16px;
        padding: 16px;
        margin:0px 0px 0px 0px;
      }

      .reason-card::before {
        width: 90px;
        height: 90px;
      }

      .bubble {
        min-height: auto;
        border-radius: 30px;
        font-size: 18px;
        text-align:center;
      }

      .compare-box {
        padding: 28px 28px;
      }

      .safe-note {
        font-size: 14px;
      }
      
      .safe-band {
        padding: 28px 28px;
      }

      .safe-card h3 {
        font-size: 15px;
        line-height:1.4em;
      }
      
      .safe-band h2 {
        font-size: 26px;
      }

      .faq-inner {
        max-width: 680px;
      }

      .faq-group > h3 {
        padding: 18px 20px;
        font-size: 24px;
      }

      .faq-item summary {
        grid-template-columns: 46px 1fr 20px;
        gap: 14px;
        padding: 18px;
      }

      .faq-answer {
        grid-template-columns: 46px 1fr;
        gap: 14px;
        padding: 0 18px 22px;
        font-size: 15px;
      }

      .faq-mark {
        width: 40px;
        height: 40px;
        font-size: 20px;
      }

      .faq-question {
        font-size: 18px;
      }

      .faq-arrow {
        width: 20px;
        height: 20px;
        font-size: 22px;
      }
    }

/* =================== Small Phone (max-width: 460px) =================== */

    @media (max-width: 460px) {
      html {
        scroll-padding-top: 54px;
      }

      .sp-only {
        display: block;
      }

      .site-header {
        height: 54px;
        padding: 0 8px;
      }

      main {
        padding-top: 54px;
      }

      .header-nav {
        margin-top: 0;
        font-size: 10px;
      }

      .header-nav a {
        min-height: 42px;
        padding: 0 2px;
      }

      .btn {
        width: min(100%, 310px);
        font-size: 20px;
        padding:0px 0px 0px 0px;
      }
      
      .hero {
        height: 340px;
        background-size: auto 340px;
      }

      .hero-inner {
        width: calc(100% - 32px);
        padding: 85px 0 40px 0;
      }

      .hero-label {
        width: 176px;
        margin-top: 24px;
      }

      .hero h1 {
        margin: 8px 0;
      }

      .hero-title-logo {
        width: min(100%, 286px);
      }

      .hero-copy {
        margin-bottom: 18px;
        font-size: 16px;
      }

      .hero .btn {
        min-height: 52px;
        font-size: 20px;
        max-width:300px;
      }
      
      .hero .btn::before,
      .hero .btn::after {
        width: 32px;
        height: 45px;
      }

      .hero .btn::before {
        left: -34px;
      }

      .hero .btn::after {
        right: -34px;
      }

      .section {
        padding: 60px 20px;
      }

      .search-section {
        padding: 0px 20px 40px 20px;
      }

      .feature-card h3,
      .reason-card h3 {
        font-size: 20px;
      }

      .feature-card h3 {
        margin: 14px 16px 8px;
        font-size: 16px;
      }

      .feature-card {
        min-height: 280px;
        padding-bottom: 56px;
        border-radius: 14px;
		margin-top:10px;
      }

      .feature-card p {
        margin: 0 16px;
        font-size: 12px;
        line-height: 1.65;
      }

      .feature-card::after {
        bottom: 16px;
        width: 34px;
        height: 34px;
      }

      .feature-card::before {
        bottom: 30px;
        width: 13px;
        height: 13px;
      }

      .item-copy {
        font-size: 15px;
      }
      
      
      h2 {
        font-size: 24px;
      }

      .lead {
        font-size: 15px;
      }

      .answer-line strong {
        font-size: 22px;
      }

      .compare-title {
        font-size: 22px;
      }

      .safe-band {
        padding: 30px 16px;
		margin:0px;
      }

      .safe-band h2 {
        font-size: 23px;
      }

      .faq-stack {
        gap: 30px;
        margin-top: 24px;
      }

      .faq-group {
        border-radius: 10px;
      }

      .faq-group > h3 {
        padding: 16px;
        font-size: 22px;
      }

      .faq-item summary {
        grid-template-columns: 40px 1fr 18px;
        gap: 12px;
        padding: 16px 14px;
      }

      .faq-answer {
        grid-template-columns: 40px 1fr;
        gap: 12px;
        padding: 0 14px 18px;
        font-size: 14px;
        line-height: 1.8;
      }

      .faq-mark {
        width: 36px;
        height: 36px;
        font-size: 18px;
      }

      .faq-question {
        font-size: 16px;
      }

      .faq-arrow {
        width: 18px;
        height: 18px;
        font-size: 20px;
      }

      .occasion-grid {
        gap: 14px;
      }

      .occasion-card {
        width: calc((100% - 14px) / 2);
      }

      .occasion-body {
        gap: 8px;
        min-height: 64px;
        padding: 12px 16px 14px 18px;
      }

      .occasion-card h3 {
        font-size: 18px;
        line-height: 1.25;
      }

      .occasion-card p {
        font-size: 12px;
      }

      .occasion-arrow {
        flex: 0 0 auto;
        width: 26px;
        height: 26px;
        font-size: 12px;
      }

      .cards-3,
      .feature-grid,
      .steps-grid,
      .safe-grid {
        gap: 16px;
      }

      .step-card h3 {
        min-height: 42px;
        margin: 0;
        color: var(--orange);
        font-size: 15px;
        line-height: 1.5;
        font-weight: 800;
      }

      .step-card p {
        font-size: 14px;
      }

      .steps-grid {
        grid-template-columns: 1fr;
        gap: 24px;
        max-width: 100%;
      }

      .steps-grid > :last-child {
        width: 100%;
      }

      .step-card {
        border: 0;
        border-radius: 24px;
        box-shadow: 0 4px 16px rgba(80, 64, 48, .22);
      }

      .step-head {
        padding: 13px 0 12px;
        font-size: 20px;
      }

      .step-body {
        grid-template-columns: minmax(0, 1fr) 42%;
        align-items: center;
        gap: 12px 16px;
        padding: 28px 22px 28px;
      }

      .step-icon {
        width: 100%;
        grid-column: 2;
        grid-row: 1;
      }

      .step-card h3 {
        grid-column: 1;
        grid-row: 1;
        min-height: 0;
        color: var(--orange);
        font-size: 20px;
        line-height: 1.22;
        text-align: center;
      }

      .step-card p {
        grid-column: 1 / -1;
        grid-row: 2;
        color: #2f241f;
        font-size: 16px;
        line-height: 1.55;
        text-align: left;
      }
      
      .cards-3 > :last-child,
      .safe-grid > :last-child {
        width: calc((100% - 16px) / 2);
      }

      .product-grid {
        gap: 14px;
	    display: grid;
	    margin: 30px auto 0;
      }

      .product-card {
        padding: 0;
      }

      .product-card h3 {
        font-size: 18px;
      }

      .product-card p {
        font-size: 14px;
      }

      .product-card .product-price {
        padding-bottom: 12px;
        font-size: 18px;
      }

      .product-card .product-point {
        min-height: 54px;
        padding-top: 10px;
      }

      .product-card .product-detail-link {
        min-height: 34px;
        font-size: 16px;
      }

      .lineup-grid.is-centered-page .product-card:not([hidden]) {
        flex-basis: calc((100% - 14px) / 2);
      }

      .pager {
        gap: 14px;
        margin-top: 52px;
        font-size: 18px;
      }

      .pager .is-active {
        width: 34px;
        height: 34px;
      }

      .pager button {
        min-height: 34px;
      }

      .search-title {
        font-size: 20px;
      }

      .budget-grid a {
        font-size: 20px;
        padding: 16px 20px;
      }

    }
