/*
Theme Name: LUMI Atelier
Description: LUMI 攝影作品與 WooCommerce 實體、數位商店。保留 WordPress 與 Elementor 原生編輯流程。
Version: 1.0.4
Requires at least: 6.6
Requires PHP: 8.1
Text Domain: lumi-atelier
License: GPL-2.0-or-later
*/
/* Keep native WooCommerce actions consistent with LUMI's primary controls. */
#main .button,#main #payment #place_order{background:var(--ink);color:#fffdf5;border:1px solid var(--ink);border-radius:0;font-weight:400}
#main .button:hover,#main #payment #place_order:hover{background:var(--sage);border-color:var(--sage);color:#fff}
:root{--paper:#f8f6ef;--warm:#efede3;--ink:#30342e;--muted:#72776c;--line:#dcded2;--sage:#8e9c83;--clay:#a97660;--serif:Georgia,'Noto Serif TC','Songti TC','PMingLiU',serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.85 system-ui,-apple-system,'Noto Sans TC',sans-serif}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.5;margin:0 0 20px}a{color:inherit;text-decoration:none}a:hover{color:var(--clay)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:5px}button:focus-visible,a:focus-visible{outline:2px solid var(--sage)}img{max-width:100%;height:auto;display:block}p{margin:0 0 20px}button,.button,input[type=submit]{cursor:pointer}input:not([type=checkbox]):not([type=radio]),select,textarea{max-width:100%;padding:12px;border:1px solid var(--line);background:#fffefa;border-radius:0;color:var(--ink)}.screen-reader-text,.skip-link:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.skip-link:focus{position:fixed;z-index:9999;background:white;padding:15px}.lumi-header{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:25px 5vw;border-bottom:1px solid var(--line);background:var(--paper);position:sticky;top:0;z-index:30}.admin-bar .lumi-header{top:32px}.lumi-brand{font:37px/1 var(--serif);letter-spacing:.14em}.lumi-brand small{display:block;font:7px/1.5 system-ui;letter-spacing:.23em;margin-top:9px}.lumi-main-nav ul{display:flex;gap:32px;list-style:none;margin:0;padding:0}.lumi-main-nav a{font-size:12px;display:block;padding:7px 0}.lumi-main-nav .current-menu-item>a{border-bottom:1px solid var(--ink)}.header-tools{display:flex;align-items:center;gap:22px;font-size:12px}.cart-link{display:inline-flex;align-items:center;gap:7px;min-height:44px}.cart-count{min-width:20px;border:1px solid var(--line);text-align:center;font-size:10px;border-radius:50%}.menu-toggle{display:none;border:0;background:none;padding:10px}.lumi-hero{position:relative;min-height:76svh;isolation:isolate;overflow:hidden;background:var(--warm)}.lumi-hero>picture{position:absolute;inset:-12% 0;z-index:-2;transform:translateY(var(--hero-offset,0px));will-change:transform}.lumi-hero img{width:100%;height:100%;object-fit:cover;object-position:61% center}.lumi-hero:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#25302566,transparent 65%)}.hero-wordmark{position:absolute;left:6vw;bottom:55px;color:#fffdf5;font:clamp(85px,16vw,220px)/1 var(--serif);letter-spacing:.14em;margin:0}.hero-caption{position:absolute;bottom:30px;right:5vw;color:#fffdf5;font-size:9px;letter-spacing:.2em}.lumi-container{max-width:1320px;padding:65px 5vw 90px;margin:auto;min-height:55vh}.lumi-section{padding:65px 6vw;max-width:1320px;margin:auto}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:30px}.eyebrow{font-size:9px;letter-spacing:.18em;color:var(--muted);margin-bottom:14px}.section-heading h1,.section-heading h2{font-size:clamp(28px,4vw,45px);margin:0}.text-link{display:inline-block;font-size:12px;border-bottom:1px solid var(--ink);padding:8px 0}.lumi-footer{padding:45px 5vw;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:40px;background:var(--warm)}.lumi-footer p,.lumi-footer a,.lumi-footer small{font-size:12px;color:var(--muted)}.footer-links{display:flex;gap:25px;flex-wrap:wrap;align-items:center}.lumi-news-row{display:grid;grid-template-columns:110px 1fr;gap:25px;padding:22px 0;border-top:1px solid var(--line)}.lumi-news-row time{font-size:11px;color:var(--muted)}.lumi-news-row summary{cursor:pointer;font-family:var(--serif);font-size:20px}.lumi-news-row details>div{padding-top:18px;font-size:14px;color:var(--muted)}.works-intro{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:40px}.works-intro h1{font-size:clamp(32px,4vw,52px);margin:0}.works-intro p{color:var(--muted);font-size:12px}.lumi-calendar{background:var(--warm);padding:28px;margin-bottom:65px}.calendar-toolbar{display:flex;justify-content:space-between;gap:20px;margin-bottom:20px}.calendar-toolbar h2{font-size:26px;margin:0}.calendar-nav{display:flex;gap:25px;align-items:center;font-size:12px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calendar-weekday{text-align:center;color:var(--muted);font-size:11px;padding-bottom:12px}.calendar-cell{min-height:95px;padding:9px;background:#fffdf677;font-size:13px}.calendar-cell.has-work{background:#fffefa}.calendar-cell img{width:100%;height:70px;object-fit:cover;margin-top:6px}.calendar-cell time{font-family:var(--serif)}.calendar-cell.today time{border-bottom:1px solid var(--clay);color:var(--clay)}.calendar-empty{visibility:hidden}.calendar-cell small{font-size:9px;color:var(--muted)}.works-filter{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:35px}.works-filter label{font-size:11px;min-width:120px}.works-filter input,.works-filter select{display:block;margin-top:5px;max-width:230px}.works-filter button{align-self:end}.work-row{display:grid;grid-template-columns:1fr 1.05fr;gap:5vw;padding:38px 0;border-top:1px solid var(--line);align-items:center}.work-row img{width:100%;height:310px;object-fit:cover}.work-row h2{font-size:32px;margin:13px 0}.work-row p{font-size:13px;color:var(--muted)}.work-tags{display:flex;gap:12px;font-size:11px;color:var(--muted);flex-wrap:wrap}.article-title{max-width:850px;margin:20px auto 35px;text-align:center}.article-title h1{font-size:clamp(32px,5vw,58px)}.article-cover{width:100%;max-height:780px;object-fit:cover;margin-bottom:45px}.entry-content,.comments-area,.related-collection,.work-sharing{max-width:850px;margin:0 auto 55px}.entry-content p{line-height:2.1}.entry-content h2{font-size:31px;margin-top:45px}.entry-content figure{margin:35px 0}.entry-content figcaption{font-size:12px;color:var(--muted);text-align:center}.entry-content blockquote{border-left:2px solid var(--sage);padding-left:25px;color:var(--muted)}.entry-content a{text-decoration:underline}.wp-block-image img{margin:auto}.work-sharing{display:flex;gap:24px;flex-wrap:wrap;border-block:1px solid var(--line);padding:20px 0;font-size:12px}.related-collection{max-width:none;border-top:1px solid var(--line);padding-top:45px}.related-collection h2{font-size:32px}.comment-list{list-style:none;padding:0}.comment-body{border-top:1px solid var(--line);padding:24px 0}.comment-author img{display:none}.comment-meta{font-size:12px}.comment-metadata{color:var(--muted)}.comment-content{font-size:14px;margin-top:12px}.comment-form label{display:block;font-size:12px}.comment-form input[type=text],.comment-form input[type=email],.comment-form input[type=url],.comment-form textarea{width:100%}.comment-form-cookies-consent label{display:inline}.lumi-button,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce #respond input#submit,.button,input[type=submit]{display:inline-block;background:var(--ink);color:#fffdf5;border:1px solid var(--ink);border-radius:0;padding:13px 23px;font-size:12px;font-weight:400;line-height:1.6}.woocommerce a.button:hover,.woocommerce button.button:hover,.button:hover,input[type=submit]:hover{background:var(--sage);border-color:var(--sage);color:white}.woocommerce .woocommerce-breadcrumb{font-size:11px;color:var(--muted);margin-bottom:30px}.woocommerce-products-header h1{font-size:45px;margin-bottom:12px}.shop-intro{max-width:650px;color:var(--muted);font-size:13px}.shop-categories{display:flex;gap:25px;font-size:12px;margin:25px 0 35px}.woocommerce .woocommerce-result-count{font-size:12px;color:var(--muted)}.woocommerce ul.products{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:45px 25px;margin-top:30px}.woocommerce ul.products:before,.woocommerce ul.products:after{display:none}.woocommerce ul.products li.product,.woocommerce-page ul.products li.product{float:none;width:auto!important;margin:0!important;display:flex;flex-direction:column}.woocommerce ul.products li.product a img{width:100%;aspect-ratio:4/5;object-fit:cover;margin-bottom:20px;background:var(--warm)}.woocommerce ul.products li.product .woocommerce-loop-product__title{font:24px/1.6 var(--serif);padding:0;margin-bottom:8px}.woocommerce ul.products li.product .price{font-size:13px;color:var(--ink)}.woocommerce ul.products li.product .button{align-self:start;margin-top:16px}.woocommerce span.onsale{background:var(--sage);border-radius:0;font-size:10px;font-weight:400;line-height:1.8;min-height:0;padding:5px 12px}.woocommerce div.product .product_title{font-size:40px}.woocommerce div.product p.price{color:var(--ink);font-size:24px;margin:20px 0}.woocommerce-product-details__short-description{font-size:14px;color:var(--muted);line-height:2}.woocommerce div.product .stock{color:#617452;font-size:12px}.woocommerce div.product .out-of-stock{color:var(--clay)}.woocommerce div.product div.images img{background:var(--warm)}.woocommerce div.product form.cart .button{padding:14px 25px}.woocommerce .quantity .qty{width:75px;padding:12px}.woocommerce div.product .woocommerce-tabs ul.tabs{padding:0}.woocommerce div.product .woocommerce-tabs ul.tabs li{border:0;background:none;padding:14px;margin:0}.woocommerce div.product .woocommerce-tabs ul.tabs li a{font-size:13px;font-weight:400}.woocommerce div.product .woocommerce-tabs ul.tabs li:before,.woocommerce div.product .woocommerce-tabs ul.tabs li:after{display:none}.woocommerce div.product .woocommerce-tabs .panel{font-size:14px;line-height:2}.woocommerce div.product .woocommerce-tabs .panel h2{font-size:26px}.product_meta{font-size:11px;color:var(--muted);border-top:1px solid var(--line);padding-top:22px}.woocommerce-info,.woocommerce-message,.woocommerce-error{background:var(--warm);font-size:13px;border-color:var(--sage)}.woocommerce table.shop_table{border-color:var(--line);border-radius:0;font-size:13px}.woocommerce table.shop_table td,.woocommerce table.shop_table th{padding:18px 12px}.woocommerce form.checkout h3,.woocommerce .cart_totals h2{font-size:27px}.woocommerce form .form-row label{font-size:12px}.woocommerce-checkout #payment{background:var(--warm);border-radius:0}.woocommerce .woocommerce-MyAccount-navigation ul{list-style:none;padding:0;border-top:1px solid var(--line)}.woocommerce-MyAccount-navigation a{display:block;padding:14px 0;border-bottom:1px solid var(--line);font-size:13px}.woocommerce-MyAccount-navigation .is-active a{color:var(--clay)}.woocommerce form.login,.woocommerce form.register{border-color:var(--line);border-radius:0}.woocommerce .col2-set .col-1,.woocommerce .col2-set .col-2{width:48%}.pagination{margin-top:35px;display:flex;gap:20px;flex-wrap:wrap}.lumi-empty{padding:60px 20px;text-align:center;color:var(--muted)}
@media(max-width:900px){.lumi-header{padding:20px 5vw;flex-wrap:wrap}.lumi-main-nav{order:3;width:100%}.lumi-main-nav ul{justify-content:center;gap:27px}.header-tools{margin-left:auto}.woocommerce ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}.work-row{gap:25px}.work-row img{height:280px}.calendar-cell{min-height:80px}.calendar-cell img{height:50px}}
@media(max-width:600px){body{font-size:14px}.lumi-header{gap:12px;padding:18px 6vw}.lumi-brand{font-size:29px}.header-tools{gap:15px;font-size:11px}.menu-toggle{display:block}.lumi-main-nav{display:none}.lumi-main-nav.is-open{display:block}.lumi-main-nav ul{flex-wrap:wrap;gap:10px 25px;justify-content:start}.lumi-hero{min-height:70svh}.lumi-hero img{object-position:61% center}.hero-wordmark{bottom:60px;font-size:26vw}.hero-caption{font-size:8px;left:6vw;right:auto}.lumi-section,.lumi-container{padding:35px 6vw 50px}.lumi-footer{display:block;padding:35px 6vw}.footer-links{margin-top:25px;gap:15px 25px}.section-heading{align-items:start}.section-heading .text-link{white-space:nowrap;font-size:10px}.lumi-news-row{grid-template-columns:1fr;gap:8px}.lumi-news-row summary{font-size:18px}.works-intro{display:block}.works-intro p{margin-top:20px}.lumi-calendar{padding:15px 10px;margin-bottom:40px}.calendar-toolbar h2{font-size:21px}.calendar-nav{gap:15px;font-size:11px}.calendar-grid{gap:3px}.calendar-cell{min-height:57px;padding:4px;font-size:11px}.calendar-cell img{height:35px}.calendar-cell small{font-size:8px}.calendar-weekday{font-size:9px}.works-filter{gap:10px}.works-filter label{flex:1;min-width:120px}.works-filter input,.works-filter select{width:100%;max-width:none}.work-row{grid-template-columns:1fr;gap:22px;padding:25px 0}.work-row img{height:300px}.work-row h2{font-size:28px}.article-title h1{font-size:34px}.article-cover{margin-bottom:30px}.woocommerce ul.products{gap:28px 15px}.woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:20px}.woocommerce ul.products li.product .button{padding:10px 13px;font-size:11px}.woocommerce div.product .product_title{font-size:32px}.woocommerce .woocommerce-ordering{float:none}.woocommerce-products-header h1{font-size:36px}.shop-categories{gap:22px}.woocommerce table.shop_table td{padding:12px 8px}.woocommerce .col2-set .col-1,.woocommerce .col2-set .col-2{float:none;width:100%}.admin-bar .lumi-header{top:46px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.lumi-hero>picture{transform:none!important;will-change:auto}}

