[hidden] { display: none !important; }
:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
.nav-toggle { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; width:48px; height:48px; padding:10px; background:transparent; color:#fff; border:0; cursor:pointer; }
.nav-toggle .ham-bar { display:block; width:26px; min-height:2px; background:currentColor; }
.site-menu { position:fixed; top:90px; right:3%; z-index:10000; width:min(500px, 94vw); background:#171717; color:white; border:1px solid #555; padding:24px; box-shadow:0 24px 50px #0005; }
.site-menu a { display:flex; justify-content:space-between; padding:18px 8px; font-size:clamp(22px, 3vw, 34px); line-height:1.4; color:inherit; text-decoration:none; }
.site-menu a:hover { color:#abff5e; }
.page-breadcrumbs { display:flex; flex-wrap:wrap; gap:10px; font-size:14px; line-height:1.7; margin:0 0 24px; }
.page-breadcrumbs a { color:inherit; }
.page-intro { width:min(1600px, 90%); margin:0 auto; padding:140px 0 32px; }
.page-intro h1 { font-family:Suit, sans-serif; font-size:clamp(28px, 4vw, 60px); line-height:1.3; margin:0 0 20px; word-break:keep-all; }
.page-intro p, .page-description { font-size:clamp(16px, 1.4vw, 20px); line-height:1.8; max-width:850px; word-break:keep-all; }
.page-description { margin:20px 0; }
.txt-contact { font-family:Suit, sans-serif; font-size:clamp(30px, 5vw, 72px); line-height:1.3; word-break:keep-all; text-align:center; }
.txt-mkt { word-break:keep-all; }
.txt-pf, .txt-pdpf { margin:0; font-weight:inherit; line-height:inherit; }
.article-image { display:block; width:100%; max-width:1000px; height:auto; aspect-ratio:1200 / 630; object-fit:cover; }
.postbubble button, .postbubble a { border:0; background:transparent; cursor:pointer; }
.form-field { width:100%; min-width:0; }
.form-field label { display:block; margin:0 0 10px; font-size:16px; line-height:1.5; }
.form-field .errorlist { color:#cf3030; font-size:14px; padding:0 0 0 20px; }
.form-field [aria-invalid=true] { border-color:#cf3030; }
.form-status { padding:16px; border:1px solid currentColor; margin-bottom:20px; font-size:16px; line-height:1.6; }
.formbox { align-items:stretch; }
.formbox .htmx-request button, .formbox button:disabled { opacity:.55; cursor:wait; }
.form-notice { font-size:14px; line-height:1.7; }
.insight-inbox2 { min-width:0; }
@media(max-width:767px) { .page-intro { padding-top:110px; } .nav .menu { display:none; } .site-menu { top:76px; } .formbox > .horizontal { flex-direction:column; } .page-breadcrumbs { font-size:12px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto !important; } *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; } }
.works-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.works-grid figure { margin:0; min-width:0; }
.works-grid img { display:block; width:100%; height:auto; aspect-ratio:4 / 3; object-fit:cover; background:#eee; }
.works-grid figcaption { padding:16px 0; }
.works-grid figcaption span { font-size:12px; color:#666; }
.works-grid h3 { font-size:20px; line-height:1.4; margin:8px 0 0; }
@media(max-width:767px) { .works-grid { grid-template-columns:1fr; gap:24px; } }
.body-pd .page-intro { color:#eee; }
.txt-mkt { color:#171717; font-size:clamp(28px, 3.5vw, 64px); line-height:1.35; }
.mkthero { height:auto; min-height:95svh; }
.mkthero-txtbox { position:relative; gap:0; }
.mkthero .mkthero-box { position:relative; inset:auto; width:100%; height:clamp(280px, 36vw, 520px); overflow:hidden; flex-shrink:0; }
.mkthero .hero-rotate-base { width:clamp(240px, 35vw, 560px); max-width:80%; }
.mkthero-box > .horizontal-between-middle { position:absolute; inset:auto 0; pointer-events:none; }
@media(max-width:767px) {
  .hero-main .text-hero1, .hero-main .image-hero { transform:none !important; opacity:1 !important; }
}
