@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,500&family=Jost:wght@300;400;500;600&family=Noto+Serif+JP:wght@500;600;700&family=Noto+Sans+JP:wght@300;400;500;700&display=swap');

:root{
  --ink:#2b3226;
  --charcoal:#333b2c;
  --charcoal-2:#3c4534;
  --cream:#fbf9f2;
  --cream-2:#f1ede0;
  --white:#ffffff;
  --copper:#c1652e;
  --copper-light:#e2955c;
  --copper-dark:#8f4a1e;
  --turf:#4f8f52;
  --turf-light:#8dc290;
  --turf-dark:#356b3b;
  --text:#2c2a22;
  --muted:#6b6656;
  --muted-2:#a39d87;
  --border:rgba(44,42,34,.1);
  --border-dark:rgba(251,249,242,.14);
  --shadow:0 24px 60px rgba(60,50,20,.12);
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:'Noto Sans JP','Hiragino Sans',sans-serif;
  background:var(--cream);
  color:var(--text);
  line-height:1.85;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{display:block;width:100%;object-fit:cover;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}
button{font-family:inherit;}
.serif{font-family:'Noto Serif JP',serif;}
.en{font-family:'Cormorant Garamond',serif;}
.jost{font-family:'Jost',sans-serif;}

/* ===== layout utilities ===== */
.wrap{max-width:1180px;margin:0 auto;padding:0 32px;}
.section{padding:120px 0;position:relative;}
.section-dark{background:var(--ink);color:var(--cream);}
.section-alt{background:var(--cream-2);}
@media(max-width:768px){ .section{padding:80px 0;} .wrap{padding:0 22px;} }

.eyebrow{
  font-family:'Jost',sans-serif;
  font-size:12px;letter-spacing:6px;text-transform:uppercase;
  color:var(--copper);display:flex;align-items:center;gap:14px;margin-bottom:22px;
}
.eyebrow::before{content:'';width:34px;height:1px;background:var(--copper);}
.eyebrow.center{justify-content:center;}
.eyebrow.center::before{display:none;}
.eyebrow.center::after{content:'';width:34px;height:1px;background:var(--copper);}

.headline{
  font-family:'Noto Serif JP',serif;
  font-weight:600;
  line-height:1.5;
  letter-spacing:.02em;
}
.headline .en{
  display:block;
  font-family:'Cormorant Garamond',serif;
  font-style:italic;
  font-weight:500;
  letter-spacing:.04em;
}

.lede{color:var(--muted);font-size:16.5px;max-width:640px;}
.section-dark .lede{color:var(--muted-2);}

.center{text-align:center;margin-left:auto;margin-right:auto;}

/* ===== buttons ===== */
.btn{
  font-family:'Jost',sans-serif;
  display:inline-flex;align-items:center;gap:12px;
  font-size:13px;font-weight:500;letter-spacing:3px;text-transform:uppercase;
  padding:16px 38px;cursor:pointer;transition:all .35s var(--ease);
  border:1px solid transparent;white-space:nowrap;
}
.btn-gold{background:var(--copper);color:var(--white);}
.btn-gold:hover{background:var(--copper-dark);transform:translateY(-2px);box-shadow:0 14px 30px rgba(140,106,38,.35);}
.btn-line{border-color:var(--copper);color:var(--ink);}
.section-dark .btn-line,.cta-band .btn-line{border-color:var(--copper-light);color:var(--cream);}
.btn-line:hover{background:var(--copper);color:var(--white);border-color:var(--copper);}
.btn-arrow{transition:transform .35s var(--ease);}
.btn:hover .btn-arrow{transform:translateX(5px);}

/* ===== header ===== */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  padding:22px 0;transition:all .4s var(--ease);
  background:rgba(251,249,242,.86);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--border);
}
.site-header.solid{
  background:rgba(251,249,242,.97);
  padding:14px 0;box-shadow:0 6px 30px rgba(60,50,20,.08);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;}
