@charset "UTF-8";

/* ==========================================
  CSS Reset
========================================== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{font-size:16px;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;}
body{min-height:100vh;line-height:1.7;font-family:var(--font-main);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit;line-height:1.4;}
ul,ol{list-style:none;}
a{color:inherit;text-decoration:none;transition:opacity 0.2s ease,color 0.2s ease;-webkit-tap-highlight-color:transparent;}
a:hover{opacity:0.75;}
img,picture,video,canvas,svg{display:block;max-width:100%;height:auto;}
button,input,textarea,select{font:inherit;color:inherit;background:none;border:none;outline:none;}
button{cursor:pointer;}
table{border-collapse:collapse;border-spacing:0;}
a:focus,button:focus,input:focus,textarea:focus,select:focus{outline:none;}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--color-gold);outline-offset:2px;}

/* ==========================================
  CSS Variables / Root
========================================== */
:root {
  /* Colors */
  --color-navy:        #0e2745;
  --color-navy-dark:   #081b33;
  --color-navy-light:  #1a3a63;
  --color-gold:        #c9a96e;
  --color-gold-light:  #d8bb84;
  --color-gold-dark:   #a8884e;
  --color-text:        #1f2937;
  --color-text-light:  #6b7280;
  --color-text-mute:   #9ca3af;
  --color-bg:          #ffffff;
  --color-bg-soft:     #f7f5f1;
  --color-bg-alt:      #f3f4f6;
  --color-white:       #ffffff;
  --color-border:      #e5e7eb;
  --color-border-soft: #f0eee9;

  /* Typography */
  --font-main: "Noto Sans JP", sans-serif;
  --font-en: "Poppins", sans-serif;
  --font-heading: "Noto Sans JP", sans-serif;

  /* Font sizes */
  --fz-xs:   12px;
  --fz-s:    14px;
  --fz-base: 16px;
  --fz-m:    18px;
  --fz-l:    20px;
  --fz-xl:   24px;
  --fz-2xl:  32px;
  --fz-3xl:  40px;
  --fz-4xl:  56px;

  /* Spacing */
  --space-xs:  8px;
  --space-s:   16px;
  --space-m:   24px;
  --space-l:   40px;
  --space-xl:  60px;
  --space-2xl: 80px;
  --space-3xl: 120px;

  /* Layout */
  --container-max: 1200px;
  --header-height: 72px;

  /* Border radius */
  --radius-s:    4px;
  --radius-m:    8px;
  --radius-l:    16px;
  --radius-pill: 9999px;

  /* Shadows */
  --shadow-s: 0 2px 8px rgba(14,39,69,0.06);
  --shadow-m: 0 8px 24px rgba(14,39,69,0.08);
  --shadow-l: 0 16px 48px rgba(14,39,69,0.12);
}

/* ==========================================
  Body Base
========================================== */
body {
  font-family: var(--font-main);
  font-size: var(--fz-base);
  letter-spacing: 0.04em;
  font-feature-settings: "palt" 1;
}
strong {font-weight:700;color:var(--color-navy);}

/* ==========================================
  Display Utility
========================================== */
.u-show{display:block !important;}
.u-hide{display:none !important;}
.u-sp-only{display:block;}
.u-pc-only{display:none;}
@media (min-width:768px) {
  .u-sp-only{display:none;}
  .u-pc-only{display:block;}
}
.u-tb-only{display:none;}
@media (min-width:768px) and (max-width:1023px) {
  .u-tb-only{display:block;}
}

/* ==========================================
  Common Base Class
========================================== */
.c-container{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:20px;}
@media (min-width:768px) {
  .c-container{padding-inline:32px;}
}
@media (min-width:1024px) {
  .c-container{padding-inline:40px;}
}

/* ---- Title ---- */
.c-title{font-family:var(--font-heading);font-size:var(--fz-2xl);font-weight:900;color:var(--color-navy);line-height:1.4;letter-spacing:0.04em;margin-bottom: 20px;}
.c-title--center{text-align:center;}
.c-title--white{color:var(--color-white);}
.c-title--on-dark{color:var(--color-white);}
@media (min-width:768px) {
  .c-title{font-size:var(--fz-3xl);}
}

/* ---- English label ---- */
.c-label-en{display:inline-block;font-family:var(--font-en);font-size:var(--fz-s);font-weight:600;color:var(--color-gold);letter-spacing:0.2em;text-transform:uppercase;margin-bottom:var(--space-s);}
.c-label-en--white{color:var(--color-gold-light);}

/* ---- Section head ---- */
.c-section-head{margin-bottom:var(--space-xl);}
.c-section-head--center{text-align:center;}
.c-section-head__lead{margin-top:var(--space-s);color:var(--color-text-light);font-size:var(--fz-base);}
.c-section-head--white .c-section-head__lead{color:rgba(255,255,255,0.8);}

/* ---- Buttons ---- */
.c-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);padding:14px 32px;font-size:var(--fz-s);font-weight:500;letter-spacing:0.08em;border-radius:var(--radius-s);transition:all 0.25s ease;white-space:nowrap;}
.c-btn .material-icons-round{font-size:18px;}
.c-btn--primary{background:var(--color-navy);color:var(--color-white);}
.c-btn--primary:hover{background:var(--color-navy-light);opacity:1;transform:translateY(-2px);box-shadow:var(--shadow-m);}
.c-btn--outline{background:transparent;color:var(--color-navy);border:1px solid var(--color-navy);}
.c-btn--outline:hover{background:var(--color-navy);color:var(--color-white);opacity:1;}
.c-btn--white-outline{background:transparent;color:var(--color-white);border:1px solid rgba(255,255,255,0.4);}
.c-btn--white-outline:hover{background:var(--color-white);color:var(--color-navy);opacity:1;}
@media (min-width:768px) {
  .c-btn{padding:16px 40px;font-size:var(--fz-base);}
}

