/*
Theme Name: Michinoku Kikaku
Theme URI: https://michinokukikaku.jp
Author: 株式会社ミチノクキカク
Author URI: https://michinokukikaku.jp
Description: バズるは、売らない。売れるを、つくる。東北最大級Webマーケティング会社のコーポレートサイトテーマ
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: michinoku
*/

/* ══════════════════════════════════════
   VARIABLES & RESET
   ══════════════════════════════════════ */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --brand-green:#5cb531;--brand-gold:#dfb624;--brand-gray:#595757;
  --green-deep:#2a5e1a;--green-dark:#3a7d22;--green-light:#eef6e8;--green-glow:#6ec93e;
  --gold-light:#f8f0d4;--gold-dark:#b8941e;--gold-shine:#e8cc5a;
  --white:#fcfcfa;--off-white:#f5f4f0;--cream:#eae8e1;
  --charcoal:#1c1c1c;--dark:#2a2a2a;--mid-gray:#6e6e6e;--light-gray:#a8a8a4;--border:#dddbd5;
  --ease-out-expo:cubic-bezier(.16,1,.3,1);
}
html{font-size:16px;scroll-behavior:smooth;overflow-x:hidden}
body{font-family:'Noto Sans JP',sans-serif;background:var(--white);color:var(--charcoal);-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{text-decoration:none;color:inherit}
img{max-width:100%;height:auto;display:block}
::selection{background:var(--green-light);color:var(--green-deep)}
.en{font-family:'DM Sans',sans-serif}
.serif{font-family:'Cormorant Garamond',serif}

/* ══════════════════════════════════════
   NAVIGATION
   ══════════════════════════════════════ */
.nav{position:fixed;top:0;left:0;width:100%;z-index:1000;padding:24px 56px;display:flex;justify-content:space-between;align-items:center;transition:all .6s var(--ease-out-expo)}
.nav.scrolled{background:rgba(252,252,250,.94);backdrop-filter:blur(24px);padding:16px 56px;border-bottom:1px solid var(--border)}
.nav-logo{display:flex;align-items:center;gap:14px}
.nav-logo img{height:36px;width:auto}
.nav-logo-text{font-weight:700;font-size:.88rem;letter-spacing:.06em;color:var(--charcoal)}
.nav-logo-text small{display:block;font-family:'DM Sans',sans-serif;font-size:.55rem;font-weight:400;letter-spacing:.12em;color:var(--brand-gray);margin-top:1px}

/* WordPress menu - FULL RESET */
.nav-links{display:flex;align-items:center;gap:0}
.nav-links ul,
.nav-links .nav-menu,
.nav-links .menu{
  list-style:none!important;
  display:flex!important;
  align-items:center!important;
  gap:36px!important;
  margin:0!important;
  padding:0!important;
  flex-direction:row!important;
}
.nav-links li,
.nav-links .menu-item{
  list-style:none!important;
  margin:0!important;
  padding:0!important;
  display:block!important;
}
.nav-links li a,
.nav-links .menu-item a{
  font-size:.8rem;font-weight:500;color:var(--mid-gray);
  letter-spacing:.04em;transition:color .3s;position:relative;
  display:block;padding:0;
}
.nav-links li a::after,
.nav-links .menu-item a::after{
  content:'';position:absolute;bottom:-4px;left:0;
  width:0;height:1.5px;background:var(--brand-green);
  transition:width .4s var(--ease-out-expo);
}
.nav-links li a:hover,
.nav-links .menu-item a:hover{color:var(--charcoal)}
.nav-links li a:hover::after,
.nav-links .menu-item a:hover::after{width:100%}
.nav-links .sub-menu{display:none!important}
.nav-cta{
  padding:10px 28px!important;background:var(--brand-green)!important;
  color:var(--white)!important;font-size:.78rem!important;font-weight:600!important;
  border-radius:6px!important;letter-spacing:.06em;
  transition:all .3s ease;border:none;cursor:pointer;
  margin-left:36px;
}
.nav-cta::after{display:none!important}
.nav-cta:hover{background:var(--green-dark)!important;transform:translateY(-1px);color:var(--white)!important}

/* Mobile overlay menu */
.mobile-overlay ul,
.mobile-overlay .mobile-menu,
.mobile-overlay .menu{
  list-style:none!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  gap:28px!important;
  margin:0!important;
  padding:0!important;
}
.mobile-overlay li,
.mobile-overlay .menu-item{
  list-style:none!important;
  margin:0!important;
  padding:0!important;
}
.mobile-overlay li a,
.mobile-overlay .menu-item a{
  font-size:1.1rem;font-weight:500;color:var(--charcoal);
  letter-spacing:.06em;padding:12px 0;transition:color .3s;
}
.mobile-overlay li a:hover{color:var(--brand-green)}
.mobile-overlay .sub-menu{display:none!important}

/* Mobile menu toggle - see responsive section below for full implementation */

/* ══════════════════════════════════════
   HERO
   ══════════════════════════════════════ */
.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:140px 56px 80px;position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;top:-15%;right:-5%;width:700px;height:700px;background:radial-gradient(circle,rgba(92,181,49,.06) 0%,transparent 65%);border-radius:50%;pointer-events:none}
.hero-label{font-size:.7rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--brand-green);margin-bottom:28px;display:flex;align-items:center;gap:12px;opacity:0;transform:translateY(20px);animation:fadeUp .8s var(--ease-out-expo) .3s forwards}
.hero-label::before{content:'';width:32px;height:1.5px;background:var(--brand-green)}
.hero-copy{font-size:clamp(2.6rem,5.8vw,4.6rem);font-weight:900;line-height:1.25;letter-spacing:-.02em;margin-bottom:24px;opacity:0;transform:translateY(30px);animation:fadeUp .8s var(--ease-out-expo) .5s forwards}
.hero-copy .green{color:var(--brand-green)}
.hero-sub{font-size:1rem;font-weight:300;line-height:2.1;color:var(--mid-gray);max-width:600px;margin-bottom:48px;opacity:0;transform:translateY(20px);animation:fadeUp .8s var(--ease-out-expo) .7s forwards}