.logo{display:flex;flex-direction:column;line-height:1;color:var(--ink);}
.logo-main{
  font-family:'Cormorant Garamond',serif;font-weight:600;font-size:24px;
  letter-spacing:4px;color:var(--ink);
}
.logo-main span{color:var(--copper);}
.logo-sub{
  font-family:'Jost',sans-serif;font-size:9.5px;letter-spacing:4px;
  color:var(--muted);margin-top:4px;text-transform:uppercase;
}
.nav-menu{display:flex;align-items:center;gap:44px;}
.nav-menu a{
  font-family:'Jost',sans-serif;font-size:12.5px;letter-spacing:2.5px;
  text-transform:uppercase;color:var(--ink);position:relative;padding-bottom:4px;
}
.nav-menu a::after{
  content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--copper);
  transition:width .3s var(--ease);
}
.nav-menu a:hover::after,.nav-menu a.active::after{width:100%;}
.nav-cta{
  font-family:'Jost',sans-serif;font-size:11.5px;letter-spacing:2px;text-transform:uppercase;
  border:1px solid var(--copper);color:var(--ink);padding:10px 22px;transition:all .3s var(--ease);
}
.nav-cta:hover{background:var(--copper);border-color:var(--copper);color:var(--white);}
.nav-toggle{display:none;flex-direction:column;gap:5px;cursor:pointer;z-index:1100;}
.nav-toggle span{width:26px;height:1px;background:var(--ink);display:block;transition:all .3s var(--ease);}

/* ===== business quick-nav (persistent, always visible) ===== */
.biz-nav{display:none;}
@media(min-width:901px){
  .biz-nav{
    display:block;background:rgba(193,101,46,.05);
    border-top:1px solid var(--border);transition:background .4s var(--ease);
  }
  .site-header.solid .biz-nav{background:rgba(193,101,46,.08);}
  .biz-nav-inner{display:grid;grid-template-columns:repeat(4,1fr);}
  .biz-nav-item{
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
    padding:13px 10px;text-align:center;
    font-family:'Noto Sans JP',sans-serif;font-size:13.5px;font-weight:500;color:var(--ink);
    border-right:1px solid var(--border);transition:background .3s var(--ease);
  }
  .biz-nav-item:last-child{border-right:none;}
  .biz-nav-item small{
    font-family:'Jost',sans-serif;font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);
  }
  .biz-nav-item:hover{background:rgba(193,101,46,.10);}
  .biz-nav-item:hover small{color:var(--copper-dark);}
  .biz-nav-item:nth-child(2):hover{background:rgba(79,143,82,.10);}
  .biz-nav-item:nth-child(2):hover small{color:var(--turf-dark);}
  .biz-nav-cta{background:var(--copper);color:var(--white);}
  .biz-nav-cta small{color:rgba(255,255,255,.75);}
  .biz-nav-cta:hover{background:var(--copper-dark);}
}

@media(max-width:900px){
  .nav-menu{
    position:fixed;inset:0;flex-direction:column;justify-content:center;
    background:
      radial-gradient(ellipse at 15% 15%,rgba(193,101,46,.10),transparent 55%),
      radial-gradient(ellipse at 85% 85%,rgba(79,143,82,.10),transparent 55%),
      var(--cream);
    gap:34px;transform:translateY(-100%);opacity:0;transition:all .45s var(--ease);pointer-events:none;
  }
  .nav-menu.open{transform:translateY(0);opacity:1;pointer-events:auto;}
  .nav-menu a{font-size:16px;}
  .nav-toggle{display:flex;}
  body.nav-open{overflow:hidden;}
}

