@charset "UTF-8";
/*
Theme Name: ホンマ製作所
Description: ホンマ製作所トップページ用スタイルです。
Author: 株式会社アドプロダクションエム
Author URI: https://addpro-m.co.jp/
*/
:root {
    --content-w: 1680px;
}
/* ====================
body
====================*/
@media screen and (min-width: 768px) {
    body::after {
        background-image: linear-gradient(30deg, rgb(231 229 226) 0%, rgb(244 242 239) 30%, rgb(255, 255, 253) 60%);
        content: "";
        height: 100vh;
        left: 0;
        mix-blend-mode: multiply;
        position: fixed;
        top: 0;
        width: 100vw;
        z-index: -1;
    }
}
/* ==================== 
header, nav, button
==================== */
/*header*/
header {
    color: var(--c-white);
    margin-top: var(--n-30);
    padding: 0 var(--n-45);
    position: absolute;
    width: 100%;
    z-index: 2;
}
@media screen and (min-width: 1366px) {
header {
    margin-top: var(--n-45);
}
}
/* ====================
mainvisual
==================== */
.mainvisual {
    color: var(--c-white);
    height: 100vh;
    min-height: 480px;
    position: relative;
}
.mainvisual .swiper {
    height: 100%;
}
.mainvisual .swiper-slide {
    background-color: var(--c-black);
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.mainvisual .swiper-slide::after {
    background-color: var(--c-black);
    content: "";
    height: 100%;
    opacity: 0.2;
    position: absolute;
    width: 100%;
}
@media screen and (min-width: 768px) {
    .mainvisual {
        height: 100vh !important;
    }
    .mainvisual .swiper-slide::after {
        opacity: 0;
    }
}
@media screen and (min-width: 1024px) {
    .mainvisual {
        min-height: 50vw;
    }
}
/*text in slider*/
@keyframes textFadeIn {
    0% {
        opacity: 0;
        transform: translateY(30px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}
.mainvisual h2 {
    margin-top: var(--n-60);
}
.mainvisual .swiper-slide h2,
.mainvisual .swiper-slide .copy-sub {
    text-shadow: 0 0 15px rgba(var(--c-black-rgb), 0.5);
    z-index: 1;
}
.mainvisual .swiper-slide .btn-red {
    z-index: 1;
}
.mainvisual .swiper-slide .btn-red a {
    box-shadow: 0 0 15px rgba(var(--c-black-rgb), 0.5);
}
.mainvisual .swiper-slide.swiper-slide-active h2,
.mainvisual .swiper-slide.swiper-slide-active .copy-sub,
.mainvisual .swiper-slide.swiper-slide-active .btn-red {
    animation-delay: 1.4s;
    animation-duration: 1s;
    animation-fill-mode: both;
    animation-name: textFadeIn;
    animation-timing-function: cubic-bezier(.11,.44,.79,.92);
}
.mainvisual .copy-sub {
    font-size: max(var(--f-s-p), 1.2vw);
    line-height: max(var(--f-lh-m), 2.4vw);
    margin-top: var(--n-30);
}
.mainvisual .copy-sub br {
    display: none;
}
.mainvisual .btn-red {
    font-weight: var(--f-w-bold);
    margin-top: var(--n-30);
    position: relative;
}
.mainvisual .btn-red a {
    background-color: var(--c-white);
    color: var(--c-black);
}
.mainvisual .btn-red a::before {
    background-color: rgba(var(--c-black-rgb), 0.1);
}
@media screen and (min-width: 540px) {
    .mainvisual h2 {
        font-size: max(var(--f-s-h1),4vw);
    }
    .mainvisual .copy-sub br {
        display: block;
    }
}
@media screen and (min-width: 768px) {
    .mainvisual h2 {
        margin-top: 0;
    }
}
@media screen and (min-width: 1366px) {
    .mainvisual .btn-red {
        font-size: var(--f-s-h6); 
    }
}
/*image in slider*/
.mainvisual .img {
    height: 100%;
    margin-top: 0;
    position: absolute;
    width: 100%;
}
.mainvisual .img img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}
@media screen and (min-width: 540px) {
    .mainvisual .img {
        right: 0;
        width: max(75vw, 480px);
    }
}
/*allow button in slider*/
.mainvisual [class^="swiper-btn"] {
    bottom: 2vw;
    color: currentColor;
    cursor: pointer;
    height: min(40px, 12.5vw);
    opacity: 0.5;
    position: absolute;
    width: min(40px, 12.5vw);
    z-index: 1;
}
.mainvisual [class^="swiper-btn"] svg {
    height: min(40px, 10vw);
    width: min(16px, 2vw);
}
.mainvisual .swiper-btn-prev {
    left: 1vw;
    transition-property: left;
}
.mainvisual .swiper-btn-prev:hover {
    left: 0.5vw;
}
.mainvisual .swiper-btn-prev svg {
    transform: rotateZ(180deg);
}
.mainvisual .swiper-btn-next {
    right: 1vw;
    transition-property: right;
}
.mainvisual .swiper-btn-next:hover  {
    right: 0.5vw;
}
@media screen and (min-width: 540px) {
    .mainvisual [class^="swiper-btn"] {
        bottom: 50%;
        transform: translateY(50%);
    }
}
/*fraction in slider*/
.mainvisual .swiper-pagination {
    bottom: var(--n-30);
    color: transparent;
    line-height: 1;
    z-index: 1;
}
.mainvisual .swiper-pagination span {
    color: var(--c-white);
    display: inline-block;
}
.mainvisual .swiper-pagination .swiper-pagination-total::before {
    content: "／";
    font-weight: normal;
    margin-right: 0.75em;
    font-size: var(--f-s-p);
}
@media screen and (min-width: 768px) {
    .mainvisual .swiper-pagination {
        bottom: calc(var(--n-90) + var(--n-30));
        font-weight: var(--f-w-bold);
        left: auto;
        right: var(--n-60);
        width: auto;
    }
    .mainvisual .swiper-pagination .swiper-pagination-current {
        font-size: 2.8rem;
        transform: translate(1.25em, -1em)
    }
    .mainvisual .swiper-pagination .swiper-pagination-total {
        font-size: var(--f-s-h4);
    }
    .mainvisual .swiper-pagination .swiper-pagination-total::before {
        background-color: currentColor;
        content: "";
        display: inline-block;
        height: 1px;
        transform: rotateZ(-45deg) translate(2.5em, -1.5em);
        transform-origin: right bottom;
        width: 4em;
    }
}
/* ====================
products, news
==================== */
.sec-sideTitle {
    background: no-repeat left -1vw top calc(var(--n-120) + 40px) /60px auto;
}
.sec-sideTitle .title {
    padding-top: var(--n-120);
    padding-bottom:  var(--n-30);
    text-align: center;
}
.sec-sideTitle .title h2 {
    align-items: center;
    color: var(--c-888);
    display: flex;
    flex-direction: column;
    font-size: var(--f-s-p);
    text-transform: uppercase;
}
.sec-sideTitle .title img {
    margin-bottom: var(--n-30);
    width: clamp(32px, 5vw, 50px);
}
.sec-sideTitle .content {
    padding-bottom: var(--n-120);
}
@media screen and (min-width: 768px) {
    .sec-sideTitle {
        display: flex;
    }
    .sec-sideTitle > div {
        display: flex;
        max-width: 100%;
        width: 100%;
    }
    .sec-sideTitle .title {
        background: no-repeat right calc(50% + 40px) top calc(var(--n-120) + 40px) /80px auto;
        margin-bottom: 0;
        padding: var(--n-120) 0;
        width: max(210px, 30%);
    }
    .sec-sideTitle .title > div {
        border-right: 1px solid var(--c-ccc);
        height: 100%;
    }
    .sec-sideTitle .content {
        padding: var(--n-120) calc((100% - min(var(--content-w), var(--content-maxw))) / 2);
        width: min(calc(100% - 210px), 70%);
    }
}
/* ====================
products
==================== */
.product {
    background-image: url(../img2022/back_product_02.png);
    border-bottom: 1px solid var(--c-ccc);
}
.product ul {
    --item: 2;
    list-style: none;
    text-align: center;
}
.product li {
    margin-top: var(--n-45);
}
.product a {
    display: block;
    position: relative;
    text-decoration: none;
}
.product a::after {
    background-color: var(--c-brown);
    border-radius: 100vw;
    content: "";
    display: block;
    left: 50%;
    mix-blend-mode: multiply;
    opacity: 0;
    padding: 50% 0;
    position: absolute;
    top: 50%;
    transition-property: opacity;
    transform: translate3d(-50%, -40%, 0);
    width: 100%;
    z-index: -1;
}
.product a:hover::after {
    opacity: 0.5;
}
.product h3 {
    font-size: var(--f-s-p);
    margin-top: var(--n-15);
}
@media screen and (min-width: 768px) {
    .product {
        background-image: none;
    }
    .product.sec-sideTitle .title {
        background-image: url(../img2022/back_product_02.png);
    }
}
@media screen and (min-width: 1024px) {
    .product h3 {
        font-size: var(--f-s-h6);
    }
}
/* ====================
news
==================== */
.news {
    background-image: url(../img2022/back_news_03.png);
}
.news .headline {
    align-items: center;
    display: flex;
    justify-content: center;
    margin-bottom: var(--n-30);
    margin-top: var(--n-90);
}
.news .headline img {
    margin-right: var(--n-30);
    width: clamp(30px, 12%, 60px);
}
.news .headline .btn-sideLine {
    display: none;
    font-weight: var(--f-w-normal);
    margin-left: auto;
}
.news .content > .btn-sideLine {
    margin-top: var(--n-45);
}
.news .content > .btn-sideLine img {
    height: 1em;
    margin-right: 0.5em;
    vertical-align: middle;
    width: auto;
}
@media screen and (min-width: 768px) {
    .news {
        background: none;
    }
    .news .headline {
        justify-content: flex-start;
    }
    .news.sec-sideTitle .title {
        background-image: url(../img2022/back_news_03.png), url(../img2022/back_paper_brown_02.jpg);
        background-repeat: no-repeat, repeat;
        background-position: right calc(50% + 40px) top calc(var(--n-120) + 40px), right top;
        background-size: 80px auto, 1080px;
        position: relative;
    }
    .news .headline .btn-sideLine {
        display: block;
    }
    .news .content > .btn-sideLine {
        display: none;
    }
}
/* ====================
youtube
==================== */
#list-youtube {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    list-style: none;
}
#list-youtube li:first-child {
    width: 100%;
}
#list-youtube li:not(:first-child) {
    margin-top: var(--n-45);
    width: 46%;
}
#list-youtube a {
    background-color: var(--c-ccc);
    display: block;
    padding-top: 56%;
    position: relative;
}
#list-youtube a::before {
    backface-visibility: hidden;
    background: rgba(var(--c-brown-rgb),0.8) url(../img2022/icon_play_02.png) no-repeat center /min(60px, 30%);
    content: "";
    display: block;
    height: 100%;
    opacity: 0;
    position: absolute;
    top: 0;
    transition-property: opacity;
    width: 100%;
    z-index: 1;
}
#list-youtube a:hover::before {
    opacity: 1;
}
#list-youtube img {
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    width: 100%;
}
#list-youtube h4 {
    font-size: var(--f-s-p);
    margin-top: var(--n-15);
}
/* ====================
instagram
==================== */
#list-instagram {
    --item: 3;
    gap: var(--n-5);
    list-style: none;
}
#list-instagram li {
    margin-top: 0;
}
#list-instagram a {
    background-color: var(--c-ccc);
    display: block;
    padding-top: 100%;
    position: relative;
}
#list-instagram a::before {
    backface-visibility: hidden;
    background: rgba(var(--c-brown-rgb),0.8) url(../img2022/icon_loupe_02.png) no-repeat center /min(60px, 30%);
    content: "";
    display: block;
    height: 100%;
    opacity: 0;
    position: absolute;
    top: 0;
    transition-property: opacity;
    width: 100%;
    z-index: 1;
}
#list-instagram a:hover::before {
    opacity: 1;
}
#list-instagram img {
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    width: 100%;
}
#list-instagram a:hover .description {
    opacity: 1;
}
@media screen and (min-width: 1024px) {
    #list-instagram {
        --item: 4;
    }
}
@media screen and (min-width: 1366px) {
    #list-instagram .description {
        display: inline-block;
    }
}
/* ====================
topics
==================== */
.topics {
    background-image: var(--c-black-grad);
    color: var(--c-white);
    padding:  var(--n-60) 0 var(--n-90);
}
.topics h2 {
    text-align: center;
}
.topics h2 img {
    margin-bottom: -1em;
    width: 360px;
}
.topics h2 + p {
    font-size: var(--f-s-small);
    line-height: var(--f-lh-m);
    text-align: center;
}
.topics .slide-topics {
    margin: var(--n-60) 0;
}
.topics .slide-topics ul {
    list-style: none;
}
.topics .slide-topics li {
    width: min(300px, 65%);
}
.topics .slide-topics a {
    text-decoration: none;
}
.topics .slide-topics .img {
    background: var(--c-black) url(../img2022/back_topics_item.png) no-repeat center /min(84px, 30%);
    display: block;
    position: relative;
    padding-bottom: 47%;
}
.topics .slide-topics .img::before {
    backface-visibility: hidden;
    background: rgba(var(--c-brown-rgb),0.8) url(../img2022/icon_loupe_02.png) no-repeat center /min(60px, 30%);
    content: "";
    display: block;
    height: 100%;
    opacity: 0;
    position: absolute;
    top: 0;
    transition-property: opacity;
    width: 100%;
    z-index: 1;
}
.topics .slide-topics a:hover .img::before {
    opacity: 1;
}
.topics .slide-topics img {
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    width: 100%;
}
.topics .date {
    color: var(--c-brown);
    font-size: var(--f-s-small);
    font-weight: var(--f-w-bold);
    margin-top: var(--n-10);
    opacity: 0.5;
}
.topics h3 {
    font-size: var(--f-s-p);
    font-weight: var(--f-w-normal);
    line-height: var(--f-lh-m);
    margin-top: var(--n-5);
}
.topics .swiper-pagination {
    color: var(--c-brown);
    margin-top: var(--n-60);
    opacity: 0.5;
    position: static;
}
/* ====================
shop
==================== */
.shop {
    color: var(--c-white);
}
.shop a {
    display: block;
    position: relative;
}
.shop .split img {
    height: min(120px, 30vw);
    object-fit: cover;
    width: 100%;
}
.shop .img {
    align-items: center;
    background-color: rgba(var(--c-red-rgb), 0.9);
    display: flex;
    height: 100%;
    position: absolute;
    text-align: center;
    top: 0;
    transition-property: background-color;
    width: 100%;
}
.shop a:hover .img {
    background-color: rgba(var(--c-red-hover-rgb), 0.8);
}
.shop picture > * {
    filter: drop-shadow(0px 0px 5px rgba(var(--c-black-rgb), 0.2));
    width: min(450px, 80%);
}
.shop .icon-arrow::after {
    transform: translateY(-15%);
    margin-left: 1.5em;
}
.shop a:hover .icon-arrow::after {
    margin-left: 2em;
}
@media screen and (min-width: 540px) {
    .shop .img {
        font-size: var(--f-s-h1);
    }
}
@media screen and (min-width: 1024px) {
    .shop picture > * {
        width: 720px;
    }
    .shop .split img {
        height: 300px;
    }
}
/* ====================
contact
==================== */
.contact {
    background-color: var(--c-black);
    color: var(--c-white);
    text-align: center;
}
.contact a {
    display: block;
    padding: var(--n-45);
    text-decoration: none;
    transition-property: background-color;
}
.contact .split > div:not(:first-child) a {
    border-top: 1px solid var(--c-brown);
}
.contact a:hover {
    background-color: var(--c-black-hover);
}
.contact img {
    height: 1.5em;
    margin-right: 1.5em;
    object-fit: contain;
    vertical-align: middle;
    width: 1.5em;
}
.contact .icon-arrow::after {
    margin-left: 2em;
}
.contact a:hover .icon-arrow::after {
    margin-left: 2.5em;
}
@media screen and (min-width: 540px) {
    .contact {
        font-size: var(--f-s-h6);
    }
    .contact .split {
        --item: 1;
    }
}
@media screen and (min-width: 1024px) {
    .contact .split {
        --item: 3;
    }
    .contact a {
        border-bottom: 0;
    }
    .contact .split > div:not(:first-child) a {
        border-left: 1px solid var(--c-brown);
        border-top: 0;
    }
}
/* ====================
about
==================== */
.about {
    background: url(../img2022/back_paper_brown_02.jpg) repeat left top /1080px;
    padding: var(--n-60) 0 var(--n-90);
}
.about a {
    border-bottom: 2px solid currentColor;
    display: block;
    padding: 0 0.25em var(--n-10);
    text-decoration: none;
    transition-property: padding;
}
.about a:hover {
    padding: 0 0 var(--n-10);
}
.about .icon-arrow::after {
    position: absolute;
    right: 1em;
    transform: translateY(35%);
    transition-property: right;
}
.about .icon-arrow:hover::after {
    right: 0;
}
@media screen and (min-width: 540px) {
    .about {
        font-size: var(--f-s-h6);
    }
    .about .split {
        --item: 1;
    }
}
@media screen and (min-width: 1024px) {
    .about .split {
        --item: 3;
    }
}