/* ===== LP（フロントページ）専用スタイル ===== */
body{
  font-family:var(--font-jp);
  color:var(--ink);
  background:var(--paper);
  line-height:1.8;
  font-feature-settings:"palt";
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
.sp-only{display:none}
@media (max-width:560px){.sp-only{display:inline}}
::selection{background:var(--coral);color:#fff}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--coral);outline-offset:3px;border-radius:4px}

/* ---------- shared ---------- */
.section-label{
  display:inline-flex;
  align-items:center;
  gap:.7rem;
  font-family:var(--font-en);
  font-weight:600;
  font-size:.76rem;
  letter-spacing:.32em;
  color:var(--coral);
  text-transform:uppercase;
}
.section-label::before,.section-label::after{content:"";width:26px;height:1.5px;background:var(--coral);flex-shrink:0}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:1rem;
  background:var(--coral);
  color:#fff;
  font-weight:700;
  font-size:1.02rem;
  letter-spacing:.04em;
  padding:1.05rem 2.4rem;
  border-radius:999px;
  box-shadow:0 10px 26px rgba(232,93,69,.28);
  transition:transform .4s var(--ease-out),box-shadow .4s var(--ease-out),background .3s;
}
.btn:hover{
  transform:translateY(-3px);
  box-shadow:0 14px 30px rgba(232,93,69,.36);
  background:var(--coral-deep);
}
.btn .arrow{
  width:34px;height:34px;
  border-radius:50%;
  background:#fff;
  color:var(--coral);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  transition:transform .4s var(--ease-out);
}
.btn:hover .arrow{transform:translateX(4px)}
.btn .arrow svg{width:14px;height:14px}

/* ---------- header ---------- */
.header{
  position:fixed;
  top:0;left:0;right:0;
  z-index:100;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:1.4rem clamp(1.4rem,4vw,3rem);
  pointer-events:none;
}
.header > *{pointer-events:auto}
.brand{line-height:1.2;transition:opacity .4s var(--ease-out),visibility .4s}
.header .brand.hide{opacity:0;visibility:hidden;pointer-events:none}
.brand .name{
  font-family:var(--font-en);
  font-weight:700;
  font-size:1.7rem;
  color:var(--coral);
  letter-spacing:.02em;
}
.brand .tag{
  font-family:var(--font-en);
  font-weight:600;
  font-size:.68rem;
  letter-spacing:.18em;
  color:var(--coral-soft);
}
.gnav{
  display:flex;
  align-items:center;
  gap:1.7rem;
  margin-left:auto;
  margin-right:1.1rem;
  background:rgba(255,255,255,.72);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border:1px solid var(--line);
  border-radius:999px;
  padding:.55rem .7rem .55rem 1.7rem;
  box-shadow:0 4px 18px rgba(29,28,38,.06);
}
.gnav a{
  font-family:var(--font-en);
  font-weight:600;
  font-size:.8rem;
  letter-spacing:.14em;
  color:var(--navy);
  transition:color .3s;
}
.gnav a:hover{color:var(--coral)}
.gnav .gnav-cta{
  background:var(--coral);
  color:#fff;
  border-radius:999px;
  padding:.55rem 1.3rem;
  transition:background .3s;
}
.gnav .gnav-cta:hover{color:#fff;background:var(--coral-deep)}
@media (max-width:1020px){.gnav{display:none}}
.menu-btn{
  width:56px;height:56px;
  border:none;
  border-radius:50%;
  background:#fff;
  box-shadow:0 6px 20px rgba(29,28,38,.12);
  cursor:pointer;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  transition:transform .3s var(--ease-out);
}
.menu-btn:hover{transform:scale(1.06)}
.menu-btn span{
  display:block;
  width:20px;height:2px;
  border-radius:2px;
  background:var(--coral);
  transition:transform .35s var(--ease-out),opacity .3s;
}
.menu-btn.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-btn.open span:nth-child(2){opacity:0}
.menu-btn.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------- drawer nav ---------- */
.drawer{
  position:fixed;
  inset:0;
  z-index:90;
  background:rgba(250,246,241,.96);
  backdrop-filter:blur(12px);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.6rem;
  opacity:0;
  visibility:hidden;
  transition:opacity .45s var(--ease-out),visibility .45s;
  overflow-y:auto;
}
.drawer.open{opacity:1;visibility:visible}
.drawer a{
  font-family:var(--font-en);
  font-weight:700;
  font-size:clamp(1.3rem,3.4vw,1.9rem);
  letter-spacing:.12em;
  color:var(--navy);
  position:relative;
  padding:.2rem 1rem;
  transition:color .3s;
}
.drawer a small{
  display:block;
  text-align:center;
  font-family:var(--font-jp);
  font-size:.72rem;
  font-weight:500;
  letter-spacing:.25em;
  color:var(--gray);
}
.drawer a:hover{color:var(--coral)}

/* ---------- hero ---------- */
.hero{
  position:relative;
  min-height:100svh;
  padding:clamp(7rem,14vh,9.5rem) clamp(1.4rem,5vw,4rem) clamp(4rem,8vh,6rem);
  display:flex;
  align-items:center;
  overflow:hidden;
}
.hero-photo{
  position:absolute;
  top:-12%;
  right:-14%;
  width:min(62vw,760px);
  aspect-ratio:.92;
  border-radius:0 0 0 62%;
  overflow:hidden;
  z-index:-1;
}
.hero-photo img{
  width:100%;height:100%;
  object-fit:cover;
}
.hero-photo::after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(115deg,rgba(255,255,255,.9) 0%,rgba(255,255,255,.25) 42%,rgba(255,255,255,0) 70%);
}
.dots{
  position:absolute;
  z-index:-1;
  width:150px;height:110px;
  background-image:radial-gradient(var(--coral-soft) 2px,transparent 2px);
  background-size:20px 20px;
  opacity:.4;
}
.dots.hero-dots{right:32%;bottom:16%}
.hero-inner{max-width:1180px;margin:0 auto;width:100%}
.hero-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.8rem;
  font-family:var(--font-en);
  font-weight:600;
  font-size:clamp(.72rem,1.2vw,.82rem);
  letter-spacing:.32em;
  text-transform:uppercase;
  color:var(--coral);
  margin-bottom:1.6rem;
}
.hero-eyebrow::before{content:"";width:36px;height:1.5px;background:var(--coral);flex-shrink:0}
.hero h1{
  font-family:var(--font-serif);
  font-weight:700;
  font-size:clamp(2.2rem,5.8vw,4.3rem);
  line-height:1.42;
  letter-spacing:.05em;
  color:var(--navy);
  margin-bottom:2.2rem;
}
.hero .lead{
  font-size:clamp(.95rem,1.6vw,1.08rem);
  font-weight:500;
  color:var(--ink);
  margin-bottom:1.6rem;
}
.hero .lead + .lead{margin-top:-0.6rem}
.hero-tags{
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
  margin-bottom:2.6rem;
}
.hero-tags li{
  font-size:.84rem;
  font-weight:700;
  color:var(--navy);
  background:rgba(255,255,255,.85);
  border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(29,28,38,.05);
  padding:.45rem 1.15rem;
  border-radius:999px;
}
.hero .btn{min-width:min(400px,100%)}

