:root{
  --base:#fffaf3;
  --cream:#f3ecdf;
  --paper:#fff;
  --ink:#1f252b;
  --muted:#70695f;
  --line:#e4d8c8;
  --accent:#fc5d2e;
  --accent2:#d86b3f;
  --gold:#d9b37c;
  --navy:#17202a;
  --green:#315247;
}

.reveal{
  opacity:0;
  transform:translateY(34px);
  transition:opacity .8s ease, transform .8s ease;
}

.reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}

.site-header-image{
  position:sticky;
  top:0;
  z-index:50;
  background:#fff;
  border-bottom:1px solid #e6e0d5;
}

.site-header-image img{
  display:block;
  width:100%;
  height:auto;
}

.section-jump-nav {
    display: flex;
    justify-content: center;
    gap: 8px;
    flex-wrap: nowrap;
    padding: 10px 14px;
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    position: fixed;
    bottom: 40px;
    left: 50%;
    transform: translateX(-50%);
    opacity: 0;
    visibility: hidden;
    width: calc(100% - 32px);
    max-width: 1060px;
    border: 1px solid rgba(228, 216, 200, 0.8);
    border-radius: 100px;
    box-shadow: 0 8px 24px rgba(112, 105, 95, 0.15);
    z-index: 100;
    overflow-x: auto;
    white-space: nowrap;
    -webkit-overflow-scrolling: touch;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.section-jump-nav.is-fixed {
    opacity: 1;
    visibility: visible;
}

.section-jump-nav::-webkit-scrollbar {
  display: none;
}

.section-jump-nav a {
  display: inline-block;
  padding: 8px 16px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 100px;
  font-size: 13px;
  font-weight: 700;
  color: var(--muted);
  text-decoration: none;
  transition: all 0.25s ease;
  flex-shrink: 0; 
}

.section-jump-nav a:hover {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
  transform: translateY(-1px);
}

.hero {
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    gap: 40px;
    padding: 25px;
    position: relative;
    overflow: hidden;
    background-color: #fffaf3;
    background-image: linear-gradient(90deg, rgba(181, 74, 42, .035) 1px, transparent 1px), linear-gradient(rgba(181, 74, 42, .035) 1px, transparent 1px);
    background-size: 32px 32px;
}

.hero:before{
    content:"2027";
    position:absolute;
    right:-26px;
    top:-20px;
    font-size:clamp(240px,26vw,220px);
    line-height:1;
    font-weight:950;
    color:rgba(181,74,42,.045);
    letter-spacing:-.05em;
    pointer-events:none;
    animation:floatYear 8s ease-in-out infinite;
}

@keyframes floatYear{
    0%,100%{
        transform:translateY(0);
    }
    50%{
        transform:translateY(14px);
    }
}

.kicker{
    display:inline-flex;
    align-items:center;
    gap:10px;
    color:var(--accent);
    font-size:12px;
    letter-spacing:.22em;
    font-weight:900;
}

.kicker:before{
    content:"";
    width:34px;
    height:1px;
    background:var(--accent);
}

.main_text{
    margin:14px 0 18px;
    font-size:clamp(34px,4vw,52px);
    line-height:1.25;
    letter-spacing:-.03em;
    color:#222;
}

.main_text strong{
    font-weight:900;
}

.main_text .accent{
    color:var(--accent);
    font-size: 32px;
  }

.hero-point {
    display: inline-block;
    margin-bottom: 18px;
    padding: 10px 18px;
    background: #fff;
    border: 2px solid var(--accent);
    border-radius: 999px;
    font-size: 14px;
    font-weight: 500;
    font-weight: bold;
}

.hero-point strong{
    color:var(--accent);
    font-weight:700;
}

.lead{
    font-size:14px;
    line-height:2;
    color:var(--muted);
    max-width:700px;
}

.hero-badges{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:12px;
    margin:28px 0;
    max-width:620px;
}

.badge{
    min-height:88px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;
    padding:14px 12px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fff;
    box-shadow:0 10px 25px rgba(70,45,20,.06);
}

.badge:hover{
    transform:translateY(-3px);
    box-shadow:0 18px 40px rgba(70,45,20,.12);
}

.badge small{
    display:block;
    font-size:13px;
    font-weight:700;
    color:#666;
    margin-bottom:10px;
}

.badge b{
    display:block;
    font-size:22px;
    line-height:1.1;
    font-weight:700;
    color:var(--accent);
}

.hero .cta-row{
    display:flex;
    flex-direction:row !important;
    justify-content:flex-start;
    gap:12px;
    flex-wrap:nowrap;
    width:100%;
    max-width:700px;
    margin-top:10px;
}

.hero-notes{
    margin-top:22px;
    font-size:11px;
    line-height:1.8;
    color:#777;
}

.hero-notes p{
    margin:3px 0;
}

.hero-img-wrap{
    display:flex;
    justify-content:center;
    align-items:center;
}

.hero-img-wrap img{
    width:100%;
    max-width:650px;
    height:auto;
}

@media (max-width:1024px){
    .hero{
        grid-template-columns:1fr;
        gap:30px;
    }
    .hero-visual{
        order:-1;
    }
    .hero-img-wrap img{
        max-width:500px;
    }
}

@media (max-width:768px){
    .hero{
        padding:20px;
    }
    .main_text{
        font-size:32px;
    }
    .hero-point{
        font-size:13px;
        padding:8px 14px;
    }
    .hero-badges{
        grid-template-columns:1fr;
        max-width:none;
    }
    .badge{
        min-height:auto;
    }
    .hero .cta-row{
        flex-direction:column !important;
    }
    .hero .cta-row a{
        width:100%;
        text-align:center;
        flex: unset !important;
    }
    .hero:before{
        font-size:160px;
        top:20px;
        right:-10px;
    }
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:190px;
  height:58px;
  border-radius:999px;
  font-weight:950;
  text-decoration:none;
  transition:transform .22s, box-shadow .22s, background .22s;
}

.btn.primary{
  background:var(--accent);
  color:#fff;
  width: 300px;
}

.btn.secondary {
    background: #fff;
    border: 1px solid var(--accent);
    color: var(--accent);
    width: 300px;
  }

.hero .btn.primary,
.hero .btn.secondary {
  width: auto !important;
  min-width: 0;
  height: 54px;
  font-size: 15px;
  white-space: nowrap;
    flex: 1;
}

.btn:hover{
  transform:translateY(-3px);
}

.hero-visual{
  position:relative;
}

.category-lane{
  padding:26px 52px;
  background:#fff;
  border-bottom:1px solid var(--line);
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:12px;
  align-items:stretch;
}

.category-card{
  position:relative;
  padding:18px 16px;
  min-height:88px;
  border:1px solid var(--line);
  border-radius:18px;
  text-decoration:none;
  overflow:hidden;
  background:#fffaf3;
  font-weight:950;
  text-align:left;
  color:var(--ink);
  cursor:pointer;
  font:inherit;
  transition:transform .25s,box-shadow .25s,border-color .25s;
}

.category-card:after{
  content:"";
  position:absolute;
  right:-24px;
  bottom:-24px;
  width:88px;
  height:88px;
  border-radius:50%;
  background:rgba(181,74,42,.08);
  transition:transform .35s;
}

.category-card:hover{
  transform:translateY(-4px);
  border-color:rgba(181,74,42,.45);
  box-shadow:0 16px 38px rgba(70,45,20,.08);
}

.category-card:hover:after{transform:scale(1.35)}

.category-card span{
  display:block;
  margin-top:8px;
  color:var(--muted);
  font-size:12px;
  font-weight:500;
}

.section{padding:64px 52px}

.head{text-align:center;margin:0 auto 50px}

.head p{margin:0 0 12px;color:var(--accent);font-size:12px;font-weight:950;letter-spacing:.24em}

.head h2 {
    margin: 0;
    font-size: clamp(20px, 3.2vw, 25px);
    line-height: 1.4;
    letter-spacing: -.02em;
}

.ranking{background:var(--cream)}

.tab-wrap{
  max-width:1240px;
  margin:0 auto;
}

.tabs {
    display: flex;
    gap: 10px;
    justify-content: center;
    margin-bottom: 26px;
}

.tab{
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff;
  padding:13px 20px;
  cursor:pointer;
  font-weight:900;
  color:var(--muted);
}

.tab.active{
  background:#fc5d2e;
  color:#fff;
  border-color:#fc5d2e;
}

.tab-panel{
  display:none;
}

.tab-panel.active{
  display:block;
  animation:panelIn .45s ease both;
}

@keyframes panelIn{
  from{opacity:0;transform:translateY(14px)}
  to{opacity:1;transform:translateY(0)}
}

.ranking-block{
  background:#fff;
  border:1px solid var(--line);
  border-radius:32px;
  padding:34px !important;
  box-shadow:0 24px 70px rgba(70,45,20,.08);
}

.ranking-intro{
  display:block !important;
  margin-bottom:26px !important;
}

.ranking-intro h3 {
    margin: 0 0 14px !important;
    font-size: clamp(17px, 2.5vw, 20px) !important;
    line-height: 1.4 !important;
}

.ranking-intro p{
  display:block !important;
  max-width:none !important;
  width:100% !important;
  margin:0 !important;
  color:var(--muted) !important;
  line-height:1.9 !important;
  font-size:15px !important;
}

.products{
  display:grid;
  grid-template-columns:repeat(5, 1fr) !important;
  gap:14px;
  margin-top:6px !important;
  align-items:stretch;
}

.product{
  position:relative;
  min-height:290px !important;
  height:100% !important;
  border-radius:20px;
  background:#f8f2e9;
  border:1px solid #eee1d1;
  padding:18px 14px 14px !important;
  overflow:hidden;
  transition:transform .25s, box-shadow .25s;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}

.product:hover{
  transform:translateY(-6px);
  box-shadow:0 20px 42px rgba(70,45,20,.12);
}

.product:not(:first-child){
  min-height:290px !important;
}

.rank-no{
  position:absolute;
  top:14px;
  left:14px;
  width:38px;
  height:38px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--navy);
  color:#fff;
  font-size:12px;
  font-weight:950;
  z-index:1;
}

