@charset "UTF-8";
/* ==========================================================================
   Dog Run Homes LP

   PC : アートボード 960px / コンテンツ 640px を「1rem = 16px」として組み、
        ルートの font-size を可変にすることで全体を等倍スケールさせる。
        1rem = 16px（viewport 960px）→ 24px（1550px 以上）= 1.5倍
        ※ px指定はSP/タブレットのメディアクエリ内のみ（ルート16px固定）
   BP : 960px 未満 → 縦積みレイアウト
   ========================================================================== */

/* ---------- tokens ---------- */
:root{
  --green:#23B200;
  --green-d:#1B8C00;
  --lime:#C2ECA8;
  --yellow:#FFFC00;
  --lemon:#D9F53A;
  --orange:#EF8C2A;
  --orange-d:#B8600E;
  --orange-r:#F15A25;
  --brown:#603813;
  --blue:#206693;
  --bg-green:#ECF9E5;
  --bg-card:#E9F6E1;
  --ink:#2B2320;

  --container:40rem;
  --pad:2rem;

  --jp:'Noto Sans JP','Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;
  --en:'Alexandria','Noto Sans JP',sans-serif;
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:hidden;}

/* PCは画面幅に合わせてデザイン全体を等倍スケール（1.0倍〜1.5倍） */
@media (min-width:960px){
  html{font-size:clamp(16px, 1.55vw, 24px);}
}
body{
  margin:0;
  font-family:var(--jp);
  color:var(--ink);
  background:#fff;
  line-height:1.5;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block;border:0;}
a{color:inherit;text-decoration:none;}
p,h1,h2,h3,dl,dd,ul{margin:0;padding:0;}
ul{list-style:none;}
.svg-sprite{position:absolute;width:0;height:0;overflow:hidden;}
svg{fill:currentColor;}

/* Japanese proportional punctuation for display type (matches the comp) */
.hero__title,.hero__band,.mediacard__title,.mediacard__lead,.cta__strong,
.problem__title,.problem__concl,.gap__l1,.gap__l2,.cases__title,.case__head,
.dakara__main,.points__q,.points__small,.points__big,.point__title,
.company__title,.media2__title,.voices__title,.voice__hl,.faq__title,.faq__cattitle{
  font-feature-settings:"palt" 1;
}

/* ==========================================================================
   HERO
   ========================================================================== */
/* 背景は4層構成。
   1) ベースの縦グラデーション（わずかに緑を含んだオフホワイト）
   2) 写真側（右上）のグリーングロー／コピー側（左下）のウォームグロー
   3) ::before  肉球パターンを乗算でごく薄く敷く
   4) ::after   紙のような微細なグレイン */
.hero{
  position:relative;
  isolation:isolate;
  padding:0 var(--pad) 3.8125rem;
  background:
    radial-gradient(52% 42% at 78% 8%,  rgba(35,178,0,.09) 0%, rgba(35,178,0,0) 65%),
    radial-gradient(46% 38% at 6% 70%,  rgba(239,140,42,.065) 0%, rgba(239,140,42,0) 62%),
    linear-gradient(180deg, #F7FBF4 0%, #FFFFFF 28%, #FFFFFF 68%, #F5FAF1 100%);
}
.hero::before{
  content:"";
  position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:url("../img/bg-paws.jpg") 0 0/22rem repeat;
  opacity:.2;
  mix-blend-mode:multiply;
}
.hero::after{
  content:"";
  position:absolute;inset:0;z-index:-1;pointer-events:none;
  opacity:.04;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23g)'/%3E%3C/svg%3E") 0 0/11.25rem repeat;
}
.hero__inner{max-width:var(--container);margin-inline:auto;position:relative;}

.hero__head{position:relative;height:28.5625rem;padding:3.0625rem 0 0 1.3125rem;}

/* 左端はH1と揃える。top は下の要素を動かさずロゴだけ持ち上げるため */
.hero__logo{width:11.375rem;margin-left:0;position:relative;top:-0.4375rem;}

.hero__copy{position:relative;z-index:3;}

.hero__title{
  margin:0.375rem 0 0;
  font-size:1.875rem;
  font-weight:900;
  line-height:1.36;
  color:var(--brown);
  letter-spacing:.005em;
  /* フォールバック：16方向シャドウ（paint-order 非対応ブラウザ用） */
  text-shadow:
    -0.125rem -0.125rem 0 #fff, 0.125rem -0.125rem 0 #fff, -0.125rem 0.125rem 0 #fff, 0.125rem 0.125rem 0 #fff,
     0 -0.125rem 0 #fff, 0 0.125rem 0 #fff, -0.125rem 0 0 #fff, 0.125rem 0 0 #fff,
    -0.1875rem -0.0625rem 0 #fff, 0.1875rem -0.0625rem 0 #fff, -0.1875rem 0.0625rem 0 #fff, 0.1875rem 0.0625rem 0 #fff,
    -0.0625rem -0.1875rem 0 #fff, 0.0625rem -0.1875rem 0 #fff, -0.0625rem 0.1875rem 0 #fff, 0.0625rem 0.1875rem 0 #fff;
}
/* 本命：文字のアウトラインをストロークで描き、塗りを上に重ねる。
   シャドウの重ね合わせと違い縁がなめらかになる。 */
@supports (paint-order: stroke){
  .hero__title{
    text-shadow:none;
    -webkit-text-stroke:0.25rem #fff;
    paint-order:stroke fill;
  }
}
.hero__title .num{font-family:var(--en);font-weight:800;line-height:.86;}
.hero__title .accent{color:var(--orange-r);}
.hero__title .hero__big{
  font-family:var(--en);font-weight:800;color:var(--orange-r);
  font-size:1.5em;line-height:.86;
}
@media (min-width:960px){
  .hero__title > .num:first-child{font-size:1.5em;color:var(--orange-r);}
}
.hero__band{
  display:inline-block;
  margin:1.375rem 0 0;
  padding:0.1875rem 0.875rem;
  background:var(--brown);
  color:#fff;
  font-size:1.1875rem;font-weight:700;line-height:1.2;
  letter-spacing:.02em;
  position:relative;z-index:3;
}
.hero__band .hl{color:var(--yellow);}

.hero__badges{display:flex;gap:0.875rem;margin:1.3125rem 0 0 0.625rem;position:relative;z-index:3;}
.badge{
  width:5rem;height:5rem;flex:0 0 5rem;border-radius:50%;
  background:var(--green);color:#fff;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0.1875rem;
  text-align:center;
  font-size:0.59375rem;font-weight:700;line-height:1.24;letter-spacing:-.03em;
}
.badge__ic{width:1rem;height:1rem;}
.badge em{color:var(--yellow);font-style:normal;}
.badge--report{
  position:relative;
  flex-direction:row;
  gap:0;
  padding:0.3rem;
}
.badge__reportText{
  flex:0 0 auto;
  white-space:nowrap;
}
.badge__reportCover{
  position:absolute;
  top:50%;
  right:-3.85rem;
  width:4.35rem;
  aspect-ratio:2 / 3;
  flex:0 0 auto;
  overflow:hidden;
  border:1px solid rgba(255,230,146,.9);
  border-radius:1px;
  box-shadow:0 2px 4px rgba(0,0,0,.32);
  transform:translateY(-50%) rotate(3deg);
}
.badge__reportCover::after{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(6,36,28,.42);
}
.badge__reportCover img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.badge__reportCover i{
  position:absolute;
  z-index:1;
  top:18%;
  left:0;
  width:100%;
  color:#fff;
  font-size:0.675rem;
  font-style:normal;
  font-weight:800;
  line-height:1.25;
  letter-spacing:.04em;
  text-align:center;
}
.hero__reportCoverSp{display:none;}

/* hero photos */
.hero__media{position:absolute;inset:0;z-index:1;pointer-events:none;}
/* maindog.png は角丸が透過で焼き込まれており、上辺に約28px（画像内）の
   透明な余白がある。そのぶん left / top を詰めて写真本体の位置を合わせ、
   影は矩形に出る box-shadow ではなく、透明部分に沿う drop-shadow を使う。 */
.hero__ph1{
  position:absolute;left:15.65rem;top:0.6875rem;
  width:24.625rem;height:auto;object-fit:cover;object-position:50% 35%;
  border-radius:0.875rem;
  filter:drop-shadow(0 0.5rem 0.9rem rgba(0,0,0,.22));
  z-index:1;
}
.hero__ph2{
  position:absolute;left:28.5625rem;top:14.125rem;
  width:13.5625rem;height:9.4375rem;object-fit:cover;
  border-radius:0.75rem;border:0.3125rem solid #fff;
  box-shadow:0 0.625rem 1.5rem rgba(0,0,0,.22);z-index:3;
}
.hero__pome{position:absolute;left:37rem;top:20.125rem;width:5.5rem;height:auto;z-index:4;}

/* ---------- media card (brown) ---------- */
.mediacard{
  position:relative;z-index:5;
  background:var(--brown);border-radius:1.125rem;
  padding:1.625rem 2.375rem 2.125rem;text-align:center;color:#fff;
}
.mediacard__en{
  font-family:var(--en);font-size:0.6875rem;font-weight:600;
  letter-spacing:.32em;text-indent:.32em;margin-bottom:0.3125rem;
}
.mediacard__title{
  display:flex;align-items:center;justify-content:center;gap:0.5625rem;
  font-size:1.9375rem;font-weight:900;margin-bottom:0.1875rem;letter-spacing:.01em;line-height:1.25;
}
.mediacard__ic{width:1.9375rem;height:1.9375rem;}
.mediacard__lead{color:var(--yellow);font-size:1.4375rem;font-weight:800;line-height:1.3;letter-spacing:.005em;}
.mediacard__note{font-size:0.75rem;font-weight:500;line-height:1.7;margin-top:0.5rem;}
.mediacard__imgs{display:flex;gap:0.625rem;justify-content:center;margin-top:1rem;}
.mediacard__imgs img{
  width:calc(50% - 0.3125rem);height:auto;
  border:0.3125rem solid #fff;box-shadow:0 0.375rem 1rem rgba(0,0,0,.3);
}

