@charset "utf-8";
/*---------------------------------------------------------------------
Parts Style
style.css
-----------------------------------------------------------------------
Copyright 2025 (c) linkpath Allrights Reserved.
Coding: Hinako Hayashi
Last Update: 2025.06.12
---------------------------------------------------------------------*/
/*===========================================================
    font-size
===========================================================*/
.article-view__first hgroup h1 {
    font-size: 300%;
}
.f-logo {
    font-size: 200%;
}
.h-logo,
.article-view__first hgroup p {
    font-size: 180%;
}
.link-btn {
    font-size: 130%;
}
.h-nav__contact-btn,
.post-item__inner h3,
.f-other a {
    font-size: 120%;
}
.h-nav {
    font-size: 115%;
}
.f-nav__item,
.f-access {
    font-size: 110%;
}
.h-logo small,
.f-logo span small {
    font-size: 50%;
}

/*===========================================================
    parts
===========================================================*/
/*wbr*/
.wbr {
word-break: keep-all;
overflow-wrap: break-word;
}

/* circle-arrow */
.circle-arrow {
    width: 1em;
    height: 1em;
    transition: all 0.3s;
}

/* link-btn */
.link-btn {
    min-width: 15em;
    width: fit-content;
    text-align: center;
    letter-spacing: 0.1em;
    display: block;
    padding: 0.75em 2em;
    padding-right: 2.5em;
    border-radius: 100px;
    margin: 0 auto;
    transition: all 0.3s;
    position: relative;
}
.link-btn .circle-arrow {
    position: absolute;
    top: 50%;
    right: 1em;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
}
.link-btn:hover {
    transform: scale(1.05);
}

/* black */
.link-btn.black {
    color: var(--white);
    background: var(--black);
}
.link-btn.black .circle-arrow__item {
    fill: var(--white);
}
/* lightgrey */
.link-btn.lightgrey {
    color: var(--darkgrey);
    background: var(--lightgrey);
}
.link-btn.lightgrey .circle-arrow__item {
    fill: var(--darkgrey);
}

/*===========================================================
    header
===========================================================*/
header {
    width: 90%;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    padding: 1.5em 2em;
    border-radius: 200px;
    transition: all 0.3s;
    position: fixed;
    top: 5%;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    z-index: 98;
}
header.s-active {
    width: 100%;
    border-radius: 0;
    top: 0;
}

/* h-logo */
.h-logo {
    display: flex;
    align-items: center;
    gap: 0.25em;
    flex-shrink: 0;
    cursor: pointer;
}
#h-logo__item__wrap {
    height: 1.5em;
    transition: all 0.3s;
}
.h-logo__item {
    fill: var(--darkgrey);
}
.h-logo span {
    font-weight: 600;
}
.h-logo small {
    font-weight: 600;
    transition: all 0.3s;
    margin: auto 0 0.3em 0;
}
header.s-active #h-logo__item__wrap,
header.s-active .h-logo span small {
    opacity: 0;
    height: 0;
}

.h-nav__back {
    display: none;
}

/* h-nav */
.h-nav {
    font-weight: 400;
    display: flex;
    align-items: center;
    gap: 1em;
}
.h-nav__items {
    display: flex;
    align-items: center;
    gap: 1em;
}
.h-nav__item a {
    letter-spacing: 0.05em;
    transition: all 0.3s;
}
header.s-active .h-nav__item > a {
    opacity: 0.6;
}
header:hover .h-nav__item > a {
    opacity: 1;
}
/* h-nav__back */
.h-nav__item a:hover {
    opacity: 0.5 !important;
}

/* h-nav__contact-btn */
.h-nav__contact-btn {
    display: flex;
    align-items: center;
    gap: 0.5em;
    padding: 0.25em 1em;
    border-radius: 100px;
    display: flex;
    align-items: center;
    transition: all 0.3s;
}
.h-nav__contact-btn:hover {
    transform: scale(1.05);
}
.h-nav #mail-icon__wrap {
    height: 1.5em;
}

/* h-nav__other, h-nav__materials */
.h-nav__other,
.h-nav__materials {
    display: none;
}

/* hb */
.hb {
    display: none;
    transition: background-color 0.5s ease;
}

/*===========================================================
    wrap
===========================================================*/
/* article-view */
.article-view {
    max-width: 1350px;
    width: 90%;
    margin: 0 auto;
    padding-top: 5em;
}
/* article-view__first */
.article-view__first {
    display: flex;
    flex-direction: column;
    gap: 3em;
}
.article-view__first hgroup {
    display: flex;
    flex-direction: column-reverse;
    gap: 1em;
}
.article-view__first hgroup h1 {
    line-height: 1.5em;
}
.article-view__first hgroup p {
    display: flex;
    gap: 0.5em;
}
#first-view__icon {
    height: 1em;
}

.article-view__first > p {
    line-height: 2em;
}
.article-view__first > p a {
    transition: all 0.3s;
}
.article-view__first > p a:hover {
    opacity: 0.5;
}

