:root{
  --ink:#0d0f0e;
  --ink-2:#141816;
  --ink-3:#1b201d;
  --paper:#f3f2ee;
  --paper-2:#e9e8e2;
  --text-d:#e8e8e3;
  --text-d-2:#9ea39d;
  --text-l:#1a1d1b;
  --text-l-2:#6b706a;
  --line-d:rgba(232,232,227,.14);
  --line-l:rgba(26,29,27,.14);
  --green:#6e9a3c;
  --green-2:#a9cc76;
  --serif-en:"Cormorant Garamond",serif;
  --serif-ja:"Shippori Mincho","Yu Mincho",YuMincho,serif;
  --sans:"Inter","Noto Sans JP",sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1);
  --gutter:clamp(20px,5vw,72px);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-variant-numeric:lining-nums;margin:0;background:var(--ink);color:var(--text-d);font-family:var(--sans);font-weight:300;font-size:15px;line-height:2;letter-spacing:.06em;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none;margin:0;padding:0}
h1,h2,h3,h4,p{margin:0}

/* ---------- loader ---------- */
.loader{position:fixed;inset:0;z-index:100;background:var(--ink);display:grid;place-items:center;transition:opacity 1.2s var(--ease),visibility 1.2s}
.loader img{width:140px;opacity:0;animation:fadeIn 1.2s .2s forwards}
.is-loaded .loader{opacity:0;visibility:hidden}
@keyframes fadeIn{to{opacity:1}}

/* ---------- header ---------- */
.header{position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:28px var(--gutter);transition:padding .5s var(--ease),background .5s var(--ease)}
.header.is-scrolled{padding-block:16px;background:rgba(13,15,14,.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line-d)}
.header .logo img{height:40px;width:auto}
/* wp_nav_menu markup: ul.menu > li.menu-item(.menu-item-has-children) > ul.sub-menu */
.gnav .menu{display:flex;align-items:center;gap:clamp(20px,2.4vw,40px);font-size:12.5px;letter-spacing:.14em}
.gnav .menu>li{position:relative}
.gnav a{position:relative;display:inline-block;padding-block:6px;opacity:.85;transition:opacity .3s}
.gnav .menu>li>a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.gnav a:hover,.gnav .current-menu-item>a,.gnav .current-menu-ancestor>a{opacity:1}
.gnav .menu>li>a:hover::after,.gnav .menu>.current-menu-item>a::after,.gnav .menu>.current-menu-ancestor>a::after{transform:scaleX(1);transform-origin:left}
.gnav .sub-menu{position:absolute;top:100%;left:-24px;padding:18px 24px;min-width:280px;background:rgba(20,24,22,.96);border:1px solid var(--line-d);opacity:0;visibility:hidden;transform:translateY(6px);transition:.4s var(--ease)}
.gnav .menu-item-has-children:hover .sub-menu,.gnav .menu-item-has-children:focus-within .sub-menu{opacity:1;visibility:visible;transform:none}
.gnav .sub-menu a{display:block;padding:6px 0;letter-spacing:.08em}
.gnav .sub-menu .current-menu-item>a{color:var(--green-2)}
.gnav .menu-contact>a{border:1px solid var(--line-d);padding:8px 20px;border-radius:999px;opacity:1;transition:background .4s,color .4s,border-color .4s}
.gnav .menu-contact>a::after{display:none}
.gnav .menu-contact>a:hover{background:var(--text-d);color:var(--ink);border-color:var(--text-d)}
.menu-btn{display:none;width:48px;height:48px;border-radius:50%;border:1px solid var(--line-d);background:transparent;cursor:pointer;position:relative}
.menu-btn span{position:absolute;left:15px;right:15px;height:1px;background:var(--text-d);transition:transform .4s var(--ease),top .4s var(--ease)}
.menu-btn span:nth-child(1){top:20px}.menu-btn span:nth-child(2){top:27px}
.is-menu-open .menu-btn span:nth-child(1){top:23.5px;transform:rotate(45deg)}
.is-menu-open .menu-btn span:nth-child(2){top:23.5px;transform:rotate(-45deg)}

.drawer{position:fixed;inset:0;z-index:40;background:var(--ink-2);padding:120px var(--gutter) 48px;display:flex;flex-direction:column;justify-content:space-between;gap:32px;overflow-y:auto;opacity:0;visibility:hidden;transition:opacity .6s var(--ease),visibility .6s}
.is-menu-open .drawer{opacity:1;visibility:visible}
.drawer .menu>li{border-bottom:1px solid var(--line-d)}
.drawer .menu a{display:flex;justify-content:space-between;align-items:baseline;padding:16px 0;font-family:var(--serif-ja);font-size:18px}
.drawer .menu a small{font-family:var(--sans);font-size:10.5px;letter-spacing:.2em;color:var(--text-d-2)}
.drawer .sub-menu{padding-bottom:10px}
.drawer .sub-menu a{padding:9px 0 9px 1.2em;font-size:14px;font-family:var(--sans)}
.drawer .current-menu-item>a{color:var(--green-2)}
.drawer .foot{font-size:11px;color:var(--text-d-2);letter-spacing:.14em}

/* ---------- common ---------- */
.eyebrow{display:flex;align-items:center;gap:14px;font-family:var(--sans);font-size:11px;font-weight:400;letter-spacing:.32em;text-transform:uppercase;color:var(--text-d-2)}
.eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:linear-gradient(135deg,var(--green),var(--green-2))}
.light .eyebrow{color:var(--text-l-2)}
.section-title{font-family:var(--serif-en);font-weight:300;font-size:clamp(44px,6vw,88px);line-height:1;letter-spacing:.01em}
.link-arrow{display:inline-flex;align-items:center;gap:18px;font-size:12.5px;letter-spacing:.16em}
.link-arrow .circle{width:52px;height:52px;border-radius:50%;border:1px solid currentColor;display:grid;place-items:center;position:relative;overflow:hidden;opacity:.9;transition:background .5s var(--ease),color .5s var(--ease)}
.link-arrow .circle svg{width:16px;height:16px;transition:transform .5s var(--ease)}
.link-arrow:hover .circle{background:var(--text-d);color:var(--ink)}
.light .link-arrow:hover .circle{background:var(--text-l);color:var(--paper)}
.link-arrow:hover .circle svg{transform:translateX(3px)}
.link-arrow .label{border-bottom:1px solid currentColor;padding-bottom:2px}

