:root{--bg:#f5f3ef;--paper:#fff;--ink:#221716;--muted:#776b67;--line:#ded6d0;--red:#eb0034;--soft:#ece5df;--radius:28px;--max:1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:"Inter","Noto Sans JP",system-ui,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.7}img{max-width:100%;display:block}a{color:inherit}.site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px clamp(20px,4vw,56px);background:rgba(245,243,239,.9);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.brand img{width:168px;height:auto}.nav{display:flex;gap:22px;font-size:13px;letter-spacing:.08em;text-transform:uppercase}.nav a{text-decoration:none;color:var(--muted)}.nav a:hover{color:var(--red)}main{overflow:hidden}.section,.hero,.cta,.page-hero{max-width:var(--max);margin:0 auto;padding:clamp(72px,10vw,132px) clamp(20px,4vw,40px)}.section-tight{padding-top:20px}.section-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:clamp(32px,6vw,80px);align-items:end}.eyebrow{margin:0 0 14px;color:var(--red);font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.hero h1,.page-hero h1{margin:0;font-size:clamp(48px,9vw,118px);line-height:.95;letter-spacing:-.07em}.page-hero p:not(.eyebrow){max-width:760px;color:var(--muted);font-size:18px}.hero-copy{font-size:18px;color:var(--muted)}.button{display:inline-flex;align-items:center;justify-content:center;margin-top:22px;padding:14px 22px;border:0;border-radius:999px;background:var(--red);color:#fff;text-decoration:none;font-weight:800;letter-spacing:.04em;cursor:pointer}.button-dark{background:var(--ink)}.text-link{display:inline-flex;margin-top:16px;color:var(--red);font-weight:800;text-decoration:none}.section-head{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);gap:30px;align-items:end;margin-bottom:34px}.section-head h2{margin:0;font-size:clamp(30px,5vw,64px);line-height:1;letter-spacing:-.05em}.section-head p:not(.eyebrow),.card p,.service-card p{margin:0;color:var(--muted)}code{padding:.15em .45em;border-radius:6px;background:var(--soft);font-size:.9em}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.cards-featured{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;min-height:100%;display:flex;flex-direction:column}.card-media{aspect-ratio:4/3;background:linear-gradient(135deg,#e9e2dc,#f9f7f5);overflow:hidden;text-decoration:none}.card-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.card:hover .card-media img{transform:scale(1.04)}.card-body{padding:22px}.meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;color:var(--muted);font-size:12px;letter-spacing:.06em;text-transform:uppercase}.card h3{margin:0 0 10px;font-size:24px;line-height:1.15;letter-spacing:-.04em}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.tag{padding:5px 9px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:11px}.placeholder{display:grid;place-items:center;height:100%;min-height:220px;padding:28px;color:var(--muted);text-align:center;background:linear-gradient(135deg,#eee5df,#fff)}.tone{max-width:none;background:var(--ink);color:#fff}.tone .section-head,.tone .cards,.tone .section-more{max-width:var(--max);margin-left:auto;margin-right:auto}.tone .section-head p:not(.eyebrow),.tone .card p,.tone .meta{color:#b9aba7}.tone .card{background:#2c201e;border-color:#493a36}.tone .tag{border-color:#5b4b46;color:#cdbfba}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.service-card{padding:24px;border:1px solid var(--line);border-radius:22px;background:var(--paper)}.service-number{display:inline-grid;place-items:center;width:42px;height:42px;margin-bottom:16px;border-radius:50%;background:var(--ink);color:#fff;font-weight:800}.service-card h3{margin:0 0 10px;font-size:21px}.section-more{margin-top:28px}.cta{margin-bottom:72px;border-radius:36px;background:var(--red);color:#fff}.cta p{max-width:720px}.cta h2{max-width:900px;margin:0;font-size:clamp(34px,6vw,72px);line-height:1;letter-spacing:-.06em}.project-detail,.service-detail,.journal-article{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);gap:clamp(24px,5vw,64px);align-items:center;margin-bottom:28px;padding:24px;border:1px solid var(--line);border-radius:32px;background:var(--paper)}.project-detail:nth-child(even),.service-detail:nth-child(even){grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr)}.project-detail:nth-child(even) .project-detail-media,.service-detail:nth-child(even) .service-visual{order:2}.project-detail-media,.service-visual,.journal-hero-media{border-radius:24px;overflow:hidden;background:var(--soft)}.project-detail-media img,.service-visual img,.journal-hero-media img{width:100%;height:100%;min-height:360px;object-fit:cover}.project-detail h2,.service-detail h2,.journal-content h2{margin:0 0 18px;font-size:clamp(32px,5vw,64px);line-height:1;letter-spacing:-.05em}.project-detail h2 small{display:block;margin-top:12px;color:var(--muted);font-size:18px;letter-spacing:0}.lead{font-size:19px;color:var(--ink)}.notice{margin-top:18px;padding:14px 16px;border-radius:16px;background:var(--soft);color:var(--muted)}.service-detail ul{padding-left:1.2em;color:var(--muted)}.article-list{display:grid;gap:40px}.journal-article{align-items:start}.journal-content p{color:var(--muted)}.credit-list{display:grid;grid-template-columns:140px 1fr;gap:8px 16px;margin-top:24px;padding-top:24px;border-top:1px solid var(--line)}.credit-list dt{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.credit-list dd{margin:0;font-weight:700}.faq-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.faq-list article{padding:22px;border:1px solid var(--line);border-radius:22px;background:var(--paper)}.faq-list h3{margin:0 0 8px}.faq-list p{margin:0;color:var(--muted)}.contact-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:28px;align-items:start}.contact-aside,.contact-form{padding:28px;border:1px solid var(--line);border-radius:28px;background:var(--paper)}.contact-aside h2,.contact-form h2{margin-top:0;font-size:clamp(28px,4vw,44px);line-height:1}.contact-menu{display:grid;gap:10px;margin-top:24px}.contact-menu span{padding:12px 14px;border-radius:14px;background:var(--soft);color:var(--muted)}.contact-form{display:grid;gap:16px}.contact-form label{display:grid;gap:7px;font-weight:800}.contact-form span{color:var(--red)}.contact-form input,.contact-form select,.contact-form textarea{width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);font:inherit}.privacy-note{font-size:13px;color:var(--muted)}.form-thanks{padding:16px;border-radius:16px;background:var(--soft)}.footer{display:flex;justify-content:space-between;gap:20px;padding:28px clamp(20px,4vw,56px);border-top:1px solid var(--line);color:var(--muted);font-size:13px}@media (max-width:1040px){.cards-featured{grid-template-columns:repeat(2,minmax(0,1fr))}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:900px){.site-header{align-items:flex-start;flex-direction:column}.nav{width:100%;overflow:auto;padding-bottom:4px}.section-grid,.section-head,.project-detail,.project-detail:nth-child(even),.service-detail,.service-detail:nth-child(even),.journal-article,.contact-layout{grid-template-columns:1fr}.project-detail:nth-child(even) .project-detail-media,.service-detail:nth-child(even) .service-visual{order:0}.service-grid,.faq-list{grid-template-columns:1fr}.hero h1,.page-hero h1{font-size:56px}}@media (max-width:620px){.brand img{width:138px}.cards,.cards-featured,.service-grid{grid-template-columns:1fr}.hero h1,.page-hero h1{font-size:46px}.section,.hero,.cta,.page-hero{padding-left:18px;padding-right:18px}.footer{flex-direction:column}}
.about-hero{min-height:72vh;display:grid;align-content:end}.about-hero h1{max-width:980px}.about-hero p:not(.eyebrow){max-width:760px}.statement-block{position:relative;max-width:var(--max);margin:0 auto;padding:clamp(90px,12vw,168px) clamp(20px,4vw,40px);border-top:1px solid var(--line);overflow:hidden}.statement-bg{position:absolute;inset:auto auto 20px 0;margin:0;color:rgba(34,23,22,.055);font-size:clamp(86px,20vw,248px);font-weight:900;line-height:.78;letter-spacing:-.12em;pointer-events:none}.statement-inner{position:relative;max-width:900px;margin-left:auto}.statement-inner h2{margin:0 0 28px;font-size:clamp(34px,6vw,78px);line-height:1.05;letter-spacing:-.06em}.statement-inner p:not(.eyebrow){font-size:19px;color:var(--muted)}.statement-mission{border-bottom:1px solid var(--line)}.values-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.values-grid article{padding:22px;border:1px solid var(--line);border-radius:24px;background:var(--paper)}.values-grid span{display:inline-grid;place-items:center;width:38px;height:38px;margin-bottom:18px;border-radius:50%;background:var(--red);color:#fff;font-weight:900;font-size:12px}.values-grid h3{margin:0;color:var(--ink);font-size:18px;line-height:1.1;letter-spacing:-.04em}.values-grid h4{margin:8px 0 14px;font-size:15px}.values-grid p{margin:0;color:var(--muted);font-size:14px}.ceo-message{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(0,1.1fr);gap:clamp(32px,6vw,88px);align-items:stretch}.ceo-photo{min-height:720px;border-radius:36px;overflow:hidden;background:linear-gradient(135deg,#221716,#5c4b45);filter:grayscale(1);display:flex}.portrait-placeholder{display:flex;flex-direction:column;justify-content:flex-end;width:100%;padding:32px;color:#fff;background:linear-gradient(180deg,rgba(34,23,22,.08),rgba(34,23,22,.82))}.portrait-placeholder p:not(.eyebrow){max-width:420px;margin:0;font-size:15px}.ceo-copy{padding:16px 0}.ceo-copy h2{margin:0 0 28px;font-size:clamp(32px,5vw,62px);line-height:1.04;letter-spacing:-.055em}.ceo-copy p{font-size:17px;color:var(--muted)}.ceo-copy p:first-of-type{color:var(--ink);font-size:20px}.ceo-sign{margin-top:34px!important;color:var(--ink)!important;font-weight:900;letter-spacing:.08em}.member-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.member-grid article{min-height:300px;padding:28px;border:1px solid var(--line);border-radius:28px;background:var(--paper)}.member-role{margin:0 0 34px!important;color:var(--red)!important;font-size:12px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.member-grid h3{margin:0 0 14px;font-size:clamp(26px,4vw,42px);line-height:1;letter-spacing:-.05em}.member-grid p{color:var(--muted)}@media (max-width:1040px){.values-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ceo-message{grid-template-columns:1fr}.ceo-photo{min-height:520px}}@media (max-width:620px){.statement-bg{font-size:82px;letter-spacing:-.1em}.values-grid,.member-grid{grid-template-columns:1fr}.ceo-photo{min-height:420px}.statement-inner h2,.ceo-copy h2{font-size:34px}}

/* ===== Refinement: scale, motion, and editorial spacing ===== */
:root{--ease-out:cubic-bezier(.16,1,.3,1);--shadow-soft:0 28px 70px rgba(34,23,22,.10);--shadow-strong:0 44px 110px rgba(34,23,22,.16)}
html{scroll-behavior:smooth}body{position:relative;overflow-x:hidden}body::before{content:"";position:fixed;right:-18vw;top:14vh;width:min(58vw,760px);height:min(58vw,760px);background:url('../images/brand/cignals-symbol.svg') center/contain no-repeat;opacity:.035;z-index:-1;animation:cignalsSymbolSpin 58s linear infinite;pointer-events:none;filter:saturate(.8)}body::after{content:"";position:fixed;left:-12vw;bottom:-22vw;width:min(52vw,680px);height:min(52vw,680px);background:url('../images/brand/cignals-symbol.svg') center/contain no-repeat;opacity:.025;z-index:-1;animation:cignalsSymbolSpinReverse 74s linear infinite;pointer-events:none}@keyframes cignalsSymbolSpin{to{transform:rotate(360deg)}}@keyframes cignalsSymbolSpinReverse{to{transform:rotate(-360deg)}}
.section,.hero,.page-hero,.cta{position:relative}.section{padding-top:clamp(92px,11vw,168px);padding-bottom:clamp(92px,11vw,168px)}.section-head{margin-bottom:clamp(36px,6vw,82px)}.section-head h2{letter-spacing:-.06em}.section-head p{line-height:1.95}.section-head-wide{grid-template-columns:minmax(120px,.35fr) minmax(0,1.65fr)}.section-head-wide h2{max-width:1040px;font-size:clamp(42px,7vw,104px);line-height:.94}.hero h1,.page-hero h1{letter-spacing:-.075em}.page-hero p:not(.eyebrow),.hero-copy p{line-height:2}.button,.text-link{transition:transform .5s var(--ease-out),background .5s var(--ease-out),color .5s var(--ease-out),border-color .5s var(--ease-out),box-shadow .5s var(--ease-out)}.button:hover{transform:translateY(-3px);box-shadow:var(--shadow-soft)}.arrow-link span,.arrow-button span{display:inline-block;transition:transform .45s var(--ease-out)}.arrow-link:hover span{transform:translate(8px,-2px) rotate(-18deg)}.arrow-button:hover span{transform:translateX(10px)}
.motion-card{transition:transform .7s var(--ease-out),box-shadow .7s var(--ease-out),border-color .7s var(--ease-out),background .7s var(--ease-out)}.motion-card:hover{transform:translateY(-10px);box-shadow:var(--shadow-strong);border-color:rgba(235,0,52,.34)}.motion-card img{transition:transform 1.1s var(--ease-out),filter 1.1s var(--ease-out)}.motion-card:hover img{transform:scale(1.045);filter:saturate(1.06) contrast(1.04)}.section,.page-hero,.hero,.cta,.reveal-item,.motion-card{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}.section.is-visible,.page-hero.is-visible,.hero.is-visible,.cta.is-visible,.reveal-item.is-visible,.motion-card.is-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.section,.page-hero,.hero,.cta,.reveal-item,.motion-card{opacity:1!important;transform:none!important}}
.home-project-showcase{display:grid;gap:clamp(40px,6vw,84px)}.home-project-card{display:grid;grid-template-columns:minmax(0,.18fr) minmax(0,.82fr);align-items:end;gap:clamp(16px,3vw,34px);border:0;background:transparent;box-shadow:none}.home-project-media{grid-column:2;grid-row:1;display:block;min-height:clamp(380px,52vw,680px);border-radius:16px;overflow:hidden;background:#060606;box-shadow:0 34px 100px rgba(34,23,22,.16)}.home-project-media img,.home-project-media .placeholder{width:100%;height:100%;min-height:inherit;object-fit:cover;display:flex;align-items:center;justify-content:center}.home-project-media::after{content:"";position:absolute;inset:0}.home-project-caption{grid-column:1/3;grid-row:1;align-self:end;max-width:min(920px,74vw);padding:0 0 clamp(18px,4vw,40px);z-index:2;pointer-events:none}.home-project-caption h3{margin:8px 0 12px;font-size:clamp(28px,4vw,58px);line-height:1;letter-spacing:-.055em;color:var(--ink);text-shadow:0 1px 0 rgba(255,255,255,.75)}.home-project-caption p{max-width:680px;margin:0;color:var(--muted);font-size:clamp(15px,1.4vw,18px);line-height:1.8}.home-project-caption .arrow-link{pointer-events:auto;display:inline-flex;margin-top:16px}.project-name-label{margin:0!important;color:var(--ink)!important;font-size:11px!important;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.home-project-card:nth-child(even){grid-template-columns:minmax(0,.82fr) minmax(0,.18fr)}.home-project-card:nth-child(even) .home-project-media{grid-column:1}.home-project-card:nth-child(even) .home-project-caption{padding-left:clamp(18px,5vw,80px)}
body[data-page="projects"] #projectGrid{display:grid;gap:clamp(48px,7vw,100px)}.project-detail{display:grid!important;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr)!important;align-items:stretch;gap:0!important;overflow:hidden;border:1px solid var(--line);border-radius:34px;background:rgba(255,255,255,.82);backdrop-filter:blur(16px);box-shadow:0 22px 80px rgba(34,23,22,.08)}.project-detail:nth-child(even){grid-template-columns:minmax(360px,.92fr) minmax(0,1.08fr)!important}.project-detail:nth-child(even) .project-detail-media{order:2}.project-detail-media{min-height:clamp(360px,45vw,650px);background:#090909;overflow:hidden}.project-detail-media img,.project-detail-media .placeholder{width:100%;height:100%;min-height:inherit;object-fit:cover}.project-detail-body{padding:clamp(30px,5vw,72px)!important;display:flex;flex-direction:column;justify-content:center}.project-detail-body h2{font-size:clamp(34px,5.4vw,82px)!important;line-height:.96!important;letter-spacing:-.065em!important}.project-detail-body h2 small{display:block;margin-top:14px;font-size:clamp(15px,1.4vw,20px);letter-spacing:0;line-height:1.7;color:var(--muted)}.project-detail-body p{line-height:1.95}.placeholder{position:relative;min-height:inherit;background:radial-gradient(circle at 76% 20%,rgba(235,0,52,.16),transparent 28%),linear-gradient(135deg,#221716,#050505);color:rgba(255,255,255,.72);font-weight:900}.placeholder::before{content:"";position:absolute;inset:12%;background:url('../images/brand/cignals-symbol.svg') center/contain no-repeat;opacity:.16;animation:cignalsSymbolSpin 42s linear infinite}
.place-section{padding-top:clamp(90px,11vw,150px)}.place-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,3vw,34px)}.place-card{position:relative;min-height:clamp(440px,42vw,620px);padding:clamp(28px,5vw,64px);border:1px solid var(--line);border-radius:38px;background:rgba(255,255,255,.84);overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end}.place-card::before{content:"";position:absolute;inset:auto -18% -20% auto;width:68%;aspect-ratio:1;background:url('../images/brand/cignals-symbol.svg') center/contain no-repeat;opacity:.06;animation:cignalsSymbolSpin 48s linear infinite}.place-card-dark{background:#0c0909;color:#fff}.place-card-dark::before{opacity:.16}.place-card-dark p,.place-card-dark .place-kicker{color:rgba(255,255,255,.7)}.place-card h3{position:relative;margin:0 0 18px;font-size:clamp(40px,6vw,96px);line-height:.9;letter-spacing:-.075em}.place-card p{position:relative;max-width:620px;color:var(--muted);font-size:clamp(16px,1.5vw,19px);line-height:1.95}.place-kicker{position:absolute;top:clamp(24px,4vw,46px);left:clamp(28px,5vw,64px);font-size:12px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:var(--red)}.place-card .text-link{position:relative;margin-top:18px}.services-large .service-detail-list{display:grid;gap:clamp(40px,6vw,82px)}.service-detail{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:0!important;border:1px solid var(--line);border-radius:38px;overflow:hidden;background:rgba(255,255,255,.86);box-shadow:0 22px 80px rgba(34,23,22,.08)}.service-detail:nth-child(even){grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}.service-detail:nth-child(even) .service-visual{order:2}.service-visual{min-height:clamp(420px,46vw,720px);overflow:hidden;background:#090909}.service-visual img,.service-visual .placeholder{width:100%;height:100%;min-height:inherit;object-fit:cover}.service-detail-body{padding:clamp(32px,5.4vw,82px);display:flex;flex-direction:column;justify-content:center}.service-detail-body h2{font-size:clamp(40px,6vw,94px);line-height:.92;letter-spacing:-.075em}.service-detail-body .lead{font-size:clamp(20px,2vw,28px);line-height:1.65;color:var(--ink)}.service-detail-body li{margin:12px 0;line-height:1.75}.service-grid{gap:clamp(18px,3vw,34px)}.service-card{min-height:420px!important;padding:clamp(28px,4.2vw,58px)!important;border-radius:34px!important;position:relative;overflow:hidden}.service-card::before{content:"";position:absolute;right:-18%;bottom:-22%;width:70%;aspect-ratio:1;background:url('../images/brand/cignals-symbol.svg') center/contain no-repeat;opacity:.045;animation:cignalsSymbolSpinReverse 56s linear infinite}.service-card h3{position:relative;font-size:clamp(30px,4.2vw,62px)!important;line-height:.96!important}.service-card p,.service-card a,.service-card .service-number{position:relative}.service-card p{font-size:17px;line-height:1.95}.service-number{font-size:13px!important}
.values-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:clamp(18px,3vw,34px)!important}.values-grid article{min-height:clamp(300px,28vw,430px);padding:clamp(28px,4.5vw,64px)!important;border-radius:36px!important;position:relative;overflow:hidden}.values-grid article::after{content:"";position:absolute;right:-18%;bottom:-24%;width:56%;aspect-ratio:1;background:url('../images/brand/cignals-symbol.svg') center/contain no-repeat;opacity:.045;animation:cignalsSymbolSpin 60s linear infinite}.values-grid span{width:52px!important;height:52px!important}.values-grid h3{font-size:clamp(30px,4vw,62px)!important}.values-grid h4{font-size:clamp(17px,1.7vw,24px)!important}.values-grid p{font-size:16px!important;line-height:1.9}.values-grid article:nth-child(5){grid-column:1/3;min-height:300px}.values-grid article:nth-child(5) p{max-width:760px}
@media (max-width:900px){body::before{right:-42vw;width:92vw;height:92vw}.home-project-card,.home-project-card:nth-child(even){display:block}.home-project-media{min-height:360px}.home-project-caption{max-width:none;padding:18px 0 0}.home-project-caption h3{text-shadow:none}.project-detail,.project-detail:nth-child(even),.service-detail,.service-detail:nth-child(even),.place-grid{grid-template-columns:1fr!important}.project-detail:nth-child(even) .project-detail-media,.service-detail:nth-child(even) .service-visual{order:0}.section-head-wide{grid-template-columns:1fr}.place-card{min-height:420px}.values-grid{grid-template-columns:1fr!important}.values-grid article:nth-child(5){grid-column:auto}.service-card{min-height:320px!important}}@media (max-width:620px){.section{padding-top:78px;padding-bottom:78px}.home-project-media{min-height:260px;border-radius:12px}.project-detail,.service-detail,.place-card{border-radius:24px}.project-detail-media,.service-visual{min-height:280px}.place-card h3,.service-detail-body h2{font-size:42px}.place-card{min-height:360px}.nav a{white-space:nowrap}}


