/* =========================================================
   K'clean refresh — header / hero / cleanup  (loaded last)
   ========================================================= */
:root{
  --mint:#3AB6A0; --mint-d:#2C8C7B; --mint-dd:#25786A;
  --mint-l:#EAF7F4; --mint-a:#6FCBBB; --ink:#2b3a37; --ink-2:#5b6b67;
}

/* ============ HEADER ============ */
header#header{
  position:sticky !important; top:0; left:0; width:100%;
  background:#fff; z-index:9999;
  box-shadow:0 2px 20px rgba(37,120,106,.10);
}
header#header .head-bottom{ display:none !important; }
/* release the old fixed 110px clamp so the bar fits its content (util + main) */
header#header{ height:auto !important; min-height:0 !important; }

/* sticky header is in-flow now → drop the old fixed-header offset gap */
.contents{ padding-top:0 !important; }

/* utility strip */
.kc-util{ background:linear-gradient(90deg,var(--mint-dd),var(--mint)); color:#fff; }
.kc-util__in{
  max-width:1200px; margin:0 auto; padding:8px 26px;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  font-size:12.5px; letter-spacing:.04em;
}
.kc-util a{ color:#fff; text-decoration:none; }
.kc-util__l{ opacity:.95; }
.kc-util__r{ display:flex; align-items:center; gap:22px; }
.kc-util__tel{ font-weight:700; font-size:14px; letter-spacing:.05em; }
.kc-util__tel .ic{ margin-right:5px; }
.kc-util__ig{ display:inline-flex; align-items:center; gap:6px; opacity:.95; transition:opacity .2s; }
.kc-util__ig:hover{ opacity:1; }
@media(max-width:900px){ .kc-util{ display:none; } }

/* main bar */
header#header .wrap.position{ max-width:1200px; width:100%; margin:0 auto; }
header#header .ClearFix.PT25{
  display:flex !important; align-items:center; justify-content:space-between;
  padding:14px 26px !important;
}
header#header h1{ float:none !important; width:auto !important; max-width:none !important; margin:0; padding:0 !important; }
header#header h1 img{ height:56px; width:auto; display:block; }

header#header .header-link{ float:none !important; width:auto !important; }
header#header .header-link ul{
  display:flex !important; align-items:center; gap:2px;
  float:none !important; margin:0; padding:0; width:auto !important;
}
header#header .header-link ul li{ list-style:none; width:auto !important; margin:0 !important; }
header#header .header-link ul li a{
  display:block; padding:10px 15px !important; color:var(--ink);
  font-weight:600; font-size:15px; letter-spacing:.03em; position:relative;
  transition:color .2s; background:none !important; height:auto !important; line-height:1.4 !important;
}
header#header .header-link ul li:not(.contact-btn) a::after{
  content:""; position:absolute; left:15px; right:15px; bottom:2px; height:2px;
  background:var(--mint); transform:scaleX(0); transform-origin:left; transition:transform .25s;
}
header#header .header-link ul li:not(.contact-btn) a:hover{ color:var(--mint-d); }
header#header .header-link ul li:not(.contact-btn) a:hover::after{ transform:scaleX(1); }
header#header .header-link ul li.contact-btn{ margin-left:14px !important; }
header#header .header-link ul li.contact-btn a.cbtn{
  display:inline-flex !important; align-items:center; gap:11px;
  background:linear-gradient(135deg,var(--mint) 0%, var(--mint-d) 55%, var(--mint-dd) 100%) !important;
  color:#fff !important; border-radius:32px;
  padding:9px 26px 9px 20px !important; letter-spacing:.02em;
  border:1.5px solid rgba(255,255,255,.28);
  box-shadow:0 12px 26px rgba(44,140,123,.4); transition:.22s;
}
header#header .header-link ul li.contact-btn a.cbtn::after{ display:none; }
.cbtn__ic{ font-size:1.55em; line-height:1; }
.cbtn__tx{ display:flex; flex-direction:column; align-items:flex-start; line-height:1.25; }
.cbtn__tx small{ font-size:.6em; opacity:.92; font-weight:500; letter-spacing:.01em; }
.cbtn__tx b{ font-size:1em; font-weight:700; letter-spacing:.05em; }
header#header .header-link ul li.contact-btn a.cbtn:hover{
  transform:translateY(-2px); box-shadow:0 16px 32px rgba(44,140,123,.5); filter:brightness(1.06);
}