.reveal{opacity:0;transform:translateY(28px);transition:opacity 1.4s var(--ease),transform 1.4s var(--ease)}
.reveal.is-in{opacity:1;transform:none}
.reveal-line{display:block;overflow:hidden}
.reveal-line>span{display:block;transform:translateY(110%);transition:transform 1.4s var(--ease)}
.is-in .reveal-line>span,.reveal-line.is-in>span{transform:none}
.d1{transition-delay:.12s!important}.d2{transition-delay:.24s!important}.d3{transition-delay:.36s!important}.d4{transition-delay:.48s!important}.d5{transition-delay:.6s!important}

/* ---------- hero ---------- */
.hero{position:relative;height:100vh;height:100svh;min-height:620px;overflow:hidden;display:flex;align-items:flex-end}
.hero-bg{position:absolute;inset:-6% 0;will-change:transform}
.hero-bg i{position:absolute;inset:0;background:url(../img/hero.jpg) 55% 50%/cover no-repeat;transform:scale(1.08);transition:transform 3.4s var(--ease)}
.is-loaded .hero-bg i{transform:scale(1)}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,15,14,.55) 0%,rgba(13,15,14,0) 30%,rgba(13,15,14,0) 55%,rgba(13,15,14,.9) 100%)}
.hero-body{position:relative;z-index:2;width:100%;padding:0 var(--gutter) clamp(56px,9vh,110px);display:grid;grid-template-columns:1fr auto;align-items:end;gap:40px}
.hero-title{font-family:var(--serif-en);font-weight:300;font-size:clamp(56px,10vw,168px);line-height:.92;letter-spacing:-.005em}
.hero-title em{font-style:italic;color:#dfe7d4}
.hero-sub{margin-top:44px;font-family:var(--serif-ja);font-size:clamp(16px,1.7vw,24px);letter-spacing:.16em;line-height:1.8}
.hero-side{display:flex;flex-direction:column;align-items:flex-end;gap:28px;font-size:11px;letter-spacing:.24em;color:var(--text-d-2)}
.scroll-ind{display:flex;flex-direction:column;align-items:center;gap:14px;writing-mode:vertical-rl;font-size:10.5px;letter-spacing:.3em}
.scroll-ind::after{content:"";width:1px;height:64px;background:linear-gradient(var(--text-d),transparent);animation:scrollLine 2.4s infinite var(--ease)}
@keyframes scrollLine{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.hero .reveal-line>span{transition-duration:1.8s}
.hero-title .reveal-line{padding:0 .2em .18em;margin:0 -.2em -.18em}
.is-loaded .hero .reveal-line>span{transform:none}
.is-loaded .hero .reveal{opacity:1;transform:none}

/* ---------- message ---------- */
.message{position:relative;padding:clamp(120px,16vw,220px) var(--gutter)}
.message-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(40px,8vw,140px);max-width:1320px;margin:0 auto;align-items:start}
.message-visual{position:sticky;top:120px}
.message-visual .frame{aspect-ratio:3/4;overflow:hidden;position:relative}
.message-visual .frame img{width:100%;height:112%;object-fit:cover;will-change:transform}
.message-visual figcaption{margin-top:18px;display:flex;justify-content:space-between;font-size:10.5px;letter-spacing:.24em;color:var(--text-d-2)}
.message-head{margin:32px 0 64px;font-family:var(--serif-ja);font-weight:400;font-size:clamp(26px,3.2vw,46px);line-height:1.6;letter-spacing:.1em}
.message-body{font-family:var(--serif-ja);font-size:clamp(15px,1.15vw,17px);line-height:2.35;letter-spacing:.12em;color:#cfd2cc}
.message-body p+p{margin-top:2.2em}
.message-body .tech{font-family:var(--serif-en);font-size:1.25em;letter-spacing:.08em;color:var(--text-d)}
.message-sign{margin-top:72px;padding-top:28px;border-top:1px solid var(--line-d);display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.message-sign img{height:34px;width:auto;opacity:.95}

/* ---------- panorama ---------- */
.panorama{position:relative;min-height:clamp(480px,86vh,860px);padding:120px 0;overflow:hidden;display:grid;place-items:center;text-align:center}
.panorama-bg{position:absolute;inset:-12% 0;background:url(../img/network.jpg) center/cover no-repeat;will-change:transform}
.panorama::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(13,15,14,.35),rgba(13,15,14,.8) 80%),linear-gradient(var(--ink),transparent 18%,transparent 82%,var(--ink))}
.panorama-body{position:relative;z-index:2;padding:0 var(--gutter)}
.panorama .question{font-family:var(--serif-ja);font-size:clamp(20px,2.7vw,38px);line-height:1.9;letter-spacing:.14em}
.panorama .question .q{font-family:var(--serif-en);color:var(--green-2);font-size:1.3em;line-height:0;vertical-align:-.12em;margin:0 .1em}
.panorama .vision-link{margin-top:48px}
.panorama .answer{margin-top:44px;font-family:var(--serif-ja);font-size:clamp(15px,1.3vw,18px);letter-spacing:.24em;color:#d6d9d2}

/* ---------- light sections ---------- */
.light{background:var(--paper);color:var(--text-l)}

.wrap{max-width:1320px;margin:0 auto}

/* news */
.news{padding:clamp(110px,13vw,180px) var(--gutter) clamp(120px,14vw,190px)}
.news-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(40px,8vw,140px)}
.news-grid .section-title{margin:26px 0 48px}
.news-list li{border-bottom:1px solid var(--line-l)}
.news-list li:first-child{border-top:1px solid var(--line-l)}
.news-list a{display:grid;grid-template-columns:120px 1fr 20px;gap:24px;align-items:baseline;padding:28px 0;transition:color .4s}
.news-list time{font-family:var(--serif-en);font-size:15px;letter-spacing:.08em;color:var(--text-l-2)}
.news-list .ttl{font-size:14.5px;line-height:1.9;letter-spacing:.06em}
.news-list .ttl span{background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .6s var(--ease)}
.news-list a:hover .ttl span{background-size:100% 1px}
.news-list .ex{display:block;margin-top:6px;font-size:12.5px;color:var(--text-l-2);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.news-list .go{font-size:14px;color:var(--text-l-2);transition:transform .4s var(--ease)}
.news-list a:hover .go{transform:translateX(4px)}

/* ---------- contact / company ---------- */
.contact{position:relative;overflow:hidden;padding:clamp(120px,15vw,210px) var(--gutter)}
.contact-bg{position:absolute;inset:-10% 0;background:url(../img/closing.jpg) 70% 50%/cover no-repeat;opacity:.9;will-change:transform}
.contact::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,15,14,.94) 0%,rgba(13,15,14,.7) 55%,rgba(13,15,14,.35) 100%)}
.contact .wrap{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(40px,8vw,140px);align-items:end}
.contact h2{margin:28px 0 36px;font-family:var(--serif-ja);font-weight:400;font-size:clamp(22px,2.2vw,32px);line-height:1.8;letter-spacing:.08em}
.contact p.lead{font-family:var(--serif-ja);color:#c9ccc6;line-height:2.2;letter-spacing:.12em;margin-bottom:56px}
.company dl{margin:0;border-top:1px solid var(--line-d)}
.company dl>div{display:grid;grid-template-columns:110px 1fr;gap:20px;padding:18px 0;border-bottom:1px solid var(--line-d);font-size:13px;line-height:1.9}
.company dt{color:var(--text-d-2);letter-spacing:.14em;font-size:11.5px}
.company dd{margin:0}
.company .more{margin-top:32px}

/* ---------- footer ---------- */
.footer{background:var(--ink);padding:clamp(80px,9vw,120px) var(--gutter) 36px;border-top:1px solid var(--line-d)}
.footer-top{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(40px,8vw,140px)}
.footer .tagline{font-family:var(--serif-en);font-weight:300;font-size:clamp(34px,4vw,56px);line-height:1.05}
.footer .tagline em{font-style:italic;color:var(--green-2)}
.footer .f-logo{margin-top:40px;height:40px;width:auto}
.footer-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 32px;font-size:13px}
.footer-nav h4{font-size:10.5px;font-weight:400;letter-spacing:.3em;color:var(--text-d-2);margin-bottom:18px;text-transform:uppercase}
.footer-nav li+li{margin-top:10px}
.footer-nav a{opacity:.85;transition:opacity .3s}
.footer-nav a:hover{opacity:1}
.footer-bottom{margin-top:clamp(64px,8vw,110px);padding-top:28px;border-top:1px solid var(--line-d);display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;font-size:11px;letter-spacing:.14em;color:var(--text-d-2)}
.to-top{display:inline-flex;align-items:center;gap:10px}

