
:root{--white:#fff;--black:#111;--text:#333;--muted:#666;--soft:#f5f5f2;--deep:#111;--max:1160px}
*{box-sizing:border-box}body{margin:0;color:var(--text);background:#fff;font-family:"Noto Sans JP",system-ui,sans-serif;font-size:14px;line-height:1.9;letter-spacing:.02em}a{text-decoration:none;color:inherit}img{max-width:100%;display:block}.container{width:min(100% - 48px,var(--max));margin:0 auto}.section{padding:88px 0}.section-white{background:#fff}.section-soft{background:var(--soft)}.section-dark{background:#111;color:#fff}.section-dark h2,.section-dark h3,.section-dark .eyebrow{color:#fff}.section-dark li{color:rgba(255,255,255,.78)}.eyebrow{margin:0 0 12px;color:var(--muted);font-size:12px;letter-spacing:.1em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(38px,6vw,72px);line-height:1.18;letter-spacing:-.03em;color:#111;margin-bottom:22px}h2{font-size:clamp(24px,3.4vw,40px);line-height:1.4;color:#111;margin-bottom:18px}h3{font-size:18px;line-height:1.55;color:#111;margin-bottom:12px}.lead{max-width:760px;font-size:15px;line-height:2}.small{color:#666;font-size:12px}.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);border-bottom:1px solid rgba(0,0,0,.06)}.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:72px;gap:20px}.logo{display:inline-flex;align-items:center;min-width:78px}.logo-img{width:106px;height:auto;object-fit:contain}.footer-logo .logo-img{filter:invert(1) grayscale(1) brightness(2)}.global-nav{display:flex;align-items:center;gap:18px;font-size:12px;white-space:nowrap}.global-nav a{padding:6px 0;border-bottom:1px solid transparent}.global-nav a:hover,.global-nav a.is-active{border-color:#111}.header-actions{display:flex;align-items:center;gap:12px}.menu-button{display:none;width:38px;height:38px;border:0;background:#fff;cursor:pointer}.nav-dropdown{position:relative;display:flex}.nav-service-trigger{display:inline-flex;gap:6px}.nav-service-trigger:after{content:"⌄";font-size:11px}.service-popover{position:absolute;top:calc(100% + 14px);left:50%;display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));width:min(660px,calc(100vw - 48px));padding:16px;background:#fff;box-shadow:0 20px 60px rgba(0,0,0,.12);opacity:0;visibility:hidden;transform:translate(-50%,8px);transition:.18s;z-index:90}.service-popover:before{content:"";position:absolute;top:-7px;left:50%;width:12px;height:12px;background:#fff;transform:translateX(-50%) rotate(45deg)}.nav-dropdown:hover .service-popover,.nav-dropdown:focus-within .service-popover{opacity:1;visibility:visible;transform:translate(-50%,0)}.service-popover a{display:grid;gap:4px;padding:14px}.service-popover a:hover{background:#f5f5f2}.service-popover strong{color:#111;font-size:13px}.service-popover span{color:#666;font-size:11px;line-height:1.55}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 18px;border:0;color:#fff;background:#111;font-size:13px;white-space:nowrap;transition:.18s}.btn:hover{background:#3a3a3a;color:#fff;transform:translateY(-1px)}.btn.text{min-height:auto;padding:0;background:transparent;color:#111;border-bottom:1px solid currentColor;transform:none}.hero{padding:48px 0 84px}.hero-media,.service-lp-hero-media{position:relative;display:flex;align-items:center;min-height:520px;overflow:hidden;background:linear-gradient(90deg,rgba(255,255,255,.94),rgba(255,255,255,.82),rgba(238,238,238,.2)),repeating-linear-gradient(135deg,#eee 0,#eee 18px,#e1e1e1 18px,#e1e1e1 36px)}.hero-media{aspect-ratio:16/9}.hero-media:after,.service-lp-hero-media:after{content:"背景画像";position:absolute;right:20px;bottom:18px;color:#666;font-size:12px}.hero-copy,.service-lp-hero-copy{position:relative;z-index:2;width:min(620px,calc(100% - 64px));margin-left:48px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.section-head{display:grid;grid-template-columns:minmax(0,.85fr) minmax(280px,.75fr);gap:48px;align-items:end;margin-bottom:36px}.section-head-left{display:block}.placeholder{display:grid;place-items:center;min-height:280px;color:#666;background:linear-gradient(135deg,rgba(255,255,255,.7),rgba(0,0,0,.08)),repeating-linear-gradient(135deg,#ededed 0,#ededed 18px,#e0e0e0 18px,#e0e0e0 36px)}.placeholder.short{min-height:160px}.about-grid{display:grid;grid-template-columns:minmax(0,.92fr) minmax(300px,.82fr);gap:26px;align-items:center}.service-mini,.grid-3,.article-grid,.service-index-grid,.problem-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.card,.service-index-card,.service-pain-card,.service-case-card,.step-item,.metric{background:#fff;padding:24px}.service-index-card h3{font-size:24px;margin:18px 0 12px}.service-gradient-card{position:relative;min-height:300px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end}.service-gradient-card:before{content:"";position:absolute;inset:0;z-index:0;opacity:.92}.service-gradient-card:after{content:"背景画像";position:absolute;right:14px;top:14px;color:rgba(0,0,0,.36);font-size:11px}.service-gradient-card>*{position:relative;z-index:1}.service-gradient-bpm:before{background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(240,240,240,.75),rgba(214,214,214,.5)),repeating-linear-gradient(45deg,#eee 0,#eee 16px,#dedede 16px,#dedede 32px)}.service-gradient-bpr:before{background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(232,232,232,.72),rgba(196,196,196,.54)),radial-gradient(circle at 70% 25%,rgba(0,0,0,.14),transparent 34%)}.service-gradient-bpo:before{background:linear-gradient(135deg,rgba(255,255,255,.93),rgba(225,225,225,.76),rgba(178,178,178,.56)),radial-gradient(circle at 30% 20%,rgba(0,0,0,.16),transparent 30%)}.service-acronym{font-size:30px;line-height:1.1;letter-spacing:.04em}.problem-panel{display:grid;grid-template-columns:90px 1fr auto;gap:22px;align-items:center;padding:28px 0;border-bottom:1px solid rgba(255,255,255,.14)}.problem-number{color:rgba(255,255,255,.44);font-size:36px;font-weight:700}.list{margin:0;padding-left:1.2em}.problem-cta{min-width:210px}.feature-visual-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.78fr);gap:34px;align-items:center;padding:56px 0}.feature-image-left{grid-template-columns:minmax(320px,.78fr) minmax(0,1fr)}.feature-image{min-height:260px;aspect-ratio:16/10}.feature-text h3{font-size:clamp(22px,2.7vw,34px);margin-top:0}.feature-text p{line-height:2}.section-contact-image{background:linear-gradient(90deg,rgba(17,17,17,.92),rgba(17,17,17,.78),rgba(17,17,17,.52)),repeating-linear-gradient(135deg,#2a2a2a 0,#2a2a2a 18px,#1c1c1c 18px,#1c1c1c 36px);color:#fff}.section-contact-image h2,.section-contact-image p,.section-contact-image .eyebrow{color:#fff}.cta-block{display:grid;grid-template-columns:minmax(0,.75fr) auto;gap:16px;align-items:center;padding:42px 0}.cta-visual-block{min-height:280px;padding-top:48px;padding-bottom:48px}.cta-visual-block .btn{background:#fff;color:#111}.cta-visual-block .btn:hover{background:#d8d8d8;color:#111}.case-section-head{margin-bottom:22px}.case-carousel-wrap,.article-carousel-wrap{position:relative;padding:0 58px}.case-carousel,.article-carousel{overflow:hidden}.case-carousel-track,.article-carousel-track{display:flex;transition:transform .45s ease}.case-slide,.article-slide{flex:0 0 calc(100% / 3);min-width:0;background:#fff}.case-slide{padding:22px}.case-slide h3{font-size:16px}.case-carousel-button{position:absolute;top:50%;z-index:3;width:44px;height:44px;border:0;background:#111;color:#fff;cursor:pointer;transform:translateY(-50%)}.case-carousel-button:hover{background:#3a3a3a}.case-carousel-button:disabled{opacity:.32}.case-carousel-button-prev{left:0}.case-carousel-button-next{right:0}.case-list-link{display:flex;justify-content:flex-end;margin-top:18px}.article-card{display:block;padding:0 0 18px;background:#fff}.article-card h3,.article-card p,.article-card .tag{margin-left:18px;margin-right:18px}.article-card h3{font-size:16px}.article-image{aspect-ratio:16/9;min-height:auto;margin:0 0 14px}.news-list-compact{display:grid}.news-row{display:grid;grid-template-columns:92px 118px 1fr;gap:16px;align-items:center;min-height:64px;padding:14px 0;border-top:1px solid rgba(0,0,0,.14)}.news-row:last-child{border-bottom:1px solid rgba(0,0,0,.14)}.news-row time{color:#666;font-size:12px}.news-row h3{margin:0;font-size:15px}.breadcrumb{padding:22px 0;color:#666;background:#fff;font-size:12px}.page-hero{padding:64px 0 56px}.page-hero-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(280px,.75fr);gap:48px;align-items:center}.service-lp-hero{padding:48px 0 72px}.metric-strip{display:grid;grid-template-columns:repeat(3,1fr);margin-top:26px}.metric strong{font-size:30px;color:#111}.service-data-visual{margin-top:28px;padding:26px;background:#fff}.data-bar{height:44px;margin-bottom:14px;background:#ddd;position:relative}.data-bar.high{width:100%}.data-bar.low{width:42%;background:#111;color:#fff}.data-bar span{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-weight:700;font-size:12px}.solution-message p:not(.eyebrow){max-width:920px;font-size:clamp(18px,2vw,28px);line-height:2;color:rgba(255,255,255,.86)}.step-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.kv-list{display:grid;background:#fff}.kv-row{display:grid;grid-template-columns:190px 1fr;border-bottom:1px solid rgba(0,0,0,.1)}.kv-row dt,.kv-row dd{margin:0;padding:16px 18px}.kv-row dt{background:rgba(0,0,0,.04);font-weight:700}.form-grid{display:grid;gap:18px;background:#fff;padding:28px}.form-field label{display:block;margin-bottom:8px;font-weight:700}.form-field input,.form-field select,.form-field textarea{width:100%;padding:12px 14px;border:1px solid rgba(0,0,0,.12)}.form-field textarea{min-height:140px}.contact-form-only{max-width:780px}.tag{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;background:rgba(0,0,0,.06);color:#666;font-size:11px}.site-footer{padding:48px 0 28px;background:#111;color:#fff}.footer-grid{display:grid;grid-template-columns:1fr 2fr;gap:40px}.footer-links{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.footer-links h3{color:#fff;font-size:13px}.footer-links a{display:block;margin-top:10px;color:rgba(255,255,255,.78);font-size:12px}.site-footer .small,.copyright{color:rgba(255,255,255,.65)}.copyright{margin-top:40px;padding-top:20px;border-top:1px solid rgba(255,255,255,.16);font-size:12px}
@media(max-width:1080px){.global-nav{gap:12px;font-size:11px}.logo-img{width:88px}}
@media(max-width:900px){.global-nav{position:absolute;top:72px;left:0;right:0;display:none;flex-direction:column;align-items:stretch;gap:0;padding:12px 24px 24px;background:#fff;border-bottom:1px solid rgba(0,0,0,.08)}.global-nav.is-open{display:flex}.global-nav a,.nav-service-trigger{padding:12px 0;border-bottom:1px solid rgba(0,0,0,.08)}.menu-button{display:inline-grid;place-items:center}.header-actions .btn{display:none}.nav-dropdown{display:grid}.service-popover{position:static;visibility:visible;opacity:1;transform:none;width:100%;grid-template-columns:1fr;padding:8px 0 8px 14px;box-shadow:none;background:transparent}.service-popover:before{content:none}.container{width:min(100% - 32px,var(--max))}.section,.hero{padding:56px 0}.hero-media{aspect-ratio:auto}.hero-copy,.service-lp-hero-copy{width:calc(100% - 32px);margin-left:16px}.section-head,.about-grid,.page-hero-grid,.cta-block,.footer-grid,.footer-links{grid-template-columns:1fr}.service-mini,.service-index-grid,.article-grid,.grid-3,.problem-grid,.metric-strip,.step-grid{grid-template-columns:1fr}.problem-panel{grid-template-columns:64px 1fr}.problem-cta{grid-column:1/-1;width:100%}.feature-visual-row,.feature-image-left{grid-template-columns:1fr;padding:36px 0}.feature-text-left .feature-text{order:1}.feature-text-left .feature-image{order:2}.feature-image-left .feature-image{order:1}.feature-image-left .feature-text{order:2}.case-carousel-wrap,.article-carousel-wrap{padding:0 48px}.case-slide,.article-slide{flex-basis:100%}.news-row{grid-template-columns:84px 1fr}.news-row h3{grid-column:2}.kv-row{grid-template-columns:1fr}}
@media(max-width:560px){h1{font-size:44px}.hero-actions{display:grid}.btn{width:100%}.service-gradient-card{min-height:210px}.case-carousel-wrap,.article-carousel-wrap{padding:0 42px}.case-carousel-button{width:36px;height:48px}.news-row{grid-template-columns:76px 1fr;min-height:58px;padding:12px 0}.form-grid{padding:20px}}


/* v26 responsive / layout refinements */
:root{--section-y:72px;--section-y-mobile:48px}.section,.page-hero,.service-lp-hero{padding-top:var(--section-y)!important;padding-bottom:var(--section-y)!important}.hero{padding:0 0 10pt!important}.hero .container{width:100%!important;max-width:none!important}.hero-media{width:100%!important;min-height:min(740px,calc(100vh - 72px));border-radius:0}.hero-copy{margin-left:calc(48px + 5pt)!important}.hero-actions .btn{min-width:156px}.hero-actions .btn.secondary{background:transparent!important;color:#111!important;border:1px solid #111!important}.hero-actions .btn.secondary:hover{background:#111!important;color:#fff!important}#about{padding-top:10pt!important}.about-single{max-width:860px}.service-overview-section{display:none!important}.point-service-triad{margin-bottom:54px}#point .section-head h2{font-size:clamp(28px,4vw,44px)}.solution-vertical-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:stretch}.solution-column{display:flex;flex-direction:column;min-height:420px;padding:34px 28px;background:rgba(255,255,255,.06)}.solution-column .problem-number{margin-bottom:28px}.solution-column h3{margin-bottom:18px}.solution-column .list{margin-top:auto}.solution-bottom-cta{display:flex;justify-content:center;margin-top:34px}.solution-bottom-cta .btn{min-width:260px;background:#fff;color:#111}.solution-bottom-cta .btn:hover{background:#d8d8d8;color:#111}.pmark-placeholder{display:grid;place-items:center;width:150px;height:72px;margin-top:22px;background:rgba(255,255,255,.10);color:rgba(255,255,255,.82);font-size:12px;text-align:center}.pmark-placeholder small{display:block;color:rgba(255,255,255,.55);font-size:10px}.faq-container{max-width:920px}.faq-list{display:grid;gap:10px}.faq-item{background:#fff}.faq-question{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%;padding:20px 22px;border:0;background:#fff;color:#111;text-align:left;cursor:pointer}.faq-question span{font-weight:700;line-height:1.7}.faq-question i{flex:0 0 auto;display:grid;place-items:center;width:30px;height:30px;background:#111;color:#fff;font-size:12px;transition:transform .18s ease}.faq-item.is-open .faq-question i{transform:rotate(45deg)}.faq-answer{display:none;padding:0 22px 22px}.faq-item.is-open .faq-answer{display:block}.faq-answer p{margin:0;color:#555}@media(max-width:1100px){.global-nav{gap:10px;font-size:10.5px}.logo-img{width:82px}}@media(max-width:900px){.section,.page-hero,.service-lp-hero{padding-top:var(--section-y-mobile)!important;padding-bottom:var(--section-y-mobile)!important}.hero{padding-bottom:10pt!important}.hero-media{min-height:calc(100vh - 72px)}.hero-copy{margin-left:calc(16px + 5pt)!important}.solution-vertical-grid{grid-template-columns:1fr}.solution-column{min-height:auto}.point-service-triad{margin-bottom:34px}.footer-links{grid-template-columns:1fr!important;gap:18px}.footer-service-list a:nth-of-type(n+4){display:none}}@media(max-width:560px){.hero-copy{width:calc(100% - 42px)}.hero-actions .btn,.solution-bottom-cta .btn{width:100%}.footer-links .footer-col:not(:first-child) a:nth-of-type(n+4){display:none}.pmark-placeholder{width:132px;height:64px}.faq-question{padding:18px 16px}.faq-answer{padding:0 16px 18px}}


/* v27: mobile hamburger menu scroll fix */
@media (max-width: 900px) {
  body.menu-open {
    overflow: hidden;
  }

  .global-nav {
    max-height: calc(100vh - 72px);
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding-bottom: max(24px, env(safe-area-inset-bottom));
  }

  .global-nav.is-open {
    display: flex;
  }

  .global-nav .service-popover {
    max-height: none;
    overflow: visible;
  }
}

/* v28: mobile menu fixed scroll and POINT diagram */
@media (max-width: 900px) {
  body.menu-open {
    overflow: hidden !important;
  }

  .global-nav {
    position: fixed !important;
    top: 72px !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    height: calc(100dvh - 72px) !important;
    max-height: calc(100dvh - 72px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 40px !important;
    transform: none !important;
  }

  .global-nav.is-open {
    display: flex !important;
  }

  .nav-dropdown,
  .global-nav .nav-dropdown {
    position: static !important;
    display: block !important;
    width: 100% !important;
    transform: none !important;
  }

  .nav-dropdown:hover,
  .nav-dropdown:focus-within {
    transform: none !important;
  }

  .service-popover,
  .nav-dropdown:hover .service-popover,
  .nav-dropdown:focus-within .service-popover {
    position: static !important;
    left: auto !important;
    top: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    max-height: none !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
    translate: none !important;
    overflow: visible !important;
    padding: 8px 0 8px 14px !important;
    box-shadow: none !important;
    background: transparent !important;
  }

  .service-popover::before,
  .nav-dropdown:hover .service-popover::before,
  .nav-dropdown:focus-within .service-popover::before {
    content: none !important;
  }

  .service-popover a {
    white-space: normal !important;
  }
}

.point-process-row {
  margin-bottom: 0;
}

.point-process-visual {
  min-height: 320px;
  padding: 28px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.92), rgba(245,245,242,.75)),
    repeating-linear-gradient(135deg, #ededed 0, #ededed 18px, #e3e3e3 18px, #e3e3e3 36px);
}

.process-diagram {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  align-items: stretch;
  width: 100%;
}

.process-node {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 170px;
  padding: 20px;
  background: rgba(255,255,255,.78);
  color: #111;
}

.process-node strong {
  display: block;
  margin-bottom: 8px;
  font-size: clamp(22px, 3vw, 34px);
  line-height: 1;
  letter-spacing: .04em;
}

.process-node span {
  color: #333;
  font-size: 13px;
  line-height: 1.7;
}

.feature-list-visual .feature-visual-row:nth-child(odd) .feature-text {
  order: 1;
}
.feature-list-visual .feature-visual-row:nth-child(odd) .feature-image,
.feature-list-visual .feature-visual-row:nth-child(odd) .point-process-visual {
  order: 2;
}
.feature-list-visual .feature-visual-row:nth-child(even) .feature-image,
.feature-list-visual .feature-visual-row:nth-child(even) .point-process-visual {
  order: 1;
}
.feature-list-visual .feature-visual-row:nth-child(even) .feature-text {
  order: 2;
}

@media (max-width: 900px) {
  .process-diagram {
    grid-template-columns: 1fr;
  }
  .process-node {
    min-height: 112px;
  }
  .feature-list-visual .feature-visual-row:nth-child(odd) .feature-text,
  .feature-list-visual .feature-visual-row:nth-child(even) .feature-text {
    order: 1;
  }
  .feature-list-visual .feature-visual-row:nth-child(odd) .feature-image,
  .feature-list-visual .feature-visual-row:nth-child(even) .feature-image,
  .feature-list-visual .feature-visual-row:nth-child(odd) .point-process-visual,
  .feature-list-visual .feature-visual-row:nth-child(even) .point-process-visual {
    order: 2;
  }
}

/* v29: TOP service thumbnails and FAQ under contact; service pages de-emphasized */
.nav-dropdown,
.service-popover {
  display: none !important;
}

.top-service-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}

.top-service-card {
  background: #ffffff;
  overflow: hidden;
}

.top-service-thumb {
  display: grid;
  place-items: center;
  aspect-ratio: 16 / 10;
  min-height: 150px;
  color: #666666;
  background:
    linear-gradient(135deg, rgba(255,255,255,.7), rgba(0,0,0,.08)),
    repeating-linear-gradient(135deg, #ededed 0, #ededed 18px, #e0e0e0 18px, #e0e0e0 36px);
  font-size: 12px;
}

.top-service-body {
  padding: 18px;
}

.top-service-body h3 {
  margin: 12px 0 8px;
  font-size: 18px;
}

.top-service-body p {
  margin-bottom: 0;
  color: #666666;
  font-size: 12px;
  line-height: 1.75;
}

.top-faq-section {
  padding-top: var(--section-y) !important;
}

.faq-container {
  max-width: 920px;
}

.faq-list {
  display: grid;
  gap: 10px;
}

.faq-item {
  background: #ffffff;
}

.faq-question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  width: 100%;
  padding: 20px 22px;
  border: 0;
  background: #ffffff;
  color: #111111;
  text-align: left;
  cursor: pointer;
}

.faq-question span {
  font-weight: 700;
  line-height: 1.7;
}

.faq-question i {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  background: #111111;
  color: #ffffff;
  font-size: 12px;
  transition: transform .18s ease;
}

.faq-item.is-open .faq-question i {
  transform: rotate(45deg);
}

.faq-answer {
  display: none;
  padding: 0 22px 22px;
}

.faq-item.is-open .faq-answer {
  display: block;
}

.faq-answer p {
  margin: 0;
  color: #555555;
}

@media (max-width: 900px) {
  .top-service-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .top-service-grid {
    grid-template-columns: 1fr;
  }

  .top-service-body {
    padding: 16px;
  }

  .faq-question {
    padding: 18px 16px;
  }

  .faq-answer {
    padding: 0 16px 18px;
  }
}


/* v29: no standalone service page, clickable 3x3 service thumbnails */
.top-service-card {
  color: inherit;
  cursor: pointer;
  transition: transform .18s ease, background .18s ease;
}
.top-service-card:hover {
  transform: translateY(-2px);
  background: #ffffff;
}
.top-service-card:hover .top-service-thumb {
  filter: brightness(.96);
}
@media (max-width: 900px) {
  .global-nav > a[href="index.html#service-list"] {
    font-weight: 700;
  }
}

/* v30: card details, 16:9 media, article tag alignment, POINT responsive */
.case-slide .placeholder.short,
.article-card .article-image,
.article-slide .article-image {
  aspect-ratio: 16 / 9 !important;
  min-height: 0 !important;
  height: auto !important;
}

.case-slide .placeholder.short {
  width: 100%;
  margin-bottom: 14px;
}

.article-card .tag,
.case-slide .tag {
  margin-top: 0;
  margin-bottom: 10px;
}

.top-service-card {
  display: block;
  min-height: 100%;
}

.top-service-body {
  padding: 22px 18px 20px !important;
}

.top-service-body .tag,
.top-service-thumb {
  display: none !important;
}

.top-service-body h3 {
  margin-top: 0 !important;
  margin-bottom: 14px !important;
}

.service-keywords {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.service-keywords li {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 8px;
  background: rgba(0,0,0,.055);
  color: #444;
  font-size: 10px;
  line-height: 1;
  white-space: nowrap;
}

.point-process-row {
  grid-template-columns: minmax(0, .85fr) minmax(320px, .9fr) !important;
  overflow: visible;
}

.point-process-visual {
  min-height: 0 !important;
  height: auto !important;
  aspect-ratio: auto !important;
  padding: 24px !important;
  overflow: visible !important;
}

.process-diagram-vertical {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 12px !important;
  width: 100%;
}

.process-diagram-vertical .process-node {
  min-height: 260px;
  justify-content: flex-start;
  padding: 24px 18px;
}

.process-diagram-vertical .process-node strong {
  font-size: clamp(28px, 3.2vw, 42px);
}

.process-diagram-vertical .process-node span {
  font-size: 13px;
  line-height: 1.9;
}

.feature-list-visual,
.feature-visual-row,
.feature-text {
  min-width: 0;
  overflow: visible;
}

#point .feature-list-visual > article:nth-child(1) .feature-text,
#point .feature-list-visual > article:nth-child(3) .feature-text {
  order: 1;
}
#point .feature-list-visual > article:nth-child(1) .feature-image,
#point .feature-list-visual > article:nth-child(3) .feature-image {
  order: 2;
}
#point .feature-list-visual > article:nth-child(2) .feature-image,
#point .feature-list-visual > article:nth-child(4) .feature-image {
  order: 1;
}
#point .feature-list-visual > article:nth-child(2) .feature-text,
#point .feature-list-visual > article:nth-child(4) .feature-text {
  order: 2;
}

@media (max-width: 1100px) {
  .process-diagram-vertical .process-node {
    min-height: 220px;
    padding: 20px 14px;
  }
}

@media (max-width: 900px) {
  .point-process-row {
    grid-template-columns: 1fr !important;
  }

  .process-diagram-vertical {
    grid-template-columns: 1fr !important;
  }

  .process-diagram-vertical .process-node {
    min-height: auto;
  }

  #point .feature-list-visual > article .feature-text,
  #point .feature-list-visual > article .feature-image {
    order: initial !important;
  }
}

