/* =========================================
COMMISSIONS PAGE
========================================= */

.commission-page {
width: 100%;
}

/* =========================================
HEADER
========================================= */

.commission-header {
margin-bottom: 35px;
text-align: center;
}

.commission-header .eyebrow {
display: block;
margin-bottom: 8px;


font-size: 0.75rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.12em;

color: var(--brown-light);


}

.commission-header h1 {
margin: 0;


font-family: var(--heading-font);
font-size: clamp(2rem, 4vw, 3rem);

color: var(--brown-dark);


}

.commission-header p {
max-width: 600px;
margin: 10px auto 0;


color: var(--brown);
line-height: 1.6;


}

/* =========================================
MENU
========================================= */

.commission-menu {
position: relative;
z-index: 1;


width: min(850px, 100%);
margin: 0 auto;
padding: 55px 65px;

border-radius: 20px;

background:
    repeating-linear-gradient(
        0deg,
        #6f4934 0px,
        #6f4934 3px,
        #765039 3px,
        #765039 6px
    );

box-shadow:
    0 18px 40px rgba(77, 50, 37, 0.16);

overflow: visible;

animation:
    cardPop
    0.55s
    ease
    both;


}

/* =========================================
PAPER
========================================= */

.commission-menu-page {
position: relative;
z-index: 2;


min-height: 500px;
padding: 45px 50px;

border-radius: 14px;

background: var(--cream);

box-shadow:
    inset 0 0 0 1px rgba(77, 50, 37, 0.08),
    0 4px 10px rgba(47, 28, 21, 0.08);


}

/* =========================================
BOOKMARKS
========================================= */

.commission-bookmarks {
position: absolute;
top: 55px;
right: -102px;
z-index: -1;


display: flex;
flex-direction: column;
gap: 8px;

width: 280px;


}

.commission-bookmark {
position: relative;


width: 100%;
padding: 20px 14px;
padding-left: 170px;

border: 0;
border-radius: 0 10px 10px 0;

background: var(--brown-light);
color: var(--cream);

font-family: var(--body-font);
font-size: 0.78rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.06em;

cursor: pointer;

box-shadow:
    3px 4px 8px rgba(77, 50, 37, 0.12);

transition:
    transform 0.2s ease,
    background 0.2s ease;

text-align: center;


}

.commission-bookmark:hover {
transform: translateX(4px);
}

.commission-bookmark.active {
background: var(--brown-dark);
transform: translateX(7px);
}

/* =========================================
MENU PAGE HEADER
========================================= */

.menu-page-header {
text-align: center;
}

.menu-label {
display: block;
margin-bottom: 8px;


font-size: 0.7rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.12em;

color: var(--brown-light);


}

.menu-page-header h2 {
margin: 0;


font-family: var(--heading-font);
font-size: 2rem;

color: var(--brown-dark);


}

.menu-page-header p {
margin: 8px 0 0;


color: var(--brown);
font-size: 0.9rem;


}

/* =========================================
SERVICES
========================================= */

.commission-services {
display: flex;
flex-direction: column;


margin-top: 35px;

border-top:
    1px solid rgba(77, 50, 37, 0.14);


}

.commission-service {
display: flex;
align-items: center;
justify-content: space-between;


width: 100%;
padding: 16px 4px;

border: 0;
border-bottom:
    1px solid rgba(77, 50, 37, 0.14);

background: transparent;
color: var(--brown-dark);

font-family: var(--body-font);
text-align: left;

cursor: pointer;

transition:
    padding 0.2s ease,
    color 0.2s ease;


}

.commission-service:hover {
padding-left: 8px;
}

.commission-service.active {
padding-left: 8px;
color: var(--brown-light);
}

.service-name {
font-weight: 600;
}

.service-price {
font-size: 0.85rem;
font-weight: 600;
}


/* =========================================
   DETAILS
========================================= */