/* =========================================================
   Lower pages
   ========================================================= */

/* ---------- page hero (template-parts/page-hero) ---------- */
.page-hero{position:relative;height:74vh;height:74svh;min-height:520px;max-height:860px;overflow:hidden;display:flex;align-items:flex-end}
.page-hero.is-compact{height:auto;min-height:0;max-height:none;padding-top:clamp(170px,22vw,260px)}
.page-hero-bg{position:absolute;inset:-8% 0;will-change:transform}
.page-hero-bg i{position:absolute;inset:0;background:center/cover no-repeat;transform:scale(1.08);transition:transform 3s var(--ease)}
.is-loaded .page-hero-bg i{transform:scale(1)}
.page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,15,14,.6) 0%,rgba(13,15,14,.15) 35%,rgba(13,15,14,.25) 60%,rgba(13,15,14,.95) 100%)}
.page-hero.is-compact::after{display:none}
.page-hero-body{position:relative;z-index:2;width:100%;padding:0 var(--gutter) clamp(48px,7vh,88px);display:grid;grid-template-columns:1fr auto;align-items:end;gap:32px}
.page-title .en{display:block;margin-top:22px;font-family:var(--serif-en);font-weight:300;font-size:clamp(46px,7.4vw,120px);line-height:.98;letter-spacing:0}
.page-title .en em{font-style:italic;color:#dfe7d4}
.page-title .ja{display:block;margin-top:22px;font-family:var(--serif-ja);font-weight:400;font-size:clamp(15px,1.4vw,19px);letter-spacing:.2em;color:#d6d9d2}
.page-title.is-long .en{font-family:var(--serif-ja);font-weight:400;font-size:clamp(24px,3vw,42px);line-height:1.6;letter-spacing:.06em;max-width:24em}
.page-title .reveal-line{padding:0 .2em .18em;margin:0 -.2em -.18em}
.page-hero .reveal-line>span{transition-duration:1.6s}
.is-loaded .page-hero .reveal-line>span{transform:none}
.is-loaded .page-hero .reveal{opacity:1;transform:none}
.breadcrumb ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 0;font-size:11px;letter-spacing:.16em;color:var(--text-d-2)}
.breadcrumb li+li::before{content:"/";margin:0 12px;opacity:.5}
.breadcrumb a{transition:color .3s}
.breadcrumb a:hover{color:var(--text-d)}
.post-meta{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;margin-top:28px;font-size:12px;letter-spacing:.14em;color:var(--text-d-2)}
.post-meta time{font-family:var(--serif-en);font-size:16px;letter-spacing:.08em;color:var(--text-d)}
.cat-label{display:inline-block;padding:3px 14px;border:1px solid var(--line-d);border-radius:999px;font-size:10.5px;letter-spacing:.2em}
.light .cat-label{border-color:var(--line-l)}

/* ---------- section scaffolding ---------- */
.sec{padding:clamp(100px,12vw,170px) var(--gutter)}
.sec.is-tight{padding-block:clamp(72px,8vw,110px)}
.sec-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(40px,8vw,140px);align-items:start}
.sec-grid+.sec-grid{margin-top:clamp(90px,10vw,150px);padding-top:clamp(64px,7vw,100px);border-top:1px solid var(--line-l)}
.sec:not(.light) .sec-grid+.sec-grid{border-top-color:var(--line-d)}
.sec-side{position:sticky;top:120px}
.sec-side .section-title{margin-top:22px;font-size:clamp(38px,4.4vw,64px)}
.sec-side .ja{margin-top:16px;font-family:var(--serif-ja);font-size:14px;letter-spacing:.18em;color:var(--text-d-2)}
.light .sec-side .ja{color:var(--text-l-2)}
.lead-text{font-family:var(--serif-ja);font-weight:400;font-size:clamp(20px,2vw,28px);line-height:1.95;letter-spacing:.1em}
.body-text{font-family:var(--serif-ja);font-size:clamp(15px,1.1vw,16.5px);line-height:2.3;letter-spacing:.1em}
.light .body-text{color:#3a3e3a}
.sec:not(.light) .body-text{color:#cfd2cc}
.body-text p+p{margin-top:1.8em}
.lead-text+.body-text{margin-top:48px}
.note{margin-top:28px;font-size:12px;color:var(--text-l-2);letter-spacing:.06em}
.sec:not(.light) .note{color:var(--text-d-2)}
.center-col{max-width:760px;margin:0 auto}

/* ---------- components ---------- */
/* rows: numbered list with hairlines */
.rows{border-top:1px solid var(--line-l)}
.rows>li{display:grid;grid-template-columns:72px minmax(0,1fr);gap:24px;padding:34px 0;border-bottom:1px solid var(--line-l)}
.sec:not(.light) .rows,.sec:not(.light) .rows>li{border-color:var(--line-d)}
.rows .num{font-family:var(--serif-en);font-size:15px;letter-spacing:.1em;color:var(--text-l-2);padding-top:.35em}
.sec:not(.light) .rows .num{color:var(--text-d-2)}
.rows h3{font-family:var(--serif-ja);font-weight:400;font-size:clamp(18px,1.6vw,23px);line-height:1.6;letter-spacing:.08em}
.rows h3 small{display:block;margin-bottom:8px;font-family:var(--sans);font-size:10.5px;letter-spacing:.28em;color:var(--green);text-transform:uppercase}
.sec:not(.light) .rows h3 small{color:var(--green-2)}
.rows p{margin-top:12px;font-size:14px;line-height:2.05;color:var(--text-l-2)}
.sec:not(.light) .rows p{color:var(--text-d-2)}
.rows .tags{margin-top:18px}

/* cards */
.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line-l);border:1px solid var(--line-l)}
.cards.is-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.sec:not(.light) .cards{background:var(--line-d);border-color:var(--line-d)}
.card{background:var(--paper);padding:clamp(28px,3vw,44px)}
.sec:not(.light) .card{background:var(--ink)}
.card .k{font-family:var(--sans);font-size:10.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--text-l-2)}
.sec:not(.light) .card .k{color:var(--text-d-2)}
.card h3{margin-top:14px;font-family:var(--serif-ja);font-weight:400;font-size:clamp(17px,1.5vw,21px);line-height:1.7;letter-spacing:.08em}
.card p{margin-top:14px;font-size:13.5px;line-height:2;color:var(--text-l-2)}
.sec:not(.light) .card p{color:var(--text-d-2)}
.card .tags{margin-top:20px}
.tags{display:flex;flex-wrap:wrap;gap:8px}
.tags li{padding:4px 14px;border:1px solid var(--line-l);border-radius:999px;font-size:12px;letter-spacing:.06em;line-height:1.8}
.sec:not(.light) .tags li{border-color:var(--line-d);color:#cfd2cc}
.tags.is-mono li{font-family:var(--sans);font-size:11px;letter-spacing:.14em}

/* quotes (悩み) */
.quotes{display:grid;gap:18px}
.quotes li{position:relative;padding:28px 32px 28px 64px;background:var(--paper-2);font-family:var(--serif-ja);font-size:clamp(15px,1.25vw,17px);line-height:2;letter-spacing:.08em}
.quotes li::before{content:"“";position:absolute;left:24px;top:14px;font-family:var(--serif-en);font-size:52px;line-height:1;color:var(--green)}

/* spec table (dl) */
.spec{margin:0;border-top:1px solid var(--line-l)}
.spec>div{display:grid;grid-template-columns:160px minmax(0,1fr);gap:24px;padding:24px 0;border-bottom:1px solid var(--line-l);font-size:14.5px;line-height:2}
.sec:not(.light) .spec,.sec:not(.light) .spec>div{border-color:var(--line-d)}
.spec dt{font-size:12px;letter-spacing:.2em;color:var(--text-l-2);padding-top:.25em}
.sec:not(.light) .spec dt{color:var(--text-d-2)}
.spec dd{margin:0}
.spec dd ul li{position:relative;padding-left:1.1em}
.spec dd ul li::before{content:"";position:absolute;left:0;top:.95em;width:5px;height:1px;background:currentColor}
.spec a{border-bottom:1px solid currentColor}

/* timeline */
.timeline{border-top:1px solid var(--line-l)}
.timeline li{display:grid;grid-template-columns:140px minmax(0,1fr);gap:24px;padding:26px 0;border-bottom:1px solid var(--line-l);font-size:14.5px;line-height:2}
.timeline time{font-family:var(--serif-en);font-size:17px;letter-spacing:.06em;color:var(--text-l-2)}
.timeline a{border-bottom:1px solid currentColor;transition:color .3s}
.timeline a:hover{color:var(--green)}

/* figure */
.figure{margin:0}
.figure img{width:100%;height:auto}
.figure figcaption{margin-top:14px;font-size:11px;letter-spacing:.2em;color:var(--text-l-2)}
.figure.is-framed{padding:clamp(20px,3vw,40px);background:var(--paper-2)}
.product-stage{display:grid;place-items:center;background:radial-gradient(ellipse at 50% 60%,#ffffff 0%,var(--paper-2) 70%);padding:clamp(32px,5vw,72px)}
.product-stage img{max-height:620px;width:auto}

/* keyword trio */
.trio{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;margin-top:40px;font-family:var(--serif-ja);font-size:clamp(18px,1.8vw,24px);letter-spacing:.12em}
.trio .x{font-family:var(--serif-en);color:var(--green);font-size:1.2em}

/* statement (vision) */
.statement{padding:clamp(120px,15vw,220px) var(--gutter)}
.statement .center-col{max-width:820px}
.statement .st-block{font-family:var(--serif-ja);font-size:clamp(16px,1.35vw,19px);line-height:2.5;letter-spacing:.14em;color:#d2d5cf}
.statement .st-block+.st-block{margin-top:clamp(64px,7vw,110px)}
.statement .st-head{font-family:var(--serif-ja);font-weight:400;font-size:clamp(26px,3.2vw,46px);line-height:1.7;letter-spacing:.1em;color:var(--text-d);margin-bottom:clamp(56px,6vw,90px)}
.statement .tech{font-family:var(--serif-en);font-size:1.3em;letter-spacing:.06em;color:var(--text-d)}
.statement .em{color:var(--text-d)}
.st-list{counter-reset:st;border-top:1px solid var(--line-d)}
.st-list li{counter-increment:st;display:grid;grid-template-columns:64px 1fr;padding:22px 0;border-bottom:1px solid var(--line-d);color:var(--text-d)}
.st-list li::before{content:counter(st,decimal-leading-zero);font-family:var(--serif-en);font-size:15px;color:var(--text-d-2);padding-top:.25em}
.lab-badge{display:inline-flex;align-items:center;gap:14px;margin-top:10px;padding:10px 22px 10px 12px;border:1px solid var(--line-d);border-radius:999px;font-family:var(--sans);font-size:13px;letter-spacing:.2em;color:var(--text-d);transition:background .4s,border-color .4s}
.lab-badge img{height:26px;width:auto}
.lab-badge:hover{background:rgba(232,232,227,.06);border-color:var(--text-d-2)}
.finale{padding:clamp(120px,15vw,210px) var(--gutter);text-align:center}
.finale .big{font-family:var(--serif-en);font-weight:300;font-size:clamp(56px,9vw,150px);line-height:.95}
.finale .big em{font-style:italic;color:var(--green-2)}
.finale .big .reveal-line{padding:0 .2em .18em;margin:0 -.2em -.18em}
.finale p.sub{margin-top:40px;font-family:var(--serif-ja);font-size:clamp(15px,1.3vw,18px);letter-spacing:.2em;color:#d2d5cf}

/* in-page nav (AI Lab) */
.anchor-nav{position:sticky;top:76px;z-index:30;background:rgba(13,15,14,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line-d);padding:0 var(--gutter)}
.anchor-nav ul{display:flex;gap:clamp(18px,3vw,44px);overflow-x:auto;scrollbar-width:none;max-width:1320px;margin:0 auto}
.anchor-nav a{display:block;padding:18px 0;font-size:12px;letter-spacing:.16em;white-space:nowrap;color:var(--text-d-2);border-bottom:1px solid transparent;transition:color .3s,border-color .3s}
.anchor-nav a:hover,.anchor-nav a.is-current{color:var(--text-d);border-bottom-color:var(--green-2)}
.flagship{position:relative;padding:clamp(36px,4.5vw,64px);border:1px solid var(--line-d);background:linear-gradient(135deg,rgba(110,154,60,.1),rgba(13,15,14,0) 60%)}
.flagship .k{font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--green-2)}
.flagship h3{margin-top:16px;font-family:var(--serif-ja);font-weight:400;font-size:clamp(24px,2.6vw,36px);letter-spacing:.08em;line-height:1.5}
.flagship h3 .en{font-family:var(--serif-en);font-weight:300;font-size:1.15em;letter-spacing:.04em}
.flagship .body-text{margin-top:28px}
.flagship .tags{margin-top:28px}
.status-badge{display:inline-block;padding:2px 12px;border-radius:999px;background:rgba(169,204,118,.14);color:var(--green-2);font-size:11px;letter-spacing:.14em}
.mono{font-family:"Inter",monospace;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--text-d-2)}
.trace{display:block;width:100%;height:60px;margin-top:40px;color:var(--green-2);opacity:.8}
.trace path{stroke-dasharray:2400;stroke-dashoffset:2400;animation:trace 4.5s var(--ease) .6s forwards}
@keyframes trace{to{stroke-dashoffset:0}}
.mission{position:relative;overflow:hidden;padding:clamp(130px,15vw,220px) var(--gutter)}
.mission-bg{position:absolute;inset:-12% 0;background:url(../img/network.jpg) center/cover no-repeat;will-change:transform}
.mission::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,15,14,.95),rgba(13,15,14,.7) 60%,rgba(13,15,14,.45)),linear-gradient(var(--ink),transparent 18%,transparent 82%,var(--ink))}
.mission .wrap{position:relative;z-index:2}

