:root {
  --black:#080808;
  --black-card:#151515;
  --white:#f7f4ed;
  --paper:#f1eee7;
  --text:#171717;
  --muted:#777169;
  --gold:#c9a227;
  --gold-deep:#a98517;
  --line-dark:rgba(255,255,255,.13);
  --line-light:rgba(0,0,0,.13);
  --max:1200px;
  --header:82px;
  --space:clamp(96px,10vw,145px);
}

*,
*::before,
*::after { box-sizing:border-box; }

html {
  scroll-behavior:smooth;
  scroll-padding-top:var(--header);
}

body {
  margin:0;
  font-family:"Noto Sans JP",sans-serif;
  color:var(--text);
  background:var(--paper);
  line-height:1.9;
  letter-spacing:.035em;
  overflow-x:hidden;
}

body.menu-open { overflow:hidden; }
img { max-width:100%; height:auto; }
a { color:inherit; text-decoration:none; }

.container {
  width:min(calc(100% - 48px),var(--max));
  margin-inline:auto;
}

.skip-link {
  position:fixed;
  z-index:9999;
  top:12px;
  left:12px;
  padding:10px 16px;
  background:#fff;
  color:#000;
  transform:translateY(-200%);
}
.skip-link:focus { transform:translateY(0); }

.site-header {
  position:fixed;
  inset:0 0 auto;
  z-index:1000;
  height:var(--header);
  background:rgba(5,5,5,.84);
  border-bottom:1px solid rgba(255,255,255,.12);
  backdrop-filter:blur(14px);
}

.header-inner {
  width:min(calc(100% - 48px),1360px);
  height:100%;
  margin:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.brand {
  display:flex;
  flex-direction:column;
  line-height:1;
  color:#fff;
}

.brand-main {
  font-family:"Shippori Mincho",serif;
  font-size:28px;
  font-weight:700;
}

.brand-main::first-letter { color:var(--gold); }

.brand-sub {
  margin-top:6px;
  color:var(--gold);
  font-size:9px;
  font-weight:700;
  letter-spacing:.34em;
}

.global-nav {
  display:flex;
  align-items:center;
  gap:clamp(14px,2vw,28px);
  color:rgba(255,255,255,.84);
  font-size:13px;
}

.global-nav .menu-item {
  list-style:none;
}

.nav-contact,
.global-nav .menu-item:last-child a {
  padding:11px 18px;
  border:1px solid var(--gold);
  color:var(--gold);
}

.menu-toggle {
  display:none;
  width:44px;
  height:44px;
  border:0;
  background:transparent;
  padding:10px;
}

.menu-toggle span {
  display:block;
  height:1px;
  margin:6px 0;
  background:#fff;
  transition:.3s;
}

.hero {
  position:relative;
  min-height:100svh;
  display:grid;
  align-items:center;
  color:#fff;
  background:#090909;
  overflow:hidden;
}

.hero-media {
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(90deg,rgba(0,0,0,.94) 0%,rgba(0,0,0,.82) 37%,rgba(0,0,0,.36) 64%,rgba(0,0,0,.18) 100%),
    url("../images/reark-hero.webp");
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
}

.hero-overlay {
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent,rgba(0,0,0,.25));
}

.hero-content {
  position:relative;
  z-index:1;
  padding-top:var(--header);
}

.eyebrow,
.section-kicker {
  margin:0 0 18px;
  color:var(--gold);
  font-size:12px;
  font-weight:700;
  letter-spacing:.24em;
}

h1,
h2,
.statement,
.large-copy,
.promise-lead,
.contact-inner h2 {
  font-family:"Shippori Mincho",serif;
}

.hero h1 {
  margin:0;
  max-width:900px;
  font-size:clamp(43px,6.1vw,84px);
  line-height:1.3;
  font-weight:600;
}

.hero h1 span,
.large-copy span { color:var(--gold); }

.hero-lead {
  margin:30px 0 0;
  color:rgba(255,255,255,.72);
  font-size:clamp(15px,1.5vw,18px);
}

.hero-actions,
.contact-actions {
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin-top:38px;
}

