:root{--ink:#333;--accent:#063994;--rule:#839bc7}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:#fff;font-family:"Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;font-size:16px;line-height:1.8125}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:5px}img{display:block;max-width:100%;height:auto}.container{width:calc(100% - 40px);max-width:1040px;margin-inline:auto}.site-header{height:80px}.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}.header-logo{width:300px;flex-shrink:0}.site-nav{display:flex;align-items:center;gap:20px;font-size:14px;white-space:nowrap}.current{color:var(--accent);font-weight:700}.site-nav a:hover,.footer-nav a:hover{text-decoration:underline}.menu-button{display:none}.intro{text-align:center;padding-top:88px;margin-bottom:96px}h1{font-size:36px;line-height:1.5;margin:0 0 24px;font-weight:700}.intro p{margin:0}.intro-line{display:block}.works{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:40px;row-gap:96px}.work-card{text-align:center;min-width:0}.work-card picture{display:block}.work-card img{width:100%}.work-card h2{font-size:20px;line-height:29px;margin:24px 0 0}.work-card p{font-size:16px;line-height:29px;margin:0}.work-card a:hover img{opacity:.85}.cta{text-align:center;margin-top:96px}.cta h2{font-size:28px;line-height:42px;border-bottom:1px solid var(--rule);padding-bottom:12px;margin:0 0 24px}.cta p{margin:0}.cta-quote{display:block;font-weight:700}.actions{display:flex;justify-content:center;gap:24px;margin-top:88px}.button{display:flex;justify-content:center;align-items:center;min-height:48px;width:288px;padding:8px 12px;border:1px solid var(--accent);border-radius:6px;color:var(--accent);font-weight:700;line-height:1.5}.button-primary{background:var(--accent);color:#fff}.button:hover{opacity:.8}.site-footer{margin-top:128px;padding:0 0 40px}.footer-inner{display:flex;align-items:center;gap:24px}.footer-logo{width:164px;flex-shrink:0}.footer-nav{display:flex;gap:16px;font-size:14px}.copyright{font-size:14px;margin:0 0 0 auto;white-space:nowrap}.skip-link{position:absolute;top:-100px;left:20px;background:#fff;padding:8px;z-index:20}.skip-link:focus{top:8px}.menu-backdrop{display:none}
@media(max-width:1100px) and (min-width:768px){.header-logo{width:240px}.site-nav{gap:12px}.footer-inner{flex-wrap:wrap}.copyright{width:100%;text-align:right}.works{column-gap:24px}}
@media(max-width:767px){.site-header{height:64px}.header-logo{width:164px}.menu-button{display:flex;position:relative;z-index:12;align-items:center;justify-content:center;width:48px;height:48px;border:0;background:transparent;cursor:pointer;color:#888}.menu-icon,.menu-icon:before,.menu-icon:after{display:block;position:absolute;width:24px;height:3px;background:currentColor;content:""}.menu-icon:before{top:-7px}.menu-icon:after{top:7px}.menu-button[aria-expanded=true] .menu-icon{background:transparent}.menu-button[aria-expanded=true] .menu-icon:before{top:0;transform:rotate(45deg)}.menu-button[aria-expanded=true] .menu-icon:after{top:0;transform:rotate(-45deg)}.js .site-nav{position:fixed;right:0;top:64px;bottom:0;width:min(320px,100%);padding:24px;z-index:11;background:#fff;flex-direction:column;align-items:stretch;gap:0;transform:translateX(100%);visibility:hidden;transition:transform .2s,visibility .2s;font-size:16px;white-space:normal}.js .site-nav.is-open{transform:translateX(0);visibility:visible}.site-nav a{padding:16px 0;border-bottom:1px solid #ccc}.menu-backdrop.is-open{display:block;position:fixed;inset:64px 0 0;background:#0005;z-index:10}.menu-open{overflow:hidden}html:not(.js) .site-header{height:auto}html:not(.js) .header-inner{flex-wrap:wrap}html:not(.js) .site-nav{display:flex;flex-wrap:wrap}html:not(.js) .menu-button{display:none}.intro{padding-top:48px;margin-bottom:48px;text-align:left}h1{text-align:center;font-size:30px;line-height:42px;margin-bottom:40px}.intro-line{display:inline}.works{display:grid;grid-template-columns:1fr;row-gap:32px}.work-card h2{font-size:19px;line-height:29px;margin-top:16px}.work-card p{font-size:16px;line-height:29px}.cta{margin-top:64px}.cta h2{font-size:24px;line-height:36px;padding:0 0 12px}.cta h2 span{display:block}.cta-quote{display:block}.actions{flex-direction:column;align-items:center;gap:24px;margin-top:64px}.button{max-width:100%;width:288px}.site-footer{margin-top:64px;padding-bottom:24px}.footer-inner{display:flex;flex-direction:column;gap:0}.footer-logo{width:184px;margin-bottom:16px}.footer-nav{width:100%;flex-direction:column;gap:0;text-align:center}.footer-nav a{border-top:1px solid #aaa;padding:8px 0}.footer-nav a:last-child{border-bottom:1px solid #aaa}.copyright{margin:16px 0 0;font-size:14px;text-align:center}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important}}

/* サービス・料金ページ */
.services-page{padding-top:88px}.page-title{margin:0 0 96px;text-align:center}.service-section{margin-top:96px}.service-section h2{font-size:28px;line-height:42px;text-align:center;border-bottom:1px solid var(--rule);padding-bottom:12px;margin:0 0 24px}.body-copy{max-width:700px;margin-inline:auto}.body-copy p{margin:0 0 24px}.body-copy p:last-child{margin-bottom:0}.body-copy h3{font-size:20px;line-height:29px;margin:32px 0 16px}.shaded-list{list-style-type:square;background:#f7f7f7;margin:0 0 24px;padding:16px 24px 16px 36px}.shaded-list li{padding-left:0}.plan-box{border:1px solid #888;margin-top:96px;padding:32px 24px}.plan-box h2{color:var(--accent);font-size:28px;line-height:36px;text-align:center;margin:0}.plan-box .plan-price{font-size:40px;line-height:48px;font-weight:700;color:var(--accent);text-align:center;margin:0 0 24px}.plan-price span{font-size:18px;font-weight:400}.plan-box .body-copy>p:nth-of-type(2){font-weight:700;text-align:center}.plan-box .body-copy>p:nth-of-type(3){text-align:center;font-weight:700;background:#e5e5e5;border-block:1px solid #888;padding:8px 16px;margin:0}.plan-box ul{columns:2;border-bottom:1px solid #aaa;padding-block:12px}.plan-box li{break-inside:avoid}.plan-box .body-copy>p:last-child{text-align:center;font-size:14px}.price-table{border-collapse:collapse;width:100%;margin:0 0 24px;table-layout:fixed}.price-table th,.price-table td{border-block:1px solid #888;padding:12px 16px;text-align:left;font-weight:400;overflow-wrap:anywhere}.price-table thead{background:#e5e5e5}.price-table thead th{font-weight:700}.price-table th+th,.price-table td{border-left:1px solid #aaa;text-align:right}.process{max-width:400px;margin:0 auto;padding:0;list-style:none;text-align:center;font-weight:700}.process li{position:relative;background:#f7f7f7;padding:8px 16px;margin-bottom:20px}.process li:not(:last-child):after{content:"";position:absolute;bottom:-14px;left:calc(50% - 10px);border-left:10px solid transparent;border-right:10px solid transparent;border-top:8px solid #888}.service-action{display:flex;justify-content:center;margin-top:88px}
@media(max-width:767px){.services-page{padding-top:48px}.page-title{margin-bottom:64px;max-width:320px;margin-inline:auto}.service-section{margin-top:64px}.service-section h2{font-size:24px;line-height:36px;text-align:left}.body-copy h3{font-size:19px;line-height:29px}.shaded-list{padding:16px 16px 16px 32px}.plan-box{margin-top:64px;padding:24px 16px}.plan-box h2{font-size:24px;line-height:36px}.plan-box .plan-price{font-size:36px;line-height:44px}.plan-price span{font-size:16px}.plan-box ul{columns:1}.plan-box .body-copy>p:nth-of-type(2),.plan-box .body-copy>p:last-child{text-align:left}.price-table th,.price-table td{padding:12px 16px}.price-table thead th{font-size:14px}.process{max-width:100%}.service-action{margin-top:64px}}

/* お問い合わせフォーム */
.contact-page{padding-top:88px}.contact-section h2{font-size:28px;line-height:42px;border-bottom:1px solid var(--rule);padding:0 0 12px;margin:0 0 24px;text-indent:calc((100% - 700px)/2)}.form-field{margin-bottom:32px}.form-field>label{display:block;font-weight:700}.required-label{color:#c62828;font-weight:400}.optional-label{color:#666;font-weight:400}.field-note{font-size:14px;line-height:1.7}.body-copy .field-note{margin:0}.form-field input:not([type=checkbox]),.form-field select,.form-field textarea{display:block;width:100%;border:1px solid #bdbdbd;background:#fff;border-radius:0;color:#333;font:inherit;padding:8px 16px;min-height:48px}.form-field textarea{min-height:240px;resize:vertical}.form-field select{cursor:pointer}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:2px solid var(--accent);outline-offset:2px}.checkbox-label{display:flex;align-items:flex-start;gap:8px;font-weight:700;cursor:pointer}.checkbox-label input{flex-shrink:0;width:18px;height:18px;margin:5px 0 0;accent-color:var(--accent)}.form-field>.checkbox-label{display:flex}.body-copy .privacy-link{margin:0;font-weight:700}.privacy-link a:hover{text-decoration:underline}.body-copy .materials-note{margin-bottom:8px}.contact-action{display:flex;align-items:center;flex-direction:column;gap:16px;margin-top:88px;text-align:center}.contact-action button{font-family:inherit;font-size:16px;cursor:pointer}.preview-status{border:1px solid var(--rule);background:#f7f7f7;padding:16px}.preview-status[hidden]{display:none}
@media(max-width:767px){.contact-page{padding-top:48px}.contact-page .page-title{max-width:350px}.contact-section h2{font-size:24px;line-height:36px;text-indent:0}.form-field{margin-bottom:32px}.form-field textarea{min-height:240px}.contact-action{margin-top:48px}.checkbox-label{gap:8px}}

/* 個人情報の取り扱い */
.privacy-page{padding-top:88px}.privacy-page .page-title{margin-bottom:24px}.privacy-intro{margin-top:0;margin-bottom:0}.privacy-section{margin-top:96px}.privacy-section h2{font-size:28px;line-height:42px;border-bottom:1px solid var(--rule);padding:0 0 12px;margin:0 0 24px;text-indent:calc((100% - 700px)/2)}.privacy-list{list-style-type:square;padding-left:24px;margin:0 0 24px}.privacy-contact-link a{font-weight:700}.privacy-contact-link a:hover{text-decoration:underline}
@media(max-width:767px){.privacy-page{padding-top:48px}.privacy-page .page-title{font-size:30px;line-height:42px;max-width:none}.privacy-section{margin-top:64px}.privacy-section h2{font-size:24px;line-height:36px;text-indent:0}}

/* 制作実績の詳細ページ */
.work-page{padding-top:64px}.work-heading{text-align:center}.work-heading p{font-weight:700;margin:0 0 8px}.work-heading h1{margin:0;font-size:36px;line-height:48px}.cd-hero{width:760px;max-width:100%;margin:24px auto 48px}.cd-hero img{width:100%}.work-section{margin-top:96px}.cd-page .work-section:first-of-type{margin-top:0}.work-section h2{font-size:28px;line-height:42px;margin:0 0 24px;border-bottom:1px solid var(--rule);padding-bottom:12px}.work-section h2>span{display:block;max-width:700px;margin-inline:auto}.work-section h3{font-size:20px;line-height:29px;margin:32px 0 16px}.draft-image{width:510px;max-width:100%;margin:0 auto 24px}.proposal-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:24px}.proposal-grid h3{font-size:20px;text-align:center;margin:0 0 16px}.proposal-grid img{width:100%}.package-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:24px;align-items:end}.work-page figure{margin:0}.work-page figure img{width:100%;object-fit:contain}.work-page figcaption{font-size:14px;text-align:center;margin-top:8px}.booklets{display:grid;gap:32px;margin-bottom:32px}.overview-table{width:100%;border-collapse:collapse;margin-top:32px;table-layout:fixed}.overview-table caption{font-weight:700;text-align:left;background:#e5e5e5;padding:8px 16px;border-block:1px solid #888}.overview-table th,.overview-table td{border-bottom:1px solid #888;padding:12px 16px;text-align:left;font-weight:400;overflow-wrap:anywhere}.overview-table th{width:170px;background:#f7f7f7;border-right:1px solid #aaa}.work-list{list-style-type:square;padding-left:24px;margin:0}.work-actions{display:flex;flex-direction:column;align-items:center;gap:24px;margin-top:88px}
@media(max-width:767px){.work-page{padding-top:32px}.work-heading h1{font-size:30px;line-height:42px}.work-heading p{font-size:14px}.cd-hero{margin:16px auto 32px}.work-section{margin-top:64px}.work-section h2{font-size:24px;line-height:36px}.work-section h3{font-size:19px;line-height:29px}.proposal-grid{grid-template-columns:1fr;gap:24px}.proposal-grid h3{font-size:19px;text-align:left}.proposal-grid img{max-width:280px;margin-inline:auto}.draft-image{max-width:280px}.package-grid{gap:16px}.work-page figcaption{font-size:12px}.booklets{gap:24px}.overview-table th,.overview-table td{display:block;width:100%;border-right:0}.overview-table th{text-align:center;padding:8px 16px}.overview-table caption{text-align:center}.work-actions{margin-top:64px}}

/* プロフィールシート */
.prof-hero{width:562px;max-width:100%;margin:80px auto 96px}.prof-hero img{width:100%}.prof-page .work-section:first-of-type{margin-top:0}.prof-details{margin:32px auto 0;display:grid;gap:32px}.prof-cta{margin:96px auto 0;max-width:900px;text-align:center;font-weight:700;font-size:20px;line-height:32px}.prof-cta p{margin:0}.prof-page .overview-table{margin-bottom:0}.prof-page .work-heading h1{line-height:1.5}
@media(max-width:767px){.prof-hero{width:310px;max-width:100%;margin:48px auto 48px}.prof-page .work-heading h1{line-height:42px}.prof-details{gap:24px;margin-top:24px}.prof-cta{margin-top:64px;font-size:19px;line-height:29px}.prof-page .overview-table{margin-top:32px}}

/* 会社案内 */
.company-hero{max-width:100%;width:1000px;margin:24px auto 80px}.company-hero img{width:100%}.company-page .work-section:first-of-type{margin-top:0}.company-cover-layout{display:grid;grid-template-columns:44% 1fr;grid-template-rows:auto 1fr;column-gap:24px;align-items:start}.company-cover-image{grid-column:1;grid-row:1/3}.company-cover-heading{grid-column:2;grid-row:1}.company-cover-heading h3{margin:0 0 8px}.company-cover-heading .cover-caption{font-weight:700;margin:0 0 24px}.company-cover-copy{grid-column:2;grid-row:2}.company-cover-copy p{margin:0 0 24px}.company-inside{display:block;margin-bottom:24px}.company-inside img{width:100%}.company-cta{max-width:900px;margin:96px auto 0;text-align:center;font-size:20px;line-height:32px;font-weight:700}.company-cta p{margin:0}.company-page .overview-table{margin-bottom:0}
@media(max-width:767px){.company-hero{margin:24px auto 48px}.company-cover-layout{display:flex;flex-direction:column;gap:0}.company-cover-heading{order:0}.company-cover-heading h3{margin:0 0 8px}.company-cover-image{order:1;margin-bottom:24px;width:100%}.company-cover-image img{width:100%}.company-cover-copy{order:2}.company-cta{margin-top:64px;font-size:19px;line-height:29px}}

/* バレエ発表会 */
.ballet-hero{position:relative;width:790px;max-width:100%;margin:32px auto 96px!important;padding-bottom:24px}.ballet-hero img{width:100%}.ballet-hero figcaption{margin:0}.ballet-hero figcaption span{position:absolute;font-size:14px}.hero-poster{left:28%;bottom:0}.hero-flyer{right:1%;top:50%}.hero-program{right:3%;bottom:0}.ballet-page .work-section:first-of-type{margin-top:0}.ballet-details{display:grid;gap:32px;margin-top:32px}.ballet-page .overview-table{margin-bottom:0}.ballet-cta{max-width:900px;margin:96px auto 0;text-align:center;font-size:20px;line-height:32px;font-weight:700}.ballet-cta p{margin:0 0 24px}
@media(max-width:767px){.ballet-hero{margin:48px auto 64px!important}.ballet-hero figcaption span{font-size:12px}.hero-poster{left:auto;right:10%;top:52%;bottom:auto}.hero-flyer{left:10%;right:auto;top:auto;bottom:0}.hero-program{right:0;bottom:0}.ballet-details{gap:24px;margin-top:24px}.ballet-cta{margin-top:64px;font-size:19px;line-height:29px;text-align:left}}

/* メイン画像本体を基準にキャプションを配置 */
.ballet-hero{padding-bottom:32px}.ballet-hero-art{position:relative}.ballet-hero-art picture{display:block}.ballet-hero figcaption span{line-height:20px;white-space:nowrap;transform:translateX(-50%);right:auto;bottom:auto}.ballet-hero .hero-poster{left:34%;top:calc(100% + 8px)}.ballet-hero .hero-flyer{left:88%;top:49%}.ballet-hero .hero-program{left:82%;top:calc(100% + 8px)}
@media(max-width:767px){.ballet-hero .hero-poster{left:73%;top:59.2%}.ballet-hero .hero-flyer{left:27%;top:calc(100% + 8px)}.ballet-hero .hero-program{left:76%;top:calc(100% + 8px)}}

/* 画像に含まれる白余白を除いた作品下端に合わせる */
.ballet-hero .hero-poster,.ballet-hero .hero-program{top:calc(92% + 8px)}
@media(max-width:767px){.ballet-hero .hero-poster{top:59.2%}.ballet-hero .hero-flyer{top:calc(94.6% + 8px)}.ballet-hero .hero-program{top:calc(95.8% + 8px)}}

/* ラジオ局季刊情報誌 */
.radio-hero{margin:80px auto 96px}.radio-hero img{width:100%}.radio-hero figcaption{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-top:8px}.radio-covers-sp{display:none}.radio-page .work-section:first-of-type{margin-top:0}.work-page .radio-inside{margin-top:96px}.radio-inside picture{display:block}.radio-inside figcaption{margin:16px auto 0;max-width:700px}.radio-overview{margin-top:96px}.radio-overview .overview-table{margin:0}.radio-cta{max-width:900px;margin:96px auto 0;text-align:center;font-size:20px;line-height:32px;font-weight:700}.radio-cta p{margin:0}.radio-cta p+p{margin-top:8px}
@media(max-width:767px){.radio-hero{margin:40px auto 64px}.radio-covers-pc{display:none}.radio-covers-sp{display:grid;gap:24px}.radio-hero figcaption{grid-template-columns:repeat(2,minmax(0,1fr));font-size:14px;line-height:20px}.work-page .radio-inside{margin-top:64px}.radio-inside figcaption{text-align:left;font-size:14px;line-height:24px;margin-top:16px}.radio-overview{margin-top:64px}.radio-cta{margin-top:64px;font-size:19px;line-height:29px}.radio-cta p+p{margin-top:8px}}

/* サイン・屋外広告 */
.signs-intro{margin-top:24px;text-align:center}.signs-intro p{margin:0}.signs-hero{margin:24px auto 0}.signs-page picture{display:block}.signs-page img{width:100%}.work-page .signs-detail{margin-top:24px}.signs-detail figcaption{text-align:right;font-size:14px;line-height:24px;margin-top:8px}.signs-cta{max-width:900px;margin:96px auto 0;text-align:center;font-size:20px;line-height:32px;font-weight:700}.signs-cta p{margin:0}.signs-cta p+p{margin-top:8px}.signs-cta .signs-note{font-size:14px;line-height:24px;font-weight:400}
@media(max-width:767px){.signs-intro{text-align:left;margin-top:24px;font-size:14px;line-height:24px}.signs-hero{margin-top:24px}.work-page .signs-detail{margin-top:24px}.signs-detail figcaption{text-align:left;font-size:12px;line-height:20px}.signs-cta{margin-top:64px;text-align:left;font-size:19px;line-height:29px}.signs-cta .signs-note{font-size:14px;line-height:24px}}

/* PC・SP別の任意改行 */
br.break-pc{display:initial}br.break-sp{display:none}
@media(max-width:767px){br.break-pc{display:none}br.break-sp{display:initial}}

/* 入力内容を保持した個人情報の確認 */
.privacy-modal-open{overflow:hidden}.privacy-dialog{box-sizing:border-box;width:calc(100% - 40px);max-width:800px;max-height:85vh;max-height:85dvh;margin:auto;padding:0;border:1px solid var(--rule);border-radius:6px;background:#fff;color:var(--text,#333);overscroll-behavior:contain}.privacy-dialog:not([open]){display:none}.privacy-dialog::backdrop{background:#0008}.privacy-dialog-header{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;background:#fff;border-bottom:1px solid var(--rule)}.privacy-dialog-header h2{margin:0;font-size:24px;line-height:36px}.privacy-close{flex-shrink:0;min-width:64px;min-height:44px;padding:8px;border:1px solid var(--accent);border-radius:6px;background:#fff;color:var(--accent);font:inherit;cursor:pointer}.privacy-dialog-content{padding:24px}.privacy-dialog .privacy-section{margin-top:32px}.privacy-dialog .privacy-section h3{font-size:20px;line-height:29px;margin:0 0 16px;padding-bottom:8px;border-bottom:1px solid var(--rule)}.privacy-dialog-footer{display:flex;justify-content:center;padding:8px 24px 24px}.privacy-return{font:inherit;cursor:pointer}.privacy-contact-link .privacy-return{border:0;background:none;color:var(--accent);padding:0;text-decoration:underline;font-weight:700;min-height:44px}.privacy-dialog-footer .button{background:#fff}.privacy-dialog :focus-visible{outline:2px solid var(--accent);outline-offset:3px}.privacy-open-note{margin:4px 0 8px}
@media(max-width:767px){.privacy-dialog{width:calc(100% - 24px);max-height:90vh;max-height:90dvh}.privacy-dialog-header{padding:12px 16px;gap:8px}.privacy-dialog-header h2{font-size:20px;line-height:29px}.privacy-dialog-content{padding:24px 16px}.privacy-dialog .privacy-section h3{font-size:19px}.privacy-dialog-footer{padding:8px 16px 24px}}

/* SPの実績ページCTAは左揃えで統一。ボタンは中央配置を維持。 */
@media(max-width:767px){.prof-cta,.company-cta,.ballet-cta,.radio-cta,.signs-cta,.cd-cta{text-align:left}}
