/* ===== site.css ===== */
/* === comp:header.dc.html === */
.dpsh *{box-sizing:border-box;}
  .dpsh a{text-decoration:none;color:inherit;}
  .dpsh button{font:inherit;cursor:pointer;}
  .dpsh-nav{display:none;}
  .dpsh-burger{display:inline-flex;}
  .dpsh-util{display:none;}
  @media(min-width:1100px){.dpsh-nav{display:flex;}.dpsh-burger{display:none;}.dpsh-util{display:flex;}.dpsh-drawer{display:none !important;}}
  .dps-hasmenu{position:relative;display:flex;align-items:center;}
  .dps-hasmenu>.dps-menutrigger{display:inline-flex;align-items:center;gap:5px;}
  .dps-caret{font-size:9px;color:#E60012;transition:transform .2s ease;}
  .dps-submenu{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(6px);min-width:212px;background:#fff;border:1px solid rgba(26,26,26,.08);border-radius:10px;box-shadow:0 18px 44px -18px rgba(26,26,26,.4);padding:8px;display:flex;flex-direction:column;gap:2px;opacity:0;visibility:hidden;transition:opacity .18s ease,transform .18s ease,visibility .18s;z-index:90;}
  .dps-submenu::before{content:"";position:absolute;top:-10px;left:0;right:0;height:12px;}
  .dps-hasmenu:hover .dps-submenu,.dps-hasmenu:focus-within .dps-submenu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
  .dps-hasmenu:hover .dps-caret{transform:rotate(180deg);}
  .dps-submenu a{padding:10px 14px;border-radius:7px;font-size:13.5px;font-weight:500;white-space:nowrap;color:#1A1A1A;transition:background .15s ease,color .15s ease;}
  .dps-submenu a:hover{background:#F7F5F1;color:#E60012;}
  @keyframes dpshFade{from{opacity:0;}to{opacity:1;}}
  .dpsbtn{transition:filter .2s ease,box-shadow .2s ease,background-color .2s ease,color .2s ease,border-color .2s ease;}
  .dpsbtn:hover{filter:brightness(1.12);box-shadow:0 10px 24px -12px rgba(0,0,0,.45);}

/* === comp:footer.dc.html === */
.dpsf a{text-decoration:none;}.btn-arrow{display:inline-block;transition:transform .28s cubic-bezier(.2,.7,.2,1);}.dpsf a:hover .btn-arrow{transform:translateX(5px);}
.dpsf-grid{display:grid;gap:clamp(30px,4vw,52px);grid-template-columns:1fr;}
@media(min-width:680px){.dpsf-grid{grid-template-columns:1fr 1fr;}}
@media(min-width:1000px){.dpsf-grid{grid-template-columns:1.25fr 1.35fr 1fr;align-items:start;}}
.dpsf-h{font-family:'Zen Kaku Gothic New',sans-serif;font-weight:700;font-size:14px;color:#fff;letter-spacing:.08em;margin:0 0 18px;position:relative;padding-bottom:11px;}
.dpsf-h::after{content:"";position:absolute;left:0;bottom:0;width:30px;height:2px;background:#E60012;}
.dpsf-map{display:grid;grid-template-columns:1fr 1fr;gap:11px 20px;}
.dpsf-map a{position:relative;padding-left:15px;color:rgba(255,255,255,.78);font-size:13.5px;transition:color .18s ease,padding-left .18s ease;}
.dpsf-map a::before{content:"\203A";position:absolute;left:0;top:-1px;color:#E60012;font-weight:700;}
.dpsf-map a:hover{color:#fff;padding-left:19px;}
.dpsf-chip{display:inline-flex;align-items:center;padding:5px 13px;border:1px solid rgba(255,255,255,.22);border-radius:999px;font-size:12.5px;color:#fff;font-weight:700;}
.dpsbtn{transition:filter .2s ease,box-shadow .2s ease,background-color .2s ease;}
.dpsbtn:hover{filter:brightness(1.12);box-shadow:0 10px 24px -12px rgba(0,0,0,.5);}

/* === page:blog.html === */
*{box-sizing:border-box;}
.dpsh a,.dpsf a,[data-screen-label] a{text-decoration:none;color:inherit;}
  .line-chunk{display:inline-block;overflow-wrap:anywhere;word-break:normal;}
  [data-reveal]{opacity:1;transform:none;}
  @keyframes dpsReveal{from{opacity:0;transform:translateY(30px);}to{opacity:1;transform:none;}}
  @media (prefers-reduced-motion: no-preference){
    @supports (animation-timeline: view()){[data-reveal]{animation:dpsReveal .9s cubic-bezier(.2,.7,.2,1) both;animation-timeline:view();animation-range:entry 0% entry 38%;}}
  }
  a:focus-visible{outline:3px solid #1668FF;outline-offset:2px;}

  /* === add.css 貼り付け ここから（ブログ parts222系） === */
  .parts222_section{padding:clamp(48px,7vw,88px) clamp(18px,4vw,56px) clamp(64px,9vw,112px);}
  .parts222_section > h2{max-width:1240px;margin:0 auto clamp(28px,4vw,44px);font-family:'Zen Kaku Gothic New',sans-serif;font-weight:900;font-size:clamp(26px,3.6vw,42px);color:#1A1A1A;}
  .parts222_wrap{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:clamp(36px,5vw,56px);}
  @media(min-width:980px){.parts222_wrap{grid-template-columns:1fr 300px;align-items:start;}}
  .parts222_post_list{display:grid;grid-template-columns:1fr;gap:clamp(16px,2vw,24px);}
  @media(min-width:560px){.parts222_post_list{grid-template-columns:1fr 1fr;}}
  .parts222_post_wrap{display:flex;flex-direction:column;background:#fff;border:1px solid #ECE9E4;border-radius:12px;overflow:hidden;transition:box-shadow .25s ease,transform .25s ease;color:inherit;}
  .parts222_post_wrap:hover{box-shadow:0 20px 44px -28px rgba(26,26,26,.45);transform:translateY(-4px);}
  .parts222_post_img{width:100%;aspect-ratio:16/10;background:#E9E6E1;overflow:hidden;}
  .parts222_post_img img{width:100%;height:100%;object-fit:cover;display:block;}
  .parts222_post_status{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:15px 18px 0;}
  .parts222_post_date{font-size:16px;color:#8A8A8A;font-variant-numeric:tabular-nums;letter-spacing:.04em;}
  .parts222_post_category{font-size:16px;font-weight:700;color:#fff;background:#E60012;padding:3px 10px;border-radius:4px;}
  .parts222_post_title-excerpt{padding:8px 18px 18px;}
  .parts222_post_title{font-family:'Zen Kaku Gothic New',sans-serif;font-weight:700;font-size:16px;line-height:1.6;color:#1A1A1A;margin:0;}
  .parts222_pagenation{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin-top:clamp(28px,4vw,44px);}
  .parts222_pagenation a,.parts222_pagenation span{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 12px;border:1px solid #D8D4CD;border-radius:8px;font-weight:700;font-size:16px;color:#1A1A1A;}
  .parts222_pagenation .pagination_num.current{background:#E60012;border-color:#E60012;color:#fff;}
  .parts222_sidebar_wrap{margin-bottom:clamp(24px,3vw,36px);}
  .parts222_sidebar_wrap > h3{font-family:'Zen Kaku Gothic New',sans-serif;font-weight:700;font-size:16px;color:#fff;background:#1A1A1A;padding:11px 16px;border-radius:8px 8px 0 0;margin:0;}
  .parts222_sidebar_wrap > ul{list-style:none;margin:0;padding:0;border:1px solid #ECE9E4;border-top:none;border-radius:0 0 8px 8px;}
  .parts222_sidebar_wrap > ul > li{border-bottom:1px solid #F0EDE8;}
  .parts222_sidebar_wrap > ul > li:last-child{border-bottom:none;}
  .parts222_sidebar_wrap > ul > li > a{display:block;padding:13px 16px;transition:background .15s ease;}
  .parts222_sidebar_wrap > ul > li > a:hover{background:#FAF8F5;}
  .parts222_sidebar_date{display:block;font-size:16px;color:#9A9A9A;margin-bottom:3px;}
  .parts222_sidebar_post_title{font-size:16px;font-weight:500;color:#1A1A1A;margin:0;line-height:1.55;}
  .category_post_count li a{display:flex;align-items:center;justify-content:space-between;gap:10px;}
  .parts222_sidebar_post_category{font-size:16px;font-weight:500;margin:0;}
  .parts222_sidebar_post_category_count{font-size:16px;font-weight:700;color:#8A8A8A;border:1px solid #E0DCD5;border-radius:20px;padding:1px 9px;min-width:30px;text-align:center;}
  /* === add.css 貼り付け ここまで === */

  .btn-arrow{display:inline-block;transition:transform .28s cubic-bezier(.2,.7,.2,1);}
  a:hover .btn-arrow,button:hover .btn-arrow,a:focus-visible .btn-arrow{transform:translateX(6px);}

  .dpsbtn{transition:filter .2s ease,box-shadow .2s ease,background-color .2s ease,border-color .2s ease,color .2s ease;}
  .dpsbtn:hover{filter:brightness(1.12);box-shadow:0 12px 26px -14px rgba(0,0,0,.5);}
  html{overflow-x:clip;}
  .sc-host[data-sc-name="header"]{display:contents;}

/* === page:column.html === */
*{box-sizing:border-box;}
.dpsh a,.dpsf a,[data-screen-label] a{text-decoration:none;color:inherit;}
  .line-chunk{display:inline-block;overflow-wrap:anywhere;word-break:normal;}
  [data-reveal]{opacity:1;transform:none;}
  @keyframes dpsReveal{from{opacity:0;transform:translateY(30px);}to{opacity:1;transform:none;}}
  @media (prefers-reduced-motion: no-preference){
    @supports (animation-timeline: view()){[data-reveal]{animation:dpsReveal .9s cubic-bezier(.2,.7,.2,1) both;animation-timeline:view();animation-range:entry 0% entry 38%;}}
  }
  a:focus-visible{outline:3px solid #1668FF;outline-offset:2px;}

  /* === add.css 貼り付け ここから（コラム parts222系・ブログ同一ルール） === */
  .parts222_section{padding:clamp(48px,7vw,88px) clamp(18px,4vw,56px) clamp(64px,9vw,112px);}
  .parts222_section > h2{max-width:1240px;margin:0 auto clamp(28px,4vw,44px);font-family:'Zen Kaku Gothic New',sans-serif;font-weight:900;font-size:clamp(26px,3.6vw,42px);color:#1A1A1A;}
  .parts222_wrap{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:clamp(36px,5vw,56px);}
  @media(min-width:980px){.parts222_wrap{grid-template-columns:1fr 300px;align-items:start;}}
  .parts222_post_list{display:grid;grid-template-columns:1fr;gap:clamp(16px,2vw,24px);}
  @media(min-width:560px){.parts222_post_list{grid-template-columns:1fr 1fr;}}
  .parts222_post_wrap{display:flex;flex-direction:column;background:#fff;border:1px solid #ECE9E4;border-radius:12px;overflow:hidden;transition:box-shadow .25s ease,transform .25s ease;color:inherit;}
  .parts222_post_wrap:hover{box-shadow:0 20px 44px -28px rgba(26,26,26,.45);transform:translateY(-4px);}
  .parts222_post_img{width:100%;aspect-ratio:16/10;background:#E9E6E1;overflow:hidden;}
  .parts222_post_img img{width:100%;height:100%;object-fit:cover;display:block;}
  .parts222_post_status{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:15px 18px 0;}
  .parts222_post_date{font-size:16px;color:#8A8A8A;font-variant-numeric:tabular-nums;letter-spacing:.04em;}
  .parts222_post_category{font-size:16px;font-weight:700;color:#fff;background:#E60012;padding:3px 10px;border-radius:4px;}
  .parts222_post_title-excerpt{padding:8px 18px 18px;}
  .parts222_post_title{font-family:'Zen Kaku Gothic New',sans-serif;font-weight:700;font-size:16px;line-height:1.6;color:#1A1A1A;margin:0;}
  .parts222_pagenation{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin-top:clamp(28px,4vw,44px);}
  .parts222_pagenation a,.parts222_pagenation span{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 12px;border:1px solid #D8D4CD;border-radius:8px;font-weight:700;font-size:16px;color:#1A1A1A;}
  .parts222_pagenation .pagination_num.current{background:#E60012;border-color:#E60012;color:#fff;}
  .parts222_sidebar_wrap{margin-bottom:clamp(24px,3vw,36px);}
  .parts222_sidebar_wrap > h3{font-family:'Zen Kaku Gothic New',sans-serif;font-weight:700;font-size:16px;color:#fff;background:#1A1A1A;padding:11px 16px;border-radius:8px 8px 0 0;margin:0;}
  .parts222_sidebar_wrap > ul{list-style:none;margin:0;padding:0;border:1px solid #ECE9E4;border-top:none;border-radius:0 0 8px 8px;}
  .parts222_sidebar_wrap > ul > li{border-bottom:1px solid #F0EDE8;}
  .parts222_sidebar_wrap > ul > li:last-child{border-bottom:none;}
  .parts222_sidebar_wrap > ul > li > a{display:block;padding:13px 16px;transition:background .15s ease;}
  .parts222_sidebar_wrap > ul > li > a:hover{background:#FAF8F5;}
  .parts222_sidebar_date{display:block;font-size:16px;color:#9A9A9A;margin-bottom:3px;}
  .parts222_sidebar_post_title{font-size:16px;font-weight:500;color:#1A1A1A;margin:0;line-height:1.55;}
  .category_post_count li a{display:flex;align-items:center;justify-content:space-between;gap:10px;}
  .parts222_sidebar_post_category{font-size:16px;font-weight:500;margin:0;}
  .parts222_sidebar_post_category_count{font-size:16px;font-weight:700;color:#8A8A8A;border:1px solid #E0DCD5;border-radius:20px;padding:1px 9px;min-width:30px;text-align:center;}
  /* === add.css 貼り付け ここまで === */

  .btn-arrow{display:inline-block;transition:transform .28s cubic-bezier(.2,.7,.2,1);}
  a:hover .btn-arrow,button:hover .btn-arrow,a:focus-visible .btn-arrow{transform:translateX(6px);}

  .dpsbtn{transition:filter .2s ease,box-shadow .2s ease,background-color .2s ease,border-color .2s ease,color .2s ease;}
  .dpsbtn:hover{filter:brightness(1.12);box-shadow:0 12px 26px -14px rgba(0,0,0,.5);}
  html{overflow-x:clip;}
  .sc-host[data-sc-name="header"]{display:contents;}

/* === page:company.html === */
*{box-sizing:border-box;}
.dpsh a,.dpsf a,[data-screen-label] a{text-decoration:none;color:inherit;}
  .line-chunk{display:inline-block;overflow-wrap:anywhere;word-break:normal;}
  .dps-cols2{display:grid;grid-template-columns:1fr;gap:clamp(28px,4vw,56px);}
  @media(min-width:880px){.dps-cols2{grid-template-columns:0.95fr 1.05fr;gap:clamp(40px,5vw,80px);align-items:center;}}
  .dps-spec{display:grid;grid-template-columns:1fr;}
  @media(min-width:680px){.dps-spec{grid-template-columns:11em 1fr;}}
  [data-reveal]{opacity:1;transform:none;}
  @keyframes dpsReveal{from{opacity:0;transform:translateY(30px);}to{opacity:1;transform:none;}}
  @keyframes dpsClip{from{clip-path:inset(0 0 100% 0);}to{clip-path:inset(0 0 0 0);}}
  @keyframes dpsScale{from{transform:scale(1.12);}to{transform:scale(1);}}
  .img-reveal{overflow:hidden;}
  image-slot{display:block!important;width:100%!important;height:100%!important;}
  @media (prefers-reduced-motion: no-preference){
    @supports (animation-timeline: view()){
      [data-reveal]{animation:dpsReveal .9s cubic-bezier(.2,.7,.2,1) both;animation-timeline:view();animation-range:entry 0% entry 38%;}
      .img-reveal{animation:dpsClip 1.1s cubic-bezier(.16,1,.3,1) both;animation-timeline:view();animation-range:entry 0% entry 54%;}
      .img-reveal>*{display:block;height:100%;animation:dpsScale 1.3s cubic-bezier(.16,1,.3,1) both;animation-timeline:view();animation-range:entry 0% entry 68%;}
    }
  }
  a:focus-visible{outline:3px solid #1668FF;outline-offset:3px;}

  .btn-arrow{display:inline-block;transition:transform .28s cubic-bezier(.2,.7,.2,1);}
  a:hover .btn-arrow,button:hover .btn-arrow,a:focus-visible .btn-arrow{transform:translateX(6px);}

  .dpsbtn{transition:filter .2s ease,box-shadow .2s ease,background-color .2s ease,border-color .2s ease,color .2s ease;}
  .dpsbtn:hover{filter:brightness(1.12);box-shadow:0 12px 26px -14px rgba(0,0,0,.5);}

  .dps-dotfield{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;}
  .dps-dotfield>span{position:absolute;border-radius:50%;}
  @keyframes dpsDrift{from{transform:translate(0,0);}to{transform:translate(var(--dx),var(--dy));}}

  .cta-wipe{position:absolute;inset:0;z-index:2;background:#E60012;transform:translateX(-101%);pointer-events:none;}
  .js-reveal .cta-sec .cta-content{opacity:0;}
  .cta-sec.is-in .cta-wipe{animation:ctaWipe 1.15s cubic-bezier(.76,0,.24,1) forwards;}
  .cta-sec.is-in .cta-content{animation:ctaContentIn .75s cubic-bezier(.2,.7,.2,1) .62s both;}
  @keyframes ctaWipe{0%{transform:translateX(-101%);}42%{transform:translateX(0);}54%{transform:translateX(0);}100%{transform:translateX(101%);}}
  @keyframes ctaContentIn{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}

  .cta-btns{align-items:stretch;}
  @media(max-width:559px){.cta-btns{flex-direction:column;align-items:stretch;}.cta-btns>a{justify-content:center;width:100%;}}
  html{overflow-x:clip;}
  .sc-host[data-sc-name="header"]{display:contents;}

/* === page:contact.html === */
*{box-sizing:border-box;}
.dpsh a,.dpsf a,[data-screen-label] a{text-decoration:none;color:inherit;}
  .line-chunk{display:inline-block;overflow-wrap:anywhere;word-break:normal;}
  [data-reveal]{opacity:1;transform:none;}
  @keyframes dpsReveal{from{opacity:0;transform:translateY(30px);}to{opacity:1;transform:none;}}
  @media (prefers-reduced-motion: no-preference){
    @supports (animation-timeline: view()){[data-reveal]{animation:dpsReveal .9s cubic-bezier(.2,.7,.2,1) both;animation-timeline:view();animation-range:entry 0% entry 38%;}}
  }
  a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #1668FF;outline-offset:2px;}

  /* === add.css 貼り付け ここから（お問い合わせ parts213系） === */
  .parts210_section_content{max-width:760px;margin:0 auto;padding:clamp(40px,6vw,72px) clamp(18px,4vw,56px) clamp(8px,2vw,20px);}
  .parts210_content{font-size:clamp(16px,1.15vw,17px);line-height:1.95;color:#444;margin:0;}
  .contact_section{max-width:760px;margin:0 auto;padding:clamp(16px,3vw,32px) clamp(18px,4vw,56px) clamp(64px,9vw,112px);}
  .parts213_form_wrap dl{display:grid;grid-template-columns:1fr;gap:8px;margin:0 0 22px;align-items:start;}
  @media(min-width:680px){.parts213_form_wrap dl{grid-template-columns:210px 1fr;gap:24px;margin:0 0 24px;}}
  .parts213_form_wrap dt{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-weight:700;font-size:16px;color:#1A1A1A;font-family:'Zen Kaku Gothic New',sans-serif;}
  @media(min-width:680px){.parts213_form_wrap dt{padding-top:13px;}}
  .parts213_form_wrap dd{display:block;margin:0;}
  .parts213_form_wrap .required{display:inline-block;font-size:16px;font-weight:700;color:#fff;background:#E60012;padding:2px 8px;border-radius:3px;vertical-align:middle;letter-spacing:.06em;}
  .parts213_form_wrap .attention{display:block;width:100%;font-size:16px;font-weight:500;color:#E60012;margin-top:4px;line-height:1.6;}
  .parts213_form_wrap .form_text_dt > span:first-child{display:flex;flex-direction:column;gap:2px;}
  .parts213_form_wrap input[type=text],.parts213_form_wrap input[type=email],.parts213_form_wrap textarea{width:100%;font:inherit;font-size:16px;padding:13px 15px;border:1px solid #D8D4CD;border-radius:8px;background:#fff;color:#1A1A1A;transition:border-color .15s ease,box-shadow .15s ease;}
  .parts213_form_wrap input:focus,.parts213_form_wrap textarea:focus{outline:none;border-color:#E60012;box-shadow:0 0 0 3px rgba(230,0,18,.12);}
  .parts213_form_wrap textarea{min-height:150px;resize:vertical;line-height:1.7;}
  .parts213_form_wrap .checkbox_group{display:flex;flex-wrap:wrap;gap:10px 18px;}
  .parts213_form_wrap .checkbox_group label{display:inline-flex;align-items:center;gap:9px;font-size:16px;cursor:pointer;}
  .parts213_form_wrap .checkbox_group input[type=checkbox]{width:18px;height:18px;accent-color:#E60012;}
  .parts213_form_wrap .error{display:block;color:#E60012;font-size:16px;margin:6px 0 0;}
  .parts213_form_wrap .contact_submit{margin-top:20px;}
  @media(min-width:680px){.parts213_form_wrap .contact_submit{padding-left:234px;}}
  .parts213_form_wrap .contact_submit input[type=submit]{display:inline-flex;align-items:center;justify-content:center;min-height:58px;padding:0 44px;font:inherit;font-weight:700;font-size:16px;color:#fff;background:#1A1A1A;border:none;border-radius:8px;cursor:pointer;transition:background .2s ease;}
  .parts213_form_wrap .contact_submit input[type=submit]:hover{background:#E60012;}
  /* === add.css 貼り付け ここまで === */

  .btn-arrow{display:inline-block;transition:transform .28s cubic-bezier(.2,.7,.2,1);}
  a:hover .btn-arrow,button:hover .btn-arrow,a:focus-visible .btn-arrow{transform:translateX(6px);}

  .dpsbtn{transition:filter .2s ease,box-shadow .2s ease,background-color .2s ease,border-color .2s ease,color .2s ease;}
  .dpsbtn:hover{filter:brightness(1.12);box-shadow:0 12px 26px -14px rgba(0,0,0,.5);}
  html{overflow-x:clip;}
  .sc-host[data-sc-name="header"]{display:contents;}

/* === page:index.html === */
*{box-sizing:border-box;}
  img{max-width:100%;}
.dpsh a,.dpsf a,[data-screen-label] a{text-decoration:none;color:inherit;}
  button{font:inherit;cursor:pointer;}
  .line-chunk{display:inline-block;overflow-wrap:anywhere;word-break:normal;}
  .dps-nav-desktop{display:none;}
  .dps-burger{display:inline-flex;}
  .dps-util{display:none;}
  @media(min-width:1100px){.dps-nav-desktop{display:flex;}.dps-burger{display:none;}.dps-util{display:flex;}.dps-drawer{display:none !important;}}
  .dps-hasmenu{position:relative;display:flex;align-items:center;}
  .dps-hasmenu>.dps-menutrigger{display:inline-flex;align-items:center;gap:5px;}
  .dps-caret{font-size:16px;color:#E60012;transition:transform .2s ease;}
  .dps-submenu{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(6px);min-width:212px;background:#fff;border:1px solid rgba(26,26,26,.08);border-radius:10px;box-shadow:0 18px 44px -18px rgba(26,26,26,.4);padding:8px;display:flex;flex-direction:column;gap:2px;opacity:0;visibility:hidden;transition:opacity .18s ease,transform .18s ease,visibility .18s;z-index:90;}
  .dps-submenu::before{content:"";position:absolute;top:-10px;left:0;right:0;height:12px;}
  .dps-hasmenu:hover .dps-submenu,.dps-hasmenu:focus-within .dps-submenu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
  .dps-hasmenu:hover .dps-caret{transform:rotate(180deg);}
  .dps-submenu a{padding:10px 14px;border-radius:7px;font-size:16px;font-weight:500;white-space:nowrap;color:#1A1A1A;transition:background .15s ease,color .15s ease;}
  .dps-submenu a:hover{background:#F7F5F1;color:#E60012;}
  .dps-hero{position:relative;display:flex;flex-direction:column;justify-content:center;padding:clamp(124px,15vw,160px) clamp(22px,5vw,72px) clamp(30px,4vw,46px);background-color:#121212;overflow:hidden;isolation:isolate;}
  .dps-hero::before{content:"";position:absolute;inset:0;z-index:-2;background:url("https://cdn.cuezilla-cms.com/enjoyworks-demo.com/images/1430/img-9021890cb0.webp") no-repeat;background-size:cover;background-position:72% center;transform:scale(1.06);transform-origin:center;will-change:transform;}
  .dps-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,rgba(13,13,13,.82) 0%,rgba(13,13,13,.54) 38%,rgba(13,13,13,.42) 62%,rgba(13,13,13,.66) 100%);}
  @media(max-width:820px){.dps-hero::before{background-position:75% center;}}
  @media(min-width:760px){.dps-hero{min-height:62svh;}}
  .dps-hero .hero-words{display:flex;flex-wrap:wrap;align-items:flex-end;gap:0 .16em;font-family:'Zen Kaku Gothic New',sans-serif;font-weight:900;line-height:1;font-size:clamp(23px,3.9vw,58px);}
  .dps-hero .hero-3a-row{display:flex;flex-direction:column;align-items:flex-start;gap:clamp(18px,4vw,28px);margin-top:clamp(8px,1.4vw,16px);}
  @media(min-width:760px){.dps-hero .hero-3a-row{flex-direction:row;align-items:flex-end;justify-content:space-between;gap:clamp(24px,4vw,64px);}}
  .dps-hero .hero-3a{font-family:'Archivo Black',sans-serif;font-weight:400;letter-spacing:-.02em;line-height:.82;font-size:clamp(118px,25vw,360px);color:#fff;white-space:nowrap;margin-left:-.05em;}
  .dps-hero .hero-3a-col{display:flex;flex-direction:column;align-items:flex-start;gap:clamp(6px,1.2vw,14px);}
  .siren-a{display:inline-block;}
  .hero-3a{position:relative;display:inline-block;}
  .hero-3a .siren-a{position:relative;}
  .hero-3a .siren-a::before,.hero-3a .siren-a::after{content:"A";position:absolute;inset:0;line-height:.82;background:radial-gradient(circle at 50% 55%,transparent 0 35%,rgba(255,80,95,1) 37%,rgba(255,80,95,1) 44%,transparent 46%);background-repeat:no-repeat;background-position:50% 55%;background-size:14% 14%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;pointer-events:none;opacity:0;}
  @keyframes dpsHeroIn{from{opacity:0;transform:translateY(30px);filter:blur(6px);}to{opacity:1;transform:none;filter:blur(0);}}
  @keyframes dpsHeroPop{from{opacity:0;transform:translateY(34px) scale(.96);filter:blur(8px);}to{opacity:1;transform:none;filter:blur(0);}}
  @keyframes dpsKen{0%{transform:scale(1.06) translate(0%,0%);}100%{transform:scale(1.22) translate(-3.5%,-2.4%);}}
  @keyframes sirenDetect{0%{opacity:0;background-size:14% 14%;}14%{opacity:1;}100%{opacity:0;background-size:230% 230%;}}
  @keyframes sirenLamp{0%,100%{opacity:.3;}50%{opacity:.8;}}
  @keyframes sirenOn{to{opacity:1;}}
  @media (prefers-reduced-motion: no-preference){
    .hero-3a .siren-a::before{animation:sirenDetect 3.6s ease-out 2s infinite;}
    .hero-3a .siren-a::after{animation:sirenDetect 3.6s ease-out 3.8s infinite;}
    .dps-hero::before{animation:dpsKen 18s ease-in-out 0s infinite alternate;}
    .dps-statband-sec::before{animation:dpsKen 18s ease-in-out 0s infinite alternate;}
  }
  .dps-statband-sec{position:relative;overflow:hidden;isolation:isolate;}
  .dps-statband-sec::before{content:"";position:absolute;inset:-50px;z-index:-2;background:url("https://cdn.cuezilla-cms.com/enjoyworks-demo.com/images/1430/img-9021890cb0.webp") center/cover no-repeat;filter:blur(18px) brightness(.8);transform:scale(1.12);transform-origin:center;will-change:transform;}
  .dps-statband-sec::after{content:"";position:absolute;inset:0;z-index:-1;background:rgba(10,10,10,.6);}
  .dps-statband{display:grid;grid-template-columns:1fr;gap:24px;align-items:center;}
  .dps-dotfield{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;}
  .dps-dotfield>span{position:absolute;border-radius:50%;}
  @keyframes dpsDrift{from{transform:translate(0,0);}to{transform:translate(var(--dx),var(--dy));}}
  @media(min-width:780px){.dps-statband{grid-template-columns:auto 1fr;gap:48px;}}
  [data-stats]{grid-template-columns:1fr;}
  @media(min-width:560px){[data-stats]{grid-template-columns:repeat(3,1fr);}}
  .dps-mosaic{display:grid;grid-template-columns:1fr;gap:14px;}
  @media(min-width:600px){.dps-mosaic{grid-template-columns:1fr 1fr;}}
  @media(min-width:980px){.dps-mosaic{grid-template-columns:repeat(3,1fr);grid-auto-rows:minmax(150px,1fr);}.dps-mosaic>.feat{grid-column:span 2;grid-row:span 2;}}
  .dps-htl{display:grid;grid-template-columns:1fr;gap:18px;}
  @media(min-width:780px){.dps-htl{grid-template-columns:repeat(5,1fr);gap:14px;position:relative;}}
  .dps-works{display:grid;grid-template-columns:1fr;gap:clamp(12px,1.6vw,18px);}
  .dps-works .work-card{position:relative;overflow:hidden;border-radius:18px;background:#121212;color:#fff;display:flex;flex-direction:column;justify-content:flex-end;text-decoration:none;min-height:300px;box-shadow:0 12px 30px -20px rgba(0,0,0,.5);transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s ease;}
  .dps-works .work-feat{min-height:360px;}
  .dps-works .wc-media{position:absolute;inset:0;overflow:hidden;}
  .dps-works .wc-media>*{transition:transform .6s cubic-bezier(.2,.7,.2,1);transform-origin:center;}
  .dps-works .wc-grad{position:absolute;inset:0;background:linear-gradient(to top,rgba(10,10,10,.95) 0%,rgba(10,10,10,.52) 46%,rgba(10,10,10,.1) 100%);}
  .dps-works .wc-body{position:relative;max-width:38em;}
  .dps-works .work-card:hover{box-shadow:0 30px 60px -24px rgba(0,0,0,.62);}
  .dps-works .work-card:hover .wc-media>*{transform:scale(1.07);}
  @media(min-width:720px){.dps-works{grid-template-columns:1fr 1fr;}.dps-works .work-feat{grid-column:1 / -1;min-height:400px;}}
  @media(min-width:900px){.dps-works{grid-template-columns:1.7fr 1fr;grid-template-rows:1fr 1fr;gap:clamp(14px,1.3vw,20px);}.dps-works .work-feat{grid-column:1;grid-row:1 / span 2;min-height:clamp(460px,50vw,580px);}}
  .dps-sticky{display:grid;grid-template-columns:1fr;gap:30px;}
  @media(min-width:900px){.dps-sticky{grid-template-columns:0.82fr 1.18fr;gap:clamp(40px,5vw,72px);align-items:start;}.dps-sticky-l{position:sticky;top:108px;}}
  .dps-reasons{display:flex;flex-direction:column;gap:clamp(40px,6vw,92px);margin-top:clamp(38px,5vw,68px);}
  .reason-row{display:grid;grid-template-columns:1fr;gap:clamp(20px,3vw,52px);align-items:center;}
  .reason-row .rr-media{border-radius:16px;overflow:hidden;box-shadow:0 24px 50px -28px rgba(0,0,0,.45);}
  .reason-row .rr-media .img-reveal{border-radius:16px;}
  @media(min-width:860px){
    .reason-row{grid-template-columns:1.1fr .9fr;}
    .reason-row.alt{grid-template-columns:.9fr 1.1fr;}
    .reason-row.alt .rr-media{grid-column:2;grid-row:1;}
    .reason-row.alt .rr-text{grid-column:1;grid-row:1;}
  }
  .rr-num{display:inline-block;font-family:'Archivo Black',sans-serif;font-weight:400;font-size:clamp(48px,6vw,88px);line-height:.86;color:#E60012;letter-spacing:-.02em;}
  .dps-quote{display:grid;grid-template-columns:1fr;gap:24px;align-items:center;}
  @media(min-width:820px){.dps-quote{grid-template-columns:1.5fr 1fr;gap:56px;}}
  .dps-grid4{display:grid;grid-template-columns:1fr;gap:clamp(12px,2vw,22px);}
  @media(min-width:560px){.dps-grid4{grid-template-columns:repeat(2,1fr);}}
  @media(min-width:960px){.dps-grid4{grid-template-columns:repeat(4,1fr);}}
  .dps-faq{display:grid;grid-template-columns:1fr;gap:clamp(20px,3vw,40px);}
  @media(min-width:880px){.dps-faq{grid-template-columns:0.7fr 1.3fr;gap:clamp(36px,4vw,64px);align-items:start;}}
  .dps-blog{display:grid;grid-template-columns:1fr;gap:clamp(16px,2vw,24px);}
  @media(min-width:820px){.dps-blog{grid-template-columns:1.4fr 1fr;align-items:stretch;}.dps-blog>.dps-side{display:grid;gap:clamp(16px,2vw,24px);}}
  .dps-flow2{display:flex;flex-direction:column;gap:26px;border-left:2px solid #DED9D2;padding-left:28px;margin-left:6px;}
  .dps-flow2 .flow-step{position:relative;}
  .dps-flow2 .flow-step::before{content:"";position:absolute;left:-35px;top:7px;width:11px;height:11px;border-radius:50%;background:#E60012;box-shadow:0 0 0 4px #F7F5F1;}
  .dps-flow2 .flow-step.is-last::before{background:#1A1A1A;}
  .dps-flow2 .flow-num{font-family:'Zen Kaku Gothic New',sans-serif;font-weight:900;font-size:clamp(34px,5vw,52px);line-height:1;color:#E60012;letter-spacing:.01em;}
  .dps-flow2 .flow-step.is-last .flow-num{color:#1A1A1A;}
  .dps-flow2 .flow-name{font-family:'Zen Kaku Gothic New',sans-serif;font-weight:700;font-size:clamp(16px,1.7vw,20px);margin:6px 0 4px;color:#1A1A1A;}
  .dps-flow2 .flow-desc{font-size:16px;color:#6B6B6B;margin:0;line-height:1.7;}
  @media(min-width:760px){
    .dps-flow2{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(10px,1.6vw,24px);border-left:none;padding-left:0;margin-left:0;}
    .dps-flow2 .flow-step{padding-top:34px;}
    .dps-flow2 .flow-step::before{left:0;top:9px;box-shadow:0 0 0 4px #F7F5F1;}
    .dps-flow2 .flow-step::after{content:"";position:absolute;left:16px;right:-12px;top:14px;height:2px;background:#DED9D2;}
    .dps-flow2 .flow-step.is-last::after{display:none;}
    .dps-flow2 .flow-num{margin-top:6px;}
  }
  [data-reveal]{opacity:1;transform:none;}
  .js-reveal h2 .tchar,.js-reveal .sec-title .tchar{display:inline-block;opacity:0;transform:translateY(.42em);transition:opacity .85s cubic-bezier(.22,.61,.36,1),transform .85s cubic-bezier(.22,.61,.36,1);}
  .js-reveal h2.chars-in .tchar,.js-reveal .sec-title.chars-in .tchar{opacity:1;transform:none;}
  .js-reveal .dps-works .work-card{opacity:0;transform:translateY(30px);transition:opacity 1.25s cubic-bezier(.2,.7,.2,1),transform 1.25s cubic-bezier(.2,.7,.2,1),box-shadow .45s ease;}
  .js-reveal .dps-works .work-card.is-in{opacity:1;transform:none;}
  .js-reveal .dps-works .work-card:nth-child(2){transition-delay:.22s;}
  .js-reveal .dps-works .work-card:nth-child(3){transition-delay:.44s;}
  .js-reveal .dps-flow2 .flow-step{opacity:0;transform:translateX(-44px);transition:opacity 1.15s cubic-bezier(.16,1,.3,1),transform 1.15s cubic-bezier(.16,1,.3,1);}
  .js-reveal .dps-flow2 .flow-step.is-in{opacity:1;transform:none;}
  .js-reveal .dps-flow2 .flow-step:nth-child(2){transition-delay:.12s;}
  .js-reveal .dps-flow2 .flow-step:nth-child(3){transition-delay:.24s;}
  .js-reveal .dps-flow2 .flow-step:nth-child(4){transition-delay:.36s;}
  .js-reveal .dps-flow2 .flow-step:nth-child(5){transition-delay:.48s;}
  .js-reveal .dps-reasons .reason-row{opacity:0;transform:translateX(-52px);transition:opacity 1.3s cubic-bezier(.16,1,.3,1),transform 1.3s cubic-bezier(.16,1,.3,1);}
  .js-reveal .dps-reasons .reason-row.alt{transform:translateX(52px);}
  .js-reveal .dps-reasons .reason-row.is-in{opacity:1;transform:none;}
  @keyframes dpsReveal{from{opacity:0;transform:translateY(28px);}to{opacity:1;transform:none;}}
  @keyframes dpsFade{from{opacity:0;}to{opacity:1;}}
  @keyframes dpsClip{from{clip-path:inset(0 0 100% 0);}to{clip-path:inset(0 0 0 0);}}
  @keyframes dpsScale{from{transform:scale(1.14);}to{transform:scale(1);}}
  @keyframes dpsBob{0%,100%{transform:translateY(0);}50%{transform:translateY(8px);}}
  @keyframes dpsPulse{0%{transform:scale(1);opacity:1;}70%{transform:scale(2.6);opacity:0;}100%{opacity:0;}}
  @keyframes dpsFlowPing{
    0%{box-shadow:0 0 0 4px #F7F5F1,0 0 0 0 rgba(230,0,18,.5);}
    22%{box-shadow:0 0 0 4px #F7F5F1,0 0 0 13px rgba(230,0,18,0);}
    100%{box-shadow:0 0 0 4px #F7F5F1,0 0 0 0 rgba(230,0,18,0);}
  }
  @keyframes dpsSlideX{from{opacity:0;transform:translateX(-44px);}to{opacity:1;transform:none;}}
  .img-reveal{overflow:hidden;}
  image-slot{display:block!important;width:100%!important;height:100%!important;}
  .cta-sec{position:relative;overflow:hidden;}
  .cta-sec>*{position:relative;z-index:1;}
  .cta-wipe{position:absolute;inset:0;z-index:2;background:#E60012;transform:translateX(-101%);pointer-events:none;}
  .js-reveal .cta-sec .cta-content{opacity:0;}
  .cta-sec.is-in .cta-wipe{animation:ctaWipe 1.15s cubic-bezier(.76,0,.24,1) forwards;}
  .cta-sec.is-in .cta-content{animation:ctaContentIn .75s cubic-bezier(.2,.7,.2,1) .62s both;}
  @keyframes ctaWipe{0%{transform:translateX(-101%);}42%{transform:translateX(0);}54%{transform:translateX(0);}100%{transform:translateX(101%);}}
  @keyframes ctaContentIn{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}
  .voice-sec{position:relative;overflow:hidden;isolation:isolate;}
  .voice-sec::before{content:"";position:absolute;inset:0;z-index:-2;background:url("https://cdn.cuezilla-cms.com/enjoyworks-demo.com/images/1430/img-9367acab0c.webp") no-repeat;background-size:cover;background-position:78% center;}
  .voice-sec::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,rgba(16,16,16,.93) 0%,rgba(16,16,16,.8) 42%,rgba(16,16,16,.58) 72%,rgba(16,16,16,.72) 100%);}
  @media(max-width:820px){.voice-sec::before{background-position:86% center;}}
  .js-reveal .voice-sec .dps-quote{opacity:0;transform:translateX(64px);transition:opacity 1.35s cubic-bezier(.16,1,.3,1),transform 1.35s cubic-bezier(.16,1,.3,1);}
  .js-reveal .voice-sec .dps-quote.is-in{opacity:1;transform:none;}
  .js-reveal .rec-btns a{opacity:0;transform:translateX(-40px);transition:opacity 1.05s cubic-bezier(.16,1,.3,1),transform 1.05s cubic-bezier(.16,1,.3,1);}
  .js-reveal .rec-btns.is-in a{opacity:1;transform:none;}
  .js-reveal .rec-btns.is-in a:nth-child(2){transition-delay:.26s;}
  .js-reveal .dps-grid4>div{opacity:0;transform:translateY(36px);transition:opacity 1.15s cubic-bezier(.2,.7,.2,1),transform 1.15s cubic-bezier(.2,.7,.2,1);}
  .js-reveal .dps-grid4.is-in>div{opacity:1;transform:none;}
  .js-reveal .dps-grid4.is-in>div:nth-child(2){transition-delay:.16s;}
  .js-reveal .dps-grid4.is-in>div:nth-child(3){transition-delay:.32s;}
  .js-reveal .dps-grid4.is-in>div:nth-child(4){transition-delay:.48s;}
  .js-reveal .faq-list>details{opacity:0;transform:translate(44px,-14px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);}
  .js-reveal .faq-list.is-in>details{opacity:1;transform:none;}
  .js-reveal .faq-list.is-in>details:nth-child(2){transition-delay:.1s;}
  .js-reveal .faq-list.is-in>details:nth-child(3){transition-delay:.2s;}
  .js-reveal .faq-list.is-in>details:nth-child(4){transition-delay:.3s;}
  .js-reveal .blog-grid>.col{opacity:0;transform:translateY(36px);transition:opacity 1.15s cubic-bezier(.2,.7,.2,1),transform 1.15s cubic-bezier(.2,.7,.2,1);}
  .js-reveal .blog-grid.is-in>.col{opacity:1;transform:none;}
  .js-reveal .blog-grid.is-in>.col:nth-child(2){transition-delay:.16s;}
  .js-reveal .blog-grid.is-in>.col:nth-child(3){transition-delay:.32s;}
  @media (prefers-reduced-motion: no-preference){
    @supports (animation-timeline: view()){
      [data-reveal]{animation:dpsReveal .85s cubic-bezier(.2,.7,.2,1) both;animation-timeline:view();animation-range:entry 0% entry 36%;}
      .img-reveal{animation:dpsClip 1.1s cubic-bezier(.16,1,.3,1) both;animation-timeline:view();animation-range:entry 0% entry 52%;}
      .img-reveal>*{display:block;height:100%;animation:dpsScale 1.3s cubic-bezier(.16,1,.3,1) both;animation-timeline:view();animation-range:entry 0% entry 66%;}
    }
    .dps-flow2 .flow-step::before{animation:dpsFlowPing 6s ease-out infinite;}
    .dps-flow2 .flow-step:nth-child(2)::before{animation-delay:1.2s;}
    .dps-flow2 .flow-step:nth-child(3)::before{animation-delay:2.4s;}
    .dps-flow2 .flow-step:nth-child(4)::before{animation-delay:3.6s;}
    .dps-flow2 .flow-step:nth-child(5)::before{animation-delay:4.8s;}
  }
  a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid #1668FF;outline-offset:3px;}
  details>summary{list-style:none;cursor:pointer;}
  details>summary::-webkit-details-marker{display:none;}

  .btn-arrow{display:inline-block;transition:transform .28s cubic-bezier(.2,.7,.2,1);}
  a:hover .btn-arrow,button:hover .btn-arrow,a:focus-visible .btn-arrow{transform:translateX(6px);}

  .dpsbtn{transition:filter .2s ease,box-shadow .2s ease,background-color .2s ease,border-color .2s ease,color .2s ease;}
  .dpsbtn:hover{filter:brightness(1.12);box-shadow:0 12px 26px -14px rgba(0,0,0,.5);}

  .cta-btns{align-items:stretch;}
  @media(max-width:559px){.cta-btns{flex-direction:column;align-items:stretch;}.cta-btns>a{justify-content:center;width:100%;}}
  html{overflow-x:clip;}
  .sc-host[data-sc-name="header"]{display:contents;}
  @keyframes ldSpin{to{transform:rotateY(360deg);}}
  @keyframes ldGlow{0%,100%{opacity:.32;transform:scale(.86);}50%{opacity:.95;transform:scale(1.12);}}
  @keyframes ldSweep{to{transform:rotate(360deg);}}
  @keyframes ldBar{0%{transform:translateX(-100%);}100%{transform:translateX(320%);}}
  @keyframes ldWipeIn{from{transform:translate(-145%,145%) skewX(-12deg);}to{transform:translate(0,0) skewX(-12deg);}}
  @keyframes ldWipeOut{from{transform:translate(0,0) skewX(-12deg);}to{transform:translate(145%,-145%) skewX(-12deg);}}
  .dps-loader{background:#0a0a0a;transition:background .25s ease;}
  .dps-loader .ld-stage,.dps-loader .dps-dotfield{transition:opacity .3s ease;}
  .dps-loader.ld-clear{background:transparent;}
  .dps-loader.ld-clear .ld-stage,.dps-loader.ld-clear .dps-dotfield{opacity:0;}
  .dps-loader.ld-done{display:none!important;}
  .dps-loader .ld-a{display:inline-block;font-family:'Archivo Black',sans-serif;font-weight:400;font-size:clamp(74px,15vw,150px);line-height:.8;color:#FF3040;text-shadow:0 0 22px rgba(255,48,64,.6);}
  @media (prefers-reduced-motion: no-preference){
    .dps-loader .ld-a{animation:ldSpin 2.8s cubic-bezier(.6,0,.4,1) infinite;}
    .dps-loader .ld-glow{animation:ldGlow 1.5s ease-in-out infinite;}
    .dps-loader .ld-sweep{animation:ldSweep 2.8s linear infinite;}
  }

/* === page:job.html === */
*{box-sizing:border-box;}
.dpsh a,.dpsf a,[data-screen-label] a{text-decoration:none;color:inherit;}
  .line-chunk{display:inline-block;overflow-wrap:anywhere;word-break:normal;}
  .dps-cols2{display:grid;grid-template-columns:1fr;gap:clamp(28px,4vw,56px);}
  @media(min-width:880px){.dps-cols2{grid-template-columns:1.05fr 0.95fr;gap:clamp(40px,5vw,80px);align-items:center;}}
  .dps-day{display:grid;grid-template-columns:1fr;gap:clamp(14px,2vw,18px);}
  @media(min-width:760px){.dps-day{grid-template-columns:repeat(5,1fr);}}
  [data-reveal]{opacity:1;transform:none;}
  @keyframes dpsReveal{from{opacity:0;transform:translateY(30px);}to{opacity:1;transform:none;}}
  @keyframes dpsClip{from{clip-path:inset(0 0 100% 0);}to{clip-path:inset(0 0 0 0);}}
  @keyframes dpsScale{from{transform:scale(1.12);}to{transform:scale(1);}}
  .img-reveal{overflow:hidden;}
  image-slot{display:block!important;width:100%!important;height:100%!important;}
  @media (prefers-reduced-motion: no-preference){
    @supports (animation-timeline: view()){
      [data-reveal]{animation:dpsReveal .9s cubic-bezier(.2,.7,.2,1) both;animation-timeline:view();animation-range:entry 0% entry 38%;}
      .img-reveal{animation:dpsClip 1.1s cubic-bezier(.16,1,.3,1) both;animation-timeline:view();animation-range:entry 0% entry 54%;}
      .img-reveal>*{display:block;height:100%;animation:dpsScale 1.3s cubic-bezier(.16,1,.3,1) both;animation-timeline:view();animation-range:entry 0% entry 68%;}
    }
  }
  a:focus-visible{outline:3px solid #1668FF;outline-offset:3px;}

  .btn-arrow{display:inline-block;transition:transform .28s cubic-bezier(.2,.7,.2,1);}
  a:hover .btn-arrow,button:hover .btn-arrow,a:focus-visible .btn-arrow{transform:translateX(6px);}

  .dpsbtn{transition:filter .2s ease,box-shadow .2s ease,background-color .2s ease,border-color .2s ease,color .2s ease;}
  .dpsbtn:hover{filter:brightness(1.12);box-shadow:0 12px 26px -14px rgba(0,0,0,.5);}

  .dps-dotfield{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;}
  .dps-dotfield>span{position:absolute;border-radius:50%;}
  @keyframes dpsDrift{from{transform:translate(0,0);}to{transform:translate(var(--dx),var(--dy));}}

  .cta-wipe{position:absolute;inset:0;z-index:2;background:#E60012;transform:translateX(-101%);pointer-events:none;}
  .js-reveal .cta-sec .cta-content{opacity:0;}
  .cta-sec.is-in .cta-wipe{animation:ctaWipe 1.15s cubic-bezier(.76,0,.24,1) forwards;}
  .cta-sec.is-in .cta-content{animation:ctaContentIn .75s cubic-bezier(.2,.7,.2,1) .62s both;}
  @keyframes ctaWipe{0%{transform:translateX(-101%);}42%{transform:translateX(0);}54%{transform:translateX(0);}100%{transform:translateX(101%);}}
  @keyframes ctaContentIn{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}

  .cta-btns{align-items:stretch;}
  @media(max-width:559px){.cta-btns{flex-direction:column;align-items:stretch;}.cta-btns>a{justify-content:center;width:100%;}}
  html{overflow-x:clip;}
  .sc-host[data-sc-name="header"]{display:contents;}

/* === page:privacy.html === */
*{box-sizing:border-box;}
.dpsh a,.dpsf a,[data-screen-label] a{text-decoration:none;color:inherit;}
  .line-chunk{display:inline-block;overflow-wrap:anywhere;word-break:normal;}
  [data-reveal]{opacity:1;transform:none;}
  @keyframes dpsReveal{from{opacity:0;transform:translateY(30px);}to{opacity:1;transform:none;}}
  @media (prefers-reduced-motion: no-preference){
    @supports (animation-timeline: view()){[data-reveal]{animation:dpsReveal .9s cubic-bezier(.2,.7,.2,1) both;animation-timeline:view();animation-range:entry 0% entry 38%;}}
  }
  a:focus-visible{outline:3px solid #1668FF;outline-offset:2px;}

  .btn-arrow{display:inline-block;transition:transform .28s cubic-bezier(.2,.7,.2,1);}
  a:hover .btn-arrow,button:hover .btn-arrow,a:focus-visible .btn-arrow{transform:translateX(6px);}

  .dpsbtn{transition:filter .2s ease,box-shadow .2s ease,background-color .2s ease,border-color .2s ease,color .2s ease;}
  .dpsbtn:hover{filter:brightness(1.12);box-shadow:0 12px 26px -14px rgba(0,0,0,.5);}
  html{overflow-x:clip;}
  .sc-host[data-sc-name="header"]{display:contents;}

/* === page:recruit.html === */
*{box-sizing:border-box;}
.dpsh a,.dpsf a,[data-screen-label] a{text-decoration:none;color:inherit;}
  .line-chunk{display:inline-block;overflow-wrap:anywhere;word-break:normal;}
  @media(max-width:559px){.law-body{text-align:left;}}
  .dps-cols2{display:grid;grid-template-columns:1fr;gap:clamp(28px,4vw,56px);}
  @media(min-width:880px){.dps-cols2{grid-template-columns:0.95fr 1.05fr;gap:clamp(40px,5vw,80px);align-items:center;}}
  .dps-link2{display:grid;grid-template-columns:1fr;gap:clamp(14px,2vw,22px);}
  @media(min-width:680px){.dps-link2{grid-template-columns:1fr 1fr;}}
  [data-reveal]{opacity:1;transform:none;}
  @keyframes dpsReveal{from{opacity:0;transform:translateY(30px);}to{opacity:1;transform:none;}}
  @keyframes dpsClip{from{clip-path:inset(0 0 100% 0);}to{clip-path:inset(0 0 0 0);}}
  @keyframes dpsScale{from{transform:scale(1.12);}to{transform:scale(1);}}
  .img-reveal{overflow:hidden;}
  image-slot{display:block!important;width:100%!important;height:100%!important;}
  @media (prefers-reduced-motion: no-preference){
    @supports (animation-timeline: view()){
      [data-reveal]{animation:dpsReveal .9s cubic-bezier(.2,.7,.2,1) both;animation-timeline:view();animation-range:entry 0% entry 38%;}
      .img-reveal{animation:dpsClip 1.1s cubic-bezier(.16,1,.3,1) both;animation-timeline:view();animation-range:entry 0% entry 54%;}
      .img-reveal>*{display:block;height:100%;animation:dpsScale 1.3s cubic-bezier(.16,1,.3,1) both;animation-timeline:view();animation-range:entry 0% entry 68%;}
    }
  }
  a:focus-visible{outline:3px solid #1668FF;outline-offset:3px;}

  .btn-arrow{display:inline-block;transition:transform .28s cubic-bezier(.2,.7,.2,1);}
  a:hover .btn-arrow,button:hover .btn-arrow,a:focus-visible .btn-arrow{transform:translateX(6px);}

  .dpsbtn{transition:filter .2s ease,box-shadow .2s ease,background-color .2s ease,border-color .2s ease,color .2s ease;}
  .dpsbtn:hover{filter:brightness(1.12);box-shadow:0 12px 26px -14px rgba(0,0,0,.5);}

  .dps-dotfield{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;}
  .dps-dotfield>span{position:absolute;border-radius:50%;}
  @keyframes dpsDrift{from{transform:translate(0,0);}to{transform:translate(var(--dx),var(--dy));}}

  .cta-wipe{position:absolute;inset:0;z-index:2;background:#E60012;transform:translateX(-101%);pointer-events:none;}
  .js-reveal .cta-sec .cta-content{opacity:0;}
  .cta-sec.is-in .cta-wipe{animation:ctaWipe 1.15s cubic-bezier(.76,0,.24,1) forwards;}
  .cta-sec.is-in .cta-content{animation:ctaContentIn .75s cubic-bezier(.2,.7,.2,1) .62s both;}
  @keyframes ctaWipe{0%{transform:translateX(-101%);}42%{transform:translateX(0);}54%{transform:translateX(0);}100%{transform:translateX(101%);}}
  @keyframes ctaContentIn{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}

  .cta-btns{align-items:stretch;}
  @media(max-width:559px){.cta-btns{flex-direction:column;align-items:stretch;}.cta-btns>a{justify-content:center;width:100%;}}
  html{overflow-x:clip;}
  .sc-host[data-sc-name="header"]{display:contents;}

/* === page:requirements.html === */
*{box-sizing:border-box;}
.dpsh a,.dpsf a,[data-screen-label] a{text-decoration:none;color:inherit;}
  .line-chunk{display:inline-block;overflow-wrap:anywhere;word-break:normal;}
  .dps-spec{display:grid;grid-template-columns:1fr;}
  @media(min-width:680px){.dps-spec{grid-template-columns:auto 1fr;}}
  [data-reveal]{opacity:1;transform:none;}
  @keyframes dpsReveal{from{opacity:0;transform:translateY(30px);}to{opacity:1;transform:none;}}
  @media (prefers-reduced-motion: no-preference){
    @supports (animation-timeline: view()){
      [data-reveal]{animation:dpsReveal .9s cubic-bezier(.2,.7,.2,1) both;animation-timeline:view();animation-range:entry 0% entry 38%;}
    }
  }
  a:focus-visible{outline:3px solid #1668FF;outline-offset:3px;}

  /* === 応募フォーム（parts219系・求人応募／フラット：項目名左・入力右） === */
  .parts219_form_wrap dl{display:grid;grid-template-columns:1fr;gap:8px;margin:0 0 22px;align-items:start;}
  @media(min-width:680px){.parts219_form_wrap dl{grid-template-columns:210px 1fr;gap:24px;margin:0 0 24px;}}
  .parts219_form_wrap dt{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-weight:700;font-size:16px;color:#1A1A1A;font-family:'Zen Kaku Gothic New',sans-serif;}
  @media(min-width:680px){.parts219_form_wrap dt{padding-top:13px;}}
  .parts219_form_wrap dd{display:block;margin:0;}
  .parts219_form_wrap .required{display:inline-block;font-size:16px;font-weight:700;color:#fff;background:#E60012;padding:2px 8px;border-radius:3px;letter-spacing:.06em;}
  .parts219_form_wrap .optional{display:inline-block;font-size:16px;font-weight:700;color:#8A8A8A;background:#EFEDE8;padding:2px 8px;border-radius:3px;letter-spacing:.06em;}
  .parts219_form_wrap input[type=text],.parts219_form_wrap input[type=email],.parts219_form_wrap input[type=tel],.parts219_form_wrap textarea{width:100%;font:inherit;font-size:16px;padding:13px 15px;border:1px solid #D8D4CD;border-radius:8px;background:#fff;color:#1A1A1A;transition:border-color .15s ease,box-shadow .15s ease;}
  .parts219_form_wrap input:focus,.parts219_form_wrap textarea:focus{outline:none;border-color:#E60012;box-shadow:0 0 0 3px rgba(230,0,18,.12);}
  .parts219_form_wrap textarea{min-height:150px;resize:vertical;line-height:1.7;}
  .parts219_form_wrap input[type=file]{width:100%;font:inherit;font-size:16px;color:#1A1A1A;padding:10px 0;}
  .parts219_form_wrap .form_address dd{display:flex;flex-wrap:wrap;align-items:center;gap:10px;}
  .parts219_form_wrap .form_address .zip{max-width:170px;}
  .parts219_form_wrap .attention{display:block;width:100%;font-size:16px;font-weight:500;color:#E60012;margin-top:4px;line-height:1.6;}
  .parts219_form_wrap .form_text_dt > span:first-child{display:flex;flex-direction:column;gap:2px;}
  .parts219_form_wrap .error{display:block;color:#E60012;font-size:16px;margin:6px 0 0;}
  .parts219_form_wrap .contact_submit{margin-top:20px;}
  @media(min-width:680px){.parts219_form_wrap .contact_submit{padding-left:234px;}}
  .parts219_form_wrap .contact_submit input[type=submit]{display:inline-flex;align-items:center;justify-content:center;min-height:58px;padding:0 44px;font:inherit;font-weight:700;font-size:16px;color:#fff;background:#1A1A1A;border:none;border-radius:8px;cursor:pointer;transition:background .2s ease;}
  .parts219_form_wrap .contact_submit input[type=submit]:hover{background:#E60012;}

  .btn-arrow{display:inline-block;transition:transform .28s cubic-bezier(.2,.7,.2,1);}
  a:hover .btn-arrow,button:hover .btn-arrow,a:focus-visible .btn-arrow{transform:translateX(6px);}

  .dpsbtn{transition:filter .2s ease,box-shadow .2s ease,background-color .2s ease,border-color .2s ease,color .2s ease;}
  .dpsbtn:hover{filter:brightness(1.12);box-shadow:0 12px 26px -14px rgba(0,0,0,.5);}

  .dps-dotfield{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;}
  .dps-dotfield>span{position:absolute;border-radius:50%;}
  @keyframes dpsDrift{from{transform:translate(0,0);}to{transform:translate(var(--dx),var(--dy));}}

  .cta-wipe{position:absolute;inset:0;z-index:2;background:#E60012;transform:translateX(-101%);pointer-events:none;}
  .js-reveal .cta-sec .cta-content{opacity:0;}
  .cta-sec.is-in .cta-wipe{animation:ctaWipe 1.15s cubic-bezier(.76,0,.24,1) forwards;}
  .cta-sec.is-in .cta-content{animation:ctaContentIn .75s cubic-bezier(.2,.7,.2,1) .62s both;}
  @keyframes ctaWipe{0%{transform:translateX(-101%);}42%{transform:translateX(0);}54%{transform:translateX(0);}100%{transform:translateX(101%);}}
  @keyframes ctaContentIn{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}

  .cta-btns{align-items:stretch;}
  @media(max-width:559px){.cta-btns{flex-direction:column;align-items:stretch;}.cta-btns>a{justify-content:center;width:100%;}}
  html{overflow-x:clip;}
  .sc-host[data-sc-name="header"]{display:contents;}

/* === page:service.html === */
*{box-sizing:border-box;}
.dpsh a,.dpsf a,[data-screen-label] a{text-decoration:none;color:inherit;}
  .line-chunk{display:inline-block;overflow-wrap:anywhere;word-break:normal;}
  .dps-cols2{display:grid;grid-template-columns:1fr;gap:clamp(28px,4vw,56px);}
  .svc-row{display:flex;flex-direction:column;gap:8px;border:1px solid #ECE9E4;border-left:3px solid #E60012;border-radius:12px;padding:clamp(20px,2.4vw,28px) clamp(22px,3vw,32px);transition:box-shadow .25s ease;}
  .svc-row:hover{box-shadow:0 18px 40px -28px rgba(26,26,26,.4);}
  .bldg-grid{display:grid;grid-template-columns:1fr;gap:clamp(22px,3vw,40px);}
  @media(min-width:880px){.bldg-grid{grid-template-columns:1.02fr 0.98fr;gap:clamp(36px,4vw,64px);align-items:stretch;}}
  @media(min-width:880px){.dps-cols2{grid-template-columns:1.05fr 0.95fr;gap:clamp(40px,5vw,80px);align-items:center;}}
  .dps-flow2{display:flex;flex-direction:column;gap:26px;border-left:2px solid #DED9D2;padding-left:28px;margin-left:6px;}
  .dps-flow2 .flow-step{position:relative;}
  .dps-flow2 .flow-step::before{content:"";position:absolute;left:-35px;top:7px;width:11px;height:11px;border-radius:50%;background:#E60012;box-shadow:0 0 0 4px #F7F5F1;}
  .dps-flow2 .flow-step.is-last::before{background:#1A1A1A;}
  .dps-flow2 .flow-num{font-family:'Zen Kaku Gothic New',sans-serif;font-weight:900;font-size:clamp(34px,5vw,52px);line-height:1;color:#E60012;}
  .dps-flow2 .flow-step.is-last .flow-num{color:#1A1A1A;}
  .dps-flow2 .flow-name{font-family:'Zen Kaku Gothic New',sans-serif;font-weight:700;font-size:clamp(16px,1.7vw,20px);margin:6px 0 4px;color:#1A1A1A;}
  .dps-flow2 .flow-desc{font-size:16px;color:#6B6B6B;margin:0;line-height:1.7;}
  @media(min-width:860px){
    .dps-flow2{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(10px,1.6vw,24px);border-left:none;padding-left:0;margin-left:0;}
    .dps-flow2 .flow-step{padding-top:34px;}
    .dps-flow2 .flow-step::before{left:0;top:9px;box-shadow:0 0 0 4px #F7F5F1;}
    .dps-flow2 .flow-step::after{content:"";position:absolute;left:16px;right:-12px;top:14px;height:2px;background:#DED9D2;}
    .dps-flow2 .flow-step.is-last::after{display:none;}
  }
  .js-reveal .dps-flow2 .flow-step{opacity:0;transform:translateX(-44px);transition:opacity 1.15s cubic-bezier(.16,1,.3,1),transform 1.15s cubic-bezier(.16,1,.3,1);}
  .js-reveal .dps-flow2 .flow-step.is-in{opacity:1;transform:none;}
  .js-reveal .dps-flow2 .flow-step:nth-child(2){transition-delay:.16s;}
  .js-reveal .dps-flow2 .flow-step:nth-child(3){transition-delay:.32s;}
  .js-reveal .dps-flow2 .flow-step:nth-child(4){transition-delay:.48s;}
  .js-reveal .dps-flow2 .flow-step:nth-child(5){transition-delay:.64s;}
  [data-reveal]{opacity:1;transform:none;}
  @keyframes dpsReveal{from{opacity:0;transform:translateY(30px);}to{opacity:1;transform:none;}}
  @keyframes dpsClip{from{clip-path:inset(0 0 100% 0);}to{clip-path:inset(0 0 0 0);}}
  @keyframes dpsScale{from{transform:scale(1.12);}to{transform:scale(1);}}
  @keyframes dpsFlowPing{0%{box-shadow:0 0 0 4px #F7F5F1,0 0 0 0 rgba(230,0,18,.5);}22%{box-shadow:0 0 0 4px #F7F5F1,0 0 0 13px rgba(230,0,18,0);}100%{box-shadow:0 0 0 4px #F7F5F1,0 0 0 0 rgba(230,0,18,0);}}
  .img-reveal{overflow:hidden;}
  image-slot{display:block!important;width:100%!important;height:100%!important;}
  @media (prefers-reduced-motion: no-preference){
    @supports (animation-timeline: view()){
      [data-reveal]{animation:dpsReveal .9s cubic-bezier(.2,.7,.2,1) both;animation-timeline:view();animation-range:entry 0% entry 38%;}
      .img-reveal{animation:dpsClip 1.1s cubic-bezier(.16,1,.3,1) both;animation-timeline:view();animation-range:entry 0% entry 54%;}
      .img-reveal>*{display:block;height:100%;animation:dpsScale 1.3s cubic-bezier(.16,1,.3,1) both;animation-timeline:view();animation-range:entry 0% entry 68%;}
    }
    .dps-flow2 .flow-step::before{animation:dpsFlowPing 6s ease-out infinite;}
    .dps-flow2 .flow-step:nth-child(2)::before{animation-delay:1.2s;}
    .dps-flow2 .flow-step:nth-child(3)::before{animation-delay:2.4s;}
    .dps-flow2 .flow-step:nth-child(4)::before{animation-delay:3.6s;}
    .dps-flow2 .flow-step:nth-child(5)::before{animation-delay:4.8s;}
  }
  a:focus-visible{outline:3px solid #1668FF;outline-offset:3px;}

  .btn-arrow{display:inline-block;transition:transform .28s cubic-bezier(.2,.7,.2,1);}
  a:hover .btn-arrow,button:hover .btn-arrow,a:focus-visible .btn-arrow{transform:translateX(6px);}

  .dpsbtn{transition:filter .2s ease,box-shadow .2s ease,background-color .2s ease,border-color .2s ease,color .2s ease;}
  .dpsbtn:hover{filter:brightness(1.12);box-shadow:0 12px 26px -14px rgba(0,0,0,.5);}

  .dps-dotfield{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;}
  .dps-dotfield>span{position:absolute;border-radius:50%;}
  @keyframes dpsDrift{from{transform:translate(0,0);}to{transform:translate(var(--dx),var(--dy));}}

  .cta-wipe{position:absolute;inset:0;z-index:2;background:#E60012;transform:translateX(-101%);pointer-events:none;}
  .js-reveal .cta-sec .cta-content{opacity:0;}
  .cta-sec.is-in .cta-wipe{animation:ctaWipe 1.15s cubic-bezier(.76,0,.24,1) forwards;}
  .cta-sec.is-in .cta-content{animation:ctaContentIn .75s cubic-bezier(.2,.7,.2,1) .62s both;}
  @keyframes ctaWipe{0%{transform:translateX(-101%);}42%{transform:translateX(0);}54%{transform:translateX(0);}100%{transform:translateX(101%);}}
  @keyframes ctaContentIn{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}
  html{overflow-x:clip;}
  .sc-host[data-sc-name="header"]{display:contents;}

/* === page:works.html === */
*{box-sizing:border-box;}
.dpsh a,.dpsf a,[data-screen-label] a{text-decoration:none;color:inherit;}
  .line-chunk{display:inline-block;overflow-wrap:anywhere;word-break:normal;}
  [data-reveal]{opacity:1;transform:none;}
  @keyframes dpsReveal{from{opacity:0;transform:translateY(30px);}to{opacity:1;transform:none;}}
  @media (prefers-reduced-motion: no-preference){
    @supports (animation-timeline: view()){[data-reveal]{animation:dpsReveal .9s cubic-bezier(.2,.7,.2,1) both;animation-timeline:view();animation-range:entry 0% entry 38%;}}
  }
  a:focus-visible{outline:3px solid #1668FF;outline-offset:2px;}

  /* === add.css 貼り付け ここから（施工実績 parts228系） === */
  .parts228_section{background:#fff;padding:clamp(48px,7vw,88px) clamp(18px,4vw,56px) clamp(64px,9vw,112px);}
  .parts228_wrap{max-width:1240px;margin:0 auto;}
  .parts228_post_list{display:grid;grid-template-columns:1fr;gap:clamp(18px,2.4vw,30px);}
  @media(min-width:600px){.parts228_post_list{grid-template-columns:1fr 1fr;}}
  @media(min-width:980px){.parts228_post_list{grid-template-columns:repeat(3,1fr);}}
  .parts228_post_wrap{background:#fff;border:1px solid #ECE9E4;border-radius:12px;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .25s ease,transform .25s ease;}
  .parts228_post_wrap:hover{box-shadow:0 20px 44px -28px rgba(26,26,26,.45);transform:translateY(-4px);}
  .parts228_post_img{display:block;width:100%;aspect-ratio:4/3;background:#E9E6E1;overflow:hidden;}
  .parts228_post_img a{display:block;width:100%;height:100%;}
  .parts228_post_img img{width:100%;height:100%;object-fit:cover;display:block;}
  .parts228_post_status{padding:16px 18px 0;}
  .parts228_post_date{font-size:16px;color:#8A8A8A;font-variant-numeric:tabular-nums;letter-spacing:.04em;}
  .parts228_post_title-excerpt{padding:6px 18px 18px;}
  .parts228_post_title{font-family:'Zen Kaku Gothic New',sans-serif;font-weight:700;font-size:16px;line-height:1.6;color:#1A1A1A;margin:0;}
  .parts-blog-ex-tag_wrap{display:flex;flex-wrap:wrap;gap:6px;padding:0 18px 18px;margin-top:auto;}
  .parts-blog-ex_tag{font-size:16px;font-weight:700;color:#E60012;background:#FBEBEC;padding:3px 10px;border-radius:20px;}
  .parts228_pagenation{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin-top:clamp(36px,5vw,56px);}
  .parts228_pagenation a,.parts228_pagenation span{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 12px;border:1px solid #D8D4CD;border-radius:8px;font-weight:700;font-size:16px;color:#1A1A1A;}
  .parts228_pagenation .pagination_num.current{background:#E60012;border-color:#E60012;color:#fff;}
  /* === add.css 貼り付け ここまで === */

  .btn-arrow{display:inline-block;transition:transform .28s cubic-bezier(.2,.7,.2,1);}
  a:hover .btn-arrow,button:hover .btn-arrow,a:focus-visible .btn-arrow{transform:translateX(6px);}

  .dpsbtn{transition:filter .2s ease,box-shadow .2s ease,background-color .2s ease,border-color .2s ease,color .2s ease;}
  .dpsbtn:hover{filter:brightness(1.12);box-shadow:0 12px 26px -14px rgba(0,0,0,.5);}
  html{overflow-x:clip;}
  .sc-host[data-sc-name="header"]{display:contents;}



/* ===== cuezilla-skin.css ===== */
/* ============================================================
   CueZilla 動的パーツ スキンキット v1.0
   ------------------------------------------------------------
   目的: ブログ/施工実績(blog-ex)/お問い合わせ/パンくず/ページヘッダー等の
         CueZilla 既定パーツを、サイトのトンマナ（ダーク/ライト・ブランド色・
         フォント・角丸）に "自動で寄せる" 汎用CSS。案件ごとの調整を最小化する。

   思想:
     (1) 色は CueZilla テーマ変数(--main-color 等)から自動連動
         → サイトのテーマ設定がそのまま skin にも効く（色は一元管理）
     (2) フォント/角丸/グリッド幅はトークンで指定（テーマ変数に無いため）
     (3) partsNNN は採番が可変だが接尾辞は共通(_post_wrap 等)
         → 属性セレクタ [class*="_xxx"] で番号非依存に当てる

   使い方:
     1. §0 のトークンを案件に合わせて調整（ダーク/ライトはプリセットをコピー）
     2. CueZilla テーマカラー(--main-color 等)をブランド値に設定
     3. 本ファイルをサイト全体CSS(AddCssInfo)へ貼る（サイト固有のフリーコーディングCSSの後ろ）
   ============================================================ */


/* ============================================================
   §0  トークン ─ ここだけ案件ごとに調整
   ============================================================ */
:root{
  /* --- 色: CueZilla テーマ変数から自動取得（無い場合のフォールバック付き） --- */
  --dyn-bg:        var(--background-color, #ffffff);   /* ページ/セクション背景 */
  --dyn-surface:   var(--temporary-color, #f4f4f2);    /* カード/パネル/入力欄の面 */
  --dyn-text:      var(--text-color, #222222);         /* 本文 */
  --dyn-heading:   var(--text-color, #111111);         /* 見出し */
  --dyn-muted:     var(--sub-color, #8a8a8a);          /* 補助/日付 */
  --dyn-border:    var(--sub-color, #dddddd);          /* 罫線/枠 */
  --dyn-accent:    var(--main-color, #1e3a5f);         /* アクセント（ボタン/チップ/見出しバー） */
  --dyn-accent-2:  var(--link-color, var(--main-color, #1e3a5f)); /* リンク/ホバー */
  --dyn-on-accent: #ffffff;                             /* アクセント面の上の文字 */

  /* --- フォント（site.css の :root に定義があればそれを使用） --- */
  --dyn-font-display: var(--font-display, "Noto Serif JP","Yu Mincho",serif);
  --dyn-font-body:    var(--font-body, "Noto Sans JP","Yu Gothic",sans-serif);
  --dyn-font-numeric: var(--font-numeric, "EB Garamond","Noto Serif JP",serif);

  /* --- 角丸（チップ/ボタン/カード）。角なしにするなら 0 --- */
  --dyn-radius: 6px;
  /* --- 一覧カードの最小幅 / 段組ギャップ --- */
  --dyn-card-min: 300px;
  --dyn-gap: 32px;
}

/* === テーマ プリセット（使う方を §0 の後にコピペして上書き） =========
   【ダーク】
   :root{
     --dyn-bg:#0A0A0A; --dyn-surface:#111110; --dyn-text:#F4F1EC; --dyn-heading:#FAF7F1;
     --dyn-muted:#8C857A; --dyn-border:#3A352D; --dyn-accent:#8E3A22; --dyn-accent-2:#B0533A;
     --dyn-on-accent:#FAF7F1; --dyn-radius:0;
   }
   【ライト】
   :root{
     --dyn-bg:#ffffff; --dyn-surface:#f7f7f5; --dyn-text:#222222; --dyn-heading:#111111;
     --dyn-muted:#8a8a8a; --dyn-border:#e3e3e3; --dyn-accent:#1e3a5f; --dyn-accent-2:#1e3a5f;
     --dyn-on-accent:#ffffff; --dyn-radius:6px;
   }
   ※ CueZilla テーマ変数(--main-color 等)を設定する場合は §0 が自動連動するのでプリセット不要。
   ============================================================ */


/* ============================================================
   §1  パンくず（CueZilla parts###_breadcrumb / p-breadcrumb）
   実markup: div.parts###_breadcrumb.p-breadcrumb.c-breadcrumb
             > ul.p-breadcrumb__inner(BreadcrumbList) > li.p-breadcrumb__item(ListItem)
   CueZilla共通CSSにパンくず装飾は無い → skin側で横並び・区切り・配色を付与
   ============================================================ */
[class*="_breadcrumb"], .p-breadcrumb{ background:var(--dyn-bg) !important; }
.p-breadcrumb__inner{
  list-style:none; margin:0 auto; padding:14px 24px;
  max-width:1200px; display:flex; flex-wrap:wrap; align-items:center;
}
.p-breadcrumb__item{
  display:inline-flex; align-items:center;
  color:var(--dyn-muted) !important; font-family:var(--dyn-font-body);
  font-size:.78rem; letter-spacing:.04em;
}
.p-breadcrumb__item a{ color:var(--dyn-muted) !important; text-decoration:none; }
.p-breadcrumb__item a:hover{ color:var(--dyn-accent-2) !important; text-decoration:underline; }
.p-breadcrumb__item:last-child{ color:var(--dyn-text) !important; }   /* 現在地 */
/* 区切り（2件目以降の前に "›"） */
.p-breadcrumb__item + .p-breadcrumb__item::before{
  content:"\203A"; margin:0 .6em; color:var(--dyn-border) !important; font-size:.95em;
}
.p-breadcrumb meta{ display:none; }   /* schema.org の <meta itemprop="position"> は非表示 */


/* ============================================================
   §2  ページヘッダー（[class*="_article_header"]）画像上のタイトル
   ============================================================ */
[class*="_article_header"] .ja, [class*="_article_header"] h1, [class*="_article_header"] h2{
  color:var(--dyn-heading) !important; font-family:var(--dyn-font-display) !important;
  text-shadow:0 2px 14px rgba(0,0,0,.5) !important;
}
[class*="_article_header"] .en{ color:var(--dyn-muted) !important; font-family:var(--dyn-font-numeric) !important; letter-spacing:.1em; text-shadow:0 1px 10px rgba(0,0,0,.5) !important; }


/* ============================================================
   §3  ページネーション（.pagination_* / [class*="_pagenation"]）
   ============================================================ */
.pagination_num, .pagination_prev, .pagination_next,
[class*="_pagenation"] a, [class*="_pagenation"] span{
  font-family:var(--dyn-font-numeric); color:var(--dyn-text) !important;
  border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius);
  min-width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center; text-decoration:none;
}
.pagination_num.current, [class*="_pagenation"] .current, [class*="_pagenation"] .active{
  background:var(--dyn-accent) !important; border-color:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important;
}
.pagination_num:hover, .pagination_prev:hover, .pagination_next:hover{ border-color:var(--dyn-accent-2) !important; color:var(--dyn-accent-2) !important; }
.pe-none{ opacity:.3; pointer-events:none; }


/* ============================================================
   §4  ブログ / 施工実績(blog-ex) 一覧（番号非依存）
   ============================================================ */
/* 一覧セクションの地 */
[class*="_post_list"], [class*="_post_wrap"]{ } /* 下で個別指定 */
/* カード並び（最小幅を確保して細くなりすぎない） */
[class*="_post_list"]{ display:grid !important; grid-template-columns:repeat(auto-fill, minmax(var(--dyn-card-min), 1fr)) !important; gap:var(--dyn-gap) !important; }
/* カード */
[class*="_post_wrap"]{
  display:block !important; width:auto !important; max-width:none !important; text-decoration:none;
  background:var(--dyn-surface) !important; border:1px solid var(--dyn-border) !important;
  border-radius:var(--dyn-radius); overflow:hidden;
  transition:transform .3s ease, border-color .3s ease;
}
[class*="_post_wrap"]:hover{ transform:translateY(-4px); border-color:var(--dyn-accent-2) !important; }
[class*="_post_img"]{ width:100%; display:block; border-radius:0; }
/* カード内のテキストに左右余白 */
[class*="_post_status"]{ border:none !important; background:transparent !important; margin:14px 16px 0 !important; padding:0 !important; display:flex !important; gap:10px; align-items:center; }
[class*="_post_title-excerpt"]{ padding:10px 16px 16px !important; }
[class*="_post_title"]{ font-family:var(--dyn-font-display) !important; color:var(--dyn-heading) !important; }
[class*="_post_excerpt"]{ color:var(--dyn-muted) !important; }
[class*="_post_date"]{ font-family:var(--dyn-font-numeric) !important; color:var(--dyn-muted) !important; }
/* カテゴリ/ステータスは1チップに */
[class*="_post_category"], [class*="_post_status"] > span:last-child{ border:1px solid var(--dyn-accent); border-radius:var(--dyn-radius); padding:2px 8px; color:var(--dyn-accent-2) !important; }
.parts-blog-ex-tag_wrap{ display:flex; flex-wrap:wrap; gap:6px; padding:0 16px 14px; }
.parts-blog-ex_tag{ font-size:.72rem; color:var(--dyn-muted) !important; background:var(--dyn-surface) !important; border:1px solid var(--dyn-border); border-radius:var(--dyn-radius); padding:2px 8px; }


/* ============================================================
   §5  サイドバー / 最近の投稿 / カテゴリ記事数
   ============================================================ */
[class*="_sidebar"], .recent_posts_wrap{ color:var(--dyn-text); }
[class*="_sidebar_post_title"], .recent_post_title{ font-family:var(--dyn-font-display) !important; color:var(--dyn-heading) !important; }
[class*="_sidebar_date"], .recent_post_date{ font-family:var(--dyn-font-numeric) !important; color:var(--dyn-muted) !important; }
/* カテゴリ右の記事数を視認できるチップに */
[class*="_sidebar_post_category_count"]{ background:var(--dyn-surface) !important; color:var(--dyn-text) !important; border:1px solid var(--dyn-border); border-radius:var(--dyn-radius); padding:0 8px !important; }


/* ============================================================
   §6  詳細ページ（本文 / 署名 / SNS / 詳細内スライダー）
   ============================================================ */
.parts-blog-ex_text{ font-family:var(--dyn-font-body); color:var(--dyn-text) !important; line-height:1.9; }
.parts-blog-ex_text h2, .parts-blog-ex_text h3{ font-family:var(--dyn-font-display) !important; color:var(--dyn-heading) !important; }
.signature_wrap{ font-family:var(--dyn-font-display); color:var(--dyn-muted) !important; border-top:1px solid var(--dyn-border); padding-top:16px; }
.slick-prev, .slick-next{ color:var(--dyn-accent-2) !important; }
/* ※詳細本文の親ラッパーが固定class薄め。崩れる場合は実ページで本文コンテナを確認し追補 */


/* ============================================================
   §7  お問い合わせフォーム
   ============================================================ */
.contact_section, [class*="_section_form"], [class*="_section_content"], [class*="_content_wrap"], [class*="_content"]{ background:var(--dyn-bg) !important; color:var(--dyn-text) !important; }
[class*="_form_wrap"]{ max-width:720px; margin:0 auto; }
[class*="_form_wrap"] label, [class*="_form_wrap"] dt, [class*="_form_wrap"] .ja, [class*="_form_wrap"] .en{ color:var(--dyn-text) !important; }
/* 入力欄を十分な大きさに（チェック/ラジオは除外） */
[class*="_form_wrap"] dd input:not([type="checkbox"]):not([type="radio"]),
[class*="_form_wrap"] dd select{ width:100% !important; max-width:none !important; padding:14px 16px !important; font-size:16px !important; min-height:54px !important; background:var(--dyn-surface) !important; color:var(--dyn-text) !important; border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius); }
[class*="_form_wrap"] textarea, .form_textarea textarea{ width:100% !important; padding:14px 16px !important; font-size:16px !important; min-height:220px !important; background:var(--dyn-surface) !important; color:var(--dyn-text) !important; border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius); }
/* チェックボックス/ラジオはサイズ統一 */
[class*="_form_wrap"] input[type="checkbox"], [class*="_form_wrap"] input[type="radio"]{ width:18px !important; height:18px !important; min-height:0 !important; padding:0 !important; margin:0 8px 0 0 !important; vertical-align:-3px; accent-color:var(--dyn-accent); flex:none !important; }
/* 必須バッジ: 文字を中央・折り返さない・角丸はトークン */
.required{ display:inline-flex !important; align-items:center !important; justify-content:center !important; line-height:1 !important; white-space:nowrap !important; padding:6px 12px !important; border-radius:var(--dyn-radius) !important; background:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important; }
.error{ color:var(--dyn-accent-2) !important; }
/* 「お問い合わせ内容」を囲む大きな箱(枠線)を撤去 */
.form_textarea, .form_text_dt{ border:none !important; background:transparent !important; }
/* 送信ボタン */
.contact_submit, .contact_submit button, .contact_submit input{ background:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important; border:none !important; border-radius:var(--dyn-radius) !important; }
/* プライバシー同意 */
.privacypolicy{ background:var(--dyn-surface) !important; border:1px solid var(--dyn-border); border-radius:var(--dyn-radius); padding:16px; color:var(--dyn-muted) !important; }
.privacypolicy-link{ color:var(--dyn-accent-2) !important; }
/* 電話/メール等の content バー（角丸はトークン） */
[class*="_content"] [class*="btn"], [class*="_content"] a[class*="round"]{ border-radius:var(--dyn-radius) !important; }


/* ============================================================
   §8  トップ用 お知らせ/ブログ teaser（notice-news / blog teaser）
   ============================================================ */
.parts040506_notice-news{ background:var(--dyn-bg) !important; color:var(--dyn-text) !important; }
.parts040506_notice-news *{ color:var(--dyn-text) !important; }
.parts040506_notice-news .title, .parts040506_notice-news .title a{ color:var(--dyn-heading) !important; }
.parts040506_notice-news [class*="date"], .parts040506_notice-news .f_yugothic{ font-family:var(--dyn-font-numeric) !important; color:var(--dyn-muted) !important; }
.parts040506_notice-news .more{ white-space:nowrap !important; color:var(--dyn-accent-2) !important; }
.parts040506_notice-news a{ color:var(--dyn-accent-2) !important; }
/* サムネ型ブログ teaser */
[class*="_blog_title_wrap"]{ font-family:var(--dyn-font-display) !important; color:var(--dyn-heading) !important; }
[class*="_blog_thumbnail"]{ border-radius:var(--dyn-radius); }
/* teaser内が Bootstrap .card（既定で白）の場合のダーク/トーン化 */
[class*="_blog"] .card{ background:var(--dyn-surface) !important; border-color:var(--dyn-border) !important; border-radius:var(--dyn-radius) !important; }
[class*="_blog"] .card-title, [class*="_blog"] .card-text{ color:var(--dyn-text) !important; }
[class*="_blog"] .card-title{ font-family:var(--dyn-font-display) !important; }


/* ============================================================
   §9  Bootstrap汎用クラスの地ならし（パーツ内に限定）
       text-dark / bg-light 等がパーツ内でトーンを乱すのを抑える
   ============================================================ */
[class*="parts"] .text-dark{ color:var(--dyn-text) !important; }
[class*="parts"] .bg-light{ background:var(--dyn-surface) !important; }
.card-header.bg-light{ background:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important; }


/* ============================================================
   §10  プライバシーポリシー（templates/privacy-policy.html のフリーコーディング設置版）
   ※CueZilla既定パーツ(item_title/item_description)へ転記する場合は §5 等で別途適用される
   ============================================================ */
.privacy{ max-width:880px; margin:0 auto; padding:64px 24px; color:var(--dyn-text); font-family:var(--dyn-font-body); line-height:1.9; }
.privacy__title{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:clamp(1.8rem,4vw,2.6rem); }
.privacy__subtitle{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:1.2rem; margin-top:8px; }
.privacy__lead{ color:var(--dyn-muted); margin:24px 0 40px; }
.privacy-item{ margin-bottom:32px; }
.privacy-item__title{ font-family:var(--dyn-font-display); color:var(--dyn-heading); border-left:3px solid var(--dyn-accent); padding-left:12px; margin-bottom:12px; }
.privacy-item__body{ color:var(--dyn-text); }
/* 原文の (1)(2)… 表記を維持（auto ol の "1." ではなく括弧付き番号で表示） */
.privacy-item__list{ list-style:none; counter-reset:pp; margin:8px 0; padding:0; }
.privacy-item__list li{ counter-increment:pp; padding-left:2.2em; text-indent:-2.2em; margin:4px 0; color:var(--dyn-text); }
.privacy-item__list li::before{ content:"(" counter(pp) ") "; }


/* ============================================================
   §11  下層ヘッダーパーツ（templates/subpage-header.html）
   サイトヘッダーとパンくずの間。フリーコーディングで別パーツ化
   ============================================================ */
/* padding-top に固定ヘッダー高さ(--fixed-header-h)を加算＝固定ヘッダーへのめり込み防止。
   固定ヘッダーが無いサイトは既定0で無影響。固定ヘッダー採用サイトは案件CSSで :root{ --fixed-header-h:88px } 等を設定（R-18）。 */
.subpage-header{ position:relative; padding:calc(72px + var(--fixed-header-h, 0px)) 24px 72px; background:var(--dyn-surface); text-align:center; overflow:hidden; }
.subpage-header__bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.45; z-index:0; }
.subpage-header__inner{ position:relative; z-index:1; }
.subpage-header__title{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:clamp(1.8rem,5vw,3rem); line-height:1.3; text-shadow:0 2px 14px rgba(0,0,0,.5); }
.subpage-header__en{ font-family:var(--dyn-font-numeric); color:var(--dyn-muted); letter-spacing:.12em; margin-top:8px; }


/* ============================================================
   §12  システム定型ページ：送信完了(thanks) / 404
   templates/thanks.html, templates/404.html 用。トークンスキン準拠
   ============================================================ */
.thanks, .notfound{ max-width:760px; margin:0 auto; padding:calc(80px + var(--fixed-header-h, 0px)) 24px 96px; text-align:center; }
/* CueZilla 既定404（section.not-found）はレイアウトを変えず、固定ヘッダー分の上余白だけ確保（R-18） */
.not-found{ padding-top: calc(var(--fixed-header-h, 0px) + 24px); }
.thanks__title, .notfound__title{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:clamp(1.8rem,5vw,2.6rem); line-height:1.3; margin-bottom:28px; }
.thanks__lead, .notfound__lead{ color:var(--dyn-text); line-height:2; margin-bottom:40px; }
.thanks__action, .notfound__action{ margin-top:8px; }


/* ============================================================
   §13  Bootstrap(テーマ)既定の恒久打ち消し（R-20）
   ------------------------------------------------------------
   CueZillaテーマが読み込む Bootstrap の "素のタグ/汎用クラス" が
   フリーHTMLに当たって崩す症状を、案件ごとの手当て無しで地ならしする。
   ここは確認済みの実害2件（test0605）に限定して打ち消す。
   ※「色/余白/タイポ」を意図して変える装飾は接頭辞クラス(.xw- 等)で
     付け直す＝下記より高詳細度になり、本セクションに勝つ（壊さない）。
   ============================================================ */
/* (a) <mark> / .mark の黄ハイライト背景：ロゴや見出しが黄色い箱になる症状 → 無効化。
       意図的なマーカー装飾は専用クラスで（Bootstrap名 .mark を流用しない＝R-20）。 */
mark, .mark{
  background-color:transparent !important; color:inherit !important;
  padding:0 !important; border-radius:0 !important;
}
/* (b) a:hover が Bootstrap青(#0a58ca)になる症状 → 既定は「ホバーで色を変えない」。
       !important は付けない＝個別のホバー装飾(接頭辞クラスや site.css の指定)が
       そのまま勝ち、未指定リンクだけが青化を免れる（フォールバック）。 */
a:hover{ color:inherit; }

/* (c) 電話番号リンク(tel:)の最低タップ確保（R-24／§5.5-3）。
       本文中インラインでも折り返さない。CTA/ボタン用途は接頭辞クラスで44px確保。 */
a[href^="tel:"]{ white-space:nowrap; }


/* ===== override.css ===== */
/* === DPS 追補（テーマ変数 / ドロワー / スコープ補正） === */
:root{
  --main-color:#E60012;
  --text-color:#1A1A1A;
  --sub-color:#8A8A8A;
  --accent-color:#B30210;
  --background-color:#FFFFFF;
  --link-color:#E60012;
  --temporary-color:#F7F5F1;
}
/* モバイルドロワー：navOpen固定描画のため既定で隠し、is-openで開く（JSがトグル／R-16） */
.dpsh-drawer{display:none !important;}
.dpsh-drawer.is-open{display:block !important;}
@media(min-width:1100px){.dpsh-drawer.is-open{display:none !important;}}


/* ============================================================
   §14  CMSパーツ追補（CueZilla動的ページの見た目調整・skin §2/§6/§10補完）
   ------------------------------------------------------------
   privacy / ブログ詳細(_single_article) / 施工実績詳細(blog-ex) など、
   CueZilla既定パーツのコンテナ幅・見出し階層をテーマトークンで整える。
   ・番号非依存セレクタ（[class*="..."]）
   ・コンテナ幅は CueZilla既定(.container 等)と競合するため !important で確定
   ・演出JSはこれらパーツ（[data-screen-label]外）に触れない＝見出し分解しない
   ============================================================ */

/* --- プライバシーポリシー パーツ（privacypolicy-parts_* / item_title / item_description） --- */
[class*="privacypolicy-parts"] .container{ max-width:900px !important; margin-left:auto !important; margin-right:auto !important; padding:clamp(48px,6vw,72px) 24px !important; width:auto !important; }
[class*="privacypolicy-parts"] .section_title_wrap{ text-align:center; margin-bottom:36px; }
[class*="privacypolicy-parts"] .section_title_wrap .title{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:clamp(1.6rem,4vw,2.2rem); font-weight:900; letter-spacing:.04em; }
[class*="privacypolicy-parts"] .about{ color:var(--dyn-text); line-height:1.95; margin-bottom:36px; }
[class*="privacypolicy-parts"] .content ul{ list-style:none; padding:0; margin:0; }
[class*="privacypolicy-parts"] .item_wrap{ margin:0 0 28px; padding:0; }
[class*="privacypolicy-parts"] .item_title{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:1.2rem; font-weight:700; line-height:1.5; border-left:4px solid var(--dyn-accent); padding-left:12px; margin:0 0 12px; }
[class*="privacypolicy-parts"] .item_description{ color:var(--dyn-text); line-height:1.95; }

/* --- ブログ/お知らせ 詳細記事（parts###_single_article > .article_wrap > article） --- */
[class*="_single_article"] .article_wrap{ max-width:880px !important; margin:0 auto !important; padding:0 24px !important; }
[class*="_single_article"] article{ font-family:var(--dyn-font-body); color:var(--dyn-text); line-height:1.95; }
[class*="_single_article"] h1.card-title{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:clamp(1.7rem,4vw,2.4rem); font-weight:700; line-height:1.35; margin:0 0 .3em; }
[class*="_single_article"] article h2{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:clamp(1.4rem,3vw,1.9rem); font-weight:700; line-height:1.45; margin:2.2em 0 .8em; padding-left:14px; border-left:4px solid var(--dyn-accent); }
[class*="_single_article"] article h3{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:clamp(1.2rem,2.4vw,1.5rem); font-weight:700; margin:1.8em 0 .6em; }
[class*="_single_article"] article h4{ color:var(--dyn-heading); font-size:1.1rem; font-weight:700; margin:1.4em 0 .5em; }
[class*="_single_article"] article p{ margin:0 0 1.4em; }
[class*="_single_article"] article ul, [class*="_single_article"] article ol{ margin:0 0 1.4em; padding-left:1.5em; }
[class*="_single_article"] article li{ margin:.3em 0; }
[class*="_single_article"] article a{ color:var(--dyn-accent-2); text-decoration:underline; }
[class*="_single_article"] article img{ max-width:100%; height:auto; border-radius:var(--dyn-radius); margin:1em 0; }
[class*="_single_article"] article blockquote{ border-left:3px solid var(--dyn-border); padding-left:16px; color:var(--dyn-muted); margin:1.4em 0; }

/* --- 施工実績(blog-ex) 詳細本文（parts-blog-ex_text_wrap：左端full bleed防止＋見出し） --- */
.parts-blog-ex_text_wrap{ max-width:980px !important; margin:0 auto !important; padding:0 24px !important; }
.parts-blog-ex_text_wrap h1, .parts-blog-ex_text_wrap h2{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:clamp(1.6rem,4vw,2.2rem); font-weight:700; line-height:1.35; margin:0 0 .3em; }
.parts-blog-ex_text_wrap h3{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:clamp(1.2rem,2.4vw,1.5rem); font-weight:700; margin:1.6em 0 .5em; }
.parts-blog-ex_text_wrap p{ line-height:1.95; margin:0 0 1.3em; }
.parts-blog-ex_text_wrap img{ max-width:100%; height:auto; border-radius:var(--dyn-radius); margin:1em 0; }

/* --- TOP NEWS帯（design-parts-52）：受領デザイン一致（赤帯＋白NEWSピル＋日付/タイトル白） --- */
[class*="design-parts-52"]{ background:#E60012 !important; padding:0 !important; }
[class*="design-parts-52"] .container{ max-width:1240px !important; margin:0 auto !important; padding:0 clamp(18px,4vw,56px) !important; }
[class*="design-parts-52"] .content{ display:flex !important; flex-wrap:wrap; align-items:center; gap:0; min-height:62px; }
[class*="design-parts-52"] .banner-area{ display:inline-flex !important; align-items:center; gap:9px; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:16px; letter-spacing:.12em; color:#E60012 !important; background:#fff !important; padding:8px 20px !important; border-radius:5px !important; margin:13px 22px 13px 0 !important; }
[class*="design-parts-52"] ul{ list-style:none !important; margin:0 !important; padding:0 !important; flex:1; min-width:0; }
[class*="design-parts-52"] li a{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 22px; min-height:58px; padding:8px 0; color:#fff; text-decoration:none; }
[class*="design-parts-52"] li a:hover{ opacity:.7; }
[class*="design-parts-52"] .date{ font-size:16px; color:rgba(255,255,255,.88); font-variant-numeric:tabular-nums; letter-spacing:.04em; }
@media(max-width:640px){ [class*="design-parts-52"] .banner-area{ margin:12px 0 4px !important; } }

/* --- TOP ブログ（parts131415_blog）：受領デザイン一致（ベージュ地＋中央見出し＋白カード3列） --- */
section[class*="parts131415_blog"]{ background:#F7F5F1 !important; padding:clamp(60px,8vw,104px) clamp(18px,4vw,56px) !important; }
[class*="parts131415_blog"] .container-lg{ max-width:1240px; margin:0 auto; }
[class*="parts131415_blog"] .parts131415_blog_title_wrap{ text-align:center; margin-bottom:clamp(30px,4vw,48px); }
[class*="parts131415_blog"] .parts131415_blog_title_wrap h2{ font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900 !important; font-size:clamp(28px,4vw,48px) !important; margin:0 0 8px !important; line-height:1.2; color:#1A1A1A !important; }
[class*="parts131415_blog"] .parts131415_blog_title_wrap p{ color:#5A5A5A !important; margin:0 !important; font-size:16px !important; font-weight:400 !important; }
[class*="parts131415_blog"] .row{ display:flex !important; flex-wrap:wrap !important; }
[class*="parts131415_blog"] .card{ background:#fff !important; border-radius:12px !important; overflow:hidden; height:100%; border:0 !important; transition:box-shadow .25s ease,transform .25s ease; }
[class*="parts131415_blog"] .card:hover{ box-shadow:0 22px 46px -28px rgba(26,26,26,.45); transform:translateY(-4px); }
[class*="parts131415_blog"] .card-body{ padding:20px 22px; }
[class*="parts131415_blog"] .card-title{ font-family:'Zen Kaku Gothic New',sans-serif; font-weight:700; font-size:16px; color:#E60012 !important; text-align:center; letter-spacing:.04em; margin:0 0 14px; }
[class*="parts131415_blog"] .card-text{ font-weight:700; font-size:16px; color:#1A1A1A; text-align:center; line-height:1.6; margin:0 0 16px; }
[class*="parts131415_blog"] .parts131415_blog_thumbnail{ width:100%; height:clamp(205px,27vw,240px); background:#E9E6E1; overflow:hidden; }
[class*="parts131415_blog"] .parts131415_blog_thumbnail img{ width:100%; height:100%; object-fit:cover; display:block; }

/* --- 一覧カードのカテゴリバッジ：CueZilla既定の赤地×skinの赤文字＝不可視 → 白文字の赤バッジに（blog/施工実績共通） --- */
[class*="_post_status"] > span:last-child{ background:var(--dyn-accent) !important; color:#fff !important; border:0 !important; border-radius:5px !important; padding:3px 10px !important; font-size:.72rem !important; font-weight:700 !important; letter-spacing:.04em; line-height:1.6; }

/* ============================================================
   §15  動的ページ精度調整（明朝撲滅 + ブログ列レイアウト）
   ============================================================ */
/* (1) フォントトークンをゴシック固定。skin §0 の --dyn-font-* が既定で
   明朝(Noto Serif/Yu Mincho)になり、ブログ/施工実績/TOP動的部の見出し・日付に
   明朝が出ていたのを一掃する。DPSは見出しもゴシック(Zen Kaku Gothic New)。 */
:root{
  --font-display:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;
  --font-body:'Noto Sans JP','Yu Gothic',sans-serif;
  --font-numeric:'Noto Sans JP',sans-serif;
}
/* (2) ブログ一覧：固定px(884px 300px)→ メイン可変＋サイドバー固定のレスポンシブ2カラム */
[class*="parts222_wrap"]{ display:grid !important; grid-template-columns:minmax(0,1fr) 340px !important; gap:clamp(28px,4vw,56px) !important; max-width:1240px !important; margin:0 auto !important; align-items:start; }
@media(max-width:900px){ [class*="parts222_wrap"]{ grid-template-columns:1fr !important; } }
/* カードは幅に応じて自動段組（固定2列で細くなりすぎ/余りを防ぐ） */
[class*="_post_list"]{ grid-template-columns:repeat(auto-fill,minmax(280px,1fr)) !important; }

/* ============================================================
   §16  個別精度調整（指示反映）
   ============================================================ */
/* (1)(4) ブログ/施工実績 詳細「最近の投稿」見出し：赤地に暗文字＝不可視 → 白文字 */
[class*="recent_post_title"]{ color:#fff !important; }
/* (3) 施工実績一覧カード：日付とタイトルが横並び → 縦2行（date / title） */
[class*="parts228_post_status"]{ flex-direction:column !important; align-items:flex-start !important; gap:6px !important; }
[class*="parts228_post_title"]{ margin:0 !important; }
/* (5) TOP NEWS帯：日付・タイトルを白＋帯の天地センター */
[class*="design-parts-52"] .date{ color:#fff !important; }
[class*="design-parts-52"] .content{ align-items:center !important; }
[class*="design-parts-52"] li, [class*="design-parts-52"] li a{ align-items:center !important; min-height:0 !important; }
/* (6) TOP ブログカード：行間が空きすぎ → 詰める */
[class*="parts131415_blog"] .card-body{ padding:18px 20px !important; }
[class*="parts131415_blog"] .card-title{ margin:0 0 10px !important; }
[class*="parts131415_blog"] .card-text{ line-height:1.5 !important; margin:0 0 12px !important; }

/* §16-b ブログ右カラム：サイドバー自身が列幅を埋めない(width:fit→169px)問題の解消。
   列幅(340px≈元の約2倍)を確保しつつ、サイドバーを width:auto で grid stretch 充填 */
[class*="parts222_sidebar"]{ width:auto !important; max-width:none !important; justify-self:stretch !important; }
[class*="parts222_sidebar_wrap"]{ width:auto !important; max-width:none !important; }

/* §16-c ブログ サイドバーのカテゴリ：受領デザインに合わせる
   （カテゴリ名=濃色/装飾なし、記事数=グレー文字＋細枠の角丸ピル。両方赤で不可視だったのを解消） */
[class*="_sidebar_post_category"]{ background:transparent !important; color:#1A1A1A !important; font-weight:500 !important; padding:0 !important; border:0 !important; border-radius:0 !important; }
[class*="_sidebar_post_category_count"]{ background:transparent !important; color:#8A8A8A !important; border:1px solid #E0DCD5 !important; border-radius:20px !important; padding:1px 9px !important; min-width:30px; text-align:center; font-weight:700 !important; }
[class*="category_post_count"] li a{ display:flex !important; align-items:center; justify-content:space-between; gap:10px; color:#1A1A1A !important; }

/* §16-d 施工実績カード：日付とタイトルを左揃え（title-excerptの左パディング16pxで右にズレていたのを解消） */
[class*="parts228_post_status"]{ margin-left:16px !important; margin-right:16px !important; padding:0 !important; }
[class*="parts228_post_title-excerpt"]{ padding-left:0 !important; padding-right:0 !important; }
[class*="parts228_post_date"]{ padding-left:0 !important; margin-left:0 !important; }

/* §16-e ブログ サイドバー枠の罫線を受領デザインに（下辺1pxだけ＝途切れ → 全周の薄罫線で囲む）
   h3=黒の上角丸ヘッダー / ul=1px #ECE9E4・上線なし・下角丸 / li下線 #F0EDE8 */
[class*="parts222_sidebar_wrap"] > h3{ border-radius:8px 8px 0 0 !important; }
[class*="parts222_sidebar_wrap"] > ul{ border:1px solid #ECE9E4 !important; border-top:none !important; border-radius:0 0 8px 8px !important; overflow:hidden; }
[class*="parts222_sidebar_wrap"] > ul > li{ border:none !important; border-bottom:1px solid #F0EDE8 !important; }
[class*="parts222_sidebar_wrap"] > ul > li:last-child{ border-bottom:none !important; }

/* ============================================================
   §17  TOP個別調整（NEWS文字色/天地・ブログ余白・ブログ&フッター全幅）
   ============================================================ */
/* ① NEWS帯：日付に続きタイトルも白、帯の天地センター */
[class*="design-parts-52"] li a, [class*="design-parts-52"] li a *{ color:#fff !important; }
[class*="design-parts-52"] .content{ align-items:center !important; }
/* ②④ ブログ：FAQとの間に白余白(margin-top)を設けつつ、ベージュ背景内の上padding(104px)が広すぎたのを縮小 */
section[class*="parts131415_blog"]{ margin-top:clamp(40px,6vw,72px) !important; padding-top:clamp(44px,5vw,64px) !important; }
/* ➂ ブログ・フッターを全幅に（CueZillaのラッパーsection左右56px paddingで背景が内側に寄っていたのを端まで）。
   横スクロールは html{overflow-x:clip} で防止（stickyヘッダーは維持）。コンテンツはmax-width1240で中央維持 */
section[class*="parts131415_blog"], .dpsf, .cta-sec{ position:relative; width:100vw !important; max-width:100vw !important; left:50%; margin-left:-50vw !important; margin-right:0 !important; }
html{ overflow-x:clip; }

/* §17-b フッター下の余白除去：CueZillaがフッターブロックを包む<section>の padding-bottom(104px) を0に
   （.dpsf が直下でない入れ子でも効くよう子孫セレクタに拡張＋下マージンも0） */
section:has(.dpsf){ padding-bottom:0 !important; margin-bottom:0 !important; }
.dpsf{ margin-bottom:0 !important; }

/* ============================================================
   §18  NEWS帯の天地中央 / ブログ上下余白の削除
   ============================================================ */
/* NEWS：ピルのmargin13pxで帯下にはみ出していたのを解消。帯に上下padding＋内容をセンタリング */
[class*="design-parts-52"]{ padding:12px 0 !important; }
[class*="design-parts-52"] .content{ align-items:center !important; min-height:0 !important; }
[class*="design-parts-52"] .banner-area{ margin:0 22px 0 0 !important; align-self:center !important; }
[class*="design-parts-52"] ul{ align-self:center !important; }
/* ブログ：margin-top・padding上下を削除（左右paddingは維持） */
section[class*="parts131415_blog"]{ margin-top:0 !important; padding-top:clamp(36px,4.5vw,56px) !important; padding-bottom:clamp(60px,8vw,104px) !important; }

/* ============================================================
   §19  お問い合わせ 確認/送信ボタンの崩れ修正
   原因: skin §7 が .contact_submit（コンテナ）に赤背景を付与 → 確認ページで
   「戻る/送信」2ボタンが赤ベタに溶けて崩れる。コンテナは透明flexにし、ボタン本体のみ装飾。
   ============================================================ */
.contact_submit{ background:transparent !important; display:flex !important; justify-content:center; align-items:center; gap:16px; flex-wrap:wrap; padding:0 !important; max-width:none !important; box-shadow:none !important; }
.contact_submit input, .contact_submit button{ flex:0 0 auto !important; width:auto !important; min-width:170px; min-height:54px; padding:0 30px !important; border-radius:6px !important; background:#E60012 !important; color:#fff !important; border:0 !important; display:inline-flex !important; align-items:center; justify-content:center; font-weight:700; cursor:pointer; }
/* 戻る は副次ボタン＝白アウトライン（送信＝赤 と区別） */
.contact_submit input[value="戻る"]{ background:#fff !important; color:#1A1A1A !important; border:2px solid #1A1A1A !important; }

/* §20 FAQの下余白を他セクションと揃える（FAQ section は padding-bottom:0 だった→104相当） */
#faq{ padding-bottom:clamp(104px,12vw,152px) !important; }  /* FAQ下のギャップを他セクション(208px)と同等に。元のインライン104では無変化だったため増量 */

/* ============================================================
   §21  クライアント指摘反映（2026-06-23）
   ============================================================ */
/* §21-a 募集要項「選考の流れ」：スマホで4ステップが flex:1+wrap のため幅がバラつく(ガタガタ)。
   カードを2×2等幅に整列し、矢印は全て横(→)のまま残す（01→02→ / 03→04。02後ろの→は1段目末尾）。
   カード basis と矢印幅を固定し、320〜639px で2列を維持。 */
@media(max-width:639px){
  .dps-selflow{ flex-wrap:wrap !important; justify-content:flex-start !important; align-items:center !important; gap:6px !important; }
  .dps-selflow > div{ flex:0 0 calc(50% - 30px) !important; min-width:0 !important; }
  .dps-selflow > span{ flex:0 0 18px !important; width:18px !important; text-align:center !important; }
}
/* §21-b ブログ/コラム一覧：サイドバー併存で本文列が細るタブレット帯(901〜1199px)では
   §15 の auto-fill(minmax 280px) が1列に落ちる(iPadMini横・iPadPro縦=1024pxで1列)。
   この帯だけ明示2列に固定する。 */
@media(min-width:901px) and (max-width:1199px){
  [class*="parts222_post_list"]{ grid-template-columns:1fr 1fr !important; }
}

/* ============================================================
   §22  フォーム必須バッジ・必須位置の調整（2026-06-23）
   対象：お問い合わせ(parts213) / 応募(parts219) 両方。番号非依存 [class*="_form_wrap"] で適用。
   ※実機DOMで確認。
   ============================================================ */
/* (1) 必須バッジが dt(flexコンテナ)内で潰れるのを防止（PC＝現状維持の基準。全幅適用）。 */
[class*="_form_wrap"] .required{
  flex:0 0 auto !important;
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  padding:6px 12px !important; line-height:1.2 !important; white-space:nowrap !important;
  background:#E60012 !important; color:#fff !important; border-radius:4px !important;
}
/* (2) textareaラベル(form_text_dt)の必須は theme 側で position:absolute → タブレットで右上に浮く/スマホでめり込む。
       通常フローに戻し、ラベル行の先頭へ上揃えで並べる。全幅適用。 */
[class*="_form_wrap"] .form_text_dt{ position:static !important; display:flex !important; align-items:flex-start !important; flex-wrap:wrap; gap:8px; }
[class*="_form_wrap"] .form_text_dt > span:first-child{ display:flex; flex-direction:column; gap:2px; flex:1 1 auto; min-width:0; }
[class*="_form_wrap"] .form_text_dt .required{ position:static !important; align-self:flex-start; }
/* (3) タブレット・スマホ(≤1024px)：赤囲みが文字に対して小さいので、左右は控えめ・天地は高さで確保して文字を包む。
       PC(>1024px)は (1) のまま＝現状維持。 */
@media(max-width:1024px){
  [class*="_form_wrap"] .required{
    width:max-content !important; max-width:none !important; min-height:28px !important;
    padding:0 8px !important; font-size:13px !important; line-height:1 !important;
    box-sizing:border-box !important;
  }
}
/* (4) スマホ：入力欄を確実に全幅化（崩れ防止） */
@media(max-width:679px){
  [class*="_form_wrap"] input[type=text],
  [class*="_form_wrap"] input[type=email],
  [class*="_form_wrap"] input[type=tel],
  [class*="_form_wrap"] textarea{ width:100% !important; max-width:none !important; }
}
#staff .img-reveal{
     display: none!important;
}