.wpcf7 .screen-reader-response {
	position: absolute;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	word-wrap: normal !important;
}

.wpcf7 .hidden-fields-container {
	display: none;
}

.wpcf7 form .wpcf7-response-output {
	margin: 2em 0.5em 1em;
	padding: 0.2em 1em;
	border: 2px solid #00a0d2; /* Blue */
}

.wpcf7 form.init .wpcf7-response-output,
.wpcf7 form.resetting .wpcf7-response-output,
.wpcf7 form.submitting .wpcf7-response-output {
	display: none;
}

.wpcf7 form.sent .wpcf7-response-output {
	border-color: #46b450; /* Green */
}

.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output {
	border-color: #dc3232; /* Red */
}

.wpcf7 form.spam .wpcf7-response-output {
	border-color: #f56e28; /* Orange */
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
	border-color: #ffb900; /* Yellow */
}

.wpcf7-form-control-wrap {
	position: relative;
}

.wpcf7-not-valid-tip {
	color: #dc3232; /* Red */
	font-size: 1em;
	font-weight: normal;
	display: block;
}

.use-floating-validation-tip .wpcf7-not-valid-tip {
	position: relative;
	top: -2ex;
	left: 1em;
	z-index: 100;
	border: 1px solid #dc3232;
	background: #fff;
	padding: .2em .8em;
	width: 24em;
}

.wpcf7-list-item {
	display: inline-block;
	margin: 0 0 0 1em;
}

.wpcf7-list-item-label::before,
.wpcf7-list-item-label::after {
	content: " ";
}

.wpcf7-spinner {
	visibility: hidden;
	display: inline-block;
	background-color: #23282d; /* Dark Gray 800 */
	opacity: 0.75;
	width: 24px;
	height: 24px;
	border: none;
	border-radius: 100%;
	padding: 0;
	margin: 0 24px;
	position: relative;
}

form.submitting .wpcf7-spinner {
	visibility: visible;
}

.wpcf7-spinner::before {
	content: '';
	position: absolute;
	background-color: #fbfbfc; /* Light Gray 100 */
	top: 4px;
	left: 4px;
	width: 6px;
	height: 6px;
	border: none;
	border-radius: 100%;
	transform-origin: 8px 8px;
	animation-name: spin;
	animation-duration: 1000ms;
	animation-timing-function: linear;
	animation-iteration-count: infinite;
}

@media (prefers-reduced-motion: reduce) {
	.wpcf7-spinner::before {
		animation-name: blink;
		animation-duration: 2000ms;
	}
}

@keyframes spin {
	from {
		transform: rotate(0deg);
	}

	to {
		transform: rotate(360deg);
	}
}

@keyframes blink {
	from {
		opacity: 0;
	}

	50% {
		opacity: 1;
	}

	to {
		opacity: 0;
	}
}

.wpcf7 [inert] {
	opacity: 0.5;
}

.wpcf7 input[type="file"] {
	cursor: pointer;
}

.wpcf7 input[type="file"]:disabled {
	cursor: default;
}

.wpcf7 .wpcf7-submit:disabled {
	cursor: not-allowed;
}

.wpcf7 input[type="url"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"] {
	direction: ltr;
}

.wpcf7-reflection > output {
	display: list-item;
	list-style: none;
}

.wpcf7-reflection > output[hidden] {
	display: none;
}
:root{
  --sage:#2d5a3d;
  --sage2:#1e4030;
  --sage3:#163323;
  --sage-pale:#eaf2ec;
  --sage-mid:#4a7c5e;
  --forest:#0e2819;
  --cream:#f5f1ea;
  --cream2:#ede8df;
  --cream3:#e4ddd2;
  --warm:#c8bfb0;
  --ink:#1c1c18;
  --mid:#6b6658;
  --light:#a09890;
  --white:#faf8f4;
  --line:rgba(28,28,24,.08);
  --line2:rgba(28,28,24,.14);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:focus{outline:none!important}
:focus-visible{outline:2px solid #163323!important;outline-offset:2px!important;box-shadow:0 0 0 4px #faf8f4,0 0 0 6px #163323!important}
html{overflow-x:hidden}
body{background:var(--cream);color:var(--ink);font-family:'Noto Sans JP',sans-serif;overflow-x:hidden;cursor:none}

/* subtle grain */
body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:9990;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 300 300' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");opacity:.5}

/* CURSOR */
#cur{position:fixed;z-index:9999;pointer-events:none;width:8px;height:8px;background:var(--sage);border-radius:50%;transform:translate(-50%,-50%);transition:width .4s cubic-bezier(.16,1,.3,1),height .4s cubic-bezier(.16,1,.3,1),background .3s;mix-blend-mode:multiply}
body.ch #cur{width:64px;height:64px;background:rgba(45,90,61,.12)}

/* NAV */
nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  padding:0 56px;height:64px;
  display:flex;align-items:center;justify-content:space-between;
  background:rgba(245,241,234,.92);
  backdrop-filter:blur(24px);
  border-bottom:1px solid var(--line);
}
@media(max-width:640px){
  nav{padding:0 20px;position:relative}
  nav>a{position:absolute;left:50%;transform:translateX(-50%)}
  .n-hamburger{order:-1}
}
.n-logo img{height:28px;width:auto;display:block}
.n-links{display:flex;align-items:center;gap:44px}
.n-link{font-family:'Syne',sans-serif;font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--mid);text-decoration:none;transition:color .2s}
.n-link:hover{color:var(--ink)}
.n-cta{font-family:'Syne',sans-serif;font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;padding:9px 22px;background:var(--sage);color:var(--white);border-radius:100px;transition:background .25s}
.n-cta:hover{background:var(--sage2)}