.woocommerce-cart .entry-content,.woocommerce-checkout .entry-content,.woocommerce-account .entry-content{max-width:none}.calendar-cell details a{font-size:10px;display:block;overflow-wrap:anywhere}.copy-link{background:transparent;border:0;border-bottom:1px solid var(--ink);font-size:12px;color:var(--ink)}

.elementor-section.lumi-hero>.elementor-container{min-height:76svh;max-width:none;width:100%}.lumi-hero .hero-image{position:absolute!important;inset:-12% 0;width:100%;height:124%;transform:translateY(var(--hero-offset,0px));z-index:0}.hero-image .elementor-widget-container{height:100%}.lumi-hero .hero-image img{width:100%;height:100%;object-fit:cover;object-position:61% center}.elementor-section.lumi-hero:after{z-index:1;pointer-events:none}.lumi-hero .hero-wordmark{position:absolute!important;left:6vw!important;bottom:55px!important;z-index:2;width:auto!important;color:#fffdf5}.lumi-hero .hero-wordmark .elementor-heading-title{font:inherit;letter-spacing:inherit;color:inherit}.lumi-hero .hero-caption{position:absolute!important;bottom:30px!important;right:5vw!important;left:auto!important;width:auto!important;z-index:2}.hero-caption p{margin:0;font:inherit;color:inherit}.elementor-section.lumi-section>.elementor-container{max-width:none;width:100%}@media(max-width:600px){.elementor-section.lumi-hero>.elementor-container{min-height:70svh}.lumi-hero .hero-wordmark{bottom:60px!important}.lumi-hero .hero-caption{left:6vw!important;right:auto!important}}@media(prefers-reduced-motion:reduce){.lumi-hero .hero-image{transform:none!important}}

.lumi-hero .hero-caption{color:#fffdf5}.lumi-section .elementor-widget-heading .elementor-heading-title{font-family:var(--serif);font-size:clamp(28px,4vw,45px);font-weight:400;line-height:1.5;color:var(--ink);margin:0 0 28px}

/* Keep archive fields and the submit button on the same grid and baseline. */
.works-filter {
  display: grid;
  grid-template-columns: minmax(140px, 1fr) minmax(220px, 1.5fr) minmax(140px, 1fr) auto;
  gap: 18px 16px;
  align-items: end;
}
.works-filter label {
  display: grid;
  gap: 8px;
  min-width: 0;
  font-size: 12px;
  line-height: 1.4;
}
.works-filter input,
.works-filter select,
.works-filter .lumi-button {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: none;
  height: 52px;
  min-height: 52px;
  margin: 0;
  padding: 0 14px;
  font-size: 14px;
  line-height: normal;
  border-radius: 0;
}
.works-filter input,
.works-filter select {
  -webkit-appearance: none;
  appearance: none;
}
.works-filter select {
  padding-right: 40px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath d='m3 5 4 4 4-4' fill='none' stroke='%2330342e' stroke-width='1.4'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
}
.works-filter .lumi-button {
  min-width: 96px;
  padding-inline: 24px;
}
.menu-toggle { color: var(--ink); }
.entry-content .lumi-demo-note {
  padding: 20px 24px;
  border: 1px solid var(--line);
  background: var(--warm);
  font-size: 13px;
}
.entry-content .lumi-demo-note p:last-child { margin-bottom: 0; }
.entry-content .lumi-demo-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: center;
  gap: 28px;
  margin-block: 36px;
}
.entry-content .lumi-demo-columns > .wp-block-column { min-width: 0; }
.entry-content .lumi-demo-columns figure { margin: 0; }
.entry-content .lumi-demo-columns h3 { font-size: 26px; }
.entry-content .lumi-demo-gallery { margin-block: 36px; gap: 18px; }
.entry-content .wp-block-gallery.lumi-demo-gallery figure.wp-block-image {
  flex-direction: column;
  justify-content: flex-start;
}
.entry-content .wp-block-gallery.lumi-demo-gallery figure.wp-block-image figcaption {
  position: static;
  max-height: none;
  margin: 10px 0 0;
  padding: 0;
  overflow: visible;
  background: none;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.7;
}
.entry-content .wp-block-button__link {
  border-radius: 0;
  background: var(--ink);
  color: #fffdf5;
  padding: 14px 24px;
  font-size: 14px;
  text-decoration: none;
}
.entry-content .wp-block-buttons { gap: 12px; margin-block: 24px; }
@media (max-width: 760px) {
  .works-filter { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 14px; }
  .works-filter label:nth-of-type(1) { order: 1; }
  .works-filter label:nth-of-type(3) { order: 2; }
  .works-filter label:nth-of-type(2) { order: 3; }
  .works-filter .lumi-button { order: 4; }
  .works-filter input, .works-filter select { font-size: 16px; }
}
@media (max-width: 600px) {
  .entry-content .lumi-demo-columns { grid-template-columns: 1fr; gap: 22px; }
  .entry-content .lumi-demo-note { padding: 18px; }
  .entry-content .wp-block-buttons { align-items: stretch; }
}
@media (max-width: 359px) {
  .works-filter { grid-template-columns: minmax(0, 1fr); }
}
