@charset "UTF-8";
/*
Template: swell
Theme Name: OneLink Corporate
Description: 株式会社OneLink コーポレートサイト用 SWELL子テーマ
Version: 1.4.1
*/

:root {
  --ol-ink: #102136; --ol-navy: #17365d; --ol-blue: #1769aa; --ol-cyan: #25a9d6;
  --ol-mist: #edf6fa; --ol-line: #dce7ed; --ol-muted: #5f7080;
  --ol-radius: 20px; --ol-shadow: 0 20px 50px rgba(16, 33, 54, .09);
}

/* Contact form */
.onelink-contact-form {
	display: grid;
	gap: 1.4rem;
	max-width: 760px;
	margin: 2rem auto;
	padding: clamp(1.25rem, 4vw, 2.5rem);
	background: #f5f9fb;
	border-radius: 16px;
}
.onelink-contact-form label { display: grid; gap: .5rem; font-weight: 700; }
.onelink-contact-form input:not([type="checkbox"]),
.onelink-contact-form select,
.onelink-contact-form textarea {
	width: 100%;
	padding: .8rem 1rem;
	border: 1px solid #9aaeb7;
	border-radius: 6px;
	background: #fff;
	font: inherit;
}
.onelink-contact-form :focus-visible { outline: 3px solid #27b8d4; outline-offset: 2px; }
.onelink-contact-form .required { color: #b42318; font-size: .78em; }
.onelink-contact-form .onelink-consent { display: block; font-weight: 500; }
.onelink-form-note { margin: 0; color: #53646c; font-size: .9rem; }
.onelink-submit {
	justify-self: start;
	padding: .9rem 1.6rem;
	border: 0;
	border-radius: 999px;
	background: #04384c;
	color: #fff;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}
.onelink-submit:hover { background: #075774; }
.onelink-submit:disabled { opacity: .68; cursor: wait; }
.onelink-form-message { max-width: 760px; margin: 2rem auto; padding: 1.2rem; border-radius: 8px; }
.onelink-form-message.is-success { background: #eaf8f0; border: 1px solid #4c9b6b; }
.onelink-form-message.is-error { background: #fff1f0; border: 1px solid #d92d20; }
.onelink-honeypot { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.onelink-contact-confirm { max-width: 760px; margin: 2rem auto; padding: clamp(1.25rem, 4vw, 2.5rem); border: 1px solid var(--ol-line); border-radius: 16px; background: #fff; box-shadow: var(--ol-shadow); }
.onelink-contact-confirm > h2 { margin-top: 0; }
.onelink-contact-confirm dl { margin: 2rem 0; border-top: 1px solid var(--ol-line); }
.onelink-contact-confirm dl > div { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--ol-line); }
.onelink-contact-confirm dt { color: var(--ol-muted); font-weight: 700; }
.onelink-contact-confirm dd { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.onelink-confirm-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; }
.onelink-confirm-actions form { margin: 0; }
.onelink-edit { color: var(--ol-blue); font-weight: 700; }

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 3px solid #27b8d4;
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto !important; }
	*, *::before, *::after {
		scroll-behavior: auto !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}
}
html { scroll-behavior: smooth; }
body {
  color: var(--ol-ink);
  line-break: strict;
  overflow-wrap: break-word;
  word-break: normal;
}
:where(h1, h2, h3, h4, p, li, dt, dd, th, td, strong, a) {
  text-wrap: pretty;
}
@supports (word-break: auto-phrase) {
  :where(h1, h2, h3, h4, p, li, dt, dd, th, td, strong, a) {
    word-break: auto-phrase;
  }
}
.ol-nowrap { white-space: nowrap; }
.l-content { margin: 0 auto; }
.c-pageTitle, .p-breadcrumb { display: none; }
.ol-home { overflow: hidden; background: #fff; }
.ol-container { width: min(1120px, calc(100% - 40px)); margin-inline: auto; }
.ol-section { padding: 104px 0; }
.ol-section--soft { background: #f5f9fb; }
.ol-kicker { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 18px; color: var(--ol-blue); font-size: 13px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.ol-kicker::before { content: ""; width: 26px; height: 2px; background: var(--ol-cyan); }
.ol-heading { margin: 0; font-size: clamp(34px, 4.3vw, 58px); line-height: 1.18; letter-spacing: -.035em; }
.ol-heading--sm { font-size: clamp(30px, 3.4vw, 46px); }
.ol-lead { max-width: 720px; margin: 24px 0 0; color: var(--ol-muted); font-size: 17px; line-height: 2; }
.ol-btn { display: inline-flex; min-height: 56px; align-items: center; justify-content: center; gap: 14px; padding: 0 28px; border: 1px solid var(--ol-blue); border-radius: 999px; background: var(--ol-blue); color: #fff !important; font-weight: 800; text-decoration: none !important; transition: transform .2s, background .2s, box-shadow .2s; }
.ol-btn::after { content: "→"; font-size: 18px; }
.ol-btn:hover { transform: translateY(-2px); background: #0f578f; box-shadow: 0 12px 28px rgba(23, 105, 170, .22); }
.ol-btn--ghost { border-color: rgba(255,255,255,.5); background: transparent; }
.ol-btn--ghost:hover { background: rgba(255,255,255,.1); }
.ol-hero { position: relative; min-height: 720px; display: grid; align-items: center; padding: 130px 0 90px; color: #fff; background: linear-gradient(90deg, rgba(5,18,34,.98) 0%, rgba(7,25,45,.92) 35%, rgba(8,30,55,.42) 76%, rgba(7,24,43,.22) 100%), url("assets/onelink-hero-v1.webp") center / cover no-repeat; isolation: isolate; }
.ol-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: .16; 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: 70px 70px; mask-image: linear-gradient(to right, transparent 4%, #000 50%, #000); }
.ol-hero::after { content: ""; position: absolute; width: 560px; height: 560px; right: -100px; top: 80px; z-index: -1; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; box-shadow: 0 0 0 90px rgba(255,255,255,.03), 0 0 0 180px rgba(255,255,255,.025); }
.ol-hero__eyebrow { margin: 0 0 26px; color: #8ee0f3; font-size: 13px; font-weight: 800; letter-spacing: .18em; }
.ol-hero h1 { max-width: 880px; margin: 0; color: #fff; font-size: clamp(42px, 6.4vw, 82px); line-height: 1.15; letter-spacing: -.045em; }
.ol-hero h1 span { color: #7ed7ed; }
.ol-hero__copy { max-width: 690px; margin: 30px 0 0; color: rgba(255,255,255,.82); font-size: clamp(16px, 1.7vw, 20px); line-height: 2; }
.ol-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 40px; }
.ol-hero__labels { display: flex; flex-wrap: wrap; gap: 24px; margin-top: 72px; color: rgba(255,255,255,.68); font-size: 13px; font-weight: 700; letter-spacing: .08em; }
.ol-hero__labels span { display: flex; align-items: center; gap: 9px; }
.ol-hero__labels span::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #75d6eb; }
.ol-intro { display: grid; grid-template-columns: .85fr 1.15fr; gap: 90px; align-items: start; }
.ol-intro__mark { color: #7898a8; font-size: clamp(90px, 13vw, 170px); font-weight: 900; line-height: .8; letter-spacing: -.09em; }
.ol-intro__body p { margin: 0; font-size: clamp(22px, 2.6vw, 34px); font-weight: 700; line-height: 1.7; letter-spacing: -.02em; }
.ol-intro__body small { display: block; margin-top: 28px; color: var(--ol-muted); font-size: 16px; line-height: 2; }
.ol-services { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin-top: 54px; }
.ol-service { position: relative; min-height: 660px; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--ol-line); border-radius: var(--ol-radius); background: #fff; box-shadow: var(--ol-shadow); }
.ol-service::after { content: attr(data-number); position: absolute; right: 18px; top: 10px; z-index: 2; color: rgba(255,255,255,.72); font-size: 92px; font-weight: 900; line-height: 1; text-shadow: 0 3px 18px rgba(8,24,43,.28); }
.ol-service__image { width: 100%; height: 190px; display: block; object-fit: cover; }
.ol-service__content { flex: 1; display: flex; flex-direction: column; padding: 32px 40px 40px; }
.ol-service__icon { position: relative; z-index: 1; width: 58px; height: 58px; display: grid; place-items: center; border-radius: 16px; background: var(--ol-mist); color: var(--ol-blue); font-size: 24px; font-weight: 900; }
.ol-service h3 { position: relative; z-index: 1; margin: 26px 0 10px; font-size: clamp(25px, 2.15vw, 31px); line-height: 1.4; }
.ol-service__en { color: var(--ol-blue); font-size: 12px; font-weight: 800; letter-spacing: .16em; }
.ol-service p { color: var(--ol-muted); line-height: 1.9; }
.ol-service ul { margin: 18px 0 28px; padding: 0; display: grid; grid-template-columns: 1fr; gap: 8px; list-style: none; font-size: 14px; }
.ol-service li::before { content: "—"; margin-right: 7px; color: var(--ol-cyan); }
.ol-service a { margin-top: auto; color: var(--ol-blue); font-weight: 800; text-decoration: none; }
.ol-product-section { background: linear-gradient(135deg, #f7fbff 0%, #eef5ff 52%, #effcfb 100%); }
.ol-product-feature { display: grid; grid-template-columns: .8fr 1.2fr; gap: 72px; align-items: center; padding: 54px 60px; overflow: hidden; border: 1px solid rgba(29,93,255,.16); border-radius: 24px; background: rgba(255,255,255,.86); box-shadow: var(--ol-shadow); }
.ol-product-feature__brand { display: grid; justify-items: start; }
.ol-product-feature__brand img { width: min(100%, 330px); height: auto; }
.ol-product-feature__brand > p:last-child { margin: 12px 0 0 42px; color: var(--ol-muted); font-size: 12px; letter-spacing: .12em; }
.ol-product-feature__body > span { color: var(--ol-blue); font-size: 12px; font-weight: 800; letter-spacing: .08em; }
.ol-product-feature__body h2 { margin: 14px 0 20px; font-size: clamp(31px, 3.7vw, 48px); line-height: 1.25; letter-spacing: -.03em; }
.ol-product-feature__body > p { margin: 0; color: var(--ol-muted); line-height: 1.9; }
.ol-product-feature__body ul { display: grid; gap: 8px; margin: 24px 0 28px; padding: 0; list-style: none; }
.ol-product-feature__body li::before { content: "—"; margin-right: 9px; color: #18a99f; font-weight: 900; }
.ol-product-feature__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; }
.ol-product-feature__actions small { color: var(--ol-muted); }
.ol-strengths { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.ol-strength-list { display: grid; gap: 14px; }
.ol-strength { display: grid; grid-template-columns: 52px 1fr; gap: 20px; padding: 24px; border-bottom: 1px solid var(--ol-line); }
.ol-strength__num { color: var(--ol-blue); font-size: 14px; font-weight: 900; }
.ol-strength h3 { margin: 0 0 8px; font-size: 20px; }
.ol-strength p { margin: 0; color: var(--ol-muted); line-height: 1.8; }
.ol-works { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; margin-top: 50px; }
.ol-work { min-height: 480px; overflow: hidden; border-radius: 18px; background: linear-gradient(145deg, #fff, #edf5f8); border: 1px solid var(--ol-line); }
.ol-work__image { width: 100%; height: 220px; display: block; object-fit: cover; }
.ol-work__body { padding: 30px 34px 34px; }
.ol-work__tag { color: var(--ol-blue); font-size: 11px; font-weight: 900; letter-spacing: .12em; }
.ol-work h3 { margin: 24px 0 14px; font-size: 22px; line-height: 1.5; }
.ol-work p { margin: 0; color: var(--ol-muted); font-size: 14px; line-height: 1.9; }
.ol-company { display: grid; grid-template-columns: .9fr 1.1fr; gap: 80px; }
.ol-company dl { margin: 0; }
.ol-company dl > div { display: grid; grid-template-columns: 130px 1fr; gap: 20px; padding: 20px 0; border-bottom: 1px solid var(--ol-line); }
.ol-company dt { color: var(--ol-muted); font-size: 13px; font-weight: 700; }
.ol-company dd { margin: 0; font-weight: 600; line-height: 1.75; }
.ol-news { margin-top: 50px; border-top: 1px solid var(--ol-line); }
.ol-news__item { display: grid; grid-template-columns: 140px 1fr 30px; gap: 24px; align-items: center; padding: 23px 4px; border-bottom: 1px solid var(--ol-line); color: var(--ol-ink) !important; text-decoration: none !important; }
.ol-news__item time { color: var(--ol-muted); font-size: 13px; }
.ol-news__item strong { font-size: 16px; }
.ol-news__item span { color: var(--ol-blue); }
.ol-cta { padding: 100px 0; color: #fff; background: linear-gradient(120deg, #123056, #176f9d); text-align: center; }
.ol-cta h2 { margin: 0; color: #fff; font-size: clamp(34px, 4.5vw, 58px); }
.ol-cta p { margin: 22px auto 34px; color: rgba(255,255,255,.8); line-height: 1.9; }
@media (max-width: 959px) {
  .ol-section { padding: 76px 0; }
  .ol-intro, .ol-strengths, .ol-company { grid-template-columns: 1fr; gap: 45px; }
  .ol-product-feature { grid-template-columns: 1fr; gap: 36px; padding: 44px; }
  .ol-intro__mark { font-size: 100px; }
  .ol-services { grid-template-columns: 1fr; }
  .ol-works { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 599px) {
  .onelink-contact-confirm dl > div { grid-template-columns: 1fr; gap: .35rem; }
  .onelink-confirm-actions { align-items: stretch; flex-direction: column-reverse; }
  .onelink-confirm-actions form, .onelink-confirm-actions .onelink-submit { width: 100%; }
  .ol-container { width: min(100% - 28px, 1120px); }
  .ol-hero { min-height: 680px; padding-top: 100px; }
  .ol-hero__actions { align-items: stretch; flex-direction: column; }
  .ol-btn { width: 100%; }
  .ol-hero__labels { gap: 12px; margin-top: 45px; flex-direction: column; }
  .ol-service { min-height: 0; }
  .ol-service__image { height: 180px; }
  .ol-service__content { padding: 28px 26px 32px; }
  .ol-product-feature { padding: 32px 24px; }
  .ol-product-feature__brand > p:last-child { margin-left: 20px; }
  .ol-service ul { grid-template-columns: 1fr; }
  .ol-works { grid-template-columns: 1fr; }
  .ol-work { min-height: 0; }
  .ol-work__image { height: 190px; }
  .ol-company dl > div { grid-template-columns: 90px 1fr; }
  .ol-news__item { grid-template-columns: 1fr 24px; gap: 7px; }
  .ol-news__item time, .ol-news__item strong { grid-column: 1; }
  .ol-news__item span { grid-column: 2; grid-row: 1 / span 2; }
}

/* Shared lower-page design */
.ol-subhero { position: relative; min-height: 360px; display: grid; align-items: end; padding: 110px 0 68px; overflow: hidden; color: #fff; background: #102136 center / cover no-repeat; isolation: isolate; }
.ol-subhero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(7,22,39,.96), rgba(12,46,75,.7), rgba(12,46,75,.28)); }
.ol-subhero--services { background-image: url("assets/service-it.webp"); }
.ol-subhero--it { background-image: url("assets/service-it-datacenter-v2.webp"); background-position: center 48%; }
.ol-subhero--event { background-image: url("assets/service-event-live.webp"); }
.ol-subhero--electrical { background-image: url("assets/service-electrical-production.webp"); }
.ol-subhero--company { background-image: url("assets/company-office-v1.webp"); background-position: center 48%; }
.ol-subhero--news { background-image: url("assets/onelink-hero-v1.webp"); background-position: center 46%; }
.ol-subhero--contact, .ol-subhero--privacy { background-image: url("assets/service-camera.webp"); }
.ol-subhero__en { display: block; margin-bottom: 12px; color: #83d9ec; font-size: 12px; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
.ol-subhero h1 { margin: 0; color: #fff; font-size: clamp(36px, 5vw, 60px); line-height: 1.2; letter-spacing: -.035em; }
.ol-page { width: 100%; }
.ol-page__body { width: min(920px, calc(100% - 40px)); margin: 0 auto; padding: 88px 0 110px; font-size: 16px; line-height: 2; }
.ol-page__body > h2 { position: relative; margin: 76px 0 30px; padding: 0 0 15px 18px; border: 0; border-bottom: 1px solid var(--ol-line); background: none; color: var(--ol-ink); font-size: clamp(27px, 3.4vw, 40px); }
.ol-page__body > h2::before { content: ""; position: absolute; inset: .18em auto auto 0; width: 4px; height: 1em; border: 0; border-radius: 999px; background: var(--ol-cyan); }
.ol-page__body > h3 { margin-top: 58px; color: var(--ol-navy); font-size: 24px; }
.ol-page__body ul { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px 28px; margin: 30px 0; padding: 30px 34px 30px 54px; border-radius: 16px; background: var(--ol-mist); }
.ol-page__body li { margin: 0; }
.ol-page__body table { border-collapse: collapse; }
.ol-page__body th { width: 180px; padding: 22px; background: #f2f7f9; color: var(--ol-muted); text-align: left; }
.ol-page__body td { padding: 22px; }
.ol-service-lead { margin: 0 0 42px; color: var(--ol-ink); font-size: clamp(18px, 2vw, 23px); font-weight: 600; line-height: 1.9; }
.ol-service-detail-image { margin: 0 0 72px; overflow: hidden; border-radius: var(--ol-radius); box-shadow: var(--ol-shadow); }
.ol-service-detail-image img { width: 100%; height: clamp(260px, 46vw, 480px); display: block; object-fit: cover; }
.ol-detail-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin: 34px 0 74px; }
.ol-detail-cards > div { padding: 28px; border: 1px solid var(--ol-line); border-radius: 16px; background: #fff; box-shadow: 0 12px 32px rgba(16,33,54,.06); }
.ol-detail-cards h3 { margin: 0 0 12px; color: var(--ol-ink); font-size: 19px; line-height: 1.5; }
.ol-detail-cards h3, .ol-overview-services h3, .ol-case-highlight h3 { padding: 0; border: 0; }
.ol-detail-cards h3::before, .ol-overview-services h3::before, .ol-case-highlight h3::before { content: none; }
.ol-detail-cards p { margin: 0; color: var(--ol-muted); font-size: 14px; line-height: 1.85; }
.ol-page__body .ol-service-scope { margin-bottom: 74px; }
.ol-service-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin: -34px 0 74px; }
.ol-service-gallery--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ol-service-gallery--single { grid-template-columns: 1fr; }
.ol-service-gallery figure { margin: 0; overflow: hidden; border-radius: 16px; background: #f2f7f9; box-shadow: 0 12px 32px rgba(16,33,54,.08); }
.ol-service-gallery img { width: 100%; height: 270px; display: block; object-fit: cover; }
.ol-service-gallery--single img { height: clamp(280px, 42vw, 430px); object-position: center 42%; }
.ol-service-gallery figcaption { padding: 14px 18px 16px; color: var(--ol-muted); font-size: 13px; line-height: 1.7; }
.ol-process-list { counter-reset: ol-process; display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin: 34px 0 74px; padding: 0; list-style: none; }
.ol-process-list li { counter-increment: ol-process; position: relative; padding: 60px 24px 26px; border-radius: 16px; background: var(--ol-mist); }
.ol-process-list li::before { content: "0" counter(ol-process); position: absolute; top: 17px; left: 24px; color: var(--ol-cyan); font-size: 13px; font-weight: 900; letter-spacing: .1em; }
.ol-process-list strong, .ol-process-list span { display: block; }
.ol-process-list strong { margin-bottom: 12px; font-size: 17px; line-height: 1.5; }
.ol-process-list span { color: var(--ol-muted); font-size: 13px; line-height: 1.8; }
.ol-case-highlight { margin: 32px 0 0; padding: 34px; border-left: 4px solid var(--ol-cyan); border-radius: 0 16px 16px 0; background: linear-gradient(135deg, #f3f9fb, #fff); }
.ol-case-highlight > span { color: var(--ol-blue); font-size: 11px; font-weight: 900; letter-spacing: .14em; }
.ol-case-highlight h3 { margin: 12px 0 8px; font-size: 22px; }
.ol-case-highlight p { margin: 0 0 16px; color: var(--ol-muted); }
.ol-case-highlight a { color: var(--ol-blue); font-weight: 800; text-decoration: none; }
.ol-overview-services { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin: 36px 0 78px; }
.ol-overview-services article { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--ol-line); border-radius: 18px; background: #fff; box-shadow: var(--ol-shadow); }
.ol-overview-services img { width: 100%; height: 190px; display: block; object-fit: cover; }
.ol-overview-services article > div { flex: 1; display: flex; flex-direction: column; padding: 26px; }
.ol-overview-services span, .ol-cross-cases span, .ol-overview-cases span { color: var(--ol-blue); font-size: 10px; font-weight: 900; letter-spacing: .13em; }
.ol-overview-services h3 { margin: 12px 0; font-size: 22px; line-height: 1.5; }
.ol-overview-services p { margin: 0 0 18px; color: var(--ol-muted); font-size: 14px; line-height: 1.8; }
.ol-overview-services h3 { min-height: 66px; }
.ol-overview-services h3 + p { min-height: 101px; }
.ol-overview-services article > div > span + p:empty { display: none; }
.ol-overview-services article > div > p:last-child { margin-top: auto; margin-bottom: 0; }
.ol-overview-services ul { grid-template-columns: 1fr; gap: 6px; margin: 0 0 24px; padding: 18px 18px 18px 36px; font-size: 13px; }
.ol-overview-services a { color: var(--ol-blue); font-weight: 800; text-decoration: none; }
.ol-cross-cases small { display: block; margin-top: 16px; color: var(--ol-blue); font-size: 12px; font-weight: 700; }
.ol-cross-cases > div { display: flex; flex-direction: column; }
.ol-cross-cases > div > span + p:empty { display: none; }
.ol-cross-cases h3 { min-height: 57px; }
.ol-cross-cases h3 + p { min-height: 78px; }
.ol-cross-cases > div > p:last-child { margin-top: auto; margin-bottom: 0; }
.ol-overview-cases { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin: 34px 0 74px; }
.ol-overview-cases > br { display: none; }
.ol-overview-cases a { display: flex; flex-direction: column; min-height: 180px; padding: 28px; border: 1px solid var(--ol-line); border-radius: 16px; background: linear-gradient(145deg, #fff, #f1f7f9); color: var(--ol-ink); text-decoration: none; }
.ol-overview-cases strong { margin: 18px 0 10px; font-size: 19px; line-height: 1.5; }
.ol-overview-cases small { color: var(--ol-muted); font-size: 13px; line-height: 1.7; }
.ol-faq-list { display: grid; gap: 12px; margin-top: 34px; }
.ol-faq-list details { border: 1px solid var(--ol-line); border-radius: 12px; background: #fff; }
.ol-faq-list summary { padding: 20px 54px 20px 22px; cursor: pointer; font-weight: 700; line-height: 1.6; }
.ol-faq-list p { margin: 0; padding: 0 22px 22px; color: var(--ol-muted); line-height: 1.8; }
.ol-page-cta { padding: 74px 0; background: #f2f7f9; text-align: center; }
.ol-page-cta h2 { margin: 0 0 24px; font-size: clamp(27px, 3vw, 40px); }
.ol-archive { width: min(1000px, calc(100% - 40px)); margin: 0 auto; padding: 82px 0 110px; }
.ol-archive__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.ol-archive-card { min-height: 440px; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--ol-line); border-radius: 16px; background: #fff; color: var(--ol-ink) !important; text-decoration: none !important; box-shadow: var(--ol-shadow); }
.ol-archive-card__image { width: 100%; height: 235px; display: block; object-fit: cover; }
.ol-archive-card__body { flex: 1; padding: 28px 30px 30px; }
.ol-archive-card__tag { color: var(--ol-blue); font-size: 11px; font-weight: 800; letter-spacing: .12em; }
.ol-archive-card h2 { margin: 18px 0 12px; font-size: 21px; line-height: 1.5; }
.ol-archive-card p { margin-bottom: 0; color: var(--ol-muted); font-size: 14px; line-height: 1.8; }
.ol-work-detail-image { margin: 0 0 52px; overflow: hidden; border-radius: 18px; box-shadow: var(--ol-shadow); }
.ol-work-detail-image img { width: 100%; max-height: 520px; display: block; object-fit: cover; }
.ol-404 { min-height: 65vh; display: grid; place-items: center; padding: 100px 20px; text-align: center; }
.ol-404__code { color: #dcebf2; font-size: clamp(100px, 20vw, 230px); font-weight: 900; line-height: .75; }
.ol-404 h1 { margin: 34px 0 18px; font-size: clamp(30px, 4vw, 48px); }
.ol-404 p { margin-bottom: 30px; color: var(--ol-muted); }
.ol-search__summary { margin: 0 0 30px; color: var(--ol-muted); font-weight: 700; }
.ol-search-empty { max-width: 760px; margin: 0 auto; padding: clamp(32px, 6vw, 64px); border: 1px solid var(--ol-line); border-radius: var(--ol-radius); background: linear-gradient(145deg, #fff, #f4f9fb); text-align: center; box-shadow: var(--ol-shadow); }
.ol-search-empty > span { color: var(--ol-blue); font-size: 11px; font-weight: 900; letter-spacing: .16em; }
.ol-search-empty h2 { margin: 14px 0 12px; font-size: clamp(24px, 3vw, 34px); line-height: 1.5; }
.ol-search-empty > p { margin: 0 0 28px; color: var(--ol-muted); }
.ol-search-empty .c-searchForm { max-width: 520px; margin: 0 auto; }
.ol-search-empty nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 24px; margin-top: 30px; }
.ol-search-empty nav a { color: var(--ol-blue); font-weight: 800; text-decoration: none; }
@media (max-width: 767px) {
  .ol-subhero { min-height: 290px; padding: 90px 0 50px; }
  .ol-subhero h1 { font-size: clamp(29px, 9vw, 36px); overflow-wrap: anywhere; word-break: normal; }
  .ol-page__body { width: min(100% - 28px, 920px); padding: 62px 0 82px; }
  .ol-page__body ul, .ol-archive__grid { grid-template-columns: 1fr; }
  .ol-page__body th { width: 105px; padding: 15px 12px; }
  .ol-page__body td { padding: 15px 12px; }
  .ol-page__body > h2 { margin-top: 58px; padding: 0 0 13px 14px; }
  .ol-service-detail-image { margin-bottom: 54px; }
  .ol-detail-cards, .ol-process-list { grid-template-columns: 1fr; margin-bottom: 58px; }
  .ol-service-gallery { grid-template-columns: 1fr; margin: -24px 0 58px; }
  .ol-service-gallery img, .ol-service-gallery--single img { height: 220px; }
  .ol-process-list { gap: 12px; }
  .ol-overview-services, .ol-overview-cases { grid-template-columns: 1fr; margin-bottom: 58px; }
  .ol-archive__grid { grid-template-columns: 1fr; }
  .ol-archive-card { min-height: 0; }
  .ol-archive-card__image { height: 210px; }
  .ol-work-detail-image { margin-bottom: 38px; }
  .ol-overview-services img { height: 200px; }
  .ol-overview-services h3, .ol-overview-services h3 + p { min-height: 0; }
  .ol-cross-cases h3, .ol-cross-cases h3 + p { min-height: 0; }
}