/* ===== Requested fixes: readable one-column projects, vertical home services, compact titles ===== */
.hero h1,
.page-hero h1{
  font-size:clamp(36px,6.2vw,82px)!important;
  line-height:1.02!important;
  letter-spacing:-.055em!important;
  max-width:1120px;
}
.section-head h2,
.cta h2{
  font-size:clamp(28px,4.2vw,56px)!important;
  line-height:1.08!important;
  letter-spacing:-.045em!important;
}
body[data-page="projects"] #projectGrid{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:clamp(28px,5vw,56px)!important;
  max-width:980px;
  margin-inline:auto;
}
body[data-page="projects"] .project-detail,
body[data-page="projects"] .project-detail:nth-child(even){
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:0!important;
  max-width:100%;
  margin:0!important;
  overflow:hidden;
}
body[data-page="projects"] .project-detail:nth-child(even) .project-detail-media{
  order:0!important;
}
body[data-page="projects"] .project-detail-media{
  width:100%;
  min-height:clamp(260px,42vw,520px)!important;
  aspect-ratio:16/9;
}
body[data-page="projects"] .project-detail-media img,
body[data-page="projects"] .project-detail-media .placeholder{
  min-height:100%!important;
}
body[data-page="projects"] .project-detail-body{
  padding:clamp(24px,4.2vw,56px)!important;
}
body[data-page="projects"] .project-detail-body h2{
  font-size:clamp(30px,5vw,58px)!important;
  line-height:1.04!important;
  letter-spacing:-.05em!important;
  word-break:keep-all;
  overflow-wrap:normal;
}
body[data-page="projects"] .project-detail-body h2 small{
  font-size:clamp(14px,1.5vw,18px)!important;
}
body[data-page="home"] .service-section .service-grid{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:clamp(18px,3vw,28px)!important;
  max-width:880px;
  margin-inline:auto;
}
body[data-page="home"] .service-section .service-card{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  column-gap:clamp(18px,3vw,34px);
  row-gap:10px;
  align-items:start;
  padding:clamp(26px,4vw,46px)!important;
  border-radius:30px!important;
}
body[data-page="home"] .service-section .service-number{
  grid-row:1 / span 3;
  margin-bottom:0!important;
}
body[data-page="home"] .service-section .service-card h3{
  margin:0!important;
  font-size:clamp(28px,4.5vw,52px)!important;
  line-height:1.08!important;
  letter-spacing:-.045em!important;
  word-break:keep-all;
}
body[data-page="home"] .service-section .service-card p{
  max-width:620px;
  font-size:clamp(15px,1.6vw,18px);
  line-height:1.9;
}
.ceo-photo{
  min-height:clamp(480px,58vw,720px)!important;
  margin:0;
  background:var(--soft)!important;
  filter:none!important;
}
.ceo-photo img{
  width:100%;
  height:100%;
  min-height:inherit;
  object-fit:cover;
  object-position:center;
}
.member-grid h3{
  font-size:clamp(24px,3.2vw,36px)!important;
  line-height:1.12!important;
  word-break:keep-all;
}
@media (max-width:900px){
  body[data-page="home"] .service-section .service-card{grid-template-columns:1fr;}
  body[data-page="home"] .service-section .service-number{grid-row:auto;}
  .hero h1,.page-hero h1{font-size:clamp(34px,9vw,54px)!important;}
}

