/*
Theme Name: L & W Smart Lock
Description: Independent WooCommerce storefront matching the approved L&W homepage.
Version: 0.2.0
Requires PHP: 8.1
Text Domain: lw-smart-lock
*/
@font-face{font-family:Noto;src:url(assets/noto-sans-regular.ttf) format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Noto;src:url(assets/noto-sans-bold.ttf) format('truetype');font-weight:700;font-display:swap}
:root{--green:#064536;--paper:#fbf8f2;--ink:#063e32;--muted:#537467;--line:#c9d0c7}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 Noto,sans-serif}a{color:inherit;text-underline-offset:.25em}a:hover{color:#29634f}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #a66023;outline-offset:5px}::selection{background:var(--green);color:var(--paper)}img{max-width:100%;height:auto}button,input,textarea{caret-color:var(--green)}.wrap{width:91.6%;max-width:1320px;margin-inline:auto}.site-header{min-height:78px;height:clamp(78px,7.6vw,104px);display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);position:relative;z-index:3}.brand{display:inline-flex;align-items:center;gap:8px;text-decoration:none;white-space:nowrap;font-size:clamp(18px,2.25vw,28px);font-weight:700;letter-spacing:-.025em}.brand-mark{display:block;width:54px;height:72px;object-fit:contain;flex-shrink:0}.site-nav{display:flex;align-items:center;gap:clamp(22px,4.65vw,58px);font-size:clamp(15px,1.75vw,19px);line-height:1.3}.site-nav a{text-decoration:none;white-space:nowrap}.site-nav details{display:none}.button,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button{display:inline-flex;justify-content:center;align-items:center;background:var(--green);color:#fff!important;border:1px solid var(--green);border-radius:5px;padding:12px 30px;min-height:50px;text-decoration:none;font:700 clamp(16px,1.85vw,21px)/1.3 Noto,sans-serif;cursor:pointer;transition:background-color .18s ease,color .18s ease}.button:hover,.woocommerce a.button:hover,.woocommerce button.button:hover{background:#1d5d47;color:#fff}.button.secondary{background:rgba(251,248,242,.78);color:var(--ink)!important}.button.secondary:hover{background:#fff}.site-nav .button{font-weight:400;min-height:42px;padding:10px 20px;font-size:clamp(15px,1.75vw,19px)}h1,h2,h3{line-height:1.08;letter-spacing:-.035em;text-wrap:balance}h1{font-size:clamp(44px,6.65vw,88px);margin:0 0 22px;line-height:1.04}h2{font-size:clamp(34px,4.8vw,62px);margin:0 0 30px}h3{font-size:24px}.hero{position:relative;isolation:isolate;height:clamp(490px,55vw,740px);max-height:calc(100svh - 82px);min-height:490px;max-width:1920px;margin-inline:auto;overflow:hidden;background:var(--paper)}.hero-scene{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center right;z-index:-1}.hero-inner{height:100%;padding-top:clamp(85px,11vw,154px)}.hero-copy{width:62%;position:relative}.hero-copy h1{max-width:750px;text-wrap:initial}.hero-copy p{font-size:clamp(19px,2.3vw,29px);color:var(--muted);margin:0;letter-spacing:-.035em;white-space:nowrap}.actions{display:flex;gap:22px;margin-top:38px;flex-wrap:wrap}.hero .button{min-width:160px}.hero .button:first-child{min-width:180px}.films{padding:44px 0 58px}.films h2{margin-bottom:34px}.film-grid{display:grid;grid-template-columns:1.75fr 1fr .87fr;gap:16px}.film{margin:0;min-width:0}.film-media{display:block;position:relative;height:clamp(250px,28.2vw,390px);overflow:hidden;background:#173f35}.film-media img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.film:nth-child(3) img{object-position:56% center}.play-mark{position:absolute;left:50%;top:50%;width:62px;height:62px;transform:translate(-50%,-50%);color:var(--paper);filter:drop-shadow(0 2px 5px rgba(0,0,0,.24))}.play-mark svg{display:block;width:100%;height:100%}.film-media[href]:hover .play-mark{color:white;transform:translate(-50%,-50%) scale(1.08)}.film figcaption{font-size:clamp(18px,2.3vw,29px);line-height:1.4;margin-top:10px;letter-spacing:-.035em}.pending-label{position:absolute;bottom:9px;left:10px;color:white;background:rgba(5,40,30,.86);border-radius:2px;padding:3px 7px;font-size:11px;line-height:1.5}.illustration-note{display:flex;align-items:center;gap:22px;margin:38px 0 0;color:var(--ink);font-size:15px;font-style:italic;text-align:center}.illustration-note:before,.illustration-note:after{content:'';height:1px;background:var(--line);flex:1}.illustration-note span{max-width:70ch}.tools-section{padding:22px 0 60px}.tools-heading{display:flex;justify-content:space-between;align-items:baseline;gap:24px}.tools-heading h2{font-size:clamp(32px,4vw,52px);margin-bottom:26px}.tools-heading p{color:var(--muted);font-size:16px;margin:0 0 26px}.tools-figure{margin:0}.tools-figure img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain;background:#646361}.tools-figure figcaption{font-size:13px;color:var(--muted);text-align:right;margin-top:9px}.contact-band{background:var(--green);color:var(--paper);padding:44px 0 46px}.contact-band h2{font-size:clamp(36px,5.3vw,68px);margin:0 0 28px;line-height:1.15;letter-spacing:-.035em}.contact-actions{display:flex;align-items:center;gap:42px}.contact-band .button{background:var(--paper);color:var(--ink)!important;border-color:var(--paper);padding:14px 38px;min-height:54px}.contact-band .button:hover{background:white}.contact-phone{font-size:clamp(25px,3.15vw,40px);font-weight:700;letter-spacing:-.025em;text-decoration:none;color:var(--paper);font-variant-numeric:tabular-nums}.contact-phone:hover{color:white}.site-footer{padding:22px 0 20px}.footer-primary{display:flex;justify-content:space-between;align-items:center;gap:24px;border-top:1px solid var(--line);padding-top:4px}.footer-primary p{font-size:clamp(14px,1.65vw,18px);margin:0;white-space:nowrap}.footer-brand{font-size:16px;gap:8px}.footer-brand .brand-mark{width:37px;height:49px}.footer-links{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:20px;margin-top:6px;font-size:12px;color:var(--muted)}.footer-links a{text-decoration:none}.footer-links a:hover{text-decoration:underline}.page-content{min-height:50vh;padding:55px 0 90px}.page-content h1{font-size:clamp(38px,5vw,62px);margin-bottom:30px}.page-content p{max-width:70ch}.page-content details{max-width:800px;border-bottom:1px solid var(--line);padding:20px 0}.page-content summary{font-weight:700;cursor:pointer}.page-content ul{padding-left:22px}.woocommerce ul.products li.product .price,.woocommerce div.product p.price{color:var(--green)}.woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:20px;letter-spacing:-.02em}.woocommerce input.input-text,.woocommerce textarea,.woocommerce select{font:inherit;padding:10px;border:1px solid #83968b;border-radius:2px;background:white;width:100%}.woocommerce .quantity input{width:80px}.woocommerce-message,.woocommerce-info{border-top-color:var(--green)}.woocommerce table.shop_table{border-color:var(--line)}.woocommerce form .form-row{margin-bottom:16px}.woocommerce a.added_to_cart{margin-left:12px}.empty{padding:25px 0 60px}.skip{position:absolute;left:15px;top:-100px;background:white;padding:12px;z-index:10}.skip:focus{top:15px}
@media(min-width:1500px){.hero-inner{padding-top:135px}.hero-copy{width:60%}}
@media(max-width:1000px) and (min-width:721px){.site-nav{gap:24px}.site-nav .button{padding:10px 16px}.brand{font-size:20px}.hero-copy p{font-size:21px}.hero-copy{width:65%}.hero .button{min-width:145px}.hero .button:first-child{min-width:165px}.actions{gap:18px}.tools-heading p{font-size:14px}}
@media(max-width:720px){.wrap{width:calc(100% - 36px)}.site-header{height:72px;min-height:72px;gap:12px}.brand{font-size:18px;gap:5px}.brand-mark{width:40px;height:54px}.site-nav{gap:14px;font-size:14px}.site-nav>a{display:none}.site-nav details{display:block;position:relative}.site-nav summary{cursor:pointer;padding:10px 2px}.mobile-menu{position:absolute;right:0;top:42px;width:215px;background:var(--paper);padding:16px;border:1px solid var(--line);box-shadow:0 12px 28px rgba(6,69,54,.12);z-index:5}.mobile-menu a{display:block;padding:10px}.hero{height:auto;max-height:none;min-height:0;display:flex;flex-direction:column}.hero-inner{order:0;padding-top:32px;padding-bottom:30px;height:auto}.hero-copy{width:100%}.hero-copy h1{font-size:clamp(42px,10.5vw,66px);max-width:none;margin-bottom:18px}.hero-copy p{font-size:clamp(16px,4.2vw,22px);white-space:normal;letter-spacing:-.025em}.hero-scene{position:relative;order:1;inset:auto;z-index:0;display:block;aspect-ratio:1.76;height:auto;width:100%;object-fit:contain}.actions{margin-top:24px;gap:12px}.button{font-size:15px;padding:12px 21px;min-height:47px}.hero .button,.hero .button:first-child{min-width:0}.films{padding:32px 0 34px}h2{font-size:34px}.films h2{margin-bottom:24px}.film-grid{grid-template-columns:1fr 1fr;gap:24px 12px}.film:first-child{grid-column:1/-1}.film-media{height:auto;aspect-ratio:4/3}.film:not(:first-child) .film-media{aspect-ratio:3/4}.film figcaption{font-size:19px;margin-top:8px}.play-mark{width:50px;height:50px}.pending-label{left:7px;bottom:7px;font-size:10px}.illustration-note{gap:10px;margin-top:27px;font-size:12px;line-height:1.5}.illustration-note span{max-width:260px}.tools-section{padding:8px 0 35px}.tools-heading{display:block}.tools-heading h2{font-size:32px;margin-bottom:10px}.tools-heading p{font-size:14px;margin-bottom:20px}.tools-figure figcaption{font-size:11px}.contact-band{padding:34px 0}.contact-band h2{font-size:36px;max-width:500px;margin-bottom:24px}.contact-actions{flex-wrap:wrap;gap:20px}.contact-band .button{min-height:48px;padding:12px 25px;font-size:17px}.contact-phone{font-size:24px}.footer-primary{display:grid;grid-template-columns:1fr;gap:10px;padding-top:12px}.footer-primary p{font-size:14px}.footer-brand{font-size:16px}.footer-links{justify-content:flex-start;font-size:12px;margin-top:20px;gap:18px}.site-footer{padding-bottom:25px}.page-content{padding-top:32px;padding-bottom:50px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Accessible account/basket utilities and directly visible customer support. */
.site-header{height:auto;min-height:108px;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:28px;row-gap:10px;padding:11px 0 13px}.site-header>.brand{grid-row:1/3;grid-column:1;font-size:clamp(18px,2.05vw,27px)}.account-nav{grid-column:2;grid-row:1;display:flex;align-items:center;justify-content:flex-end;gap:26px;font-size:14px;line-height:1.4}.utility-link{display:inline-flex;align-items:center;gap:8px;text-decoration:none;white-space:nowrap;padding:3px 0}.utility-link:hover{text-decoration:underline}.utility-link svg{width:20px;height:20px;flex:none}.basket-count{font-variant-numeric:tabular-nums}.site-header .site-nav{grid-column:2;grid-row:2;justify-content:flex-end;gap:clamp(13px,1.6vw,23px);font-size:clamp(13px,1.3vw,16px)}.site-header .site-nav .button{font-size:14px;min-height:36px;padding:8px 14px}.home-support{padding:8px 0 66px;scroll-margin-top:24px}.support-heading{display:flex;align-items:baseline;justify-content:space-between;gap:24px;padding-top:36px;border-top:1px solid var(--line);margin-bottom:30px}.support-heading h2{margin:0}.support-heading>p{margin:0;color:var(--muted);font-size:16px}.support-columns{display:grid;grid-template-columns:.9fr 1.3fr;gap:clamp(36px,6vw,86px)}.support-columns h3{font-size:clamp(26px,3vw,38px);margin:0 0 24px;line-height:1.15}.warranty-summary{align-self:start;padding:30px;background:#edf1e8}.warranty-summary p{font-size:15px;line-height:1.7;margin:0 0 18px;max-width:55ch}.warranty-summary .guarantee{font-size:23px;font-weight:700;line-height:1.35;margin-bottom:12px;letter-spacing:-.025em}.warranty-summary .rights-note{font-size:13px;color:var(--muted)}.text-link{font-size:15px;font-weight:700;text-decoration-thickness:1px;display:inline-block}.faq-summary dl{margin:0 0 24px}.faq-summary dl>div{border-bottom:1px solid var(--line);padding:0 0 18px;margin-bottom:18px}.faq-summary dt{font-size:17px;font-weight:700;line-height:1.5;margin-bottom:7px}.faq-summary dd{margin:0;color:var(--muted);font-size:15px;line-height:1.7;max-width:65ch}.privacy-summary{display:flex;align-items:center;justify-content:space-between;gap:35px;padding:30px 0 0;margin-top:36px;border-top:1px solid var(--line)}.privacy-summary h3{font-size:25px;margin:0 0 10px}.privacy-summary p{font-size:15px;max-width:65ch;margin:0;color:var(--muted)}.privacy-summary>a{flex-shrink:0}.privacy-policy-content h2{font-size:28px;margin-top:38px;margin-bottom:15px}.privacy-policy-content p,.privacy-policy-content li{font-size:16px;max-width:75ch}.preview-notice{padding:20px 24px;background:#edf1e8;margin:20px 0 30px;max-width:75ch}.privacy-policy-content .policy-date{font-size:14px;color:var(--muted)}
@media(max-width:960px){.site-header{grid-template-columns:1fr auto;min-height:100px;padding:5px 0 10px;row-gap:0}.site-header>.brand{grid-column:1;grid-row:1;font-size:19px}.site-header .brand-mark{width:43px;height:58px}.account-nav{grid-row:2;grid-column:1/3;font-size:14px;gap:24px}.site-header .site-nav{grid-row:1;grid-column:2;display:block}.site-header .site-nav>a{display:none}.site-header .site-nav details{display:block;position:relative}.site-header summary{padding:10px 0;cursor:pointer}.site-header .mobile-menu{position:absolute;right:0;top:42px;width:230px;background:var(--paper);padding:16px;border:1px solid var(--line);box-shadow:0 12px 28px rgba(6,69,54,.12);z-index:6}.site-header .mobile-menu a{display:block;padding:9px;font-size:15px}.support-columns{gap:30px}.warranty-summary{padding:23px}.support-heading>p{font-size:14px}}
@media(max-width:720px){.site-header{min-height:103px;height:auto}.site-header>.brand{font-size:18px}.site-header .brand-mark{width:40px;height:54px}.account-nav{font-size:14px;padding-top:4px}.utility-link svg{width:18px;height:18px}.home-support{padding-bottom:38px}.support-heading{display:block;padding-top:28px;margin-bottom:25px}.support-heading h2{font-size:32px;margin-bottom:12px}.support-columns{grid-template-columns:1fr;gap:30px}.support-columns h3{font-size:28px;margin-bottom:20px}.warranty-summary{padding:24px}.faq-summary dt{font-size:17px}.faq-summary dd{font-size:15px}.privacy-summary{display:block;padding-top:25px;margin-top:28px}.privacy-summary>a{margin-top:16px}.privacy-policy-content h2{font-size:25px}}

.language-switch{display:inline-flex;align-items:center;gap:8px;padding-left:12px;border-left:1px solid var(--line);white-space:nowrap}
.language-switch a{padding:3px 6px;text-decoration:none;border-radius:3px}
.language-switch a[aria-current="true"]{background:#e6eee5;font-weight:700}
html[lang|="zh"] body{font-family:Noto,"PingFang SC","Microsoft YaHei",sans-serif}
html[lang|="zh"] .hero-copy p{white-space:normal}
@media(max-width:960px){.account-nav{flex-wrap:wrap;gap:8px 15px}.language-switch{padding-left:9px;gap:3px}}

.service-links{display:flex;flex-wrap:wrap;gap:12px 28px;padding:20px 0;border-bottom:1px solid var(--line)}
.service-links a{font-weight:700;padding:4px 0}

.lw-product-details .lw-detail-frame {
    display: block;
    aspect-ratio: 1;
    background: #080808;
}
.lw-product-details .lw-detail-frame img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.woocommerce .related.products > h2 {
    margin-bottom: clamp(2rem, 4vw, 3.5rem);
}
.woocommerce .related.products ul.products {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(1rem, 3vw, 3rem);
}
.woocommerce .related.products ul.products::before,
.woocommerce .related.products ul.products::after {
    display: none;
}
.woocommerce .related.products ul.products li.product {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    float: none;
    width: auto;
    min-width: 0;
    margin: 0;
}
.woocommerce .related.products li.product .woocommerce-LoopProduct-link {
    display: block;
    width: 100%;
    margin-bottom: 1.5rem;
}
.woocommerce .related.products li.product > .button {
    margin-top: auto;
}
@media (max-width: 768px) {
    .woocommerce .related.products ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Home page lock body guide */
.mortise-section {
    margin-block: clamp(48px, 7vw, 104px);
    padding-top: clamp(28px, 5vw, 64px);
    border-top: 1px solid var(--line);
}
.mortise-eyebrow {
    margin: 0 0 12px;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .13em;
}
.mortise-section h2 {
    margin: 0;
    font-size: clamp(2rem, 5vw, 3.5rem);
    line-height: 1.12;
}
.mortise-intro {
    max-width: 67ch;
    margin: 18px 0 26px;
    color: var(--muted);
}
.mortise-section figure { margin: 0; min-width: 0; }
.mortise-section img { display: block; width: 100%; height: auto; }
.mortise-range img { background: #fff; }
.mortise-section figcaption { margin-top: 8px; font-size: .875rem; }
.mortise-range figcaption,
.mortise-fit figcaption { color: var(--muted); }
.mortise-details {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(8px, 2vw, 24px);
    margin-top: 24px;
}
.mortise-details img { aspect-ratio: 13 / 11; object-fit: cover; }
.mortise-details figcaption { font-weight: 600; line-height: 1.4; }
.mortise-fit {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: clamp(20px, 5vw, 72px);
    margin-top: clamp(30px, 5vw, 64px);
}
.mortise-fit h3 { margin: 0; font-size: clamp(1.4rem, 3vw, 2rem); line-height: 1.2; }
.mortise-fit p { color: var(--muted); }
.mortise-fit a { font-weight: 700; }
@media (max-width: 640px) {
    .mortise-fit { grid-template-columns: 1fr; }
    .mortise-details figcaption { font-size: .8rem; }
}

/* Reworked mortise close-ups and perspective drawing */
.mortise-details img,
.mortise-fit img {
    background: #fff;
    border: 1px solid var(--line);
}
.mortise-details img {
    aspect-ratio: 13 / 11;
    object-fit: contain;
}
.mortise-fit img {
    aspect-ratio: 3 / 2;
    object-fit: contain;
}
.mortise-details figcaption {
    margin-top: 10px;
}
@media (max-width: 480px) {
    .mortise-details {
        grid-template-columns: 1fr;
        gap: 18px;
    }
    .mortise-details img {
        aspect-ratio: 3 / 2;
    }
}

/* Tool photograph frame and brand watermark */
.tools-figure {
    position: relative;
    isolation: isolate;
    padding: clamp(5px, 1vw, 12px);
    background: #12382f;
    clip-path: polygon(18px 0, 100% 0, 100% calc(100% - 18px), calc(100% - 18px) 100%, 0 100%, 0 18px);
}
.tools-figure::after {
    content: "";
    position: absolute;
    inset: 3px;
    pointer-events: none;
    border: 1px solid #659786;
    clip-path: inherit;
    background: linear-gradient(#b2e4d1,#b2e4d1) right top / 44px 2px no-repeat,
                linear-gradient(#b2e4d1,#b2e4d1) left bottom / 44px 2px no-repeat;
}