/* ---------- entry-content (the_content) ---------- */
.entry-content{font-family:var(--serif-ja);font-size:clamp(15px,1.1vw,16.5px);line-height:2.25;letter-spacing:.08em;color:#2e322e}
.entry-content>*+*{margin-top:1.6em}
.entry-content h2{margin-top:3.2em;padding-bottom:.7em;border-bottom:1px solid var(--line-l);font-family:var(--serif-ja);font-weight:400;font-size:clamp(21px,1.9vw,27px);line-height:1.6;letter-spacing:.08em;color:var(--text-l)}
.entry-content h3,.entry-content h4{margin-top:2.8em;font-family:var(--serif-ja);font-weight:500;font-size:clamp(18px,1.5vw,21px);line-height:1.7;letter-spacing:.08em;color:var(--text-l);display:flex;gap:14px;align-items:baseline}
.entry-content h3::before,.entry-content h4::before{content:"";flex:none;width:18px;height:1px;background:var(--green);transform:translateY(-.35em)}
.entry-content h2+*,.entry-content h3+*,.entry-content h4+*{margin-top:1em}
.entry-content>:first-child{margin-top:0}
.entry-content strong{font-weight:500;color:var(--text-l);background:linear-gradient(transparent 62%,rgba(169,204,118,.35) 62%)}
.entry-content em{font-style:normal;color:var(--text-l-2)}
.entry-content a{color:var(--text-l);border-bottom:1px solid var(--green);transition:color .3s}
.entry-content a:hover{color:var(--green)}
.entry-content blockquote{margin:2.2em 0;padding:1.6em 2em;border-left:1px solid var(--green);background:var(--paper-2);font-size:1.05em}
.entry-content blockquote p+p{margin-top:1em}
.entry-content blockquote strong,.entry-content table strong{background:none}
.entry-content ol{list-style:decimal;padding-left:1.4em}
.entry-content ul{list-style:none;padding-left:0}
.entry-content ul li{position:relative;padding-left:1.3em}
.entry-content ul li::before{content:"";position:absolute;left:0;top:1.1em;width:7px;height:1px;background:var(--green)}
.entry-content table{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:13.5px;line-height:1.9;letter-spacing:.04em}
.entry-content th,.entry-content td{padding:16px 18px;border-bottom:1px solid var(--line-l);text-align:left;vertical-align:top}
.entry-content thead th,.entry-content tr:first-child>th+th,.entry-content tr:first-child>th:first-child:empty{font-weight:500;background:var(--paper-2);font-size:12.5px;letter-spacing:.12em}
.entry-content tbody th{font-weight:400;color:var(--text-l-2);white-space:nowrap}
.entry-content .table-wrap,.entry-content figure.wp-block-table{overflow-x:auto;margin-inline:0}
.entry-content .small{font-size:.85em;color:var(--text-l-2)}
.entry-content .has-text-align-center{text-align:center}

/* article layout */
.article-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:clamp(48px,7vw,120px);max-width:1180px;margin:0 auto;align-items:start}
.article-main{max-width:760px}
.article-side{position:sticky;top:120px}
.side-block+.side-block{margin-top:56px}
.side-block h2{font-family:var(--sans);font-weight:400;font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--text-l-2);padding-bottom:14px;border-bottom:1px solid var(--line-l)}
.side-block li{border-bottom:1px solid var(--line-l)}
.side-block li a{display:block;padding:16px 0;font-size:13px;line-height:1.8;transition:color .3s}
.side-block li a:hover,.side-block li a[aria-current]{color:var(--green)}
.side-block time{display:block;font-family:var(--serif-en);font-size:13px;color:var(--text-l-2)}
.search-form{display:flex;border-bottom:1px solid var(--text-l)}
.search-form input{flex:1;min-width:0;border:0;background:transparent;padding:12px 0;font:inherit;font-size:13px;color:var(--text-l);outline:none}
.search-form button{border:0;background:none;padding:0 4px;cursor:pointer;color:var(--text-l)}
.post-nav{display:flex;justify-content:space-between;gap:24px;margin-top:80px;padding-top:32px;border-top:1px solid var(--line-l);font-size:12.5px;letter-spacing:.14em}
.post-nav a{display:inline-flex;align-items:center;gap:14px;transition:color .3s}
.post-nav a:hover{color:var(--green)}