/* ═══ HERO ═══ */
/* ═══ HERO — full screen cinematic ═══ */
.hero{
  min-height:100vh;
  min-height:100svh;
  width:100%;max-width:100%;
  background:var(--sage3);
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  position:relative;overflow:hidden;
  padding:64px 40px 80px;
  box-sizing:border-box;
}
.hero-img{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;object-position:center;
  z-index:0;
}
.hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(to bottom, rgba(10,30,18,.85) 0%, rgba(10,30,18,.78) 50%, rgba(10,30,18,.88) 100%);
  z-index:1;pointer-events:none;
}
.hero > *{position:relative;z-index:2;}
.hero > .hero-overlay,.hero > .hero-img{z-index:0;}
.hero > .hero-overlay{z-index:1;}

/* ambient orb */
.hero-orb{
  position:absolute;
  width:700px;height:700px;border-radius:50%;
  background:radial-gradient(ellipse,rgba(74,124,94,.18) 0%,transparent 65%);
  top:50%;left:50%;transform:translate(-50%,-50%);
  animation:orb 12s ease-in-out infinite alternate;
  pointer-events:none;
}
@keyframes orb{
  0%{transform:translate(-50%,-50%) scale(1)}
  100%{transform:translate(-50%,-50%) scale(1.2)}
}

/* logo */
.hero-logo{
  opacity:0;
  transform:translateY(-16px);
  animation:fadeUp 1.2s .2s cubic-bezier(.16,1,.3,1) forwards;
  margin-bottom:clamp(40px,6vh,72px);
}
.hero-logo img{height:36px;width:auto;filter:brightness(0) invert(1);opacity:.9}

/* headline */
.hero-h1{
  font-family:'Syne',sans-serif;
  font-size:clamp(64px,10vw,140px);
  font-weight:800;line-height:.88;
  letter-spacing:-.04em;
  text-align:center;
  position:relative;z-index:1;
  margin-top:clamp(32px,6vh,80px);
}
.hero-h1 .line{
  display:block;
}
.hero-h1 .line-inner{
  display:block;
  white-space:nowrap;
}
@media(max-width:480px){.hero-h1 .line-inner{white-space:normal}}
.hero-h1 .line:nth-child(1) .line-inner{color:var(--white)}
.hero-h1 .line:nth-child(2) .line-inner{color:var(--white)}
.hero-h1 .line:nth-child(3) .line-inner{color:transparent;-webkit-text-stroke:1.5px rgba(245,241,234,.25)}
.hero-h1 .line:nth-child(4) .line-inner{color:var(--sage-mid)}
.tw-char{
  display:inline-block;
  opacity:0;
  filter:blur(8px);
  transition:opacity .35s ease, filter .35s ease;
}
.tw-char.show{
  opacity:1;
  filter:blur(0);
}
@keyframes fadeUp{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}
.hero-stats{
  display:flex;align-items:stretch;
  gap:0;
  margin-top:clamp(40px,6vh,72px);
  position:relative;z-index:1;
  max-width:100%;
}
.hs-item{
  padding:0 clamp(12px,3vw,56px);
  text-align:center;
  border-right:1px solid rgba(245,241,234,.12);
  opacity:0;
  flex:1;
  min-width:0;
  animation:fadeUp 1.2s cubic-bezier(.16,1,.3,1) forwards;
}
.hs-item:first-child{padding-left:0}
.hs-item:last-child{border-right:none;padding-right:0}
.hs-item:nth-child(1){animation-delay:1.6s}
.hs-item:nth-child(2){animation-delay:1.85s}
.hs-item:nth-child(3){animation-delay:2.1s}
.hs-n{
  font-family:'Syne',sans-serif;
  font-size:clamp(32px,6vw,80px);
  font-weight:800;line-height:1;
  color:var(--white);
  letter-spacing:-.03em;
}
.hs-n sup{font-size:.4em;vertical-align:super}
.hs-l{
  font-size:11px;font-weight:300;
  color:rgba(245,241,234,.4);
  letter-spacing:.08em;margin-top:8px;
}

/* sub + cta */
.hero-bottom{
  margin-top:clamp(40px,5vh,60px);
  display:flex;flex-direction:column;align-items:center;gap:32px;
  opacity:0;animation:fadeUp 1.2s 2.4s ease forwards;
  position:relative;z-index:1;
  text-align:center;
}
.hero-sub{
  font-size:13px;font-weight:300;
  color:var(--white);
  line-height:2;
}
.hero-sub strong{color:var(--white);font-weight:400}
.hero-btn{
  display:inline-flex;align-items:center;gap:12px;
  font-family:'Syne',sans-serif;font-size:15px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;
  text-decoration:none;color:var(--white);
  transition:gap .3s;
}
.hero-btn::after{content:'→';font-size:20px;transition:transform .3s}
.hero-btn:hover{gap:18px}
.hero-btn:hover::after{transform:translateX(4px)}
.hb-line{width:32px;height:1px;background:rgba(245,241,234,.2)}
.hero-btn-wrap{display:flex;flex-direction:column;align-items:center;gap:16px}