/* ===== hero ===== */
.hero{
  min-height:100vh;position:relative;display:flex;align-items:center;
  background:
    radial-gradient(ellipse at 16% 18%,rgba(193,101,46,.15),transparent 55%),
    radial-gradient(ellipse at 86% 82%,rgba(79,143,82,.14),transparent 55%),
    linear-gradient(160deg,#fdfbf5 0%,#f7f2e4 55%,#f2ecda 100%);
  color:var(--ink);overflow:hidden;
}
.hero::before{
  content:'';position:absolute;inset:0;
  background-image:repeating-linear-gradient(115deg,transparent 0 120px,rgba(44,42,34,.035) 120px 121px);
  pointer-events:none;
}
.hero-frame{
  position:absolute;inset:26px;border:1px solid rgba(44,42,34,.1);pointer-events:none;
}
.hero-inner{position:relative;z-index:2;padding-top:120px;padding-bottom:80px;text-align:center;}
@media(min-width:901px){ .hero-inner{padding-top:186px;} }
.hero .eyebrow{margin:0 auto 28px;}
.hero h1{
  font-family:'Noto Serif JP',serif;font-weight:700;
  font-size:clamp(34px,5.4vw,64px);letter-spacing:.03em;line-height:1.55;
  color:var(--ink);
}
.hero h1 em{
  display:block;font-style:normal;font-family:'Cormorant Garamond',serif;
  font-weight:500;font-style:italic;color:var(--copper-dark);
  font-size:clamp(16px,2vw,22px);letter-spacing:.28em;margin-top:22px;text-transform:uppercase;
}
.hero-lede{
  max-width:600px;margin:32px auto 0;color:var(--muted);font-size:15.5px;
}
.hero-actions{display:flex;gap:20px;justify-content:center;margin-top:48px;flex-wrap:wrap;}
.hero-scroll{
  position:absolute;bottom:36px;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:10px;
  font-family:'Jost',sans-serif;font-size:10px;letter-spacing:4px;color:var(--muted);
}
.hero-scroll::after{content:'';width:1px;height:46px;background:linear-gradient(var(--copper),transparent);}
@media(max-width:640px){
  .hero-inner{padding-bottom:60px;}
  .hero-scroll{display:none;}
}

/* ===== philosophy pillars ===== */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:70px;border-top:1px solid var(--border);}
.pillar{padding:48px 34px;border-right:1px solid var(--border);position:relative;}
.pillar:last-child{border-right:none;}
.pillar-num{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:15px;color:var(--copper);letter-spacing:.1em;}
.pillar h3{font-family:'Noto Serif JP',serif;font-size:21px;font-weight:600;margin:18px 0 14px;}
.pillar p{color:var(--muted);font-size:15px;}
@media(max-width:820px){
  .pillars{grid-template-columns:1fr;}
  .pillar{border-right:none;border-bottom:1px solid var(--border);}
}

/* ===== business cards ===== */
.biz-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:64px;}
.biz-card{
  background:var(--white);border:1px solid var(--border);position:relative;overflow:hidden;
  transition:box-shadow .4s var(--ease),transform .4s var(--ease);
}
.biz-card:hover{box-shadow:var(--shadow);transform:translateY(-6px);}
.biz-media{position:relative;height:320px;overflow:hidden;}
.biz-media img{height:100%;transition:transform .8s var(--ease);}
.biz-card:hover .biz-media img{transform:scale(1.06);}
.biz-media::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(0deg,rgba(20,18,16,.75) 0%,rgba(20,18,16,.05) 55%);
}
.biz-tag{
  position:absolute;top:22px;left:22px;z-index:2;
  font-family:'Jost',sans-serif;font-size:10.5px;letter-spacing:3px;text-transform:uppercase;
  color:var(--cream);border:1px solid rgba(248,245,238,.5);padding:7px 16px;
}
.biz-media-caption{
  position:absolute;left:22px;bottom:20px;z-index:2;color:var(--white);
  font-family:'Cormorant Garamond',serif;font-size:26px;letter-spacing:.05em;
}
.biz-body{padding:38px 34px 40px;}
.biz-body h3{font-family:'Noto Serif JP',serif;font-size:22px;font-weight:600;margin-bottom:14px;}
.biz-body p{color:var(--muted);font-size:15px;margin-bottom:26px;}
.biz-link{
  font-family:'Jost',sans-serif;font-size:12px;letter-spacing:2.5px;text-transform:uppercase;
  color:var(--copper-dark);border-bottom:1px solid var(--copper);padding-bottom:4px;display:inline-flex;gap:10px;align-items:center;
}
@media(max-width:900px){.biz-grid{grid-template-columns:1fr;}}

