
html, body{
  margin: 0;
  padding: 0;
  width: 100%;
}

body{
  overflow-x: hidden;
}

img, iframe{
  display: block;
  max-width: 100%;
}
    html, body{ font-family:游ゴシック,YuGothic,Meiryo,'MS PGothic',sans-serif;margin:0; padding:0; }
    *, *::before, *::after{ box-sizing:border-box; }

    /* =========================
       Header
       ========================= */
    .site-header{
      background:#fff;
      border-bottom:1px solid #e9edf2;
    }

    .site-header__inner{
      max-width:1100px;
      height:100px;
      margin:0 auto;
      padding:0 20px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:16px;
    }

    .site-logo{
      display:flex;
      align-items:center;
      gap:8px;
      text-decoration:none;
      color:#1b1f24;
      min-width:0;
    }
    .site-logo__mark{

      height:56px;
      object-fit:contain;
      display:block;
    }
    .site-logo__text{ min-width:0; line-height:1.15; }
    .site-logo__name{
      font-size:28px;
      font-weight:700;
      letter-spacing:.02em;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
    }
    .site-logo__tagline{
      margin-top:6px;
      font-size:14px;
      color:#666;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
    }

    .site-contact{
      display:flex;
      align-items:center;
      gap:18px;
      flex-shrink:0;
    }
    .site-contact__tel{
      display:flex;
      align-items:flex-start;
      gap:10px;
    }
    .site-contact__icon{
      color:#333;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      margin-top:2px;
    }
    .site-contact__teltext{
      display:flex;
      flex-direction:column;
      white-space:nowrap;
    }
    .site-contact__number{
      font-size:28px;
      font-weight:700;
      letter-spacing:.02em;
      color:#333;
      line-height:1;
    }
    .site-contact__hours{
      margin-top:6px;
      font-size:14px;
      color:#333;
      line-height:1.1;
      text-align:right;
    }
    .site-contact__btn{
      display:inline-flex;
      align-items:center;
      gap:10px;
      padding:12px 24px;
      background:var(--primary-color);
      color:#fff;
      text-decoration:none;
      font-weight:400;
      font-size:16px;
      white-space:nowrap;
      letter-spacing:.12em;
    }
    .site-contact__btn:hover{ filter:brightness(0.95); }

    /* =========================
       Global Nav (PC)
       ========================= */
    .site-nav{ background:#fff; }
    .site-nav__inner{
      max-width:1100px;
      margin:0 auto;
      padding:0 20px;
    }
    .site-nav__list{
      list-style:none;
      margin:0;
      padding:0;
      display:flex;
      align-items:center;
      justify-content:space-between;
      position:relative;
    }
    .site-nav__list::before,
    .site-nav__list::after{
      content:"";
      position:absolute;
      top:50%;
      transform:translateY(-50%);
      width:0.5px;
      height:100%;
      background:#d9dee6;
    }
    .site-nav__list::before{ left:0; }
    .site-nav__list::after{ right:0; }

    .site-nav__item{ position:relative; flex:1; min-width:0; }
    .site-nav__link{
      display:flex;
      align-items:center;
      justify-content:center;
      height:65px;
      width:100%;
      text-decoration:none;
      color:#333;
      font-size:16px;
      font-weight:300;
      letter-spacing:.02em;
      white-space:nowrap;
      position:relative;
    }
    .site-nav__item + .site-nav__item::before{
      content:"";
      position:absolute;
      left:0;
      top:50%;
      transform:translateY(-50%);
      width:0.5px;
      height:100%;
      background:#d9dee6;
    }
    .site-nav__link:hover{ color:var(--primary-color); }


   
    /* =========================
       Hero
       ========================= */
    .hero{
      position:relative;
      width:100%;
      height:700px;
      overflow:hidden;
    }
    .hero__bg{
      position:absolute;
      inset:0;
      background-size:cover;
      background-position:center;
      transform:scale(1.02);
    }
    .hero__overlay{
      position:absolute;
      inset:0;
      
      linear-gradient(0deg, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3))
      background:linear-gradient(0deg, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3));
    }
    .hero__inner{
      position:relative;
      height:100%;
      max-width:1100px;
      margin:0 auto;
      padding:0 20px;
      display:flex;
      flex-direction:column;
      align-items:center;
      justify-content:center;
      text-align:center;
      color:#fff;
    }
    .hero__title{
      margin:0;
      font-size:48px;
      font-weight:500;
      letter-spacing:.04em;
      text-shadow:0 2px 10px rgba(0,0,0,.45);
    }
    .hero__lead{
      margin:26px 0 30px;
      max-width:980px;
      font-size:18px;
      line-height:2;
      text-shadow:0 0 5px rgba(0, 38, 71, .8);
    }
   
    .hero__btn{
      display:none;
    }

    .hero__btnicon{
      display:inline-flex;
      align-items:center;
      justify-content:center;
    } 
    /* =========================
       SERVICE
       ========================= */
    .service{
      background:#f4f4f4;
      padding:70px 0 90px;
    }
    .service__inner{
      max-width:1100px;
      margin:0 auto;
      padding:0 15px;
    }
    .service__head{
      text-align:center;
      margin-bottom:44px;
    }
    .service__en{
      font-size:40px;
      font-weight:700;
      letter-spacing:.1em;
      color:var(--primary-color);
      position:relative;
      display:inline-block;
    }

    .service__jp{
      margin-top:10px;
      font-size:16px;
      color:#333;
      letter-spacing:.4em;
    }

    .service__grid{ display:grid; gap:26px; }
    .service__grid.is-1{ grid-template-columns:1fr; }
    .service__grid.is-1 .service-card{
      display:grid;
      grid-template-columns: 1.15fr 1fr;
      gap:0;
    }
    .service__grid.is-1 .service-card__img{ height:320px; }
    .service__grid.is-1 .service-card__body{ padding:28px 26px; }

    .service__grid.is-2{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
    .service__grid.is-3{ grid-template-columns:repeat(3, minmax(0, 1fr)); }
    .service__grid.is-4plus{ grid-template-columns:repeat(2, minmax(0, 1fr)); }

    .service-card{ background:#fff; box-shadow:0 1px 0 rgba(0,0,0,.04); }
    .service-card__img{ width:100%; overflow:hidden; }
    .service-card__img img{ width:100%; height:100%; object-fit:cover; display:block; }
    .service-card__body{ padding:18px 20px 20px; }
    .service-card__title{
      margin:6px 0 14px;
      text-align:center;
      font-size:20px;
      font-weight:700;
      letter-spacing:.08em;
      color:#333;
    }
    .service-card__desc{
      margin:0;
      font-size:16px;
      line-height:1.9;
      color:#333;
    }

    /* =========================
       COMPANY
       ========================= */
    .company{
      background:#fff;
      padding:70px 0 90px;
    }
    .company__inner{
      max-width:1100px;
      margin:0 auto;
      padding:0 15px;
    }
    .company-tablewrap{
      max-width:1080px;
      margin:0 auto;
    }
    .company-table{
      width:100%;
      border-collapse:separate;
      border-spacing:0;
      table-layout:fixed;
      font-size:16px;
      color:#333;
    }
    .company-table th{
      width:210px;
      background:var(--primary-color);
      color:#fff;
      text-align:left;
      font-weight: 300;
      padding:22px 22px;
      vertical-align:middle;
      border-bottom:1px solid #fff;
    }
    .company-table td{
      background:#f4f4f4;
      padding:22px 26px;
      vertical-align:middle;
      border-bottom:1px solid #fff;
      line-height:1.9;
    }
    .company-table tr:nth-child(even) td{ background:#f4f4f4;}
    .company-table tr:last-child th,
    .company-table tr:last-child td{ border-bottom:none; }

    /* =========================
       CTA
       ========================= */
    .cta{
      background:#f3f3f3;
      padding:70px 0 90px;
    }
    .cta__inner{
      max-width:1100px;
      margin:0 auto;
      padding:0 15px;
      text-align:center;
    }
    .cta__title{
      margin:0 0 44px;
      font-size:30px;
      font-weight:700;
      color:#333;
      letter-spacing:.08em;
    }
    .cta__grid{
      display:grid;
      grid-template-columns:repeat(2, minmax(0, 1fr));
      gap:34px;
      justify-content:center;
    }
    .cta-card{
      background:#fff;
      padding:34px 22px 30px;
      box-shadow:0 0 0 1px #eeeeee inset;
    }
    .cta-card__head{
      font-size:20px;
      font-weight:700;
      color:#333;
      margin-bottom:18px;
    }
    .cta-card__tel{
      display:flex;
      align-items:center;
      justify-content:center;
      gap:10px;
      margin:8px 0 18px;
      color:var(--primary-color);

    padding: 9px;
    }
    .cta-card__telicon{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      color:var(--primary-color);
      font-size: 38px;
    }
    .cta-card__telnum{
      font-size:38px;
      font-weight:700;
      letter-spacing:.02em;
      color:var(--primary-color);
      text-decoration:none;
      line-height:1;
    }
    .cta-card__btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:12px;
      padding:14px 26px;
      min-width:210px;
      background:var(--primary-color);
      color:#fff;
      text-decoration:none;
      font-size:18px;
      font-weight:700;
      letter-spacing:.12em;
    }
    .cta-card__note{
      margin-top:18px;
      font-size:16px;
      color:#333;
      letter-spacing:.06em;
    }

    /* =========================
       Footer
       ========================= */
    .site-footer{
      background:#3f3f3f;
      color:#fff;
    }
    .site-footer__inner{
      max-width:1100px;
      margin:0 auto;
      padding:0 20px;
    }
    .site-footer__top{ padding:42px 0 26px; }
    .footer-brand{
      text-align:center;
      font-size:28px;
      font-weight:700;
      letter-spacing:.08em;
      margin-bottom:14px;
    }
    .footer-meta{
      text-align:center;
      font-size:16px;
      letter-spacing:.08em;
      opacity:.95;
      margin:6px 0;
    }
    .footer-nav{
      margin-top:26px;
      display:flex;
      justify-content:center;
      gap:28px;
      flex-wrap:wrap;
    }
    .footer-nav__link{
      color:#fff;
      text-decoration:none;
      font-size:16px;
      letter-spacing:.06em;
      display:inline-flex;
      align-items:center;
      gap:8px;
      opacity:.95;
    }
    .site-footer__bottom{
      border-top:1px solid rgba(255,255,255,.35);
      padding:16px 0;
    }
    .site-footer__bottominner{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:16px;
    }
    .footer-copy{
      font-size:12px;
      opacity:.95;
    }
    .footer-privacy{
      color:#fff;
      text-decoration:none;
      font-size:12px;
      letter-spacing:.12em;
      opacity:.95;
    }
    .footer-privacy:hover, .footer-nav__link:hover{ opacity:1; }

    /* =========================
       Motion effects
       ========================= */
    a, button{
      transition: transform .18s ease, opacity .18s ease, box-shadow .18s ease, color .18s ease, background-color .18s ease;
    }
    .hero__btn:hover, .cta-card__btn:hover, .site-contact__btn:hover{
      transform: translateY(-2px);
      box-shadow: 0 10px 22px rgba(0,0,0,.18);
    }
    .service-card{ transition: transform .18s ease, box-shadow .18s ease; }
    .service-card:hover{
      transform: translateY(-4px);
      box-shadow: 0 14px 28px rgba(0,0,0,.10);
    }
    .site-nav__link::after{
      content:"";
      position:absolute;
      left:50%;
      bottom:0px;
      width:0;
      height:1px;
      background:var(--primary-color);
      transform:translateX(-50%);
      transition: width .18s ease;
    }
    .site-nav__link:hover::after{ width:40%; }

    /*.hero__bg{*/
    /*  animation: heroZoom 12s ease-in-out infinite alternate;*/
    /*}*/
    @keyframes heroZoom{
      from{ transform: scale(1.02); }
      to{ transform: scale(1.08); }
    }

    .reveal{
      opacity:0;
      transform: translateY(46px);
      transition: opacity .75s ease, transform .75s ease;
      will-change: opacity, transform;
    }
    .reveal.is-visible{
      opacity:1;
      transform: translateY(0);
    }

    /* =========================
       Mobile menu demo01-like
       ========================= */
    .sp-menu-btn{
      display:none;
      margin-left:auto;
      width:56px;
      height:56px;
      border:0;
      background:transparent;
      padding:0;
      cursor:pointer;
      position:relative;
      z-index:10002; /* ensure clickable */
    }
    
    .sp-menu-btn__lines{
      position:absolute;
      left:50%;
      top:50%;
      width:28px;
      height:2px;
      background:#333;
      transform:translate(-50%,-50%);
      transition: background .18s ease, transform .22s ease;
      border-radius: 10px;
    }
    .sp-menu-btn__lines::before,
    .sp-menu-btn__lines::after{
      content:"";
      position:absolute;
      left:0;
      width:28px;
      height:2px;
      background:#333;
      transition: transform .22s ease, top .22s ease, opacity .18s ease;
      border-radius: 10px;
    }
    .sp-menu-btn__lines::before{ top:-8px; }
    .sp-menu-btn__lines::after{ top:8px; }

    .is-spmenu-open .sp-menu-btn__lines{ background:transparent; }
    .is-spmenu-open .sp-menu-btn__lines::before{ top:0; transform:rotate(45deg); }
    .is-spmenu-open .sp-menu-btn__lines::after{ top:0; transform:rotate(-45deg); }

    .sp-menu{
      display:none;
      position:fixed;
      inset:0;
      z-index:10000;
    }
    .sp-menu__panel{
      position:absolute;
      left:0;
      right:0;
      top:60px; /* under header */
      background:#fff;
      border-top:1px solid #d9d9d9;
      transform:translateY(-8px);
      opacity:0;
      transition: transform .22s ease, opacity .18s ease;
    }
    .sp-menu__link{
      height:60px;
      display:flex;
      align-items:center;
      justify-content:center;
      text-decoration:none;
      color:#333;
      font-size:16px;
      font-weight:400;
      border-top:1px solid #d9d9d9;
      background:#fff;
    }
    .sp-menu__link:first-child{ border-top:none; }

    .sp-menu__backdrop{
      position:absolute;
      inset:0;
      top:60px;
      border:0;
      background: rgba(0,0,0,.6); 

    }

.sp-menu__panel{
  position:relative;
  z-index:2;
}
.sp-menu__backdrop{
  z-index:1;
}
    .is-spmenu-open .sp-menu{ display:block; }
    .is-spmenu-open .sp-menu__panel{ transform:translateY(0); opacity:1; }

    /* =========================
       Responsive
       ========================= */
    @media (max-width:900px){
      .service__grid.is-3{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
       .hero__btn{
      display:inline-flex;
      align-items:center;
      gap:12px;
      padding:14px 26px;
      background:var(--primary-color);
      color:#fff;
      text-decoration:none;
      font-weight:700;
      font-size:18px;
      border-radius:2px;
      box-shadow:0 6px 18px rgba(0,0,0,.18);
      letter-spacing:.12em;
    }
    }

    @media (max-width:768px){
      /* header */
      .site-header{
        position:sticky;
        top:0;
        z-index:10001;
        border-bottom:1px solid #d9d9d9;
      }
      .site-header__inner{
        height:60px;
        justify-content:flex-start;
        gap:10px;
        padding:0 8px;
        max-width:none;
      }
      .site-contact{ display:none !important; }
      .footer-nav{ display:none !important; }
      .cta-card__telicon{ display:none !important; }
      .cta-card__telicon{font-size:28px ;}
      .site-logo__mark{  height:40px; }
      .site-logo__name{ font-size:22px; }
      .site-logo__tagline{ display:none !important; }

      /* show hamburger */
      .sp-menu-btn{ display:block; }

      /* hide pc nav */
      .site-nav{ display:none !important; }

      /* hero full screen minus header */
      .hero{height: calc(100vh - 60px);height: calc(100svh - 60px);}
      .hero__title{ font-size:28px; }
      .hero__lead{ font-size:16px; line-height:1.8; margin:18px 0 22px; }
      .hero__btn{ font-size:16px; padding:12px 20px; }

      /* service */
      .service{ padding:50px 0 60px; }
      .service__en{ font-size:30px; }
      .service__grid.is-2,
      .service__grid.is-3,
      .service__grid.is-4plus{ grid-template-columns:1fr; }
      .service__grid.is-1 .service-card{ grid-template-columns:1fr; }
      .service__grid.is-1 .service-card__img{ height:220px; }

      /* company stack (no gaps between td blocks) */
      .company{ padding:50px 0 60px; }
      .company-table, .company-table tbody, .company-table tr{ display:block; width:100%; }
      .company-table th, .company-table td{ display:block; width:100%; }
      .company-table th{ padding:14px 16px; border-bottom:none; }
      .company-table td{ padding:16px 16px 18px; border-bottom:1px solid #e9edf2; }
      .company-table tr:last-child td{ border-bottom:none; }

      /* CTA */
      .cta{ padding:50px 0 60px; }
      .cta__title{ font-size:22px; margin-bottom:28px; }
      .cta__grid{ grid-template-columns:1fr; gap:18px; }
      .cta-card__telnum{ font-size:28px; }

      /* footer */
      .site-footer__top{ padding:34px 0 22px; }
      .footer-brand{ font-size:22px; }
      .footer-meta{ font-size:13px; line-height:1.7; }
      .footer-nav{ gap:16px 20px; }
      .site-footer__bottominner{
        flex-direction:column;
        justify-content:center;
        text-align:center;
      }
    }

    @media (prefers-reduced-motion: reduce){
      a, button{ transition:none !important; }
      .hero__bg{ animation:none !important; }
      .reveal{ opacity:1; transform:none; transition:none; }
    }
    /* =========================
   Mobile bottom fixed CTA
   ========================= */
.sp-fixed-cta{
  display:none;             
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  height:55px;              
  background:var(--primary-color);
  color:#fff;
  text-decoration:none;

  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;

  z-index:9998;
  transform: translateY(110%);
  transition: transform .22s ease, opacity .22s ease;
  opacity:0;
}

/* 显示状态 */
.sp-fixed-cta.is-visible{
  transform: translateY(0);
  opacity:1;
}

.sp-fixed-cta__icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding-right:10px;
  border-right:1px solid rgba(255,255,255,.35);
  font-size: 22px;
}

.sp-fixed-cta__text{
  font-size:18px;
  font-weight:700;
  letter-spacing:.06em;
}

@media (max-width:768px){
  .sp-fixed-cta{ display:flex; }


  body{
    padding-bottom:55px;
  }
}

@media (prefers-reduced-motion: reduce){
  .sp-fixed-cta{ transition:none; }
}



/* =========================
   TOP MESSAGE
   ========================= */
.top-message{
  background:#fff;
  padding:100px 0;
}

.top-message__inner{
  max-width:1100px;
  margin:0 auto;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  box-sizing:border-box;
}

.top-message__left{
  flex:0 0 330px;
}

.top-message__title{
  margin:0;
  line-height:.9;
  font-weight:900;
  letter-spacing:.02em;
}

.top-message__title span{
  display:block;
  font-size:50px;
}

.top-message__title span:first-child{
  color:var(--primary-color)
}

.top-message__title span:last-child{
  color:var(--primary-color);
}

.top-message__right{
  flex:1;
}
p{ font-variant-east-asian: full-width;}


.top-message__right p{
  margin:0 0 34px;
  font-size:16px;
  line-height:2.1;
  color:#333;
  letter-spacing:.03em;
}

.top-message__right p:last-child{
  margin-bottom:0;
}

/* =========================
   Mobile
   ========================= */
@media (max-width:768px){
  .top-message{
    padding:70px 0 80px;
  }

  .top-message__inner{
    display:block;
    padding:0 20px;
  }

  .top-message__left{
    margin-bottom:42px;
  }

  .top-message__title{
    line-height:.92;
  }

  .top-message__title span{
    font-size:64px;
  }

  .top-message__right p{
    margin:0 0 30px;
    font-size:16px;
    line-height:1.9;
    letter-spacing:.02em;
  }
}

/* =========================
   Page Header (Hero)
   ========================= */
.page-hero{
  position:relative;
  width:100%;
  height:260px;       
  overflow:hidden;
}

.page-hero__bg{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  transform:scale(1.02);
}

.page-hero__overlay{
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.35); 
}

.page-hero__inner{
  position:relative;
  height:100%;
  max-width:1100px;
  margin:0 auto;
  padding:0 20px;

  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;

  text-align:center;
  color:#fff;
}

.page-hero__title{
  margin:0;
  font-size:48px;
  font-weight:700;
  letter-spacing:.18em;
  line-height:1.1;
  position:relative;
  padding-bottom:10px;
}



.page-hero__subtitle{
  margin-top:14px;
  font-size:16px;
  letter-spacing:.35em;
  opacity:.95;
}
/* =========================
   Breadcrumb
   ========================= */
.breadcrumb{
  background:#fff;
  border-bottom:1px solid #e9edf2;
}

.breadcrumb__inner{
  max-width:1100px;
  margin:0 auto;
  padding:14px 20px;
  box-sizing:border-box;

  font-size:14px;
  color:#333;
  letter-spacing:.02em;
}

.breadcrumb__link{
  color:var(--primary-color);
  text-decoration:none;
}

.breadcrumb__sep{
  margin:0 8px;
  color:#999;
}

.breadcrumb__current{
  color:#333;
}

/* Mobile */
@media (max-width:768px){
  .page-hero{ height:200px; }
  .page-hero__title{ font-size:34px; letter-spacing:.14em; }
  .page-hero__subtitle{ font-size:16px; letter-spacing:.28em; }
  .breadcrumb__inner{ padding:12px 16px; font-size:13px; }
}

/* =========================
   Privacy body
   ========================= */
.privacy{
  background:#fff;
  padding:60px 0 90px;
}

.privacy__inner{
  max-width:1100px;
  margin:0 auto;
  padding:0 20px;
  box-sizing:border-box;
}

.privacy__lead{
  margin:0 0 34px;
  font-size:16px;
  line-height:2;
  color:#333;
  letter-spacing:.02em;
}

.privacy__section{
  padding-top:8px;
}

.privacy__h3{
  margin:0 0 14px;
  font-size:20px;
  font-weight:800;
  color:#111;
  letter-spacing:.04em;
  border-left:4px solid var(--primary-color);
  padding-left:12px;
}

.privacy__p{
  margin-bottom:28px;
  font-size:16px;
  line-height:2;
  color:#333;
  letter-spacing:.02em;
}

/* Mobile */
@media (max-width:768px){
  .privacy{
    padding:40px 0 70px;
  }
  .privacy__inner{
    padding:0 16px;
  }
  .privacy__lead,
  .privacy__p{
    font-size:15px;
    line-height:1.9;
  }
  .privacy__h3{
    font-size:18px;
  }
}
/* 让数字/标点尽量使用“全角/等宽的东亚字形” */
.privacy, .privacy *{
  /* 东亚全角字形（包含不少标点） */
  font-variant-east-asian: full-width;

  /* 数字也用全角字形（如果字体支持） */
  font-variant-numeric: full-width;
}

/* =========================
   Contact Form (table style)
   ========================= */
.contact-form{
  background:#fff;
  padding:70px 0 90px;
}

.contact-form__inner{
  max-width:1100px;
  margin:0 auto;
  padding:0 20px;
  box-sizing:border-box;
}

.contact-form__lead{
  margin:0 0 28px;
  color:#333;
  font-size:16px;
  line-height:2;
  letter-spacing:.02em;
}

.contact-form__lead p{ margin:0 0 8px; }
.contact-form__lead p:last-child{ margin:0; }

.cform-table{
  width:100%;
  border-collapse:collapse;
  border:1px solid #e6e6e6;
  table-layout:fixed;
  background:#fff;
}

.cform-table th,
.cform-table td{
  border-top:1px solid #e6e6e6;
  padding:26px 28px;
  vertical-align:top;
}

.cform-table tr:first-child th,
.cform-table tr:first-child td{
  border-top:none;
}

.cform-table th{
  width:320px;
  background:#f3f3f3;
  text-align:left;

  vertical-align:middle;  
}

.cform-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:18px;
  padding:0 5px;
  background: #FFF;
  color: #BE1D1D;
  border: 1px solid #BE1D1D;
  font-size:12px;
  font-weight:600;
  margin-right:14px;
  
}

.cform-nini{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:18px;
  padding:0 5px;
  background:#8E8E8E;
  color:#fff;
  font-size:12px;
  font-weight:700;
  margin-right:14px;
}


.cform-label{
  font-size:16px;
  font-weight: 400;
  color:#333;
  letter-spacing:.04em;
  vertical-align:middle; 
}

.cform-input,
.cform-textarea{
  width:600px;    
  max-width:100%;
  border:1px solid #cfcfcf;
  padding:16px 18px;
  font-size:16px;
  outline:none;
  background:#fff;
}

.cform-input::placeholder{ color:#9a9a9a; }

.cform-textarea{
  height:320px;          
  resize:vertical;
}

.captcha{
  display:flex;
  flex-direction:column;
  gap:14px;
  max-width:600px;
}

.captcha__img{
  width:170px;
  height:auto;
  border:0;
  display:block;
}

.captcha__input{
  width:100%;
}

/* note + submit */
.cform-note{
  margin:26px 0 0;
  font-size:16px;
  line-height:2;
  color:#333;
  letter-spacing:.02em;
}

.cform-note a{
  color:var(--primary-color);
  text-decoration:underline;
}

.cform-actions{
  margin-top:34px;
  display:flex;
  justify-content:center;
}

.cform-submit{
  width:280px;
  height:56px;
  border:0;
  background:var(--primary-color);
  color:#fff;
  font-size:18px;
  font-weight:800;
  letter-spacing:.08em;
  cursor:pointer;
}

.cform-submit:hover{
  filter:brightness(.96);
}

/* =========================
   Mobile
   ========================= */
@media (max-width:768px){
  .contact-form{
    padding:50px 0 70px;
  }
  .contact-form__inner{
    padding:0 16px;
  }
  .cform-table,
  .cform-table tbody,
  .cform-table tr,
  .cform-table th,
  .cform-table td{
    display:block;
    width:100%;
  }
  .cform-table th{
    padding:18px 16px;
  }

  .cform-table td{
    padding:18px 16px 22px;
  }
  .cform-input,
  .cform-textarea{
    width:100%;
  }
  .cform-textarea{
    height:240px;
  }
  .cform-submit{
    width:100%;
    max-width:360px;
    height:64px;
    font-size:20px;
  }
}
.error_message {
    color: #721c24;
    background-color: #f8d7da;
    border-color: #f5c6cb;
    padding: 10px;
    width: 600px;
    max-width: 100%;
    margin-top:15px ;
}


@media (max-width:768px){
  section[id]{
    scroll-margin-top: 70px;
  }
}

 .powered-line a{
  color:#fff !important;
  text-decoration:none !important;
}

.powered-line a:visited,
.powered-line a:hover,
.powered-line a:focus{
  color:#fff !important;
  text-decoration:none !important;
}