
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@100;300;400;500;600&family=Noto+Sans+JP:wght@300;400;700&display=swap');
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{--red:#E60013;}
body{background:#fff;font-family:'Noto Sans JP',sans-serif;color:#444;}
/* p{color:#1a1a1a;} */

/* SP専用改行：PCは非表示、SPで表示 */
br.sp{display:none;}

/* ── HEADER ── */
.page-header{width:100%;background:#fff;display:flex;align-items:stretch;overflow:hidden;position:relative;}
.photo-wrap{flex:0 0 55%;position:relative;}
.photo-inner{width:90%;margin:0 auto;clip-path:inset(0 100% 100% 0);animation:revealTopLeft .9s .1s cubic-bezier(.76,0,.24,1) forwards;}
@keyframes revealTopLeft{0%{clip-path:inset(0 100% 100% 0);}100%{clip-path:inset(0 0% 0% 0);}}
.photo-inner img{width:100%;height:auto;display:block;}
.text-side{flex:1;display:flex;flex-direction:column;justify-content:center;padding:0 60px 0 100px;text-align:left;position:relative;opacity:0;transform:translateX(20px);animation:slideIn .6s .85s cubic-bezier(.22,1,.36,1) forwards;}
.heading{font-family:'Poppins',sans-serif;font-size:clamp(28px,4.5vw,58px);font-weight:100;letter-spacing:-.01em;color:#1a1a1a;line-height:1.1;}
.heading .accent{color:var(--red);}
.sub{font-size:16px;font-weight:300;letter-spacing:.12em;color:#666;}
.dot{display:none;}
@keyframes dotPop{to{opacity:1;}}
@keyframes slideIn{to{opacity:1;transform:translateX(0);}}

/* ===== SCROLL REVEAL 共通 ===== */
.reveal-section{
  opacity:0;
  transform:translateY(60px);
  will-change:opacity,transform;
}
.reveal-section.is-visible{
  animation:fadeUpSlow 1.6s .1s ease-out forwards;
}
@keyframes fadeUpSlow{
  0%{opacity:0;transform:translateY(60px);}
  60%{opacity:1;transform:translateY(12px);}
  100%{opacity:1;transform:translateY(0);}
}

/* ── LAYOUT HELPERS ── */
.inner{max-width:1160px;margin:0 auto;padding:0 60px;}
.sec-wrap{padding:80px 0;}

/* ── SECTION HEADING ── */
.sec-head{margin-bottom:56px;}
.sec-head h2{font-family:'Poppins',sans-serif;font-size:50px;font-weight:100;line-height:1;color:#000;}
.sec-head h2 .r{color:var(--red);}
.sec-head .ja{font-size:16px;color:#595757;margin-top:6px;font-weight:300;}

/* ── BRANDS & SERVICES ── */
.biz-item{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;margin-bottom:80px;}
.biz-item:last-child{margin-bottom:0;}
.biz-item img{width:100%;height:auto;display:block;}
.biz-item.rev .img-col{order:2;}
.biz-item.rev .txt-col{order:1;}
.bullet{width:14px;height:14px;background:var(--red);}
.biz-headline{display:flex;align-items:center;gap:10px;margin-bottom:16px;}
.biz-h{font-size:20px;font-weight:500; margin-bottom: 0px;}
.biz-p{font-size:15px;line-height:1.85;}

/* ── RED SECTION ── */
.brand-creative{
  background:linear-gradient(202deg,#E60012 0%,#C7000B 101%);
  border-radius:0 300px 0 0px;
  padding:120px 0;color:#fff;
  margin:80px 0;
}
.bc-sec-head{margin-bottom:40px;}
.bc-sec-h2{font-family:'Poppins',sans-serif;font-size:50px;font-weight:100;line-height:1;color:#fff;}
.bc-r{color:rgba(255,255,255,.55);}
.bc-sec-ja{font-size:20px;color:rgba(255,255,255,.75);margin-top:6px;font-weight:300;}
.bc-body{display:grid;grid-template-columns:1fr 1fr;align-items:center;}
.bc-left h2{font-size:26px;font-weight:500;line-height:1.6;margin-bottom:16px;}
.bc-h2-reveal .bc-h2-line--keywords{display:inline-block;}
.bc-h2-reveal .bc-concept-title .bc-h2-kw-lg{font-size:inherit;}
.bc-h2-reveal .bc-h2-chunk{
  display:inline-block;
  opacity:0;
  will-change:opacity;
}
.bc-h2-reveal.is-visible .bc-h2-chunk{
  animation:bcH2ChunkFade 0.75s ease-out forwards;
  animation-delay:calc(0.15s + var(--i,0) * 0.38s);
}
@keyframes bcH2ChunkFade{
  from{opacity:0;}
  to{opacity:1;}
}
@media(prefers-reduced-motion:reduce){
  .bc-h2-reveal .bc-h2-chunk{opacity:1;}
  .bc-h2-reveal.is-visible .bc-h2-chunk{animation:none;}
}
.bc-left .bc-en{font-family:'Poppins',sans-serif;font-size:17px;font-weight:400;opacity:1;margin-bottom:24px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.bc-left .bc-mark{width:70%;object-fit:contain;flex:0 0 auto;}
.bc-left p{font-size:16px;line-height:1.8;opacity:.9;color:#fff;text-align:justify;text-justify:inter-character;}

/* Venn */
.venn-wrap{display:flex;align-items:center;justify-content:center;}
.venn-wrap img{width:70%;height:auto;display:block;}
.venn{position:relative;width:280px;height:270px;}
.vc{position:absolute;width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:12px;}
.vc-top{top:0;left:50%;transform:translateX(-50%);}
.vc-bl{bottom:0;left:0;}
.vc-br{bottom:0;right:0;}
.vc-en{font-family:'Poppins',sans-serif;font-size:14px;font-weight:600;line-height:1.2;}
.vc-ja{font-size:10px;opacity:.8;margin-top:3px;line-height:1.3;}
.venn-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:rgba(255,255,255,.28);border-radius:50%;width:76px;height:76px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;text-align:center;line-height:1.4;padding:8px;}
.vc-icon{width:28px;height:28px;margin-bottom:4px;}

/* ── AWARDS ── */
.awards-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}
.awards-list{list-style:none;}
.awards-list li{font-size:16px;line-height:1;color:#444;padding:14px 0;}
.awards-logos img{width:100%;object-fit:contain;}

/* ── BRAND GRID ── */
.brand-grid{display:grid;grid-template-columns:1fr 1fr;}
.brand-card{padding:40px 0;display:flex;gap:32px;flex-direction: row-reverse;}
.brand-card:nth-child(odd){padding-right:48px;}
.brand-card:nth-child(even){padding-left:48px;}
.brand-left{flex:1;display:flex;flex-direction:column;align-items:flex-start;}
.brand-logo-box{width:220px;height:40px;display:flex;align-items:center;justify-content:flex-start;}
.brand-logo-box img{width:100%;height:100%;object-fit:contain;}
.brand-product{width:188px;overflow:hidden;flex-shrink:0;}
.brand-product img{width:100%;object-fit:cover;}
.brand-info{flex:1;}
.brand-tagline{font-size:14px;font-weight:700;color:#444;line-height:1.8;}
.brand-name{font-size:16px;font-weight:700;color:#111;margin-top:4px;margin-bottom:10px;}
.brand-desc{font-size:14px;line-height:1.85;color:#595757;}

/* ── RESPONSIVE ── */
@media(max-width:768px){
  br.sp{display:inline;}
  .brand-creative .inner{grid-template-columns:1fr;}
  .bc-body{grid-template-columns:1fr;}
  .venn-wrap{display:none;}
  .awards-grid{grid-template-columns:1fr;}
  .awards-list li{font-size:13px;}
  p{font-size:14px;}
  .biz-p{font-size:14px;}
  .biz-item{grid-template-columns:1fr;gap:24px;}
  .biz-item.rev .img-col,.biz-item.rev .txt-col{order:unset;}
  .inner{padding:0 32px;}
  .sec-head h2{font-size:40px;}
  .brand-grid{grid-template-columns:1fr;}
  .brand-card:nth-child(odd){border-right:none;padding-right:0;flex-direction: row;}
  .brand-card:nth-child(even){padding-left:0;flex-direction: row;}
  .brand-card {padding: 5px 0;}
  .awards-grid {gap:20px;}
  .awards-list li {padding:10px 0;}
  .sec-head {margin-bottom: 14px;}
  .sec-head .ja {font-size: 13px;}
  .biz-item {margin-bottom: 35px;}
  .biz-h {font-size: 16px;}
}
@media(max-width:600px){
  .page-header{flex-direction:column-reverse;}
  .photo-wrap{flex:none;width:100%;}
  .photo-inner{width:100%;animation:revealTopLeft .9s .2s cubic-bezier(.76,0,.24,1) forwards;}
  .text-side{padding:28px 24px;text-align:left;transform:translateY(16px);animation:slideInY .6s .55s cubic-bezier(.22,1,.36,1) forwards;}
  @keyframes slideInY{to{opacity:1;transform:translateY(0);}}
  .dot{bottom:20px;right:20px;}
  .heading{font-size:32px;}
  .inner{padding:0 20px;}
  .sec-head{margin-bottom:24px;}
  .biz-headline{margin-bottom:5px;}
  .sec-wrap{padding:56px 0;}
  .brand-card{flex-direction:column;}
  .brand-product{width:160px;height:160px;}
  .brand-logo-box{width:160px;}
  .sec-head h2{font-size:40px;}
  .brand-creative{border-radius:0 120px 0 0px; padding:90px 0px 70px;margin: 10px 0 30px 0;}
  .bc-left h2{font-size:25px;}
  .bc-left p{font-size:14px;}
  .bc-left .bc-mark{width:85%;}
  .bc-body{gap:8px;}
  .venn{width:240px;height:230px;}
  .vc{width:120px;height:120px;padding:10px;}
  .vc-en{font-size:12px;}
  .vc-ja{font-size:9px;margin-top:2px;}
  .venn-center{width:64px;height:64px;font-size:9px;padding:6px;line-height:1.3;}
  .vc-icon{width:22px;height:22px;margin-bottom:3px;}
  .venn-wrap{display:flex;}
  .venn-wrap img{width:85%;margin-top: 30px;}
}

/* PC: h2 font-size unified across pages */
@media (min-width: 769px){
  h2{font-size:50px;}
}

/* Mobile: h1 font-size unified across pages */
@media (max-width: 768px){
  .sub{font-size:13px;}
  h1{font-size:40px !important;}
}

@media (max-width: 768px){
  .photo-inner img{width:90%;}
}