/* ---------- marquee ---------- */
.marquee{
  overflow:hidden;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:1.3rem 0;
  background:var(--paper);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
}
.marquee-track{
  display:flex;
  align-items:center;
  width:max-content;
  animation:marquee 38s linear infinite;
}
.marquee-track span{
  display:inline-flex;
  align-items:baseline;
  font-family:var(--font-en);
  font-weight:700;
  font-size:clamp(1rem,1.6vw,1.2rem);
  letter-spacing:.26em;
  text-transform:uppercase;
  white-space:nowrap;
  color:transparent;
  -webkit-text-stroke:1px rgba(29,28,38,.34);
  padding-right:2.6rem;
}
.marquee-track span i{
  font-family:var(--font-serif);
  font-style:normal;
  font-weight:600;
  font-size:.94em;
  letter-spacing:.2em;
  color:var(--navy);
  -webkit-text-stroke:0;
}
.marquee-track span b{
  color:var(--coral);
  -webkit-text-stroke:0;
  font-size:.72em;
  padding:0 1.1em;
  transform:translateY(-.12em);
  animation:marquee-spin 7s linear infinite;
  display:inline-block;
}
@keyframes marquee{to{transform:translateX(-50%)}}
@keyframes marquee-spin{to{transform:translateY(-.12em) rotate(360deg)}}