/* ══════════════════════════════════════
   NO.1 MEDALLIONS
   ══════════════════════════════════════ */
.hero-badges{display:flex;gap:24px;flex-wrap:wrap;margin-bottom:56px;opacity:0;transform:translateY(20px);animation:fadeUp .8s var(--ease-out-expo) .85s forwards}
.medallion{display:flex;align-items:center;gap:16px;padding:8px 12px;transition:transform .3s ease}
.medallion:hover{transform:translateY(-2px)}
.medallion-icon{width:72px;height:72px;flex-shrink:0}
.medallion-text{font-size:.73rem;font-weight:400;line-height:1.6;color:var(--mid-gray)}
.medallion-text strong{display:block;font-size:1.05rem;font-weight:700;color:var(--charcoal);font-family:'DM Sans','Noto Sans JP',sans-serif;margin-top:2px}

/* ══════════════════════════════════════
   METRICS
   ══════════════════════════════════════ */
.hero-metrics{display:flex;gap:48px;opacity:0;transform:translateY(20px);animation:fadeUp .8s var(--ease-out-expo) 1s forwards}
.metric-number{font-family:'DM Sans',sans-serif;font-size:2.6rem;font-weight:700;color:var(--charcoal);line-height:1;display:flex;align-items:baseline;gap:4px}
.metric-number .unit{font-size:.85rem;font-weight:500;color:var(--mid-gray)}
.metric-label{font-size:.7rem;font-weight:400;color:var(--light-gray);margin-top:8px;letter-spacing:.04em}
.hero-scroll{position:absolute;bottom:36px;left:56px;display:flex;align-items:center;gap:12px;font-size:.68rem;font-weight:500;letter-spacing:.15em;color:var(--light-gray);text-transform:uppercase;opacity:0;animation:fadeUp .8s var(--ease-out-expo) 1.3s forwards}
.hero-scroll .line{width:40px;height:1px;background:var(--border);position:relative;overflow:hidden}
.hero-scroll .line::after{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:var(--brand-green);animation:scrollLine 2s ease-in-out infinite}

@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}
@keyframes scrollLine{0%{left:-100%}50%{left:0}100%{left:100%}}

/* ══════════════════════════════════════
   CLIENT LOGOS
   ══════════════════════════════════════ */
.logo-belt{padding:40px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);overflow:hidden}
.logo-belt-label{text-align:center;font-size:.65rem;font-weight:500;letter-spacing:.18em;color:var(--light-gray);margin-bottom:24px;text-transform:uppercase}
.logo-track-wrapper{overflow:hidden;position:relative}
.logo-track-wrapper::before,.logo-track-wrapper::after{content:'';position:absolute;top:0;width:80px;height:100%;z-index:2;pointer-events:none}
.logo-track-wrapper::before{left:0;background:linear-gradient(90deg,var(--white),transparent)}
.logo-track-wrapper::after{right:0;background:linear-gradient(-90deg,var(--white),transparent)}
.logo-track{display:flex;gap:0;animation:logoScroll 40s linear infinite;width:max-content}
.client-logo{display:flex;align-items:center;justify-content:center;padding:0 36px;height:48px;font-weight:700;font-size:.82rem;color:var(--light-gray);white-space:nowrap;letter-spacing:.04em;opacity:.5;transition:opacity .3s;border-right:1px solid var(--border)}
.client-logo:hover{opacity:.9}
.client-logo img{height:28px;width:auto;opacity:.5;filter:grayscale(1);transition:all .3s}
.client-logo:hover img{opacity:.9;filter:grayscale(0)}
@keyframes logoScroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* ══════════════════════════════════════
   SECTIONS COMMON
   ══════════════════════════════════════ */
.section{padding:120px 56px}
.section-label{font-family:'DM Sans',sans-serif;font-size:.66rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--brand-green);margin-bottom:12px;display:flex;align-items:center;gap:10px}
.section-label::before{content:'';width:20px;height:1.5px;background:var(--brand-green)}
.section-title{font-size:clamp(1.6rem,3vw,2.4rem);font-weight:700;line-height:1.45;margin-bottom:20px;letter-spacing:-.01em}
.section-desc{font-size:.9rem;font-weight:300;line-height:2.1;color:var(--mid-gray);max-width:600px}
.reveal{opacity:0;transform:translateY(40px);transition:all .8s var(--ease-out-expo)}
.reveal.visible{opacity:1;transform:translateY(0)}

/* ══════════════════════════════════════
   PHILOSOPHY
   ══════════════════════════════════════ */
.philosophy{background:var(--charcoal);color:var(--white);padding:120px 56px;position:relative;overflow:hidden}
.philosophy::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,rgba(92,181,49,.04) 0%,transparent 50%,rgba(223,182,36,.03) 100%);pointer-events:none}
.philosophy .section-label{color:var(--green-glow)}.philosophy .section-label::before{background:var(--green-glow)}
.philosophy-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin-top:56px;align-items:center}
.philosophy-text{font-size:.95rem;font-weight:300;line-height:2.2;color:rgba(255,255,255,.7)}
.philosophy-text strong{color:var(--white);font-weight:600}
.philosophy-text .highlight{color:var(--green-glow);font-weight:500}
.philosophy-quote{font-size:clamp(1.3rem,2.2vw,1.8rem);font-weight:200;line-height:1.8;letter-spacing:.03em;position:relative;padding-left:32px;border-left:2px solid var(--brand-gold)}
.philosophy-quote em{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.1em;color:var(--brand-gold)}

/* ══════════════════════════════════════
   SERVICES
   ══════════════════════════════════════ */
