/* WordPress and WooCommerce integration layer for the original site design. */

:root{
    --osc-pink:#d46d8c;
    --osc-pink-soft:#f7d9e3;
    --osc-cream:#fff8f1;
    --osc-ink:#2b2b2b;
    --osc-muted:#666;
    --osc-white:#fff;
    --osc-shadow:0 12px 30px rgba(0,0,0,.09);
}

.screen-reader-text{
    position:absolute !important;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
}

.screen-reader-text:focus,
.osc-skip-link:focus{
    clip:auto !important;
    width:auto;
    height:auto;
    margin:0;
    padding:12px 18px;
    top:10px;
    left:10px;
    z-index:100000;
    background:#fff;
    color:#111;
    border-radius:8px;
}

/* Shared site header */
.osc-site-header.page-header{
    position:relative;
    padding:16px 30px;
    background:rgba(255,248,241,.97);
    box-shadow:0 8px 25px rgba(0,0,0,.08);
    z-index:1000;
}

.osc-header-inner{
    position:relative;
    width:100%;
    max-width:1240px;
    min-height:118px;
    margin:0 auto;
    padding:12px 78px 14px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:8px;
    background:rgba(255,248,241,.96);
    border-radius:28px;
}

.osc-site-header.page-header .osc-header-inner{
    background:transparent;
    padding:4px 78px 8px;
}

.osc-brand{
    display:flex;
    flex:0 0 auto;
    align-items:center;
}

.osc-brand-logo,
.osc-brand .custom-logo{
    width:190px;
    max-height:72px;
    object-fit:contain;
}

.osc-primary-navigation{
    margin-left:0;
}

.osc-menu{
    list-style:none;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:30px;
    margin:0;
    padding:0;
}

.osc-menu li{
    margin:0;
    padding:0;
}

.osc-menu a{
    color:var(--osc-ink);
    font-size:1rem;
    font-weight:800;
    text-decoration:none;
}

.osc-menu a:hover,
.osc-menu a:focus-visible,
.osc-menu .current-menu-item > a{
    color:var(--osc-pink);
}

.osc-cart-link{
    position:absolute;
    right:18px;
    bottom:14px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    min-width:54px;
    padding:10px 14px;
    border-radius:999px;
    background:var(--osc-pink);
    color:#fff;
    font-weight:900;
}

.osc-menu-toggle{
    display:none;
    width:48px;
    height:44px;
    padding:10px;
    border:0;
    border-radius:12px;
    background:#fff;
    cursor:pointer;
}

.osc-menu-toggle > span[aria-hidden="true"]{
    display:block;
    height:3px;
    margin:4px 0;
    border-radius:5px;
    background:var(--osc-ink);
}

/* The original scroll-reveal presentation on the homepage. */
.osc-site-header.transition-header{
    padding:0;
    transition:opacity .18s ease-out, visibility .18s ease-out, transform .22s ease-out;
}

.osc-site-header.transition-header .osc-header-inner{
    box-shadow:0 10px 25px rgba(0,0,0,.10);
}

body.admin-bar .osc-site-header.transition-header{
    top:57px;
}

/* WordPress content pages */
.osc-page-shell,
.woocommerce-content{
    min-height:55vh;
    padding:60px 30px 90px;
}

.osc-content-card,
.osc-woocommerce-shell{
    width:100%;
    max-width:1200px;
    margin:0 auto;
    padding:45px;
    border-radius:28px;
    background:var(--osc-cream);
    box-shadow:var(--osc-shadow);
}

.osc-entry-header h1,
.osc-content-card > h1,
.woocommerce-products-header__title,
.woocommerce div.product .product_title{
    font-family:'Caveat', cursive;
    color:#444;
    line-height:1.05;
}

.osc-entry-header h1,
.osc-content-card > h1,
.woocommerce-products-header__title{
    margin-bottom:24px;
    font-size:clamp(2.7rem,6vw,4.5rem);
}

.osc-entry-content > * + *{
    margin-top:1.2em;
}

/* WooCommerce catalog and product pages */
.woocommerce .woocommerce-breadcrumb{
    margin-bottom:28px;
    color:var(--osc-muted);
}

