/* 全ページ共通。承認済み design.css と同じトークン・書体・ヘッダー・CTA・フッター。
   WordPressではページ全体のラッパーに .logica-site を指定する。 */
.logica-site {
  --paper:#f4f2eb; --white:#fffefa; --ink:#202b29; --teal:#2b9bab;
  --deep-teal:#17636c; --mint:#d6e7e2; --rule:#b5bbb3; --muted:#555f59;
  --art-paper:#fffefa; --art-teal:#75bdbb; --gutter:64px;
  margin:0; color:var(--ink); background:var(--paper);
  font-family:'Noto Sans JP','Yu Gothic','YuGothic','Hiragino Kaku Gothic ProN','Meiryo',sans-serif;
  font-size:16px; font-weight:400; line-height:1.9; -webkit-font-smoothing:antialiased;
}
html.logica-page { scroll-behavior:smooth; scroll-padding-top:32px; }
.logica-site,.logica-site * { box-sizing:border-box; }
.logica-site :is(h1,h2,h3,p,ul,ol,dl,dd,figure) { margin:0; }
.logica-site :is(h1,h2,h3) { font-feature-settings:'palt'; }
.logica-site :is(ul,ol) { list-style:none; padding:0; }
.logica-site a { color:inherit; text-decoration:none; }
.logica-site :is(img,svg) { display:block; max-width:100%; }
.logica-site img { height:auto; }
.logica-site :is(a,summary,button,input,textarea):focus-visible { outline:3px solid var(--deep-teal); outline-offset:5px; }
.logica-site ::selection { color:var(--white); background:var(--deep-teal); }
.logica-site .illustration-library { position:absolute; width:0; height:0; overflow:hidden; }
.logica-site .skip-link { position:absolute; top:8px; left:24px; z-index:20; transform:translateY(-180%); padding:8px 16px; background:var(--ink); color:var(--white); }
.logica-site .skip-link:focus { transform:none; }
.logica-site .site-header { min-height:112px; margin:0 var(--gutter); display:flex; align-items:center; justify-content:space-between; gap:40px; border-bottom:1px solid var(--ink); }
.logica-site .brand { width:164px; flex-shrink:0; }
.logica-site :is(.brand img,.footer-brand img) { mix-blend-mode:multiply; }
.logica-site .desktop-nav { display:flex; align-items:center; gap:36px; font-weight:500; }
.logica-site .desktop-nav a { position:relative; padding:10px 0; }
.logica-site .desktop-nav a[aria-current]::after { content:''; width:5px; height:5px; position:absolute; border-radius:50%; background:var(--deep-teal); bottom:-8px; left:calc(50% - 2.5px); }
.logica-site .desktop-nav a:hover { color:var(--deep-teal); }
.logica-site .desktop-nav .nav-contact { border:1px solid var(--ink); padding:10px 17px 10px 24px; margin-left:14px; min-width:179px; display:flex; align-items:center; justify-content:space-between; gap:22px; }
.logica-site .small-arrow { font:23px/1 Arial,sans-serif; }
.logica-site .desktop-nav .nav-contact:hover { color:var(--white); background:var(--ink); }
.logica-site .mobile-menu { display:none; }
.logica-site h1 { font-size:102px; font-weight:800; letter-spacing:-.045em; line-height:1.25; }
.logica-site h2 { font-size:42px; font-weight:700; letter-spacing:-.035em; line-height:1.5; }
.logica-site h3 { font-size:25px; font-weight:700; letter-spacing:-.02em; line-height:1.65; }
.logica-site .title-dot { display:inline-block; width:17px; height:17px; margin-left:15px; border-radius:50%; background:var(--teal); }
.logica-site .service-art { color:var(--ink); overflow:visible; }
.logica-site .arrow-icon { width:32px; height:32px; fill:none; stroke:currentColor; stroke-width:1.6; flex-shrink:0; }
.logica-site .section-label { color:var(--deep-teal); font:500 16px/1.5 Arial,sans-serif; letter-spacing:.08em; margin-bottom:23px; }
.logica-site .section-label::before { content:''; display:inline-block; width:24px; height:1px; background:currentColor; margin-right:12px; vertical-align:middle; }
.logica-site .section-space { padding:92px var(--gutter); }
.logica-site .inset-section { margin:0 var(--gutter); padding:54px; background:var(--mint); }
.logica-site .section-heading-pair { display:flex; justify-content:space-between; gap:64px; align-items:end; }
.logica-site .section-heading-pair > p { max-width:570px; padding-bottom:7px; }
.logica-site .dark-section { background:var(--ink); color:var(--white); }
.logica-site .dark-section .section-label { color:#9ad3cf; }
.logica-site .dark-section :is(a,button,summary):focus-visible { outline-color:#9ad3cf; }
.logica-site .dark-section .service-art { --art-teal:#80c3c0; --art-paper:#f1f0dc; }
.logica-site .solid-link { display:inline-flex; justify-content:space-between; align-items:center; gap:30px; min-height:65px; padding:13px 23px 13px 28px; background:var(--ink); color:var(--white); font-size:16px; font-weight:500; border:1px solid var(--ink); }
.logica-site .solid-link:hover { background:var(--deep-teal); border-color:var(--deep-teal); }
.logica-site .line-link { display:inline-flex; justify-content:space-between; align-items:center; gap:29px; min-height:60px; border-bottom:1px solid var(--ink); font-weight:500; }
.logica-site .line-link > span { font:26px/1 Arial,sans-serif; }
.logica-site .line-link:hover { color:var(--deep-teal); border-color:var(--deep-teal); }
.logica-site .text-link { text-decoration:underline; text-underline-offset:5px; text-decoration-thickness:1px; overflow-wrap:anywhere; }
.logica-site .text-link:hover { color:var(--deep-teal); }
.logica-site .contact { padding:85px var(--gutter) 87px; background:var(--mint); display:flex; justify-content:space-between; align-items:center; gap:64px; }
.logica-site .contact h2 { font-size:58px; line-height:1.5; letter-spacing:-.04em; }
.logica-site .contact p:not(.section-label) { margin-top:25px; font-size:16px; }
.logica-site .contact-link { width:248px; height:248px; border-radius:50%; background:var(--ink); color:var(--white); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; flex-shrink:0; transition:background .2s,transform .2s; }
.logica-site .contact-link > span { font-size:17px; font-weight:500; }
.logica-site .contact-link .arrow-icon { width:96px; height:96px; stroke-width:1; }
.logica-site .contact-link:hover { background:var(--deep-teal); transform:translateY(-4px); }
.logica-site .site-footer { padding:58px var(--gutter) 30px; background:var(--white); }
.logica-site .footer-top { display:flex; justify-content:space-between; align-items:center; padding-bottom:54px; border-bottom:1px solid var(--rule); }
.logica-site .footer-catch { font-size:25px; font-weight:600; line-height:1.9; letter-spacing:-.015em; }
.logica-site .back-top { width:56px; height:56px; border:1px solid var(--ink); border-radius:50%; display:grid; place-items:center; font:27px/1 Arial,sans-serif; }
.logica-site .back-top:hover { color:var(--white); background:var(--ink); }
.logica-site .footer-bottom { padding-top:39px; display:flex; justify-content:space-between; align-items:flex-start; gap:42px; }
.logica-site .footer-brand { width:215px; flex-shrink:0; }
.logica-site .footer-right nav { display:flex; flex-wrap:wrap; gap:17px 23px; font-size:14px; }
.logica-site .footer-right nav a:hover { text-decoration:underline; text-underline-offset:5px; }
.logica-site .copyright { font-size:14px; line-height:1.8; margin-top:27px; text-align:right; color:var(--muted); }
@media (min-width:1600px) { .logica-site { --gutter:max(64px,calc((100vw - 1320px)/2)); } }
@media (max-width:1100px) {
  .logica-site { --gutter:38px; }
  .logica-site .site-header { gap:24px; }
  .logica-site .desktop-nav { gap:23px; font-size:15px; }
  .logica-site .desktop-nav .nav-contact { min-width:158px; margin-left:0; padding-left:16px; }
  .logica-site h1 { font-size:78px; }
  .logica-site h2 { font-size:34px; }
  .logica-site .section-space { padding-top:70px; padding-bottom:70px; }
  .logica-site .inset-section { padding:36px; }
  .logica-site .contact { gap:40px; }
  .logica-site .contact h2 { font-size:47px; }
  .logica-site .contact-link { width:208px; height:208px; }
  .logica-site .footer-bottom { flex-direction:column; }
  .logica-site .footer-right { width:100%; }
}
@media (max-width:900px) {
  .logica-site .site-header { min-height:94px; position:relative; }
  .logica-site .desktop-nav { display:none; }
  .logica-site .mobile-menu { display:block; }
  .logica-site .mobile-menu summary { display:flex; flex-direction:column; justify-content:center; gap:7px; width:48px; height:48px; padding:8px; cursor:pointer; list-style:none; }
  .logica-site .mobile-menu summary::-webkit-details-marker { display:none; }
  .logica-site .mobile-menu summary span { width:29px; height:1px; background:var(--ink); }
  .logica-site .mobile-menu[open] summary span:first-child { transform:translateY(4px) rotate(45deg); }
  .logica-site .mobile-menu[open] summary span:last-child { transform:translateY(-4px) rotate(-45deg); }
  .logica-site .mobile-menu nav { position:absolute; top:93px; left:calc(-1 * var(--gutter)); right:calc(-1 * var(--gutter)); background:var(--paper); padding:18px var(--gutter) 28px; z-index:5; border-bottom:1px solid var(--ink); }
  .logica-site .mobile-menu nav a { display:block; padding:13px 0; border-bottom:1px solid var(--rule); }
  .logica-site .mobile-menu nav a[aria-current] { color:var(--deep-teal); font-weight:700; }
  .logica-site .mobile-menu .small-arrow { float:right; }
}
@media (max-width:600px) {
  .logica-site { --gutter:24px; }
  html.logica-page { scroll-padding-top:18px; }
  .logica-site .site-header { min-height:83px; }
  .logica-site .brand { width:137px; }
  .logica-site .mobile-menu nav { top:82px; }
  .logica-site h1 { font-size:46px; }
  .logica-site h2 { font-size:30px; }
  .logica-site h3 { font-size:23px; }
  .logica-site .title-dot { width:10px; height:10px; margin-left:8px; }
  .logica-site .section-label { font-size:14px; margin-bottom:19px; }
  .logica-site .section-space { padding-top:52px; padding-bottom:52px; }
  .logica-site .inset-section { margin:0; padding:38px var(--gutter); }
  .logica-site .section-heading-pair { display:block; }
  .logica-site .section-heading-pair > p { margin-top:24px; }
  .logica-site .contact { padding:47px var(--gutter) 43px; flex-direction:column; align-items:flex-start; gap:30px; }
  .logica-site .contact h2 { font-size:34px; line-height:1.6; }
  .logica-site .contact p:not(.section-label) { margin-top:19px; }
  .logica-site .contact-link { width:100%; height:84px; border-radius:0; flex-direction:row; gap:29px; }
  .logica-site .contact-link .arrow-icon { width:44px; height:44px; stroke-width:1.5; }
  .logica-site .site-footer { padding-top:33px; padding-bottom:27px; }
  .logica-site .footer-top { gap:12px; padding-bottom:28px; align-items:flex-start; }
  .logica-site .footer-catch { font-size:17px; line-height:1.9; }
  .logica-site .back-top { width:40px; height:40px; flex-shrink:0; font-size:24px; }
  .logica-site .footer-bottom { padding-top:31px; gap:27px; }
  .logica-site .footer-brand { width:155px; }
  .logica-site .footer-right nav { display:grid; grid-template-columns:1fr 1fr; gap:12px 20px; }
  .logica-site .footer-right nav a { min-height:32px; }
  .logica-site .copyright { text-align:left; font-size:13px; margin-top:23px; }
}
@media (prefers-reduced-motion:reduce) {
  html.logica-page { scroll-behavior:auto; }
  .logica-site *,.logica-site *::before,.logica-site *::after { transition:none!important; }
}