/* ==========================================================================
   CTA
   ========================================================================== */
.cta{background:var(--green);padding:3.4375rem var(--pad) 3.875rem;}
.cta__inner{width:31.875rem;max-width:100%;margin-inline:auto;}
.cta__top{display:flex;align-items:center;gap:0.625rem;}

.cta__badge{
  flex:0 0 8rem;width:8rem;height:8rem;border-radius:50%;
  background:#fff;color:var(--green);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  font-weight:800;line-height:1.05;
}
.cta__badge-s{font-size:1.0625rem;letter-spacing:-.02em;}
.cta__badge-m{font-size:1.3125rem;}
.cta__badge-l{font-family:var(--en);font-size:2.8125rem;font-weight:800;line-height:.94;display:flex;align-items:flex-end;}
.cta__badge-l i{
  font-family:var(--jp);font-style:normal;font-size:0.75rem;font-weight:800;
  writing-mode:vertical-rl;line-height:1;margin-bottom:0.25rem;letter-spacing:.02em;
}
.cta__copy{flex:1 1 auto;min-width:0;}
.cta__ribbon{
  background:#fff;color:var(--orange);
  font-size:1.4375rem;font-weight:800;line-height:1.15;
  padding:0.5rem 0.625rem;
  display:flex;align-items:center;justify-content:center;gap:0.5rem;
  letter-spacing:.005em;white-space:nowrap;position:relative;
}
.cta__yield{
  position:absolute;right:0.5rem;top:-1.7rem;
  padding:0.28rem 0.55rem;background:#fff;color:var(--brown);
  border:0.125rem solid var(--orange);border-radius:0.625rem;
  font-size:0.6875rem;font-weight:900;line-height:1;letter-spacing:.03em;
  white-space:nowrap;filter:drop-shadow(0 0.125rem 0 rgba(0,0,0,.1));
}
.cta__yield::after{
  content:"";position:absolute;right:1rem;bottom:-0.42rem;
  width:0.65rem;height:0.65rem;background:#fff;
  border-right:0.125rem solid var(--orange);border-bottom:0.125rem solid var(--orange);
  transform:rotate(45deg);
}
.cta__gift{width:1.375rem;height:1.375rem;flex:0 0 1.375rem;}
.cta__spBreak{display:none;}
.cta__lead{
  color:#fff;font-size:1.0625rem;font-weight:700;
  letter-spacing:.005em;margin-top:0.5625rem;line-height:1.2;
}
.cta__strong{
  color:var(--lemon);font-size:2rem;font-weight:900;line-height:1.14;
  letter-spacing:.24em;margin-top:0.5625rem;
  display:inline-block;
}
.cta__btn{
  display:flex;align-items:center;justify-content:center;gap:0.5625rem;
  width:30rem;max-width:100%;margin:0.6875rem 0 0 auto;
  padding:0.875rem 1.5rem;
  background:var(--orange);color:#fff;
  font-size:1.125rem;font-weight:800;letter-spacing:.02em;line-height:1.5;
  border-radius:0.6875rem;position:relative;
  box-shadow:0 0.5625rem 1.125rem rgba(0,0,0,.28), 0 0.1875rem 0 var(--orange-d), inset 0 0.0625rem 0 rgba(255,255,255,.4);
  transition:transform .15s ease, box-shadow .15s ease;
}
.cta__btn:hover{transform:translateY(0.125rem);box-shadow:0 0.3125rem 0.75rem rgba(0,0,0,.28), 0 0.0625rem 0 var(--orange-d), inset 0 0.0625rem 0 rgba(255,255,255,.4);}
.cta__line{width:1.3125rem;height:1.3125rem;flex:0 0 1.3125rem;}
.cta__arrow{position:absolute;right:1.5rem;font-size:1.7em;font-weight:400;line-height:1;}

/* ==========================================================================
   PROBLEM
   ========================================================================== */
.problem{
  background:#EEF0F1 url("../img/bg-concrete.jpg") center/cover no-repeat;
  padding:3.75rem var(--pad) 4.375rem;
}
.problem__inner{max-width:var(--container);margin-inline:auto;text-align:center;}
.problem__title{font-size:2.0625rem;font-weight:900;line-height:1.34;letter-spacing:.01em;margin-bottom:1rem;}
.problem__title .blue{color:var(--blue);}
.problem__title .dots{
  -webkit-text-emphasis:filled dot currentColor;
  text-emphasis:filled dot currentColor;
  -webkit-text-emphasis-position:over;
  text-emphasis-position:over;
}
.problem__lead{
  font-size:1rem;line-height:1.5;color:#3F4750;font-weight:500;margin-bottom:2.1875rem;
  text-shadow:
    -0.09375rem -0.09375rem 0 #fff,0.09375rem -0.09375rem 0 #fff,-0.09375rem 0.09375rem 0 #fff,0.09375rem 0.09375rem 0 #fff,
    0 -0.09375rem 0 #fff,0 0.09375rem 0 #fff,-0.09375rem 0 0 #fff,0.09375rem 0 0 #fff;
}
.problem__lead strong{font-weight:900;}

.problem__stage{position:relative;width:35.3125rem;max-width:100%;height:14.5rem;margin:0 auto 0.875rem;}
.problem__man{position:absolute;left:50%;top:0.625rem;transform:translateX(-50%);width:11.875rem;height:auto;z-index:2;}
.bubble{
  position:absolute;z-index:3;width:12.6875rem;
  background:var(--blue);color:#fff;
  font-size:0.9375rem;font-weight:700;line-height:1.45;
  padding:0.6875rem 0.5rem;border-radius:0.25rem;text-align:center;
}
.bubble::after{content:"";position:absolute;bottom:-0.6875rem;border-style:solid;border-color:transparent;}
.bubble--l1,.bubble--l2{left:0;}
.bubble--r1,.bubble--r2{right:0;}
.bubble--l1{top:0;}
.bubble--l2{top:6.75rem;}
.bubble--r1{top:0;}
.bubble--r2{top:6.5625rem;}
.bubble--l1::after,.bubble--l2::after{right:1.5rem;border-width:0.75rem 0 0 1.125rem;border-top-color:var(--blue);}
.bubble--r1::after,.bubble--r2::after{left:1.5rem;border-width:0.75rem 1.125rem 0 0;border-top-color:var(--blue);}