.product:first-child .rank-no{background:var(--accent)}

.product-name{font-size:14px;font-weight:950;text-align:center;line-height:1.5}

.product-price{text-align:center;font-size:12px;color:var(--accent);margin-top:6px;font-weight:900}

.strength{background:#fff}

.strength-grid{
  max-width:1180px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}

.reason{
  min-height:240px;
  padding:28px;
  border:1px solid var(--line);
  border-radius:22px;
  background:
    linear-gradient(90deg, rgba(0,0,0,.035) 1px, transparent 1px),
    linear-gradient(rgba(0,0,0,.035) 1px, transparent 1px),
    #fffaf3;
  background-size:24px 24px;
  transition:transform .25s, background-position .8s;
}

.reason:hover{
  transform:translateY(-5px);
  background-position:12px 12px;
}

.reason span {
    color: var(--accent);
    font-weight: 950;
    letter-spacing: .14em;
    font-size: 16px;
}

.reason h3 {
    margin: 0 0 10px;
    font-size: 17px;
}

.reason p{margin:0;color:var(--muted);line-height:1.85;font-size:14px}

.support-grid{
  max-width:1180px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px;
}

.support-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 28px;
    padding: 36px;
    box-shadow: 0 20px 60px rgba(70, 45, 20, .06);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.support-card h3{
  margin:0 0 14px;
  font-size:21px;
}

.support-card p{
  margin:0 0 20px;
  color:var(--muted);
  line-height:1.9;
}

.flow{
  counter-reset:flow;
  display:grid;
  gap:10px;
}

.flow li{
  list-style:none;
  padding:14px 16px 14px 48px;
  border:1px solid var(--line);
  border-radius:14px;
  position:relative;
  background:#fffaf3;
  font-weight:800;
}

.flow li:before{
  counter-increment:flow;
  content:counter(flow);
  position:absolute;
  left:14px;
  top:50%;
  transform:translateY(-50%);
  width:24px;
  height:24px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--accent);
  color:#fff;
  font-size:11px;
}