/* trust badge */
.hero-trust{
  display:flex;align-items:center;gap:14px;
  margin-top:32px;
  padding:16px 36px;
  border:none;
  border-radius:100px;
  background:rgba(245,241,234,.92);
  backdrop-filter:blur(24px);
  opacity:0;animation:fadeUp 1.2s 2.8s ease forwards;
  position:relative;z-index:1;
}
.hero-trust-dot{
  width:9px;height:9px;border-radius:50%;
  background:var(--sage);flex-shrink:0;
  box-shadow:0 0 8px rgba(45,90,61,.4);
}
.hero-trust-text{
  font-family:'Noto Sans JP',sans-serif;font-size:13px;font-weight:700;
  letter-spacing:.08em;color:var(--sage);
  line-height:1.7;
}

/* ═══ MARQUEE ═══ */
.mq{
  background:var(--sage);
  padding:14px 0;overflow:hidden;
}
.mq-t{display:flex;width:max-content;animation:mqa 20s linear infinite}
.mq-i{
  display:flex;align-items:center;gap:28px;padding:0 36px;
  font-family:'Syne',sans-serif;font-size:10px;font-weight:600;
  letter-spacing:.24em;text-transform:uppercase;
  color:rgba(245,241,234,.6);white-space:nowrap;
}
.mq-d{width:3px;height:3px;border-radius:50%;background:rgba(245,241,234,.4)}
@keyframes mqa{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ═══ SERVICES ═══ */
.sv{background:var(--cream);padding:140px 0}
.sv-in{max-width:1360px;margin:0 auto;padding:0 56px}
.sv-top{
  display:grid;grid-template-columns:1fr 1fr;
  gap:80px;align-items:end;
  margin-bottom:80px;
}
.sv-title{
  font-family:'Syne',sans-serif;
  font-size:clamp(48px,6vw,80px);
  font-weight:800;letter-spacing:-.04em;line-height:.93;
  color:var(--ink);
}
.sv-title span{color:var(--sage)}
.sv-desc{
  font-size:14px;font-weight:300;color:var(--mid);
  line-height:2.1;
  padding-left:32px;
  border-left:2px solid var(--cream3);
}

/* ── Services alternating Z-layout ── */
.sv-list{display:flex;flex-direction:column;gap:32px;margin-top:80px}
.sv-item{
  display:grid;
  grid-template-columns:3fr 2fr;
  min-height:480px;
  overflow:hidden;
  position:relative;
  cursor:default;
  border-top:1px solid var(--cream3);
}
.sv-item:last-child{border-bottom:1px solid var(--cream3)}
.sv-item.rev{grid-template-columns:2fr 3fr}
.sv-item.rev .sv-img{order:2}
.sv-item.rev .sv-body{order:1}
.sv-img{
  position:relative;overflow:hidden;
}
.sv-img-bg{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  transition:transform .8s cubic-bezier(.16,1,.3,1);
}
.sv-item:hover .sv-img-bg{transform:scale(1.04)}
.sv-img-overlay{
  position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(22,51,35,.3),transparent);
}
.sv-body{
  display:flex;flex-direction:column;justify-content:center;
  padding:80px 72px;
  background:var(--cream2);
  position:relative;
}
.sv-num{
  font-family:'Syne',sans-serif;
  font-size:12px;font-style:italic;
  color:var(--warm);letter-spacing:.1em;
  margin-bottom:20px;
}
.sv-name{
  font-size:clamp(20px,2.2vw,28px);font-weight:500;
  color:var(--ink);letter-spacing:-.01em;
  line-height:1.3;margin-bottom:6px;
}
.sv-name-en{
  font-family:'Syne',sans-serif;font-size:10px;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;
  color:var(--sage-mid);margin-bottom:24px;
}
.sv-desc-sub{
  font-size:14px;font-weight:300;line-height:2;
  color:var(--mid);margin-bottom:32px;
  max-width:360px;
}
.sv-tags{
  display:flex;flex-wrap:wrap;gap:6px;
  margin-bottom:36px;
  border:none;
}
.sv-tag{
  font-family:'Syne',sans-serif;font-size:10px;font-weight:500;
  letter-spacing:.06em;padding:5px 14px;
  border:1px solid var(--cream3);border-radius:100px;
  color:var(--light);
  transition:border-color .3s,color .3s,background .3s;
}
.sv-item:hover .sv-tag{
  border-color:rgba(45,90,61,.3);
  color:var(--sage);
  background:rgba(45,90,61,.06);
}
.sv-arrow{
  display:inline-flex;align-items:center;gap:10px;
  font-family:'Syne',sans-serif;font-size:11px;
  font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:var(--sage);text-decoration:none;
  transition:gap .3s;
}
.sv-arrow::after{content:'→';font-size:14px}
.sv-item:hover .sv-arrow{gap:16px}
@media(max-width:768px){
  .sv-arrow{
    display:flex;justify-content:center;align-items:center;gap:10px;
    width:100%;padding:16px 24px;margin-top:8px;
    background:var(--sage);color:var(--white);
    font-size:13px;font-weight:700;letter-spacing:.14em;
    border-radius:2px;transition:background .25s,gap .3s;
  }
  .sv-arrow:hover,.sv-arrow:active{background:var(--sage2);gap:16px}
  .sv-arrow::after{font-size:16px}
}
@media(max-width:900px){
  .sv-item,.sv-item.rev{grid-template-columns:1fr;grid-template-rows:300px auto}
  .sv-item.rev .sv-img{order:0}
  .sv-item.rev .sv-body{order:1}
  .sv-body{padding:40px 32px}
}
@media(hover:none),(max-width:1024px){
  .sv-tag,
  .sv-item .sv-tag{
    border-color:rgba(45,90,61,.3);
    color:var(--sage);
    background:rgba(45,90,61,.06);
  }
  .sv-item .sv-arrow{gap:16px}
  .sv-item .sv-img-bg{transform:scale(1.04)}
}

