/* ==============================
   KHK OB会 共通スタイル v5
   テーマ：ガラスモーフィズム × 鮮やかグラデーション × ツヤ感
   ============================== */
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;600;700&family=Noto+Sans+JP:wght@300;400;500;700&family=Shippori+Mincho+B1:wght@400;600;800&display=swap');

/* ===== 変数 ===== */
:root {
  --c-navy:      #1e40af;
  --c-navy-mid:  #2563eb;
  --c-sky:       #0ea5e9;
  --c-sky-mid:   #0284c7;
  --c-sky-light: #38bdf8;
  --c-sky-pale:  #e0f2fe;
  --c-gold:      #d97706;
  --c-gold-lt:   #f59e0b;
  --c-gold-pale: #fffbeb;
  --c-deep:      #172554;
  --c-white:     #ffffff;
  --c-gl:        #f0f4f8;
  --c-gm:        #94a3b8;
  --c-text:      #1e293b;
  --c-sub:       #475569;
  --c-border:    #bfdbfe;
  --c-err:       #dc2626;
  --r:           12px;
  --r-sm:        8px;
  --sh-sm:       0 2px 16px rgba(30,64,175,.08);
  --sh-md:       0 8px 32px rgba(30,64,175,.15);
  --sh-lg:       0 16px 48px rgba(30,64,175,.22);
  --glass:       rgba(255,255,255,.76);
  --glass-bd:    rgba(255,255,255,.68);
  --t:           .24s ease;
  /* --- 後方互換エイリアス（各ページの inline style から参照） --- */
  --radius:      var(--r);
  --shadow-sm:   var(--sh-sm);
  --shadow-md:   var(--sh-md);
  --shadow-lg:   var(--sh-lg);
  --transition:  var(--t);
}

/* ===== RESET ===== */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;font-size:16px;}
img{max-width:100%;display:block;}
a{color:inherit;}

/* ===== BODY — グラデーション固定背景 ===== */
body{
  font-family:'Noto Sans JP',sans-serif;
  color:var(--c-text);overflow-x:hidden;line-height:1.7;
  background:
    radial-gradient(ellipse at 8% 15%,  rgba(56,189,248,.18)  0%,transparent 50%),
    radial-gradient(ellipse at 93% 85%, rgba(99,102,241,.14)  0%,transparent 46%),
    radial-gradient(ellipse at 52% 48%, rgba(14,165,233,.07)  0%,transparent 55%),
    linear-gradient(155deg,#dbeafe 0%,#e0f2fe 28%,#f0f9ff 58%,#ede9fe 100%);
  background-attachment:fixed;
}

/* ===== HEADER ===== */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  background:linear-gradient(180deg,rgba(23,37,84,.97) 0%,rgba(30,64,175,.95) 100%);
  backdrop-filter:blur(24px) saturate(180%);
  -webkit-backdrop-filter:blur(24px) saturate(180%);
  border-bottom:1px solid rgba(56,189,248,.5);
  box-shadow:0 1px 0 rgba(56,189,248,.22),inset 0 1px 0 rgba(255,255,255,.07),0 4px 24px rgba(23,37,84,.28);
  transition:box-shadow var(--t);
}
.site-header.scrolled{box-shadow:0 4px 32px rgba(23,37,84,.5),0 1px 0 rgba(56,189,248,.22);}
.header-inner{max-width:1200px;margin:0 auto;padding:0 1.5rem;display:flex;align-items:center;justify-content:space-between;height:68px;gap:1rem;}
.site-logo{display:flex;flex-direction:column;gap:2px;text-decoration:none;flex-shrink:0;}
.logo-en{font-size:9px;letter-spacing:.15em;color:var(--c-sky-light);text-transform:uppercase;}
.logo-ja{font-family:'Shippori Mincho B1',serif;font-size:15px;font-weight:600;color:var(--c-white);white-space:nowrap;letter-spacing:.06em;}
.header-tel{font-size:12px;color:rgba(255,255,255,.58);white-space:nowrap;padding:0 1rem;border-left:1px solid rgba(255,255,255,.12);border-right:1px solid rgba(255,255,255,.12);}

