/* Lime Works Web Prototype v0.2
   Design synthesis:
   - Airbnb: whitespace + large photography
   - Apple: sharp copy, limited CTA, section rhythm
   - Saka no Nanayo: quiet hospitality slider
   - Goodneighbors/NEXSIA/Unito: challenge → solution → services/process
   - GLOCAL: visual case index
   - SEKAI STAY: concise proof / before-after
   - Minpaku Kanri Bank: one-page conversion, toned down for Lime Works
*/

:root{
  --lime:#A4C639;
  --lime-dark:#71861B;
  --white:#FFFFFF;
  --wood:#967154;
  --sage:#99A891;
  --charcoal:#333333;
  --ink:#1F221F;
  --muted:#666C66;
  --soft:#F4F5F1;
  --soft-2:#ECEFE7;
  --line:#DDE1D8;
  --max:1320px;
  --radius:22px;
  --shadow:0 18px 55px rgba(28,35,23,.08);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--charcoal);
  background:var(--white);
  font-family:"Avenir Next",Avenir,-apple-system,BlinkMacSystemFont,"Helvetica Neue","Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  line-height:1.75;
}
body.menu-open{overflow:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{color:inherit}
.shell{width:min(calc(100% - 64px),var(--max));margin-inline:auto}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;left:10px;top:-60px;z-index:200;background:#fff;padding:10px 14px;border:1px solid var(--line)}
.skip-link:focus{top:10px}

.site-header{
  position:sticky;
  top:0;
  z-index:100;
  background:rgba(255,255,255,.88);
  border-bottom:1px solid rgba(51,51,51,.07);
  backdrop-filter:saturate(140%) blur(18px);
}
.header-inner{height:78px;display:flex;align-items:center;justify-content:space-between;gap:30px}
.brand{display:inline-flex;align-items:center;gap:11px;white-space:nowrap}
.brand-symbol{
  width:31px;height:31px;border:1.7px solid var(--charcoal);border-radius:50%;
  position:relative;display:inline-block;
}
.brand-symbol:after{
  content:"";position:absolute;width:8px;height:13px;background:var(--lime);
  border-radius:11px 11px 2px 11px;right:-3px;top:-5px;transform:rotate(34deg);
}
.brand-wordmark{font-size:18px;letter-spacing:.02em;font-weight:560;color:#1e211e}
.brand-wordmark i{font-style:normal;position:relative}
.brand-wordmark i:after{content:"";position:absolute;left:0;right:0;height:3px;bottom:1px;background:var(--lime)}
.global-nav{display:flex;align-items:center;gap:27px;font-size:13px;font-weight:580}
.global-nav>a:not(.nav-cta){position:relative}
.global-nav>a:not(.nav-cta):after{
  content:"";position:absolute;height:1px;left:0;right:100%;bottom:-7px;background:var(--charcoal);
  transition:right .2s ease;
}
.global-nav>a:not(.nav-cta):hover:after{right:0}
.nav-cta{
  border:1px solid var(--charcoal);border-radius:999px;padding:9px 16px;
  transition:.2s ease;background:#fff;
}
.nav-cta:hover{background:var(--charcoal);color:#fff}
.menu-toggle{display:none;background:transparent;border:0;padding:9px}
.menu-toggle span:not(.sr-only){display:block;width:25px;height:1.5px;background:var(--charcoal);margin:7px 0;transition:.2s ease}

.eyebrow{
  margin:0 0 16px;
  color:var(--lime-dark);
  font-size:11px;
  letter-spacing:.17em;
  font-weight:740;
}
.hero{padding-top:78px}
.hero-copy{max-width:1120px;text-align:center;padding-bottom:54px}
.hero h1{
  margin:0 auto;
  max-width:1000px;
  color:var(--ink);
  font-size:clamp(48px,6.1vw,84px);
  line-height:1.13;
  letter-spacing:-.052em;
  font-weight:620;
}
.hero-lead{max-width:790px;margin:28px auto 0;color:var(--muted);font-size:17px;line-height:1.95}
.hero-actions{display:flex;justify-content:center;gap:12px;margin-top:32px}
.button{
  display:inline-flex;min-height:52px;align-items:center;justify-content:center;
  border-radius:999px;padding:0 25px;font-size:14px;font-weight:700;border:1px solid transparent;
  transition:transform .2s ease,background .2s ease,color .2s ease,border-color .2s ease;
}
.button:hover{transform:translateY(-1px)}
.button-primary{background:var(--lime);color:#263000;border-color:var(--lime)}
.button-primary:hover{background:#95b831}
.button-secondary{background:#fff;color:var(--charcoal);border-color:#BFC5BA}
.button-secondary:hover{border-color:var(--charcoal)}
.button-full{width:100%}
.consult-mini{display:flex;justify-content:center;gap:0;margin-top:23px;color:#7b8079;font-size:11px}
.consult-mini span{padding:0 13px;border-right:1px solid var(--line)}
.consult-mini span:last-child{border-right:0}

.hero-stage{
  position:relative;
  height:min(66vw,780px);
  min-height:560px;
  overflow:hidden;
  background:#ddd;
}
.hero-slide{position:absolute;inset:0;margin:0;opacity:0;transition:opacity 1.15s ease}
.hero-slide.is-active{opacity:1}
.hero-slide img{width:100%;height:100%;object-fit:cover;object-position:center}
.hero-stage:after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,0) 50%,rgba(0,0,0,.23) 100%);
  pointer-events:none;
}
.hero-stage-ui{
  position:absolute;right:28px;bottom:25px;z-index:5;
  display:flex;align-items:center;gap:10px;
  background:rgba(255,255,255,.88);backdrop-filter:blur(12px);
  padding:7px 8px 7px 12px;border-radius:999px;
}
.slider-dots{display:flex;gap:8px}
.dot{width:7px;height:7px;border-radius:50%;border:0;background:#B6B9B3;padding:0}
.dot.is-active{background:var(--charcoal)}
.slider-toggle{width:28px;height:28px;border-radius:50%;border:0;background:transparent;font-size:11px}
.hero-stage-label{
  position:absolute;left:max(32px,calc((100% - var(--max))/2 + 32px));bottom:30px;z-index:4;
  color:#fff;margin:0;font-size:17px;font-weight:610;letter-spacing:.01em;
}
.hero-stage-label span{display:block;font-size:11px;font-weight:450;margin-top:2px;opacity:.88}

.section{padding:118px 0}
.section-compact{padding:58px 0 64px}
.section-intro{max-width:760px;margin-bottom:54px}
.section-intro-inline{max-width:none;display:grid;grid-template-columns:1fr .8fr;align-items:end;gap:90px}
.section-intro h2,
.story h2,
.about-rep h2,
.recruit h2,
.contact h2{
  margin:0;
  color:var(--ink);
  font-size:clamp(37px,4.5vw,61px);
  line-height:1.25;
  letter-spacing:-.038em;
  font-weight:610;
}
.section-intro>p:not(.eyebrow){margin:22px 0 0;color:var(--muted);font-size:16px}
.section-intro-copy{margin:0!important;max-width:520px;color:var(--muted);font-size:15px}

.proof{border-bottom:1px solid var(--line);background:#fff}
.proof .section-intro-inline{margin-bottom:34px}
.proof .section-intro h2{font-size:clamp(29px,3vw,42px)}
.proof-grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.proof-item{padding:27px 26px;border-right:1px solid var(--line)}
.proof-item:last-child{border-right:0}
.proof-item strong{display:block;color:var(--ink);font-size:22px;letter-spacing:-.02em}
.proof-item span{display:block;font-size:12px;color:#81857f;margin-top:5px}
.proof-note,.legal-note,.case-note{margin:18px 0 0;color:#898e87;font-size:11px}

.problems{background:var(--soft)}
.problem-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.problem-grid article{
  background:#fff;border:1px solid var(--line);border-radius:16px;min-height:102px;
  padding:22px 24px;display:grid;grid-template-columns:40px 1fr;gap:8px;align-items:start;
}
.problem-grid span{font-size:10px;color:var(--lime-dark);font-weight:750;padding-top:4px}
.problem-grid p{margin:0;font-size:15px;font-weight:570;line-height:1.65}
.solution-bridge{
  margin-top:36px;border-top:1px solid #CCD1C7;padding-top:31px;
  display:grid;grid-template-columns:150px .8fr 1.2fr auto;gap:24px;align-items:center;
}
.solution-bridge-kicker{margin:0;font-size:10px;letter-spacing:.13em;color:#7B8179;font-weight:750}
.solution-bridge-title{margin:0;font-size:23px;font-weight:700;color:var(--ink)}
.solution-bridge>span{color:var(--muted);font-size:14px}
.solution-bridge>a{font-size:13px;font-weight:700;white-space:nowrap}
.solution-bridge b{font-size:18px;margin-left:6px}

.services{background:#fff}
.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.service-card{
  min-height:310px;background:var(--soft);border-radius:var(--radius);padding:30px;
  display:grid;grid-template-rows:auto 1fr auto;transition:transform .25s ease,box-shadow .25s ease;
}
.service-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.service-no{margin:0;color:var(--lime-dark);font-size:12px;font-weight:750;letter-spacing:.12em}
.service-card h3{font-size:30px;line-height:1.32;letter-spacing:-.028em;margin:25px 0 13px;color:var(--ink)}
.service-card p{margin:0;color:var(--muted);max-width:520px;font-size:14px}
.service-card>a{align-self:end;margin-top:34px;border-top:1px solid #CDD2C8;padding-top:17px;font-weight:700;font-size:13px}
.service-card>a span{float:right}

.why{background:var(--charcoal);color:#fff}
.why .eyebrow{color:#C7D98B}
.why .section-intro h2{color:#fff}
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.why-grid article{border-top:1px solid rgba(255,255,255,.25);padding-top:20px}
.why-grid span{color:#C7D98B;font-size:11px}
.why-grid h3{font-size:22px;margin:22px 0 11px;letter-spacing:-.02em}
.why-grid p{margin:0;color:#D4D7D2;font-size:13px;line-height:1.8}

.process{background:#fff}
.process-flow{
  list-style:none;padding:0;margin:0;
  display:grid;grid-template-columns:repeat(5,1fr);gap:0;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.process-flow li{padding:27px 22px 30px;border-right:1px solid var(--line);position:relative}
.process-flow li:last-child{border-right:0}
.process-flow li:not(:last-child):after{
  content:"→";position:absolute;right:-8px;top:50%;z-index:2;
  background:#fff;color:#ADB2AA;padding:0 2px;transform:translateY(-50%);
}
.process-flow span{display:block;color:#90958E;font-size:10px}
.process-flow b{display:block;color:var(--lime-dark);font-size:11px;margin-top:28px}
.process-flow strong{display:block;color:var(--ink);font-size:19px;margin-top:5px}
.process-flow p{font-size:12px;color:#80857E;margin:4px 0 0}
.tagline{font-size:29px;font-weight:650;color:var(--ink);margin:55px 0 0;letter-spacing:-.02em}
.tagline span{display:block;color:#888D86;font-size:12px;font-weight:450;margin-top:2px}

.cases{background:var(--soft)}
.case-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.case-card{
  overflow:hidden;background:#fff;border-radius:var(--radius);border:1px solid var(--line);
}
.case-card-wide{grid-row:span 2}
.case-image{display:block;position:relative;overflow:hidden;background:#ddd}
.case-card-wide .case-image{height:510px}
.case-card:not(.case-card-wide) .case-image{height:260px}
.case-image img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.case-card:hover .case-image img{transform:scale(1.018)}
.image-note{
  position:absolute;right:12px;bottom:12px;background:rgba(255,255,255,.84);backdrop-filter:blur(8px);
  padding:5px 8px;border-radius:999px;font-size:9px;color:#737871;
}
.case-copy{padding:25px 27px 28px}
.case-type{margin:0;color:var(--lime-dark);font-size:10px;letter-spacing:.12em;font-weight:750}
.case-copy h3{font-size:27px;line-height:1.38;letter-spacing:-.03em;color:var(--ink);margin:13px 0}
.case-copy>p:not(.case-type){margin:0;color:var(--muted);font-size:13px}
.case-copy>a{display:block;border-top:1px solid var(--line);padding-top:15px;margin-top:24px;font-size:12px;font-weight:700}
.case-copy>a span{float:right}

.case-detail-stack{display:grid;gap:14px;margin-top:56px}
.case-detail{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:34px;
  display:grid;grid-template-columns:70px .78fr 1.5fr;gap:34px;align-items:start;
}
.case-detail-no{margin:0;color:#A0A49D;font-size:12px}
.case-detail-heading>p{margin:0;color:var(--lime-dark);font-size:10px;letter-spacing:.12em;font-weight:750}
.case-detail-heading h3{font-size:25px;line-height:1.45;margin:11px 0 0;color:var(--ink)}
.case-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px 28px;margin:0}
.case-detail-grid div{border-top:1px solid var(--line);padding-top:11px}
.case-detail-grid dt{font-size:10px;color:var(--lime-dark);font-weight:750;letter-spacing:.06em}
.case-detail-grid dd{margin:5px 0 0;font-size:12px;color:#676C66;line-height:1.75}

.voices{background:#fff}
.voice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.voice-grid article{border:1px solid var(--line);border-radius:var(--radius);padding:28px;min-height:285px;display:flex;flex-direction:column}
.voice-tag{font-size:10px;letter-spacing:.12em;color:var(--lime-dark);font-weight:750;margin:0}
blockquote{font-size:18px;line-height:1.85;letter-spacing:-.01em;margin:28px 0;color:var(--ink);font-weight:570}
.voice-meta{font-size:11px;color:#8B9089;margin:auto 0 0}

.story{background:#F7F5F0}
.story-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px}
.story-copy{max-width:720px;font-size:17px;color:#5F645E}
.story-copy>p{margin-top:0;margin-bottom:25px}
.story-divider{height:1px;background:#D8D7D0;margin:36px 0}
.story-copy strong{color:var(--ink)}
.story-promise{font-size:26px!important;color:var(--ink)!important;font-weight:650;letter-spacing:-.02em;margin-top:40px!important}
.story-promise span{display:block;font-size:12px;color:#81867F;font-weight:450;margin-top:3px}

.about-rep{background:#fff}
.rep-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px}
.rep-grid>div:last-child{font-size:16px;color:#626761}
.rep-grid>div:last-child p{margin-top:0;margin-bottom:19px}
.rep-name{font-size:20px;font-weight:700;color:var(--ink)!important}
.expertise{display:flex;flex-wrap:wrap;gap:8px;margin:28px 0 33px}
.expertise span{border:1px solid #D2D6CE;border-radius:999px;padding:7px 11px;background:#fff;font-size:11px}
.text-link{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:13px;border-bottom:1px solid #BFC4BA;padding-bottom:3px}

.recruit{background:var(--soft)}
.recruit-box{
  background:#fff;border:1px solid var(--line);border-radius:30px;padding:48px;
  display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:end;
}
.recruit h2{font-size:clamp(34px,4vw,52px)}
.recruit-box>div:last-child p{color:var(--muted);margin:0 0 25px}

.faq{background:#fff}
.faq-list{border-top:1px solid var(--line)}
details{border-bottom:1px solid var(--line);padding:0}
summary{
  cursor:pointer;list-style:none;padding:22px 2px;
  font-size:16px;font-weight:650;display:flex;justify-content:space-between;gap:24px;
}
summary::-webkit-details-marker{display:none}
summary:after{content:"＋";font-weight:400;color:#7E837D}
details[open] summary:after{content:"−"}
details p{margin:0 0 24px;max-width:850px;color:var(--muted);font-size:14px}

.contact{background:#2A2E2A;color:#fff}
.contact .eyebrow{color:#C6D88A}
.contact h2{color:#fff}
.contact-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:90px;align-items:start}
.contact-copy>p:not(.eyebrow){color:#D1D4CF;font-size:15px;max-width:540px}
.contact-facts{margin-top:40px;border-top:1px solid rgba(255,255,255,.2)}
.contact-facts div{display:grid;grid-template-columns:110px 1fr;border-bottom:1px solid rgba(255,255,255,.2);padding:14px 0}
.contact-facts strong{font-size:11px;color:#AEB3AC}
.contact-facts span{font-size:13px}
.contact-caution{font-size:11px!important;color:#999F98!important}
.contact-form{background:#fff;color:var(--charcoal);border-radius:26px;padding:30px}
.contact-form>label,.form-row label{display:block;font-size:12px;font-weight:700;margin-bottom:17px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.contact-form em,.contact-form label>span{font-style:normal;font-weight:600;font-size:9px;margin-left:5px}
.contact-form em{color:#6F831C}
.contact-form label>span{color:#969A94}
.contact-form input,.contact-form select,.contact-form textarea{
  width:100%;margin-top:7px;border:1px solid #D7DBD2;border-radius:11px;background:#fff;
  color:var(--charcoal);padding:13px 13px;outline:none;
}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-color:#9AAD55;box-shadow:0 0 0 3px rgba(164,198,57,.13)}
.contact-form textarea{resize:vertical}
.consent{display:flex!important;gap:8px;align-items:flex-start!important;font-weight:450!important}
.consent input{width:auto!important;margin-top:5px!important}
.consent span{font-size:11px!important;color:#666C66!important;margin:0!important}
.form-note{text-align:center;font-size:10px;color:#90958E;margin:11px 0 0}
.form-message{font-size:11px;text-align:center;margin:8px 0 0;color:#65751D}

.site-footer{background:#1F221F;color:#E6E8E3;padding:65px 0 25px}
.footer-main{display:grid;grid-template-columns:.7fr 1.3fr;gap:80px}
.footer-brand .brand-symbol{border-color:#fff}
.footer-brand .brand-wordmark{color:#fff}
.footer-main>div:first-child p{font-size:12px;color:#A9AEA7}
.footer-links{display:grid;grid-template-columns:repeat(3,1fr);gap:35px}
.footer-links div{display:flex;flex-direction:column;gap:9px;font-size:12px}
.footer-links strong{font-size:10px;letter-spacing:.11em;color:#8E948D;margin-bottom:5px}
.footer-links span,.footer-links a{color:#D0D3CD}
.footer-links a:hover{color:#fff}
.footer-bottom{border-top:1px solid #393D38;margin-top:46px;padding-top:20px;display:flex;justify-content:space-between;color:#767C75;font-size:10px}

.mobile-consult{display:none}

@media(max-width:1020px){
  .shell{width:min(calc(100% - 42px),var(--max))}
  .global-nav{display:none;position:fixed;left:0;right:0;top:78px;height:calc(100dvh - 78px);background:#fff;padding:34px 22px;flex-direction:column;align-items:stretch;gap:0}
  .global-nav.open{display:flex}
  .global-nav a{padding:17px 4px;border-bottom:1px solid var(--line);font-size:16px}
  .global-nav .nav-cta{margin-top:24px;text-align:center;border:0;background:var(--lime);border-radius:999px;padding:13px}
  .menu-toggle{display:block}
  .menu-toggle.active span:nth-of-type(2){transform:translateY(4.25px) rotate(45deg)}
  .menu-toggle.active span:nth-of-type(3){transform:translateY(-4.25px) rotate(-45deg)}
  .section-intro-inline{grid-template-columns:1fr;gap:22px}
  .proof-grid{grid-template-columns:repeat(2,1fr)}
  .proof-item:nth-child(2){border-right:0}
  .proof-item:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .solution-bridge{grid-template-columns:1fr 1fr}
  .solution-bridge>a{justify-self:start}
  .why-grid{grid-template-columns:repeat(2,1fr);gap:36px}
  .process-flow{grid-template-columns:1fr}
  .process-flow li{border-right:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:48px 120px 1fr 1fr;align-items:center;gap:15px;padding:20px 8px}
  .process-flow li:last-child{border-bottom:0}
  .process-flow li:not(:last-child):after{content:"↓";right:auto;left:20px;top:auto;bottom:-13px;transform:none}
  .process-flow b{margin:0}
  .process-flow p{margin:0}
  .case-detail{grid-template-columns:45px 1fr}
  .case-detail-grid{grid-column:2}
  .story-grid,.rep-grid,.contact-grid{grid-template-columns:1fr;gap:52px}
  .recruit-box{grid-template-columns:1fr;gap:30px}
}

@media(max-width:700px){
  .shell{width:min(calc(100% - 28px),var(--max))}
  .site-header{backdrop-filter:blur(14px)}
  .header-inner{height:68px}
  .brand-wordmark{font-size:16px}
  .brand-symbol{width:28px;height:28px}
  .global-nav{top:68px;height:calc(100dvh - 68px)}
  .hero{padding-top:44px}
  .hero-copy{text-align:left;padding-bottom:34px}
  .hero h1{font-size:42px;line-height:1.14}
  .hero-lead{font-size:14px;line-height:1.85;margin-top:21px}
  .desktop{display:none}
  .hero-actions{justify-content:flex-start;display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:25px}
  .button{min-height:48px;padding:0 15px;font-size:12px}
  .consult-mini{justify-content:flex-start;flex-wrap:wrap;gap:4px 0;margin-top:17px}
  .consult-mini span{font-size:9px;padding:0 8px}
  .consult-mini span:first-child{padding-left:0}
  .hero-stage{height:56vh;min-height:430px}
  .hero-slide img{object-position:64% center}
  .hero-stage-ui{right:14px;bottom:14px}
  .hero-stage-label{left:16px;bottom:18px;font-size:13px;max-width:210px}
  .hero-stage-label span{font-size:9px}
  .section{padding:78px 0}
  .section-compact{padding:43px 0 49px}
  .section-intro{margin-bottom:36px}
  .section-intro h2,.story h2,.about-rep h2,.recruit h2,.contact h2{font-size:36px}
  .section-intro>p:not(.eyebrow),.section-intro-copy{font-size:13px}
  .proof .section-intro h2{font-size:29px}
  .proof-grid{grid-template-columns:1fr 1fr}
  .proof-item{padding:20px 15px}
  .proof-item strong{font-size:17px}
  .proof-item span{font-size:10px}
  .problem-grid{grid-template-columns:1fr}
  .problem-grid article{min-height:auto;padding:18px}
  .problem-grid p{font-size:13px}
  .solution-bridge{grid-template-columns:1fr;gap:8px}
  .solution-bridge-title{font-size:20px}
  .solution-bridge>span{font-size:12px}
  .service-grid{grid-template-columns:1fr}
  .service-card{min-height:260px;padding:23px}
  .service-card h3{font-size:25px}
  .why-grid{grid-template-columns:1fr}
  .why-grid h3{font-size:20px}
  .process-flow li{grid-template-columns:38px 90px 1fr;gap:9px}
  .process-flow p{display:none}
  .process-flow strong{font-size:15px}
  .tagline{font-size:23px}
  .case-grid{grid-template-columns:1fr}
  .case-card-wide{grid-row:auto}
  .case-card-wide .case-image,.case-card:not(.case-card-wide) .case-image{height:300px}
  .case-copy h3{font-size:23px}
  .case-detail{grid-template-columns:1fr;padding:24px;gap:14px}
  .case-detail-no{font-size:10px}
  .case-detail-grid{grid-column:auto;grid-template-columns:1fr}
  .voice-grid{grid-template-columns:1fr}
  .voice-grid article{min-height:auto}
  .story-grid{grid-template-columns:1fr;gap:34px}
  .story-copy{font-size:15px}
  .rep-grid{grid-template-columns:1fr;gap:34px}
  .recruit-box{padding:27px;border-radius:20px}
  summary{font-size:14px;padding:18px 0}
  details p{font-size:12px}
  .contact-form{padding:20px;border-radius:18px}
  .form-row{grid-template-columns:1fr}
  .contact-facts div{grid-template-columns:80px 1fr}
  .footer-main{grid-template-columns:1fr;gap:35px}
  .footer-links{grid-template-columns:1fr 1fr;gap:30px}
  .footer-links div:last-child{grid-column:1/-1}
  .footer-bottom{padding-bottom:58px}
  .mobile-consult{
    display:block;position:fixed;z-index:90;left:12px;right:12px;bottom:10px;
    filter:drop-shadow(0 8px 20px rgba(0,0,0,.18));
  }
  .mobile-consult a{
    display:flex;justify-content:center;align-items:center;height:48px;border-radius:999px;
    background:var(--lime);color:#263000;font-size:12px;font-weight:750;
  }
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

.reveal{opacity:0;transform:translateY(16px);transition:opacity .65s ease,transform .65s ease}
.reveal.is-visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}


/* ================================================================
   v0.3 refinements
   ================================================================ */
.brand-image img{
  display:block;
  width:190px;
  max-height:38px;
  object-fit:contain;
  object-position:left center;
}
.language-switch{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:11px;
  border-left:1px solid var(--line);
  padding-left:16px;
}
.language-switch .lang-current{
  color:var(--ink);
  font-weight:760;
}
.language-switch a{
  color:#838881;
  padding:0!important;
  border:0!important;
}
.language-switch a:after{display:none!important}

.hero-v3{padding-top:0}
.hero-v3 .hero-stage{
  height:calc(100dvh - 78px);
  min-height:650px;
  max-height:900px;
}
.hero-v3 .hero-slide img{
  object-position:center;
  filter:saturate(.92) contrast(.97);
}
.hero-v3 .hero-stage:after{
  background:linear-gradient(90deg,rgba(20,24,18,.28) 0%,rgba(20,24,18,.12) 38%,rgba(20,24,18,0) 72%),
             linear-gradient(180deg,rgba(0,0,0,0) 65%,rgba(0,0,0,.18) 100%);
}
.hero-v3-overlay{
  position:absolute;
  inset:0;
  z-index:4;
  display:flex;
  align-items:flex-end;
  padding-bottom:74px;
}
.hero-v3-panel{
  width:min(610px,53vw);
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(18px);
  border-radius:24px;
  padding:34px 38px 36px;
  box-shadow:0 18px 55px rgba(20,25,18,.12);
}
.hero-v3-panel .eyebrow{margin-bottom:12px}
.hero-v3 h1{
  margin:0;
  font-size:clamp(40px,4.8vw,68px);
  line-height:1.13;
  letter-spacing:-.05em;
  font-weight:640;
  text-align:left;
}
.hero-v3 h1 span{display:block;white-space:nowrap}
.hero-v3-lead{
  margin:18px 0 0;
  color:#666b64;
  font-size:15px;
}
.hero-v3 .hero-actions{
  justify-content:flex-start;
  margin-top:25px;
}
.hero-v3 .hero-stage-ui{
  right:28px;
  bottom:26px;
}
.hero-after{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  min-height:78px;
  border-bottom:1px solid var(--line);
}
.hero-after p{margin:0}
.hero-after strong{font-size:13px;color:var(--ink)}
.hero-after span{display:block;font-size:10px;color:#7c817a}
.hero-after p:last-child{
  text-align:right;
  font-size:11px;
  color:#636861;
}
.hero-after small{display:block;color:#969b94;margin-top:2px}

.problems-layout{
  display:grid;
  grid-template-columns:.78fr 1.22fr;
  gap:70px;
  align-items:start;
}
.problem-heading{margin-bottom:32px}
.problem-visual{
  position:sticky;
  top:112px;
  min-height:570px;
  border-radius:30px;
  background:#E9EDE3;
  color:#7B8B44;
  overflow:hidden;
  display:flex;
  align-items:flex-end;
  justify-content:center;
}
.problem-visual svg{
  width:92%;
  margin-bottom:12px;
  opacity:.85;
}
.problem-visual-copy{
  position:absolute;
  left:30px;
  top:30px;
  right:30px;
}
.problem-visual-copy>span{
  display:block;
  font-size:48px;
  line-height:1;
  font-weight:300;
  color:#95A85A;
}
.problem-visual-copy strong{
  display:block;
  color:var(--ink);
  font-size:27px;
  letter-spacing:-.03em;
  margin-top:14px;
}
.problem-visual-copy small{
  display:block;
  color:#727871;
  margin-top:7px;
  font-size:12px;
}

.process-flow-icons li{
  padding-top:24px;
}
.step-icon{
  width:44px;
  height:44px;
  border-radius:14px;
  background:#EEF2E3;
  color:#71861B;
  display:grid;
  place-items:center;
  margin-bottom:23px;
}
.step-icon svg{
  width:25px;
  height:25px;
  fill:none;
  stroke:currentColor;
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.process-flow-icons span{margin-top:0}
.process-flow-icons strong{margin-top:8px}

.voice-grid-v3 article{
  min-height:340px;
}
.voice-person{
  display:flex;
  align-items:center;
  gap:13px;
}
.voice-avatar{
  width:48px;
  height:48px;
  border-radius:50%;
  background:#EFF3E2;
  color:#65771E;
  display:grid;
  place-items:center;
  font-weight:760;
  font-size:13px;
}
.voice-person strong{
  display:block;
  color:var(--ink);
  font-size:14px;
}
.voice-person span{
  display:block;
  color:#888D86;
  font-size:10px;
  margin-top:2px;
}

.story-v3{background:#F7F5F0}
.story-v3-grid{
  display:grid;
  grid-template-columns:.86fr 1.14fr;
  gap:78px;
  align-items:center;
}
.story-photo{
  border-radius:30px;
  overflow:hidden;
  background:#ddd;
}
.story-photo img{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
}
.story-v3 .story-copy h2{
  margin:0 0 31px;
  color:var(--ink);
  font-size:clamp(38px,4.4vw,59px);
  line-height:1.28;
  letter-spacing:-.04em;
  font-weight:610;
}

@media(max-width:1020px){
  .brand-image img{width:170px}
  .language-switch{border-left:0;padding:18px 4px 0}
  .hero-v3 .hero-stage{
    min-height:650px;
    height:78vh;
  }
  .hero-v3-panel{
    width:min(660px,70vw);
  }
  .problems-layout{
    grid-template-columns:1fr;
    gap:38px;
  }
  .problem-visual{
    position:relative;
    top:auto;
    min-height:380px;
  }
  .story-v3-grid{
    grid-template-columns:1fr 1fr;
    gap:50px;
  }
}

@media(max-width:700px){
  .brand-image img{width:150px;max-height:32px}
  .hero-v3 .hero-stage{
    height:74vh;
    min-height:570px;
  }
  .hero-v3-overlay{
    align-items:flex-end;
    padding:0 0 18px;
  }
  .hero-v3-panel{
    width:100%;
    border-radius:20px;
    padding:23px 21px 24px;
  }
  .hero-v3 h1{
    font-size:37px;
    line-height:1.16;
  }
  .hero-v3 h1 span{white-space:normal}
  .hero-v3-lead{
    font-size:12px;
    margin-top:12px;
  }
  .hero-v3 .hero-actions{
    grid-template-columns:1fr 1fr;
    margin-top:19px;
  }
  .hero-v3 .hero-stage-ui{
    top:14px;
    bottom:auto;
    right:14px;
  }
  .hero-after{
    min-height:auto;
    padding:17px 0;
    align-items:flex-start;
    flex-direction:column;
    gap:6px;
  }
  .hero-after p:last-child{text-align:left}
  .problem-visual{
    min-height:300px;
    border-radius:22px;
  }
  .problem-visual-copy{
    left:22px;top:22px;right:22px;
  }
  .problem-visual-copy>span{font-size:36px}
  .problem-visual-copy strong{font-size:22px}
  .process-flow-icons li{
    grid-template-columns:46px 32px 1fr;
    padding:17px 8px;
  }
  .step-icon{
    width:38px;height:38px;border-radius:12px;margin:0;
  }
  .step-icon svg{width:22px;height:22px}
  .story-v3-grid{
    grid-template-columns:1fr;
    gap:31px;
  }
  .story-photo img{aspect-ratio:1/1}
  .story-v3 .story-copy h2{font-size:35px}
}


/* ============================================================
   v0.4 — real-photo hero + verified proof + field note
   ============================================================ */
.hero-v4{padding-top:0}
.hero-v4-stage{
  position:relative;
  min-height:720px;
  height:calc(100dvh - 78px);
  max-height:940px;
  overflow:hidden;
  background:#deded8;
}
.hero-v4-stage>img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;filter:saturate(.94) contrast(.98)}
.hero-v4-shade{
  position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(18,21,16,.38) 0%,rgba(18,21,16,.18) 34%,rgba(18,21,16,.02) 64%,rgba(18,21,16,0) 100%),
             linear-gradient(180deg,rgba(0,0,0,.02) 0%,rgba(0,0,0,.02) 72%,rgba(0,0,0,.18) 100%);
}
.hero-v4-overlay{position:absolute;inset:0;display:flex;align-items:flex-end;padding-bottom:74px;z-index:2}
.hero-v4-panel{
  width:min(630px,56vw);
  background:rgba(255,255,255,.95);
  backdrop-filter:blur(14px);
  border-radius:24px;
  padding:34px 38px 36px;
  box-shadow:0 18px 55px rgba(20,25,18,.12);
}
.hero-v4-panel .eyebrow{margin-bottom:12px}
.hero-v4 h1{margin:0;color:var(--ink);font-size:clamp(44px,5vw,72px);line-height:1.12;letter-spacing:-.052em;font-weight:640}
.hero-v4-lead{margin:18px 0 0;color:#62675f;font-size:15px;line-height:1.7}
.hero-v4 .hero-actions{justify-content:flex-start;margin-top:25px}
.hero-photo-caption{position:absolute;right:0;bottom:30px;margin:0;color:#fff;font-size:10px;letter-spacing:.05em;text-shadow:0 1px 10px rgba(0,0,0,.35)}

.proof-v4{padding-top:78px;padding-bottom:82px;background:#fff}
.proof-v4-head{align-items:start;margin-bottom:34px}
.proof-grid-v4{grid-template-columns:repeat(4,minmax(0,1fr))}
.proof-item-v4{min-height:260px;display:flex;flex-direction:column;padding:27px 24px 24px}
.proof-label{margin:0 0 22px!important;font-size:10px!important;letter-spacing:.12em!important;text-transform:uppercase;color:#7a8077!important;font-weight:760}
.proof-number{margin:0!important;color:var(--ink)!important;font-size:54px!important;line-height:1!important;letter-spacing:-.055em!important;font-weight:650}
.proof-number span{display:inline!important;margin-left:7px!important;color:#697067!important;font-size:13px!important;letter-spacing:0!important;font-weight:650!important}
.proof-number-dual{display:flex;align-items:baseline;gap:5px;flex-wrap:wrap}
.proof-number-dual i{font-style:normal;color:#a7ada3;font-size:24px;font-weight:400;margin:0 2px}
.proof-item-v4 strong{font-size:15px;line-height:1.45;margin-top:18px}
.proof-item-v4 small{display:block;margin-top:auto;padding-top:17px;border-top:1px solid var(--line);color:#7f857d;font-size:10px;line-height:1.7}

.field-note{background:#232722;color:#fff;padding-top:96px;padding-bottom:98px}
.field-note-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:90px;align-items:start}
.field-note .eyebrow{color:#C7D98B}
.field-note h2{margin:0;color:#fff;font-size:clamp(38px,4.5vw,61px);line-height:1.25;letter-spacing:-.038em;font-weight:610}
.field-note-copy{border-top:1px solid rgba(255,255,255,.25);padding-top:26px}
.field-note-copy p{margin:0 0 20px;color:rgba(255,255,255,.76);font-size:16px;line-height:1.9}
.field-note-sign{margin-top:34px!important;padding-top:24px;border-top:1px solid rgba(255,255,255,.16);color:#fff!important;font-weight:700;letter-spacing:.01em}
.field-note-sign span{display:block;margin-top:4px;color:#C7D98B;font-size:11px;font-weight:600}

@media(max-width:1020px){
  .hero-v4-stage{height:78vh;min-height:650px}
  .hero-v4-panel{width:min(660px,72vw)}
  .proof-grid-v4{grid-template-columns:repeat(2,1fr)}
  .proof-item-v4:nth-child(2){border-right:0}
  .proof-item-v4:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .field-note-grid{grid-template-columns:1fr;gap:42px}
}
@media(max-width:700px){
  .hero-v4-stage{height:72vh;min-height:570px}
  .hero-v4-overlay{padding-bottom:18px}
  .hero-v4-panel{width:100%;border-radius:20px;padding:23px 21px 24px}
  .hero-v4 h1{font-size:37px;line-height:1.16}
  .hero-v4-lead{font-size:12px;margin-top:12px}
  .hero-v4 .hero-actions{display:grid;grid-template-columns:1fr 1fr;margin-top:19px}
  .hero-photo-caption{display:none}
  .proof-v4{padding-top:58px;padding-bottom:60px}
  .proof-v4-head{grid-template-columns:1fr;gap:18px}
  .proof-v4 .section-intro h2{font-size:31px}
  .proof-grid-v4{grid-template-columns:1fr 1fr}
  .proof-item-v4{min-height:230px;padding:19px 14px}
  .proof-number{font-size:38px!important}
  .proof-number span{font-size:10px!important;margin-left:4px!important}
  .proof-item-v4 strong{font-size:12px}
  .proof-item-v4 small{font-size:9px}
  .field-note{padding-top:68px;padding-bottom:70px}
  .field-note h2{font-size:34px}
  .field-note-copy p{font-size:14px}
}


/* ============================================================
   v0.5 — line-break refinement + real-photo problem visual
   ============================================================ */

/* ① Hero: lock the intended two-line headline on tablet/desktop. */
.hero-v4-panel{
  width:min(760px,66vw);
}
.hero-v4 h1{
  font-size:clamp(42px,4.35vw,62px);
  line-height:1.13;
}
.hero-title-line{
  display:block;
  white-space:nowrap;
}

/* ② Problem visual: remove decorative "?" and use a real operational photo. */
.problem-visual-photo{
  min-height:570px;
  background:#DCE2D4;
  align-items:stretch;
}
.problem-visual-photo>img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:42% center;
  filter:saturate(.82) brightness(.88);
}
.problem-visual-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,rgba(20,24,18,.08),rgba(20,24,18,.48)),
    linear-gradient(90deg,rgba(27,31,24,.36),rgba(27,31,24,.03));
}
.problem-visual-photo .problem-visual-copy{
  top:auto;
  bottom:34px;
  z-index:2;
  color:#fff;
}
.problem-visual-photo .problem-visual-label{
  display:block;
  margin-bottom:12px;
  color:#DDE8B8;
  font-size:11px;
  font-weight:700;
  letter-spacing:.08em;
}
.problem-visual-photo .problem-visual-copy strong{
  color:#fff;
  font-size:32px;
  line-height:1.35;
  margin:0;
  text-shadow:0 2px 16px rgba(0,0,0,.22);
}
.problem-visual-photo .problem-visual-copy span{
  display:block;
  margin-top:10px;
  color:rgba(255,255,255,.82);
  font-size:12px;
  line-height:1.7;
}

/* ③ Field note: intentional line composition and slightly wider heading. */
.field-note-grid{
  grid-template-columns:1fr 1.05fr;
  gap:72px;
}
.field-note h2{
  font-size:clamp(36px,3.8vw,54px);
  line-height:1.28;
}
.field-note h2 span{
  display:block;
  white-space:nowrap;
}

/* ④ Why section: controlled two-line heading + a real-photo accent. */
.why-heading-layout{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);
  gap:64px;
  align-items:end;
  margin-bottom:56px;
}
.why-heading-layout .section-intro{
  margin-bottom:0;
}
.why-heading-layout h2 span{
  display:block;
  white-space:nowrap;
}
.why-photo{
  overflow:hidden;
  border-radius:22px;
  min-height:210px;
  max-height:250px;
}
.why-photo img{
  width:100%;
  height:100%;
  min-height:210px;
  object-fit:cover;
  object-position:center 58%;
  filter:saturate(.8) brightness(.86);
}

/* ⑤ Larger process icons. */
.step-icon{
  width:62px;
  height:62px;
  border-radius:18px;
  margin-bottom:24px;
}
.step-icon svg{
  width:34px;
  height:34px;
  stroke-width:2;
}

/* ⑥ Footer official logo. */
.footer-brand-image{
  display:inline-flex;
  align-items:center;
  width:auto;
}
.footer-brand-image img{
  display:block;
  width:210px;
  max-height:44px;
  object-fit:contain;
  object-position:left center;
}

@media(max-width:1180px){
  .hero-v4-panel{width:min(720px,70vw)}
  .hero-v4 h1{font-size:52px}
  .field-note h2{font-size:44px}
  .why-heading-layout{grid-template-columns:1.1fr .9fr;gap:42px}
  .why-heading-layout h2{font-size:48px}
}

@media(max-width:1020px){
  .hero-v4-panel{width:min(720px,78vw)}
  .field-note-grid{grid-template-columns:1fr;gap:34px}
  .field-note h2{max-width:880px}
  .why-heading-layout{grid-template-columns:1fr;gap:28px}
  .why-photo{max-height:220px}
}

@media(max-width:700px){
  .hero-v4-panel{width:100%}
  .hero-v4 h1{font-size:35px}
  .hero-title-line{white-space:normal}
  .problem-visual-photo{min-height:330px}
  .problem-visual-photo .problem-visual-copy strong{font-size:26px}
  .field-note h2{font-size:32px}
  .field-note h2 span{white-space:normal}
  .why-heading-layout h2 span{white-space:normal}
  .why-photo{min-height:180px}
  .why-photo img{min-height:180px}
  .step-icon{
    width:48px;
    height:48px;
    border-radius:14px;
    margin:0;
  }
  .step-icon svg{width:27px;height:27px}
  .footer-brand-image img{width:190px}
}


/* v0.6 — English hero + contact backend readiness */
.hero-title-en{
  font-size:clamp(40px,4vw,58px) !important;
  line-height:1.12 !important;
  letter-spacing:-0.035em;
}
.hero-title-en .hero-title-line{
  display:block;
  white-space:nowrap;
}
.hp-field{
  position:absolute !important;
  left:-9999px !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
}
.contact-form button[disabled]{
  opacity:.65;
  cursor:wait;
}
@media(max-width:1020px){
  .hero-title-en{
    font-size:clamp(38px,4.6vw,52px) !important;
  }
}
@media(max-width:760px){
  .hero-title-en{
    font-size:36px !important;
  }
  .hero-title-en .hero-title-line{
    white-space:normal;
  }
}


/* ============================================================
   v0.7 — production-safe structure + richer human photography
   Brand direction: Fresh / Warm / Timeless, People first.
   ============================================================ */

/* English hero: keep copy compact on iPad/desktop and allow safe wrapping. */
.hero-title-en{
  font-size:clamp(38px,3.55vw,54px) !important;
  line-height:1.1 !important;
  letter-spacing:-0.038em;
  max-width:100%;
  overflow-wrap:normal;
  word-break:normal;
}
.hero-title-en .hero-title-line{display:block;white-space:nowrap}

/* Field note gets a real working-scene visual instead of text-only treatment. */
.field-note-grid{
  grid-template-columns:minmax(0,.8fr) minmax(260px,.82fr) minmax(0,1.08fr);
  gap:42px;
  align-items:start;
}
.field-note-photo{
  position:relative;
  min-height:390px;
  border-radius:22px;
  overflow:hidden;
  background:#111;
}
.field-note-photo img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;
  filter:saturate(.82) brightness(.82);
}
.field-note-photo::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 48%,rgba(10,13,10,.65) 100%);
}
.field-note-photo span{
  position:absolute;left:22px;right:22px;bottom:20px;z-index:2;
  color:#fff;font-size:13px;line-height:1.55;font-weight:700;
}

/* Representative: show a consultation scene to make the service feel human. */
.rep-heading{display:flex;flex-direction:column}
.rep-photo{
  margin-top:34px;
  border-radius:22px;
  overflow:hidden;
  background:#eee;
}
.rep-photo img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center}
.rep-photo span{display:block;padding:14px 16px 16px;color:#6c7169;font-size:11px;line-height:1.6;background:#F7F5F0}

.contact-direct{margin-top:20px!important;font-size:12px!important;line-height:1.7!important;color:#777d74!important}
.contact-direct a{font-weight:700;text-decoration:underline;text-underline-offset:3px}

@media(max-width:1180px){
  .hero-title-en{font-size:46px !important}
  .field-note-grid{grid-template-columns:1fr 1fr;gap:32px}
  .field-note-heading{grid-column:1/-1}
  .field-note-photo{min-height:330px}
}
@media(max-width:900px){
  .hero-title-en{font-size:clamp(36px,5.3vw,46px) !important}
  .hero-title-en .hero-title-line{white-space:normal}
  .field-note-grid{grid-template-columns:1fr;gap:28px}
  .field-note-heading{grid-column:auto}
  .field-note-photo{min-height:360px}
}
@media(max-width:700px){
  .hero-title-en{font-size:33px !important;line-height:1.12 !important}
  .hero-v4-panel .eyebrow{font-size:9px;letter-spacing:.09em}
  .field-note-photo{min-height:290px;border-radius:18px}
  .rep-photo{margin-top:24px;border-radius:18px}
}

/* ============================================================
   v0.7.1 — field-note overlap fix / tablet + desktop hardening
   Fixes the heading overflow seen on iPad/desktop-width viewports.
   ============================================================ */
.field-note-grid{
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:48px 56px;
  align-items:start;
}
.field-note-heading{
  grid-column:1 / -1;
  max-width:980px;
}
.field-note h2{
  max-width:100%;
  overflow-wrap:anywhere;
}
.field-note h2 span{
  display:block;
  white-space:normal;
}
.field-note-photo{
  grid-column:1;
  min-width:0;
}
.field-note-copy{
  grid-column:2;
  min-width:0;
}

@media(max-width:1180px){
  .field-note-grid{
    grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
    gap:34px 40px;
  }
  .field-note-heading{grid-column:1 / -1}
  .field-note h2{font-size:clamp(38px,4.1vw,48px)}
}

@media(max-width:900px){
  .field-note-grid{
    grid-template-columns:1fr;
    gap:28px;
  }
  .field-note-heading,
  .field-note-photo,
  .field-note-copy{
    grid-column:auto;
  }
  .field-note h2{font-size:clamp(34px,5.3vw,44px)}
  .field-note-photo{min-height:340px}
}

@media(max-width:700px){
  .field-note-grid{gap:24px}
  .field-note h2{font-size:32px;line-height:1.24}
  .field-note-photo{min-height:280px}
}



/* ============================================================
   v0.7.2 — definitive field-note structure fix
   The heading is a full-width block; photo/copy live in a separate grid.
   Unique class names intentionally avoid every legacy field-note grid rule.
   ============================================================ */
.field-note-v072{
  overflow:hidden;
}
.field-note-v072-shell{
  display:block !important;
}
.field-note-v072-heading{
  display:block !important;
  width:100% !important;
  max-width:980px !important;
  margin:0 0 46px !important;
  position:relative;
  z-index:3;
}
.field-note-v072 .field-note-v072-heading h2{
  margin:0 !important;
  max-width:900px !important;
  color:#fff !important;
  font-size:clamp(42px,4.2vw,62px) !important;
  line-height:1.23 !important;
  letter-spacing:-.038em !important;
  font-weight:610 !important;
  overflow:visible !important;
  overflow-wrap:normal !important;
  word-break:keep-all !important;
}
.field-note-v072-body{
  display:grid !important;
  grid-template-columns:minmax(320px,.92fr) minmax(0,1.08fr) !important;
  gap:clamp(40px,5vw,76px) !important;
  align-items:start !important;
  width:100% !important;
  min-width:0 !important;
}
.field-note-v072-photo{
  position:relative !important;
  display:block !important;
  margin:0 !important;
  width:100% !important;
  min-width:0 !important;
  min-height:410px !important;
  border-radius:24px !important;
  overflow:hidden !important;
  background:#111 !important;
}
.field-note-v072-photo img{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center !important;
  filter:saturate(.82) brightness(.82);
}
.field-note-v072-photo::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 50%,rgba(10,13,10,.68) 100%);
  pointer-events:none;
}
.field-note-v072-photo figcaption{
  position:absolute !important;
  left:22px !important;
  right:22px !important;
  bottom:20px !important;
  z-index:2 !important;
  color:#fff !important;
  font-size:13px !important;
  line-height:1.55 !important;
  font-weight:700 !important;
}
.field-note-v072-copy{
  display:block !important;
  min-width:0 !important;
  width:100% !important;
  border-top:1px solid rgba(255,255,255,.25) !important;
  padding-top:28px !important;
}
.field-note-v072-copy p{
  margin:0 0 22px !important;
  color:rgba(255,255,255,.78) !important;
  font-size:16px !important;
  line-height:1.95 !important;
}
.field-note-v072-copy .field-note-sign{
  margin-top:34px !important;
  padding-top:24px !important;
  border-top:1px solid rgba(255,255,255,.16) !important;
  color:#fff !important;
  font-weight:700 !important;
}
.field-note-v072-copy .field-note-sign span{
  display:block !important;
  margin-top:4px !important;
  color:#C7D98B !important;
  font-size:11px !important;
  font-weight:600 !important;
}
@media(max-width:1100px){
  .field-note-v072-heading{margin-bottom:36px !important;}
  .field-note-v072 .field-note-v072-heading h2{
    font-size:clamp(38px,5vw,50px) !important;
    max-width:820px !important;
  }
  .field-note-v072-body{
    grid-template-columns:minmax(280px,.88fr) minmax(0,1.12fr) !important;
    gap:34px !important;
  }
  .field-note-v072-photo{min-height:350px !important;}
}
@media(max-width:820px){
  .field-note-v072-heading{margin-bottom:30px !important;}
  .field-note-v072 .field-note-v072-heading h2{
    font-size:clamp(34px,6.2vw,44px) !important;
    line-height:1.25 !important;
  }
  .field-note-v072-body{
    grid-template-columns:1fr !important;
    gap:28px !important;
  }
  .field-note-v072-photo{min-height:340px !important;}
}
@media(max-width:560px){
  .field-note-v072 .field-note-v072-heading h2{
    font-size:32px !important;
    line-height:1.28 !important;
  }
  .field-note-v072-photo{min-height:280px !important;border-radius:18px !important;}
  .field-note-v072-copy p{font-size:14px !important;line-height:1.9 !important;}
}


/* v0.8.1 unique-photo patch */
.field-note-v072-shell{max-width:1200px;}
.field-note-v072-body{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(280px,0.9fr) minmax(0,1fr);gap:32px;align-items:start;}
.field-note-v072-heading{max-width:none;}
.field-note-v072-heading h2{font-size:clamp(2rem,4vw,3.6rem);line-height:1.18;letter-spacing:-0.03em;word-break:keep-all;overflow-wrap:anywhere;}
.field-note-v072-photo{margin:0;max-width:100%;}
.field-note-v072-photo img{width:100%;height:320px;object-fit:cover;border-radius:22px;display:block;}
.field-note-v072-copy{max-width:520px;}
.why-heading-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,460px);gap:40px;align-items:center;}
.why-photo img{width:100%;height:300px;object-fit:cover;border-radius:24px;display:block;}
/* Case 01 wide card: inherit the parent image height.
   Non-wide cards already use their own 260px parent height. */
.case-card .case-image img{width:100%;height:100%;object-fit:cover;display:block;}
.about-grid .about-photo img, .profile-card img{object-fit:cover;}
@media (max-width: 1100px){
  .field-note-v072-body{grid-template-columns:1fr 1fr;}
  .field-note-v072-heading{grid-column:1 / -1;}
}
@media (max-width: 767px){
  .field-note-v072-body,.why-heading-layout{grid-template-columns:1fr;gap:24px;}
  .field-note-v072-heading h2{font-size:clamp(1.8rem,9vw,2.6rem);}
  .field-note-v072-photo img,.why-photo img,.case-card .case-image img{height:auto;aspect-ratio:4/3;}
}


/* ============================================================
   v0.8.2 — readability + stakeholder philosophy
   Requested: body/supporting text roughly 1.3–1.5× larger.
   Headings and the site header/navigation remain intentionally unchanged.
   ============================================================ */
html[lang="ja"] .hero-v4-lead{font-size:22px;line-height:1.75;}
html[lang="ja"] .hero-after{font-size:17px;line-height:1.75;}
html[lang="ja"] .hero-after span{font-size:15px;}
html[lang="ja"] .section-intro>p:not(.eyebrow){font-size:20px;line-height:1.85;}
html[lang="ja"] .section-intro-copy{font-size:19px;line-height:1.85;max-width:620px;}

html[lang="ja"] .proof-item strong{font-size:24px;}
html[lang="ja"] .proof-item small,
html[lang="ja"] .proof-item span{font-size:15px;line-height:1.65;}
html[lang="ja"] .proof-note,
html[lang="ja"] .legal-note,
html[lang="ja"] .case-note{font-size:14px;line-height:1.75;}

html[lang="ja"] .problem-grid span{font-size:13px;}
html[lang="ja"] .problem-grid p{font-size:19px;line-height:1.7;}
html[lang="ja"] .problem-visual-label{font-size:14px;}
html[lang="ja"] .problem-visual-copy span{font-size:17px;line-height:1.7;}
html[lang="ja"] .solution-bridge-kicker{font-size:13px;}
html[lang="ja"] .solution-bridge>span{font-size:18px;line-height:1.7;}
html[lang="ja"] .solution-bridge>a{font-size:16px;}

html[lang="ja"] .service-no{font-size:14px;}
html[lang="ja"] .service-card p{font-size:18px;line-height:1.85;}
html[lang="ja"] .service-card>a{font-size:16px;}

html[lang="ja"] .field-note-v072-copy p{font-size:20px !important;line-height:1.85 !important;}
html[lang="ja"] .field-note-v072-copy .field-note-sign span{font-size:14px !important;}
html[lang="ja"] .field-note-v072-photo figcaption{font-size:15px !important;}

html[lang="ja"] .why-grid span{font-size:14px;}
html[lang="ja"] .why-grid p{font-size:17px;line-height:1.85;}

html[lang="ja"] .process-flow span{font-size:13px;}
html[lang="ja"] .process-flow strong{font-size:21px;}
html[lang="ja"] .process-flow p{font-size:15px;line-height:1.65;}
html[lang="ja"] .tagline span{font-size:15px;}

html[lang="ja"] .image-note{font-size:12px;}
html[lang="ja"] .case-type{font-size:13px;}
html[lang="ja"] .case-copy>p:not(.case-type){font-size:17px;line-height:1.8;}
html[lang="ja"] .case-copy>a{font-size:15px;}
html[lang="ja"] .case-detail-no{font-size:15px;}
html[lang="ja"] .case-detail-heading>p{font-size:13px;}
html[lang="ja"] .case-detail-grid dt{font-size:13px;}
html[lang="ja"] .case-detail-grid dd{font-size:16px;line-height:1.8;}

html[lang="ja"] .voice-tag{font-size:13px;}
html[lang="ja"] blockquote{font-size:21px;line-height:1.8;}
html[lang="ja"] .voice-meta{font-size:14px;line-height:1.65;}
html[lang="ja"] .voice-person span{font-size:15px;}

html[lang="ja"] .story-copy{font-size:21px;line-height:1.85;}
html[lang="ja"] .story-promise span{font-size:15px;}
html[lang="ja"] .rep-grid>div:last-child{font-size:20px;line-height:1.85;}
html[lang="ja"] .rep-name{font-size:22px;}
html[lang="ja"] .rep-photo span{font-size:15px;line-height:1.7;}
html[lang="ja"] .expertise span{font-size:14px;padding:9px 13px;}
html[lang="ja"] .text-link{font-size:16px;}
html[lang="ja"] .rep-philosophy{font-weight:700;color:var(--ink);border-left:3px solid var(--lime);padding-left:18px;margin-top:28px !important;}

html[lang="ja"] .recruit-box>div:last-child p{font-size:18px;line-height:1.85;}
html[lang="ja"] summary{font-size:20px;line-height:1.6;}
html[lang="ja"] details p{font-size:18px;line-height:1.85;max-width:920px;}

html[lang="ja"] .contact-copy>p:not(.eyebrow){font-size:19px;line-height:1.8;}
html[lang="ja"] .contact-facts strong{font-size:14px;}
html[lang="ja"] .contact-facts span{font-size:17px;}
html[lang="ja"] .contact-caution{font-size:14px !important;line-height:1.7;}
html[lang="ja"] .contact-form>label,
html[lang="ja"] .form-row label{font-size:15px;line-height:1.55;}
html[lang="ja"] .contact-form em,
html[lang="ja"] .contact-form label>span{font-size:12px;}
html[lang="ja"] .contact-form input,
html[lang="ja"] .contact-form select,
html[lang="ja"] .contact-form textarea{font-size:16px;line-height:1.5;}
html[lang="ja"] .consent span{font-size:14px !important;line-height:1.65;}
html[lang="ja"] .form-note{font-size:13px;line-height:1.65;}
html[lang="ja"] .form-message{font-size:14px;}
html[lang="ja"] .contact-direct{font-size:15px !important;}

html[lang="ja"] .footer-main>div:first-child p{font-size:15px;line-height:1.75;}
html[lang="ja"] .footer-links div{font-size:15px;}
html[lang="ja"] .footer-links strong{font-size:13px;}

/* Three-way value section: Guests × Operators × Community */
.stakeholder-value{background:#F4F6EF;border-top:1px solid #E2E6DC;border-bottom:1px solid #E2E6DC;}
.stakeholder-intro{max-width:900px;margin-bottom:52px;}
.stakeholder-intro>p:not(.eyebrow){max-width:820px;}
.stakeholder-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
.stakeholder-card{background:#fff;border:1px solid #DFE4D9;padding:34px 30px 32px;min-height:340px;display:flex;flex-direction:column;}
.stakeholder-icon{width:72px;height:72px;border:1px solid #CBD5B9;display:grid;place-items:center;margin-bottom:30px;background:#FAFCF7;}
.stakeholder-icon svg{width:42px;height:42px;fill:none;stroke:#73813E;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.stakeholder-label{margin:0 0 11px;color:#73813E;font-size:13px;font-weight:760;letter-spacing:.13em;}
.stakeholder-card h3{margin:0 0 14px;color:var(--ink);font-size:25px;line-height:1.45;letter-spacing:-.02em;}
.stakeholder-card>p:last-child{margin:0;color:#646A62;font-size:18px;line-height:1.85;}
.stakeholder-summary{margin:30px 0 0;padding:25px 28px;border-left:3px solid var(--lime);background:rgba(255,255,255,.58);color:#5D635B;font-size:18px;line-height:1.85;}
.stakeholder-summary strong{color:var(--ink);}

@media(max-width:980px){
  .stakeholder-grid{grid-template-columns:1fr;}
  .stakeholder-card{min-height:0;display:grid;grid-template-columns:82px 1fr;column-gap:20px;align-items:start;}
  .stakeholder-icon{grid-row:1 / span 3;margin-bottom:0;}
  .stakeholder-label,.stakeholder-card h3,.stakeholder-card>p:last-child{grid-column:2;}
  html[lang="ja"] .process-flow{grid-template-columns:repeat(3,1fr);}
  html[lang="ja"] .process-flow li:nth-child(3){border-right:0;}
  html[lang="ja"] .process-flow li:nth-child(3):after{display:none;}
}
@media(max-width:700px){
  html[lang="ja"] .hero-v4-lead{font-size:19px;}
  html[lang="ja"] .section-intro>p:not(.eyebrow),
  html[lang="ja"] .section-intro-copy{font-size:17px;}
  html[lang="ja"] .problem-grid p{font-size:17px;}
  html[lang="ja"] .service-card p{font-size:17px;}
  html[lang="ja"] .field-note-v072-copy p{font-size:17px !important;}
  html[lang="ja"] .why-grid p{font-size:16px;}
  html[lang="ja"] .story-copy{font-size:18px;}
  html[lang="ja"] .rep-grid>div:last-child{font-size:18px;}
  html[lang="ja"] summary{font-size:18px;}
  html[lang="ja"] details p{font-size:16px;}
  html[lang="ja"] .contact-copy>p:not(.eyebrow){font-size:17px;}
  .stakeholder-card{display:block;padding:28px 24px;}
  .stakeholder-icon{margin-bottom:22px;}
  .stakeholder-label,.stakeholder-card h3,.stakeholder-card>p:last-child{grid-column:auto;}
  .stakeholder-card h3{font-size:23px;}
  .stakeholder-card>p:last-child,.stakeholder-summary{font-size:16px;}
  html[lang="ja"] .process-flow{grid-template-columns:1fr;}
  html[lang="ja"] .process-flow li{border-right:0;border-bottom:1px solid var(--line);}
  html[lang="ja"] .process-flow li:after{display:none;}
}


/* ============================================================
   v0.9 FINAL — curated photography / visual rhythm
   Drive-curated image set; each page section uses a distinct image.
   ============================================================ */
.section-visual-wide{margin:0 0 34px;overflow:hidden;border-radius:24px;background:#eef0ea;}
.section-visual-wide img{display:block;width:100%;height:clamp(240px,30vw,390px);object-fit:cover;}
.services-overview-visual img{object-position:center 42%;}
.process-visual img{object-position:center center;}
.cases-overview-visual img{object-position:center 48%;}
.voices-visual img{object-position:center 42%;}

.service-feature{display:grid;grid-template-columns:minmax(320px,.95fr) minmax(0,1.05fr);gap:34px;align-items:center;margin-top:22px;padding:22px;background:#F7F8F4;border:1px solid var(--line);border-radius:24px;}
.service-feature-photo{margin:0;overflow:hidden;border-radius:18px;min-height:280px;}
.service-feature-photo img{display:block;width:100%;height:100%;min-height:280px;object-fit:cover;}
.service-feature-copy{padding:18px 24px;}
.service-feature-copy h3{margin:0 0 14px;color:var(--ink);font-size:clamp(28px,3vw,42px);line-height:1.25;letter-spacing:-.03em;}
.service-feature-copy>p:last-child{margin:0;color:var(--muted);font-size:18px;line-height:1.85;}

.stakeholder-visual{margin:0 0 30px;background:#fff;border:1px solid #E2E6DC;border-radius:24px;overflow:hidden;}
.stakeholder-visual img{display:block;width:100%;height:clamp(260px,32vw,430px);object-fit:cover;object-position:center center;}

.recruit-box-v09{grid-template-columns:minmax(0,.78fr) minmax(260px,.75fr) minmax(0,1fr);gap:32px;align-items:center;}
.recruit-visual{margin:0;overflow:hidden;border-radius:22px;min-height:300px;}
.recruit-visual img{display:block;width:100%;height:100%;min-height:300px;object-fit:cover;}

/* remove legacy visual labels and keep copy clean */
.image-note{display:none!important;}

/* Keep field-note photo and copy stable at tablet widths */
.field-note-v072-body{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)!important;gap:clamp(32px,5vw,64px)!important;}
.field-note-v072-photo{min-height:420px!important;}
.field-note-v072-photo img{height:100%!important;border-radius:0!important;}
.field-note-v072-heading{margin-bottom:42px!important;}

@media(max-width:980px){
  .service-feature,.recruit-box-v09{grid-template-columns:1fr;}
  .service-feature-copy{padding:6px 8px 12px;}
  .recruit-visual{min-height:340px;}
  .field-note-v072-body{grid-template-columns:1fr!important;}
  .field-note-v072-photo{min-height:360px!important;}
}
@media(max-width:700px){
  .section-visual-wide,.stakeholder-visual,.service-feature,.recruit-visual{border-radius:18px;}
  .section-visual-wide img,.stakeholder-visual img{height:auto;aspect-ratio:4/3;}
  .service-feature{padding:14px;gap:18px;}
  .service-feature-photo,.service-feature-photo img{min-height:0;height:auto;aspect-ratio:4/3;}
  .recruit-visual,.recruit-visual img{min-height:0;height:auto;aspect-ratio:4/3;}
  .field-note-v072-photo{min-height:280px!important;}
}

/* ============================================================
   v0.9.4 — restore known-good icon CSS + English hero containment
   Icon appearance intentionally comes from the known-good v0.9 stylesheet.
   ============================================================ */
.hero-v4-panel-en{
  width:min(860px,76vw);
}
.hero-v4-panel-en .hero-title-en{
  font-size:clamp(36px,3.1vw,46px) !important;
  line-height:1.1 !important;
  max-width:100%;
}
@media(max-width:1180px){
  .hero-v4-panel-en{width:min(820px,86vw);}
  .hero-v4-panel-en .hero-title-en{font-size:42px !important;}
}
@media(max-width:900px){
  .hero-v4-panel-en{width:min(760px,90vw);}
  .hero-v4-panel-en .hero-title-en{font-size:40px !important;}
  .hero-v4-panel-en .hero-title-en .hero-title-line{white-space:normal;}
}
@media(max-width:700px){
  .hero-v4-panel-en{width:100%;}
  .hero-v4-panel-en .hero-title-en{font-size:32px !important;line-height:1.12 !important;}
}