.cta{background:var(--cream)}

.cta-card{
  max-width:1060px;
  margin:0 auto;
  padding:68px 40px;
  border-radius:36px;
  border:1px solid var(--line);
  background:#fff;
  text-align:center;
  box-shadow:0 28px 80px rgba(70,45,20,.09);
  position:relative;
  overflow:hidden;
}

.cta-card:before{
  content:"";
  position:absolute;
  inset:14px;
  border:1px solid rgba(181,74,42,.12);
  border-radius:28px;
  pointer-events:none;
}

.cta-card p:first-child{margin:0 0 12px;color:var(--accent);font-size:12px;font-weight:950;letter-spacing:.24em}

.cta-card h2{margin:0;font-size:clamp(22px,3.5vw,28px)}

.cta-card .copy{margin:18px auto 30px;max-width:680px;color:var(--muted);line-height:1.9}

.faq{background:#fff}

.faq-list{max-width:940px;margin:0 auto;border-top:1px solid var(--line)}

.faq-list details{border-bottom:1px solid var(--line);padding:24px 0}

.faq-list summary{
  cursor:pointer;
  font-size:16px;
  font-weight:950;
  list-style:none;
  display:flex;
  justify-content:space-between;
  gap:20px;
}

.faq-list summary::-webkit-details-marker{display:none}

.faq-list summary:after{
  content:"+";
  color:var(--accent);
  font-size:24px;
  line-height:1;
}

.faq-list details[open] summary:after{content:"−"}

.faq-list details p{color:var(--muted);line-height:1.9}

.related{background:var(--cream)}

.footer{
  padding:44px 36px;
  text-align:center;
  color:#8b8175;
  background:#fffaf3;
  font-size:12px;
}

.survey-v6{
  display:block !important;
  background:var(--navy);
  color:#fff;
}

.survey-v6 .survey-heading{
  max-width:1120px;
  margin:0 auto 42px;
}

.survey-v6 .head{
  text-align:left !important;
  margin:0 0 22px !important;
}

.survey-v6 .head p{
  color:var(--gold) !important;
}

.survey-v6 .head h2{
  color:#fff !important;
  font-size:clamp(24px, 4vw, 32px) !important;
  line-height:1.3 !important;
  letter-spacing:-.03em !important;
}

.survey-v6 .survey-lead{
  max-width:980px !important;
  margin:0 !important;
  color:rgba(255,255,255,.78) !important;
  font-size:16px !important;
  line-height:2.05 !important;
}

.survey-v6 .survey-grid{
  max-width:1180px !important;
  margin:0 auto !important;
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0,1fr)) !important;
  gap:22px !important;
}

.survey-v6 .survey-card{
  min-height:100% !important;
  padding:0 !important;
  border:1px solid rgba(255,255,255,.16) !important;
  border-radius:24px !important;
  background:rgba(255,255,255,.06) !important;
  overflow:hidden !important;
}

.survey-v6 .survey-media{
  background:#fff;
}

.survey-v6 .survey-media img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio: 4 / 3;
  object-fit:cover;
}

.survey-v6 .survey-content{
  padding:24px 24px 26px;
}

.survey-v6 .survey-content > span{
  display:inline-block;
  color:var(--gold) !important;
  font-size:12px !important;
  letter-spacing:.14em !important;
  font-weight:950 !important;
  margin-bottom:12px;
}