/* NAV */
.main-nav{display:flex;align-items:center;}
.main-nav a{font-size:12.5px;color:rgba(255,255,255,.8);text-decoration:none;padding:7px 11px;white-space:nowrap;position:relative;transition:color var(--t);}
.main-nav a::after{content:'';position:absolute;bottom:0;left:11px;right:11px;height:2px;background:linear-gradient(to right,var(--c-sky-light),var(--c-sky));transform:scaleX(0);transition:transform var(--t);transform-origin:left;border-radius:1px;}
.main-nav a:hover,.main-nav a.active{color:var(--c-white);}
.main-nav a:hover::after,.main-nav a.active::after{transform:scaleX(1);}
.nav-cta{
  background:linear-gradient(180deg,rgba(255,255,255,.25) 0%,transparent 60%),var(--c-sky-light) !important;
  color:var(--c-deep) !important;font-weight:700 !important;border-radius:5px;margin-left:6px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 3px 12px rgba(56,189,248,.5) !important;
}
.nav-cta::after{display:none !important;}
.nav-cta:hover{background:linear-gradient(180deg,rgba(255,255,255,.4) 0%,rgba(255,255,255,.15) 100%) !important;box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 6px 20px rgba(56,189,248,.65) !important;}

/* HAMBURGER */
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:8px;background:none;border:none;}
.hamburger span{display:block;width:22px;height:1.5px;background:var(--c-white);transition:all .3s;}

/* MOBILE MENU */
.mobile-menu{
  display:none;position:fixed;top:68px;left:0;right:0;z-index:999;
  background:linear-gradient(180deg,rgba(23,37,84,.98) 0%,rgba(30,64,175,.97) 100%);
  border-bottom:2px solid var(--c-sky-light);
  backdrop-filter:blur(20px);
}
.mobile-menu.open{display:block;}
.mobile-menu a{display:block;font-size:14px;color:rgba(255,255,255,.85);text-decoration:none;padding:14px 1.5rem;border-bottom:1px solid rgba(255,255,255,.08);transition:color var(--t),background var(--t),padding-left var(--t);}
.mobile-menu a:hover{color:var(--c-white);background:rgba(56,189,248,.2);padding-left:2rem;}

/* ===== HERO（トップページ用） ===== */
.hero{position:relative;height:100vh;min-height:600px;overflow:hidden;display:flex;align-items:center;justify-content:center;}
.hero-slide{position:absolute;inset:0;background-size:cover;background-position:center top;opacity:0;transition:opacity 1.5s ease;}
.hero-slide.active{opacity:1;}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(23,37,84,.22) 0%,transparent 45%,rgba(23,37,84,.75) 100%);}

.hero-content{position:relative;z-index:2;text-align:center;padding:0 2rem;animation:hfade 1.2s ease .3s both;}
@keyframes hfade{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}

.hero-badge{
  display:inline-block;font-size:11px;letter-spacing:.22em;color:var(--c-sky-light);
  border:1px solid rgba(56,189,248,.55);padding:5px 20px;margin-bottom:1.6rem;
  text-transform:uppercase;border-radius:2px;
  background:rgba(255,255,255,.07);backdrop-filter:blur(10px);
  box-shadow:0 2px 12px rgba(56,189,248,.2),inset 0 1px 0 rgba(255,255,255,.15);
}
.hero-title{font-family:'Shippori Mincho B1',serif;font-size:clamp(30px,5.5vw,60px);font-weight:800;color:var(--c-white);letter-spacing:.1em;line-height:1.3;margin-bottom:1rem;text-shadow:0 2px 24px rgba(0,0,0,.35);}
.hero-title span{color:var(--c-sky-light);text-shadow:0 0 40px rgba(56,189,248,.7),0 2px 20px rgba(0,0,0,.2);}
.hero-sub{font-size:clamp(13px,1.5vw,15px);color:rgba(255,255,255,.68);letter-spacing:.14em;margin-bottom:2.5rem;}
.hero-btns{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap;}

.hero-dots{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);display:flex;gap:8px;z-index:3;}
.hero-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.3);cursor:pointer;border:none;transition:background .3s,transform .3s,box-shadow .3s;}
.hero-dot.active{background:var(--c-sky-light);transform:scale(1.4);box-shadow:0 0 10px rgba(56,189,248,.7);}

.scroll-hint{position:absolute;bottom:2rem;right:2rem;z-index:3;display:flex;flex-direction:column;align-items:center;gap:5px;color:rgba(255,255,255,.4);font-size:9px;letter-spacing:.15em;text-transform:uppercase;}
.scroll-line{width:1px;height:36px;background:linear-gradient(to bottom,var(--c-sky-light),transparent);animation:sp 2s ease-in-out infinite;}
@keyframes sp{0%,100%{opacity:1;transform:scaleY(1)}50%{opacity:.35;transform:scaleY(.55)}}

