@charset "UTF-8";
html { scroll-behavior:smooth; background:#101110; }
body { margin:0 !important; padding:0 !important; min-width:0; background:#101110 !important; }
/*
  KIBO — Goope stylesheet
  Paste into: Goope Admin > Design > current design > Edit > HTML/CSS editing > CSS.
  The stylesheet is intentionally scoped under .kibo-site to avoid affecting Goope's admin/theme markup.
*/
.kibo-site { --kibo-black:#101110; --kibo-cream:#f4f1e8; --kibo-paper:#eae6db; --kibo-red:#ef4223; --kibo-mono:"DM Mono",monospace; --kibo-display:"Manrope","Noto Sans JP",sans-serif; --kibo-body:"Noto Sans JP",sans-serif; box-sizing:border-box; overflow:hidden; background:var(--kibo-black); color:var(--kibo-cream); font-family:var(--kibo-body); }
.kibo-site *, .kibo-site *::before, .kibo-site *::after { box-sizing:border-box; }
.kibo-site a { color:inherit; text-decoration:none; }
.kibo-site img { max-width:100%; }
.kibo-site p { margin:0; }
.kibo-site [id] { scroll-margin-top:86px; }
.kibo-header { position:sticky; top:0; z-index:20; display:flex; align-items:center; justify-content:space-between; height:76px; padding:0 26px; background:rgba(16,17,16,.9); border-bottom:1px solid rgba(244,241,232,.12); backdrop-filter:blur(14px); }
.kibo-logo, .kibo-footer > a { font:800 29px/1 var(--kibo-display); letter-spacing:-.1em; }
.kibo-logo span, .kibo-footer span { color:var(--kibo-red); }
.kibo-nav { display:flex; align-items:center; gap:22px; }
.kibo-nav > a { color:rgba(244,241,232,.78); font:500 10px/1 var(--kibo-mono); letter-spacing:.05em; }
.kibo-nav > a:hover { color:var(--kibo-red); }
.kibo-nav .kibo-nav-contact { padding:11px 14px; background:var(--kibo-red); color:#fff; }
.kibo-mobile-menu { display:none; }
.kibo-mobile-menu summary { list-style:none; cursor:pointer; }
.kibo-mobile-menu summary::-webkit-details-marker { display:none; }
.kibo-mobile-menu summary > span { display:block; width:19px; height:1px; margin:4px 0; background:var(--kibo-cream); }
.kibo-mobile-menu > div { position:absolute; right:0; top:76px; display:flex; min-width:240px; flex-direction:column; padding:15px 22px; background:var(--kibo-black); border:1px solid rgba(244,241,232,.18); box-shadow:0 15px 40px rgba(0,0,0,.34); }
.kibo-mobile-menu > div a { padding:14px 0; border-bottom:1px solid rgba(244,241,232,.14); font:600 15px var(--kibo-display); letter-spacing:-.03em; }
.kibo-mobile-menu > div a:last-child { border:0; color:var(--kibo-red); }
.kibo-hero { position:relative; display:flex; min-height:calc(100svh - 76px); align-items:flex-end; overflow:hidden; isolation:isolate; background:#111312; }
.kibo-hero::before { content:""; position:absolute; inset:0; z-index:-3; background:linear-gradient(90deg,rgba(16,17,16,.2),rgba(16,17,16,.05)),var(--kibo-hero-image) center/cover; opacity:.6; mix-blend-mode:screen; }
.kibo-hero::after { content:""; position:absolute; inset:0; z-index:-2; background-image:linear-gradient(rgba(244,241,232,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(244,241,232,.07) 1px,transparent 1px); background-size:22.5vw 100%; mask-image:linear-gradient(to bottom,rgba(0,0,0,.65),transparent 90%); }
.kibo-hero-content { width:100%; padding:126px 26px 40px; }
.kibo-eyebrow { font:500 10px/1.25 var(--kibo-mono); letter-spacing:.06em; }
.kibo-orange { color:var(--kibo-red); }
.kibo-hero-eyebrow { display:flex; align-items:center; gap:9px; color:rgba(244,241,232,.68); }
.kibo-hero-eyebrow span { display:block; width:26px; height:1px; background:var(--kibo-red); }
.kibo-hero-title { display:flex; flex-direction:column; width:min-content; margin:19px 0 30px; font:800 clamp(55px,12.3vw,184px)/.76 var(--kibo-display); letter-spacing:-.105em; }
.kibo-hero-title span { white-space:nowrap; }
.kibo-accent { color:var(--kibo-red); }
.kibo-hero-foot { display:flex; align-items:flex-end; justify-content:space-between; max-width:1080px; }
.kibo-hero-foot > p { color:rgba(244,241,232,.83); font-size:13px; line-height:1.9; letter-spacing:.08em; }
.kibo-circle-link { display:grid; width:58px; height:58px; place-items:center; border:1px solid rgba(244,241,232,.55); border-radius:50%; font:28px/1 var(--kibo-display); transition:background .18s ease,transform .18s ease; }
.kibo-circle-link:hover { background:var(--kibo-red); border-color:var(--kibo-red); transform:rotate(45deg); }
.kibo-hero-side { position:absolute; top:70px; right:27px; color:rgba(244,241,232,.52); font:9px var(--kibo-mono); letter-spacing:.1em; writing-mode:vertical-rl; }
.kibo-section { padding:90px 26px; }
.kibo-about, .kibo-company { background:var(--kibo-paper); color:var(--kibo-black); }
.kibo-section-marker { display:flex; align-items:center; gap:10px; color:var(--kibo-red); font:500 10px var(--kibo-mono); letter-spacing:.06em; }
.kibo-section-marker i { display:block; width:39px; height:1px; background:currentColor; }
.kibo-about-layout { display:grid; gap:54px; margin-top:58px; }
.kibo-display-title { margin:22px 0 0; font:800 clamp(50px,10.6vw,148px)/.82 var(--kibo-display); letter-spacing:-.1em; }
.kibo-display-title em { font-family:"Playfair Display",serif; font-weight:500; }
.kibo-about-copy { max-width:550px; }
.kibo-about-copy > p { margin:0 0 24px; color:#343530; font-size:14px; line-height:2.05; letter-spacing:.04em; }
.kibo-about-copy .kibo-lead { color:var(--kibo-black); font-size:19px; font-weight:600; line-height:1.75; letter-spacing:.01em; }
.kibo-text-link { display:inline-block; margin-top:10px; padding-bottom:7px; border-bottom:1px solid currentColor; font:500 10px var(--kibo-mono); letter-spacing:.06em; }
.kibo-fields { padding:88px 0 0; background:var(--kibo-black); }
.kibo-fields-top { display:flex; flex-direction:column; gap:35px; padding:0 26px 42px; }
.kibo-fields-top > p { color:#b9b7ae; font-size:13px; line-height:2; letter-spacing:.08em; }
.kibo-fields-grid { display:grid; grid-template-columns:1fr; }
.kibo-field-card { position:relative; display:flex; min-height:420px; flex-direction:column; justify-content:space-between; overflow:hidden; padding:24px 26px; border-top:1px solid rgba(244,241,232,.2); isolation:isolate; }
.kibo-field-card::before { content:""; position:absolute; inset:0; z-index:-2; background:var(--kibo-field-image,none) center/cover; opacity:.52; filter:grayscale(1) contrast(1.12); }
.kibo-field-card::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(0deg,rgba(0,0,0,.64),rgba(0,0,0,.04) 70%); }
.kibo-field-commerce { background:var(--kibo-red); color:#fff; }
.kibo-field-commerce::before, .kibo-field-commerce::after { display:none; }
.kibo-field-digital { background:#192226; }
.kibo-field-growth { background:#dad6cb; color:var(--kibo-black); }
.kibo-field-growth::before { display:none; }
.kibo-field-growth::after { background:radial-gradient(circle at 72% 17%,rgba(255,255,255,.84),transparent 0 12%,rgba(16,17,16,.1) 13%,transparent 14%); opacity:.45; }
.kibo-field-number { font:500 10px var(--kibo-mono); letter-spacing:.06em; }
.kibo-field-card h3 { max-width:430px; margin:0 0 12px; font:700 25px/.95 var(--kibo-display); letter-spacing:-.06em; }
.kibo-field-card p { max-width:385px; font-size:12px; line-height:1.9; letter-spacing:.035em; opacity:.83; }
.kibo-field-card .kibo-field-ja { margin:0 0 16px; font-size:15px; font-weight:600; letter-spacing:.04em; opacity:1; }
.kibo-field-arrow { position:absolute; top:24px; right:24px; display:grid; width:40px; height:40px; place-items:center; border:1px solid currentColor; border-radius:50%; font:20px/1 var(--kibo-display); }
.kibo-service { display:grid; gap:60px; background:#171917; }
.kibo-service-intro { position:relative; padding-top:58px; }
.kibo-service-intro .kibo-section-marker { position:absolute; top:0; left:0; }
.kibo-service-list { border-top:1px solid rgba(244,241,232,.22); }
.kibo-service-row { border-bottom:1px solid rgba(244,241,232,.22); }
.kibo-service-row summary { display:flex; align-items:center; gap:14px; padding:23px 0; cursor:pointer; list-style:none; }
.kibo-service-row summary::-webkit-details-marker { display:none; }
.kibo-service-row summary span { width:24px; color:var(--kibo-red); font:500 10px var(--kibo-mono); }
.kibo-service-row summary strong { flex:1; font:700 17px var(--kibo-display); letter-spacing:-.05em; }
.kibo-service-row summary b { font:400 24px/1 var(--kibo-display); transition:transform .18s ease; }
.kibo-service-row[open] summary b { transform:rotate(45deg); }
.kibo-service-row > div { display:grid; gap:18px; padding:0 0 25px 38px; }
.kibo-service-row > div > p { max-width:470px; color:#bebeb6; font-size:12px; line-height:1.9; letter-spacing:.04em; }
.kibo-service-row ul { display:flex; flex-wrap:wrap; gap:7px 8px; margin:0; padding:0; list-style:none; }
.kibo-service-row li { padding:6px 8px; border:1px solid rgba(244,241,232,.25); color:#ece9de; font-size:11px; letter-spacing:.04em; }
.kibo-statement { position:relative; overflow:hidden; background:var(--kibo-red); color:#fff; }
.kibo-statement::after { content:""; position:absolute; right:-15vw; bottom:-37vw; width:67vw; height:67vw; border:1px solid rgba(255,255,255,.48); border-radius:50%; box-shadow:0 0 0 11vw rgba(0,0,0,0),0 0 0 12vw rgba(255,255,255,.38); }
.kibo-statement > div { position:relative; z-index:1; padding:92px 26px; }
.kibo-statement-copy { margin:23px 0 22px; font:800 clamp(48px,12.7vw,170px)/.86 var(--kibo-display); letter-spacing:-.1em; }
.kibo-statement-copy em { font-family:"Playfair Display",serif; font-weight:500; }
.kibo-statement > div > p:last-child { font-size:13px; line-height:2; letter-spacing:.08em; }
.kibo-company-layout { display:grid; gap:55px; margin-top:58px; }
.kibo-company-data { margin:0; }
.kibo-company-data > div { display:grid; gap:8px; padding:17px 0; border-top:1px solid rgba(16,17,16,.35); }
.kibo-company-data > div:last-child { border-bottom:1px solid rgba(16,17,16,.35); }
.kibo-company-data dt { color:var(--kibo-red); font:500 10px var(--kibo-mono); letter-spacing:.07em; }
.kibo-company-data dd { margin:0; font-size:13px; line-height:1.7; letter-spacing:.04em; }
.kibo-company-data a { border-bottom:1px solid currentColor; }
.kibo-map { margin-top:35px; }
.kibo-map > div { display:flex; justify-content:space-between; padding-bottom:10px; color:var(--kibo-red); font:500 10px var(--kibo-mono); letter-spacing:.07em; }
.kibo-map iframe { display:block; width:100%; height:290px; border:1px solid rgba(16,17,16,.35); }
.kibo-contact { padding:94px 26px; background:var(--kibo-black); }
.kibo-contact h2 { margin:21px 0 25px; font:800 clamp(49px,12vw,176px)/.81 var(--kibo-display); letter-spacing:-.105em; }
.kibo-contact h2 em { color:var(--kibo-red); font-family:"Playfair Display",serif; font-weight:500; }
.kibo-contact > p:not(.kibo-eyebrow) { margin:0 0 38px; color:#c8c7be; font-size:13px; line-height:2; letter-spacing:.06em; }
.kibo-contact > p a { display:inline-block; margin-top:7px; color:var(--kibo-red); border-bottom:1px solid currentColor; font:500 11px var(--kibo-mono); letter-spacing:.06em; }
.kibo-back-to-top { display:inline-flex; min-width:168px; min-height:54px; align-items:center; justify-content:center; background:var(--kibo-red); color:#fff; font:500 10px var(--kibo-mono); letter-spacing:.06em; }
.kibo-footer { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px; padding:25px 26px; border-top:1px solid rgba(244,241,232,.2); background:var(--kibo-black); }
.kibo-footer > a { font-size:21px; }
.kibo-footer p { color:#8e9089; font:9px var(--kibo-mono); letter-spacing:.05em; }
@media (max-width:767px) { .kibo-nav { display:none; } .kibo-mobile-menu { display:block; } }
@media (min-width:768px) { .kibo-header { height:86px; padding:0 46px; } .kibo-hero { min-height:calc(100svh - 86px); } .kibo-hero-content { padding:154px 46px 53px; } .kibo-hero-side { top:80px; right:46px; } .kibo-section { padding:128px 46px; } .kibo-about-layout { grid-template-columns:1.05fr .95fr; gap:80px; align-items:end; } .kibo-about-copy { justify-self:end; } .kibo-fields { padding-top:124px; } .kibo-fields-top { display:grid; grid-template-columns:1.05fr .95fr; align-items:end; padding:0 46px 61px; } .kibo-fields-top > p { justify-self:end; } .kibo-fields-grid { grid-template-columns:repeat(2,1fr); } .kibo-field-card { min-height:530px; padding:31px; } .kibo-field-arrow { top:31px; right:31px; } .kibo-service { grid-template-columns:.85fr 1.15fr; gap:11vw; padding-top:130px; padding-bottom:130px; } .kibo-service-row summary { padding:28px 0; } .kibo-service-row summary strong { font-size:20px; } .kibo-service-row > div { grid-template-columns:.9fr 1.1fr; gap:26px; } .kibo-statement > div { padding:138px 46px; } .kibo-company-layout { grid-template-columns:.85fr 1.15fr; gap:11vw; } .kibo-company-info { align-self:end; } .kibo-company-data > div { grid-template-columns:135px 1fr; gap:25px; padding:19px 0; } .kibo-map iframe { height:345px; } .kibo-contact { padding:135px 46px; } .kibo-footer { padding:28px 46px; } }
@media (min-width:1180px) { .kibo-header { padding:0 66px; } .kibo-hero-content { padding:170px 66px 57px; } .kibo-hero-side { right:66px; } .kibo-section, .kibo-contact { padding-left:66px; padding-right:66px; } .kibo-fields-top { padding-left:66px; padding-right:66px; } .kibo-field-card { min-height:620px; padding:36px; } .kibo-field-arrow { top:36px; right:36px; } .kibo-statement > div { padding-left:66px; padding-right:66px; } .kibo-footer { padding-left:66px; padding-right:66px; } }

/* Goope shell reset: retain the platform template blocks while showing the KIBO home layout. */
body.geometric-theme { margin:0 !important; padding:0 !important; background:#101110 !important; }
.geometric-bg, #header, .mobile-nav, .totop, #footer, .menu-toggle, .mobile-overlay { display:none !important; }
#container, #content.main-content { width:100% !important; max-width:none !important; margin:0 !important; padding:0 !important; background:#101110 !important; }
.kibo-site h1, .kibo-site h2, .kibo-site h3, .kibo-site ul { margin:0; padding:0; }

/* Hide the retained default top blocks beneath the custom KIBO homepage. */
#content > .hero-section, #content > .welcome-section, #content > .info-section, #content > .about-section, #content > .photo-section { display:none !important; }

/* Preserve the editorial composition when the hero grows taller than its source image. */
.kibo-hero::before { background-position:center center, 70% center; opacity:.74; mix-blend-mode:normal; }

/* Remove unused legacy photo modal from the retained Goope template. */
#photo-modal, .photo-modal, .modal-overlay { display:none !important; visibility:hidden !important; pointer-events:none !important; }
#photo-modal * { display:none !important; }