/* ==========================================
  Site Header
========================================== */
.site-header{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(14,39,69,0.95);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);min-height:var(--header-height);}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;height:var(--header-height);padding-inline:20px;max-width:var(--container-max);margin-inline:auto;}
.site-header__logo a{display:flex;flex-direction:column;line-height:1.1;}
.site-header__logo-text{font-family:var(--font-en);font-size:var(--fz-xl);font-weight:700;color:var(--color-white);letter-spacing:0.04em;}
.site-header__logo-plus{color:var(--color-gold);margin-left:2px;}
.site-header__logo-sub{font-size:10px;color:var(--color-gold-light);letter-spacing:0.15em;margin-top:2px;}
.site-header__nav{display:flex;align-items:center;gap:var(--space-m);}
.nav-menu{display:none;}
.site-header__cta{display:none;}
/* SP用メールアイコンボタン: ハンバーガー左に小さい正方形で表示 */
.site-header__mail-sp{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--color-gold);color:var(--color-navy);border-radius:4px;flex-shrink:0;}
.site-header__mail-sp .material-icons-round{font-size:20px;}
.site-header__mail-sp:hover{background:var(--color-gold-light);opacity:1;}
.hamburger{display:flex;flex-direction:column;justify-content:center;gap:5px;width:32px;height:32px;background:transparent;}
.hamburger span{display:block;width:24px;height:2px;background:var(--color-white);transition:all 0.3s ease;}

@media (min-width:1024px) {
  .site-header__inner{padding-inline:40px;}
  .site-header__logo-text{font-size:26px;}
  .site-header__logo-sub{font-size:11px;}
  .nav-menu{display:flex;align-items:center;gap:var(--space-l);}
  .nav-menu li a{font-size:var(--fz-s);font-weight:500;color:var(--color-white);letter-spacing:0.1em;position:relative;padding:8px 0;}
  .nav-menu li a::after{content:"";position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:0;height:2px;background:var(--color-gold);transition:width 0.3s ease;}
  .nav-menu li a:hover{opacity:1;color:var(--color-gold-light);}
  .nav-menu li a:hover::after{width:100%;}
  .nav-menu li a[aria-current="page"]{color:var(--color-gold);}
  .nav-menu li a[aria-current="page"]::after{width:100%;}
  .site-header__cta{display:inline-flex;align-items:center;gap:var(--space-xs);padding:10px 22px;background:var(--color-gold);color:var(--color-navy);font-size:var(--fz-s);font-weight:600;border-radius:var(--radius-s);letter-spacing:0.05em;}
  .site-header__cta:hover{background:var(--color-gold-light);opacity:1;}
  .site-header__cta .material-icons-round{font-size:18px;}
  .site-header__mail-sp{display:none;}
  .hamburger{display:none;}
}

/* ==========================================
  Mobile Menu
========================================== */
.mobile-menu{position:fixed;top:var(--header-height);left:0;right:0;background:var(--color-navy-dark);z-index:999;max-height:0;overflow:hidden;transition:max-height 0.3s ease;}
.mobile-menu.is-open{max-height:400px;}
.mobile-menu__list{padding:var(--space-m) 20px;}
.mobile-menu__list li{border-bottom:1px solid rgba(255,255,255,0.1);}
.mobile-menu__list li a{display:block;padding:var(--space-s) 0;color:var(--color-white);font-size:var(--fz-base);}
@media (min-width:1024px) {
  .mobile-menu{display:none;}
}

/* ==========================================
  Hero
========================================== */

/* ヒーロー全体: 背景画像はimgをabsoluteで敷くのでoverflowはhidden */
.hero{position:relative;padding-top:var(--header-height);color:var(--color-white);overflow:hidden;background:var(--color-navy);}

/* hero__inner: 相対配置の基点。高さはこちらで制御 */
.hero__inner{position:relative;display:flex;flex-direction:column;min-height:280px;}

/* 背景画像: 全面に敷く */
.hero__visual{position:absolute;inset:0;z-index:0;}
.hero__visual img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;}

/* SP: 斜め方向に軽めにかけて背景画像を透けて見せる */
.hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background: rgba(14,39,69,0.55);}

/* テキスト: z-index:2で前面に */
.hero__text{position:relative;z-index:2;padding:var(--space-l) 20px var(--space-m);}

/* SP: タイトル2行に収まるサイズ */
.hero__title{font-family:var(--font-heading);font-size:35px;font-weight:900;line-height:1.35;letter-spacing:0.01em;margin-bottom:var(--space-s);}
.hero__title-accent{color:var(--color-gold);}
/* SP: leadをより目立たせる */
.hero__lead{font-size:var(--fz-base);font-weight:500;line-height:1.8;color:rgba(255,255,255,1);margin-bottom:var(--space-s);}
.hero__features{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-s);max-width:480px;}
.hero__feature{display:flex;flex-direction:column;align-items:center;text-align:center;list-style:none;}
.hero__feature-icon{display:flex;align-items:center;justify-content:center;width:52px;height:52px;background:var(--color-white);border-radius:50%;margin-bottom:var(--space-xs);}
.hero__feature-icon .material-icons-round{font-size:26px;color:var(--color-navy);}
.hero__feature-label{font-size:var(--fz-xs);color:rgba(255,255,255,0.95);letter-spacing:0.05em;font-weight:500;}