@media (max-width: 560px) {
  .top-service-body {
    padding: 18px 14px !important;
  }

  .service-keywords {
    gap: 5px;
  }

  .service-keywords li {
    min-height: 22px;
    padding: 0 7px;
    font-size: 9px;
  }

  .point-process-visual {
    padding: 16px !important;
  }
}


/* v31: hero punctuation, point mobile, service chips, FAQ rules, news/footer responsive */
.hero-copy h1 {
  line-height: 1.16;
}

.point-process-visual,
.process-diagram,
.process-diagram-vertical {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box;
}

.point-process-visual {
  overflow: hidden !important;
}

.process-diagram-vertical {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 12px !important;
}

.process-diagram-vertical .process-node {
  min-width: 0 !important;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.top-service-card {
  min-width: 0;
}

.service-keywords {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.service-keywords li {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 8px;
  background: rgba(0,0,0,.055);
  color: #444;
  font-size: 10px;
  line-height: 1;
  white-space: nowrap;
}

.case-slide,
.article-slide.article-card {
  padding: 22px !important;
}

.case-slide .placeholder.short,
.article-card .article-image,
.article-slide .article-image {
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 0 14px !important;
}

.article-card h3,
.article-card p,
.article-card .tag {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.article-card .tag,
.case-slide .tag {
  margin-top: 0;
  margin-bottom: 10px;
}

.faq-list {
  gap: 0 !important;
}

.faq-item {
  border-top: 1px solid rgba(0,0,0,.14);
}

.faq-item:last-child {
  border-bottom: 1px solid rgba(0,0,0,.14);
}

.news-row {
  grid-template-columns: 92px 118px minmax(0, 1fr) !important;
}

.news-row h3 {
  grid-column: auto !important;
  min-width: 0;
}

@media (max-width: 900px) {
  .point-process-row {
    grid-template-columns: 1fr !important;
  }

  .point-process-visual {
    width: 100% !important;
    max-width: 100% !important;
    padding: 16px !important;
  }

  .process-diagram-vertical {
    grid-template-columns: 1fr !important;
    width: 100% !important;
  }

  .process-diagram-vertical .process-node {
    width: 100%;
    min-height: auto !important;
  }

  .news-row {
    grid-template-columns: 72px 86px minmax(0, 1fr) !important;
    gap: 8px !important;
  }

  .news-row .tag {
    font-size: 9px;
  }

  .news-row time {
    font-size: 10px;
  }

  .news-row h3 {
    grid-column: auto !important;
    font-size: 12px !important;
    line-height: 1.5;
  }

  .footer-links {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  .footer-links h3 {
    font-size: 11px !important;
    margin-bottom: 8px;
  }

  .footer-links a {
    font-size: 10px !important;
    line-height: 1.45;
    margin-top: 7px !important;
  }
}

@media (max-width: 560px) {
  .service-keywords li {
    min-height: 22px;
    padding: 0 7px;
    font-size: 9px;
  }

  .case-slide,
  .article-slide.article-card {
    padding: 16px !important;
  }

  .news-row {
    grid-template-columns: 58px 74px minmax(0, 1fr) !important;
  }

  .footer-links {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}


/* v32: feature image mobile width fix */
.feature-image,
.placeholder.feature-image,
.point-process-visual,
.feature-visual-row .feature-image {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.feature-visual-row {
  align-items: stretch;
}

.feature-visual-row .feature-image {
  overflow: hidden;
}

@media (max-width: 900px) {
  .feature-list-visual {
    overflow: visible;
  }

  .feature-visual-row {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    min-width: 0 !important;
  }

  .feature-visual-row .feature-text,
  .feature-visual-row .feature-image,
  .feature-visual-row .placeholder.feature-image,
  .feature-visual-row .point-process-visual {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .feature-visual-row .feature-image,
  .feature-visual-row .placeholder.feature-image,
  .feature-visual-row .point-process-visual {
    margin: 0 !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    overflow: hidden !important;
  }

  .feature-visual-row .feature-image > *,
  .feature-visual-row .placeholder.feature-image > *,
  .feature-visual-row .point-process-visual > * {
    max-width: 100% !important;
  }

  .feature-visual-row .feature-text {
    order: 1 !important;
  }

  .feature-visual-row .feature-image,
  .feature-visual-row .placeholder.feature-image,
  .feature-visual-row .point-process-visual {
    order: 2 !important;
  }
}

@media (max-width: 560px) {
  .feature-visual-row .feature-image,
  .feature-visual-row .placeholder.feature-image,
  .feature-visual-row .point-process-visual {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .feature-image,
  .placeholder.feature-image {
    min-height: 200px !important;
    height: auto !important;
    aspect-ratio: 4 / 3;
  }

  .point-process-visual {
    aspect-ratio: auto !important;
    min-height: 0 !important;
  }
}


/* v33: POINT mobile order fix */
@media (max-width: 900px) {
  #point .feature-list-visual > .feature-visual-row {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }

  #point .feature-list-visual > .feature-visual-row .feature-text {
    order: 1 !important;
  }

  #point .feature-list-visual > .feature-visual-row .feature-image,
  #point .feature-list-visual > .feature-visual-row .placeholder.feature-image,
  #point .feature-list-visual > .feature-visual-row .point-process-visual {
    order: 2 !important;
  }
}


/* v34: unified side margins, FAQ icon, TOP service 4x2 */
:root {
  --site-side: calc(48px + 5pt);
  --site-side-mobile: calc(16px + 5pt);
}

.container {
  width: auto !important;
  max-width: none !important;
  margin-left: var(--site-side) !important;
  margin-right: var(--site-side) !important;
}

.hero > .container {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.hero-copy,
.service-lp-hero-copy {
  margin-left: var(--site-side) !important;
}

.top-service-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 22px !important;
}

.top-service-card {
  min-height: 100%;
  background: #ffffff;
  overflow: hidden;
}

.top-service-thumb {
  display: grid !important;
  place-items: center;
  width: 100%;
  aspect-ratio: 16 / 9 !important;
  min-height: 0 !important;
  color: #666666;
  background:
    linear-gradient(135deg, rgba(255,255,255,.7), rgba(0,0,0,.08)),
    repeating-linear-gradient(135deg, #ededed 0, #ededed 18px, #e0e0e0 18px, #e0e0e0 36px);
  font-size: 12px;
}

.top-service-body {
  padding: 18px !important;
}

.top-service-body h3 {
  margin: 0 !important;
  font-size: 17px;
  line-height: 1.55;
}

.top-service-body p,
.top-service-body .service-keywords,
.top-service-body .tag {
  display: none !important;
}

.faq-question i {
  transform: none !important;
  width: 30px !important;
  height: 30px !important;
  flex: 0 0 30px !important;
  transition: background .18s ease, color .18s ease !important;
}

.faq-item.is-open .faq-question i {
  transform: none !important;
}

.faq-question i::before {
  display: inline-block;
  width: 1em;
  text-align: center;
}

@media (max-width: 1100px) {
  .top-service-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 900px) {
  .container {
    margin-left: var(--site-side-mobile) !important;
    margin-right: var(--site-side-mobile) !important;
  }

  .hero > .container {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .hero-copy,
  .service-lp-hero-copy {
    margin-left: var(--site-side-mobile) !important;
  }

  .top-service-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
  }

  .top-service-body {
    padding: 14px !important;
  }

  .top-service-body h3 {
    font-size: 14px;
  }
}

@media (max-width: 560px) {
  .top-service-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  .top-service-body h3 {
    font-size: 12px;
    line-height: 1.45;
  }
}


/* v35: feature image 16:9 fix */
#point .feature-visual-row .placeholder.feature-image:not(.point-process-visual),
#point .feature-visual-row .feature-image:not(.point-process-visual) {
  width: 100% !important;
  max-width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  min-height: 0 !important;
  height: auto !important;
  padding: 0 !important;
  overflow: hidden !important;
}

@media (max-width: 900px) {
  #point .feature-visual-row .placeholder.feature-image:not(.point-process-visual),
  #point .feature-visual-row .feature-image:not(.point-process-visual) {
    aspect-ratio: 16 / 9 !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 0 !important;
  }
}

@media (max-width: 560px) {
  #point .feature-visual-row .placeholder.feature-image:not(.point-process-visual),
  #point .feature-visual-row .feature-image:not(.point-process-visual) {
    aspect-ratio: 16 / 9 !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 0 !important;
  }
}


/* v36: restore PC service hover balloon */
@media (min-width: 901px) {
  .nav-dropdown {
    display: inline-flex !important;
    position: relative;
    align-items: center;
  }

  .nav-service-trigger {
    cursor: default;
  }

  .service-popover {
    position: absolute !important;
    top: calc(100% + 14px) !important;
    left: 50% !important;
    transform: translateX(-50%) translateY(8px) !important;
    z-index: 1000 !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(220px, 1fr)) !important;
    gap: 8px !important;
    width: min(620px, calc(100vw - 64px)) !important;
    max-height: calc(100vh - 120px) !important;
    overflow-y: auto !important;
    padding: 18px !important;
    background: #ffffff !important;
    box-shadow: 0 18px 46px rgba(0,0,0,.16) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease !important;
  }

  .service-popover::before {
    content: "" !important;
    position: absolute;
    top: -9px;
    left: 50%;
    width: 18px;
    height: 18px;
    background: #ffffff;
    transform: translateX(-50%) rotate(45deg);
    box-shadow: -4px -4px 12px rgba(0,0,0,.03);
  }

  .nav-dropdown:hover .service-popover,
  .nav-dropdown:focus-within .service-popover {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateX(-50%) translateY(0) !important;
  }

  .service-popover a {
    display: grid !important;
    gap: 4px;
    padding: 12px 14px !important;
    background: #f5f5f2 !important;
    color: #111111 !important;
    white-space: normal !important;
  }

  .service-popover a:hover {
    background: #111111 !important;
    color: #ffffff !important;
  }

  .service-popover a strong {
    font-size: 13px;
    line-height: 1.45;
  }

  .service-popover a span {
    color: inherit;
    opacity: .68;
    font-size: 10px;
    line-height: 1.5;
  }
}

/* Mobile keeps hamburger behavior, not hover balloon */
@media (max-width: 900px) {
  .nav-dropdown {
    display: block !important;
    position: static !important;
  }

  .service-popover {
    position: static !important;
    transform: none !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    width: 100% !important;
    max-height: none !important;
    overflow: visible !important;
    padding: 0 !important;
    margin-top: 8px !important;
    background: transparent !important;
    box-shadow: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  .service-popover::before {
    content: none !important;
  }

  .service-popover a {
    display: block !important;
    padding: 12px 0 12px 14px !important;
    background: transparent !important;
  }

  .service-popover a span {
    display: none !important;
  }
}


/* v37: updated service page template */
.service-pain-card {
  display: flex;
  align-items: flex-start;
  min-height: 180px;
  padding: 28px;
  background: #ffffff;
}

.service-pain-card h3 {
  margin: 0;
  font-size: clamp(18px, 2vw, 24px);
  line-height: 1.65;
}

.section-bottom-cta {
  display: flex;
  justify-content: center;
  margin-top: 30px;
}

.section-bottom-cta .btn {
  min-width: 280px;
}

.service-data-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.service-data-card {
  display: flex;
  flex-direction: column;
  min-height: 250px;
  padding: 24px;
  background: #f5f5f2;
}

.service-data-card span {
  display: inline-flex;
  align-self: flex-start;
  margin-bottom: 18px;
  padding: 6px 10px;
  background: #111111;
  color: #ffffff;
  font-size: 11px;
  letter-spacing: .08em;
}

.service-data-card p {
  margin: 0;
  color: #222222;
  line-height: 1.9;
}

.service-data-card small {
  margin-top: auto;
  color: #777777;
  font-size: 10px;
  line-height: 1.6;
}

.service-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}

.top-style-card {
  display: block;
  background: #ffffff;
  padding: 22px !important;
}

.top-style-card .placeholder.short,
.top-style-card .article-image {
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 0 14px !important;
}

.top-style-card h3 {
  margin: 10px 0 8px;
  font-size: 16px;
  line-height: 1.7;
}

.top-style-card .small {
  color: #666666;
  font-size: 11px;
  line-height: 1.7;
}

.step-visual-16x9 {
  display: grid;
  place-items: center;
  width: 100%;
  aspect-ratio: 16 / 9;
  min-height: 360px;
  padding: 34px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.92), rgba(245,245,242,.82)),
    repeating-linear-gradient(135deg, #ededed 0, #ededed 18px, #e3e3e3 18px, #e3e3e3 36px);
  overflow: hidden;
}

.step-flow-3 {
  display: grid;
  grid-template-columns: minmax(0,1fr) 42px minmax(0,1fr) 42px minmax(0,1fr);
  gap: 14px;
  align-items: center;
  width: 100%;
}

.step-flow-3 article {
  min-height: 220px;
  padding: 24px;
  background: #ffffff;
}

.step-flow-3 article span {
  display: block;
  margin-bottom: 12px;
  color: #999999;
  font-size: 34px;
  font-weight: 700;
  line-height: 1;
}

.step-flow-3 article h3 {
  margin: 0 0 10px;
  font-size: 20px;
}

.step-flow-3 article p {
  margin: 0;
  color: #555555;
  line-height: 1.8;
  font-size: 13px;
}

.step-flow-3 > i {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  background: #111111;
  color: #ffffff;
}

.service-article-section .article-card .tag,
.service-case-section .case-slide .tag {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

@media (max-width: 1100px) {
  .service-data-grid,
  .service-card-grid {
    grid-template-columns: 1fr 1fr;
  }

  .step-visual-16x9 {
    aspect-ratio: auto;
  }

  .step-flow-3 {
    grid-template-columns: 1fr;
  }

  .step-flow-3 > i {
    transform: rotate(90deg);
    margin: 0 auto;
  }
}

@media (max-width: 900px) {
  .service-data-grid,
  .service-card-grid {
    grid-template-columns: 1fr;
  }

  .service-data-card {
    min-height: auto;
  }

  .step-visual-16x9 {
    min-height: 0;
    padding: 18px;
  }

  .step-flow-3 article {
    min-height: auto;
  }
}

@media (max-width: 560px) {
  .section-bottom-cta .btn {
    width: 100%;
    min-width: 0;
  }

  .top-style-card {
    padding: 16px !important;
  }
}


/* v38: PC header service hover balloon */
@media (min-width: 901px) {
  .global-nav {
    overflow: visible !important;
  }

  .nav-dropdown {
    display: inline-flex !important;
    position: relative !important;
    align-items: center !important;
  }

  .nav-service-trigger {
    cursor: default;
  }

  .service-popover {
    position: absolute !important;
    top: calc(100% + 14px) !important;
    left: 50% !important;
    z-index: 9999 !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(220px, 1fr)) !important;
    gap: 8px !important;
    width: min(640px, calc(100vw - 64px)) !important;
    max-height: calc(100vh - 120px) !important;
    overflow-y: auto !important;
    padding: 18px !important;
    background: #ffffff !important;
    box-shadow: 0 18px 46px rgba(0,0,0,.16) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateX(-50%) translateY(8px) !important;
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease !important;
  }

  .service-popover::before {
    content: "" !important;
    position: absolute !important;
    top: -9px !important;
    left: 50% !important;
    width: 18px !important;
    height: 18px !important;
    background: #ffffff !important;
    transform: translateX(-50%) rotate(45deg) !important;
  }

  .nav-dropdown:hover .service-popover,
  .nav-dropdown:focus-within .service-popover {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateX(-50%) translateY(0) !important;
  }

  .service-popover a {
    display: grid !important;
    gap: 4px !important;
    padding: 12px 14px !important;
    background: #f5f5f2 !important;
    color: #111111 !important;
    white-space: normal !important;
    text-decoration: none !important;
  }

  .service-popover a:hover {
    background: #111111 !important;
    color: #ffffff !important;
  }

  .service-popover a strong {
    font-size: 13px !important;
    line-height: 1.45 !important;
  }

  .service-popover a span {
    color: inherit !important;
    opacity: .68 !important;
    font-size: 10px !important;
    line-height: 1.5 !important;
  }
}

@media (max-width: 900px) {
  .nav-dropdown {
    display: block !important;
    position: static !important;
    width: 100% !important;
  }

  .service-popover {
    position: static !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    width: 100% !important;
    max-height: none !important;
    overflow: visible !important;
    padding: 0 !important;
    margin-top: 8px !important;
    background: transparent !important;
    box-shadow: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
  }

  .service-popover::before {
    content: none !important;
  }

  .service-popover a {
    display: block !important;
    padding: 12px 0 12px 14px !important;
    background: transparent !important;
  }

  .service-popover a span {
    display: none !important;
  }
}


/* v39: column archive two-column sticky sidebar */
.column-archive-hero .lead {
  max-width: 760px;
}

.column-archive-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 42px;
  align-items: start;
}

.column-main-list {
  min-width: 0;
}

.column-featured-card,
.column-list-card {
  display: grid;
  background: #ffffff;
  color: #111111;
  text-decoration: none;
}

.column-featured-card {
  grid-template-columns: minmax(0, .96fr) minmax(0, 1.04fr);
  gap: 0;
  margin-bottom: 24px;
}

.column-featured-image,
.column-list-image {
  width: 100%;
  aspect-ratio: 16 / 9;
  min-height: 0 !important;
}

.column-featured-body {
  padding: 30px;
}

.column-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.column-meta time {
  color: #666666;
  font-size: 12px;
}

.column-featured-card h2,
.column-list-card h2 {
  margin: 0 0 12px;
  line-height: 1.55;
}

.column-featured-card h2 {
  font-size: clamp(22px, 2.5vw, 32px);
}

.column-featured-card p,
.column-list-card p {
  color: #555555;
  line-height: 1.8;
}

.column-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 18px;
}

