/* OGPの深緑・金・生成りを基準にしたLP・固定ページ共通の仕上げ */
:root {
  --color-primary:#174f3a;
  --color-primary-light:#2b7054;
  --color-primary-dark:#0d3024;
  --color-primary-bg:rgba(23,79,58,.08);
  --color-secondary:#d2ad55;
  --color-secondary-light:#ead493;
  --color-secondary-dark:#a98232;
  --color-bg:#fbfaf5;
  --color-bg-alt:#f2ede1;
  --color-bg-dark:#0d3024;
  --color-border:#dcd3c1;
  --color-border-light:#ece5d8;
  --shadow-sm:0 4px 14px rgba(19,54,41,.06);
  --shadow-md:0 14px 34px rgba(19,54,41,.09);
  --shadow-lg:0 22px 54px rgba(12,44,33,.13);
  --shadow-glow:0 12px 34px rgba(210,173,85,.25);
}

/* Header */
.lp-header {
  background:rgba(13,48,36,.94);
  border-bottom:1px solid rgba(210,173,85,.32);
  box-shadow:0 8px 30px rgba(5,24,17,.12);
}
.lp-header__logo,.lp-header__nav-link { color:#f8f3e7; }
.lp-header__logo-icon { color:var(--color-secondary-light); }
.lp-header__nav-link:hover { color:var(--color-secondary-light); }
.lp-header__cta-btn {
  color:#173b2d;
  background:linear-gradient(135deg,var(--color-secondary-light),var(--color-secondary));
  box-shadow:0 8px 20px rgba(210,173,85,.18);
}
.lp-header__hamburger span { background:#f8f3e7; }

/* Shared language */
.lp-section-header {
  position:relative;
  margin-bottom:clamp(2.5rem,5vw,4rem);
}
.lp-section-header::after {
  content:"";
  display:block;
  width:72px;
  height:2px;
  margin:1.4rem auto 0;
  background:linear-gradient(90deg,transparent,var(--color-secondary),transparent);
}
.lp-section-label {
  color:var(--color-secondary-dark);
  letter-spacing:.24em;
}
.lp-section-title { color:var(--color-primary-dark); }
.text-accent { color:var(--color-primary); }
.lp-btn { min-height:52px;justify-content:center;box-shadow:none; }
.lp-btn--primary {
  color:#173b2d;
  background:linear-gradient(135deg,var(--color-secondary-light),var(--color-secondary));
  border-color:var(--color-secondary);
}
.lp-btn--primary:hover { color:#173b2d; }

/* Hero */
.lp-hero {
  min-height:min(920px,100svh);
  justify-content:stretch;
  padding:112px var(--container-padding) 72px;
  background:radial-gradient(circle at 70% 42%,rgba(210,173,85,.14),transparent 34%),linear-gradient(125deg,#09281e 0%,#124a37 55%,#1c654b 100%) !important;
}
.lp-hero::before { opacity:.08;mix-blend-mode:screen; }
.lp-hero__overlay {
  background:linear-gradient(30deg,rgba(234,212,147,.035) 12%,transparent 12.5%,transparent 87%,rgba(234,212,147,.035) 87.5%),linear-gradient(150deg,rgba(234,212,147,.035) 12%,transparent 12.5%,transparent 87%,rgba(234,212,147,.035) 87.5%);
  background-size:56px 96px;
}
.lp-hero__inner {
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr);
  gap:clamp(2rem,5vw,5.5rem);
  align-items:center;
  width:min(1180px,100%);
  margin:0 auto;
}
.lp-hero__content { max-width:690px;text-align:left; }
.lp-hero__badge {
  color:var(--color-secondary-light);
  background:rgba(255,255,255,.05);
  border-color:rgba(234,212,147,.42);
}
.lp-hero__title {
  font-size:clamp(2.2rem,3.7vw,3.25rem);
  line-height:1.28;
  letter-spacing:.015em;
  text-shadow:0 8px 28px rgba(0,0,0,.16);
}
.lp-hero__title-line { display:block;white-space:nowrap; }
.lp-hero__title-accent { color:var(--color-secondary-light); }
.lp-hero__title-accent::after {
  content:"";
  position:absolute;
  right:0;
  bottom:-.08em;
  left:0;
  height:2px;
  background:linear-gradient(90deg,var(--color-secondary),transparent);
}
.lp-hero__subtitle { max-width:650px;color:rgba(255,255,255,.82); }
.lp-hero__cta-group { justify-content:flex-start;margin-bottom:2.5rem; }
.lp-hero__stats {
  justify-content:flex-start;
  width:fit-content;
  padding:1rem 1.25rem;
  background:rgba(5,28,20,.28);
  border:1px solid rgba(234,212,147,.18);
  border-radius:14px;
  backdrop-filter:blur(10px);
}
.lp-hero__stat { min-width:100px;text-align:left; }
.lp-hero__stat-text,.lp-hero__stat-number {
  color:#fff7df;
  font-size:.95rem;
  font-weight:700;
}
.lp-hero__stat-number { display:block;line-height:1.2; }
.lp-hero__stat-label { color:rgba(255,255,255,.68); }
.lp-hero__visual { position:relative;display:grid;place-items:center; }
.lp-hero__visual-frame {
  position:relative;
  width:min(500px,100%);
  aspect-ratio:1;
  border:1px solid rgba(234,212,147,.24);
  border-radius:50%;
  background:radial-gradient(circle at center,rgba(210,173,85,.12),transparent 54%),rgba(3,26,18,.18);
  box-shadow:inset 0 0 0 18px rgba(255,255,255,.015),0 30px 80px rgba(3,25,18,.28);
}
.lp-hero__visual-frame::before,.lp-hero__visual-frame::after {
  content:"";
  position:absolute;
  inset:8%;
  border:1px solid rgba(234,212,147,.1);
  transform:rotate(45deg);
}
.lp-hero__visual-frame::after { inset:20%; }
.lp-hero__network { position:relative;z-index:1;width:100%;height:100%;overflow:visible; }
.lp-hero__network-orbit {
  fill:none;
  stroke:rgba(234,212,147,.24);
  stroke-width:1;
  stroke-dasharray:5 10;
  transform-origin:center;
  animation:hero-orbit 36s linear infinite;
}
.lp-hero__network-orbit--inner {
  stroke-dasharray:2 8;
  animation-direction:reverse;
  animation-duration:28s;
}
.lp-hero__network-links path { fill:none;stroke:url("#hero-link-gold");stroke-width:1.2; }
.lp-hero__network-node circle { fill:rgba(9,49,35,.9);stroke:var(--color-secondary-light);stroke-width:1.5; }
.lp-hero__network-node .lp-hero__network-node-ring { fill:none;stroke:rgba(234,212,147,.28);stroke-dasharray:4 7; }
.lp-hero__network-node text { fill:rgba(255,255,255,.72);font:600 12px var(--font-accent);letter-spacing:.2em; }
.lp-hero__network-node .lp-hero__network-node-main { fill:var(--color-secondary-light);font-size:16px;letter-spacing:.12em; }
.lp-hero__network-point circle {
  fill:rgba(247,243,232,.94);
  stroke:var(--color-secondary);
  stroke-width:2;
  filter:drop-shadow(0 8px 14px rgba(3,24,17,.22));
}
.lp-hero__network-point text { fill:var(--color-primary-dark);font:700 11px var(--font-sans); }
.lp-hero__network-spark circle { fill:var(--color-secondary-light);filter:drop-shadow(0 0 8px rgba(234,212,147,.8)); }
.lp-hero__visual-caption {
  position:absolute;
  right:8%;
  bottom:4%;
  z-index:2;
  margin:0;
  padding:.75rem 1rem;
  color:#fff7df;
  font-family:var(--font-serif);
  font-size:.9rem;
  text-align:right;
  background:rgba(7,36,26,.82);
  border-right:2px solid var(--color-secondary);
}
.lp-hero__visual-caption span { display:block;color:rgba(255,255,255,.6);font-family:var(--font-sans);font-size:.68rem; }
@keyframes hero-orbit { to { transform:rotate(360deg); } }

/* Section hierarchy and cards */
.lp-pain,.lp-why-us,.lp-pricing,.lp-faq { background-color:var(--color-bg); }
.lp-solution,.lp-process,.lp-testimonials,.lp-about {
  background:linear-gradient(rgba(242,237,225,.94),rgba(242,237,225,.94)),repeating-linear-gradient(45deg,rgba(23,79,58,.04) 0 1px,transparent 1px 12px);
}
.lp-pain__card,.lp-solution__card,.lp-testimonials__card,.lp-pricing__pack,.lp-faq__item {
  position:relative;
  overflow:hidden;
  border-color:var(--color-border);
  box-shadow:var(--shadow-sm);
}
.lp-pain__card::before,.lp-solution__card::before,.lp-testimonials__card::before,.lp-pricing__pack::before {
  content:"";
  position:absolute;
  top:0;
  right:0;
  left:0;
  height:3px;
  background:linear-gradient(90deg,var(--color-secondary),var(--color-secondary-light),transparent);
}
.lp-pain__card:hover,.lp-solution__card:hover,.lp-testimonials__card:hover,.lp-pricing__pack:hover {
  border-color:rgba(210,173,85,.7);
  box-shadow:var(--shadow-lg);
}
.lp-pain__icon,.lp-solution__card-icon {
  color:var(--color-primary);
  background:linear-gradient(145deg,#f4ead0,#fffdf7);
  border:1px solid rgba(210,173,85,.35);
}
.lp-why-us__grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem; }
.lp-why-us__item {
  position:relative;
  min-height:230px;
  padding:2rem;
  background:#fff;
  border:1px solid var(--color-border);
  border-top:3px solid var(--color-secondary);
  border-radius:16px;
  box-shadow:var(--shadow-sm);
}
.lp-why-us__number { color:var(--color-secondary-dark);opacity:.72; }
.lp-process__timeline { max-width:880px; }
.lp-process__timeline::before { background:linear-gradient(var(--color-secondary),var(--color-primary)); }
.lp-process__step-content {
  width:100%;
  padding:1.35rem 1.5rem;
  background:rgba(255,255,255,.84);
  border:1px solid var(--color-border);
  border-radius:14px;
  box-shadow:var(--shadow-sm);
}
.lp-process__step-number {
  background:var(--color-primary-dark);
  border:2px solid var(--color-secondary);
  box-shadow:0 0 0 5px var(--color-bg-alt);
}
.lp-pricing__pack--recommended {
  border-color:var(--color-secondary);
  background:linear-gradient(180deg,#fffdf8,#fff);
  box-shadow:var(--shadow-md);
}
.lp-testimonials__avatar { border:1px solid rgba(210,173,85,.42); }
.lp-demo-cta {
  position:relative;
  overflow:hidden;
  background:radial-gradient(circle at 82% 30%,rgba(210,173,85,.16),transparent 28%),var(--color-bg-dark);
}
.lp-demo-cta::before {
  content:"";
  position:absolute;
  inset:0;
  opacity:.16;
  background-image:repeating-linear-gradient(135deg,transparent 0 18px,rgba(234,212,147,.16) 18px 19px);
}
.lp-demo-cta__inner { position:relative; }
.lp-demo-cta__mockup { border-color:rgba(210,173,85,.32);box-shadow:0 24px 70px rgba(3,24,17,.34); }
.lp-faq__item { background:#fff; }
.lp-faq__question { border-left:3px solid var(--color-secondary); }
.lp-about__photo { position:relative; }
.lp-about__photo::before {
  content:"";
  position:absolute;
  inset:-12px 12px 12px -12px;
  z-index:0;
  border:1px solid var(--color-secondary);
  border-radius:var(--radius-lg);
}
.lp-about__photo img { position:relative;z-index:1;box-shadow:var(--shadow-lg); }

/* Contact */
.lp-contact {
  position:relative;
  background:radial-gradient(circle at 15% 20%,rgba(210,173,85,.14),transparent 24%),linear-gradient(135deg,#0a291f,#174f3a);
}
.lp-contact .lp-section-label,.lp-contact .text-accent { color:var(--color-secondary-light); }
.lp-contact .lp-section-title,.lp-contact .lp-section-desc { color:#fffdf7; }
.lp-contact .lp-section-desc { opacity:.76; }
.lp-contact__card {
  padding:clamp(1.5rem,5vw,3.5rem);
  border:1px solid rgba(210,173,85,.46);
  box-shadow:0 28px 70px rgba(2,22,15,.32);
}
.lp-contact__info { justify-content:space-between;gap:1.25rem; }
.lp-contact__info-item { flex:1;padding:1rem;background:var(--color-bg);border-radius:10px; }

/* Footer */
.lp-footer { padding-top:52px;background:#071f17;border-top:3px solid var(--color-secondary); }
.lp-footer__links { gap:.75rem; }
.lp-footer__links a {
  min-height:44px;
  padding:.65rem 1rem;
  color:#f8f3e7;
  border:1px solid rgba(234,212,147,.46);
  border-radius:6px;
}
.lp-footer__links a:hover {
  color:#071f17;
  background:var(--color-secondary-light);
  border-color:var(--color-secondary-light);
}

/* WordPress default pages */
body.page-template-default {
  color:var(--color-text);
  font-family:var(--font-sans);
  background:var(--color-bg-alt);
}
body.page-template-default #container { background:var(--color-bg-alt); }
body.page-template-default #main-wrap {
  width:100%;
  max-width:none;
  padding:clamp(2.5rem,6vw,5rem) var(--container-padding);
}
body.page-template-default .l-main-container { width:min(920px,100%);margin:0 auto; }
body.page-template-default #page-main {
  float:none;
  width:100%;
  margin:0 !important;
  padding:0 !important;
}
body.page-template-default #sidebar { display:none !important; }
body.page-template-default h1.page_title { display:none !important; }
body.page-template-default .single-post-main {
  width:100%;
  margin:0;
  padding:clamp(1.5rem,5vw,3.75rem);
  background:#fffdf8;
  border:1px solid var(--color-border);
  border-top:4px solid var(--color-secondary);
  border-radius:18px;
  box-shadow:var(--shadow-md) !important;
}
body.page-template-default .content {
  color:var(--color-text);
  font-family:var(--font-sans);
  font-size:clamp(.95rem,1.5vw,1.05rem);
  line-height:1.9;
}
body.page-template-default .content > h1:first-child {
  margin:0 0 2.5rem;
  padding:0 0 1.25rem;
  color:var(--color-primary-dark);
  font-family:var(--font-serif);
  font-size:clamp(1.75rem,4vw,2.5rem);
  line-height:1.45;
  border-bottom:2px solid var(--color-secondary);
  box-shadow:none;
}
body.page-template-default .content h2 {
  margin:2.75rem 0 1.1rem;
  padding:.65rem 0 .65rem 1rem;
  color:var(--color-primary-dark);
  font-family:var(--font-serif);
  font-size:clamp(1.2rem,2.6vw,1.55rem);
  line-height:1.5;
  background:transparent;
  border:0;
  border-left:4px solid var(--color-secondary);
  box-shadow:none;
}
body.page-template-default .content h3 { color:var(--color-primary);font-family:var(--font-serif); }
body.page-template-default .content a {
  color:var(--color-primary);
  text-decoration-color:var(--color-secondary);
  text-underline-offset:.2em;
}
body.page-template-default .content ul,body.page-template-default .content ol {
  padding:1rem 1.25rem 1rem 2.5rem;
  background:#f7f3e9;
  border-left:2px solid rgba(210,173,85,.65);
  border-radius:0 8px 8px 0;
}
body.page-template-default #footer {
  color:#f8f3e7;
  background:#071f17;
  border-top:3px solid var(--color-secondary);
}
body.page-template-default #copyright { color:rgba(248,243,231,.72); }

@media (max-width:980px) {
  .lp-hero { min-height:auto;padding-top:104px; }
  .lp-hero__inner { grid-template-columns:1fr; }
  .lp-hero__content { max-width:760px; }
  .lp-hero__visual { width:min(520px,82vw);margin:0 auto; }
}
@media (max-width:768px) {
  .lp-header__nav { background:rgba(13,48,36,.99);border-bottom-color:rgba(210,173,85,.32); }
  .lp-hero { padding:96px 1rem 64px; }
  .lp-hero__content { text-align:center; }
  .lp-hero__title { font-size:clamp(1.65rem,7vw,2.2rem); }
  .lp-hero__cta-group { justify-content:center; }
  .lp-hero__cta-group .lp-btn { width:min(100%,360px); }
  .lp-hero__stats { flex-direction:row;gap:.75rem;width:100%; }
  .lp-hero__stat { min-width:0;flex:1;text-align:center; }
  .lp-hero__stat-divider { width:1px;height:42px; }
  .lp-hero__visual { width:min(430px,92vw); }
  .lp-hero__scroll-hint { display:none; }
  .lp-why-us__grid { grid-template-columns:1fr; }
  .lp-why-us__item { min-height:0;padding:1.5rem; }
  .lp-process__step-content { padding:1rem; }
  .lp-contact__info { flex-direction:column; }
  .lp-footer__links { flex-direction:column;align-items:stretch; }
  body.page-template-default #main-wrap { padding:1.5rem .75rem 3rem; }
  body.page-template-default .single-post-main { padding:1.35rem;border-radius:12px; }
}
@media (max-width:480px) {
  .lp-header__logo-text { font-size:.84rem; }
  .lp-hero__stats { padding:.85rem .5rem; }
  .lp-hero__stat-text,.lp-hero__stat-number { font-size:.78rem; }
  .lp-hero__stat-label { font-size:.64rem; }
  .lp-hero__visual-caption { right:3%;bottom:0; }
}
@media (prefers-reduced-motion:reduce) {
  .lp-hero__network-orbit { animation:none; }
}

/* Diver header color alignment on standard pages */
body.page-template-default #header,
body.page-template-default .header-wrap,
body.page-template-default .header_small_menu,
body.page-template-default .header_small_content,
body.page-template-default .header-logo,
body.page-template-default #nav,
body.page-template-default #scrollnav,
body.page-template-default #nav_fixed {
  color:#f8f3e7;
  background:#0d3024 !important;
}
body.page-template-default #header a,
body.page-template-default #nav a,
body.page-template-default #scrollnav a { color:#f8f3e7 !important; }
body.page-template-default #footer .footer_content { text-align:center; }
body.page-template-default #header .logo_title { color:#f8f3e7 !important; }
