/* v16 — typography, illustration scale, shared tag baselines and distribution. */
:root{--hero-yellow:#ffd34d;--rate-cream:#eee1c9}
.hero .line-one,.hero .line-two,.hero .line-two strong,.hero .hero-term{color:var(--hero-yellow)}
.hero .copy{position:relative;gap:0}
.hero .headline{padding-right:0}
.hero .cta{position:absolute;right:0;bottom:10px;width:294px;height:50px;background:var(--warm);color:var(--ink);font-size:14px}
.hero .cta:hover{background:#ffb360}
.intro-video-copy{text-align:center}
.intro-video-copy>p{display:none}
.intro-video-copy h2{font-size:32px;line-height:44px;white-space:nowrap;letter-spacing:-.025em;color:var(--strategy-cream)}
.intro-video-copy h2 .strategy-prefix{color:white}
.strategy-step{gap:10px}
.strategy-visual{height:208px;margin:0}
.strategy-step .strategy-visual img{flex:none;width:208px;height:208px;margin:0;max-width:none}
.strategy-visual.is-double img+img{margin-left:-66px}
.strategy-info{display:grid;grid-template-columns:146px 1fr;gap:12px;align-items:center}
.strategy-card-title{flex-direction:column;align-items:flex-start;gap:4px;margin:0}
.strategy-step-number{width:26px;height:26px;font-size:12px}
.strategy-step h3{font-size:19px;line-height:26px;margin:0;white-space:nowrap}
.strategy-info p{font-size:14px;line-height:20px;border-left:1px solid #d7e4ea;padding-left:12px;margin:0;min-height:54px;display:flex;align-items:center}
.work-row{align-items:stretch}
.work-card{display:flex;flex-direction:column}
.work-body{flex:1;justify-content:space-between;gap:10px}
.work-meta{display:flex;flex-direction:column;gap:5px}
.work-tags{margin-top:auto}
.works .work-body{background:var(--sand)}
.event-flow{display:grid;grid-template-columns:minmax(0,344fr) 80px minmax(0,344fr) 80px minmax(0,344fr);gap:22px;align-items:center}
.event-step-number{font-size:50px;line-height:64px;min-width:62px;color:var(--warm);letter-spacing:-.03em}
.event-step{gap:14px;align-items:center}
.event-next{width:80px;height:24px;display:block}
.event-next svg{display:block;width:100%;height:100%;overflow:visible}
.event-next .dotted-path{stroke-dasharray:2 9;stroke-linecap:round;animation:delivery-dots 2.8s linear infinite}
@keyframes delivery-dots{to{stroke-dashoffset:-44}}
body.paused .dotted-path{animation-play-state:paused}
.distribution{position:relative;padding:64px 80px;background:var(--sand);overflow:hidden}
.distribution:before{content:"";position:absolute;left:0;right:0;top:155px;height:552px;background:white;border-radius:50% 35% 35% 50%/5% 5% 5% 5%}
.distribution-heading,.distribution-row,.related-services{position:relative;z-index:1}
.distribution-heading{text-align:center;margin-bottom:36px}
.distribution-heading h2{font-size:44px;line-height:1.35;margin:0 0 12px}
.distribution-heading p{font-size:17px;line-height:26px;margin:0;color:var(--body)}
.distribution-row{display:grid;grid-template-columns:minmax(0,660fr) minmax(0,580fr);gap:40px;align-items:center}
.distribution-art{width:100%;height:auto;display:block}
.distribution-copy h3{font-size:28px;line-height:40px;margin:0 0 16px}
.distribution-items{margin:0;padding:0;list-style:none}
.distribution-items li{display:flex;gap:18px;padding:20px 0;border-bottom:1px solid #d7e4ea;align-items:flex-start}
.distribution-items li:last-child{border-bottom:0}
.distribution-num{display:grid;place-content:center;flex:none;width:38px;height:38px;border-radius:50%;background:var(--ink);color:white;font-weight:700;font-size:15px}
.distribution-items h4{font-size:21px;line-height:30px;margin:0 0 6px}
.distribution-items p{font-size:16px;line-height:24px;color:var(--body);margin:0}
.related-services{display:flex;flex-direction:column;gap:24px;margin-top:36px}
.service-banner{display:grid;grid-template-columns:minmax(0,628fr) minmax(0,560fr);gap:48px;align-items:center;min-height:260px;padding-left:44px;border-radius:32px;overflow:hidden;box-shadow:0 8px 0 #123d5910}
.service-banner.is-shiruno{background:linear-gradient(90deg,#103f78,#1d7ab8 56%,#399ed8);color:white}
.service-banner.is-tsuzuki{background:linear-gradient(90deg,#f3a042,#d85224);color:var(--ink)}
.banner-copy{padding:20px 0;min-width:0}.banner-copy>img{display:block;width:192px;height:48px;object-fit:contain;object-position:left center;margin-bottom:8px}
.banner-copy .tsuzuki-banner-logo{width:238px;height:80px}
.banner-title{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:28px;line-height:42px;font-weight:700}
.banner-arrow{display:grid;place-content:center;flex:none;width:44px;height:44px;border-radius:50%;background:white;color:var(--ink);font-size:18px}
.is-tsuzuki .banner-arrow{background:var(--ink);color:white}
.banner-copy p{font-size:16px;line-height:24px;margin:8px 0 0}.banner-copy .banner-small{font-size:14px;line-height:21px;font-weight:700}
.banner-visual{height:260px;position:relative;min-width:0;background:radial-gradient(ellipse at 75% 65%,#ffffff20 0%,#ffffff20 50%,transparent 51%)}
.banner-pc{position:absolute;top:18px;left:15%;width:61%;padding:7px;background:var(--ink);border-radius:10px}.banner-pc img{width:100%;display:block;border-radius:4px}
.banner-pc:after{content:"";position:absolute;left:-8%;right:-8%;height:10px;bottom:-12px;background:#decaa3;border-radius:5px}
.banner-cast{position:absolute;left:2%;right:2%;bottom:12px;width:96%;height:179px;object-fit:contain;object-position:center bottom}
.banner-stage{position:absolute;left:0;bottom:0;right:0;height:12px;background:#fbe2b3}
.rates{padding:40px 80px;background:var(--sand)}
.rates h2{font-size:36px;line-height:54px;margin:0 0 20px}
.rates-lead{font-size:16px;line-height:24px;margin:0 0 20px;color:var(--body)}
.rate-table-wrap{overflow:auto}
.rate-table{width:100%;border-collapse:collapse;table-layout:fixed;min-width:890px;font-size:14px;line-height:24px}
.rate-table .rate-service{width:280px}.rate-table .rate-price{width:236px}.rate-table .rate-details{width:160px}
.rate-table thead{background:var(--rate-cream);color:var(--ink);text-align:left}
.rate-table th,.rate-table td{padding:12px;border-bottom:1px solid var(--rate-cream);vertical-align:middle}
.rate-table th{font-size:15px;font-weight:700;text-align:left}
.rate-table tbody td:nth-child(2){font-size:17px;font-weight:700;white-space:nowrap}
.rate-table tbody td:nth-child(3){color:var(--body)}
.rate-table tbody tr:nth-child(odd){background:white}
.rate-table tbody tr.cm-rate{background:var(--rate-cream);height:56px}
.rate-table .detail-link{display:flex;align-items:center;justify-content:center;gap:10px;border-radius:17px;background:var(--warm);height:34px;width:136px;font-size:13px;font-weight:700;color:var(--ink);white-space:nowrap}
.rate-table .detail-link:hover{background:#ffb360}
.rates-bottom{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:20px}
.rates-bottom p{font-size:16px;line-height:26px;color:var(--body);margin:0}
.rates-bottom .cta{flex:none}
@media(max-width:1250px){.hero .line-two strong,.hero .hero-term{font-size:clamp(55px,7.1vw,88px)}.hero .line-two{font-size:clamp(38px,4.45vw,56px)}.hero .cta{width:260px;font-size:13px}.intro-video-copy h2{font-size:clamp(21px,2.4vw,30px)}.strategy-info{grid-template-columns:124px 1fr;gap:10px}.strategy-step h3{font-size:17px}.strategy-info p{font-size:13px;padding-left:10px}.event-flow{gap:14px;grid-template-columns:1fr 48px 1fr 48px 1fr}.event-next{width:48px}}
@media(max-width:1000px){.hero .cta{position:static;align-self:flex-end;margin-top:12px}.intro-video-copy h2{white-space:normal;line-height:1.45}.strategy-info{display:flex;flex-direction:column;align-items:stretch;gap:8px}.strategy-card-title{flex-direction:row;align-items:center}.strategy-info p{border-left:0;border-top:1px solid #d7e4ea;padding:8px 0 0;min-height:0}.distribution{padding:48px 32px}.distribution-row{gap:24px;grid-template-columns:1fr 1fr}.distribution-copy h3{font-size:24px}.distribution-items h4{font-size:18px}.distribution-items p{font-size:14px}.service-banner{padding-left:28px;gap:24px}.banner-title{font-size:24px}.rates{padding:40px 32px}.rates-bottom{flex-wrap:wrap}.event-step h3{font-size:18px}.event-step-number{font-size:42px;min-width:50px}}
@media(max-width:700px){.hero .line-two strong,.hero .hero-term{font-size:clamp(42px,11vw,72px)}.hero .line-two{font-size:clamp(28px,7vw,42px);white-space:normal}.hero .hero-term{display:block}.hero .cta{align-self:flex-start;width:294px;margin-top:16px}.strategy-flow{grid-template-columns:1fr}.strategy-step{display:grid;grid-template-columns:160px 1fr;gap:16px;align-items:center}.strategy-visual{width:160px;height:160px;flex-direction:row}.strategy-step .strategy-visual img{width:160px;height:160px}.strategy-visual.is-double img{width:120px;height:160px}.strategy-visual.is-double img+img{margin-left:-65px}.strategy-step h3{font-size:19px}.strategy-card-title{flex-direction:column;align-items:flex-start}.strategy-info p{line-height:20px}.strategy-step:not(:last-child)::after{left:50%;right:auto;top:auto;bottom:-22px}.event-flow{grid-template-columns:1fr;gap:12px}.event-next{justify-self:start;margin-left:30px;width:62px;transform:rotate(90deg)}.event-step-number{font-size:50px;min-width:62px}.distribution{padding:44px 24px}.distribution-heading h2{font-size:30px}.distribution-heading p{font-size:15px}.distribution-row{grid-template-columns:1fr;gap:20px}.distribution-copy h3{font-size:25px}.distribution:before{top:140px;height:1000px}.distribution-items h4{font-size:19px}.distribution-items p{font-size:15px}.service-banner{grid-template-columns:1fr;gap:0;padding:24px;border-radius:24px;min-height:0}.banner-copy{padding:0}.banner-title{font-size:22px;line-height:1.4}.banner-copy p{font-size:14px}.banner-visual{height:220px}.banner-cast{height:165px}.banner-pc{width:70%;left:15%}.rates{padding:40px 24px}.rates h2{font-size:30px}.rates-lead{font-size:14px}.rates-bottom .cta{max-width:100%}}
@media(prefers-reduced-motion:reduce){body:not(.motion-enabled) .dotted-path{animation:none}}
