/* Scss Document */
:root {
  --pc: 1000px;
  --sp: 999px;
  --fs48: 4.8rem;
  --fs40: 4rem;
  --fs36: 3.6rem;
  --fs28: 2.8rem;
  --fs22: 2.2rem;
  --fs20: 2.0rem;
  --fs18: 1.8rem;
  --fs16: 1.6rem;
  --fs14:1.4rem;
  --fs12:1.2rem; }

@media (max-width: 999px) {
  :root {
    --fs48: 2.6rem;
    --fs40: 2.2rem;
    --fs36: 2.4rem;
    --fs28: 2.2rem;
    --fs22: 2.0rem;
    --fs20: 1.8rem;
    --fs18: 1.4rem;
    --fs16: 1.4rem;
    --fs14: 1.2rem;
    --fs12: 1.0rem; } }
/* 
---------------------------------------
service01
---------------------------------------
*/
#service01 {
  position: relative; }
  #service01 .bgDeco {
    position: absolute;
    top: -14rem;
    width: 100%;
    height: auto;
    z-index: -1; }
    @media (max-width: 999px) {
      #service01 .bgDeco {
        top: -6rem; } }
  #service01 .pageTtl {
    margin-bottom: 1.5rem;
    font-size: clamp(3rem, 3vw, 4.4rem);
    font-weight: 700;
    line-height: 1.5; }
    @media (max-width: 999px) {
      #service01 .pageTtl {
        margin-bottom: 1rem;
        font-size: 2.2rem; } }
  #service01 .enTtlBox {
    display: flex;
    align-items: center;
    gap: 3rem;
    width: 100%; }
    @media (max-width: 999px) {
      #service01 .enTtlBox {
        gap: 1.5rem; } }
  #service01 .enTtl {
    flex-shrink: 0;
    font-size: clamp(6rem, 7vw, 9.6rem);
    line-height: 1;
    letter-spacing: 0.01em; }
    @media (max-width: 999px) {
      #service01 .enTtl {
        font-size: 3.2rem; } }
  #service01 .line {
    display: block;
    flex: 1;
    height: 2px;
    background: #000; }
  #service01 .introBox {
    display: grid;
    grid-template-columns: calc(360 / 1400 * 100%) 1fr;
    gap: calc(100 / 1400 * 100%);
    align-items: start; }
    @media (max-width: 999px) {
      #service01 .introBox {
        display: block; } }
  #service01 .sttl {
    position: relative;
    padding-left: 3.5rem;
    font-size: 3.6rem;
    font-weight: 700;
    line-height: 1.5; }
    @media (max-width: 999px) {
      #service01 .sttl {
        margin-bottom: 1.2rem;
        padding-left: 2rem;
        font-size: 2rem; } }
    #service01 .sttl::before {
      content: "";
      position: absolute;
      top: 1.2rem;
      left: 0.6rem;
      width: 0.7rem;
      height: 3.2rem;
      background: #eb3300;
      transform: skewX(-28deg); }
      @media (max-width: 999px) {
        #service01 .sttl::before {
          top: 0.6rem;
          left: 0.4rem;
          width: 0.4rem;
          height: 1.8rem; } }
  #service01 .txt {
    max-width: 94rem; }
    @media (max-width: 999px) {
      #service01 .txt {
        max-width: none; } }
  #service01 .picBox {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    gap: 2px; }
    @media (max-width: 999px) {
      #service01 .picBox {
        grid-template-columns: 1fr; } }
  #service01 .pic {
    min-width: 0;
    overflow: hidden;
    aspect-ratio: 800 / 550; }
    @media (max-width: 999px) {
      #service01 .pic {
        aspect-ratio: 375 / 260; } }
    #service01 .pic img {
      width: 100%;
      height: 100%;
      object-fit: cover; }
  #service01 .serviceItem {
    margin-top: clamp(8rem, 9vw, 14rem);
    padding-top: clamp(7rem, 8vw, 12rem);
    border-top: 0.1rem solid #eee; }
    @media (max-width: 999px) {
      #service01 .serviceItem {
        margin-top: 4rem;
        padding-top: 3rem; } }
    #service01 .serviceItem .introBox {
      margin-top: 0; }
  #service01 .picBoxFinish {
    grid-template-columns: calc(1020 / 1400 * 100%) 1fr; }
    @media (max-width: 999px) {
      #service01 .picBoxFinish {
        grid-template-columns: 1fr; } }
    #service01 .picBoxFinish .picMain {
      aspect-ratio: 1020 / 720; }
      @media (max-width: 999px) {
        #service01 .picBoxFinish .picMain {
          aspect-ratio: 375 / 260; } }
    #service01 .picBoxFinish .picSubBox {
      display: grid;
      grid-template-rows: repeat(2, minmax(0, 1fr));
      gap: 2px;
      min-width: 0; }
      @media (max-width: 999px) {
        #service01 .picBoxFinish .picSubBox {
          grid-template-columns: repeat(2, minmax(0, 1fr));
          grid-template-rows: none; } }
      #service01 .picBoxFinish .picSubBox .pic {
        width: 100%;
        height: 100%;
        aspect-ratio: auto; }
        @media (max-width: 999px) {
          #service01 .picBoxFinish .picSubBox .pic {
            aspect-ratio: 1 / 1; } }
  #service01 .picBoxDesign {
    grid-template-columns: calc(860 / 1400 * 100%) 1fr; }
    @media (max-width: 999px) {
      #service01 .picBoxDesign {
        grid-template-columns: 1fr; } }
    #service01 .picBoxDesign .picWide,
    #service01 .picBoxDesign .picNarrow {
      aspect-ratio: auto;
      height: clamp(42rem, 46vw, 65rem); }
      @media (max-width: 999px) {
        #service01 .picBoxDesign .picWide,
        #service01 .picBoxDesign .picNarrow {
          height: auto;
          aspect-ratio: 375 / 260; } }
    #service01 .picBoxDesign .picWide img {
      object-position: center; }
    #service01 .picBoxDesign .picNarrow img {
      object-position: right; }
  #service01 .picBoxFloor {
    grid-template-columns: calc(540 / 1400 * 100%) 1fr; }
    @media (max-width: 999px) {
      #service01 .picBoxFloor {
        grid-template-columns: 1fr; } }
    #service01 .picBoxFloor .picNarrow,
    #service01 .picBoxFloor .picWide {
      aspect-ratio: auto;
      height: clamp(42rem, 46vw, 65rem); }
      @media (max-width: 999px) {
        #service01 .picBoxFloor .picNarrow,
        #service01 .picBoxFloor .picWide {
          height: auto;
          aspect-ratio: 375 / 260; } }