.commission-details {
    display: grid;

    grid-template-columns:
        220px minmax(0, 1fr);

    column-gap: 50px;

    margin-top: 40px;

    padding-top: 30px;

    border-top:
        1px dashed
        rgba(77, 50, 37, 0.22);
}


/* =========================================
   COMMISSION IMAGE
========================================= */

.commission-detail-image {

    grid-column: 1;

    grid-row: 1 / span 3;

    width: 100%;

    max-width: 220px;

    aspect-ratio: 1 / 1;

    object-fit: contain;

    border-radius: 12px;

}

/* =========================================
   RIGHT COLUMN
========================================= */

.detail-label,
.commission-details h3,
.commission-details > p {
    grid-column: 2;
}

.detail-label {
    padding-top: 30px;
}


/* =========================================
   DETAILS TEXT
========================================= */

.detail-label {

    grid-column: 2;

    display: block;

    margin-bottom: 0px;

    font-size: 20px;

    font-family: fredoka;

    font-weight: 600;

    text-transform: uppercase;

    letter-spacing: 0.1em;

    color: var(--brown-light);

}


.commission-details h3 {

    grid-column: 2;

    margin: 0;

    font-family: var(--heading-font);

    font-size: 1.5rem;

    color: var(--brown-dark);

    display: none;
    

}


#commission-detail-title {
    display: none;
}



.commission-details > p {

    grid-column: 2;

    max-width: 600px;

    margin: 12px 0 0;

    color: var(--brown);

    line-height: 1.65;

}


/* =========================================
   COMMISSION INFO
========================================= */

.commission-info {

    grid-column: 1 / -1;

    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 15px;

    margin: 30px 0 0;

}


.commission-info div {

    padding: 14px;

    border-radius: 10px;

    background:
        var(--cream-dark);

}


.commission-info dt {

    margin-bottom: 5px;

    font-size: 0.68rem;

    font-weight: 600;

    text-transform: uppercase;

    letter-spacing: 0.08em;

    color: var(--brown-light);

}


.commission-info dd {

    margin: 0;

    font-size: 0.9rem;

    font-weight: 600;

    color: var(--brown-dark);

}


/* =========================================
   ORDER BUTTON
========================================= */

.commission-actions {

    grid-column: 1 / -1;

    display: flex;

    justify-content: flex-end;

    margin-top: 30px;

}


.order-button {

    padding: 12px 24px;

    border: 0;

    border-radius: 8px;

    background:
        var(--brown-dark);

    color:
        var(--cream);

    font-family:
        var(--body-font);

    font-size: 0.8rem;

    font-weight: 600;

    text-transform: uppercase;

    letter-spacing: 0.08em;

    cursor: pointer;

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;

}


.order-button:hover {

    transform:
        translateY(-2px);

    box-shadow:
        0 7px 14px
        rgba(77, 50, 37, 0.18);

}


/* =========================================
   ANIMATION
========================================= */

@keyframes cardPop {

    from {

        opacity: 0;

        transform:
            translateY(15px)
            scale(0.98);

    }

    to {

        opacity: 1;

        transform:
            translateY(0)
            scale(1);

    }

}


/* =========================================
   MOBILE
========================================= */

@media (max-width: 650px) {

    .commission-details {

        grid-template-columns:
            1fr;

        row-gap: 0;

    }


    .commission-detail-image {

        grid-column: 1;

        grid-row: auto;

        width: 100%;

        max-width: 240px;

        margin:
            0 auto 24px;

    }


    .detail-label,
    .commission-details h3,
    .commission-details > p,
    .commission-info {

        grid-column: 1;

    }


    .commission-info {

        grid-template-columns:
            repeat(3, minmax(0, 1fr));

    }


    .commission-actions {

        grid-column: 1;

    }

}





/* =========================================
COMMISSION FORM
========================================= */

.commission-form-page {
min-height: 500px;
}

.commission-form {
width: min(100%, 650px);
margin: 35px auto 0;


display: flex;
flex-direction: column;
gap: 35px;


}

