/*
Theme Name: Duroluceo Child
Description: A luminous, editorial digital-art gallery child theme for Storefront and WooCommerce.
Author: Duroluceo
Version: 1.0.3
Template: storefront
Text Domain: duroluceo
License: GNU General Public License v3 or later
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: e-commerce, custom-logo, custom-menu, responsive-layout
*/

:root {
    --dl-ink: #242228;
    --dl-ink-soft: #383238;
    --dl-copper: #B98062;
    --dl-copper-dark: #965B42;
    --dl-cream: #F7F3EC;
    --dl-paper: #FFFDFA;
    --dl-stone: #D5CCC0;
    --dl-line: #E5DDD2;
    --dl-muted: #6E6668;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body, button, input, textarea, select { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; }
body { margin:0; font-size: 16px; line-height: 1.68; background: var(--dl-paper); color: var(--dl-ink); }
h1,h2,h3,h4,h5,h6 { color: var(--dl-ink); font-family: Georgia, "Times New Roman", serif; font-weight: 400; line-height: 1.14; letter-spacing: -.03em; }
a { color: var(--dl-copper-dark); }
a:hover { color: var(--dl-ink); }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible { outline: 3px solid var(--dl-copper); outline-offset: 3px; }
::selection { background: #E8C7B5; color: var(--dl-ink); }
.dl-shell { width: calc(100% - clamp(36px, 6vw, 144px)); max-width: 1820px; margin: 0 auto; }
body #page { overflow: clip; display:flex; flex-direction:column; min-height:100vh; min-height:100dvh; }
body #page > .site-content { flex:1 0 auto; }
body #page > .dl-footer.site-footer { flex:0 0 auto; margin-top:auto; }
.site-content .col-full { max-width: 1620px; }
.site-content { min-height: 35vh; }
/* Header */
body .dl-site-header.site-header { margin: 0 !important; padding: 0; background:var(--dl-paper); color:var(--dl-ink); border-bottom:1px solid var(--dl-line); box-shadow:none; }
.dl-header-row { min-height:90px; display:flex; justify-content:space-between; align-items:center; gap:28px; }
.dl-brand { flex:0 0 auto; }
.dl-wordmark { display:inline-flex; align-items:center; gap:12px; text-decoration:none !important; }
.dl-brand-symbol { width:32px; height:32px; display:flex; align-items:center; justify-content:center; color:var(--dl-copper); }
.dl-brand-type,.dl-footer-brand { font-family:Georgia,"Times New Roman",serif; color:var(--dl-ink); font-size:31px; letter-spacing:-.05em; font-weight:400; line-height:1; }
.dl-brand-type span,.dl-footer-brand span { color:var(--dl-copper-dark); font-style:italic; }
.dl-brand .custom-logo-link img { max-width:230px; max-height:70px; width:auto; object-fit:contain; }
.dl-desktop-nav { margin-left:auto; }
.dl-menu { list-style:none; margin:0; padding:0; display:flex; align-items:center; gap:clamp(16px,2vw,34px); }
.dl-menu li { position:relative; list-style:none; margin:0; padding:0; }
.dl-menu a { color:var(--dl-ink); text-decoration:none; padding:10px 0; font-size:12px; font-weight:650; letter-spacing:.08em; text-transform:uppercase; display:block; }
.dl-menu a:hover,.dl-menu .current-menu-item > a { color:var(--dl-copper-dark); }
.dl-menu .sub-menu { display:none; position:absolute; z-index:40; top:100%; left:0; min-width:210px; padding:8px 19px; background:#fff; border:1px solid var(--dl-line); box-shadow:0 15px 35px #211b2520; }
.dl-menu li:hover > .sub-menu,.dl-menu li:focus-within > .sub-menu { display:block; }
.dl-header-actions { display:flex; align-items:center; gap:25px; }
.dl-account-button { border:1px solid var(--dl-ink); border-radius:2px; padding:11px 21px; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--dl-ink); text-decoration:none !important; white-space:nowrap; }
.dl-account-button:hover { color:#fff; background:var(--dl-ink); }
.dl-cart-link { color:var(--dl-ink); position:relative; display:inline-flex; }
.dl-cart-count { position:absolute; top:-9px; right:-13px; width:19px; height:19px; border-radius:50%; display:grid; place-items:center; background:var(--dl-copper-dark); color:#fff; font-size:11px; }
.dl-mobile-nav { display:none; }
/* Art editorial homepage */
body.home .site-content > .col-full { width:100%; max-width:none; margin:0; padding:0; }
body.home .storefront-breadcrumb { display:none; }
.dl-home p,.dl-home h1,.dl-home h2,.dl-home h3 { margin-top:0; }
.dl-hero { background:var(--dl-cream); }
.dl-hero-layout { min-height:clamp(610px,69svh,810px); display:grid; grid-template-columns: minmax(0,1fr) minmax(0,.88fr); gap:clamp(38px,5.5vw,115px); align-items:center; padding-top:66px; padding-bottom:72px; }
.dl-hero-copy { max-width:780px; }
.dl-eyebrow,.dl-kicker { color:var(--dl-copper-dark); text-transform:uppercase; letter-spacing:.22em; font-size:11px; font-weight:750; }
.dl-eyebrow { display:inline-flex; gap:12px; align-items:center; }
.dl-spark { font-size:21px; font-weight:400; }
.dl-hero h1 { font-size:clamp(51px,5.5vw,104px); color:var(--dl-ink); font-weight:400; letter-spacing:-.065em; line-height:1.06; margin:28px 0 27px; }
.dl-hero h1 em,.dl-studio-copy h2 em { font-weight:400; color:var(--dl-copper-dark); }
.dl-hero-description { max-width:530px; color:var(--dl-muted); font-size:clamp(16px,1.2vw,19px); line-height:1.85; margin-bottom:33px; }
.dl-hero-buttons { display:flex; align-items:center; flex-wrap:wrap; gap:28px; }
.dl-btn { display:inline-flex; justify-content:center; align-items:center; gap:25px; padding:14px 25px; min-height:52px; font-size:12px; font-weight:750; line-height:1.2; text-transform:uppercase; letter-spacing:.12em; text-decoration:none !important; border:1px solid transparent; transition:background-color .18s,color .18s; }
.dl-btn-primary { background:var(--dl-ink); color:#fff; }
.dl-btn-primary:hover { background:var(--dl-copper-dark); color:#fff; }
.dl-text-link { display:inline-flex; align-items:center; gap:17px; color:var(--dl-ink); text-decoration:none !important; font-size:12px; letter-spacing:.07em; font-weight:750; text-transform:uppercase; border-bottom:1px solid var(--dl-stone); padding-bottom:6px; }
.dl-text-link:hover { color:var(--dl-copper-dark); border-color:var(--dl-copper-dark); }
.dl-hero-caption { margin:58px 0 0; font-size:10px; letter-spacing:.18em; font-weight:700; color:#898086; }
.dl-hero-art { width:100%; max-width:700px; position:relative; margin-inline:auto; }
.dl-art-mat { width:100%; aspect-ratio: 4 / 4.6; padding:clamp(12px,2vw,23px); background:#fdfcf9; box-shadow:0 23px 56px rgba(37,30,30,.12); border:1px solid #ebe3d7; }
.dl-art-image,.dl-abstract-art { width:100%; height:100%; object-fit:cover; display:block; }
.dl-abstract-art { position:relative; overflow:hidden; background:linear-gradient(149deg,#4B4551 0%,#302C39 46%,#6A535A 100%); isolation:isolate; }
.dl-abstract-art::before { content:""; position:absolute; inset:9% 10% 13%; background:radial-gradient(ellipse at 49% 46%,#f8d4b3a6 0%,#d3a48d78 23%,transparent 55%); filter:blur(15px); }
.dl-art-sun { position:absolute; width:45%; aspect-ratio:1; border-radius:50%; top:16%; left:28%; background:radial-gradient(circle at 40% 36%,#fff1d1 0%,#eac4a7 30%,#C88878 71%,#A5686B 100%); box-shadow:0 0 83px #DDA58B90; }
.dl-art-arch { position:absolute; left:12%; right:12%; bottom:-13%; height:64%; border-radius:48% 48% 0 0; border:clamp(24px,4vw,70px) solid #2B2935; border-bottom:0; box-shadow:inset 0 0 40px #B66E5A30; }
.dl-art-ground { position:absolute; left:-10%; right:-10%; bottom:-15%; height:36%; background:linear-gradient(165deg,#9C6D6D,#4D3948 52%,#24222E); transform:rotate(-9deg); }
.dl-art-index { display:block; text-align:right; margin-top:15px; font-size:10px; font-weight:750; letter-spacing:.18em; color:var(--dl-muted); }
.dl-gallery-strip { background:var(--dl-ink); color:#F7F0E5; }
.dl-gallery-strip .dl-shell { display:flex; justify-content:space-between; flex-wrap:wrap; align-items:center; gap:15px; padding-top:19px; padding-bottom:19px; }
.dl-gallery-strip span { font-size:10px; letter-spacing:.17em; font-weight:750; }
.dl-gallery-strip span:nth-child(even) { color:var(--dl-copper); font-size:17px; }
.dl-section { padding:clamp(73px,7vw,122px) 0; }
.dl-section-heading { display:flex; align-items:end; justify-content:space-between; gap:25px; margin-bottom:36px; }
.dl-section-heading h2 { font-size:clamp(35px,3.9vw,61px); letter-spacing:-.055em; margin:13px 0 0; }
.dl-collection-empty { min-height:225px; display:flex; align-items:center; gap:35px; background:var(--dl-cream); border:1px solid var(--dl-line); padding:30px clamp(30px,4vw,60px); }
.dl-empty-mark { color:var(--dl-copper-dark); font-size:75px; font-weight:400; }
.dl-collection-empty h3 { font-size:clamp(27px,2vw,34px); margin-bottom:10px; }
.dl-collection-empty p { margin-bottom:0; color:var(--dl-muted); }
.dl-studio { background:#EEE9E1; }
.dl-studio-layout { display:grid; grid-template-columns:.92fr 1fr; gap:clamp(45px,8vw,145px); align-items:center; padding-top:clamp(74px,8vw,130px); padding-bottom:clamp(74px,8vw,130px); }
.dl-studio-art { position:relative; width:100%; max-width:650px; aspect-ratio: 1.14; background:radial-gradient(ellipse at 50% 25%,#F1D7BF 0%,#C8A99D 48%,#846C70 100%); overflow:hidden; box-shadow:0 15px 45px #21171D20; }
.dl-studio-halo { position:absolute; width:56%; aspect-ratio:1; top:7%; left:21%; background:#F9EDD8; border-radius:50%; box-shadow:0 0 60px #FFF0D5; }
.dl-studio-column { position:absolute; bottom:-3%; left:23%; width:54%; height:71%; background:linear-gradient(90deg,#8E7778,#3F3B48 35%,#282833 66%,#736069); border-radius:48% 48% 0 0; }
.dl-studio-reflection { position:absolute; bottom:0; left:0; width:100%; height:11%; background:linear-gradient(90deg,#BEA5A0,#8C777D,#B8A19B); }
.dl-studio-copy h2 { font-size:clamp(42px,4vw,72px); line-height:1.1; margin:22px 0 27px; }
.dl-studio-copy > p { max-width:590px; color:#675F63; line-height:1.85; margin-bottom:35px; font-size:17px; }
.dl-studio-rule { display:flex; align-items:center; gap:23px; padding:16px 0; border-top:1px solid #CFC4B8; font-size:14px; font-weight:600; }
.dl-studio-rule span { color:var(--dl-copper-dark); font-size:11px; letter-spacing:.1em; }
.dl-final-cta { background:var(--dl-ink); color:#fff; text-align:center; padding:88px 0 100px; }
.dl-final-cta h2 { color:var(--dl-paper); font-size:clamp(42px,5vw,76px); margin:15px 0 30px; }
.dl-final-cta .dl-kicker { color:#E1AC8D; }
.dl-btn-light { background:#F8F1E9; color:var(--dl-ink); }
.dl-btn-light:hover { background:#E7C0AA; color:var(--dl-ink); }
/* Shop cards: let the art take centre stage. */
.woocommerce-products-header__title, .entry-title { color:var(--dl-ink); }
.woocommerce ul.products li.product,ul.products li.product { background:transparent; border:0; padding:0 0 24px; text-align:left; }
.woocommerce ul.products li.product img,ul.products li.product img { border-radius:0; margin-bottom:15px; background:var(--dl-cream); }
.woocommerce ul.products li.product h2,ul.products li.product h2,ul.products li.product .woocommerce-loop-product__title { color:var(--dl-ink); font-family:Georgia,"Times New Roman",serif; font-size:21px; font-weight:400; }
.woocommerce .price,.woocommerce ul.products li.product .price,ul.products li.product .price { color:var(--dl-copper-dark); font-size:15px; font-weight:650; }
button,input[type="button"],input[type="reset"],input[type="submit"],.button,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.wp-block-button__link { border-radius:2px; }
.button,button.button,input[type="submit"],.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.wp-block-button__link { background:var(--dl-ink); color:#fff; border-color:var(--dl-ink); font-weight:650; }
.button:hover,button.button:hover,input[type="submit"]:hover,.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover { background:var(--dl-copper-dark); border-color:var(--dl-copper-dark); color:#fff; }
input[type="text"],input[type="email"],input[type="password"],input[type="number"],input[type="tel"],textarea,select,.woocommerce .input-text { background:#fff; border:1px solid var(--dl-line); box-shadow:none; border-radius:2px; color:var(--dl-ink); }
.woocommerce-info,.woocommerce-message { background:var(--dl-cream); color:var(--dl-ink); border-top-color:var(--dl-copper-dark); }
.woocommerce-error { background:#FFF1ED; color:#8B3724; border-top-color:#B65542; }
/* Footer */
.dl-footer.site-footer { padding:55px 0 23px; background:var(--dl-ink); color:#EAE3DE; }
.dl-footer-top { display:flex; align-items:start; justify-content:space-between; gap:24px; padding-bottom:47px; }
body .dl-footer.site-footer a.dl-footer-brand { color:#FFFEFA; font-size:37px; text-decoration:none; }
body .dl-footer.site-footer a.dl-footer-brand span { color:#DB9C7D; }
.dl-footer-top p { color:#C4B8B7; margin:19px 0 0; font-size:13px; }
.dl-footer-links { display:flex; align-items:center; flex-wrap:wrap; gap:22px; padding-top:14px; }
body .dl-footer.site-footer .dl-footer-links a { color:#E8E1DC; font-size:12px; text-decoration:none; }
body .dl-footer.site-footer .dl-footer-links a:hover { color:#fff; text-decoration:underline; }
.dl-footer-bottom { padding-top:23px; border-top:1px solid #514A50; display:flex; justify-content:space-between; gap:15px; color:#B9ACAA; font-size:12px; }
/* Floating Back to Top — same behaviour as original template. */
.dl-back-to-top { position:fixed; right:clamp(18px,2vw,32px); bottom:clamp(20px,2vw,32px); z-index:1000; display:grid; place-items:center; width:47px; height:47px; padding:0; background:var(--dl-ink); border:1px solid #FAF1EA55; border-radius:50%; color:#fff; box-shadow:0 7px 22px #19121D34; cursor:pointer; opacity:0; visibility:hidden; pointer-events:none; transform:translateY(12px); transition:opacity .2s,visibility .2s,transform .2s,background-color .2s; }
.dl-back-to-top.is-visible { opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0); }
.dl-back-to-top:hover { background:var(--dl-copper-dark); color:#fff; }
.dl-back-to-top svg { display:block; }
@media (max-width: 1000px) { .dl-menu { gap:16px; } .dl-header-row { gap:17px; } .dl-studio-layout { gap:35px; } }
@media (max-width: 767px) {
    .dl-shell { width:calc(100% - 36px); }
    body:not(.home) .site-content > .col-full { width:calc(100% - 36px); }
    .dl-header-row { min-height:73px; }
    .dl-brand-type { font-size:27px; }
    .dl-brand-symbol { width:27px; height:27px; }
    .dl-brand-symbol svg { width:27px; height:27px; }
    .dl-desktop-nav,.dl-header-actions { display:none; }
    .dl-mobile-nav { display:block; margin-left:auto; position:relative; }
    .dl-mobile-nav summary { list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:center; height:43px; width:46px; border:1px solid var(--dl-line); background:transparent; color:var(--dl-ink); font-size:22px; }
    .dl-mobile-nav summary::-webkit-details-marker { display:none; }
    .dl-mobile-nav nav { position:absolute; z-index:50; top:51px; right:0; width:min(84vw,280px); background:#fff; border:1px solid var(--dl-line); box-shadow:0 14px 35px #231a2430; padding:13px 19px; }
    .dl-mobile-nav .dl-menu { display:block; }
    .dl-mobile-nav .dl-menu a { padding:11px 0; }
    .dl-mobile-nav .dl-menu .sub-menu { display:block; position:static; border:0; box-shadow:none; padding:0 0 0 13px; }
    .dl-mobile-link { display:block; text-decoration:none; color:var(--dl-ink); padding:12px 0; border-top:1px solid var(--dl-line); font-size:13px; font-weight:700; }
    .dl-hero-layout { grid-template-columns:1fr; padding-top:62px; padding-bottom:55px; gap:38px; }
    .dl-hero h1 { font-size:clamp(51px,9vw,75px); }
    .dl-hero-caption { margin-top:30px; }
    .dl-hero-art { max-width:540px; }
    .dl-gallery-strip .dl-shell { justify-content:center; gap:13px; }
    .dl-gallery-strip span { font-size:9px; }
    .dl-gallery-strip span:nth-child(n+4) { display:none; }
    .dl-section { padding:70px 0; }
    .dl-section-heading { align-items:start; flex-direction:column; }
    .dl-studio-layout { grid-template-columns:1fr; }
    .dl-studio-copy h2 { font-size:clamp(45px,9vw,65px); }
    .dl-footer-top,.dl-footer-bottom { flex-direction:column; }
    .dl-footer-links { padding-top:10px; }
    .dl-back-to-top { width:44px; height:44px; }
}
@media (max-width: 440px) { .dl-hero-buttons { align-items:flex-start; flex-direction:column; gap:17px; } .dl-hero h1 { font-size:clamp(45px,12vw,58px); } .dl-collection-empty { flex-direction:column; align-items:start; gap:5px; } .dl-empty-mark { font-size:45px; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } .dl-btn,.dl-back-to-top { transition:none; } }

/* --- Preserved customer account and WooCommerce login support --- */
body.woocommerce-account { background: var(--dl-paper); }
body.woocommerce-account .site-content { padding-top: 45px; }
body.woocommerce-account .site-main > .entry-header,
body.woocommerce-account .site-main > article > .entry-header { display: none; }
body.woocommerce-account .site-main .entry-content { margin-top: 0; }
body.woocommerce-account .site-main .entry-content > .woocommerce { max-width: 1450px; margin-inline: auto; }
body.woocommerce-account .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
body.woocommerce-account .woocommerce > .dl-account-intro { grid-column: 1 / -1; }
body.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) {
    display: grid;
    grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
    column-gap: clamp(24px, 3.2vw, 54px);
    row-gap: 28px;
    align-items: start;
}
body.woocommerce-account .woocommerce > .woocommerce-MyAccount-navigation {
    float: none;
    width: 100%;
    margin: 0;
    grid-column: 1;
}
body.woocommerce-account .woocommerce > .woocommerce-MyAccount-content {
    float: none;
    width: 100%;
    min-width: 0;
    margin: 0;
    grid-column: 2;
}
body.woocommerce-account .dl-account-eyebrow {
    display: block;
    margin-bottom: 13px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .16em;
    color: var(--dl-green-mid);
}
body.woocommerce-account .dl-account-intro {
    background: linear-gradient(112deg, #F7F3EC 0%, #EFE7DC 75%, #E6D7CA 100%);
    border: 1px solid #E3D9CC;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    min-height: 190px;
    padding: clamp(24px, 3vw, 43px);
}
body.woocommerce-account .dl-account-intro h1 { font-size: clamp(31px, 3.5vw, 44px); letter-spacing: -.04em; margin: 0 0 13px; color: var(--dl-deep); }
body.woocommerce-account .dl-account-intro p { font-size: 15px; line-height: 1.6; margin: 0; color: #6E6668; }
body.woocommerce-account .dl-account-intro-icon { flex-shrink: 0; width: 90px; height: 90px; border-radius: 20px; color: #965B42; background: #F1E5DB; display: grid; place-items: center; }
body.woocommerce-account .dl-account-intro-icon svg { width: 53px; height: 53px; }

/* Native WooCommerce account navigation — design only, endpoints unchanged.
   v1.5: pale sage selected state and consistent clickable rows. */
body.woocommerce-account .woocommerce-MyAccount-navigation ul {
    background: #FFFFFF;
    border: 1px solid #E8DED4;
    border-radius: 13px;
    overflow: hidden;
    padding: 10px;
    margin: 0;
    list-style: none;
    box-shadow: 0 8px 28px rgba(49, 31, 39, .035);
}
body.woocommerce-account .woocommerce-MyAccount-navigation ul li {
    float: none;
    width: 100%;
    list-style: none;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}
body.woocommerce-account .woocommerce-MyAccount-navigation ul li + li {
    margin-top: 3px !important;
}
body.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
    display: flex;
    align-items: center;
    box-sizing: border-box;
    width: 100%;
    min-height: 45px;
    margin: 0 !important;
    padding: 11px 16px !important;
    background: transparent;
    color: #42383C;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.45;
    text-align: left;
    text-indent: 0;
    border: 0;
    border-radius: 8px;
    text-decoration: none;
    transition: background-color .17s, color .17s;
}
body.woocommerce-account .woocommerce-MyAccount-navigation ul li a::before,
body.woocommerce-account .woocommerce-MyAccount-navigation ul li a::after { display: none; }
body.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
    background: #FAF0E8;
    color: var(--dl-deep);
}
body.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
    background: #F3E5DA;
    color: #704737;
    font-weight: 700;
    box-shadow: inset 3px 0 0 #B98062;
}
body.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a:hover {
    background: #E8D4C8;
    color: #242228;
}
body.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout {
    margin-top: 10px !important;
    padding-top: 10px !important;
    border-top: 1px solid #E5DDD2 !important;
}
body.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout a {
    color: #8B594B !important;
}
body.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout.is-active a {
    color: #704737 !important;
}

/* Dashboard uses native WooCommerce endpoints, without invented counts. */
body.woocommerce-account .dl-account-dashboard { min-width: 0; }
body.woocommerce-account .dl-account-welcome { margin-bottom: 34px; }
body.woocommerce-account .dl-account-welcome h2 { margin: 0 0 11px; font-size: clamp(26px, 2.8vw, 35px); color: var(--dl-deep); }
body.woocommerce-account .dl-account-welcome p { margin: 0; font-size: 15px; color: var(--dl-muted); }
body.woocommerce-account .dl-account-heading-row { margin-bottom: 19px; }
body.woocommerce-account .dl-account-heading-row .dl-account-eyebrow { margin-bottom: 6px; }
body.woocommerce-account .dl-account-heading-row h3 { margin: 0; font-size: 22px; }
body.woocommerce-account .dl-account-actions { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; }
body.woocommerce-account .dl-account-action {
    min-height: 195px;
    border: 1px solid #E5DDD2;
    border-radius: 12px;
    padding: 21px;
    background: #FFFFFF;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-decoration: none !important;
    transition: transform .17s, box-shadow .17s, border-color .17s;
}
body.woocommerce-account .dl-account-action:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(49,31,39,.10); border-color: #C49D89; }
body.woocommerce-account .dl-account-action-icon { display: grid; place-items: center; width: 47px; height: 47px; background: #F6E9DF; color: var(--dl-green); border-radius: 10px; margin-bottom: 17px; }
body.woocommerce-account .dl-account-action-icon svg { width: 25px; height: 25px; }
body.woocommerce-account .dl-account-action strong { color: var(--dl-deep); font-size: 17px; font-weight: 750; margin-bottom: 5px; line-height: 1.3; }
body.woocommerce-account .dl-account-action > span:not(.dl-account-action-icon):not(.dl-account-action-arrow) { color: var(--dl-muted); font-size: 13px; line-height: 1.6; padding-right: 15px; }
body.woocommerce-account .dl-account-action-arrow { position: absolute; right: 20px; top: 23px; color: var(--dl-green-mid); font-weight: 700; font-size: 22px; }

/* Orders, downloads, addresses, personal details — native WooCommerce output. */
body.woocommerce-account .woocommerce-MyAccount-content > p { font-size: 15px; }
body.woocommerce-account .woocommerce-MyAccount-content h2,
body.woocommerce-account .woocommerce-MyAccount-content h3 { color: var(--dl-deep); }
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table,
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-table { background: #fff; border: 1px solid var(--dl-line); border-radius: 10px; overflow: hidden; }
body.woocommerce-account .woocommerce-MyAccount-content table th { background: #F5EDE5; color: var(--dl-deep); }
body.woocommerce-account .woocommerce-MyAccount-content fieldset { border: 1px solid var(--dl-line); border-radius: 10px; padding: 18px; margin: 26px 0; }
body.woocommerce-account .woocommerce-MyAccount-content legend { padding: 0 8px; color: var(--dl-deep); font-weight: 700; }
body.woocommerce-account .woocommerce-MyAccount-content input.input-text { min-height: 43px; padding: 9px 12px; }
body.woocommerce-account .woocommerce-MyAccount-content .button { margin-top: 5px; }

/* Native WooCommerce customer login/registration forms, not wp-login.php. */
body.woocommerce-account:not(.logged-in) .site-content { background: #F7F3EC; }
body.woocommerce-account .dl-account-login-intro { text-align: center; margin: 10px auto 33px; max-width: 550px; }
body.woocommerce-account .dl-account-login-intro h2 { margin: 0 0 12px; color: var(--dl-deep); font-size: clamp(29px, 4vw, 39px); }
body.woocommerce-account .dl-account-login-intro p { margin: 0; color: var(--dl-muted); font-size: 15px; }
body.woocommerce-account:not(.logged-in) .woocommerce .u-columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; align-items: start; max-width: 1000px; margin-inline: auto; }
body.woocommerce-account:not(.logged-in) .woocommerce .u-columns > .u-column1,
body.woocommerce-account:not(.logged-in) .woocommerce .u-columns > .u-column2 { float: none; width: 100%; margin: 0; }
body.woocommerce-account:not(.logged-in) .woocommerce .u-columns h2 { font-size: 24px; color: var(--dl-deep); margin-bottom: 15px; }
body.woocommerce-account:not(.logged-in) form.woocommerce-form-login,
body.woocommerce-account:not(.logged-in) form.woocommerce-form-register,
body.woocommerce-account:not(.logged-in) .woocommerce-form-login { background: #FFFFFF; padding: clamp(22px, 3vw, 39px); border: 1px solid #E5DDD2; border-radius: 14px; box-shadow: 0 15px 36px rgba(39,64,44,.05); }
body.woocommerce-account:not(.logged-in) .woocommerce form .form-row { margin-bottom: 18px; }
body.woocommerce-account:not(.logged-in) .woocommerce input.input-text { min-height: 47px; padding: 11px 13px; }
body.woocommerce-account:not(.logged-in) .woocommerce .woocommerce-form-login__rememberme { display: block; margin-bottom: 13px; }
body.woocommerce-account:not(.logged-in) .woocommerce .woocommerce-LostPassword { margin: 20px 0 0; }
body.woocommerce-account:not(.logged-in) .woocommerce .button { min-height: 44px; padding: 11px 24px; }
body.woocommerce-account:not(.logged-in) .woocommerce > form.woocommerce-form-login { max-width: 470px; margin-inline: auto; }

@media (max-width: 900px) {
    body.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) { grid-template-columns: minmax(190px, 230px) minmax(0, 1fr); column-gap: 22px; }
}
@media (max-width: 720px) {
    body.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    body.woocommerce-account .woocommerce > .dl-account-intro { grid-column: 1; }
    body.woocommerce-account .woocommerce > .woocommerce-MyAccount-navigation { grid-column: 1; }
    body.woocommerce-account .woocommerce > .woocommerce-MyAccount-content { grid-column: 1; }
    body.woocommerce-account .dl-account-intro { min-height: auto; padding: 23px; }
    body.woocommerce-account .dl-account-intro-icon { width: 64px; height: 64px; border-radius: 13px; }
    body.woocommerce-account .dl-account-intro-icon svg { width: 37px; height: 37px; }
    body.woocommerce-account .dl-account-actions { gap: 12px; }
    body.woocommerce-account .dl-account-action { padding: 17px; min-height: 190px; }
    body.woocommerce-account:not(.logged-in) .woocommerce .u-columns { grid-template-columns: 1fr; }
}
@media (max-width: 500px) {
    body.woocommerce-account .dl-account-actions { grid-template-columns: 1fr; }
    body.woocommerce-account .dl-account-action { min-height: 155px; }
    body.woocommerce-account .dl-account-intro-icon { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    body.woocommerce-account .dl-account-action, body.woocommerce-account .woocommerce-MyAccount-navigation ul li a { transition: none; }
}

/* Tested Storefront sticky footer and WooCommerce login spacing. */

/* Flex layout keeps a short page's footer at the viewport bottom.
   On long pages the footer remains in normal document flow. */
html, body { min-height: 100%; }
body { min-height: 100vh; min-height: 100dvh; }
body #page {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    min-height: 100dvh;
}
body #page > .site-content { flex: 1 0 auto; }
body #page > .dl-footer.site-footer { flex: 0 0 auto; margin-top: auto; }

/* Storefront outputs the breadcrumb BEFORE #content. On the login page,
   it creates a white strip above the custom beige sign-in section. */
body.woocommerce-account:not(.logged-in) .storefront-breadcrumb { display: none; }
body.woocommerce-account:not(.logged-in) #content.site-content {
    background: var(--dl-cream);
    min-height: 0;
    padding-top: clamp(24px, 3vw, 38px);
    padding-bottom: clamp(30px, 3.2vw, 48px);
}
body.woocommerce-account:not(.logged-in) .dl-account-login-intro {
    margin-top: 0;
    margin-bottom: 24px;
}

/* WooCommerce emits a generic 'Login' heading immediately before the form
   when customer registration is disabled. Our 'Welcome back' heading replaces it. */
body.woocommerce-account:not(.logged-in) .woocommerce > .dl-account-login-intro ~ h2 { display: none; }

/* When WooCommerce registration is enabled, the login form is inside a
   column rather than directly beneath its heading; keep both forms aligned. */
body.woocommerce-account:not(.logged-in) .woocommerce .u-columns:not(:has(> .u-column2)) {
    grid-template-columns: minmax(0, 1fr);
    max-width: 470px;
}
body.woocommerce-account:not(.logged-in) .woocommerce .u-columns:not(:has(> .u-column2)) > .u-column1 h2 {
    display: none;
}

/* Storefront's global footer link palette overrides the child theme's
   earlier generic anchor styling. Explicit colour ensures clear contrast. */
body .dl-footer.site-footer .dl-footer-links a,
body .dl-footer.site-footer .dl-footer-bottom a {
    color: #E9E5D9 !important;
    text-decoration: none;
}
body .dl-footer.site-footer .dl-footer-links a:hover,
body .dl-footer.site-footer .dl-footer-links a:focus-visible,
body .dl-footer.site-footer .dl-footer-bottom a:hover,
body .dl-footer.site-footer .dl-footer-bottom a:focus-visible {
    color: #FFFFFF !important;
    text-decoration: underline;
}

@media (max-width: 767px) {
    body.woocommerce-account:not(.logged-in) #content.site-content { padding-top: 24px; padding-bottom: 32px; }
}


/* Align the logged-in WooCommerce breadcrumb with the account panel. */
body.woocommerce-account.logged-in .storefront-breadcrumb {
    margin: 0;
    padding: 12px 0 0;
}
/* Match the 1450px maximum of the customer account panel itself.
   This avoids Storefront's narrower breadcrumb container. */
body.woocommerce-account.logged-in .storefront-breadcrumb .col-full {
    box-sizing: border-box;
    width: calc(100% - clamp(32px, 5vw, 160px));
    max-width: 1450px;
    padding: 0;
    margin-left: auto;
    margin-right: auto;
}
/* The generic 29px breadcrumb bottom margin was producing the large gap. */
body.woocommerce-account.logged-in .storefront-breadcrumb .woocommerce-breadcrumb {
    margin: 0;
    padding: 0;
}
body.woocommerce-account.logged-in #content.site-content {
    padding-top: 12px;
}
@media (max-width: 767px) {
    body.woocommerce-account.logged-in .storefront-breadcrumb { padding-top: 10px; }
    body.woocommerce-account.logged-in #content.site-content { padding-top: 10px; }
    body.woocommerce-account.logged-in .storefront-breadcrumb .col-full {
        width: calc(100% - 36px);
    }
}

/* Duroluceo accents / editorial tone in the preserved account layout. */
body.woocommerce-account .dl-account-intro { background:linear-gradient(115deg,#F7F3EC,#EFE1D5); border-radius:3px; }
body.woocommerce-account .dl-account-intro h1,
body.woocommerce-account .dl-account-welcome h2,
body.woocommerce-account .dl-account-heading-row h3,
body.woocommerce-account .dl-account-login-intro h2 { font-family:Georgia,"Times New Roman",serif; font-weight:400; }
body.woocommerce-account .woocommerce-MyAccount-navigation ul,
body.woocommerce-account .dl-account-action,
body.woocommerce-account .woocommerce-form-login,
body.woocommerce-account .woocommerce-form-register { border-radius:3px; }
body.woocommerce-account .dl-download-note { margin-top:24px; display:flex; align-items:center; gap:18px; padding:17px 22px; background:#F8F2EB; border:1px solid var(--dl-line); }
body.woocommerce-account .dl-download-note > span { font-size:29px; color:var(--dl-copper-dark); }
body.woocommerce-account .dl-download-note p { margin:0; color:var(--dl-muted); font-size:13px; }
body.woocommerce-account:not(.logged-in) #content.site-content { background:var(--dl-cream); }


/* Duroluceo 1.0.1 — fix squeezed WooCommerce Login / Register forms.
 * Storefront and WooCommerce can apply their own widths to both the account
 * columns and their forms. Give our layout explicit, full-width cards.
 */
body.woocommerce-account:not(.logged-in) #customer_login.u-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: clamp(20px, 3vw, 36px);
    width: 100%;
    max-width: 1040px;
    margin: 0 auto;
    float: none;
}
body.woocommerce-account:not(.logged-in) #customer_login > .u-column1,
body.woocommerce-account:not(.logged-in) #customer_login > .u-column2 {
    display: block;
    float: none;
    width: 100%;
    max-width: none;
    min-width: 0;
    margin: 0;
    padding: 0;
}
body.woocommerce-account:not(.logged-in) #customer_login form.woocommerce-form-login,
body.woocommerce-account:not(.logged-in) #customer_login form.woocommerce-form-register {
    display: block;
    box-sizing: border-box;
    float: none;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: clamp(22px, 3vw, 38px);
}
body.woocommerce-account:not(.logged-in) #customer_login .form-row {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}
body.woocommerce-account:not(.logged-in) #customer_login input.input-text {
    display: block;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}
body.woocommerce-account:not(.logged-in) #customer_login .woocommerce-password-strength {
    max-width: 100%;
}
@media (max-width: 767px) {
    body.woocommerce-account:not(.logged-in) #customer_login.u-columns {
        grid-template-columns: minmax(0, 1fr);
        max-width: 560px;
    }
}


/* Duroluceo 1.0.2 — quiet gallery buttons, without changing cart or download logic.
 * Scoped to the WooCommerce product grid and My Account tables so that checkout,
 * login and plugin-owned controls keep their existing functionality and styles.
 */

/* Gallery/shop: the primary action should be understated, not a solid black block. */
.woocommerce ul.products li.product a.button,
.site-main ul.products li.product a.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 37px;
    max-width: 100%;
    padding: 8px 14px;
    margin: 7px 0 0;
    border: 1px solid #CFB8A8;
    border-radius: 4px;
    background: #F6EDE5;
    color: #704C3D;
    box-shadow: none;
    text-decoration: none;
    text-transform: none;
    letter-spacing: .01em;
    font-size: 12px;
    font-weight: 650;
    line-height: 1.45;
    vertical-align: middle;
    white-space: normal;
    transition: background-color .18s, border-color .18s, color .18s;
}
.woocommerce ul.products li.product a.button:hover,
.woocommerce ul.products li.product a.button:focus-visible,
.site-main ul.products li.product a.button:hover,
.site-main ul.products li.product a.button:focus-visible {
    background: #E9D8CB;
    border-color: #B98062;
    color: #51382F;
    box-shadow: none;
}

/* WooCommerce inserts the View cart link after AJAX Add to cart. Use an unobtrusive
 * text-link treatment rather than making two dark buttons touch each other.
 */
.woocommerce ul.products li.product a.added_to_cart,
.site-main ul.products li.product a.added_to_cart {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    min-height: 37px;
    margin: 7px 0 0 13px;
    padding: 7px 0;
    border: 0;
    border-bottom: 1px solid #C4AA99;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: #704C3D;
    text-decoration: none;
    text-transform: none;
    letter-spacing: normal;
    font-size: 12px;
    font-weight: 650;
    line-height: 1.45;
    vertical-align: middle;
    white-space: normal;
    transition: color .18s, border-color .18s;
}
.woocommerce ul.products li.product a.added_to_cart:hover,
.woocommerce ul.products li.product a.added_to_cart:focus-visible,
.site-main ul.products li.product a.added_to_cart:hover,
.site-main ul.products li.product a.added_to_cart:focus-visible {
    color: var(--dl-ink);
    border-bottom-color: var(--dl-ink);
    background: transparent;
    box-shadow: none;
}

/* Account > Orders: compact, soft outlined View buttons. */
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions a.button,
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions a.woocommerce-button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: auto;
    min-width: 58px;
    min-height: 34px;
    margin: 3px 4px 3px 0;
    padding: 7px 13px;
    border: 1px solid #D7BFB0;
    border-radius: 4px;
    background: #F7EFE8;
    box-shadow: none;
    color: #704C3D;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.35;
    text-transform: none;
    letter-spacing: normal;
    text-decoration: none;
}
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions a.button:hover,
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions a.button:focus-visible,
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions a.woocommerce-button:hover,
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions a.woocommerce-button:focus-visible {
    background: #E9D8CB;
    border-color: #B98062;
    color: #51382F;
}

/* Account > Downloads: long artwork titles should read like links, not black banners. */
body.woocommerce-account .woocommerce-MyAccount-content a.woocommerce-MyAccount-downloads-file {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    max-width: 100%;
    min-height: 38px;
    margin: 3px 0;
    padding: 8px 14px;
    border: 1px solid #D7BFB0;
    border-radius: 4px;
    background: #F7EFE8;
    box-shadow: none;
    color: #704C3D;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
    text-align: center;
    white-space: normal;
    overflow-wrap: anywhere;
    text-transform: none;
    letter-spacing: normal;
    text-decoration: none;
}
body.woocommerce-account .woocommerce-MyAccount-content a.woocommerce-MyAccount-downloads-file:hover,
body.woocommerce-account .woocommerce-MyAccount-content a.woocommerce-MyAccount-downloads-file:focus-visible {
    background: #E9D8CB;
    border-color: #B98062;
    color: #51382F;
}

@media (max-width: 480px) {
    .woocommerce ul.products li.product a.added_to_cart,
    .site-main ul.products li.product a.added_to_cart { margin-left: 10px; }
}

/* Duroluceo 1.0.3 — single artwork pages and cart confirmation.
 * 1.0.2 covered catalog buttons only. These selectors cover product-detail
 * Add to cart, the View cart link in notices, and radio choices rendered by
 * an optional add-on. No checkout/order/download calculations are altered.
 */

/* Use the same quiet gallery button for the individual artwork purchase. */
body.single-product .woocommerce div.product form.cart button.single_add_to_cart_button,
body.single-product .woocommerce div.product form.cart button.single_add_to_cart_button.button,
body.single-product .woocommerce div.product form.cart button.single_add_to_cart_button.button.alt {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 19px;
    margin: 0;
    border: 1px solid #CCAB98;
    border-radius: 4px;
    background: #F3E8DF;
    color: #704C3D;
    box-shadow: none;
    font-size: 13px;
    font-weight: 650;
    line-height: 1.4;
    text-transform: none;
    letter-spacing: normal;
    transition: background-color .2s, color .2s, border-color .2s;
}
body.single-product .woocommerce div.product form.cart button.single_add_to_cart_button:hover,
body.single-product .woocommerce div.product form.cart button.single_add_to_cart_button:focus-visible {
    background: #E8D5C6;
    color: #51382F;
    border-color: #AE846C;
    box-shadow: none;
}
body.single-product .woocommerce div.product form.cart .quantity .qty {
    min-height: 42px;
    max-width: 76px;
    padding: 8px;
    background: #fff;
    border: 1px solid var(--dl-line);
    border-radius: 4px;
    box-shadow: none;
    color: var(--dl-ink);
}

/* Keep the WooCommerce success message gentle. The top-line cart link is
 * a different element from the added_to_cart link used in the shop grid. */
body.single-product .woocommerce-message {
    display: flow-root;
    padding: 15px 18px 15px 45px;
    margin-bottom: 28px;
    border: 1px solid #E9DED4;
    border-left: 3px solid var(--dl-copper);
    border-radius: 4px;
    background: #F9F5EF;
    box-shadow: none;
    color: var(--dl-ink);
    font-size: 13px;
    line-height: 1.55;
}
body.single-product .woocommerce-message::before { color: #965B42; }
body.single-product .woocommerce-message a.button.wc-forward,
body.single-product .woocommerce-message a.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    width: auto;
    margin: 0 0 0 18px;
    padding: 6px 11px;
    float: right;
    border: 1px solid #D7BFB0;
    border-radius: 4px;
    background: #F7EFE8;
    color: #704C3D;
    box-shadow: none;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.35;
    text-decoration: none;
    text-transform: none;
    letter-spacing: normal;
}
body.single-product .woocommerce-message a.button.wc-forward:hover,
body.single-product .woocommerce-message a.button.wc-forward:focus-visible,
body.single-product .woocommerce-message a.button:hover,
body.single-product .woocommerce-message a.button:focus-visible {
    background: #E9D8CB;
    border-color: var(--dl-copper);
    color: #51382F;
    box-shadow: none;
}

/* Third-party download-extension choices. Styling only: radio inputs,
 * names, values and submission remain owned by the sales plugin.
 * The form uses an inline pair of label/radio options; making each label a
 * separate row prevents them running into each other or out of the column.
 */
body.single-product .woocommerce div.product .summary,
body.single-product .woocommerce div.product .summary form.cart {
    min-width: 0;
    max-width: 100%;
}
body.single-product .summary form.cart fieldset:has(input[type="radio"]) {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0 0 18px;
    padding: 17px 16px 12px;
    border: 1px solid #E5DAD0;
    border-radius: 5px;
    background: #FAF6F1;
    white-space: normal;
}
body.single-product .summary form.cart fieldset:has(input[type="radio"]) legend {
    width: auto;
    max-width: 100%;
    padding: 0 7px;
    color: #704C3D;
    font-size: 13px;
    font-weight: 650;
    line-height: 1.5;
    white-space: normal;
}
body.single-product .summary form.cart :is(fieldset, div, section):has(> label:has(input[type="radio"])) {
    max-width: 100%;
    min-width: 0;
    white-space: normal;
}
body.single-product .summary form.cart label:has(input[type="radio"]) {
    display: flex !important;
    align-items: flex-start;
    gap: 10px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding: 9px 11px;
    margin: 0 0 8px !important;
    border: 1px solid #E9DED4;
    border-radius: 4px;
    background: #FFFCF9;
    color: var(--dl-ink);
    font-size: 13px;
    font-weight: 400;
    line-height: 1.5;
    text-align: left;
    white-space: normal !important;
    overflow-wrap: anywhere;
    cursor: pointer;
}
body.single-product .summary form.cart label:has(input[type="radio"]):hover {
    background: #F7EFE8;
    border-color: #D7BFB0;
}
body.single-product .summary form.cart label:has(input[type="radio"]) input[type="radio"] {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    margin: 2px 0 0 !important;
    accent-color: #965B42;
    vertical-align: middle;
    cursor: pointer;
}
/* Fallback breathing room if a plugin outputs a radio without wrapping label. */
body.single-product .summary form.cart input[type="radio"] {
    margin-right: 7px;
    accent-color: #965B42;
}
@media (max-width: 600px) {
    body.single-product .woocommerce-message {
        padding: 14px 16px 15px 35px;
    }
    body.single-product .woocommerce-message a.button.wc-forward,
    body.single-product .woocommerce-message a.button {
        float: none;
        margin: 10px 0 0;
    }
    body.single-product .summary form.cart fieldset:has(input[type="radio"]) {
        padding: 14px 12px 8px;
    }
}