/* ===== PAGE HERO（サブページ用） ===== */
.page-hero{
  background:linear-gradient(135deg,#1e40af 0%,#0284c7 38%,#0ea5e9 72%,#38bdf8 100%);
  padding:110px 0 62px;text-align:center;position:relative;overflow:hidden;
}
.page-hero::before{content:attr(data-bg);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:120px;font-weight:700;color:rgba(255,255,255,.055);white-space:nowrap;pointer-events:none;letter-spacing:.08em;}
.page-hero::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse at 80% 10%,rgba(255,255,255,.3) 0%,transparent 48%),
    radial-gradient(ellipse at 10% 90%,rgba(56,189,248,.35) 0%,transparent 42%),
    linear-gradient(180deg,rgba(255,255,255,.07) 0%,transparent 50%);
}
.page-hero-label{position:relative;z-index:1;font-size:11px;letter-spacing:.25em;color:rgba(255,255,255,.72);text-transform:uppercase;margin-bottom:.7rem;}
.page-hero-title{position:relative;z-index:1;font-family:'Shippori Mincho B1',serif;font-size:clamp(24px,3.8vw,42px);font-weight:600;color:var(--c-white);letter-spacing:.1em;text-shadow:0 2px 18px rgba(0,0,0,.22);}
.page-hero-sub{position:relative;z-index:1;font-size:13px;color:rgba(255,255,255,.65);margin-top:.6rem;letter-spacing:.06em;}

/* ===== BREADCRUMB ===== */
.bc-bar{background:rgba(255,255,255,.68);backdrop-filter:blur(14px);border-bottom:1px solid rgba(191,219,254,.55);padding:10px 0;}
.bc-bar .container{font-size:12px;color:var(--c-gm);}
.bc-bar a{color:var(--c-sky-mid);text-decoration:none;font-weight:500;}
.bc-bar a:hover{text-decoration:underline;}

/* ===== LAYOUT ===== */
.container{max-width:1100px;margin:0 auto;padding:0 1.5rem;}
.container--narrow{max-width:860px;margin:0 auto;padding:0 1.5rem;}

/* ===== SECTIONS ===== */
.section{padding:80px 0;}

.section--dark{
  position:relative;overflow:hidden;
  background:linear-gradient(135deg,#1e40af 0%,#0284c7 40%,#0ea5e9 75%,#38bdf8 100%);
}
.section--dark::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse at 88% 12%,rgba(255,255,255,.26) 0%,transparent 48%),
    radial-gradient(ellipse at 10% 88%,rgba(14,165,233,.3) 0%,transparent 44%);
}
.section--dark>.container,.section--dark>.reveal{position:relative;z-index:1;}

.section--pale{
  position:relative;overflow:hidden;
  background:linear-gradient(135deg,#dbeafe 0%,#e0f2fe 40%,#f0f9ff 100%);
}
.section--pale::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse at 90% 20%,rgba(56,189,248,.2) 0%,transparent 48%),
    radial-gradient(ellipse at 12% 80%,rgba(99,102,241,.1) 0%,transparent 42%);
}
.section--pale>.container,.section--pale>.reveal{position:relative;z-index:1;}

.section--white{
  position:relative;
  background:rgba(255,255,255,.86);
  backdrop-filter:blur(16px);
  border-top:1px solid rgba(191,219,254,.45);
}
.section--white::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(to right,var(--c-navy),var(--c-sky),var(--c-sky-light));}

.section-label{font-size:10px;letter-spacing:.28em;color:var(--c-sky-mid);text-transform:uppercase;margin-bottom:.5rem;font-weight:700;}
.section-label--light{color:rgba(255,255,255,.82);}
.section-title{font-family:'Shippori Mincho B1',serif;font-size:clamp(24px,3vw,38px);font-weight:600;color:var(--c-navy);letter-spacing:.07em;margin-bottom:.8rem;}
.section-title--light{color:var(--c-white);}
.section-line{width:48px;height:3px;background:linear-gradient(to right,var(--c-sky),var(--c-sky-light));border-radius:2px;margin-bottom:2.5rem;box-shadow:0 2px 12px rgba(14,165,233,.5);}