/* =========================================
FORM SECTIONS
========================================= */

.form-section {
display: flex;
flex-direction: column;
gap: 22px;
}

.form-section + .form-section {
padding-top: 32px;


border-top:
    1px dashed rgba(77, 50, 37, 0.22);


}

.form-section-header {
text-align: left;
}

.form-section-header .menu-label {
margin-bottom: 6px;

}

.form-section-header h3 {
margin: 0;


font-family: var(--heading-font);
font-size: 1.35rem;

color: var(--brown-dark);


}

.form-section-header p {
max-width: 550px;
margin: 7px 0 0;


color: var(--brown);
font-size: 0.88rem;
line-height: 1.55;


}

/* =========================================
FORM GROUPS
========================================= */

.form-group {
display: flex;
flex-direction: column;
gap: 8px;
}

.form-group > label {
margin-top: 30px;
font-family: var(--body-font);
font-size: 0.95rem;
font-weight: 600;


color: var(--brown-dark);


}

/* =========================================
INPUTS
========================================= */

.form-group input:not([type="radio"]):not([type="checkbox"]),
.form-group textarea {
width: 100%;
box-sizing: border-box;


padding: 12px 14px;

font-family: var(--body-font);
font-size: 0.95rem;

color: #4a3024;
background: #fffaf2;

border: 1px solid #4a3024;
border-radius: 10px;

outline: none;

transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    background 0.2s ease;


}

.form-group input:not([type="radio"]):not([type="checkbox"]):focus,
.form-group textarea:focus {
border-color: #4a3024;
background: #fffdf8;


box-shadow:
    0 0 0 3px rgba(155, 104, 72, 0.12);


}

/* =========================================
TEXTAREA
========================================= */

.form-group textarea {
min-height: 130px;
resize: vertical;


line-height: 1.5;


}

/* =========================================
READONLY SERVICE
========================================= */

#form-service {
background: #eee3d6;
color: #6a4b39;
cursor: default;
}

/* =========================================
OPTION CARDS
========================================= */

.form-options {
display: grid;


grid-template-columns:
    repeat(2, minmax(0, 1fr));

gap: 6px;


}

.form-option {
position: relative;


display: flex;
align-items: center;

gap: 12px;

padding: 13px 16px;

background: #fffaf2;

box-shadow:
    0 1px 2px rgba(77, 50, 37, 0.06);

cursor: pointer;

font-family: var(--body-font);
font-size: 0.9rem;

color: #5a4032;

transition:
    box-shadow 0.18s ease,
    transform 0.18s ease,
    background 0.18s ease;


}

.form-option:hover {
box-shadow:
0 2px 8px rgba(77, 50, 37, 0.10);


transform: translateY(-1px);


}

/* =========================================
HIDDEN RADIO
========================================= */

.form-option input[type="radio"] {
position: absolute;


opacity: 0;
pointer-events: none;


}

/* =========================================
CUSTOM RADIO MARK
========================================= */

.form-option::before {
content: "";


width: 14px;
height: 14px;

flex-shrink: 0;

background: #fffaf2;

box-shadow:
    inset 0 0 0 1.5px #c8b8aa;

border-radius: 3px;

transition:
    box-shadow 0.15s ease,
    background 0.15s ease;


}

/* =========================================
SELECTED OPTION
========================================= */

.form-option:has(input[type="radio"]:checked) {
background: #f1e5d8;
}

.form-option:has(input[type="radio"]:checked)::before {
background: #79513a;


box-shadow:
    inset 0 0 0 3px #fffaf2;


}

.form-option span {
line-height: 1.2;
}

/* =========================================
FORM HELP TEXT
========================================= */

.form-group small {
margin-top: 1px;


color: var(--brown);

font-family: var(--body-font);
font-size: 0.78rem;
line-height: 1.5;


}

/* =========================================
TOS CHECKBOX
========================================= */