/* ===== Services: hover animations ===== */

/* --- 料金カード（.notice） --- */
.service-detail .notice {
  border-radius: 14px;
  padding: 18px 22px;
  background: #f4f1ee;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.7;
  transition: background 0.28s cubic-bezier(0.23,1,0.32,1),
              color 0.28s cubic-bezier(0.23,1,0.32,1),
              transform 0.28s cubic-bezier(0.23,1,0.32,1),
              box-shadow 0.28s cubic-bezier(0.23,1,0.32,1);
  cursor: default;
}
.service-detail .notice:hover {
  background: #1a1714;
  color: #f4f1ee;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.13);
}

/* --- ターゲットリスト（こんな企業・行政へ） --- */
.service-detail-body ul {
  list-style: none;
  padding: 0;
  margin: 0 0 24px;
}
.service-detail-body ul li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 14px;
  line-height: 1.75;
  padding: 9px 12px;
  margin: 0 -12px;
  border-radius: 8px;
  cursor: default;
  transition: background 0.18s cubic-bezier(0.23,1,0.32,1),
              transform 0.18s cubic-bezier(0.23,1,0.32,1),
              color 0.18s cubic-bezier(0.23,1,0.32,1);
}
.service-detail-body ul li::before {
  content: "▸";
  flex-shrink: 0;
  margin-top: 2px;
  font-weight: 900;
  color: #bbb;
  transition: color 0.18s cubic-bezier(0.23,1,0.32,1),
              transform 0.18s cubic-bezier(0.23,1,0.32,1);
}
.service-detail-body ul li:hover {
  background: #f4f1ee;
  transform: translateX(4px);
  color: #1a1714;
}
.service-detail-body ul li:hover::before {
  color: #b84c2a;
  transform: scale(1.2);
}