.services-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:56px}
.service-card{background:var(--off-white);border:1px solid var(--border);border-radius:14px;padding:48px 40px;transition:all .5s var(--ease-out-expo);position:relative;overflow:hidden;cursor:pointer}
.service-card::before{content:'';position:absolute;top:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,var(--brand-green),var(--brand-gold));transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease-out-expo)}
.service-card:hover{background:var(--white);border-color:rgba(92,181,49,.3);transform:translateY(-4px);box-shadow:0 20px 60px rgba(0,0,0,.06)}
.service-card:hover::before{transform:scaleX(1)}
.service-num{font-family:'DM Sans',sans-serif;font-size:.68rem;font-weight:600;color:var(--brand-green);letter-spacing:.1em;margin-bottom:20px}
.service-card h3{font-size:1.15rem;font-weight:700;margin-bottom:14px;line-height:1.5}
.service-card p{font-size:.82rem;font-weight:300;line-height:1.9;color:var(--mid-gray)}
.service-tag{display:inline-block;margin-top:20px;font-size:.68rem;font-weight:500;color:var(--brand-green);letter-spacing:.06em;padding:5px 14px;border:1px solid var(--brand-green);border-radius:20px;transition:all .3s ease}
.service-card:hover .service-tag{background:var(--brand-green);color:var(--white)}

/* ══════════════════════════════════════
   MEDIA SHOWCASE
   ══════════════════════════════════════ */