/* post-slider */
.post-slider {
    width: 100%;
    padding: 0 2em;
    padding-top: 5em;
    padding-bottom: 8em;
    position: relative;
}

/*slider-scrollbar*/
.post-slider .slider-scrollbar {
    max-width: 1350px;
    width: 90% !important;
    position: absolute;
    left: 50% !important;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    bottom: 2em;
    z-index: 2;
}
.post-slider .slider-scrollbar::before {
    content: "";
    display: block;
    width: 100%;
    height: 3px;
    background: var(--darkgrey);
    border-radius: 100px;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
}
.post-slider .slider-btn {
    aspect-ratio: 1 / 1;
    background-color: var(--darkgrey);
    border-radius: 50%;
    cursor: pointer;
    position: relative;
}

/* post-item */
.post-item {
    width: fit-content;
    height: fit-content !important;
    display: flex !important;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 1.5em;
    border-radius: var(--box-radius);
    padding: 2em;
    box-shadow:
        inset 0 0 0 var(--white), /* 最初は inset を透明にしておく */
        inset 0 0 0 var(--grey-transparent),
        11px 11px 14px var(--grey-transparent),
        -11px -11px 22px var(--white);
    transition: box-shadow 0.3s ease;
}

.post-item:hover {
    box-shadow:
        inset 7px 7px 14px var(--grey-transparent),
        inset -7px -7px 14px var(--white),
        0 0 0 transparent,
        0 0 0 transparent;
}

.post-item__inner img {
    border-radius: var(--box-radius-small);
    object-fit: contain;
}
.post-item__inner h3 {
    line-height: 1.6em;
    padding-top: 1.5em;
}

.post-tag {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.75em 0.5em;
}
.post-tag li a {
    display: block;
    border-radius: 200px;
    border: solid 1px var(--grey);
    padding: 0.5em 1em;
    transition: all 0.3s;
}
.post-tag li a:hover {
    opacity: 0.6;
}

/*===========================================================
    footer
===========================================================*/
.footer__inner {
    max-width: 1350px;
    width: 90%;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 3em 0;
}
/* f-content */
.f-content {
    padding: 5em 0 2.5em 0;
}

.f-logo {
    height: fit-content;
    display: flex;
    align-items: center;
    gap: 0.5em;
    cursor: pointer;
}
#f-logo__item__wrap {
    height: 1.5em;
}
.f-logo__item {
    fill: var(--darkgrey);
}
.f-logo span {
    letter-spacing: 0.2em;
    font-weight: 600;
    display: flex;
    flex-direction: column;
    gap: 0.25em;
}
.f-logo span small {
    letter-spacing: 0.2em;
    font-weight: 600;
}

.f-nav {
    height: 8em;
}
.f-nav__items {
    display: flex;
    gap: 2em;
}
.f-nav__item {
    letter-spacing: 0.1em;
    position: relative;
}
.f-nav__item > a {
    transition: all 0.3s;
}
.f-nav__item > a:hover {
    opacity: 0.6;
}

.f-nav__drop-items {
    display: flex;
    flex-direction: column;
    gap: 0.75em;
    padding-top: 1em;
    position: absolute;
    top: 100%;
    left: 0;
}
.f-nav__drop-items a {
    white-space: nowrap;
    opacity: 0.6;
    transition: all 0.3s;
}
.f-nav__drop-items a:hover {
    opacity: 1;
}

/* f-other */
.f-other {
    width: 100%;
    letter-spacing: 0.1em;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 1em;
}
.f-other a {
    width: fit-content;
    text-align: center;
    letter-spacing: 0.1em;
    display: flex;
    align-items: center;
    gap: 0.5em;
    padding: 0.75em 2em;
    border-radius: 100px;
    margin: 0 auto;
    transition: all 0.3s;
}
.f-other a:hover {
    opacity: 0.6;
}
.f-other a svg {
    height: 1.5em;
}

/* f-access */
.f-access {
    letter-spacing: 0.1em;
    gap: 1em;
    border-top: solid 1px var(--grey);
    padding: 2.5em 0 5em 0;
}
.f-access dl {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5em 1em;
}

@media screen and (max-width: 959px) {
/*===========================================================
    font-size
===========================================================*/
.article-view__first hgroup h1 {
    font-size: 250%;
}
.h-nav__items,
.article-view__first hgroup p {
    font-size: 150%;
}
.h-nav__contact-btn {
    font-size: 100%;
}
.h-nav__materials a {
    font-size: 80%;
}
.h-nav__other {
    font-size: 70%;
}

/*===========================================================
    parts
===========================================================*/

/*===========================================================
    header
===========================================================*/
header {
    width: 95%;
    gap: 1em 0;
    padding: 0.75em 1.5em;
    top: 2.5%;
}
header.s-active .h-nav__item > a {
    opacity: 1;
}
header.s-active .h-nav__item > a:hover {
    opacity: 0.6;
}

/* h-logo */
#h-logo__item__wrap,
header.s-active #h-logo__item__wrap {
    height: 1.5em;
    opacity: 1;
}
.h-logo small {
    display: none;
}

