@charset "utf8mb4";
ul, ol { list-style: none; padding: 0; margin: 0; }
a { text-decoration: none; color: inherit; }
img { max-width: 100%; height: auto; display: block; }

/* == 1. 레시피 콘텐츠(Recipe Contents) == */
.section-title, .faq-title { font-size: 1.5rem; font-weight: 700; color: #ffffff; background-image: linear-gradient(to right, #ea580c, #c2410c); margin: 2rem 0; padding: 0.75rem 1.5rem; border-radius: 0.75rem; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); text-shadow: 1px 1px 2px rgba(0,0,0,0.2); line-height: 1.4; }
.subsection-title { font-size: 1.125rem; font-weight: 700; color: #c2410c; margin-top: 1.5rem; margin-bottom: 0.75rem; line-height: 1.5; }
.meta-box { background-color: #fefce8; border: 1px solid #fde68a; padding: 1rem; border-radius: 0.5rem; font-style: italic; margin: 1.5rem 0; color: #713f12; line-height: 1.6; }
.info-box { background-color: #E0F2FE; border-left: 4px solid #7DD3FC; color: #0C4A6E; padding: 1rem; margin: 1.25rem 0; border-radius: 0 0.5rem 0.5rem 0; line-height: 1.7; }
.warning-box { background-color: #fef2f2; border-left: 4px solid #ef4444; padding: 1rem; margin: 1.25rem 0; border-radius: 0 0.5rem 0.5rem 0; color: #991b1b; line-height: 1.7; }
.highlight { background-color: #fef08a; padding: 0.25rem 0.5rem; border-radius: 0.25rem; line-height: 1.625; color: #000; }
.text { line-height: 1.625; }
.faq-list { margin: 0; padding-top: 1rem; }
.faq-item { background-color: #fff; border: 1px solid #e9ecef; border-left: 4px solid #f97316; border-radius: 0 8px 8px 0; padding: 1.5rem; margin-bottom: 1rem; box-shadow: 0 2px 8px rgba(0,0,0,.06); }
.faq-item:last-of-type { margin-bottom: 0; }
.faq-item .question { font-weight: 700; font-size: 1.1rem; color: #c2410c; margin: 0 0 .5rem 0; }
.faq-item .answer { color: #495057; margin: 0; padding: 0; line-height: 1.7; }
.recipe-steps, .ingredient-list { list-style: none !important; padding: 0 !important; }
.step-item { display: flex; flex-direction: column; margin-bottom: 2rem; padding: 1.25rem; background-color: rgba(249, 250, 251, 0.8); border-radius: 0.75rem; border: 1px solid rgba(229, 231, 235, 0.9); }
.step-header { display: flex; align-items: center; margin-bottom: 1rem; align-self: flex-start; }
.step-number { flex-shrink: 0; display: flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; background-color: #f97316; color: #ffffff; border-radius: 9999px; font-weight: 700; font-size: 1.125rem; }
.step-title { margin-left: 1rem; font-weight: 600; font-size: 1.125rem; color: #374151; line-height: 1.5; }
.step-content { display: flex; flex-direction: column; gap: 1.25rem; width: 100%; }
.step-description { flex: 1 1 0%; color: #374151; line-height: 1.625; }
.step-image { width: 100%; border-radius: 0.5rem; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); object-fit: cover; }
.ingredient-item { display: flex; justify-content: space-between; align-items: center; padding-top: 0.75rem; padding-bottom: 0.75rem; border-bottom: 1px solid rgba(229, 231, 235, 0.9); }
.ingredient-item:last-child { border-bottom: none; }
.ingredient-name { line-height: 1.5; }
.buy-button { flex-shrink: 0; background-color: #f97316; color: #ffffff; font-size: 0.875rem; font-weight: 500; padding: 0.375rem 1rem; border-radius: 9999px; text-decoration: none; transition: all 0.15s ease-in-out; line-height: 1.5; }
.buy-button:hover { background-color: #ea580c; transform: translateY(-1px); }
.partners-notice { text-align: center; font-size: 0.75rem; color: #6b7280; margin-top: 2rem; padding: 0.75rem; background-color: #f3f4f6; border-radius: 0.375rem; line-height: 1.5; }
@media (min-width: 768px) { .step-content { flex-direction: row; align-items: center; } .step-image { width: 40%; max-width: 320px; } }

     /* 폰트 및 기본 컨테이너 스타일 */
    .restaurant-block {
        font-family: sans-serif;
        background-color: #F9FAFB;
        padding: 1.5rem;
        border-radius: 8px;
    }

    /* 이미지 래퍼 스타일 */
    .restaurant-image-wrapper {
        margin: -1.5rem -1.5rem 1.5rem; /* 상단, 좌우 패딩을 상쇄하고 하단 여백 추가 */
    }

    .restaurant-image-wrapper img {
        width: 100%;
        display: block;
        border-top-left-radius: 8px;
        border-top-right-radius: 8px;
    }

    /* 제목 스타일 */
    .restaurant-block .restaurant-title {
        font-size: 1.5rem;
        font-weight: 700;
        margin-top: 0;
        margin-bottom: 1.5rem; /* 한 줄 소개가 없어져서 여백 조정 */
        color: #1F2937;
    }

    /* 정보 목록 스타일 */
    .restaurant-info-list {
        list-style: none;
        padding: 0;
        margin: 0;
    }

    .restaurant-info-list li {
        display: flex;
        align-items: flex-start; /* flex-start for multi-line address */
        padding: 0.75rem 0;
        border-bottom: 1px solid #E5E7EB;
    }

    .restaurant-info-list li:last-child {
        border-bottom: none;
    }
    
    .restaurant-info-list .label {
        width: 6rem; /* 96px */
        flex-shrink: 0;
        font-weight: 600;
        color: #4B5563;
        padding-top: 2px; /* Align with first line of text */
    }
    
    .restaurant-info-list .value {
        color: #1F2937;
    }
    
    .restaurant-info-list address {
        font-style: normal;
    }

    /* 주소 관련 스타일 */
    .restaurant-address-details div {
        margin-bottom: 0.5rem;
    }
     .restaurant-address-details div:last-child {
        margin-bottom: 0;
     }
    
    /* 영업시간 상세 스타일 */
    .restaurant-opening-hours .day-time {
        display: flex;
        align-items: center;
        margin-bottom: 0.25rem;
    }
    .restaurant-opening-hours .day-time:last-child {
        margin-bottom: 0;
    }
    .restaurant-opening-hours .day {
        display: inline-block;
        width: 4.5rem; /* 72px */
        color: #4B5563;
    }

    .badge {
        display: inline-block;
        background-color: #E5E7EB;
        color: #374151;
        font-size: 0.75rem;
        font-weight: 600;
        padding: 0.125rem 0.625rem;
        border-radius: 0.25rem;
        margin-right: 0.5rem;
    }

    /* 버튼 스타일 */
    .button {
        display: inline-block;
        text-decoration: none;
        color: #ffffff;
        background-color: #f97316; /* 테마 색상 */
        font-size: 0.875rem;
        font-weight: 600;
        padding: 0.5rem 0.75rem;
        border-radius: 0.375rem;
        box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
        transition: background-color 0.2s ease-in-out;
    }
    
    .button.green {
        background-color: #28a745;
    }
    
    .button.yellow {
        background-color: #ffc107;
        color: #1F2937;
    }

    .button:hover {
        /* 테마 색상의 어두운 버전 */
        background-color: #ea580c;
    }
     .button.green:hover {
        background-color: #218838;
     }
      .button.yellow:hover {
        background-color: #e0a800;
      }
      
    /* 전화번호, 위치 링크 그룹 */
    .restaurant-link-group {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        flex-wrap: wrap;
    }
    
    /* 주차 정보 스타일 */
    .restaurant-parking-info {
        display: flex;
        gap: 1rem;
        flex-wrap: wrap;
    }
    .restaurant-parking-details {
        font-size: 0.8rem;
        color: #6B7280;
        margin-top: 0.25rem;
    }
    
    /* 수상/방영 정보 스타일 */
    .restaurant-accolades div {
        margin-bottom: 0.25rem;
    }
     .restaurant-accolades div:last-child {
        margin-bottom: 0;
     }
    .restaurant-accolades strong {
        color: #f97316;
        font-weight: 700;
    }
    
    /* 편의시설 그리드 스타일 */
    .restaurant-amenities-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
        gap: 0.75rem;
    }
    .amenity-item {
        display: flex;
        align-items: center;
        font-size: 0.9rem;
        color: #374151;
    }
    .amenity-icon {
        width: 1rem; /* 16px */
        height: 1rem;
        margin-right: 0.5rem; /* 8px */
        color: #f97316;
        flex-shrink: 0;
    }

    /* 구분선 */
    .restaurant-divider {
        margin: 1.5rem 0;
        border: 0;
        border-top: 1px solid #D1D5DB;
    }

    /* 메뉴 목록 */
    .restaurant-menu-list {
        list-style: none;
        padding: 0;
        margin: 0;
    }
    
    .restaurant-menu-list li {
        display: grid;
        grid-template-columns: 1fr auto; 
        gap: 1rem; 
        align-items: flex-start; /* 상단 정렬 */
        padding: 0.75rem 0;
        border-bottom: 1px solid #E5E7EB;
    }
    .restaurant-menu-list li:last-child {
        border-bottom: none;
    }
    
    .restaurant-menu-item {
        /* Grid의 첫 번째 열을 차지하는 컨테이너 */
    }
    
    .restaurant-menu-name {
        font-size: 1.125rem;
        font-weight: 500;
        color: #1F2937;
    }
    
    .restaurant-menu-description {
        font-size: 0.9rem;
        color: #6B7280;
        margin: 0.25rem 0 0 0;
        padding: 0;
    }
    
    .restaurant-menu-price {
        font-size: 1.125rem;
        font-weight: 700;
        color: #111827;
        padding-top: 2px; /* 메뉴 이름과 높이 맞춤 */
    }
    
    /* 대표 메뉴 배지 */
    .badge-signature {
        display: inline-block;
        background-color: #f97316; /* 테마 색상 */
        color: #ffffff;
        font-size: 0.7rem;
        font-weight: 700;
        padding: 0.1rem 0.4rem;
        border-radius: 0.25rem;
        margin-left: 0.5rem;
        vertical-align: middle;
        text-transform: uppercase;
    }
    
    /* 하단 안내 문구 */
    .restaurant-footer {
        margin-top: 1rem;
        font-size: 0.875rem;
        color: #6B7280;
    }
    .restaurant-footer p {
        margin: 0;
    }
    .restaurant-footer a {
       margin-left: 0.5rem;
    }