@media (min-width:768px) {
  .hero__inner{min-height:340px;}
  .hero__text{padding:var(--space-xl) 32px var(--space-l);}
  .hero__title{font-size:44px;}
  .hero__lead{font-size:var(--fz-m);}
  .hero__feature-icon{width:60px;height:60px;}
  .hero__feature-icon .material-icons-round{font-size:30px;}
  .hero__feature-label{font-size:var(--fz-s);}
}
@media (min-width:1024px) {
  .hero__inner{flex-direction:row;min-height:420px;}
  .hero__text{flex:0 0 auto;width:54%;padding:var(--space-2xl) var(--space-l);display:flex;flex-direction:column;justify-content:center;padding-left:max(32px,calc((100vw - var(--container-max)) / 2 + 32px));}
  /* PC: グラデーションを左→右に */
  .hero::after{background:linear-gradient(to right,rgba(14,39,69,1) 0%,rgba(14,39,69,0.92) 35%,rgba(14,39,69,0.6) 58%,rgba(14,39,69,0.1) 80%,transparent 100%);}
  .hero__title{font-size:46px;line-height:1.4;letter-spacing:0.02em;margin-bottom:var(--space-m);}
  .hero__lead{font-size:var(--fz-base);margin-bottom:var(--space-l);}
  .hero__features{gap:var(--space-m);max-width:480px;}
}
@media (min-width:1280px) {
  .hero__inner{min-height:460px;}
  .hero__title{font-size:50px;}
  .hero__lead{font-size:var(--fz-m);}
}

/* ==========================================
  Results Section
========================================== */
.results{background:var(--color-navy);padding:var(--space-m) 0;border-top:1px solid rgba(255,255,255,0.08);}
.results__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-xs) var(--space-xs);}
.results__item{display:flex;flex-direction:column;align-items:center;text-align:center;color:var(--color-white);padding:5px 0;}
.results__icon{font-size:24px;color:var(--color-gold);margin-bottom:4px;}
.results__num{font-family:var(--font-en);font-size:var(--fz-2xl);font-weight:900;color:var(--color-gold);line-height:1;letter-spacing:0.02em;display:flex;align-items:baseline;gap:4px;}
.results__num-prefix{font-size:var(--fz-xs);font-weight:500;color:rgba(255,255,255,0.85);font-family:var(--font-main);margin-right:2px;}
.results__num-unit{font-size:var(--fz-xs);font-weight:500;color:rgba(255,255,255,0.85);font-family:var(--font-main);}
.results__label{margin-top:4px;padding-top:4px;font-size:10px;color:rgba(255,255,255,0.7);letter-spacing:0.06em;border-top:1px solid rgba(201,169,110,0.4);min-width:100px;}

@media (min-width:768px) {
  .results{padding:20px 0;}
  .results__grid{grid-template-columns:repeat(4,1fr);gap:var(--space-l);}
  .results__icon{font-size:36px;}
  .results__num{font-size:var(--fz-3xl);}
  .results__num-prefix,.results__num-unit{font-size:var(--fz-s);}
  .results__label{font-size:var(--fz-xs);}
}

/* ==========================================
  About Section
========================================== */
.about{padding:var(--space-2xl) 0;background:var(--color-bg);}
/* SP: タイトル→画像→テキスト→ボタン の縦並び */
.about__inner{display:flex;flex-direction:column;gap:var(--space-s);}
.about__heading{order:1;}
.about__image{order:2;overflow:hidden;box-shadow:var(--shadow-m);}
.about__image img{width:100%;height:auto;display:block;}
.about__text{order:3;}
.about__desc{margin-bottom:var(--space-m);color:var(--color-text);line-height:1.9;font-size:var(--fz-s);}
/* SP: ボタン中央揃え */
.about__text .c-btn{margin-top:var(--space-s);display:block;text-align:center;}

@media (min-width:768px) {
  .about{padding:var(--space-3xl) 0;}
  /* PC: 左にテキスト(heading+desc+btn)、右に画像の2カラム */
  .about__inner{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr;gap:0 var(--space-2xl);align-items:start;}
  .about__heading{order:1;grid-column:1;grid-row:1;align-self:end;}
  .about__image{order:2;grid-column:2;grid-row:1 / 3;align-self:center;}
  .about__text{order:3;grid-column:1;grid-row:2;}
  .about__desc{font-size:var(--fz-base);}
  /* PC: ボタンは左揃えに戻す */
  .about__text .c-btn{display:inline-flex;text-align:left;}
}


/* ==========================================
  Service Section
========================================== */
.service{padding:var(--space-2xl) 0;background:var(--color-bg-soft);}
.service__grid{display:grid;grid-template-columns:1fr;gap:var(--space-m);}
.service__card{background:var(--color-white);border-radius:var(--radius-m);overflow:hidden;box-shadow:var(--shadow-s);transition:transform 0.3s ease,box-shadow 0.3s ease;}
.service__card:hover{transform:translateY(-4px);box-shadow:var(--shadow-l);}
.service__card-image{position:relative;aspect-ratio:16/10;overflow:hidden;}
.service__card-image img{width:100%;height:100%;object-fit:cover;}
.service__card-icon{position:absolute;left:50%;bottom:-24px;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:var(--color-navy);color:var(--color-white);border-radius:50%;font-size:24px;box-shadow:var(--shadow-m);}
.service__card-body{position:relative;padding:var(--space-l) var(--space-m) var(--space-m);text-align:center;}
.service__card-title{font-family:var(--font-heading);font-size:var(--fz-l);font-weight:700;color:var(--color-navy);margin-bottom:var(--space-s);}
.service__card-desc{font-size:var(--fz-s);color:var(--color-text-light);line-height:1.8;margin-bottom:var(--space-l);}
.service__card-link{display:flex;align-items:center;justify-content:center;width:36px;height:36px;margin:0 auto;border:1px solid var(--color-border);border-radius:50%;color:var(--color-navy);transition:all 0.2s ease;}
.service__card-link:hover{background:var(--color-navy);color:var(--color-white);border-color:var(--color-navy);opacity:1;}
.service__card-link .material-icons-round{font-size:18px;}
.service__footer{margin-top:var(--space-xl);text-align:center;}