/* ---------- section heading shared ---------- */
.sec-head{text-align:center;max-width:760px;margin:0 auto}
.sec-head h2{
  font-family:var(--font-serif);
  font-size:clamp(1.65rem,3.4vw,2.4rem);
  color:var(--navy);
  letter-spacing:.08em;
  margin:.8rem 0 .8rem;
  line-height:1.5;
}
.sec-head p{font-size:.96rem;color:var(--ink)}

/* ---------- about murafam（事業紹介） ---------- */
.intro{background:var(--coral-mist);padding:clamp(4rem,9vw,7rem) clamp(1.4rem,5vw,4rem)}
.intro-inner{max-width:860px;margin:0 auto;text-align:center}
.intro .intro-txt{margin-top:1.6rem;font-size:.98rem;color:var(--ink);text-align:left}
.intro .intro-txt + .intro-txt{margin-top:1rem}
.intro-tags{margin-top:2.2rem;display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;list-style:none}
.intro-tags li{
  font-size:.85rem;font-weight:700;color:var(--navy);
  background:#fff;
  border:1px solid var(--line);
  padding:.5rem 1.2rem;border-radius:999px;
}

/* ---------- service ---------- */
.service{padding:clamp(4rem,9vw,7rem) clamp(1.4rem,5vw,4rem)}
.service-inner{max-width:1180px;margin:0 auto}
.service-grid{
  margin-top:2.8rem;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.4rem;
}
.service-card{
  border:1px solid var(--line);
  border-radius:20px;
  padding:2rem 1.8rem;
  background:#fff;
  display:flex;
  flex-direction:column;
  gap:1rem;
  transition:transform .5s var(--ease-out),box-shadow .5s var(--ease-out);
}
.service-card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(29,28,38,.12)}
.service-card .s-icon{
  width:60px;height:60px;
  border-radius:16px;
  background:var(--coral-pale);
  color:var(--coral);
  display:flex;align-items:center;justify-content:center;
}
.service-card .s-icon svg{width:30px;height:30px}
.service-card h3{font-size:1.18rem;color:var(--navy);letter-spacing:.04em}
.service-card p{font-size:.9rem;color:var(--ink)}
.service-card .price{
  margin-top:auto;
  font-family:var(--font-en);
  font-weight:700;
  color:var(--coral);
  font-size:1.3rem;
  padding-top:.6rem;
  border-top:1px dashed var(--line);
}
.service-card .price small{font-family:var(--font-jp);font-size:.72rem;color:var(--gray);font-weight:500;margin-left:.2em}
.service-card .includes{list-style:none;display:flex;flex-direction:column;gap:.4rem}
.service-card .includes li{position:relative;padding-left:1.4rem;font-size:.83rem;color:var(--ink);line-height:1.6}
.service-card .includes li::before{content:"";position:absolute;left:0;top:.55em;width:9px;height:5px;border-left:2px solid var(--coral);border-bottom:2px solid var(--coral);transform:rotate(-45deg)}
.service-card .includes-label{font-size:.74rem;font-weight:700;color:var(--coral);letter-spacing:.08em;margin-top:.2rem}
.service-note{
  margin-top:2rem;text-align:center;
  font-size:.85rem;color:var(--gray);
}

/* ---------- price ---------- */
.price-sec{background:var(--coral-mist);padding:clamp(4rem,9vw,7rem) clamp(1.4rem,5vw,4rem)}
.price-inner{max-width:900px;margin:0 auto}
.price-list{margin-top:2.8rem;display:flex;flex-direction:column;gap:1rem}
.price-row{
  display:grid;
  grid-template-columns:1.2fr .9fr 1.6fr;
  gap:1.2rem;
  align-items:center;
  background:#fff;
  border-radius:18px;
  padding:1.5rem 1.8rem;
}
.price-row h3{font-size:1.02rem;color:var(--navy);letter-spacing:.03em;line-height:1.5}
.price-row .amount{
  font-family:var(--font-en);font-weight:700;
  font-size:1.5rem;color:var(--coral);line-height:1.3;
  white-space:nowrap;
}
.price-row .amount small{font-family:var(--font-jp);font-size:.72rem;color:var(--gray);font-weight:500;display:block}
.price-row .detail{font-size:.85rem;color:var(--ink)}
.price-note{
  margin-top:1.8rem;
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
  padding:1.3rem 1.6rem;
  font-size:.88rem;color:var(--ink);
}
.price-note b{color:var(--coral)}