/* ═══ WORKS ═══ */
.wk{background:var(--cream2);padding:140px 0}
.wk-in{max-width:1360px;margin:0 auto;padding:0 56px}
.wk-top{
  display:flex;align-items:flex-end;justify-content:space-between;
  margin-bottom:56px;
}
@media(max-width:768px){
  .wk-top{flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:32px}
}
.wk-title{
  font-family:'Syne',sans-serif;
  font-size:clamp(48px,6vw,80px);
  font-weight:800;letter-spacing:-.04em;line-height:.93;
}
.wk-title span{color:var(--sage)}
.wk-all{
  font-family:'Syne',sans-serif;font-size:10.5px;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;
  color:var(--sage);text-decoration:none;
  display:flex;align-items:center;gap:8px;
  border-bottom:1.5px solid rgba(45,90,61,.25);padding-bottom:3px;
  transition:gap .2s;
}
.wk-all:hover{gap:14px}

/* Organic asymmetric layout — different sizes, slight offsets */
.wk-layout{
  display:grid;
  grid-template-columns:1.3fr .85fr .85fr;
  grid-template-rows:380px 220px 220px;
  gap:12px;
}
.wcard{border-radius:3px;overflow:hidden;position:relative;background:var(--cream3)}
.wcard.a{grid-row:span 2}
.wcard.d{grid-column:span 2}