@media (min-width:768px) {
  .service{padding:var(--space-3xl) 0;}
  .service__grid{grid-template-columns:repeat(2,1fr);gap:var(--space-l);}
}
@media (min-width:1024px) {
  .service__grid{grid-template-columns:repeat(4,1fr);}
}

/* ==========================================
  Case Section
========================================== */
.case{padding:var(--space-2xl) 0;background:var(--color-navy);}
.case__grid{display:grid;grid-template-columns:1fr;gap:var(--space-m);}
.case__card{background:var(--color-white);border-radius:var(--radius-m);padding:var(--space-l) var(--space-m);text-align:center;position:relative;}
.case__tag{display:inline-block;padding:4px 12px;background:var(--color-gold);color:var(--color-navy);font-size:var(--fz-xs);font-weight:600;letter-spacing:0.1em;border-radius:var(--radius-s);margin-bottom:var(--space-m);}
.case__caption{font-size:var(--fz-s);color:var(--color-text-light);margin-bottom:4px;}
.case__main{font-family:var(--font-heading);font-size:var(--fz-3xl);font-weight:900;color:var(--color-navy);line-height:1.3;letter-spacing:0.02em;margin-bottom:var(--space-s);}
.case__main--lg{font-size:var(--fz-xl);}
.case__main-unit{font-size:var(--fz-base);font-weight:500;color:var(--color-text);font-family:var(--font-main);margin-left:4px;}
.case__sub{font-size:var(--fz-s);color:var(--color-text);padding:var(--space-xs) 0;border-top:1px dashed var(--color-border);margin-top:var(--space-s);}
.case__data{margin:var(--space-s) 0;padding:var(--space-s) 0;border-top:1px dashed var(--color-border);border-bottom:1px dashed var(--color-border);}
.case__data-row{display:flex;justify-content:center;gap:var(--space-s);align-items:baseline;font-size:var(--fz-s);}
.case__data-row dt{font-family:var(--font-en);font-weight:500;color:var(--color-text-light);min-width:60px;text-align:right;}
.case__data-row dd{color:var(--color-text);font-weight:500;}
.case__meta{margin-top:var(--space-s);font-size:var(--fz-xs);color:var(--color-text-mute);letter-spacing:0.05em;}
.case__footer{margin-top:var(--space-xl);text-align:center;}

@media (min-width:768px) {
  .case{padding:var(--space-3xl) 0;}
  .case__grid{grid-template-columns:repeat(2,1fr);gap:var(--space-l);}
  .case__main{font-size:var(--fz-3xl);}
  .case__main--lg{font-size:var(--fz-xl);}
}
@media (min-width:1024px) {
  .case__grid{grid-template-columns:repeat(4,1fr);}
}

/* ==========================================
  Contact Banner
========================================== */
.contact-banner{padding:var(--space-2xl) 0;background:var(--color-bg-soft);}
.contact-banner__inner{display:flex;flex-direction:column;gap:var(--space-l);align-items:flex-start;}
.contact-banner__title{font-family:var(--font-heading);font-size:var(--fz-xl);font-weight:900;color:var(--color-navy);line-height:1.5;letter-spacing:0.04em;margin-bottom:var(--space-s);}
.contact-banner__desc{font-size:var(--fz-s);color:var(--color-text-light);line-height:1.8;}
.contact-banner__btn{display:flex;align-items:center;justify-content:center;gap:var(--space-s);width:100%;padding:20px var(--space-m);background:var(--color-gold);color:var(--color-white);font-size:var(--fz-base);font-weight:600;letter-spacing:0.08em;border-radius:var(--radius-s);transition:all 0.25s ease;}
.contact-banner__btn:hover{background:var(--color-gold-dark);opacity:1;transform:translateY(-2px);box-shadow:var(--shadow-l);}
.contact-banner__btn .material-icons-round{font-size:22px;}
.contact-banner__btn-arrow{margin-left:auto;}

@media (min-width:768px) {
  .contact-banner__inner{flex-direction:row;justify-content:space-between;align-items:center;}
  .contact-banner__title{font-size:var(--fz-2xl);}
  .contact-banner__desc{font-size:var(--fz-base);}
  .contact-banner__btn{width:auto;min-width:380px;padding:24px var(--space-l);}
}

/* ==========================================
  Page Hero (sub pages)
========================================== */
.page-hero{padding-top:calc(var(--header-height) + var(--space-m));padding-bottom:var(--space-l);background:var(--color-navy);color:var(--color-white);text-align:center;}
.page-hero__inner{padding:var(--space-s) 20px;max-width:var(--container-max);margin-inline:auto;}
.page-hero__title{font-family:var(--font-heading);font-size:var(--fz-3xl);font-weight:900;letter-spacing:0.04em;margin-bottom:var(--space-s);}
.page-hero__lead{font-size:var(--fz-base);color:rgba(255,255,255,0.85);}