/* ---------- features（強み） ---------- */
.features{padding:clamp(4rem,9vw,7rem) clamp(1.4rem,5vw,4rem)}
.features-inner{max-width:1180px;margin:0 auto;text-align:center}
.features-grid{
  margin-top:2.8rem;
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1.4rem;
  text-align:left;
}
.feature{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:20px;
  padding:1.8rem 2rem;
  display:flex;
  align-items:flex-start;
  gap:1.4rem;
  transition:transform .5s var(--ease-out),box-shadow .5s var(--ease-out);
}
.feature:hover{
  transform:translateY(-5px);
  box-shadow:0 18px 40px rgba(29,28,38,.09);
}
.feature .icon{
  width:60px;height:60px;
  flex-shrink:0;
  border-radius:18px;
  background:var(--coral-pale);
  color:var(--coral);
  display:flex;
  align-items:center;
  justify-content:center;
}
.feature .icon svg{width:30px;height:30px}
.feature h3{
  font-size:1.12rem;
  font-weight:700;
  color:var(--navy);
  margin-bottom:.3rem;
  letter-spacing:.04em;
}
.feature p{font-size:.9rem;color:var(--ink)}

/* ---------- works ---------- */
.works{
  background:var(--coral-mist);
  padding:clamp(4rem,9vw,7rem) clamp(1.4rem,5vw,4rem);
}
.works-inner{
  max-width:1180px;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(260px,.9fr) 1.4fr;
  gap:clamp(2rem,5vw,4.5rem);
  align-items:center;
}
.works h2{
  font-size:clamp(1.4rem,2.6vw,1.8rem);
  font-weight:700;
  color:var(--navy);
  letter-spacing:.12em;
  margin:.6rem 0 1rem;
}
.works .count{
  font-family:var(--font-en);
  font-weight:700;
  font-size:clamp(4.2rem,8vw,6.4rem);
  color:var(--coral);
  line-height:1.1;
}
.works .count .unit{
  font-family:var(--font-jp);
  font-size:clamp(1.8rem,3.4vw,2.6rem);
  color:var(--navy);
  margin-left:.15em;
}
.works .count .more{
  font-family:var(--font-jp);
  font-size:clamp(1.2rem,2.2vw,1.6rem);
  color:var(--ink);
  font-weight:700;
}
.works .note{
  margin-top:1.2rem;
  font-size:.95rem;
  color:var(--ink);
}
.works-genres{
  list-style:none;
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:.8rem;
}
.works-genres li{
  position:relative;
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  padding:1rem 1.2rem 1rem 2.6rem;
  font-size:.92rem;
  font-weight:700;
  color:var(--navy);
}
.works-genres li::before{
  content:"";
  position:absolute;left:1.1rem;top:50%;
  width:10px;height:6px;
  border-left:2.5px solid var(--coral);
  border-bottom:2.5px solid var(--coral);
  transform:translateY(-70%) rotate(-45deg);
}
.works-showcase{
  grid-column:1 / -1;
  margin-top:.4rem;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(1.4rem,3vw,2.4rem);
  align-items:start;
}
.work-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  padding:1.1rem;
  box-shadow:0 14px 34px rgba(29,28,38,.06);
}
.work-tag{
  display:inline-flex;
  align-items:center;
  font-family:var(--font-jp);
  font-weight:700;
  font-size:.78rem;
  letter-spacing:.14em;
  color:#fff;
  background:var(--coral);
  padding:.34rem 1rem;
  border-radius:999px;
  margin-bottom:.9rem;
}
.work-video{
  position:relative;
  aspect-ratio:16/9;
  border-radius:12px;
  overflow:hidden;
  background:#000;
}
.work-video iframe{
  position:absolute;inset:0;
  width:100%;height:100%;border:0;
}
.work-insta{
  display:flex;
  justify-content:center;
}
.work-insta .instagram-media{
  margin:0 auto !important;
  min-width:0 !important;
  max-width:100% !important;
}
.work-card figcaption{
  margin-top:.9rem;
  font-size:.86rem;
  color:var(--ink);
  font-weight:700;
}
.works-coming{
  grid-column:1 / -1;
  margin-top:1.4rem;
  text-align:center;
  font-size:.88rem;
  color:var(--gray);
  background:#fff;
  border:1px dashed var(--line);
  border-radius:14px;
  padding:1.1rem 1.4rem;
}

