@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300..700;1,300..700&family=Noto+Sans+SC:wght@100..900&family=Noto+Sans+TC:wght@100..900&family=Noto+Serif+TC:wght@200..900&display=swap');

:root {
    --orange: #f16a48;
    --orange-dark: #d4552f;
    --orange-light: #fff2ee;
    --orange-mid: #fde8e2;
    --dark: #1c1c1e;
    --dark2: #2a2a2e;
    --text: #2d2d2d;
    --text-light: #6b6b6b;
    --white: #ffffff;
    --offwhite: #f9f7f5;
    --border: #ececec;
    --header-height: 116px;
        --swiper-navigation-color: rgba(255, 255, 255, 1);

        --swiper-pagination-color: rgba(255, 255, 255, 1);
        --swiper-pagination-bullet-inactive-color: rgba(255, 255, 255, 1);
}

/* Common  */
  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

  html { scroll-behavior: smooth; }

  body {
    font-family: 'Noto Sans TC', sans-serif;
    color: var(--text);
    background: var(--white);
    overflow-x: hidden;
    font-weight:500;
  }



section {
    padding: var(--space-9) 0;
    &.p-none{
        padding: 0 !important;
    }
    &.p-large{
        padding: var(--space-10) 0 !important;
    }
    &.p-small{
        padding: var(--space-6) 0 !important;
    }
}

a{
    color: var(--text);
    &:hover{
        color: var(--orange);
    }
}

.btn{
    padding: 14px 32px;
    border-radius: 8px;
    font-size: 0.95rem;
    text-decoration: none;
    &.btn-primary {
        background: var(--orange);
        color: white;
        font-weight: 500;   
        transition: background .2s, transform .15s, box-shadow .2s;
        box-shadow: 0 4px 20px rgba(241, 106, 72, 0.35);
        &:hover{
            background: var(--orange-dark);
            transform: translateY(-2px);
            color:white;
            box-shadow: 0 8px 30px rgba(241, 106, 72, 0.4);
        }
    }
    &.btn-outline {
        border: 1px solid rgba(255, 255, 255, 0.65);
        color: rgba(255, 255, 255, 0.95);
        transition: border-color .2s, color .2s;
        &:hover{
            border-color: var(--orange);
            color: var(--orange);
        }
    }
}



.btn-apply {
    background: var(--orange);
    color: white !important;
    padding: 9px 22px;
    border-radius: 6px;
    font-weight: 500;
    font-size: 0.875rem;
    transition: background .2s, transform .15s;
    white-space: nowrap;
    &:hover {
        background: var(--orange-dark) !important;
        transform: translateY(-1px);
    }
}

.map-wrapper{
    border-radius: 12px;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    iframe{
        width:100%;
        height:100%;
        
    }
}

  .reveal {
    opacity: 0;
    transform: translateY(32px);
    transition: opacity .7s ease, transform .7s ease;
  }

  .reveal.visible {
    opacity: 1;
    transform: translateY(0);
  }
 section[id] { 
    scroll-margin-top: var(--header-height);
  }
/* Header */
header{
    height: var(--header-height);
    .header-wrapper{
        padding: 0.5rem 0;
    }
}
@media (max-width: 767px) {
    :root{
       --header-height : 73px; 
    }
}
.logo{
    max-width:300px;
    flex-shrink: 0;
    img{
        display:block;
        width: clamp(200px, 19vw, 250px);
        height:auto;
    }
}

.main-nav{
    display: flex;
    gap:2rem;
    align-items:center;
}


/* footer */
footer{
    background-color: var(--dark);
    font-size: 0.85rem;
    line-height: 1.8;
    color: rgba(255, 255, 255, 0.4);
    font-weight: 600;
    a{
       color: rgba(255, 255, 255, 0.4); 
    }
    .footer-upper{
        padding: 48px 0;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
        .footer-logo{
            img{
                width: 200px;
                filter: brightness(0) saturate(100%) invert(48%) sepia(6%) saturate(104%) hue-rotate(201deg) brightness(94%) contrast(84%);
            }
        }
        .footer-title{
            font-family: 'Noto Serif TC', serif;
            color: rgba(255, 255, 255, 0.8);
            font-size: 0.95rem;
            margin-bottom: 1.25rem;
            font-weight: 900;
        }
    }
    .footer-lower{
        padding: 32px 0;
        font-size:0.75rem;
    }
}

@media (min-width: 992px) {
    .footer-upper {
        grid-template-columns: minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr);
    }
}
