@charset "utf-8";
/*---------------------------------------------------------------------
Product Parts Style
style_search.css
-----------------------------------------------------------------------
Copyright 2026 (c) linkpath Allrights Reserved.
Created: linkpath
Created url: https://linkpath.jp/
Coding: Hinako Hayashi
Last Update: 2026.04.07
---------------------------------------------------------------------*/
/*===========================================================
    font-size
===========================================================*/
.search-panel__tab,
.search-panel__form h3 {
    font-size: 120%;
}

/*===========================================================
    parts
===========================================================*/
/*===========================================================
    search-panel
===========================================================*/
.search-panel__content {
    background: var(--color-accent__dark__transparent);
    border-radius: 0 1em 1em 1em;
    padding: 1.5em;
}
.search-panel__content > *:not(:first-child) {
    margin-top: 2em;
}
/*===========================================================
    search-panel__tabs
===========================================================*/
.search-panel__tabs {
    display: flex;
}
.search-panel__tab {
    min-width: 20em;
    font-weight: 700;
    color: var(--color-base);
    border-radius: 1em 1em 0 0;
    background: var(--color-main);
    border: none;
    padding: 1em 2em;
    transition: all 0.3s;
}
.search-panel__tab.is-active {
    background: var(--color-accent__dark__transparent);
}

/*===========================================================
    search-panel__categories
===========================================================*/
.search-panel__categories {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 1em;
}
.search-panel__categories li {
    width: calc(100% / 5 - 4em / 5);
    height: auto;
}
/* タクシーは種類が6件になったため、PCでは6列1行に収める
   （タブレット959px以下・SP482px以下は既存の3列=2行のまま） */
@media screen and (min-width: 960px) {
    .search-panel__content[data-type="taxi"] .search-panel__categories li {
        width: calc(100% / 6 - 5em / 6);
    }
}
.search-panel__categories li a {
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    gap: 0.5em;
    background: var(--color-base);
    border-radius: 1em;
    padding-top: 0.5em;
}
.search-panel__categories li a img {
    width: 90%;
    height: 3em;
    object-fit: contain;
}
.search-panel__categories li a span {
    width: 100%;
    font-weight: 700;
    text-align: center;
    display: block;
    background: var(--color-accent__transparent);
    border-radius: 0 0 1em 1em;
    padding: 0.5em 1em;
}

/*===========================================================
    search-panel__form
===========================================================*/
.search-panel__form {
    display: flex;
    flex-wrap: wrap;
    gap: 1em;
    background: var(--color-base);
    padding: 2em;
}
.search-panel__form h3 {
    width: 100%;
    font-weight: 700;
    border-bottom: solid 1px var(--color-lightgrey);
    padding-bottom: 1rem;
}
.search-panel__form dl {
    min-width: 20em;
    width: calc(100% / 4 - 3em / 4);
    display: flex;
    align-items: stretch;
}
.search-panel__form dt {
    height: 100%;
    text-box: unset;
    flex-shrink: 0;
    background: var(--color-lightgrey);
    padding: 0.5em 1em;
}
.search-panel__form dd {
    width: 100%;
}
.search-panel__form dd input,
.search-panel__form dd select {
    width: 100%;
    height: 100%;
    font-weight: 600;
    text-box: unset;
    display: block;
    border: solid 1px var(--color-lightgrey);
    padding: 0.5em 1em;
}
.search-panel__size-buttons {
    height: 100%;
    display: flex;
    border: solid 1px var(--color-lightgrey);
}
.search-panel__size-buttons button {
    height: 100%;
    color: var(--color-main__transparent);
    font-weight: 600;
    flex: 1;
    background: transparent;
    border: none;
    transition: all 0.3s;
}
.search-panel__size-buttons button:not(:first-of-type) {
    border-left: solid 1px var(--color-lightgrey);
}
.search-panel__size-buttons button:hover {
    color: var(--color-main);
}
.search-panel__size-buttons button.is-active {
    background: var(--color-main);
    color: var(--color-base);
}

/* search-panel__buttons */
.search-panel__buttons {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 1em 2em;
    border-top: solid 1px var(--color-lightgrey);
    padding-top: 1rem;
}
.search-panel__buttons button {
    max-width: 350px;
    min-width: 16em;
    flex: 1;
    font-weight: 700;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1em;
    border-radius: 1em;
    background: var(--color-lightgrey);
    border: none;
    padding: 1em 2em;
}
.search-panel__buttons button svg {
    height: 1.25em;
}