/* 
---------------------------------------
service02
---------------------------------------
*/
#service02 {
  position: relative;
  padding-top: clamp(8rem, 9vw, 14rem); }
  @media (max-width: 999px) {
    #service02 {
      padding-top: 6rem;
      margin-bottom: 6rem; } }
  #service02 .bgDeco {
    position: absolute;
    right: 0;
    top: 0;
    width: calc(1560 / 1920 * 100%);
    height: auto; }
    @media (max-width: 999px) {
      #service02 .bgDeco {
        width: 100%; } }
  #service02 .serviceHead {
    display: grid;
    grid-template-columns: calc(540 / 1400 * 100%) 1fr;
    gap: calc(100 / 1400 * 100%);
    align-items: start; }
    @media (max-width: 999px) {
      #service02 .serviceHead {
        display: block; } }
  #service02 .ttlBox {
    min-width: 0; }
    @media (max-width: 999px) {
      #service02 .ttlBox {
        margin-bottom: 3rem; } }
  #service02 .pageTtl {
    margin-bottom: 1.5rem;
    font-size: clamp(3rem, 3vw, 4.4rem);
    font-weight: 700;
    line-height: 1.5; }
    @media (max-width: 999px) {
      #service02 .pageTtl {
        margin-bottom: 1rem;
        font-size: 2.2rem; } }
  #service02 .enTtlBox {
    display: flex;
    align-items: center;
    gap: 3rem;
    width: 100%; }
    @media (max-width: 999px) {
      #service02 .enTtlBox {
        gap: 1.5rem; } }
  #service02 .enTtl {
    flex-shrink: 0;
    font-size: clamp(6rem, 7vw, 9.6rem);
    line-height: 1;
    letter-spacing: 0.01em; }
    @media (max-width: 999px) {
      #service02 .enTtl {
        font-size: 3.2rem; } }
  #service02 .line {
    display: block;
    flex: 1;
    height: 2px;
    background: #000; }
  #service02 .txtBox {
    padding-top: 1rem; }
    @media (max-width: 999px) {
      #service02 .txtBox {
        padding-top: 0; } }
    #service02 .txtBox .txt + .txt {
      margin-top: 3rem; }
      @media (max-width: 999px) {
        #service02 .txtBox .txt + .txt {
          margin-top: 2rem; } }
  #service02 .tilePicBox {
    display: grid;
    grid-template-columns: calc(385 / 1400 * 100%) calc(605 / 1400 * 100%) 1fr;
    gap: 2px;
    width: 100%;
    overflow: hidden; }
    @media (max-width: 999px) {
      #service02 .tilePicBox {
        grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  #service02 .tilePicColumn {
    display: grid;
    gap: 2px;
    min-width: 0; }
    #service02 .tilePicColumn .pic {
      min-height: 0; }
  #service02 .tilePicColumnLeft {
    grid-template-rows: calc(295 / 720 * 100%) 1fr; }
    @media (max-width: 999px) {
      #service02 .tilePicColumnLeft {
        grid-template-rows: repeat(2, 1fr); } }
  #service02 .tilePicColumnRight {
    grid-template-rows: calc(335 / 720 * 100%) 1fr; }
    @media (max-width: 999px) {
      #service02 .tilePicColumnRight {
        grid-template-rows: repeat(2, 1fr); } }
  #service02 .pic {
    min-width: 0;
    overflow: hidden; }
    #service02 .pic img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover; }
  #service02 .tilePicMain {
    min-height: clamp(52rem, 51vw, 72rem); }
    @media (max-width: 999px) {
      #service02 .tilePicMain {
        grid-column: 1 / 3;
        grid-row: 1;
        min-height: 0;
        aspect-ratio: 335 / 390; } }
  @media (max-width: 999px) {
    #service02 .tilePicColumn .pic {
      aspect-ratio: 1 / 1; } }

