/* ===========================================================
   ONESPACE Services  -  共通スタイル
   （okinawa-stream-works.com のサービスページから移植・共通化）
   すべて .osw- 名前空間に閉じ込め、テーマ側と干渉しない
   =========================================================== */
.osw-svc{
  --navy:#04384c;--blue:#1176d4;--blue-dk:#0d5ca8;--bg:#f2f7fa;
  --line:#e2e8ec;--muted:#5f6b73;--amber:#e8a01e;
  font-family:"游ゴシック体","Yu Gothic",YuGothic,"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;
  color:#2b3338;line-height:1.8;
}
.osw-svc *{box-sizing:border-box;}
.osw-svc h2,.osw-svc h3,.osw-svc h4{background:none!important;border:none!important;padding:0!important;}
.osw-svc h2::before,.osw-svc h2::after,
.osw-svc h3::before,.osw-svc h3::after,
.osw-svc h4::before,.osw-svc h4::after{display:none!important;}
.osw-svc .lead{font-size:15.5px;color:#3a444a;margin:0 0 36px;}
.osw-svc .sec-t{text-align:center;margin:0 0 24px;}
.osw-svc .sec-t h2{font-size:24px;font-weight:700;color:var(--navy);margin:0;display:inline-block;padding-bottom:8px!important;border-bottom:3px solid var(--blue)!important;}

/* プラン */
.osw-svc .plans{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:14px;}
.osw-svc .plan{background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px 18px;display:flex;flex-direction:column;position:relative;}
.osw-svc .plan.rec{border:2px solid var(--blue);box-shadow:0 8px 24px rgba(17,118,212,.12);}
.osw-svc .plan .badge{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--blue);color:#fff;font-size:12px;font-weight:700;padding:4px 16px;border-radius:20px;white-space:nowrap;}
.osw-svc .plan .pname{font-size:17px;font-weight:700;color:var(--navy);text-align:center;margin:0 0 6px;}
.osw-svc .plan .price{text-align:center;color:var(--blue);font-weight:700;font-size:27px;line-height:1.2;margin-bottom:4px;}
.osw-svc .plan .price small{font-size:14px;}
.osw-svc .plan .target{text-align:center;font-size:12px;color:var(--muted);margin:0 0 14px;min-height:32px;}
.osw-svc .plan ul{list-style:none;margin:0;padding:14px 0 0;border-top:1px dashed var(--line);}
.osw-svc .plan li{font-size:13px;color:#3a444a;padding:4px 0 4px 20px;position:relative;}
.osw-svc .plan li::before{content:"";position:absolute;left:2px;top:11px;width:6px;height:6px;border-radius:50%;background:var(--blue);}
.osw-svc .note{font-size:12.5px;color:var(--muted);margin:0 0 40px;text-align:right;}

/* オプション */
.osw-svc .opt{background:var(--bg);border-radius:14px;padding:26px 26px 20px;margin-bottom:40px;}
.osw-svc .opt h3{font-size:17px;color:var(--navy);font-weight:700;margin:0 0 14px;}
.osw-svc .opt-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px 22px;}
.osw-svc .opt-item{font-size:13.5px;}
.osw-svc .opt-item b{color:var(--navy);}
.osw-svc .opt-item span{color:var(--blue);font-weight:700;}
.osw-svc .opt-item small{display:block;color:var(--muted);font-size:12px;margin-top:2px;}
.osw-svc .opt-note{font-size:12px;color:var(--muted);margin:14px 0 0;}

/* こんな方におすすめ */
.osw-svc .fit{background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px 26px;margin-bottom:40px;}
.osw-svc .fit h3{font-size:18px;color:var(--navy);font-weight:700;text-align:center;margin:0 0 18px;}
.osw-svc .fit ul{list-style:none;margin:0 auto;padding:0;display:grid;gap:12px;max-width:560px;}
.osw-svc .fit li{font-size:15px;color:#2b3338;padding-left:34px;position:relative;}
.osw-svc .fit li::before{content:"✓";position:absolute;left:0;top:-1px;width:22px;height:22px;background:var(--blue);color:#fff;border-radius:50%;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;}

/* CTA */
.osw-svc .cta{background:var(--navy);border-radius:16px;text-align:center;color:#fff;padding:40px 24px;}
.osw-svc .cta h3{font-size:22px;font-weight:700;color:#fff;margin:0 0 8px;}
.osw-svc .cta p{margin:0 0 24px;font-size:14px;color:#cfe0e8;}
.osw-svc .btn{display:inline-block;background:#fff;color:var(--navy);text-decoration:none;font-weight:700;font-size:17px;padding:16px 46px;border-radius:9px;box-shadow:0 4px 14px rgba(0,0,0,.2);transition:.2s;}
.osw-svc .btn:hover{background:#eaf3fb;transform:translateY(-2px);}

@media(max-width:900px){.osw-svc .plans{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.osw-svc .plans,.osw-svc .opt-list{grid-template-columns:1fr;}}

/* ===========================================================
   STREAM WORKS ブランド ロックアップ（設定でON/OFF可能）
   =========================================================== */
.osw-brand{display:flex;justify-content:center;margin:0 0 30px;padding:20px 22px;background:#fff;border:1px solid var(--line);border-radius:14px;}
.osw-brand img{width:100%;max-width:300px;height:auto;display:block;}

/* ===========================================================
   料金一覧
   =========================================================== */
.osw-price{--navy:#04384c;--blue:#1176d4;--line:#e2e8ec;--muted:#5f6b73;color:#2b3338;line-height:1.7;}
.osw-price .p-head{display:inline-block;background:var(--navy);color:#fff;font-weight:700;font-size:15px;padding:7px 18px;border-radius:6px;margin:28px 0 12px;}
.osw-price table{width:100%;border-collapse:collapse;margin:0 0 8px;font-size:14px;}
.osw-price th,.osw-price td{border:1px solid var(--line);padding:9px 8px;text-align:center;}
.osw-price thead th{background:#eef4f9;color:var(--navy);font-weight:700;}
.osw-price tbody tr:nth-child(odd){background:#fafcfe;}
.osw-price .rec td{background:#eaf3fb;font-weight:700;}
.osw-price .cap{font-size:12px;color:var(--muted);margin:0 0 4px;}
.osw-price .p-cta{text-align:center;margin:34px 0 0;}
.osw-price .p-cta a{display:inline-block;background:var(--navy);color:#fff;text-decoration:none;font-weight:700;font-size:16px;padding:14px 44px;border-radius:9px;box-shadow:0 4px 14px rgba(0,0,0,.18);transition:.2s;}
.osw-price .p-cta a:hover{background:#0d5ca8;transform:translateY(-2px);}
@media(max-width:560px){.osw-price table{font-size:12.5px;}.osw-price th,.osw-price td{padding:7px 4px;}}

/* ===========================================================
   よくある質問（アコーディオン）
   =========================================================== */
.osw-faq{--navy:#04384c;--blue:#1176d4;--line:#e2e8ec;--bg:#f2f7fa;color:#2b3338;}
.osw-faq .faq-cat{font-size:16px;font-weight:700;color:var(--navy);margin:30px 0 12px;padding-left:12px;border-left:4px solid var(--blue);}
.osw-faq details{background:#fff;border:1px solid var(--line);border-radius:10px;margin-bottom:10px;overflow:hidden;}
.osw-faq summary{list-style:none;cursor:pointer;padding:15px 46px 15px 44px;font-weight:700;font-size:15px;color:var(--navy);position:relative;}
.osw-faq summary::-webkit-details-marker{display:none;}
.osw-faq summary::before{content:"Q";position:absolute;left:14px;top:50%;transform:translateY(-50%);width:22px;height:22px;background:var(--blue);color:#fff;border-radius:50%;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;}
.osw-faq summary::after{content:"+";position:absolute;right:18px;top:50%;transform:translateY(-50%);font-size:20px;color:var(--blue);transition:.2s;}
.osw-faq details[open] summary::after{transform:translateY(-50%) rotate(45deg);}
.osw-faq .faq-a{padding:0 20px 16px 44px;font-size:14px;color:#3a444a;line-height:1.85;}
.osw-faq .faq-lead{font-size:14px;color:#3a444a;background:var(--bg);border-radius:12px;padding:20px 22px;margin:20px 0 0;line-height:1.9;}

/* ===========================================================
   料金シミュレーター（実際に動作する診断）
   =========================================================== */
.osw-sim{--navy:#04384c;--blue:#1176d4;--blue-dk:#0d5ca8;--bg:#f2f7fa;--line:#e2e8ec;--muted:#5f6b73;
  font-family:"游ゴシック体","Yu Gothic",YuGothic,"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;
  color:#2b3338;line-height:1.8;max-width:720px;margin:0 auto;}
.osw-sim .sim-lead{text-align:center;font-size:15px;color:#3a444a;margin:0 0 26px;}
.osw-sim .sim-q{margin-bottom:22px;}
.osw-sim .sim-q .q-t{font-weight:700;color:var(--navy);font-size:15px;margin:0 0 10px;}
.osw-sim .opts{display:flex;flex-wrap:wrap;gap:10px;}
.osw-sim .opts button{flex:1 1 auto;min-width:110px;background:#fff;border:1.5px solid var(--line);color:#3a444a;font-size:14px;font-weight:600;padding:12px 10px;border-radius:9px;cursor:pointer;transition:.15s;}
.osw-sim .opts button:hover{border-color:var(--blue);}
.osw-sim .opts button.sel{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 4px 12px rgba(17,118,212,.25);}
.osw-sim .sim-result{margin-top:10px;background:var(--navy);border-radius:16px;color:#fff;padding:32px 26px;text-align:center;display:none;}
.osw-sim .sim-result.show{display:block;animation:oswfade .3s ease;}
@keyframes oswfade{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
.osw-sim .sim-result .r-label{font-size:13px;color:#cfe0e8;letter-spacing:.1em;}
.osw-sim .sim-result .r-plan{font-size:30px;font-weight:800;margin:4px 0 2px;}
.osw-sim .sim-result .r-price{font-size:20px;color:#9fdcff;font-weight:700;margin-bottom:14px;}
.osw-sim .sim-result .r-spec{font-size:13.5px;color:#dfeaf1;line-height:1.9;margin:0 auto 22px;max-width:440px;}
.osw-sim .sim-result .r-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}
.osw-sim .sim-result a{display:inline-block;text-decoration:none;font-weight:700;font-size:15px;padding:13px 30px;border-radius:9px;transition:.2s;}
.osw-sim .sim-result a.primary{background:#fff;color:var(--navy);}
.osw-sim .sim-result a.ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.6);}
.osw-sim .sim-result a:hover{transform:translateY(-2px);}
.osw-sim .sim-note{font-size:12px;color:var(--muted);text-align:center;margin-top:14px;}

/* ===========================================================
   TOP（ホーム）  [osw_home]
   =========================================================== */
.osw-home{--navy:#04384c;--blue:#1176d4;--blue-dk:#0d5ca8;--bg:#f2f7fa;--line:#e2e8ec;--muted:#5f6b73;--goya:#2f9e56;--goya-dk:#237a41;
  font-family:"游ゴシック体","Yu Gothic",YuGothic,"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;color:#2b3338;line-height:1.8;}
.osw-home *{box-sizing:border-box;}
.osw-home section{margin:0 0 56px;}
.osw-home .h-sec-t{text-align:center;margin:0 0 8px;font-size:24px;font-weight:800;color:var(--navy);}
.osw-home .h-sec-t small{display:block;font-size:12px;letter-spacing:.18em;color:var(--blue);font-weight:700;margin-top:4px;}
.osw-home .h-sec-lead{text-align:center;color:var(--muted);font-size:14px;margin:0 0 28px;}

/* Hero（stream-works スタイル：ミキサー背景＋ロゴ） */
.osw-home .hero{position:relative;border-radius:18px;overflow:hidden;color:#fff;padding:56px 46px;background-size:cover;background-position:center;}
.osw-home .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,40,60,.93) 0%,rgba(4,40,60,.76) 44%,rgba(4,40,60,.34) 100%);}
.osw-home .hero .hero-in{position:relative;z-index:1;max-width:620px;}
.osw-home .hero .sw-logo{display:inline-block;background:#fff;border-radius:12px;padding:14px 20px;margin:0 0 22px;box-shadow:0 8px 24px rgba(0,0,0,.25);}
.osw-home .hero .sw-logo img{display:block;width:100%;max-width:290px;height:auto;}
.osw-home .hero h2{font-size:32px;font-weight:800;color:#fff;margin:0 0 16px;line-height:1.4;text-shadow:0 2px 8px rgba(0,0,0,.28);}
.osw-home .hero h2 .ac{color:#5cc0ff;}
.osw-home .hero p{font-size:15px;color:#e6eff4;margin:0 0 26px;max-width:560px;text-shadow:0 1px 4px rgba(0,0,0,.3);}
.osw-home .hero .h-btns{display:flex;gap:14px;flex-wrap:wrap;}
.osw-home .hero a{display:inline-block;text-decoration:none;font-weight:700;font-size:16px;padding:15px 34px;border-radius:9px;transition:.2s;}
.osw-home .hero a.primary{background:#1176d4;color:#fff;box-shadow:0 6px 18px rgba(17,118,212,.4);}
.osw-home .hero a.primary:hover{background:#0d5ca8;}
.osw-home .hero a.ghost{background:rgba(255,255,255,.12);color:#fff;border:1.5px solid rgba(255,255,255,.7);}
.osw-home .hero a:hover{transform:translateY(-2px);}

/* サービス3カード */
.osw-home .svc-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.osw-home .svc-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px 22px;text-align:center;display:flex;flex-direction:column;transition:.2s;text-decoration:none;color:inherit;}
.osw-home .svc-card:hover{border-color:var(--blue);box-shadow:0 10px 26px rgba(17,118,212,.12);transform:translateY(-3px);}
.osw-home .svc-card .ic{font-size:34px;margin-bottom:10px;}
.osw-home .svc-card h3{font-size:19px;font-weight:800;color:var(--navy);margin:0 0 8px;}
.osw-home .svc-card p{font-size:13.5px;color:var(--muted);margin:0 0 16px;flex:1;}
.osw-home .svc-card .go{color:var(--blue);font-weight:700;font-size:14px;}

/* 料金診断バンド */
.osw-home .sim-band{background:var(--bg);border-radius:16px;padding:34px 28px;text-align:center;}
.osw-home .sim-band h3{font-size:21px;color:var(--navy);font-weight:800;margin:0 0 8px;}
.osw-home .sim-band p{font-size:14px;color:var(--muted);margin:0 0 20px;}
.osw-home .sim-band a{display:inline-block;background:var(--navy);color:#fff;text-decoration:none;font-weight:700;font-size:16px;padding:14px 40px;border-radius:9px;transition:.2s;}
.osw-home .sim-band a:hover{background:var(--blue-dk);transform:translateY(-2px);}

/* ごーやーどっとネット featured（ロゴ・キャラが映える明るい配色） */
.osw-home .goya{background:#f1faf4;border:1px solid #d4ecdd;border-radius:18px;padding:36px 34px;display:grid;grid-template-columns:1fr 1.4fr;gap:28px;align-items:center;}
.osw-home .goya .g-body .g-logo{width:100%;max-width:290px;height:auto;margin:0 0 12px;}
.osw-home .goya .g-body .g-sub{font-size:13px;color:var(--goya-dk);margin:0 0 12px;font-weight:800;letter-spacing:.04em;}
.osw-home .goya .g-body p{font-size:14px;color:#365244;margin:0 0 20px;}
.osw-home .goya a{display:inline-block;background:var(--goya);color:#fff;text-decoration:none;font-weight:800;font-size:15px;padding:13px 30px;border-radius:9px;transition:.2s;box-shadow:0 4px 12px rgba(47,158,86,.25);}
.osw-home .goya a:hover{background:var(--goya-dk);transform:translateY(-2px);}
.osw-home .goya .g-chara{text-align:center;}
.osw-home .goya .g-chara img{width:100%;max-width:190px;height:auto;filter:drop-shadow(0 8px 14px rgba(0,0,0,.12));}
.osw-home .goya .g-devices{text-align:center;}
.osw-home .goya .g-devices img{width:100%;max-width:560px;height:auto;}

/* News */
.osw-home .news{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.osw-home .news a{text-decoration:none;color:inherit;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;transition:.2s;display:flex;flex-direction:column;}
.osw-home .news a:hover{box-shadow:0 8px 22px rgba(0,0,0,.08);transform:translateY(-3px);}
.osw-home .news .thumb{aspect-ratio:16/10;background:#e9eef2 center/cover no-repeat;}
.osw-home .news .n-body{padding:12px 13px;}
.osw-home .news .n-date{font-size:11px;color:var(--blue);font-weight:700;}
.osw-home .news .n-title{font-size:13px;font-weight:700;color:#2b3338;margin-top:3px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.osw-home .news-more{text-align:center;margin-top:20px;}
.osw-home .news-more a{color:var(--blue);font-weight:700;text-decoration:none;font-size:14px;}

/* 会社リンク帯 */
.osw-home .links{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.osw-home .links a{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px 14px;text-align:center;text-decoration:none;color:var(--navy);font-weight:700;font-size:14.5px;transition:.2s;}
.osw-home .links a:hover{border-color:var(--blue);color:var(--blue);}
.osw-home .final-cta{background:var(--navy);border-radius:16px;text-align:center;color:#fff;padding:44px 24px;}
.osw-home .final-cta h3{font-size:23px;font-weight:800;color:#fff;margin:0 0 10px;}
.osw-home .final-cta p{font-size:14px;color:#cfe0e8;margin:0 0 24px;}
.osw-home .final-cta a{display:inline-block;background:#fff;color:var(--navy);text-decoration:none;font-weight:800;font-size:17px;padding:16px 48px;border-radius:9px;box-shadow:0 4px 14px rgba(0,0,0,.2);transition:.2s;}
.osw-home .final-cta a:hover{background:#eaf3fb;transform:translateY(-2px);}

@media(max-width:820px){
  .osw-home .svc-cards{grid-template-columns:1fr;}
  .osw-home .goya{grid-template-columns:1fr;text-align:center;}
  .osw-home .goya .g-body .g-logo{margin-left:auto;margin-right:auto;}
  .osw-home .goya .g-chara{order:-1;}
  .osw-home .goya .g-chara img{max-width:150px;}
  .osw-home .goya .g-devices img{max-width:100%;}
  .osw-home .news{grid-template-columns:1fr 1fr;}
  .osw-home .links{grid-template-columns:1fr 1fr;}
  .osw-home .hero h2{font-size:24px;}
}

/* ===========================================================
   ごーやーどっとネット 紹介ページ  [osw_goyah]
   =========================================================== */
.osw-goya-p{--goya:#2f9e56;--goya-dk:#237a41;--navy:#04384c;--line:#e2e8ec;--muted:#5f6b73;--bg:#f1faf4;
  font-family:"游ゴシック体","Yu Gothic",YuGothic,"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;color:#2b3338;line-height:1.85;}
.osw-goya-p *{box-sizing:border-box;}
.osw-goya-p .g-hero{background:#f1faf4;border:1px solid #d4ecdd;border-radius:16px;padding:40px 30px 0;text-align:center;margin-bottom:32px;}
.osw-goya-p .g-hero .g-logo{width:100%;max-width:340px;height:auto;margin:0 auto 14px;}
.osw-goya-p .g-hero .g-since{font-size:13px;color:var(--goya-dk);font-weight:800;letter-spacing:.06em;margin:0 0 10px;}
.osw-goya-p .g-hero h2{font-size:26px;font-weight:800;color:#1f3b2b;margin:0 0 12px;line-height:1.4;}
.osw-goya-p .g-hero p{font-size:14.5px;color:#3a544a;margin:0 auto;max-width:620px;padding-bottom:26px;}
.osw-goya-p .g-hero .g-run{display:inline-block;margin-top:10px;font-size:12.5px;color:#6a8778;font-weight:700;}
.osw-goya-p .g-hero .g-chara-hero{display:block;width:150px;height:auto;margin:4px auto 0;filter:drop-shadow(0 8px 14px rgba(0,0,0,.12));}
/* 歴史ストーリー */
.osw-goya-p .g-story{background:#fff;border:1px solid var(--line);border-left:5px solid var(--goya);border-radius:12px;padding:24px 26px;margin-bottom:34px;}
.osw-goya-p .g-story h3{font-size:19px;font-weight:800;color:var(--goya-dk);margin:0 0 10px;}
.osw-goya-p .g-story p{font-size:14.5px;color:#3a444a;margin:0;line-height:1.9;}
.osw-goya-p .g-story b{color:var(--goya-dk);}
.osw-goya-p .g-feat-t{text-align:center;font-size:22px;font-weight:800;color:var(--goya-dk);margin:0 0 22px;}
.osw-goya-p .g-feats{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:36px;}
.osw-goya-p .g-feat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px 20px;}
.osw-goya-p .g-feat h4{font-size:16px;font-weight:800;color:var(--navy);margin:0 0 6px;padding-left:26px;position:relative;}
.osw-goya-p .g-feat h4::before{content:"";position:absolute;left:0;top:4px;width:16px;height:16px;border-radius:4px;background:var(--goya);}
.osw-goya-p .g-feat p{font-size:13.5px;color:#3a444a;margin:0;}
.osw-goya-p .g-cta{background:var(--goya-dk);border-radius:16px;text-align:center;color:#fff;padding:38px 24px;}
.osw-goya-p .g-cta h3{font-size:21px;font-weight:800;color:#fff;margin:0 0 8px;}
.osw-goya-p .g-cta p{font-size:14px;color:#dff5e7;margin:0 0 22px;}
.osw-goya-p .g-cta .c-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}
.osw-goya-p .g-cta a{display:inline-block;text-decoration:none;font-weight:800;font-size:15px;padding:14px 32px;border-radius:9px;transition:.2s;}
.osw-goya-p .g-cta a.primary{background:#fff;color:var(--goya-dk);}
.osw-goya-p .g-cta a.ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.6);}
.osw-goya-p .g-cta a:hover{transform:translateY(-2px);}
@media(max-width:700px){.osw-goya-p .g-stats{grid-template-columns:1fr;}.osw-goya-p .g-feats{grid-template-columns:1fr;}}
