:root{
  --ink:#01101B;
  --blue:#1E4986;
  --orange:#B6772A;
  --paper:#f3f2ee;
  --paper-img:url("assets/common/paper.png");
  /* Noise strengths are intentionally distinct until each Figma layer is verified. */
  --tsunacan-grain-layer-opacity:.12;
  --tsunacan-figma-mono-layer-opacity:.70;
  --wide:1200px;
  --content:960px;
  --header-w:1278px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
/* Fixed paper background: paper.png is 3832x2028px (2x asset).
   Keep the previous 1916x1014 CSS-pixel appearance on small viewports.
   Scale it up ONLY when needed to cover the viewport, and never tile the image.
   188.9546vh = 100vh * (3832 / 2028), so both landscape and tall screens are covered.
   This is on a fixed viewport pseudo-element, not restarted per section. */
html{background-color:var(--paper)}
body{margin:0;color:var(--ink);font-family:"Noto Sans JP","Yu Gothic",YuGothic,"Hiragino Kaku Gothic ProN",sans-serif;background:transparent;isolation:isolate;font-size:16px;line-height:1.65}
body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background-color:var(--paper);
  background-image:var(--paper-img);
  background-position:left top;
  background-repeat:no-repeat;
  background-size:max(1916px, 100vw, 188.9546vh) auto;
}
body>main,body>footer{position:relative;z-index:1}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
main{overflow:hidden}
.container{width:min(var(--content),calc(100% - 48px));margin-inline:auto}
.container-wide{width:min(var(--wide),calc(100% - 48px));margin-inline:auto}
.paper-section{background:transparent}
.grain{position:relative;isolation:isolate}
.grain::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:var(--tsunacan-grain-layer-opacity);z-index:20;background-image:url("assets/common/grain-tile.png");background-repeat:repeat;background-size:256px 256px;mix-blend-mode:multiply}
.grain>*{position:relative;z-index:1}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:63px;padding:0 38px;border:2px solid rgba(255,255,255,.95);box-shadow:0 5px 0 rgba(1,16,27,.22);font-size:20px;font-weight:700;line-height:1.2;transition:transform .2s,filter .2s}
.btn:hover{transform:translateY(-1px);filter:brightness(.97)}
.btn-orange{background:var(--orange);color:#fff}.btn-blue{background:var(--blue);color:#fff}
.tag{display:inline-flex;align-items:center;background:var(--orange);color:#fff;font-size:14px;font-weight:700;padding:4px 10px;line-height:1.25}
.button-row{display:flex;gap:16px;flex-wrap:wrap}
.section-heading{margin-bottom:42px}.section-heading h2{font-size:40px;line-height:1.35;margin:0 0 12px}.section-heading p{margin:0;line-height:1.8}



/* header */
.site-header{position:fixed;top:25px;left:0;right:0;z-index:3000;pointer-events:none}
.header-shell{width:min(calc(100% - 162px),var(--header-w));height:82px;margin:0 auto;padding:0 35px 0 46px;display:flex;align-items:center;background:rgba(255,255,255,.70);border:2px solid var(--ink);border-radius:31px;pointer-events:auto}
.brand{width:245px;flex:0 0 245px}.brand img{width:245px;height:68px;object-fit:contain}
.desktop-nav{display:flex;align-items:center;margin-left:auto;gap:38px;font-size:16px;font-weight:700;white-space:nowrap}.desktop-nav>a:not(.header-cta){padding:28px 0 24px}
.header-cta{width:208px;height:44px;background:var(--orange);color:#fff;display:flex;align-items:center;justify-content:center;margin-left:3px;font-weight:700}
.mobile-mail,.hamburger,.mobile-menu{display:none}

/* page hero */
.page-hero{height:576px;background:var(--blue);color:#fff}
.page-hero .container,.page-hero .container-wide{padding-top:240px}
.page-hero h1{font-size:64px;line-height:1.15;margin:0 0 22px;font-weight:800;letter-spacing:.01em}

/* Shared footer — original Figma Footer node 415:515, canvas 1440×617. */
.site-footer{position:relative;height:617px;min-height:0;margin-top:0;color:#fff;background:transparent;overflow:visible;isolation:isolate}
.site-footer::before{content:"";position:absolute;inset:138px 0 0;background:var(--ink);z-index:0}
.footer-inner{position:relative;width:min(1200px,calc(100% - 48px));height:100%;margin:0 auto;padding:0;z-index:1}
.footer-copy{position:relative;z-index:2;width:100%;height:100%}
.footer-copy h2{position:absolute;left:0;top:270px;margin:0;font-size:40px;font-weight:700;line-height:1.5;letter-spacing:.03em;color:#fff}
.footer-address{position:absolute;left:0;top:340px;margin:0;font-size:16px;font-weight:500;line-height:1.5;letter-spacing:.03em;white-space:nowrap;color:#fff}
.footer-tagline{position:absolute;left:0;top:420px;margin:0;font-size:40px;font-weight:700;line-height:1.5;letter-spacing:.03em;color:var(--orange)}
.footer-links{position:absolute;left:0;right:0;top:540px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:0}
.footer-links a{font-size:16px;line-height:1.5;font-weight:500;letter-spacing:.03em;color:#fff;border:0;padding:0;white-space:nowrap}
.footer-links a:hover,.footer-links a:focus-visible{text-decoration:underline;text-underline-offset:4px}
.copyright{position:absolute;left:0;right:0;top:576px;margin:0;text-align:center;font-size:16px;line-height:1.5;letter-spacing:.03em;opacity:1;color:#fff}
.footer-team{position:absolute;right:-85px;top:-25px;bottom:auto;width:536px;height:578px;max-width:none;object-fit:contain;z-index:1;filter:drop-shadow(0 -4px 4px rgba(0,0,0,.55))}

/* generic service children */

.child-lead{min-height:760px;padding:240px 0 120px}.child-lead-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:96px;row-gap:36px;align-items:center}.child-lead-grid>h2{grid-column:1/-1;margin-bottom:0;text-wrap:balance}.child-lead-grid>.child-lead-copy{grid-column:1}.child-lead-grid>img{grid-column:2}.child-lead h2{font-size:56px;line-height:1.42;margin:0 0 26px}.child-lead p{margin:0 0 26px;line-height:1.9}.child-lead img{width:100%;aspect-ratio:1.45/1;object-fit:cover;border:8px solid #fff;box-shadow:0 3px 12px rgba(1,16,27,.2)}

/* Three service-page introductions: original SVG copy/title starts at x=120 on 1440px. */

/* Three service-page lead CTAs, Figma SVG 6/7/8: two stacked blue buttons. */
.child-lead .button-row{display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.child-lead .button-row .btn{box-sizing:border-box;max-width:100%;height:63px;min-height:63px;padding:0 12px;white-space:nowrap}
.sns-page .child-lead .button-row .btn:first-child{width:259px}
.youtube-page .child-lead .button-row .btn:first-child{min-width:259px}
.movie-page .child-lead .button-row .btn:first-child{width:220px}
.child-lead .button-row .btn:nth-child(2){width:180px}




@media(max-width:600px){.child-lead .button-row .btn{font-size:clamp(14px,4.5vw,20px);white-space:normal;height:auto;min-height:63px;padding:10px 12px;text-align:center}}

.problem-section,.feature-section,.use-section,.benefit-section,.pricing-section,.works-teaser-section,.source-konomachi,.crosslink-band{padding-left:0;padding-right:0}
.problem-section{min-height:720px;padding-top:115px}.feature-section{min-height:1060px;padding-top:115px}.use-section{min-height:1140px;padding-top:115px}.benefit-section{min-height:670px;padding-top:115px}.pricing-section{min-height:1180px;padding-top:115px}.works-teaser-section{min-height:825px;padding-top:115px}
.problem-section h2,.feature-section h2,.use-section h2,.benefit-section h2,.pricing-section h2,.works-teaser-section h2,.source-konomachi h2,.crosslink-band h2{font-size:40px;line-height:1.35;margin:0 0 42px}.check-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:18px 74px}.check-grid li{position:relative;min-height:48px;padding:5px 0 5px 59px;font-weight:700;display:flex;align-items:center}.check-grid li::before{content:"";position:absolute;left:0;top:0;width:47.285px;height:47.291px;background:transparent url("assets/common/check-burst-original.svg") center/contain no-repeat;border:0;border-radius:0}
/* v102 SNS: font-dependent check glyph -> fixed white vector path, motif unchanged. */
.sns-page .check-grid li::before{background-image:url("assets/sns/check-burst-path.svg")}.section-note{font-weight:700;margin-top:32px}.problem-intro-note{position:relative;margin:-20px 0 44px;padding-top:16px;font-weight:500;line-height:1.75}.problem-intro-note::before{content:"";display:block;width:94px;height:5px;background:#1E4986;position:absolute;top:0;left:0}


@media (min-width:901px){
  .sns-page .problem-section > .container,
  .youtube-page .problem-section > .container,
  .movie-page .problem-section > .container{width:min(1200px,calc(100% - 48px))}
  .sns-page .problem-section .problem-intro-note{line-height:1.5}
  .sns-page .problem-section .problem-intro-note::before{width:40px;height:4px}
}


/* source comp uses icon + text, not floating cards */
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:72px 52px}.feature-card{background:transparent;border:0;padding:0;min-height:180px}.feature-card img{width:76px;height:76px;object-fit:contain;margin-bottom:18px}.feature-card h3{font-size:20px;margin:0 0 10px}.feature-card p{font-size:15px;line-height:1.8;margin:0}
.use-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:52px 28px}.case-media{height:160px;background:var(--ink);display:grid;place-items:center;color:rgba(255,255,255,.35);font-weight:800;letter-spacing:.18em}.use-card h3{font-size:18px;margin:14px 0 6px}.use-card p{font-size:14px;line-height:1.7;margin:0}

/* YouTube | Wireframe - 7.svg: benefits and regional TV  */
.youtube-page .youtube-benefits{height:638px;min-height:0;padding:0;border-top:8px solid #B6772A;border-bottom:8px solid #B6772A;background:rgba(255,255,255,.84);position:relative;overflow:hidden}
.youtube-page .youtube-benefits-wrap{position:relative;z-index:1;width:min(1200px,calc(100% - 48px));height:622px;margin:0 auto}
.youtube-page .youtube-benefits-heading{position:absolute;left:0;top:105px;width:550px}
.youtube-page .youtube-benefits-heading h2{font-size:40px;line-height:1.5;font-weight:700;margin:0 0 8px;letter-spacing:.03em}
.youtube-page .youtube-benefits-heading>p{font-size:16px;line-height:24px;margin:0;letter-spacing:.03em}
.youtube-page .youtube-benefit{position:absolute;display:grid;grid-template-columns:88px minmax(0,1fr);gap:24px;align-items:start;min-width:0}
.youtube-page .youtube-benefit>img{width:88px;height:88px;object-fit:contain;max-width:none;filter:drop-shadow(0 4px 2px rgba(0,0,0,.18))}
.youtube-page .youtube-benefit-copy{min-width:0}
.youtube-page .youtube-benefit:not(.youtube-benefit-03) .youtube-benefit-copy{transform:translateY(-16px)}
.youtube-page .youtube-benefit h3{font-size:24px;line-height:1.5;font-weight:700;margin:0 0 16px;letter-spacing:.03em}
.youtube-page .youtube-benefit p{font-size:16px;line-height:1.5;margin:0;letter-spacing:.03em}
.youtube-page .youtube-benefit-03{left:620px;top:95px;width:580px}
.youtube-page .youtube-benefit-01{left:0;top:279px;width:580px}
.youtube-page .youtube-benefit-04{left:620px;top:279px;width:580px}
.youtube-page .youtube-benefit-02{left:0;top:415px;width:580px}
.youtube-page .youtube-benefit-05{left:620px;top:415px;width:580px}
.youtube-page .youtube-konomachi{height:694px;min-height:0;padding:0;background:transparent}
.youtube-page .youtube-konomachi-wrap{position:relative;width:min(1200px,calc(100% - 48px));height:100%;margin:0 auto;padding-top:108px}
.youtube-page .youtube-konomachi h2{font-size:40px;line-height:1.5;font-weight:700;letter-spacing:.03em;margin:0 0 18px;max-width:1200px}
.youtube-page .youtube-konomachi-content{display:grid;grid-template-columns:680px 488px;column-gap:32px;align-items:start}
.youtube-page .youtube-konomachi-copy{min-width:0}
.youtube-page .youtube-konomachi-copy h3{font-size:24px;line-height:1.5;font-weight:700;letter-spacing:.03em;margin:0 0 20px}
.youtube-page .youtube-konomachi-copy p{font-size:16px;line-height:1.5;letter-spacing:.03em;margin:0 0 12px;max-width:680px}
.youtube-page .youtube-konomachi-media{display:block;width:488px;height:242px;object-fit:contain;max-width:100%;margin-top:34px;border:0;transform:none;box-shadow:none}
@media(max-width:900px){
 .youtube-page .youtube-benefits{height:auto;min-height:0;padding:75px 0 80px;border-width:6px;overflow:visible}
 .youtube-page .youtube-benefits-wrap{width:calc(100% - 32px);height:auto;display:grid;grid-template-columns:1fr;gap:30px}
 .youtube-page .youtube-benefits-heading{position:static;width:100%}
 .youtube-page .youtube-benefits-heading h2{font-size:clamp(22px,6.2vw,28px);line-height:1.45}
 .youtube-page .youtube-benefits-heading>p{font-size:14px;line-height:1.65}
 .youtube-page .youtube-benefit{position:static;width:100%;grid-template-columns:74px minmax(0,1fr);gap:12px}
 .youtube-page .youtube-benefit:not(.youtube-benefit-03) .youtube-benefit-copy{transform:none}
 .youtube-page .youtube-benefit>img{width:74px;height:74px}
 .youtube-page .youtube-benefit h3{font-size:18px;line-height:1.45;margin:0 0 8px}
 .youtube-page .youtube-benefit p{font-size:13px;line-height:1.65}
 .youtube-page .youtube-konomachi{height:auto;min-height:0;padding:80px 0 95px}
 .youtube-page .youtube-konomachi-wrap{height:auto;width:calc(100% - 32px);padding:0}
 .youtube-page .youtube-konomachi h2{font-size:clamp(23px,6.5vw,29px);line-height:1.5;margin:0 0 24px}
 .youtube-page .youtube-konomachi-content{grid-template-columns:1fr;gap:22px}
 .youtube-page .youtube-konomachi-copy h3{font-size:22px;margin-bottom:14px}
 .youtube-page .youtube-konomachi-copy p{font-size:14px;line-height:1.75}
 .youtube-page .youtube-konomachi-media{width:100%;height:auto;aspect-ratio:488/242;object-fit:contain;margin-top:0}
}

/* YouTube regional TV: preserve the 1440px two-column design while allowing
   both columns and their buttons to fit between the SP and desktop widths. */
@media (min-width:901px) and (max-width:1247px){
 .youtube-page .youtube-konomachi{height:auto;min-height:694px;padding:108px 0 95px}
 .youtube-page .youtube-konomachi-wrap{height:auto;padding-top:0}
 .youtube-page .youtube-konomachi h2{font-size:clamp(30px,3.4vw,40px)}
 .youtube-page .youtube-konomachi-content{grid-template-columns:minmax(0,680fr) minmax(0,488fr);column-gap:clamp(24px,2.67vw,32px)}
 .youtube-page .youtube-konomachi-media{width:100%;height:auto;aspect-ratio:488 / 242}
}

/* YouTube | Wireframe - 7.svg: feature and use-case sections */
.youtube-page .feature-section{min-height:0;padding:105px 0 125px}
.youtube-page .feature-section .container,.youtube-page .use-section .container{width:min(1200px,calc(100% - 48px))}
.youtube-page .feature-section h2,.youtube-page .use-section h2{font-size:40px;line-height:1.5;font-weight:700;margin:0 0 8px;letter-spacing:.03em}
.youtube-page .youtube-feature-lead{font-size:16px;line-height:24px;white-space:pre-line;margin:0 0 24px;font-weight:500;letter-spacing:.03em}
.youtube-page .youtube-feature-info{width:711px;max-width:100%;min-height:45px;background:linear-gradient(rgba(0,0,0,.3),rgba(0,0,0,.3)),#1E4986;border:2px solid #1E4986;color:#fff;font-size:14px;line-height:17px;font-weight:700;margin:0 0 80px;padding:6px 10px}
.youtube-page .youtube-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,580px));grid-auto-rows:minmax(120px,auto);column-gap:40px;row-gap:40px}
.youtube-page .youtube-feature-item{display:grid;grid-template-columns:120px minmax(0,1fr);align-items:start;column-gap:24px;min-width:0}
.youtube-page .youtube-feature-item img{display:block;width:120px;height:120px;object-fit:contain;max-width:none}
.youtube-page .youtube-feature-copy{min-width:0}
.youtube-page .youtube-feature-copy h3{font-size:24px;line-height:36px;font-weight:700;margin:0 0 48px;position:relative;letter-spacing:.03em}
.youtube-page .youtube-feature-copy h3::after{content:"";position:absolute;left:0;bottom:-19px;width:40px;height:4px;background:#B6772A}
.youtube-page .youtube-feature-copy p{font-size:16px;line-height:24px;margin:0;font-weight:500;letter-spacing:.03em}
.youtube-page .use-section{min-height:0;padding:95px 0 115px}
.youtube-page .use-section h2{margin:0 0 46px}
.youtube-page .youtube-use-grid{display:grid;grid-template-columns:repeat(3,minmax(0,376px));column-gap:36px;row-gap:40px;align-items:start}
.youtube-page .youtube-use-item{min-width:0}
.youtube-page .youtube-use-photo{box-sizing:border-box;background:#D9D9D9;border:8px solid #fff;width:100%;aspect-ratio:376/250.667;transform:skewX(.5225deg);transform-origin:top left;box-shadow:0 4px 4px rgba(0,0,0,.25)}
.youtube-page .youtube-use-item h3{display:flex;align-items:center;justify-content:center;background:#1E4986;color:#fff;text-align:center;font-weight:700;font-size:24px;line-height:34px;min-height:34px;margin:24px 0 24px;white-space:nowrap}
.youtube-page .youtube-use-item p{font-size:16px;line-height:24px;margin:0;font-weight:500;letter-spacing:.03em}
@media(max-width:900px){
 .youtube-page .feature-section{padding:75px 0 90px}
 .youtube-page .feature-section .container,.youtube-page .use-section .container{width:calc(100% - 32px)}
 .youtube-page .feature-section h2,.youtube-page .use-section h2{font-size:clamp(23px,6vw,28px);line-height:1.5}
 .youtube-page .youtube-feature-lead{font-size:14px;line-height:1.7;white-space:normal}
 .youtube-page .youtube-feature-info{width:100%;font-size:12px;line-height:1.55;margin-bottom:32px}
 .youtube-page .youtube-feature-grid{grid-template-columns:1fr;grid-auto-rows:auto;gap:34px}
 .youtube-page .youtube-feature-item{grid-template-columns:90px minmax(0,1fr);gap:16px}
 .youtube-page .youtube-feature-item img{width:90px;height:90px}
 
 .youtube-page .youtube-feature-copy h3{font-size:18px;line-height:1.4;margin:0 0 35px}
 .youtube-page .youtube-feature-copy h3::after{bottom:-15px}
 .youtube-page .youtube-feature-copy p{font-size:13px;line-height:1.65}
 .youtube-page .use-section{padding:70px 0 90px}
 .youtube-page .use-section h2{margin-bottom:28px}
 .youtube-page .youtube-use-grid{grid-template-columns:1fr;row-gap:30px}
 .youtube-page .youtube-use-item h3{font-size:19px;line-height:1.4;white-space:normal;margin:19px 0 12px;padding:3px 6px}
 .youtube-page .youtube-use-item p{font-size:13px;line-height:1.65}
}



@media (min-width:901px) and (max-width:1279px){
  .youtube-page .youtube-feature-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-auto-rows:auto;
    column-gap:clamp(22px,3.1vw,40px);
    row-gap:34px;
  }
  .youtube-page .youtube-feature-item{
    grid-template-columns:clamp(90px,10vw,120px) minmax(0,1fr);
    column-gap:clamp(14px,1.85vw,24px);
  }
  .youtube-page .youtube-feature-item img{
    width:100%;height:auto;max-width:100%;aspect-ratio:1;
  }
  .youtube-page .youtube-feature-copy h3{
    font-size:clamp(18px,2vw,24px);
    line-height:1.45;
    margin-bottom:36px;
    overflow-wrap:anywhere;
  }
  .youtube-page .youtube-feature-copy p{font-size:clamp(14px,1.4vw,16px);line-height:1.6}
  .youtube-page .youtube-use-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:clamp(24px,3vw,36px);
    row-gap:36px;
  }
  .youtube-page .youtube-use-item h3{
    white-space:normal;
    font-size:clamp(19px,2vw,24px);
    line-height:1.45;
    min-height:40px;
    padding:5px 10px;
    box-sizing:border-box;
  }
  .youtube-page .youtube-use-item p{font-size:clamp(14px,1.4vw,16px);line-height:1.6}
}
@media (min-width:1200px) and (max-width:1279px){
  .youtube-page .youtube-use-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

.feature-blue-icon{display:block;object-fit:contain;flex:none}
/* SNS | Wireframe - 6.svg : canonical feature/use layout */

.sns-page .feature-section .container,
.sns-page .use-section .container{width:min(1200px,calc(100% - 48px))}
.sns-page .feature-section{min-height:1060px}
.sns-page .feature-section h2{margin-bottom:8px}
.sns-page .sns-feature-lead{white-space:pre-line;font-size:16px;line-height:24px;margin:0 0 24px;max-width:1150px}
.sns-page .sns-feature-info{box-sizing:border-box;background:linear-gradient(rgba(0,0,0,.3),rgba(0,0,0,.3)),#1E4986;color:#fff;border:2px solid #1E4986;max-width:100%;min-height:45px;margin:0 0 80px;padding:6px 10px;font-size:14px;line-height:17px;font-weight:700}
.sns-page .feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:120px 162px 120px;column-gap:40px;row-gap:40px}
.sns-page .feature-card{display:grid;grid-template-columns:120px minmax(0,1fr);gap:24px;align-items:start;min-height:0;padding:0;margin:0;background:none;border:0;box-shadow:none}
.sns-page .feature-card img{width:120px;height:120px;object-fit:contain;margin:0;display:block}



.sns-page .sns-feature-copy h3{font-size:24px;font-weight:700;line-height:36px;margin:0 0 50px;position:relative}
.sns-page .sns-feature-copy h3::after{content:"";position:absolute;left:0;bottom:-19px;width:40px;height:4px;background:#B6772A}
.sns-page .sns-feature-copy p{font-size:16px;line-height:24px;font-weight:500;margin:0}
/* SNS support icons: let rows grow with text on medium widths, without changing the PC comp. */
@media (min-width:801px) and (max-width:1023px){
 .sns-page .feature-grid{grid-template-rows:none;grid-auto-rows:minmax(120px,auto)}
}
.sns-page .use-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:40px;row-gap:32px;align-items:start}
.sns-page .use-card{min-width:0}
.sns-page .case-media{display:block;box-sizing:border-box;width:100%;height:auto;aspect-ratio:373/248.667;background:#D9D9D9;border:8px solid #fff;outline:1px solid rgba(1,16,27,.08);transform:skewX(.5225deg);transform-origin:top left;box-shadow:0 4px 4px rgba(0,0,0,.25);color:transparent}
.sns-page .use-card h3{display:flex;align-items:center;justify-content:center;text-align:center;font-size:24px;line-height:34px;min-height:34px;margin:24px 0 24px;background:#1E4986;color:white;font-weight:700;white-space:nowrap}
.sns-page .use-card p{font-size:16px;line-height:24px;font-weight:500;margin:0}
/* SNS use-case headings: keep long labels inside their blue bars at PC/tablet widths. */
@media(min-width:801px){.sns-page .use-card h3{white-space:normal;text-wrap:balance;box-sizing:border-box;padding:4px 8px}}
/* SNS / intermediate visual composition. The <=800px source SP flow,
   >=1248px three-column uses, source photo frames and all imagery are retained. */
@media (min-width:801px) and (max-width:900px){
  .sns-page .feature-section{min-height:0}
  .sns-page .feature-grid{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-auto-rows:auto;row-gap:40px}
  .sns-page .feature-card{grid-template-columns:110px minmax(0,1fr);column-gap:20px}
  .sns-page .feature-card img{width:110px;height:110px}
  .sns-page .sns-feature-copy h3{font-size:22px;line-height:1.5;margin-bottom:38px}
  .sns-page .sns-feature-copy p{font-size:15px;line-height:1.65}
}
@media (min-width:1200px) and (max-width:1247px){
  .sns-page .feature-grid{grid-template-rows:none;grid-auto-rows:auto}
}
@media (min-width:801px) and (max-width:1247px){
  .sns-page .use-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(24px,3.2vw,40px);row-gap:38px}
  .sns-page .use-card h3{font-size:clamp(19px,2vw,24px);line-height:1.45;min-height:40px;margin:20px 0 14px}
  .sns-page .use-card p{font-size:clamp(14px,1.5vw,16px);line-height:1.65}
}
@media(max-width:800px){
 .sns-page .feature-section .container,.sns-page .use-section .container{width:calc(100% - 32px)}
 .sns-page .feature-section{min-height:0}
 .sns-page .sns-feature-lead{font-size:14px;line-height:1.7}
 .sns-page .sns-feature-info{font-size:12px;line-height:1.55;margin-bottom:32px}
 .sns-page .feature-grid{grid-template-columns:1fr;grid-template-rows:none;row-gap:36px}
 .sns-page .feature-card{grid-template-columns:90px minmax(0,1fr);gap:16px}
 .sns-page .feature-card img{width:90px;height:90px}
 .sns-page .sns-feature-copy h3{font-size:18px;line-height:1.4;margin-bottom:36px}
 .sns-page .sns-feature-copy h3::after{bottom:-14px}
 .sns-page .sns-feature-copy p{font-size:13px;line-height:1.65}
 .sns-page .use-grid{grid-template-columns:1fr;row-gap:30px}
 .sns-page .case-media{max-width:100%;aspect-ratio:373/248.667}
 .sns-page .use-card h3{font-size:19px;line-height:1.35;min-height:34px;padding:4px 8px;margin:19px 0 12px;white-space:normal}
 .sns-page .use-card p{font-size:13px;line-height:1.65}
}




.benefit-tuna-motifs,
.service-middle-cta .service-middle-fish{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;--tuna-width:100.5px;--tuna-opacity:.10;--tuna-angle-a:0deg;--tuna-angle-b:27deg}
.service-middle-cta .service-middle-fish{--tuna-width:56.28px;--tuna-opacity:.10}
.tuna-repeat-item{position:absolute;display:block;width:var(--tuna-width);aspect-ratio:989/500;background:url("assets/common/tuna-line-transparent.png") center/contain no-repeat;opacity:var(--tuna-opacity);transform:rotate(var(--tuna-angle,0deg));transform-origin:center center;mix-blend-mode:multiply}
@media (max-width: 1024px){
  .benefit-tuna-motifs{--tuna-width:86px}
  .service-middle-cta .service-middle-fish{--tuna-width:76px}
}
@media (max-width: 767px){
  .benefit-tuna-motifs{--tuna-width:74px;--tuna-opacity:.08}
  .service-middle-cta .service-middle-fish{--tuna-width:66px;--tuna-opacity:.10}
}

/* SNS merits and pricing: original Wireframe - 6.svg, single canonical rules */
.sns-page .sns-benefits{position:relative;min-height:614px;height:614px;padding:0;border-top:8px solid #B6772A;border-bottom:8px solid #B6772A;box-sizing:border-box;background:#fff;overflow:hidden}

.sns-page .sns-benefits-container{z-index:1}
.sns-page .sns-benefits-container{width:min(1200px,calc(100% - 48px));height:100%;position:relative}
.sns-page .sns-benefits-heading{position:absolute;top:116px;left:0;width:565px}
.sns-page .sns-benefits-heading h2{font-size:40px;line-height:1.5;margin:0 0 8px;white-space:nowrap}
.sns-page .sns-benefits-heading p{font-size:16px;line-height:1.5;margin:0}
.sns-page .sns-benefits-grid{position:absolute;inset:0}
.sns-page .sns-benefit{position:absolute;display:grid;grid-template-columns:88px minmax(0,1fr);gap:24px;width:585px;align-items:start}
.sns-page .sns-benefit img{width:88px;height:88px;max-width:100%;display:block;object-fit:contain;filter:drop-shadow(0 3px 3px rgba(0,0,0,.18))}
.sns-page .sns-benefit h3{font-size:24px;line-height:1.5;margin:-12px 0 6px;font-weight:700}
.sns-page .sns-benefit p{font-size:16px;line-height:1.5;margin:0}
.sns-page .sns-benefit-03{left:620px;top:125px}
.sns-page .sns-benefit-01{left:0;top:267px}
.sns-page .sns-benefit-04{left:620px;top:267px}
.sns-page .sns-benefit-02{left:0;top:397px}
.sns-page .sns-benefit-05{left:620px;top:397px}
.sns-page .sns-pricing-container{width:min(1200px,calc(100% - 48px))}
.sns-page .sns-pricing{min-height:1180px;padding-top:165px;padding-bottom:125px;box-sizing:border-box}
.sns-page .sns-pricing h2{font-size:40px;line-height:1.5;margin:0 0 8px}
.sns-page .sns-pricing-lead{font-size:16px;line-height:1.5;margin:0 0 64px}
.sns-page .sns-price-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;align-items:stretch}
.sns-page .sns-price-card{height:auto;min-height:0;min-width:0;box-sizing:border-box;position:relative;display:flex;flex-direction:column;background:#1E4986;border:8px solid white;color:#fff;padding:32px;box-shadow:none}
.sns-page .sns-price-card h3{font-size:24px;line-height:1.5;margin:0 0 8px;color:#fff}
.sns-page .sns-price-description{font-size:16px;line-height:1.5;margin:0;color:#fff;font-weight:500}
.sns-page .sns-price-card-details{position:relative;width:100%;height:auto;min-height:0;min-width:0;box-sizing:border-box;margin:24px 0 0;padding:24px 16px 12px;background:#fff;color:#01101B;flex:1 1 auto}
.sns-page .sns-price-card-secondary .sns-price-card-details{margin-top:24px}
.sns-page .sns-price-card-details h4{font-size:20px;line-height:1.5;background:rgba(30,73,134,.2);margin:0 0 8px;padding:8px 16px;font-weight:700}
.sns-page .sns-price-card-details ul{font-size:16px;line-height:2;list-style:none;padding:0 16px;margin:0 0 8px}
.sns-page .sns-price-card-details li{position:relative;padding-left:24px}
.sns-page .sns-price-card-details li::before{content:"・";position:absolute;left:0}
.sns-page .sns-price-value{position:static;margin-top:16px}
.sns-page .sns-price-value h4{margin:0 0 8px}
.sns-page .sns-price-value p{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0;padding:0 16px;font-size:16px}
.sns-page .sns-price-value strong{font-size:16px;color:#01101B;font-weight:700;white-space:nowrap}
.sns-page .sns-price-notes{min-height:125px;margin-top:40px;background:rgba(255,255,255,.8);padding:20px 24px;font-size:14px;line-height:1.5}
.sns-page .sns-price-notes p{margin:0 0 10px}
@media(max-width:800px){
 .sns-page .sns-benefits{height:auto;min-height:0;padding:60px 0 72px;overflow:visible}
 .sns-page .sns-benefits-heading{position:static;width:auto;margin-bottom:36px}
 .sns-page .sns-benefits-heading h2{font-size:28px;white-space:normal}
 .sns-page .sns-benefits-heading p{font-size:14px}
 .sns-page .sns-benefits-container,.sns-page .sns-pricing-container{width:calc(100% - 32px)}
 .sns-page .sns-benefits-container{height:auto}
 .sns-page .sns-benefits-grid{position:static;display:grid;grid-template-columns:1fr;gap:28px}
 .sns-page .sns-benefit{position:static;width:100%;grid-template-columns:76px minmax(0,1fr);gap:12px}
 .sns-page .sns-benefit img{width:76px;height:76px}
 .sns-page .sns-benefit h3{font-size:18px;margin:0 0 6px;line-height:1.5}
 .sns-page .sns-benefit p{font-size:13px;line-height:1.7}
 .sns-page .sns-pricing{padding:72px 0 100px;min-height:0}
 .sns-page .sns-pricing h2{font-size:28px}
 .sns-page .sns-pricing-lead{font-size:14px;line-height:1.7;margin-bottom:30px}
 .sns-page .sns-price-grid{grid-template-columns:1fr;gap:24px}
 .sns-page .sns-price-card{height:auto;min-height:0;padding:24px 18px 20px}
 .sns-page .sns-price-card h3{font-size:22px}
 .sns-page .sns-price-description{font-size:14px;margin-bottom:24px}
 .sns-page .sns-price-card-details,.sns-page .sns-price-card-secondary .sns-price-card-details{position:static;height:auto;padding:14px 10px}
 .sns-page .sns-price-card-details h4{font-size:18px}
 .sns-page .sns-price-card-details ul{font-size:13px;line-height:1.7;padding:0}
 .sns-page .sns-price-value{position:static;margin-top:20px}
 .sns-page .sns-price-value strong{font-size:14px;white-space:normal;text-align:right}
 .sns-page .sns-price-notes{font-size:13px;margin-top:24px;padding:18px}
}

/* SNS works showcase: matched to Wireframe - 6.svg (1440px canvas).
   The source design uses three grey placeholder frames, not dark CASE tiles. */
.sns-page .works-teaser-section{min-height:0;padding:105px 0 94px}
.sns-page .works-teaser-section .container{width:min(1200px,calc(100% - 48px))}
.sns-page .works-teaser-section h2{font-size:40px;line-height:1.5;margin:0 0 28px;font-weight:700;letter-spacing:.03em}
.sns-page .sns-works-lead{font-size:16px;line-height:24px;font-weight:500;letter-spacing:.03em;margin:0 0 46px}
.sns-page .works-teaser-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:37.5px;align-items:start}
.sns-page .work-teaser{display:block;min-width:0;text-decoration:none;color:var(--ink)}
.sns-page .work-teaser-media{position:relative;background:#D9D9D9;width:100%;aspect-ratio:375/250;transform:skewX(.5225deg);transform-origin:top left;box-shadow:0 4px 5px rgba(0,0,0,.23)}
.sns-page .work-teaser-media::after{content:"";position:absolute;inset:4px;border:8px solid #fff;pointer-events:none}
.sns-page .work-teaser h3{font-size:24px;line-height:36px;font-weight:700;letter-spacing:.03em;color:#1E4986;margin:11px 0 8px}
.sns-page .work-teaser-tags{display:flex;flex-wrap:wrap;gap:8.5px;align-items:center;min-width:0}
.sns-page .work-teaser-tag{display:inline-flex;align-items:center;justify-content:center;height:33px;font-size:14px;font-weight:700;line-height:1;white-space:nowrap;letter-spacing:.02em}
.sns-page .work-teaser-tag--industry{width:59px;background:#B6772A;color:white;flex:0 0 59px}
.sns-page .work-teaser-tag--category{width:72px;height:32px;border:1px solid #B6772A;background:#fff;color:#B6772A;flex:0 0 72px}
.sns-page .sns-works-more{margin-top:41px;width:180px;height:63px;min-height:63px;padding:0 12px;border:4px solid white;box-shadow:0 4px 4px rgba(0,0,0,.25);white-space:nowrap}
.sns-page .work-teaser:hover h3,.sns-page .work-teaser:focus-visible h3{text-decoration:underline}
@media(max-width:900px){
 .sns-page .works-teaser-section{padding:75px 0 90px}
 .sns-page .works-teaser-section h2{font-size:clamp(19px,6.1vw,28px);line-height:1.5;letter-spacing:0;margin-bottom:18px}
 .sns-page .sns-works-lead{font-size:14px;line-height:1.8;margin-bottom:28px}
 .sns-page .works-teaser-grid{grid-template-columns:1fr;gap:40px}
 .sns-page .work-teaser-media{aspect-ratio:375/250}
 .sns-page .work-teaser h3{font-size:20px;line-height:1.5;margin:16px 0 10px}
 .sns-page .work-teaser-tags{gap:5px}
 .sns-page .work-teaser-tag--industry{width:56px;flex-basis:56px}
 .sns-page .work-teaser-tag--category{width:68px;flex-basis:68px}
 .sns-page .sns-works-more{margin-top:40px}
}

.source-konomachi{min-height:640px;padding-top:110px}
.crosslink-band{min-height:560px;background:var(--blue);color:#fff;padding-top:130px}

/* service index */
.service-page .page-hero .container,.service-page .page-hero .container-wide{width:min(var(--wide),calc(100% - 48px));padding-top:235px}.service-page .page-hero h1{font-size:64px}
/* Service introduction: Wireframe - 5(1).svg, x120; two blue 63px-high CTAs at y1065/y1144. */
.service-page .intro-split{height:760px;padding-top:235px}
.intro-split h2{font-size:56px;line-height:1.48;margin:0 0 25px}
.intro-split p{max-width:750px;margin-bottom:10px}
.service-page .intro-split .button-row{display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.service-page .intro-split .button-row .btn{width:200px;height:63px;min-height:63px;padding:0 10px;border:4px solid #fff}
.service-page .intro-split .button-row .btn:nth-child(2){width:180px}

@media (min-width:821px) and (max-width:1247px){
  .service-page .intro-split{
    height:auto;
    padding-top:clamp(100px,calc(31.542056vw - 158.64486px),235px);
    padding-bottom:clamp(100px,calc(7.009346vw + 42.52336px),130px);
  }
  .service-page .intro-split h2{
    font-size:clamp(34px,calc(5.140187vw - 8.14953px),56px);
  }
}

/* Let the six consultation cards determine section height; no artificial empty floor. */
.service-page .consult-section{padding:145px 0 90px;min-height:0;position:relative}
@media (min-width:821px) and (max-width:1199px){
  /* v82: allow the staggered cards to define the height at intermediate widths */
  .service-page .consult-section{min-height:0}
}
.service-page .consult-section .section-heading{position:relative}
.service-page .consult-section .consult-heading-fish{position:absolute;top:-41.74px;left:-3.051px;width:71px;height:48px;opacity:1;transform:none;mix-blend-mode:normal;pointer-events:none}
.consult-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:88px;align-items:start}.consult-col{display:flex;flex-direction:column;gap:100px;min-width:0}
.consult-card{min-width:0;transition:margin .2s}
.consult-card[data-card-number="2"]{margin-top:126px;margin-left:26px}
.consult-card[data-card-number="3"]{margin-top:8px;margin-left:-12px}
.consult-card[data-card-number="4"]{margin-top:98px;margin-left:8px}
.consult-card[data-card-number="5"]{margin-top:17px;margin-left:18px}
.consult-card[data-card-number="6"]{margin-top:140px;margin-left:30px}
.consult-card[data-card-number="6"] .consult-toggle span{font-size:22px}.consult-toggle{background:none;border:0;padding:0;width:100%;text-align:left;cursor:pointer}
.service-page .consult-toggle:focus-visible{outline:3px solid var(--orange);outline-offset:6px}.consult-toggle img{width:100%;height:300px;object-fit:cover;border:10px solid #fff;box-shadow:0 3px 10px rgba(1,16,27,.16)}.consult-card[data-col="left"] .consult-toggle img{transform:rotate(-5deg)}.consult-card[data-col="right"] .consult-toggle img{transform:rotate(5deg)}.consult-card[data-card-number="3"] .consult-toggle img{transform:rotate(-4deg)}.consult-card[data-card-number="4"] .consult-toggle img{transform:rotate(4deg)}.consult-card[data-card-number="6"] .consult-toggle img{transform:rotate(6deg)}.consult-toggle span{display:block;font-size:24px;font-weight:700;line-height:1.5;margin-top:32px;position:relative;padding-right:30px}.consult-toggle span::after{content:"";position:absolute;right:0;top:.55em;width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-top:12px solid var(--orange)}.accordion-card.is-open .consult-toggle span::after{transform:rotate(180deg)}.accordion-panel{display:none;padding-top:14px}.accordion-card.is-open .accordion-panel{display:block}.accordion-panel p{margin:0 0 14px}.chip-row{display:flex;gap:8px;flex-wrap:wrap}.chip-row span{background:var(--orange);color:#fff;font-size:13px;font-weight:700;padding:3px 7px}
.service-middle-cta{height:227px;padding:0;background:#B6772A;border-block:8px solid #1E4986;box-sizing:border-box;color:#fff}
.service-middle-cta{position:relative;isolation:isolate;overflow:hidden}
.service-middle-cta .container-wide{position:relative;z-index:1}.service-middle-cta .container-wide{height:100%}.service-middle-cta .service-cta-mini{height:100%;width:100%;margin:0;background:transparent;color:#fff;padding:0 0 0 clamp(0px,14.45vw,208px);display:grid;grid-template-columns:minmax(0,543px) 220px;align-items:center;gap:20px}.service-cta-copy{display:flex;flex-direction:column;gap:16px}.service-cta-mini h3{font-size:32px;line-height:1.4;margin:0;white-space:nowrap;color:#fff;text-shadow:2px 3px 0 rgba(1,16,27,.35)}.service-cta-mini p{font-size:16px;margin:0;line-height:1.6;font-weight:700;color:#fff}.service-cta-link{display:flex;align-items:center;justify-content:center;width:220px;height:63px;border:1px solid #01101B;background:white;color:#01101B;font-size:20px;font-weight:700;text-decoration:none;box-shadow:0 5px 10px rgba(1,16,27,.14)}
.service-index{padding:125px 0 145px;background:transparent;color:var(--ink)}
.service-index .section-heading{text-align:center}
.service-showcase{display:flex;flex-direction:column;gap:0;margin-top:80px}
.service-showcase article{display:grid;grid-template-columns:480px 1fr;column-gap:80px;align-items:start;min-height:360px;position:relative}
.service-showcase article:nth-child(even){grid-template-columns:1fr 480px;column-gap:80px}
.service-showcase article:nth-child(even) .service-shot{order:2}
.service-showcase article:nth-child(even) .service-copy{order:1}
.service-shot{width:480px;height:320px;min-height:0;transform:skewX(.5225deg);transform-origin:top left}
.service-shot img{display:block;width:100%;height:100%;object-fit:cover;border:8px solid white;box-shadow:0 4px 4px rgba(0,0,0,.25)}
.service-copy{padding-top:28px;min-width:0}
.service-copy h3{font-size:24px;line-height:1.5;margin:0 0 18px}
.service-copy p{font-size:16px;margin:0 0 24px;line-height:1.5}
.service-copy .button-row{display:flex;flex-wrap:wrap;gap:16px}
.service-copy .button-row .btn{min-width:0;height:63px;white-space:nowrap}
.service-showcase article:first-child .button-row .btn:first-child{width:358px}
.service-showcase article:nth-child(2) .button-row .btn:first-child{width:263px}
.service-showcase article:nth-child(3){display:grid;grid-template-columns:1fr 376px;column-gap:40px;align-items:center;background:rgba(255,255,255,.5);padding:40px;margin:0 0 40px;min-height:345px}
.service-showcase article:nth-child(3) .service-shot{order:2;width:376px;height:186px;transform:none}
.service-showcase article:nth-child(3) .service-copy{order:1;padding-top:0}
.service-showcase article:nth-child(3) .button-row .btn:last-child{display:none}
.service-showcase article:nth-child(3) .button-row{margin-top:16px}
.service-showcase article:nth-child(3) .button-row .btn:first-child{width:265px}
/* The Konomachi TV channel URL has not been supplied. Keep Figma visual, do not fake a destination. */


.service-showcase article:nth-child(4) .button-row .btn{width:220px}

/* Narrow desktop: keep the Figma alternating photo/copy composition without
   constricting copy to a 200–300px column. Desktop 1440px and SP remain intact. */
@media (min-width:901px) and (max-width:1100px){
  .service-showcase article:not(:nth-child(3)){
    grid-template-columns:minmax(0,42%) minmax(0,1fr);
    column-gap:36px;
  }
  .service-showcase article:nth-child(2){
    grid-template-columns:minmax(0,1fr) minmax(0,42%);
  }
  .service-showcase article:not(:nth-child(3)) .service-shot{
    width:100%;height:auto;aspect-ratio:3/2;
  }
  .service-showcase article:not(:nth-child(3)) .service-shot img{
    height:100%;aspect-ratio:auto;
  }
}

@media (max-width:700px){
  .service-showcase{margin-top:55px;gap:40px}
  .service-showcase article,.service-showcase article:nth-child(even),.service-showcase article:nth-child(3){grid-template-columns:minmax(0,1fr);gap:20px;min-height:0;padding:0;background:transparent}
  .service-showcase article:nth-child(even) .service-shot,.service-showcase article:nth-child(3) .service-shot{order:0}
  .service-showcase article:nth-child(even) .service-copy,.service-showcase article:nth-child(3) .service-copy{order:0}
  .service-shot,.service-showcase article:nth-child(3) .service-shot{width:100%;height:auto;aspect-ratio:3/2;transform:none}
  .service-copy{padding-top:0}
  .service-copy .button-row .btn,.service-showcase article:first-child .button-row .btn:first-child,.service-showcase article:nth-child(2) .button-row .btn:first-child,.service-showcase article:nth-child(3) .button-row .btn:first-child,.service-showcase article:nth-child(4) .button-row .btn{width:100%;max-width:100%;white-space:normal;min-height:63px;height:auto;text-align:center}
  .service-showcase article:nth-child(3) .button-row .btn:last-child{display:inline-flex}
}
/* 事業内容「発信に必要な制作」: 元SVG (1440px) のアイコンを等倍で配置 */
.service-support{padding:115px 0 130px;min-height:1200px}
.service-support-grid{display:grid;grid-template-columns:repeat(2,minmax(0,580px));column-gap:40px;grid-template-rows:303px 252px 200px;margin-top:70px}
.service-support-item{position:relative;min-width:0;min-height:0}
.service-support-item img{position:absolute;left:2px;top:0;width:200px;height:auto;max-width:none;object-fit:contain}
.service-support-item>div{position:absolute;left:218px;right:0;top:58px}
.service-support-item:nth-child(2) img{top:34px}
.service-support-item:nth-child(3) img{top:24px}
.service-support-item:nth-child(3)>div{top:24px}
.service-support-item:nth-child(4)>div{top:24px}
.service-support-item:nth-child(5)>div{top:16px}
.service-support-item:nth-child(6) img{top:14px}
.service-support-item:nth-child(6)>div{top:28px}
.service-support-item h3{font-size:24px;line-height:1.5;margin:0 0 16px}
.service-support-item p{margin:0;font-size:16px;line-height:1.5}


@media (min-width:821px) and (max-width:1247px){
  .service-support-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:minmax(303px,max-content) minmax(252px,max-content) minmax(200px,max-content);
  }
  .service-support-item{
    display:grid;
    grid-template-columns:clamp(145px,17vw,200px) minmax(0,1fr);
    column-gap:18px;
    align-items:start;
  }
  .service-support-item img,.service-support-item:nth-child(n) img{
    position:static;width:100%;height:auto;max-width:100%;
  }
  .service-support-item>div,.service-support-item:nth-child(n)>div{
    position:static;min-width:0;padding-top:58px;
  }
  .service-support-item:nth-child(3)>div,.service-support-item:nth-child(4)>div{padding-top:24px}
  .service-support-item:nth-child(5)>div{padding-top:16px}
  .service-support-item:nth-child(6)>div{padding-top:28px}
  .service-support-item:nth-child(2) img{margin-top:34px}
  .service-support-item:nth-child(3) img{margin-top:24px}
  .service-support-item:nth-child(6) img{margin-top:14px}
  .service-support-item h3{font-size:clamp(18px,2vw,24px)}
  .service-support-item p{font-size:clamp(13px,1.34vw,16px)}
}

.service-benefits{position:relative;overflow:hidden;padding:120px 0 145px;min-height:1360px}
.service-benefits .container-wide{position:relative;z-index:1}
/* 「TSUNACANに頼むメリット」：Wireframe - 5(1).svgの円x=200、直径160、200pxピッチに対応 */
.service-benefit-list{margin-top:0}
.service-benefit{display:grid;grid-template-columns:168px minmax(0,1fr);column-gap:16px;align-items:center;min-height:200px;border:0}
.service-benefit img{width:168px;height:168px;max-width:none;object-fit:contain;transform:translateX(-4px)}
.service-benefit>div{min-width:0;transform:translateY(-22px)}
.service-benefit h3{font-size:24px;line-height:1.5;margin:0 0 8px}
.service-benefit p{font-size:16px;margin:0;line-height:1.5;max-width:940px}
.service-bottom-cta{min-height:0;padding:120px 0 120px}
/* 下部CTA：Wireframe - 5(1).svg x120/y8555.96、1200×443px */
.service-bottom-cta-box{box-sizing:border-box;width:1200px;max-width:calc(100% - 48px);height:443px;margin:auto;border:0;padding:36px;background:#B6772A;color:#01101B}
.service-bottom-cta-inner{height:100%;box-sizing:border-box;border:8px solid #01101B;padding:44px 24px 0;text-align:center;display:flex;flex-direction:column;align-items:center}
.service-bottom-cta-inner h2{font-size:40px;line-height:1.5;letter-spacing:.03em;margin:0;font-weight:700}
.service-bottom-cta-inner .service-bottom-cta-lead{font-size:16px;line-height:24px;margin:20px 0 0}
.service-bottom-cta-inner .service-bottom-cta-note{font-size:16px;line-height:24px;margin:24px 0 0}
.service-bottom-cta-inner .button-row{margin-top:26px;display:flex;gap:24px;justify-content:center;flex-wrap:nowrap}
.service-bottom-cta-inner .btn{box-sizing:border-box;height:63px;min-height:63px;font-size:20px;white-space:nowrap;box-shadow:0 4px 4px rgba(0,0,0,.25)}
.service-bottom-primary{width:360px;background:#01101B;color:#fff;border:4px solid #fff}
.service-bottom-secondary{width:180px;background:#fff;color:#01101B;border:1px solid #01101B}


@media (min-width:821px) and (max-width:1247px){
  .service-page .service-bottom-cta{
    padding-top:clamp(85px,calc(8.17757vw + 17.94019px),120px);
    padding-bottom:clamp(85px,calc(8.17757vw + 17.94019px),120px);
  }
  .service-page .service-bottom-cta-box{height:auto}
  .service-page .service-bottom-cta-inner{
    height:auto;
    min-height:371px;
    padding-bottom:28px;
  }
  .service-page .service-bottom-cta-inner h2{
    font-size:clamp(25px,calc(3.50467vw - 3.73832px),40px);
  }
  .service-page .service-bottom-cta-inner .button-row{flex-wrap:wrap}
}


/* Works index — SVG Wireframe - 9; work detail — SVG Wireframe - 10/11 */

.works-listing{padding:57px 0 110px}.works-listing h2{font-size:40px;line-height:1.5;margin:0 0 0;color:#01101B}.works-listing>.container-wide>p{font-size:16px;line-height:24px;margin:0}
.filter-bar{display:grid;gap:34px;margin:103px 0 177px;align-content:start}

@media (min-width:821px) and (max-width:1247px){
  
  
  .works-page .filter-bar{margin-top:clamp(45px,calc(13.551vw - 66.12px),103px);margin-bottom:clamp(55px,calc(28.505vw - 178.74px),177px);gap:clamp(25px,calc(2.103vw + 7.76px),34px)}
}
/* Filter results are announced to assistive technologies without shifting the Figma layout. */

.filter-row{display:flex;align-items:center;gap:0;flex-wrap:nowrap}
.filter{flex:none;position:relative;display:inline-flex;align-items:center;min-height:26px;background:none;border:0;padding:0;color:#01101B;font-size:16px;font-weight:500;letter-spacing:.03em;cursor:pointer;white-space:nowrap}
.filter:hover,.filter:focus-visible{color:#1E4986}
.filter::after{content:"";position:absolute;left:0;bottom:-10px;height:3px;width:100%;background:#B6772A;transform:scaleX(0);transform-origin:left;transition:transform .15s ease}
.filter.is-active::after,.filter:hover::after,.filter:focus-visible::after{transform:scaleX(1)}
.filter-row:first-child .filter:nth-child(1){margin-right:44px}.filter-row:first-child .filter:nth-child(2){margin-right:44px}.filter-row:first-child .filter:nth-child(3){margin-right:48px}.filter-row:first-child .filter:nth-child(4){margin-right:44px}
.filter-row:last-child .filter:nth-child(1){margin-right:48px}.filter-row:last-child .filter:nth-child(2){margin-right:42px}.filter-row:last-child .filter:nth-child(3){margin-right:42px}.filter-row:last-child .filter:nth-child(4){margin-right:42px}

@media (min-width:821px) and (max-width:900px){
  .works-page .filter-row:last-child .filter:nth-child(1){margin-right:clamp(32px,calc(20vw - 132px),48px)}
  .works-page .filter-row:last-child .filter:nth-child(2),
  .works-page .filter-row:last-child .filter:nth-child(3),
  .works-page .filter-row:last-child .filter:nth-child(4){margin-right:clamp(28px,calc(17.5vw - 115.5px),42px)}
}
.works-grid{display:grid;grid-template-columns:repeat(3,minmax(0,375px));column-gap:37.5px;row-gap:41px;align-items:start}

@media (min-width:821px) and (max-width:1247px){
  .works-page .works-grid{
    grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
    column-gap:clamp(24px,3vw,37.5px);
  }
}
.work-card{display:block;min-width:0;text-decoration:none;color:#01101B}
.work-card-media{position:relative;width:100%;aspect-ratio:3/2;background:#D9D9D9;overflow:hidden;transform:skewX(.52deg);box-shadow:0 4px 4px rgba(0,0,0,.25)}
.work-card-media::after{content:"";position:absolute;inset:0;border:8px solid #fff;pointer-events:none}
.work-card-media img{width:100%;height:100%;object-fit:cover}
.work-card h3{font-size:24px;line-height:36px;letter-spacing:.03em;font-weight:700;color:#1E4986;margin:13px 0 9px;white-space:normal}
.work-card .tags{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.work-card .tag{display:inline-flex;justify-content:center;align-items:center;box-sizing:border-box;height:33px;padding:0 8px;font-size:14px;font-weight:700;white-space:nowrap;line-height:1}
.work-card .work-tag-industry{background:#B6772A;color:#fff;min-width:59px}
.work-card .work-tag-category{background:#fff;color:#B6772A;min-width:72px;border:1px solid #B6772A}
.work-card[hidden]{display:none}
.work-card:hover h3,.work-card:focus-visible h3{text-decoration:underline}
.work-detail-page .page-hero .container,.work-detail-page .page-hero .container-wide{padding-top:260px}
.work-detail-page .detail-title-block{min-height:445px;padding:130px 0 0}
.detail-title-block h1{font-size:56px;line-height:1.5;margin:0;color:#01101B}
.detail-title-block .meta-line{margin-top:22px;display:flex;align-items:center;gap:18px}













/* Store/photo case detail — coordinate reference: Wireframe - 11.svg (1440×2829). */
.store-work-page .detail-title-block{min-height:753px;padding:204px 0 0}
.store-work-page .detail-title-block h1{font-size:56px;line-height:1.5;letter-spacing:0}
.store-work-page .detail-title-block .meta-line{position:relative;display:flex;align-items:center;min-height:100px;gap:18px;margin-top:75px}
.store-work-page .detail-title-block .meta-line .tag{width:59px;height:33px;padding:0 8px;justify-content:center}

.store-work-page .detail-title-block .meta-line strong{font-size:20px;font-weight:500;min-width:460px;line-height:30px;border-bottom:1px solid #B6772A}
.store-detail-layout{padding-bottom:120px}
.store-detail-hero{display:grid;grid-template-columns:800px minmax(0,336px);gap:64px;margin:0 0 108px;align-items:start}
.store-detail-photo{width:800px;height:533px;background:#D9D9D9;overflow:hidden}
.store-detail-photo img{width:100%;height:100%;object-fit:cover}
.store-side-box{padding-top:0;min-width:0}
.store-side-box h3{font-size:20px;line-height:30px;margin:0 0 14px;padding-left:8px;position:relative;font-weight:500}
.store-side-box h3::before,.store-detail-grid3 h3::before,.store-detail-grid2 h3::before,.store-related h3::before{content:"";position:absolute;left:0;top:50%;width:16px;height:2px;background:#B6772A;transform:translateY(-50%)}
.store-side-box h3::before{left:-24px}
.store-side-box ul{list-style:none;margin:0 0 93px;padding:0;font-size:16px;line-height:24px}
.store-side-box li{margin:0}
.store-detail-grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:64px;min-height:198px;margin:0}
.store-detail-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px;min-height:198px;margin:0}
.store-detail-grid2 + .store-detail-grid2{min-height:173px}
.store-detail-grid3 h3,.store-detail-grid2 h3,.store-related h3{position:relative;font-size:20px;line-height:30px;padding-left:32px;font-weight:500;margin:0 0 12px}
.store-detail-grid3 p,.store-detail-grid2 p,.store-related p{margin:0;line-height:24px;font-size:16px}
.store-related{margin:0}
.store-related .button-row{margin-top:41px}
.store-related .btn{width:320px;min-height:63px;height:63px;padding:0 8px;white-space:nowrap}


@media (min-width:821px) and (max-width:1247px){
  .store-detail-hero{grid-template-columns:minmax(0,1fr) minmax(230px,calc(28vw - 10px));gap:clamp(26px,4vw,52px)}
  .store-detail-photo{width:100%;height:auto;aspect-ratio:800/533}
  .store-side-box ul{margin-bottom:clamp(24px,3.2vw,42px);overflow-wrap:anywhere}
}




.faq-page .faq-intro-section{padding:150px 0 100px}
.faq-page .faq-intro-section>.container-wide>h2{font-size:56px;line-height:1.5;margin:0 0 12px;font-weight:700}
.faq-page .faq-intro-section>.container-wide>p{font-size:16px;line-height:1.5;margin:0}
.faq-page .faq-group{width:960px;max-width:100%;margin:148px auto 0}
.faq-page .faq-group + .faq-group{margin-top:177px}
.faq-page .faq-group:nth-of-type(3){margin-top:204px}
.faq-page .faq-group:nth-of-type(4){margin-top:258px}
.faq-page .faq-group>h2{font-size:24px;font-weight:500;text-align:center;line-height:1.5;margin:0 0 54px}
.faq-page .faq-list{display:block}
.faq-page .faq-item{border:0;margin:0 0 24px;background:transparent}
.faq-page .faq-item:last-child{margin-bottom:0;border:0}
.faq-page .faq-q{position:relative;display:block;width:100%;height:56px;min-height:56px;margin:0;padding:0 35px 0 24px;border:0;border-radius:0;background:#01101B;color:#fff;font-size:16px;font-weight:500;text-align:left;line-height:24px;cursor:pointer}
.faq-page .faq-q::before{content:none}
.faq-page .faq-q::after{content:"";position:absolute;right:21px;top:22px;width:8px;height:8px;border:solid #fff;border-width:0 1.5px 1.5px 0;transform:rotate(45deg);opacity:0;transition:transform .2s,opacity .2s}
.faq-page .faq-q:hover::after,.faq-page .faq-q:focus-visible::after{opacity:.9}
.faq-page .faq-item.is-open .faq-q::after{transform:rotate(225deg)}
.faq-page .faq-q:focus-visible{outline:3px solid #B6772A;outline-offset:2px}
.faq-page .faq-answer{display:none;position:relative;margin:4px 0 0;padding:14px 24px 12px;min-height:var(--faq-a-height,80px);background:#fff;color:#01101B;font-size:16px;line-height:24px;border:0}
.faq-page .faq-group:not(:first-of-type) .faq-answer{margin-top:1px}
.faq-page .faq-item.is-open .faq-answer{display:block}
.faq-page .faq-answer::before{content:none}
.faq-page .faq-answer p{padding:0;margin:0;line-height:24px}


/* ABOUT: reference about.svg, 1440px artboard. Section dimensions are
   taken from its real geometry rather than inherited service-page templates. */
.about-page .page-hero .container-wide{padding-top:230px}
/* Figma about.svg: standalone original outlined orbit, original bbox x=460..1322/y=1224..2086. */
.about-page main{position:relative}
.about-page .about-orbit-decoration{position:absolute;left:calc(50% - 720px + 460px);top:1224px;width:862px;height:862px;pointer-events:none;opacity:.5;mix-blend-mode:soft-light;z-index:2}
@media(max-width:900px){.about-page .about-orbit-decoration{display:none}}
.about-intro{position:relative;height:1150px;padding-top:250px}
.about-intro-grid{position:relative;display:block}
.about-intro-grid>div:first-child{max-width:1080px}
.about-intro h2{font-size:56px;line-height:1.5;margin:0 0 14px;letter-spacing:.03em}
.about-intro-grid>div:first-child>p{max-width:1200px;font-size:16px;line-height:24px;letter-spacing:.03em;margin:0}
.about-intro-art{position:absolute;left:0;top:353px;width:660px;height:410px;pointer-events:none}
.about-photo-placeholder{position:absolute;background:#D9D9D9;border:0;box-shadow:inset 0 0 0 8px white,4px 7px 6px rgba(1,16,27,.22);box-sizing:border-box}
.about-photo-a{left:0;top:0;width:388px;height:258px;transform:rotate(-4.90735deg);transform-origin:top left}
.about-photo-b{left:311.051px;top:111.81px;width:248.446px;height:165.631px;transform:rotate(8deg);transform-origin:top left}
.about-values{position:relative;height:665px;padding:65px 0 30px}

.about-decor-fish{display:block;width:71px;height:48px;object-fit:contain;pointer-events:none}
.about-values .container-wide{position:relative}
.about-values .about-fish-values{position:absolute;left:-3.051px;top:-69.14px}
.staff-section .about-fish-staff{position:absolute;left:calc(50% + .449px);top:112.86px;transform:translateX(-50%)}
/* 48px fish + 8px lower gap preserves the original heading flow (32 + 24). */
.company-table .about-fish-company{width:71px;height:48px;margin:0 auto 8px;transform:translate(.449px,-7.12px)}
.about-values h2{font-size:40px;line-height:1.35;margin:0 0 18px}
.about-values .container-wide>p{margin:0 0 96px;line-height:1.75}
.value-lines{display:grid;gap:0;max-width:920px;width:100%}
.value-row{display:grid;grid-template-columns:160px 1fr;gap:16px;border-top:1px solid #1E4986;padding:16px 0}
.value-row:first-child{border-top:0}
.value-row:last-child{border-bottom:0}
.value-row h3{font-size:24px;line-height:1.5;color:var(--blue);margin:0}
.value-row p{margin:0;line-height:1.6}
/* about.svg: desktop values grid; source separators y=2127.6 and 2247.6 */
@media (min-width: 901px){
  .about-values .container-wide{position:relative}
  .about-values .value-lines{position:absolute;top:216.6px;left:0;width:920px;max-width:920px}
  .about-values .value-row{box-sizing:border-box;grid-template-columns:160px minmax(0,1fr);column-gap:16px;align-items:center;padding:0}
  .about-values .value-row:nth-child(1){height:120px}
  .about-values .value-row:nth-child(2){height:120px}
  .about-values .value-row:nth-child(3){height:144px}
  .about-values .value-row h3{line-height:1.5}
  .about-values .value-row p{line-height:1.5}
}


@media (min-width:901px) and (max-width:1199px){
  .about-page .message-section{height:auto;padding:0}
  .about-page .message-inner{height:auto;aspect-ratio:1200 / 923.526}
  .about-page .about-message-can{width:100%;height:100%;max-width:none}
  .about-page .about-message-heading{left:10%;top:39%;font-size:clamp(18px,2vw,24px);line-height:1.45}
  .about-page .message-copy{left:10%;top:45%;width:48%;max-width:48%;font-size:clamp(13px,1.3vw,15px);line-height:1.45;letter-spacing:0}
  .about-page .message-copy br{display:none}
  .about-page .message-copy .signature{margin-top:10px}
}

/* The large open-can drawing belongs to the representative message,
   x=120 y=2391.6, 1200x923.5 in the supplied SVG. */
.message-section{position:relative;height:923.526px;padding:0}
.message-inner{height:100%;position:relative}
.about-message-can{position:absolute;left:0;top:0;width:1200px;height:923.526px;max-width:100%;display:block;object-fit:fill;-webkit-mask:none;mask:none;pointer-events:none;z-index:1}
.about-message-heading{position:absolute;top:421.58px;left:130px;margin:0;color:var(--blue);font-size:24px;line-height:1.5;z-index:2}
.message-copy{position:absolute;left:130px;top:455.58px;width:580px;max-width:580px;font-size:16px;line-height:24px;letter-spacing:.03em;z-index:2}
.message-copy p{margin:0}
.message-copy .signature{margin-top:16px;text-align:left;font-weight:700}

@media (min-width:1200px) and (max-width:1247px){
  .about-page .message-section{height:auto;padding:0}
  .about-page .message-inner{height:auto;aspect-ratio:1200 / 923.526}
  .about-page .about-message-can{width:100%;height:100%;max-width:none}
  .about-page .about-message-heading{
    left:10.833333%;top:45.648958%;font-size:clamp(23.04px,calc(2vw - .96px),24px)
  }
  .about-page .message-copy{
    left:10.833333%;top:49.330501%;width:48.333333%;max-width:none;
    font-size:clamp(15.36px,calc(1.333333vw - .64px),16px);line-height:1.5
  }
}
@media (max-width:900px){
  
  .message-section{height:auto;min-height:0;padding:46px 0 86px}
  .message-inner{--can-lid-height:clamp(212px,61vw,390px);position:relative;isolation:isolate;min-height:0;height:auto;padding:calc(var(--can-lid-height) * .61) clamp(42px,7vw,70px) 58px;box-sizing:border-box}
  .message-inner::before{content:"";position:absolute;inset:0;z-index:0;box-sizing:border-box;background:#F4F1E9;
    border-style:solid;border-color:transparent;border-width:var(--can-lid-height) 26px 36px;
    border-image-source:url("assets/about/can-open-line-mobile-border.png");
    border-image-slice:92% 7% 6% 7%;
    border-image-width:var(--can-lid-height) 26px 36px 26px;
    border-image-repeat:stretch;pointer-events:none}
  .about-message-can{display:none}
  .about-message-heading{position:relative;top:auto;left:auto;margin:0 0 11px;color:var(--blue);font-size:clamp(20px,3.1vw,27px);line-height:1.4;z-index:2}
  .message-copy{position:relative;left:auto;top:auto;width:100%;max-width:100%;padding:0;font-size:clamp(13px,1.75vw,16px);line-height:1.75;z-index:2}
  .message-copy br{display:none}
  .message-copy>p:first-child::before{content:"";float:right;width:37%;height:calc(var(--can-lid-height) * .55);shape-outside:inset(0)}
  .message-copy .signature{clear:both;margin-top:22px}
}

@media (max-width:480px){
  .about-page .message-inner{padding-top:calc(var(--can-lid-height) * .99)}
  .about-page .message-copy>p:first-child::before{content:none;display:none}
}
.staff-section{position:relative;padding:120px 0 0;height:2114.478px;min-height:0}
.staff-section h2{text-align:center;font-size:40px;line-height:1.4;margin:0 0 12px}
.staff-section .container-wide>p{text-align:center;margin:0 auto 66px;max-width:1050px}
.staff-stack{display:grid;gap:36px}
.staff-row{display:grid;grid-template-columns:430px 420px;gap:28px;align-items:center;width:990px;max-width:100%;min-height:360px}
.staff-row:nth-child(odd){margin-left:95px;grid-template-columns:440px 420px}
.staff-row:nth-child(odd) .staff-photo{order:2}
.staff-row:nth-child(even){margin-left:205px;grid-template-columns:345px 420px}
.staff-row:nth-child(even) .staff-photo{order:0}
.staff-photo{height:355px;display:flex;align-items:flex-end;justify-content:center}
.staff-photo img{max-height:100%;width:auto;max-width:100%;object-fit:contain}
.staff-copy .role{display:inline-block;font-size:14px;line-height:18px;padding:0 4px;margin:0;color:#fff;background:#1E4986;font-weight:700;letter-spacing:.02em}
.staff-copy h3{font-size:24px;line-height:1.45;margin:24px 0 22px;letter-spacing:.03em}
.staff-copy p{margin:0;font-size:16px;line-height:24px;letter-spacing:.03em;max-width:540px}
@media(min-width:901px){
  /* Figma 680:438 / 415:329, original 1440px composition.
     Frame starts at document y=3315.12; photo/text positions preserve layer overlaps. */
  .staff-section .container-wide{width:1200px;max-width:calc(100% - 48px)}
  .staff-section h2{font-size:40px;line-height:60px;margin:56px 0 0}
  .staff-section .container-wide>p{font-size:16px;line-height:24px;margin:0}
  .staff-stack{display:block;position:relative;height:1630.478px;margin-top:104.6px}
  .staff-row,.staff-row:nth-child(odd),.staff-row:nth-child(even){display:block;position:absolute;left:0;top:0;margin:0;width:1200px;height:425px;max-width:100%;min-height:0}
  .staff-copy{position:absolute;width:636px;min-height:274px;padding:40px 44px 50px;background:#fff;border:4px solid #1E4986;z-index:1;box-sizing:border-box}
  .staff-photo{position:absolute;z-index:2;display:block;margin:0;overflow:visible;height:auto}
  .staff-photo img{width:100%;height:100%;object-fit:contain;max-width:none;max-height:none}
  .staff-row.staff-1{top:0}
  .staff-row.staff-1 .staff-copy{left:233px;top:74.46px;min-height:274px;height:auto}
  .staff-row.staff-1 .staff-photo{left:723px;top:0;width:246px;height:314px}
  .staff-row.staff-2{top:384.91px}
  .staff-row.staff-2 .staff-copy{left:330.5px;top:92.25px;min-height:274px;height:auto;padding-left:160px}
  .staff-row.staff-2 .staff-photo{left:231.5px;top:0;width:245px;height:350px}
  .staff-row.staff-3{top:805.405px}
  .staff-row.staff-3 .staff-copy{left:196.518px;top:82.91px;min-height:274px;height:auto}
  .staff-row.staff-3 .staff-photo{left:692.482px;top:0;width:266px;height:322px}
  .staff-row.staff-4{top:1207.224px}
  .staff-row.staff-4 .staff-copy{left:384.812px;top:81.627px;min-height:274px;height:auto;padding-left:160px}
  .staff-row.staff-4 .staff-photo{left:248px;top:0;width:252px;height:341px}
  .staff-copy .role{font-size:14px;line-height:18px;height:18px;vertical-align:top;white-space:nowrap}
  .staff-copy h3{font-size:24px;line-height:1.5;margin:24px 0 16px}
  .staff-copy>p:last-child{font-size:16px;line-height:24px;letter-spacing:.03em;max-width:440px}
}


/* Figma about / Frame 424 and Frame 280: x=347.5, width=745, y=5745.6. */
.company-table{height:1332px;padding:120px 0 120px}
.company-table h2{text-align:center;font-size:40px;line-height:60px;margin:0 0 80px}
.company-table dl{display:grid;grid-template-columns:119px minmax(0,626px);grid-template-rows:44px 44px 68px 44px 44px 68px 236px 44px 44px 44px;column-gap:0;row-gap:24px;width:745px;max-width:100%;margin:0 auto;border:0}
.company-table dt,.company-table dd{padding:10px;border-bottom:1px solid #1E4986;margin:0;font-size:16px;line-height:24px;min-width:0}
.company-table dt{font-weight:500}
.about-cta{padding:120px 0;height:683px}
.about-cta-box{border:8px solid var(--ink);padding:60px 70px;text-align:center}
.about-cta-box h2{font-size:40px;margin:0 0 14px}
.about-cta-box p{margin:0 0 28px}
@media(max-width:900px){
  .about-values .about-fish-values{top:-46px;left:0}
  .staff-section .about-fish-staff{top:30px}
  .company-table{height:auto;padding:78px 0 88px}
  .company-table .about-fish-company{margin:0 auto 16px}
  .company-table h2{font-size:28px;line-height:1.5;margin:0 0 36px}
  .company-table dl{grid-template-columns:110px minmax(0,1fr);grid-template-rows:none;grid-auto-rows:auto;row-gap:8px;width:100%}
  .company-table dt,.company-table dd{padding:12px 6px;font-size:13px;line-height:1.7;overflow-wrap:anywhere}
}

/* news/contact/privacy */


/* TOP */
.home11-hero{height:1399px;position:relative;z-index:1}.home13-hero-copy{position:absolute;left:0;top:132px;width:100%;height:759px;background:url("assets/home/hero-copy-blue.png") center top/100% 100% no-repeat;filter:drop-shadow(3px 4px 0 rgba(1,16,27,.42))}
.home11-hero-bottom{position:absolute;left:50%;top:955px;bottom:auto;transform:translateX(-50%);width:1200px;display:block}.home11-hero-message h1{font-size:56px;line-height:1.5;margin:0 0 28px}.home11-hero-actions{display:flex;gap:15px;flex-direction:column;align-items:flex-start}.home11-hero-team{position:absolute;left:629px;top:-122px;width:571px;height:602px;object-fit:contain;max-width:none}
/* TOP MV / medium screens: keep the independent original artwork visible.
   The 1440px original and designed SP <=820px remain unchanged. */
@media (min-width:821px) and (max-width:1199px){
  .home11-hero{height:clamp(1040px,98vw,1200px);overflow:hidden}
  .home13-hero-copy{top:94px;height:auto;aspect-ratio:1440/759;background-size:100% 100%;filter:drop-shadow(2px 3px 0 rgba(1,16,27,.42))}
  .home11-hero-bottom{top:calc(46vw + 240px);width:calc(100% - 80px)}
  .home11-hero-message{max-width:56%}
  .home11-hero-message h1{font-size:clamp(34px,3.8vw,46px);line-height:1.5;margin-bottom:26px}
  .home11-hero-actions{gap:12px}
  .home11-hero-actions .btn:first-child{width:min(360px,100%)}
  .home11-hero-team{left:auto;right:0;top:-55px;width:clamp(270px,34vw,405px);height:auto;max-width:44%;object-fit:contain}
}

@media (min-width:1200px) and (max-width:1439px){
  .home11-hero{height:97.152778vw}
  .home13-hero-copy{top:9.166667vw;height:52.708333vw}
  .home11-hero-bottom{top:66.319444vw;width:min(1200px,calc(100% - 80px))}
  .home11-hero-message h1{font-size:clamp(46px,3.888889vw,56px)}
  .home11-hero-team{left:auto;right:0;top:-8.472222vw;width:39.652778vw;height:auto}
}

@media (min-width:1440px){
  .home11-hero{height:97.152778vw}
  .home13-hero-copy{
    left:50%;top:9.166667vw;
    width:100vw;height:52.708333vw;aspect-ratio:1440 / 759;
    background-size:100% 100%;transform:translateX(-50%)
  }
  .home11-hero-bottom{top:66.319444vw}
}
.home11-intro{height:1074px;background:#fff;position:relative;border-top:8px solid var(--orange);border-bottom:8px solid var(--orange);overflow:hidden}.home11-fish-pattern{position:absolute;inset:0;pointer-events:none;overflow:hidden}.home11-intro-copy{position:absolute;left:50%;top:146px;transform:translateX(-50%);width:610px;text-align:center;z-index:2}.home11-intro-copy h2{font-size:40px;line-height:1.5;margin:0 0 50px}.home11-intro-copy p{line-height:1.85;margin:0 0 38px}

/* Keep the faint fish motif outside the desktop headline and copy.
   Desktop-only adjustment; the dedicated mobile layout stays unchanged. */


.home-page .btn{border-radius:0;box-shadow:0 4px 4px rgba(0,0,0,.25);font-size:20px;min-height:63px;padding-inline:12px;white-space:nowrap}
.home11-hero-actions .btn:first-child{width:360px}
.home11-hero-actions .btn:last-child{width:180px}
.home11-work-actions .btn,.home11-news .btn,.home11-film-menu .btn{height:63px}
.home11-work-actions .home11-btn-light{box-shadow:0 4px 0 rgba(1,16,27,.16),inset 0 0 0 1px var(--ink)}
.home11-contact-topics span{background:rgba(247,245,239,.9);min-height:40px;white-space:nowrap;padding:7px 16px;box-shadow:3px 4px 0 rgba(1,16,27,.12);font-size:16px}
.home11-contact-topics .topic-row{display:flex;justify-content:center;gap:8px}
.home11-contact-topics .topic-row:first-child span:first-child{min-width:192px}
.home11-contact-topics .topic-row:first-child span:last-child{min-width:205px}
.home11-contact-topics .topic-row:last-child span:first-child{min-width:290px}
.home11-contact-topics .topic-row:last-child span:last-child{min-width:205px}
.home11-news .btn{width:220px}
.home11-konomachi-copy .btn{width:265px}
.home11-contact .btn{width:360px}
.home11-film{height:864px}.home11-film-shell{display:grid;grid-template-columns:948px 478px;width:1440px;height:864px;margin:0 auto;padding-left:14px}.home11-film-frame{position:relative;background:var(--ink);overflow:hidden}.home11-perf{position:absolute;top:0;bottom:0;width:76px;background-repeat:repeat-y;background-size:76px 864px;z-index:4;pointer-events:none}.home11-perf-left{left:31px;background-image:url("assets/home/film-perforation-left.svg")}.home11-perf-right{right:31px;width:74px;background-size:74px 864px;background-image:url("assets/home/film-perforation-right.svg")}.home11-film-title{position:absolute;z-index:5;top:12px;left:0;right:0;margin:0;color:#fff;font-size:40px;display:flex;align-items:center;justify-content:center;gap:28px;pointer-events:none}.home11-film-title i{display:block;width:54px;height:4px;background:var(--orange)}.home11-film-scroll{position:absolute;left:114px;right:114px;top:108px;bottom:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}.home11-film-scroll::-webkit-scrollbar{display:none}.home11-film-card{position:relative;margin-bottom:32px;scroll-margin-top:0}.home11-film-card>.home11-film-card-link>img{width:720px;height:480px;object-fit:cover}.home11-film-caption{position:absolute;left:32px;right:32px;bottom:24px;background:rgba(245,245,245,.94);padding:14px 20px}.home11-film-caption h3{font-size:24px;margin:0 0 8px;border-bottom:1px solid var(--ink);padding-bottom:8px}.home11-film-caption p{margin:0;line-height:1.55}.home11-film-menu{padding:220px 0 0 32px;background:transparent}.home11-film-menu>p{font-size:20px;line-height:30px;margin:0 0 42px}.home11-film-menu>img{width:80px;height:41px;object-fit:contain;margin-bottom:27px}.film-link{display:block;border:0;background:none;padding:10px 0;height:52px;line-height:32px;font-size:16px;font-weight:700;cursor:pointer;text-align:left}.film-link.is-active::before{content:"◆";color:var(--orange);margin-right:8px}.home11-film-menu .btn{margin-top:12px;width:220px;height:63px}
/* Intermediate desktop widths: preserve the 1440px Figma columns at 1440px,
   but keep both the film and its selection menu within the available viewport. */
@media (min-width:1101px) and (max-width:1439px){
  .home11-film-shell{width:100%;grid-template-columns:minmax(0,66.2%) minmax(0,33.8%);padding-left:clamp(10px,1vw,14px)}
  .home11-film-scroll{left:clamp(108px,8vw,114px);right:clamp(108px,8vw,114px)}
  .home11-film-card>.home11-film-card-link>img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
  .home11-film-caption{left:clamp(14px,2.2vw,32px);right:clamp(14px,2.2vw,32px)}
  .home11-film-caption h3{font-size:clamp(18px,1.7vw,24px)}
  .home11-film-caption p{font-size:clamp(12px,1.12vw,16px)}
  .home11-film-title{font-size:clamp(30px,2.78vw,40px)}
  .home11-film-menu{min-width:0;padding:220px clamp(15px,2.2vw,32px) 0 clamp(18px,2.2vw,32px)}
  .home11-film-menu>p{font-size:clamp(16px,1.39vw,20px)}
  .home11-film-menu .film-link{font-size:clamp(12px,1.12vw,16px);height:auto;min-height:52px;line-height:1.5;max-width:100%}
  .home11-film-menu .btn{max-width:100%}
}
.home11-strength{height:1225px;background:var(--blue);color:#fff;position:relative;overflow:hidden}.home11-strength-inner{width:1200px;margin:auto;position:relative;height:100%;padding-top:111px}.home11-strength-inner>h2{display:inline-block;background:var(--orange);font-size:40px;line-height:1.5;padding:24px 40px;margin:0;box-shadow:6px 7px 0 rgba(1,16,27,.3)}.home11-strength-tuna{position:absolute;width:700px;left:40px;top:300px;opacity:.12;transform:rotate(-15deg)}/* Reserve the right half for the large can; keep text safely to its left. */
.home11-strength-list{position:absolute;left:0;top:275px;width:540px;display:grid;gap:28px}.home11-strength-list article{display:grid;grid-template-columns:112px 1fr;gap:26px;align-items:center}.home11-strength-list article img{width:100px}.home11-strength-list h3{font-size:24px;margin:0 0 8px}.home11-strength-list p{margin:0;line-height:1.6}
.home11-works{height:1000px;padding-top:115px}.home11-works-inner,.home11-news-inner,.home11-konomachi-inner{width:1200px;margin:auto}.home11-works h2{text-align:center;font-size:40px;margin:0 0 78px}.home11-work-grid{display:grid;grid-template-columns:600px 1fr;gap:28px;align-items:center}.home11-monitor{position:relative;width:572px;height:602px}.home11-monitor-screen{position:absolute;width:467px;height:334px;object-fit:cover;left:68.5px;top:24px}.home11-monitor-frame{position:absolute;width:572px;left:0;top:0}.home11-client-meta{display:flex;align-items:center;gap:18px;margin-bottom:16px}.home11-badge{flex:0 0 102px}.home11-badge img{width:102px;height:100px;object-fit:contain}.home11-client{margin:0;display:inline-block;padding:0 2px 6px;border-bottom:5px solid var(--orange);font-weight:800;font-size:24px;line-height:1.45;white-space:nowrap}
.home11-work-copy h3{font-size:24px;margin:18px 0}.home11-work-copy dl{display:block;margin:14px 0 0}.home11-work-copy dt{display:table;background:var(--orange);color:#fff;padding:3px 12px;font-size:14px;font-weight:700;line-height:20px}.home11-work-copy dd{margin:18px 0 12px;line-height:1.5}.home11-work-actions{display:flex;gap:24px;margin-top:30px;flex-wrap:wrap}.home11-work-actions .btn{width:220px;max-width:100%;padding-inline:8px}.home11-work-actions .home11-btn-light{border:1px solid var(--ink);box-shadow:0 4px 4px rgba(0,0,0,.25)}.home11-btn-light{background:#fff;color:var(--ink);border:1px solid rgba(1,16,27,.15)}
.home11-news{height:670px;padding-top:43px}.home11-news h2{font-size:40px;margin:0 0 30px}.home11-news-list{border-top:1px solid var(--ink);margin-bottom:40px}.home11-news-list a{display:grid;grid-template-columns:max-content max-content minmax(0,1fr);column-gap:16px;row-gap:12px;padding:18px 0 20px;border-bottom:1px solid rgba(1,16,27,.45);align-items:center}.home11-news-list p{grid-column:1/-1;margin:0;font-size:16px;line-height:24px}
/* New decorative marker extracted from the ORIGINAL home.svg vector path. */


.home11-news-list a time{grid-column:1;grid-row:1;font-size:14px;font-weight:700}
.home11-news-list a .tag{grid-column:2;grid-row:1;width:max-content;max-width:100%;min-height:26px;height:auto;padding:4px 10px;justify-self:start;white-space:nowrap;box-sizing:border-box}






.home11-contact{height:650px;padding-top:0}.home11-contact-card{width:min(912px,calc(100% - 48px));height:551px;margin:auto;background:var(--orange);padding:36px}.home11-contact-border{height:100%;border:8px solid var(--ink);padding:42px 35px;text-align:center}.home11-contact-border h2{font-size:40px;line-height:1.5;margin:0 0 18px}.home11-contact-topics{display:flex;flex-direction:column;align-items:center;gap:8px;margin:24px auto;max-width:700px}.home11-contact-border p{margin:0 0 26px}.home11-btn-dark{background:var(--ink);color:#fff}
.home11-konomachi{height:657px;padding-top:86px}.home11-konomachi-inner{display:grid;grid-template-columns:480px 1fr;gap:70px;align-items:center}.home11-konomachi-visual img{width:488px;height:242px;max-width:none;object-fit:fill}.home11-konomachi-copy h2{font-size:40px;line-height:1.5;letter-spacing:.03em;white-space:nowrap;margin:0 0 18px}.home11-konomachi-copy p{margin:0 0 24px;line-height:1.5;letter-spacing:.03em;font-size:16px}

/* TOP works/news: at 901–1199px the original 1200px-wide text areas were
   clipped by main's overflow. Keep 1200px+ coordinates unchanged. */
@media (min-width:901px) and (max-width:1199px){
  .home11-works-inner,.home11-news-inner{width:calc(100% - 80px)}
  .home11-work-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px}
  .home11-monitor{width:min(100%,572px);height:auto;aspect-ratio:572/602}
  .home11-monitor-screen{width:81.643%;height:55.482%;left:11.976%;top:3.987%}
  .home11-monitor-frame{width:100%}
}
@media (min-width:901px) and (max-width:1300px){
  .home11-konomachi-inner{grid-template-columns:minmax(0,40%) minmax(0,1fr);gap:clamp(24px,4vw,70px)}
  .home11-konomachi-visual img{width:100%;height:auto;max-width:488px}
  .home11-konomachi-copy h2{font-size:clamp(26px,2.7vw,38px)}
}

@media (min-width:901px) and (max-width:1100px){
  .home-page .home11-konomachi{
    height:auto;
    min-height:657px;
    padding-bottom:clamp(82px,9vw,106px);
  }
  .home-page .home11-konomachi-copy h2{white-space:normal}
  .home-page .home11-konomachi-inner{height:auto;align-items:center}
}

/* On 1101–1199px the default 1200px container otherwise cuts off TV text
   without creating document-wide horizontal scrolling (body clips it). */
@media (min-width:1101px) and (max-width:1199px){
  .home11-konomachi-inner{width:calc(100% - 80px)}
  .home11-konomachi-copy h2{white-space:normal}
}

@media (min-width:821px) and (max-width:900px){
  
  .home11-film-menu .film-link{font-size:clamp(15px,1.8vw,16px)}
  /* The desktop 912px contact card was clipped by up to 91px at 821px. */
  /* The 600px monitor + copy cannot share two columns at this width. */
  .home11-works{height:auto;min-height:0;padding-bottom:90px}
  .home11-work-grid{grid-template-columns:minmax(0,1fr);gap:28px}
  .home11-monitor{width:min(100%,572px);height:auto;aspect-ratio:572/602;margin-inline:auto}
  .home11-monitor-screen{width:81.643%;height:55.482%;left:11.976%;top:3.987%}
  .home11-monitor-frame{width:100%}
  .home11-contact{height:auto;min-height:0;padding-bottom:75px}
  .home11-contact-card{width:calc(100% - 48px);height:auto}
  .home11-contact-border{height:auto}
  .home11-konomachi{height:auto;min-height:0;padding:72px 0 90px}
  .home11-konomachi-inner{width:calc(100% - 80px);grid-template-columns:minmax(0,1fr);gap:28px;align-items:start}
  .home11-konomachi-visual img{display:block;width:clamp(260px,36vw,360px);height:auto;max-width:100%;margin:0 auto}
  .home11-konomachi-copy h2{font-size:clamp(27px,3.4vw,32px);line-height:1.45;white-space:normal;margin-bottom:18px}
  .home11-konomachi-copy p{font-size:clamp(13px,1.5vw,15px);line-height:1.7;margin-bottom:20px}
}

@media(max-width:1100px){

  .home11-film-shell{width:100%;grid-template-columns:66% 34%}.home11-film-scroll{left:90px;right:90px}.home11-film-card>.home11-film-card-link>img{width:100%}.home11-strength-inner,.home11-works-inner,.home11-news-inner,.home11-konomachi-inner,.home11-hero-bottom{width:calc(100% - 80px)}
}
@media(min-width:821px) and (max-width:1100px){
  .consult-grid{column-gap:52px;row-gap:185px}
  .consult-card[data-col="right"]{margin-left:8px}
  .consult-toggle img{height:auto;aspect-ratio:1.85/1}
  .consult-toggle span{font-size:clamp(17px,2vw,24px)}
  .service-middle-cta .service-cta-mini{padding-left:0;grid-template-columns:minmax(0,1fr) 200px;gap:16px}
  .service-middle-cta .service-cta-mini h3{font-size:clamp(22px,2.6vw,32px);white-space:normal}
  .service-cta-link{width:200px}
}
@media(max-width:820px){
  body{font-size:14px}.container,.container-wide{width:calc(100% - 32px)}

  .page-hero{height:auto;min-height:300px}.page-hero .container,.page-hero .container-wide,.child-service-page .page-hero .container,.service-page .page-hero .container,.about-page .page-hero .container{padding-top:115px;padding-bottom:60px;width:calc(100% - 32px)}.page-hero h1,.child-service-page .page-hero h1,.service-page .page-hero h1{font-size:40px}
  
  .child-lead,.problem-section,.feature-section,.use-section,.benefit-section,.pricing-section,.works-teaser-section,.source-konomachi,.crosslink-band{min-height:0;padding:80px 0}.child-lead-grid{grid-template-columns:minmax(0,1fr);gap:28px}.child-lead-grid>.child-lead-copy,.child-lead-grid>img{grid-column:1}.child-lead h2{font-size:34px}.problem-section h2,.feature-section h2,.use-section h2,.benefit-section h2,.pricing-section h2,.works-teaser-section h2,.source-konomachi h2,.crosslink-band h2{font-size:28px}.check-grid{grid-template-columns:1fr;gap:10px}.feature-grid{grid-template-columns:1fr;gap:42px}.use-grid{grid-template-columns:1fr;gap:34px}.works-teaser-grid{grid-template-columns:1fr}.source-konomachi{padding:80px 0}
  .service-page .intro-split{height:auto;padding:100px 0}.intro-split h2{font-size:34px}.service-page .consult-section{min-height:0;padding:85px 0}.consult-grid{grid-template-columns:1fr;gap:65px}
.service-page .consult-section .consult-heading-fish{width:71px;height:48px;top:-50px;left:0}
.consult-grid .consult-card{margin:0}
.consult-toggle img{height:auto;aspect-ratio:1.45/1}
.consult-card[data-col="left"] .consult-toggle img,.consult-card[data-card-number="3"] .consult-toggle img{transform:rotate(-3.5deg)}
.consult-card[data-col="right"] .consult-toggle img,.consult-card[data-card-number="4"] .consult-toggle img,.consult-card[data-card-number="6"] .consult-toggle img{transform:rotate(3.5deg)}.consult-toggle span{font-size:20px}.service-middle-cta{height:auto;min-height:0;padding:28px 0;border-width:6px}
.service-middle-cta .container-wide{height:auto}
.service-middle-cta .service-cta-mini{height:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:0;text-align:center}
.service-middle-cta .service-cta-copy{align-items:center;gap:8px}
.service-middle-cta .service-cta-mini h3{white-space:normal;font-size:clamp(19px,5.5vw,28px)}
.service-middle-cta .service-cta-mini p{font-size:14px}
.service-cta-copy{gap:8px}.service-cta-mini h3{font-size:clamp(20px,5vw,28px);white-space:normal}.service-cta-mini p{font-size:14px}.service-cta-link{width:min(100%,220px)}.service-index,.service-support,.service-benefits,.service-bottom-cta{min-height:0;padding:85px 0}.service-showcase{gap:70px}.service-showcase article{grid-template-columns:1fr;gap:24px}.service-showcase article:nth-child(even) .service-shot{order:0}.service-showcase article:nth-child(even) .service-copy{order:0}.service-shot{min-height:0}.service-shot img{height:auto;aspect-ratio:1.45/1}.service-support-grid{grid-template-columns:1fr;gap:58px;margin-top:50px}/* SPでは固定座標を解除し、各アイコンの元縦横比を維持 */
  .service-support-grid{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:none;row-gap:46px;column-gap:0}
  .service-support-item{display:grid;grid-template-columns:110px minmax(0,1fr);gap:22px;align-items:start;min-height:0}
  .service-support-item img,.service-support-item:nth-child(n) img{position:static;display:block;width:110px;height:auto;max-width:100%}
  .service-support-item>div,.service-support-item:nth-child(n)>div{position:static;min-width:0}
  .service-support-item h3{font-size:20px;line-height:1.5;margin-bottom:10px}
  .service-support-item p{font-size:14px;line-height:1.7}.service-benefit{grid-template-columns:96px minmax(0,1fr);column-gap:14px;align-items:start;min-height:0;padding:22px 0}
  .service-benefit img{width:96px;height:96px;transform:none}
  .service-benefit>div{transform:none}
  .service-benefit h3{font-size:18px;line-height:1.5;margin-bottom:8px}
  .service-benefit p{font-size:14px;line-height:1.7}.service-bottom-cta-box{height:auto;max-width:calc(100% - 32px);padding:16px}
  .service-bottom-cta-inner{height:auto;padding:28px 14px 26px;border-width:4px}
  .service-bottom-cta-inner h2{font-size:25px;line-height:1.5}
  .service-bottom-cta-inner .service-bottom-cta-lead{margin-top:18px;font-size:13px;line-height:1.7}
  .service-bottom-cta-inner .service-bottom-cta-note{margin-top:20px;font-size:13px;line-height:1.7}
  .service-bottom-cta-inner .button-row{flex-direction:column;width:100%;margin-top:24px;gap:12px}
  .service-bottom-cta-inner .btn{width:100%;min-height:54px;height:54px;font-size:14px;padding:0 6px}
  .works-listing{min-height:0;padding:80px 0 120px}.filter-bar{margin:45px 0 55px;gap:25px}.filter-row{flex-wrap:wrap;gap:10px 18px}.filter-row .filter:nth-child(n){margin-right:0}.filter{font-size:13px;min-height:30px}.filter::after{bottom:0}.works-grid{grid-template-columns:1fr;gap:55px}.work-card-media{height:auto;aspect-ratio:1.5}.work-card h3{font-size:20px}.work-card .tags{gap:6px}.work-card .tag{font-size:12px}
  .work-detail-page .detail-title-block{min-height:0;padding:90px 0 45px}.detail-title-block h1{font-size:36px}
  
  
  .store-work-page .detail-title-block{min-height:0;padding:90px 0 65px}
  .store-work-page .detail-title-block h1{font-size:clamp(24px,6.8vw,36px);line-height:1.5}
  .store-work-page .detail-title-block .meta-line{margin-top:25px;gap:9px;min-height:60px;flex-wrap:wrap}
  
  .store-work-page .detail-title-block .meta-line strong{font-size:14px;min-width:0;flex:1}
  .store-detail-layout{padding-bottom:95px}
  .store-detail-hero{grid-template-columns:minmax(0,1fr);gap:30px;margin:0 0 70px}
  .store-detail-photo{width:100%;height:auto;aspect-ratio:800/533}
  .store-side-box{padding-left:24px;display:grid;grid-template-columns:minmax(0,1fr);gap:0}
  .store-side-box ul{margin-bottom:25px;font-size:14px;line-height:1.7}
  .store-side-box h3{font-size:18px}
  .store-detail-grid3,.store-detail-grid2{display:grid;grid-template-columns:minmax(0,1fr);gap:35px;min-height:0;margin:0 0 45px}
  .store-detail-grid2 + .store-detail-grid2{min-height:0}
  .store-detail-grid3 h3,.store-detail-grid2 h3,.store-related h3{font-size:18px;margin-bottom:10px}
  .store-detail-grid3 p,.store-detail-grid2 p,.store-related p{font-size:14px;line-height:1.7}
  .store-related{margin-top:25px}
  .store-related .btn{width:100%;font-size:14px;white-space:normal}

  .faq-page .faq-intro-section{padding:90px 0 40px}
  .faq-page .faq-intro-section>.container-wide>h2{font-size:34px}
  .faq-page .faq-intro-section>.container-wide>p{font-size:14px;line-height:1.7}
  .faq-page .faq-group{margin-top:65px;width:100%}
  .faq-page .faq-group + .faq-group,
  .faq-page .faq-group:nth-of-type(3),
  .faq-page .faq-group:nth-of-type(4){margin-top:85px}
  .faq-page .faq-group>h2{font-size:20px;line-height:1.5;margin-bottom:30px}
  .faq-page .faq-item{margin-bottom:18px}
  .faq-page .faq-q{height:auto;min-height:56px;padding:12px 32px 12px 14px;font-size:14px;line-height:1.55}
  .faq-page .faq-q::after{right:12px;top:calc(50% - 5px)}
  .faq-page .faq-answer{min-height:0;padding:16px 14px 18px;font-size:13px;line-height:1.7}
  .faq-page .faq-answer p{line-height:1.7}
  .about-intro{height:auto;min-height:680px;padding:100px 0 360px}
  .about-intro-grid{display:block}
  .about-intro h2{font-size:36px;line-height:1.5}
  .about-intro-grid>div:first-child>p{font-size:14px;line-height:1.8}
  .about-intro-art{left:8px;top:auto;bottom:-330px;width:calc(100% - 20px);height:315px}
  .about-photo-a{width:min(65vw,250px);height:172px}
  .about-photo-b{left:42%;top:90px;width:min(46vw,175px);height:115px}
  
  .about-values{height:auto;min-height:760px;padding:75px 0 90px}
  .about-values h2{font-size:27px}
  .about-values .container-wide>p{margin-bottom:35px;font-size:14px}
  .value-row{grid-template-columns:1fr;gap:6px;padding:18px 0}
  .value-row h3{font-size:20px}
  .value-row p{font-size:14px}
  .staff-section{min-height:0;height:auto;padding:110px 0 90px}
  .staff-section h2{font-size:28px}
  .staff-section .container-wide>p{font-size:14px;margin-bottom:50px}
  .staff-stack{gap:55px;height:auto;margin-top:0}
  .staff-row,.staff-row:nth-child(odd),.staff-row:nth-child(even){display:flex;flex-direction:column;gap:0;margin:0 auto;min-height:0;width:100%;max-width:500px}
  .staff-row:nth-child(odd) .staff-photo,.staff-row:nth-child(even) .staff-photo{order:0}
  .staff-photo{height:345px}
  /* Keep the lettering start unchanged, but lift the blue frame another
     32px behind each portrait, per the four-staff mobile overlap instruction. */
  .staff-copy{width:100%;text-align:left;background:#fff;border:4px solid #1E4986;padding:135px 22px 44px;min-height:0;box-sizing:border-box}
  .about-page .staff-row .staff-photo{position:relative;z-index:2;margin-bottom:-112px}
  .about-page .staff-row .staff-copy{position:relative;z-index:1}
  .company-table{padding:80px 0 100px}
  .company-table h2,.about-cta-box h2{font-size:28px}
  .company-table dl{grid-template-columns:1fr}
  .company-table dt{padding-bottom:4px}
  .company-table dd{padding-top:4px;overflow-wrap:anywhere}
  .about-cta{padding:80px 0 95px;height:auto}
  .about-cta-box{padding:36px 20px;border-width:5px}
  
  /* TOP SP layout is independent; avoid desktop-coordinate overflow. */
  .home11-perf-left{left:3px}.home11-perf-right{right:3px;width:38px;background-size:38px 432px}
  
  .home-page .btn{min-height:46px;font-size:14px;box-shadow:0 3px 0 rgba(1,16,27,.16),inset 0 0 0 2px rgba(255,255,255,.92)}
  .home11-hero-actions .btn:first-child,.home11-hero-actions .btn:last-child{width:min(230px,63vw)}
  .home11-contact-topics .topic-row{flex-direction:column;width:100%;align-items:center}.home11-contact-topics .topic-row span{min-width:0!important;white-space:normal;font-size:12px}
  .home11-contact-card{background:var(--orange)}
  .home-page .home11-contact .btn{width:100%;max-width:100%}
  /* TOP mobile follows supplied SP comp: compact section heights */
  .home11-hero{height:719px}.home13-hero-copy{top:78px;height:207px;width:100%;left:0;background:url("assets/home/hero-copy-blue.png") center top / 100% 100% no-repeat;filter:none}.home11-hero-bottom{width:calc(100% - 32px);top:323px;bottom:auto;display:block}.home11-hero-message h1{font-size:30px;line-height:1.55;margin-bottom:18px}.home11-hero-actions{gap:10px}.home11-hero-actions .btn{min-height:46px;height:46px;font-size:12px;width:230px;max-width:65vw}.home11-hero-team{position:absolute;width:160px;height:auto;left:auto;right:-4px;top:218px}.home11-intro{height:649px;border-top-width:5px;border-bottom-width:5px}.home11-intro-copy{top:60px;width:84%}.home11-intro-copy h2{font-size:24px;margin-bottom:28px}.home11-intro-copy p{font-size:12px;line-height:1.75}.home11-intro-copy .btn{min-height:44px}.home11-film{height:835px}.home11-film-shell{width:100%;height:835px;display:block;padding-left:0}.home11-film-frame{width:100%;height:835px}.home11-film-title{top:35px;font-size:26px;gap:15px}.home11-film-title i{width:35px;height:3px}.home11-perf{width:38px;background-size:38px 432px}.home11-film-scroll{left:53px;right:53px;top:95px;bottom:0}.home11-film-card>.home11-film-card-link>img{height:315px}.home11-film-caption{left:12px;right:12px;bottom:14px;padding:10px 12px}.home11-film-caption h3{font-size:17px}.home11-film-caption p{font-size:11px}.home11-film-menu{display:none}.home11-strength{height:800px}.home11-strength-inner{width:100%;padding:30px 16px}.home11-strength-inner>h2{font-size:24px;padding:13px 18px}.home11-strength-list{left:16px;top:115px;width:66%;gap:14px}.home11-strength-list article{grid-template-columns:65px 1fr;gap:10px}.home11-strength-list article img{width:58px}.home11-strength-list h3{font-size:15px}.home11-strength-list p{font-size:10px;line-height:1.45}.home11-strength-tuna{width:290px;left:-60px;top:240px}.home11-works{height:auto;min-height:980px;padding:65px 16px 70px}.home11-works-inner,.home11-news-inner,.home11-konomachi-inner{width:100%}.home11-works h2{font-size:28px;margin-bottom:45px}.home11-work-grid{grid-template-columns:1fr;gap:32px}.home11-monitor{width:min(90%,572px);height:auto;aspect-ratio:572/602}.home11-monitor-screen{width:81.643%;height:55.482%;left:11.976%;top:3.987%}.home11-monitor-frame{width:100%;left:0;top:0}.home11-client-meta{gap:10px}.home11-badge{flex-basis:82px}.home11-badge img{width:82px;height:82px}.home11-client{font-size:clamp(16px,4.9vw,22px);padding-bottom:4px;border-bottom-width:4px}
.home11-work-copy h3{font-size:19px}.home11-work-copy dl{font-size:12px}.home11-news{height:auto;min-height:600px;padding:70px 16px 40px}.home11-news h2{font-size:28px}.home11-news-list a{grid-template-columns:max-content max-content minmax(0,1fr);column-gap:12px;row-gap:8px;padding:14px 0}.home11-news-list a .tag,.home11-news-list a b{justify-self:start}.home11-news-list a p{grid-column:1/-1;grid-row:2;font-size:12px;line-height:1.7}.home11-contact{height:670px;padding:70px 16px 0}.home11-contact-card{width:100%;height:auto;padding:10px}.home11-contact-border{height:auto;padding:35px 16px;border-width:4px}.home11-contact-border h2{font-size:27px}.home11-contact-topics{font-size:12px}.home11-konomachi{height:580px;padding:70px 16px 0}.home11-konomachi-inner{grid-template-columns:1fr;gap:28px}.home11-konomachi-visual img{width:min(260px,100%);height:auto;max-width:100%;margin:auto}.home11-konomachi-copy h2{font-size:28px;white-space:normal;line-height:1.5;letter-spacing:0}.home11-konomachi-copy p{font-size:12px;line-height:1.65;letter-spacing:0}
}


@media (max-width:389px){
  .home11-hero-message h1{font-size:clamp(24px,calc(8.3vw - 2.8px),30px)}
  .home11-intro-copy h2{font-size:clamp(21.5px,6.75vw,24px)}
}





@media (min-width:821px) and (max-width:1199px){
  .about-page .staff-section{height:auto;min-height:0;padding:85px 0 110px}
  .about-page .staff-section .container-wide{width:calc(100% - 48px);max-width:100%}
  .about-page .staff-section .about-fish-staff{top:52px}
  .about-page .staff-section h2{font-size:clamp(30px,3.5vw,38px);line-height:1.5;margin:48px 0 12px}
  .about-page .staff-section .container-wide>p{font-size:15px;line-height:1.7;margin:0 auto 44px;max-width:95%}
  .about-page .staff-stack{display:grid;position:relative;height:auto;margin-top:0;row-gap:46px}
  .about-page .staff-row,.about-page .staff-row:nth-child(odd),.about-page .staff-row:nth-child(even){
    position:relative;top:auto;left:auto;display:grid;width:min(100%,960px);max-width:100%;height:auto;
    min-height:355px;margin:0 auto;align-items:center;column-gap:0
  }
  
  .about-page .staff-row{--staff-frame-overlap:clamp(100px,12vw,146px)}
  .about-page .staff-row:nth-child(3){--staff-frame-overlap:clamp(95px,11.6vw,140px)}
  .about-page .staff-row:nth-child(4){--staff-frame-overlap:clamp(93px,10vw,115px)}
  .about-page .staff-row:nth-child(odd){grid-template-columns:minmax(0,1fr) clamp(245px,25vw,285px)}
  .about-page .staff-row:nth-child(even){grid-template-columns:clamp(245px,25vw,285px) minmax(0,1fr)}
  .about-page .staff-row .staff-photo{position:relative;top:auto;left:auto;width:100%;height:clamp(305px,30vw,345px);max-width:100%;margin:0;z-index:2;align-self:start}
  .about-page .staff-row .staff-photo img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain}
  .about-page .staff-row .staff-copy{position:relative;left:auto;top:auto;width:100%;height:auto;min-height:270px;
    box-sizing:border-box;padding:32px 30px 50px;z-index:1;background:#fff;border:4px solid #1E4986;align-self:end}
  .about-page .staff-row .staff-copy .role{white-space:normal;height:auto;line-height:1.5;font-size:13px}
  .about-page .staff-row .staff-copy h3{font-size:23px;margin:16px 0 12px}
  .about-page .staff-row .staff-copy>p:last-child{font-size:14px;line-height:1.7;max-width:100%}
  .about-page .staff-row:nth-child(odd) .staff-photo{order:2;transform:translateX(calc(0px - var(--staff-frame-overlap)))}
  .about-page .staff-row:nth-child(odd) .staff-copy{order:1;padding-right:calc(var(--staff-frame-overlap) + 45px)}
  .about-page .staff-row:nth-child(even) .staff-photo{order:0;transform:translateX(var(--staff-frame-overlap))}
  .about-page .staff-row:nth-child(even) .staff-copy{order:1;padding-left:calc(var(--staff-frame-overlap) + 45px)}
}

/* Company values: retain the 1440px Figma table geometry, but let the
   desktop two-column layout reflow at widths between PC and dedicated SP. */
@media (min-width:821px) and (max-width:1199px){
  .about-page .about-values{height:auto;min-height:0;padding:65px 0 85px}
  .about-page .about-values h2{font-size:clamp(30px,3.2vw,38px)}
  .about-page .about-values .container-wide>p{margin-bottom:56px;line-height:1.75}
  .about-page .about-values .value-lines{position:relative;top:auto;left:auto;width:min(100%,920px);max-width:100%;margin:0}
  .about-page .about-values .value-row{box-sizing:border-box;grid-template-columns:minmax(110px,160px) minmax(0,1fr);gap:16px;align-items:center;padding:16px 0}
  .about-page .about-values .value-row:nth-child(1),
  .about-page .about-values .value-row:nth-child(2){height:auto;min-height:120px}
  .about-page .about-values .value-row:nth-child(3){height:auto;min-height:144px}
  .about-page .about-values .value-row p{max-width:100%;overflow-wrap:break-word}
}

/* Explicit reference typography for the independent equation in about.svg */
.about-values .value-equation{display:block;font-size:24px;font-weight:700;line-height:1.5;margin-top:4px}


/* Desktop service dropdown: anchored to the trigger for mouse and keyboard access */
.desktop-nav-service{position:relative;display:flex;align-items:center;align-self:stretch}
.desktop-service-trigger{display:flex;align-items:center;height:100%;gap:5px}
.desktop-service-trigger::after{content:"";width:6px;height:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.desktop-service-submenu{position:absolute;top:100%;left:-20px;min-width:250px;padding:12px 0;background:#fff;border:2px solid var(--ink);border-radius:10px;box-shadow:4px 7px 0 rgba(1,16,27,.20);opacity:0;visibility:hidden;transform:translateY(7px);transition:opacity .15s,transform .15s,visibility .15s;z-index:100;pointer-events:none}
.desktop-service-submenu::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
.desktop-service-submenu a{display:block;padding:11px 18px;font-size:14px;white-space:nowrap}
.desktop-service-submenu a:hover,.desktop-service-submenu a:focus-visible{background:rgba(30,73,134,.10);color:var(--blue)}
.desktop-nav-service:hover .desktop-service-submenu,.desktop-nav-service:focus-within .desktop-service-submenu{opacity:1;visibility:visible;transform:none;pointer-events:auto}
/* Desktop service dropdown remains available only while desktop nav is shown. */
/* Single responsive coordinate system for the can artwork and its circular image.
   NOTE: source PNG is physically truncated at its right edge. */







/* v37: sourced about.svg copy and orange CTA; one canonical override per component. */
.about-values .value-row p{overflow-wrap:normal;letter-spacing:.03em}
.about-values .value-row:nth-child(2) p,.about-values .value-row:nth-child(3) p{font-size:16px;line-height:24px}
.about-cta-box{width:959px;max-width:100%;height:443px;margin:0 auto;border:none;background:#B6772A;padding:32px;text-align:center}
.about-cta-border{height:100%;width:100%;border:8px solid #01101B;padding:48px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:24px}
.about-cta-box h2{font-size:40px;line-height:1.5;margin:0}
.about-cta-box p{font-size:16px;line-height:1.5;margin:0}
.about-cta-box .btn-ink{width:360px;height:63px;min-height:63px;background:#01101B;color:#fff;flex:0 0 auto;padding:0 8px;white-space:nowrap;box-shadow:none}
/* The original Figma buttons have an inset white outline and drop shadow; preserve color-specific variants. */
.btn{border:4px solid #fff;box-shadow:0 4px 4px rgba(0,0,0,.25);border-radius:0}


.btn:not(.grain){position:relative;isolation:isolate;overflow:hidden}
.btn:not(.grain)::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.12;background-image:url("assets/common/grain-tile.png");background-repeat:repeat;background-size:256px 256px;mix-blend-mode:multiply}
@media(max-width:900px){
 .message-copy{width:100%;max-width:100%}
 .about-values .value-row p{overflow-wrap:anywhere}
 .about-cta-box{height:auto;min-height:420px;padding:15px}
 .about-cta-border{height:auto;padding:38px 16px 26px;border-width:5px}
 .about-cta-box h2{font-size:27px;line-height:1.45}
 .about-cta-box .btn-ink{max-width:100%;width:100%;min-height:54px;height:auto;padding:12px 8px;font-size:14px}
}



.home11-strength{height:1246px;background:#102744;border-top:10px solid #C8C8C8;border-bottom:10px solid #C8C8C8;}

.home11-can-visual{--can-width:1175px;position:absolute;width:var(--can-width);height:auto;aspect-ratio:1300/1400;right:-470px;top:-2px;overflow:visible}
.home11-can-visual::before{content:none}
.home11-can-visual .home11-can-photo{position:absolute;left:18.9%;top:17.55%;width:69.7%;height:64.7%;aspect-ratio:1;overflow:hidden;border-radius:50%;clip-path:circle(50% at 50% 50%);z-index:1}
.home11-can-visual .home11-can-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.home11-can-visual .home11-can-ring{position:absolute;left:0;top:0;width:100%;height:100%;max-width:none;object-fit:contain;z-index:2;mask-image:none;-webkit-mask-image:none}
/* 1440px Figma home.svg: orange heading (120,3448) 632x108, benefit circles
   centered at x200 and y3700/3924/4148/4372; text starts x304. */
@media (min-width:1440px){
  .home11-strength-inner{padding-top:101px}
  .home11-strength-inner>h2{width:632px}
  .home11-strength-list{top:273px;width:580px;gap:56px}
  .home11-strength-list article{grid-template-columns:160px minmax(0,1fr);gap:24px;align-items:start}
  .home11-strength-list article img{width:168px;height:168px;max-width:none;margin-left:-4px}
  .home11-strength-list article>div{padding-top:22px}
  .home11-strength-list h3,.home11-strength-list p{line-height:1.5}
}

@media (min-width:1200px) and (max-width:1439px){
  .home11-strength{height:1000px}
  .home11-can-visual{--can-width:clamp(950px,81.6vw,1175px);right:calc(680px - 80vw);top:0}
}
/* Intermediate screens need readable text and a vertically arranged can,
   before the dedicated phone layout starts at 820px. */
@media (min-width:821px) and (max-width:1199px){
  .home11-strength{height:auto;min-height:0;overflow:hidden}
  .home11-strength-inner{width:min(100% - 64px,1080px);height:auto;padding:76px 0 80px;display:flex;flex-direction:column;align-items:stretch}
  .home11-strength-inner>h2{align-self:flex-start;max-width:100%;font-size:clamp(26px,3.1vw,36px);line-height:1.4;padding:18px 26px;white-space:nowrap}
  .home11-strength-list{position:relative;left:auto;top:auto;width:100%;margin-top:55px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 34px}
  .home11-strength-list article{grid-template-columns:80px minmax(0,1fr);gap:18px;align-items:start;min-width:0}
  .home11-strength-list article img{width:78px;height:auto}
  .home11-strength-list h3{font-size:clamp(18px,2vw,23px);line-height:1.45}
  .home11-strength-list p{font-size:14px;line-height:1.65}
  .home11-can-visual{--can-width:min(540px,72vw);position:relative;left:auto;right:auto;top:auto;bottom:auto;align-self:center;margin:36px auto -25px;flex:0 0 auto}
  .home11-strength-tuna{left:-75px;top:185px;width:620px;max-width:none}
}
/* The dedicated phone layout is only for widths at or below 820px. */
@media(max-width:820px){
  .home11-strength{height:835px;overflow:hidden}
  .home11-strength-inner{width:100%;padding:30px 16px 0}
  .home11-strength-inner>h2{font-size:22px;line-height:1.35;padding:13px 16px;margin:0;max-width:100%;}
  .home11-strength-list{left:16px;top:150px;width:calc(100% - 32px);gap:12px}
  .home11-strength-list article{grid-template-columns:60px minmax(0,1fr);gap:12px;align-items:start}
  .home11-strength-list article img{width:55px;max-height:62px;object-fit:contain}
  .home11-strength-list h3{font-size:14px;line-height:1.42;margin:0 0 5px}
  .home11-strength-list p{font-size:10px;line-height:1.5;margin:0}
  .home11-can-visual{--can-width:300px;top:510px;right:calc(50% - 150px)}
  .home11-strength-tuna{width:260px;left:-36px;top:190px;opacity:.10}
}


@media (max-width:600px){
  .home11-strength{height:auto;min-height:0}
  .home11-strength-inner{height:auto;display:flex;flex-direction:column;align-items:stretch;padding:36px 16px 60px}
  .home11-strength-list{position:relative;left:auto;top:auto;width:100%;margin-top:32px;display:grid;gap:24px}
  .home11-strength-list article{grid-template-columns:68px minmax(0,1fr);gap:12px;align-items:start;min-width:0}
  .home11-strength-list article img{width:64px;height:auto;max-height:none}
  .home11-strength-list h3{font-size:17px;line-height:1.5;margin-bottom:7px}
  .home11-strength-list p{font-size:13px;line-height:1.7}
  .home11-can-visual{position:relative;left:auto;right:auto;top:auto;bottom:auto;align-self:center;--can-width:min(340px,84vw);flex:0 0 auto;margin:32px auto 0}
}


@media (min-width:601px) and (max-width:820px){
  .home11-strength{height:auto;min-height:0}
  .home11-strength-inner{height:auto;width:calc(100% - 48px);padding:52px 0 62px;display:flex;flex-direction:column;align-items:stretch}
  .home11-strength-inner>h2{align-self:flex-start;font-size:26px;line-height:1.4;padding:14px 24px;white-space:normal}
  .home11-strength-list{position:relative;left:auto;top:auto;width:100%;margin-top:34px;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 20px}
  .home11-strength-list article{grid-template-columns:66px minmax(0,1fr);gap:12px;align-items:start;min-width:0}
  .home11-strength-list article img{width:63px;height:auto;max-height:none}
  .home11-strength-list h3{font-size:clamp(16px,2vw,18px);line-height:1.45;margin:0 0 10px}
  .home11-strength-list p{font-size:12px;line-height:1.65}
  .home11-can-visual{position:relative;left:auto;right:auto;top:auto;bottom:auto;--can-width:min(380px,65vw);flex:0 0 auto;align-self:center;margin:36px auto 0}
  .home11-strength-tuna{width:420px;left:-80px;top:240px}
}
@media (min-width:601px) and (max-width:700px){
  .home11-strength-list{grid-template-columns:minmax(0,1fr);gap:26px}
  .home11-strength-list article{grid-template-columns:72px minmax(0,1fr)}
  .home11-strength-list article img{width:68px}
  .home11-strength-list h3{font-size:18px}
  .home11-strength-list p{font-size:13px}
  .home11-can-visual{--can-width:min(340px,64vw);margin-top:28px}
}

/* v43: service showcase layout sourced from Wireframe - 5(1).svg; single authoritative override */
@media(max-width:900px){.service-showcase{gap:40px}.service-showcase article,.service-showcase article:nth-child(even),.service-showcase article:nth-child(3){display:grid;grid-template-columns:1fr;min-height:0;gap:20px}.service-showcase article:nth-child(even) .service-shot,.service-showcase article:nth-child(3) .service-shot{order:0}.service-showcase article:nth-child(even) .service-copy,.service-showcase article:nth-child(3) .service-copy{order:0}.service-shot,.service-showcase article:nth-child(3) .service-shot{width:100%;height:auto;aspect-ratio:3/2}.service-copy .button-row .btn{min-width:0;max-width:100%;height:auto;min-height:63px}.service-showcase article:nth-child(3){padding:24px}.service-showcase article:nth-child(3) .button-row .btn:last-child{display:inline-flex}}


/* YouTube pricing and works — Wireframe - 7.svg canonical section styles (v51). */
.youtube-page .youtube-pricing{min-height:1120px;padding:112px 0 96px;box-sizing:border-box}
.youtube-page .youtube-pricing-container,.youtube-page .youtube-works-container{width:min(1200px,calc(100% - 48px));margin:0 auto}
.youtube-page .youtube-pricing h2,.youtube-page .youtube-works h2{font-size:40px;line-height:1.5;letter-spacing:.03em;font-weight:700;margin:0 0 8px}
.youtube-page .youtube-pricing-lead,.youtube-page .youtube-works-lead{font-size:16px;line-height:1.5;letter-spacing:.03em;margin:0 0 40px}
.youtube-page .youtube-price-card{width:100%;max-width:580px;height:auto;min-height:0;box-sizing:border-box;display:flex;flex-direction:column;padding:30px 32px 32px;background:#1E4986;border:8px solid #fff;color:#fff}
.youtube-page .youtube-price-card h3{font-size:24px;line-height:1.5;font-weight:700;margin:0 0 8px;color:#fff}
.youtube-page .youtube-price-desc{font-size:16px;line-height:1.5;margin:0 0 24px;font-weight:500}
.youtube-page .youtube-price-card-inner{width:100%;height:auto;min-height:0;margin:0;background:#fff;color:#01101B;padding:24px 16px;box-sizing:border-box}
.youtube-page .youtube-price-card-inner h4{margin:0 0 10px;padding:7px 16px;background:rgba(30,73,134,.2);font-size:20px;line-height:32px}
.youtube-page .youtube-price-features{padding:0 16px;margin:0;list-style:none;display:grid;gap:7px;font-size:16px;line-height:1.5}
.youtube-page .youtube-price-features li{position:relative;padding-left:24px}
.youtube-page .youtube-price-features li::before{content:"・";position:absolute;left:0;top:0;color:#B62A2A;font-weight:700}
.youtube-page .youtube-price-card-inner .youtube-price-fee-heading{margin:26px 0 8px}
.youtube-page .youtube-price-fees{margin:0;padding:0 16px;font-size:16px;line-height:24px}
.youtube-page .youtube-price-fees>div{display:flex;justify-content:space-between;gap:10px;margin:0 0 8px}
.youtube-page .youtube-price-fees dt{font-weight:700}
.youtube-page .youtube-price-fees dd{margin:0;white-space:nowrap}
.youtube-page .youtube-price-notes{margin-top:40px;width:100%;min-height:126px;box-sizing:border-box;background:rgba(255,255,255,.8);padding:24px;font-size:14px;line-height:1.5;font-weight:700}
.youtube-page .youtube-price-notes p{margin:0 0 10px}.youtube-page .youtube-price-notes p:last-child{margin-bottom:0}
.youtube-page .youtube-works{padding:115px 0 90px;min-height:825px;box-sizing:border-box}
.youtube-page .youtube-works-lead{margin-bottom:42px}
.youtube-page .youtube-works-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:37.5px}
.youtube-page .youtube-work-card{min-width:0;text-decoration:none;color:#01101B;display:block}
.youtube-page .youtube-work-media{width:100%;aspect-ratio:375/250;background:#D9D9D9;position:relative;transform:skewX(.5225deg);transform-origin:top left;box-shadow:0 4px 5px rgba(0,0,0,.23)}
.youtube-page .youtube-work-media:after{content:"";position:absolute;inset:4px;border:8px solid white;pointer-events:none}
.youtube-page .youtube-work-card h3{font-size:24px;line-height:1.5;font-weight:700;letter-spacing:.03em;color:#1E4986;margin:18px 0 8px}
.youtube-page .youtube-work-tags{display:flex;align-items:center;gap:8.5px;min-width:0;flex-wrap:wrap}
.youtube-page .youtube-work-tags span{font-size:14px;line-height:1;font-weight:700;letter-spacing:.02em;display:inline-flex;align-items:center;justify-content:center;width:72px;height:33px;flex:0 0 72px;border:1px solid #B6772A;background:white;color:#B6772A;white-space:nowrap}
.youtube-page .youtube-work-tags .youtube-work-industry{width:59px;flex-basis:59px;background:#B6772A;color:#fff;border-color:#B6772A}
.youtube-page .youtube-works-more{width:180px;height:63px;min-height:63px;margin-top:41px;white-space:nowrap;padding:0 12px}
.youtube-page .youtube-work-card:hover h3,.youtube-page .youtube-work-card:focus-visible h3{text-decoration:underline}
@media(max-width:900px){
 .youtube-page .youtube-pricing,.youtube-page .youtube-works{min-height:0;padding:80px 0}
 .youtube-page .youtube-pricing-container,.youtube-page .youtube-works-container{width:calc(100% - 32px)}
 .youtube-page .youtube-pricing h2,.youtube-page .youtube-works h2{font-size:clamp(22px,6vw,28px);line-height:1.5}
 .youtube-page .youtube-pricing-lead,.youtube-page .youtube-works-lead{font-size:14px;line-height:1.7;margin-bottom:28px}
 .youtube-page .youtube-price-card{width:100%;min-height:0;padding:22px 14px}
 .youtube-page .youtube-price-card h3{font-size:20px}.youtube-page .youtube-price-desc{font-size:13px;line-height:1.65}
 .youtube-page .only-pc{display:none}
 .youtube-page .youtube-price-card-inner{width:100%;height:auto;min-height:0;padding:16px 10px}
 .youtube-page .youtube-price-card-inner h4{font-size:18px;line-height:1.5}
 .youtube-page .youtube-price-features{font-size:13px;padding:0 6px;gap:8px}
 .youtube-page .youtube-price-fees{font-size:13px;padding:0 6px}
 .youtube-page .youtube-price-notes{font-size:13px;line-height:1.65;padding:18px;margin-top:22px}
 .youtube-page .youtube-works-grid{grid-template-columns:minmax(0,1fr);gap:40px}
 .youtube-page .youtube-work-card h3{font-size:20px}
 .youtube-page .youtube-work-tags{gap:5px}
 .youtube-page .youtube-work-tags span{width:68px;flex-basis:68px;font-size:12px}
 .youtube-page .youtube-work-tags .youtube-work-industry{width:56px;flex-basis:56px}
 .youtube-page .youtube-works-more{margin-top:40px}
}


/* Movie production — independent design structure from Wireframe - 8 */
.movie-page .movie-features{min-height:0;padding:105px 0 86px}
.movie-page .movie-features-container,.movie-page .movie-uses-container{width:min(1200px,calc(100% - 48px));margin:0 auto}
.movie-page .movie-features h2,.movie-page .movie-uses h2{font-size:40px;line-height:1.5;letter-spacing:.03em;font-weight:700;margin:0}
.movie-page .movie-features-grid{display:grid;grid-template-columns:repeat(2,minmax(0,580px));grid-template-rows:repeat(3,120px);column-gap:40px;row-gap:40px;margin-top:94px}
.movie-page .movie-feature{display:grid;grid-template-columns:120px minmax(0,1fr);gap:24px;align-items:start;min-width:0;min-height:120px}
.movie-page .movie-feature>img{width:120px;height:120px;object-fit:contain;display:block;max-width:none}
.movie-page .movie-feature-copy{min-width:0}
.movie-page .movie-feature h3{font-size:24px;line-height:36px;letter-spacing:.03em;font-weight:700;margin:0 0 44px;position:relative}
.movie-page .movie-feature h3::after{content:"";position:absolute;left:0;bottom:-19px;width:40px;height:4px;background:#B6772A}
.movie-page .movie-feature p{font-size:16px;line-height:24px;letter-spacing:.03em;font-weight:500;margin:0}
.movie-page .movie-education{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:40px;align-items:start;margin-top:98px;min-height:200px}
.movie-page .movie-education h3{font-size:24px;line-height:36px;font-weight:700;letter-spacing:.03em;margin:0 0 40px;position:relative}
.movie-page .movie-education h3::after{content:"";position:absolute;bottom:-18px;left:0;width:40px;height:4px;background:#B62A2A}
.movie-page .movie-education p{font-size:16px;line-height:24px;letter-spacing:.03em;margin:0 0 12px}
.movie-page .movie-education-media{width:300px;height:200px;max-width:100%;background:#D9D9D9}
.movie-page .movie-uses{min-height:0;padding:95px 0 125px}
.movie-page .movie-uses h2{margin-bottom:46px}

@media (min-width:768px) and (max-width:974px){
 .movie-page .movie-uses h2{font-size:clamp(30px,3.6vw,35px)}
}

.movie-page .movie-uses-grid{display:grid;grid-template-columns:repeat(3,minmax(0,375px));column-gap:37.5px;row-gap:32px;align-items:start}
.movie-page .movie-use{min-width:0}
.movie-page .movie-use-image{width:100%;aspect-ratio:375/250;background:#D9D9D9;border:8px solid #fff;box-sizing:border-box;transform:skewX(.5225deg);transform-origin:top left;box-shadow:0 4px 4px rgba(0,0,0,.25)}
.movie-page .movie-use h3{display:flex;align-items:center;justify-content:center;min-height:34px;padding:0 8px;margin:24px 0 24px;background:#1E4986;color:#fff;font-size:24px;line-height:34px;letter-spacing:0;font-weight:700;text-align:center}
.movie-page .movie-use p{font-size:16px;line-height:24px;letter-spacing:.03em;font-weight:500;margin:0}


@media (min-width:768px) and (max-width:1199px){
 .movie-page .movie-uses-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:32px;
  row-gap:40px;
 }
}
@media (min-width:901px) and (max-width:1199px){
 .movie-page .movie-use h3{font-size:clamp(19px,2vw,24px);line-height:1.45}
}
/* 1200–1279px: three fluid tracks bridge to the original 375px desktop cards. */
@media (min-width:1200px) and (max-width:1279px){
 .movie-page .movie-uses-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}


@media (min-width:768px) and (max-width:1279px){
 .movie-page .movie-features-grid{
  grid-template-rows:none;
  grid-auto-rows:minmax(120px,auto);
  row-gap:44px;
 }
}
@media (min-width:901px) and (max-width:1279px){
 .movie-page .movie-features-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:clamp(24px,3.1vw,40px);
 }
 .movie-page .movie-feature{
  grid-template-columns:clamp(90px,10vw,120px) minmax(0,1fr);
  column-gap:clamp(14px,1.85vw,24px);
 }
 .movie-page .movie-feature>img{
  width:clamp(90px,10vw,120px);
  height:clamp(90px,10vw,120px);
  max-width:100%;
 }
 .movie-page .movie-feature h3{
  font-size:clamp(18px,2vw,24px);
  line-height:1.45;
  margin-bottom:36px;
  overflow-wrap:anywhere;
 }
 .movie-page .movie-feature p{font-size:clamp(14px,1.4vw,16px);line-height:1.6}
}
@media(max-width:767px){
 .movie-page .movie-features{padding:75px 0 85px}
 .movie-page .movie-features-container,.movie-page .movie-uses-container{width:calc(100% - 32px)}
 .movie-page .movie-features h2,.movie-page .movie-uses h2{font-size:clamp(22px,6vw,28px);line-height:1.5}
 .movie-page .movie-features-grid{grid-template-columns:minmax(0,1fr);grid-template-rows:none;gap:30px;margin-top:36px}
 .movie-page .movie-feature{grid-template-columns:90px minmax(0,1fr);gap:16px;min-height:0}
 .movie-page .movie-feature>img{width:90px;height:90px;max-width:100%}
 
 .movie-page .movie-feature h3{font-size:18px;line-height:1.45;margin-bottom:32px}
 .movie-page .movie-feature h3::after{bottom:-15px}
 .movie-page .movie-feature p{font-size:13px;line-height:1.65}
 .movie-page .movie-education{grid-template-columns:minmax(0,1fr);gap:18px;margin-top:56px;min-height:0}
 .movie-page .movie-education h3{font-size:21px;line-height:1.45;margin-bottom:30px}
 .movie-page .movie-education p{font-size:14px;line-height:1.7}
 .movie-page .movie-education-media{width:100%;height:auto;aspect-ratio:3/2}
 .movie-page .movie-uses{padding:75px 0 95px}
 .movie-page .movie-uses h2{margin-bottom:28px}
 .movie-page .movie-uses-grid{grid-template-columns:minmax(0,1fr);gap:34px}
 .movie-page .movie-use h3{font-size:clamp(17px,5.2vw,20px);line-height:1.4;margin:18px 0 12px}
 .movie-page .movie-use p{font-size:14px;line-height:1.7}
}

/* Movie page: Figma Wireframe-8 benefits and pricing, scoped without changing other templates. */
.movie-page .movie-benefits{height:770px;min-height:0;padding:0;border-top:8px solid #B6772A;border-bottom:8px solid #B6772A;box-sizing:border-box;position:relative;background:rgba(255,255,255,.95);overflow:hidden}
.movie-page .movie-benefits-container{z-index:1}
.movie-page .movie-benefits-container{width:1200px;height:100%;max-width:calc(100% - 48px);margin:0 auto;position:relative}
.movie-page .movie-benefits-intro{position:absolute;left:0;top:105px;width:560px;max-width:100%}
.movie-page .movie-benefits-intro h2{font-size:40px;line-height:1.5;letter-spacing:.03em;margin:0 0 8px}
.movie-page .movie-benefits-intro p{font-size:16px;line-height:24px;letter-spacing:.03em;margin:0}
.movie-page .movie-benefit{position:absolute;width:580px;display:flex;align-items:flex-start;gap:24px}
.movie-page .movie-benefit>img{width:88px;height:88px;object-fit:contain;flex:0 0 88px}
.movie-page .movie-benefit>div{min-width:0;padding-top:0}
.movie-page .movie-benefit h3{font-size:24px;line-height:36px;letter-spacing:.03em;color:#01101B;margin:0 0 7px}
.movie-page .movie-benefit p{font-size:16px;line-height:24px;letter-spacing:.03em;color:#01101B;margin:0}
.movie-page .movie-benefit-03{left:620px;top:114px}
.movie-page .movie-benefit-01{left:0;top:316px}
.movie-page .movie-benefit-04{left:620px;top:316px}
.movie-page .movie-benefit-02{left:0;top:494px}
.movie-page .movie-benefit-05{left:620px;top:494px}
.movie-page .movie-benefit-03 img{margin-top:42px}
.movie-page .movie-benefit-01 img,.movie-page .movie-benefit-04 img{margin-top:23px}
.movie-page .movie-benefit-02 img,.movie-page .movie-benefit-05 img{margin-top:14px}
.movie-page .movie-pricing{min-height:0;padding:104px 0 118px}
.movie-page .movie-pricing-container{width:min(1200px,calc(100% - 48px));margin:0 auto}
.movie-page .movie-pricing-container>h2{font-size:40px;line-height:1.5;margin:0 0 10px;letter-spacing:.03em}
.movie-page .movie-pricing-lead{font-size:16px;line-height:24px;margin:0 0 36px;letter-spacing:.03em}
.movie-page .movie-pricing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;align-items:stretch}
.movie-page .movie-price-card{box-sizing:border-box;min-width:0;height:auto;min-height:0;display:flex;flex-direction:column;padding:32px;background:#1E4986;border:8px solid white;color:white}
.movie-page .movie-price-education,.movie-page .movie-price-exhibition,.movie-page .movie-price-town{height:auto}.movie-page .movie-price-town{grid-column:1}
.movie-page .movie-price-card>h3{color:#fff;font-size:24px;line-height:36px;letter-spacing:.03em;font-weight:700;margin:0 0 8px}
.movie-page .movie-price-intro{color:#fff;font-size:16px;line-height:24px;letter-spacing:.03em;min-height:0;margin:0 0 16px}
.movie-page .movie-price-inner{background:#fff;color:#01101B;padding:24px 16px 16px;min-height:0}
.movie-page .movie-price-card h4{font-size:20px;line-height:30px;margin:0 0 10px;font-weight:700;background:rgba(30,73,134,.2);padding:8px 16px}
.movie-page .movie-price-inner ul{list-style:none;padding:0 16px;margin:0 0 16px;font-size:16px;line-height:28px}
.movie-page .movie-price-inner li{position:relative;padding-left:24px;margin-bottom:4px}
.movie-page .movie-price-inner li::before{content:"・";position:absolute;left:0;top:0;color:#B62A2A;font-weight:700}
.movie-page .movie-price-inner dl{margin:0 8px;font-size:16px;line-height:28px}
.movie-page .movie-price-inner dl>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}
.movie-page .movie-price-inner dt,.movie-page .movie-price-inner dd{margin:0}
.movie-page .movie-price-inner dd{white-space:nowrap}
.movie-page .movie-price-inner small{display:block;font-size:13px;line-height:18px}
.movie-page .movie-price-education .movie-price-inner{height:auto}
.movie-page .movie-price-exhibition .movie-price-inner{height:auto}
.movie-page .movie-price-town .movie-price-inner{height:auto}
.movie-page .movie-pricing-note{background:rgba(255,255,255,.8);padding:16px 24px;margin-top:40px;font-size:14px;line-height:21px}
.movie-page .movie-pricing-note p{margin:0 0 10px}.movie-page .movie-pricing-note p:last-child{margin-bottom:0}
@media(max-width:767px){
 .movie-page .movie-benefits{height:auto;min-height:0;padding:64px 0 74px;border-width:6px;overflow:visible}
 .movie-page .movie-benefits-container{width:calc(100% - 32px);max-width:none;height:auto}
 .movie-page .movie-benefits-intro{position:static;width:100%;margin:0 0 32px}
 .movie-page .movie-benefits-intro h2{font-size:clamp(22px,6vw,28px);line-height:1.5}
 .movie-page .movie-benefits-intro p{font-size:13px;line-height:1.7}
 .movie-page .movie-benefit{position:static;width:100%;display:grid;grid-template-columns:64px minmax(0,1fr);gap:14px;margin:0 0 30px}
 .movie-page .movie-benefit:last-child{margin-bottom:0}
 .movie-page .movie-benefit>img,.movie-page .movie-benefit-03 img,.movie-page .movie-benefit-01 img,.movie-page .movie-benefit-04 img,.movie-page .movie-benefit-02 img,.movie-page .movie-benefit-05 img{width:64px;height:64px;margin:0}
 .movie-page .movie-benefit h3{font-size:17px;line-height:1.45;margin:0 0 8px}
 .movie-page .movie-benefit p{font-size:13px;line-height:1.7}
 .movie-page .movie-pricing{padding:76px 0 90px}
 .movie-page .movie-pricing-container{width:calc(100% - 32px)}
 .movie-page .movie-pricing-container>h2{font-size:clamp(23px,6vw,28px)}
 .movie-page .movie-pricing-lead{font-size:13px;line-height:1.65;margin-bottom:25px}
 .movie-page .movie-pricing-grid{grid-template-columns:minmax(0,1fr);gap:24px}
 .movie-page .movie-price-card,.movie-page .movie-price-education,.movie-page .movie-price-exhibition,.movie-page .movie-price-town{grid-column:auto;height:auto;min-height:0;padding:20px 13px 18px}
 .movie-page .movie-price-card>h3{font-size:19px;line-height:1.45}
 .movie-page .movie-price-intro{font-size:13px;line-height:1.65;min-height:0}
 .movie-page .movie-price-inner,.movie-page .movie-price-education .movie-price-inner,.movie-page .movie-price-exhibition .movie-price-inner,.movie-page .movie-price-town .movie-price-inner{height:auto;padding:15px 10px}
 .movie-page .movie-price-card h4{font-size:17px;line-height:1.5;padding:6px 9px}
 .movie-page .movie-price-inner ul{font-size:13px;line-height:1.65;padding:0 4px}
 .movie-page .movie-price-inner li{padding-left:16px}
 .movie-page .movie-price-inner dl{font-size:13px;line-height:1.6;margin:0}
 .movie-page .movie-price-inner dl>div{grid-template-columns:minmax(0,1fr) auto}
 .movie-page .movie-pricing-note{padding:12px 14px;font-size:12px;line-height:1.7}
}

.movie-page .movie-benefits,.movie-page .movie-pricing{font-family:"Noto Sans JP","Noto Sans CJK JP",sans-serif}

/* Movie page: crosslinks and portfolio, measured against Wireframe - 8.svg. */
.movie-page .movie-crosslink{min-height:0;padding:0;background:transparent;color:#01101B}
.movie-page .movie-crosslink-frame{position:relative;width:min(1200px,calc(100% - 48px));min-height:371px;margin:0 auto;border:4px dashed #B6772A;box-sizing:border-box;text-align:center;padding:91px 18px 40px;background:transparent}
.movie-page .movie-crosslink .movie-crosslink-label{position:absolute;top:40px;left:50%;transform:translateX(-50%);width:296px;max-width:calc(100% - 24px);height:40px;box-sizing:border-box;display:flex;align-items:center;justify-content:flex-start;padding:0 16px;margin:0;background:#fff;color:#01101B;font-size:16px;font-weight:500;line-height:24px;letter-spacing:.03em;white-space:nowrap}
.movie-page .movie-crosslink h2{font-size:40px;line-height:1.5;letter-spacing:.03em;margin:0 0 11px;font-weight:700;color:#01101B}
.movie-page .movie-crosslink p{font-size:16px;line-height:24px;letter-spacing:.03em;margin:0 0 48px;color:#01101B}
.movie-page .movie-crosslink-actions{display:flex;align-items:center;justify-content:center;gap:83px}
.movie-page .movie-crosslink-actions .btn{box-sizing:border-box;height:63px;min-height:63px;font-size:20px;line-height:1.3;padding:0 12px;white-space:nowrap}
.movie-page .movie-crosslink-actions .btn:first-child{width:358px;flex:0 0 358px}
.movie-page .movie-crosslink-actions .btn:last-child{width:263px;flex:0 0 263px}
.movie-page .movie-works{min-height:0;padding:248px 0 99px}
.movie-page .movie-works .container{width:min(1200px,calc(100% - 48px));margin:0 auto}
.movie-page .movie-works h2{font-size:40px;line-height:60px;letter-spacing:.03em;font-weight:700;margin:0 0 36px}
.movie-page .movie-works-lead{font-size:16px;line-height:24px;letter-spacing:.03em;margin:0 0 38px}
.movie-page .movie-works .works-teaser-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:37.5px;align-items:start}
.movie-page .movie-works .work-teaser{display:block;min-width:0;text-decoration:none;color:#01101B}
.movie-page .movie-works .work-teaser-media{width:100%;aspect-ratio:375/250;position:relative;background:#D9D9D9;transform:skewX(.5225deg);transform-origin:top left;box-shadow:0 4px 5px rgba(0,0,0,.23)}
.movie-page .movie-works .work-teaser-media::after{content:"";position:absolute;inset:4px;border:8px solid #fff;pointer-events:none}
.movie-page .movie-works .work-teaser h3{font-size:24px;line-height:36px;font-weight:700;letter-spacing:.03em;color:#1E4986;margin:10px 0 8px}
.movie-page .movie-works .work-teaser-tags{display:flex;flex-wrap:wrap;gap:8.5px;align-items:center}
.movie-page .movie-works .work-teaser-tag{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;line-height:1;white-space:nowrap;font-size:14px;font-weight:700;height:33px;letter-spacing:.02em}
.movie-page .movie-works .work-teaser-tag--industry{background:#B6772A;color:#fff;width:59px;flex:0 0 59px}
.movie-page .movie-works .work-teaser-tag--category{background:#fff;border:1px solid #B6772A;color:#B6772A;width:72px;flex:0 0 72px;height:32px}
.movie-page .movie-works-more{margin-top:41px;width:180px;height:63px;min-height:63px;box-sizing:border-box;white-space:nowrap;border:4px solid #fff;box-shadow:0 4px 4px rgba(0,0,0,.25);padding:0 10px}
@media(max-width:900px){
 .movie-page .movie-crosslink-frame{width:calc(100% - 32px);min-height:0;padding:91px 16px 36px}
 .movie-page .movie-crosslink .movie-crosslink-label{top:24px;width:max-content;max-width:calc(100% - 18px);padding:0 12px;font-size:clamp(12px,3.5vw,14px);line-height:20px;justify-content:center;text-align:center}
 .movie-page .movie-crosslink h2{font-size:clamp(22px,5.8vw,28px);line-height:1.5;letter-spacing:0;margin-bottom:16px}
 .movie-page .movie-crosslink p{font-size:13px;line-height:1.7;margin-bottom:23px}
 .movie-page .movie-crosslink p br{display:none}
 .movie-page .movie-crosslink-actions{flex-direction:column;gap:14px}
 .movie-page .movie-crosslink-actions .btn,.movie-page .movie-crosslink-actions .btn:first-child,.movie-page .movie-crosslink-actions .btn:last-child{width:100%;max-width:358px;flex:none;font-size:clamp(13px,3.6vw,17px);height:55px;min-height:55px}
 .movie-page .movie-works{padding:80px 0 90px}
 .movie-page .movie-works .container{width:calc(100% - 32px)}
 .movie-page .movie-works h2{font-size:clamp(24px,6vw,28px);line-height:1.5;margin-bottom:14px}
 .movie-page .movie-works-lead{font-size:13px;line-height:1.7;margin-bottom:28px}
 .movie-page .movie-works .works-teaser-grid{grid-template-columns:minmax(0,1fr);gap:38px}
 .movie-page .movie-works .work-teaser h3{font-size:20px;line-height:1.5;margin:16px 0 10px}
 .movie-page .movie-works .work-teaser-tags{gap:5px}
 .movie-page .movie-works .work-teaser-tag--industry{width:56px;flex-basis:56px}
 .movie-page .movie-works .work-teaser-tag--category{width:68px;flex-basis:68px}
 .movie-page .movie-works-more{margin-top:40px}
}


@media (min-width:901px) and (max-width:1247px){
  .sns-page .works-teaser-grid,
  .youtube-page .youtube-works-grid,
  .movie-page .movie-works .works-teaser-grid{
    grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
    gap:clamp(24px,3vw,37.5px);
  }
}

/* Shared footer: responsive layout; keep Figma PC geometry exact at 1440px. */
@media (min-width:768px) and (max-width:1280px){
  .footer-team{width:clamp(390px,37.22vw,536px);height:auto;right:0;top:-15px}
  .footer-copy h2{font-size:clamp(30px,3.1vw,40px)}
  .footer-address{font-size:clamp(12px,1.2vw,16px)}
  .footer-tagline{font-size:clamp(26px,3vw,40px)}
  .footer-links a{font-size:clamp(11px,1.08vw,16px)}
  .copyright{font-size:14px}
}
/* Footer links wrap into two lines at 768–831px; reserve the second row
   while retaining the 20px bottom margin beneath the copyright. */
@media (min-width:768px) and (max-width:831px){
  .site-footer{height:647px}
  .copyright{top:606px}
}
@media (max-width:767px){
  .site-footer{height:auto;min-height:790px;overflow:hidden}
  .site-footer::before{inset:114px 0 0}
  .footer-inner{width:calc(100% - 32px);min-height:790px;height:auto}
  .footer-team{top:0;right:-7px;width:min(58vw,246px);height:auto;filter:drop-shadow(0 -3px 3px rgba(0,0,0,.35))}
  .footer-copy{min-height:790px;height:auto}
  .footer-copy h2{top:310px;font-size:25px;line-height:1.5;white-space:nowrap}
  .footer-address{top:356px;font-size:11px;line-height:1.65;white-space:normal;max-width:100%}
  .footer-tagline{top:446px;font-size:21px;line-height:1.5;letter-spacing:0}
  .footer-links{top:516px;display:grid;grid-template-columns:1fr 1fr;column-gap:14px;row-gap:9px;justify-content:initial}
  .footer-links a{font-size:11px;line-height:1.4;white-space:normal;letter-spacing:0}
  .copyright{top:auto;bottom:16px;font-size:12px}
}
@media (max-width:350px){
 .footer-copy h2{font-size:23px}
 .footer-tagline{font-size:18px}
 .footer-links a{font-size:10px}
 .home11-contact,.home11-konomachi{height:auto;min-height:0}
 .home11-contact{padding-bottom:36px}
 .home11-konomachi{padding-bottom:48px}
}


/* NEWS — TOP home.svg's news rows are the canonical visual source.
   No separate News Figma comp exists: article structure is a controlled extension. */
.news-page .page-hero .container-wide,.news-detail-page .page-hero .container-wide{padding-top:265px}
.news-page .page-hero h1,.news-detail-page .page-hero .news-hero-label{font-size:64px;line-height:1.5;letter-spacing:0;color:#ededed;font-weight:800;margin:0}
.news-index-section{padding:118px 0 145px;min-height:650px}
.news-index-inner{width:min(1200px,calc(100% - 48px));margin:auto}
.news-index-list a{grid-template-columns:180px minmax(0,1fr);grid-template-rows:auto;gap:26px;padding:22px 0;align-items:start;text-decoration:none;color:inherit}
.news-index-list .news-index-thumb{display:block;width:100%;aspect-ratio:3/2;background:#fff;border:1px solid rgba(1,16,27,.14);box-sizing:border-box}
.news-index-list .news-index-thumb-image{display:block;width:100%;height:100%;aspect-ratio:3/2;object-fit:contain;object-position:center;vertical-align:middle}
.news-index-list .news-index-copy{display:block;min-width:0}
.news-index-list .news-index-meta{display:flex;gap:12px;align-items:center;flex-wrap:wrap;min-height:30px}
.news-index-list a p{display:block;grid-column:auto;grid-row:auto;margin:10px 0 0;line-height:1.65}
.news-index-list a time,.news-index-list a .tag,.news-index-list a .new-badge{grid-column:auto;grid-row:auto}
.news-index-list a .tag{width:max-content;max-width:100%;height:auto;min-height:26px;white-space:nowrap;box-sizing:border-box}
.news-index-list a:hover p,.news-index-list a:focus-visible p{text-decoration:underline;text-underline-offset:5px}
.news-article-section{padding:122px 0 150px;min-height:670px}
.news-article-inner{width:min(1200px,calc(100% - 48px));margin:auto}
.news-article-meta{display:flex;align-items:center;gap:14px;font-size:14px;font-weight:700;min-height:45px}
.news-article-meta .tag{width:max-content;max-width:100%;min-height:26px;height:auto;padding:4px 10px;white-space:nowrap;box-sizing:border-box}
.news-article-title{margin:16px 0 26px;font-size:40px;line-height:1.5;font-weight:700;letter-spacing:.03em}
.news-article-body{border-top:1px solid var(--ink);border-bottom:0;padding:30px 0 50px;line-height:1.8}
.news-article-body p{margin:0 0 24px}.news-article-body p:last-child{margin-bottom:0}
.news-article-nav{margin-top:40px}.news-article-nav .btn{min-width:280px}
@media(max-width:700px){
  .news-page .page-hero .container-wide,.news-detail-page .page-hero .container-wide{padding-top:180px}
  .news-page .page-hero,.news-detail-page .page-hero{height:400px}
  .news-page .page-hero h1,.news-detail-page .page-hero .news-hero-label{font-size:38px}
  .news-index-section,.news-article-section{padding:66px 0 100px;min-height:0}
  .news-index-inner,.news-article-inner{width:calc(100% - 32px)}
  .news-index-list a{grid-template-columns:124px minmax(0,1fr);gap:13px;padding:16px 0 20px}
  .news-index-list .news-index-meta{gap:6px 8px}
  .news-index-list a time{font-size:12px}
  .news-index-list a .tag{font-size:12px;width:max-content;max-width:100%;line-height:18px}
  
  .news-index-list a p{font-size:14px;line-height:1.7;margin-top:8px}
  .news-article-title{font-size:26px;overflow-wrap:anywhere}
  .news-article-body{font-size:14px;padding:24px 0 32px}
  .news-article-nav .btn{width:100%;max-width:100%;min-width:0;font-size:16px}
}
@media(max-width:350px){.news-index-list a{grid-template-columns:100px minmax(0,1fr);gap:10px}.news-index-list a p{font-size:13px}}

/* v65: narrow SP keeps hands below copy rather than covering longer wrapped text. */
@media(max-width:359px){.home11-intro{height:780px}}

/* v71: Header-only responsive bands — do not change the PC Figma geometry at 1440px. */
@media (min-width:901px) and (max-width:1240px){
  .header-shell{width:calc(100% - 48px);padding-left:28px}
  .brand{width:200px;flex-basis:200px}
  .brand img{width:200px}
  .desktop-nav{gap:20px;font-size:13px}
  .header-cta{width:190px}
}
@media (max-width:900px){
  .site-header{top:9px}.header-shell{width:calc(100% - 18px);height:54px;border-width:1.5px;border-radius:23px;padding:0 10px 0 15px}.brand{width:146px;flex:0 0 146px}.brand img{width:146px;height:40px}.desktop-nav{display:none}.mobile-mail{display:grid;place-items:center;margin-left:auto;width:44px;height:36px;background:var(--orange);color:#fff;font-size:0;pointer-events:auto}.mobile-mail::before{content:"✉";font-size:18px}.hamburger{display:flex;flex-direction:column;justify-content:center;gap:4px;width:38px;height:38px;border:0;background:none;padding:8px;pointer-events:auto}.hamburger span{height:2px;background:var(--ink);width:100%}.mobile-menu{display:block;position:relative;width:calc(100% - 18px);margin:7px auto 0;background:#fff;border:1.5px solid var(--ink);border-radius:18px;padding:24px;pointer-events:auto}.mobile-menu[hidden]{display:none}.mobile-menu-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:22px}.mobile-menu a{display:block;padding:6px 0;font-weight:700}.mobile-menu .mobile-child{font-size:12px;padding-left:12px;font-weight:500}.mobile-contact{margin-top:18px;width:100%}
}


@media (min-width:901px) and (max-width:1279px){
  .youtube-page .youtube-benefits{height:auto;min-height:0;overflow:visible;padding:70px 0 80px}
  .youtube-page .youtube-benefits-wrap{height:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"heading b03" "b01 b04" "b02 b05";column-gap:28px;row-gap:28px}
  .youtube-page .youtube-benefits-heading{position:static;width:auto;grid-area:heading;min-width:0}
  .youtube-page .youtube-benefits-heading h2{font-size:clamp(28px,3vw,36px)}
  .youtube-page .youtube-benefit{position:static;left:auto;top:auto;width:auto;min-width:0;grid-template-columns:72px minmax(0,1fr);gap:14px}
  .youtube-page .youtube-benefit>img{width:72px;height:72px}
  .youtube-page .youtube-benefit:not(.youtube-benefit-03) .youtube-benefit-copy{transform:none}
  .youtube-page .youtube-benefit h3{font-size:clamp(17px,1.8vw,21px);line-height:1.45;margin-bottom:7px}
  .youtube-page .youtube-benefit p{font-size:14px;line-height:1.65}
  .youtube-page .youtube-benefit-01{grid-area:b01}.youtube-page .youtube-benefit-02{grid-area:b02}
  .youtube-page .youtube-benefit-03{grid-area:b03}.youtube-page .youtube-benefit-04{grid-area:b04}.youtube-page .youtube-benefit-05{grid-area:b05}
}
@media (min-width:901px) and (max-width:1100px){
  .youtube-page .youtube-benefits-wrap{grid-template-columns:minmax(0,1fr);grid-template-areas:"heading" "b01" "b02" "b03" "b04" "b05";row-gap:22px}
}
@media (min-width:768px) and (max-width:1279px){
  .movie-page .movie-benefits{height:auto;min-height:0;padding:70px 0 80px;overflow:visible}
  .movie-page .movie-benefits-container{height:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"heading b03" "b01 b04" "b02 b05";column-gap:28px;row-gap:30px}
  .movie-page .movie-benefits-intro{position:static;width:auto;max-width:none;grid-area:heading;min-width:0}
  .movie-page .movie-benefits-intro h2{font-size:clamp(28px,3vw,36px)}
  .movie-page .movie-benefits-intro p{font-size:14px;line-height:1.65}
  .movie-page .movie-benefits-items{display:contents}
  .movie-page .movie-benefit{position:static;left:auto;top:auto;width:auto;min-width:0;display:grid;grid-template-columns:72px minmax(0,1fr);gap:14px}
  .movie-page .movie-benefit>img,.movie-page .movie-benefit-03 img,.movie-page .movie-benefit-01 img,.movie-page .movie-benefit-04 img,.movie-page .movie-benefit-02 img,.movie-page .movie-benefit-05 img{width:72px;height:72px;max-width:100%;margin:0}
  .movie-page .movie-benefit h3{font-size:clamp(17px,1.8vw,21px);line-height:1.45;margin-bottom:7px}
  .movie-page .movie-benefit p{font-size:14px;line-height:1.65}
  .movie-page .movie-benefit-01{grid-area:b01}.movie-page .movie-benefit-02{grid-area:b02}
  .movie-page .movie-benefit-03{grid-area:b03}.movie-page .movie-benefit-04{grid-area:b04}.movie-page .movie-benefit-05{grid-area:b05}
  .movie-page .movie-pricing{padding:85px 0 100px}
  .movie-page .movie-pricing-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
  .movie-page .movie-price-card,.movie-page .movie-price-education,.movie-page .movie-price-exhibition,.movie-page .movie-price-town{height:auto;min-height:0;padding:22px 18px 24px}
  .movie-page .movie-price-card>h3{font-size:clamp(19px,2vw,23px);line-height:1.45}
  .movie-page .movie-price-intro{min-height:0;font-size:14px;line-height:1.6}
  .movie-page .movie-price-inner,.movie-page .movie-price-education .movie-price-inner,.movie-page .movie-price-exhibition .movie-price-inner,.movie-page .movie-price-town .movie-price-inner{height:auto;min-height:0;padding:16px 12px}
  .movie-page .movie-price-card h4{font-size:18px;line-height:1.5;padding:7px 10px}
  .movie-page .movie-price-inner ul{font-size:14px;line-height:1.65;padding:0 6px}
  .movie-page .movie-price-inner dl{font-size:14px;line-height:1.65;margin:0}
}
@media (min-width:768px) and (max-width:1100px){
  .movie-page .movie-benefits-container{grid-template-columns:minmax(0,1fr);grid-template-areas:"heading" "b01" "b02" "b03" "b04" "b05";row-gap:24px}
  .movie-page .movie-pricing-grid{grid-template-columns:minmax(0,1fr);gap:24px}
  .movie-page .movie-price-town{grid-column:auto}
}

/* v88: SNS merits and pricing fit 801–1279px; 1440px original and <=800px rules remain unchanged. */
@media (min-width:801px) and (max-width:1279px){
 .sns-page .sns-benefits{height:auto;min-height:0;overflow:visible;padding:66px 0 76px}
 .sns-page .sns-benefits-container{height:auto;width:calc(100% - 48px)}
 .sns-page .sns-benefits-heading{position:static;width:auto;margin:0 0 32px}
 .sns-page .sns-benefits-heading h2{font-size:clamp(30px,3.1vw,38px);white-space:normal}
 .sns-page .sns-benefits-grid{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 24px}
 .sns-page .sns-benefit{position:static;width:auto;min-width:0;grid-template-columns:72px minmax(0,1fr);gap:14px}
 .sns-page .sns-benefit img{width:72px;height:72px}
 .sns-page .sns-benefit h3{font-size:clamp(17px,1.8vw,21px);line-height:1.45;margin:0 0 6px}
 .sns-page .sns-benefit p{font-size:14px;line-height:1.65;overflow-wrap:anywhere}
 .sns-page .sns-benefit-03{grid-column:2;grid-row:1}
 .sns-page .sns-benefit-01{grid-column:1;grid-row:2}
 .sns-page .sns-benefit-04{grid-column:2;grid-row:2}
 .sns-page .sns-benefit-02{grid-column:1;grid-row:3}
 .sns-page .sns-benefit-05{grid-column:2;grid-row:3}
 .sns-page .sns-pricing{min-height:0;padding:90px 0 90px}
 .sns-page .sns-pricing-container{width:calc(100% - 48px)}
 .sns-page .sns-pricing h2{font-size:clamp(30px,3.1vw,38px)}
 .sns-page .sns-pricing-lead{margin-bottom:34px}
 .sns-page .sns-price-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
 .sns-page .sns-price-card{height:auto;min-height:0;padding:24px 20px 24px}
 .sns-page .sns-price-card h3{font-size:22px}
 .sns-page .sns-price-description{font-size:14px;line-height:1.65;margin-bottom:20px}
 .sns-page .sns-price-card-details,.sns-page .sns-price-card-secondary .sns-price-card-details{position:static;height:auto;padding:18px 12px 14px}
 .sns-page .sns-price-card-details ul{font-size:14px;line-height:1.7;padding:0 4px}
 .sns-page .sns-price-value{position:static;margin-top:20px}
 .sns-page .sns-price-value p{padding:0 6px;flex-wrap:wrap}
 .sns-page .sns-price-value strong{font-size:14px;white-space:normal}
}
@media (min-width:801px) and (max-width:1100px){
 .sns-page .sns-benefits-grid{grid-template-columns:minmax(0,1fr);gap:24px}
 .sns-page .sns-benefit-01{grid-column:1;grid-row:1}
 .sns-page .sns-benefit-02{grid-column:1;grid-row:2}
 .sns-page .sns-benefit-03{grid-column:1;grid-row:3}
 .sns-page .sns-benefit-04{grid-column:1;grid-row:4}
 .sns-page .sns-benefit-05{grid-column:1;grid-row:5}
 .sns-page .sns-price-grid{grid-template-columns:minmax(0,1fr)}
}

/* v98 — requested corrections: reusable tuna details and responsive components */
@media (min-width:821px){
 .service-page .consult-grid .consult-col{gap:65px}
 .service-page .consult-grid .consult-card[data-card-number="2"]{margin-top:110px}
 .service-page .consult-grid .consult-card[data-card-number="3"],
 .service-page .consult-grid .consult-card[data-card-number="4"],
 .service-page .consult-grid .consult-card[data-card-number="5"],
 .service-page .consult-grid .consult-card[data-card-number="6"]{margin-top:0}
}
@media (max-width:820px){
 .consult-grid{display:flex;flex-direction:column;gap:65px}
 .consult-col{display:contents}
 .consult-grid .consult-card{margin:0!important}
 .consult-grid .consult-card[data-card-number="1"]{order:1}
 .consult-grid .consult-card[data-card-number="2"]{order:2}
 .consult-grid .consult-card[data-card-number="3"]{order:3}
 .consult-grid .consult-card[data-card-number="4"]{order:4}
 .consult-grid .consult-card[data-card-number="5"]{order:5}
 .consult-grid .consult-card[data-card-number="6"]{order:6}
 
}
.with-heading-tuna{position:relative}
/* Shared heading mascot: the original 71x48 transparent fish, not a faded silhouette. */
.with-heading-tuna::before{content:"";position:absolute;left:clamp(16px,6vw,100px);top:clamp(18px,3vw,65px);width:71px;height:48px;aspect-ratio:auto;background:url("assets/common/tuna-selector.png") center/contain no-repeat;opacity:1;transform:none;pointer-events:none}
/* 事業内容の2つの見出し用の小マグロは元SVGと同じ素材。画像内で既に+15°回転済み。 */
.service-page .service-index::before,.service-page .service-support::before{width:71px;height:48px;aspect-ratio:auto;background:url("assets/common/tuna-selector.png") center/contain no-repeat;opacity:1;transform:none}
.service-page .service-index::before{left:calc(50% - 35.051px);top:48px}
.service-page .service-support::before{left:max(20.949px,calc(50% - 603.051px));top:45px}
@media(min-width:1101px){
  /* Figma Wireframe - 5(1).svg: first showcase photo y4308, title baseline y4142. */
  .service-page .service-index{padding-top:241px}
  .service-page .service-index::before{top:169.26px}
  .service-page .service-support::before{top:47.625px}
}
@media(max-width:820px){
  .service-page .service-index::before{top:12px}
  .service-page .service-support::before{left:16px;top:12px}
}
.with-heading-tuna>div{position:relative;z-index:1}

.konomachi-action-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:26px}
.konomachi-pending-link{
  display:inline-flex;align-items:center;justify-content:center;
  box-sizing:border-box;width:265px;max-width:100%;height:63px;min-height:63px;
  padding:8px 14px;border:4px solid #fff;
  background:#1E4986;color:#fff;font-size:20px;line-height:1.2;font-weight:700;
  box-shadow:0 4px 4px rgba(0,0,0,.25);cursor:default;opacity:1;
  text-align:center;white-space:nowrap;
}
.konomachi-pending-link:hover{transform:none;filter:none}
.konomachi-action-row .konomachi-pending-link::after{
  background-image:url("assets/common/grain-tile.png");background-repeat:repeat;background-size:256px 256px;
  filter:grayscale(1);mix-blend-mode:multiply;opacity:.18;
}
@media(max-width:767px){
  .konomachi-action-row{gap:12px}
  .konomachi-pending-link{width:min(265px,100%);min-height:54px;height:54px;font-size:16px}
}
.youtube-work-tags span:not(.youtube-work-industry), .work-card .work-tag-category{color:#B6772A;border:1px solid #B6772A;background:#fff}

/* v114: Figma ornaments attach to the actual SERVICE headings. */
.service-showcase .service-copy h3.showcase-title-ring{display:inline-flex;align-items:center;gap:17px;width:auto;max-width:100%}
.service-copy h3.showcase-title-ring::before,.service-copy h3.showcase-title-ring::after{content:"";position:static;flex:0 0 21px;width:21px;height:21px;border-radius:50%;background:#B6772A;pointer-events:none}
.service-copy h3.showcase-title-tv{display:flex;align-items:center;gap:17px}
.service-copy h3.showcase-title-tv::before{content:"";display:block;flex:0 0 58px;height:7px;background:#B6772A}
.service-benefits .section-heading{position:relative}
.service-benefits-heading-fish{position:absolute;width:71px;height:48px;object-fit:contain;left:0;top:-70px;pointer-events:none}
.service-middle-cta .service-cta-copy h3{position:relative;display:inline-block}
.service-middle-cta .service-cta-copy h3::after{content:"";position:absolute;left:0;right:0;bottom:-11px;height:7px;background:#01101B;opacity:.95;pointer-events:none}
@media(max-width:820px){
 .service-copy h3.showcase-title-ring::before,.service-copy h3.showcase-title-ring::after{flex-basis:14px;width:14px;height:14px}
 .service-copy h3.showcase-title-tv::before{flex-basis:36px;height:5px}
 .service-benefits-heading-fish{top:-62px}
 .service-middle-cta .service-cta-copy h3::after{bottom:-8px;height:5px}
}

.home11-fish-pattern{--tuna-width:96px;--tuna-opacity:.10;--tuna-angle-a:0deg;--tuna-angle-b:27deg}
.home11-film-card-link{display:block;text-decoration:none;color:inherit;position:relative}
.home11-film-card-link:focus-visible{outline:4px solid #B6772A;outline-offset:-4px}
.home11-film-card-link>img{display:block;width:100%;object-fit:cover}
@media(max-width:767px){.home11-fish-pattern{--tuna-width:74px;--tuna-opacity:.08}}

/* v116 narrow viewport: reduce peeled-lid text exclusion to avoid word fragments. */
@media (max-width:359px){.about-page .message-copy>p:first-child::before{width:28%;height:calc(var(--can-lid-height) * .38)}}


/* Contact form: input/confirmation only. No external endpoint is configured. */
.contact-page .contact-form-section{padding:116px 0 145px;min-height:0}
.contact-page .contact-layout{width:min(1000px,calc(100% - 48px))}
.contact-heading{margin-bottom:40px}
.contact-heading h2,.contact-review h2{font-size:40px;line-height:1.35;margin:0 0 16px;color:var(--ink)}
.contact-heading p,.contact-review>p{margin:0 0 10px;line-height:1.8}
.contact-required-note{margin-top:17px!important;font-size:14px}
.contact-required-note span{color:#B62A2A}
.contact-form{background:rgba(255,255,255,.79);padding:48px 55px 46px;border:4px solid #1E4986;box-shadow:7px 8px 0 rgba(1,16,27,.12)}
.contact-fields{display:grid;gap:24px}
.contact-field{display:grid;grid-template-columns:minmax(170px,250px) minmax(0,1fr);align-items:start;gap:24px}
.contact-label{font-size:17px;font-weight:700;line-height:1.55;padding-top:13px}
.contact-label small{display:inline-block;margin-left:10px;font-size:12px;line-height:1.1;background:#B62A2A;color:#fff;padding:5px 8px;vertical-align:middle}
.contact-label small.optional{background:#eee;color:var(--ink);border:1px solid #a4a4a4}
.contact-field input,.contact-field textarea{appearance:none;display:block;min-width:0;width:100%;background:#fff;border:2px solid #526a7d;border-radius:0;color:var(--ink);padding:13px 15px;font:inherit;font-size:16px;line-height:1.6;box-shadow:none}
.contact-field input{min-height:54px}
.contact-field textarea{resize:vertical;min-height:220px}
.contact-field input::placeholder,.contact-field textarea::placeholder{color:#717c85;opacity:1}
.contact-field input:focus-visible,.contact-field textarea:focus-visible,.contact-privacy-check input:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
.contact-privacy-check{display:flex;align-items:flex-start;gap:12px;line-height:1.7;margin:35px auto 25px;max-width:710px;cursor:pointer}
.contact-privacy-check input{flex:0 0 22px;width:22px;height:22px;margin:3px 0 0;accent-color:var(--blue)}
.contact-privacy-check a{color:var(--blue);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.contact-actions{display:flex;justify-content:center;align-items:center;margin:28px 0 0}
.contact-actions .btn{min-width:320px;cursor:pointer}

.contact-review{background:rgba(255,255,255,.9);border:4px solid #1E4986;padding:48px 55px;box-shadow:7px 8px 0 rgba(1,16,27,.12)}
.contact-review[hidden],.contact-form[hidden]{display:none}
.contact-review-list{margin:30px 0 0;border-top:1px solid #a2aab1}
.contact-review-list>div{display:grid;grid-template-columns:220px minmax(0,1fr);gap:20px;padding:18px 10px;border-bottom:1px solid #a2aab1}
.contact-review-list dt{font-weight:700}
.contact-review-list dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:800px){
 .contact-page .contact-form-section{padding:75px 0 96px}
 .contact-form,.contact-review{padding:30px 26px;border-width:3px}
 .contact-field{grid-template-columns:1fr;gap:7px}
 .contact-label{padding-top:0}
 .contact-fields{gap:20px}
 .contact-review-list>div{grid-template-columns:1fr;gap:5px}
}
@media(max-width:480px){
 .contact-page .contact-layout{width:calc(100% - 32px)}
 .contact-page .contact-form-section{padding:60px 0 72px}
 .contact-heading h2,.contact-review h2{font-size:27px}
 .contact-heading p,.contact-review>p{font-size:14px}
 .contact-form,.contact-review{padding:22px 17px 26px;box-shadow:4px 5px 0 rgba(1,16,27,.12)}
 .contact-field input,.contact-field textarea{font-size:16px}
 .contact-privacy-check{font-size:13px;gap:9px}
 .contact-actions .btn{width:100%;min-width:0;font-size:16px;padding-inline:6px}
 
}


.home11-strength.grain::after{
  background-image:url("assets/common/monochrome-noise-half.png");
  background-repeat:repeat;background-size:128px 128px;
  opacity:var(--tsunacan-figma-mono-layer-opacity);mix-blend-mode:multiply;
}
.home11-film-frame::after{
  content:"";position:absolute;inset:0;z-index:6;pointer-events:none;
  background-image:url("assets/common/monochrome-noise-half.png");
  background-repeat:repeat;background-size:128px 128px;
  opacity:var(--tsunacan-figma-mono-layer-opacity);mix-blend-mode:multiply;
}


/* v123: Parent service ornaments measured from original Wireframe - 5(1).svg.
   SNS/YouTube: circle r=8px; TV heading: 16px x 4px horizontal stroke. */
.service-page .service-showcase .service-copy h3.showcase-title-ring{gap:16px}
.service-page .service-showcase .service-copy h3.showcase-title-ring::before,
.service-page .service-showcase .service-copy h3.showcase-title-ring::after{
  width:16px;height:16px;flex:0 0 16px;
}
.service-page .service-showcase .service-copy h3.showcase-title-tv{gap:16px}
.service-page .service-showcase .service-copy h3.showcase-title-tv::before{
  width:16px;height:4px;flex:0 0 16px;
}
/* User-requested two pending destinations for Konomachi TV in the white feature card.
   Do not send visitors to unrelated Works, or invent external URLs. */
.service-page .service-showcase article.service-showcase-tv .button-row.konomachi-action-row{
  display:flex;flex-wrap:wrap;gap:12px;margin-top:20px;
}
.service-page .service-showcase article.service-showcase-tv .button-row.konomachi-action-row .konomachi-pending-link,
.service-page .service-showcase article.service-showcase-tv .button-row.konomachi-action-row .konomachi-pending-link:last-child{
  display:inline-flex;width:265px;max-width:100%;min-width:0;height:63px;min-height:63px;
  border:4px solid #fff;background:#1E4986;color:#fff;
  white-space:nowrap;font-size:20px;cursor:default;
}
.service-page .service-showcase article.service-showcase-tv .konomachi-pending-link::after{
  background-image:url("assets/common/grain-tile.png");background-size:256px 256px;
  filter:grayscale(1);mix-blend-mode:multiply;opacity:.18;
}
@media(max-width:700px){
 .service-page .service-showcase article.service-showcase-tv .button-row.konomachi-action-row .konomachi-pending-link,
 .service-page .service-showcase article.service-showcase-tv .button-row.konomachi-action-row .konomachi-pending-link:last-child{
  width:100%;height:54px;min-height:54px;font-size:16px;
 }
}


.home11-intro .home11-fish-pattern{z-index:0;isolation:isolate}



@media(min-width:821px){
  .home11-intro .home11-intro-copy{top:211px}
}



@media (min-width:821px) and (max-width:1199px){
  .home11-intro .home11-intro-copy{
    width:min(610px,calc(100% - 430px));
    max-width:calc(100% - 430px);
    top:211px;
  }
  .home11-intro .home11-intro-copy h2{
    font-size:clamp(29px,3.35vw,40px);
    line-height:1.5;
    margin-bottom:clamp(26px,3.3vw,50px);
  }
  
  
  
}

@media (min-width:821px) and (max-width:1024px){
  .service-page .service-support{min-height:0;padding:92px 0 108px}
  .service-page .service-support-grid{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:none;
    gap:40px;
    margin-top:58px;
  }
  .service-page .service-support-item{
    position:relative;
    display:grid;
    grid-template-columns:160px minmax(0,1fr);
    gap:30px;
    align-items:center;
    min-height:0;
  }
  .service-page .service-support-item img,
  .service-page .service-support-item:nth-child(n) img{
    position:static;
    display:block;
    width:160px;
    height:auto;
    max-width:100%;
    transform:none;
    margin-top:0;
  }
  .service-page .service-support-item > div,
  .service-page .service-support-item:nth-child(n) > div{
    position:static;
    min-width:0;
    padding-top:0;
  }
}



@media (min-width:901px) and (max-width:1199px){
  .about-page .about-values{
    height:auto;
    min-height:665px;
    padding-bottom:75px;
  }
  .about-page .about-values .value-lines{
    position:static;
    width:100%;
    max-width:100%;
    margin-top:0;
  }
  .about-page .about-values .value-row{
    grid-template-columns:clamp(125px,16vw,160px) minmax(0,1fr);
    min-height:120px;
    height:auto;
    padding:18px 0;
    align-items:center;
  }
  .about-page .about-values .value-row:nth-child(3){min-height:144px;height:auto}
  .about-page .about-values .value-row p{min-width:0;overflow-wrap:break-word}
}


@media (min-width:901px) and (max-width:1199px){
  .sns-page .feature-section{min-height:0}
  .sns-page .feature-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:none;
    grid-auto-rows:minmax(150px,auto);
    row-gap:48px;
  }
  .sns-page .feature-card{min-width:0;height:auto;min-height:0}
  .sns-page .sns-feature-copy{min-width:0}
  .sns-page .sns-feature-copy h3{overflow-wrap:break-word}
}



.about-page .message-inner{isolation:isolate}
.about-page .about-message-heading,
.about-page .message-copy{z-index:2}


.sns-page .feature-section.with-heading-tuna::before{
  left:max(24px,calc((100% - 1200px)/2));
}
@media (max-width:800px){
  .sns-page .feature-section.with-heading-tuna::before{left:16px}
}



.about-page .message-inner>.about-message-can{display:block;object-fit:fill;z-index:1}
@media (max-width:900px){
  /* Compact screen uses the tall nine-slice version of the same can art. */
  .about-page .message-inner>.about-message-can{display:none}
}

.sns-page .feature-section.with-heading-tuna::before{content:none}
.sns-page .feature-section.with-heading-tuna>.container{position:relative}











.about-page .message-inner > .about-message-can{filter:none}


.home-page .home11-intro .home11-fish-pattern.benefit-tuna-motifs{
  --tuna-width:100.5px;--tuna-opacity:.10;
  --tuna-angle-a:0deg;--tuna-angle-b:27deg;
  z-index:0;isolation:isolate;
}
@media(max-width:1024px){
  .home-page .home11-intro .home11-fish-pattern.benefit-tuna-motifs{--tuna-width:86px}
}
@media(max-width:767px){
  .home-page .home11-intro .home11-fish-pattern.benefit-tuna-motifs{
    --tuna-width:74px;--tuna-opacity:.08;
  }
}


@media(min-width:1200px){
  .home-page .home11-hero{
    height:calc(132px + 87.986111vw);
    overflow:visible;
    z-index:2;
  }
  .home-page .home13-hero-copy{
    left:50%;top:132px;
    width:100vw;height:52.708333vw;
    aspect-ratio:1440 / 759;
    background-size:100% 100%;
    transform:translateX(-50%);
  }
  .home-page .home11-hero-bottom{
    top:calc(132px + 57.152778vw);
    width:min(1200px,calc(100% - 80px));
  }
  .home-page .home11-hero-team{
    position:absolute;left:auto;right:0;
    top:-8.472222vw;
    width:min(571px,39.652778vw);height:auto;
    max-width:none;
    object-fit:contain;
  }
  .home-page .home11-intro{z-index:1}
}


@media (min-width:1440px){
  .home-page .home11-hero-bottom > .home11-hero-team{
    width:571px;
    right:calc(720px - 50vw);
    left:auto;
    top:-122px;
    height:auto;
    max-width:none;
  }
}

/* Medium desktop follows the same fixed header-to-letter gap, while keeping
   its own smaller team/text sizing until the 1200px Figma desktop canvas. */
@media(min-width:821px) and (max-width:1199px){
  .home-page .home11-hero{overflow:visible}
  .home-page .home13-hero-copy{top:132px;width:100vw;height:52.708333vw}
  .home-page .home11-hero-bottom{top:calc(132px + 57.152778vw)}
  .home-page .home11-hero-team{top:-8.472222vw}
  .home-page .home11-intro{z-index:1}
}

/* PC canvas retains the original Figma proportions and the approved MV. */
@media (min-width:1200px){
  .home-page .home11-hero{overflow:visible;z-index:3}
  .home-page .home11-hero-bottom{top:calc(132px + 57.152778vw)}
  .home-page .home11-hero-team{
    max-width:none;height:auto;right:0;left:auto;object-fit:contain;z-index:3;
  }
  .home-page .home11-intro{z-index:1}
}
@media (min-width:1000px) and (max-width:1199px){
  .home-page .home11-hero-team{width:460px;max-width:none;height:auto;top:-100px;right:0;left:auto;z-index:3}
  .home-page .home11-hero{overflow:visible;z-index:3}
}
@media (min-width:821px) and (max-width:999px){
  .home-page .home11-hero-team{width:360px;max-width:none;height:auto;top:-80px;right:0;left:auto;z-index:3}
  .home-page .home11-hero{overflow:visible;z-index:3}
}
/* All tuna motif sections share the same one-row pitch via app.js and a
   single common asset. No invisible alternate row or decorative empty row. */
.home-page .home11-intro .benefit-tuna-motifs{z-index:0}


@media(max-width:900px){
  .about-page .message-section{height:auto;min-height:0;padding:55px 0 95px;overflow:visible}
  .about-page .message-inner{
    position:relative;isolation:isolate;
    width:min(calc(100% - 28px),760px);max-width:760px;
    min-height:0;height:auto;aspect-ratio:auto;
    padding:clamp(195px,44vw,375px) clamp(32px,7%,60px) 76px;
    box-sizing:border-box;
  }
  /* The frame continues into the text rather than scaling the drawing tall. */
  .about-page .message-inner::before{
    display:block;content:"";position:absolute;
    inset:min(65vw,530px) 4.1% 0 4.1%;
    background:transparent;
    border-style:solid;border-color:#B6772A;
    border-width:0 clamp(8px,1.6vw,13px) clamp(8px,1.6vw,13px);
    border-radius:0 0 28px 28px;
    border-image:none;pointer-events:none;z-index:0;
  }
  .about-page .message-inner > .about-message-can{
    position:absolute;display:block;top:0;left:0;width:100%;height:auto;
    max-width:none;aspect-ratio:3671/2824;object-fit:contain;
    clip-path:inset(0 0 8% 0);z-index:1;pointer-events:none;
  }
  .about-page .about-message-heading,
  .about-page .message-copy{position:relative;left:auto;top:auto;z-index:2}
  .about-page .about-message-heading{font-size:clamp(20px,2.9vw,27px);margin:0 0 10px}
  .about-page .message-copy{
    width:100%;max-width:100%;font-size:clamp(13px,1.65vw,15px);
    line-height:1.7;overflow-wrap:anywhere;word-break:normal;letter-spacing:0;
  }
  .about-page .message-copy br{display:none}
  .about-page .message-copy>p:first-child::before{
    content:"";display:block;float:right;width:35%;height:clamp(85px,18vw,180px);
    shape-outside:inset(0);pointer-events:none;
  }
  .about-page .message-copy .signature{clear:both;margin-top:18px}
}
@media(max-width:600px){
  .about-page .message-section{padding:42px 0 65px}
  .about-page .message-inner{
    width:calc(100% - 24px);padding:clamp(175px,50vw,300px) clamp(31px,8vw,50px) 54px;
  }
  .about-page .message-inner::before{inset:calc(65vw - 9px) 4.1% 0 4.1%}
  .about-page .about-message-heading{font-size:clamp(19px,5vw,24px)}
  .about-page .message-copy{font-size:clamp(12.5px,3.5vw,14px);line-height:1.65}
  .about-page .message-copy>p:first-child::before{width:33%;height:clamp(55px,18vw,110px)}
  .about-page .message-copy .signature{margin-top:16px}
}
/* Medium desktop: avoid text escaping the can when it becomes narrower. */
@media(min-width:901px) and (max-width:1199px){
  .about-page .message-inner{min-height:calc((100vw - 48px) * .76961)}
  .about-page .message-copy{width:49%;max-width:49%;line-height:1.55;font-size:clamp(12.5px,1.18vw,14px)}
  .about-page .about-message-heading{top:39%;}
  .about-page .message-copy{top:45%;}
}

/* Empty privacy-policy content is supplied by the WordPress page editor. */
.privacy-content-editor{min-height:320px;padding:40px 0 110px}
.privacy-content-editor:empty{min-height:320px}





@media(max-width:1247px){
  .about-page .message-section{height:auto;min-height:0;padding:36px 0 75px;overflow:visible}
  .about-page .message-inner{
    position:relative;isolation:isolate;
    width:min(calc(100% - 32px),900px);max-width:900px;
    height:auto;min-height:0;aspect-ratio:auto;
    box-sizing:border-box;
    padding:clamp(275px,72vw,650px) clamp(28px,7%,70px) clamp(65px,15vw,130px);
    background:transparent;
  }
  .about-page .message-inner::before{content:none!important;display:none!important}
  .about-page .message-inner > .about-message-can{display:none!important}
  
  
  
  
  .about-page .about-message-heading,
  .about-page .message-copy{
    position:relative!important;left:auto!important;top:auto!important;
    z-index:2;width:100%!important;max-width:100%!important;
    transform:none!important;margin-left:0;margin-right:0;
  }
  .about-page .about-message-heading{font-size:clamp(21px,2.8vw,28px);line-height:1.4;margin:0 0 15px}
  .about-page .message-copy{
    padding:0!important;font-size:clamp(14px,1.7vw,16px);line-height:1.75;
    letter-spacing:0;overflow:visible!important;overflow-wrap:anywhere;word-break:normal;
  }
  .about-page .message-copy br{display:none}
  .about-page .message-copy>p:first-child::before{content:none!important;display:none!important;float:none!important}
  .about-page .message-copy .signature{clear:both;margin-top:22px}
}
@media(max-width:900px){
  /* Circle text accompanies the two photo frames instead of disappearing. */
  .about-page .about-intro-art{position:absolute;overflow:visible;isolation:isolate}
  .about-page .about-intro-art .about-photo-placeholder{z-index:2}
  
}
@media(max-width:600px){
  .about-page .message-section{padding:18px 0 56px}
  .about-page .message-inner{
    width:calc(100% - 20px);
    padding:clamp(275px,calc(69.463361vw + 10.11px),450px) clamp(24px,7%,34px) 65px;
  }
  .about-page .message-copy{font-size:clamp(13px,3.45vw,14.5px);line-height:1.7}
  .about-page .about-message-heading{font-size:clamp(20px,5.5vw,23px)}
  
}


.about-page .about-intro{isolation:isolate}
.about-page .about-intro>.about-orbit-decoration{
  display:block;position:absolute;left:calc(50% - 720px + 460px);
  top:648px;width:862px;height:862px;max-width:none;
  opacity:.68;mix-blend-mode:normal;filter:none;pointer-events:none;z-index:0;
}
.about-page .about-intro-grid{position:relative;z-index:1}
.about-page .about-intro-grid>div:first-child{position:relative;z-index:2}
.about-page .about-intro-art{z-index:2;isolation:isolate}
.about-page .about-intro-art .about-photo-placeholder{z-index:2}
/* Only the original orbit SVG is used. The old tablet/mobile orange copy
   must remain disabled even if an old fragment appears in a cached page. */

@media(max-width:900px){
  .about-page .about-intro{
    height:auto;min-height:0;
    padding:clamp(90px,11vw,110px) 0 clamp(105px,16vw,145px);
    overflow:hidden;
  }
  .about-page .about-intro>.about-orbit-decoration{
    display:block!important;
    left:calc(-1 * clamp(340px,52vw,620px));
    top:clamp(-115px,-10vw,-42px);
    width:clamp(720px,145vw,1200px);height:auto;
    opacity:.82;filter:none;mix-blend-mode:normal;z-index:0;
  }
  .about-page .about-intro-art{
    position:relative;top:auto;bottom:auto;left:0;
    width:80vw;max-width:720px;height:auto;aspect-ratio:600/370;
    margin:clamp(60px,9vw,85px) 0 0;
    overflow:visible;pointer-events:none;
  }
  .about-page .about-photo-a{
    left:0;top:0;width:64.667%;height:69.73%;
    transform:rotate(-4.90735deg);transform-origin:top left;
  }
  .about-page .about-photo-b{
    left:52%;top:30.22%;width:41.408%;height:44.77%;
    transform:rotate(8deg);transform-origin:top left;
  }
}
@media(max-width:600px){
  .about-page .about-intro{
    padding:clamp(80px,23vw,100px) 0 clamp(98px,27vw,118px);
  }
  .about-page .about-intro-art{
    width:80vw;max-width:none;
    margin-top:clamp(62px,17vw,83px);
  }
  .about-page .about-intro>.about-orbit-decoration{
    left:calc(-1 * clamp(340px,88vw,480px));
    top:-54px;width:clamp(700px,184vw,900px);
  }
}


/* === CURRENT REQUEST: visible overlaps / faithful responsive composition === */

main{overflow:visible}
html,body{overflow-x:clip}
.home-page .home11-hero{overflow:visible!important;isolation:visible;z-index:4}
.home-page .home11-intro{overflow:visible;z-index:2}
.home-page .home11-intro .home11-fish-pattern{overflow:hidden;z-index:0}

.home-page .home11-film{position:relative;z-index:1}
.home-page .home11-hero-team{position:absolute;z-index:7;max-width:none;object-fit:contain;pointer-events:none}
/* The English artwork is a 1440×759 bitmap: never stretch it to a fixed height. */
@media(max-width:820px){
  .home-page .home11-hero{height:calc(78px + 52.708333vw + 435px);min-height:690px;overflow:visible!important}
  .home-page .home13-hero-copy{position:absolute;top:78px;left:0;width:100%;height:52.708333vw;aspect-ratio:1440 / 759;background-size:100% 100%;transform:none}
  .home-page .home11-hero-bottom{top:calc(78px + 52.708333vw + 38px);width:calc(100% - 32px);left:50%;transform:translateX(-50%)}
  .home-page .home11-hero-message h1{font-size:clamp(26px,5vw,37px)}
  .home-page .home11-hero-team{left:auto;right:-10px;top:clamp(164px,30vw,245px);width:clamp(190px,39vw,310px);height:auto;max-width:none;z-index:7}
  .home-page .home11-intro{height:auto;min-height:740px;padding-bottom:175px;overflow:visible}
  .home-page .home11-intro-copy{top:45px;width:min(87%,600px)}
  
  
  
  .home-page .home11-strength-tuna{width:clamp(250px,72vw,520px);max-width:none;left:-12%;top:clamp(195px,31vw,290px);opacity:.10}
  .home-page .home11-can-visual{--can-width:min(370px,86vw);margin:30px auto -35px;max-width:none;z-index:3}
}
@media(min-width:821px) and (max-width:1199px){
  .home-page .home11-hero{height:calc(132px + 52.708333vw + 385px);overflow:visible!important}
  .home-page .home13-hero-copy{height:52.708333vw;background-size:100% 100%}
  .home-page .home11-hero-team{top:-116px;right:0}
  .home-page .home11-intro{overflow:visible}
}
@media(min-width:1200px){
  .home-page .home11-intro{overflow:visible}
}
/* Underline letters directly. Each wrapped line receives its own black underline. */
.service-middle-cta .service-cta-copy h3::after{content:none!important;display:none!important}
.service-middle-cta .service-cta-copy h3{display:block;white-space:normal;max-width:100%;line-height:1.5}
.service-cta-text-underline{text-decoration-line:underline;text-decoration-color:#01101B;text-decoration-thickness:5px;text-underline-offset:7px;text-decoration-skip-ink:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}
@media(max-width:820px){.service-cta-text-underline{text-decoration-thickness:3px;text-underline-offset:5px}}
/* Contact: required mark belongs inside the form frame. */
.contact-form>.contact-required-note{display:block;margin:0 0 24px;font-weight:700;text-align:right;font-size:14px}
.contact-form>.contact-required-note span{color:#c03829}
/* Pagination follows the filter selection and is accessible to keyboard users. */
.work-card[hidden]{display:none!important}
.works-pagination{display:flex;justify-content:center;align-items:center;gap:18px;flex-wrap:wrap;margin:65px auto 0}

.works-page-number{cursor:pointer;display:inline-grid;place-items:center;min-width:46px;min-height:44px;padding:8px 12px;background:#fff;border:2px solid #1E4986;color:#1E4986;font-weight:700;font-size:15px}
.works-page-number[aria-current=page]{background:#1E4986;color:#fff}

.works-page-number:focus-visible{outline:3px solid #b6772a;outline-offset:3px}
.news-article-featured{margin:30px 0 35px;width:100%;aspect-ratio:16/9;overflow:hidden;background:#fff;border:8px solid white;box-shadow:0 4px 9px rgba(0,0,0,.12)}
.news-article-featured img{width:100%;height:100%;object-fit:contain;object-position:center;display:block}
@media(max-width:600px){.works-pagination{gap:8px}.works-page-number{min-width:40px;min-height:40px;padding:5px}}

/* WordPress 投稿詳細の自由入力本文 */
.tsunacan-work-main-content,.tsunacan-editor-field{font-size:16px;line-height:1.9;overflow-wrap:anywhere}
.tsunacan-work-main-content{margin:0 0 55px}
.tsunacan-work-main-content p,.tsunacan-editor-field p{margin:0 0 1.2em}

.works-pagination .page-numbers{display:flex;align-items:center;gap:10px;list-style:none;padding:0;margin:0}
.works-pagination .page-numbers li a,.works-pagination .page-numbers li span{display:inline-grid;place-items:center;min-width:44px;min-height:44px;padding:8px 12px;border:2px solid #1E4986;background:#fff;color:#1E4986;text-decoration:none;font-weight:700}
.works-pagination .page-numbers li .current{background:#1E4986;color:#fff}
/* Decorative illustrations may cross their section boundaries as in the SP design. */
.home-page .home11-strength{overflow:visible;position:relative;z-index:2}
.home-page .home11-works{position:relative;z-index:1}
.works-pagination[hidden]{display:none!important}



/* Original illustration already contains both palms and the exact relative
   space between them. Render as one responsive image, not independent halves. */
.home-page .home11-intro{overflow:visible!important;position:relative;z-index:3}
.home-page .home11-intro .home13-hands-unified{
  display:block;position:absolute;left:50%;bottom:-95px;
  transform:translateX(-50%);width:min(1208px,100%);height:auto;
  max-width:none;object-fit:contain;pointer-events:none;z-index:5;
}
.home-page .home11-intro .home11-intro-copy{position:absolute;z-index:6}
.home-page .home11-film{position:relative;z-index:2}
@media(max-width:1199px){
  .home-page .home11-intro .home13-hands-unified{
    bottom:-46px;width:100%;
  }
}
@media(max-width:820px){
  .home-page .home11-intro .home13-hands-unified{
    bottom:-31px;width:100%;
  }
}
/* Let the source can artwork extend into the following white section. It is
   part of the composition, not a clipped child of the navy background. */
.home-page .home11-strength{overflow:visible!important;z-index:3}
.home-page .home11-strength-inner{overflow:visible}
.home-page .home11-works{position:relative;z-index:1}
@media(min-width:821px) and (max-width:1199px){
  .home-page .home11-strength-inner{padding-bottom:0}
  .home-page .home11-can-visual{margin-bottom:calc(var(--can-width) * -0.4)}
  .home-page .home11-works{padding-top:clamp(175px,22vw,260px)}
}
@media(max-width:820px){
  .home-page .home11-strength-inner{padding-bottom:0}
  .home-page .home11-can-visual{
    margin-bottom:calc(var(--can-width) * -0.48);
    z-index:4;
  }
  .home-page .home11-works{padding-top:calc(80px + min(180px,44vw))}
}
/* The original white orbit belongs behind the overlapping photo montage and
   must not disappear as soon as it crosses the next section boundary. */
.about-page .about-intro{overflow:visible!important;z-index:2}
.about-page .about-intro>.about-orbit-decoration{pointer-events:none;z-index:0}
.about-page .about-intro-grid{position:relative;z-index:2}
.about-page .about-values{position:relative;z-index:3;background:transparent}
/* Figma's line meets the bottom of the actual letters: thick, black, no
   separate drop shadow. Wrapped text gets its own underline on each line. */
.service-page .service-middle-cta .service-cta-mini h3{
  text-shadow:none!important;filter:none;
}
.service-page .service-middle-cta .service-cta-text-underline{
  text-shadow:none!important;
  text-decoration-line:underline;
  text-decoration-color:#01101b;
  text-decoration-thickness:9px;
  text-underline-offset:-0.11em;
  text-decoration-skip-ink:none;
}
@media(max-width:820px){
  .service-page .service-middle-cta .service-cta-text-underline{
    text-decoration-thickness:7px;text-underline-offset:-0.10em;
  }
}

@media(max-width:900px){
  .site-footer{
    height:auto;min-height:0;margin-top:0;overflow:visible;
    background:#01101b;
  }
  .site-footer::before{inset:0;background:#01101b}
  .site-footer .footer-inner{
    display:block;width:calc(100% - 32px);height:auto;min-height:0;
    margin:0 auto;padding:66px 0 38px;
  }
  .site-footer .footer-copy{
    display:flex;flex-direction:column;align-items:stretch;
    height:auto;min-height:0;gap:0;
  }
  .site-footer .footer-copy h2,
  .site-footer .footer-address,
  .site-footer .footer-tagline,
  .site-footer .footer-links,
  .site-footer .copyright,
  .site-footer .footer-team{
    position:relative;left:auto;right:auto;top:auto;bottom:auto;
    transform:none;float:none;max-width:100%;
  }
  .site-footer .footer-copy h2{
    order:1;font-size:clamp(25px,4vw,34px);line-height:1.4;
    margin:0 0 14px;white-space:normal;
  }
  .site-footer .footer-address{
    order:2;font-size:clamp(11px,1.7vw,14px);line-height:1.75;
    margin:0;white-space:normal;overflow-wrap:anywhere;
  }
  .site-footer .footer-tagline{
    order:3;font-size:clamp(21px,3.7vw,32px);line-height:1.45;
    margin:28px 0 0;white-space:normal;
  }
  .site-footer .footer-team{
    order:4;display:block;align-self:center;
    width:min(78vw,365px);height:auto;max-width:none;
    margin:32px auto 42px;object-fit:contain;
    filter:drop-shadow(0 -3px 3px rgba(0,0,0,.25));
  }
  .site-footer .footer-links{
    order:5;display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    column-gap:12px;row-gap:18px;
    width:100%;margin:0;padding:0;justify-content:stretch;
  }
  .site-footer .footer-links a{
    display:block;font-size:clamp(11px,1.6vw,14px);line-height:1.55;
    white-space:normal;overflow-wrap:anywhere;
  }
  .site-footer .copyright{
    order:6;font-size:clamp(12px,1.8vw,15px);
    margin:54px 0 0;text-align:center;
  }
}
@media(max-width:540px){
  .site-footer .footer-inner{padding:54px 0 34px}
  .site-footer .footer-links{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px 10px}
  .site-footer .footer-team{width:min(82vw,340px);margin:26px auto 35px}
  .site-footer .footer-tagline{font-size:clamp(19px,5vw,24px)}
}


/* 2026-10-28 responsive composition: user screenshot corrections */
/* The unified hands must not cover the film title on desktop. The original
   one-piece image and its internal left/right relationship are unchanged. */
@media (min-width:901px){
  .home-page .home11-intro .home13-hands-unified{
    bottom:0;
  }
}


@media (max-width:900px){
  .home-page .home11-hero{
    --tsunacan-mv-art-top:88px;
    position:relative;
    box-sizing:border-box;
    height:auto;
    min-height:max(100svh, calc(var(--tsunacan-mv-art-top) + 52.708333vw + 600px));
    overflow:visible!important;
  }
  .home-page .home13-hero-copy{
    position:absolute;
    left:0;
    top:var(--tsunacan-mv-art-top);
    width:100%;
    height:auto;
    aspect-ratio:1440 / 759;
    background-size:100% 100%;
    transform:none;
  }
  .home-page .home11-hero-bottom{
    position:absolute;
    left:50%;
    top:calc(var(--tsunacan-mv-art-top) + 52.708333vw + 28px);
    bottom:0;
    width:calc(100% - 32px);
    height:auto;
    transform:translateX(-50%);
    display:block;
  }
  .home-page .home11-hero-message{
    position:relative;
    max-width:56%;
    z-index:2;
  }
  .home-page .home11-hero-team{
    position:absolute;
    top:auto;
    bottom:18px;
    right:0;
    left:auto;
    width:clamp(305px,50vw,475px);
    max-width:none;
    height:auto;
    object-fit:contain;
    z-index:3;
  }
}
@media (max-width:820px){
  /* Existing mobile header: 9px+54px; retain the established 15px art gap. */
  .home-page .home11-hero{--tsunacan-mv-art-top:78px}
}
@media (max-width:600px){
  .home-page .home11-hero-message{max-width:100%}
  .home-page .home11-hero-team{width:clamp(300px,80vw,370px);right:-10px}
}
@media (max-width:359px){
  .home-page .home11-hero-team{width:295px;right:-14px}
}

/* The decorative about orbit may continue down into the following content,
   but it must never cross UP over the company-information hero. */
@media (max-width:900px){
  .about-page .about-intro>.about-orbit-decoration{
    top:clamp(20px,5vw,48px);
  }
}
@media (max-width:600px){
  .about-page .about-intro>.about-orbit-decoration{top:22px}
}

/* The dark underline should be bold and meet the bottoms of the glyphs,
   with no block-wide extra line and no drop shadow. */
.service-page .service-middle-cta .service-cta-mini h3,
.service-page .service-middle-cta .service-cta-text-underline{
  text-shadow:none!important;
  filter:none;
}
.service-page .service-middle-cta .service-cta-text-underline{
  text-decoration-thickness:14px;
  text-underline-offset:-0.16em;
  text-decoration-skip-ink:none;
}
@media(max-width:820px){
  .service-page .service-middle-cta .service-cta-text-underline{
    text-decoration-thickness:11px;
    text-underline-offset:-0.15em;
  }
}



.home-page .home11-intro .home13-hands-unified{bottom:0!important}
@media (min-width:1200px){
  .home-page .home11-intro{height:1169px}
}


@media (max-width:820px){
  .home-page .home11-konomachi{
    height:auto!important;min-height:0!important;
    padding-top:70px;padding-bottom:clamp(80px,13vw,116px);
    position:relative;z-index:1;
  }
  .home-page .home11-konomachi-inner{height:auto;align-items:start}
  .home-page .home11-konomachi-copy{min-width:0;height:auto}
  .home-page .home11-konomachi .konomachi-action-row{
    position:relative;margin-bottom:0;display:flex;flex-wrap:wrap;align-items:stretch;
  }
  .home-page .home11-konomachi .konomachi-pending-link{flex:0 1 265px}
}



@media (max-width:1199px){
  .home-page .home11-intro{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
    box-sizing:border-box;
    height:auto!important;
    min-height:0!important;
    padding:clamp(138px,16vw,203px) 0 0!important;
    overflow:visible!important;
  }
  .home-page .home11-intro .home11-intro-copy{
    position:relative!important;
    inset:auto!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    bottom:auto!important;
    transform:none!important;
    width:min(88%,640px)!important;
    max-width:calc(100% - 32px)!important;
    height:auto!important;
    margin:0 auto 10px!important;
    flex:none;
    z-index:6;
    order:1;
  }
  .home-page .home11-intro .home13-hands-unified{
    position:relative!important;
    inset:auto!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    bottom:auto!important;
    transform:none!important;
    display:block;
    width:100%!important;
    max-width:1208px;
    height:auto!important;
    aspect-ratio:1208 / 541;
    flex:none;
    margin:0 auto!important;
    order:2;
    object-fit:contain;
    z-index:5;
  }
}
/* The compact fixed header is 54px high: retain comfortable heading clearance
   without inserting empty space between the call-to-action and the artwork. */
@media (max-width:900px){
  .home-page .home11-intro{padding-top:clamp(40px,6vw,66px)!important}
}
@media (max-width:600px){
  .home-page .home11-intro .home11-intro-copy{margin-bottom:6px!important}
}


/* Main visual, desktop: artwork + message + buttons alone determine the height.
   Team art is anchored to the orange divider; it never adds vertical space. */
@media (min-width:1200px){
  .home-page .home11-hero{
    position:relative;
    display:block;
    box-sizing:border-box;
    height:auto !important;
    min-height:0 !important;
    padding:calc(132px + 52.708333vw + 42px) 0 clamp(56px,5.2vw,78px) !important;
    overflow:visible !important;
    z-index:3;
  }
  .home-page .home13-hero-copy{
    position:absolute;top:132px;left:50%;transform:translateX(-50%);
    width:100vw;height:52.708333vw;aspect-ratio:1440 / 759;
    background-size:100% 100%;
  }
  .home-page .home11-hero-bottom{
    position:static !important;
    inset:auto !important;
    top:auto !important;
    left:auto !important;
    bottom:auto !important;
    right:auto !important;
    width:min(1200px,calc(100% - 80px));
    height:auto !important;
    margin:0 auto;
    transform:none !important;
    display:block;
  }
  .home-page .home11-hero-message{
    position:relative;z-index:6;
    width:min(630px,54%);
    max-width:54%;
  }
  .home-page .home11-hero-team,
  .home-page .home11-hero-bottom > .home11-hero-team{
    position:absolute !important;
    top:auto !important;
    bottom:-30px !important;
    left:auto !important;
    right:clamp(45px,6.25vw,120px) !important;
    width:clamp(450px,37vw,800px) !important;
    height:auto !important;
    max-width:none !important;
    object-fit:contain;
    transform:none !important;
    z-index:7;
    pointer-events:none;
  }
}
@media (min-width:901px) and (max-width:1199px){
  .home-page .home11-hero{
    position:relative;
    box-sizing:border-box;
    height:auto !important;min-height:0 !important;
    padding:calc(132px + 52.708333vw + 36px) 0 66px !important;
    overflow:visible !important;
  }
  .home-page .home11-hero-bottom{
    position:static !important;inset:auto !important;
    left:auto !important;right:auto !important;
    top:auto !important;bottom:auto !important;
    transform:none !important;
    width:calc(100% - 80px);
    height:auto !important;
    margin:0 auto;
  }
  .home-page .home11-hero-message{width:min(520px,55%);max-width:55%;position:relative;z-index:6}
  .home-page .home11-hero-team{
    top:auto !important;bottom:-24px !important;
    right:clamp(24px,4vw,56px) !important;left:auto !important;
    width:clamp(320px,37vw,450px) !important;
    height:auto !important;max-width:none !important;
  }
}
/* Preserve the already-approved portrait composition; anchor the team at the border. */
@media (max-width:900px){
  .home-page .home11-hero-team{top:auto !important;bottom:-20px !important}
}
/* Real photographs use the original two slanted white-border frames. */
.about-page .about-photo-placeholder{overflow:hidden}
.about-page .about-photo-placeholder > img{
  display:block;width:100%;height:100%;object-fit:cover;object-position:center;
  padding:8px;box-sizing:border-box;
}
/* Education visual follows the existing video-production image frame. */
.movie-page .movie-education-media img,
.movie-education-media img{display:block;width:100%;height:100%;object-fit:cover}



@media (min-width:1200px) {
  .home-page .home11-hero {
    position:relative!important;
    overflow:visible!important;
    z-index:50!important;
    isolation:isolate;
  }
  .home-page .home11-hero-bottom {position:static!important;}
  .home-page .home11-hero-team,
  .home-page .home11-hero-bottom > .home11-hero-team {
    position:absolute!important;
    top:auto!important;
    bottom:-120px!important;
    z-index:60!important;
    pointer-events:none;
  }
  .home-page .home11-intro {
    position:relative;
    z-index:1!important;
  }
}
/* The picture frames retain their Figma geometry as a single composition.
   Wider viewports may scale the composition, not the frames independently. */
@media (min-width:1600px) {
  .about-page .about-intro-art {
    transform:scale(1.12);
    transform-origin:top left;
  }
}
@media (min-width:1920px) {
  .about-page .about-intro-art {
    transform:scale(1.20);
  }
}


/* --- Figma typography and interaction polish --- */
/* Desktop service is a dropdown, but its label aligns exactly with other nav links. */
@media (min-width:901px) {
  .desktop-nav {height:100%;align-items:stretch;}
  .desktop-nav > a:not(.header-cta),
  .desktop-nav .desktop-service-trigger {
    display:inline-flex;align-items:center;justify-content:center;
    box-sizing:border-box;height:100%;padding:0;line-height:1.5;vertical-align:middle;
  }
  .desktop-nav-service {height:100%;align-self:stretch;display:flex;align-items:center;}
  .desktop-nav > .header-cta {align-self:center;}
}
/* Balanced line wrapping, no single trailing Japanese character. */
h1,h2,h3 {text-wrap:balance;line-break:strict;overflow-wrap:break-word;}
.keep-phrase {white-space:nowrap;}
.home11-hero-message h1 .hero-headline-line {display:block;white-space:nowrap;letter-spacing:-.04em;}
@media (min-width:1200px) {
  .home-page .home11-hero-message h1 {font-size:clamp(34px,3.2vw,50px)!important;}
}
@media (min-width:901px) and (max-width:1199px) {
  .home-page .home11-hero-message h1 {font-size:clamp(29px,3.3vw,38px)!important;}
}
@media (max-width:900px) {
  .home-page .home11-hero-message h1 {font-size:clamp(23px,6.5vw,36px)!important;}
}
@media (max-width:600px) {
  .home-page .home11-hero-message h1 {font-size:clamp(22px,7vw,29px)!important;}
}
/* Open/close with a soft height + opacity transition. No hard-coded panel height. */
.service-page .accordion-panel, .faq-page .faq-answer {
  display:grid!important;grid-template-rows:0fr;
  min-height:0!important;height:auto!important;
  margin-top:0!important;padding:0!important;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:grid-template-rows .34s cubic-bezier(.22,.64,.2,1), opacity .26s ease, visibility .34s;
}
.service-page .accordion-card.is-open .accordion-panel, .faq-page .faq-item.is-open .faq-answer {
  grid-template-rows:1fr;opacity:1;visibility:visible;pointer-events:auto;
}
.service-page .accordion-panel-inner, .faq-page .accordion-panel-inner {
  min-height:0;overflow:hidden;box-sizing:border-box;padding:0;
}

.service-page .accordion-panel-content {padding-top:14px;}
.faq-page .accordion-panel-content {padding:14px 24px 12px;}
.faq-page .faq-item {overflow:visible;}
@media (max-width:820px) {
  .faq-page .accordion-panel-content {padding:16px 14px 18px;}
}
@media (prefers-reduced-motion:reduce) {
  .service-page .accordion-panel, .faq-page .faq-answer {transition:none!important;}
}

/* Explicit image elements for the SNS / YouTube / Movie use examples. */
.sns-page .case-media,
.youtube-page .youtube-use-photo,
.movie-page .movie-use-image {
  position:relative;
  overflow:hidden;
}
.sns-page .case-media > img,
.youtube-page .youtube-use-photo > img,
.movie-page .movie-use-image > img {
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  border:0;
  transform:none;
}



@media (max-width:1247px) {
  .about-page .message-section {
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
    padding:clamp(18px,3vw,42px) 0 clamp(24px,4vw,55px) !important;
    overflow:visible !important;
  }
  .about-page .message-inner {
    /* 600px SP art reaches 740px wide; do not shrink it to 610px at 601px.
       That sudden reduction shortened the can by 169px and narrowed the copy
       even though the viewport became one pixel wider. */
    --portrait-width:clamp(740px,90vw,860px);
    --portrait-height:calc(var(--portrait-width) * 1.29992918);
    --portrait-x:calc((100% - var(--portrait-width)) / 2 - clamp(0px,8vw,95px));
    --safe-left:calc(var(--portrait-x) + var(--portrait-width) * .35);
    --safe-width:calc(var(--portrait-width) * .50);
    box-sizing:border-box !important;
    position:relative !important;
    display:block !important;
    isolation:isolate !important;
    width:min(100%,1100px) !important;
    max-width:none !important;
    height:auto !important;
    min-height:var(--portrait-height) !important;
    aspect-ratio:auto !important;
    margin:0 auto !important;
    /* Match the 600px copy baseline (44% of art height), then advance
       smoothly to the original 48% lid-safe baseline as the art widens. */
    padding:calc(var(--portrait-height) * .44 + clamp(0px,calc(17.3vw - 103.8px),45px)) 0 calc(var(--portrait-height) * .13) !important;
    background:transparent !important;
    overflow:visible !important;
  }
  .about-page .message-inner::before, .about-page .message-inner::after{
    display:none !important;
    content:none !important;
  }
  .about-page .message-inner > .about-message-can {
    display:block !important;
    position:absolute !important;
    inset:auto !important;
    left:calc(var(--portrait-x) + var(--portrait-width) * .5) !important;
    top:calc(var(--portrait-height) * .5) !important;
    width:var(--portrait-height) !important;
    height:var(--portrait-width) !important;
    max-width:none !important;
    aspect-ratio:3671 / 2824 !important;
    object-fit:contain !important;
    clip-path:none !important;
    filter:none !important;
    transform:translate(-50%,-50%) rotate(-90deg) !important;
    transform-origin:center center !important;
    opacity:1 !important;
    pointer-events:none !important;
    z-index:0 !important;
  }
  .about-page .message-inner > .about-message-heading,
  .about-page .message-inner > .message-copy {
    position:relative !important;
    inset:auto !important;
    transform:none !important;
    box-sizing:border-box !important;
    width:var(--safe-width) !important;
    max-width:var(--safe-width) !important;
    margin-left:var(--safe-left) !important;
    margin-right:0 !important;
    padding:0 !important;
    text-align:left !important;
    z-index:2 !important;
  }
  .about-page .message-inner > .about-message-heading {
    color:var(--blue) !important;
    font-size:clamp(20px,2.7vw,27px) !important;
    line-height:1.4 !important;
    margin-top:0 !important;
    margin-bottom:12px !important;
  }
  .about-page .message-inner > .message-copy {
    font-size:clamp(13px,1.45vw,16px) !important;
    line-height:1.68 !important;
    letter-spacing:0 !important;
    overflow:visible !important;
    overflow-wrap:anywhere !important;
    word-break:normal !important;
  }
  .about-page .message-copy br{display:none !important}
  .about-page .message-copy>p:first-child::before{
    display:none !important;content:none !important;float:none !important;
  }
  .about-page .message-copy .signature{
    clear:both !important;
    margin-top:16px !important;
  }
}
/* Shift the intact rotated illustration slightly left on phones, gaining
   actual text width without using large left/right page gutters. */
@media (max-width:600px) {
  .about-page .message-section{
    padding:15px 0 35px !important;
  }
  .about-page .message-inner {
    --portrait-width:clamp(610px,max(125vw,calc(850px - 60vw)),740px);
    --portrait-x:calc((100% - var(--portrait-width)) / 2 - 38px);
    --safe-left:calc(var(--portrait-x) + var(--portrait-width) * .35);
    --safe-width:min(calc(100% - var(--safe-left) - 19px),calc(var(--portrait-width) * .53));
    width:100% !important;
    padding-top:calc(var(--portrait-height) * .44) !important;
    padding-bottom:calc(var(--portrait-height) * .14) !important;
  }
  .about-page .message-inner > .about-message-heading {
    font-size:clamp(19px,5vw,23px) !important;
    margin-bottom:9px !important;
  }
  .about-page .message-inner > .message-copy {
    font-size:clamp(13px,3.3vw,14px) !important;
    line-height:1.62 !important;
  }
  .about-page .message-copy .signature{margin-top:13px !important}
}


@media (max-width:1247px) {
  .about-page .message-inner {
    /* The intact CCW-rotated artwork's safe copy polygon starts at x=43%
       and y=39%, while the bottom illustrated line begins near y=92%. */
    --safe-left:calc(var(--portrait-x) + var(--portrait-width) * .43);
    --safe-width:min(
      calc(var(--portrait-width) * .44),
      calc(100% - var(--safe-left) - 18px)
    );
    padding-top:calc(var(--portrait-height) * .39) !important;
    padding-bottom:calc(var(--portrait-height) * .11) !important;
    min-height:var(--portrait-height) !important;
  }
  .about-page .message-inner > .about-message-heading,
  .about-page .message-inner > .message-copy {
    margin-left:var(--safe-left) !important;
    width:var(--safe-width) !important;
    max-width:var(--safe-width) !important;
    box-sizing:border-box !important;
  }
}
@media (max-width:600px) {
  .about-page .message-inner {
    /* Keep the same artwork as above, but avoid the 410–520px trough where
       the old minimum of 610px made the frame too short for the copy. */
    --portrait-width:clamp(650px,max(125vw,calc(850px - 60vw)),740px);
    --portrait-x:calc((100% - var(--portrait-width)) / 2 - 38px);
    --safe-left:calc(var(--portrait-x) + var(--portrait-width) * .43);
    --safe-width:min(
      calc(var(--portrait-width) * .44),
      calc(100% - var(--safe-left) - 18px)
    );
    padding-top:calc(var(--portrait-height) * .39) !important;
    padding-bottom:calc(var(--portrait-height) * .11) !important;
  }
}

/* === 2026-10-28: mobile page headers, contact CTA, and centered tuna === */
/* The 900px header breakpoint is authoritative for ALL interior pages.
   Do not retain the desktop hero top offset or artificial fixed height. */
@media (max-width:900px){
  body:not(.home-page) .page-hero{
    box-sizing:border-box;
    height:auto!important;
    min-height:0!important;
    padding:clamp(82px,10vw,96px) 0 clamp(36px,5vw,48px)!important;
  }
  body:not(.home-page) .page-hero > .container,
  body:not(.home-page) .page-hero > .container-wide{
    width:calc(100% - 32px)!important;
    padding-top:0!important;
    padding-bottom:0!important;
  }
  .mobile-menu a.mobile-contact{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    width:100%;
    box-sizing:border-box;
    min-height:56px;
    padding:10px 12px!important;
    line-height:1.3;
    margin:18px auto 0;
  }
}
/* When the can stacks below the strengths, the decorative large tuna stays
   centered relative to the viewport rather than hugging the left edge. */
@media (max-width:1200px){
  .home-page .home11-strength > .home11-strength-tuna{
    left:50%!important;
    transform:translateX(-50%) rotate(-15deg)!important;
  }
}
/* The previously disabled Konomachi controls are live external links. */
.konomachi-action-row a.konomachi-pending-link,
.service-page .service-showcase .konomachi-action-row a.konomachi-pending-link{
  cursor:pointer!important;
}
.konomachi-action-row a.konomachi-pending-link:hover,
.konomachi-action-row a.konomachi-pending-link:focus-visible{
  filter:brightness(1.08)!important;
}
.about-page .company-table dd a[href^="https://www.instagram.com/"]{
  overflow-wrap:anywhere;
  text-decoration:underline;
  text-underline-offset:3px;
}

/* Unified tuna placement for all three service detail pages. The former
   pseudo element was positioned against the entire section, not its h2. */
body.sns-page .with-heading-tuna::before,
body.youtube-page .with-heading-tuna::before,
body.movie-page .with-heading-tuna::before { content:none !important; display:none !important; }

body.sns-page .with-heading-tuna h2,
body.youtube-page .with-heading-tuna h2,
body.movie-page .with-heading-tuna h2 { position:relative; }
body.sns-page .with-heading-tuna h2::before,
body.youtube-page .with-heading-tuna h2::before,
body.movie-page .with-heading-tuna h2::before {
  content:"";display:block;position:absolute;left:0;top:-66px;
  width:71px;height:48px;background:url("assets/common/tuna-selector.png") center / contain no-repeat;
  opacity:1;pointer-events:none;transform:none;z-index:1;
}
@media(max-width:900px){
 body.sns-page .with-heading-tuna h2::before,
 body.youtube-page .with-heading-tuna h2::before,
 body.movie-page .with-heading-tuna h2::before {top:-52px;width:62px;height:42px;}
}

/* Gutenberg SNS pilot: keep the exact design frame for editable image cards. */
.sns-page .use-card .case-media{position:relative;overflow:hidden;}
.sns-page .use-card .case-media img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}


/* Shared WordPress content components (formerly inline wp_head styling). */
.work-card-media img,.store-detail-photo img{width:100%;height:100%;object-fit:cover;display:block}.tsunacan-generic-page{min-height:50vh;padding:170px 24px 90px}.tsunacan-editor-extra{padding:35px 0}.tsunacan-hp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.contact-status{padding:16px 20px;margin:0 0 28px;border:2px solid #164477;background:white;color:#01101b}.works-pagination .page-numbers{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;list-style:none;padding:0}.works-pagination a,.works-pagination span{padding:8px 14px;border:1px solid #164477}.work-card-media{overflow:hidden}

/* Front-page empty states: preserve the full design only while real posts exist. */
.home-page .home11-works.is-empty,
.home-page .home11-news.is-empty{
  box-sizing:border-box;
  height:auto!important;
  min-height:0!important;
  padding:clamp(44px,5.5vw,80px) 24px!important;
}
.home-page .home11-works.is-empty .home11-work-grid{
  display:block;
  width:100%;
}
.home-page .home11-works.is-empty .home11-works-inner,
.home-page .home11-news.is-empty .home11-news-inner{
  width:min(1200px,100%);
}
.home-page .home11-works.is-empty h2,
.home-page .home11-news.is-empty h2{
  margin-bottom:clamp(20px,3vw,38px);
}
.home-page .home11-works.is-empty .tsunacan-empty{
  text-align:center;
  font-size:clamp(16px,1.6vw,20px);
  line-height:1.6;
}
.home-page .home11-news.is-empty .home11-news-list{
  margin-bottom:24px;
}


/* Empty teaser sections must not reserve Figma demo-card height. Cards automatically
   reappear in their original grid when published Work posts are available. */
.sns-page .works-teaser-section.is-empty,
.youtube-page .youtube-works.is-empty,
.movie-page .movie-works.is-empty{height:auto;min-height:0;padding:42px 0 48px}
.sns-page .works-teaser-section.is-empty .sns-works-lead,
.youtube-page .youtube-works.is-empty .youtube-works-lead,
.movie-page .movie-works.is-empty .movie-works-lead{margin-bottom:12px}
.tsunacan-work-empty{margin:0;font-weight:600;font-size:16px;line-height:1.7}
.sns-page .work-teaser-media img,
.movie-page .work-teaser-media img,
.youtube-page .youtube-work-media img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media(max-width:900px){
 .sns-page .works-teaser-section.is-empty,
 .youtube-page .youtube-works.is-empty,
 .movie-page .movie-works.is-empty{padding:34px 0 42px}
 .tsunacan-work-empty{font-size:14px}
}


/* Case study detail: match the original Figma composition. The project title,
   industry label and client badge are independent of category filters and of
   the page hero used on the other pages. */
.store-work-page .detail-title-block{
  min-height:0;
  padding:clamp(155px,12vw,185px) 0 52px;
}
.store-work-page .detail-title-block h1{
  max-width:1050px;
  font-size:clamp(36px,4vw,56px);
  line-height:1.5;
  font-weight:700;
  letter-spacing:.01em;
  overflow-wrap:break-word;
}
.store-work-page .detail-title-block .meta-line{
  min-height:76px;
  margin-top:42px;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:14px 24px;
}
.store-work-page .detail-title-block .meta-line .work-detail-industry{
  box-sizing:border-box;
  display:inline-flex;
  flex:0 0 auto;
  align-items:center;
  justify-content:center;
  width:auto;
  min-width:59px;
  height:33px;
  padding:0 8px;
  font-size:14px;
  font-weight:700;
  white-space:nowrap;
  overflow-wrap:normal;
  line-height:1;
}
.store-work-page .work-detail-client{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
  max-width:100%;
}
.store-work-page .work-detail-client-emblem{
  display:block;
  width:76px;
  height:76px;
  max-width:none;
  object-fit:contain;
  flex:none;
}
.store-work-page .work-detail-client-name{
  display:block;
  min-width:0;
  min-height:33px;
  padding:2px 5px 6px;
  font-size:20px;
  line-height:1.5;
  font-weight:500;
  border-bottom:1px solid var(--orange);
  overflow-wrap:anywhere;
}
.store-work-page .store-detail-layout{padding-bottom:120px}
.store-work-page .store-detail-hero{
  margin-bottom:108px;
  grid-template-columns:minmax(0,800px) minmax(0,336px);
  gap:64px;
}
.store-work-page .store-detail-photo{width:100%;height:auto;aspect-ratio:800/533}
.store-work-page .store-side-box h3,
.store-work-page .store-detail-grid3 h3,
.store-work-page .store-detail-grid2 h3,
.store-work-page .store-related h3,
.store-work-page .store-detail-material h3{font-weight:600}
.store-work-page .store-side-box h3::before,
.store-work-page .store-detail-grid3 h3::before,
.store-work-page .store-detail-grid2 h3::before,
.store-work-page .store-related h3::before{height:4px}
.store-work-page .store-side-box .tsunacan-editor-field{margin-bottom:32px}
.store-work-page .store-side-box .tsunacan-editor-field:last-child{margin-bottom:0}
.store-work-page .store-detail-grid3,
.store-work-page .store-detail-grid2{min-height:0;margin-bottom:88px}
.store-work-page .store-detail-grid3 article,
.store-work-page .store-detail-grid2 article{min-width:0}
.store-work-page .store-detail-material{margin-bottom:80px}
.store-work-page .tsunacan-editor-field{font-weight:500;line-height:1.7}
.store-work-page .tsunacan-work-main-content{
  margin:0 0 80px;
  font-size:16px;
  font-weight:500;
  line-height:1.9;
}
.store-work-page .tsunacan-work-main-content h2,
.store-work-page .tsunacan-work-main-content h3{font-weight:700}
/* Shared type hierarchy: regular copy, clear medium section labels and bold
   primary headings. Do not globally make every paragraph bold. */
:is(.work-detail-page,.works-page,.news-page,.news-detail-page) .page-hero h1{font-weight:800}
:is(.work-detail-page,.works-page,.news-page,.news-detail-page) .section-heading h2{font-weight:700}
@media (min-width:821px) and (max-width:1247px){
  .store-work-page .store-detail-hero{
    grid-template-columns:minmax(0,1fr) minmax(240px,30%);
    gap:clamp(25px,4vw,52px);
  }
}
@media (max-width:820px){
  .store-work-page .detail-title-block{padding:110px 0 34px}
  .store-work-page .detail-title-block h1{font-size:clamp(26px,6.8vw,36px);line-height:1.45}
  .store-work-page .detail-title-block .meta-line{margin-top:20px;min-height:0;gap:12px 15px}
  .store-work-page .work-detail-client-emblem{width:56px;height:56px}
  .store-work-page .work-detail-client{gap:8px;flex:1 1 190px}
  .store-work-page .work-detail-client-name{font-size:clamp(13px,3.7vw,16px);min-width:0}
  .store-work-page .store-detail-hero{grid-template-columns:minmax(0,1fr);gap:24px;margin-bottom:70px}
  .store-work-page .store-side-box{padding-left:24px}
  .store-work-page .store-detail-grid3,.store-work-page .store-detail-grid2{margin-bottom:48px;gap:34px}
  .store-work-page .tsunacan-work-main-content{margin-bottom:55px;font-size:14px;line-height:1.8}
}

/* The case-study editor writes line breaks and bullet glyphs itself. */
.store-work-page .store-side-box .store-detail-lines{
  font-size:16px;
  font-weight:500;
  line-height:1.65;
  overflow-wrap:anywhere;
}
/* Only author-created HTML lists receive list markers. */
.store-work-page .store-side-box .tsunacan-editor-field ul,
.store-work-page .store-side-box .tsunacan-editor-field ol{
  margin:0 0 18px;
  padding-left:1.35em;
  list-style:revert;
  font-size:16px;
  line-height:1.65;
}
.store-work-page .store-detail-material h3{
  position:relative;
  padding-left:32px;
  font-size:20px;
  line-height:30px;
  margin:0 0 12px;
}
.store-work-page .store-detail-material h3::before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:16px;
  height:4px;
  background:var(--orange);
  transform:translateY(-50%);
}
@media(max-width:820px){
  .store-work-page .store-side-box .store-detail-lines,
  .store-work-page .store-side-box .tsunacan-editor-field ul,
  .store-work-page .store-side-box .tsunacan-editor-field ol{font-size:14px}
  .store-work-page .store-detail-material h3{font-size:18px}
}


/* Figma matching: service-plan panels across SNS / YouTube / Video.
   The monochrome noise is placed on the BLUE card face, behind its content;
   white information panels remain clean. Grayscale source tile uses the
   Figma size .5 (128px for a 256px@2x image), black, 70% CSS layer opacity. */
.sns-page .sns-price-card,
.youtube-page .youtube-price-card,
.movie-page .movie-price-card{
  position:relative;
  isolation:isolate;
  background-color:#1e4986;
}
.sns-page .sns-price-card::before,
.youtube-page .youtube-price-card::before,
.movie-page .movie-price-card::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:0;
  background:url("assets/common/monochrome-noise-half.png") 0 0 / 128px 128px repeat;
  opacity:var(--tsunacan-figma-mono-layer-opacity);
  mix-blend-mode:multiply;
}
/* Price details now remain in document flow; z-index keeps the panels above the grain. */
.sns-page .sns-price-card > *,
.youtube-page .youtube-price-card > *,
.movie-page .movie-price-card > *{z-index:1;}
.sns-page .sns-price-card > h3,.sns-page .sns-price-card > p,
.youtube-page .youtube-price-card > h3,.youtube-page .youtube-price-card > p,
.movie-page .movie-price-card > h3,.movie-page .movie-price-card > p{position:relative;}
.sns-page .sns-price-card-details,
.youtube-page .youtube-price-card-inner,
.movie-page .movie-price-inner{z-index:1;}

/* Correct the three Figma plan lists to solid RED round bullets. */
.sns-page .sns-price-card-details ul,
.youtube-page .youtube-price-features,
.movie-page .movie-price-inner ul{list-style:none;}
.sns-page .sns-price-card-details li,
.youtube-page .youtube-price-features li,
.movie-page .movie-price-inner li{position:relative;padding-left:22px;}
.sns-page .sns-price-card-details li::before,
.youtube-page .youtube-price-features li::before,
.movie-page .movie-price-inner li::before{
  content:"";
  display:block;
  width:7px;height:7px;
  left:1px;
  top:.85em;
  transform:translateY(-50%);
  border-radius:50%;
  position:absolute;
  background:#bd2530;
}
/* Orange line between the main-content list and the price heading. */
.sns-page .sns-price-card-details ul,
.youtube-page .youtube-price-features,
.movie-page .movie-price-inner ul{
  border-bottom:1px solid #b6772a;
  padding-bottom:13px;
  margin-bottom:15px;
}
.youtube-page .youtube-price-card-inner .youtube-price-fee-heading{margin-top:16px;}

/* Category chips: intrinsic text width, never 56/68/72px clipped boxes.
   Both the archive and the three service-page work teasers use this rule. */
.works-page .work-card .tags,
.sns-page .work-teaser-tags,
.youtube-page .youtube-work-tags,
.movie-page .movie-works .work-teaser-tags{
  display:flex;flex-wrap:wrap;align-items:center;gap:7px 8px;min-width:0;
}
.works-page .work-card .tag,
.sns-page .work-teaser-tag,
.youtube-page .youtube-work-tags span,
.movie-page .movie-works .work-teaser-tag{
  display:inline-flex;
  width:max-content;
  min-width:0;
  max-width:100%;
  height:auto;
  min-height:30px;
  flex:0 0 auto;
  padding:6px 9px;
  white-space:normal;
  overflow-wrap:anywhere;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  font-size:13px;
  line-height:1.25;
  font-weight:700;
  letter-spacing:0;
}
.works-page .work-card .work-tag-industry,
.sns-page .work-teaser-tag--industry,
.youtube-page .youtube-work-tags .youtube-work-industry,
.movie-page .movie-works .work-teaser-tag--industry{
  width:max-content;min-width:0;max-width:100%;flex:0 0 auto;
  background:#b6772a;border-color:#b6772a;color:#fff;
}
.works-page .work-card .work-tag-category,
.sns-page .work-teaser-tag--category,
.youtube-page .youtube-work-tags span:not(.youtube-work-industry),
.movie-page .movie-works .work-teaser-tag--category{
  width:max-content;min-width:0;max-width:100%;flex:0 0 auto;
  background:#fff;color:#b6772a;border:1px solid #b6772a;
}
/* Categories with lengthy Japanese names must never intrude into the next card. */
.work-card,.sns-page .work-teaser,.youtube-page .youtube-work-card,
.movie-page .movie-works .work-teaser{min-width:0;overflow-wrap:anywhere;}

/* News detail: image scales proportionally with no letterboxing, fixed white
   frame or crop. Tall images are height-limited; landscapes use full width. */
.news-detail-page .news-article-featured{
  display:flex;
  justify-content:center;
  align-items:center;
  width:100%;
  height:auto;
  max-width:100%;
  max-height:none;
  aspect-ratio:auto;
  margin:30px auto 35px;
  padding:0;
  border:0;
  background:transparent;
  overflow:visible;
  box-shadow:none;
}
.news-detail-page .news-article-featured img{
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  max-height:720px;
  margin:0 auto;
  object-fit:contain;
  object-position:center;
  box-shadow:none;
}
/* Width is derived from the ORIGINAL attachment aspect ratio and a fixed
   height ceiling: no crop, no bars, no white frame at any aspect ratio. */
.news-detail-page .news-article-featured{
  --tsu-image-ceiling:720px;
  width:min(100%, calc(var(--tsu-image-ceiling) * var(--tsu-image-ratio, 1.777778)));
}
.news-detail-page .news-article-featured img{
  width:100%;height:auto;
  max-height:var(--tsu-image-ceiling);
}
@media(max-width:700px){
  .news-detail-page .news-article-featured{--tsu-image-ceiling:600px;}
}

/* Font weight audit: preserve 400/500 for body copy, 700 for prominent
   headings and card labels, 800 only for headline-scale hero titles. */
.sns-page .sns-price-description,.youtube-page .youtube-price-desc,
.movie-page .movie-price-intro{font-weight:500;}
.sns-page .sns-price-card-details li,
.youtube-page .youtube-price-features li,
.movie-page .movie-price-inner li,
.news-detail-page .news-article-body,
.works-page .work-card h3{font-weight:400;}
.works-page .work-card h3{font-weight:700;}
.sns-page .sns-pricing h2,.youtube-page .youtube-pricing h2,
.movie-page .movie-pricing-container > h2,
.sns-page .sns-price-card h3,
.youtube-page .youtube-price-card h3,
.movie-page .movie-price-card > h3{font-weight:700;}

/* Top strengths: the large dark-blue background receives the noise, and the
   01-04 medallions get the same layer independently, leaving text clean. */
.home-page .home11-strength.grain::after{
  z-index:0;
  opacity:var(--tsunacan-figma-mono-layer-opacity);
}
.home-page .home11-strength .home11-strength-inner{position:relative;z-index:2;}
.home-page .home11-strength > .home11-strength-tuna{z-index:1;}
.home-page .home11-strength-number{
  position:relative;display:inline-block;isolation:isolate;line-height:0;
  width:max-content;max-width:100%;
}
.home-page .home11-strength-number::after{
  content:"";
  position:absolute;inset:0;
  z-index:1;
  pointer-events:none;
  border-radius:50%;
  background:url("assets/common/monochrome-noise-half.png") 0 0 / 128px 128px repeat;
  mix-blend-mode:multiply;
  opacity:var(--tsunacan-figma-mono-layer-opacity);
}

/* The white panels must paint ABOVE their parent card's noise pseudo-layer. */
.youtube-page .youtube-price-card-inner,
.movie-page .movie-price-inner{position:relative;z-index:1;}
@media(max-width:800px){
  .sns-page .sns-price-card-details,
  .sns-page .sns-price-card-secondary .sns-price-card-details{z-index:1;}
}

/* Tuna silhouette grain: preserve all historical positions and proportions;
   overlay grains only where the silhouette alpha mask exists. */
.home-page .home11-strength-tuna{display:block;pointer-events:none;line-height:0;}
.home-page .home11-strength-tuna img{display:block;width:100%;height:auto;}
.home-page .home11-strength-tuna::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:url("assets/common/monochrome-noise-half.png") 0 0/128px 128px repeat;
  -webkit-mask:url("assets/common/tuna-line-transparent.png") center/100% 100% no-repeat;
  mask:url("assets/common/tuna-line-transparent.png") center/100% 100% no-repeat;
  opacity:var(--tsunacan-figma-mono-layer-opacity);mix-blend-mode:multiply;
}


/* Final corrections: Figma-consistent page info/card and article rendering. */
/* Service child pages: full available parent width, no artificial 711px box. */
.sns-page .sns-feature-info{width:auto;max-width:100%;}

/* Case-study grid: category labels wrap to a new row but never disappear.
   No limit on selected taxonomy terms; each term is emitted in PHP. */
.works-page .work-card .tags,
.sns-page .work-teaser-tags,
.youtube-page .youtube-work-tags,
.movie-page .movie-works .work-teaser-tags{
  display:flex;flex-wrap:wrap;align-items:flex-start;gap:7px 8px;
  width:100%;height:auto;max-height:none;min-width:0;overflow:visible;
}
.works-page .work-card .tag,
.sns-page .work-teaser-tags .work-teaser-tag,
.youtube-page .youtube-work-tags span,
.movie-page .movie-works .work-teaser-tags .work-teaser-tag{
  flex:0 0 auto!important;width:auto!important;min-width:0!important;max-width:100%;
  height:auto!important;min-height:30px;padding:6px 9px;white-space:normal;
  line-height:1.3;overflow:visible;overflow-wrap:anywhere;
}

/* The TOP strength section has its own Figma monochrome noise on the NAVY
   background (the decorative tuna and four medallions have independent overlays). */
.home-page .home11-strength{isolation:isolate;}
.home-page .home11-strength.grain::after{
  content:"";display:block;position:absolute;inset:0;pointer-events:none;
  background-image:url("assets/common/monochrome-noise-strength.png");
  background-repeat:repeat;background-size:128px 128px;
  opacity:.70;mix-blend-mode:multiply;z-index:1;
}
.home-page .home11-strength > .home11-strength-tuna{z-index:2;}
.home-page .home11-strength .home11-strength-inner{z-index:3;}

/* Work detail: keep the original pixels and natural portrait/square/landscape ratio.
   No cover crop, grey bars, white letterboxing or fixed 800:533 frame. */
.store-work-page .store-detail-photo{
  display:flex;align-items:flex-start;justify-content:center;
  width:100%;height:auto;max-width:100%;max-height:none;aspect-ratio:auto;
  margin:0;padding:0;border:0;background:transparent;overflow:visible;
}
.store-work-page .store-detail-photo img{
  display:block;width:auto;height:auto;max-width:100%;max-height:720px;
  object-fit:contain;object-position:center;
}
.store-work-page .store-detail-hero{align-items:start;}
.store-work-page .tsunacan-work-main-content .wp-block-video video,
.news-detail-page .news-article-body .wp-block-video video{
  display:block;width:auto;height:auto;max-width:100%;max-height:720px;margin-inline:auto;
}
@media(max-width:700px){
 .store-work-page .store-detail-photo img,
 .store-work-page .tsunacan-work-main-content .wp-block-video video,
 .news-detail-page .news-article-body .wp-block-video video{max-height:600px;}
}

/* Editorial headings copied from the site's existing design language:
   navy headings, small ochre 4px stroke, original Noto Sans JP weights.
   Scoped to Gutenberg/article body; never modifies page navigation or Figma cards. */
:is(.store-work-page .tsunacan-work-main-content,.news-detail-page .news-article-body){
  color:var(--ink);font-weight:400;line-height:1.9;overflow-wrap:anywhere;
}
:is(.store-work-page .tsunacan-work-main-content,.news-detail-page .news-article-body) :is(h1,h2,h3,h4,h5,h6){
  color:var(--ink);font-family:inherit;letter-spacing:.02em;line-height:1.5;
  font-weight:700;overflow-wrap:anywhere;
}
:is(.store-work-page .tsunacan-work-main-content,.news-detail-page .news-article-body) h1{
  font-size:clamp(26px,3.4vw,36px);margin:2.2em 0 .9em;
}
:is(.store-work-page .tsunacan-work-main-content,.news-detail-page .news-article-body) h2{
  display:flex;align-items:center;gap:12px;font-size:clamp(23px,2.7vw,30px);
  color:#1E4986;margin:2em 0 .8em;padding:0;
}
:is(.store-work-page .tsunacan-work-main-content,.news-detail-page .news-article-body) h2::before{
  content:"";display:block;flex:0 0 20px;width:20px;height:4px;background:#B6772A;
}
:is(.store-work-page .tsunacan-work-main-content,.news-detail-page .news-article-body) h3{
  font-size:clamp(18px,2vw,22px);margin:1.7em 0 .65em;padding-left:28px;position:relative;
}
:is(.store-work-page .tsunacan-work-main-content,.news-detail-page .news-article-body) h3::before{
  content:"";position:absolute;left:0;top:.75em;width:16px;height:4px;background:#B6772A;
}
:is(.store-work-page .tsunacan-work-main-content,.news-detail-page .news-article-body) :is(h4,h5,h6){
  font-size:clamp(16px,1.8vw,19px);margin:1.5em 0 .55em;color:#1E4986;
}
:is(.store-work-page .tsunacan-work-main-content,.news-detail-page .news-article-body) :is(p,ul,ol){margin:0 0 1.35em;}
:is(.store-work-page .tsunacan-work-main-content,.news-detail-page .news-article-body) :is(ul,ol){padding-left:1.55em;}
:is(.store-work-page .tsunacan-work-main-content,.news-detail-page .news-article-body) li{padding-left:.15em;margin-bottom:.4em;}
:is(.store-work-page .tsunacan-work-main-content,.news-detail-page .news-article-body) ul li::marker{color:#B6772A;}
:is(.store-work-page .tsunacan-work-main-content,.news-detail-page .news-article-body) a{
  color:#1E4986;text-decoration:underline;text-underline-offset:3px;
}
:is(.store-work-page .tsunacan-work-main-content,.news-detail-page .news-article-body) :is(blockquote,.wp-block-quote){
  border-left:4px solid #B6772A;padding:6px 0 6px 18px;margin:25px 0;font-style:normal;
}
:is(.store-work-page .tsunacan-work-main-content,.news-detail-page .news-article-body) :is(figure,img){max-width:100%;height:auto;}
@media(max-width:700px){
 :is(.store-work-page .tsunacan-work-main-content,.news-detail-page .news-article-body){font-size:14px;}
 :is(.store-work-page .tsunacan-work-main-content,.news-detail-page .news-article-body) h2{gap:9px;}
}

/* Top featured case study also shows every selected category, without overlap. */
.home-page .home11-work-tags{display:flex;flex-wrap:wrap;gap:7px 8px;max-width:100%;align-items:center;}
.home-page .home11-work-tags .tag{width:auto;max-width:100%;height:auto;white-space:normal;}

/* Work showcase: show only the published case study image. Never imply that
   an unrelated theme demo photo belongs to the actual client. */
.home-page .home11-monitor-screen--empty{
  display:flex;align-items:center;justify-content:center;
  background:#1e3150;color:#fff;font-weight:600;
  font-size:clamp(13px,1.4vw,18px);letter-spacing:.08em;text-align:center;
}
/* The public client name can be longer than the Figma sample. Keep the
   original badge and underline but do not clip company names on mobile. */
.home-page .home11-client-meta{max-width:100%;min-width:0;}
.home-page .home11-client{max-width:100%;min-width:0;white-space:normal;overflow-wrap:anywhere;}

/* A real Work without a featured image must be identifiable as unfinished,
   not an empty-looking client photo. Shared by SNS / YouTube / Movie cards. */
.sns-page .work-teaser-media .tsunacan-teaser-no-image,
.youtube-page .youtube-work-media .tsunacan-teaser-no-image,
.movie-page .movie-works .work-teaser-media .tsunacan-teaser-no-image{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  box-sizing:border-box;padding:18px;text-align:center;
  background:#1e3150;color:#fff;font-size:clamp(13px,1.5vw,18px);
  font-weight:600;letter-spacing:.08em;
}

/* The Work index must have the same truthful no-photo state as TOP and the
   three service teasers. Retain the original skewed 3:2 Figma photo frame. */
.works-page .work-card-media .tsunacan-teaser-no-image{
 position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
 box-sizing:border-box;padding:18px;text-align:center;
 background:#1e3150;color:#fff;font-size:clamp(13px,1.5vw,18px);
 font-weight:600;letter-spacing:.08em;
}


/* Mobile service-page repairs — 2026-10-29.  The card must remain in
   normal document flow.  The desktop top/left coordinates are not relevant
   at mobile widths and were moving the details outside the blue card. */
@media (max-width:800px){
  .sns-page .sns-price-grid{grid-template-columns:minmax(0,1fr);}
  .sns-page .sns-price-card,
  .sns-page .sns-price-card-primary,
  .sns-page .sns-price-card-secondary{
    display:flex;flex-direction:column;align-items:stretch;
    width:100%;height:auto;min-height:0;min-width:0;
    padding:22px 16px 20px;
  }
  .sns-page .sns-price-card-details,
  .sns-page .sns-price-card-secondary .sns-price-card-details{
    position:relative;inset:auto;top:auto;left:auto;right:auto;bottom:auto;
    display:block;box-sizing:border-box;width:100%;height:auto;min-height:0;
    max-width:100%;margin:20px 0 0;padding:16px 12px;
    transform:none;
  }
  .sns-page .sns-price-value{
    position:static;inset:auto;top:auto;left:auto;right:auto;bottom:auto;
    margin-top:18px;width:auto;height:auto;transform:none;
  }
  .sns-page .sns-price-description{margin:0;}
  .sns-page .sns-price-card-details ul{max-width:100%;overflow-wrap:anywhere;}
  .sns-page .sns-price-value p{flex-wrap:wrap;}
  /* The other two service price panels are also flow-based on phones. */
  .youtube-page .youtube-price-card,
  .movie-page .movie-price-card{min-width:0;height:auto;min-height:0;}
  .youtube-page .youtube-price-card-inner,
  .movie-page .movie-price-inner{
    position:relative;inset:auto;top:auto;left:auto;right:auto;bottom:auto;
    box-sizing:border-box;width:100%;max-width:100%;height:auto;min-height:0;
  }
}
/* Source order is 01→05 on every service page.  Do not use the original
   desktop two-column visual positions as mobile reading order. */
@media (max-width:900px){
  .youtube-page .youtube-benefit-01,
  .movie-page .movie-benefit-01{order:1;}
  .youtube-page .youtube-benefit-02,
  .movie-page .movie-benefit-02{order:2;}
  .youtube-page .youtube-benefit-03,
  .movie-page .movie-benefit-03{order:3;}
  .youtube-page .youtube-benefit-04,
  .movie-page .movie-benefit-04{order:4;}
  .youtube-page .youtube-benefit-05,
  .movie-page .movie-benefit-05{order:5;}
}
@media (max-width:800px){
  .sns-page .sns-benefits-grid{grid-template-columns:minmax(0,1fr);}
  .sns-page .sns-benefit{grid-column:auto!important;grid-row:auto!important;}
  .sns-page .sns-benefit-01{order:1;}
  .sns-page .sns-benefit-02{order:2;}
  .sns-page .sns-benefit-03{order:3;}
  .sns-page .sns-benefit-04{order:4;}
  .sns-page .sns-benefit-05{order:5;}
}

/* Dynamic Work cards: show the complete editor-selected featured image.
   Portrait, square and landscape project thumbnails must not be cropped by
   the fixed Figma card frame; preserve the frame dimensions and card grid. */
.works-page .work-card-media img,
.sns-page .work-teaser-media img,
.youtube-page .youtube-work-media img,
.movie-page .work-teaser-media img{
  object-fit:contain;
  object-position:center;
}


/* Responsive TOP buttons: keep the original sizes and Figma colors.
   The general .btn has an OUTER white border; the mobile .home-page .btn
   adds an INNER white inset stroke.  The normal TOP actions keep only the
   inset stroke, while the orange contact area keeps only its outer border.
   The service-page CTA is intentionally not affected. */
@media (max-width:900px){
  .home-page .home11-hero-actions > .btn,
  .home-page .home11-intro-copy > .btn,
  .home-page .home11-work-actions > .btn,
  .home-page .home11-news-inner > .btn,
  .home-page .home11-konomachi .konomachi-action-row > .btn{
    border:0;
  }
  /* Unlike the other buttons, the orange consultation panel keeps its
     white OUTER outline and loses the duplicate white INNER inset. */
  .home-page .home11-contact .home11-btn-dark{
    box-shadow:0 3px 0 rgba(1,16,27,.16);
  }
}

/* In the stacked TOP layout, pairs share the entire available row.
   No change to the parent Service page's separate CTA row. */
@media (max-width:820px){
  .home-page .home11-work-actions,
  .home-page .home11-konomachi .konomachi-action-row{
    display:flex;
    flex-flow:row nowrap;
    align-items:stretch;
    width:100%;
    max-width:100%;
    gap:clamp(8px,2.5vw,16px);
  }
  .home-page .home11-work-actions > .btn,
  .home-page .home11-konomachi .konomachi-action-row > .btn{
    flex:1 1 0;
    width:0;
    min-width:0;
    max-width:none;
    box-sizing:border-box;
    padding-inline:clamp(4px,1.7vw,12px);
    white-space:normal;
    text-align:center;
  }
  .home-page .home11-konomachi .konomachi-action-row > .konomachi-pending-link{
    height:auto;
    min-height:54px;
    font-size:clamp(12px,3.4vw,16px);
  }
}

/* Editor-controlled responsive heading break.
   Add <br class="sp-only"> inside a Gutenberg heading's HTML.
   The line remains continuous on desktop and breaks only at <=820px.
   No automatic breaks or source-copy changes are introduced. */
br.sp-only{display:none!important;}
@media (max-width:820px){
  br.sp-only,
  .about-page .message-copy br.sp-only{display:initial!important;}
}


/* Service child pages: one content-driven pricing-card layout.
   Shared by SNS / YouTube / Movie. Never calculate vertical positions
   from fixed top/height values: editorial copy and list lengths can change. */
.sns-page .service-plan-card,
.youtube-page .service-plan-card,
.movie-page .service-plan-card{
  --service-plan-spacing:24px;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  box-sizing:border-box;
  min-width:0;
  min-height:0;
  height:auto;
}
.sns-page .service-plan-card > h3,
.youtube-page .service-plan-card > h3,
.movie-page .service-plan-card > h3{margin-bottom:8px;}
.sns-page .service-plan-description,
.youtube-page .service-plan-description,
.movie-page .service-plan-description{
  margin:0;
  min-height:0;
  max-width:100%;
  overflow-wrap:break-word;
}
.sns-page .service-plan-panel,
.sns-page .sns-price-card-secondary .service-plan-panel,
.youtube-page .service-plan-panel,
.movie-page .service-plan-panel,
.movie-page .movie-price-education .service-plan-panel,
.movie-page .movie-price-exhibition .service-plan-panel,
.movie-page .movie-price-town .service-plan-panel{
  position:relative;
  inset:auto;
  transform:none;
  flex:1 1 auto;
  box-sizing:border-box;
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
  height:auto;
  min-height:0;
  margin:var(--service-plan-spacing) 0 0;
  padding:24px 16px 16px;
}
/* A list and its fee are stacked in regular flow, with a consistent divider. */
.sns-page .service-plan-panel ul,
.youtube-page .service-plan-panel ul,
.movie-page .service-plan-panel ul{
  border-bottom:1px solid #b6772a;
  margin:0 0 16px;
  padding-bottom:14px;
  height:auto;
  max-width:100%;
}
.sns-page .service-plan-pricing{
  position:static;
  inset:auto;
  width:100%;
  height:auto;
  margin:0;
  transform:none;
}
.youtube-page .service-plan-fee-heading{margin:0 0 10px;}
.sns-page .sns-price-grid,
.movie-page .movie-pricing-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:stretch;
}
.youtube-page .service-plan-card{width:100%;max-width:580px;}
.youtube-page .service-plan-panel{margin-inline:0;}
.movie-page .movie-price-inner{margin-top:var(--service-plan-spacing);}

/* Modern grid subrows synchronize heading, summary and white-panel start
   across two cards without assigning a pixel height to either summary.
   Flex remains a readable fallback where subgrid is not supported. */
@supports (grid-template-rows:subgrid){
  @media (min-width:1101px){
    .sns-page .sns-price-grid,
    .movie-page .movie-pricing-grid{grid-auto-rows:auto;}
    .sns-page .service-plan-card,
    .movie-page .service-plan-card{
      display:grid;
      grid-template-rows:subgrid;
      grid-row:span 3;
      row-gap:0;
      align-content:stretch;
    }
    .sns-page .service-plan-card > h3,
    .movie-page .service-plan-card > h3{align-self:start;}
    .sns-page .service-plan-panel,
    .movie-page .service-plan-panel{align-self:stretch;}
  }
}

@media (max-width:1100px){
  .sns-page .sns-price-grid,
  .movie-page .movie-pricing-grid{grid-template-columns:minmax(0,1fr);}
}
@media (max-width:800px){
  .sns-page .service-plan-card,
  .youtube-page .service-plan-card,
  .movie-page .service-plan-card{--service-plan-spacing:18px;}
  .sns-page .service-plan-panel,
  .sns-page .sns-price-card-secondary .service-plan-panel,
  .youtube-page .service-plan-panel,
  .movie-page .service-plan-panel,
  .movie-page .movie-price-education .service-plan-panel,
  .movie-page .movie-price-exhibition .service-plan-panel,
  .movie-page .movie-price-town .service-plan-panel{
    padding:16px 12px;
    margin-top:var(--service-plan-spacing);
  }
  .sns-page .sns-price-value p{flex-wrap:wrap;}
  .youtube-page .service-plan-card{max-width:none;}
}
@media (max-width:620px){
  .movie-page .movie-price-inner dl>div{
    display:flex;
    flex-wrap:wrap;
    justify-content:space-between;
    gap:4px 12px;
  }
  .movie-page .movie-price-inner dd{white-space:normal;}
}