.survey-v6 .survey-content h3{
  margin:0 0 12px !important;
  font-size:clamp(18px, 2.3vw, 21px) !important;
  line-height:1.5 !important;
  color:#fff !important;
}

.survey-v6 .survey-content p{
  margin:0 !important;
  color:rgba(255,255,255,.76) !important;
  font-size:14px !important;
  line-height:1.9 !important;
}

.survey-v6 .survey-source{
  max-width:1180px !important;
  margin:18px auto 0 !important;
  color:rgba(255,255,255,.58) !important;
  font-size:12px !important;
  line-height:1.7 !important;
}

.related-grid-5{
  max-width:1220px !important;
  grid-template-columns: repeat(2, 2fr) !important;
  margin:0 auto;
  display:grid;
  gap:16px;
}

.related-grid-5 a{
  min-height:170px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  text-decoration:none;
  color:inherit;
  padding:22px;
  transition:transform .25s, box-shadow .25s;
}

.related-grid-5 a:hover{
  transform:translateY(-5px);
  box-shadow:0 20px 50px rgba(70,45,20,.1);
}

.related-grid-5 b{font-size:16px}

.related-grid-5 span{font-size:12px;line-height:1.7;color:var(--muted)}

.news-accordion{
  display:block !important;
  padding:0 !important;
  background:#fff7ec !important;
  border-top:1px solid var(--line) !important;
  border-bottom:1px solid var(--line) !important;
}

.news-accordion details{
  max-width:1240px !important;
  margin:0 auto !important;
  padding:0 !important;
  border:0 !important;
}

.news-accordion summary{
  min-height:68px !important;
  display:grid !important;
  grid-template-columns:180px 1fr auto !important;
  gap:24px !important;
  align-items:center !important;
  padding:0 52px !important;
  cursor:pointer !important;
  list-style:none !important;
  font-size:14px !important;
}

.news-accordion summary::-webkit-details-marker{
  display:none !important;
}

.news-accordion summary:after{
  content:"＋" !important;
  width:34px !important;
  height:34px !important;
  border-radius:50% !important;
  display:grid !important;
  place-items:center !important;
  background:#fff !important;
  border:1px solid var(--line) !important;
  color:var(--accent) !important;
  font-size:20px !important;
  line-height:1 !important;
}

.news-accordion details[open] summary:after{
  content:"−" !important;
}

.news-title{
  font-size:14px !important;
  letter-spacing:.16em !important;
  font-weight:950 !important;
  color:var(--ink) !important;
}

.news-current{
  color:var(--muted) !important;
}

.news-current b{
  color:var(--accent) !important;
  margin-right:10px !important;
}

.news-accordion ul{
  display:block !important;
  margin:0 !important;
  padding:0 52px 22px 232px !important;
  list-style:none !important;
}

.news-accordion li{
  padding:12px 0 !important;
  border-top:1px solid rgba(228,216,200,.85) !important;
  color:var(--ink) !important;
  font-size:14px !important;
}

.news-accordion li span{
  color:var(--accent) !important;
  font-weight:950 !important;
  margin-right:14px !important;
}

.mock-note{
  max-width:940px;margin:18px auto 0;padding:12px 16px;
  border:1px dashed rgba(181,74,42,.5);border-radius:12px;
  color:var(--accent);font-size:12px;font-weight:700;background:rgba(181,74,42,.04);
}

.about{background:#fff}

.about-inner{max-width:940px;margin:0 auto}

.about h3{font-size:20px;margin:46px 0 18px;letter-spacing:-.02em}

.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 16px 44px rgba(70,45,20,.05)}

.info-table{width:100%;border-collapse:collapse;font-size:14px;min-width:560px}

.info-table th,.info-table td{padding:16px 18px;border-bottom:1px solid var(--line);text-align:left;line-height:1.7; color: #666;}

.info-table thead th{background:var(--cream);font-size:13px;letter-spacing:.04em}

.info-table tbody tr:last-child th,.info-table tbody tr:last-child td{border-bottom:none}

.info-table tbody th{background:#fffaf3;font-weight:900;white-space:nowrap;width:160px; color: #666;}

.info-table .is-strong{color:var(--accent);font-weight:900}

.table-foot{max-width:940px;margin:14px auto 0;color:var(--muted);font-size:12px;line-height:1.8}

.grid{background:var(--cream)}

.guide-lead{max-width:840px;margin:-26px auto 44px;text-align:center;color:var(--muted);line-height:2}

.guide-grid{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:repeat(2,1fr);gap:18px}

.guide-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:30px;display:flex;flex-direction:column;gap:12px;transition:transform .25s,box-shadow .25s}

.guide-card:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(70,45,20,.08)}

.guide-card small{color:var(--accent);font-weight:950;letter-spacing:.16em;font-size:11px}

.guide-card h3{margin:0;font-size:17px;line-height:1.5}

.guide-card p{margin:0;color:var(--muted);line-height:1.9;font-size:14px}

.guide-card .data-pill{align-self:flex-start;padding:6px 12px;border-radius:999px;background:rgba(49,82,71,.08);color:var(--green);font-size:12px;font-weight:900}