/* MV catch legibility: darker bottom scrim + shadow on the marquee */
.mainslide-wrap .slide-dot{
  background:linear-gradient(180deg, rgba(0,0,0,.12) 0%, rgba(0,0,0,0) 42%, rgba(0,0,0,.5) 100%) !important;
  opacity:1 !important;
}
.textsliderbox img{ filter:brightness(0) invert(1) drop-shadow(0 3px 10px rgba(0,0,0,.55)); opacity:.96; }

/* SP hamburger tint */
header#header .menu-btn .menu-trigger span{ background:var(--mint-d) !important; }

/* ============ About Us(ser-bg): 背景の繰り返し写真を撤去（クリーンな白背景に） ============ */
.ser-bg{ background:#ffffff !important; padding-bottom:24px !important; }
.ser-bg .sp-full2{ margin-top:24px !important; }
.sec-5{ padding-bottom:36px !important; }
/* ============ About Us(ser-bg): サービス写真は原寸(74%)、家族は画像側で拡大 ============ */
.ser-bg .ser-flex{ align-items:flex-end !important; }
.ser-bg .ser-flex .ser-list{ width:74% !important; }
.ser-bg .ser-img{ width:24% !important; position:relative; z-index:2; }
.ser-bg .ser-img img{ width:100% !important; max-width:none !important; margin-top:-90px !important; margin-left:0 !important; }

/* ============ com-area (Water/Vacant/Floor) : black → mint ============ */
.com-area{ background:linear-gradient(180deg,#2C8C7B 0%, #1f6357 52%, #25786A 100%) !important; }
.com-area .sec-2, .com-area .sec-3, .com-area .sec-4,
.sec-2, .sec-3, .sec-4{ background:transparent !important; }
.com-area .ttl-en span{ color:#BFF0E6 !important; }
.com-area .link-btn a{ background:#ffffff !important; border:none !important; color:#25786A !important; box-shadow:0 10px 24px rgba(0,0,0,.2); }
.com-area .link-btn a .tex1{ color:#25786A !important; }
.com-area .link-btn a .yajirushi img{ filter:invert(38%) sepia(28%) saturate(900%) hue-rotate(120deg); }
/* About Us(sec-5) の黒ボタンもミントに */
.sec-5 .link-btn a{ background:#2C8C7B !important; border:none !important; box-shadow:0 8px 20px rgba(44,140,123,.26); }
.sec-5 .link-btn a:hover{ background:#3AB6A0 !important; }

/* ============ MV : single fixed main visual, fits header+MV into 100vh ============ */
.mainslide-wrap,
.mainslide-wrap .slider-wrap,
.mainslide-wrap .slider,
.mainslide-wrap .slider .slide-box,
.mainslide-wrap .slider .slide-box.slide-1{
  display:block !important;
  height:calc(100vh - var(--header-h, 126px)) !important;
  height:calc(100dvh - var(--header-h, 126px)) !important;
  min-height:380px !important;
}
.mainslide-wrap .slider-wrap{ position:absolute !important; }
.slider-wrap .slide-box.slide-1{
  background:url("../images/top/mainvisual_01.jpg") no-repeat center center / cover !important;
}
/* soft scrim so the catch copy stays legible over the bright photo */
.mainslide-wrap .slide-dot{
  background:linear-gradient(180deg, rgba(0,0,0,.10) 0%, rgba(0,0,0,0) 34%, rgba(0,0,0,.28) 100%) !important;
  opacity:1 !important;
}

/* ============ Column section : light bg + 3 photo cards ============ */
.sec-8{ background:linear-gradient(180deg,#F6FBFA 0%, #EAF7F4 100%) !important; padding-top:90px !important; }
.sec-8 .ttl-en{ color:#243b36 !important; }
.sec-8 .ttl-en span{ color:#3AB6A0 !important; }
.col-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.col-card{ display:flex; flex-direction:column; background:#fff; border-radius:16px; overflow:hidden; text-decoration:none; color:inherit; box-shadow:0 10px 28px rgba(37,120,106,.1); transition:transform .28s cubic-bezier(.2,.8,.2,1), box-shadow .28s; }
.col-card:hover{ transform:translateY(-6px); box-shadow:0 22px 44px rgba(37,120,106,.2); }
.col-card__img{ display:block; aspect-ratio:16/10; overflow:hidden; background:#dfeeea; }
.col-card__img img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .45s; }
.col-card:hover .col-card__img img{ transform:scale(1.06); }
.col-card__body{ display:block; padding:20px 22px 24px; }
.col-card__meta{ display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.col-card__cat{ background:#3AB6A0; color:#fff; font-size:.72em; font-weight:700; padding:4px 12px; border-radius:999px; letter-spacing:.06em; }
.col-card__date{ color:#8a9a95; font-size:.85em; font-family:'Montserrat',sans-serif; }
.col-card__ttl{ display:block; font-weight:700; color:#243b36; line-height:1.65; font-size:1.02em; }
.col-more{ text-align:right; margin-top:26px; }
.col-more a{ color:#2C8C7B; font-weight:700; text-decoration:none; letter-spacing:.02em; transition:color .2s; }
.col-more a:hover{ color:#3AB6A0; }
@media(max-width:820px){ .col-cards{ grid-template-columns:1fr; max-width:420px; margin:0 auto; } }

/* ============ bottom CTA banner button — readable over bright photo ============ */
.sec-8 .bnr-box .link-btn a{
  background:var(--mint-d) !important; border:none !important; color:#fff !important;
  box-shadow:0 12px 28px rgba(0,0,0,.28) !important;
}
.sec-8 .bnr-box .link-btn a .tex2{ color:#fff !important; }
/* center the banner button vertically within the section */
.sec-8 .bnr-box .link-btn{ top:50% !important; bottom:auto !important; transform:translateY(-50%); }

/* ============ TOP: 3LP card nav (photo-free, premium) ============ */
/* com-area の position:fixed パララックス背景に被られないよう前面へ */
.lp-nav{ position:relative; z-index:15; }
.lp-nav-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.lp-card{
  position:relative; display:flex; flex-direction:column; align-items:flex-start;
  background:#fff; border-radius:22px; padding:46px 32px 36px;
  text-decoration:none; color:inherit; overflow:hidden;
  border:1px solid rgba(58,182,160,.16);
  box-shadow:0 10px 30px rgba(37,120,106,.08);
  transition:transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s, border-color .3s;
}
.lp-card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:5px;
  background:linear-gradient(90deg,#6FCBBB,#2C8C7B);
  transform:scaleX(0); transform-origin:left; transition:transform .4s cubic-bezier(.2,.8,.2,1);
}
.lp-card:hover{ transform:translateY(-8px); box-shadow:0 28px 54px rgba(37,120,106,.20); border-color:rgba(58,182,160,.3); }
.lp-card:hover::before{ transform:scaleX(1); }
.lp-card__no{
  position:absolute; top:24px; right:28px; font-family:'Montserrat',sans-serif;
  font-size:2.7em; font-weight:700; color:rgba(58,182,160,.15); line-height:1;
}
.lp-card__ic{
  display:inline-flex; align-items:center; justify-content:center;
  width:68px; height:68px; border-radius:19px;
  background:linear-gradient(135deg,#EAF7F4,#d3efe8); color:#2C8C7B;
  margin-bottom:22px; transition:transform .3s;
}
.lp-card:hover .lp-card__ic{ transform:scale(1.06) rotate(-3deg); }
.lp-card__ic svg{ width:34px; height:34px; }
.lp-card__cat{
  font-size:.7em; font-weight:700; letter-spacing:.1em; color:#2C8C7B;
  background:rgba(58,182,160,.12); padding:5px 13px; border-radius:999px; margin-bottom:15px;
}
.lp-card__ttl{ font-size:1.18em; font-weight:700; color:#243b36; line-height:1.5; margin-bottom:14px; letter-spacing:.01em; }
.lp-card__desc{ font-size:.92em; color:#5b6b67; line-height:1.95; margin-bottom:26px; flex:1; }
.lp-card__more{ display:inline-flex; align-items:center; gap:10px; color:#2C8C7B; font-weight:700; font-size:.95em; }
.lp-card__more em{ font-style:normal; font-size:1.1em; transition:transform .28s; }
.lp-card:hover .lp-card__more em{ transform:translateX(7px); }
@media(max-width:820px){
  .lp-nav-grid{ grid-template-columns:1fr; max-width:440px; margin:0 auto; }
}

/* ============ HERO (index) ============ */
.kv{
  background:
    radial-gradient(120% 120% at 88% 12%, rgba(111,203,187,.28), transparent 60%),
    linear-gradient(160deg, var(--mint-l) 0%, #ffffff 62%);
  overflow:hidden;
}
.kv__inner{
  max-width:1200px; margin:0 auto; padding:76px 26px 84px;
  display:flex; align-items:center; gap:56px;
}
.kv__body{ flex:1 1 52%; min-width:0; }
.kv__en{
  font-family:'Montserrat',sans-serif; font-weight:600; letter-spacing:.18em;
  color:var(--mint-d); font-size:14px; margin:0 0 18px; text-transform:none;
}
.kv__en::before{ content:""; display:inline-block; width:34px; height:2px; background:var(--mint); vertical-align:middle; margin-right:12px; }
.kv__ttl{
  font-family:'Noto Serif JP',serif; font-weight:700; color:var(--ink);
  font-size:clamp(30px,4vw,52px); line-height:1.32; letter-spacing:.02em; margin:0 0 22px;
}
.kv__ttl br{ line-height:1.32; }
.kv__lead{ color:var(--ink-2); font-size:16px; line-height:2.05; margin:0 0 26px; }
.kv__tags{ display:flex; flex-wrap:wrap; gap:10px; list-style:none; padding:0; margin:0 0 32px; }
.kv__tags li{
  background:#fff; color:var(--mint-d); border:1px solid rgba(58,182,160,.4);
  border-radius:999px; padding:7px 16px; font-size:13px; font-weight:600;
  box-shadow:0 3px 10px rgba(37,120,106,.06);
}
.kv__cta{ display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
.kv__btn{
  display:inline-flex; align-items:center; gap:10px; text-decoration:none;
  border-radius:999px; font-weight:700; letter-spacing:.03em; transition:.2s;
}
.kv__btn--main{
  background:var(--mint-d); color:#fff; padding:17px 34px; font-size:16px;
  box-shadow:0 12px 26px rgba(44,140,123,.3);
}
.kv__btn--main span{ transition:transform .2s; }
.kv__btn--main:hover{ background:var(--mint); transform:translateY(-2px); }
.kv__btn--main:hover span{ transform:translateX(4px); }
.kv__btn--tel{
  background:#fff; color:var(--mint-d); padding:15px 26px; font-size:19px;
  border:1.5px solid rgba(58,182,160,.45); box-shadow:0 6px 16px rgba(37,120,106,.08);
}
.kv__btn--tel .ic{ font-size:16px; }
.kv__btn--tel:hover{ border-color:var(--mint); color:var(--mint); }

.kv__media{ flex:0 0 42%; position:relative; }
.kv__photo{
  position:relative; border-radius:22px; overflow:hidden;
  box-shadow:0 26px 60px rgba(37,120,106,.24); aspect-ratio:4/5; background:#dfeeea;
}
.kv__photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.kv__badge{
  position:absolute; left:-24px; bottom:34px; background:#fff; border-radius:18px;
  padding:16px 22px; box-shadow:0 16px 36px rgba(37,120,106,.22);
  display:flex; align-items:baseline; gap:10px; border:1px solid rgba(58,182,160,.2);
}
.kv__badge b{ font-family:'Montserrat',sans-serif; color:var(--mint-d); font-size:40px; line-height:1; font-weight:700; }
.kv__badge b small{ font-size:20px; }
.kv__badge span{ color:var(--ink-2); font-size:12.5px; font-weight:600; line-height:1.5; max-width:74px; }

@media(max-width:900px){
  .kv__inner{ flex-direction:column; gap:40px; padding:48px 22px 56px; }
  .kv__body{ order:2; }
  .kv__media{ order:1; width:100%; max-width:360px; }
  .kv__cta{ }
  .kv__badge{ left:auto; right:-10px; }
}
@media(max-width:520px){
  .kv__btn--main,.kv__btn--tel{ width:100%; justify-content:center; }
}

/* ============ sec-1 : solid mint (white line-art SVG stays visible) ============ */
.sec-1{
  background:linear-gradient(155deg, var(--mint) 0%, var(--mint-dd) 100%) !important;
  color:#fff !important; padding-top:90px !important; padding-bottom:96px !important;
}
.sec-1 .main-copy{ color:#fff !important; font-weight:700; }
.sec-1 .TACenter{ color:rgba(255,255,255,.94) !important; }
.sec-1 .link-btn a{
  background:#ffffff !important; border:none !important; color:var(--mint-dd) !important;
  box-shadow:0 12px 26px rgba(0,0,0,.14);
}
.sec-1 .link-btn a .tex1,.sec-1 .link-btn a .tex2{ color:var(--mint-dd) !important; }
.sec-1 .link-btn a .yajirushi img{ filter:invert(38%) sepia(28%) saturate(900%) hue-rotate(120deg); }
.sec-1 .link-btn a:hover{ background:var(--mint-l) !important; }

/* ============ text-over-photo readability (mint scrim) ============ */
/* Our Works — dark text over bright photo → mint scrim + white text */
.sec-6::before{
  content:""; position:absolute; inset:0; z-index:0;
  background:linear-gradient(180deg, rgba(37,120,106,.52) 0%, rgba(28,92,80,.62) 100%);
}
.sec-6 > .container{ position:relative; z-index:1; }
.sec-6 .ttl-en,.sec-6 .ttl-jp,.sec-6 p,.sec-6 .ttl-en span{ color:#fff !important; }
.sec-6 .link-btn a{ background:#fff !important; border:none !important; color:var(--mint-dd) !important; }
.sec-6 .link-btn a .tex1{ color:var(--mint-dd) !important; }
.sec-6 .link-btn a .yajirushi img{ filter:invert(38%) sepia(28%) saturate(900%) hue-rotate(120deg); }

/* Voice — white text over bright photo → dark mint scrim */
.sec-7::before{
  content:""; position:absolute; inset:0; z-index:0;
  background:linear-gradient(180deg, rgba(37,120,106,.5) 0%, rgba(18,54,48,.66) 100%);
}
.sec-7 > .container{ position:relative; z-index:1; }
.sec-7 .ttl-en span{ color:#BFF0E6 !important; }
.sec-7 p{ color:#fff !important; }

/* About page「選ばれる理由」— dark text over bright bg.jpg → mint scrim + white text */
.bottom-con{ position:relative; }
.bottom-con::before{
  content:""; position:absolute; inset:0; z-index:0;
  background:linear-gradient(180deg, rgba(37,120,106,.52) 0%, rgba(28,92,80,.62) 100%);
}
.bottom-con > .container{ position:relative; z-index:1; }
.bottom-con .sub-ttl,.bottom-con .big-ttl2,.bottom-con p{ color:#fff !important; }

/* ============ Voice : premium testimonial cards ============ */
.voice-card{
  position:relative; background:#fff; border-radius:18px; padding:42px 40px 32px;
  margin-bottom:26px; box-shadow:0 12px 34px rgba(37,120,106,.09);
  border:1px solid rgba(58,182,160,.14); overflow:hidden;
  transition:transform .28s cubic-bezier(.2,.8,.2,1), box-shadow .28s;
}
.voice-card::before{ content:""; position:absolute; top:0; left:0; bottom:0; width:5px; background:linear-gradient(180deg,#6FCBBB,#2C8C7B); }
.voice-card:hover{ transform:translateY(-5px); box-shadow:0 24px 48px rgba(37,120,106,.16); }
.voice-card__q{ position:absolute; top:8px; right:26px; font-family:Georgia,'Times New Roman',serif; font-size:5.2em; line-height:1; color:rgba(58,182,160,.16); font-weight:700; pointer-events:none; }
.voice-card__body{ line-height:2.05; color:#3f4f4b; position:relative; z-index:1; margin:0 0 22px; }
.voice-card__foot{ display:flex; align-items:center; gap:14px; border-top:1px solid #eef4f2; padding-top:18px; }
.voice-card__avatar{ display:inline-flex; align-items:center; justify-content:center; width:46px; height:46px; border-radius:50%; background:linear-gradient(135deg,#3AB6A0,#2C8C7B); color:#fff; flex:0 0 auto; box-shadow:0 6px 14px rgba(44,140,123,.3); }
.voice-card__avatar svg{ width:24px; height:24px; }
.voice-card__name{ color:#2C8C7B; font-weight:700; font-size:1.05em; letter-spacing:.02em; }

/* ============ FAQ : accordion (native <details>) ============ */
.faq-item{ border:1px solid #e5efec; border-radius:13px; margin-bottom:12px; background:#fff; transition:box-shadow .25s, border-color .25s; }
.faq-item[open]{ box-shadow:0 10px 26px rgba(37,120,106,.1); border-color:rgba(58,182,160,.3); }
.faq-item summary{ list-style:none; cursor:pointer; display:flex; align-items:center; gap:14px; padding:19px 54px 19px 18px; position:relative; font-weight:700; color:#243b36; line-height:1.6; transition:color .2s; }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item[open] summary{ color:#2C8C7B; }
.faq-q-badge{ flex:0 0 auto; width:30px; height:30px; border-radius:50%; background:#3AB6A0; color:#fff; display:inline-flex; align-items:center; justify-content:center; font-family:'Montserrat',sans-serif; font-size:.92em; font-weight:700; }
.faq-item summary::after{ content:""; position:absolute; right:24px; top:50%; width:9px; height:9px; margin-top:-6px; border-right:2px solid #3AB6A0; border-bottom:2px solid #3AB6A0; transform:rotate(45deg); transition:transform .28s; }
.faq-item[open] summary::after{ transform:rotate(-135deg); margin-top:-2px; }
.faq-a{ position:relative; padding:2px 24px 22px 62px; color:#5b6b67; line-height:2.0; }
.faq-a::before{ content:"A"; position:absolute; left:18px; top:0; width:30px; height:30px; border-radius:50%; background:#EAF7F4; color:#2C8C7B; font-family:'Montserrat',sans-serif; font-weight:700; font-size:.92em; display:inline-flex; align-items:center; justify-content:center; }
@media(max-width:560px){ .faq-a{ padding-left:24px; } .faq-a::before{ display:none; } }

/* ============ SP (<=900px) adjustments ============ */
@media (max-width:900px){
  /* hamburger : vertically centered */
  header#header .menu-btn{
    top:50% !important; transform:translateY(-50%);
    padding:0 6vw 0 4vw !important; right:0 !important;
  }
  /* MV : shift the frame so the staff is fully visible */
  .slider-wrap .slide-box.slide-1{ background-position:76% center !important; }
  /* remove the family + townscape clip-art illustrations */
  .ser-bg .ser-img, .ser-bg .house-img{ display:none !important; }

  /* footer : centered & tidy */
  footer .footer-link .row{ flex-direction:column !important; gap:6px !important; text-align:center; align-items:center; }
  footer .footer-link .row > div{ min-width:0 !important; width:100%; }
  footer .footer-link .row > div:first-child p{ text-align:center !important; }
  footer .footer-link img{ margin-left:auto !important; margin-right:auto !important; }
  footer .footer-link .row > div:last-child{ flex-direction:column !important; gap:0 !important; align-items:center; width:100%; }
  footer .footer-link ul{ width:100%; max-width:340px; margin:0 auto 22px !important; padding:0 !important; }
  footer .footer-link ul li{ text-align:center; }
  footer .footer-link ul li:first-child{ color:#BFF0E6; padding-bottom:10px; margin-bottom:4px; border-bottom:1px solid rgba(255,255,255,.28); }
  footer .footer-link ul li a{ display:block; padding:13px 0; border-bottom:1px solid rgba(255,255,255,.12); }
  footer .footer-link ul li:last-child a{ border-bottom:none; }
  footer .copy-right .wrap{ flex-direction:column; gap:8px !important; }
}

/* ============ Column single / archive ============ */
.col-cards--archive{ margin-top:8px; }
.col-single{ max-width:820px; margin:0 auto; }
.col-single__meta{ display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.col-single__date{ color:#8a9a95; font-family:'Montserrat',sans-serif; font-size:.9em; }
.col-single__ttl{ font-family:'Noto Serif JP',serif; font-size:clamp(23px,3.2vw,33px); font-weight:700; color:#243b36; line-height:1.55; margin:0 0 26px; }
.col-single__thumb{ border-radius:16px; overflow:hidden; margin-bottom:34px; box-shadow:0 14px 32px rgba(37,120,106,.14); }
.col-single__thumb img{ width:100%; display:block; }
.col-single__content{ line-height:2.05; color:#3f4f4b; font-size:1.02em; }
.col-single__content h2{ color:#2C8C7B; font-weight:700; font-size:1.28em; margin:38px 0 16px; padding-left:14px; border-left:4px solid #3AB6A0; line-height:1.5; }
.col-single__content p{ margin-bottom:22px; }
.col-single__back{ margin-top:48px; text-align:center; }
.col-single__back a{ display:inline-block; color:#2C8C7B; font-weight:700; border:1.5px solid rgba(58,182,160,.45); border-radius:999px; padding:13px 34px; text-decoration:none; transition:.2s; }
.col-single__back a:hover{ background:#EAF7F4; border-color:#3AB6A0; }

/* ============ gallery: サービス別ご案内をTOPと同じ幅(1120px)に ============ */
.lp-nav-grid--gallery{
  width:min(1120px, calc(100vw - 40px));
  position:relative; left:50%; transform:translateX(-50%);
  margin-top:8px;
}
@media(max-width:820px){
  .lp-nav-grid--gallery{ width:auto; left:auto; transform:none; max-width:440px; margin-left:auto; margin-right:auto; }
}
/* ============ SP追加調整 (services中央/footer余白/LP CTA改行) ============ */
@media (max-width:900px){
  /* サービス3画像を横中央に（family用の74%指定がSPへ漏れていたのを解除） */
  .ser-bg .ser-flex{ display:block !important; }
  .ser-bg .ser-flex .ser-list{ width:100% !important; margin-left:auto !important; margin-right:auto !important; }
  .ser-bg .ser-flex .ser-list ul li{ text-align:center !important; }
  .ser-bg .ser-flex .ser-list ul li img{ margin-left:auto !important; margin-right:auto !important; }
  /* フッター上に余白 */
  footer .footer-link{ padding-top:54px !important; }
}
@media (max-width:600px){
  /* LP CTA 見出し・本文の改行を読みやすく（フォント縮小で自然な2行に） */
  .lp-cta h2{ font-size:18px !important; line-height:1.7 !important; }
  .lp-cta > div > p{ font-size:14px !important; line-height:1.95 !important; }
}

/* ============ SPドロワーメニュー背景をミントに ============ */
.sp-menu{ background:linear-gradient(160deg,#3AB6A0 0%,#2C8C7B 55%,#25786A 100%) !important; }
.sp-menu li a, .sp-menu dt span{ color:#fff !important; }