.column-tags span {
  display: inline-flex;
  min-height: 24px;
  align-items: center;
  padding: 0 8px;
  background: rgba(0,0,0,.06);
  color: #444444;
  font-size: 10px;
}

.column-list {
  display: grid;
  gap: 16px;
}

.column-list-card {
  grid-template-columns: 240px minmax(0, 1fr);
}

.column-list-body {
  padding: 22px;
}

.column-list-card h2 {
  font-size: 19px;
}

.column-pagination {
  display: flex;
  gap: 8px;
  margin-top: 28px;
}

.column-pagination a,
.column-pagination span {
  display: grid;
  place-items: center;
  min-width: 38px;
  height: 38px;
  background: #ffffff;
  color: #111111;
  text-decoration: none;
  font-size: 12px;
}

.column-pagination .is-current {
  background: #111111;
  color: #ffffff;
}

.column-sidebar {
  min-width: 0;
}

.column-sidebar-sticky {
  position: sticky;
  top: 96px;
  display: grid;
  gap: 20px;
}

.sidebar-box {
  background: #ffffff;
  padding: 22px;
}

.sidebar-box h3 {
  margin: 0 0 16px;
  font-size: 18px;
}

.sidebar-category-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.sidebar-category-list a {
  display: inline-flex;
  min-height: 28px;
  align-items: center;
  padding: 0 9px;
  background: #f5f5f2;
  color: #111111;
  text-decoration: none;
  font-size: 11px;
}