.media-section{background:var(--off-white)}
.media-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:56px}
.media-card{background:var(--white);border:1px solid var(--border);border-radius:14px;overflow:hidden;transition:all .5s var(--ease-out-expo)}
.media-card:hover{transform:translateY(-6px);box-shadow:0 24px 64px rgba(0,0,0,.07)}
.media-visual{height:200px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.media-visual.aoi{background:linear-gradient(135deg,#ff9a56 0%,#ff6b6b 50%,#ee5a24 100%)}
.media-visual.ttv{background:linear-gradient(135deg,#1a1a2e 0%,#16213e 50%,#0f3460 100%)}
.media-visual.vivid{background:linear-gradient(135deg,var(--brand-green) 0%,#7dd956 100%)}
.media-visual .media-icon{font-size:2.8rem;color:rgba(255,255,255,.9);font-family:'Cormorant Garamond',serif;font-weight:600;font-style:italic;text-shadow:0 2px 20px rgba(0,0,0,.2)}
.media-visual .platform-badge{position:absolute;top:14px;right:14px;background:rgba(255,255,255,.2);backdrop-filter:blur(10px);padding:5px 12px;border-radius:20px;font-size:.6rem;font-weight:600;color:var(--white);letter-spacing:.08em}
.media-visual .no1-media-badge{position:absolute;top:14px;left:14px;width:48px;height:48px}
.media-info{padding:28px}
.media-name{font-size:.95rem;font-weight:700;margin-bottom:4px}
.media-handle{font-family:'DM Sans',sans-serif;font-size:.75rem;color:var(--light-gray);margin-bottom:14px}
.media-stats{display:flex;gap:18px;margin-bottom:14px;flex-wrap:wrap}
.media-stat{font-family:'DM Sans',sans-serif;font-size:.73rem;font-weight:600;color:var(--green-deep)}
.media-stat .stat-label{font-weight:400;color:var(--light-gray);font-size:.6rem;display:block;margin-top:2px}
.media-desc{font-size:.78rem;font-weight:300;line-height:1.8;color:var(--mid-gray)}

/* ══════════════════════════════════════
   CASE STUDIES
   ══════════════════════════════════════ */
.cases-list{margin-top:56px}
.case-item{display:grid;grid-template-columns:auto 1fr auto;gap:28px;align-items:center;padding:28px 0;border-bottom:1px solid var(--border);transition:all .4s var(--ease-out-expo);cursor:pointer}
.case-item:first-child{border-top:1px solid var(--border)}
.case-item:hover{padding-left:16px}
.case-item:hover .case-arrow{transform:translateX(4px);color:var(--brand-green)}
.case-num{font-family:'DM Sans',sans-serif;font-size:.7rem;font-weight:500;color:var(--light-gray);width:28px}
.case-content h3{font-size:1rem;font-weight:600;margin-bottom:6px}
.case-tags{display:flex;gap:6px;flex-wrap:wrap}
.case-tag{font-size:.62rem;font-weight:500;color:var(--mid-gray);padding:3px 10px;background:var(--off-white);border-radius:12px}
.case-arrow{font-family:'DM Sans',sans-serif;font-size:1.1rem;color:var(--light-gray);transition:all .4s var(--ease-out-expo)}

/* ══════════════════════════════════════
   BLOG / COLUMN
   ══════════════════════════════════════ */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:56px}
.blog-card{border:1px solid var(--border);border-radius:14px;overflow:hidden;background:var(--white);transition:all .5s var(--ease-out-expo);cursor:pointer}
.blog-card:hover{transform:translateY(-4px);box-shadow:0 16px 48px rgba(0,0,0,.06)}
.blog-card a{color:inherit}
.blog-thumb{height:170px;background:var(--cream);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.blog-thumb img{width:100%;height:100%;object-fit:cover}
.blog-thumb .blog-cat{position:absolute;top:12px;left:12px;background:var(--brand-green);color:var(--white);font-size:.58rem;font-weight:600;padding:4px 12px;border-radius:12px;letter-spacing:.06em}
.blog-body{padding:22px}
.blog-date{font-family:'DM Sans',sans-serif;font-size:.66rem;color:var(--light-gray);margin-bottom:8px}
.blog-title{font-size:.88rem;font-weight:600;line-height:1.6;margin-bottom:8px}
.blog-excerpt{font-size:.75rem;font-weight:300;line-height:1.8;color:var(--mid-gray)}

/* Blog archive page */
.blog-archive{padding:140px 56px 80px}
.blog-archive-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px}

/* Single post */
.single-post-wrap{padding:140px 56px 80px;max-width:800px;margin:0 auto}
.single-post-wrap h1{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:700;line-height:1.5;margin-bottom:16px}
.single-post-wrap .post-meta{font-size:.78rem;color:var(--light-gray);margin-bottom:48px;padding-bottom:24px;border-bottom:1px solid var(--border)}
.single-post-wrap .post-content{font-size:.95rem;font-weight:300;line-height:2.2;color:var(--dark)}
.single-post-wrap .post-content h2{font-size:1.4rem;font-weight:700;margin:48px 0 16px;padding-left:16px;border-left:3px solid var(--brand-green)}
.single-post-wrap .post-content h3{font-size:1.1rem;font-weight:600;margin:32px 0 12px}
.single-post-wrap .post-content p{margin-bottom:24px}
.single-post-wrap .post-content img{border-radius:8px;margin:24px 0}
.single-post-wrap .post-content a{color:var(--brand-green);border-bottom:1px solid var(--brand-green)}

/* ══════════════════════════════════════
   TEAM
   ══════════════════════════════════════ */
.team-section{background:var(--off-white)}
.team-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:56px}
.team-card{display:grid;grid-template-columns:180px 1fr;gap:28px;align-items:start}
.team-photo{width:180px;height:220px;background:var(--cream);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:.72rem;color:var(--light-gray);border:1px solid var(--border);overflow:hidden}
.team-photo img{width:100%;height:100%;object-fit:cover}
.team-role{font-size:.66rem;font-weight:600;color:var(--brand-green);letter-spacing:.1em;margin-bottom:8px}
.team-name{font-size:1.25rem;font-weight:700;margin-bottom:4px}
.team-name-en{font-family:'DM Sans',sans-serif;font-size:.7rem;color:var(--light-gray);margin-bottom:14px}
.team-bio{font-size:.78rem;font-weight:300;line-height:1.9;color:var(--mid-gray)}

/* ══════════════════════════════════════
   COMPANY
   ══════════════════════════════════════ */
.company-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin-top:56px;align-items:start}
.company-table{width:100%}
.company-row{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--border);font-size:.84rem}
.company-row:first-child{border-top:1px solid var(--border)}
.company-row dt{font-weight:500;color:var(--mid-gray)}
.company-message{font-size:.9rem;font-weight:300;line-height:2.2;color:var(--mid-gray)}
.company-message strong{color:var(--charcoal);font-weight:600}

/* ══════════════════════════════════════
   CTA
   ══════════════════════════════════════ */
.cta-section{background:linear-gradient(135deg,var(--charcoal) 0%,#2a3a2a 100%);color:var(--white);padding:120px 56px;text-align:center;position:relative;overflow:hidden}
.cta-section::before{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:900px;height:900px;background:radial-gradient(circle,rgba(92,181,49,.08) 0%,transparent 55%);border-radius:50%;pointer-events:none}
.cta-section .section-label{color:var(--green-glow);justify-content:center;margin-bottom:20px}
.cta-section .section-label::before{background:var(--green-glow)}
.cta-heading{font-size:clamp(1.6rem,3vw,2.4rem);font-weight:700;line-height:1.5;margin-bottom:24px}
.cta-desc{font-size:.9rem;font-weight:300;color:rgba(255,255,255,.6);line-height:2;margin-bottom:48px;max-width:500px;margin-left:auto;margin-right:auto}
.cta-owl{width:100px;margin:0 auto 32px;opacity:.85}
.cta-btn{display:inline-flex;align-items:center;gap:12px;padding:18px 52px;background:var(--brand-green);color:var(--white);font-size:.88rem;font-weight:600;border-radius:8px;letter-spacing:.04em;transition:all .4s var(--ease-out-expo);border:none;cursor:pointer}
.cta-btn:hover{background:var(--green-glow);transform:translateY(-2px);box-shadow:0 16px 48px rgba(92,181,49,.25)}

/* ══════════════════════════════════════
   OWL FLOAT
   ══════════════════════════════════════ */
.owl-float{position:fixed;bottom:24px;right:24px;z-index:900;width:72px;height:72px;cursor:pointer;transition:transform .3s var(--ease-out-expo);filter:drop-shadow(0 4px 12px rgba(0,0,0,.15));animation:owlBob 3s ease-in-out infinite}
.owl-float:hover{transform:scale(1.1) rotate(-5deg)}
.owl-float img{width:100%;height:100%;object-fit:contain}
.owl-tooltip{position:absolute;bottom:80px;right:0;background:var(--white);color:var(--charcoal);padding:10px 16px;border-radius:10px;font-size:.72rem;font-weight:500;white-space:nowrap;box-shadow:0 4px 20px rgba(0,0,0,.1);border:1px solid var(--border);opacity:0;transform:translateY(8px);transition:all .3s ease;pointer-events:none}
.owl-tooltip::after{content:'';position:absolute;bottom:-6px;right:20px;width:12px;height:12px;background:var(--white);border-right:1px solid var(--border);border-bottom:1px solid var(--border);transform:rotate(45deg)}
.owl-float:hover .owl-tooltip{opacity:1;transform:translateY(0)}
@keyframes owlBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}

/* ══════════════════════════════════════
   FOOTER
   ══════════════════════════════════════ */
.site-footer{padding:56px 56px 36px;border-top:1px solid var(--border);display:grid;grid-template-columns:1fr auto;gap:40px;align-items:end}
.footer-brand{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.footer-brand img{height:28px;width:auto}
.footer-brand-name{font-weight:700;font-size:.85rem}
.footer-addr{font-size:.72rem;color:var(--light-gray);line-height:1.8}
.footer-links,.footer-links ul{list-style:none;display:flex;gap:28px;margin:0;padding:0}
.footer-links a{font-size:.72rem;color:var(--mid-gray);transition:color .3s}
.footer-links a:hover{color:var(--brand-green)}
.footer-copy{grid-column:1/-1;font-family:'DM Sans',sans-serif;font-size:.62rem;color:var(--light-gray);margin-top:20px;padding-top:20px;border-top:1px solid var(--border)}

/* ══════════════════════════════════════
   CONTACT PAGE
   ══════════════════════════════════════ */
.contact-page{padding:140px 56px 80px;max-width:700px;margin:0 auto}
.contact-page h1{font-size:1.8rem;font-weight:700;margin-bottom:32px}
/* Contact Form 7 styles */
.wpcf7 input[type="text"],.wpcf7 input[type="email"],.wpcf7 textarea{
  width:100%;padding:14px 18px;border:1px solid var(--border);border-radius:8px;
  font-family:'Noto Sans JP',sans-serif;font-size:.9rem;
  transition:border-color .3s;background:var(--white);
}
.wpcf7 input:focus,.wpcf7 textarea:focus{outline:none;border-color:var(--brand-green)}
.wpcf7 input[type="submit"]{
  padding:16px 48px;background:var(--brand-green);color:var(--white);
  font-size:.88rem;font-weight:600;border:none;border-radius:8px;
  cursor:pointer;transition:all .3s;
}
.wpcf7 input[type="submit"]:hover{background:var(--green-dark)}
.wpcf7 p{margin-bottom:20px}
.wpcf7 label{font-size:.82rem;font-weight:500;margin-bottom:6px;display:block}

/* ══════════════════════════════════════
   HAMBURGER MENU
   ══════════════════════════════════════ */
.menu-toggle{
  display:none;background:none;border:none;cursor:pointer;
  width:32px;height:32px;position:relative;z-index:1100;
  -webkit-tap-highlight-color:transparent;
}
.menu-toggle span{
  display:block;width:22px;height:2px;background:var(--charcoal);
  position:absolute;left:5px;transition:all .3s ease;
}
.menu-toggle span:nth-child(1){top:8px}
.menu-toggle span:nth-child(2){top:15px}
.menu-toggle span:nth-child(3){top:22px}
.menu-toggle.active span:nth-child(1){top:15px;transform:rotate(45deg)}
.menu-toggle.active span:nth-child(2){opacity:0}
.menu-toggle.active span:nth-child(3){top:15px;transform:rotate(-45deg)}
.mobile-overlay{
  position:fixed;top:0;left:0;width:100%;height:100%;
  background:rgba(252,252,250,.98);backdrop-filter:blur(20px);
  z-index:1050;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:28px;
  opacity:0;pointer-events:none;
  transition:opacity .4s var(--ease-out-expo);
}
.mobile-overlay.active{opacity:1;pointer-events:auto}
.mobile-overlay a{
  font-size:1.1rem;font-weight:500;color:var(--charcoal);
  letter-spacing:.06em;padding:12px 0;transition:color .3s;
}
.mobile-overlay a:hover{color:var(--brand-green)}
.mobile-overlay .nav-cta{margin-top:16px;padding:14px 40px;font-size:.88rem;display:inline-block;border-radius:8px}

/* ══════════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════════ */
@media(max-width:1024px){
  .nav{padding:20px 28px}.nav.scrolled{padding:14px 28px}
  .hero{padding:130px 28px 60px}.section{padding:80px 28px}
  .philosophy{padding:80px 28px}.cta-section{padding:80px 28px}
  .site-footer{padding:40px 28px 28px}
  .philosophy-grid{grid-template-columns:1fr;gap:40px}
  .services-grid{grid-template-columns:1fr 1fr}
  .media-grid{grid-template-columns:1fr 1fr}
  .blog-grid,.blog-archive-grid{grid-template-columns:1fr 1fr}
  .team-grid{grid-template-columns:1fr}
  .team-card{grid-template-columns:160px 1fr;gap:24px}
  .company-grid{grid-template-columns:1fr;gap:40px}
  .hero-badges{gap:16px}
  .hero-metrics{gap:28px;flex-wrap:wrap}
  .metric-number{font-size:2rem}
  .medallion-icon{width:60px;height:60px}
}
@media(max-width:768px){
  .nav-links{display:none!important}
  .menu-toggle{display:block}
  .nav{padding:16px 20px}.nav.scrolled{padding:12px 20px}
  .hero{padding:110px 24px 48px;min-height:auto}
  .hero-copy{font-size:clamp(2rem,7vw,2.8rem)}
  .hero-sub{font-size:.9rem;line-height:1.9}
  .hero-sub br{display:none}
  .section{padding:64px 24px}
  .philosophy{padding:64px 24px}
  .cta-section{padding:64px 24px}
  .services-grid,.media-grid,.blog-grid,.blog-archive-grid{grid-template-columns:1fr}
  .hero-badges{flex-direction:column;gap:12px}
  .medallion{padding:10px 0}
  .medallion-icon{width:56px;height:56px}
  .medallion-text{font-size:.7rem}
  .medallion-text strong{font-size:.92rem}
  .hero-metrics{gap:24px}
  .metric-number{font-size:1.8rem}
  .hero-scroll{display:none}
  .philosophy-quote{font-size:1.15rem;padding-left:20px}
  .philosophy-text br{display:none}
  .service-card{padding:32px 28px}
  .case-item{gap:16px;padding:20px 0}
  .case-content h3{font-size:.9rem}
  .case-tag{font-size:.58rem;padding:2px 8px}
  .team-card{grid-template-columns:120px 1fr;gap:20px}
  .team-photo{width:120px;height:150px}
  .team-name{font-size:1.05rem}
  .team-bio{font-size:.72rem}
  .company-row{grid-template-columns:100px 1fr;font-size:.8rem}
  .company-message{font-size:.82rem}
  .company-message br{display:none}
  .site-footer{grid-template-columns:1fr;gap:24px;padding:32px 24px 24px}
  .footer-links,.footer-links ul{flex-wrap:wrap;gap:16px}
  .cta-heading{font-size:clamp(1.3rem,4vw,1.6rem)}
  .cta-btn{padding:14px 36px;font-size:.82rem}
  .cta-owl{width:80px}
  .section-title{font-size:clamp(1.3rem,4vw,1.8rem)}
  .single-post-wrap{padding:110px 24px 60px}
  .blog-archive{padding:110px 24px 60px}
  .contact-page{padding:110px 24px 60px}
}
@media(max-width:480px){
  .nav{padding:12px 16px}.nav.scrolled{padding:10px 16px}
  .nav-logo img{height:28px}
  .nav-logo-text{font-size:.78rem}
  .nav-logo-text small{font-size:.48rem}
  .hero{padding:96px 16px 36px}
  .hero-label{font-size:.6rem;margin-bottom:20px}
  .hero-copy{font-size:clamp(1.7rem,8vw,2.2rem);margin-bottom:16px}
  .hero-sub{font-size:.82rem;margin-bottom:32px;line-height:1.85}
  .medallion-icon{width:48px;height:48px}
  .medallion-text{font-size:.65rem}
  .medallion-text strong{font-size:.82rem}
  .hero-metrics{gap:16px}
  .metric-number{font-size:1.5rem}
  .metric-number .unit{font-size:.7rem}
  .metric-label{font-size:.6rem}
  .section{padding:48px 16px}
  .philosophy{padding:48px 16px}
  .cta-section{padding:48px 16px}
  .section-label{font-size:.58rem}
  .section-title{font-size:1.2rem}
  .section-desc{font-size:.8rem}
  .philosophy-text{font-size:.82rem;line-height:2}
  .philosophy-quote{font-size:1rem;line-height:1.7;padding-left:16px}
  .service-card{padding:28px 20px}
  .service-card h3{font-size:1rem}
  .service-card p{font-size:.76rem}
  .media-visual{height:160px}
  .media-info{padding:20px}
  .blog-thumb{height:140px}
  .blog-body{padding:16px}
  .blog-title{font-size:.82rem}
  .team-card{grid-template-columns:1fr}
  .team-photo{width:100%;height:200px}
  .company-row{grid-template-columns:90px 1fr;font-size:.76rem;gap:12px;padding:12px 0}
  .site-footer{padding:28px 16px 20px}
  .footer-brand-name{font-size:.78rem}
  .footer-addr{font-size:.65rem}
  .footer-links a{font-size:.65rem}
  .footer-copy{font-size:.55rem}
  .owl-float{width:52px;height:52px;bottom:12px;right:12px}
  .cta-owl{width:64px}
  .cta-heading{font-size:1.15rem}
  .cta-btn{padding:12px 28px;font-size:.78rem}
  .logo-belt{padding:28px 0}
  .logo-belt-label{font-size:.55rem;margin-bottom:16px}
  .client-logo{padding:0 20px;height:40px;font-size:.7rem}
  .single-post-wrap{padding:96px 16px 48px}
  .single-post-wrap h1{font-size:1.3rem}
  .single-post-wrap .post-content{font-size:.85rem}
  .blog-archive{padding:96px 16px 48px}
  .contact-page{padding:96px 16px 48px}
}
/* ══════════════════════════════════════
   PAGE HERO (shared by all sub-pages)
   ══════════════════════════════════════ */
.page-hero{
  padding:160px 56px 64px;
  position:relative;
}
.page-hero-inner{
  max-width:800px;
}
.page-hero-title{
  font-size:clamp(1.8rem,4vw,2.6rem);
  font-weight:700;
  line-height:1.4;
  letter-spacing:-.01em;
}

/* ══════════════════════════════════════
   GENERIC PAGE (会社概要, お問い合わせ等)
   ══════════════════════════════════════ */
.page-content-wrap{
  padding:0 56px 80px;
  max-width:900px;
}
.page-content{
  font-size:.95rem;
  font-weight:300;
  line-height:2.2;
  color:var(--dark);
}
.page-content h2{
  font-size:1.4rem;
  font-weight:700;
  margin:48px 0 16px;
  padding-left:16px;
  border-left:3px solid var(--brand-green);
}
.page-content h3{
  font-size:1.1rem;
  font-weight:600;
  margin:32px 0 12px;
}
.page-content p{margin-bottom:24px}
.page-content img{border-radius:8px;margin:24px 0}
.page-content a{color:var(--brand-green);border-bottom:1px solid var(--brand-green)}
.page-content ul,.page-content ol{margin:0 0 24px 24px}
.page-content li{margin-bottom:8px;line-height:1.9}
.page-content table{width:100%;border-collapse:collapse;margin:24px 0}
.page-content table th,.page-content table td{
  padding:12px 16px;border-bottom:1px solid var(--border);
  font-size:.85rem;text-align:left;
}
.page-content table th{font-weight:600;color:var(--mid-gray);width:140px}

/* Contact Form 7 */
.page-content .wpcf7{margin-top:16px}
.page-content .wpcf7 p{margin-bottom:20px}
.page-content .wpcf7 label{font-size:.82rem;font-weight:500;display:block;margin-bottom:6px}
.page-content .wpcf7 input[type="text"],
.page-content .wpcf7 input[type="email"],
.page-content .wpcf7 input[type="tel"],
.page-content .wpcf7 textarea{
  width:100%;padding:14px 18px;
  border:1px solid var(--border);border-radius:8px;
  font-family:'Noto Sans JP',sans-serif;font-size:.9rem;
  transition:border-color .3s;background:var(--white);
}
.page-content .wpcf7 input:focus,
.page-content .wpcf7 textarea:focus{
  outline:none;border-color:var(--brand-green);
}
.page-content .wpcf7 textarea{min-height:180px;resize:vertical}
.page-content .wpcf7 input[type="submit"]{
  padding:16px 48px;background:var(--brand-green);color:var(--white);
  font-size:.88rem;font-weight:600;border:none;border-radius:8px;
  cursor:pointer;transition:all .3s;letter-spacing:.04em;
}
.page-content .wpcf7 input[type="submit"]:hover{
  background:var(--green-dark);transform:translateY(-1px);
}

/* ══════════════════════════════════════
   SINGLE ARTICLE (コラム記事)
   ══════════════════════════════════════ */
.post-cat-badge{
  display:inline-block;
  background:var(--brand-green);color:var(--white);
  font-size:.65rem;font-weight:600;
  padding:4px 14px;border-radius:12px;
  margin-bottom:16px;letter-spacing:.04em;
}
.post-meta-line{
  font-size:.8rem;color:var(--light-gray);
  margin-top:12px;
}
.single-article{
  max-width:800px;
  padding:0 56px 80px;
}
.single-eyecatch{
  margin-bottom:40px;
  border-radius:12px;
  overflow:hidden;
}
.single-eyecatch img{width:100%;height:auto}
.single-body{
  font-size:.95rem;
  font-weight:300;
  line-height:2.2;
  color:var(--dark);
}
.single-body h2{
  font-size:1.4rem;font-weight:700;
  margin:48px 0 16px;
  padding-left:16px;
  border-left:3px solid var(--brand-green);
}
.single-body h3{
  font-size:1.1rem;font-weight:600;
  margin:32px 0 12px;
}
.single-body p{margin-bottom:24px}
.single-body img{border-radius:8px;margin:24px 0}
.single-body a{color:var(--brand-green);border-bottom:1px solid var(--brand-green)}
.single-body ul,.single-body ol{margin:0 0 24px 24px}
.single-body li{margin-bottom:8px;line-height:1.9}
.single-body blockquote{
  margin:32px 0;padding:24px 28px;
  background:var(--off-white);border-left:3px solid var(--brand-gold);
  border-radius:0 8px 8px 0;
  font-style:italic;color:var(--mid-gray);
}

/* 前後記事ナビ */
.post-nav{
  display:grid;grid-template-columns:1fr 1fr;
  gap:20px;margin-top:64px;padding-top:32px;
  border-top:1px solid var(--border);
}
.post-nav-link{
  padding:20px;border:1px solid var(--border);border-radius:10px;
  transition:all .4s var(--ease-out-expo);
}
.post-nav-link:hover{
  border-color:var(--brand-green);
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(0,0,0,.05);
}
.post-nav-next{text-align:right}
.post-nav-label{
  font-size:.68rem;font-weight:500;
  color:var(--brand-green);letter-spacing:.06em;
  display:block;margin-bottom:6px;
}
.post-nav-title{
  font-size:.82rem;font-weight:500;
  color:var(--charcoal);line-height:1.5;
}
.back-to-archive{
  margin-top:32px;text-align:center;
}
.back-link{
  font-size:.82rem;font-weight:500;
  color:var(--brand-green);
  transition:opacity .3s;
}
.back-link:hover{opacity:.7}

/* ══════════════════════════════════════
   BLOG ARCHIVE (コラム一覧)
   ══════════════════════════════════════ */
.archive-wrap{
  padding:0 56px 80px;
}
.blog-archive-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.pagination-wrap{
  margin-top:48px;text-align:center;
}
.pagination-wrap .nav-links{
  display:flex!important;justify-content:center;
  gap:8px;flex-direction:row!important;
}
.pagination-wrap .page-numbers{
  display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;border-radius:8px;
  font-family:'DM Sans',sans-serif;font-size:.82rem;font-weight:500;
  color:var(--mid-gray);border:1px solid var(--border);
  transition:all .3s;
}
.pagination-wrap .page-numbers:hover,
.pagination-wrap .page-numbers.current{
  background:var(--brand-green);color:var(--white);
  border-color:var(--brand-green);
}
.no-posts{
  text-align:center;padding:80px 0;
  font-size:.9rem;color:var(--light-gray);
}

/* ══════════════════════════════════════
   RESPONSIVE for sub-pages
   ══════════════════════════════════════ */
@media(max-width:768px){
  .page-hero{padding:110px 24px 48px}
  .page-content-wrap{padding:0 24px 60px}
  .single-article{padding:0 24px 60px}
  .archive-wrap{padding:0 24px 60px}
  .blog-archive-grid{grid-template-columns:1fr}
  .post-nav{grid-template-columns:1fr;gap:12px}
  .post-nav-next{text-align:left}
}
@media(max-width:480px){
  .page-hero{padding:96px 16px 36px}
  .page-hero-title{font-size:1.4rem}
  .page-content-wrap{padding:0 16px 48px}
  .single-article{padding:0 16px 48px}
  .archive-wrap{padding:0 16px 48px}
  .page-content,.single-body{font-size:.85rem}
  .page-content h2,.single-body h2{font-size:1.15rem}
}
/* ══════════════════════════════════════
   COMPANY INTRO (page-company.php)
   ══════════════════════════════════════ */
.company-intro-lead{
  font-size:clamp(1.4rem,2.5vw,1.8rem);
  font-weight:700;
  color:var(--brand-green);
  margin-bottom:32px;
  line-height:1.6;
}
.company-intro-text{
  font-size:.95rem;
  font-weight:300;
  line-height:2.2;
  color:var(--mid-gray);
  margin-bottom:20px;
}
.company-intro-text br{display:inline}
@media(max-width:480px){
  .company-intro-lead{font-size:1.2rem}
  .company-intro-text{font-size:.85rem}
  .company-intro-text br{display:none}
}
/* ══════════════════════════════════════
   SINGLE ARTICLE - FORCE OVERRIDE
   ══════════════════════════════════════ */
.single-article{
  max-width:800px!important;
  padding:40px 56px 80px!important;
  margin:0 auto!important;
}
.single-body,
.single-body *{
  font-family:'Noto Sans JP',sans-serif!important;
}
.single-body{
  font-size:.95rem!important;
  font-weight:300!important;
  line-height:2.2!important;
  color:#2a2a2a!important;
}
.single-body p,
.single-body .wp-block-paragraph{
  font-size:.95rem!important;
  font-weight:300!important;
  line-height:2.2!important;
  margin-bottom:24px!important;
  color:#2a2a2a!important;
}
.single-body h2,
.single-body .wp-block-heading{
  font-size:1.4rem!important;
  font-weight:700!important;
  margin:48px 0 16px!important;
  padding:0 0 0 16px!important;
  border-left:3px solid #5cb531!important;
  line-height:1.5!important;
  color:#1c1c1c!important;
}
.single-body h3{
  font-size:1.1rem!important;
  font-weight:600!important;
  margin:32px 0 12px!important;
  color:#1c1c1c!important;
}
.single-body strong{
  font-weight:600!important;
  color:#1c1c1c!important;
}
.single-body a{
  color:#5cb531!important;
  border-bottom:1px solid #5cb531!important;
}
.single-body blockquote,
.single-body .wp-block-quote{
  margin:32px 0!important;
  padding:24px 28px!important;
  background:#f5f4f0!important;
  border-left:3px solid #dfb624!important;
  border-radius:0 8px 8px 0!important;
  font-style:italic!important;
  color:#6e6e6e!important;
}
.single-body blockquote p,
.single-body .wp-block-quote p{
  margin-bottom:0!important;
}
.single-body ul,.single-body ol{
  margin:0 0 24px 24px!important;
}
.single-body li{
  margin-bottom:8px!important;
  line-height:1.9!important;
}
.single-body img{
  border-radius:8px!important;
  margin:24px 0!important;
}
@media(max-width:768px){
  .single-article{padding:20px 24px 60px!important}
  .single-body p,.single-body .wp-block-paragraph{font-size:.85rem!important}
  .single-body h2,.single-body .wp-block-heading{font-size:1.15rem!important}
}
@media(max-width:480px){
  .single-article{padding:16px 16px 48px!important}
}

/* ══════════════════════════════════════
   DESIGN FIXES 2026.04.02
   ══════════════════════════════════════ */

/* 全体の文字サイズを大きく */
.hero-sub{font-size:1.1rem}
.philosophy-text{font-size:1.05rem}
.service-card p{font-size:.9rem}
.media-desc{font-size:.85rem}
.section-desc{font-size:1rem}
.medallion-text{font-size:.8rem}
.medallion-text strong{font-size:1.15rem}
.company-message{font-size:1rem}
.company-intro-text{font-size:1.05rem}

/* ══════════════════════════════════════
   DESIGN FIXES 2 - 2026.04.02
   ══════════════════════════════════════ */

/* No.1メダリオンをもっと大きく */
.medallion-icon{width:90px;height:90px}
.medallion-text{font-size:.85rem}
.medallion-text strong{font-size:1.3rem}
.hero-badges{gap:32px;margin-bottom:64px}
@media(max-width:768px){
  .medallion-icon{width:70px;height:70px}
  .medallion-text strong{font-size:1.05rem}
}

/* フィロソフィー：全部ゴシック体に統一（明朝を除去） */
.philosophy-quote{
  font-family:'Noto Sans JP',sans-serif;
  font-weight:500;
}
.philosophy-quote em{
  font-family:'Noto Sans JP',sans-serif;
  font-style:normal;
  font-weight:700;
  color:var(--brand-gold);
}

/* チームカード：左右の高さ・テキスト位置を揃える */
.team-grid{
  align-items:stretch;
}
.team-card{
  align-items:start;
  grid-template-rows:auto;
}
.team-photo{
  width:180px;
  height:240px;
}
.team-card > div:last-child{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  padding-top;
}
/* チーム改行問題 強制修正 */
.team-card div{
  margin:0!important;
  padding:0!important;
}
.team-role{
  margin-bottom:8px!important;
}
.team-name{
  margin-bottom:4px!important;
}
.team-name-en{
  margin-bottom:14px!important;
}
.team-bio{
  margin:0!important;
  padding:0!important;
  display:block!important;
}
.team-card > div:last-child{
  display:block!important;
  margin:0!important;
  padding:0!important;
}

/* サムネイル画像の表示修正 */
.blog-thumb{
  height:220px!important;
}
.blog-thumb img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  background:var(--cream)!important;
  padding:8px!important;
}
/* サムネイル高さ修正（PC） */
@media(min-width:769px){
  .blog-thumb{
    height:auto!important;
    aspect-ratio:1200/630!important;
  }
}
/* 記事本文スタイル改善 */
.single .entry-content,
.single .entry-content p,
.single .entry-content li,
.single .entry-content span{
  color:#111!important;
  font-family:"Noto Sans JP",sans-serif!important;
  font-weight:500!important;
  font-size:16px!important;
  line-height:2.0!important;
  letter-spacing:.04em!important;
}
.single .entry-content h2{
  color:#111!important;
  font-family:"Noto Sans JP",sans-serif!important;
  font-weight:900!important;
  font-size:1.5rem!important;
  border-left:4px solid #5cb531!important;
  padding:8px 0 8px 16px!important;
  margin:48px 0 24px!important;
}
.single .entry-content h3{
  color:#111!important;
  font-family:"Noto Sans JP",sans-serif!important;
  font-weight:700!important;
  font-size:1.2rem!important;
  margin:32px 0 16px!important;
}
.single .entry-content strong{
  color:#000!important;
  font-weight:700!important;
}
.single .entry-content a{
  color:#5cb531!important;
  font-weight:500!important;
  text-decoration:underline!important;
}
