/* Base styles */
*, *::before, *::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body, h1, h2, h3, h4, p, ul, figure { margin:0; }
ul { padding:0; }
img, iframe { display:block; max-width:100%; }
button, input, textarea, select { font:inherit; }
.text-center {
  text-align: center !important;
}

:root { --ink:#f7f3e8; --forest:#062c24; --forest-2:#0b4034; --gold:#c9a24f; --paper:#f7f4ed; --text:#17362f; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--text); background:var(--paper); font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif; }
a { color:inherit; text-decoration:none; }
.site-header { height:78px; padding:0 clamp(24px,5vw,80px); display:flex; align-items:center; justify-content:space-between; color:var(--ink); background:rgba(5,37,30,.97); border-bottom:1px solid rgba(201,162,79,.3); position:relative; z-index:2; }
.brand { color:var(--gold); font:700 27px/1 Georgia,"Yu Mincho",serif; letter-spacing:.02em; }
.site-header nav { display:flex; align-items:center; gap:9px; font-size:12px; letter-spacing:.06em; }
.site-header nav a:not(.nav-cta) { transition:opacity .2s ease; }
.site-header nav span { color:rgba(255,255,255,.25); }
.menu-toggle { display:none; width:46px; height:46px; padding:11px 9px; border:0; border-radius:0; color:inherit; background:transparent; cursor:pointer; }
.menu-toggle span { display:block; width:100%; height:2px; margin:5px 0; background:var(--gold); transform-origin:center; transition:transform .25s ease,opacity .2s ease; }
.menu-toggle:focus-visible { outline:3px solid #fff; outline-offset:3px; }
.nav-cta { padding:12px 16px; background:var(--gold); color:#102f28; font-weight:700; margin-left:6px; box-shadow:0 6px 18px rgba(0,0,0,.12); transition:transform .2s ease,filter .2s ease,box-shadow .2s ease; }
.nav-cta:hover { transform:translateY(-2px); filter:brightness(1.1); box-shadow:0 10px 24px rgba(0,0,0,.22); }
.hero { min-height:760px; padding:100px clamp(24px,7vw,112px); color:var(--ink); background:radial-gradient(circle at 76% 35%,#1b5948 0,transparent 25%),linear-gradient(118deg,#062c24 0%,#082d26 58%,#041b17 100%); position:relative; overflow:hidden; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr); align-items:center; gap:7vw; }
.hero-grid { position:absolute; inset:0; opacity:.08; background-image:linear-gradient(rgba(255,255,255,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.2) 1px,transparent 1px); background-size:52px 52px; mask-image:linear-gradient(90deg,transparent 40%,black); }
.hero-content { position:relative; z-index:1; max-width:780px; }
.hero h1 { margin:0 0 25px; font:600 clamp(38px,4.2vw,60px)/1.34 Georgia,"Yu Mincho",serif; letter-spacing:.03em; }
.hero h1 .hero-title-line { display:block; color:inherit; white-space:nowrap; }
.hero-content p { max-width:680px; font-size:15px; line-height:2; margin:0 0 10px; color:rgba(247,243,232,.86); }
.hero-content .hero-catch { margin-bottom:20px; color:#fff; font:600 clamp(25px,3vw,40px)/1.5 Georgia,"Yu Mincho",serif; letter-spacing:.03em; }
.hero-catch span { color:var(--gold); white-space:nowrap; }
.hero-content .hero-lead { margin-bottom:20px; color:#fff; font-size:18px; font-weight:700; }
.button { display:inline-flex; margin-top:28px; padding:16px 25px; background:linear-gradient(135deg,#d2ae5a,#aa7f2d); color:#fff; font-weight:700; font-size:14px; box-shadow:0 10px 30px rgba(0,0,0,.22); transition:transform .2s ease,filter .2s ease,box-shadow .2s ease; }
.button:hover { transform:translateY(-3px); filter:brightness(1.1); box-shadow:0 16px 36px rgba(0,0,0,.3); }
.hero-visual { height:500px; position:relative; perspective:900px; }
.dashboard { position:absolute; inset:95px 0 45px; border:1px solid rgba(255,255,255,.35); background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(221,229,224,.88)); border-radius:15px; transform:rotateY(-9deg) rotateX(3deg); box-shadow:0 35px 90px rgba(0,0,0,.55); overflow:hidden; }
.dashboard-top { height:48px; background:#e7ece9; display:flex; align-items:center; gap:8px; padding:0 20px; }
.dashboard-top i { width:8px;height:8px;border-radius:50%;background:#c9a24f; }
.chart { position:absolute; left:9%; right:7%; top:38%; bottom:18%; display:flex; align-items:end; gap:5%; border-bottom:1px solid #b8c9c1; }
.chart b { flex:1; background:linear-gradient(#c9a24f,#0b4034); border-radius:4px 4px 0 0; }
.chart b:nth-child(1){height:22%}.chart b:nth-child(2){height:34%}.chart b:nth-child(3){height:47%}.chart b:nth-child(4){height:58%}.chart b:nth-child(5){height:76%}.chart b:nth-child(6){height:94%}
.chart-line { position:absolute; width:63%; height:2px; background:#0b4034; left:13%; top:42%; transform:rotate(-12deg); transform-origin:left; box-shadow:48px -9px 0 #0b4034,95px -20px 0 #0b4034; }
.dashboard-ring { position:absolute; width:82px; height:82px; right:10%; top:18%; border:18px solid #d0dcd6; border-top-color:var(--gold); border-right-color:var(--forest-2); border-radius:50%; }
.orb { position:absolute; border-radius:50%; filter:blur(1px); }.orb-one{width:230px;height:230px;background:rgba(201,162,79,.12);right:-60px;top:0}.orb-two{width:150px;height:150px;background:rgba(65,147,120,.2);left:0;bottom:0}
.nav-space { display:none; }

.video-section { padding:clamp(78px,9vw,126px) 24px; color:var(--ink); background:linear-gradient(135deg,#082f27,#031c18); position:relative; overflow:hidden; }
.video-section::before { content:""; position:absolute; width:430px; height:430px; right:-170px; bottom:-250px; border:1px solid rgba(201,162,79,.18); border-radius:50%; box-shadow:0 0 0 65px rgba(201,162,79,.035),0 0 0 130px rgba(201,162,79,.02); }
.video-section-inner { width:min(1180px,100%); margin:0 auto; display:grid; grid-template-columns:minmax(250px,.66fr) minmax(0,1.34fr); gap:clamp(38px,6vw,82px); align-items:center; position:relative; }
.video-copy { max-width:410px; }
.video-eyebrow { margin:0 0 17px; color:var(--gold); font:700 12px/1.4 Georgia,"Yu Mincho",serif; letter-spacing:.18em; }
.video-copy h2 { margin:0 0 24px; color:#fff; font:700 clamp(30px,3.3vw,47px)/1.5 Georgia,"Yu Mincho",serif; letter-spacing:.04em; }
.video-heading-nowrap { white-space:nowrap; }
.video-copy h2::after { content:""; display:block; width:54px; height:1px; margin:18px 0 0; background:var(--gold); }
.video-copy > p:last-child { margin:0; color:rgba(247,243,232,.78); font-size:15px; line-height:2; }
.video-frame { aspect-ratio:16/9; background:#02130f; border:1px solid rgba(201,162,79,.55); box-shadow:0 28px 70px rgba(0,0,0,.38); overflow:hidden; }
.video-frame iframe { display:block; width:100%; height:100%; border:0; }

.content-section { padding:clamp(78px,9vw,138px) 24px; position:relative; overflow:hidden; }
.content-section:nth-of-type(odd):not(.section-dark) { background:#fbfaf6; }
.content-section:nth-of-type(even):not(.section-dark) { background:var(--paper); }
.section-inner { width:min(1120px,100%); margin:0 auto; position:relative; }
.content-section h2 { position:relative; margin:0 auto 30px; text-align:center; color:var(--forest); font:700 clamp(28px,3.4vw,46px)/1.5 Georgia,"Yu Mincho",serif; letter-spacing:.04em; }
.content-section h2::after { content:""; display:block; width:54px; height:1px; background:var(--gold); margin:18px auto 0; }
.section-intro { max-width:860px; margin:0 auto 44px; text-align:center; }
.section-intro p { margin:0 0 12px; font-size:15px; line-height:2.1; }
.section-intro h4 { margin:30px 0 14px; color:var(--gold); font-size:17px; }
.section-intro ul { max-width:760px; margin:22px auto; padding:0; list-style:none; text-align:left; display:grid; gap:10px; }
.section-intro li { position:relative; padding-left:27px; line-height:1.8; }
.section-intro li::before { content:"✓"; color:var(--gold); font-weight:800; position:absolute; left:0; }
.section-intro .challenge-conclusion { position:relative; left:50%; width:min(1120px,calc(100vw - 48px)); max-width:none; margin:32px 0 0; padding:19px 28px; color:var(--forest); background:linear-gradient(90deg,#f0e8db,#f7f2e9 50%,#eee4d5); font:600 17px/1.8 Georgia,"Yu Mincho",serif; letter-spacing:.025em; text-align:center; transform:translateX(-50%); box-shadow:inset 0 1px rgba(255,255,255,.8),inset 0 -1px rgba(169,137,79,.08); }
.challenge-conclusion strong { font-weight:800; }
.card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; align-items:stretch; }
.card-grid.cards-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.content-card { position:relative; background:rgba(255,255,255,.68); border:1px solid #dfd7c6; padding:36px 30px 32px; min-width:0; transition:transform .25s,border-color .25s,box-shadow .25s; }
.content-card:hover { transform:translateY(-3px); border-color:#c9a24f; box-shadow:0 16px 40px rgba(31,61,52,.08); }
.content-card h3 { margin:0 0 18px; color:var(--forest); font:700 21px/1.6 Georgia,"Yu Mincho",serif; }
.content-card h4 { margin:22px 0 9px; color:#9b7328; font-size:15px; line-height:1.7; }
.card-body p { margin:0 0 11px; font-size:14px; line-height:1.9; }
.card-body ul { margin:16px 0 19px; padding:0; list-style:none; }
.card-body li { position:relative; padding-left:22px; margin:8px 0; font-size:13px; line-height:1.8; }
.card-body li::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--gold); position:absolute; left:0; top:.75em; }
.feature-illustration { display:block; width:100%; aspect-ratio:1; margin:0 0 26px; object-fit:cover; border:1px solid #e3dac8; }
.production-section .card-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.production-section .content-card { padding:22px 20px 26px; }
.production-illustration { display:block; width:100%; aspect-ratio:1; margin:0 0 22px; object-fit:cover; border:1px solid #e3dac8; }
.production-section .content-card h3 { font-size:18px; }
.support-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.support-grid .content-card { padding:22px 20px 26px; }
.support-illustration { display:block; width:100%; aspect-ratio:1; margin:0 0 22px; object-fit:cover; border:1px solid #e3dac8; }
.support-grid .content-card h3 { font-size:18px; }
.section-note { margin:28px auto 0; text-align:center; color:#6d746f; }
.section-note p { margin:0; font-size:14px; line-height:1.9; }
.section-with-image .card-grid { grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr); }
.section-visual { min-height:100%; margin:0; overflow:hidden; border:1px solid #dfd7c6; background:#e9e4d8; box-shadow:0 18px 45px rgba(25,54,45,.1); }
.section-visual img { display:block; width:100%; height:100%; min-height:360px; object-fit:cover; object-position:center; }
.intro-image-grid { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr); gap:18px; align-items:stretch; }
.intro-image-grid .section-intro { max-width:none; margin:0; padding:36px 34px; background:#fff; border:1px solid #dfd7c6; text-align:left; box-shadow:0 18px 45px rgba(25,54,45,.08); }
.intro-image-grid .section-visual img { min-height:100%; }
.practice-flow-section { background:linear-gradient(180deg,#f8f4ea,#f1eadc); }
.practice-flow-intro { margin-bottom:38px; }
.practice-flow { position:relative; display:flex; align-items:center; width:min(1100px,100%); margin:0 auto; }
.practice-flow::before { content:""; position:absolute; left:7%; right:7%; top:50%; height:2px; background:linear-gradient(90deg,#d7bd79,#a77b25); }
.flow-step { position:relative; z-index:1; flex:1; min-width:0; min-height:154px; padding:28px 15px 22px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; text-align:center; background:rgba(255,255,255,.9); border:1px solid #d9c9a8; box-shadow:0 14px 35px rgba(48,67,58,.09); }
.flow-step strong { color:var(--forest); font:700 17px/1.6 Georgia,"Yu Mincho",serif; }
.flow-dot { width:34px; height:34px; border:8px solid #f4ead4; border-radius:50%; background:var(--gold); box-shadow:0 0 0 1px #c7a557; }
.flow-arrow { position:relative; z-index:2; flex:0 0 34px; color:#a77b25; font-size:25px; font-weight:700; text-align:center; transform:rotate(-90deg); }
.practice-flow-outro { margin-top:38px; margin-bottom:0; }

.comparison-section { background:linear-gradient(180deg,#fbfaf6,#f2ecdf); }
.comparison-section .section-intro { margin-bottom:32px; }
.comparison-table-wrap { position:relative; width:min(960px,100%); margin:0 auto; overflow:visible; border:1px solid #d8c9aa; background:#fff; box-shadow:0 18px 50px rgba(39,65,56,.09); isolation:isolate; }
.comparison-table-wrap::after { content:""; position:absolute; z-index:3; top:-8px; right:-8px; bottom:-8px; width:calc(29% + 8px); box-sizing:border-box; pointer-events:none; border:8px solid #c9a24f; box-shadow:inset 0 0 0 1px rgba(255,242,194,.85),0 0 0 1px rgba(116,77,11,.18),0 0 22px rgba(201,162,79,.58),0 18px 34px rgba(22,52,43,.24); }
.comparison-table { width:100%; border-collapse:collapse; table-layout:fixed; }
.comparison-table th,.comparison-table td { padding:18px 22px; border-right:1px solid #e4ddcf; border-bottom:1px solid #e4ddcf; vertical-align:middle; }
.comparison-table tr > :last-child { border-right:0; }
.comparison-table tbody tr:last-child > * { border-bottom:0; }
.comparison-table thead th { color:#fff; background:#69736f; font-size:15px; line-height:1.6; letter-spacing:.04em; text-align:center; }
.comparison-table thead th:first-child { width:42%; color:var(--forest); background:#eee6d6; text-align:left; }
.comparison-table thead th:last-child { position:relative; color:#f5d978; background:linear-gradient(135deg,#0b473a,#042b24); font:700 20px/1.5 Georgia,"Yu Mincho",serif; }
.comparison-table tbody th { color:#243e36; background:rgba(255,255,255,.8); font-size:16px; line-height:1.6; text-align:left; }
.comparison-table tbody td { color:#65706c; background:#faf9f6; text-align:center; }
.comparison-table tbody td:last-child { position:relative; background:linear-gradient(90deg,rgba(201,162,79,.13),rgba(16,78,63,.1)); }
.comparison-table tbody tr:nth-child(even) th { background:#f8f5ee; }
.comparison-mark { display:inline-grid; width:38px; height:38px; place-items:center; border-radius:50%; font:700 24px/1 Georgia,"Yu Mincho",serif; }
.comparison-mark.mark-good { color:#14644f; }
.comparison-mark.mark-limited { color:#a87a25; }
.comparison-mark.mark-none { color:#838b88; }
.comparison-mark.mark-strong { color:#9a6c16; background:rgba(201,162,79,.16); box-shadow:0 0 0 1px rgba(201,162,79,.38); }
.comparison-legend { display:flex; flex-wrap:wrap; justify-content:center; gap:10px 24px; width:min(960px,100%); margin:22px auto 0; color:#66716d; font-size:12px; line-height:1.7; }
.comparison-legend span { white-space:nowrap; }
.comparison-legend b { color:#9a6c16; font-size:15px; }
.comparison-note { width:min(960px,100%); margin:14px auto 0; color:#7b827f; font-size:12px; line-height:1.8; text-align:center; }

.section-dark { color:var(--ink); background:radial-gradient(circle at 80% 30%,rgba(29,98,79,.5),transparent 28%),linear-gradient(130deg,#052a22,#031c18); }
.section-dark h2,.section-dark .content-card h3 { color:#fff; }
.section-dark .section-intro p,.section-dark .card-body p,.section-dark .card-body li { color:rgba(247,243,232,.82); }
.section-dark .content-card { border-color:rgba(201,162,79,.35); background:rgba(255,255,255,.055); }
.section-dark .content-card:hover { background:rgba(255,255,255,.08); box-shadow:0 18px 45px rgba(0,0,0,.25); }
.member-section { background:radial-gradient(circle at 12% 8%,rgba(22,91,71,.55),transparent 26%),radial-gradient(circle at 90% 18%,rgba(25,91,72,.38),transparent 24%),linear-gradient(135deg,#03271f,#001d18 72%,#062d25); }
.member-section::before,.member-section::after { content:""; position:absolute; pointer-events:none; border:1px solid rgba(201,162,79,.26); border-radius:50%; }
.member-section::before { width:720px; height:300px; top:-210px; left:-190px; transform:rotate(-13deg); box-shadow:0 0 0 22px rgba(201,162,79,.025); }
.member-section::after { width:760px; height:330px; top:-235px; right:-220px; transform:rotate(14deg); box-shadow:0 0 0 22px rgba(201,162,79,.025); }
.member-section h2 { color:transparent; background:linear-gradient(180deg,#fff0a5 0%,#e3b94f 27%,#9d6616 52%,#f7d979 74%,#b77b20 100%); background-clip:text; -webkit-background-clip:text; -webkit-text-fill-color:transparent; filter:drop-shadow(0 2px 1px rgba(0,0,0,.58)) drop-shadow(0 0 10px rgba(222,177,66,.16)); }
.member-section h2::after { content:"✣"; display:flex; align-items:center; justify-content:center; width:min(520px,90%); height:22px; margin:14px auto 0; color:#e2b84f; background:linear-gradient(90deg,transparent 0%,#865b18 5%,#f1d275 28%,#a46f1e 44%,transparent 44%,transparent 56%,#a46f1e 56%,#f1d275 72%,#865b18 95%,transparent 100%) center/100% 1px no-repeat; font-size:17px; line-height:1; -webkit-text-fill-color:#e2b84f; text-shadow:0 1px 4px rgba(0,0,0,.6),0 0 7px rgba(244,204,101,.32); filter:none; }
.member-section .section-intro { position:relative; z-index:1; margin-bottom:34px; }
.member-section .section-intro p { color:#fff; font-family:Georgia,"Yu Mincho",serif; font-weight:600; letter-spacing:.03em; }
.member-section .section-intro p:first-child { font-size:18px; }
.member-section .card-grid { position:relative; z-index:1; gap:24px; }
.member-section .content-card { padding:0 28px 28px; overflow:hidden; color:var(--text); background:linear-gradient(145deg,#fffdf7,#f5eedf); border:2px solid #c9a24f; border-radius:14px; box-shadow:0 18px 45px rgba(0,0,0,.34),inset 0 0 0 2px rgba(255,255,255,.82); }
.member-section .content-card:hover { background:linear-gradient(145deg,#fffef9,#f7efdf); border-color:#e0bd67; box-shadow:0 24px 52px rgba(0,0,0,.4),inset 0 0 0 2px rgba(255,255,255,.85); }
.member-section .content-card h3 { margin-bottom:8px; color:var(--forest); font-size:22px; text-align:center; }
.member-section .card-body p,.member-section .card-body li { color:#344b44; }
.member-section .card-body > p:first-child { margin-bottom:17px; padding-bottom:16px; border-bottom:1px solid #d6c498; color:#4a574f; font-family:Georgia,"Yu Mincho",serif; font-weight:700; text-align:center; }
.member-section .card-body > p:last-child { margin:22px 0 0; padding:16px 4px 13px; border-top:1px solid #d6c498; border-bottom:1px solid #d6c498; color:#8d681f; font:700 17px/1.7 Georgia,"Yu Mincho",serif; text-align:center; }
.member-section .card-body li::before { background:#b88a2f; }
.member-photo { position:relative; left:50%; display:block; width:calc(100% + 60px); max-width:none; height:300px; margin:0 0 28px; object-fit:cover; object-position:50% 50%; transform:translateX(-50%); border-bottom:1px solid rgba(201,162,79,.4); }
.member-photo-representative { object-position:50% 8%; }

.pricing-section .card-grid { grid-template-columns:1fr; max-width:900px; margin:auto; }
.pricing-section .content-card { padding:clamp(36px,5vw,62px); border:1px solid var(--gold); background:linear-gradient(135deg,#fffdf8,#f2ead9); box-shadow:0 25px 70px rgba(60,47,22,.1); }
.pricing-section .content-card h3 { font-size:clamp(30px,4vw,50px); color:#9b7328; }
.pricing-section .card-body { columns:2; column-gap:52px; }
.pricing-section .card-body h4,.pricing-section .card-body p,.pricing-section .card-body ul { break-inside:avoid; }
.cases-section .section-intro { max-width:960px; padding:36px clamp(24px,5vw,56px); background:#fff; border-left:4px solid var(--gold); text-align:left; box-shadow:0 16px 45px rgba(25,54,45,.07); }
.cases-section .section-intro h4 { text-align:left; }
.case-table-wrap { position:relative; margin:28px 0 18px; overflow:visible; border:1px solid #d9c9a8; isolation:isolate; }
.case-table-wrap::after { content:""; position:absolute; z-index:3; top:-8px; right:-8px; bottom:-8px; width:calc(32% + 8px); box-sizing:border-box; pointer-events:none; border:8px solid #c9a24f; box-shadow:inset 0 0 0 1px rgba(255,242,194,.85),0 0 0 1px rgba(116,77,11,.18),0 0 22px rgba(201,162,79,.58),0 18px 34px rgba(22,52,43,.24); }
.case-table { width:100%; border-collapse:collapse; table-layout:fixed; background:#fffdf8; }
.case-table th,.case-table td { padding:20px 18px; border-right:1px solid #e2d8c4; border-bottom:1px solid #e2d8c4; vertical-align:middle; }
.case-table tr > :last-child { border-right:0; }
.case-table tbody tr:last-child > * { border-bottom:0; }
.case-table thead th { color:#fff; background:var(--forest); font-size:15px; letter-spacing:.08em; text-align:center; }
.case-table thead th:first-child { width:36%; text-align:left; }
.case-table thead th:last-child { color:#f5d978; background:linear-gradient(135deg,#0b473a,#042b24); }
.case-table tbody th { color:var(--forest); font:700 17px/1.6 Georgia,"Yu Mincho",serif; text-align:left; }
.case-table tbody td { color:#55645f; font-size:17px; text-align:center; }
.case-table tbody td strong { color:#a77920; font-size:21px; white-space:nowrap; }
.case-table tbody tr:nth-child(even) { background:#f7f1e5; }
.case-table .case-sales-row { background:#f1e5ca; }
.case-table tbody td:last-child { background:linear-gradient(90deg,rgba(201,162,79,.13),rgba(16,78,63,.1)); }
.case-table small { display:block; margin-top:3px; color:#7a817d; font:400 11px/1.5 "Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif; }
.cases-section .section-intro .case-table-note { margin:0 0 24px; color:#6d746f; font-size:12px; line-height:1.7; }
.faq-list { width:min(900px,100%); margin:0 auto; border-top:1px solid #d9c9a8; }
.faq-list details { border-bottom:1px solid #d9c9a8; background:rgba(255,255,255,.6); }
.faq-list summary { position:relative; padding:24px 58px 24px 26px; color:var(--forest); font:700 17px/1.7 Georgia,"Yu Mincho",serif; cursor:pointer; list-style:none; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:"＋"; position:absolute; top:50%; right:25px; color:var(--gold); font:400 25px/1 sans-serif; transform:translateY(-50%); transition:transform .2s ease; }
.faq-list details[open] summary::after { transform:translateY(-50%) rotate(45deg); }
.faq-list details p { padding:0 58px 24px 26px; color:#53615d; font-size:15px; line-height:2; }
.faq-list summary:focus-visible { outline:3px solid var(--gold); outline-offset:-3px; }

#contact { text-align:center; }
#contact .section-intro { max-width:740px; }
#contact .section-intro p { font-family:Georgia,"Yu Mincho",serif; font-size:18px; }
#contact .contact-button { display:inline-flex; margin-top:24px; padding:16px 28px; color:#fff; background:linear-gradient(135deg,#d2ae5a,#aa7f2d); font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif; font-size:21px; font-weight:700; box-shadow:0 10px 30px rgba(0,0,0,.22); transition:transform .2s ease,filter .2s ease,box-shadow .2s ease; }
#contact .contact-button:hover { transform:translateY(-3px); filter:brightness(1.1); box-shadow:0 16px 36px rgba(0,0,0,.32); }
.nav-cta:active,.button:active,#contact .contact-button:active { transform:translateY(0); box-shadow:0 5px 14px rgba(0,0,0,.2); }
.nav-cta:focus-visible,.button:focus-visible,#contact .contact-button:focus-visible { outline:3px solid #fff; outline-offset:4px; }

footer { padding:45px 24px; text-align:center; color:#dcd7ca; background:#021814; font-size:12px; line-height:1.8; }
footer p { margin:8px 0; }
footer a { border-bottom:1px solid rgba(201,162,79,.65); transition:color .2s; }
footer a:hover { color:var(--gold); }

@media (prefers-reduced-motion:reduce){
  .nav-cta,.button,#contact .contact-button,.menu-toggle span,.site-header nav,.site-header nav a,.faq-list summary::after{transition:none}
}

.legal-page { min-height:100vh; background:var(--paper); }
.legal-header { height:76px; padding:0 clamp(24px,6vw,88px); display:flex; align-items:center; background:#05251e; border-bottom:1px solid rgba(201,162,79,.3); }
.legal-header a { color:var(--gold); font:700 27px/1 Georgia,"Yu Mincho",serif; }
.legal-hero { min-height:300px; padding:72px 24px; display:grid; place-items:center; color:#fff; text-align:center; background:radial-gradient(circle at 68% 10%,#1b5948 0,transparent 28%),linear-gradient(130deg,#062c24,#031c18); }
.legal-hero h1 { margin:0; font:700 clamp(34px,5vw,56px)/1.5 Georgia,"Yu Mincho",serif; letter-spacing:.05em; }
.legal-hero h1::after { content:""; display:block; width:58px; height:1px; margin:22px auto 0; background:var(--gold); }
.legal-content { width:min(920px,calc(100% - 40px)); margin:0 auto; padding:clamp(64px,8vw,110px) 0 120px; }
.legal-intro { margin-bottom:54px; padding:30px 34px; background:#fff; border-left:3px solid var(--gold); box-shadow:0 14px 36px rgba(21,54,44,.06); }
.legal-section { padding:34px 0 38px; border-top:1px solid #ddd4c2; }
.legal-section h2 { margin:0 0 20px; color:var(--forest); font:700 clamp(21px,2.5vw,28px)/1.5 Georgia,"Yu Mincho",serif; }
.legal-section h3 { margin:24px 0 10px; color:#9b7328; font:700 18px/1.7 Georgia,"Yu Mincho",serif; }
.legal-page p { margin:0 0 13px; font-size:15px; line-height:2.05; }
.legal-page ul { margin:18px 0; padding:0; list-style:none; display:grid; gap:8px; }
.legal-page li { position:relative; padding-left:24px; font-size:14px; line-height:1.9; }
.legal-page li::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--gold); position:absolute; left:2px; top:.78em; }

@media (min-width:901px){
  html{scroll-padding-top:78px}
  .pc-none{display:none!important}
  .site-header{position:fixed;top:0;left:0;right:0;width:100%;z-index:1000}
  .site-header + .hero{margin-top:78px}
  .site-header nav a:not(.nav-cta):hover{opacity:.62}
  .site-header nav,.hero-content p,.button,.section-intro p,.content-card h4,.card-body p,.card-body li,#contact .contact-button,footer,.legal-page p,.legal-page li{font-size:16px}
  #contact .contact-button{font-size:24px}
}

@media (max-width:900px){
  html{scroll-padding-top:70px}
  .sp-none{display:none!important}
  .site-header{position:fixed;top:0;left:0;right:0;width:100%;height:70px;min-height:70px;padding:0 22px;z-index:1000}.site-header + .hero{margin-top:70px}.menu-toggle{display:block}.site-header nav{position:absolute;top:100%;left:0;right:0;display:grid;width:100%;max-height:0;padding:0 22px;overflow:hidden;visibility:hidden;opacity:0;background:rgba(5,37,30,.99);border-bottom:1px solid rgba(201,162,79,.3);box-shadow:0 18px 35px rgba(0,0,0,.22);transform:translateY(-10px);transition:max-height .35s ease,padding .35s ease,opacity .25s ease,transform .35s ease,visibility 0s linear .35s}.site-header nav > span{display:none}.site-header nav a{display:block;padding:15px 4px;border-bottom:1px solid rgba(255,255,255,.1);font-size:14px}.site-header nav .nav-cta{margin:8px 0 0;padding:15px 16px;border-bottom:0;text-align:center}.site-header.nav-open nav{max-height:520px;padding:12px 22px 22px;visibility:visible;opacity:1;transform:translateY(0);transition:max-height .35s ease,padding .35s ease,opacity .25s ease,transform .35s ease,visibility 0s}.site-header.nav-open .menu-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}.site-header.nav-open .menu-toggle span:nth-child(2){opacity:0}.site-header.nav-open .menu-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.hero{grid-template-columns:1fr;padding-top:78px;min-height:auto}.hero-visual{height:360px}.dashboard{inset:30px 0}.hero h1{font-size:clamp(30px,9vw,48px)}
  .video-section-inner{grid-template-columns:1fr}.video-copy{max-width:680px}.video-copy h2 br{display:none}
  .card-grid,.card-grid.cards-3,.production-section .card-grid,.support-grid{grid-template-columns:1fr 1fr}.pricing-section .card-body{columns:1}
}
@media (max-width:620px){
  .hero{padding-left:22px;padding-right:22px}.hero-content{text-align:center}.hero-content p{margin-left:auto;margin-right:auto;font-size:14px}.hero-visual{height:290px}.dashboard{inset:20px 0}.dashboard-ring{width:62px;height:62px;border-width:13px}.video-section{padding:72px 18px}.video-section-inner{gap:30px}.video-copy h2 br{display:block}.video-copy > p:last-child{font-size:14px}.content-section{padding:78px 18px}.card-grid,.card-grid.cards-3,.section-with-image .card-grid,.production-section .card-grid,.support-grid,.intro-image-grid{grid-template-columns:1fr}.content-card{padding:30px 23px}.member-section .content-card{padding:0 23px 30px}.member-photo{width:calc(100% + 46px);height:320px}.section-visual img,.intro-image-grid .section-visual img{min-height:280px;aspect-ratio:4/3}.intro-image-grid .section-intro{padding:28px 23px}.section-intro{text-align:left}.content-section h2{font-size:28px}
  .hero-content .button{display:flex;width:max-content;max-width:100%;margin-left:auto;margin-right:auto;justify-content:center;text-align:center}
  #contact .contact-button{display:flex;width:max-content;max-width:100%;margin-left:auto;margin-right:auto;justify-content:center;text-align:center}
  .cases-section .section-intro{padding:28px 18px}.case-table th,.case-table td{padding:15px 8px}.case-table thead th{font-size:12px}.case-table tbody th{font-size:14px}.case-table tbody td{font-size:13px}.case-table tbody td strong{font-size:16px}
  .faq-list summary{padding:20px 50px 20px 18px;font-size:15px}.faq-list summary::after{right:18px}.faq-list details p{padding:0 18px 21px;font-size:14px}
  .section-intro .challenge-conclusion{position:static;width:auto;padding:17px 18px;font-size:15px;line-height:1.9;text-align:left;transform:none}
  .comparison-table-wrap::after{width:calc(28.5% + 8px)}.comparison-table th,.comparison-table td{padding:14px 7px}.comparison-table thead th{font-size:11px}.comparison-table thead th:first-child{width:43%;font-size:12px}.comparison-table thead th:last-child{font-size:15px}.comparison-table tbody th{font-size:13px}.comparison-mark{width:30px;height:30px;font-size:20px}.comparison-legend{justify-content:flex-start;gap:6px 15px}.comparison-note{text-align:left}
  .legal-header{height:68px}.legal-hero{min-height:230px;padding:52px 20px}.legal-content{width:min(100% - 32px,920px);padding:56px 0 80px}.legal-intro{padding:24px 21px}.legal-section{padding:29px 0 31px}.legal-page p{font-size:14px}.legal-page li{font-size:13px}
  .practice-flow{flex-direction:column;gap:0}.practice-flow::before{top:6%;bottom:6%;left:50%;right:auto;width:2px;height:auto}.flow-step{width:100%;min-height:120px}.flow-arrow{flex-basis:34px;line-height:34px;transform:none}.practice-flow-intro{margin-bottom:28px}.practice-flow-outro{margin-top:28px}
}