.sidebar-ranking-list {
  display: grid;
  gap: 14px;
}

.sidebar-rank-item {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 12px;
  color: #111111;
  text-decoration: none;
}

.sidebar-rank-item > span {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  background: #111111;
  color: #ffffff;
  font-size: 11px;
  font-weight: 700;
}

.sidebar-rank-item h4,
.sidebar-case-item h4 {
  margin: 0;
  line-height: 1.55;
  font-size: 13px;
}

.sidebar-rank-item p {
  margin: 4px 0 0;
  color: #666666;
  font-size: 10px;
}

.sidebar-case-list {
  display: grid;
  gap: 14px;
}

.sidebar-case-item {
  color: #111111;
  text-decoration: none;
}

.sidebar-case-image {
  width: 100%;
  aspect-ratio: 16 / 9;
  min-height: 0 !important;
  margin-bottom: 8px;
}

.sidebar-case-item .tag {
  margin-bottom: 8px;
}

@media (max-width: 1500px) {
  .column-archive-layout {
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: 28px;
  }

  .column-list-card {
    grid-template-columns: 200px minmax(0, 1fr);
  }
}

@media (max-width: 900px) {
  .column-archive-layout {
    grid-template-columns: 1fr;
  }

  .column-sidebar-sticky {
    position: static;
  }

  .column-featured-card,
  .column-list-card {
    grid-template-columns: 1fr;
  }

  .column-list-image {
    aspect-ratio: 16 / 9;
  }
}