.wcard-bg{
  position:absolute;inset:0;
  transition:transform .7s cubic-bezier(.16,1,.3,1);
}
.wcard:hover .wcard-bg{transform:scale(1.05)}
.wbg-a{background-image:url('https://prevision.earth/wp-content/themes/prevision-theme/assets/images/prevision-kyuhaisui-haikan-enbi-pipe-construction.webp');background-size:cover;background-position:center}
.wbg-b{background-image:url('https://prevision.earth/wp-content/themes/prevision-theme/assets/images/prevision-mizumawari-bathroom-reform-renovation.webp');background-size:cover;background-position:center}
.wbg-c{background-image:url('https://prevision.earth/wp-content/themes/prevision-theme/assets/images/prevision-naisou-interior-renovation-flooring.webp');background-size:cover;background-position:center}
.wbg-d{background:linear-gradient(160deg,#ccdbd3,#aec4b8)}
.wbg-e{background:linear-gradient(160deg,#d4dce0,#b8ccd4)}
.wbg-f{background:linear-gradient(160deg,#e0d8d0,#c8bdb0)}

.wcard-over{
  position:absolute;inset:0;
  background:linear-gradient(to top,rgba(14,40,25,.75) 0%,rgba(14,40,25,.1) 50%,transparent 80%);
  transition:opacity .4s;
}
.wcard:hover .wcard-over{opacity:.9}
.wcard-cat{
  position:absolute;top:16px;left:16px;
  font-family:'Syne',sans-serif;font-size:9px;font-weight:700;
  letter-spacing:.2em;text-transform:uppercase;
  color:var(--white);background:var(--sage);
  padding:4px 12px;border-radius:100px;
}
.wcard-body{
  position:absolute;bottom:0;left:0;right:0;
  padding:20px 24px 26px;
}
.wcard-body h3{
  font-size:14px;font-weight:500;color:var(--white);
  line-height:1.4;margin-bottom:4px;letter-spacing:.01em;
}
.wcard.a .wcard-body h3{font-size:18px}
.wcard-body p{font-size:11.5px;font-weight:300;color:rgba(245,241,234,.55);line-height:1.65}

/* ═══ VOICE ═══ */
.voice{background:var(--cream);padding:140px 0}
.voice-in{max-width:1360px;margin:0 auto;padding:0 56px}
.voice-top{margin-bottom:72px}
.voice-label{
  font-family:'Syne',sans-serif;font-size:10px;font-weight:700;
  letter-spacing:.28em;text-transform:uppercase;color:var(--sage);
  display:flex;align-items:center;gap:10px;margin-bottom:16px;
}
.voice-label::before{content:'';width:18px;height:1.5px;background:var(--sage);display:block}
.voice-title{
  font-family:'Syne',sans-serif;
  font-size:clamp(36px,5vw,64px);
  font-weight:800;letter-spacing:-.04em;line-height:1;
  color:var(--ink);
}
.voice-title span{color:var(--sage)}

/* Staggered cards — not equal height grid */
.voice-layout{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:2px;
  background:var(--cream3);
}
.vcard{
  background:var(--cream);
  padding:48px 40px;
  position:relative;overflow:hidden;
  transition:background .3s;
}
.vcard:nth-child(2){margin-top:32px;background:var(--cream2)}
.vcard:nth-child(3){margin-top:64px}
.vcard:hover{background:var(--sage-pale)}
.vcard::before{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:var(--sage);transform:scaleX(0);transform-origin:left;
  transition:transform .5s cubic-bezier(.16,1,.3,1);
}
.vcard:hover::before{transform:scaleX(1)}
.vcard-q{
  font-family:'Syne',sans-serif;
  font-size:80px;font-weight:300;font-style:italic;
  color:var(--sage);opacity:.2;
  line-height:.7;margin-bottom:20px;
  transition:opacity .3s;
}
.vcard:hover .vcard-q{opacity:.35}
.vcard-text{
  font-size:14px;font-weight:300;color:var(--mid);line-height:2;
}
.vcard-text strong{color:var(--ink);font-weight:400}
.vcard-from{
  margin-top:24px;
  font-family:'Syne',sans-serif;font-size:10.5px;font-weight:500;
  letter-spacing:.08em;color:var(--light);
  padding-top:18px;border-top:1px solid var(--line2);
}

/* ═══ ABOUT ═══ */
.about{
  background:var(--sage3);
  padding:140px 0;
  position:relative;overflow:hidden;
}
.about::before{
  content:'技';
  position:absolute;bottom:-60px;right:-30px;
  font-family:'Syne',sans-serif;
  font-size:clamp(240px,30vw,440px);
  font-weight:800;letter-spacing:-.06em;
  color:rgba(245,241,234,.03);
  line-height:1;user-select:none;pointer-events:none;
}
.about-in{max-width:1360px;margin:0 auto;padding:0 56px;position:relative;z-index:1}
.about-grid{
  display:grid;grid-template-columns:1fr 340px 1fr;
  gap:72px;align-items:start;
}
.about-label{
  font-family:'Syne',sans-serif;font-size:10px;font-weight:700;
  letter-spacing:.28em;text-transform:uppercase;color:var(--sage-mid);
  display:flex;align-items:center;gap:10px;margin-bottom:40px;
}
.about-label::before{content:'';width:18px;height:1.5px;background:var(--sage-mid);display:block}
.about-title{
  font-family:'Syne',sans-serif;
  font-size:clamp(40px,5.5vw,72px);
  font-weight:800;letter-spacing:-.04em;line-height:1;
  color:var(--white);
}
.about-title span{color:var(--sage-mid)}
.about-right{padding-top:20px}
.about-body{
  font-size:15px;font-weight:300;color:rgba(245,241,234,.5);
  line-height:2.2;
}
.about-body strong{color:rgba(245,241,234,.85);font-weight:400}
.about-body p+p{margin-top:20px}
.about-license{
  margin-top:48px;padding:24px 28px;
  border:1px solid rgba(74,124,94,.25);
  border-radius:2px;background:rgba(245,241,234,.06);
  border-left:2px solid var(--sage-mid);
}
.al-label{
  font-family:'Syne',sans-serif;font-size:9px;font-weight:700;
  letter-spacing:.24em;text-transform:uppercase;
  color:var(--sage-mid);margin-bottom:10px;
}
.al-text{font-size:13px;font-weight:300;color:rgba(245,241,234,.65);line-height:1.9}
/* about photo */
.about-photo{
  position:relative;
  aspect-ratio:3/4;
  border-radius:2px;
  overflow:hidden;
}
.about-photo img{
  width:100%;height:100%;
  object-fit:cover;object-position:top center;
  display:block;
}
.about-photo-placeholder{
  position:absolute;inset:0;
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:16px;
  padding:24px;
  text-align:center;
}
.about-photo-placeholder::before{
  content:'👤';
  font-size:56px;
}
.about-photo-placeholder span{
  font-family:'Syne',sans-serif;font-size:13px;font-weight:800;
  letter-spacing:.1em;text-transform:uppercase;
  color:#333;
  line-height:2;
}
.about-photo-placeholder em{
  font-style:normal;
  font-family:'Noto Sans JP',sans-serif;font-size:12px;font-weight:400;
  color:#555;letter-spacing:.04em;
  line-height:2;
  background:rgba(255,255,255,.6);padding:8px 14px;border-radius:4px;
}
@media(max-width:1100px){
  .about-grid{grid-template-columns:1fr 160px 1fr;gap:48px}
}
@media(max-width:768px){
  .about-grid{grid-template-columns:1fr;gap:40px}
  .about-photo{grid-row:auto;grid-column:auto;aspect-ratio:3/4;width:60%;max-width:240px;margin:0 auto;order:2}
  .about-grid>div:first-child{order:1}
  .about-right{order:3}
}

/* ═══ YEAR BADGE ═══ */
.about-year-badge{
  margin-top:40px;
  display:inline-flex;gap:12px;align-items:baseline;
}
.ayb-n{
  font-family:'Syne',sans-serif;
  font-size:72px;font-weight:800;
  color:rgba(245,241,234,.08);
  line-height:1;letter-spacing:-.04em;
}
.ayb-t{font-size:12px;font-weight:300;color:rgba(245,241,234,.25);letter-spacing:.06em}

/* ═══ PROMISE ═══ */
.promise{background:var(--cream2);padding:140px 0}
.pm-in{max-width:1360px;margin:0 auto;padding:0 56px}
.pm-top{
  display:flex;align-items:flex-end;justify-content:space-between;
  margin-bottom:72px;
}
@media(max-width:768px){
  .pm-top{flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:40px}
  .pm-sub{max-width:100%;text-align:left;}
}
.pm-title{
  font-family:'Syne',sans-serif;
  font-size:clamp(48px,6vw,80px);
  font-weight:800;letter-spacing:-.04em;line-height:.93;
}
.pm-title span{color:var(--sage)}
.pm-sub{
  font-size:13px;font-weight:300;color:var(--mid);
  line-height:2;max-width:240px;
}

/* Horizontal promise items with large numbers */
.pm-items{display:flex;flex-direction:column;gap:0}
.pm-item{
  display:grid;
  grid-template-columns:120px 1fr auto;
  align-items:center;gap:0;
  border-bottom:1px solid var(--line2);
  position:relative;overflow:hidden;
  transition:padding-left .4s;
}
.pm-item:first-child{border-top:1px solid var(--line2)}
.pm-item::before{
  content:'';position:absolute;left:0;bottom:0;
  height:2px;width:0;background:var(--sage);
  transition:width .6s ease;
}
.pm-item:hover::before{width:100%}
.pm-item:hover{padding-left:8px}
.pm-n{
  font-family:'Syne',sans-serif;
  font-size:80px;font-weight:300;font-style:italic;
  color:rgba(28,28,24,.06);line-height:.85;
  padding:40px 0;
  letter-spacing:-.02em;
  transition:color .3s;
}
.pm-item:hover .pm-n{color:rgba(45,90,61,.12)}
.pm-body{
  padding:40px 48px;
  border-left:1px solid var(--line2);
  transition:border-color .3s;
}
.pm-item:hover .pm-body{border-color:rgba(45,90,61,.15)}
.pm-body h3{font-size:17px;font-weight:500;color:var(--ink);margin-bottom:8px;letter-spacing:.01em}
.pm-body p{font-size:13px;font-weight:300;color:var(--mid);line-height:1.9}
.pm-icon{
  padding:40px 40px;
  font-size:32px;
  border-left:1px solid var(--line2);
  transition:border-color .3s,transform .3s;
}
.pm-item:hover .pm-icon{border-color:rgba(45,90,61,.15);transform:scale(1.1)}

/* ═══ MOBILE STICKY CTA ═══ */
.sp-cta{
  display:none;
  position:fixed;bottom:0;left:0;right:0;z-index:200;
  overflow:hidden;
  box-shadow:0 -4px 24px rgba(0,0,0,.18);
}
.sp-cta-inner{
  display:grid;grid-template-columns:1fr 1fr;
  overflow:hidden;
  width:100%;
}
.sp-cta-tel{
  display:flex;align-items:center;justify-content:center;gap:10px;
  padding:19px 16px;
  min-height:56px;
  background:var(--sage);color:var(--white);
  text-decoration:none;font-family:'Syne',sans-serif;
  font-size:14px;font-weight:700;letter-spacing:.06em;
  border-right:1px solid rgba(255,255,255,.15);
  -webkit-tap-highlight-color:transparent;
}
.sp-cta-tel svg{width:18px;height:18px;fill:currentColor;flex-shrink:0}
.sp-cta-mail{
  display:flex;align-items:center;justify-content:center;gap:10px;
  padding:19px 16px;
  min-height:56px;
  background:var(--sage2);color:var(--white);
  text-decoration:none;font-family:'Syne',sans-serif;
  font-size:14px;font-weight:700;letter-spacing:.06em;
  -webkit-tap-highlight-color:transparent;
}
.sp-cta-mail svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;flex-shrink:0}
@media(max-width:768px){
  .sp-cta{display:block}
  .ft-btm{padding-bottom:72px}
}

@media(max-width:768px){
  .promise{padding:80px 0}
  .pm-in{padding:0 20px}
  .pm-item{grid-template-columns:60px 1fr;gap:0}
  .pm-icon{display:none}
  .pm-n{font-size:48px;padding:24px 0}
  .pm-body{padding:24px 20px}
}

/* ═══ FAQ ═══ */
.faq{padding:120px 0;background:var(--cream)}
.faq-in{max-width:860px;margin:0 auto;padding:0 32px}
.faq-top{display:flex;align-items:baseline;gap:32px;margin-bottom:64px}
.faq-title{font-family:'Syne',sans-serif;font-size:clamp(40px,6vw,72px);font-weight:800;line-height:.9;letter-spacing:-.02em}
.faq-title span{color:var(--sage)}
.faq-sub{font-size:12px;letter-spacing:.12em;color:var(--mid);text-transform:uppercase}
.faq-list{display:flex;flex-direction:column;gap:2px}
.faq-item{border-bottom:1px solid var(--line2)}
.faq-q{width:100%;display:flex;align-items:flex-start;gap:20px;padding:24px 0;cursor:pointer;background:none;border:none;text-align:left;font-family:inherit}
.faq-q-num{font-family:'Syne',sans-serif;font-size:11px;font-weight:700;color:var(--sage);letter-spacing:.1em;padding-top:3px;min-width:28px}
.faq-q-text{font-size:15px;font-weight:500;color:var(--ink);line-height:1.5;flex:1}
.faq-q-icon{font-size:18px;color:var(--sage);min-width:20px;transition:transform .3s;margin-top:2px}
.faq-item.open .faq-q-icon{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .4s ease}
.faq-item.open .faq-a{max-height:300px}
.faq-a-inner{margin:0 0 24px 48px;padding:16px 20px;font-size:14px;line-height:1.85;color:var(--mid);background:var(--cream2);border-left:3px solid var(--sage-mid);border-radius:0 6px 6px 0}
@media(max-width:768px){.faq-in{padding:0 20px}.faq-top{flex-direction:column;gap:8px;margin-bottom:40px}.faq-a-inner{margin:0 0 20px 36px}}

/* ═══ AREA ═══ */
.area{padding:80px 0;background:var(--sage3)}
.area-in{max-width:1040px;margin:0 auto;padding:0 40px;display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.area-label{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.45);margin-bottom:12px}
.area-title{font-family:'Syne',sans-serif;font-size:clamp(28px,4vw,44px);font-weight:800;color:var(--white);line-height:1.1;margin-bottom:20px}
.area-title span{color:rgba(255,255,255,.35);font-style:normal;font-family:'Noto Sans JP',sans-serif;font-weight:200}
.area-note{font-size:13px;color:rgba(255,255,255,.55);line-height:1.7}
.area-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.area-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:16px 20px}
.area-card-name{font-family:'Syne',sans-serif;font-size:14px;font-weight:600;color:var(--white);margin-bottom:6px}
.area-card-detail{font-size:11px;color:rgba(255,255,255,.5);line-height:1.6}
.area-note-sm{grid-column:1/-1;font-size:11px;color:rgba(255,255,255,.35);padding-top:4px}
.area-map{
  margin-top:48px;border-radius:12px;overflow:hidden;
  border:1px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.03);
  padding:40px;
}
.area-map-inner{
  position:relative;width:100%;max-width:680px;margin:0 auto;
}
.area-map-inner svg{width:100%;height:auto;display:block}
.area-map-label{
  display:flex;flex-wrap:wrap;gap:20px;justify-content:center;
  margin-top:28px;
}
.area-map-tag{
  display:flex;align-items:center;gap:8px;
  font-family:'Syne',sans-serif;font-size:11px;font-weight:600;
  letter-spacing:.1em;color:rgba(255,255,255,.6);
}
.area-map-tag::before{
  content:'';width:10px;height:10px;border-radius:2px;
  background:rgba(74,124,94,.7);flex-shrink:0;
}
.area-map-tag.light::before{background:rgba(74,124,94,.35)}
@media(max-width:768px){.area-in{grid-template-columns:1fr;gap:32px;padding:0 20px}.area-list{grid-template-columns:1fr 1fr}.area-map{padding:24px}}

/* ═══ CTA ═══ */
.cta{
  background:var(--sage);
  padding:140px 0;
  position:relative;overflow:hidden;
}
.cta::before{
  content:'';position:absolute;
  width:120%;height:120%;
  top:-10%;left:-10%;
  background:radial-gradient(ellipse at 20% 50%,rgba(255,255,255,.05) 0%,transparent 50%),
             radial-gradient(ellipse at 80% 50%,rgba(0,0,0,.08) 0%,transparent 50%);
  pointer-events:none;
}
.cta-in{
  max-width:1360px;margin:0 auto;padding:0 56px;
  position:relative;z-index:1;
}
/* Big stacked layout */
.cta-top{
  border-bottom:1px solid rgba(245,241,234,.1);
  padding-bottom:60px;margin-bottom:60px;
}
.cta-h2{
  font-family:'Syne',sans-serif;
  font-size:clamp(56px,8vw,112px);
  font-weight:800;letter-spacing:-.05em;line-height:.9;
  color:var(--white);
}
.cta-h2 .outline{
  display:block;
  color:transparent;
  -webkit-text-stroke:1.5px rgba(245,241,234,.3);
}
.cta-bottom{
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:40px;
}
.cta-copy{
  font-size:17px;font-weight:300;color:rgba(245,241,234,.8);
  line-height:1.9;max-width:400px;
}
.cta-right{display:flex;flex-direction:column;align-items:flex-end;gap:20px}
.cta-tel{
  font-family:'Syne',sans-serif;font-size:48px;font-weight:800;
  color:var(--white);text-decoration:none;letter-spacing:-.02em;
  line-height:1;transition:opacity .2s;
}
.cta-tel:hover{opacity:.8}
.cta-note{font-family:'Syne',sans-serif;font-size:15px;font-weight:500;letter-spacing:.08em;color:rgba(245,241,234,.5);text-align:right}
.cta-btn{
  font-family:'Syne',sans-serif;font-size:11px;font-weight:700;
  letter-spacing:.18em;text-transform:uppercase;
  text-decoration:none;padding:14px 36px;
  background:var(--white);color:var(--sage);
  border-radius:100px;
  transition:transform .2s,box-shadow .2s;
  display:inline-block;
}
.cta-btn:hover{transform:translateY(-3px);box-shadow:0 20px 48px rgba(0,0,0,.15)}

/* ═══ FOOTER ═══ */
footer{background:var(--forest);padding:80px 0 0}
.ft-in{max-width:1360px;margin:0 auto;padding:0 56px 64px;display:grid;grid-template-columns:1.8fr 1fr 1fr 1fr;gap:48px}
.ft-logo-img{height:24px;width:auto;display:block;margin-bottom:20px;filter:brightness(0) invert(1) sepia(1) hue-rotate(100deg) saturate(1.5);opacity:.45}
.ft-brand p{font-size:12.5px;font-weight:300;color:rgba(245,241,234,.55);line-height:1.9}
.ft-license{margin-top:18px;font-size:11px;font-weight:300;color:rgba(245,241,234,.15);line-height:1.8}
.ft-col h5{font-family:'Syne',sans-serif;font-size:10px;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:rgba(245,241,234,.5);margin-bottom:20px}
.ft-col ul{list-style:none;display:flex;flex-direction:column;gap:12px}
.ft-col ul a{font-size:12.5px;font-weight:300;color:rgba(245,241,234,.65);text-decoration:none;transition:color .2s}
.ft-col ul a:hover{color:rgba(245,241,234,.75)}
.ft-btm{border-top:1px solid rgba(245,241,234,.06);padding:20px 56px;max-width:1360px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}
.ft-btm p{font-family:'Syne',sans-serif;font-size:10px;color:rgba(245,241,234,.18)}
.ft-btm-l{display:flex;gap:20px}
.ft-btm-l a{font-family:'Syne',sans-serif;font-size:10px;color:rgba(245,241,234,.18);text-decoration:none;transition:color .2s}
.ft-btm-l a:hover{color:rgba(245,241,234,.5)}

/* ANIMATIONS */
@keyframes fadeUp{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes cleanDrift{from{transform:translateY(0)}to{transform:translateY(-40px)}}
@keyframes countUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.reveal{opacity:0;transform:translateY(36px);transition:opacity .9s ease,transform .9s ease}
@media(max-width:768px){.wk-layout .reveal{opacity:1;transform:none}}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.1s}
.reveal.d2{transition-delay:.2s}
.reveal.d3{transition-delay:.3s}
.reveal.d4{transition-delay:.4s}

/* RESPONSIVE */
@media(max-width:1100px){
  .sv-top{grid-template-columns:1fr;gap:48px}
  .sv-item{flex-wrap:wrap}
  .sv-tags{min-width:auto;width:100%;border:none}
  .wk-layout{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto}
  .wcard{height:240px}
  .wcard.a,.wcard.d{grid-row:auto;grid-column:auto;height:240px}
  .voice-layout{grid-template-columns:1fr}
  .vcard:nth-child(2),.vcard:nth-child(3){margin-top:0}
  .pm-item{grid-template-columns:80px 1fr}
  .pm-icon{display:none}
  .ft-in{grid-template-columns:1fr 1fr}
  nav,.sv-in,.wk-in,.voice-in,.about-in,.pm-in,.cta-in,.ft-in{padding-left:32px;padding-right:32px}
}
/* ハンバーガーメニュー */
.n-hamburger{
  display:none;
  flex-direction:column;gap:5px;cursor:pointer;
  background:none;border:none;padding:8px;
  -webkit-tap-highlight-color:transparent;
}
.n-hamburger span{
  display:block;width:22px;height:1.5px;
  background:var(--ink);border-radius:2px;
  transition:transform .3s,opacity .3s;
}
body.nav-open .n-hamburger span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
body.nav-open .n-hamburger span:nth-child(2){opacity:0}
body.nav-open .n-hamburger span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
.n-drawer{
  display:none;
  position:fixed;inset:0;z-index:99;
  background:rgba(245,241,234,.97);
  backdrop-filter:blur(16px);
  flex-direction:column;align-items:flex-start;justify-content:center;
  gap:0;
  padding:80px 40px 80px;
  overflow-y:auto;
}
body.nav-open .n-drawer{display:flex}
.n-drawer-section{
  font-family:'Syne',sans-serif;font-size:9px;font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;
  color:var(--sage);padding:14px 0 4px;
  border-top:1px solid var(--line);margin-top:4px;
  width:100%;
}
.n-drawer-section:first-child{border-top:none;margin-top:0;padding-top:0}
.n-drawer a{
  font-family:'Noto Sans JP',sans-serif;font-size:15px;font-weight:500;
  letter-spacing:.04em;
  color:var(--ink);text-decoration:none;
  padding:8px 0;display:block;
}
.n-drawer .n-cta{
  font-family:'Syne',sans-serif;
  font-size:12px;font-weight:700;letter-spacing:.1em;
  padding:13px 40px;
  background:var(--sage);color:var(--white);
  border-radius:100px;margin-top:16px;
}

@media(max-width:640px){
  nav{padding:0 20px}
  .n-links{display:none}
  .n-hamburger{display:flex}
  .hero{padding:80px 24px 60px}
  .hero-stats{flex-direction:row;flex-wrap:nowrap;gap:0}
  .hs-item{padding:0 20px}
  .wk-layout{grid-template-columns:1fr}
  .wcard{height:200px}
  .wcard.a{height:240px}
  .sv-item{flex-direction:column}
  .sv-num,.sv-main,.sv-tags,.sv-arrow{padding:16px 0;border:none}
  .sv-main{padding:0 0 8px}
  .ft-in{grid-template-columns:1fr}
  .ft-btm{padding:16px 20px;flex-direction:column;gap:10px}
  nav,.sv-in,.wk-in,.voice-in,.about-in,.pm-in,.cta-in,.ft-in{padding-left:20px;padding-right:20px}
  .cta-h2{font-size:clamp(44px,12vw,80px)}
  .cta-tel{font-size:36px}
  .cta-top{padding-bottom:48px;margin-bottom:0}
  .cta-bottom{background:var(--forest);margin:0 -20px;padding:48px 20px}
  .cta{padding-bottom:0}
  .cta-note{font-size:16px;text-align:left}
}