/* 
---------------------------------------
service03
---------------------------------------
*/
#service03 {
  position: relative;
  padding-top: clamp(8rem, 9vw, 14rem); }
  @media (max-width: 999px) {
    #service03 {
      padding-top: 6rem;
      margin-bottom: 9rem; } }
  #service03 .bgDeco {
    position: absolute;
    left: 0;
    top: 0;
    width: calc(1560 / 1920 * 100%);
    height: auto;
    z-index: -1; }
    @media (max-width: 999px) {
      #service03 .bgDeco {
        width: 100%; } }
  #service03 .exteriorBox {
    display: grid;
    grid-template-columns: calc(740 / 1400 * 100%) 1fr;
    gap: calc(100 / 1400 * 100%);
    align-items: stretch; }
    @media (max-width: 999px) {
      #service03 .exteriorBox {
        display: block; } }
  #service03 .contentBox {
    min-width: 0;
    padding: clamp(2rem, 3vw, 5rem) 0; }
    @media (max-width: 999px) {
      #service03 .contentBox {
        padding: 0;
        margin-bottom: 4rem; } }
  #service03 .pageTtl {
    margin-bottom: 1.5rem;
    font-size: clamp(3rem, 3vw, 4.4rem);
    font-weight: 700;
    line-height: 1.5; }
    @media (max-width: 999px) {
      #service03 .pageTtl {
        margin-bottom: 1rem;
        font-size: 2.2rem; } }
  #service03 .enTtlBox {
    display: flex;
    align-items: center;
    gap: 3rem;
    width: 100%; }
    @media (max-width: 999px) {
      #service03 .enTtlBox {
        gap: 1.5rem; } }
  #service03 .enTtl {
    flex-shrink: 0;
    font-size: clamp(6rem, 7vw, 9.6rem);
    line-height: 1;
    letter-spacing: 0.01em; }
    @media (max-width: 999px) {
      #service03 .enTtl {
        font-size: 3.2rem; } }
  #service03 .line {
    display: block;
    flex: 1;
    height: 2px;
    background: #000; }
  #service03 .txtBox .txt + .txt {
    margin-top: 3rem; }
    @media (max-width: 999px) {
      #service03 .txtBox .txt + .txt {
        margin-top: 2rem; } }
  #service03 .exteriorPicBox {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 2px;
    min-width: 0;
    height: clamp(58rem, 52vw, 74rem);
    overflow: hidden; }
    @media (max-width: 999px) {
      #service03 .exteriorPicBox {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: auto;
        height: auto; } }
  #service03 .pic {
    min-width: 0;
    min-height: 0;
    height: 100%;
    overflow: hidden;
    aspect-ratio: auto; }
    @media (max-width: 999px) {
      #service03 .pic {
        height: auto;
        aspect-ratio: 1 / 1.25; } }
    #service03 .pic img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover; }