@media (min-width:768px) {
  .page-hero{padding-top:calc(var(--header-height) + var(--space-m));padding-bottom:var(--space-l);}
  .page-hero__inner{padding:var(--space-m) 20px;}
  .page-hero__title{font-size:var(--fz-4xl);}
  .page-hero__lead{font-size:var(--fz-m);}
}

/* ==========================================
  Breadcrumb
========================================== */
.breadcrumb{padding:var(--space-s) 0;background:var(--color-bg-alt);border-bottom:1px solid var(--color-border);}
.breadcrumb__nav{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--fz-xs);color:var(--color-text-light);flex-wrap:wrap;}
.breadcrumb__nav a{color:var(--color-text-light);}
.breadcrumb__nav a:hover{color:var(--color-navy);}
.breadcrumb__sep{font-size:14px;color:var(--color-text-mute);}

/* ==========================================
  Service Intro (business page)
========================================== */
.service-intro{padding:var(--space-2xl) 0 var(--space-l);background:var(--color-bg);text-align:center;}
.service-intro .c-title{margin-bottom:var(--space-m);}
.service-intro__desc{max-width:780px;margin-inline:auto;font-size:var(--fz-s);line-height:2;color:var(--color-text);}

@media (min-width:768px) {
  .service-intro{padding:var(--space-3xl) 0 var(--space-xl);}
  .service-intro__desc{font-size:var(--fz-base);}
}

/* ==========================================
  Service Detail (business page)
========================================== */
.service-detail{padding:var(--space-l) 0 var(--space-2xl);background:var(--color-bg);}
.service-detail__item{display:flex;flex-direction:column;gap:var(--space-m);margin-bottom:var(--space-2xl);}
.service-detail__item:last-child{margin-bottom:0;}
.service-detail__image{position:relative;border-radius:var(--radius-l);overflow:hidden;box-shadow:var(--shadow-m);}
.service-detail__image img{width:100%;aspect-ratio:4/3;object-fit:cover;}
.service-detail__num{position:absolute;top:var(--space-s);left:var(--space-s);display:inline-flex;align-items:center;justify-content:center;min-width:48px;height:48px;padding:0 12px;background:var(--color-gold);color:var(--color-white);font-family:var(--font-en);font-size:var(--fz-l);font-weight:700;border-radius:var(--radius-s);letter-spacing:0.04em;}
.service-detail__body .c-label-en{margin-bottom:var(--space-xs);}
.service-detail__title{font-family:var(--font-heading);font-size:var(--fz-2xl);font-weight:900;color:var(--color-navy);line-height:1.4;letter-spacing:0.04em;margin-bottom:var(--space-s);}
.service-detail__point{padding-bottom:var(--space-s);margin-bottom:var(--space-m);font-size:var(--fz-base);font-weight:600;color:var(--color-gold-dark);border-bottom:2px solid var(--color-gold);display:inline-block;}
.service-detail__body p{margin-bottom:var(--space-s);font-size:var(--fz-s);line-height:1.9;color:var(--color-text);}
.service-detail__body p:last-child{margin-bottom:0;}

@media (min-width:768px) {
  .service-detail{padding:var(--space-xl) 0 var(--space-3xl);}
  .service-detail__item{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-l);align-items:center;margin-bottom:var(--space-3xl);}
  .service-detail__item.is-reverse .service-detail__image{order:2;}
  .service-detail__item.is-reverse .service-detail__body{order:1;}
  .service-detail__title{font-size:var(--fz-2xl);}
  .service-detail__body p{font-size:var(--fz-base);}
  .service-detail__num{top:var(--space-m);left:var(--space-m);min-width:56px;height:56px;font-size:var(--fz-xl);}
}

/* ==========================================
  Fee Section (business page)
========================================== */
.fee{padding:var(--space-2xl) 0;background:var(--color-bg-soft);}
.fee__grid{display:grid;grid-template-columns:1fr;gap:var(--space-m);}
.fee__item{padding:var(--space-l) var(--space-m);background:var(--color-white);border:2px solid var(--color-navy);box-shadow:none;}
.fee__icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;background:var(--color-navy);color:var(--color-gold);border-radius:50%;font-size:28px;margin-bottom:var(--space-s);}
.fee__title{font-family:var(--font-heading);font-size:var(--fz-l);font-weight:700;color:var(--color-navy);margin-bottom:var(--space-s);}
.fee__desc{font-size:var(--fz-s);line-height:1.9;color:var(--color-text);}

@media (min-width:768px) {
  .fee{padding:var(--space-3xl) 0;}
  .fee__grid{grid-template-columns:1fr 1fr;gap:var(--space-l);}
  .fee__item{padding:var(--space-xl) var(--space-l);}
  .fee__title{font-size:var(--fz-xl);}
  .fee__desc{font-size:var(--fz-base);}
}

/* ==========================================
  Target Section (business page)
========================================== */
.target{padding:var(--space-2xl) 0;background:var(--color-bg);}
.target__list{display:grid;grid-template-columns:1fr;gap:var(--space-s);max-width:880px;margin-inline:auto;}
.target__item{display:flex;align-items:flex-start;gap:var(--space-s);padding:var(--space-s) var(--space-m);background:var(--color-white);border:2px solid var(--color-border);font-size:var(--fz-s);line-height:1.8;color:var(--color-text);transition:border-color 0.2s ease;}
.target__item:hover{border-color:var(--color-gold);}
.target__check{flex-shrink:0;font-size:22px;color:var(--color-gold);margin-top:2px;}