.button {
  min-width:210px;
  padding:15px 25px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid transparent;
  font-size:14px;
  font-weight:700;
  transition:.25s;
}

.button:hover { transform:translateY(-2px); }
.button-primary { background:var(--gold); color:#0b0b0b; }
.button-outline { border-color:rgba(255,255,255,.48); color:#fff; }
.button-line { background:#61c96c; color:#07120a; }
.button-outline-light { border-color:rgba(255,255,255,.48); color:#fff; }

.section { padding-block:var(--space); }
.section-light { background:var(--paper); color:var(--text); }
.section-dark { background:var(--black); color:var(--white); }
.section-gold { background:var(--gold); color:#0a0a0a; }

.section-heading {
  max-width:760px;
  margin-bottom:clamp(48px,6vw,74px);
}

.section-heading h2,
.split-copy h2 {
  margin:0;
  font-size:clamp(34px,4.2vw,54px);
  line-height:1.4;
  font-weight:600;
}

.section-heading>p:last-child {
  margin:18px 0 0;
  color:var(--muted);
}

.section-dark .section-heading>p:last-child { color:rgba(255,255,255,.56); }

.problem-grid,
.reason-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}

.problem-card,
.reason-card,
.service-card,
.plan-card {
  min-height:280px;
  padding:38px;
  border:1px solid var(--line-light);
  background:rgba(255,255,255,.35);
}

.problem-number,
.reason-card span,
.service-card span {
  color:var(--gold-deep);
  font-family:"Shippori Mincho",serif;
  font-weight:700;
}

.problem-card h3,
.reason-card h3,
.service-card h3 {
  margin:52px 0 12px;
  font-size:21px;
}

.problem-card p,
.reason-card p,
.service-card p {
  margin:0;
  color:var(--muted);
  font-size:14px;
}

.reason-card {
  min-height:330px;
  border-color:var(--line-dark);
  background:linear-gradient(145deg,rgba(255,255,255,.05),rgba(255,255,255,.015));
}

.reason-card p { color:rgba(255,255,255,.55); }

.statement {
  padding:clamp(58px,7vw,90px) 0;
  text-align:center;
  font-size:clamp(28px,4vw,50px);
}

.statement span { color:var(--gold); }
.section-gold span { color:#fff; }

.split-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(380px,.82fr);
  gap:clamp(55px,8vw,110px);
  align-items:center;
}

.split-reverse {
  grid-template-columns:minmax(380px,.82fr) minmax(0,1fr);
}

.large-copy {
  margin-top:38px;
  font-size:clamp(24px,3vw,37px);
  line-height:1.8;
}

.large-copy p { margin:0 0 22px; }

.body-copy { color:rgba(255,255,255,.62); }
.body-copy strong { color:var(--gold); }

.visual-panel { position:relative; }

.visual-panel::before {
  content:"";
  position:absolute;
  top:-18px;
  left:-18px;
  width:45%;
  height:45%;
  border-top:1px solid var(--gold);
  border-left:1px solid var(--gold);
}

.visual-frame {
  position:relative;
  min-height:500px;
  box-shadow:0 24px 70px rgba(0,0,0,.2);
}

.visual-one {
  background-image:
    linear-gradient(rgba(0,0,0,.05),rgba(0,0,0,.18)),
    url("../images/reark-philosophy.webp");
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}

.visual-one::after {
  content:none;
}

.visual-two {
  background-image:
    linear-gradient(rgba(0,0,0,.03),rgba(0,0,0,.12)),
    url("../images/reark-promise.webp");
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}

.promise-lead {
  margin:36px 0 26px;
  font-size:clamp(22px,2.8vw,34px);
}

.check-list {
  list-style:none;
  padding:0;
  margin:0;
}

.check-list li {
  position:relative;
  padding:17px 0 17px 34px;
  border-bottom:1px solid var(--line-light);
}

.check-list li::before {
  content:"";
  position:absolute;
  left:2px;
  top:23px;
  width:12px;
  height:7px;
  border-left:2px solid var(--gold-deep);
  border-bottom:2px solid var(--gold-deep);
  transform:rotate(-45deg);
}

.service-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line-light);
  border-left:1px solid var(--line-light);
}

.service-card {
  min-height:300px;
  padding:32px 26px;
  border-right:1px solid var(--line-light);
  border-bottom:1px solid var(--line-light);
}

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

.works-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:24px;
}

.work-card {
  border:1px solid var(--line-dark);
  background:#0d0d0d;
}

.work-image {
  aspect-ratio:16/10;
  display:grid;
  place-items:center;
  color:rgba(255,255,255,.75);
  font-size:11px;
  letter-spacing:.22em;
}

.work-image-one { background:linear-gradient(135deg,#4e402c,#111); }
.work-image-two { background:linear-gradient(135deg,#111,#6a593a); }

.work-copy { padding:26px 28px 30px; }
.work-copy p { margin:0; color:var(--gold); font-size:11px; letter-spacing:.18em; }
.work-copy h3 { margin:5px 0 0; font-size:19px; }

.price-intro {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  margin-bottom:32px;
  border-top:1px solid var(--line-light);
  border-left:1px solid var(--line-light);
}

.price-intro>div {
  padding:38px;
  border-right:1px solid var(--line-light);
  border-bottom:1px solid var(--line-light);
}

.price-intro p { margin:0; color:var(--muted); }

.price-intro strong {
  font-family:"Shippori Mincho",serif;
  font-size:clamp(34px,4vw,52px);
}

.price-intro strong span,
.plan-price span {
  font-family:"Noto Sans JP",sans-serif;
  font-size:13px;
}

.plan-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}

.plan-card {
  position:relative;
  min-height:350px;
}

.featured {
  background:#111;
  color:#fff;
  border-color:var(--gold-deep);
}

.plan-badge {
  position:absolute;
  right:0;
  top:0;
  margin:0;
  padding:7px 12px;
  background:var(--gold);
  color:#080808;
  font-size:9px;
  font-weight:700;
  letter-spacing:.15em;
}

.plan-name {
  margin:0;
  color:var(--gold-deep);
  font-size:11px;
  letter-spacing:.2em;
}

.plan-card h3 { margin:12px 0 26px; font-size:22px; }

.plan-price {
  font-family:"Shippori Mincho",serif;
  font-size:clamp(34px,3.7vw,46px);
}

.plan-card>p:last-child { color:var(--muted); font-size:14px; }
.featured>p:last-child { color:rgba(255,255,255,.6); }

.flow-list {
  list-style:none;
  padding:0;
  margin:0;
  border-top:1px solid var(--line-dark);
}

.flow-list li {
  display:grid;
  grid-template-columns:110px 1fr;
  gap:25px;
  padding:30px 0;
  border-bottom:1px solid var(--line-dark);
}

.flow-list span {
  color:var(--gold);
  font-family:"Shippori Mincho",serif;
  font-size:25px;
}

.flow-list h3 { margin:0 0 5px; }
.flow-list p { margin:0; color:rgba(255,255,255,.55); font-size:14px; }

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

.faq-item { border-top:1px solid var(--line-light); }
.faq-item:last-child { border-bottom:1px solid var(--line-light); }

.faq-item summary {
  position:relative;
  padding:25px 50px 25px 0;
  font-weight:700;
  cursor:pointer;
  list-style:none;
}

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

.faq-item summary::before,
.faq-item summary::after {
  content:"";
  position:absolute;
  right:8px;
  top:50%;
  width:18px;
  height:1px;
  background:var(--gold-deep);
}

.faq-item summary::after { transform:rotate(90deg); }
.faq-item[open] summary::after { transform:rotate(0); }

.faq-item p {
  margin:0;
  padding:0 35px 24px 0;
  color:var(--muted);
}

.contact-section {
  padding:clamp(105px,13vw,180px) 0;
  text-align:center;
  color:#fff;
  background:
    linear-gradient(rgba(0,0,0,.72),rgba(0,0,0,.92)),
    radial-gradient(circle at 70% 25%,rgba(201,162,39,.25),transparent 35%),
    #0a0a0a;
}

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

.contact-inner h2 {
  margin:0;
  font-size:clamp(38px,5.4vw,67px);
  line-height:1.45;
}

.contact-inner>p:not(.section-kicker) { color:rgba(255,255,255,.65); }
.contact-actions { justify-content:center; }
.contact-inner small { display:block; margin-top:22px; color:rgba(255,255,255,.4); }

.site-footer {
  padding:65px 0 26px;
  background:#050505;
  color:rgba(255,255,255,.7);
}

.footer-inner {
  display:flex;
  justify-content:space-between;
  gap:50px;
}

.footer-inner p { color:rgba(255,255,255,.4); font-size:13px; }

.footer-nav {
  display:flex;
  flex-wrap:wrap;
  gap:16px 26px;
  justify-content:flex-end;
  font-size:13px;
}

.footer-nav .menu-item { list-style:none; }

.footer-bottom {
  margin-top:50px;
  padding-top:20px;
  border-top:1px solid rgba(255,255,255,.1);
  color:rgba(255,255,255,.32);
  font-size:11px;
}

.entry { padding-top:var(--header); }

.reveal {
  opacity:0;
  transform:translateY(24px);
  transition:.7s ease;
}

.reveal.is-visible {
  opacity:1;
  transform:none;
}

@media (max-width:1080px) {
  .global-nav { gap:14px; font-size:12px; }
  .service-grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width:900px) {
  :root { --header:72px; }

  .menu-toggle {
    display:block;
    position:relative;
    z-index:1002;
  }

  .menu-toggle[aria-expanded="true"] span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity:0; }
  .menu-toggle[aria-expanded="true"] span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

  .global-nav {
    position:fixed;
    inset:0;
    z-index:1001;
    flex-direction:column;
    justify-content:center;
    gap:22px;
    background:rgba(4,4,4,.98);
    font-size:17px;
    opacity:0;
    visibility:hidden;
    transform:translateY(-10px);
    transition:.3s;
  }

  .global-nav.is-open {
    opacity:1;
    visibility:visible;
    transform:none;
  }

  .problem-grid,
  .reason-grid,
  .plan-grid { grid-template-columns:1fr; }

  .split-layout,
  .split-reverse { grid-template-columns:1fr; }

  .split-reverse .visual-panel { order:2; }
}

@media (max-width:680px) {
  :root { --space:86px; }

  .container,
  .header-inner {
    width:min(calc(100% - 34px),var(--max));
  }

  .brand-main { font-size:24px; }

  .hero { min-height:92svh; }
  .hero-content { align-self:end; padding-bottom:96px; }
  .hero h1 { font-size:clamp(37px,11.5vw,52px); }
  .desktop-only { display:none; }

  .hero-actions,
  .contact-actions { flex-direction:column; }

  .button {
    width:100%;
    min-width:0;
  }

  .problem-card,
  .reason-card,
  .service-card,
  .plan-card {
    min-height:0;
    padding:30px 24px;
  }

  .problem-card h3,
  .reason-card h3,
  .service-card h3 { margin-top:38px; }

  .visual-frame { min-height:340px; }
  .service-grid { grid-template-columns:1fr; }
  .works-grid,
  .price-intro { grid-template-columns:1fr; }

  .price-intro>div { padding:28px 24px; }

  .flow-list li {
    grid-template-columns:54px 1fr;
    gap:16px;
    padding:24px 0;
  }

  .footer-inner { flex-direction:column; }
  .footer-nav { justify-content:flex-start; }
}

@media (max-width:390px) {
  .container,
  .header-inner {
    width:min(calc(100% - 26px),var(--max));
  }

  .hero h1 { font-size:35px; }
  .section-heading h2,
  .split-copy h2 { font-size:31px; }
}

@media (prefers-reduced-motion:reduce) {
  * {
    scroll-behavior:auto!important;
    animation:none!important;
    transition:none!important;
  }

  .reveal {
    opacity:1;
    transform:none;
  }
}


/* ===== ReArk v1.0.1 requested revisions ===== */

/* 1) FV：PCでは2行固定 */
.hero h1 .hero-line{
  display:block;
}
.hero h1 .hero-line-white{
  color:var(--white);
}
.hero h1 .hero-line-gold{
  color:var(--gold);
  white-space:nowrap;
}

/* 2) 2〜4枚目：番号を約2倍 */
.problem-number,
.reason-card > span,
.service-card > span{
  font-size:28px;
  line-height:1;
}

/* 3) 問い合わせ：LINEボタンを黒＋ゴールドへ統一 */
.button-line{
  color:var(--gold);
  background:#080808;
  border-color:var(--gold);
}
.button-line:hover{
  color:#080808;
  background:var(--gold);
}

/* スマホは横はみ出し防止のため折返し許可 */
@media (max-width:680px){
  .hero h1 .hero-line-gold{
    white-space:normal;
  }
}


/* ===== ReArk v1.0.2 requested revisions ===== */

/* 修正1：CONTACTのLINEボタンをFVのゴールド塗りCTAに統一 */
.button-line{
  color:#0b0b0b;
  background:var(--gold);
  border-color:var(--gold);
}
.button-line:hover{
  color:#0b0b0b;
  background:#d8b638;
  border-color:#d8b638;
}

/* 修正4：各セクション小見出しの左端を統一
   FAQなどmax-widthコンテナ内でも見出しだけ左にズレないよう、見出しブロックを同一基準にする */
.section-heading,
.faq-container .section-heading{
  margin-left:0;
  margin-right:0;
}

.faq-container{
  width:min(calc(100% - 48px), var(--max));
  max-width:var(--max);
}

/* CONTACTは中央配置を維持するため例外 */
.contact-inner .section-kicker{
  text-align:center;
}

/* スマホでは2倍化した小見出しが過大にならないよう少し抑える */
@media (max-width:680px){
  .faq-container{
    width:min(calc(100% - 34px), var(--max));
  }
}


/* ===== ReArk v1.0.4 image integration ===== */
@media (max-width:900px){
  .hero-media{ background-position:62% center; }
}
@media (max-width:680px){
  .hero-media{
    background-image:
      linear-gradient(180deg,rgba(0,0,0,.30) 0%,rgba(0,0,0,.54) 45%,rgba(0,0,0,.92) 78%,rgba(0,0,0,.98) 100%),
      url("../images/reark-hero.webp");
    background-position:center center;
  }
}


/* ===== ReArk v1.0.5 requested revisions ===== */

/* 最終CTA：スマホで2行表示になるよう文字サイズを調整 */
@media (max-width:680px){
  .contact-inner h2{
    font-size:clamp(30px, 8.6vw, 38px);
    line-height:1.5;
    letter-spacing:.02em;
  }
}


/* ===== ReArk v1.0.6 pricing clarity ===== */
.price-type{
  display:block;
  margin-top:22px;
  margin-bottom:2px;
  color:var(--gold-deep);
  font-family:"Noto Sans JP",sans-serif;
  font-size:12px;
  font-weight:700;
  letter-spacing:.14em;
}
.plan-section-heading{ margin:46px 0 20px; }
.plan-section-heading .plan-section-title{
  margin:0 0 6px;
  color:var(--text-dark);
  font-size:20px;
  font-weight:700;
}
.plan-section-heading>p:last-child{
  margin:0;
  color:var(--muted);
  font-size:14px;
}
.plan-price .monthly-label{
  display:block;
  margin-bottom:5px;
  color:var(--gold-deep);
  font-family:"Noto Sans JP",sans-serif;
  font-size:13px;
  font-weight:700;
  letter-spacing:.14em;
}
.featured .plan-price .monthly-label{ color:var(--gold); }

@media(max-width:680px){
  .price-type{ margin-top:16px; }
  .plan-section-heading{ margin-top:36px; }
}


/* ===== ReArk v1.0.7 Services Page ===== */
.subpage-hero{padding:150px 0 100px;border-bottom:1px solid var(--line-dark)}
.subpage-hero h1{margin:12px 0 24px;font-family:var(--serif);font-size:clamp(48px,7vw,88px);font-weight:600;line-height:1.15}
.subpage-lead{max-width:760px;color:var(--muted-dark);font-size:18px;line-height:2}
.service-main-card{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line-light);margin-top:52px}
.service-main-card>div,.service-check-list{padding:54px}
.service-main-card>div{border-right:1px solid var(--line-light)}
.service-label{margin:0 0 10px;color:var(--gold-deep);font-size:13px;font-weight:700;letter-spacing:.14em}
.service-main-price{margin:0 0 28px;font-family:var(--serif);font-size:clamp(48px,5vw,72px);line-height:1}
.service-main-price span{font-size:20px}
.service-main-card p:last-child{color:var(--muted);line-height:2}
.service-check-list{list-style:none;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:18px 24px}
.service-check-list li{position:relative;padding-left:25px;line-height:1.7}
.service-check-list li:before{content:"✓";position:absolute;left:0;color:var(--gold-deep);font-weight:700}
.service-sub-card{display:flex;align-items:center;justify-content:space-between;gap:40px;margin-top:24px;padding:40px 48px;border:1px solid var(--line-light)}
.service-sub-card h3{margin:8px 0 12px;font-size:24px}
.service-sub-card p{margin-bottom:0;color:var(--muted);line-height:1.9}
.service-sub-price{flex:0 0 auto!important;color:var(--text-dark)!important;font-family:var(--serif);font-size:42px;white-space:nowrap}
.service-sub-price span{font-family:var(--sans);font-size:14px}
.service-plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:52px}
.service-plan-card{position:relative;display:flex;flex-direction:column;min-height:650px;padding:46px 38px;border:1px solid var(--line-dark);background:#101010}
.service-plan-card.featured{border-color:var(--gold);background:#15130d}
.service-plan-card .plan-badge{position:absolute;top:0;right:0;margin:0;padding:10px 16px;background:var(--gold);color:#080808;font-size:10px;font-weight:700;letter-spacing:.16em}
.service-plan-card .plan-name{margin:0 0 16px;color:var(--gold);font-size:12px;letter-spacing:.22em}
.service-plan-card .plan-role{display:inline-block;align-self:flex-start;margin:0 0 14px;padding:5px 10px;border:1px solid rgba(200,158,35,.5);color:var(--gold);font-size:12px}
.service-plan-card h3{margin:0 0 24px;font-size:28px}
.service-plan-price{margin:0 0 28px;font-family:var(--serif);font-size:48px}
.service-plan-price span{display:block;margin-bottom:5px;color:var(--gold);font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.14em}
.plan-for{min-height:76px;color:var(--muted-dark);line-height:1.8}
.service-plan-card ul{list-style:none;margin:26px 0 30px;padding:26px 0 0;border-top:1px solid var(--line-dark)}
.service-plan-card li{position:relative;margin:0 0 15px;padding-left:22px;color:#ddd;line-height:1.7}
.service-plan-card li:before{content:"—";position:absolute;left:0;color:var(--gold)}
.plan-limit{margin-top:auto!important;padding-top:22px;border-top:1px solid var(--line-dark);color:var(--gold)!important;font-size:13px}
.service-note{margin-top:28px;padding:26px 30px;border:1px solid var(--line-dark)}
.service-note p{margin:5px 0;color:var(--muted-dark);font-size:13px;line-height:1.8}
.option-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:52px}
.option-card{min-height:330px;padding:42px 36px;border:1px solid var(--line-light)}
.option-card>span{color:var(--gold-deep);font-family:var(--serif);font-size:28px}
.option-card h3{margin:50px 0 16px;font-size:21px;line-height:1.6}
.option-card p{color:var(--muted);line-height:1.9}
.option-card strong{display:block;margin-top:30px;font-family:var(--serif);font-size:28px}
.service-philosophy{padding:70px 0;text-align:center}
.service-philosophy p{margin:0 0 10px;font-size:13px;font-weight:700;letter-spacing:.18em}
.service-philosophy h2{margin:0 0 12px;font-family:var(--serif);font-size:clamp(32px,4vw,52px)}
.service-philosophy span{font-size:15px}
.service-detail-link{margin-top:36px;text-align:center}
.btn-outline-dark{border:1px solid #222;color:#111;background:transparent}
.btn-outline-dark:hover{background:#111;color:#fff}
@media(max-width:900px){
  .service-main-card{grid-template-columns:1fr}
  .service-main-card>div{border-right:0;border-bottom:1px solid var(--line-light)}
  .service-plan-grid,.option-grid{grid-template-columns:1fr}
  .service-plan-card{min-height:auto}
  .plan-for{min-height:0}
}
@media(max-width:680px){
  .subpage-hero{padding:120px 0 72px}
  .subpage-lead{font-size:15px}
  .service-main-card>div,.service-check-list{padding:30px 24px}
  .service-check-list{grid-template-columns:1fr}
  .service-sub-card{display:block;padding:30px 24px}
  .service-sub-price{margin-top:24px!important;font-size:36px}
  .service-plan-card{padding:38px 26px}
  .service-plan-price{font-size:42px}
  .option-card{min-height:auto;padding:32px 26px}
  .option-card h3{margin-top:30px}
}


/* ===== ReArk v1.0.10 services refinements ===== */
.subpage-hero h1{
  font-family:var(--serif);
  font-weight:600;
  letter-spacing:.04em;
}
.service-plan-price span{
  font-size:16px;
  font-weight:500;
  letter-spacing:.04em;
  line-height:1.8;
}
@media(max-width:680px){
  .service-plan-price span{font-size:15px;}
}


/* ===== ReArk v1.0.11 requested refinements ===== */

/* 詳細ページ「サービス」：トップページの見出しと同じ明朝書体 */
.subpage-hero h1{
  font-family:"Shippori Mincho",serif;
  font-weight:600;
  letter-spacing:.04em;
}

/* 「作る。守る。動かす。伸ばす。」を下段説明文と同じ文字サイズに */
.service-philosophy p{
  font-size:15px;
}

/* ===== ReArk v1.0.13 global kicker size standardization ===== */
/*
  トップページを含む全ページの英字小見出しを本文リード文相当へ統一。
  今後のページでも共通クラスを使えば自動反映。
*/
.hero-kicker,
.section-kicker,
.eyebrow,
.hero-label,
.section-label,
.kicker{
  font-size:18px !important;
  line-height:1.8 !important;
}

@media(max-width:680px){
  .hero-kicker,
.section-kicker,
.eyebrow,
.hero-label,
.section-label,
.kicker{
    font-size:15px !important;
    line-height:1.8 !important;
  }
}


/* ===== ReArk v1.0.14 service detail CTA ===== */
/* トップページ「サービス内容を詳しく見る」を独立CTAとして強調 */
.service-detail-link{
  display:flex;
  justify-content:center;
  margin-top:64px;
}

.service-detail-link .btn{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:340px;
  min-height:68px;
  padding:18px 70px 18px 34px;
  border:1px solid #d1a824;
  background:#0b0b0b;
  color:#fff;
  font-size:17px;
  font-weight:700;
  letter-spacing:.08em;
  text-decoration:none;
  box-shadow:0 10px 30px rgba(0,0,0,.10);
  transition:transform .25s ease, background .25s ease, color .25s ease, box-shadow .25s ease;
}

.service-detail-link .btn::after{
  content:"→";
  position:absolute;
  right:30px;
  top:50%;
  transform:translateY(-52%);
  color:#d1a824;
  font-size:25px;
  font-weight:400;
  transition:transform .25s ease, color .25s ease;
}

.service-detail-link .btn:hover,
.service-detail-link .btn:focus-visible{
  background:#d1a824;
  color:#050505;
  transform:translateY(-3px);
  box-shadow:0 16px 34px rgba(0,0,0,.16);
}

.service-detail-link .btn:hover::after,
.service-detail-link .btn:focus-visible::after{
  color:#050505;
  transform:translate(5px,-52%);
}

@media(max-width:680px){
  .service-detail-link{
    margin-top:42px;
  }

  .service-detail-link .btn{
    width:100%;
    min-width:0;
    min-height:62px;
    padding:16px 58px 16px 22px;
    font-size:15px;
  }

  .service-detail-link .btn::after{
    right:22px;
    font-size:22px;
  }
}