/* archive */
.post-list{border-top:1px solid var(--line-l)}
.post-list li{border-bottom:1px solid var(--line-l)}
.post-list a{display:grid;grid-template-columns:140px minmax(0,1fr) 40px;gap:32px;padding:40px 0;align-items:start;transition:background .5s var(--ease),padding .5s var(--ease)}
.post-list a:hover{background:var(--paper-2);padding-inline:24px}
.post-list .meta{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.post-list time{font-family:var(--serif-en);font-size:17px;letter-spacing:.06em;color:var(--text-l-2)}
.post-list h2{font-family:var(--serif-ja);font-weight:400;font-size:clamp(17px,1.5vw,21px);line-height:1.7;letter-spacing:.06em}
.post-list p{margin-top:12px;font-size:13px;line-height:2;color:var(--text-l-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.post-list .go{justify-self:end;width:40px;height:40px;border-radius:50%;border:1px solid var(--line-l);display:grid;place-items:center;transition:background .4s,color .4s}
.post-list .go svg{width:14px;height:14px}
.post-list a:hover .go{background:var(--text-l);color:var(--paper)}
.pagination{display:flex;justify-content:center;gap:10px;margin-top:64px;font-family:var(--serif-en);font-size:16px}
.pagination .page-numbers{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--line-l)}
.pagination .current{background:var(--text-l);color:var(--paper);border-color:var(--text-l)}

/* ---------- Contact Form 7 ---------- */
.form-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(48px,7vw,120px);align-items:start}
.wpcf7-form .field{display:grid;grid-template-columns:200px minmax(0,1fr);gap:24px;padding:28px 0;border-bottom:1px solid var(--line-l)}
.wpcf7-form .field:first-of-type{border-top:1px solid var(--line-l)}
.wpcf7-form .field>label,.wpcf7-form .field>.label{padding-top:12px;font-size:13.5px;letter-spacing:.1em;display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap}
.req{display:inline-block;padding:0 9px;border-radius:999px;background:var(--text-l);color:var(--paper);font-size:10px;letter-spacing:.12em;line-height:1.9}
.wpcf7-form-control-wrap{display:block;position:relative}
.wpcf7-form .form-control{width:100%;padding:14px 18px;border:1px solid var(--line-l);border-radius:0;background:#fbfbf9;font:inherit;font-size:15px;letter-spacing:.04em;color:var(--text-l);transition:border-color .3s,background .3s;-webkit-appearance:none;appearance:none}
.wpcf7-form .form-control:focus{outline:none;border-color:var(--text-l);background:#fff}
.wpcf7-form select.form-control{background-image:linear-gradient(45deg,transparent 50%,var(--text-l) 50%),linear-gradient(135deg,var(--text-l) 50%,transparent 50%);background-position:calc(100% - 22px) 50%,calc(100% - 17px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:48px}
.wpcf7-form textarea.form-control{min-height:220px;resize:vertical;line-height:1.9}
.wpcf7-not-valid-tip{display:block;margin-top:8px;font-size:12px;color:#b3402f}
.form-foot{margin-top:48px;display:flex;flex-direction:column;align-items:flex-start;gap:28px}
.form-foot .privacy-note{font-size:12.5px;line-height:2;color:var(--text-l-2)}
.form-foot .privacy-note a{color:var(--text-l);border-bottom:1px solid currentColor}
.wpcf7-submit{display:inline-flex;align-items:center;justify-content:center;gap:16px;min-width:280px;padding:20px 40px;border:1px solid var(--text-l);border-radius:999px;background:var(--text-l);color:var(--paper);font:inherit;font-size:14px;letter-spacing:.2em;cursor:pointer;transition:background .4s,color .4s}
.wpcf7-submit:hover{background:transparent;color:var(--text-l)}
.wpcf7-response-output{margin-top:24px;padding:16px 20px;border:1px solid var(--line-l);font-size:13px}
.contact-aside{position:sticky;top:120px;padding:clamp(28px,3vw,44px);background:var(--ink);color:var(--text-d)}
.contact-aside .eyebrow{color:var(--text-d-2)}
.contact-aside h2{margin:18px 0 20px;font-family:var(--serif-ja);font-weight:400;font-size:19px;letter-spacing:.1em;line-height:1.7}
.contact-aside p{font-size:13px;line-height:2;color:var(--text-d-2)}
.contact-aside dl{margin:28px 0 0;border-top:1px solid var(--line-d)}
.contact-aside dl>div{padding:16px 0;border-bottom:1px solid var(--line-d);font-size:13px;line-height:1.9}
.contact-aside dt{font-size:10.5px;letter-spacing:.24em;color:var(--text-d-2)}
.contact-aside dd{margin:4px 0 0}

/* ---------- CTA (template-parts/cta) ---------- */
.cta .wrap{grid-template-columns:minmax(0,7fr) minmax(0,4fr)}
.cta .cta-action{justify-self:end}

.light .link-arrow .circle{opacity:1}
.sp{display:none}
@media (max-width:1080px){
  .anchor-nav{top:68px}
}
@media (max-width:860px){
  .page-hero{min-height:460px;height:64svh}
  .page-hero-body{grid-template-columns:1fr}
  .breadcrumb{order:-1}
  .page-hero-body .breadcrumb{display:none}
  .sec-grid,.article-grid,.form-grid,.cta .wrap{grid-template-columns:1fr}
  .sec-side,.article-side,.contact-aside{position:relative;top:0}
  .cards,.cards.is-3{grid-template-columns:1fr}
  .rows>li{grid-template-columns:44px minmax(0,1fr);gap:12px;padding:28px 0}
  .spec>div,.timeline li{grid-template-columns:1fr;gap:4px}
  .quotes li{padding:24px 22px 24px 52px}
  .quotes li::before{left:16px}
  .post-list a{grid-template-columns:1fr;gap:12px;padding:30px 0}
  .post-list a:hover{padding-inline:0}
  .post-list .go{display:none}
  .wpcf7-form .field{grid-template-columns:1fr;gap:10px;padding:22px 0}
  .wpcf7-form .field>label,.wpcf7-form .field>.label{padding-top:0}
  .wpcf7-submit{width:100%;min-width:0}
  .cta .cta-action{justify-self:start}
  .anchor-nav{top:72px}
  .statement .st-block br.pc,.body-text br.pc,.lead-text br.pc{display:none}
  .sp{display:inline}
  .entry-content table{font-size:12.5px}
  .entry-content th,.entry-content td{padding:12px 10px}
}

/* ---------- responsive ---------- */
.news-more-sp{display:none!important}
@media (max-width:1080px){
  .gnav{display:none}
  .menu-btn{display:block}
}
@media (max-width:860px){
  body{font-size:14px}
  .header{padding-block:20px}
  .header .logo img{height:32px}
  .hero-body{grid-template-columns:1fr}
  .hero-side{display:none}
  .message-grid,.news-grid,.contact .wrap,.footer-top{grid-template-columns:1fr}
  .message-visual{position:relative;top:0;max-width:420px}
  .message-head{margin:28px 0 44px}
  .message-body br.pc{display:none}
  .news-list a{grid-template-columns:1fr 16px;gap:4px 16px}
  .news-list time{grid-column:1/-1}
  .news-grid .section-title{margin-bottom:0}
  .news-grid .link-arrow{display:none}
  .news-more-sp{display:flex!important;margin-top:40px}
  .footer-nav{grid-template-columns:1fr 1fr}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal,.reveal-line>span{opacity:1;transform:none}
}

/* =========================================================
   WordPress integration
   ========================================================= */
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.admin-bar .header{top:32px}
.admin-bar .anchor-nav{top:108px}
@media (max-width:782px){.admin-bar .header{top:46px}.admin-bar .anchor-nav{top:118px}}

/* hero variants */
.page-title .en.is-statement{font-family:var(--serif-ja);font-weight:400;font-size:clamp(34px,5.4vw,84px);line-height:1.35;letter-spacing:.08em}
:lang(en) .page-title .en.is-statement{font-family:var(--serif-en);font-weight:300;letter-spacing:0;line-height:1.1}
.mission-head{margin-top:28px;font-family:var(--serif-ja);font-weight:400;font-size:clamp(28px,3.4vw,48px);letter-spacing:.1em;line-height:1.6}
:lang(en) .mission-head{font-family:var(--serif-en);font-weight:300;letter-spacing:0;line-height:1.15;font-size:clamp(38px,4.4vw,64px)}
.mission-tag{margin-top:3em;font-family:var(--serif-en);font-size:1.6em;letter-spacing:.02em;color:var(--text-d)}
.mission-tag em{color:var(--green-2)}
.message-head.is-en{font-family:var(--serif-en);font-weight:400;font-size:clamp(30px,3.4vw,50px);line-height:1.25;letter-spacing:0}
.message-body.is-en{font-family:var(--serif-en);font-size:clamp(17px,1.35vw,20px);line-height:1.9;letter-spacing:.01em}
.message-body.is-en .tech{font-size:1.15em;letter-spacing:.02em}
.panorama .question.is-en{font-family:var(--serif-en);font-size:clamp(24px,3.2vw,46px);line-height:1.45;letter-spacing:0}
:lang(en) .panorama .answer,:lang(en) .contact h2,:lang(en) .contact p.lead,:lang(en) .hero-sub{font-family:var(--serif-en);letter-spacing:.02em}
:lang(en) .contact h2{font-size:clamp(26px,2.6vw,38px);line-height:1.35}
:lang(en) .lead-text,:lang(en) .body-text{font-family:var(--serif-en);letter-spacing:.01em}
:lang(en) .lead-text{font-size:clamp(22px,2.2vw,30px);line-height:1.6}
:lang(en) .body-text{font-size:clamp(16px,1.2vw,18px);line-height:1.9}
:lang(en) .entry-content{font-family:var(--serif-en);font-size:clamp(16px,1.2vw,18px);line-height:1.9;letter-spacing:.01em}

/* footer address */
.footer .f-address{margin-top:28px;font-size:12px;line-height:2;letter-spacing:.08em;color:var(--text-d-2)}

/* post nav */
.post-nav>span:last-child{text-align:right}
.post-nav>span:empty{min-width:1px}

/* pagination (the_posts_pagination) */
.navigation.pagination{display:block;margin-top:64px}
.navigation.pagination .nav-links{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;font-family:var(--serif-en);font-size:16px}
.navigation.pagination .page-numbers{display:grid;place-items:center;min-width:44px;height:44px;padding:0 10px;border-radius:999px;border:1px solid var(--line-l);transition:background .3s,color .3s}
.navigation.pagination a.page-numbers:hover{background:var(--paper-2)}
.navigation.pagination .current{background:var(--text-l);color:var(--paper);border-color:var(--text-l)}
.navigation.pagination .dots{border:0}

/* widgets (sidebar-1) */
.side-block .widgettitle{font-family:var(--sans);font-weight:400;font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--text-l-2);padding-bottom:14px;border-bottom:1px solid var(--line-l);margin-bottom:0}
.side-block ul{list-style:none;margin:0;padding:0}
.side-block .post-date{display:block;font-family:var(--serif-en);font-size:13px;color:var(--text-l-2)}
.side-block label.screen-reader-text+div,.side-block .searchform>div{display:flex;border-bottom:1px solid var(--text-l)}
.side-block .wp-block-search__inside-wrapper{display:flex;border-bottom:1px solid var(--text-l)}
.side-block .wp-block-search__label{display:none}
.side-block input[type=text],.side-block input[type=search]{flex:1;min-width:0;border:0;background:transparent;padding:12px 0;font:inherit;font-size:13px;color:var(--text-l);outline:none}
.side-block input[type=submit],.side-block .wp-block-search__button{border:0;background:none;padding:0 6px;font:inherit;font-size:12px;letter-spacing:.14em;cursor:pointer;color:var(--text-l)}
.side-block .search-form{margin-top:4px}

/* entry-content: core alignments / media */
.entry-content img{max-width:100%;height:auto}
.entry-content .aligncenter{margin-left:auto;margin-right:auto;display:block}
.entry-content .alignleft{float:left;margin:.4em 1.6em 1em 0}
.entry-content .alignright{float:right;margin:.4em 0 1em 1.6em}
.entry-content figure{margin-left:0;margin-right:0}
.entry-content figcaption,.entry-content .wp-caption-text{margin-top:10px;font-size:12px;color:var(--text-l-2);font-family:var(--sans)}
.entry-content::after{content:"";display:table;clear:both}
.entry-content hr{border:0;border-top:1px solid var(--line-l);margin:3em 0}
.entry-content .btn,.entry-content .wp-block-button__link{display:inline-flex;align-items:center;gap:12px;padding:14px 32px;border:1px solid var(--text-l);border-radius:999px;background:var(--text-l);color:var(--paper);font-family:var(--sans);font-size:13px;letter-spacing:.14em;transition:background .3s,color .3s}
.entry-content .btn:hover,.entry-content .wp-block-button__link:hover{background:transparent;color:var(--text-l)}
.entry-content .text-center{text-align:center}

/* ---------- Contact Form 7 (table layout from the existing form template) ---------- */
.contact-form>p:first-child{font-family:var(--serif-ja);font-weight:400;font-size:clamp(20px,2vw,28px);line-height:1.9;letter-spacing:.1em;margin-bottom:48px}
:lang(en) .contact-form>p:first-child{font-family:var(--serif-en);letter-spacing:.01em}
.contact-form .wpcf7 table{width:100%;border-collapse:collapse;border-top:1px solid var(--line-l);margin:0}
.contact-form .wpcf7 tbody{display:block}
.contact-form .wpcf7 tr{display:grid;grid-template-columns:200px minmax(0,1fr);gap:24px;padding:28px 0;border-bottom:1px solid var(--line-l)}
.contact-form .wpcf7 th,.contact-form .wpcf7 td{display:block;padding:0;border:0;background:none;text-align:left}
.contact-form .wpcf7 th{padding-top:12px;font-weight:400;font-size:13.5px;letter-spacing:.1em}
.contact-form .wpcf7 th p,.contact-form .wpcf7 td p{margin:0}
.contact-form .wpcf7 .row{margin-top:48px}
.contact-form .wpcf7 .text-center{text-align:left}
.contact-form .wpcf7 p{margin:0}
.contact-form .wpcf7-spinner{margin:0 0 0 16px;vertical-align:middle}
.contact-form .wpcf7 form .wpcf7-response-output{margin:24px 0 0;padding:16px 20px;border:1px solid var(--line-l);font-size:13px}
.contact-form .privacy-note{margin-top:28px;font-size:12.5px;line-height:2;color:var(--text-l-2)}
.contact-form .privacy-note a{color:var(--text-l);border-bottom:1px solid currentColor}
@media (max-width:860px){
  .contact-form .wpcf7 tr{grid-template-columns:1fr;gap:10px;padding:22px 0}
  .contact-form .wpcf7 th{padding-top:0}
}

/* legacy inline styles in existing post content (e.g. blue-bordered blockquotes) */
.entry-content blockquote[style]{margin:2.2em 0!important;padding:1.6em 2em!important;border-left:1px solid var(--green)!important;background:var(--paper-2)!important}
.entry-content p[style*="color"]{color:var(--text-l-2)!important}
:lang(en) .page-title .ja{font-family:var(--serif-en);letter-spacing:.06em;font-size:clamp(16px,1.5vw,20px)}

/* TinySuites product list */
.product-list{border-top:1px solid var(--line-l)}
.product{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,4vw,64px);padding:clamp(36px,4vw,56px) 0;border-bottom:1px solid var(--line-l)}
.product-head{position:relative;padding-left:56px}
.product-head .num{position:absolute;left:0;top:.9em;font-family:var(--serif-en);font-size:15px;letter-spacing:.1em;color:var(--text-l-2)}
.product-name{font-family:var(--serif-en);font-weight:300;font-size:clamp(30px,3vw,44px);line-height:1.1;letter-spacing:0}
.product-name span{font-style:italic;color:var(--green)}
.product-cat{margin-top:12px;font-size:12px;letter-spacing:.2em;color:var(--text-l-2)}
.product-lead{font-family:var(--serif-ja);font-size:clamp(17px,1.5vw,21px);line-height:1.8;letter-spacing:.08em}
:lang(en) .product-lead{font-family:var(--serif-en);letter-spacing:.01em}
.product-text{margin-top:14px;font-size:14px;line-height:2.05;color:var(--text-l-2)}
.product .tags{margin-top:20px}
@media (max-width:860px){
  .product{grid-template-columns:1fr;gap:18px}
  .product-head{padding-left:44px}
}
.lineup{margin-top:clamp(90px,10vw,150px);padding-top:clamp(64px,7vw,100px);border-top:1px solid var(--line-l)}
.lineup-head{margin-bottom:clamp(40px,5vw,72px)}
.lineup-head .section-title{margin-top:22px;font-size:clamp(38px,4.4vw,64px)}
.lineup-head .ja{margin-top:16px;font-family:var(--serif-ja);font-size:14px;letter-spacing:.18em;color:var(--text-l-2)}
.lineup .product{grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(40px,8vw,140px)}
@media (max-width:860px){.lineup .product{grid-template-columns:1fr;gap:18px}}