@media (min-width:768px) {
  .target{padding:var(--space-3xl) 0;}
  .target__list{grid-template-columns:1fr 1fr;gap:var(--space-m);}
  .target__item{font-size:var(--fz-base);padding:var(--space-m);}
}

/* ==========================================
  Site Footer
========================================== */
.site-footer{background:var(--color-navy-dark);color:var(--color-white);padding:var(--space-2xl) 0 var(--space-m);}
.site-footer__inner{display:flex;flex-direction:column;gap:var(--space-l);padding-bottom:var(--space-l);border-bottom:1px solid rgba(255,255,255,0.1);}
.site-footer__logo{font-family:var(--font-en);font-size:var(--fz-2xl);font-weight:700;letter-spacing:0.04em;}
.site-footer__logo-plus{color:var(--color-gold);margin-left:2px;}
.site-footer__tagline{margin-top:var(--space-xs);font-size:var(--fz-xs);color:rgba(255,255,255,0.7);letter-spacing:0.1em;}
.site-footer__menu{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-s);}
.site-footer__menu li a{font-size:var(--fz-s);color:rgba(255,255,255,0.85);}
.site-footer__contact-item{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--fz-base);font-weight:500;margin-bottom:var(--space-xs);}
.site-footer__contact-item .material-icons-round{font-size:20px;color:var(--color-gold);}
.site-footer__contact-note{font-size:var(--fz-xs);color:rgba(255,255,255,0.6);margin-bottom:var(--space-s);padding-left:28px;}
.site-footer__bottom{padding-top:var(--space-m);text-align:center;}
.site-footer__bottom p{font-size:var(--fz-xs);color:rgba(255,255,255,0.5);letter-spacing:0.05em;}

@media (min-width:768px) {
  .site-footer__inner{display:grid;grid-template-columns:1.2fr 1.2fr 1fr;gap:var(--space-l);align-items:start;}
  .site-footer__menu{grid-template-columns:1fr 1fr;gap:var(--space-s) var(--space-l);}
}

/* ==========================================
  Philosophy (philosophy page)
========================================== */
.philosophy{padding:var(--space-2xl) 0;background:var(--color-bg);}
.philosophy__statement{font-family:var(--font-heading);font-size:var(--fz-l);font-weight:800;color:var(--color-navy);line-height:2;letter-spacing:0.04em;text-align:center;padding:var(--space-l) var(--space-m);background:var(--color-bg-soft);border:2px solid var(--color-navy);margin-bottom:var(--space-xl);}
.philosophy__desc{max-width:780px;margin-inline:auto;}
.philosophy__desc p{font-size:var(--fz-s);line-height:2;color:var(--color-text);margin-bottom:var(--space-m);}
.philosophy__desc p:last-child{margin-bottom:0;}

@media (min-width:768px) {
  .philosophy{padding:var(--space-3xl) 0;}
  .philosophy__statement{font-size:var(--fz-xl);padding:var(--space-xl) var(--space-l);}
  .philosophy__desc p{font-size:var(--fz-base);}
}

/* ==========================================
  Profile (philosophy page)
========================================== */
.profile{padding:var(--space-2xl) 0;background:var(--color-bg-soft);}
.profile__inner{display:flex;flex-direction:column;gap:var(--space-l);}
.profile__image{width:100%;max-width:340px;margin-inline:auto;border-radius:var(--radius-l);overflow:hidden;box-shadow:var(--shadow-m);}
.profile__image img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;}
.profile__lead{font-family:var(--font-heading);font-size:var(--fz-l);font-weight:800;color:var(--color-navy);line-height:1.6;letter-spacing:0.02em;margin-bottom:var(--space-m);padding-bottom:var(--space-s);border-bottom:2px solid var(--color-gold);display:inline-block;}
.profile__body p{font-size:var(--fz-s);line-height:2;color:var(--color-text);margin-bottom:var(--space-m);}
.profile__body p:last-of-type{margin-bottom:var(--space-l);}
.profile__sig{display:flex;align-items:baseline;gap:var(--space-s);padding-top:var(--space-m);border-top:1px solid var(--color-border);}
.profile__sig-role{font-size:var(--fz-s);color:var(--color-text-light);letter-spacing:0.1em;}
.profile__sig-name{font-family:var(--font-heading);font-size:var(--fz-l);font-weight:700;color:var(--color-navy);letter-spacing:0.05em;}

@media (min-width:768px) {
  .profile{padding:var(--space-3xl) 0;}
  .profile__inner{display:grid;grid-template-columns:340px 1fr;gap:var(--space-2xl);align-items:start;}
  .profile__image{margin-inline:0;}
  .profile__lead{font-size:var(--fz-xl);}
  .profile__body p{font-size:var(--fz-base);}
}

