html {
    font-size: 1em;
    line-height: 1.4;
}

::-moz-selection {
    background: #b3d4fc;
    text-shadow: none;
}

::selection {
    background: #b3d4fc;
    text-shadow: none;
}

hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #ccc;
    margin: 1em 0;
    padding: 0;
}

audio,
canvas,
iframe,
img,
svg,
video {
    vertical-align: middle;
}

fieldset {
    border: 0;
    margin: 0;
    padding: 0;
}

textarea {
    resize: none;
}


/* ==========================================================================
   Author's custom styles
   ========================================================================== */

/* Extra Light */
@font-face {
    font-family: "AxisCondStd";
    src: url("../fonts/AxisCondStd-ExtraLight.otf") format("opentype");
    font-weight: 200;
    font-style: normal;
    font-display: swap;
}

/* Ultra Light */
@font-face {
    font-family: "AxisCondStd";
    src: url("../fonts/AxisCondStd-UltraLight.otf") format("opentype");
    font-weight: 100;
    font-style: normal;
    font-display: swap;
}

/* Light */
@font-face {
    font-family: "AxisCondStd";
    src: url("../fonts/AxisCondStd-Light.otf") format("opentype");
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

/* Regular */
    @font-face {
    font-family: "AxisCondStd";
    src: url("../fonts/AxisCondStd-Regular.otf") format("opentype");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

/* Medium */
@font-face {
    font-family: "AxisCondStd";
    src: url("../fonts/AxisCondStd-Medium.otf") format("opentype");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

/* Bold */
@font-face {
    font-family: "AxisCondStd";
    src: url("../fonts/AxisCondStd-Bold.otf") format("opentype");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

html {  text-rendering:optimizeLegibility !important; -webkit-font-smoothing:antialiased !important; -moz-osx-font-smoothing:grayscale !important; text-shadow:1px 1px 1px rgba(0,0,0,0.004); font-size:1em; line-height:1.5; letter-spacing:0em; color:#FFF; background:#000; font-family:Arial, Helvetica, sans-serif; font-weight:400; min-width:370px; }
body { margin:0; padding:0; }
html:has(body.v_home) { background: #8f8b8b;}

h1, h2, h3, h4, h5, p { margin:0; font-weight:400; }
strong { font-weight:700; }
figure { margin:0; padding:0; width:100%; }
ul, ol { margin:0; padding:0; list-style:none; }
video, img, svg { width:100%; height:auto; display:block; }
a { text-decoration:none; color:inherit; }

input, select { border-radius:0; -webkit-appearance:none; color:#000; outline:none; border:none; box-sizing:border-box; font-weight:400; font-family:Arial, Helvetica, sans-serif; font-size:0.875rem; }
input::placeholder { color:#000; font-weight:400; font-family:Arial, Helvetica, sans-serif; }

.u__mhide { display:none; }

header { height: 75px; position:fixed; width:100%; top:0; left:0; background:#000; z-index:200; }
header.v_selection { background:rgba(0,0,0,0.8); }
.c__header { position:absolute; width:100%; height:100%; box-sizing:border-box; padding:64px 20px 0; }
.c__header .s_logo { position:absolute; width:78px; top:24px; right:20px; z-index:100; }
.c__header .s_menu input { display:none; }
.c__header .s_menu .s_hamburger { display:block; width:48px; height:24px; position:absolute; top:24px; left:20px; z-index:100; cursor:pointer; }
.c__header .s_menu .s_hamburger:before { content:''; display:block; position:absolute; width:100%; height:100%; top:0; left:0; border-radius:20px; background:#FFF; opacity:0.2; }
.c__header .s_menu .s_hamburger span { display:block; width:16px; height:16px; border-radius:100%; background:#FFF; position:absolute; top:4px; left:4px; }
.c__header .s_menu nav { display:block; position:fixed; width:100%; height:100%; top:0; left:0; z-index:50; background:#8F8B8B; box-sizing:border-box; padding:172px 20px 0; transform:translateX(-100%); transition:transform 0.35s cubic-bezier(0.77, 0, 0.175, 1); }
.c__header .s_menu input:checked ~ nav { transform:translateX(0); }
.c__header .s_menu input:checked ~ .s_hamburger span { left:auto; right:4px; }
.c__header .s_menu nav > ul { font-family:acumin-pro-extra-condensed, sans-serif; font-weight:400; font-style:normal; font-size:2rem; line-height:100%; letter-spacing:1px; max-height:calc(100% - 110px); overflow-y:auto; }
.c__header .s_menu nav > ul > li { margin-bottom:31px; }
.c__header .s_menu nav > ul > li input { display:none; }
.c__header .s_menu nav > ul > li label { display:inline-block; cursor:pointer; }
.c__header .s_menu nav > ul ul { max-height:0; opacity:0; visibility:hidden; font-optical-sizing: auto; font-weight:400; font-style:normal; font-size:1rem; line-height:130%; letter-spacing:0; }
.c__header .s_menu nav > ul ul > li + li { margin-top:0px; }
.c__header .s_menu nav > ul > li > ul { max-height:500vh; opacity:1; visibility:visible; margin-top:0px; margin-bottom:-3px; }
.c__header .s_menu .s_lang { position:absolute; width:100%; height:110px; bottom:0; left:0; display:flex; justify-content:center; box-sizing:border-box; padding-top:28px; }
.c__header .s_menu .s_lang p { margin:0 40px; }
.c__header .s_menu .s_lang p:first-child { font-family:acumin-pro-extra-condensed, sans-serif; font-weight:300; font-style:normal; font-size:1.5rem; line-height:110%; letter-spacing:0.03em;  color: #D1D3D4 }
.c__header .s_menu .s_lang p:last-child { font-family:AxisCondStd, sans-serif; font-optical-sizing: auto; font-weight:300; line-height:110%; font-style:normal; font-size:1.125rem; color: #4D4D4F }
.c__header .s_menu .s_lang p:last-child:hover { color: #D1D3D4; }
.c__header .s_menu nav > ul > li a:hover { color: #999; }
.c__header .s_menu nav > ul > li > ul > li a { font-family: Arial, Helvetica, sans-serif; }
/* .c__header .s_menu .s_lang p a { opacity:0.4; } */

.c__workselection input { display:none; }
.c__workselection label { margin-top: 11px;display:block; cursor:pointer; position:relative; width: calc(100% + 40px); margin-left: -20px; box-sizing:border-box; padding:18px 20px 22px; background: rgba(0,0,0,0.8); }
.c__workselection label:after { content:''; display:block; position:absolute; width:24px; height:24px; top:17px; right:20px; background:url(../img/icon-chevron.svg) center center no-repeat; background-size:24px 24px; }
.c__workselection label, .c__workselection ul { font-size:0.9375rem; line-height:120%; font-family:Arial, Helvetica, sans-serif; font-weight:700; }
.c__workselection ul { background:rgba(0,0,0,0.8); width:calc(100% + 40px); margin-left:-20px; box-sizing:border-box; padding:7px 20px 22px; display:none; }
.c__workselection input:checked ~ label:after { transform:rotate(180deg); }
.c__workselection input:checked ~ ul { display:block; }
.c__workselection li { opacity:0.6; }
.c__workselection li + li { margin-top:20px; }

main { box-sizing:border-box; padding:130px 20px 97px; }
main.v_full { padding:75px 20px 97px;  }
main.v_worklanding, main.v_servicelanding {  padding: 175px 20px 97px; }
.c__about .s_title h1 { font-size:1.75rem; line-height:100%; letter-spacing:0.03em; font-family:acumin-pro-extra-condensed, sans-serif; font-weight:600; }
.c__about .s_copy { margin-top:16px; }
.c__about .s_copy p { font-size:1.75rem; line-height:100%; letter-spacing:0.03em; font-family:acumin-pro-extra-condensed, sans-serif; font-weight:300; }
.c__about .s_copy p + p { margin-top:16px; }

.c__works { margin-top:-23px; }
.c__works .s_selection select { box-sizing:border-box; padding:0; appearance:none; -webkit-appearance:none; -moz-appearance:none; background-color:#000; border:none; outline:0; color:#FFF; cursor:pointer; font-size:0.9375rem; font-weight:700; width:100%; background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="%23fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>'); background-repeat:no-repeat; background-position:right 2px center;
background-size:24px; }
.c__works .s_listing { width:calc(100% + 40px); margin-left:-20px; margin-top:0; }
.c__works .s_listing .s_item figure { aspect-ratio:390 / 224; overflow:hidden; position:relative; }
.c__works .s_listing .s_item figure img { position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); }
.c__works .s_listing .s_item p { box-sizing:border-box; padding:15px 20px 40px; font-size:0.9375rem; line-height:120%; }

.c__detail { margin-top:8px; }
.c__detail .s_title h1 { font-size:0.8125rem; line-height:120%; }
.c__detail .s_gallery { width:calc(100% + 40px); margin-left:-20px; margin-top:16px; }
.c__detail .s_gallery .swiper { padding-bottom:43px; }
.c__detail .s_gallery .swiper-wrapper { aspect-ratio:390 / 267; height:auto; }
.c__detail .s_gallery .swiper .swiper-slide { width:auto !important; margin-right:2px; }
.c__detail .s_gallery .swiper-wrapper figure { width:auto; height:100%; }
.c__detail .s_gallery .swiper-wrapper img { height:100%; width:auto; }
.c__detail .s_gallery .swiper-pagination { text-align:left; box-sizing:border-box; padding-left:16px; }
.c__detail .s_gallery .swiper-pagination-bullet { background:#FFF; opacity:0.2; }
.c__detail .s_gallery .swiper-pagination-bullet-active  { background:#FFF; opacity:1; }
.c__detail .s_writeup { margin-top:12px; }
.c__detail .s_writeup h2, .c__detail .s_writeup p { font-size:0.8125rem; line-height:120%; }
.c__detail .s_writeup h2 { margin-bottom:12px; font-weight: bold;}

.c__detail .s_gallery .swiper-wrapper video { height: 100%;  width: auto;  display: block;  object-fit: cover; }
.c__detail .s_gallery .v_youtube figure iframe { height: 100%; aspect-ratio: 16 / 9; width: auto; display: block; border: none; }

.c__contentcolumns { margin-top:80px; }
.c__contentcolumns h2 { font-weight:600; font-size:1rem; line-height:120%; }
.c__contentcolumns h3 { font-family:Arial, Helvetica, sans-serif; font-size:0.9375rem; line-height:120%; font-weight:700; margin-bottom:12px; margin-top:41px; text-transform: uppercase; }
.c__contentcolumns p, .c__contentcolumns ul { font-family:Arial, Helvetica, sans-serif; font-size:0.9375rem; line-height:120%; }
.c__contentcolumns ul { list-style:disc; box-sizing:border-box; padding-left:20px; }
.c__contentcolumns .s_col p + p, .c__contentcolumns .s_col p + ul, .c__contentcolumns .s_col ul + p { margin-top:12px; }
.c__contentcolumns .s_grid { display: flex; }
.c__contentcolumns .s_grid .s_col { width: 50%; }


/* .c__home { position: absolute; inset: 0;  display: flex; align-items: center; } */
.c__home { position: absolute; inset: 0; display: flex; align-items: center; box-sizing: border-box; }
.c__home > div { width: 100%;  padding: 0 20px; }
.c__home .s_logo { position: absolute; top: 24px; right: 20px; width: 78px; height: auto; }
.c__home .s_lang { display: flex; gap: 80px; align-items: center; justify-content: center; color: #D1D3D4; flex: 1;}
.c__home .s_lang p:first-child { font-family:acumin-pro-extra-condensed, sans-serif; font-weight:300; font-style:normal; font-size:1.5rem; line-height:110%; letter-spacing:0.03em;  color: #D1D3D4 }
.c__home .s_lang p:last-child { font-family:AxisCondStd, sans-serif; font-optical-sizing: auto; font-weight:300; line-height:110%; font-style:normal; font-size:1.125rem; }
.c__home .s_lang p:first-child:hover { color: #000; }
.c__home .s_lang p:last-child:hover { color: #fff; }

.c__contact * { font-family: Arial, Helvetica, sans-serif; }
.c__contact h3 { font-size: 0.8125rem; font-weight: bold; text-decoration: none; }
.c__contact p { font-size: 0.8125rem; text-decoration: none;  }
.c__contact h3 + p { padding-top: 2px; }
.c__contact p + h3 { padding-top: 9px; }
.c__contact a { text-decoration: underline; }
.c__contact a:hover { color: #414142; }
.c__contact .s_columns .s_copy + .s_form { padding-top: 41px; }
.c__contact .s_form fieldset + fieldset { padding-top: 9px; }
.c__contact .s_form label { font-size: 0.8125rem; font-weight: bold; display: block; padding-bottom: 2px; }
.c__contact .s_form input,
.c__contact .s_form textarea { font-size: 0.8125rem; color: #000; width: 100%; display: block; box-sizing: border-box; background: #d0d1d3; border: none; }
.c__contact .s_form textarea { height: 150px; resize: both; }
.c__contact .s_btn {  margin-top: 20px; }
.c__contact .s_btn a { text-decoration: none; color: #fff; display: inline-block; font-size: 0.8125rem; font-weight: bold; }
.c__contact .s_btn a.v_disabled { color:#FEFEFE; pointer-events:none; }
.c__contact p.s_error { color: red; }

.c__divider hr { margin: 41px 0; }

/* Hide the text until fonts are loaded to prevent the 'jump' */
.wf-loading body { visibility: hidden; }
/* Fallback if fonts fail to load after the timeout */
.wf-inactive body { visibility: visible; }

/* 720px */
@media only screen and (min-width: 720px) {
    .c__works .s_listing { display:flex; flex-wrap:wrap; width:calc(100% + 43px); margin-left:-23px; }
    .c__works .s_listing .s_item { width:50%; box-sizing:border-box; padding:0 3px; }
}

/* 900px */
@media only screen and (min-width: 56.250em) {
    body { box-sizing:border-box; padding:0 70px; position:relative; display:flex; }
    body.v_home { position: static; }

    .u__mhide { display:block; }
    .u__dhide { display:none; }

    header { position:static; width:170px; height:auto; }
    .c__header { padding:0 10px; height:auto; position:sticky; top:0; }

    body:has(.c__header.v_detail){ padding: 0; overflow-x: hidden; }
    header:has(.c__header.v_detail) { width: 240px; flex-shrink: 0; }
    .c__header.v_detail { padding:0 80px; }
    
    .c__header .s_menu .s_hamburger { display:none; }
    .c__header .s_menu nav { transform:unset; background:none; position:relative; padding:119px 0 20px; }
    .c__header .s_menu nav > ul { font-size:18px; line-height:100%; letter-spacing:0.06em; overflow-y:unset; }
    .c__header .s_menu nav > ul > li { margin-bottom:58px; }
    .c__header .s_menu nav > ul > li:has(ul) { margin-bottom: 30px; }
    .c__header .s_menu nav > ul ul { font-size:13px; line-height: 15px; }
    /* .c__header .s_menu nav > ul a, .c__header .s_menu nav > ul label { opacity:0.4; } */
    .c__header .s_menu nav > ul a.v_active, .c__header .s_menu nav > ul label.v_active { opacity:1; }
    .c__header .s_menu nav > ul > li > ul > li a { color: #999; }
    .c__header .s_menu nav > ul > li > ul > li a.v_active { color: #fff; }
    .c__header .s_menu .s_lang { position:fixed; top:30px; bottom:auto; left:0; height:auto; padding-top:0; width:auto; justify-content:flex-end; left:auto; right:80px; }
    .c__header .s_menu .s_lang p { margin:0; }
    .c__header .s_menu .s_lang p:first-child { font-size: 16px; margin-right:30px; }
    .c__header .s_menu .s_lang p:last-child { font-size:14px; }

    .c__workselection { display:none; }

    main, main.v_worklanding, main.v_servicelanding { width:66.66%; padding:117px 10px 97px; }
    main.v_full { width:83.33%; padding:117px 10px 97px; }
    .c__about { max-width:618px; }
    .c__about .s_title { margin-top:-3px; }
    .c__about .s_title h1 { font-size:3rem; }
    .c__about .s_copy p { font-size:3rem; }

    .c__works { margin-top:-18px; }
    .c__works .s_selection { display:none; }
    .c__works .s_listing { box-sizing:border-box; padding-right:0; width:calc(100% + 6px); margin-left:-3px; margin-top: 23px; }
    .c__works .s_listing .s_item { width:33.33%; }
    .c__works .s_listing .s_item figure { aspect-ratio:204 / 117; }
    .c__works .s_listing .s_item p { font-size:0.8125rem; line-height:120%; padding:10px 0 60px; }

    .c__detail { margin-top:0px; }
    /* 260530 changed by SWITCH from 33px to 0px */
    .c__detail .s_title h1 { line-height:120%; letter-spacing:0.03em; }
    .c__detail .s_gallery { width:calc(100% + 80px); margin-left:0; margin-top: 25px; overflow: visible; }
    .c__detail .s_gallery .swiper { padding-bottom:37px; overflow: visible; }
    .c__detail .s_gallery .swiper-wrapper { aspect-ratio: 1145 / 400; height:auto; }
    .c__detail .s_gallery .swiper .swiper-slide { width:auto !important; margin-right:4px; }
    .c__detail .s_gallery .swiper-pagination { padding-left:0; margin-left:-4px; display:none;} /* 260530 added by SWITCH pc版はドットを非表示 */
    .c__detail .s_writeup {  margin-top:2px; }
    .c__detail .s_writeup h2 { max-width:528px; }
    .c__detail .s_writeup p { max-width:528px; }

    .c__contentcolumns { margin-top:88px; }
    .c__contentcolumns h2 { margin-bottom:7px; }
    .c__contentcolumns .s_col h3:first-child { margin-top:6px; }
    .c__contentcolumns h3, .c__contentcolumns p, .c__contentcolumns ul { font-size:1rem; }
    .c__contentcolumns .s_columns { display:flex; }
    .c__contentcolumns.v_about .s_columns { align-items: flex-end; }
    .c__contentcolumns .s_col { width:50%; box-sizing:border-box; padding-right:40px; }
    .c__contentcolumns .s_title { margin-bottom:37px; }


    .c__home { top: 289px; align-items: flex-start; }
    .c__home > div { display: flex; justify-content: space-between; align-items: flex-end;  padding: 0 70px 0 250px; }
    .c__header .s_logo,
    .c__home .s_logo { position:fixed; right:80px; width:calc(calc(calc(100% - 140px) / 6) - 20px); max-width:160px; top:289px; }
    .c__home .s_lang { gap: 138px; justify-content: flex-start; }

    .c__contact .s_columns { display: flex; }
    .c__contact .s_columns .s_copy { width: 206px; }
    .c__contact .s_columns .s_form { width: 359px; }
    .c__contact .s_columns .s_copy + .s_form { padding-top: 0; }
    
    .mySwiper {cursor: grab;}/* 260530 added by SWITCH 画像上で手のひらカーソルにする */
    .mySwiper:active {cursor: grabbing;}/* 260530 added by SWITCH 画像上で手のひらカーソルにする */
}

/* 1280px */
@media only screen and (min-width: 1280px) {
    .c__works .s_listing .s_item { width:25.00%; }
    .c__contentcolumns { max-width: 820px; margin-right: auto; }
    .c__contentcolumns .s_col { padding-right:40px; }
}

/* 1440px */
@media only screen and (min-width: 1440px) {
    .c__works .s_listing .s_item { width:20.00%; }
}

@media (orientation: landscape) and (min-width: 60.000em)  {
    
}

@media print,
       (-o-min-device-pixel-ratio: 5/4),
       (-webkit-min-device-pixel-ratio: 1.25),
       (min-resolution: 120dpi) {

}

@supports (-webkit-touch-callout: none) or (-webkit-overflow-scrolling: touch) {
    .c__contentside {
        top: calc(100svh - 62px);
    }
}

/* ==========================================================================
   Helper classes
   ========================================================================== */

.hidden {
    display: none !important;
    visibility: hidden;
}

.visuallyhidden {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
}

.visuallyhidden.focusable:active,
.visuallyhidden.focusable:focus {
    clip: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    position: static;
    width: auto;
}

.invisible {
    visibility: hidden;
}

.clearfix:before,
.clearfix:after {
    content: " ";
    display: table;
}

.clearfix:after {
    clear: both;
}

.clearfix {
    *zoom: 1;
}

/* ==========================================================================
   Print styles
   ========================================================================== */

@media print {
    *,
    *:before,
    *:after {
        background: transparent !important;
        color: #000 !important;
        box-shadow: none !important;
        text-shadow: none !important;
    }

    a,
    a:visited {
        text-decoration: underline;
    }

    a[href]:after {
        content: " (" attr(href) ")";
    }

    abbr[title]:after {
        content: " (" attr(title) ")";
    }

    a[href^="#"]:after,
    a[href^="javascript:"]:after {
        content: "";
    }

    pre,
    blockquote {
        border: 1px solid #999;
        page-break-inside: avoid;
    }

    thead {
        display: table-header-group;
    }

    tr,
    img {
        page-break-inside: avoid;
    }

    img {
        max-width: 100% !important;
    }

    p,
    h2,
    h3 {
        orphans: 3;
        widows: 3;
    }

    h2,
    h3 {
        page-break-after: avoid;
    }
}

/* wph summer code */

	.note-modal-content {
		top: 40px;
	}

	.sn-checkbox-use-protocol {
		display: none !important;
	}

	.sn-checkbox-open-in-new-window {
		display: none !important;
	}

	.note-modal-footer {
		margin: 15px;
	}

	.note-editable ul {
		list-style-type: disc;
		padding-left: 7px;
	}

	.note-editable ol {
		list-style-type: decimal;
		padding-left: 7px;
	}