.form-checkbox {
display: flex;
align-items: flex-start;


gap: 10px;
margin-top: 0;

font-family: var(--body-font);
font-size: 0.9rem;
line-height: 1.45;

color: #5a4032;

cursor: pointer;


}

.form-checkbox input {
width: 17px;
height: 17px;


margin-top: 2px;

flex: 0 0 auto;

accent-color: #79513a;


}


/* =========================================
   IMAGE SELECTOR
========================================= */

.image-select-options {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 18px;
    margin-bottom: 30px;
}

.image-select-options.body-type-options {
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
}

.image-select-option {
    position: relative;

    display: flex;
    flex-direction: column;
    align-items: center;

    gap: 8px;

    padding: 10px;

    border: 2px solid transparent;
    border-radius: 12px;

    cursor: pointer;

    transition:
        border-color 0.2s ease,
        background 0.2s ease,
        transform 0.2s ease;
}

.image-select-option input {
    position: absolute;

    opacity: 0;
    pointer-events: none;
}

.image-select-option img {
    display: block;

    width: 100%;
    max-width: 200px;

    aspect-ratio: 1 / 1;
    object-fit: contain;

    border-radius: 8px;
}

.image-select-option span {
    font-family: var(--body-font);

    font-size: 0.9rem;
    font-weight: 600;

    color: var(--brown-dark);
}

.image-select-option.selected {
    border-color: #79513a;
    background: #f1e5d8;
}



/* =========================================
FORM BUTTONS
========================================= */

.commission-form-actions {
display: flex;
justify-content: space-between;
align-items: center;


gap: 15px;
margin-top: 0;


}

/* =========================================
BACK BUTTON
========================================= */

.back-button {
padding: 11px 17px;


font-family: var(--body-font);
font-size: 0.9rem;
font-weight: 500;

color: #6a4734;
background: transparent;

border: 1px solid #bda591;
border-radius: 10px;

cursor: pointer;

transition:
    background 0.2s ease,
    transform 0.2s ease;


}

.back-button:hover {
background: #f1e5d8;
transform: translateY(-1px);
}

/* =========================================
SEND BUTTON
========================================= */

.commission-form-actions .order-button {
margin: 0;
}

/* =========================================
RESPONSIVE
========================================= */

@media (max-width: 900px) {


.commission-menu {
    margin-right: 45px;
}

.commission-bookmarks {
    right: -82px;
    width: 95px;
}


}

@media (max-width: 700px) {


.commission-menu {
    margin-right: 35px;
    padding: 40px 35px;
}

.commission-menu-page {
    padding: 40px 35px;
}

.commission-bookmarks {
    top: 40px;
    right: -72px;
    width: 85px;
}

.commission-bookmark {
    padding: 11px 10px;
    font-size: 0.68rem;
}

.commission-info {
    grid-template-columns: 1fr;
}


}

@media (max-width: 650px) {


.commission-form {
    margin-top: 28px;
    gap: 28px;
}

.form-section {
    gap: 19px;
}

.commission-form-actions {
    flex-direction: column-reverse;
    align-items: stretch;
}

.commission-form-actions button {
    width: 100%;
}


}


@media (max-width: 500px) {

    .image-select-options {
        grid-template-columns: 1fr 1fr;

        gap: 10px;
    }

    .image-select-options.body-type-options {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

    .image-select-option {
        padding: 7px;
    }
}




@media (max-width: 480px) {


.commission-header {
    margin-bottom: 25px;
}

.commission-menu {
    margin-right: 25px;
    padding: 30px 25px;
}

.commission-menu-page {
    padding: 30px 25px;
}

.commission-bookmarks {
    right: -62px;
    width: 75px;
}

.commission-bookmark {
    padding: 10px 8px;
    font-size: 0.6rem;
}

.menu-page-header h2 {
    font-size: 1.7rem;
}

.commission-details h3 {
    font-size: 1.3rem;
}

.form-options {
    grid-template-columns: 1fr;
}


}