/* ==========================================
  Career Timeline (philosophy page)
========================================== */
.career{padding:var(--space-2xl) 0;background:var(--color-bg);}
.career__list{position:relative;max-width:880px;margin-inline:auto;padding-left:var(--space-l);}
.career__list::before{content:"";position:absolute;top:8px;bottom:8px;left:8px;width:2px;background:linear-gradient(180deg,var(--color-gold) 0%,var(--color-gold-dark) 100%);}
.career__item{position:relative;padding-bottom:var(--space-l);}
.career__item:last-child{padding-bottom:0;}
.career__item::before{content:"";position:absolute;top:6px;left:-36px;width:18px;height:18px;background:var(--color-white);border:3px solid var(--color-gold);border-radius:50%;box-shadow:0 0 0 4px rgba(201,169,110,0.15);}
.career__item--current::before{background:var(--color-gold);}
.career__age{display:inline-block;padding:4px 14px;background:var(--color-navy);color:var(--color-gold-light);font-family:var(--font-en);font-size:var(--fz-s);font-weight:600;letter-spacing:0.1em;border-radius:var(--radius-pill);margin-bottom:var(--space-s);}
.career__title{font-family:var(--font-heading);font-size:var(--fz-base);font-weight:700;color:var(--color-navy);line-height:1.5;margin-bottom:var(--space-xs);}
.career__body p{font-size:var(--fz-s);line-height:1.9;color:var(--color-text);}

@media (min-width:768px) {
  .career{padding:var(--space-3xl) 0;}
  .career__list{padding-left:var(--space-xl);}
  .career__list::before{left:14px;}
  .career__item{padding-bottom:var(--space-xl);}
  .career__item::before{left:-50px;width:24px;height:24px;top:4px;}
  .career__title{font-size:var(--fz-l);}
  .career__body p{font-size:var(--fz-base);}
}

/* ==========================================
  Promise (philosophy page)
========================================== */
.promise{padding:var(--space-2xl) 0;background:var(--color-bg-soft);}
.promise__list{display:grid;grid-template-columns:1fr;gap:var(--space-m);}
.promise__item{position:relative;padding:var(--space-l) var(--space-m) var(--space-m);background:var(--color-white);border-radius:var(--radius-m);box-shadow:var(--shadow-s);}
.promise__num{position:absolute;top:-18px;left:var(--space-m);display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;background:var(--color-gold);color:var(--color-white);font-family:var(--font-en);font-size:var(--fz-l);font-weight:700;border-radius:50%;letter-spacing:0.02em;box-shadow:var(--shadow-m);}
.promise__title{font-family:var(--font-heading);font-size:var(--fz-base);font-weight:700;color:var(--color-navy);line-height:1.5;margin-top:var(--space-s);margin-bottom:var(--space-s);padding-bottom:var(--space-s);border-bottom:1px dashed var(--color-border);}
.promise__item p{font-size:var(--fz-s);line-height:1.9;color:var(--color-text);}

@media (min-width:768px) {
  .promise{padding:var(--space-3xl) 0;}
  .promise__list{grid-template-columns:1fr 1fr;gap:var(--space-l);}
  .promise__item{padding:var(--space-xl) var(--space-l) var(--space-l);}
  .promise__title{font-size:var(--fz-l);}
  .promise__item p{font-size:var(--fz-base);}
}

/* ==========================================
  Company (company page)
========================================== */
.company{padding:var(--space-2xl) 0 var(--space-l);background:var(--color-bg);}
.company__list{max-width:880px;margin-inline:auto;border-top:1px solid var(--color-border);}
.company__row{display:flex;flex-direction:column;gap:4px;padding:var(--space-m) 0;border-bottom:1px solid var(--color-border);}
.company__label{font-family:var(--font-heading);font-size:var(--fz-s);font-weight:700;color:var(--color-navy);letter-spacing:0.06em;}
.company__value{font-size:var(--fz-s);line-height:1.9;color:var(--color-text);}
.company__badge{display:inline-block;padding:4px 14px;background:var(--color-gold);color:var(--color-white);font-size:var(--fz-xs);font-weight:600;letter-spacing:0.1em;border-radius:var(--radius-pill);}
.company__link{display:inline-flex;align-items:center;gap:var(--space-xs);color:var(--color-navy);font-weight:600;border-bottom:1px solid var(--color-navy);padding-bottom:2px;}
.company__link:hover{color:var(--color-gold-dark);border-color:var(--color-gold-dark);opacity:1;}
.company__link .material-icons-round{font-size:18px;}

@media (min-width:768px) {
  .company{padding:var(--space-3xl) 0 var(--space-xl);}
  .company__row{flex-direction:row;gap:var(--space-l);padding:var(--space-l) var(--space-s);}
  .company__label{flex:0 0 200px;font-size:var(--fz-base);}
  .company__value{flex:1;font-size:var(--fz-base);}
}