/* --- サービスブロック全体（.service-detail） --- */
.service-detail {
  transition: background 0.4s cubic-bezier(0.23,1,0.32,1),
              box-shadow 0.4s cubic-bezier(0.23,1,0.32,1) !important;
}
.service-detail:hover {
  background: #ffffff !important;
  box-shadow: 0 12px 40px rgba(0,0,0,0.07) !important;
}
.service-detail:hover .service-visual img {
  transform: scale(1.03);
}
.service-visual img {
  transition: transform 0.6s cubic-bezier(0.23,1,0.32,1) !important;
}

/* --- 拠点カード（.place-card） --- */
.place-card {
  transition: background 0.28s cubic-bezier(0.23,1,0.32,1),
              transform 0.28s cubic-bezier(0.23,1,0.32,1),
              box-shadow 0.28s cubic-bezier(0.23,1,0.32,1) !important;
}
.place-card:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 16px 40px rgba(0,0,0,0.18) !important;
}
.place-card .arrow-link span {
  display: inline-block;
  transition: transform 0.2s cubic-bezier(0.23,1,0.32,1);
}
.place-card:hover .arrow-link span {
  transform: translateX(6px);
}

/* --- FAQアコーディオン（.faq-list article） --- */
.faq-list article {
  cursor: pointer;
}
.faq-list article h3 {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  transition: color 0.2s cubic-bezier(0.23,1,0.32,1);
}
.faq-list article h3::after {
  content: "+";
  flex-shrink: 0;
  font-size: 22px;
  font-weight: 300;
  color: #b84c2a;
  transition: transform 0.3s cubic-bezier(0.23,1,0.32,1);
  margin-top: -2px;
}
.faq-list article:hover h3 {
  color: #b84c2a;
}
.faq-list article.is-open h3::after {
  transform: rotate(45deg);
}
.faq-list article p {
  max-height: 0;
  overflow: hidden;
  margin-top: 0 !important;
  transition: max-height 0.35s cubic-bezier(0.23,1,0.32,1),
              opacity 0.3s cubic-bezier(0.23,1,0.32,1),
              margin-top 0.3s cubic-bezier(0.23,1,0.32,1);
  opacity: 0;
}
.faq-list article.is-open p {
  max-height: 300px;
  opacity: 1;
  margin-top: 12px !important;
}