.woocommerce ul.products{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:28px;
    margin:35px 0 0;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after{
    display:none;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product{
    width:auto;
    margin:0;
    padding:18px;
    float:none;
    border-radius:22px;
    background:#fff;
    box-shadow:0 9px 24px rgba(0,0,0,.08);
}

.woocommerce ul.products li.product a img{
    aspect-ratio:1/1;
    object-fit:cover;
    border-radius:16px;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title{
    font-size:1.15rem;
    color:var(--osc-ink);
}

.woocommerce .price{
    color:var(--osc-pink) !important;
    font-weight:900;
}

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.osc-request-quote-button{
    border-radius:999px;
    background:var(--osc-pink);
    color:#fff;
    font-weight:900;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover{
    background:#ba5876;
    color:#fff;
}

.single-product div.product.type-product{
    display:grid;
    grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
    gap:18px 42px;
    align-items:start;
}

.woocommerce div.product div.images img{
    border-radius:20px;
}

.woocommerce div.product .product_title{
    font-size:clamp(2.7rem,5vw,4rem);
}

.single-product div.product.type-product div.summary{
    display:contents;
    width:auto;
    float:none;
}

.single-product div.product.type-product div.summary > *{
    grid-column:2;
}

.single-product div.product.type-product div.summary > .product_title{
    margin:8px 0 0;
    text-align:center;
}

.single-product div.product.type-product div.summary > .price{
    margin:0;
    font-size:1.3rem;
    text-align:center;
}

.single-product div.product.type-product div.summary > .woocommerce-product-details__short-description{
    width:100%;
    max-width:680px;
    margin:0 auto;
    text-align:center;
}

.single-product div.product.type-product div.summary > form.cart{
    grid-column:1/-1;
}

.single-product div.product.type-product .woocommerce-tabs,
.single-product div.product.type-product .osc-related-products{
    grid-column:1/-1;
}

/* Product gallery restored from the original HTML product pages. */
.osc-product-gallery{
    grid-column:1;
    grid-row:1 / span 6;
    width:100%;
    max-width:440px;
    min-width:0;
    justify-self:center;
}

.osc-main-product-image{
    position:relative;
    padding:14px;
    border-radius:20px;
    background:#fff;
    box-shadow:0 12px 30px rgba(0,0,0,.12);
}

.osc-main-product-image .shop-badge{
    z-index:2;
}

.osc-gallery-main-image{
    display:block;
    width:100%;
    height:410px;
    border-radius:14px;
    object-fit:cover;
}

.osc-thumbnail-slider{
    display:flex;
    align-items:center;
    gap:10px;
    margin-top:16px;
}

.osc-thumbnail-window{
    width:100%;
    min-width:0;
    overflow:hidden;
}

.osc-thumbnail-track{
    display:flex;
    gap:10px;
    overflow-x:auto;
    padding:4px 2px 8px;
    scrollbar-width:none;
    scroll-snap-type:x proximity;
}

.osc-thumbnail-track::-webkit-scrollbar{
    display:none;
}

.osc-gallery-thumbnail{
    flex:0 0 calc((100% - 40px) / 5);
    min-width:58px;
    padding:0;
    overflow:hidden;
    border:3px solid transparent;
    border-radius:11px;
    background:#fff;
    opacity:.72;
    cursor:pointer;
    scroll-snap-align:center;
    transition:opacity .2s ease, border-color .2s ease, transform .2s ease;
}

.osc-gallery-thumbnail img{
    display:block;
    width:100%;
    height:76px;
    object-fit:cover;
}

.osc-gallery-thumbnail:hover,
.osc-gallery-thumbnail:focus-visible,
.osc-gallery-thumbnail.active{
    border-color:var(--osc-pink);
    opacity:1;
    outline:none;
    transform:translateY(-2px);
}

.osc-gallery-arrow{
    flex:0 0 38px;
    width:38px;
    height:38px;
    padding:0 0 3px;
    border:0;
    border-radius:50%;
    background:#fff;
    color:var(--osc-pink);
    font-size:1.8rem;
    font-weight:900;
    line-height:1;
    box-shadow:0 7px 18px rgba(0,0,0,.12);
    cursor:pointer;
}

.osc-gallery-arrow:hover,
.osc-gallery-arrow:focus-visible{
    background:var(--osc-pink);
    color:#fff;
    outline:none;
}

.osc-single-product-badge{
    display:inline-flex;
    align-items:center;
    gap:6px;
    margin-bottom:14px;
    padding:7px 14px;
    border-radius:999px;
    background:var(--osc-pink);
    color:#fff;
    font-size:.82rem;
    font-weight:900;
    letter-spacing:.03em;
    text-transform:uppercase;
}

.osc-single-product-details{
    margin:24px 0;
    padding:22px 24px;
    border-radius:18px;
    background:var(--osc-cream);
    box-shadow:0 8px 20px rgba(0,0,0,.06);
    text-align:center;
}

.osc-single-product-details h2,
.related.products > h2{
    margin:0 0 12px;
    font-family:'Caveat',cursive;
    font-size:2.3rem;
    color:#444;
}

.osc-single-product-details ul{
    margin:0;
    padding-left:0;
    list-style-position:inside;
    text-align:center;
}

.osc-single-product-details li + li{
    margin-top:8px;
}

.woocommerce div.product form.cart{
    width:100%;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px 28px;
    align-items:start;
    clear:both;
}

.woocommerce div.product form.cart .osc-product-personalization{
    grid-column:1/-1;
}

.woocommerce div.product form.cart .quantity,
.woocommerce div.product form.cart .single_add_to_cart_button{
    grid-column:2;
    justify-self:stretch;
}

.woocommerce div.product form.cart .quantity .qty{
    width:100%;
}

.woocommerce div.product form.cart .single_add_to_cart_button{
    min-height:48px;
}

.osc-purchase-controls{
    margin-top:26px;
    padding-top:22px;
    display:grid;
    grid-template-columns:minmax(120px,160px) minmax(0,1fr);
    gap:18px;
    align-items:end;
    border-top:1px solid rgba(212,109,140,.25);
}

.osc-quantity-control{
    min-width:0;
}

.osc-quantity-control > label{
    display:block;
    margin:0 0 8px;
    color:#444;
    font-weight:900;
}

.woocommerce div.product form.cart .osc-purchase-controls .quantity,
.woocommerce div.product form.cart .osc-purchase-controls .single_add_to_cart_button{
    grid-column:auto;
    width:100%;
    margin:0 !important;
    float:none !important;
}

.woocommerce div.product form.cart .osc-purchase-controls .single_add_to_cart_button{
    min-height:50px;
    background:var(--osc-pink) !important;
}

.woocommerce .quantity .qty,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select{
    padding:12px;
    border:1px solid #d8c8cf;
    border-radius:10px;
    background:#fff;
}

.woocommerce table.shop_table{
    border-radius:16px;
    background:#fff;
}

.woocommerce-cart-form,
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-checkout-review-order,
.woocommerce-checkout #customer_details > div{
    padding:22px;
    border-radius:18px;
    background:#fff;
    box-shadow:0 8px 20px rgba(0,0,0,.06);
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error{
    border-top-color:var(--osc-pink);
    border-radius:12px;
    background:#fff;
}

.woocommerce-message::before,
.woocommerce-info::before{
    color:var(--osc-pink);
}

/* Product personalization */
.osc-product-personalization{
    width:100%;
    margin:30px 0;
    padding:26px;
    border:1px solid rgba(212,109,140,.22);
    border-radius:24px;
    background:linear-gradient(145deg,#fff,#fff8f1);
    box-shadow:0 10px 25px rgba(0,0,0,.07);
}

.osc-product-personalization.has-preview{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:28px;
}

.osc-product-personalization.has-preview .osc-live-preview{
    order:1;
}

.osc-product-personalization.has-preview .osc-options-panel{
    order:2;
}

/* Reliable, curated recommendations on every converted product. */
.osc-related-products{
    width:100%;
    margin:70px 0 10px;
    padding-top:12px;
    text-align:center;
}

.osc-related-products > h2{
    margin-bottom:32px;
    font-size:3.2rem;
}

.osc-related-products .related-products-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:26px;
    align-items:stretch;
}

.osc-related-products .shop-product-card{
    width:100%;
    min-width:0;
    max-width:none;
    margin:0;
    padding:14px 14px 22px;
    display:flex;
    flex-direction:column;
    transform:none;
}

.osc-related-products .shop-product-card:nth-child(odd),
.osc-related-products .shop-product-card:nth-child(even){
    transform:none;
}

.osc-related-products .shop-product-card:hover{
    transform:translateY(-7px);
}

.osc-related-image{
    position:relative;
    display:block;
}

.osc-related-products .shop-product-card img{
    width:100%;
    height:280px;
    border-radius:9px;
    object-fit:cover;
}

.osc-related-products .shop-product-card h3{
    margin:15px 0 5px;
}

.osc-related-products .shop-product-card h3 a{
    color:#444;
    text-decoration:none;
}

.osc-related-products .shop-product-card > p{
    flex:1;
    margin:8px 0 16px;
    color:var(--osc-muted);
}

.osc-options-panel h2,
.osc-live-preview h3{
    margin:0 0 8px;
    font-family:'Caveat', cursive;
    color:#444;
    line-height:1.05;
}

.osc-options-panel h2{
    font-size:2.5rem;
}

.osc-live-preview h3{
    font-size:2.2rem;
}

.osc-options-panel > p,
.osc-live-preview > p{
    margin:0 0 22px;
    color:var(--osc-muted);
}

.osc-optional-marker,
.osc-conditional-requirement{
    font-size:.78rem;
    font-weight:700;
    color:var(--osc-muted);
}

.osc-conditional-requirement.is-required{
    color:var(--osc-pink);
}

.osc-option-field[data-osc-required-when-field]{
    padding:14px;
    border:1px solid rgba(212,109,140,.22);
    border-radius:12px;
    background:rgba(255,255,255,.58);
    transition:border-color .2s ease, background-color .2s ease;
}

.osc-option-field[data-osc-required-when-field].is-conditionally-required{
    border-color:var(--osc-pink);
    background:#fff;
}

.osc-option-fields{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
}

.osc-option-field{
    min-width:0;
    margin:0;
}

.osc-option-field label,
.osc-option-field legend{
    display:block;
    margin:0 0 8px;
    color:#444;
    font-weight:900;
}

.osc-option-field input[type="text"],
.osc-option-field select,
.osc-option-field textarea{
    width:100%;
    min-height:48px;
    padding:12px 14px;
    border:1px solid #d8c8cf;
    border-radius:12px;
    background:#fff;
    font-size:1rem;
}

.osc-option-field textarea{
    min-height:110px;
    resize:vertical;
}

.osc-option-field input:focus,
.osc-option-field select:focus,
.osc-option-field textarea:focus{
    border-color:var(--osc-pink);
    outline:3px solid rgba(212,109,140,.15);
}

.osc-button-field{
    grid-column:1/-1;
    padding:0;
    border:0;
}

.osc-choice-list{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}

.osc-choice-button{
    min-height:44px;
    padding:10px 15px;
    border:2px solid transparent;
    border-radius:13px;
    background:#fff;
    color:var(--osc-ink);
    font-weight:900;
    box-shadow:0 5px 14px rgba(0,0,0,.08);
    cursor:pointer;
}

.osc-choice-button:hover,
.osc-choice-button:focus-visible,
.osc-choice-button.active{
    border-color:var(--osc-pink);
    outline:none;
}

.osc-color-choice::before{
    content:"";
    display:inline-block;
    width:16px;
    height:16px;
    margin-right:7px;
    border:1px solid #aaa;
    border-radius:50%;
    vertical-align:-3px;
    background:var(--osc-choice-color);
}

.osc-required-note{
    margin:16px 0 0 !important;
    font-size:.85rem;
    color:var(--osc-muted);
}

.osc-upload-field{
    grid-column:1/-1;
    padding:18px;
    border:2px dashed rgba(212,109,140,.45);
    border-radius:16px;
    background:#fff;
}

/* A calmer, single-column selection card for charm products. */
.osc-product-mini-book-charms .osc-product-personalization,
.osc-product-phone-charms .osc-product-personalization{
    max-width:900px;
    margin:36px auto;
    padding:34px;
}

.osc-product-mini-book-charms .osc-options-panel > h2,
.osc-product-mini-book-charms .osc-options-panel > p,
.osc-product-phone-charms .osc-options-panel > h2,
.osc-product-phone-charms .osc-options-panel > p{
    text-align:center;
}

.osc-product-mini-book-charms .osc-option-fields,
.osc-product-phone-charms .osc-option-fields{
    grid-template-columns:1fr;
    max-width:720px;
    margin:0 auto;
}

.osc-product-mini-book-charms .osc-required-note,
.osc-product-phone-charms .osc-required-note{
    text-align:center;
}

.osc-upload-field input[type="file"]{
    display:block;
    width:100%;
    margin:8px 0;
    padding:12px;
    border-radius:12px;
    background:var(--osc-cream);
}

.osc-upload-field small{
    color:var(--osc-muted);
}

.osc-live-preview{
    padding:22px;
    border-radius:20px;
    background:var(--osc-cream);
}

.osc-live-preview .necklace-preview-card{
    position:relative;
    min-height:300px;
    padding:32px 24px 42px;
    border-radius:20px;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    align-items:center;
    background:radial-gradient(circle at center,rgba(255,255,255,.98),rgba(255,244,248,.93) 60%,rgba(247,217,227,.9));
}

.osc-live-preview .necklace-chain-wrap{
    position:relative;
    width:82%;
    height:120px;
    display:flex;
    justify-content:center;
}

.osc-live-preview .chain-line{
    width:100%;
    height:108px;
    margin:0 !important;
    border:4px solid #d4af37;
    border-top:0;
    border-radius:0 0 50% 50%;
    background:transparent !important;
}

.osc-live-preview .necklace-connector{
    bottom:-4px;
}

.osc-live-preview .name-preview{
    margin:10px 0 0;
    padding:12px 16px !important;
    min-width:160px;
    max-width:100%;
    overflow-wrap:anywhere;
    font-family:'Caveat',cursive;
    font-size:3.8rem;
    font-weight:700;
    line-height:1;
    text-align:center;
    color:#d4af37;
    text-shadow:0 3px 8px rgba(0,0,0,.15);
}

/* Earring and matching-set previews */
.osc-earring-preview-stage{
    min-height:300px;
    padding:34px 18px;
    display:flex;
    align-items:flex-start;
    justify-content:center;
    gap:34px;
    overflow:hidden;
    border-radius:20px;
    background:radial-gradient(circle at center,rgba(255,255,255,.98),rgba(255,244,248,.93) 60%,rgba(247,217,227,.9));
}

.osc-earring-piece{
    width:42%;
    max-width:170px;
    display:flex;
    flex-direction:column;
    align-items:center;
    transform:scale(var(--osc-earring-scale,1));
    transform-origin:top center;
    transition:transform .25s ease;
}

.osc-earring-hook{
    width:40px;
    height:40px;
    border:5px solid #d4af37;
    border-bottom-color:transparent !important;
    border-radius:50%;
    background:transparent;
}

.osc-earring-stem{
    width:5px;
    height:32px;
    margin-top:-2px;
    border-radius:999px;
    background:#d4af37;
}

.osc-earring-piece .name-preview{
    width:100%;
    min-width:0;
    min-height:92px;
    margin:0;
    padding:16px 8px !important;
    display:flex;
    align-items:center;
    justify-content:center;
    border:3px solid #d4af37;
    border-radius:50%;
    overflow-wrap:anywhere;
    font-family:'Caveat',cursive;
    font-size:1.85rem;
    font-weight:700;
    line-height:1;
    text-align:center;
    color:#d4af37;
    background:rgba(255,255,255,.7);
}

.osc-set-preview-stage{
    padding:24px 16px 30px;
    border-radius:20px;
    overflow:hidden;
    background:radial-gradient(circle at center,rgba(255,255,255,.98),rgba(255,244,248,.93) 60%,rgba(247,217,227,.9));
}

.osc-set-necklace{
    display:flex;
    flex-direction:column;
    align-items:center;
}

.osc-set-live-preview .necklace-chain-wrap{
    width:72%;
    height:88px;
}

.osc-set-live-preview .chain-line{
    height:78px;
}

.osc-set-live-preview .name-piece-wrap .name-preview{
    min-width:130px;
    font-size:2.6rem;
}

.osc-earring-preview-stage.compact{
    min-height:190px;
    margin-top:18px;
    padding:20px 12px;
    background:rgba(255,255,255,.45);
}

.osc-earring-preview-stage.compact .osc-earring-piece{
    max-width:120px;
}

.osc-earring-preview-stage.compact .osc-earring-hook{
    width:30px;
    height:30px;
    border-width:4px;
}

.osc-earring-preview-stage.compact .osc-earring-stem{
    height:22px;
    width:4px;
}

.osc-earring-preview-stage.compact .name-preview{
    min-height:68px;
    font-size:1.35rem;
}

/* FAQ and request-form behavior */
.faq-answer[hidden],
.contact-field[hidden]{
    display:none !important;
}

.faq-item.active .faq-answer:not([hidden]){
    display:block;
    max-height:none;
}

.faq-item.active .faq-question span{
    transform:none;
}

.simple-request-form fieldset{
    margin:20px 0 10px;
    padding:0;
    border:0;
}

.simple-request-form legend{
    margin-bottom:10px;
    font-weight:900;
    color:#444;
}

.simple-request-form .choice-grid input{
    width:auto;
    margin-right:7px;
}

.simple-request-form .contact-field{
    display:block;
}

.simple-request-form .upload-box{
    display:block;
    padding:22px;
    border:2px dashed rgba(212,109,140,.45);
    border-radius:16px;
    background:var(--osc-cream);
}

.simple-request-form .upload-box input{
    margin-bottom:8px;
    padding:8px;
    background:#fff;
}

.simple-request-form .upload-box span,
.simple-request-form .upload-box small{
    display:block;
    color:var(--osc-muted);
}

.osc-honeypot{
    position:absolute !important;
    width:1px;
    height:1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
}

.osc-form-notice{
    margin-bottom:25px;
    padding:20px 24px;
    border-radius:16px;
}

.osc-form-notice.success{
    background:#e5f6e8;
    color:#215e2b;
}

.osc-form-notice.error{
    background:#fff0f0;
    color:#8b2424;
}

/* Smooth full-page turn between internal pages. */
.osc-page-turn{
    position:fixed;
    inset:0;
    z-index:2147483000;
    visibility:hidden;
    overflow:hidden;
    pointer-events:none;
    perspective:2200px;
    transform-style:preserve-3d;
}

.osc-page-turn::before{
    content:"";
    position:absolute;
    inset:0;
    background:rgba(63,35,46,.26);
    opacity:0;
}

.osc-page-turn-sheet{
    position:absolute;
    inset:-2vh -2vw;
    width:104vw;
    height:104vh;
    transform-origin:0 50%;
    transform:rotateY(89deg);
    backface-visibility:visible;
    will-change:transform;
    background:linear-gradient(105deg,#fffaf4 0%,#fff7f1 62%,#f5d3df 100%);
    border-right:1px solid rgba(212,109,140,.35);
    box-shadow:18px 0 58px rgba(64,29,43,.4),inset -42px 0 65px rgba(163,77,106,.12);
}

.osc-page-turn-sheet::before{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,rgba(255,255,255,.05) 0 64%,rgba(116,52,75,.12) 90%,rgba(78,30,49,.22) 100%);
}

.osc-page-turn.is-leaving,
html.osc-page-turn-arriving .osc-page-turn{
    visibility:visible;
}

.osc-page-turn.is-leaving::before{
    animation:osc-page-turn-dim .45s ease-in-out forwards;
}

.osc-page-turn.is-leaving .osc-page-turn-sheet{
    animation:osc-page-turn-cover .45s cubic-bezier(.45,.05,.55,.95) forwards;
}

html.osc-page-turn-arriving .osc-page-turn::before{
    opacity:.2;
    animation:osc-page-turn-undim .45s ease-in-out forwards;
}

html.osc-page-turn-arriving .osc-page-turn-sheet{
    transform:rotateY(0deg);
    animation:osc-page-turn-open .45s cubic-bezier(.45,.05,.55,.95) forwards;
}

html.osc-page-turning,
html.osc-page-turning body{
    overflow:hidden;
}

@keyframes osc-page-turn-cover{
    0%{transform:rotateY(89deg);}
    50%{transform:rotateY(44deg);}
    100%{transform:rotateY(0deg);}
}

@keyframes osc-page-turn-open{
    0%{transform:rotateY(0deg);}
    50%{transform:rotateY(-44deg);}
    100%{transform:rotateY(-89deg);}
}

@keyframes osc-page-turn-dim{
    from{opacity:0;}
    to{opacity:.2;}
}

@keyframes osc-page-turn-undim{
    from{opacity:.2;}
    to{opacity:0;}
}

@media(prefers-reduced-motion:reduce){
    .osc-page-turn,
    html.osc-page-turn-arriving .osc-page-turn{
        display:none;
    }
}

/* Footer menus are WordPress lists. */
.footer .osc-menu{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:8px;
}

.footer .osc-menu a,
.footer-contact a{
    color:#fff;
}

.footer-contact{
    display:flex;
    flex-direction:column;
    gap:8px;
}

@media(max-width:1050px){
    .osc-menu{
        gap:18px;
    }

    .osc-brand-logo,
    .osc-brand .custom-logo{
        width:160px;
    }

    .woocommerce ul.products{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:860px){
    .osc-site-header.page-header{
        padding:10px 14px;
    }

    .osc-header-inner{
        min-height:82px;
        padding:8px 64px;
        gap:0;
    }

    .osc-site-header.page-header .osc-header-inner{
        padding:8px 64px;
    }

    .osc-menu-toggle{
        display:block;
        position:absolute;
        top:50%;
        left:8px;
        margin:0;
        transform:translateY(-50%);
    }

    .osc-cart-link{
        top:50%;
        right:8px;
        bottom:auto;
        transform:translateY(-50%);
    }

    .osc-primary-navigation{
        position:absolute;
        top:calc(100% + 8px);
        left:15px;
        right:15px;
        display:none;
        padding:18px;
        border-radius:18px;
        background:var(--osc-cream);
        box-shadow:var(--osc-shadow);
    }

    .osc-primary-navigation.is-open{
        display:block;
    }

    .osc-primary-navigation .osc-menu{
        flex-direction:column;
        align-items:stretch;
        gap:0;
    }

    .osc-primary-navigation .osc-menu a{
        display:block;
        padding:11px 8px;
    }

    .osc-site-header.transition-header{
        width:94%;
    }

    .osc-site-header.transition-header .osc-header-inner{
        position:relative;
    }

    .single-product div.product.type-product{
        display:block;
    }

    .single-product div.product.type-product div.summary{
        display:block;
        width:100%;
        float:none;
    }

    .osc-product-gallery{
        margin-bottom:35px;
    }

    .osc-gallery-main-image{
        height:min(440px,75vw);
    }

    .osc-product-personalization.has-preview{
        grid-template-columns:1fr;
    }

    .osc-product-personalization.has-preview .osc-options-panel,
    .osc-product-personalization.has-preview .osc-live-preview{
        order:initial;
    }

    .osc-related-products .related-products-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .process-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .how-it-works-section,
    .custom-journey-section,
    .faq-section{
        margin:30px 18px;
        padding:55px 25px;
    }
}

@media(max-width:680px){
    .osc-brand-logo,
    .osc-brand .custom-logo{
        width:125px;
    }

    .osc-cart-link{
        min-width:45px;
        padding:9px 11px;
    }

    .osc-page-shell,
    .woocommerce-content{
        padding:35px 14px 65px;
    }

    .osc-content-card,
    .osc-woocommerce-shell{
        padding:25px 18px;
        border-radius:20px;
    }

    .woocommerce ul.products{
        grid-template-columns:1fr;
    }

    .woocommerce div.product div.images,
    .woocommerce-page div.product div.images,
    .woocommerce div.product div.summary,
    .woocommerce-page div.product div.summary{
        width:100%;
        float:none;
    }

    .woocommerce div.product form.cart{
        grid-template-columns:1fr;
    }

    .woocommerce div.product form.cart .osc-product-personalization,
    .woocommerce div.product form.cart .quantity,
    .woocommerce div.product form.cart .single_add_to_cart_button{
        grid-column:1;
    }

    .osc-purchase-controls{
        grid-template-columns:1fr;
    }

    .osc-gallery-main-image{
        height:min(410px,105vw);
    }

    .osc-thumbnail-slider{
        gap:6px;
    }

    .osc-gallery-arrow{
        flex-basis:34px;
        width:34px;
        height:34px;
    }

    .osc-gallery-thumbnail{
        flex-basis:calc((100% - 20px) / 3);
    }

    .osc-related-products .related-products-grid{
        grid-template-columns:1fr;
    }

    .osc-product-personalization{
        padding:20px 16px;
    }

    .osc-option-fields{
        grid-template-columns:1fr;
    }

    .osc-button-field{
        grid-column:auto;
    }

    .osc-live-preview{
        padding:15px;
    }

    .osc-live-preview .necklace-preview-card{
        min-height:250px;
        padding:25px 12px 32px;
    }

    .osc-live-preview .name-preview{
        min-width:120px;
        font-size:2.8rem;
    }

    .osc-earring-preview-stage{
        min-height:250px;
        gap:16px;
        padding:26px 10px;
    }

    .osc-earring-piece .name-preview{
        min-height:72px;
        font-size:1.35rem;
    }

    .process-grid,
    .choice-grid{
        grid-template-columns:1fr;
    }

    .journey-form-card{
        padding:25px 18px;
    }
}