/* ===== QUICK BAR ===== */
.quick-bar{
  background:linear-gradient(135deg,var(--c-navy) 0%,var(--c-sky-mid) 50%,var(--c-sky) 100%);
  padding:18px 0;position:relative;overflow:hidden;
  box-shadow:0 4px 22px rgba(30,64,175,.3),inset 0 1px 0 rgba(255,255,255,.2);
}
.quick-bar::before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 85% 50%,rgba(255,255,255,.18) 0%,transparent 55%);}
.quick-bar .container{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;position:relative;z-index:1;}
.quick-label{font-size:13px;color:rgba(255,255,255,.95);font-weight:500;}
.quick-btns{display:flex;gap:10px;flex-wrap:wrap;}
.qb{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:700;text-decoration:none;padding:10px 20px;border-radius:var(--r-sm);white-space:nowrap;transition:all var(--t);}
.qb:hover{transform:translateY(-2px);}
.qb-white{background:linear-gradient(180deg,#fff 0%,#edf8ff 100%);color:var(--c-navy);box-shadow:inset 0 1px 0 rgba(255,255,255,1),0 4px 14px rgba(0,0,0,.14);}
.qb-white:hover{background:linear-gradient(180deg,#e0f2fe 0%,#bae6fd 100%);color:var(--c-sky-mid);box-shadow:inset 0 1px 0 rgba(255,255,255,1),0 8px 22px rgba(14,165,233,.35);}
.qb-outline{background:rgba(255,255,255,.12);color:var(--c-white);border:1.5px solid rgba(255,255,255,.62);box-shadow:inset 0 1px 0 rgba(255,255,255,.18);}
.qb-outline:hover{background:rgba(255,255,255,.25);border-color:rgba(255,255,255,.95);}

/* ===== NEWS ===== */
.news-grid{display:grid;grid-template-columns:240px 1fr;gap:4rem;align-items:start;}
.news-list{list-style:none;}
.news-list li{border-bottom:1px solid rgba(191,219,254,.5);}
.news-list li:first-child{border-top:1px solid rgba(191,219,254,.5);}
.news-list a{display:flex;gap:1rem;padding:1rem 0;text-decoration:none;color:var(--c-text);transition:all var(--t);}
.news-list a:hover{color:var(--c-sky-mid);padding-left:.5rem;}
.news-date{font-size:12px;color:var(--c-gm);flex-shrink:0;margin-top:2px;}
.news-text{font-size:14px;line-height:1.75;}
.news-new{display:inline-block;font-size:9px;font-weight:700;background:linear-gradient(135deg,var(--c-sky) 0%,var(--c-sky-light) 100%);color:var(--c-white);padding:1px 7px;margin-left:7px;vertical-align:middle;position:relative;top:-1px;border-radius:3px;box-shadow:0 1px 5px rgba(14,165,233,.45);}
.news-credit{font-size:12px;color:var(--c-gm);text-align:right;margin-top:1.2rem;padding-top:.8rem;border-top:1px dashed rgba(191,219,254,.6);}

/* ===== GALLERY ===== */
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:2.5rem;}
.gallery-item{position:relative;aspect-ratio:4/3;overflow:hidden;display:block;text-decoration:none;border-radius:var(--r-sm);box-shadow:0 4px 18px rgba(0,0,0,.22);}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .55s ease;filter:brightness(.82);}
.gallery-item:hover img{transform:scale(1.08);filter:brightness(1);}
.gallery-lbl{position:absolute;bottom:0;left:0;right:0;padding:10px 12px;background:linear-gradient(to top,rgba(23,37,84,.9),transparent);font-size:12px;color:rgba(255,255,255,.92);backdrop-filter:blur(4px);}

/* ===== PAGE LINKS ===== */
.pl-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem;}
.pl-card{
  display:flex;align-items:center;gap:1.2rem;
  background:rgba(255,255,255,.74);
  backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  border:1px solid rgba(255,255,255,.68);
  border-left:4px solid var(--c-sky);
  padding:1.3rem 1.6rem;text-decoration:none;
  transition:all var(--t);border-radius:0 var(--r) var(--r) 0;
  box-shadow:var(--sh-sm),inset 0 1px 0 rgba(255,255,255,.95);
}
.pl-card:hover{transform:translateY(-4px);box-shadow:var(--sh-lg),inset 0 1px 0 rgba(255,255,255,.95);background:rgba(255,255,255,.92);}
.pl-icon{width:46px;height:46px;background:linear-gradient(135deg,var(--c-sky-pale) 0%,#bfdbfe 100%);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;box-shadow:0 2px 10px rgba(14,165,233,.22);}
.pl-title{font-size:15px;font-weight:700;color:var(--c-navy);letter-spacing:.04em;margin-bottom:2px;}
.pl-sub{font-size:11px;color:var(--c-gm);}
.pl-gold{border-left-color:var(--c-gold-lt) !important;}
.pl-gold .pl-icon{background:linear-gradient(135deg,var(--c-gold-pale) 0%,#fde68a 100%);box-shadow:0 2px 10px rgba(217,119,6,.22);}

/* ===== SHUKKETSU BANNER ===== */
.sh-banner{
  background:linear-gradient(135deg,var(--c-navy) 0%,var(--c-sky-mid) 52%,var(--c-sky) 100%);
  padding:64px 0;text-align:center;position:relative;overflow:hidden;
}
.sh-banner::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse at 85% 50%,rgba(255,255,255,.22) 0%,transparent 52%),
    radial-gradient(ellipse at 15% 80%,rgba(56,189,248,.25) 0%,transparent 45%),
    linear-gradient(180deg,rgba(255,255,255,.06) 0%,transparent 50%);
}
.sh-banner h2{font-family:'Shippori Mincho B1',serif;font-size:clamp(20px,3vw,34px);color:var(--c-white);letter-spacing:.08em;margin-bottom:.8rem;position:relative;z-index:1;text-shadow:0 2px 16px rgba(0,0,0,.2);}
.sh-banner p{font-size:14px;color:rgba(255,255,255,.75);margin-bottom:2rem;position:relative;z-index:1;}

/* ===== ARTICLE CARD — ガラス ===== */
.article-card{
  background:var(--glass);
  backdrop-filter:blur(22px) saturate(155%);
  -webkit-backdrop-filter:blur(22px) saturate(155%);
  border:1px solid var(--glass-bd);border-radius:var(--r);overflow:hidden;
  margin-bottom:2.5rem;
  box-shadow:var(--sh-md),inset 0 1px 0 rgba(255,255,255,.96);
  transition:box-shadow var(--t),transform var(--t);
}
.article-card:hover{transform:translateY(-3px);box-shadow:var(--sh-lg),inset 0 1px 0 rgba(255,255,255,.96);}
.article-card-hd{
  background:linear-gradient(135deg,var(--c-navy) 0%,var(--c-sky-mid) 52%,var(--c-sky) 100%);
  padding:1.1rem 1.8rem;position:relative;overflow:hidden;
}
.article-card-hd::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse at 96% 50%,rgba(255,255,255,.24) 0%,transparent 52%),
    linear-gradient(180deg,rgba(255,255,255,.1) 0%,transparent 100%);
}
.article-card-hd h3{font-family:'Shippori Mincho B1',serif;font-size:18px;font-weight:600;color:var(--c-white);letter-spacing:.06em;position:relative;z-index:1;text-shadow:0 1px 8px rgba(0,0,0,.15);}
.article-card-bd{padding:2rem 1.8rem;}
.article-text{font-size:14.5px;line-height:2.15;color:var(--c-sub);}
.article-text p{margin-bottom:1.3em;}
.article-text p:last-child{margin-bottom:0;}
.article-sign{text-align:right;font-size:13px;color:var(--c-gm);margin-top:1.5rem;padding-top:1rem;border-top:1px dashed rgba(191,219,254,.65);}

/* ===== INFO BOXES ===== */
.notice-box{
  background:rgba(224,242,254,.65);backdrop-filter:blur(12px);
  border:1px solid rgba(56,189,248,.35);border-left:4px solid var(--c-sky);
  border-radius:0 var(--r-sm) var(--r-sm) 0;padding:1.2rem 1.5rem;
  margin-top:2rem;font-size:13.5px;color:var(--c-sub);line-height:1.9;
  box-shadow:0 2px 12px rgba(14,165,233,.1);
}
.office-box{
  background:linear-gradient(135deg,var(--c-navy) 0%,var(--c-sky-mid) 58%,var(--c-sky) 100%);
  color:var(--c-white);padding:1.8rem 2rem;margin-top:2rem;
  border-radius:var(--r);position:relative;overflow:hidden;
  box-shadow:0 6px 28px rgba(30,64,175,.28),inset 0 1px 0 rgba(255,255,255,.2);
}
.office-box::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse at 95% 50%,rgba(255,255,255,.24) 0%,transparent 52%),
    linear-gradient(180deg,rgba(255,255,255,.08) 0%,transparent 60%);
}
.office-box>*{position:relative;z-index:1;}
.office-box p{font-size:13.5px;line-height:2.1;color:rgba(255,255,255,.88);}
.office-box a{color:var(--c-sky-light);text-decoration:none;}
.office-box a:hover{text-decoration:underline;color:var(--c-white);}
.office-box strong{color:var(--c-white);font-size:15px;display:block;margin-bottom:.6rem;letter-spacing:.04em;}