/* ---------- profile ---------- */
.about{padding:clamp(4rem,9vw,7rem) clamp(1.4rem,5vw,4rem)}
.about-inner{
  max-width:1000px;margin:0 auto;
  display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:clamp(2rem,5vw,4rem);align-items:center;
}
.about-photo{border-radius:26px;overflow:hidden;aspect-ratio:4/5;box-shadow:0 20px 48px rgba(29,28,38,.16)}
.about-photo img{width:100%;height:100%;object-fit:cover}
.about-body h2{
  font-family:var(--font-serif);
  font-size:clamp(1.5rem,3vw,2.05rem);
  color:var(--navy);letter-spacing:.06em;margin:.6rem 0 .8rem;
}
.about-body .name-jp{font-size:1.35rem;font-weight:700;color:var(--navy);margin-bottom:.3rem}
.about-body .name-jp small{font-size:.82rem;color:var(--gray);margin-left:.5em;font-weight:500;letter-spacing:.08em}
.about-body .name-real{font-size:1.35rem;font-weight:700;color:var(--navy);margin-bottom:.9rem}
.about-body .name-real small{font-size:.82rem;color:var(--gray);margin-left:.5em;font-weight:500;letter-spacing:.08em}
.about-body .name-label{
  display:inline-block;min-width:3.6rem;margin-right:.6rem;
  font-size:.78rem;font-weight:700;color:var(--coral);letter-spacing:.12em;vertical-align:middle;
}
.about-body .lead-txt{font-size:.94rem;color:var(--ink);margin-bottom:1.2rem}
.about-meta{list-style:none;display:flex;flex-direction:column;gap:.55rem;border-top:1px solid var(--line);padding-top:1.2rem}
.about-meta li{display:flex;gap:1rem;font-size:.9rem;color:var(--ink)}
.about-meta li b{color:var(--coral);min-width:6.5em;font-weight:700}

/* ---------- flow ---------- */
.flow{background:var(--coral-mist);padding:clamp(4rem,9vw,7rem) clamp(1.4rem,5vw,4rem)}
.flow-inner{max-width:860px;margin:0 auto}
.flow-list{margin-top:2.8rem;display:flex;flex-direction:column;gap:1rem}
.flow-step{
  display:flex;gap:1.4rem;align-items:flex-start;
  background:#fff;border-radius:18px;padding:1.4rem 1.8rem;
}
.flow-step .num{
  font-family:var(--font-en);font-weight:700;
  font-size:1.7rem;color:var(--coral);line-height:1;
  flex-shrink:0;min-width:2.6rem;
}
.flow-step h3{font-size:1.05rem;color:var(--navy);margin-bottom:.25rem;letter-spacing:.03em}
.flow-step p{font-size:.9rem;color:var(--ink)}
.flow-note{
  margin-top:1.6rem;text-align:center;
  font-size:.88rem;color:var(--ink);
  background:#fff;border:1px dashed var(--line);
  border-radius:14px;padding:1rem 1.4rem;
}

