@charset "UTF-8";



/* ===== RESET ===== */

html,body,div,span,p,h1,h2,h3,h4,h5,h6,ul,ol,li,table,thead,tbody,tr,th,td,

header,footer,nav,main,section,article,figure,figcaption{

  margin:0;padding:0;border:0;outline:0;vertical-align:baseline;background:transparent;

  box-sizing:border-box;

}

ol,ul{list-style:none}

table{border-collapse:collapse;border-spacing:0}

*,*:before,*:after{box-sizing:border-box}

img,video{max-width:100%;height:auto;vertical-align:middle}

a{text-decoration:none;color:#555;transition:opacity .2s ease}

a:hover{opacity:.7}



/* ===== BASE ===== */

html{ overflow-x:hidden; }

body{

  overflow-x:hidden;

  font-family:'EB Garamond','M PLUS Rounded 1c','Noto Sans JP','Hiragino Kaku Gothic ProN','Meiryo',YuGothic,'Yu Gothic',sans-serif;

  font-size:15px;

  color:#555;

  line-height:1.9;

  background:#fff;

  min-width:320px;

}



/* ===== SITE FRAME ===== */

.site_frame{

  max-width:1000px;

  margin:0 auto;

  padding:0;

}

.site_frame:before,.site_frame:after{display:table;line-height:0;content:""}

.site_frame:after{clear:both}

@media only screen and (max-width:640px){

  .site_frame{width:100%;margin:0;padding:0 16px;}

}



/* ===== COLUMN SYSTEM (float-based, c-space_normal) ===== */

.g-column:after{content:"";display:table;clear:both}

.g-column>.column{float:left}

.g-column>.column.-column1,.g-column>.column:first-child{margin-left:0}

.g-column>.column.-column-lasts,.g-column>.column:last-child{margin-right:0}



/* c-space_normal */

.c-space_normal .g-column>.column{margin-left:2%;margin-right:2%;margin-top:4%}

.c-space_normal .g-column>.column.-column1,

.c-space_normal .g-column>.column:first-child{margin-left:0}

.c-space_normal .g-column>.column.-column-lasts,

.c-space_normal .g-column>.column:last-child{margin-right:0}

.c-space_normal .g-column.-col2>.column{width:48%}

.c-space_normal .g-column.-col2>.column:nth-child(1),

.c-space_normal .g-column.-col2>.column:nth-child(2){margin-top:0}

.c-space_normal .g-column.-col3>.column{width:30.666%}

.c-space_normal .g-column.-col3>.column:nth-child(1),

.c-space_normal .g-column.-col3>.column:nth-child(2),

.c-space_normal .g-column.-col3>.column:nth-child(3){margin-top:0}



@media only screen and (max-width:640px){

  .g-column>.column{float:none;margin:0}

  .g-column.-col2>.column,

  .g-column.-col3>.column,

  .g-column.-sp-col1>.column{width:100%;margin:0}

  .c-space_normal .g-column>.column{margin-left:0;margin-right:0}

}



/* c-space_narrow */

.c-space_narrow .g-column>.column{margin-left:1.5%;margin-right:1.5%;margin-top:0}

.c-space_narrow .g-column>.column.-column1,

.c-space_narrow .g-column>.column:first-child{margin-left:0}

.c-space_narrow .g-column>.column.-column-lasts,

.c-space_narrow .g-column>.column:last-child{margin-right:0}

.c-space_narrow .g-column.-col2>.column{width:47%}

.c-space_narrow .g-column.-col3>.column{width:30.333%}

@media only screen and (max-width:640px){

  .c-space_narrow .g-column>.column{margin-left:0;margin-right:0}

}



/* b-plain (block wrapper) */

.b-plain{position:relative}

.b-plain:after{content:"";display:table;clear:both}



/* c-title / c-img (billboard) */

.c-title{line-height:0;margin:0}

.c-img{line-height:0}

.c-img img{width:100%;height:auto;vertical-align:middle}



/* -menu_center */

.-menu_center{text-align:center}



/* footer nav override - 旧スタイル削除済み（新footer-modern-wrapに移行） */





/* ===== TYPOGRAPHY ===== */

.c-lead{font-size:1.1rem;line-height:1.8;color:#555}

.c-body{font-size:.93rem;color:#555;line-height:1.9}

.c-note{font-size:.8rem;color:#555;line-height:1.7}

.c-credit{font-size:.75rem;color:#fff}

.c-center{text-align:center}

.c-right{text-align:right}

.txt_center{text-align:center;position:relative;z-index:11}



.c-large_headline{

  font-family:'Noto Serif JP','Hiragino Mincho ProN',Georgia,serif;

  font-weight:400;

  font-size:1.6rem;

  line-height:1.6;

  color:#555;

  letter-spacing:.08em;

}



/* ===== PADDING HELPERS ===== */

.pad-30{padding:30px}

.pad-block{padding-top:50px;padding-bottom:50px}

.spacer-line{padding:10px 0}

.spacer-block{padding:30px 0}



/* ============================================================

   HEADER (モダン1段スタイル)

============================================================ */

#a-header{

  position:sticky;

  top:0;

  z-index:1000;

  background:#2e3f52;

  box-shadow:0 2px 12px rgba(0,0,0,0.2);

}

#a-header header{padding:0}



.header-modern{

  display:flex;

  align-items:center;

  justify-content:space-between;

  max-width:1200px;

  margin:0 auto;

  padding:0 56px;

  height:72px;

}

.header-logo-link{

  display:block;

  flex-shrink:0;

  height:56px;

}

.header-logo-img{

  height:56px;

  width:auto;

  display:block;

  max-width:none;

}

.header-nav{ flex:1; margin:0 24px; }

.header-nav-list{

  display:flex;

  align-items:center;

  justify-content:center;

  list-style:none;

  margin:0;

  padding:0;

  gap:0;

}

.header-nav-list li a{

  display:block;

  color:rgba(255,255,255,.82);

  font-size:.78rem;

  padding:8px 10px;

  white-space:nowrap;

  text-decoration:none;

  transition:color .2s;

  letter-spacing:.03em;

}

.header-nav-list li a:hover,

.header-nav-list li a.current{

  color:#fff;

  opacity:1;

  border-bottom:2px solid #fff;

  padding-bottom:6px;

}

.header-right{

  display:flex;

  align-items:center;

  gap:14px;

  flex-shrink:0;

}

.header-tel{

  color:#fff;

  font-weight:700;

  font-size:.88rem;

  white-space:nowrap;

  text-decoration:none;

  letter-spacing:.03em;

}

.header-tel:hover{ color:#4a8c6e; opacity:1; }

.header-badge{

  display:inline-flex;

  align-items:center;

  justify-content:center;

  text-align:center;

  border:1.5px solid rgba(255,255,255,.7);

  border-radius:6px;

  color:#fff;

  font-size:.62rem;

  font-weight:700;

  line-height:1.4;

  padding:4px 8px;

  letter-spacing:.04em;

  white-space:nowrap;

  flex-shrink:0;

}

.header-insta{

  color:#fff;

  font-size:1.4rem;

  line-height:1;

  text-decoration:none;

}

.header-insta:hover{ color:#e1306c; opacity:1; }

.header-line{

  color:#fff;

  font-size:1.4rem;

  line-height:1;

  text-decoration:none;

}

.header-line:hover{ color:#06C755; opacity:1; }



@media only screen and (max-width:900px){

  .header-nav{ display:none; }

  .header-right{ display:none; }

  #a-header{ position:fixed; top:0; left:0; right:0; z-index:1000; background:#2e3f52 !important; box-shadow:none; }

  .header-modern{ padding:0 16px; height:60px; background:#2e3f52; }

  .header-logo-link{ display:flex; align-items:center; max-width:calc(100vw - 72px); margin-left:10px; }

  .header-logo-img{ height:auto; max-height:44px; max-width:100%; width:auto; display:block; }

  body{ padding-top:60px; }

}

@media only screen and (max-width:640px){

  .header-tel{ font-size:.78rem; }

  .header-badge{ font-size:.55rem; padding:3px 6px; }

}

@media only screen and (max-width:400px){

  .header-badge{ display:none; }

  .header-tel{ font-size:.75rem; }

}



/* ============================================================

   GLOBAL NAVIGATION (旧ナビ - 使用ページ向け残置)

============================================================ */

.nav-block{ display:none; }

#js-globalNavigation{

  overflow:hidden;

}

.nav-menu-wrap{

  text-align:center;

}

.c-menu.-menu_a{

  display:table;

  width:100%;

  table-layout:fixed;

  padding:0;

  margin:0;

}

.c-menu.-menu_a li{

  display:table-cell;

  vertical-align:middle;

  border-left:1px solid #ccc;

  border-right:1px solid #ccc;

  border-color:#999;

}

.c-menu.-menu_a li a{

  display:block;

  padding:12px 4px;

  font-size:.82rem;

  color:#555;

  text-align:center;

  letter-spacing:.02em;

  line-height:1.3;

  border-color:#555;

}

.c-menu.-menu_a li a:hover,

.c-menu.-menu_a li a.current{

  background:rgba(236,102,35,.2);

  opacity:1;

}



/* ============================================================

   BILLBOARD (旧 - 非表示)

============================================================ */

#a-billboard{ display:none; }



/* ============================================================

   NEW HERO

============================================================ */

.new-hero{

  position:relative;

  background:#f5f1e8;

  overflow:hidden;

  display:flex;

  align-items:center;

  min-height:560px;

  padding:56px 5% 72px;

  gap:32px;

}



/* 装飾サークル */

.nh-circle{

  position:absolute;

  border-radius:50%;

  pointer-events:none;

  opacity:.55;

}

.nh-c1{ width:160px;height:160px; background:rgba(120,185,140,.28); top:-40px; left:38%; }

.nh-c2{ width:80px; height:80px;  background:rgba(220,195,90,.35);  top:60px;  left:54%; }

.nh-c3{ width:56px; height:56px;  background:rgba(90,175,185,.3);   bottom:110px; left:44%; }

.nh-c4{ width:100px;height:100px; background:rgba(120,185,140,.22); bottom:40px; right:6%; }

.nh-c5{ width:44px; height:44px;  background:rgba(220,195,90,.3);   top:30px; right:10%; }



/* 左カラム */

.nh-left{

  position:relative;

  flex:0 0 46%;

  max-width:46%;

  z-index:2;

  padding-bottom:80px; /* plant用スペース */

}

.nh-catch{

  font-family:'Zen Maru Gothic','M PLUS Rounded 1c',sans-serif;

  font-size:2.4rem;

  font-weight:400;

  color:#3d3226;

  line-height:1.5;

  letter-spacing:.04em;

  margin-bottom:20px;

}

.nh-accent{ color:#4a8c6e; font-weight:700; }

.nh-catch-dot{

  display:block;

  width:180px;

  height:2px;

  background:repeating-linear-gradient(90deg,#b0976a 0,#b0976a 4px,transparent 4px,transparent 8px);

  margin:18px 0;

}

.nh-desc{

  font-size:.95rem;

  color:#666;

  line-height:1.9;

  margin-bottom:28px;

}

.nh-btns{

  display:flex;

  gap:14px;

  flex-wrap:wrap;

}

.nh-btn{

  display:inline-flex;

  align-items:center;

  gap:8px;

  padding:13px 26px;

  border-radius:50px;

  font-size:.88rem;

  font-weight:700;

  letter-spacing:.04em;

  text-decoration:none;

  transition:opacity .2s, transform .2s;

  white-space:nowrap;

}

.nh-btn:hover{ opacity:.82; transform:translateY(-1px); }

.nh-btn-primary{

  background:#4a8c6e;

  color:#fff;

  border:2px solid #4a8c6e;

}

.nh-btn-outline{

  background:transparent;

  color:#4a8c6e;

  border:2px solid #4a8c6e;

}

.nh-plant-bl{

  position:absolute;

  bottom:-20px;

  left:-20px;

  width:200px;

  opacity:.75;

  pointer-events:none;

  z-index:-1;

}



/* 右カラム */

.nh-right{

  position:relative;

  flex:1;

  z-index:2;

  display:flex;

  justify-content:center;

}

.nh-photo-wrap{

  position:relative;

  width:100%;

  max-width:520px;

}

.nh-photo{

  width:100%;

  height:420px;

  object-fit:cover;

  object-position:75% 65%;

  border-radius:48% 52% 58% 42% / 28% 28% 42% 38%;

  display:block;

}

.nh-badge{

  position:absolute;

  bottom:10px;

  left:-10px;

  width:148px;

  height:148px;

  background:#e8b84b;

  border-radius:50%;

  display:flex;

  flex-direction:column;

  align-items:center;

  justify-content:center;

  text-align:center;

  padding:12px;

  color:#fff;

  line-height:1.45;

}

.nh-badge-num{

  font-size:.95rem;

  font-weight:700;

  letter-spacing:.02em;

  margin-bottom:3px;

}

.nh-badge-hr{

  width:70%;

  border:none;

  border-top:1px dashed rgba(255,255,255,.7);

  margin:5px 0;

}

.nh-badge-sub{

  font-size:.68rem;

  opacity:.92;

  line-height:1.6;

}

.nh-plant-tr{

  position:absolute;

  top:-10px;

  right:-24px;

  width:140px;

  opacity:.7;

  pointer-events:none;

  transform:rotate(20deg) scaleX(-1);

}



/* レスポンシブ */

@media only screen and (max-width:900px){

  .new-hero{ flex-direction:column-reverse; padding:40px 5% 48px; min-height:auto; gap:20px; }

  .nh-left{ flex:none; max-width:100%; padding-bottom:0; }

  .nh-catch{ font-size:1.7rem; }

  .nh-plant-bl{ width:120px; bottom:-8px; }

  .nh-plant-tr{ display:none; }

  .nh-right{ width:100%; }

  .nh-photo{ height:280px; }

  .nh-badge{ width:110px; height:110px; left:0; right:auto; bottom:0; }

  .nh-badge-num{ font-size:.78rem; }

  .nh-badge-sub{ font-size:.62rem; }

}

@media only screen and (max-width:480px){

  .nh-catch{ font-size:1.45rem; }

  .nh-photo{ height:240px; border-radius:30% 70% 60% 40% / 30% 30% 40% 40%; }

  .nh-badge{ width:96px; height:96px; }

  .nh-badge-num{ font-size:.7rem; }

}



/* ============================================================

   ABOUT SECTION

============================================================ */

.about-section{

  display:flex;

  align-items:center;

  gap:48px;

  padding:56px 0 48px;

}

.about-text{

  flex:1;

  min-width:0;

}

.about-en-label{

  font-size:.75rem;

  font-weight:700;

  color:#4a8c6e;

  letter-spacing:.2em;

  margin-bottom:4px;

}

.about-heading{

  font-size:1.6rem;

  font-weight:700;

  color:#3d3226;

  line-height:1.4;

  margin-bottom:10px;

}

.about-heading-line{

  display:block;

  width:40px;

  height:3px;

  background:#4a8c6e;

  border-radius:2px;

  margin-bottom:20px;

}

.about-lead{

  font-size:1.1rem;

  font-weight:700;

  color:#3d3226;

  line-height:1.7;

  margin-bottom:14px;

}

.about-body{

  font-size:.88rem;

  color:#666;

  line-height:2;

  margin-bottom:22px;

}

.about-checklist{

  list-style:none;

  padding:0;

  margin:0 0 28px;

  display:flex;

  flex-direction:column;

  gap:8px;

}

.about-checklist li{

  font-size:.88rem;

  color:#444;

  display:flex;

  align-items:center;

  gap:8px;

}

.about-checklist li i{

  color:#4a8c6e;

  font-size:1rem;

  flex-shrink:0;

}

.about-btn{

  display:inline-flex;

  align-items:center;

  gap:8px;

  background:#4a8c6e;

  color:#fff;

  padding:12px 26px;

  border-radius:50px;

  font-size:.88rem;

  font-weight:700;

  text-decoration:none;

  letter-spacing:.04em;

  transition:opacity .2s, transform .2s;

}

.about-btn:hover{ opacity:.82; transform:translateY(-1px); color:#fff; }



/* 右側ビジュアル */

.about-visual{

  flex:0 0 44%;

  max-width:44%;

  position:relative;

}

.about-photo-wrap{

  position:relative;

}

.about-photo{

  width:100%;

  height:360px;

  object-fit:cover;

  object-position:center 30%;

  border-radius:40% 60% 55% 45% / 30% 30% 45% 40%;

  display:block;

}

.about-photo-badge{

  position:absolute;

  bottom:16px;

  left:-16px;

  background:#4a8c6e;

  color:#fff;

  border-radius:12px;

  padding:12px 16px;

  display:flex;

  align-items:center;

  gap:10px;

  font-size:.78rem;

  font-weight:700;

  line-height:1.5;

  box-shadow:0 4px 16px rgba(74,140,110,.35);

}

.about-photo-badge i{ font-size:1.2rem; flex-shrink:0; }

.about-deco-plant{

  position:absolute;

  bottom:-24px;

  right:-20px;

  width:160px;

  opacity:.65;

  pointer-events:none;

  z-index:-1;

  transform:scaleX(-1);

}

@media only screen and (max-width:900px){

  .about-section{ flex-direction:column; gap:28px; padding:40px 0 32px; }

  .about-visual{ flex:none; max-width:100%; width:100%; }

  .about-photo{ height:260px; }

  .about-photo-badge{ left:0; bottom:12px; }

  .about-deco-plant{ width:120px; right:-10px; bottom:-16px; }

}

@media only screen and (max-width:480px){

  .about-photo{ height:220px; }

  .about-photo-badge{ font-size:.72rem; padding:10px 12px; }

}



/* ============================================================

   LINK BANNERS

============================================================ */

.link-banner-section{

  display:grid;

  grid-template-columns:1fr 1fr;

  gap:0;

  background:#fff;

}

.link-banner{

  display:flex;

  align-items:center;

  gap:20px;

  padding:36px 40px;

  text-decoration:none;

  transition:background .2s, box-shadow .2s;

  color:#3d3226;

  border-top:3px solid transparent;

}

.link-banner:hover{ background:#f9f6f1; box-shadow:inset 0 -3px 0 #4a8c6e; opacity:1; }

.link-banner--green{

  background:#fff;

  border-top-color:#4a8c6e;

  border-right:1px solid #ede8df;

}

.link-banner--dark{

  background:#fff;

  border-top-color:#2e3f52;

}

.link-banner-icon{

  width:60px;

  height:60px;

  border-radius:50%;

  display:flex;

  align-items:center;

  justify-content:center;

  font-size:1.5rem;

  flex-shrink:0;

}

.link-banner--green .link-banner-icon{ background:#dff0e8; color:#4a8c6e; }

.link-banner--dark .link-banner-icon{ background:#e8ecf0; color:#2e3f52; }

.link-banner-text{ flex:1; }

.link-banner-en{

  font-size:.7rem;

  letter-spacing:.15em;

  color:#aaa;

  margin-bottom:2px;

}

.link-banner-title{

  font-size:1.15rem;

  font-weight:700;

  color:#3d3226;

  margin-bottom:6px;

}

.link-banner-body{

  font-size:.78rem;

  color:#888;

  line-height:1.7;

}

.link-banner-arrow{

  font-size:1.1rem;

  color:#ccc;

  flex-shrink:0;

}

@media only screen and (max-width:640px){

  .link-banner-section{ grid-template-columns:1fr; }

  .link-banner{ padding:28px 24px; }

}



/* ============================================================

   TARGET / AREA SECTIONS

============================================================ */

.target-section{

  padding:52px 5% 48px;

  text-align:center;

  background:#f9f6f1;

  position:relative;

  left:50%;

  right:50%;

  width:100vw;

  margin-left:-50vw;

  margin-right:-50vw;

}

.target-grid{

  display:grid;

  grid-template-columns:repeat(3,1fr);

  gap:14px;

  text-align:left;

  margin-top:0;

}

.target-card{

  background:#fff;

  border-radius:12px;

  padding:18px 20px;

  display:flex;

  align-items:center;

  gap:12px;

  font-size:.88rem;

  color:#444;

  font-weight:600;

  box-shadow:0 2px 10px rgba(0,0,0,.05);

}

.target-card i{ color:#4a8c6e; font-size:1.1rem; flex-shrink:0; }



.area-section{

  background:#f5f1e8 url('../img/area_bg.png') right center / cover no-repeat;

  padding:52px 5%;

  position:relative;

  overflow:hidden;

  left:50%;

  right:50%;

  width:100vw;

  margin-left:-50vw;

  margin-right:-50vw;

}

.area-map-img{

  position:absolute;

  top:50%;

  left:50%;

  transform:translate(-50%,-50%);

  width:380px;

  height:auto;

  opacity:.25;

  pointer-events:none;

  user-select:none;

  z-index:0;

}

@media only screen and (max-width:900px){

  .area-map-img{ width:260px; }

}

@media only screen and (max-width:480px){

  .area-map-img{ width:180px; }

}

.area-section-inner{

  position:relative;

  z-index:1;

  max-width:1100px;

  margin:0 auto;

  display:flex;

  align-items:center;

  gap:56px;

}

.area-section-left{ flex:1; }

.area-section-left .about-en-label{ color:#4a8c6e; }

.area-heading{

  font-size:1.6rem;

  font-weight:700;

  color:#3d3226;

  margin-bottom:12px;

}

.area-sub{

  font-size:.88rem;

  color:#666;

  line-height:1.8;

  margin-bottom:8px;

}

.area-note{

  font-size:.75rem;

  color:#aaa;

  margin:0;

}

.area-tags{

  display:grid;

  grid-template-columns:repeat(3,1fr);

  gap:12px;

  width:380px;

  flex-shrink:0;

}

.area-tag{

  display:inline-flex;

  align-items:center;

  justify-content:center;

  gap:6px;

  background:#fff;

  color:#3d3226;

  border:1px solid #d8d0c2;

  border-radius:50px;

  padding:10px 12px;

  font-size:.85rem;

  font-weight:600;

  white-space:nowrap;

  box-shadow:0 2px 8px rgba(0,0,0,.06);

}

.area-tag i{ color:#4a8c6e; }

@media only screen and (max-width:900px){

  .target-grid{ grid-template-columns:repeat(2,1fr); }

  .area-section-inner{ flex-direction:column; align-items:flex-start; gap:28px; }

  .area-tags{ width:100%; max-width:460px; grid-template-columns:repeat(3,1fr); }

}

@media only screen and (max-width:480px){

  .target-grid{ grid-template-columns:1fr; }

  .area-tags{ gap:8px; grid-template-columns:repeat(2,1fr); max-width:320px; }

}

/* 届出受理内容: 長いラベルが多いためグリッドではなく自動幅のフレックスで折り返す（SP見切れ対策） */

.area-tags--certs{

  display:flex;

  flex-wrap:wrap;

  justify-content:center;

  width:auto;

  max-width:760px;

  margin-left:auto;

  margin-right:auto;

}

.area-tags--certs .area-tag{

  white-space:normal;

  text-align:center;

  line-height:1.4;

}

@media only screen and (max-width:900px){

  .area-tags--certs{ width:auto; max-width:640px; grid-template-columns:none; }

}

@media only screen and (max-width:480px){

  .area-tags--certs{ max-width:100%; gap:8px; grid-template-columns:none; }

  .area-tags--certs .area-tag{ font-size:.8rem; padding:9px 12px; }

}



/* ============================================================

   SERVICES SECTION

============================================================ */

.services-section{

  padding:52px 0 48px;

  text-align:center;

}

.services-heading{

  font-size:1.6rem;

  font-weight:700;

  color:#3d3226;

  margin-bottom:8px;

}

.services-heading-line{

  display:block;

  width:40px;

  height:3px;

  background:#4a8c6e;

  border-radius:2px;

  margin:0 auto 36px;

}

.services-grid{

  display:grid;

  grid-template-columns:repeat(3,1fr);

  gap:16px;

  text-align:left;

  margin-bottom:32px;

}

.sv-card{

  background:#f9f6f1;

  border-radius:14px;

  padding:24px 20px;

  display:flex;

  flex-direction:column;

  gap:8px;

}

.sv-icon{

  width:44px;

  height:44px;

  border-radius:50%;

  background:#dff0e8;

  color:#4a8c6e;

  display:flex;

  align-items:center;

  justify-content:center;

  font-size:1.1rem;

  margin-bottom:4px;

  flex-shrink:0;

}

.sv-title{

  font-size:.9rem;

  font-weight:700;

  color:#3d3226;

  line-height:1.5;

}

.sv-body{

  font-size:.78rem;

  color:#888;

  line-height:1.85;

}

.services-more-link{

  text-align:center;

}

@media only screen and (max-width:900px){

  .services-grid{ grid-template-columns:repeat(2,1fr); }

}

@media only screen and (max-width:480px){

  .services-grid{ grid-template-columns:1fr; }

}



/* ============================================================

   NEWS BLOCK

============================================================ */

.news-block{

  padding:32px 0 28px;

}

.news-block-inner{

  display:flex;

  gap:32px;

  align-items:flex-start;

}

.news-block-head{

  flex-shrink:0;

  display:flex;

  flex-direction:column;

  gap:2px;

  padding-top:4px;

}

.news-label{

  font-size:1rem;

  font-weight:700;

  color:#4a8c6e;

  letter-spacing:.06em;

}

.news-label-en{

  font-size:.72rem;

  color:#aaa;

  letter-spacing:.12em;

}

.news-more-link{

  display:inline-block;

  margin-top:8px;

  font-size:.75rem;

  color:#4a8c6e;

  text-decoration:none;

  letter-spacing:.04em;

}

.news-more-link:hover{ opacity:.75; }

.news-list{

  flex:1;

  list-style:none;

  margin:0;

  padding:0;

  border:1px solid #ddd8ce;

  border-radius:10px;

  overflow:hidden;

}

.news-item{

  display:flex;

  align-items:center;

  gap:12px;

  padding:13px 18px;

  border-bottom:1px solid #e8e2d8;

  flex-wrap:wrap;

  background:#fff;

}

.news-item:last-child{ border-bottom:none; }

.news-date{

  font-size:.8rem;

  color:#999;

  white-space:nowrap;

  flex-shrink:0;

}

.news-tag{

  font-size:.7rem;

  font-weight:700;

  padding:2px 10px;

  border-radius:20px;

  flex-shrink:0;

  white-space:nowrap;

}

.news-tag--info{ background:#e6f4ed; color:#4a8c6e; }

.news-tag--important{ background:#fdeaea; color:#e06b7a; }

.news-title-link{

  font-size:.88rem;

  color:#555;

  text-decoration:none;

  line-height:1.6;

}

.news-title-link:hover{ color:#4a8c6e; opacity:1; }

@media only screen and (max-width:640px){

  .news-block-inner{ flex-direction:column; gap:12px; }

  .news-block-head{ flex-direction:row; align-items:baseline; gap:8px; }

}



/* ============================================================

   HERO FEATURE CARDS

============================================================ */

.hero-features{

  background:#fff;

  padding:0 5% 0;

}

.hero-features-inner{

  display:grid;

  grid-template-columns:repeat(4,1fr);

  gap:0;

  max-width:1100px;

  margin:0 auto;

  border-top:1px solid #ede8df;

}

.hf-card{

  background:#fff;

  padding:28px 22px 26px;

  display:flex;

  flex-direction:column;

  gap:0;

  border-right:1px solid #ede8df;

  box-shadow:0 4px 18px rgba(0,0,0,.07);

  transition:box-shadow .2s, transform .2s;

}

.hf-card:hover{

  box-shadow:0 8px 28px rgba(0,0,0,.12);

  transform:translateY(-2px);

}

.hf-card:last-child{ border-right:none; }

.hf-icon-wrap{

  display:flex;

  align-items:center;

  gap:12px;

  margin-bottom:12px;

}

.hf-icon{

  width:52px;

  height:52px;

  border-radius:50%;

  display:flex;

  align-items:center;

  justify-content:center;

  font-size:1.4rem;

  flex-shrink:0;

}

.hf-icon--home  { background:#dff0e8; color:#4a8c6e; }

.hf-icon--heart { background:#fde6e8; color:#d95f6e; }

.hf-icon--users { background:#dff0e8; color:#4a8c6e; }

.hf-icon--clock { background:#fef4d6; color:#b8922e; }

.hf-title{

  font-size:.88rem;

  font-weight:700;

  color:#4a8c6e;

  line-height:1.65;

  margin-bottom:8px;

}

.hf-body{

  font-size:.78rem;

  color:#888;

  line-height:1.9;

}

@media only screen and (max-width:900px){

  .hero-features-inner{ grid-template-columns:repeat(2,1fr); }

  .hf-card:nth-child(2){ border-right:none; }

  .hf-card:nth-child(3){ border-top:1px solid #ede8df; }

  .hf-card:nth-child(4){ border-right:none; border-top:1px solid #ede8df; }

}

@media only screen and (max-width:480px){

  .hero-features-inner{ grid-template-columns:1fr; }

  .hf-card{ border-right:none; border-top:1px solid #ede8df; }

}

.billboard-wrap{

  position:relative;

  display:inline-block;

  width:100%;

  line-height:0;

}

.hero-badge{

  position:absolute;

  bottom:20px;

  right:20px;

  background:rgba(0,0,0,.62);

  color:#fff;

  border:2px solid rgba(255,255,255,.7);

  border-radius:8px;

  padding:10px 16px;

  text-align:center;

  line-height:1.4;

  pointer-events:none;

  backdrop-filter:blur(4px);

}

.hero-badge-icon{

  display:block;

  font-size:1.6rem;

  margin-bottom:4px;

}

.hero-badge-main{

  display:block;

  font-size:.95rem;

  font-weight:700;

  letter-spacing:.04em;

  white-space:nowrap;

}

.hero-badge-sub{

  display:block;

  font-size:.72rem;

  opacity:.85;

  letter-spacing:.06em;

  margin-top:2px;

}

@media only screen and (max-width:640px){

  .hero-badge{ bottom:10px; right:10px; padding:8px 12px; }

  .hero-badge-icon{ font-size:1.3rem; }

  .hero-badge-main{ font-size:.82rem; }

}



/* ===== SERVICES GRID ===== */

.service-grid{

  display:grid;

  grid-template-columns:repeat(4,1fr);

  gap:20px;

  margin-bottom:36px;

}

.service-card{

  background:#fff;

  border-radius:8px;

  padding:28px 14px;

  text-align:center;

  box-shadow:0 2px 14px rgba(0,0,0,.07);

}

.service-icon{

  font-size:1.9rem;

  color:#4a8c6e;

  margin-bottom:13px;

}

.service-card-title{

  font-size:.86rem;

  font-weight:700;

  color:#2e3f52;

  margin-bottom:9px;

  line-height:1.45;

}

.service-card-body{

  font-size:.78rem;

  color:#777;

  line-height:1.85;

  margin:0;

}

.billboard-img{

  width:100%;

  display:block;

  background:#e8d5c4;

  overflow:hidden;

}

.billboard-placeholder{

  width:100%;

  min-height:420px;

  background:linear-gradient(135deg,#8b6914 0%,#c4862b 25%,#e8a84b 50%,#c4862b 75%,#8b6914 100%);

  position:relative;

  display:flex;

  align-items:center;

  overflow:hidden;

}

.billboard-placeholder::before{

  content:'';

  position:absolute;

  inset:0;

  background-image:

    repeating-linear-gradient(90deg,transparent,transparent 60px,rgba(255,255,255,.04) 60px,rgba(255,255,255,.04) 61px),

    repeating-linear-gradient(0deg,transparent,transparent 60px,rgba(255,255,255,.04) 60px,rgba(255,255,255,.04) 61px);

}

.billboard-text{

  position:relative;

  z-index:1;

  color:#fff;

  padding:60px 60px 60px;

  text-shadow:0 1px 4px rgba(0,0,0,.3);

}

.billboard-catch1{

  font-size:.85rem;

  letter-spacing:.25em;

  opacity:.9;

  margin-bottom:14px;

  display:block;

}

.billboard-catch2{

  font-family:'Noto Serif JP','Hiragino Mincho ProN',serif;

  font-size:2.2rem;

  font-weight:400;

  line-height:1.55;

  letter-spacing:.1em;

  margin-bottom:18px;

}

.billboard-catch3{

  font-size:.9rem;

  opacity:.85;

  line-height:2;

}



/* ============================================================

   MAIN CONTENT AREA

============================================================ */

#a-site_contents{

  background-image:url(../img/bg_content.png);

  background-repeat:no-repeat;

  background-position:center top;

}



/* セクションブロックの余白 */

.block-pad{padding:30px 50px}

.block-pad-narrow{padding:10px 30px}

.block-pad-heading{padding:30px 30px 0}

.block-pad-large{padding:50px 40px 40px}



/* 白背景 + 下線 */

.bg-line-bottom{

  background-color:#fff;

  background-image:url(../img/line_bottom.png);

  background-repeat:repeat-x;

  background-position:left bottom;

}

/* 白背景 + 上線 */

.bg-line-top{

  background-color:#fff;

  background-image:url(../img/line_top.png);

  background-repeat:repeat-x;

  background-position:left top;

}

/* テクスチャ背景 */

.bg-texture{

  background-image:url(../img/bg_section.png);

  background-repeat:repeat;

}

/* 対応地域背景 */

.bg-kakomi{

  background-color:#fff;

  background-image:url(../img/bg_kakomi.png);

  background-repeat:no-repeat;

  background-position:center top;

}

.bg-kakomi-inner{

  margin:0 auto;

  max-width:900px;

  padding:0 50px 30px;

}



/* ============================================================

   HEADINGS

============================================================ */

/* h3_01: センター見出し */

.h3-block{

  padding:30px 30px 0;

}

.h3-block.bg-texture{

  padding:10px 30px 0;

}



/* h3_02: Check + 枠線見出し */

.h3_02_waku{

  background-color:#fff;

  padding:0 20px;

  display:inline-block;

  border-left:1px solid #4a8c6e;

  border-right:1px solid #4a8c6e;

}



/* ============================================================

   LIST STYLES

============================================================ */

/* チェックリスト（c-list_indent スタイル） */

.c-list_indent{

  width:100%;

  margin-bottom:15px;

  margin-top:10px;

  border:none;

}

.c-list_indent tr{

  display:block;

  width:100%;

  border-bottom:1px solid #999;

}

.c-list_indent tr:last-child{

  border-bottom:none;

}

.c-list_indent th{

  display:block;

  width:100%;

  padding:1em 1em 1em 2.2em;

  background:transparent;

  color:#555;

  font-weight:700;

  font-size:.92rem;

  border-bottom:1px solid #999;

  position:relative;

}

.c-list_indent th::before{

  content:'✓';

  position:absolute;

  left:.9em;

  color:#4a8c6e;

  font-weight:900;

}

.c-list_indent tr:last-child th{

  border-bottom:none;

}



/* ニュースリスト */

.c-list_news{

  width:100%;

  border-top:1px solid #999;

  border-collapse:collapse;

}

.c-list_news tr{

  border-bottom:1px solid #999;

}

.c-list_news th{

  padding:1em;

  font-weight:400;

  color:#4a8c6e;

  font-size:.88rem;

  white-space:nowrap;

  width:25%;

  vertical-align:top;

}

.c-list_news td{

  padding:1em;

  font-size:.9rem;

  color:#555;

  border-bottom:1px solid #999;

}



/* 概要テーブル */

.info-table{

  width:100%;

  border:1px solid #4a8c6e;

  border-collapse:collapse;

}

.info-table th{

  background:#4a8c6e;

  color:#fff;

  padding:12px 20px;

  font-weight:700;

  font-size:.9rem;

  border-bottom:1px solid rgba(255,255,255,.3);

  text-align:left;

  width:220px;

  white-space:nowrap;

}

.info-table td{

  padding:12px 20px;

  font-size:.9rem;

  border-bottom:1px solid #c8dfd1;

  color:#555;

}

.info-table tr:last-child th,

.info-table tr:last-child td{border-bottom:none}

@media only screen and (max-width:640px){

  .info-table th{

    width:auto;

    min-width:80px;

    max-width:110px;

    white-space:normal;

    font-size:.82rem;

    padding:10px 10px;

  }

  .info-table td{

    padding:10px 10px;

    font-size:.82rem;

    word-break:break-all;

  }

}



/* FAQ */

.faq-item{

  border:1px solid #c8dfd1;

  border-top:3px solid #4a8c6e;

  margin-bottom:20px;

}

.faq-q{

  background:#f0f7f3;

  padding:14px 18px 14px 52px;

  font-weight:700;

  font-size:.93rem;

  color:#555;

  position:relative;

}

.faq-q::before{

  content:'Q';

  position:absolute;

  left:14px;

  top:12px;

  background:#4a8c6e;

  color:#fff;

  width:24px;

  height:24px;

  border-radius:50%;

  font-size:.82rem;

  font-weight:700;

  text-align:center;

  line-height:24px;

}

.faq-a{

  padding:14px 18px 14px 52px;

  font-size:.9rem;

  color:#555;

  background:#fff;

  border-top:1px solid #c8dfd1;

  position:relative;

}

.faq-a::before{

  content:'A';

  position:absolute;

  left:14px;

  top:12px;

  background:#555;

  color:#fff;

  width:24px;

  height:24px;

  border-radius:50%;

  font-size:.82rem;

  font-weight:700;

  text-align:center;

  line-height:24px;

}



/* ============================================================

   BUTTONS (exact from reference)

============================================================ */

a.btn_recruit{

  display:inline-block !important;

  background:#fce2ba !important;

  color:#666 !important;

  border:none !important;

  border-bottom:3px solid #fdcd84 !important;

  border-radius:6px !important;

  width:240px !important;

  max-width:100% !important;

  font-size:100% !important;

  font-weight:bold;

  line-height:1.9 !important;

  text-align:center !important;

  text-decoration:none !important;

  cursor:pointer !important;

  padding:1em !important;

  transition:none !important;

}

a.btn_recruit:hover{

  background:#fdcd84 !important;

  color:#666 !important;

  border-top:3px solid #f9a82e !important;

  border-bottom:none !important;

  opacity:1 !important;

}

a.btn_kensyui{

  display:inline-block !important;

  background:#fff !important;

  color:#df8800 !important;

  border:2px solid #ffcd2f !important;

  border-radius:4px !important;

  box-shadow:0 0 0 1px #df8800 inset !important;

  width:100% !important;

  max-width:100% !important;

  font-size:140% !important;

  font-weight:bold !important;

  line-height:1.9 !important;

  text-align:center !important;

  text-decoration:none !important;

  cursor:pointer !important;

  padding:1em !important;

  transition:all .6s !important;

}

a.btn_kensyui:hover{

  background:#fff !important;

  box-shadow:0 0 0 300px #df8800 inset !important;

  border-color:#df8800 !important;

  color:#fff !important;

  opacity:1 !important;

}



/* ============================================================

   BANNERS (フロー/募集 画像バナー)

============================================================ */

.banner-link{

  display:block;

  transition:opacity .2s;

}

.banner-link:hover{opacity:.8}

.banner-img{

  width:100%;

  display:block;

}

.banner-placeholder{

  width:100%;

  height:220px;

  display:flex;

  align-items:center;

  justify-content:center;

  color:#fff;

  font-size:1rem;

  font-weight:700;

  letter-spacing:.1em;

  text-align:center;

  line-height:1.8;

}

.banner-placeholder.orange{

  background:linear-gradient(135deg,#ec6623,#f9a82e);

}

.banner-placeholder.dark{

  background:linear-gradient(135deg,#555,#888);

}



/* お問い合わせ飾り花 */

.contact-flower-right{

  text-align:right;

}

.contact-flower-left{

  text-align:left;

}



/* ============================================================

   FOOTER (modern)

============================================================ */

#a-footer{ background:#2e3f52; }

.footer-modern{ background:#2e3f52; }



/* ── 新フッター構造 ── */

.footer-modern-wrap{

  background:#2e3f52;

  padding:48px 5% 36px;

}

.footer-modern-inner{

  max-width:1100px;

  margin:0 auto;

  display:grid;

  grid-template-columns:260px 1fr 240px;

  gap:48px;

  align-items:start;

}

.footer-modern-address{

  font-size:.76rem;

  color:#fff;

  line-height:1.9;

  margin:0;

}

.footer-modern-nav ul{

  list-style:none;

  padding:0;

  margin:0;

  display:flex;

  flex-wrap:wrap;

  gap:8px 24px;

}

.footer-modern-nav ul li a{

  color:rgba(255,255,255,.65);

  font-size:.82rem;

  text-decoration:none;

  transition:color .2s;

}

.footer-modern-nav ul li a:hover{ color:#7ec8a0; opacity:1; }

.footer-modern-contact-label{

  font-size:.72rem;

  color:rgba(255,255,255,.5);

  margin-bottom:6px;

}

.footer-modern-tel{

  display:block;

  font-size:1.3rem;

  font-weight:700;

  color:#fff;

  text-decoration:none;

  margin-bottom:4px;

}

.footer-modern-tel:hover{ color:#7ec8a0; opacity:1; }

.footer-modern-hours{

  font-size:.72rem;

  color:rgba(255,255,255,.45);

  margin-bottom:14px;

}

.footer-modern-btn{

  display:inline-flex;

  align-items:center;

  gap:7px;

  background:#4a8c6e;

  color:#fff;

  padding:10px 20px;

  border-radius:50px;

  font-size:.8rem;

  font-weight:700;

  text-decoration:none;

  transition:opacity .2s;

}

.footer-modern-btn:hover{ opacity:.82; color:#fff; }

.footer-modern-bottom{

  background:#1e2d3d;

  text-align:center;

  padding:14px 5%;

}

.footer-modern-bottom p{

  font-size:.72rem;

  color:rgba(255,255,255,.35);

  margin:0;

}

@media only screen and (max-width:900px){

  .footer-modern-inner{ grid-template-columns:1fr 1fr; gap:28px; }

  .footer-modern-inner > *:last-child{ grid-column:1 / -1; }

}

@media only screen and (max-width:640px){

  .footer-modern-inner{ grid-template-columns:1fr; gap:24px; }

  .footer-modern-inner > *:last-child{ grid-column:auto; }

}

.footer-inner{

  max-width:1100px;

  margin:0 auto;

  padding:0 32px;

}

.footer-top{

  display:grid;

  grid-template-columns:140px 1fr 220px;

  gap:48px;

  align-items:start;

  padding:48px 0 36px;

  border-bottom:1px solid rgba(255,255,255,.12);

}

.footer-logo-clip{

  overflow:hidden;

  height:42px;

  width:78px;

  position:relative;

  display:block;

}

.footer-logo-clip::after{

  content:'';

  position:absolute;

  top:0;right:0;bottom:0;

  width:16px;

  background:linear-gradient(to right,transparent,#2e3f52);

  pointer-events:none;

}

.footer-logo-clip img{

  height:42px;

  width:auto;

  display:block;

  max-width:none;

}

.footer-company-name{

  font-size:.7rem;

  color:rgba(255,255,255,.4);

  margin-top:8px;

}

.footer-nav-list{

  display:flex;

  flex-wrap:wrap;

  gap:6px 20px;

  list-style:none;

  padding:0;

  margin:0;

}

.footer-nav-list li a{

  color:rgba(255,255,255,.65);

  font-size:.8rem;

  text-decoration:none;

  transition:color .2s;

}

.footer-nav-list li a:hover{color:#4a8c6e;opacity:1;}

.footer-info-area{ text-align:right; }

.footer-info-tel a{

  font-size:1.08rem;

  font-weight:700;

  color:#fff;

  text-decoration:none;

}

.footer-info-tel a:hover{color:#4a8c6e;opacity:1;}

.footer-info-row{

  font-size:.72rem;

  color:rgba(255,255,255,.48);

  margin-top:5px;

  line-height:1.8;

}

.footer-info-insta{

  display:inline-block;

  color:rgba(255,255,255,.6);

  font-size:.78rem;

  margin-top:10px;

  text-decoration:none;

}

.footer-info-insta:hover{color:#4a8c6e;opacity:1;}

#a-footer .header-insta,

#a-footer a[href*="instagram"]{ color:#e1306c !important; }

#a-footer a[href*="instagram"]:hover{ color:#f77737 !important; opacity:1; }

.footer-bottom{

  display:flex;

  align-items:center;

  justify-content:space-between;

  padding:18px 0;

}

.footer-copyright{

  font-size:.7rem;

  color:rgba(255,255,255,.35);

}

.c-credit{color:#fff;font-size:.75rem;text-align:center;}



/* PAGE TOP */

#page_top{

  width:90px;

  height:90px;

  position:fixed;

  right:0;

  bottom:50px;

  opacity:.6;

  z-index:99;

}

#page_top a{

  position:relative;

  display:block;

  width:90px;

  height:90px;

  text-decoration:none;

}

#page_top a::before{

  font-family:'Font Awesome 5 Free';

  font-weight:900;

  content:'\f102';

  font-size:25px;

  color:#4a8c6e;

  position:absolute;

  width:25px;

  height:25px;

  top:-40px;bottom:0;right:0;left:0;

  margin:auto;

  text-align:center;

}

#page_top a::after{

  content:'PAGE TOP';

  font-size:12px;

  color:#4a8c6e;

  position:absolute;

  top:45px;bottom:0;right:0;left:0;

  margin:auto;

  text-align:center;

}



/* ============================================================

   SUBPAGE HEADER

============================================================ */

.page-title-block{

  background-image:url(../img/bg_nav.png);

  background-repeat:repeat;

  text-align:center;

  padding:40px 20px 30px;

  border-bottom:3px solid #4a8c6e;

}

.page-title-block h2{

  font-family:'Noto Serif JP','Hiragino Mincho ProN',serif;

  font-size:1.8rem;

  font-weight:400;

  color:#555;

  letter-spacing:.1em;

}

.page-title-block .page-title-en{

  font-size:.8rem;

  color:#4a8c6e;

  letter-spacing:.25em;

  text-transform:uppercase;

  margin-top:6px;

}



/* ============================================================

   RESPONSIVE

============================================================ */

.pc{display:block !important}

.sp{display:none !important}



@media only screen and (max-width:640px){

  .pc{display:none !important}

  .sp{display:block !important}

  .head-logo-inner{display:block}

  .head-col{display:block;width:100%;text-align:center;padding:8px 0}

  .head-col-logo{text-align:center}

  .head-col-contact{text-align:center;padding:0}

  .nav-block{padding:0}

  .c-menu.-menu_a{display:block}

  .c-menu.-menu_a li{display:block;width:100%;border-bottom:1px solid #ddd}

  .footer-top{grid-template-columns:1fr;gap:24px;padding:32px 0 24px;}

  .footer-info-area{text-align:left;}

  .footer-inner{padding:0 20px;}

  .footer-bottom{flex-direction:column;gap:10px;text-align:center;}

  .hero-catchphrase{padding:52px 24px;}

  .hero-catch-main{font-size:1.9rem;}

  .service-grid{grid-template-columns:repeat(2,1fr);gap:12px;}

  .service-card{padding:20px 10px;}

  .block-pad{padding:20px 20px}

  .block-pad-large{padding:20px}

  .bg-kakomi-inner{padding:0 20px 20px}

}



/* ============================================================

   FORM

============================================================ */

.c-form table{width:100%;border-collapse:collapse}

.c-form table th{

  background:#f0f7f3;

  border:1px solid #c8dfd1;

  padding:12px 16px;

  font-size:.88rem;

  font-weight:700;

  color:#555;

  width:200px;

  vertical-align:top;

}

.c-form table td{

  border:1px solid #ddd;

  padding:10px 14px;

}

.c-form input[type=text],

.c-form input[type=email],

.c-form input[type=tel],

.c-form textarea,

.c-form select{

  width:100%;

  padding:8px 10px;

  border:1px solid #ccc;

  font-size:.88rem;

  font-family:inherit;

  outline:none;

  border-radius:2px;

}

.c-form input:focus,

.c-form textarea:focus{border-color:#4a8c6e}

.c-form textarea{min-height:130px;resize:vertical}

.badge-required{

  display:inline-block;

  background:#4a8c6e;

  color:#fff;

  font-size:.68rem;

  padding:1px 6px;

  border-radius:2px;

  margin-left:6px;

  vertical-align:middle;

}

.form-submit{text-align:center;margin-top:24px}

.form-submit button{

  background:#4a8c6e;

  color:#fff;

  border:none;

  padding:13px 56px;

  font-size:.95rem;

  font-family:inherit;

  letter-spacing:.1em;

  cursor:pointer;

  border-radius:3px;

}

.form-submit button:hover{opacity:.85}

@media only screen and (max-width:640px){

  .c-form table,

  .c-form table tbody,

  .c-form table tr,

  .c-form table th,

  .c-form table td{ display:block; width:100%; box-sizing:border-box; }

  .c-form table th{ border-bottom:none; padding:10px 12px 6px; }

  .c-form table td{ border-top:none; padding:6px 12px 10px; }

  .form-submit button{ width:100%; padding:14px 20px; }

}



/* ============================================================

   MISC

============================================================ */

/* hana2 装飾 */

.hana2{

  position:absolute;

  right:-150px;

  top:-100px;

}

@media only screen and (max-width:640px){.hana2{display:none}}



/* プレースホルダー画像 */

.img-ph{

  width:100%;

  display:flex;

  align-items:center;

  justify-content:center;

  border-radius:3px;

  color:#fff;

  font-size:2.5rem;

  min-height:280px;

}

.img-ph.orange{background:linear-gradient(135deg,#ec6623,#f9a82e)}

.emergency-box{ flex-direction:column; justify-content:center; }

.emergency-inner{

  display:flex;

  flex-direction:column;

  align-items:center;

  gap:6px;

  color:#fff;

  text-shadow:0 1px 3px rgba(0,0,0,.25);

}

.emergency-icon{ font-size:2.4rem; line-height:1; }

.emergency-title{

  font-size:.8rem;

  letter-spacing:.18em;

  opacity:.9;

}

.emergency-num{

  font-size:2rem;

  font-weight:700;

  line-height:1.25;

  text-align:center;

  letter-spacing:.04em;

}

.emergency-sub{

  font-size:.78rem;

  opacity:.88;

  letter-spacing:.06em;

  margin-top:4px;

  border-top:1px solid rgba(255,255,255,.5);

  padding-top:8px;

  width:100%;

  text-align:center;

}

.img-ph.green{background:linear-gradient(135deg,#2a9d8f,#57b8ad)}

.img-ph.dark{background:linear-gradient(135deg,#555,#888)}



/* STEP */

.step-list{max-width:680px;margin:0 auto}

.step-item{display:flex;gap:0;position:relative}

.step-num{

  flex:none;

  width:70px;

  text-align:center;

}

.step-circle{

  background:#4a8c6e;

  color:#fff;

  border-radius:50%;

  width:52px;

  height:52px;

  display:flex;

  align-items:center;

  justify-content:center;

  font-size:1.1rem;

  font-weight:700;

  margin:0 auto;

}

.step-line{

  width:2px;

  height:50px;

  background:#4a8c6e;

  margin:0 auto;

}

.step-body{

  flex:1;

  padding:6px 0 36px 16px;

}



/* スタッフカード */

.staff-grid{display:table;width:100%;border-collapse:separate;border-spacing:16px 0}

.staff-card{

  display:table-cell;

  width:33%;

  vertical-align:top;

  background:#fff;

  border:1px solid #eee;

  border-top:3px solid #4a8c6e;

  padding:20px;

  text-align:center;

}

.staff-photo{

  background:linear-gradient(135deg,#4a8c6e,#7bc4a2);

  width:90px;height:90px;

  border-radius:50%;

  margin:0 auto 12px;

  display:flex;

  align-items:center;

  justify-content:center;

  font-size:2rem;

  color:#fff;

}

.staff-name{font-size:.95rem;font-weight:700;color:#555;margin-bottom:3px}

.staff-role{font-size:.75rem;color:#4a8c6e;margin-bottom:10px;letter-spacing:.05em}

.staff-bio{font-size:.82rem;color:#666;line-height:1.75}



/* 採用要項 */

.recruit-box{

  margin-bottom:28px;

  border:1px solid #c8dfd1;

  border-top:3px solid #4a8c6e;

}

.recruit-box-head{

  background:#4a8c6e;

  color:#fff;

  padding:12px 22px;

  font-size:.93rem;

  font-weight:700;

}

.recruit-table{

  width:100%;

  border-collapse:collapse;

}

.recruit-table th{

  background:#f0f7f3;

  border:1px solid #c8dfd1;

  padding:11px 18px;

  font-size:.88rem;

  font-weight:700;

  color:#555;

  width:200px;

  white-space:nowrap;

  vertical-align:top;

}

.recruit-table td{

  border:1px solid #c8dfd1;

  padding:11px 18px;

  font-size:.88rem;

  color:#555;

}



/* マップ */

.map-wrap{

  position:relative;

  width:100%;

  padding-bottom:56.25%;

  height:0;

  overflow:hidden;

  border:1px solid #ddd;

  margin-top:20px;

}

.map-wrap iframe{

  position:absolute;

  top:0;

  left:0;

  width:100%;

  height:100%;

  display:block;

}



/* ============================================================

   ハンバーガー＆モバイルメニュー

============================================================ */

.hamburger-btn{

  display:none;

  flex-direction:column;

  justify-content:center;

  align-items:center;

  gap:5px;

  width:40px;

  height:40px;

  background:none;

  border:none;

  cursor:pointer;

  padding:6px;

  flex-shrink:0;

}

.hamburger-btn span{

  display:block;

  width:22px;

  height:2px;

  background:#fff;

  border-radius:2px;

}

@media only screen and (max-width:900px){

  .hamburger-btn{ display:flex; }

}

.mobile-menu{

  display:none;

  position:fixed;

  inset:0;

  background:rgba(22,35,50,.97);

  z-index:2000;

  flex-direction:column;

  align-items:center;

  justify-content:center;

  padding:0 0 40px;

}

.mobile-menu.open{ display:flex; }

.mobile-menu-close{

  position:absolute;

  top:18px;right:18px;

  background:none;border:none;

  color:#fff;font-size:1.6rem;

  cursor:pointer;line-height:1;padding:8px;

}

.mobile-menu-nav{

  display:flex;

  flex-direction:column;

  align-items:center;

  width:100%;

}

.mobile-menu-nav a{

  color:rgba(255,255,255,.85);

  font-size:.95rem;

  font-weight:700;

  padding:16px 24px;

  text-align:center;

  width:100%;

  border-bottom:1px solid rgba(255,255,255,.1);

  text-decoration:none;

  letter-spacing:.05em;

  transition:background .2s;

}

.mobile-menu-nav-sns{

  display:flex;

  gap:12px;

  padding:16px 0 8px;

  justify-content:center;

  width:100%;

  border-top:1px solid rgba(255,255,255,.12);

  margin-top:4px;

}

.mobile-menu-nav-sns-btn{

  display:inline-flex;

  align-items:center;

  gap:7px;

  padding:9px 20px;

  border-radius:24px;

  font-size:.82rem;

  font-weight:700;

  text-decoration:none;

  letter-spacing:.04em;

}

.mobile-menu-nav-sns-insta{

  background:linear-gradient(135deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888);

  color:#fff;

}

.mobile-menu-nav-sns-line{

  background:#06C755;

  color:#fff;

}

.mobile-menu-nav a:hover,

.mobile-menu-nav a.current{

  color:#fff;

  background:rgba(255,255,255,.08);

  opacity:1;

}

.mobile-menu-bottom{

  margin-top:28px;

  display:flex;

  flex-direction:column;

  align-items:center;

  gap:10px;

}

.mobile-menu-tel{

  display:inline-flex;

  align-items:center;

  gap:8px;

  color:#fff;

  font-size:1.1rem;

  font-weight:700;

  text-decoration:none;

  letter-spacing:.04em;

}

.mobile-menu-badge-txt{

  font-size:.72rem;

  color:rgba(255,255,255,.55);

  letter-spacing:.04em;

}

.mobile-menu-sns{

  display:flex;

  gap:16px;

  margin-top:4px;

}

.mobile-menu-sns-btn{

  width:44px;

  height:44px;

  border-radius:50%;

  display:flex;

  align-items:center;

  justify-content:center;

  font-size:1.4rem;

  text-decoration:none;

  color:#fff;

  transition:opacity .2s;

}

.mobile-menu-sns-btn:hover{ opacity:.8; color:#fff; }

.mobile-menu-sns-insta{ background:radial-gradient(circle at 30% 107%,#fdf497 0%,#fd5949 45%,#d6249f 60%,#285AEB 90%); }

.mobile-menu-sns-line{ background:#06C755; }



/* ============================================================

   ヒーローバッジ（スマホ文字はみ出し修正）

============================================================ */

@media only screen and (max-width:900px){

  .nh-badge{

    width:120px;

    height:120px;

    font-size:.8em;

  }

  .nh-badge-num{

    font-size:.78rem;

  }

  .nh-badge-sub{

    font-size:.58rem;

    line-height:1.5;

  }

}

@media only screen and (max-width:480px){

  .nh-badge{

    width:100px;

    height:100px;

  }

  .nh-badge-num{

    font-size:.7rem;

  }

  .nh-badge-sub{

    font-size:.52rem;

  }

}



/* ============================================================

   全ページ共通モバイル余白補正

============================================================ */

@media only screen and (max-width:640px){

  .block-pad{ padding-left:0; padding-right:0; }

  .about-section,.services-section,.news-block,.link-banner-section{

    margin-left:0; margin-right:0;

  }

}



/* ============================================================

   サービスページ・各下層ページ共通クラス

============================================================ */

.page-hero{

  background:linear-gradient(135deg,#2e3f52 0%,#3a5a6e 100%);

  padding:52px 24px;

  text-align:center;

  color:#fff;

}

.page-hero h1{

  font-size:2rem;

  font-weight:700;

  margin-bottom:6px;

}

.page-hero p{

  font-size:.85rem;

  opacity:.6;

  letter-spacing:.2em;

}

.section{ background:#fff; }

.section.bg-light{ background:#f9f6f1; }

.section-inner{

  max-width:1100px;

  margin:0 auto;

  padding:60px 24px;

}

.section-title{

  font-size:1.6rem;

  font-weight:700;

  color:#3d3226;

  margin-bottom:12px;

  line-height:1.4;

}

.section-title span{

  display:block;

  font-size:.72rem;

  font-weight:700;

  color:#4a8c6e;

  letter-spacing:.2em;

  margin-bottom:4px;

}

.divider{

  width:40px;

  height:3px;

  background:#4a8c6e;

  border-radius:2px;

  margin:0 0 32px;

}

.two-col{

  display:flex;

  gap:48px;

  align-items:center;

}

.two-col-text{ flex:1; }

.two-col-text h2{ font-size:1.3rem; font-weight:700; color:#3d3226; margin-bottom:14px; line-height:1.5; }

.two-col-text p{ font-size:.88rem; color:#666; line-height:2; margin-bottom:10px; }

.two-col-img{ flex:0 0 240px; font-size:5rem; text-align:center; }

.card-grid{

  display:grid;

  grid-template-columns:repeat(3,1fr);

  gap:20px;

}

.card{

  background:#fff;

  border-radius:14px;

  border:1px solid #ede8df;

  padding:28px 22px;

  text-align:center;

}

.card-icon{ font-size:2.2rem; margin-bottom:12px; }

.card h3{ font-size:.95rem; font-weight:700; color:#3d3226; margin-bottom:10px; }

.card p{ font-size:.82rem; color:#888; line-height:1.85; }

.btn{

  display:inline-flex;

  align-items:center;

  gap:8px;

  background:#4a8c6e;

  color:#fff;

  padding:12px 26px;

  border-radius:50px;

  font-size:.88rem;

  font-weight:700;

  text-decoration:none;

  transition:opacity .2s;

}

.btn:hover{ opacity:.82; color:#fff; }

.cta{

  background:#2e3f52;

  color:#fff;

  text-align:center;

  padding:52px 24px;

}

.cta h2{ font-size:1.5rem; font-weight:700; margin-bottom:12px; }

.cta p{ font-size:.9rem; opacity:.8; margin-bottom:24px; line-height:1.8; }

@media(max-width:900px){

  .card-grid{ grid-template-columns:repeat(2,1fr); }

  .two-col{ flex-direction:column; gap:24px; }

  .two-col-img{ flex:none; }

}

@media(max-width:640px){

  .card-grid{ grid-template-columns:1fr; }

  .section-inner{ padding:40px 16px; }

  .page-hero h1{ font-size:1.5rem; }

}



/* ===== SERVICE PAGE ===== */

.section-catch{

  font-size:1.3rem;

  font-weight:700;

  color:#3d3226;

  line-height:1.8;

  margin:0;

}

.section-lead{

  font-size:.95rem;

  color:#555;

  line-height:2;

  max-width:800px;

  margin:0 auto;

}

.service-sub-h3{

  font-size:1.05rem;

  font-weight:700;

  color:#3d3226;

  margin-bottom:16px;

  padding-bottom:8px;

  border-bottom:2px solid #4a8c6e;

}

.service-insurance-card{

  display:flex;

  align-items:flex-start;

  gap:14px;

  background:#f9f6f1;

  border-left:4px solid #4a8c6e;

  border-radius:6px;

  padding:16px;

}

.service-insurance-icon{

  font-size:1.4rem;

  color:#4a8c6e;

  flex-shrink:0;

  margin-top:2px;

}

.service-insurance-title{

  font-weight:700;

  color:#3d3226;

  font-size:.95rem;

  margin-bottom:6px;

}

/* ステップグリッド */

.step-grid{

  display:flex;

  align-items:flex-start;

  gap:0;

  justify-content:center;

}

.step-card{

  flex:1;

  max-width:280px;

  text-align:center;

  padding:28px 20px;

  background:#fff;

  border-radius:12px;

  box-shadow:0 2px 12px rgba(0,0,0,.07);

}

.step-card .step-num{

  width:52px;

  height:52px;

  background:#4a8c6e;

  color:#fff;

  border-radius:50%;

  font-size:1.2rem;

  font-weight:700;

  display:flex;

  align-items:center;

  justify-content:center;

  margin:0 auto 14px;

}

.step-card h3{

  font-size:1rem;

  font-weight:700;

  color:#3d3226;

  margin-bottom:10px;

}

.step-card p{

  font-size:.84rem;

  color:#666;

  line-height:1.8;

}

.step-arrow{

  flex:none;

  display:flex;

  align-items:center;

  justify-content:center;

  padding:0 12px;

  margin-top:52px;

  color:#4a8c6e;

  font-size:1.2rem;

}

@media(max-width:900px){

  .step-grid{ flex-direction:column; align-items:center; gap:16px; }

  .step-arrow{ transform:rotate(90deg); margin-top:0; padding:4px 0; }

  .step-card{ max-width:480px; width:100%; }

  .section-catch{ font-size:1.1rem; }

}



/* news page list */

.news-list--page{ padding:0; list-style:none; }

.news-list--page .news-item{

  display:flex;

  align-items:baseline;

  gap:12px;

  padding:16px 0;

  border-bottom:1px solid #e8e4dc;

  flex-wrap:wrap;

}

.news-list--page .news-title-link{

  font-size:.9rem;

  color:#444;

  flex:1;

  min-width:0;

}



/* ============================================================

   MOBILE BOTTOM FIXED NAV

============================================================ */

.sp-bottom-nav{

  display:none;

}

@media only screen and (max-width:900px){

  .sp-bottom-nav{

    display:flex;

    position:fixed;

    bottom:0; left:0; right:0;

    height:56px;

    background:#fff;

    border-top:1px solid #ddd;

    z-index:9999;

    box-shadow:0 -2px 8px rgba(0,0,0,.10);

  }

  .sp-bottom-nav a{

    flex:1;

    display:flex;

    flex-direction:column;

    align-items:center;

    justify-content:center;

    gap:3px;

    font-size:.6rem;

    font-weight:700;

    text-decoration:none;

    color:#555;

    letter-spacing:.03em;

  }

  .sp-bottom-nav a i{

    font-size:1.3rem;

  }

  .sp-bottom-nav a.sp-btn-tel{ color:#4a8c6e; }

  .sp-bottom-nav a.sp-btn-insta{ color:#C13584; }

  .sp-bottom-nav a.sp-btn-line{ color:#06C755; }

  .sp-bottom-nav a:active{ opacity:.7; }

  body{ padding-bottom:56px; }

}



/* ============================================================

   FOOTER内への !important 干渉防止

============================================================ */

#a-footer .header-logo-link,

#a-footer .header-nav-list li a,

#a-footer .header-logo-link a { color:#fff !important; }

#a-footer .header-logo-img { filter:none !important; }



/* ===== ヘッダー FAX・事業者番号 ===== */

.header-info {
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  font-size:.6rem;
  color:rgba(255,255,255,.65);
  line-height:1.7;
  white-space:nowrap;
  flex-shrink:0;
}

.mobile-menu-info {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:2px;
  font-size:.75rem;
  color:rgba(255,255,255,.55);
  line-height:1.7;
  margin-top:4px;
}



/* ===== ヒーロー シーサー ===== */

.hero-shisa {
  position:absolute;
  top:30px;
  left:35%;
  width:280px;
  opacity:.8;
  pointer-events:none;
  z-index:1;
}

@media only screen and (max-width:900px) {
  .hero-shisa {
    width:150px;
    top:auto;
    left:auto;
    bottom:90px;
    right:10px;
  }
}

@media only screen and (max-width:480px) {
  .hero-shisa {
    width:120px;
    bottom:80px;
    right:8px;
  }
}



/* ===== 沖縄イラスト装飾 ===== */

.okn {
  position:absolute;
  pointer-events:none;
  z-index:-1;
  line-height:0;
}

.okn img {
  display:block;
  height:auto;
  opacity:.05;
}

@media only screen and (max-width:640px) {
  .okn { display:none; }
}

/* 重要事項説明書 ダウンロード区画 */
.doc-download{
  max-width:720px;
  margin:0 auto;
  background:#eef7f1;
  border:2px solid #4a8c6e;
  border-radius:16px;
  padding:26px 30px;
  display:flex;
  align-items:center;
  gap:22px;
  box-shadow:0 4px 14px rgba(74,140,110,.12);
}
.doc-download-icon{
  flex-shrink:0;
  width:64px;
  height:64px;
  border-radius:50%;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 2px 8px rgba(0,0,0,.08);
}
.doc-download-icon i{ font-size:2rem; color:#c0392b; }
.doc-download-body{ flex:1 1 auto; min-width:0; }
.doc-download-title{ font-size:1.15rem; font-weight:700; color:#3d3226; margin-bottom:4px; }
.doc-download-meta{ font-size:.85rem; color:#6b6355; }
.doc-download-btn{
  flex-shrink:0;
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:#4a8c6e;
  color:#fff;
  font-weight:700;
  font-size:.95rem;
  text-decoration:none;
  padding:13px 24px;
  border-radius:50px;
  box-shadow:0 3px 10px rgba(74,140,110,.28);
  transition:background .2s, transform .2s;
  white-space:nowrap;
}
.doc-download-btn:hover{ background:#3d7a5e; transform:translateY(-2px); }
@media only screen and (max-width:640px){
  .doc-download{ flex-direction:column; text-align:center; gap:16px; padding:24px 20px; }
  .doc-download-body{ width:100%; }
  .doc-download-btn{ width:100%; justify-content:center; }
}