/* ===== FORM WRAP ===== */
.form-wrap{
  background:var(--glass);
  backdrop-filter:blur(22px) saturate(155%);
  -webkit-backdrop-filter:blur(22px) saturate(155%);
  border:1px solid var(--glass-bd);border-radius:var(--r);overflow:hidden;
  box-shadow:var(--sh-md),inset 0 1px 0 rgba(255,255,255,.96);
}
.form-notice{
  background:rgba(255,255,255,.72);backdrop-filter:blur(12px);
  border-left:4px solid var(--c-sky);border-radius:0 var(--r-sm) var(--r-sm) 0;
  padding:1.2rem 1.5rem;margin-bottom:2rem;font-size:14px;line-height:1.9;color:var(--c-sub);
  box-shadow:0 2px 12px rgba(14,165,233,.1);
}

/* ===== FORM ELEMENTS ===== */
.form-label{display:block;font-size:13px;font-weight:600;color:var(--c-navy);margin-bottom:6px;}
.req{display:inline-block;font-size:9px;font-weight:700;background:var(--c-err);color:var(--c-white);padding:1px 6px;margin-left:6px;border-radius:3px;vertical-align:middle;position:relative;top:-1px;}
.form-input,.form-select,.form-textarea{
  width:100%;padding:11px 14px;font-family:'Noto Sans JP',sans-serif;font-size:14px;
  color:var(--c-text);background:rgba(255,255,255,.82);
  border:1.5px solid rgba(191,219,254,.8);border-radius:var(--r-sm);
  transition:border-color var(--t),box-shadow var(--t),background var(--t);
  -webkit-appearance:none;appearance:none;backdrop-filter:blur(8px);
}
.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--c-sky);background:rgba(255,255,255,.96);box-shadow:0 0 0 3px rgba(14,165,233,.18);}
.form-input.err,.form-select.err{border-color:var(--c-err);background:rgba(255,245,245,.9);}
.form-textarea{resize:vertical;min-height:100px;line-height:1.7;}
.sel-wrap{position:relative;}
.sel-wrap::after{content:'▾';position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--c-gm);font-size:12px;pointer-events:none;}
.radio-grp{display:flex;flex-wrap:wrap;gap:8px 1.5rem;margin-top:4px;}
.radio-item{display:flex;align-items:center;gap:6px;font-size:14px;cursor:pointer;}
input[type=radio],input[type=checkbox]{width:16px;height:16px;accent-color:var(--c-sky);cursor:pointer;flex-shrink:0;}
.form-hint{font-size:11px;color:var(--c-gm);margin-top:4px;}
.err-msg{font-size:12px;color:var(--c-err);margin-top:4px;display:none;}
.err-msg.show{display:block;}
.privacy-box{background:rgba(240,244,248,.8);border:1px solid var(--c-border);border-radius:var(--r-sm);padding:1rem 1.2rem;font-size:12px;color:var(--c-sub);line-height:1.9;margin-bottom:1.5rem;}
.form-sec{padding:2rem 2rem 0;}
.form-sec-title{font-family:'Shippori Mincho B1',serif;font-size:17px;font-weight:600;color:var(--c-navy);letter-spacing:.05em;margin-bottom:1.4rem;padding-bottom:.8rem;border-bottom:1px solid rgba(191,219,254,.5);display:flex;align-items:center;gap:10px;}
.form-sec-title::before{content:'';display:inline-block;width:4px;height:20px;background:linear-gradient(to bottom,var(--c-sky-light),var(--c-sky));border-radius:2px;box-shadow:0 2px 8px rgba(14,165,233,.4);}
.form-div{height:1px;background:rgba(191,219,254,.4);margin:1.5rem 2rem 0;}
.f-row{margin-bottom:1.4rem;}
.f-row-half{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;margin-bottom:1.4rem;}
.nengo-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.nengo-row .form-input{width:90px;}
.zip-row{display:flex;align-items:center;gap:8px;}
.zip-row .form-input{width:150px;}
.btn-zip{padding:10px 14px;font-size:13px;font-family:'Noto Sans JP',sans-serif;font-weight:500;color:var(--c-navy);background:linear-gradient(180deg,rgba(255,255,255,.9) 0%,var(--c-sky-pale) 100%);border:1.5px solid rgba(14,165,233,.4);border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;transition:all var(--t);box-shadow:0 2px 8px rgba(14,165,233,.12);}
.btn-zip:hover{background:linear-gradient(180deg,var(--c-sky-pale) 0%,#bae6fd 100%);box-shadow:0 4px 14px rgba(14,165,233,.25);}
.submit-area{padding:2rem;text-align:center;}
#successMsg{display:none;text-align:center;padding:4rem 2rem;background:rgba(255,255,255,.88);border:1px solid var(--glass-bd);border-radius:var(--r);backdrop-filter:blur(16px);}
#successMsg .icon{font-size:52px;margin-bottom:1rem;}
#successMsg h2{font-family:'Shippori Mincho B1',serif;font-size:26px;color:var(--c-navy);margin-bottom:1rem;}
#successMsg p{font-size:14px;color:var(--c-sub);line-height:2;}

/* ===== BUTTONS ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:'Noto Sans JP',sans-serif;font-weight:700;letter-spacing:.07em;border-radius:var(--r-sm);cursor:pointer;text-decoration:none;transition:all var(--t);border:none;}
.btn:hover{transform:translateY(-3px);}
.btn-sky{background:linear-gradient(180deg,rgba(255,255,255,.2) 0%,transparent 55%),var(--c-sky);color:var(--c-white);padding:13px 30px;font-size:14px;box-shadow:inset 0 1px 0 rgba(255,255,255,.32),0 4px 18px rgba(14,165,233,.45);}
.btn-sky:hover{background:linear-gradient(180deg,rgba(255,255,255,.2) 0%,transparent 55%),var(--c-sky-mid);box-shadow:inset 0 1px 0 rgba(255,255,255,.32),0 10px 30px rgba(14,165,233,.62);}
.btn-white{background:linear-gradient(180deg,#fff 0%,#edf8ff 100%);color:var(--c-navy);padding:13px 30px;font-size:14px;box-shadow:inset 0 1px 0 rgba(255,255,255,1),0 4px 16px rgba(30,64,175,.2);}
.btn-white:hover{background:linear-gradient(180deg,#e0f2fe 0%,#bae6fd 100%);color:var(--c-sky-mid);box-shadow:inset 0 1px 0 rgba(255,255,255,1),0 10px 28px rgba(14,165,233,.35);}
.btn-outline{background:linear-gradient(180deg,rgba(255,255,255,.14) 0%,transparent 100%);color:var(--c-white);border:1.5px solid rgba(255,255,255,.65);padding:12px 28px;font-size:13px;box-shadow:inset 0 1px 0 rgba(255,255,255,.18);}
.btn-outline:hover{background:rgba(255,255,255,.25);border-color:rgba(255,255,255,.96);}
.btn-submit{width:100%;max-width:300px;margin:0 auto;padding:16px 30px;font-size:15px;background:linear-gradient(180deg,rgba(255,255,255,.2) 0%,transparent 55%),var(--c-sky);color:var(--c-white);box-shadow:inset 0 1px 0 rgba(255,255,255,.32),0 4px 20px rgba(14,165,233,.48);}
.btn-submit:hover{background:linear-gradient(180deg,rgba(255,255,255,.2) 0%,transparent 55%),var(--c-sky-mid);box-shadow:inset 0 1px 0 rgba(255,255,255,.32),0 10px 32px rgba(14,165,233,.65);}
.btn-submit:disabled{background:var(--c-gm);cursor:not-allowed;transform:none;box-shadow:none;}

/* ===== FOOTER ===== */
.site-footer{
  background:linear-gradient(180deg,#1e3a8a 0%,#1e40af 45%,#172554 100%);
  padding:55px 0 24px;border-top:3px solid var(--c-sky-light);
  box-shadow:inset 0 2px 0 rgba(56,189,248,.28),inset 0 3px 24px rgba(56,189,248,.1);
  position:relative;overflow:hidden;
}
.site-footer::before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 80% 20%,rgba(56,189,248,.16) 0%,transparent 52%);}
.site-footer>.container{position:relative;z-index:1;}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:3rem;margin-bottom:2.5rem;}
.f-brand-name{font-family:'Shippori Mincho B1',serif;font-size:17px;color:var(--c-white);display:block;margin-bottom:4px;}
.f-brand-en{font-size:10px;color:var(--c-sky-light);letter-spacing:.15em;display:block;margin-bottom:1rem;}
.f-info{font-size:12px;color:rgba(255,255,255,.5);line-height:1.9;}
.f-info a{color:var(--c-sky-light);text-decoration:none;}
.f-nav-title{font-size:11px;font-weight:700;letter-spacing:.15em;color:var(--c-sky-light);margin-bottom:.8rem;text-transform:uppercase;}
.f-nav a{display:block;font-size:13px;color:rgba(255,255,255,.52);text-decoration:none;padding:3px 0;transition:color var(--t),padding-left var(--t);}
.f-nav a:hover{color:var(--c-white);padding-left:6px;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:1.2rem;display:flex;justify-content:space-between;align-items:center;}
.f-copy{font-size:11px;color:rgba(255,255,255,.32);}
.f-top{font-size:11px;color:rgba(255,255,255,.42);text-decoration:none;letter-spacing:.1em;transition:color var(--t);}
.f-top:hover{color:var(--c-sky-light);}