.problem__concl{font-size:1rem;font-weight:800;line-height:1.5;margin-top:0.875rem;}
.problem__concl .blue{color:var(--blue);}
.problem__concl .big{font-size:1.55em;line-height:1.4;}
.problem__concl .mark{
  background:linear-gradient(transparent 82%, #C6CBD1 82%, #C6CBD1 95%, transparent 95%);
}

/* ==========================================================================
   GAP
   ========================================================================== */
.gap{background:#fff;padding:3.75rem var(--pad) 3rem;position:relative;}
.notch{
  position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:0;height:0;border-style:solid;border-width:1.5rem 2.875rem 0 2.875rem;border-color:transparent;
}
.notch--gray{border-top-color:#E9EAEA;}
.notch--case{border-top-color:var(--bg-green);}

.gap__inner{max-width:43.75rem;margin-inline:auto;display:flex;align-items:center;justify-content:center;}
.gap__arrow{width:9.375rem;flex:0 0 9.375rem;}
.gap__arrow--l{margin-right:-2.125rem;}
.gap__arrow--r{transform:scaleX(-1);margin-left:-2.125rem;}
.gap__text{text-align:center;flex:0 1 auto;}
.gap__l1{font-size:1.6875rem;font-weight:900;color:var(--brown);line-height:1.45;}
.gap__l2{
  display:inline-block;
  font-size:2rem;font-weight:900;color:var(--brown);line-height:1.4;
  background:linear-gradient(transparent 64%, #FBE3B8 64%, #FBE3B8 98%, transparent 98%);
}
.gap__l2 .orange{color:var(--orange-r);}
.gap__check{width:1.75rem;height:1.75rem;color:var(--orange-r);vertical-align:-0.25rem;margin-right:0.0625rem;}

/* ==========================================================================
   CASES
   ========================================================================== */
.cases{background:var(--bg-green);padding:2.25rem var(--pad) 2.6875rem;position:relative;overflow:hidden;}
.cases__q{
  position:absolute;top:-2.5rem;left:50%;transform:translateX(-20.625rem) rotate(-10deg);
  font-family:var(--en);font-size:14.375rem;font-weight:900;line-height:1;color:#fff;z-index:0;
  user-select:none;
}
.cases__inner{max-width:var(--container);margin-inline:auto;position:relative;z-index:1;text-align:center;}
.cases__title{font-size:2.0625rem;font-weight:900;color:var(--green);line-height:1.26;letter-spacing:.01em;}
.cases__sub{font-size:0.9375rem;font-weight:700;color:#4F5B45;margin-top:0.5rem;}

.cases__grid{display:flex;gap:1.75rem;justify-content:center;align-items:stretch;margin-top:4.875rem;}
.case{flex:0 0 16.75rem;width:16.75rem;position:relative;display:flex;flex-direction:column;}
.case__no{
  position:absolute;left:50%;bottom:100%;transform:translateX(-50%);
  font-family:var(--en);font-size:1.25rem;font-weight:500;color:var(--green);
  white-space:nowrap;letter-spacing:.02em;line-height:1;
  margin-bottom:-0.125rem;
}
.case__no b{font-size:1.9em;font-weight:600;letter-spacing:-.02em;}
.case__box{
  background:#fff;border-radius:0.875rem;box-shadow:0 0.25rem 0.875rem rgba(0,0,0,.06);
  text-align:left;position:relative;flex:1 1 auto;display:flex;flex-direction:column;
}
.case__head{
  background:var(--green);color:#fff;border-radius:0.875rem;
  padding:0.6875rem 0.375rem;
  font-size:1.1875rem;font-weight:800;text-align:center;letter-spacing:-.01em;
  position:relative;line-height:1.3;
}
.case__place{
  position:absolute;top:-1.3125rem;right:0.625rem;
  width:2.75rem;height:2.75rem;border-radius:50%;
  background:#D8ED00;color:var(--green);border:0.1875rem solid var(--green);
  display:flex;align-items:center;justify-content:center;
  font-size:0.75rem;font-weight:800;letter-spacing:-.03em;
}
.case__before{background:#F3F4F2;padding:0.875rem 1rem 1.0625rem;}
.case__after{background:#fff;padding:1rem 1rem 1.125rem;border-radius:0 0 0.875rem 0.875rem;position:relative;flex:1 1 auto;}
.case__notch{
  position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:0;height:0;border-style:solid;border-width:0.5625rem 0.9375rem 0 0.9375rem;
  border-color:#F3F4F2 transparent transparent transparent;
}
.case__label{
  font-size:0.9375rem;font-weight:800;display:flex;align-items:center;gap:0.5625rem;margin-bottom:0.625rem;
}
.case__label::before,.case__label::after{content:"";flex:1 1 auto;border-top:0.125rem dotted #C3C3C3;}
.case__label--before{color:#CB3131;}
.case__label--after{color:var(--green);}
.case__txt{font-size:0.84375rem;font-weight:500;color:#374151;text-align:center;line-height:1.55;}
.case__txt strong{font-weight:800;}
.case__result{
  font-family:var(--en);font-size:1.6875rem;font-weight:800;color:var(--green);
  text-align:center;margin-top:0.125rem;letter-spacing:-.02em;
}

/* ==========================================================================
   DAKARA
   ========================================================================== */
.dakara{background:var(--green);padding:2.6875rem var(--pad) 3.0625rem;position:relative;}
.dakara__inner{max-width:var(--container);margin-inline:auto;display:flex;align-items:center;justify-content:center;gap:1rem;}
/* 吹き出し。尾の付け根（三角形の底辺）を円の内側に置くことで、
   白どうしが重なって1つの図形に見える。
   left/top は円の直径に対する％なので、円のサイズが変わっても付け根の位置は保たれる。 */
.dakara__bubble{
  --tail-h:1rem;     /* 尾の長さ */
  --tail-w:0.5rem;   /* 尾の底辺の半分 */
  flex:0 0 3.875rem;width:3.875rem;height:3.875rem;border-radius:50%;
  background:#fff;color:var(--green);
  display:flex;align-items:center;justify-content:center;
  font-size:0.8125rem;font-weight:800;position:relative;
}
.dakara__bubble::after{
  content:"";
  position:absolute;left:73.4%;top:71%;
  width:0;height:0;
  border-style:solid;
  border-width:var(--tail-h) var(--tail-w) 0 var(--tail-w);
  border-color:#fff transparent transparent transparent;
  transform-origin:50% 0;                /* 回転の軸＝尾の付け根 */
  transform:rotate(-60deg);              /* 右やや下（水平から30度）へ向ける */
}
.dakara__body{text-align:center;}
.dakara__calc{font-family:var(--en);color:#fff;font-size:1rem;font-weight:600;letter-spacing:.01em;}
.dakara__main{color:#fff;font-size:1.4375rem;font-weight:800;line-height:1.32;margin-top:0.1875rem;}
.dakara__main .hl{color:var(--yellow);}

/* ==========================================================================
   POINTS
   ========================================================================== */
.points{
  background:#FAFAFA url("../img/bg-grid.jpg") repeat;background-size:26.25rem 26.25rem;
  padding:3.75rem var(--pad) 2.25rem;
}
.points__inner{max-width:var(--container);margin-inline:auto;}
.points__head{text-align:center;}
.points__en{
  font-family:var(--en);font-size:0.6875rem;font-weight:500;color:var(--green);
  letter-spacing:.24em;text-indent:.24em;margin-bottom:0.5625rem;
}
.points__q{
  display:inline-block;font-size:1.25rem;font-weight:900;color:#2B2320;
  border-bottom:0.125rem solid #2B2320;padding:0 0.75rem 0.375rem;
}
.points__title{display:flex;align-items:flex-end;justify-content:center;gap:0.3125rem;margin-top:0.5625rem;}
.points__three{
  font-family:var(--jp);font-size:5.25rem;font-weight:900;color:var(--green);
  line-height:.85;letter-spacing:-.02em;
}
.points__stack{display:flex;flex-direction:column;align-items:flex-start;}
.points__small{font-size:1.25rem;font-weight:900;color:var(--green);line-height:1.2;margin-bottom:0.125rem;}
.points__big{font-size:3.125rem;font-weight:900;color:var(--green);line-height:.94;letter-spacing:-.015em;}

.points__lead{text-align:center;font-size:0.84375rem;font-weight:700;color:#333;line-height:1.9;margin:1.5rem 0 4.625rem;}
.points__leadGroup{display:block;}
.points__lead .hl{background:rgba(232,168,56,.55);padding:0.0625rem 0.125rem;}

/* --- single point --- */
.point{
  display:flex;align-items:flex-start;gap:1.25rem;
  width:38.125rem;max-width:100%;margin:0 auto 3.5rem;position:relative;
}
.point:last-child{margin-bottom:0;}
.point--rev{flex-direction:row-reverse;}
.point__media{flex:0 0 19.5rem;width:19.5rem;position:relative;}
.point__media--sp{display:none;}
.point__media img{
  width:100%;height:14.5rem;object-fit:cover;
  border-radius:0.75rem;border:0.3125rem solid #fff;box-shadow:0 0.1875rem 0.625rem rgba(0,0,0,.1);
}
.point__body{flex:1 1 auto;min-width:0;padding-top:0.125rem;}
.point__no{
  font-family:var(--en);font-size:1.375rem;font-weight:500;color:var(--green);
  line-height:1;position:relative;letter-spacing:.01em;
}
.point__no b{font-size:2.15em;font-weight:600;letter-spacing:-.03em;}
.point__paw{position:absolute;width:1.625rem;opacity:.5;}
.point__paw.p1{left:7.875rem;top:-0.625rem;}
.point__paw.p2a{left:8rem;top:1.375rem;width:2.125rem;}
.point__paw.p2b{left:10.375rem;top:0;transform:scaleX(-1);}
.point__paw.p3a{left:7.25rem;top:1.625rem;width:2.375rem;}
.point__paw.p3b{left:9.625rem;top:0;transform:scaleX(-1);width:1.875rem;}
.point__paw.p3c{left:9.125rem;top:3.125rem;width:1.5rem;}

.point__title{
  margin:0.5rem 0 0.625rem;font-size:1.0625rem;font-weight:800;line-height:1.5;
  display:flex;flex-direction:column;align-items:flex-start;gap:0.3125rem;
}
.point__title span{background:var(--green);color:#fff;padding:0.125rem 0.4375rem;}
.point__txt{font-size:0.8125rem;font-weight:700;color:#111;line-height:2;text-align:justify;}
.point__txt em{color:var(--green);font-style:normal;}

.point--tv .point__media{height:13.875rem;}
.point--tv .point__media img{
  position:absolute;height:auto;object-fit:fill;border-width:0.25rem;
  box-shadow:0 0.1875rem 0.625rem rgba(0,0,0,.18);
}
.point--tv .point__media .point__tv1{width:13.25rem;left:0;top:0;z-index:1;}
.point--tv .point__media .point__tv2{width:15.625rem;left:3.875rem;top:5.1875rem;z-index:2;}

/* ==========================================================================
   COMPANY
   ========================================================================== */
.company{background:#fff url("../img/bg-paws.jpg") 0 0/26.25rem repeat;padding:2.75rem var(--pad) 3.25rem;}
.company__inner{max-width:var(--container);margin-inline:auto;position:relative;}
.company__card{
  background:var(--bg-card);border-radius:1.375rem;
  padding:2.125rem 2.75rem 2.5rem;text-align:center;position:relative;z-index:1;
}
.company__title{font-weight:900;line-height:1.26;margin-bottom:1.125rem;}
.company__title span{display:block;}
.company__title .l1{font-size:1.3125rem;color:var(--green);}
.company__title .l2{font-size:1.6875rem;color:var(--green);}
.company__title .l3{font-size:1.6875rem;color:var(--ink);}
.company__txt{font-size:0.875rem;font-weight:700;color:#374151;line-height:2;margin-bottom:1.125rem;}
.company__txt:last-child{margin-bottom:0;}
.company__txt em{color:var(--green);font-style:normal;}

.company__ph{
  position:absolute;z-index:2;object-fit:cover;
  border-radius:0.875rem;border:0.3125rem solid #fff;box-shadow:0 0.4375rem 1.125rem rgba(0,0,0,.16);
}
.company__ph--r{width:15.125rem;height:15.125rem;left:31.625rem;top:8.375rem;}
.company__ph--l{width:15.0625rem;height:15.0625rem;left:-7.25rem;top:18.875rem;}

/* ==========================================================================
   MEDIA 2
   ========================================================================== */
.media2{
  background:#fff;padding:2.25rem var(--pad) 2.5rem;
  border-top:0.1875rem solid #B2AB9E;border-bottom:0.1875rem solid #B2AB9E;
}
.media2__inner{max-width:var(--container);margin-inline:auto;text-align:center;}
.media2__en{
  font-family:var(--en);font-size:0.6875rem;font-weight:400;color:#6B6257;
  letter-spacing:.3em;text-indent:.3em;margin-bottom:0.4375rem;
}
.media2__title{
  display:flex;align-items:center;justify-content:center;gap:0.5rem;
  font-size:1.625rem;font-weight:900;color:var(--orange-r);margin-bottom:1rem;
}
.media2__ic{
  width:1.9375rem;height:1.9375rem;border-radius:0.5rem;background:var(--orange-r);color:#fff;
  display:flex;align-items:center;justify-content:center;flex:0 0 1.9375rem;
}
.media2__ic svg{width:1.1875rem;height:1.1875rem;}
.media2__row{
  display:flex;align-items:center;justify-content:center;gap:1.375rem;text-align:left;
  max-width:36.125rem;margin-inline:auto;
}
.media2__txt{font-size:0.8125rem;font-weight:700;color:var(--brown);line-height:2;}
.media2__txt strong{font-weight:900;}
.media2__img{width:13.25rem;border-radius:0.5rem;flex:0 0 13.25rem;}

/* ==========================================================================
   VOICES
   ========================================================================== */
.voices{background:#fff;padding:4.75rem var(--pad) 3.75rem;}
.voices__inner{max-width:var(--container);margin-inline:auto;}
.voices__en{
  text-align:center;font-family:var(--en);font-size:0.75rem;font-weight:700;color:var(--green);
  letter-spacing:.22em;text-indent:.22em;margin-bottom:0.4375rem;
}
.voices__title{text-align:center;font-size:1.6875rem;font-weight:900;line-height:1.36;margin-bottom:4.75rem;}
.voices__title .u{
  color:var(--green);
  background:linear-gradient(transparent 88%, var(--green) 88%, var(--green) 94%, transparent 94%);
}

.voices__grid{display:flex;flex-wrap:wrap;justify-content:center;gap:2.125rem 2.5rem;}
.voice{flex:0 0 18.125rem;width:18.125rem;display:flex;flex-direction:column;}
.voice__no{
  font-family:var(--en);font-size:1.3125rem;font-weight:700;color:var(--lime);
  line-height:1;margin-left:1.25rem;margin-bottom:-0.3125rem;position:relative;z-index:0;
}
.voice__no b{font-size:1.9em;font-weight:900;}
.voice__card{
  position:relative;z-index:1;background:var(--bg-card);border-radius:0.875rem;
  padding:1.0625rem 1.1875rem 1.25rem;min-height:17.3125rem;flex:1 1 auto;
}
.voice__head{border-left:0.1875rem solid var(--green);padding-left:0.625rem;margin-bottom:0.625rem;}
.voice__type{display:flex;align-items:center;gap:0.3125rem;font-size:0.875rem;font-weight:700;color:var(--green);line-height:1.3;}
.voice__type svg{width:0.875rem;height:0.875rem;flex:0 0 0.875rem;}
.voice__hl{font-size:1.125rem;font-weight:900;color:var(--green);line-height:1.3;margin-top:0.125rem;}
.voice__sub{font-size:0.71875rem;font-weight:500;color:#333;line-height:1.55;margin-bottom:0.6875rem;}
.voice__data{font-size:0.8125rem;color:#111;margin-bottom:0.6875rem;padding-right:4.125rem;}
.voice__data div{display:flex;gap:0.375rem;line-height:1.6;}
.voice__data dt{flex:0 0 auto;font-weight:500;}
.voice__data dd{margin:0;font-weight:800;}
.voice__note{font-size:0.71875rem;font-weight:600;color:#222;line-height:1.55;padding-right:4.125rem;}
.voice__up{
  position:absolute;right:0.875rem;bottom:1rem;
  width:3.875rem;height:3.875rem;border-radius:50%;
  background:var(--orange);color:#fff;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  box-shadow:0 0.25rem 0.625rem rgba(0,0,0,.2);line-height:1;
}
.voice__up i{font-style:normal;font-size:0.53125rem;font-weight:800;}
.voice__up b{font-family:var(--en);font-size:1.1875rem;font-weight:800;display:flex;align-items:center;margin:0.0625rem 0;}
.voice__up b em{
  font-family:var(--jp);font-style:normal;font-size:0.46875rem;font-weight:800;
  writing-mode:vertical-rl;line-height:1;margin-left:0.0625rem;
}

/* ==========================================================================
   FAQ
   ========================================================================== */
.faq{background:var(--bg-green);padding:3.5rem var(--pad) 4rem;}
.faq__inner{max-width:var(--container);margin-inline:auto;}
.faq__en{
  text-align:center;font-family:var(--en);font-size:0.75rem;font-weight:700;color:var(--green);
  letter-spacing:.22em;text-indent:.22em;margin-bottom:0.3125rem;
}
.faq__title{text-align:center;font-size:1.875rem;font-weight:900;color:var(--green);margin-bottom:1.625rem;}

.faq__nav{
  display:grid;grid-template-columns:1fr 1fr;gap:1rem;
  max-width:35.9375rem;margin:0 auto 2.625rem;
}
.faq__nav a{
  background:#fff;border:0.09375rem solid var(--green);color:var(--green);
  border-radius:999px;padding:0.5rem 0.875rem;
  font-size:0.8125rem;font-weight:700;
  display:flex;align-items:center;justify-content:center;gap:1rem;
  transition:background .15s ease,color .15s ease;
}
.faq__nav a span{font-size:0.625rem;}
.faq__nav a:hover{background:var(--green);color:#fff;}

.faq__cat{margin-bottom:3.5rem;scroll-margin-top:1.25rem;}
.faq__cat:last-child{margin-bottom:0;}
.faq__catno{
  text-align:center;font-family:var(--en);font-size:0.6875rem;font-weight:600;color:var(--green);
  letter-spacing:.22em;text-indent:.22em;margin-bottom:0.25rem;
}
.faq__cattitle{text-align:center;font-size:1.5rem;font-weight:900;color:var(--green);margin-bottom:1.25rem;}

.qa{margin-bottom:0.6875rem;border-radius:0.5625rem;overflow:hidden;box-shadow:0 0.0625rem 0.25rem rgba(0,0,0,.06);}
.qa summary{
  list-style:none;cursor:pointer;
  background:var(--green);color:#fff;
  padding:0.5625rem 2.875rem 0.5625rem 1.25rem;
  font-size:1rem;font-weight:700;line-height:1.55;position:relative;
}
.qa summary::-webkit-details-marker{display:none;}
.qa summary::after{
  content:"＋";position:absolute;right:1rem;top:50%;transform:translateY(-50%);
  font-size:1.1875rem;font-weight:700;line-height:1;
}
.qa[open] summary::after{content:"−";}
.qa__a{background:#fff;padding:1.5rem 1.375rem;font-size:0.875rem;color:#374151;line-height:1.75;}

/* ==========================================================================
   FOOTER
   ========================================================================== */
.footer{background:var(--brown);color:#C9B79C;text-align:center;padding:1.875rem var(--pad);}
.footer__logo{height:1.625rem;width:auto;margin:0 auto 0.75rem;filter:brightness(0) invert(1);opacity:.92;}
.footer__copy{font-size:0.6875rem;letter-spacing:.02em;}

/* SP fixed CTA (hidden on PC) */
.spcta{display:none;}

/* ==========================================================================
   MOTION
   スクロールに入った要素をふわっと表示する。
   html に .js-anim が付いているときだけ初期状態を隠すので、JS が無効でも
   （prefers-reduced-motion のときも）中身はそのまま見える。
   ========================================================================== */
html.js-anim [data-reveal]{
  opacity:0;
  transition:
    opacity   .8s cubic-bezier(.22,.68,.28,1),
    transform .8s cubic-bezier(.22,.68,.28,1);
}
html.js-anim [data-reveal]:not(.is-in){will-change:opacity, transform;}
html.js-anim [data-reveal="up"]{transform:translateY(26px);}
html.js-anim [data-reveal="zoom"]{transform:scale(.94);}
/* "fade" は transform を一切触らない。中央寄せや反転など、
   もともと transform を持っている要素に使うため。 */
html.js-anim [data-reveal].is-in{opacity:1;}
html.js-anim [data-reveal="up"].is-in,
html.js-anim [data-reveal="zoom"].is-in{transform:none;}

/* ヒーローのポメラニアンはゆっくり上下に浮かせる（reveal は opacity のみ） */
@keyframes dr-float{
  0%,100%{transform:translateY(0) rotate(0);}
  50%    {transform:translateY(-7px) rotate(-1.2deg);}
}
html.js-anim .hero__pome.is-in{animation:dr-float 3.6s ease-in-out .6s infinite;}

/* CTAボタンを一定間隔で光がすっと横切る */
@keyframes dr-shine{
  0%, 62%{transform:translateX(-120%);}
  100%   {transform:translateX(120%);}
}
.cta__btn, .spcta{overflow:hidden;}
.cta__btn::after, .spcta::after{
  content:"";position:absolute;top:0;bottom:0;left:0;width:45%;
  background:linear-gradient(100deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.5) 50%, rgba(255,255,255,0) 100%);
  transform:translateX(-120%);
  animation:dr-shine 5s ease-in-out infinite;
  pointer-events:none;z-index:2;
}

/* カード類のホバー */
.case__box,.voice__card,.company__ph,.mediacard__imgs img,.media2__img{
  transition:transform .35s cubic-bezier(.22,.68,.28,1), box-shadow .35s ease;
}
.case:hover .case__box,
.voice:hover .voice__card{transform:translateY(-5px);box-shadow:0 0.75rem 1.5rem rgba(0,0,0,.1);}
.company__ph:hover,
.mediacard__imgs img:hover,
.media2__img:hover{transform:scale(1.03);}

.point__media img{transition:transform .45s cubic-bezier(.22,.68,.28,1);}
.point:hover .point__media img{transform:scale(1.035);}
.point--tv:hover .point__media .point__tv2{transform:scale(1.035);}

.faq__nav a{transition:background .18s ease,color .18s ease,transform .18s ease;}
.faq__nav a:hover{transform:translateY(-2px);}
.qa summary{transition:filter .2s ease;}
.qa summary:hover{filter:brightness(1.08);}
.qa__a{animation:dr-open .35s cubic-bezier(.22,.68,.28,1);}
@keyframes dr-open{from{opacity:0;transform:translateY(-6px);}to{opacity:1;transform:none;}}

/* ==========================================================================
   OWNER REVIEWS
   ========================================================================== */
.ownerreviews{background:#fff;padding:4.75rem var(--pad) 4.5rem;}
.ownerreviews__inner{max-width:var(--container);margin-inline:auto;}
.ownerreviews__en{
  text-align:center;font-family:var(--en);font-size:.75rem;font-weight:700;color:var(--green);
  letter-spacing:.22em;text-indent:.22em;margin-bottom:.4375rem;
}
.ownerreviews__title{text-align:center;font-size:1.875rem;font-weight:900;line-height:1.4;margin-bottom:2.75rem;}
.ownerreviews__title span{color:var(--green);}
.ownerreviews__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;}
.ownerreview{
  display:flex;flex-direction:column;background:var(--bg-card);border-radius:1rem;
  padding:1.625rem 1.75rem 1.5rem;border-top:.3125rem solid var(--green);
  box-shadow:0 .1875rem .75rem rgba(0,0,0,.06);
}
.ownerreview__no{font-family:var(--en);font-size:.6875rem;font-weight:800;color:var(--green);letter-spacing:.16em;margin-bottom:.625rem;}
.ownerreview__title{font-size:1.125rem;font-weight:900;color:var(--green);line-height:1.55;margin-bottom:.75rem;}
.ownerreview__text{font-size:.8125rem;font-weight:600;color:#222;line-height:1.95;text-align:justify;margin-bottom:1rem;}
.ownerreview__profile{font-size:.75rem;font-weight:800;color:#6a3a13;margin-top:auto;padding-top:.75rem;border-top:1px solid rgba(20,178,0,.2);}

.badge{transition:transform .3s cubic-bezier(.22,.68,.28,1);}
.badge:hover{transform:translateY(-3px) scale(1.04);}

/* ==========================================================================
   RESPONSIVE  ―  SP / tablet (<=959px)
   The PC composition needs ~940px (photos bleed outside the 640px column),
   so everything below the 960px design width switches to the stacked layout.
   ========================================================================== */
@media (max-width:959px){
  :root{--pad:18px;}
  body{line-height:1.6;padding-bottom:64px;}

  /* ---- HERO ---- */
  .hero{padding:0 var(--pad) 34px;}
  .hero__head{height:auto;padding:20px 0 0;position:relative;}
  .hero__logo{width:min(50vw,190px);margin:0 auto 6px;top:0;}
  .hero__title{margin:0;font-size:clamp(23px,6.6vw,29px);line-height:1.34;}
  .hero__band{margin:12px 0 0;font-size:clamp(14px,4.1vw,18px);padding:5px 10px;}
  .hero__badges{margin:16px 0 0;gap:2.2vw;justify-content:space-between;}
  .badge{
    width:calc((100% - 6.6vw)/4);height:auto;aspect-ratio:1;flex:0 1 auto;
    font-size:clamp(8px,2.35vw,10px);gap:1px;
  }
  .badge__ic{width:clamp(13px,3.8vw,17px);height:clamp(13px,3.8vw,17px);}

  .hero__media{position:relative;inset:auto;margin-top:20px;height:auto;}
  .hero__ph1{
    position:relative;left:auto;top:auto;
    width:80%;height:auto;aspect-ratio:16/9;margin-left:auto;border-radius:12px;
  }
  .hero__ph2{
    position:absolute;left:0;bottom:-30px;top:auto;
    width:46%;height:auto;aspect-ratio:3/2;border-width:4px;border-radius:10px;
  }
  .hero__pome{position:absolute;left:36%;bottom:-48px;right:auto;top:auto;width:30.5%;}

  .mediacard{margin-top:70px;padding:20px 16px 22px;border-radius:14px;}
  .mediacard__en{font-size:10px;letter-spacing:.24em;}
  .mediacard__title{font-size:clamp(20px,5.9vw,28px);gap:7px;}
  .mediacard__ic{width:23px;height:23px;}
  .mediacard__lead{font-size:clamp(16px,4.7vw,22px);line-height:1.35;}
  .mediacard__note{font-size:clamp(10.5px,3vw,12px);line-height:1.7;}
  .mediacard__note br{display:none;}
  .mediacard__imgs{gap:8px;margin-top:14px;}
  .mediacard__imgs img{width:calc(50% - 4px);border-width:3px;}

  /* ---- CTA ---- */
  .cta{padding:30px var(--pad) 32px;}
  .cta__inner{width:100%;max-width:var(--container);}
  .cta__top{gap:8px;}
  .cta__badge{
    flex:0 0 clamp(72px,21.5vw,106px);
    width:clamp(72px,21.5vw,106px);height:clamp(72px,21.5vw,106px);
  }
  .cta__badge-s{font-size:clamp(10px,2.9vw,14px);}
  .cta__badge-m{font-size:clamp(12px,3.5vw,17px);}
  .cta__badge-l{font-size:clamp(25px,7.5vw,38px);}
  .cta__badge-l i{font-size:clamp(7px,2.1vw,10px);margin-bottom:3px;}
  .cta__ribbon{font-size:clamp(12.5px,3.9vw,19px);padding:5px 6px;gap:5px;}
  .cta__gift{width:clamp(13px,3.8vw,19px);height:clamp(13px,3.8vw,19px);flex-basis:auto;}
  .cta__lead{font-size:clamp(9.5px,2.8vw,13px);letter-spacing:.01em;margin-top:6px;}
  .cta__strong{font-size:clamp(14px,4.35vw,22px);letter-spacing:.22em;}
  .cta__yield{right:4px;top:-19px;padding:3px 6px;border-width:1.5px;border-radius:7px;font-size:clamp(8px,2.35vw,11px);}
  .cta__yield::after{right:10px;bottom:-5px;width:7px;height:7px;border-width:0 1.5px 1.5px 0;}
  .cta__btn{
    width:100%;margin:14px 0 0;
    font-size:clamp(14px,4.2vw,17px);padding:14px 34px 14px 16px;gap:7px;
  }
  .cta__line{width:19px;height:19px;flex-basis:19px;}
  .cta__arrow{right:14px;font-size:1.5em;}

  /* ---- PROBLEM ---- */
  .problem{padding:38px var(--pad) 36px;}
  .problem__title{font-size:clamp(21px,6.1vw,29px);line-height:1.4;}
  .problem__lead{font-size:clamp(12px,3.5vw,15px);line-height:1.75;margin-bottom:20px;}
  .problem__stage{width:100%;height:auto;display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:18px;}
  .problem__man{
    position:static;transform:none;width:44%;max-width:170px;
    grid-column:1 / -1;grid-row:2;margin:0 auto;
  }
  .bubble{
    position:static;width:auto;
    font-size:clamp(11px,3.2vw,14px);padding:10px 6px;
    display:flex;align-items:center;justify-content:center;
  }
  .bubble--l1{grid-column:1;grid-row:1;}
  .bubble--r1{grid-column:2;grid-row:1;}
  .bubble--l2{grid-column:1;grid-row:3;}
  .bubble--r2{grid-column:2;grid-row:3;}
  .bubble::after{display:none;}
  .problem__concl{font-size:clamp(12px,3.4vw,15px);}
  .problem__concl .big{font-size:1.5em;}

  /* ---- GAP ---- */
  .gap{padding:40px var(--pad) 34px;}
  .notch{border-width:16px 30px 0 30px;}
  .gap__inner{position:relative;display:block;text-align:center;max-width:var(--container);}
  .gap__arrow{
    position:absolute;top:50%;width:min(27vw,120px);flex-basis:auto;
    transform:translateY(-52%);z-index:0;
  }
  .gap__arrow--l{left:-14px;margin:0;}
  .gap__arrow--r{right:-14px;margin:0;transform:translateY(-52%) scaleX(-1);}
  .gap__text{position:relative;z-index:1;padding:0 2vw;}
  .gap__l1{font-size:clamp(14px,4.2vw,21px);}
  .gap__l2{font-size:clamp(17px,5.1vw,26px);}
  .gap__check{width:clamp(16px,4.7vw,23px);height:clamp(16px,4.7vw,23px);vertical-align:-3px;}

  /* ---- CASES ---- */
  .cases{padding:34px var(--pad) 40px;}
  .cases__q{font-size:150px;top:-10px;transform:translateX(-46vw) rotate(-10deg);}
  .cases__title{font-size:clamp(23px,6.8vw,32px);}
  .cases__sub{font-size:clamp(13px,3.7vw,15px);}
  .cases__grid{flex-direction:column;gap:56px;margin-top:48px;}
  .case{flex:1 1 auto;width:100%;max-width:340px;margin-inline:auto;}
  .case__head{font-size:clamp(17px,5vw,20px);}
  .case__result{font-size:clamp(23px,6.6vw,27px);}

  /* ---- DAKARA ---- */
  .dakara{padding:26px var(--pad) 28px;}
  .dakara__inner{gap:10px;}
  .dakara__bubble{
    --tail-h:13px;--tail-w:6.5px;
    flex-basis:52px;width:52px;height:52px;font-size:12px;
    align-self:flex-start;margin-top:6px;
  }
  .dakara__calc{font-size:clamp(11px,3.2vw,15px);}
  .dakara__main{font-size:clamp(16px,4.8vw,22px);}

  /* ---- POINTS ---- */
  .points{padding:38px var(--pad) 42px;background-size:260px 260px;}
  .points__q{font-size:clamp(15px,4.4vw,19px);padding:0 6px 4px;}
  .points__title{gap:2px;margin-top:6px;}
  .points__three{font-size:clamp(56px,17vw,82px);}
  .points__small{font-size:clamp(13px,3.9vw,19px);}
  .points__big{font-size:clamp(32px,9.6vw,49px);}
  .points__lead{font-size:clamp(11.5px,3.4vw,13.5px);line-height:1.85;margin:18px 0 34px;}

  .point,.point--rev{flex-direction:column;gap:12px;margin-bottom:36px;align-items:stretch;width:100%;}
  .point__media,.point--tv .point__media{flex:0 0 auto;width:100%;height:auto;}
  .point__media img{height:auto;aspect-ratio:3/2;border-width:4px;}
  .point__no{font-size:clamp(18px,5.3vw,22px);}
  .point__paw{display:none;}
  .point__title{font-size:clamp(15px,4.4vw,17px);}
  .point__txt{font-size:clamp(12px,3.5vw,13.5px);line-height:1.95;}

  .point--tv .point__media{position:relative;padding-bottom:58px;height:auto;}
  .point--tv .point__media img{position:static;object-fit:contain;aspect-ratio:auto;}
  .point--tv .point__media .point__tv1{width:76%;position:static;left:auto;top:auto;}
  .point--tv .point__media .point__tv2{position:absolute;width:52%;left:auto;right:0;bottom:0;top:auto;}

  /* ---- COMPANY ---- */
  .company{padding:34px var(--pad) 38px;background-size:280px;}
  .company__inner{display:flex;flex-direction:column;}
  .company__photos{display:flex;gap:12px;order:0;margin-bottom:16px;}
  .company__card{padding:24px 18px 26px;border-radius:16px;order:1;}
  .company__title .l1{font-size:clamp(14px,4.1vw,20px);}
  .company__title .l2,.company__title .l3{font-size:clamp(18px,5.4vw,26px);}
  .company__txt{font-size:clamp(11.5px,3.2vw,14px);line-height:1.95;margin-bottom:14px;}
  .company__ph{
    position:static;left:auto;top:auto;
    width:calc(50% - 6px);height:auto;aspect-ratio:1;border-width:4px;
  }

  /* ---- MEDIA2 ---- */
  .media2{padding:28px var(--pad) 32px;}
  .media2__title{font-size:clamp(20px,5.9vw,25px);}
  .media2__row{flex-direction:column;gap:14px;}
  .media2__txt{font-size:clamp(12px,3.5vw,13px);text-align:center;}
  .media2__img{width:min(78%,300px);flex-basis:auto;}

  /* ---- VOICES ---- */
  .voices{padding:38px var(--pad) 42px;}
  .voices__title{font-size:clamp(19px,5.6vw,26px);}
  .voices__grid{gap:30px 16px;}
  .voice{flex:1 1 100%;width:100%;max-width:360px;margin-inline:auto;}
  .voice__card{min-height:0;}
  .voice__hl{font-size:clamp(16px,4.8vw,19px);}
  .voice__data{font-size:clamp(12px,3.6vw,13.5px);padding-right:70px;}
  .voice__note{font-size:clamp(11px,3.2vw,12px);padding-right:70px;}

  /* ---- FAQ ---- */
  .faq{padding:38px var(--pad) 44px;}
  .faq__title{font-size:clamp(22px,6.5vw,29px);}
  .faq__nav{grid-template-columns:1fr;gap:8px;margin-bottom:30px;}
  .faq__nav a{font-size:clamp(12px,3.6vw,13px);padding:10px 12px;}
  .faq__cattitle{font-size:clamp(17px,5.1vw,23px);}
  .qa summary{font-size:clamp(13px,3.9vw,15px);padding:12px 40px 12px 14px;}
  .qa__a{font-size:clamp(12px,3.6vw,13.5px);padding:14px;line-height:1.8;}

  /* ---- OWNER REVIEWS ---- */
  .ownerreviews{padding:42px var(--pad) 46px;}
  .ownerreviews__title{font-size:clamp(22px,6.5vw,29px);margin-bottom:28px;}
  .ownerreviews__grid{grid-template-columns:1fr;gap:18px;}
  .ownerreview{padding:20px 18px 18px;border-radius:14px;}
  .ownerreview__title{font-size:clamp(17px,4.9vw,20px);}
  .ownerreview__text{font-size:clamp(13px,3.75vw,15px);line-height:1.9;}
  .ownerreview__profile{font-size:clamp(12px,3.45vw,14px);}

  /* ---- FOOTER ---- */
  .footer{padding:26px var(--pad) 30px;}
  .footer__logo{height:24px;}

  /* ---- fixed CTA ---- */
  .spcta{
    position:fixed;left:0;right:0;bottom:0;z-index:60;
    display:flex;align-items:center;justify-content:center;gap:8px;
    background:var(--orange);color:#fff;
    font-size:clamp(14px,4.2vw,17px);font-weight:800;
    padding:15px 12px;box-shadow:0 -3px 14px rgba(0,0,0,.22);
  }
  .spcta__ic{width:20px;height:20px;flex:0 0 20px;}
  .cta--last{padding-bottom:34px;}
}

/* ---- tablet refinements (stacked layout, but roomy) ---- */
@media (min-width:560px) and (max-width:959px){
  :root{--pad:28px;}
  .hero__badges{justify-content:flex-start;gap:16px;}
  .badge{width:96px;flex:0 0 96px;font-size:10px;}
  .badge__ic{width:17px;height:17px;}
  .badge__reportCover{right:-2.4rem;width:3rem;}
  .badge__reportCover i{font-size:.48rem;}
  .hero__ph1{width:70%;}
  .hero__ph2{width:34%;}
  .hero__pome{width:22.5%;left:40%;bottom:-40px;}
  .mediacard{margin-top:60px;}
  .cta__badge{flex-basis:118px;width:118px;height:118px;}
  .problem__stage{max-width:520px;margin-inline:auto;}
  .points__lead,.problem__lead,.company__txt,.media2__txt{max-width:520px;margin-inline:auto;}
  .company__photos{max-width:460px;margin-inline:auto;}
  .voices__grid{gap:30px 24px;}
  .voice{flex:0 1 288px;width:288px;max-width:288px;}
  .faq__nav{grid-template-columns:1fr 1fr;}
}

/* タブレット横向き：PCレイアウトへの切り替え直後のFV重なりを防ぐ */
@media (min-width:960px) and (max-width:1199px){
  .hero__head{height:28rem;padding:2rem 0 0 .75rem;}
  .hero__logo{width:9rem;}
  .hero__copy{width:52%;}
  .hero__title{font-size:1.45rem;line-height:1.38;}
  .hero__band{margin-top:1rem;padding:.2rem .5rem;font-size:.9rem;white-space:nowrap;}
  .hero__badges{gap:.5rem;margin:1rem 0 0 .25rem;}
  .badge{
    width:3.8rem;height:3.8rem;flex:0 0 3.8rem;
    font-size:.48rem;gap:.1rem;
  }
  .badge__ic{width:.85rem;height:.85rem;}
  .badge__reportCover{right:-2rem;width:2.5rem;}
  .badge__reportCover i{font-size:.4rem;}
  .hero__ph1{
    left:55%;top:3rem;width:44%;height:auto;
  }
  .hero__ph2{
    left:62%;top:15rem;width:26%;height:auto;aspect-ratio:3/2;
  }
  .hero__pome{
    left:83%;top:19rem;width:11%;
  }
}

/* スマホのファーストビューは画面幅を広く使う */
@media (max-width:559px){
  /* 端末幅に応じて文末の1〜2文字だけが次行に残るのを抑える */
  p,
  .qa__a,
  .qa summary{
    line-break:strict;
    text-wrap:pretty;
  }
  h1,
  h2,
  h3{
    line-break:strict;
    text-wrap:balance;
  }
  .badge{font-size:clamp(9.5px,2.95vw,11.75px);}
  .cta__spBreak{display:block;}
  .cta__ribbon > span:last-child,
  .cta__strong,
  .bubble{white-space:nowrap;}
  .cta__ribbon{font-size:clamp(10px,3.2vw,14px);}
  .cta__strong{font-size:clamp(20px,6.7vw,32px);letter-spacing:.04em;}
  .bubble{font-size:clamp(9.5px,2.9vw,12.5px);padding-inline:4px;}
  .bubble__pcBreak{display:none;}
  .hero__head{
    width:100vw;left:50%;margin-left:-50vw;padding:20px 10px 0;
  }
  .hero__title{font-size:clamp(26px,7.55vw,33px);}
  .hero__title > .num:first-child{font-size:1.5em;color:var(--orange-r);}
  .hero__band{display:block;width:100%;text-align:center;padding-inline:4px;font-size:clamp(15px,4.5vw,19px);}
}

@media (max-width:359px){
  .badge{font-size:9.25px;}
  .cta__ribbon{font-size:13px;}
}

/* スマートフォンではFVの犬画像2点を表示しない */
@media (max-width:559px){
  .hero__head{display:flex;flex-direction:column;}
  .hero__copy{display:contents;}
  .hero__logo{order:1;}
  .hero__title{order:2;}
  .hero__media{order:3;}
  .hero__band{order:4;margin-top:16px;}
  .hero__badges{order:5;margin-top:14px;}
  .hero__ph1,
  .hero__pome{display:none;}
  .hero__ph2{
    position:relative;left:auto;right:auto;top:auto;bottom:auto;
    display:block;width:100%;height:auto;aspect-ratio:3/2;
  }
  .badge--report .badge__reportCover{display:none;}
  .hero__reportCoverSp{
    display:block;
    top:auto;
    right:12px;
    bottom:12px;
    z-index:5;
    transform:rotate(3deg);
  }
  .mediacard{margin-top:20px;}
}

/* 動きを減らす設定の環境では一切アニメーションさせない */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{transition:none !important;animation:none !important;}
  html.js-anim [data-reveal]{opacity:1 !important;transform:none !important;}
  .cta__btn::after,.spcta::after{display:none;}
}

/* ---------- 送信完了ページ ---------- */
.thanks-page{
  min-height:100vh;padding:3rem 1.25rem;
  display:grid;place-items:center;
  background:linear-gradient(180deg,#f4faef 0%,#fff 100%);
}
.thanks-card{
  width:min(100%,40rem);padding:2.75rem 3rem;text-align:center;
  background:#fff;border:0.125rem solid rgba(35,178,0,.2);border-radius:1.25rem;
  box-shadow:0 1rem 2.5rem rgba(54,94,36,.12);
}
.thanks-card__logo{width:min(18rem,70%);margin:0 auto 2rem;}
.thanks-card__check{
  width:4.25rem;height:4.25rem;margin:0 auto 1.25rem;border-radius:50%;
  display:grid;place-items:center;background:var(--green);color:#fff;
  font-family:var(--en);font-size:2.25rem;font-weight:800;
}
.thanks-card__title{color:var(--brown);font-size:2rem;font-weight:900;line-height:1.35;}
.thanks-card__lead{margin-top:1.25rem;color:var(--green);font-size:1.125rem;font-weight:800;line-height:1.7;}
.thanks-card__text{margin-top:1rem;color:#4f493f;font-size:0.9375rem;line-height:1.9;}
.thanks-card__note{margin-top:1.25rem;padding:0.875rem 1rem;background:#f7f7f2;border-radius:0.625rem;color:#6d685f;font-size:0.75rem;line-height:1.7;}
.thanks-card__back{
  width:min(100%,22rem);min-height:3.75rem;margin:1.75rem auto 0;padding:0.75rem 2.5rem;
  display:flex;align-items:center;justify-content:center;
  background:var(--orange);color:#fff;border-radius:0.75rem;
  font-size:1rem;font-weight:800;box-shadow:0 0.45rem 0 #b95e14;
  transition:transform .2s ease,box-shadow .2s ease;
}
.thanks-card__back:hover{transform:translateY(-0.125rem);box-shadow:0 0.6rem 0 #b95e14;}

@media (max-width:559px){
  .thanks-page{padding:24px 18px;}
  .thanks-card{padding:32px 20px;border-radius:16px;}
  .thanks-card__logo{width:min(230px,72%);margin-bottom:24px;}
  .thanks-card__check{width:58px;height:58px;margin-bottom:16px;font-size:30px;}
  .thanks-card__title{font-size:clamp(24px,7vw,30px);}
  .thanks-card__lead{margin-top:16px;font-size:15px;line-height:1.7;}
  .thanks-card__text{margin-top:12px;font-size:13px;line-height:1.85;text-wrap:pretty;}
  .thanks-card__note{margin-top:16px;padding:12px;font-size:11px;}
  .thanks-card__back{min-height:58px;margin-top:22px;padding:12px 32px;border-radius:11px;font-size:15px;}
}

/* ========================================================================== 
   WEB FORM
   ========================================================================== */
.cta__web{
  display:flex;align-items:center;justify-content:center;gap:1rem;
  width:100%;max-width:100%;margin:0;padding:0.75rem 1rem;
  border:0.125rem solid rgba(255,255,255,.95);border-radius:0.6875rem;background:#fff;color:var(--brown);
  font-size:0.75rem;font-weight:800;line-height:1.35;transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}
.cta__web:hover{background:#fff;transform:translateY(-0.125rem);box-shadow:0 0.5rem 1rem rgba(0,0,0,.16);}
.cta__webArrow{font-family:var(--en);font-size:1.125rem;}
.cta__ribbon{white-space:normal;text-align:center;font-size:1rem;line-height:1.35;}
.cta__micro{margin:1.25rem 0 0;text-align:center;color:#fff;font-size:0.75rem;font-weight:800;letter-spacing:.02em;}
.cta__microBreak{display:none;}
.cta__micro::before,.cta__micro::after{content:"";display:inline-block;width:1.5rem;height:0.0625rem;margin:0 0.55rem 0.22rem;background:rgba(255,255,255,.75);}
.cta__actions{display:grid;grid-template-columns:1fr 1fr;gap:0.75rem;margin-top:0.65rem;align-items:stretch;}
.cta__actions .cta__btn,.cta__actions .cta__web{width:100%;height:4.5rem;min-height:4.5rem;margin:0;border-radius:0.6875rem;}
.cta__actions .cta__btn{padding:0.65rem 1.75rem 0.65rem 0.65rem;border:0.125rem solid rgba(255,255,255,.72);font-size:0.75rem;box-shadow:0 0.625rem 1.25rem rgba(85,45,10,.3),0 0.1875rem 0 var(--orange-d);}
.cta__actions .cta__btn:hover{transform:translateY(-0.125rem);box-shadow:0 0.8rem 1.4rem rgba(85,45,10,.34),0 0.1875rem 0 var(--orange-d);}
.cta__actions .cta__btn::after{display:none;}
.cta__actions .cta__arrow{right:0.75rem;}
.cta__btnText{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.15;}
.cta__btnText b{font-size:0.75rem;font-weight:900;white-space:nowrap;}
.cta__btnText small{font-size:0.5rem;font-weight:700;margin-top:0.25rem;white-space:nowrap;}
.cta__line{width:1.75rem;height:1.75rem;flex-basis:1.75rem;}
.spcta__text{display:flex;flex-direction:column;align-items:flex-start;line-height:1.1;}
.spcta__text b{font-size:0.875em;}
.spcta__text small{font-size:0.7em;margin-top:0.15rem;}
.spcta__arrow{margin-left:auto;font-size:1.25rem;}
.spcta::after{display:none;}
.webform{background:#f5f8ef;padding:4.75rem var(--pad) 5rem;scroll-margin-top:1rem;}
.webform__inner{max-width:var(--container);margin-inline:auto;}
.webform__en{text-align:center;color:var(--green);font-family:var(--en);font-size:0.6875rem;font-weight:800;letter-spacing:.28em;}
.webform__title{text-align:center;color:var(--brown);font-size:1.875rem;font-weight:900;line-height:1.4;margin-top:0.75rem;}
.webform__lead{text-align:center;font-size:0.8125rem;line-height:1.8;margin-top:1rem;color:#4b5563;}
.form-progress{display:flex;list-style:none;padding:0;margin:2.5rem auto 2rem;max-width:31.25rem;}
.form-progress li{flex:1;position:relative;text-align:center;color:#9ca3af;font-size:0.6875rem;font-weight:700;}
.form-progress li:not(:last-child)::after{content:"";position:absolute;top:1rem;left:60%;width:80%;height:0.125rem;background:#d1d5db;}
.form-progress b{display:grid;place-items:center;position:relative;z-index:1;width:2rem;height:2rem;margin:0 auto 0.4rem;border-radius:50%;background:#d1d5db;color:#fff;font-family:var(--en);font-size:0.875rem;}
.form-progress .is-current,.form-progress .is-complete{color:var(--green);}
.form-progress .is-current b,.form-progress .is-complete b{background:var(--green);}
.form-progress .is-complete:not(:last-child)::after{background:var(--green);}
.step-form{max-width:35rem;margin-inline:auto;background:#fff;border-radius:1rem;padding:2rem;box-shadow:0 0.75rem 2rem rgba(71,87,63,.12);}
.form-step{border:0;padding:0;margin:0;min-width:0;}
.step-form.is-enhanced .form-step[hidden]{display:none;}
.form-step legend{width:100%;color:var(--brown);font-size:1.25rem;font-weight:900;margin-bottom:1.5rem;}
.form-step legend span{display:block;color:var(--green);font-family:var(--en);font-size:0.6875rem;letter-spacing:.18em;margin-bottom:0.35rem;}
.form-field{position:relative;margin-bottom:1.5rem;}
.form-field label{display:block;color:#3f2a18;font-size:0.875rem;font-weight:800;margin-bottom:0.5rem;}
.form-field label em{display:inline-block;margin-left:0.35rem;padding:0.12rem 0.38rem;border-radius:0.25rem;background:var(--green);color:#fff;font-size:0.5625rem;font-style:normal;vertical-align:0.1rem;}
.field-optional{display:inline-block;margin-left:0.35rem;padding:0.12rem 0.38rem;border-radius:0.25rem;background:#e5e7eb;color:#606760;font-size:0.5625rem;font-weight:700;vertical-align:0.1rem;}
.form-field input,.form-field select,.form-field textarea{display:block;width:100%;border:0.125rem solid #d7ddd2;border-radius:0.5rem;background:#fff;padding:0.9rem 1rem;color:#222;font:500 0.9375rem/1.6 var(--jp);outline:none;transition:border-color .2s,box-shadow .2s;}
.form-field select{appearance:auto;cursor:pointer;}
.form-field textarea{resize:vertical;min-height:7.5rem;}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--green);box-shadow:0 0 0 0.25rem rgba(35,178,0,.12);}
.form-field input::placeholder,.form-field textarea::placeholder{color:#a7ada5;}
.field-help{font-size:0.6875rem;color:#6b7280;margin-top:0.4rem;}
.field-guide{display:none;align-items:center;gap:0.4rem;margin-top:0.45rem;color:var(--orange-r);font-size:0.6875rem;font-weight:800;}
.form-field.is-guide .field-guide{display:flex;}
.field-guide i{font-family:var(--en);font-size:1.25rem;font-style:normal;animation:form-arrow .85s ease-in-out infinite alternate;}
@keyframes form-arrow{from{transform:translateY(0)}to{transform:translateY(-0.4rem)}}
.field-error{min-height:0.9rem;margin-top:0.25rem;color:#c62828;font-size:0.6875rem;font-weight:700;}
.form-field.is-error input,.form-field.is-error select,.form-field.is-error textarea{border-color:#c62828;}
.input-suffix{display:flex;align-items:stretch;}
.input-suffix input{border-radius:0.5rem 0 0 0.5rem;}
.input-suffix span{display:grid;place-items:center;min-width:3.25rem;border:0.125rem solid #d7ddd2;border-left:0;border-radius:0 0.5rem 0.5rem 0;background:#eef3e9;color:var(--brown);font-size:0.9375rem;font-weight:800;}
.form-label{display:block;color:#3f2a18;font-size:0.875rem;font-weight:800;margin-bottom:0.5rem;}
.form-label em{display:inline-block;margin-left:0.35rem;padding:0.12rem 0.38rem;border-radius:0.25rem;background:var(--green);color:#fff;font-size:0.5625rem;font-style:normal;vertical-align:0.1rem;}
.form-label small{margin-left:0.5rem;color:#6b7280;font-size:0.625rem;font-weight:600;}
.choice-list{display:grid;gap:0.5rem;}
.choice-list label{display:flex;align-items:flex-start;gap:0.65rem;margin:0;padding:0.8rem 0.9rem;border:0.125rem solid #d7ddd2;border-radius:0.5rem;background:#fff;cursor:pointer;font-size:0.8125rem;line-height:1.55;}
.choice-list label:has(input:checked){border-color:var(--green);background:#f2faef;}
.choice-list input{appearance:none;width:1.1rem;height:1.1rem;flex:0 0 1.1rem;margin:0.08rem 0 0;padding:0;border:0.125rem solid #aeb8aa;border-radius:50%;}
.choice-list input:checked{border:0.34rem solid var(--green);background:#fff;}
.form-other[hidden]{display:none;}
.form-nav{display:flex;align-items:center;justify-content:space-between;gap:0.75rem;margin-top:1.75rem;}
.form-nav--next{justify-content:flex-end;}
.form-nav button{border:0;border-radius:2rem;background:var(--orange);color:#fff;cursor:pointer;padding:0.9rem 1.5rem;font-size:0.8125rem;font-weight:800;line-height:1.3;transition:transform .2s,filter .2s;}
.form-nav button:hover{filter:brightness(1.05);transform:translateY(-0.125rem);}
.form-nav button:disabled{cursor:wait;opacity:.6;transform:none;}
.form-nav .form-back{background:transparent;color:#6b7280;border:0.0625rem solid #cbd1c8;}
.form-submit{min-width:14rem;}
.form-privacy{margin-top:1rem;color:#858b83;font-size:0.625rem;line-height:1.7;text-align:center;}
.form-status{min-height:1.5rem;margin-top:1rem;text-align:center;font-size:0.8125rem;font-weight:800;}
.form-status.is-success{color:var(--green);}
.form-status.is-error{color:#c62828;}
.form-trap{position:absolute!important;left:-9999rem!important;width:0!important;height:0!important;opacity:0!important;}

@media (max-width:959px){
  .cta__actions{grid-template-columns:1fr;gap:10px;margin-top:14px;}
  .cta__micro{margin-top:18px;font-size:clamp(11px,3.1vw,13px);line-height:1.55;}
  .cta__micro::before,.cta__micro::after{width:18px;height:1px;margin:0 6px 4px;}
  .cta__ribbon{font-size:clamp(12px,3.4vw,16px);line-height:1.35;}
  .cta__actions .cta__btn,.cta__actions .cta__web{width:100%;height:72px;min-height:72px;margin:0;padding:10px 38px 10px 14px;border-width:2px;border-radius:11px;font-size:clamp(12px,3.5vw,15px);}
  .cta__actions .cta__web{padding-inline:16px;}
  .cta__actions .cta__arrow{right:16px;}
  .cta__btnText b{font-size:clamp(12.5px,3.6vw,15px);}
  .cta__btnText small{font-size:clamp(10px,3vw,12px);margin-top:4px;}
  .cta__line{width:26px;height:26px;flex-basis:26px;}
  .webform{padding:42px var(--pad) 46px;scroll-margin-top:12px;}
  .webform__title{font-size:clamp(22px,6.5vw,29px);}
  .webform__lead{font-size:clamp(12px,3.5vw,14px);}
  .form-progress{margin:28px auto 22px;}
  .form-progress li{font-size:10px;}
  .form-progress b{width:30px;height:30px;font-size:12px;}
  .form-progress li:not(:last-child)::after{top:14px;height:2px;}
  .step-form{padding:22px 16px;border-radius:14px;}
  .form-step legend{font-size:clamp(18px,5.2vw,23px);margin-bottom:22px;}
  .form-step legend span{font-size:10px;}
  .form-field{margin-bottom:20px;}
  .form-field label{font-size:14px;margin-bottom:7px;}
  .form-field label em{font-size:9px;margin-left:5px;padding:2px 5px;}
  .field-optional{font-size:9px;margin-left:5px;padding:2px 5px;}
  .form-field input,.form-field select,.form-field textarea{border-width:2px;border-radius:8px;padding:13px 12px;font-size:16px;}
  .form-field input:focus,.form-field select:focus,.form-field textarea:focus{box-shadow:0 0 0 4px rgba(35,178,0,.12);}
  .input-suffix input{border-radius:8px 0 0 8px;}
  .input-suffix span{min-width:50px;border-width:2px;border-radius:0 8px 8px 0;font-size:15px;}
  .form-label{font-size:14px;margin-bottom:7px;}
  .form-label em{font-size:9px;margin-left:5px;padding:2px 5px;}
  .form-label small{display:block;margin:4px 0 0;font-size:10px;}
  .choice-list{gap:8px;}
  .choice-list label{gap:10px;padding:12px;border-width:2px;border-radius:8px;font-size:13px;}
  .choice-list input{width:18px;height:18px;flex-basis:18px;padding:0;border-width:2px;}
  .choice-list input:checked{border-width:5px;}
  .field-help,.field-guide,.field-error{font-size:11px;}
  .field-guide i{font-size:19px;}
  @keyframes form-arrow{from{transform:translateY(0)}to{transform:translateY(-6px)}}
  .form-nav{gap:8px;margin-top:24px;}
  .form-nav button{padding:13px 18px;font-size:13px;}
  .form-submit{min-width:0;flex:1;}
  .form-privacy{font-size:10px;margin-top:14px;}
  .form-status{font-size:12px;}
}

@media (max-width:559px){
  .cta__micro{font-size:clamp(13px,3.7vw,15px);}
  .cta__microBreak{display:block;}
  .problem__lead{font-size:clamp(13px,3.75vw,15.5px);}
  .bubble{font-size:clamp(13px,3.8vw,15.5px);line-height:1.38;}
  .problem__concl{font-size:clamp(14px,3.85vw,16px);}
  .case__place{
    top:-31px;right:6px;width:66px;height:66px;
    font-size:18px;border-width:3px;
  }
  .case__label{font-size:clamp(18px,5.1vw,21px);}
  .case__txt{font-size:clamp(16px,4.3vw,18px);line-height:1.5;}
  .dakara__calc{display:none;}
  .dakara__main{margin-top:0;font-size:clamp(19px,5.55vw,23px);}
  .points__lead{font-size:clamp(13px,3.75vw,15.5px);line-height:1.85;}
  .points__leadGroup + .points__leadGroup{margin-top:14px;}
  .point__no{font-size:clamp(20px,5.8vw,24px);}
  .point__title{font-size:clamp(17px,4.8vw,19px);line-height:1.55;}
  .point__txt{font-size:clamp(13.5px,3.9vw,16px);line-height:1.9;}
  .points__three{font-size:clamp(68px,19vw,88px);}
  .points__small{font-size:clamp(16px,4.8vw,20px);}
  .points__big{font-size:clamp(38px,11vw,48px);}
  .point > .point__media{display:none;}
  .point .point__media--sp{
    display:block;
    width:100%;
    margin:6px 0 12px;
  }
  .point .point__title{
    width:100%;
    font-size:clamp(18px,5.2vw,22px);
    line-height:1.45;
  }
  .point .point__title span{
    display:block;
    width:100%;
    padding:4px 7px;
  }
  .company__txt{font-size:clamp(13px,3.65vw,15px);}
  .media2__txt{font-size:clamp(13.5px,3.8vw,15.5px);line-height:2;}
  .company__title .l1{font-size:clamp(16px,4.55vw,19px);}
  .company__title .l2,.company__title .l3{font-size:clamp(21px,6vw,25px);}
  .voice .voice__type{font-size:clamp(15px,4.3vw,18px);}
  .voice .voice__type svg{width:18px;height:18px;flex-basis:18px;}
  .voice .voice__hl{font-size:clamp(19px,5.6vw,23px);}
  .voice .voice__sub{font-size:clamp(13px,3.75vw,15.5px);}
  .voice .voice__card{padding-bottom:20px;}
  .voice .voice__data{
    width:calc(100% - 136px);font-size:clamp(14px,4.05vw,16.5px);padding-right:0;
  }
  .voice .voice__data div{display:block;line-height:1.5;}
  .voice .voice__note{
    width:calc(100% - 136px);font-size:clamp(13px,3.75vw,15.5px);padding-right:0;
  }
  .voice .voice__up{right:12px;bottom:16px;width:124px;height:124px;}
  .voice .voice__up i{font-size:17px;}
  .voice .voice__up b{font-size:38px;margin:3px 0;}
  .voice .voice__up b em{font-size:15px;margin-left:2px;}
}

@media (prefers-reduced-motion:reduce){
  .field-guide i{animation:none;}
}

.thanks-body{padding-bottom:0;}

/* ---------- SP固定フッター：WEBフォーム / LINE ---------- */
@media (max-width:959px){
  body{padding-bottom:72px;}
  .spcta{
    height:72px;padding:0;gap:0;
    align-items:stretch;justify-content:stretch;
    background:transparent;box-shadow:0 -3px 14px rgba(0,0,0,.22);
  }
  .spcta__item{
    position:relative;min-width:0;flex:1 1 50%;
    display:flex;align-items:center;justify-content:center;gap:7px;
    padding:9px 26px 9px 8px;color:#fff;text-align:center;
  }
  .spcta__web{background:var(--brown);}
  .spcta__line{background:var(--orange);border-left:1px solid rgba(255,255,255,.45);}
  .spcta__text{min-width:0;align-items:center;line-height:1.15;}
  .spcta__text small{margin:0 0 3px;font-size:clamp(10px,2.8vw,12px);font-weight:700;white-space:nowrap;}
  .spcta__text b{font-size:clamp(11px,3.1vw,14px);font-weight:900;white-space:nowrap;}
  .spcta__ic{width:20px;height:20px;flex:0 0 20px;}
  .spcta__arrow{position:absolute;right:8px;margin:0;font-size:17px;line-height:1;}
  .spcta__item:active{filter:brightness(.94);}
  .thanks-body{padding-bottom:0;}
}
