/* ====================
   1. リセット・全体
==================== */
*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:'Kiwi Maru';
}

body{
    width:100%;
    background-color:rgb(250, 241, 228);
    text-align:center;
    margin:auto;
}

img {
    max-width: 100%;
    height: auto;
}

/* ====================
   2. 共通
==================== */
:root{
    --main-color:#ebb3b3;
    --sub-color:#5b4d43;
    --text-color:#42352f;
    --bg-color:#f8f4ef;
    --button-color:#a87c4f;
    --button-text-color:white;
    --shadow:0 4px 12px rgba(0,0,0,0.1);
}

section{
    margin-top:5%;
    text-align:center;
    color: var(--sub-color);
    scroll-margin-top: 90px;
}

.button-area{
    margin: 10%;
}

.button{
    margin-top :10%;
    margin-bottom: 20%;
    background-color:var(--button-color);
    color:var(--button-text-color);
    padding:15px 30px;
    border-radius:20px;
}


/* ====================
   3. ヘッダー
==================== */
.logo{
    width: 10%;
}

/* ヘッダー */

.header{
    padding:0 5%;
    position:sticky;
    top:0;
    z-index:1000;
    background-color:rgba(245,230,211,0.5);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.hamburger {
    width: 60px;
    height: 60px;
    border: none;
    background: none;
    padding: 10px;

    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 10px;
}

.hamburger span {
    display: block;
    width: 100%;
    height: 2px;
    background-color: #413221;
}

.nav{
    display: none;
}

.nav.open {
    min-width: 20%;
    min-height: 240px;
    font-size: 24px;
    display: flex;
    flex-direction: column;
    position: absolute;
    top: 100%;
    right: 0;
    background-color:rgba(245,230,211,0.5);
    padding: 10px 20px;
}

.nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.nav a {
    display: block;
    padding: 10px 15px;
}

.hamburger.open span:nth-child(1){
    transform:translateY(12px) rotate(45deg);
}

.hamburger.open span:nth-child(2){
    opacity:0;
}

.hamburger.open span:nth-child(3){
    transform:translateY(-12px) rotate(-45deg);
}

/* ====================
   4. Hero
==================== */
.hero{
    background-image:url("images/hero.png"); 
    aspect-ratio: 2/1;
    color:var(--sub-color);
    background-size:cover; 
    align-content: center;
}

.hero-tytle{
    align-content: center;
    font-size: clamp(40px, 6vw, 80px);
}

.hero-text{
    margin-top: 5%;
}


/* ====================
   5. About
==================== */

.ribbon{
    width: 60%;
}

.about-petitasaku{
    text-align: center;
}

.about-petitasaku .section-title {
    margin-top: -80px;
}

.about-petitasaku .text{
    margin-top: 50px;
}

/* ====================
   6. Gallery
==================== */
#slide{
    width: 80%;
    border-radius: 10%;
    transition: opacity 0.5s ease;
}

.slider {
    position: relative;
}

.arrow{
    position: absolute;
    background:none;
    border: none;
    font-size: clamp(40px, 6vw, 80px);
    color:rgba(70, 53, 53, 0.5);
    top:50%;
    transform: translateY(-50%);
}

#gallery-prev{
    left:5%;
}

#gallery-next{
    right:5%;
}


/* ====================
   7. Shop
==================== */
.accent{
    width: 40%;
}

#shop .section-title{
    margin-top: -5%;
}

.shop-photo-area{
    display: grid;
    margin-top: 5%;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.shop-photo{
    border-radius: 10%;
    display: block;
}

/* ====================
   8.プレビュー
==================== */
.line{
    width: 40%;
    margin-bottom: -5%;
}

#plate{
    margin:0 auto;
    width:min(100%,700px);
    position: relative;
    align-items:center;
}

#plate-image{
    height: auto;
    width: 100%;
    display:block;
}

#cookie-name{
    width: 50%;
    min-height: 60px;
    font-size: 24px;
}

#cookie-preview-btn{
    width: 10%;
    min-height: 60px;
    font-size: 24px;
    background-color:var(--main-color);
    color:var(--sub-color);
    border-radius:5px;
}

.cookie-preview-text{
    margin: 5px;
}

#user-name-area{
    margin-top: 20px;
    min-height: 60px;
}

#cookie-container{
    position:absolute;
    inset:15% 15% 15% 15%;

    display:flex;
    justify-content:center;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
}

#cookie-container img{
    width:15%;
    height:auto;
}

/* フッター */
.footer{
    margin-top: 10%;
    min-height: 240px;
    background-image:url("images/footer.png"); 
    background-size: cover;
    align-content: center;
    text-align:center;
    color:#8b6b47;
}

.footer a {
    text-decoration: none;
}

.social-icon {
    width: 5%;
    margin: 0 20px;
    margin-top: 5%;
}


/* Contact */

.contact-text{
    margin-top: 15px;
    margin-bottom: 20px;
}

.contact-input{
    min-height: 60px;
    font-size: 24px;
}

.contact-btn{
    margin-top: 10px;
    width: 20%;
    min-height: 60px;
    font-size: 24px;
    background-color:var(--sub-color);
    color:antiquewhite;
    border-radius:5px;
}

.custom-input{
    min-height: 32px;
    border: 1px solid #6e6d6d;
    border-radius:5px ;

}