/* ===== FLOATING BUTTONS ===== */
/* ↑ ページトップ（全ページ・JSで生成） */
.float-top{
  position:fixed;bottom:20px;right:20px;z-index:900;
  width:50px;height:50px;border:none;cursor:pointer;
  background:linear-gradient(145deg,rgba(255,255,255,.24) 0%,transparent 50%),linear-gradient(135deg,var(--c-sky-light) 0%,var(--c-sky) 100%);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;color:var(--c-white);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 4px 22px rgba(14,165,233,.55),0 1px 4px rgba(0,0,0,.15);
  transition:transform .22s ease,box-shadow .22s ease,opacity .3s ease;
  opacity:0;pointer-events:none;
}
.float-top.visible{opacity:1;pointer-events:auto;}
.float-top:hover{transform:translateY(-4px) scale(1.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 12px 32px rgba(14,165,233,.7);}

/* 🏠 ホームへ（サブページのみ・HTMLに記述） */
.float-home{
  position:fixed;bottom:80px;right:20px;z-index:900;
  width:50px;height:50px;
  background:linear-gradient(145deg,rgba(255,255,255,.22) 0%,transparent 50%),linear-gradient(135deg,var(--c-sky) 0%,var(--c-navy) 100%);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  text-decoration:none;color:var(--c-white);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.38),0 4px 22px rgba(30,64,175,.48),0 1px 4px rgba(0,0,0,.18);
  transition:transform .22s ease,box-shadow .22s ease;
}
.float-home:hover{transform:translateY(-4px) scale(1.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 12px 32px rgba(14,165,233,.65);}
.float-home svg,.float-top svg{display:block;}

/* ===== SCROLL REVEAL ===== */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease;}
.reveal.visible{opacity:1;transform:none;}

