@charset "UTF-8";
/*
 * ======================================
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 *
 * .tos-topbar              - ヘッダー上部ユーティリティバー（ティファニー帯／電話・SNS）
 * .tos-logo                - ヘッダーロゴ（画像／__img）
 * .tos-header / __bar      - sticky ヘッダー、メインバー高さ・下罫
 * .tos-header__cta         - ヘッダーCTA（ネイビー→ティファニーの色反転）
 * .tos-sp-nav__tel         - SPナビ下部の電話番号
 * .tos-heading / __en/__ja - セクション見出し対（小英字ラベル＋大和文）
 * .tos-sec-head            - 見出し＋「一覧を見る」リンクの両端揃えヘッダ
 * .tos-link-arrow          - 矢印付きテキストリンク（下線ティファニー）
 * .tos-lead                - セクション導入のセンター明朝リード文
 * .tos-hero ほか           - メインビュー（静止画＋グラデ＋手書き風コピー）
 * .tos-grid-hairline       - 1px罫線で区切るセル一覧（お悩み・サービス）
 * .tos-worry__no 等         - お悩みセル
 * .tos-voice               - お客様の声カード
 * .tos-strength            - 強み（ダーク背景セクション）
 * .tos-service-cell        - サービスセル
 * .tos-notebox             - 左ティファニー罫の注記ボックス
 * .tos-work-card           - 施工事例カード（枠線＋プレースホルダ）
 * .tos-ph (placeholder)    - 写真準備中プレースホルダ
 * .tos-faq                 - FAQ（Q/Aアコーディオン）
 * .tos-news-row            - お知らせ1行（日付＋カテゴリ＋タイトル）
 * .tos-page-hero ほか       - 下層ページヒーロー（写真＋ティール暗幕＋斜線）
 * .tos-info / __row 等      - 会社概要 定義リスト
 * .tos-profile             - 代表者プロフィール
 * .tos-flow ほか            - 施工フロー（縦タイムライン）
 * .tos-filter              - カテゴリフィルタボタン群
 * .tos-form ほか            - お問い合わせフォーム
 * .tos-entry ほか           - 記事詳細（パンくず・本文・ビフォーアフター）
 * .tos-cta ほか             - フッター上CTA帯
 * .tos-footer ほか          - フッター（ティファニー地）
 *
 * ======================================
 * 共通SCSSに不足していたもの（5分類）
 * ======================================
 * ・構造不足：小英字ラベルが大和文の上に乗る「対」見出し（共通headingはenが大）→ tos-heading
 * ・構造不足：ヘッダー上部のユーティリティ帯（電話・SNS）→ tos-topbar
 * ・装飾パターン不足：ティール(#06504C)系の重厚な暗幕＋斜線オーバーレイ → tos-hero / tos-page-hero / tos-strength
 * ・装飾パターン不足：1px罫線で仕切るフラットなセル一覧 → tos-grid-hairline
 *
 * ※アニメーション（スクロールフェードイン・手書き風コピー・スクロール誘導）は
 *   要望により全て削除済み。
 */

