/*
Theme Name: TSbrain Modern
Theme URI: https://tsbrain.co.jp/
Author: OpenAI for TSbrain
Description: TSbrain向け公式サイト一式。トップ、本部支援、加盟支援、ブログ、会社案内、お問い合わせ、個人情報保護方針を収録。
Version: 3.4.0
Text Domain: tsbrain
*/
:root{--navy:#142b4f;--navy2:#0e203c;--blue:#4f83c2;--purple:#5b4aa8;--red:#e45b61;--ink:#1d2939;--muted:#667085;--line:#e4e9f1;--soft:#f5f7fb;--white:#fff;--max:1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;line-height:1.85;background:#fff;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}.container{width:min(var(--max),calc(100% - 48px));margin:auto}.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border-bottom:1px solid rgba(20,43,79,.08)}.admin-bar .site-header{top:32px}.header-inner{height:88px;display:flex;align-items:center;gap:28px}.brand{display:flex;align-items:center;flex:0 0 auto}.brand img,.brand .custom-logo{width:205px;max-height:62px;object-fit:contain;display:block}.nav{margin-left:auto}.nav ul{display:flex;list-style:none;margin:0;padding:0;gap:24px;align-items:center}.nav li{margin:0}.nav a{font-size:13px;font-weight:750;color:#344054;white-space:nowrap;position:relative;padding:33px 0}.nav a:after{content:"";position:absolute;left:0;right:100%;bottom:25px;height:2px;background:var(--purple);transition:.2s}.nav a:hover{color:var(--navy)}.nav a:hover:after{right:0}.header-cta,.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:8px;padding:13px 22px;font-weight:800;transition:.2s}.header-cta{background:var(--navy);color:#fff;font-size:13px;padding:12px 18px}.header-cta:hover,.btn-primary:hover{background:#0b1d37}.btn-primary{background:var(--navy);color:#fff}.btn-secondary{border:1px solid #cfd6e2;background:#fff;color:var(--navy)}.btn:hover{transform:translateY(-2px)}.mobile-contact-link{display:none}.menu-toggle{display:none;margin-left:auto;width:44px;height:44px;border:0;background:none;padding:8px}.menu-toggle span{display:block;height:2px;background:var(--navy);margin:6px 0;transition:.2s}
.hero{position:relative;overflow:hidden;background:linear-gradient(125deg,#f7f9fd 0%,#eef4fb 56%,#f7f5ff 100%);padding:100px 0 92px}.hero:before{content:"";position:absolute;width:560px;height:560px;border-radius:50%;border:100px solid rgba(91,74,168,.035);right:-210px;top:-260px}.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;align-items:center;gap:74px;position:relative}.eyebrow,.kicker{font-size:12px;font-weight:900;color:var(--purple);letter-spacing:.16em}.hero h1{font-size:clamp(44px,4.5vw,64px);line-height:1.24;letter-spacing:-.035em;margin:16px 0 24px;color:var(--navy);font-weight:850}.hero h1 span{white-space:nowrap}.hero p{font-size:17px;color:#475467;max-width:620px;margin:0}.hero-actions{display:flex;gap:12px;margin-top:32px}.hero-trust{display:flex;gap:0;margin-top:32px;color:#667085;font-size:12px;font-weight:700}.hero-trust span{padding:0 14px;border-left:1px solid #cfd6e2}.hero-trust span:first-child{padding-left:0;border-left:0}.hero-visual{position:relative;padding:18px 0}.hero-image-wrap{border-radius:22px;overflow:hidden;box-shadow:0 30px 70px rgba(20,43,79,.18);background:#fff}.hero-visual img{display:block;width:100%;aspect-ratio:1.48/1;object-fit:cover}.hero-badge{position:absolute;left:-34px;bottom:-2px;background:#fff;padding:15px 20px;border-radius:12px;box-shadow:0 14px 40px rgba(20,43,79,.16);color:var(--navy);display:flex;flex-direction:column}.hero-badge b{font-size:15px}.hero-badge small{font-size:11px;color:#667085;font-weight:700}
section{padding:92px 0}.section-head{text-align:center;max-width:820px;margin:0 auto 50px}.section-head.left{text-align:left;margin-left:0;max-width:720px}.section-head .kicker{display:block}.section-head h2{font-size:clamp(30px,3.5vw,43px);line-height:1.4;color:var(--navy);margin:9px 0 14px;letter-spacing:-.02em}.section-head p{color:var(--muted);margin:0}.audience-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.audience-card{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 12px 36px rgba(16,24,40,.055);transition:.25s}.audience-card:hover{transform:translateY(-5px);box-shadow:0 22px 50px rgba(16,24,40,.1)}.audience-image{overflow:hidden;background:#f8fafc}.audience-card img{width:100%;aspect-ratio:16/7.4;object-fit:cover;display:block;transition:.35s}.audience-card:hover img{transform:scale(1.02)}.audience-copy{padding:28px 30px 31px;border-top:4px solid var(--red)}.franchisee-card .audience-copy{border-top-color:#78a1e6}.audience-label{font-size:11px;letter-spacing:.13em;font-weight:900;color:var(--red)}.franchisee-card .audience-label{color:#5e8bd5}.audience-copy h3{margin:6px 0 9px;color:var(--navy);font-size:24px}.audience-copy p{color:var(--muted);margin:0 0 18px;font-size:14px}.text-link{color:var(--purple);font-weight:800;font-size:14px}.text-link b{margin-left:4px}.services{background:var(--soft)}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.service{padding:30px 28px;background:#fff;border:1px solid var(--line);border-radius:14px;min-height:200px;transition:.2s}.service:hover{border-color:#cdd6e5;transform:translateY(-3px)}.service-num{font-size:12px;font-weight:900;color:var(--red);letter-spacing:.12em}.service h3{color:var(--navy);font-size:20px;margin:10px 0 8px}.service p{font-size:14px;color:var(--muted);margin:0}.franchise-about{background:#fff}.about-grid{display:grid;grid-template-columns:.88fr 1.12fr;gap:70px;align-items:center}.about-visual{background:#f3f6fb;border-radius:20px;padding:22px}.about-visual img{border-radius:12px;display:block;width:100%}.about-copy h2{font-size:clamp(31px,3.3vw,43px);line-height:1.45;color:var(--navy);margin:8px 0 20px;letter-spacing:-.02em}.about-copy p{color:#475467;margin:0 0 14px}.points{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:28px}.point{background:var(--soft);border-radius:10px;padding:15px 10px;text-align:center;min-height:102px;display:flex;flex-direction:column;justify-content:center}.point b{font-size:10px;color:var(--purple);letter-spacing:.12em}.point span{font-size:12px;font-weight:800;color:var(--navy);line-height:1.5;margin-top:4px}.knowledge{background:linear-gradient(130deg,var(--navy2),var(--navy));color:#fff}.kicker.light{color:#b7aaff}.knowledge .section-head h2,.knowledge .section-head p{color:#fff}.knowledge .section-head p{opacity:.78}.knowledge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.knowledge-card{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.13);border-radius:14px;padding:28px;display:flex;flex-direction:column}.knowledge-card>span{font-size:11px;color:#b7aaff;font-weight:900;letter-spacing:.12em}.knowledge-card h3{font-size:21px;margin:7px 0 10px}.knowledge-card p{color:#d7e0ed;font-size:14px;margin:0 0 20px}.knowledge-card a{margin-top:auto;font-size:13px;font-weight:800;color:#fff}.column-section{background:#fff}.row-head{display:flex;align-items:end;justify-content:space-between;max-width:none;text-align:left}.row-head h2{margin-bottom:0}.all-link{font-size:13px;font-weight:800;color:var(--purple);padding-bottom:10px}.posts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.post-card{border:1px solid var(--line);border-radius:14px;padding:25px;background:#fff}.post-card time{font-size:11px;color:var(--muted);font-weight:700}.post-card h3{color:var(--navy);line-height:1.55;font-size:18px;margin:9px 0 10px}.post-card p{font-size:13px;color:var(--muted)}
.cta{padding:78px 0;background:linear-gradient(120deg,#5949a8,#294f7e);color:#fff}.cta-inner{text-align:center;max-width:800px}.cta h2{font-size:clamp(30px,3.5vw,42px);line-height:1.45;margin:8px 0 12px}.cta p{color:#edf1fa;margin:0}.cta-button{background:#fff;color:var(--navy);margin-top:24px;min-width:220px}.site-footer{background:#0d1b31;color:#cbd5e1;padding:58px 0 25px}.footer-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:60px;align-items:start}.footer-logo{width:185px;background:#fff;border-radius:6px;padding:5px}.site-footer p{font-size:13px;color:#94a3b8}.footer-nav ul{display:grid;grid-template-columns:repeat(2,1fr);list-style:none;margin:0;padding:0;gap:9px 25px}.footer-nav a{font-size:13px;color:#d7e0ed}.copyright{border-top:1px solid rgba(255,255,255,.1);margin-top:38px;padding-top:20px;font-size:11px;display:flex;justify-content:space-between;color:#7f8da3}.copyright a{color:#aeb9c9}.page-main{padding:70px 0}.page-main h1{color:var(--navy)}.entry-content{max-width:850px}.entry-content h2{color:var(--navy);margin-top:42px}.entry-content img{border-radius:12px}.archive-title{color:var(--navy);margin-bottom:30px}
@media(max-width:1080px){.header-inner{gap:20px}.brand img,.brand .custom-logo{width:175px}.nav ul{gap:16px}.nav a{font-size:12px}.header-cta{padding:11px 14px}}
@media(max-width:900px){.admin-bar .site-header{top:46px}.nav,.header-cta{display:none}.menu-toggle{display:block}.menu-toggle.active span:nth-child(1){transform:translateY(8px) rotate(45deg)}.menu-toggle.active span:nth-child(2){opacity:0}.menu-toggle.active span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.nav.open{display:block;position:absolute;left:0;right:0;top:88px;background:#fff;border-bottom:1px solid var(--line);padding:16px 24px;box-shadow:0 18px 30px rgba(20,43,79,.08)}.nav.open ul{display:block}.nav.open li{border-bottom:1px solid var(--line)}.nav.open li:last-child{border:0}.nav.open a{display:block;padding:13px 0}.nav.open a:after{display:none}.nav.open .mobile-contact-link{display:block;padding:13px 0;font-size:12px;font-weight:750;color:#344054;border-top:1px solid var(--line)}.hero{padding:70px 0}.hero-grid,.about-grid{grid-template-columns:1fr}.hero-grid{gap:42px}.hero-visual{order:-1;max-width:650px;margin:auto}.hero-badge{left:18px}.service-grid,.knowledge-grid,.posts-grid{grid-template-columns:1fr 1fr}.points{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.container{width:min(100% - 28px,var(--max))}.header-inner{height:70px}.brand img,.brand .custom-logo{width:160px}.nav.open{top:70px}.hero{padding:48px 0 58px}.hero h1{font-size:37px}.hero h1 span{white-space:normal}.hero p{font-size:15px}.hero-actions{flex-direction:column}.hero-trust{flex-wrap:wrap;row-gap:8px}.audience-grid,.service-grid,.knowledge-grid,.posts-grid,.footer-grid{grid-template-columns:1fr}.row-head{display:block}.all-link{display:inline-block;margin-top:14px}.points{grid-template-columns:1fr 1fr}.audience-copy{padding:23px}.audience-copy h3{font-size:21px}section{padding:66px 0}.cta h2{font-size:29px}.footer-nav ul{grid-template-columns:1fr}.copyright{display:block}.copyright a{display:block;margin-top:7px}}

/* v3 subpages */
.subhero{padding:78px 0 62px;background:linear-gradient(125deg,#f7f9fd,#eef4fb 58%,#f8f6ff);border-bottom:1px solid var(--line)}.subhero .kicker{display:block}.subhero h1{font-size:clamp(34px,4vw,52px);line-height:1.35;color:var(--navy);margin:10px 0 15px}.subhero p{max-width:760px;color:#58667a;margin:0}.content-section{padding:78px 0}.content-section.soft{background:var(--soft)}.lead-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:center}.lead-grid h2,.content-section h2{color:var(--navy);font-size:clamp(28px,3vw,39px);line-height:1.45;margin:0 0 18px}.lead-grid p,.content-section p{color:#526174}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.feature-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:27px}.feature-card .num{font-size:11px;font-weight:900;letter-spacing:.12em;color:var(--purple)}.feature-card h3{font-size:19px;color:var(--navy);margin:8px 0}.feature-card p{font-size:14px;margin:0}.step-list{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.step{border-top:3px solid var(--purple);background:#fff;padding:23px;border-radius:0 0 12px 12px;box-shadow:0 8px 25px rgba(16,24,40,.05)}.step b{font-size:11px;color:var(--purple);letter-spacing:.1em}.step h3{font-size:17px;color:var(--navy);margin:8px 0}.step p{font-size:13px;margin:0}.note-box{border-left:4px solid var(--red);background:#fff7f7;padding:20px 24px;border-radius:0 10px 10px 0;margin-top:24px}.company-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line)}.company-table th,.company-table td{padding:17px 20px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.company-table th{width:26%;background:#f7f9fc;color:var(--navy)}.placeholder{color:#a04b50;font-weight:700}.contact-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:45px}.contact-info{background:var(--navy);color:#fff;border-radius:16px;padding:34px}.contact-info h2{color:#fff;font-size:26px}.contact-info p{color:#dbe4ef}.contact-form{display:grid;gap:17px}.contact-form label{font-size:13px;font-weight:800;color:var(--navy)}.contact-form input,.contact-form textarea{width:100%;border:1px solid #ccd5e1;border-radius:8px;padding:13px 14px;font:inherit;background:#fff}.contact-form textarea{min-height:170px;resize:vertical}.required{color:var(--red);font-size:11px}.form-status{padding:13px 16px;border-radius:8px;margin-bottom:20px}.form-status.ok{background:#edf9f0;color:#23623a}.form-status.ng{background:#fff0f0;color:#8a3030}.policy h2{font-size:23px;margin-top:38px}.policy p,.policy li{color:#526174}.blog-hero{padding-bottom:42px}.empty-posts{padding:30px;border:1px dashed #cdd6e5;border-radius:12px;color:var(--muted)}
@media(max-width:900px){.lead-grid,.contact-grid{grid-template-columns:1fr}.feature-grid{grid-template-columns:1fr 1fr}.step-list{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.subhero{padding:52px 0 42px}.content-section{padding:58px 0}.feature-grid,.step-list{grid-template-columns:1fr}.company-table th,.company-table td{display:block;width:100%}.company-table th{padding-bottom:7px}.company-table td{padding-top:7px}}

/* v3.3 privacy */
.privacy-contact{margin-top:14px;padding:20px 22px;background:var(--soft);border:1px solid var(--line);border-radius:10px;color:#526174}.privacy-contact strong{color:var(--navy)}.privacy-contact a,.contact-form label a{color:var(--purple);text-decoration:underline;text-underline-offset:3px}.policy-date{margin-top:32px;font-size:13px;color:var(--muted)}

/* v3.4 mobile navigation */
@media(max-width:640px){.nav.open .mobile-contact-link{font-size:16px;font-weight:800;padding:17px 0}}