.guide-card a{color:var(--accent);font-weight:900;text-decoration:none;font-size:14px}

.guide-card a:hover{text-decoration:underline}

.price{background:#fff}

.price .head{margin-bottom:38px}

.price-inner{max-width:940px;margin:0 auto}

.price-includes{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:0 0 30px;padding:0;list-style:none}

.price-includes li{padding:8px 16px;border-radius:999px;background:var(--cream);font-size:13px;font-weight:800}

.price-includes li:before{content:"✓ ";color:var(--accent);font-weight:950}

.schedule{background:var(--cream)}

.schedule-grid{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}

.schedule-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px 24px}

.schedule-card .period{display:inline-block;padding:6px 14px;border-radius:999px;background:var(--navy);color:#fff;font-size:12px;font-weight:900;letter-spacing:.06em;margin-bottom:14px}

.schedule-card.is-best .period{background:var(--accent)}

.schedule-card.is-best{border-color:rgba(181,74,42,.5);box-shadow:0 18px 44px rgba(181,74,42,.1)}

.schedule-card h3{margin:0;font-size:16px;line-height:1.5}

.schedule-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.9}

.schedule-note{max-width:940px;margin:30px auto 0;background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px 28px}

.schedule-note h3{margin:0 0 10px;font-size:16px}

.schedule-note p{margin:0;color:var(--muted);line-height:1.9;font-size:14px}

.method{background:#fffaf3}

.method-grid{max-width:1180px;margin:0 auto 26px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}

.method-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px}

.method-card h3{margin:0 0 10px;font-size:17px;line-height:1.5}

.method-card p{margin:0;color:var(--muted);font-size:13.5px;line-height:1.9}

