@charset "UTF-8";
/*
Template: swell
Theme Name: SWELL CHILD - Investor Communications
Theme URI: https://investor.co.jp/
Description: Investor Communications corporate site reproduction for SWELL.
Version: 1.1.0
Author: Investor Communications Inc.
*/

:root {
    --ic-ink: #073e2b;
    --ic-green: #2f8f55;
    --ic-green-2: #62aa7a;
    --ic-pale: #eef7f1;
    --ic-soft: #f6f7f6;
    --ic-text: #303934;
    --ic-line: #dbe5de;
    --ic-white: #fff;
    --ic-shadow: 0 20px 50px rgba(5, 53, 36, .10);
    --ic-radius: 22px;
    --ic-max: 1180px;
}

html { scroll-behavior: smooth; }
body.ic-site {
    margin: 0;
    color: var(--ic-text);
    background: var(--ic-white);
    font-family: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 16px;
    line-height: 1.9;
    letter-spacing: .055em;
}
.ic-site *, .ic-site *::before, .ic-site *::after { box-sizing: border-box; }
.ic-site a { color: inherit; text-decoration: none; }
.ic-site img { max-width: 100%; }
.ic-site h1, .ic-site h2, .ic-site h3, .ic-site p { margin-top: 0; }
.ic-site h1, .ic-site h2, .ic-site h3 { color: var(--ic-text); font-weight: 700; letter-spacing: .04em; }
.ic-main { overflow: hidden; }