/* ===== RESPONSIVE ===== */
@media(max-width:980px){
  .main-nav,.header-tel{display:none;}
  .hamburger{display:flex;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
  .pl-grid{grid-template-columns:1fr;}
  .news-grid{grid-template-columns:1fr;gap:3rem;}
}
@media(max-width:640px){
  .section{padding:60px 0;}
  .footer-grid{grid-template-columns:1fr;gap:2rem;}
  .footer-bottom{flex-direction:column;gap:.8rem;}
  .article-card-bd{padding:1.4rem 1.2rem;}
  .gallery-grid{gap:6px;}
  .f-row-half{grid-template-columns:1fr;}
}
@media(max-width:480px){
  .header-inner{padding:0 .9rem;}
  .logo-ja{font-size:13px;}
  .quick-bar .container{flex-direction:column;align-items:stretch;gap:.7rem;}
  .quick-btns{flex-direction:column;gap:8px;}
  .qb{justify-content:center;width:100%;}
  .float-top,.float-home{width:44px;height:44px;}
  .float-home{bottom:74px;right:14px;}
  .float-top{bottom:18px;right:14px;}
  .float-top svg,.float-home svg{width:18px;height:18px;}
  .form-sec{padding:1.5rem 1rem 0;}
  .form-div{margin:1.2rem 1rem 0;}
  .submit-area{padding:1.5rem 1rem;}
}