/* ===== turf accent (防草シート・人工芝事業) ===== */
.biz-card--turf .biz-tag{border-color:rgba(141,194,144,.65);}
.biz-card--turf .biz-link{color:var(--turf-dark);border-bottom-color:var(--turf);}
.eyebrow--turf{color:var(--turf-dark);}
.eyebrow--turf::before,.eyebrow--turf::after{background:var(--turf-dark);}
.btn-line--turf{border-color:var(--turf);color:var(--turf-dark);}
.btn-line--turf:hover{background:var(--turf);color:var(--white);border-color:var(--turf);}

/* ===== company table ===== */
.company-table{width:100%;border-collapse:collapse;margin-top:20px;}
.company-table tr{border-bottom:1px solid var(--border);}
.company-table th{
  width:220px;text-align:left;padding:22px 24px 22px 0;
  font-family:'Jost',sans-serif;font-size:12px;letter-spacing:2px;text-transform:uppercase;
  color:var(--copper-dark);font-weight:500;vertical-align:top;
}
.company-table td{padding:22px 0;font-size:16px;color:var(--text);}
.placeholder-note{color:var(--muted-2);font-style:italic;}
@media(max-width:700px){
  .company-table,.company-table tbody,.company-table tr,.company-table th,.company-table td{display:block;width:100%;}
  .company-table th{padding:22px 0 6px;}
  .company-table td{padding:0 0 22px;}
}

/* ===== history / timeline ===== */
.timeline{margin-top:56px;position:relative;padding-left:40px;border-left:1px solid var(--border);}
.timeline-item{position:relative;padding-bottom:42px;}
.timeline-item:last-child{padding-bottom:0;}
.timeline-item::before{
  content:'';position:absolute;left:-45px;top:6px;width:9px;height:9px;border-radius:50%;
  background:var(--copper);
}
.timeline-date{font-family:'Jost',sans-serif;font-size:12px;letter-spacing:2px;color:var(--copper-dark);}
.timeline-item h4{font-family:'Noto Serif JP',serif;font-size:17px;margin-top:8px;font-weight:600;}
.timeline-item p{color:var(--muted);font-size:14px;margin-top:6px;}

/* ===== contact ===== */
.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;margin-top:60px;}
.contact-info-item{padding:26px 0;border-bottom:1px solid var(--border-dark);}
.contact-info-item .eyebrow{margin-bottom:10px;}
.contact-info-item p,.contact-info-item a{font-size:15px;color:var(--cream);}
.contact-info-item a:hover{color:var(--copper-light);}

.form-group{margin-bottom:26px;}
.form-group label{
  display:block;font-family:'Jost',sans-serif;font-size:11.5px;letter-spacing:2.5px;
  text-transform:uppercase;color:var(--muted-2);margin-bottom:10px;
}
.form-group input,.form-group select,.form-group textarea{
  width:100%;background:transparent;border:none;border-bottom:1px solid var(--border-dark);
  color:var(--cream);font-family:'Noto Sans JP',sans-serif;font-size:15px;padding:12px 2px;
  transition:border-color .3s;
}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{
  outline:none;border-color:var(--copper-light);
}
.form-group select option{background:var(--ink);color:var(--cream);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:26px;}
.form-note{font-size:12.5px;color:var(--muted-2);margin-top:18px;line-height:1.9;}
@media(max-width:820px){.contact-grid{grid-template-columns:1fr;gap:50px;} .form-row{grid-template-columns:1fr;}}