.ic-header {
    position: sticky;
    z-index: 1000;
    top: 0;
    height: 82px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 4vw;
    background: rgba(255,255,255,.96);
    border-bottom: 1px solid #edf0ee;
    box-shadow: 0 6px 25px rgba(10,52,39,.05);
    backdrop-filter: blur(12px);
}
.admin-bar .ic-header { top: 32px; }
.ic-logo { display: inline-flex; align-items: center; gap: 12px; flex: 0 0 auto; }
.ic-logo-mark { color: var(--ic-ink); font-family: Arial, sans-serif; font-size: 42px; font-weight: 300; letter-spacing: -.12em; line-height: 1; }
.ic-logo-name { color: #102c21; font: 700 10px/1.15 Arial, sans-serif; letter-spacing: .26em; }
.ic-nav { display: flex; align-items: center; gap: clamp(20px, 3vw, 52px); font-weight: 700; color: #102c21; }
.ic-nav > a { position: relative; white-space: nowrap; }
.ic-nav > a:not(.ic-nav-cta)::after { position: absolute; right: 0; bottom: -8px; left: 0; height: 2px; background: var(--ic-green); content: ""; transform: scaleX(0); transition: transform .25s ease; }
.ic-nav > a:hover::after { transform: scaleX(1); }
.ic-nav-cta { padding: 13px 23px; border-radius: 999px; color: #fff !important; background: var(--ic-green); box-shadow: 0 8px 20px rgba(47,143,85,.22); }
.ic-menu-toggle { display: none; width: 44px; height: 44px; padding: 10px; border: 0; background: transparent; }
.ic-menu-toggle span:not(.screen-reader-text) { display: block; width: 100%; height: 2px; margin: 5px 0; background: var(--ic-ink); }

.ic-hero {
    min-height: 790px;
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(420px, .8fr);
    align-items: stretch;
    background: #fff;
}
.ic-hero-copy { align-self: center; padding: 110px clamp(30px, 5vw, 90px) 90px max(5vw, calc((100vw - var(--ic-max))/2)); }
.ic-ribbon { display: inline-block; margin-bottom: 22px; padding: 6px 30px; color: #fff; background: var(--ic-green); font-weight: 700; font-size: clamp(17px, 1.5vw, 23px); transform: skew(-10deg); }
.ic-hero h1 { margin-bottom: 14px; color: var(--ic-green); font-size: clamp(47px, 5.4vw, 82px); font-weight: 400; line-height: 1.25; white-space: nowrap; }
.ic-hero h1 em { font-style: normal; font-weight: 600; }
.ic-hero-sub { color: var(--ic-green); font-size: clamp(17px, 1.45vw, 23px); font-weight: 700; }
.ic-hero-points { display: grid; gap: 14px; margin: 68px 0 0; padding: 0; list-style: none; color: #122e23; font-size: clamp(15px, 1.25vw, 20px); font-weight: 700; }
.ic-hero-points li { display: flex; align-items: center; gap: 14px; }
.ic-hero-points span { display: grid; place-items: center; width: 42px; height: 42px; flex: 0 0 42px; border-radius: 50%; color: #fff; background: var(--ic-green); font-size: 12px; }
.ic-hero-proof { display: flex; flex-direction: column; margin-top: 22px; padding: 78px 4vw 55px; color: #fff; background: linear-gradient(160deg, #3b995d, #17683f); }
.ic-proof-head { text-align: center; }
.ic-proof-head span { display: block; font-size: 16px; font-weight: 700; }
.ic-proof-head strong { display: block; margin: 6px 0; color: #fff; font-size: clamp(31px, 3vw, 47px); }
.ic-proof-head small { opacity: .85; }
.ic-client-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin: 40px 0; }
.ic-client-grid div { padding: 16px; border: 2px solid rgba(255,255,255,.7); background: rgba(255,255,255,.94); color: var(--ic-green); text-align: center; }
.ic-client-grid strong, .ic-client-grid span { display: block; }
.ic-client-grid strong { font-size: 18px; }
.ic-client-grid span { font-size: 12px; font-weight: 700; }
.ic-proof-number { margin-top: auto; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.4); text-align: center; }
.ic-proof-number > span { display: block; font-weight: 700; }
.ic-proof-number strong { color: #f2e7ac; font-size: 58px; line-height: 1; }
.ic-proof-number strong span { font-size: 18px; }

.ic-section { padding: 120px max(5vw, calc((100vw - var(--ic-max))/2)); }
.ic-section-muted { background: linear-gradient(90deg, #f3f5f4 0 30%, #fff 30%); }
.ic-section-head { margin-bottom: 54px; }
.ic-kicker { display: block; margin-bottom: 7px; color: var(--ic-green); font-family: "Work Sans", Arial, sans-serif; font-size: 25px; font-style: italic; font-weight: 600; letter-spacing: .03em; }
.ic-section-head h2, .ic-page-hero h1 { margin: 0; font-size: clamp(36px, 4vw, 56px); line-height: 1.3; }

.ic-news-list { display: grid; gap: 32px; padding-left: 5vw; }
.ic-news-card { display: grid; grid-template-columns: 1fr 250px; gap: 54px; padding: 48px; border-radius: var(--ic-radius); background: #fff; box-shadow: var(--ic-shadow); }
.ic-news-category { display: inline-block; margin-bottom: 13px; color: var(--ic-green); font-weight: 700; }
.ic-news-card h3 { font-size: clamp(23px, 2.4vw, 34px); line-height: 1.55; }
.ic-report-cover { position: relative; min-height: 260px; display: flex; flex-direction: column; justify-content: center; padding: 26px; overflow: hidden; color: #15365e; background: linear-gradient(145deg,#f8fcfd,#d8eef0); border: 1px solid #d9e7e8; }
.ic-report-cover::after { position: absolute; inset: 45% -30% -30% 25%; background: repeating-linear-gradient(45deg,rgba(45,130,145,.13) 0 2px,transparent 2px 18px); content:""; transform: rotate(-8deg); }
.ic-report-cover span, .ic-report-cover strong { position: relative; z-index: 1; }
.ic-report-cover span { font-size: 13px; font-weight: 700; }
.ic-report-cover strong { margin-top: 25px; font-size: 20px; }
.ic-text-link { display: inline-flex; gap: 26px; align-items: center; padding: 11px 22px; border: 1px solid var(--ic-green); border-radius: 999px; color: var(--ic-green) !important; font-weight: 700; }
.ic-text-link span, .ic-button span { transition: transform .2s ease; }
.ic-text-link:hover span, .ic-button:hover span { transform: translateX(5px); }
.ic-news-event { grid-template-columns: 1.4fr 1fr; }
.ic-news-event dl { margin: 0; border-left: 1px solid var(--ic-line); padding-left: 30px; }
.ic-news-event dl div { margin-bottom: 16px; }
.ic-news-event dt { color: var(--ic-green); font-size: 12px; font-weight: 700; }
.ic-news-event dd { margin: 0; font-weight: 700; }

.ic-services { display: grid; grid-template-columns: .75fr 1.25fr; gap: 70px; align-items: start; }
.ic-services-intro { position: sticky; top: 125px; }
.ic-services-intro > p { max-width: 520px; }
.ic-service-grid { display: grid; gap: 18px; }
.ic-service-card { position: relative; display: block; min-height: 230px; padding: 35px 78px 35px 42px; overflow: hidden; border: 1px solid var(--ic-line); border-radius: 18px; background: #fff; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.ic-service-card::before { position: absolute; inset: 0 auto 0 0; width: 6px; background: var(--ic-green); content:""; }
.ic-service-card:hover { border-color: #9bc9ab; box-shadow: var(--ic-shadow); transform: translateY(-4px); }
.ic-service-number { color: var(--ic-green); font-size: 13px; font-weight: 700; }
.ic-service-card h3 { margin: 7px 0 14px; color: var(--ic-green); font-size: clamp(22px, 2vw, 30px); }
.ic-service-card p { margin: 0; color: #66726b; }
.ic-card-arrow { position: absolute; right: 28px; bottom: 28px; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; color: #fff; background: var(--ic-green); }
.ic-service-card-dark { color: #fff; background: var(--ic-ink); border-color: var(--ic-ink); }
.ic-service-card-dark h3, .ic-service-card-dark p, .ic-service-card-dark .ic-service-number { color: #fff; }

.ic-feature { color: #fff; background: var(--ic-ink); }
.ic-feature .ic-section-head h2 { color: #fff; }
.ic-feature .ic-kicker { color: #8dd5a7; }
.ic-feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.ic-feature-grid article { min-height: 350px; padding: 38px; border: 1px solid rgba(255,255,255,.2); border-radius: 18px; background: rgba(255,255,255,.06); }
.ic-feature-grid article > span { display: block; margin-bottom: 50px; color: #8dd5a7; font: italic 600 16px/1 Arial, sans-serif; }
.ic-feature-grid strong { display: block; margin-bottom: 22px; color: inherit; font-size: clamp(21px, 2vw, 29px); line-height: 1.55; }
.ic-feature-grid p { margin: 0; opacity: .78; }

.ic-company-teaser { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.ic-company-copy h2 { font-size: clamp(34px, 4vw, 55px); line-height: 1.55; }
.ic-company-copy p { max-width: 600px; }
.ic-button { display: inline-flex; align-items: center; justify-content: center; gap: 38px; min-width: 220px; padding: 15px 26px; border: 1px solid var(--ic-green); border-radius: 999px; color: #fff !important; background: var(--ic-green); font: inherit; font-weight: 700; cursor: pointer; }
.ic-company-visual { min-height: 430px; display: flex; flex-direction: column; justify-content: center; gap: 15px; padding: 55px; overflow: hidden; color: #fff; background: linear-gradient(145deg, var(--ic-green), var(--ic-ink)); }
.ic-company-visual span { font: 300 clamp(35px, 5vw, 72px)/1.05 Arial, sans-serif; letter-spacing: -.04em; }
.ic-company-visual span:nth-child(2) { transform: translateX(12%); opacity: .65; }
.ic-company-visual span:nth-child(3) { transform: translateX(-8%); opacity: .4; }

.ic-page-hero { min-height: 420px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 100px 5vw; background: #f6f7f6; text-align: center; }
.ic-page-hero > p { max-width: 830px; margin: 25px auto 0; }
.ic-service-hero { position: relative; min-height: 430px; overflow: hidden; }
.ic-service-hero::after { position:absolute; right:-120px; bottom:-170px; width:430px; height:430px; border-radius:50%; background: repeating-radial-gradient(circle,rgba(52,159,93,.08) 0 2px,transparent 2px 16px); content:""; }
.ic-service-hero > * { position: relative; z-index: 1; }
.ic-service-detail { padding-top: 100px; }
.ic-detail-intro { max-width: 870px; margin: 0 auto 100px; }
.ic-detail-intro h2 { color: var(--ic-green); font-size: clamp(34px, 4vw, 54px); line-height: 1.55; }
.ic-detail-intro p { font-size: 18px; }
.ic-detail-panel { padding: 65px; background: var(--ic-soft); }
.ic-detail-panel h2, .ic-cases h2 { font-size: clamp(32px, 3.4vw, 48px); }
.ic-detail-items { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin-top: 40px; }
.ic-detail-items div { display:flex; align-items:center; gap: 17px; padding: 25px; border-bottom: 1px solid #ccd9d0; background: #fff; }
.ic-detail-items span { color: var(--ic-green); font-size: 12px; }
.ic-cases { margin-top: 100px; }
.ic-case-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.ic-case-grid article { padding: 32px; border: 1px solid var(--ic-line); border-radius: 14px; }
.ic-case-grid strong { display: block; color: var(--ic-green); font-size: 32px; }
.ic-case-grid span { display: block; margin-bottom: 18px; color: #78837c; font-size: 12px; }

.ic-company-page { display: grid; grid-template-columns: .8fr 1.2fr; gap: 85px; align-items: start; }
.ic-company-message h2 { color: var(--ic-green); font-size: clamp(34px, 4vw, 52px); line-height: 1.6; }
.ic-company-table { margin: 0; border-top: 1px solid var(--ic-line); }
.ic-company-table div { display: grid; grid-template-columns: 150px 1fr; gap: 30px; padding: 30px 0; border-bottom: 1px solid var(--ic-line); }
.ic-company-table dt { color: #6e7b74; }
.ic-company-table dd { margin: 0; color: #31483c; font-weight: 600; }
.ic-company-table small { color: #6e7b74; font-weight: 400; }

.ic-report-feature { display: grid; grid-template-columns: 360px 1fr; gap: 80px; align-items: center; max-width: 1050px; margin: auto; }
.ic-report-cover-large { min-height: 490px; box-shadow: var(--ic-shadow); }
.ic-report-cover-large strong { font-size: 29px; }
.ic-report-feature h2 { color: var(--ic-green); font-size: clamp(32px, 3.6vw, 49px); line-height: 1.55; }
.ic-download-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.ic-download-card { min-height: 300px; padding: 42px; border: 1px solid var(--ic-line); border-radius: 18px; }
.ic-download-card > span { color: var(--ic-green); font-size: 12px; font-weight: 700; }
.ic-download-card h2 { margin-top: 25px; font-size: 26px; }

.ic-recruit-hero { color: #fff; background: linear-gradient(135deg, var(--ic-ink), var(--ic-green)); }
.ic-recruit-hero h1, .ic-recruit-hero p { color: #fff; }
.ic-recruit-hero .ic-kicker { color: #aee2bf; }
.ic-recruit-statement { max-width: 850px; margin: 0 auto 90px; text-align: center; }
.ic-recruit-statement h2 { color: var(--ic-green); font-size: clamp(34px,4vw,54px); line-height:1.55; }
.ic-recruit-values article { color: var(--ic-text); background: var(--ic-soft); border-color: var(--ic-line); }
.ic-recruit-values article > span { color: var(--ic-green); }
.ic-jobs { margin-top: 100px; }
.ic-job-list { margin: 35px 0; border-top: 1px solid var(--ic-line); }
.ic-job-list div { display: flex; justify-content: space-between; gap: 20px; padding: 25px 0; border-bottom: 1px solid var(--ic-line); }
.ic-job-list strong { color: var(--ic-ink); font-size: 20px; }
.ic-job-list span { color: #78837c; }

.ic-contact-page { max-width: 900px; margin: 0 auto; }
.ic-contact-form { display: grid; gap: 28px; }
.ic-contact-form label > span { display: block; margin-bottom: 8px; font-weight: 700; }
.ic-contact-form b { margin-left: 8px; color: var(--ic-green); font-size: 11px; }
.ic-contact-form input, .ic-contact-form textarea { width: 100%; padding: 15px 17px; border: 1px solid #cbd8cf; border-radius: 5px; background:#fff; font: inherit; }
.ic-contact-form input:focus, .ic-contact-form textarea:focus { border-color: var(--ic-green); outline: 3px solid rgba(47,143,85,.12); }
.ic-form-message { padding: 18px 22px; border-radius: 8px; }
.ic-form-success { color: #155f36; background: #e6f5eb; }
.ic-form-error { color: #8c2d25; background: #fbe9e7; }

.ic-product-hero { min-height: 650px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 110px max(7vw,calc((100vw - 1100px)/2)); color: #fff; background: linear-gradient(135deg,#0b3f2c,#29935a); }
.ic-product-hero h1 { margin: 0 0 18px; color:#fff; font: 600 clamp(65px,10vw,140px)/1 Arial,sans-serif; letter-spacing:-.06em; }
.ic-product-hero h2 { max-width: 850px; color:#fff; font-size:clamp(26px,3vw,44px); }
.ic-product-hero p { max-width:760px; }
.ic-button-light { color: var(--ic-ink) !important; background: #fff; border-color: #fff; }

.ic-footer { color: #fff; background: #062e20; }
.ic-footer-contact { display: grid; grid-template-columns: 1fr auto; gap: 50px; align-items: center; padding: 70px max(5vw,calc((100vw - var(--ic-max))/2)); background: var(--ic-green); }
.ic-footer-contact h2 { margin: 0 0 8px; color: #fff; font-size: clamp(34px,4vw,54px); }
.ic-footer-contact .ic-kicker { color:#d9f3e1; }
.ic-footer-actions { display:flex; gap:14px; }
.ic-button-outline-light { background: transparent; border-color: rgba(255,255,255,.65); }
.ic-footer-main { display:grid; grid-template-columns:1fr 1fr; gap:70px; padding:75px max(5vw,calc((100vw - var(--ic-max))/2)); }
.ic-logo-footer .ic-logo-mark, .ic-logo-footer .ic-logo-name { color:#fff; }
.ic-footer-main p { max-width:520px; margin-top:26px; opacity:.66; }
.ic-footer-links { display:grid; grid-template-columns:repeat(2,1fr); align-content:start; gap:18px 36px; }
.ic-footer-links a { padding-bottom:10px; border-bottom:1px solid rgba(255,255,255,.16); }
.ic-footer-bottom { display:flex; justify-content:space-between; padding:20px max(5vw,calc((100vw - var(--ic-max))/2)); border-top:1px solid rgba(255,255,255,.12); font-size:12px; opacity:.65; }

.ic-reveal { opacity: 1; transform: none; }
.ic-js .ic-reveal { opacity: 0; transform: translateY(24px); transition: opacity .75s ease, transform .75s ease; }
.ic-js .ic-reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 1120px) {
    .ic-nav { gap: 22px; font-size: 14px; }
    .ic-nav-cta { padding: 10px 15px; }
    .ic-hero { grid-template-columns: 1fr .7fr; }
    .ic-hero h1 { white-space: normal; }
    .ic-services { grid-template-columns: 1fr; }
    .ic-services-intro { position: static; }
    .ic-service-grid { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 900px) {
    .admin-bar .ic-header { top: 46px; }
    .ic-menu-toggle { display:block; }
    .ic-nav { position:fixed; inset:82px 0 auto; display:none; flex-direction:column; align-items:stretch; gap:0; padding:18px 6vw 30px; background:#fff; box-shadow:0 16px 30px rgba(0,0,0,.1); }
    .admin-bar .ic-nav { top:128px; }
    .ic-nav.is-open { display:flex; }
    .ic-nav > a { padding:14px 0; border-bottom:1px solid var(--ic-line); }
    .ic-nav-cta { margin-top:14px; padding:13px 18px !important; text-align:center; }
    .ic-hero { min-height:0; grid-template-columns:1fr; }
    .ic-hero-copy { padding:80px 6vw 70px; }
    .ic-hero-proof { margin:0; padding:60px 8vw; }
    .ic-section { padding:85px 6vw; }
    .ic-news-list { padding-left:0; }
    .ic-news-card, .ic-news-event { grid-template-columns:1fr; }
    .ic-news-event dl { border:0; border-top:1px solid var(--ic-line); padding:25px 0 0; }
    .ic-service-grid { grid-template-columns:1fr; }
    .ic-feature-grid { grid-template-columns:1fr; }
    .ic-feature-grid article { min-height:0; }
    .ic-company-teaser, .ic-company-page { grid-template-columns:1fr; }
    .ic-company-visual { min-height:330px; }
    .ic-detail-items, .ic-download-grid { grid-template-columns:1fr; }
    .ic-case-grid { grid-template-columns:1fr; }
    .ic-report-feature { grid-template-columns:1fr; }
    .ic-report-cover-large { max-width:360px; }
    .ic-footer-contact, .ic-footer-main { grid-template-columns:1fr; }
    .ic-footer-actions { flex-direction:column; }
}

@media (max-width: 560px) {
    body.ic-site { font-size:15px; }
    .ic-header { height:70px; padding:0 18px; }
    .ic-logo-mark { font-size:34px; }
    .ic-logo-name { font-size:8px; }
    .ic-nav { top:70px; }
    .admin-bar .ic-nav { top:116px; }
    .ic-hero-copy { padding-top:60px; }
    .ic-ribbon { padding:5px 14px; font-size:15px; }
    .ic-hero h1 { font-size:42px; }
    .ic-hero-points { margin-top:42px; }
    .ic-hero-points li { align-items:flex-start; }
    .ic-client-grid { grid-template-columns:1fr 1fr; }
    .ic-news-card { padding:28px 22px; gap:28px; }
    .ic-service-card { padding:28px 58px 28px 24px; }
    .ic-detail-panel { padding:35px 22px; }
    .ic-company-table div { grid-template-columns:1fr; gap:8px; }
    .ic-page-hero { min-height:340px; padding:70px 6vw; }
    .ic-product-hero { min-height:560px; padding:80px 6vw; }
    .ic-footer-links { grid-template-columns:1fr; }
    .ic-footer-bottom { flex-direction:column; gap:8px; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior:auto; }
    .ic-js .ic-reveal { opacity:1; transform:none; transition:none; }
}