button.search-panel__submit {
    background: var(--color-accent);
}

/*===========================================================
    search-popup
===========================================================*/
body.is-popup-open {
	overflow: hidden;
}

/* 外枠：画面全体を覆うfixedレイヤー */
.search-popup {
	display: flex;
	align-items: center;
	justify-content: center;
	position: fixed;
	inset: 0;
	z-index: 1000;
	animation: popupFadeIn 0.25s ease forwards;
}

.search-popup__overlay {
	background: var(--color-main__transparent);
	position: absolute;
	inset: 0;
	cursor: pointer;
}

.search-popup__inner {
	width: min(95vw, 40rem);
	width: min(95svw, 40rem);
	max-height: 95vh;
	max-height: 95lvh;
	display: block;
	border-radius: 0.5rem;
    padding: 2em;
	position: relative;
	z-index: 1;
	animation: popupSlideUp 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

.search-popup[hidden] {
	display: none;
}

@keyframes popupFadeIn {
	from { opacity: 0; }
	to   { opacity: 1; }
}

@keyframes popupSlideUp {
	from {
		opacity: 0;
		transform: translateY(1.5rem) scale(0.97);
	}
	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

.search-popup .search-panel__form {
	max-height: 90vh;
	overflow-y: auto;
}
.search-popup .search-panel__content {
    border-radius: 0 0 1em 1em;
}
.search-popup .search-panel__tab {
    min-width: 5em;
    width: 50%;
}

/* search-popup__close */
.search-popup__close {
    width: 2.5em;
    height: 2.5em;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    border: none;
    position: absolute;
    top: 0;
    right: 0;
}

@media screen and (max-width: 959px) {
/*===========================================================
    font-size
===========================================================*/
.search-panel__tab, .search-panel__form h3 {
    font-size: 110%;
}

/*===========================================================
    parts
===========================================================*/
/*===========================================================
    search-panel
===========================================================*/

/*===========================================================
    search-panel__tabs
===========================================================*/
.search-panel__tab {
    min-width: 10em;
    width: fit-content;
}

/*===========================================================
    search-panel__categories
===========================================================*/
.search-panel__categories li {
    width: calc(100% / 3 - 2em / 3);
}

/*===========================================================
    search-panel__form
===========================================================*/
.search-panel__form {
    justify-content: center;
}

/*===========================================================
    search-popup
===========================================================*/
}

@media screen and (max-width: 482px) {
/*===========================================================
    font-size
===========================================================*/
.search-panel__tab, .search-panel__form h3 {
    font-size: 100%;
}
.search-panel__categories li a span {
    font-size: 80%;
}

/*===========================================================
    parts
===========================================================*/
/*===========================================================
    search-panel
===========================================================*/
.search-panel__content {
    border-radius: 0 0 1em 1em;
    padding: 1.5em 1em;
}

/*===========================================================
    search-panel__tabs
===========================================================*/
.search-panel__tab {
    min-width: 5em;
    width: 50%;
}

/*===========================================================
    search-panel__categories
===========================================================*/
.search-panel__categories {
    gap: 0.5em;
}
.search-panel__categories li {
    width: calc(100% / 3 - 0.5em * 2 / 3);
}

/* search-btn */
.search-panel__categories li:has(.search-btn) {
    width: calc(100% / 3 * 2 - 0.5em);
}
.search-panel__categories .search-btn {
    width: 100%;
    height: 100%;
}
.search-panel__categories .search-btn {
    font-size: 120%;
}

/* search-panel__categories内 search-btn */
.search-panel__categories ~ .search-panel__form-wrap {
    display: grid;
    grid-template-rows: 0fr;
    margin-top: 0;
    transition: grid-template-rows 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
    overflow: hidden;
}

.search-panel__categories ~ .search-panel__form-wrap .search-panel__form {
    padding: 0;
    overflow: hidden;
    transition: padding 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* .is-form-open で展開 */
.search-panel__content.is-form-open .search-panel__categories ~ .search-panel__form-wrap {
    grid-template-rows: 1fr;
}

/* 開いたときにpaddingを元に戻す（元の値に合わせてください） */
.search-panel__content.is-form-open .search-panel__categories ~ .search-panel__form-wrap .search-panel__form {
    padding: 1.5em 1em;
    margin-top: 2em;
}

/*===========================================================
    search-panel__form
===========================================================*/
.search-panel__form {
    padding: 1.5em 1em;
}
.search-panel__form dl {
    min-width: 100%;
}

/*===========================================================
    search-popup
===========================================================*/
}