/* ===== footer ===== */
.site-footer{background:var(--ink);color:var(--muted-2);padding:80px 0 30px;border-top:1px solid var(--border-dark);}
.footer-top{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:50px;padding-bottom:60px;border-bottom:1px solid var(--border-dark);}
.footer-brand .logo-main{font-size:22px;}
.footer-brand p{margin-top:20px;font-size:13.5px;line-height:1.9;max-width:280px;}
.footer-col-title{
  font-family:'Jost',sans-serif;font-size:11.5px;letter-spacing:2.5px;text-transform:uppercase;
  color:var(--cream);margin-bottom:20px;
}
.footer-col a{display:block;font-size:13.5px;margin-bottom:12px;color:var(--muted-2);}
.footer-col a:hover{color:var(--copper-light);}
.footer-qr{display:flex;align-items:center;gap:16px;}
.footer-qr .qr-box{
  width:84px;height:84px;background:var(--cream);display:flex;align-items:center;justify-content:center;
  color:var(--ink);font-family:'Jost',sans-serif;font-size:9px;letter-spacing:1px;text-align:center;padding:6px;
}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:30px;font-size:12px;flex-wrap:wrap;gap:12px;}
@media(max-width:900px){.footer-top{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.footer-top{grid-template-columns:1fr;}}

/* ===== page hero (inner pages) ===== */
.page-hero{
  display:flex;align-items:flex-end;position:relative;color:var(--ink);
  background:linear-gradient(160deg,#fdfbf5 0%,#f3eede 70%);overflow:hidden;
}
.page-hero::before{
  content:'';position:absolute;inset:0;
  background:
    radial-gradient(ellipse at 80% 0%,rgba(193,101,46,.16),transparent 60%),
    radial-gradient(ellipse at 8% 100%,rgba(79,143,82,.13),transparent 55%);
}
.page-hero-inner{position:relative;z-index:2;padding:150px 0 44px;}
@media(min-width:901px){ .page-hero-inner{padding-top:206px;} }
.page-hero h1{font-family:'Noto Serif JP',serif;font-weight:700;font-size:clamp(30px,4.4vw,48px);}
.page-hero .en{display:block;font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:500;color:var(--copper-dark);letter-spacing:.2em;font-size:15px;margin-bottom:16px;text-transform:uppercase;}
.breadcrumb{
  position:relative;z-index:2;margin-top:24px;font-family:'Jost',sans-serif;font-size:12px;
  letter-spacing:1.5px;color:var(--muted);display:flex;gap:10px;
}
.breadcrumb a:hover{color:var(--copper);}

/* ===== reveal animation ===== */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease),transform .8s var(--ease);}
.reveal.in{opacity:1;transform:none;}

/* ===== misc ===== */
.divider-gold{width:60px;height:1px;background:var(--copper);margin:0 auto 26px;}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;}
@media(max-width:820px){.two-col{grid-template-columns:1fr;gap:40px;}}
.feature-list li{
  display:flex;gap:16px;padding:18px 0;border-bottom:1px solid var(--border);font-size:15px;color:var(--muted);
}
.section-dark .feature-list li{border-color:var(--border-dark);color:var(--muted-2);}
.feature-list li::before{content:'';flex:none;width:6px;height:6px;margin-top:8px;background:var(--copper);transform:rotate(45deg);}
.feature-list strong{color:var(--text);font-weight:600;margin-right:6px;}
.section-dark .feature-list strong{color:var(--cream);}

/* ===== reasons / trust points ===== */
.reasons-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:70px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.reason{padding:40px 34px;border-right:1px solid var(--border);position:relative;}
.reason:last-child{border-right:none;}
.reason-num{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:15px;color:var(--copper);letter-spacing:.1em;}
.reason h3{font-family:'Noto Serif JP',serif;font-size:19px;font-weight:600;margin:16px 0 12px;}
.reason p{color:var(--muted);font-size:14.5px;}
@media(max-width:820px){
  .reasons-grid{grid-template-columns:1fr;}
  .reason{border-right:none;border-bottom:1px solid var(--border);}
  .reason:last-child{border-bottom:none;}
}

.cta-band{background:var(--ink);color:var(--cream);text-align:center;padding:110px 0;position:relative;overflow:hidden;}
.cta-band::before{
  content:'';position:absolute;inset:0;
  background:
    radial-gradient(ellipse at 20% 0%,rgba(193,101,46,.18),transparent 60%),
    radial-gradient(ellipse at 85% 100%,rgba(79,143,82,.15),transparent 60%);
}
.cta-band-inner{position:relative;z-index:2;}
.cta-band h2{font-family:'Noto Serif JP',serif;font-size:clamp(24px,3.2vw,36px);font-weight:600;margin-bottom:30px;}