@media (max-width: 560px) {
  .column-featured-body,
  .column-list-body,
  .sidebar-box {
    padding: 16px;
  }

  .column-list-card h2 {
    font-size: 16px;
  }
}


/* v41: service hover bridge */
@media (min-width: 901px) {
  .nav-dropdown::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 100%;
    width: min(640px, calc(100vw - 64px));
    height: 22px;
    transform: translateX(-50%);
    background: transparent;
    pointer-events: auto;
    z-index: 9998;
  }

  .service-popover {
    top: calc(100% + 14px) !important;
  }

  .nav-dropdown:hover .service-popover,
  .nav-dropdown:focus-within .service-popover,
  .service-popover:hover {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateX(-50%) translateY(0) !important;
  }
}


/* v42: align non-TOP main visuals with TOP */
.page-main-visual {
  padding: 48px 0 84px;
}

.page-main-visual .hero-media {
  aspect-ratio: 16 / 9;
  min-height: 520px;
}

.page-main-visual .hero-copy {
  width: min(620px, calc(100% - 64px));
  margin-left: 48px;
}

@media (max-width: 900px) {
  .page-main-visual {
    padding: 28px 0 56px;
  }

  .page-main-visual .hero-media {
    min-height: 420px;
  }

  .page-main-visual .hero-copy {
    width: min(100% - 32px, 620px);
    margin-left: 16px;
  }
}