/* ---------- faq ---------- */
.faq{padding:clamp(4rem,9vw,7rem) clamp(1.4rem,5vw,4rem)}
.faq-inner{max-width:820px;margin:0 auto}
.faq-list{margin-top:2.6rem;display:flex;flex-direction:column;gap:1rem}
.faq-item{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.faq-item summary{
  list-style:none;cursor:pointer;
  padding:1.3rem 1.6rem;
  display:flex;align-items:center;gap:1rem;
  font-weight:700;color:var(--navy);font-size:1rem;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary .q{font-family:var(--font-en);color:var(--coral);font-size:1.25rem;flex-shrink:0}
.faq-item summary .mark{position:relative;margin-left:auto;width:20px;height:20px;flex-shrink:0}
.faq-item summary .mark::before,.faq-item summary .mark::after{content:"";position:absolute;background:var(--coral);border-radius:2px}
.faq-item summary .mark::before{top:9px;left:1px;width:18px;height:2px}
.faq-item summary .mark::after{top:1px;left:9px;width:2px;height:18px;transition:opacity .3s}
.faq-item[open] summary .mark::after{opacity:0}
.faq-item .a{padding:0 1.6rem 1.4rem 3.5rem;font-size:.92rem;color:var(--ink)}

/* ---------- area ---------- */
.area{background:var(--coral-mist);padding:clamp(4rem,9vw,7rem) clamp(1.4rem,5vw,4rem)}
.area-inner{max-width:900px;margin:0 auto}
.area-grid{margin-top:2.8rem;display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
.area-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  padding:2rem 1.8rem;
}
.area-card .a-icon{
  width:56px;height:56px;
  border-radius:16px;
  background:var(--coral-pale);
  color:var(--coral);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:1rem;
}
.area-card .a-icon svg{width:28px;height:28px}
.area-card h3{font-size:1.1rem;color:var(--navy);letter-spacing:.04em;margin-bottom:.5rem}
.area-card p{font-size:.9rem;color:var(--ink)}
.area-cities{
  margin-top:1.2rem;
  list-style:none;
  display:flex;flex-wrap:wrap;gap:.5rem;
}
.area-cities li{
  font-size:.82rem;font-weight:700;color:var(--navy);
  background:var(--coral-mist);
  border:1px solid var(--line);
  padding:.32rem 1rem;border-radius:999px;
}

/* ---------- blog ---------- */
.blog{padding:clamp(4rem,9vw,7rem) clamp(1.4rem,5vw,4rem)}
.blog-inner{max-width:1020px;margin:0 auto}
.blog-grid{margin-top:2.8rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.blog-card{
  display:flex;
  flex-direction:column;
  gap:.9rem;
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  padding:1.8rem 1.6rem;
  transition:transform .4s var(--ease-out),box-shadow .4s var(--ease-out),border-color .3s;
}
a.blog-card:hover{
  transform:translateY(-4px);
  box-shadow:0 16px 34px rgba(29,28,38,.08);
  border-color:rgba(232,93,69,.4);
}
.blog-card .b-meta{
  display:flex;
  align-items:center;
  gap:.8rem;
}
.blog-card time{
  font-family:var(--font-en);
  font-weight:600;
  font-size:.8rem;
  letter-spacing:.12em;
  color:var(--coral);
  text-transform:uppercase;
}
.blog-card .b-cat{
  font-size:.72rem;
  font-weight:700;
  color:var(--navy);
  background:var(--coral-mist);
  border:1px solid var(--line);
  padding:.2rem .8rem;
  border-radius:999px;
}
.blog-card h3{
  font-size:1.02rem;
  color:var(--navy);
  letter-spacing:.04em;
  line-height:1.6;
}
.blog-card p{font-size:.88rem;color:var(--ink)}
.blog-card .b-more{
  margin-top:auto;
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  font-family:var(--font-en);
  font-weight:600;
  font-size:.8rem;
  letter-spacing:.14em;
  color:var(--coral);
  text-transform:uppercase;
}
.blog-card .b-more::after{content:"→";transition:transform .3s var(--ease-out)}
a.blog-card:hover .b-more::after{transform:translateX(4px)}
.blog-more{margin-top:2.4rem;text-align:center}
.btn-line{
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  font-weight:700;
  font-size:.95rem;
  letter-spacing:.06em;
  color:var(--coral);
  border:2px solid var(--coral);
  padding:.85rem 2.4rem;
  border-radius:999px;
  transition:background .3s,color .3s,transform .4s var(--ease-out);
}
.btn-line::after{content:"→";transition:transform .3s var(--ease-out)}
.btn-line:hover{background:var(--coral);color:#fff;transform:translateY(-2px)}
.btn-line:hover::after{transform:translateX(4px)}

/* ---------- contact ---------- */
.contact{padding:clamp(4rem,9vw,7rem) clamp(1.4rem,5vw,4rem)}
.contact-inner{max-width:680px;margin:0 auto}
.contact-form{margin-top:2.6rem;display:grid;gap:1.2rem;text-align:left}
.field{display:flex;flex-direction:column;gap:.45rem}
.field label{font-size:.85rem;font-weight:700;color:var(--navy)}
.field label .req{color:#fff;background:var(--coral);font-size:.62rem;font-weight:700;padding:.1rem .5rem;border-radius:4px;margin-left:.5em;vertical-align:middle;letter-spacing:.05em}
.field input,.field select,.field textarea{
  font-family:inherit;font-size:.95rem;color:var(--ink);
  border:1px solid var(--line);border-radius:12px;
  padding:.9rem 1rem;background:#fff;
  transition:border-color .3s,box-shadow .3s;
}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--coral);box-shadow:0 0 0 3px rgba(232,93,69,.14);
}
.field textarea{resize:vertical;min-height:130px}
.field input::placeholder,.field textarea::placeholder{color:#B6B3BD}
.contact-form .btn{width:100%;margin-top:.4rem;border:none;cursor:pointer;font-family:inherit}
.contact-note{margin-top:1.6rem;text-align:center;font-size:.85rem;color:var(--gray)}

/* 同意チェックボックス */
.field-check .check{
  display:flex;align-items:flex-start;gap:.6rem;
  font-size:.85rem;font-weight:500;color:var(--ink);line-height:1.7;cursor:pointer;
}
.field-check .check input{width:18px;height:18px;flex:none;margin-top:.15em;accent-color:var(--coral);cursor:pointer}
.field-check .check a{color:var(--coral);text-decoration:underline;text-underline-offset:2px}

/* 送信結果メッセージ */
.form-msg{
  margin-top:2.6rem;padding:1.1rem 1.3rem;border-radius:14px;
  display:grid;gap:.35rem;text-align:left;font-size:.88rem;line-height:1.8;
}
.form-msg b{font-size:.95rem}
.form-msg.is-ok{background:#EEF7F0;border:1px solid #BFE3C8;color:#1F6B3C}
.form-msg.is-error{background:var(--coral-pale);border:1px solid #F0BCAF;color:var(--coral-deep)}
.form-msg:focus{outline:none}
.form-msg + .contact-form{margin-top:1.4rem}

/* 入力エラー */
.field-error{font-size:.8rem;font-weight:500;color:var(--coral-deep)}
.field [aria-invalid="true"]{border-color:var(--coral-deep);background:#FFFBFA}

/* ハニーポット（人には見えないボット用の罠） */
.mf-nofill{position:absolute!important;left:-9999px!important;top:auto;width:1px;height:1px;overflow:hidden}

/* ---------- worries（お悩み共感） ---------- */
.worries{padding:clamp(4rem,9vw,6.5rem) clamp(1.4rem,5vw,4rem)}
.worries-inner{max-width:860px;margin:0 auto;text-align:center}
.worries-title{
  font-family:var(--font-serif);
  font-size:clamp(1.35rem,2.9vw,1.9rem);
  color:var(--navy);
  letter-spacing:.06em;
  line-height:1.5;
  margin-bottom:2rem;
}
.worries-list{
  list-style:none;
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:.9rem;
  text-align:left;
}
.worries-list li{
  position:relative;
  background:var(--coral-pale);
  border-radius:14px;
  padding:1.1rem 1.3rem 1.1rem 3rem;
  font-size:.92rem;
  font-weight:500;
  color:var(--ink);
  line-height:1.7;
}
.worries-list li::before{
  content:"";
  position:absolute;left:1.15rem;top:1.6rem;
  width:10px;height:6px;
  border-left:2.5px solid var(--coral);
  border-bottom:2.5px solid var(--coral);
  transform:rotate(-45deg);
}
.worries-msg{margin-top:2rem;font-size:1.05rem;font-weight:700;color:var(--navy);letter-spacing:.03em}
.worries-msg b{color:var(--coral)}

/* ---------- CTA（中間導線） ---------- */
.cta-note{margin-top:.8rem;font-size:.82rem;color:var(--gray);letter-spacing:.04em}
.sec-cta{margin-top:2.8rem;text-align:center}
.sec-cta .cta-lead{font-size:.95rem;color:var(--ink);margin-bottom:1.2rem}

/* ---------- floating CTA ---------- */
.fab{
  position:fixed;
  right:1.2rem;bottom:1.2rem;
  z-index:80;
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  background:var(--coral);
  color:#fff;
  font-weight:700;
  font-size:.92rem;
  letter-spacing:.05em;
  padding:.95rem 1.6rem;
  border-radius:999px;
  box-shadow:0 10px 26px rgba(232,93,69,.35);
  opacity:0;
  visibility:hidden;
  transform:translateY(12px);
  transition:opacity .4s var(--ease-out),transform .4s var(--ease-out),visibility .4s,background .3s;
}
.fab.show{opacity:1;visibility:visible;transform:none}
.fab:hover{background:var(--coral-deep)}

/* ---------- form fallback message ---------- */
.form-fallback{
  margin-top:1rem;
  background:var(--coral-pale);
  border:1px solid var(--line);
  border-radius:12px;
  padding:.9rem 1.2rem;
  font-size:.88rem;
  color:var(--ink);
}

/* ---------- footer ---------- */
.footer{
  background:var(--navy);
  padding:3rem clamp(1.4rem,5vw,4rem) 3.4rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
  flex-wrap:wrap;
}
.footer .brand .name{color:var(--coral-soft)}
.footer .brand .tag{color:rgba(255,255,255,.45)}
.footer .copyright{
  font-family:var(--font-en);
  font-size:.78rem;
  letter-spacing:.08em;
  color:rgba(255,255,255,.5);
}
.socials{display:flex;gap:1rem}
.socials a{
  width:42px;height:42px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  border:1px solid rgba(255,255,255,.25);
  transition:all .35s var(--ease-out);
}
.socials a:hover{
  color:#fff;
  background:var(--coral);
  border-color:var(--coral);
  transform:translateY(-3px);
}
.socials svg{width:19px;height:19px}

/* ---------- reveal animation ---------- */
.reveal{
  opacity:0;
  transform:translateY(26px);
  transition:opacity .9s var(--ease-out),transform .9s var(--ease-out);
  transition-delay:var(--d,0s);
}
.reveal.in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
  html{scroll-behavior:auto}
}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .works-inner{grid-template-columns:1fr}
  .features-grid{grid-template-columns:1fr}
  .service-grid{grid-template-columns:1fr}
  .area-grid{grid-template-columns:1fr}
  .blog-grid{grid-template-columns:1fr}
  .price-row{grid-template-columns:1fr;gap:.5rem;text-align:left}
  .about-inner{grid-template-columns:1fr}
  .about-photo{max-width:320px;margin:0 auto}
  .about-body{text-align:center}
  .about-body .lead-txt{text-align:left}
  .about-meta li{justify-content:center}
  .hero-photo{
    top:-6%;right:-30%;
    width:88vw;
    opacity:.9;
  }
  .hero-photo::after{
    background:linear-gradient(115deg,rgba(255,255,255,.96) 10%,rgba(255,255,255,.6) 52%,rgba(255,255,255,.08) 80%);
  }
  .dots.hero-dots{
    right:4%;bottom:26%;
    width:110px;height:80px;
    opacity:.4;
  }
}
@media (max-width:700px){
  .worries-list{grid-template-columns:1fr}
  .works-showcase{grid-template-columns:1fr}
}
@media (max-width:560px){
  .dots.hero-dots{display:none}
  .hero-tags li{font-size:.78rem;padding:.4rem .95rem}
  .marquee-track span{font-size:.85rem}
  .works-genres{grid-template-columns:1fr}
  .hero .btn{width:100%}
  .about-meta li{flex-direction:column;gap:.1rem;text-align:center}
  .about-meta li b{min-width:0}
  .faq-item .a{padding-left:1.6rem}
}

/* ---------- Contact Form 7 の組み込み ---------- */
.contact .wpcf7{margin:0}
.contact .wpcf7-form{display:grid;gap:1.2rem;text-align:left}
.contact .wpcf7-form .field{gap:.45rem}
.contact .wpcf7 .wpcf7-form-control-wrap{display:block}
.contact .wpcf7 input.wpcf7-form-control,
.contact .wpcf7 select.wpcf7-form-control,
.contact .wpcf7 textarea.wpcf7-form-control{width:100%}
.contact .wpcf7 input.wpcf7-submit{width:100%;margin-top:.4rem;cursor:pointer}
.contact .wpcf7-not-valid-tip{color:var(--coral-deep);font-size:.8rem;font-weight:700;margin-top:.35rem}
.contact .wpcf7-response-output{
  margin:1rem 0 0 !important;
  padding:.9rem 1.2rem;border-radius:12px;
  font-size:.9rem;line-height:1.7;
  border:1px solid var(--line);
  background:var(--coral-pale);color:var(--ink);
}
.contact .wpcf7-form.sent .wpcf7-response-output{background:#edf7ed;border-color:#b7dcb7;color:#2e7d32}
.contact .wpcf7-form.invalid .wpcf7-response-output,
.contact .wpcf7-form.unaccepted .wpcf7-response-output,
.contact .wpcf7-form.payment-required .wpcf7-response-output,
.contact .wpcf7-form.spam .wpcf7-response-output,
.contact .wpcf7-form.failed .wpcf7-response-output{background:var(--coral-pale);border-color:var(--coral-soft);color:var(--coral-deep)}
.contact .wpcf7 .wpcf7-spinner{margin:.6rem auto 0;display:block}