.method-card .tag{display:inline-block;margin-bottom:12px;padding:5px 12px;border-radius:999px;background:rgba(217,179,124,.18);color:#8a6a35;font-size:11px;font-weight:950;letter-spacing:.1em}

.cases{background:#fff}

.case-grid{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}

.case-card{background:#fffaf3;border:1px solid var(--line);border-radius:22px;padding:28px;display:flex;flex-direction:column;gap:10px}

.case-card .case-industry{color:var(--accent);font-size:12px;font-weight:950;letter-spacing:.12em}

.case-card h3{margin:0;font-size:16px;line-height:1.6}

.case-card .case-spec{display:flex;gap:8px;flex-wrap:wrap}

.case-card .case-spec span{padding:5px 12px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:12px;font-weight:800}

.case-card p{margin:0;color:var(--muted);font-size:13.5px;line-height:1.9}

.hv-stage{position:relative;width:min(440px,92%);margin:0 auto}

.hv-wall{position:relative;background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:0 36px 80px rgba(70,45,20,.18);transform:rotate(1.6deg);overflow:hidden;transition:transform .3s}

.hv-rings{display:flex;justify-content:space-evenly;padding:14px 40px 10px;background:linear-gradient(180deg,#fdf6ea,#fff)}

.hv-rings i{width:9px;height:20px;border-radius:6px;background:linear-gradient(180deg,#d9d2c4,#938c7f);box-shadow:inset 0 2px 2px rgba(255,255,255,.8),0 2px 4px rgba(70,45,20,.18)}

.hv-art{position:relative;height:138px;margin:0 18px;border-radius:14px;overflow:hidden;background:linear-gradient(180deg,#f9ecd6 0%,#f5e6cc 100%)}

.hv-sun{position:absolute;top:22px;right:64px;width:52px;height:52px;border-radius:50%;background:radial-gradient(circle at 38% 34%,var(--accent2),var(--accent));box-shadow:0 0 0 10px rgba(216,107,63,.14)}

.hv-hill{position:absolute;bottom:-46px;border-radius:50%}

.hv-hill.h1{left:-60px;width:300px;height:130px;background:#3f6557}

.hv-hill.h2{right:-70px;width:330px;height:110px;background:var(--green)}

.hv-month{display:flex;align-items:baseline;gap:12px;padding:18px 24px 6px}

.hv-month b{font-size:44px;letter-spacing:-.04em;line-height:1}

.hv-month span{font-weight:900;letter-spacing:.22em;font-size:12px;color:var(--muted)}

.hv-month em{font-style:normal;color:var(--accent);margin-left:8px}

.hv-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;padding:4px 22px 16px;text-align:center}

.hv-grid .dow{font-size:8.5px;font-weight:950;letter-spacing:.1em;color:var(--muted);padding-bottom:2px}

.hv-grid .d{font-size:11px;font-weight:700;padding:4px 0;border-radius:7px}

.hv-grid .su{color:var(--accent)}

.hv-grid .sa{color:#3c5a8a}

.hv-grid .hot{background:var(--accent);color:#fff}

.hv-plate{padding:13px;background:var(--navy);color:#f3e6cf;text-align:center;font-weight:900;letter-spacing:.16em;font-size:11.5px}

.hv-plate span{display:block;margin-top:3px;color:var(--gold);font-size:9.5px;letter-spacing:.22em;font-weight:700}

.hv-desk-head{display:flex;align-items:baseline;gap:8px;padding:8px 16px 2px}

.hv-desk-head b{font-size:24px;line-height:1}

.hv-desk-head span{font-size:9px;font-weight:900;letter-spacing:.2em;color:var(--muted)}

.hv-desk-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px 2px;padding:3px 14px 9px;text-align:center}

.hv-desk-grid i{font-style:normal;font-size:7.5px;font-weight:700;color:var(--ink);padding:1.5px 0}

.hv-desk-grid i.dw{font-size:6.5px;font-weight:950;color:var(--muted);letter-spacing:.04em}

.hv-desk-grid i.dw:first-child,.hv-desk-grid i.su{color:var(--accent)}

.hv-desk-grid i.dw:last-child,.hv-desk-grid i.sa{color:#3c5a8a}

.hv-badge{position:absolute;top:-20px;right:-12px;width:88px;height:88px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;align-content:center;font-weight:950;font-size:12px;line-height:1.1;text-align:center;transform:rotate(8deg);box-shadow:0 18px 38px rgba(181,74,42,.35);z-index:2}

.hv-badge b{display:block;font-size:24px;letter-spacing:.02em}

.hv-desk{position:absolute;left:-52px;bottom:-34px;width:208px;transform:rotate(-5deg);filter:drop-shadow(0 26px 30px rgba(70,45,20,.28));transition:transform .3s}

.hv-desk-spine{position:relative;height:13px;margin:0 12px;background:linear-gradient(180deg,#2c362f,#141a16);border-radius:5px 5px 0 0}

.hv-desk-spine i{position:absolute;top:-10px;width:9px;height:19px;border:3px solid #1d231f;border-radius:6px;background:transparent}

.hv-desk-spine i:nth-child(1){left:12%}

.hv-desk-spine i:nth-child(2){left:21%}

.hv-desk-spine i:nth-child(3){left:30%}

.hv-desk-spine i:nth-child(4){right:30%}

.hv-desk-spine i:nth-child(5){right:21%}

.hv-desk-spine i:nth-child(6){right:12%}

.hv-desk-sheet{background:#fff;border:1px solid var(--line);border-top:none;margin:0 12px;padding-bottom:2px;box-shadow:0 4px 10px rgba(70,45,20,.08)}

.hv-desk-base{position:relative;height:48px;margin-top:-3px;background:linear-gradient(180deg,#2a352e 0%,#101713 88%);clip-path:polygon(5.5% 0,94.5% 0,100% 100%,0 100%);display:flex;align-items:center;justify-content:center;gap:7px;color:var(--gold);font-size:9px;font-weight:900;letter-spacing:.24em}

.hv-desk-base:before{content:"";width:11px;height:11px;border:1.6px solid var(--gold);border-radius:50%;background:radial-gradient(circle at 35% 35%, rgba(217,179,124,.55), transparent 60%)}

.hv-desk-base:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,236,200,.14) 42%,transparent 56%)}

.banner-slider{position:relative;max-width:1060px;margin:26px auto 10px;padding:0 58px}

.bs-viewport{overflow:hidden;border-radius:20px;border:1px solid var(--line);background:#fff;box-shadow:0 18px 44px rgba(70,45,20,.08)}

.bs-track{display:flex;transition:transform .55s cubic-bezier(.22,.8,.26,1)}

.bs-slide{flex:0 0 100%;display:block}

.bs-slide img{width:100%;height:auto;display:block}

.bs-arrow{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:22px;line-height:1;font-weight:950;cursor:pointer;color:var(--ink);box-shadow:0 8px 20px rgba(70,45,20,.14);z-index:2;transition:transform .2s,border-color .2s}

.bs-arrow:hover{transform:translateY(-50%) scale(1.08);border-color:rgba(181,74,42,.5)}

.bs-arrow.prev{left:8px}

.bs-arrow.next{right:8px}

.bs-dots{display:flex;justify-content:center;gap:8px;margin-top:12px}

.bs-dots button{width:8px;height:8px;border-radius:99px;border:none;background:#d8cdbb;cursor:pointer;padding:0;transition:width .25s,background .25s}

.bs-dots button.active{background:var(--accent);width:24px}

.about-def-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0 0 18px}

.def-card{background:#fffaf3;border:1px solid var(--line);border-radius:22px;padding:32px;display:flex;flex-direction:column;gap:12px}

.def-card small{color:var(--accent);font-weight:950;letter-spacing:.22em;font-size:11px}

.def-card h3{margin:0;font-size:19px;letter-spacing:-.02em}

.def-card p{margin:0;color:var(--muted);line-height:2.05;font-size:14.5px;flex:1}

.def-card p b{color:var(--ink)}

.def-card a {
    color: var(--accent);
    font-weight: 900;
    text-decoration: none;
    font-size: 14px;
    border: var(--accent) 2px solid;
    padding: 15px;
    text-align: center;
    background: #fff;
    border-radius: 50px;
}

.def-card a:hover{
    color: #fff;
    background: var(--accent);
}

#campaign, #ranking, #strength, #support, #effect, #faq, #related-sites{
  scroll-margin-top:170px !important;
}

.hero-img-wrap {
  width: 100%;
  max-width: 580px;
  margin: 0 auto;
}

.hero-img-wrap img {
    display: block;
    width: 88%;
    height: auto;
    filter: drop-shadow(0 24px 48px rgba(70, 45, 20, 0.16));
}

@media(max-width:1050px){
    .hero {
        min-height: auto;
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 24px;
        padding: 54px 20px 40px;
    }
  .hero .banner-slider {
    margin-top: 40px;
  }
  .cta-row {
    flex-direction: column;
  }
  .hero-img-wrap {
    max-width: 480px;
    width: 100%;
  }
  .products{grid-template-columns:1fr 1fr}
  .product:first-child{grid-column:span 2}
}

@media(max-width:1000px){
  .guide-grid,.method-grid,.case-grid{grid-template-columns:1fr 1fr}
  .schedule-grid{grid-template-columns:1fr 1fr}
  .hv-stage{width:min(380px,94%);margin-top:34px}
  .hv-desk{left:-16px;width:170px}
  .hv-badge{right:-6px}
}

@media(max-width:860px){.about-def-grid{grid-template-columns:1fr}}

@media(max-width:760px){
  .site-header-image img{width:100%}
  .category-lane,.strength-grid,.support-grid,.survey-v6 .survey-grid,.related-grid-5{grid-template-columns:1fr !important}
  .category-card{width:100%}
  .section{padding:72px 22px}
  .section-jump-nav{
    justify-content:flex-start !important;
    overflow:auto !important;
    white-space:nowrap !important;
    flex-wrap:nowrap !important;
    padding:10px 14px !important;
  }
  .section-jump-nav a{
    flex:0 0 auto !important;
  }
  .news-accordion summary{
    grid-template-columns:1fr auto !important;
    gap:12px !important;
    padding:16px 22px !important;
  }
  .news-current{
    grid-column:1 / -1 !important;
    grid-row:2 !important;
  }
  .news-accordion ul{
    padding:0 22px 20px !important;
  }
  .guide-grid,.method-grid,.case-grid,.schedule-grid{grid-template-columns:1fr}
  .info-table tbody th{width:auto}
  .banner-slider{padding:0 16px;margin-top:18px}
  .bs-arrow{display:none}
  .bs-viewport{border-radius:14px}
  #campaign, #ranking, #strength, #support, #effect, #faq, #related-sites{
    scroll-margin-top:120px !important;
  }
}

.note_text {
    font-size: 13px;
    margin-bottom: 10px;
    text-align: center;
}

a:link, a:visited {
    text-decoration: unset !important;
}

a.product {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  text-decoration: none;
  color: inherit;
  box-sizing: border-box;
}

.product-name {
  font-size: 13px;
  font-weight: 950;
  text-align: center;
  line-height: 1.4;
  margin: 0 0 8px;
  padding: 0 4px;
  color: var(--ink);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  height: 2.8em; 
}

.product-meta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  margin-top: auto;
  background: rgba(255, 255, 255, 0.5);
  padding: 8px 4px;
  border-radius: 10px;
}

.product-price {
  font-size: 14px;
  color: var(--accent);
  font-weight: 950;
  text-align: center;
}

.product-price .tax-in {
  font-size: 9px;
  font-weight: 500;
  color: var(--muted);
  margin-left: 2px;
}

.product-lot {
  font-size: 11px;
  color: var(--muted);
  font-weight: 700;
  text-align: center;
}

.product:first-child .product-price {
  font-size: 16px;
}

@media(max-width: 1050px) {
  .product {
    min-height: auto !important;
    padding: 20px 14px 14px !important;
  }
}

.product-img-wrap {
  width: 100%;
  margin: 14px auto;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  border: 1px solid #e4d8c8;
}

.product-img-wrap img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.main_text{
  font-size: 25px;
}

.bg_nav {
    height: 50px;
    position: relative;
}

.cta-row{
    display: flex;
    gap: 15px;
}

@media screen and (max-width: 767px) {
    #page {
        padding: 0 !important;
    }
}

@media (max-width: 768px){
  .ranking-block{
    overflow:hidden;
    padding:20px !important;
  }
  .products{
    display:flex !important;
    gap:12px;
    overflow-x:auto;
    overflow-y:hidden;
    padding-bottom:10px;
    scroll-snap-type:x proximity;
    -webkit-overflow-scrolling:touch;
  }
  .products::-webkit-scrollbar{
    display:none;
  }
  .product{
    flex:0 0 220px;
    min-width:220px;
    min-height:auto !important;
    scroll-snap-align:start;
  }
.tabs {
    flex-direction: column;
}
.support-card {
    padding: 20px;
}
.btn.primary {
    background: var(--accent);
    color: #fff;
    width: 257px;
}
.btn.secondary {
    background: #fff;
    border: 1px solid var(--accent);
    color: var(--accent);
    width: 257px;
}
#information {
    clear: both;
    padding: 15px;
}
}

.pagemainbg {
    max-width: 1200px !important;
}

#page {
    max-width: 1200px !important;
}

#page #contents_res {
    max-width: 1200px !important;
}

.cta_orenji {
  background: var(--accent) !important;
  color: #fff !important;
}

.badge b {
  display: flex;
  align-items: baseline;
  justify-content: center;
}

.badge b .unit {
  font-size: 13px;
  color: #333333;
  font-weight: 500;
  margin-left: 2px;
}

.more-actions {
  display: flex;
  justify-content: center;
  margin-top: 30px;
  width: 100%;
}

.btn-more-products {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 320px;
  height: 50px;
  background: #ffffff;
  border: 1px solid var(--accent);
  color: var(--accent) !important;
  border-radius: 999px;
  font-weight: 900;
  font-size: 14px;
  text-decoration: none;
  transition: background 0.25s, color 0.25s, transform 0.25s;
}

.btn-more-products:hover {
  background: var(--accent);
  color: #ffffff !important;
  transform: translateY(-2px);
}

@media (max-width: 768px) {
  .btn-more-products {
    width: 100%;
    max-width: 280px;
  }
}

.common-cta {
  padding: 42px 34px;
  border-radius: 24px;
  border: 1px solid var(--line);
  background: #ffffff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  box-sizing: border-box;
}

.common-cta__body {
  flex: 1;
}

.common-cta__label {
  margin: 0 0 8px;
  color: var(--accent);
  font-size: 12px;
  font-weight: 950;
  letter-spacing: 0.24em;
}

.common-cta__title {
  margin: 0 0 10px;
  font-size: 20px;
  font-weight: 950;
  line-height: 1.4;
  color: var(--ink);
}

.common-cta__text {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.7;
}

.common-cta__buttons {
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex-shrink: 0;
  width: 280px;
}

.common-cta__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 50px;
  border-radius: 999px;
  font-weight: 950;
  font-size: 14px;
  text-decoration: none !important;
  box-sizing: border-box;
  transition: background 0.22s, color 0.22s, transform 0.22s;
}

.common-cta__button--primary {
  background: var(--accent) !important;
  color: #ffffff !important;
}

.common-cta__button--primary:hover {
  background: var(--accent2) !important;
  transform: translateY(-2px);
}

.common-cta__button--tel {
  background: #ffffff !important;
  border: 1px solid var(--ink) !important;
  color: var(--ink) !important;
}

.common-cta__button--tel:hover {
  background: var(--ink) !important;
  color: #ffffff !important;
  transform: translateY(-2px);
}

@media (max-width: 1024px) {
  .common-cta {
    flex-direction: column;
    text-align: center;
    gap: 26px;
    padding: 34px 24px;
    margin: 30px 16px;
    width: calc(100% - 32px);
  }

  .common-cta__buttons {
    width: 100%;
    max-width: 300px;
  }
}

.reason {
  display: flex;
  flex-direction: column;
}

.reason h3 {
  margin: 6px 0 12px !important;
  font-size: 19px !important;
  font-weight: 950 !important;
  color: var(--ink);
}

.reason-img-wrap {
  width: 100%;
  margin: 4px 0 14px;
  border-radius: 10px;
  overflow: hidden;
}

.reason-img-wrap img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

.reason p {
  margin-top: auto !important;
  font-weight: 500;
}

.reason p .text-orange {
  color: var(--accent) !important;
  font-weight: 700;
}

@media (min-width: 1001px) {
  .strength-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 24px !important;
  }
}

#contact .btn.primary {
  background: var(--accent) !important;
  color: #ffffff !important;
  border: 1px solid var(--accent) !important;
}

#contact .btn.primary:hover {
  background: var(--accent2) !important;
  border-color: var(--accent2) !important;
  transform: translateY(-3px);
}

#contact .btn.secondary {
  background: #ffffff !important;
  border: 1px solid var(--ink) !important;
  color: var(--ink) !important;
}

#contact .btn.secondary:hover {
  background: var(--ink) !important;
  color: #ffffff !important;
  transform: translateY(-3px);
}

.cat-tab {
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  padding: 13px 20px;
  cursor: pointer;
  font-weight: 900;
  color: var(--muted);
}

.cat-tab.active {
  background: #fc5d2e;
  color: #fff;
  border-color: #fc5d2e;
}

.cat-tab-panel {
  display: none;
}

.cat-tab-panel.active {
  display: block;
  animation: panelIn .45s ease both;
}


.cat-pagination {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin: 30px 0 10px;
  width: 100%;
}

.cat-pagination button {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid var(--line);
  background: #ffffff;
  color: var(--muted);
  font-weight: 700;
  font-size: 14px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
}

.cat-pagination button.active {
  background: var(--accent) !important;
  color: #ffffff !important;
  border-color: var(--accent) !important;
}

@media (max-width: 760px) {
  .category-tab-section .products {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 12px !important;
    overflow-x: visible !important;
    white-space: normal !important;
    padding-bottom: 0 !important;
  }

  .category-tab-section .product {
    flex: none !important;
    min-width: 0 !important;
    width: 100% !important;
  }
}

@media (max-width: 760px) {
  .category-tab-section .product:first-child {
    grid-column: auto !important;
    flex: none !important;
    min-width: 0 !important;
    width: 100% !important;
  }
}

.reveal{
  opacity:0;
  transform:translateY(34px);
  transition:opacity .8s ease, transform .8s ease;
  pointer-events:none;   /* ← 追加：見えていない間はクリックを透過させる */
}

.reveal.is-visible{
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;   /* ← 追加：見えたらクリック復活 */
}