/* h-nav */
.h-nav {
    gap: 0.75em;
}
.h-nav__items {
    width: 100%;
    height: 100vh;
    height: 100dvh;
    flex-direction: column;
    align-items: flex-start;
    padding: 1.5em;
    padding-top: 6em;
    position: fixed;
    top: 0;
    right: 0;
    z-index: -1;
    overflow-y: scroll;
    opacity: 0;
    pointer-events: none;
    transition: all 0.3s;
}
header.h-active .h-nav__items {
    opacity: 1;
    pointer-events: auto;
}
.h-nav__item {
    width: 100%;
}

.h-nav__item a:hover {
    opacity: 1 !important;
}

/* h-nav__back */
header.h-active .h-nav__back {
    width: 3.5em;
    height: 3.5em;
    display: block;
    border-radius: 50%;
    aspect-ratio: 1 / 1;
    background: var(--white);
    position: fixed;
    top: 1.5em;
    right: 2em;
    animation: openMenu 0.6s ease forwards;
    pointer-events: auto;
    transform-origin: center;
    z-index: -1;
}
@keyframes openMenu {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
        transform: scale(40);
    }
}
header.h-close .h-nav__back {
    animation: closeMenu 0.6s ease forwards;
    pointer-events: none;
}
@keyframes closeMenu {
    0% {
        opacity: 1;
        transform: scale(40);
    }
    100% {
        opacity: 0;
        transform: scale(0);
    }
}

/* menu open animation */
.h-nav__item {
    opacity: 0;
    transform: translateY(4em);
}
.h-nav__item:nth-child(1) {
    transition: opacity 0.1s ease, transform 0.1s ease;
}
.h-nav__item:nth-child(2) {
    transition: opacity 0.2s ease, transform 0.2s ease;
}
.h-nav__item:nth-child(3) {
    transition: opacity 0.3s ease, transform 0.3s ease;
}
.h-nav__item:nth-child(4) {
    transition: opacity 0.4s ease, transform 0.4s ease;
}
.h-nav__item:nth-child(5) {
    transition: opacity 0.4s ease, transform 0.5s ease;
}
header.h-active .h-nav__item {
    opacity: 1;
    transform: translate(0);
}

/* h-nav__contact-btn */
.h-nav__contact-btn {
    width: 3em;
    height: 3em;
    border-radius: 50%;
    padding: 0;
}
.h-nav__contact-btn .contact-btn__label {
    display: none;
}
.h-nav #mail-icon__wrap {
    margin: 0 auto;
}

/* h-nav__other */
.h-nav__other {
    display: flex;
    flex-direction: column;
    gap: 0.25em;
    margin-top: 5em;
}
.h-nav__other a {
    display: flex;
    align-items: center;
    gap: 0.5em;
}
#h-other__icon {
    height: 1em;
}

/* h-nav__materials */
.h-nav__materials {
    display: block;
}
.h-nav__materials a {
    width: 90%;
    letter-spacing: 0.1em;
    text-indent: 0.1em;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.5em;
    border-radius: 200px;
    padding: 1em 2em;
    margin: 0 auto;
    margin-top: 1em;
}

/* hb */
.hb {
    width: 2.5em;
    height: 2.5em;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 0.4em;
    border-radius: 50%;
}
.hb li {
    width: 1.5em;
    height: 1.5px;
    border-radius: 100px;
    transition: all 0.3s;
    transform-origin: left;
}
header.h-active .hb li:nth-child(1) {
    transform: rotate(45deg) translate(-0.1em, -0.4em);
}
header.h-active .hb li:nth-child(2) {
    transform: rotate(-45deg)  translate(-0em, 0.3em);
}

/*===========================================================
    wrap
===========================================================*/

/*===========================================================
    footer
===========================================================*/
.footer__inner {
    flex-direction: column;
    flex-wrap: nowrap;
}
/* f-content */
.f-content {
    gap: 2.5em;
}
.f-nav {
    height: fit-content;
}
.f-nav__items {
    flex-direction: column;
    gap: 1em;
    border: solid 1px var(--grey);
    border-left: none;
    border-right: none;
    padding: 2.5em 0;
}
.f-nav__item {
    padding: 0.25em 0;
}

/* f-other */
.f-other {
    justify-content: flex-start;
}
}

@media screen and (max-width: 482px) {
/*===========================================================
    font-size
===========================================================*/
.link-btn {
    font-size: 115%;
}


/*===========================================================
    parts
===========================================================*/

/*===========================================================
    header
===========================================================*/
.h-nav__materials a {
    width: 100%;
}

/*===========================================================
    wrap
===========================================================*/

/*===========================================================
    footer
===========================================================*/
}