/* ==========================================
  Contact Intro (contact page)
========================================== */
.contact-intro{padding:var(--space-2xl) 0 var(--space-l);background:var(--color-bg);}
.contact-intro__desc{max-width:680px;margin:0 auto var(--space-xl);text-align:center;font-size:var(--fz-s);line-height:2;color:var(--color-text);}
.contact-channel{display:grid;grid-template-columns:1fr;gap:var(--space-m);max-width:880px;margin-inline:auto;}
.contact-channel__item{background:var(--color-white);border-radius:var(--radius-m);padding:var(--space-l) var(--space-m);text-align:center;box-shadow:var(--shadow-s);border:1px solid var(--color-border-soft);}
.contact-channel__icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;background:var(--color-navy);color:var(--color-gold);border-radius:50%;font-size:32px;margin-bottom:var(--space-s);}
.contact-channel__icon--line{background:#06c755;color:var(--color-white);}
.contact-channel__title{font-family:var(--font-heading);font-size:var(--fz-l);font-weight:700;color:var(--color-navy);margin-bottom:var(--space-s);}
.contact-channel__desc{font-size:var(--fz-s);line-height:1.8;color:var(--color-text-light);margin-bottom:var(--space-m);}
.contact-channel__btn{display:inline-flex;align-items:center;gap:var(--space-xs);padding:12px 28px;background:var(--color-navy);color:var(--color-white);font-size:var(--fz-s);font-weight:500;letter-spacing:0.05em;border-radius:var(--radius-s);transition:all 0.25s ease;}
.contact-channel__btn:hover{background:var(--color-navy-light);opacity:1;transform:translateY(-2px);box-shadow:var(--shadow-m);}
.contact-channel__btn--line{background:#06c755;}
.contact-channel__btn--line:hover{background:#05a847;}
.contact-channel__btn .material-icons-round{font-size:18px;}

@media (min-width:768px) {
  .contact-intro{padding:var(--space-3xl) 0 var(--space-xl);}
  .contact-intro__desc{font-size:var(--fz-base);}
  .contact-channel{grid-template-columns:1fr 1fr;gap:var(--space-l);}
  .contact-channel__item{padding:var(--space-xl) var(--space-l);}
}

/* ==========================================
  Contact Form (contact page)
========================================== */
.contact-form{padding:var(--space-l) 0 var(--space-2xl);background:var(--color-bg-soft);}
.contact-form__note{display:flex;align-items:center;gap:var(--space-xs);max-width:780px;margin:0 auto var(--space-l);padding:12px 16px;background:rgba(201,169,110,0.1);border:1px solid var(--color-gold-light);border-radius:var(--radius-s);font-size:var(--fz-xs);color:var(--color-gold-dark);}
.contact-form__note .material-icons-round{font-size:18px;flex-shrink:0;}

.form{max-width:780px;margin-inline:auto;}
.form__group{padding:var(--space-l) var(--space-m);background:var(--color-white);border-radius:var(--radius-m);margin-bottom:var(--space-m);box-shadow:var(--shadow-s);}
.form__group:last-of-type{margin-bottom:var(--space-l);}
.form__group-label{font-family:var(--font-heading);font-size:var(--fz-base);font-weight:700;color:var(--color-navy);letter-spacing:0.06em;padding-bottom:var(--space-xs);margin-bottom:var(--space-m);border-bottom:2px solid var(--color-gold);display:inline-block;}
.form__group-note{font-size:var(--fz-xs);color:var(--color-text-light);margin-top:-12px;margin-bottom:var(--space-m);}

.form__row{margin-bottom:var(--space-m);}
.form__row:last-child{margin-bottom:0;}
.form__label{display:block;font-size:var(--fz-s);font-weight:600;color:var(--color-text);margin-bottom:var(--space-xs);letter-spacing:0.04em;}
.form__required{display:inline-block;padding:1px 8px;background:var(--color-gold);color:var(--color-white);font-size:10px;font-weight:600;letter-spacing:0.08em;border-radius:var(--radius-s);margin-left:6px;vertical-align:middle;}
.form__input{display:block;width:100%;padding:12px 14px;font-size:var(--fz-s);color:var(--color-text);background:var(--color-bg-soft);border:1px solid var(--color-border);border-radius:var(--radius-s);transition:border-color 0.2s ease,background 0.2s ease;}
.form__input:focus{outline:none;border-color:var(--color-gold);background:var(--color-white);}
.form__input--sub{margin-top:var(--space-xs);}
.form__input--textarea{resize:vertical;min-height:140px;font-family:var(--font-main);line-height:1.7;}
.form__hint{margin-top:6px;font-size:var(--fz-xs);color:var(--color-text-light);}

.form__radio-group{display:flex;flex-wrap:wrap;gap:var(--space-s);}
.form__radio{display:inline-flex;align-items:center;gap:6px;padding:10px 18px;background:var(--color-bg-soft);border:1px solid var(--color-border);border-radius:var(--radius-s);font-size:var(--fz-s);cursor:pointer;transition:all 0.2s ease;}
.form__radio:hover{border-color:var(--color-gold);}
.form__radio input{accent-color:var(--color-gold);}
.form__radio input:checked + span{font-weight:600;color:var(--color-navy);}

.form__check-group{display:grid;grid-template-columns:1fr;gap:var(--space-xs);}
.form__check label{display:flex;align-items:center;gap:var(--space-xs);padding:10px 14px;background:var(--color-bg-soft);border:1px solid var(--color-border);border-radius:var(--radius-s);font-size:var(--fz-s);cursor:pointer;transition:all 0.2s ease;}
.form__check label:hover{border-color:var(--color-gold);}
.form__check input{accent-color:var(--color-gold);flex-shrink:0;}

.form__submit{text-align:center;padding-top:var(--space-l);}
.form__btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-s);min-width:280px;padding:18px var(--space-l);background:var(--color-gold);color:var(--color-white);font-size:var(--fz-base);font-weight:600;letter-spacing:0.08em;border-radius:var(--radius-s);transition:all 0.25s ease;}
.form__btn:hover{background:var(--color-gold-dark);transform:translateY(-2px);box-shadow:var(--shadow-l);}
.form__btn .material-icons-round{font-size:20px;}
.form__submit-note{margin-top:var(--space-s);font-size:var(--fz-xs);color:var(--color-text-light);}

@media (min-width:768px) {
  .contact-form{padding:var(--space-xl) 0 var(--space-3xl);}
  .form__group{padding:var(--space-xl) var(--space-l);}
  .form__group-label{font-size:var(--fz-l);}
  .form__check-group{grid-template-columns:1fr 1fr;gap:var(--space-s);}
  .form__btn{min-width:360px;padding:22px var(--space-xl);}
}
