@charset "UTF-8";

/*!
Theme Name: Cocoon Child
Description: Cocoon専用の子テーマ
Theme URI: https://wp-cocoon.com/
Author: わいひら
Author URI: https://nelog.jp/
Template:   cocoon-master
Version:    1.1.3
*/

:root{--green-dark:#2a5c35;--green-mid:#3a7d44;--green-light:#e8f5e9;--brown-light:#f5ede3;--gold:#c8952a;--text:#1a1a1a;--muted:#555;--border:#ddd;--white:#ffffff}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Hiragino Sans','Meiryo','Yu Gothic',sans-serif;color:var(--text);line-height:1.7;font-size:16px}
nav{position:fixed;top:0;left:0;right:0;background:rgb(42,92,53);z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:0 5%;height:90px}
.nav-logo{display:flex;align-items:center;gap:.75rem;text-decoration:none}
.nav-logo-svg{height:75px;width:auto}
.nav-logo-text{color:#fff;font-size:1.8rem;font-weight:600;letter-spacing:.06em;line-height:1.3;opacity:.92;margin-top:10px}
.nav-links{display:flex;gap:2rem;list-style:none;margin-top:35px}
.nav-links a{color:rgba(255,255,255,0.88);text-decoration:none;font-size:1rem;transition:color .2s}
.nav-links a:hover{color:var(--gold)}
.hero{min-height:100vh;background:linear-gradient(rgba(0,0,0,0.52),rgba(0,0,0,0.44)),url('https://images.unsplash.com/photo-1507525428034-b723cf961d3e?w=1600&q=85') center/cover no-repeat;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:120px 5% 80px;color:#fff}
.hero-badge{display:inline-block;background:var(--gold);color:#fff;font-size:.78rem;font-weight:700;letter-spacing:.1em;padding:5px 18px;border-radius:20px;margin-bottom:1.4rem;text-transform:uppercase}
.hero h1{font-size:clamp(2.4rem,6vw,4.2rem);font-weight:900;line-height:1.18;margin-top:-0.5rem!important;margin-bottom:1rem;letter-spacing:-.01em;text-align:center!important;text-indent:0!important}
.hero h1 span{color:var(--gold)}
.hero p{font-size:clamp(1rem,2vw,1.2rem);max-width:640px;margin:0 auto 2.4rem;opacity:.9}.hero-subtitle{font-size:clamp(2.4rem,6vw,4.2rem)!important;font-weight:900;line-height:1;margin:0 auto -.5rem;letter-spacing:-.01em;color:#fff;text-align:center;text-indent:0;width:100%;transform:translateX(-3rem);white-space:nowrap}
.hero-meta{display:flex;gap:2rem;flex-wrap:wrap;justify-content:center;font-size:.82rem;opacity:.82;margin-bottom:2.8rem;letter-spacing:.04em}
.hero-meta span::before{content:'✦ ';color:var(--gold)}
.btn{display:inline-block;padding:14px 38px;border-radius:4px;font-size:1rem;font-weight:700;text-decoration:none;cursor:pointer;transition:all .2s;letter-spacing:.04em}
.btn-primary{background:var(--gold);color:#fff;border:2px solid var(--gold)}
.btn-primary:hover{background:#b07820;border-color:#b07820}
.btn-outline{background:transparent;color:#fff;border:2px solid rgba(255,255,255,0.7);margin-left:1rem}
.btn-outline:hover{background:rgba(255,255,255,0.12)}
section{padding:100px 5%}
.section-label{font-size:.78rem;letter-spacing:.2em;color:var(--green-mid);text-transform:uppercase;font-weight:700;margin-bottom:.6rem}
.section-title{font-size:clamp(1.7rem,3.5vw,2.5rem);font-weight:800;line-height:1.25;margin-bottom:1rem}
.section-sub{color:var(--muted);max-width:600px;font-size:.97rem}
.section-header{margin-bottom:3.5rem}
.center{text-align:center}
.center .section-sub{margin:0 auto}
#about{background:var(--white)}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;max-width:1100px;margin:0 auto}
.about-img-wrap{border-radius:12px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,0.14)}
.about-img-wrap img{width:100%;display:block}
.about-content p{color:var(--muted);margin-bottom:1.2rem;font-size:.97rem}
.about-spec{display:flex;gap:1.2rem;margin-top:2rem;flex-wrap:wrap}
.spec-chip{background:var(--green-light);color:var(--green-dark);font-size:.82rem;font-weight:700;padding:6px 16px;border-radius:20px;letter-spacing:.03em}
#compare{background:var(--brown-light)}
.compare-wrap{max-width:860px;margin:0 auto}
.compare-table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 8px 32px rgba(0,0,0,0.08);font-size:.95rem}
.compare-table thead tr{background:var(--green-dark);color:#fff}
.compare-table th{padding:16px 20px;text-align:center;font-weight:700;letter-spacing:.06em;font-size:.9rem}
.compare-table th:first-child{text-align:left}
.compare-table td{padding:14px 20px;border-bottom:1px solid var(--border);text-align:center}
.compare-table td:first-child{text-align:left;font-weight:600}
.compare-table tr:last-child td{border-bottom:none}
.compare-table tr:nth-child(even) td{background:#fafafa}
.good{color:var(--green-mid);font-weight:700}
.bad{color:#c0392b;font-weight:700}
.mid{color:var(--gold);font-weight:700}
#performance{background:var(--green-dark);color:#fff}
#performance .section-label{color:var(--gold)}
#performance .section-title{color:#fff}
#performance .section-sub{color:rgba(255,255,255,0.72)}
.perf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;max-width:1100px;margin:0 auto}
.perf-card{background:rgba(255,255,255,0.07);border:1px solid rgba(255,255,255,0.12);border-radius:12px;padding:28px 24px;transition:background .2s}
.perf-card:hover{background:rgba(255,255,255,0.12)}
.perf-icon,.usecase-icon{width:36px;height:36px;flex-shrink:0}
.perf-icon{margin-bottom:.8rem}
.perf-icon svg,.usecase-icon svg{width:36px;height:36px}
.perf-value{font-size:2rem;font-weight:900;color:var(--gold);line-height:1;margin-bottom:.2rem}
.perf-unit{font-size:.78rem;color:rgba(255,255,255,0.56);margin-bottom:.6rem;letter-spacing:.06em}
.perf-name{font-size:.95rem;font-weight:700;margin-bottom:.5rem}
.perf-desc{font-size:.82rem;color:rgba(255,255,255,0.68);line-height:1.6}
#usecases{background:#fff}
.usecase-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;max-width:1100px;margin:0 auto}
.usecase-card{background:var(--green-light);border-radius:12px;padding:28px 24px;display:flex;align-items:flex-start;gap:1rem}
.usecase-icon{margin-top:2px}
.usecase-card h3{font-size:1rem;font-weight:700;margin-bottom:.3rem;color:var(--green-dark)}
.usecase-card p{font-size:.85rem;color:var(--muted)}
#certs{background:var(--brown-light)}
.certs-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;max-width:900px;margin:0 auto}
.cert-card{background:#fff;border-radius:12px;padding:32px;box-shadow:0 4px 20px rgba(0,0,0,0.07)}
.cert-card.fire{border-left:5px solid #c0392b}
.cert-card.intertek{border-left:5px solid var(--green-mid)}
.cert-title{font-size:1.05rem;font-weight:800;margin-bottom:.8rem;color:var(--text)}
.cert-value{font-size:1.6rem;font-weight:900;color:var(--green-dark);margin-bottom:.3rem}
.cert-card p{font-size:.88rem;color:var(--muted);margin-bottom:.4rem}
.cert-tag{display:inline-block;background:var(--green-light);color:var(--green-dark);font-size:.78rem;font-weight:700;padding:3px 12px;border-radius:12px;margin:2px}
#company{background:#fff}
.company-title{font-size:2rem!important}
.company-divider{width:60px;height:3px;background:var(--gold);margin:1.8rem auto 1.8rem;border-radius:2px}
.company-wrap{max-width:1000px;margin:0 auto;padding:0 2rem 1rem;text-align:center}#company .section-header{margin-bottom:0;padding-bottom:0}#company .section-title{margin-bottom:0}
.company-tagline{font-size:1.3rem;font-weight:700;color:var(--green-dark);margin-bottom:2rem;letter-spacing:.03em}
.company-text{font-size:1.25rem;font-weight:500;color:#333;line-height:2;margin-bottom:1.8rem;text-align:left;letter-spacing:.02em;text-indent:1em}
@media(max-width:600px){.company-title{font-size:2rem!important}.company-tagline{font-size:4vw;white-space:nowrap}.company-text{font-size:0.97rem}}
.company-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;max-width:1050px;margin:0 auto}
.strategy-steps{list-style:none;margin-top:1.5rem}
.strategy-steps li{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1.4rem}
.step-num{background:var(--green-dark);color:#fff;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.85rem;flex-shrink:0;margin-top:2px}
.step-body h4{font-size:.95rem;font-weight:700;margin-bottom:.2rem}
.step-body p{font-size:.85rem;color:var(--muted)}
.strength-list{list-style:none;margin-top:1.5rem}
.strength-list li{padding:10px 0;border-bottom:1px solid var(--border);font-size:.92rem;display:flex;align-items:center;gap:.7rem;color:var(--muted)}
.strength-list li::before{content:'✓';color:var(--green-mid);font-weight:800;font-size:1rem}
.strength-list li:last-child{border-bottom:none}
#contact{background:var(--green-dark);color:#fff;text-align:center}
#contact .section-title{color:#fff}
#contact .section-sub{color:rgba(255,255,255,0.75);margin:0 auto 3rem}
.contact-cards{display:flex;gap:2rem;justify-content:center;flex-wrap:wrap;max-width:900px;margin:0 auto 3rem}
.contact-card{background:rgba(255,255,255,0.09);border:1px solid rgba(255,255,255,0.15);border-radius:12px;padding:28px 36px;min-width:200px;flex:1}
.contact-card-icon{width:32px;height:32px;margin:0 auto .6rem}
.contact-card-icon svg{width:32px;height:32px}
.contact-card-label{font-size:.78rem;letter-spacing:.14em;opacity:.65;margin-bottom:.4rem;text-transform:uppercase}
.contact-card-value{font-size:1rem;font-weight:700;word-break:break-all}
.contact-card-value a{color:var(--gold);text-decoration:none}
.contact-card-value a:hover{text-decoration:underline}
.contact-note{font-size:.85rem;color:rgba(255,255,255,0.6);margin-top:.5rem}
.contact-card.insta{display:flex;flex-direction:column;align-items:center}
.insta-qr{width:110px;height:110px;object-fit:contain;background:#fff;border-radius:8px;padding:6px;margin-bottom:.6rem}
footer{background:#111;color:rgba(255,255,255,0.45);text-align:center;padding:24px 5%;font-size:.82rem}
footer strong{color:rgba(255,255,255,0.7)}
.nav-hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;cursor:pointer;padding:6px;z-index:1100}
.nav-hamburger span{display:block;width:24px;height:2px;background:#fff;border-radius:2px;transition:all .3s}
.nav-hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-hamburger.open span:nth-child(2){opacity:0}
.nav-hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-menu{display:none;position:fixed;top:64px;left:0;right:0;background:rgba(30,70,38,0.98);backdrop-filter:blur(12px);z-index:999;padding:1.5rem 5% 2rem;flex-direction:column;gap:0}
.mobile-menu.open{display:flex}
.mobile-menu a{color:rgba(255,255,255,0.9);text-decoration:none;font-size:1.05rem;font-weight:600;letter-spacing:.04em;padding:14px 0;border-bottom:1px solid rgba(255,255,255,0.1);transition:color .2s}
.mobile-menu a:last-child{border-bottom:none}
.mobile-menu a:hover{color:var(--gold)}
.fade-up{opacity:0;transform:translateY(30px);transition:opacity .6s ease,transform .6s ease}
.fade-up.visible{opacity:1;transform:translateY(0)}
@media(max-width:900px){.about-grid,.company-grid{grid-template-columns:1fr;gap:2.5rem}.perf-grid{grid-template-columns:1fr 1fr}.usecase-grid{grid-template-columns:1fr 1fr}.certs-grid{grid-template-columns:1fr}}
@media(max-width:600px){nav{padding:0 4%}.nav-links{display:none}.nav-hamburger{display:flex}.nav-logo-svg{height:54px}.nav-logo-text{font-size:1.35rem;margin-top:4px}section{padding:70px 5%}.hero{padding:100px 5% 60px}.hero .hero-subtitle{transform:translateX(0)!important;font-size:7.5vw!important;white-space:nowrap!important}.hero h1{font-size:7.5vw!important;white-space:nowrap!important;margin-top:-0.5rem!important}.hero p{font-size:0.88rem!important;max-width:100%!important}.hero-meta span{display:block}.btn-outline{margin-left:0;margin-top:.8rem;display:block}.perf-grid{grid-template-columns:1fr;gap:1rem}.usecase-grid{grid-template-columns:1fr}.contact-cards{flex-direction:column;gap:1rem}.contact-card{min-width:unset;padding:22px 24px}.insta-qr{width:130px;height:130px}.certs-grid{grid-template-columns:1fr}.company-grid{grid-template-columns:1fr;gap:2rem}
.compare-table{font-size:.78rem}
.compare-table th{padding:10px 6px;font-size:.75rem}
.compare-table td{padding:10px 6px}
.compare-table td:first-child,.compare-table th:first-child{width:32%}
}
#main,.main,#content,.content{max-width:100%!important;padding:0!important;margin:0!important;width:100%!important}
.entry-content{padding:0!important;margin:0!important;max-width:100%!important}
.entry-title,.page-title,h1.entry-title{display:none!important}
.breadcrumb,#breadcrumb,.cocoon-breadcrumb{display:none!important}
#wrapper{padding-top:0!important}
.article{padding:0!important;margin:0!important}

/* === Cocoon layout overrides === */
.content-in,.content-in.wrap,#content-in{max-width:100%!important;width:100%!important;padding:0!important;}
#header,.header,.header.cf,.header-container,.header-container-in{display:none!important;}
#navi,.navi.cf{display:none!important;}
#footer,.footer,.footer-container,.footer-wrap{display:none!important;}
#navi-footer,.navi-footer{display:none!important;}
nav:not(#navi):not(#navi-footer){width:100%!important;left:0!important;box-sizing:border-box!important;}

/* === Text contrast fixes === */
.contact-card-label{opacity:1!important;color:rgba(255,255,255,0.95)!important;}
.contact-note{color:rgba(255,255,255,0.9)!important;}
.perf-desc{color:rgba(255,255,255,0.95)!important;}
.perf-unit{color:rgba(255,255,255,0.92)!important;}
.section-sub{color:rgba(255,255,255,0.9)!important;}
#performance .section-sub{color:rgba(255,255,255,0.95)!important;}
/* === TOC collapsed by default === */
.toc-content{display:none;}
.toc-checkbox:checked~.toc-content{display:block;}

/* === Company vision block === */
.company-vision{text-align:center;padding:2.5rem 1.5rem 2rem;max-width:760px;margin:0 auto 2.5rem;}
.vision-text{font-size:1.45rem;font-weight:800;color:var(--green-dark,#1a4a2e);line-height:1.5;margin-bottom:1.2rem;letter-spacing:0.02em;}
.vision-body{font-size:0.97rem;color:#444;line-height:1.9;font-weight:400;}

/* === Compare table header fix === */
.compare-table th{background:transparent!important;color:#fff!important;}
.compare-table td{background:transparent!important;}

/* === Section title background fix (Cocoon h2 override) === */
.section-title{background:transparent!important;padding:0!important;}
/* === Section-sub color fix for light-background sections === */
#compare .section-sub,#certs .section-sub,#usecases .section-sub,#about .section-sub{color:rgba(50,50,50,0.85)!important;}

/* === Compare table text alignment === */
.compare-table td,.compare-table th{text-align:left!important;}

/* === 横屏手机 nav 修复 === */
@media (max-height: 500px) {
  nav { height: 56px; }
  .nav-logo-svg { height: 36px; }
  .nav-logo-text { font-size: 0.95rem; margin-top: 0; line-height: 1; }
  .nav-links { display: none; }
  .nav-hamburger { display: flex; }
  .mobile-menu { top: 56px; }
  .hero .hero-subtitle { transform: translateX(0) !important; }
}
/* === Hero product navigation === */
.hero-product-nav{display:flex;gap:1.2rem;justify-content:center;margin:1.2rem 0 2rem;flex-wrap:wrap}
.hero-product-link{color:#fff;border:2px solid rgba(255,255,255,0.7);border-radius:6px;padding:10px 28px;font-size:1rem;font-weight:700;text-decoration:none;letter-spacing:.04em;transition:all .2s}
.hero-product-link:hover{background:rgba(255,255,255,0.15)}
/* === フェンス section === */
#fence{background:var(--brown-light)}
.fence-intro{max-width:780px;margin:0 auto 3rem;text-align:center;color:var(--muted);font-size:.97rem;line-height:1.8}
.fence-specs{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin:2rem auto 3rem}
.fence-spec-chip{background:var(--green-light);color:var(--green-dark);font-size:.82rem;font-weight:700;padding:6px 16px;border-radius:20px}
.fence-color-section{text-align:center;margin-top:3rem}
.fence-color-section h3{font-size:1.1rem;font-weight:700;margin-bottom:1.5rem;color:var(--text)}
.fence-color-grid{display:flex;gap:2.5rem;justify-content:center;flex-wrap:wrap}
.fence-color-item{text-align:center}
.fence-color-label{font-size:.95rem;font-weight:600;color:var(--text)}
.fence-img-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;max-width:860px;margin:0 auto 3rem}
.fence-img-grid img{width:100%;border-radius:12px;box-shadow:0 8px 28px rgba(0,0,0,0.12);display:block}
@media(max-width:600px){.hero-product-link{font-size:.88rem;padding:8px 18px}.fence-img-grid{grid-template-columns:1fr}}
/* === Merged PRODUCT section === */
#product { background: #fff; }
.product-entry { max-width: 1100px; margin: 0 auto 4rem; }
.product-entry-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
.product-entry-grid.reverse { direction: rtl; }
.product-entry-grid.reverse > * { direction: ltr; }
.product-entry-img { border-radius: 12px; overflow: hidden; box-shadow: 0 20px 60px rgba(0,0,0,0.14); }
.product-entry-img img { width: 100%; display: block; }
.product-entry-name { font-size: 1.4rem; font-weight: 800; color: var(--green-dark); margin-bottom: 1rem; }
.product-entry-body p { color: var(--muted); margin-bottom: 1rem; font-size: .97rem; }
.product-entry-divider { border: none; border-top: 2px solid var(--border); max-width: 1100px; margin: 1rem auto 4rem; }
.fence-img-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.fence-img-pair img { width: 100%; border-radius: 10px; box-shadow: 0 8px 24px rgba(0,0,0,0.12); display: block; }
@media(max-width:768px) {
  .product-entry-grid, .product-entry-grid.reverse { grid-template-columns: 1fr; direction: ltr; gap: 2rem; }
}
/* === アンカーリンクのオフセット修正（固定ナビ対応） === */
#decking,
#fence,
#product,
#compare,
#performance,
#usecases,
#certs,
#company,
#contact {
  scroll-margin-top: 80px;
}
/* === モバイル：フェンス画像をテキストの後ろに移動 === */
@media(max-width: 768px) {
  .product-entry-grid.reverse > *:first-child { order: 2; }
  .product-entry-grid.reverse > *:last-child  { order: 1; }
}
/* === フェンス画像：モバイル専用位置調整 === */
.fence-img-pair-desktop { display: block; }
.fence-img-pair-mobile  { display: none; }
@media(max-width: 768px) {
  .fence-img-pair-desktop { display: none; }
  .fence-img-pair-mobile {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin: 1.5rem 0;
  }
  .fence-img-pair-mobile img {
    width: 100%;
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
    display: block;
  }
}
/* フェンス：背景を少し広げる（画面端まで伸ばさない） */
#fence {
  padding-top: 3rem !important;
  padding-bottom: 3rem !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  position: static !important;
  left: auto !important;
  width: auto !important;
  max-width: none !important;
  border-radius: 8px !important;
}

#fence .product-entry-grid {
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
}

#product {
  overflow-x: hidden;
}