/* ============ 幅・余白ヘルパー（インラインスタイル排除用） ============ */
.tos-w-720,.tos-w-760,.tos-w-860,.tos-w-880,.tos-w-920,.tos-w-960,.tos-w-1040,.tos-w-1100{margin-left:auto;margin-right:auto;}
.tos-w-720{max-width:720px;}
.tos-w-760{max-width:760px;}
.tos-w-860{max-width:860px;}
.tos-w-880{max-width:880px;}
.tos-w-920{max-width:920px;}
.tos-w-960{max-width:960px;}
.tos-w-1040{max-width:1040px;}
.tos-w-1100{max-width:1100px;}
.tos-center-flex{display:flex;justify-content:center;}
.tos-mt-lg{margin-top:clamp(40px,5vw,56px);}
.tos-mt-xl{margin-top:clamp(44px,6vw,64px);}
.tos-mb-xl{margin-bottom:clamp(40px,5vw,56px);}
.tos-telwrap{padding:0 clamp(20px,4vw,40px);}
.tos-lead-sub{margin-top:24px;font-size:15px;line-height:2.1;color:#56657c;letter-spacing:.03em;text-align:center;}

/* ブログ一覧レイアウト（メイン＋サイドバー） */
.tos-blog-layout{display:flex;flex-wrap:wrap;gap:clamp(36px,5vw,60px);align-items:flex-start;}
.tos-blog-main{flex:1;min-width:300px;}
@media (max-width:896px){.tos-blog-side{width:100%;}}

/* スマホ時のみ改行する <br>（PCでは無効） */
.tos-br-sp{display:none;}
@media (max-width:767px){.tos-br-sp{display:inline;}}

/* ============ 共通テキスト・リンク ============ */
.tos-lead{font-size:clamp(16px,2vw,20px);line-height:2.15;color:#1F3A5F;letter-spacing:.05em;text-align:center;}
.tos-lead--lg{font-size:clamp(17px,2.2vw,22px);line-height:2.2;}
.tos-note-small{font-size:12px;color:#9aa7b8;letter-spacing:.04em;line-height:1.8;}

.tos-link-arrow{display:inline-flex;align-items:center;gap:9px;color:#1F3A5F;font-size:14px;letter-spacing:.08em;border-bottom:1px solid #0ABAB5;padding-bottom:4px;}
.tos-link-arrow i{color:#0ABAB5;font-size:.85em;transition:transform .3s ease;}
.tos-link-arrow:hover{opacity:1;}
.tos-link-arrow:hover i{transform:translateX(4px);}

/* ============ セクション見出し ============ */
.tos-heading{margin-bottom:clamp(36px,5vw,56px);}
.tos-heading--center{text-align:center;}
.tos-heading__en{display:block;font-family:'Roboto Condensed',sans-serif;font-size:12px;letter-spacing:.34em;color:#0ABAB5;text-transform:uppercase;margin-bottom:14px;font-weight:500;}
.tos-heading__ja{display:block;font-size:clamp(26px,4vw,40px);color:#1F3A5F;letter-spacing:.06em;font-weight:500;line-height:1.4;margin:0;}
.tos-heading--white .tos-heading__ja{color:#fff;}

/* 見出し＋リンクの両端揃え（Works / News） */
.tos-sec-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:clamp(36px,5vw,56px);}
.tos-sec-head .tos-heading{margin-bottom:0;}

/* 罫線付きインライン見出し（会社概要の Company Profile 等） */
.tos-inline-head{display:flex;align-items:baseline;gap:16px;margin-bottom:clamp(28px,4vw,44px);}
.tos-inline-head__en{font-family:'Roboto Condensed',sans-serif;font-size:12px;letter-spacing:.34em;color:#0ABAB5;text-transform:uppercase;flex-shrink:0;}
.tos-inline-head__line{height:1px;flex:1;background:#E2E9EE;}
.tos-inline-head__ja{font-size:clamp(18px,2.4vw,24px);color:#1F3A5F;letter-spacing:.08em;flex-shrink:0;}

/* ============ メインビュー ============
   #slideshow に明示的な高さを持たせ、CMSスライダー（内部Swiper）が height:100% で追従する。
   #slideshow は z-index:0 で独立したスタックコンテキストを作り、Swiperの矢印・ページャ等の
   内部 z-index がオーバーレイ／テキスト（z-index:1/2）の上に出ないようにする。 */
.tos-hero{position:relative;overflow:hidden;background:#06504C;}
.tos-hero #slideshow{position:relative;z-index:0;width:100%;height:clamp(540px,82vh,760px);}
.tos-hero #cms-slider-1-1-area{width:100%;height:100%;}
/* 静止画フォールバック（CMS未接続時）／CMS出力どちらでも画像をカバー表示 */
.tos-hero #slideshow > img,
.tos-hero .swiper-slide .main_slider__inner img,
.tos-hero .swiper-slide img{width:100%;height:100%;object-fit:cover;display:block;}
.tos-hero__overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,52,49,.8) 0%,rgba(5,52,49,.46) 45%,rgba(5,52,49,.18) 100%);z-index:1;pointer-events:none;}
.tos-hero__inner{position:absolute;top:0;bottom:0;left:0;right:0;z-index:2;max-width:1200px;margin:0 auto;display:flex;flex-direction:column;justify-content:center;padding-left:clamp(20px,4vw,40px);padding-right:clamp(20px,4vw,40px);}
.tos-hero__copy{max-width:820px;}
.tos-hero__title{margin:0;color:#fff;font-weight:500;font-size:clamp(34px,6vw,64px);line-height:1.32;letter-spacing:.04em;}
/* スマホ：見出しが3行以上に折り返さないよう縮小（<br>区切りで2行を維持） */
@media (max-width:639px){.tos-hero__title{font-size:clamp(20px,6.6vw,30px);letter-spacing:.02em;}}
/* スマホ：お悩み見出し「こんなお悩みは、ありませんか？」を1行に収める */
@media (max-width:767px){.tos-worry-sec .tos-heading__ja{font-size:clamp(17px,4.6vw,23px);letter-spacing:.02em;white-space:nowrap;}}
.tos-hero__script-wrap{position:relative;display:inline-block;margin-top:clamp(14px,2vw,26px);}
.tos-hero__script{display:inline-block;font-family:'Allura',cursive;font-weight:400;color:#fff;font-size:clamp(28px,7.5vw,92px);line-height:1.1;letter-spacing:.01em;white-space:nowrap;text-shadow:0 2px 18px rgba(10,186,181,.35);animation:tosHandwrite 2.6s cubic-bezier(.65,0,.35,1) .9s both;}
.tos-hero__pen{position:absolute;top:8%;width:2px;height:84%;background:linear-gradient(to bottom,transparent,#0ABAB5 30%,#0ABAB5 70%,transparent);opacity:0;animation:tosPen 2.6s cubic-bezier(.65,0,.35,1) .9s both;}
@keyframes tosHandwrite{from{clip-path:inset(0 100% -0.2em 0);}to{clip-path:inset(0 0 -0.2em 0);}}
@keyframes tosPen{0%{left:0;opacity:0;}8%{opacity:1;}92%{opacity:1;}100%{left:100%;opacity:0;}}
.tos-hero__caption{position:absolute;z-index:2;bottom:26px;right:clamp(20px,4vw,40px);font-family:'Roboto Condensed',sans-serif;font-size:10px;letter-spacing:.2em;color:rgba(255,255,255,.55);text-transform:uppercase;}

/* ============ 上部ユーティリティバー ============ */
.tos-topbar{background:#0ABAB5;color:#fff;}
.tos-topbar__inner{max-width:1280px;margin:0 auto;padding:0 clamp(20px,4vw,40px);height:38px;display:flex;align-items:center;justify-content:space-between;}
.tos-topbar__lead{margin:0;font-size:12px;letter-spacing:.14em;color:#fff;font-weight:500;}
.tos-topbar__right{display:flex;align-items:center;gap:20px;}
.tos-topbar__tel{display:inline-flex;align-items:center;gap:7px;color:#fff;font-family:'Roboto Condensed',sans-serif;font-size:15px;letter-spacing:.06em;font-weight:500;}
.tos-topbar__tel i{font-size:.85em;}
.tos-topbar__tel:hover,.tos-topbar__sns:hover{opacity:.85;}
.tos-topbar__sns{display:inline-flex;align-items:center;color:#fff;font-size:16px;}
@media (max-width:767px){.tos-topbar{display:none;}}

/* ============ ヘッダー ============ */
.tos-header{position:sticky;top:0;z-index:200;background:#fff;width:100%;}
.tos-header__bar{height:78px;max-width:1280px;border-bottom:1px solid #E8EDF0;}
@media (max-width:1100px){.tos-header__bar{height:64px;padding:0 clamp(16px,4vw,40px);}}
.tos-logo{display:flex;flex-direction:column;gap:2px;}
.tos-logo__name{font-size:clamp(20px,2.4vw,25px);font-weight:600;color:#1F3A5F;letter-spacing:.06em;line-height:1;}
.tos-logo__en{font-family:'Roboto Condensed',sans-serif;font-size:10px;font-weight:400;letter-spacing:.32em;color:#0ABAB5;text-transform:uppercase;}
/* main.css の .header__logo img{height:40px}（SP 30px）を上書きするため詳細度を上げる */
.tos-header .header__logo img{display:block;align-self:center;height:55px;width:auto;}
.tos-header .header__nav-ja{color:#1F3A5F;font-size:14px;font-weight:400;}
.tos-header .header__nav-en{font-family:'Roboto Condensed',sans-serif;font-size:10px;letter-spacing:.18em;font-weight:400;}
.tos-header .header__nav{gap:clamp(14px,1.8vw,28px);margin-right:clamp(16px,2vw,30px);}
.tos-header .header__nav-item a{padding:6px 0;gap:3px;}
.tos-header .header__nav-item a::after{height:2px;}
.tos-header .header__nav-item--current a::after{width:18px;left:50%;transform:translateX(-50%);}
.tos-header .header__right{gap:0;}
.tos-header__cta{height:auto;align-self:center;flex-direction:row;gap:8px;background:#1F3A5F;color:#fff;font-size:14px;font-weight:400;letter-spacing:.08em;padding:12px 20px;margin-left:14px;}
.tos-header__cta i{font-size:.95em;}
.tos-header__cta:hover{background:#0ABAB5;}
.tos-sp-nav__tel{display:block;margin-top:16px;color:#fff;font-family:'Roboto Condensed',sans-serif;font-size:22px;letter-spacing:.06em;}
/* SPナビ（共通クラス）の微調整 */
.sp-nav__link::after{margin-left:10px;}
.sp-nav__en{font-size:1.5rem;}

/* ============ TOP：お悩み ============ */
.tos-worry-sec{position:relative;background:#F4F7F8;overflow:hidden;}
.tos-worry-sec__bg{position:absolute;left:0;right:0;bottom:0;height:min(70%,520px);background-position:center 55%;background-size:cover;background-repeat:no-repeat;opacity:.45;-webkit-mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.6) 42%,#000 78%);mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.6) 42%,#000 78%);pointer-events:none;}
.tos-worry-sec__inner{position:relative;z-index:1;max-width:1100px;margin:0 auto;}
.tos-grid-hairline{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1px;background:#E2E9EE;border:1px solid #E2E9EE;}
.tos-worry{background:#fff;padding:clamp(28px,3.5vw,40px) clamp(22px,3vw,32px);display:flex;flex-direction:column;gap:16px;}
.tos-worry__no{font-family:'Roboto Condensed',sans-serif;font-size:30px;font-weight:300;color:#0ABAB5;line-height:1;}
.tos-worry__text{margin:0;font-size:clamp(15px,1.7vw,17px);line-height:1.9;color:#28344a;letter-spacing:.03em;}
.tos-worry-lead{text-align:center;margin:clamp(36px,5vw,52px) auto 0;font-size:clamp(17px,2.2vw,22px);color:#1F3A5F;letter-spacing:.08em;line-height:1.8;text-shadow:0 1px 14px rgba(255,255,255,.95),0 0 6px rgba(255,255,255,.9);}
.tos-worry-lead strong{color:#1F3A5F;font-weight:inherit;}
/* スクロールでふわっと表示（汎用） */
.tos-anim-fade{opacity:0;transform:translateY(24px);transition:opacity .9s cubic-bezier(.16,.7,.3,1),transform .9s cubic-bezier(.16,.7,.3,1);will-change:opacity,transform;}
.tos-anim-fade.is-shown{opacity:1;transform:none;}

/* ============ TOP/works：施工事例カード ============ */
.tos-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(20px,2.5vw,30px);}
.tos-cards--fill{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));}
/* 施工事例（CMS出力）は記事が1〜2件でも3カラムの比率で並べる */
.tos-cards:has(.tos-work-card){grid-template-columns:repeat(3,1fr);}
@media (max-width:896px){.tos-cards:has(.tos-work-card){grid-template-columns:repeat(2,1fr);}}
@media (max-width:639px){.tos-cards:has(.tos-work-card){grid-template-columns:1fr;}}
.tos-work-card{background:#fff;border:1px solid #E2E9EE;display:flex;flex-direction:column;transition:transform .35s ease,box-shadow .35s ease;color:inherit;}
.tos-work-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(31,58,95,.1);opacity:1;}
.tos-work-card__thumb{aspect-ratio:4/3;overflow:hidden;background:#eef2f5;}
.tos-work-card__thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.tos-work-card__body{padding:22px 24px 26px;display:flex;flex-direction:column;gap:10px;}
.tos-work-card__meta{display:flex;align-items:center;gap:12px;}
.tos-work-card__cat{background:#0ABAB5;color:#fff;font-size:11px;letter-spacing:.08em;padding:3px 10px;}
.tos-work-card__date{font-family:'Roboto Condensed',sans-serif;font-size:12px;color:#9aa7b8;letter-spacing:.06em;}
.tos-work-card__title{margin:0;font-size:17px;font-weight:500;color:#1F3A5F;line-height:1.6;letter-spacing:.03em;}

/* 写真準備中プレースホルダ */
.tos-ph{aspect-ratio:4/3;background:linear-gradient(135deg,#e7edf1,#dde6ec);display:flex;align-items:center;justify-content:center;position:relative;color:#aeb9c6;}
.tos-ph i{font-size:30px;}
.tos-ph::after{content:"準備中";position:absolute;bottom:10px;right:12px;font-family:'Roboto Condensed',sans-serif;font-size:10px;letter-spacing:.14em;color:#9aa7b8;}
.tos-ph--after{background:linear-gradient(135deg,#e3f1f0,#d4e9e7);color:#8fc3bf;}
.tos-ph--after::after{color:#7fb3af;}

/* ============ TOP：お客様の声 ============ */
.tos-voice{border:1px solid #E2E9EE;padding:clamp(28px,3.2vw,38px);display:flex;flex-direction:column;gap:18px;}
.tos-voice__mark{font-size:30px;color:#0ABAB5;opacity:.9;line-height:1;}
.tos-voice__text{margin:0;font-size:16px;line-height:2;color:#28344a;letter-spacing:.03em;flex:1;}
.tos-voice__who{margin:0;font-family:'Roboto Condensed',sans-serif;font-size:13px;letter-spacing:.08em;color:#6b7c93;}

/* ============ TOP：強み（ダーク） ============ */
.tos-strength-sec{position:relative;background:#06504C center/cover no-repeat;overflow:hidden;}
.tos-strength-sec__overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,68,64,.88) 0%,rgba(6,68,64,.82) 100%);}
.tos-strength-sec__inner{position:relative;z-index:1;max-width:1100px;margin:0 auto;}
.tos-strengths{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(24px,3vw,44px);}
.tos-strength{display:flex;flex-direction:column;gap:18px;}
.tos-strength__head{display:flex;align-items:baseline;gap:14px;}
.tos-strength__no{font-family:'Roboto Condensed',sans-serif;font-size:46px;font-weight:300;color:#0ABAB5;line-height:1;}
.tos-strength__bar{height:1px;flex:1;background:rgba(255,255,255,.2);}
.tos-strength__title{margin:0;font-size:clamp(19px,2.2vw,23px);font-weight:500;color:#fff;letter-spacing:.05em;line-height:1.5;}
.tos-strength__text{margin:0;font-size:15px;line-height:2.05;color:#c3cedd;letter-spacing:.03em;}

/* ============ FAQ ============ */
.tos-faq{border-top:1px solid #E2E9EE;}
.tos-faq__item{border-bottom:1px solid #E2E9EE;}
.tos-faq__q{width:100%;background:transparent;border:none;cursor:pointer;display:flex;align-items:center;gap:18px;padding:clamp(20px,2.6vw,28px) 4px;text-align:left;font-family:'Shippori Mincho B1',serif;}
.tos-faq__mark{font-family:'Roboto Condensed',sans-serif;font-size:18px;color:#0ABAB5;}
.tos-faq__qtext{flex:1;font-size:clamp(15px,1.9vw,18px);color:#1F3A5F;letter-spacing:.03em;line-height:1.6;}
.tos-faq__icon{font-size:22px;color:#0ABAB5;line-height:1;transition:transform .3s ease;}
.tos-faq__item.is-open .tos-faq__icon{transform:rotate(45deg);}
.tos-faq__body{display:none;gap:18px;padding:0 4px clamp(24px,2.8vw,30px);}
.tos-faq__item.is-open .tos-faq__body{display:flex;}
.tos-faq__amark{font-family:'Roboto Condensed',sans-serif;font-size:18px;color:#9aa7b8;}
.tos-faq__atext{margin:0;flex:1;font-size:15px;line-height:2.05;color:#48566c;letter-spacing:.03em;}

/* ============ お知らせ行 ============ */
.tos-news{border-top:1px solid #E2E9EE;}
.tos-news-row{text-decoration:none;display:flex;flex-wrap:wrap;align-items:center;gap:8px 22px;padding:clamp(18px,2.2vw,24px) 4px;border-bottom:1px solid #E2E9EE;transition:background .2s ease;}
.tos-news-row:hover{background:#F4F7F8;opacity:1;}
.tos-news-row__date{font-family:'Roboto Condensed',sans-serif;font-size:14px;letter-spacing:.08em;color:#6b7c93;}
.tos-news-row__cat{font-size:11px;letter-spacing:.08em;color:#0ABAB5;border:1px solid #0ABAB5;padding:2px 10px;}
.tos-news-row__title{flex:1;min-width:200px;font-size:15px;color:#28344a;letter-spacing:.03em;line-height:1.6;}
/* 一覧ページ（2段組み：日付＋カテゴリの上に、下にタイトル） */
.tos-news-row--stacked{display:block;padding:clamp(22px,2.8vw,30px) 4px;}
.tos-news-row--stacked .tos-news-row__meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin-bottom:10px;}
.tos-news-row--stacked .tos-news-row__title{font-size:16px;line-height:1.7;}

/* ============ 下層ページヒーロー ============ */
.tos-page-hero{position:relative;background:#06504C center/cover no-repeat;overflow:hidden;}
.tos-page-hero__overlay{position:absolute;inset:0;background:linear-gradient(120deg,rgba(6,68,64,.88) 0%,rgba(8,92,88,.78) 70%);}
.tos-page-hero__inner{position:relative;z-index:1;max-width:1200px;margin:0 auto;padding:clamp(58px,9vw,104px) clamp(20px,4vw,40px) clamp(44px,6vw,72px);}
.tos-page-hero__en{margin:0 0 14px;font-family:'Roboto Condensed',sans-serif;font-size:13px;letter-spacing:.4em;color:#7fe9e4;text-transform:uppercase;}
.tos-page-hero__ja{margin:0;color:#fff;font-weight:500;font-size:clamp(28px,4.6vw,46px);letter-spacing:.08em;line-height:1.4;}
.tos-page-hero__crumb{margin-top:24px;display:flex;align-items:center;gap:10px;font-family:'Roboto Condensed',sans-serif;font-size:12px;letter-spacing:.1em;color:#aee4e0;}
.tos-page-hero__crumb a{color:#aee4e0;}
.tos-page-hero__crumb span.sep{color:#7fe9e4;}
.tos-page-hero__crumb span.cur{color:#fff;}

/* ============ 会社概要 ============ */
.tos-info{margin:0;border-top:1px solid #E2E9EE;}
.tos-info__row{display:flex;flex-wrap:wrap;gap:6px 28px;padding:clamp(18px,2.4vw,24px) 6px;border-bottom:1px solid #E2E9EE;}
.tos-info__dt{width:150px;flex-shrink:0;font-size:14px;color:#1F3A5F;letter-spacing:.08em;display:flex;flex-direction:column;gap:3px;}
.tos-info__en{font-family:'Roboto Condensed',sans-serif;font-size:10px;letter-spacing:.16em;color:#0ABAB5;text-transform:uppercase;}
.tos-info__dd{margin:0;flex:1;min-width:220px;font-size:15px;line-height:1.95;color:#3a4760;letter-spacing:.03em;}

.tos-profile{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(28px,4vw,56px);align-items:center;}
.tos-profile__photo{aspect-ratio:4/5;background:linear-gradient(135deg,#e7edf1,#dce5eb);position:relative;display:flex;align-items:center;justify-content:center;color:#aeb9c6;}
.tos-profile__photo i{font-size:48px;}
.tos-profile__photo::after{content:"写真準備中";position:absolute;bottom:14px;right:16px;font-family:'Roboto Condensed',sans-serif;font-size:10px;letter-spacing:.14em;color:#9aa7b8;}
.tos-profile__role{margin:0 0 6px;font-family:'Roboto Condensed',sans-serif;font-size:12px;letter-spacing:.2em;color:#0ABAB5;text-transform:uppercase;}
.tos-profile__name{margin:0 0 22px;display:flex;align-items:baseline;gap:14px;}
.tos-profile__name b{font-size:clamp(24px,3vw,30px);color:#1F3A5F;font-weight:500;letter-spacing:.06em;}
.tos-profile__name span{font-size:13px;color:#6b7c93;letter-spacing:.1em;}
.tos-profile__text{margin:0;font-size:15px;line-height:2.15;color:#3a4760;letter-spacing:.03em;}
.tos-profile__hobby{margin-top:26px;display:flex;align-items:center;gap:14px;border-top:1px solid #dde5ea;padding-top:20px;}
.tos-profile__hobby dt{font-size:13px;color:#1F3A5F;letter-spacing:.1em;}
.tos-profile__hobby dd{margin:0;font-size:14px;color:#3a4760;letter-spacing:.04em;}

/* ============ サービス ============ */
.tos-grid-hairline--service{grid-template-columns:repeat(auto-fit,minmax(310px,1fr));}
.tos-service-cell{background:#fff;padding:clamp(30px,3.5vw,44px) clamp(24px,3vw,36px);display:flex;flex-direction:column;gap:18px;}
.tos-service-cell__top{display:flex;align-items:center;justify-content:space-between;}
.tos-service-cell__no{font-family:'Roboto Condensed',sans-serif;font-size:30px;font-weight:300;color:#0ABAB5;line-height:1;}
.tos-service-cell__icon{font-size:30px;color:#1F3A5F;}
.tos-service-cell__title{margin:0;font-size:20px;font-weight:500;color:#1F3A5F;letter-spacing:.05em;}
.tos-service-cell__text{margin:0;font-size:14.5px;line-height:2;color:#46546b;letter-spacing:.02em;flex:1;}
.tos-service-cell__who{margin:0;font-size:13px;line-height:1.8;color:#1F3A5F;letter-spacing:.03em;border-top:1px dashed #d6dee4;padding-top:14px;}
.tos-service-cell__who b{color:#0ABAB5;font-weight:400;}

.tos-notebox{background:#F4F7F8;border-left:3px solid #0ABAB5;padding:clamp(24px,3vw,32px) clamp(24px,3.5vw,40px);}
.tos-notebox__title{margin:0 0 8px;font-size:16px;color:#1F3A5F;letter-spacing:.05em;}
.tos-notebox__text{margin:0;font-size:13.5px;line-height:1.95;color:#56657c;letter-spacing:.02em;}

/* ============ 施工フロー（縦タイムライン） ============ */
.tos-flow{max-width:960px;margin:0 auto;}
.tos-flow__item{position:relative;padding:0 0 clamp(34px,5vw,52px) clamp(56px,8vw,82px);border-left:1px solid #DCE4EA;margin-left:21px;}
.tos-flow__no{position:absolute;left:-21px;top:-4px;width:42px;height:42px;border-radius:50%;background:#fff;border:1px solid #0ABAB5;display:flex;align-items:center;justify-content:center;font-family:'Roboto Condensed',sans-serif;font-size:17px;color:#0ABAB5;letter-spacing:.02em;}
.tos-flow__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:clamp(22px,3.5vw,40px);align-items:center;}
.tos-flow__img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:#eef2f5;border:1px solid #E2E9EE;}
.tos-flow__step{margin:0 0 10px;font-family:'Roboto Condensed',sans-serif;font-size:11px;letter-spacing:.24em;color:#9aa7b8;text-transform:uppercase;}
.tos-flow__title{margin:0 0 14px;font-size:clamp(19px,2.4vw,24px);font-weight:500;color:#1F3A5F;letter-spacing:.05em;line-height:1.4;}
.tos-flow__text{margin:0;font-size:15px;line-height:2.1;color:#46546b;letter-spacing:.03em;}
.tos-flow__cta{margin-left:21px;padding-left:clamp(56px,8vw,82px);}
.tos-flow__cta-box{background:#1F3A5F;padding:clamp(28px,4vw,40px) clamp(26px,4vw,44px);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;}
.tos-flow__cta-text{margin:0;color:#fff;font-size:clamp(16px,2vw,19px);letter-spacing:.05em;line-height:1.7;}
.tos-flow__cta-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center;}
.tos-flow__cta-tel{color:#fff;font-family:'Roboto Condensed',sans-serif;font-size:clamp(22px,3vw,28px);letter-spacing:.04em;}
.tos-flow__cta-btn{background:#0ABAB5;color:#fff;font-size:14px;letter-spacing:.08em;padding:14px 26px;}
.tos-flow__cta-btn:hover{opacity:.85;color:#fff;}

/* ============ カテゴリフィルタ ============ */
.tos-filter{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:clamp(28px,4vw,40px);}
.tos-filter__btn{cursor:pointer;border:1px solid #D8E0E6;background:#fff;color:#56657c;font-family:'Shippori Mincho B1',serif;font-size:13px;letter-spacing:.06em;padding:9px 20px;transition:all .2s ease;}
.tos-filter__btn:hover{border-color:#0ABAB5;color:#0ABAB5;}
.tos-filter__btn.is-active{border-color:#0ABAB5;background:#0ABAB5;color:#fff;}
.work-card.is-hidden{display:none;}

/* ============ お問い合わせ ============ */
.tos-tel-box{max-width:840px;margin:0 auto;background:#1F3A5F;padding:clamp(32px,4.5vw,48px) clamp(28px,4vw,52px);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px;}
.tos-tel-box__label-en{margin:0 0 6px;font-family:'Roboto Condensed',sans-serif;font-size:11px;letter-spacing:.24em;color:#0ABAB5;text-transform:uppercase;}
.tos-tel-box__label{margin:0;font-size:13px;color:#9fb0c6;letter-spacing:.08em;}
.tos-tel-box__num{display:inline-flex;align-items:center;gap:.3em;color:#fff;font-family:'Roboto Condensed',sans-serif;font-size:clamp(32px,5.5vw,46px);letter-spacing:.04em;line-height:1;}
.tos-tel-box__icon{font-size:.62em;color:#0ABAB5;}
.tos-tel-box__num:hover{opacity:.85;}

/* CMSお問い合わせフォームの表示幅（中央寄せ） */
.tos-form-cms{max-width:720px;margin:0 auto;}
.tos-form-cms input,
.tos-form-cms select,
.tos-form-cms textarea{max-width:100%;}

/* --- CMSフォーム（form-pattern-1）の見た目をサイトに合わせる上書き ---
   CMSが実行時に後から注入する <style>（オレンジ #f07240・!important）に
   確実に勝つため、注入先 #cms-contact-1-1-area を前置して詳細度を上げ + !important */
/* 必須バッジ：オレンジ→ティファニーブルー */
#cms-contact-1-1-area .form-pattern-1 dl dt:not(.pattern-exclusion) span.required::before{
  color:#fff !important;
  background:#0ABAB5 !important;
}
/* 送信ボタン：サイトの送信ボタンデザインに統一 */
#cms-contact-1-1-area .form-pattern-1 .submit-btn{
  background:#0ABAB5 !important;
  color:#fff !important;
  border:none !important;
  border-radius:0 !important;
  font-family:'Shippori Mincho B1',serif !important;
  font-size:16px !important;
  letter-spacing:.12em !important;
  padding:18px 64px !important;
  cursor:pointer !important;
  transition:background .25s ease !important;
  white-space:nowrap !important;
  width:auto !important;
  max-width:100% !important;
}
#cms-contact-1-1-area .form-pattern-1 .submit-btn:hover{
  background:#1F3A5F !important;
}
/* スマホ：送信ボタンを1行に収める（左右paddingと字間を縮小） */
@media (max-width:767px){
  #cms-contact-1-1-area .form-pattern-1 .submit-btn{
    padding:16px 28px !important;
    font-size:15px !important;
    letter-spacing:.06em !important;
  }
}
/* 送信ボタン hover の ::before：オレンジ→白 */
#cms-contact-1-1-area .form-pattern-1 .submit-btn:hover::before{
  background-color:#fff !important;
}
.tos-form{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:clamp(22px,3vw,30px);}
.tos-form__field{display:flex;flex-direction:column;gap:10px;}
.tos-form__label{font-size:14px;color:#1F3A5F;letter-spacing:.06em;display:flex;align-items:center;gap:10px;}
.tos-form__req{background:#0ABAB5;color:#fff;font-size:10px;letter-spacing:.08em;padding:2px 7px;}
.tos-form__any{border:1px solid #c3ccd6;color:#8290a2;font-size:10px;letter-spacing:.08em;padding:2px 7px;}
.tos-form input,.tos-form textarea{font-family:'Shippori Mincho B1',serif;border:1px solid #D8E0E6;background:#fff;padding:15px 16px;font-size:15px;color:#28344a;outline:none;width:100%;}
.tos-form input:focus,.tos-form textarea:focus{border-color:#0ABAB5;}
.tos-form textarea{resize:vertical;line-height:1.8;}
.tos-form__note{margin:0;font-size:12.5px;line-height:1.9;color:#9aa7b8;letter-spacing:.02em;}
.tos-form__submit{align-self:center;margin-top:6px;background:#0ABAB5;color:#fff;border:none;cursor:pointer;font-family:'Shippori Mincho B1',serif;font-size:16px;letter-spacing:.12em;padding:18px 64px;transition:background .25s ease;}
.tos-form__submit:hover{background:#1F3A5F;}
.tos-thanks{display:none;text-align:center;padding:clamp(40px,6vw,72px) 20px;border:1px solid #E2E9EE;max-width:720px;margin:0 auto;}
.tos-thanks > i{display:block;font-size:48px;color:#0ABAB5;margin-bottom:20px;}
.tos-thanks h2{margin:0 0 14px;font-size:24px;font-weight:500;color:#1F3A5F;letter-spacing:.06em;}
.tos-thanks p{margin:0;font-size:15px;line-height:2;color:#56657c;letter-spacing:.03em;}
.tos-thanks--page{display:block;}
.tos-thanks__btn{margin-top:32px;}

/* ============ 記事詳細 ============ */
.tos-article{max-width:780px;margin:0 auto;padding-left:clamp(20px,5vw,40px);padding-right:clamp(20px,5vw,40px);}
.tos-article--wide{max-width:880px;}
.tos-crumb{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-family:'Roboto Condensed',sans-serif;font-size:12px;letter-spacing:.08em;color:#9aa7b8;margin-bottom:clamp(28px,4vw,40px);}
.tos-crumb a{color:#9aa7b8;}
.tos-crumb span.sep{color:#0ABAB5;}
.tos-crumb span.cur{color:#56657c;}
.tos-article__meta{display:flex;align-items:center;gap:16px;margin-bottom:18px;}
.tos-article__date{font-family:'Roboto Condensed',sans-serif;font-size:15px;letter-spacing:.08em;color:#6b7c93;}
.tos-article__cat{font-size:11px;letter-spacing:.08em;color:#0ABAB5;border:1px solid #0ABAB5;padding:3px 11px;}
.tos-article__cat--fill{background:#0ABAB5;color:#fff;border-color:#0ABAB5;}
.tos-article__title{margin:0 0 clamp(32px,4vw,44px);font-size:clamp(24px,3.4vw,34px);font-weight:500;color:#1F3A5F;letter-spacing:.04em;line-height:1.55;}
.tos-article__hero{aspect-ratio:16/9;margin-bottom:clamp(36px,5vw,52px);}
.tos-article__body{font-size:16px;line-height:2.2;color:#3a4760;letter-spacing:.03em;}
.tos-article__body p{margin:0 0 28px;}
.tos-article__body p:last-child{margin-bottom:0;}
.tos-ba{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(16px,2.5vw,24px);margin-bottom:clamp(36px,5vw,52px);}
.tos-ba__label{margin:0 0 10px;font-family:'Roboto Condensed',sans-serif;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#9aa7b8;}
.tos-ba__label--after{color:#0ABAB5;}
.tos-summary{border-top:1px solid #E2E9EE;margin-bottom:clamp(44px,6vw,64px);}
.tos-summary__row{display:flex;flex-wrap:wrap;gap:6px 24px;padding:15px 4px;border-bottom:1px solid #E2E9EE;}
.tos-summary__label{width:120px;flex-shrink:0;font-size:14px;color:#1F3A5F;letter-spacing:.06em;}
.tos-summary__value{flex:1;min-width:200px;font-size:14.5px;color:#46546b;letter-spacing:.03em;line-height:1.8;}
.tos-back-btn{display:inline-flex;align-items:center;gap:10px;border:1px solid #1F3A5F;color:#1F3A5F;font-size:14px;letter-spacing:.08em;padding:15px 40px;transition:background .25s ease,color .25s ease;}
.tos-back-btn:hover{background:#1F3A5F;color:#fff;opacity:1;}

/* ブログサイドバー */
.tos-blog-side{width:280px;flex-shrink:0;display:flex;flex-direction:column;gap:clamp(32px,4vw,44px);}
.tos-side-head{margin:0 0 16px;display:flex;align-items:baseline;gap:10px;}
.tos-side-head__en{font-family:'Roboto Condensed',sans-serif;font-size:11px;letter-spacing:.2em;color:#0ABAB5;text-transform:uppercase;}
.tos-side-head__ja{font-size:15px;color:#1F3A5F;letter-spacing:.06em;}
.tos-side-list{display:flex;flex-direction:column;border-top:1px solid #E2E9EE;}
.tos-side-list a{display:flex;align-items:center;justify-content:space-between;padding:13px 2px;border-bottom:1px solid #E2E9EE;color:#46546b;font-size:14px;letter-spacing:.04em;}
.tos-side-list a:hover{color:#0ABAB5;opacity:1;}
.tos-side-list a span.count{font-family:'Roboto Condensed',sans-serif;font-size:12px;color:#9aa7b8;}
.tos-side-recent{display:flex;flex-direction:column;gap:14px;}
.tos-side-recent a{display:flex;flex-direction:column;gap:4px;}
.tos-side-recent a span.date{font-family:'Roboto Condensed',sans-serif;font-size:12px;color:#9aa7b8;letter-spacing:.06em;}
.tos-side-recent a span.ttl{font-size:14px;color:#46546b;letter-spacing:.03em;line-height:1.6;}
.tos-side-recent a:hover span.ttl{color:#0ABAB5;}

/* ============ フッターCTA ============ */
.tos-cta{position:relative;background:#1F3A5F center/cover no-repeat;border-bottom:1px solid rgba(255,255,255,.22);}
.tos-cta__overlay{position:absolute;inset:0;background:rgba(31,58,95,.58);}
.tos-cta__inner{position:relative;z-index:1;padding:clamp(44px,7vw,72px) clamp(20px,4vw,40px);display:flex;flex-direction:column;align-items:center;text-align:center;gap:26px;}
.tos-cta__en{margin:0 0 10px;font-family:'Roboto Condensed',sans-serif;font-size:12px;letter-spacing:.32em;color:#fff;text-transform:uppercase;}
.tos-cta__title{margin:0;font-size:clamp(22px,3vw,30px);font-weight:500;letter-spacing:.04em;line-height:1.4;color:#fff;}
.tos-cta__actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:18px;}
.tos-cta__tel{color:#fff;display:flex;flex-direction:column;gap:2px;}
.tos-cta__tel-label{font-size:11px;letter-spacing:.2em;color:#d6f5f3;}
.tos-cta__tel-num{font-family:'Roboto Condensed',sans-serif;font-size:clamp(26px,3.4vw,34px);letter-spacing:.04em;line-height:1;}
.tos-cta__mail{display:inline-flex;align-items:center;gap:10px;background:#1F3A5F;color:#fff;font-size:15px;letter-spacing:.08em;padding:16px 28px;}
.tos-cta__mail:hover{background:#fff;color:#1F3A5F;opacity:1;}

/* ============ フッター ============ */
.tos-footer{background:#0ABAB5;color:#fff;}
.tos-footer__body{padding:clamp(48px,7vw,72px) clamp(20px,4vw,40px);display:flex;flex-direction:column;align-items:center;text-align:center;gap:clamp(22px,3vw,30px);}
.tos-footer__name{margin:0 0 5px;font-size:22px;font-weight:600;letter-spacing:.08em;color:#fff;}
.tos-footer__en{margin:0;font-family:'Roboto Condensed',sans-serif;font-size:10px;letter-spacing:.34em;color:#d6f5f3;text-transform:uppercase;}
.tos-footer__img{display:block;margin:0 auto;height:55px;width:auto;max-width:100%;}
.tos-footer__sns{display:flex;align-items:center;gap:14px;}
.tos-footer__sns-link{width:46px;height:46px;border-radius:50%;background:#1F3A5F;display:flex;align-items:center;justify-content:center;color:#fff;font-size:17px;}
.tos-footer__sns-link:hover{opacity:.82;}
.tos-footer__info{margin:0;font-size:13.5px;line-height:2.1;color:#eafdfc;letter-spacing:.06em;}
.tos-footer__nav{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:0;}
@media (max-width:767px){.tos-footer__nav{display:none;}}
.tos-footer__nav a{color:#fff;font-size:14px;letter-spacing:.06em;white-space:nowrap;padding:4px 0;}
.tos-footer__nav a:hover{opacity:.8;}
.tos-footer__nav a:not(:last-child)::after{content:"|";color:rgba(255,255,255,.4);margin:0 16px;}
.tos-footer__bottom{border-top:1px solid rgba(255,255,255,.22);}
.tos-footer__copyright{margin:0;text-align:center;padding:20px clamp(20px,4vw,40px);font-family:'Roboto Condensed',sans-serif;font-size:11px;letter-spacing:.16em;color:#d6f5f3;}

/* ============ レスポンシブ微調整 ============ */
@media (max-width:767px){
  .tos-flow__cta-box{flex-direction:column;align-items:flex-start;}
  .tos-footer__nav a:not(:last-child)::after{margin:0 10px;}
  .tos-hero__copy{max-width:100%;}
  /* スマホ時のみ左寄せ（.tos-lead 等の中央寄せを上書き）＋左右に少し余白 */
  .tos-sp-left{text-align:left;padding-left:20px;padding-right:20px;}
}
